diff --git a/examples/apfel/assets/index-YBD4t_Lb.js b/examples/apfel/assets/index-YBD4t_Lb.js new file mode 100644 index 00000000..18d21f92 --- /dev/null +++ b/examples/apfel/assets/index-YBD4t_Lb.js @@ -0,0 +1,4057 @@ +var Rb=Object.defineProperty;var Tb=(n,e,t)=>e in n?Rb(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var be=(n,e,t)=>(Tb(n,typeof e!="symbol"?e+"":e,t),t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function FC(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Zw={exports:{}},Wg={},$w={exports:{}},Yt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Xh=Symbol.for("react.element"),Db=Symbol.for("react.portal"),bb=Symbol.for("react.fragment"),Lb=Symbol.for("react.strict_mode"),Nb=Symbol.for("react.profiler"),Pb=Symbol.for("react.provider"),Ub=Symbol.for("react.context"),Fb=Symbol.for("react.forward_ref"),kb=Symbol.for("react.suspense"),Ob=Symbol.for("react.memo"),Gb=Symbol.for("react.lazy"),AB=Symbol.iterator;function zb(n){return n===null||typeof n!="object"?null:(n=AB&&n[AB]||n["@@iterator"],typeof n=="function"?n:null)}var eM={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},tM=Object.assign,nM={};function Nu(n,e,t){this.props=n,this.context=e,this.refs=nM,this.updater=t||eM}Nu.prototype.isReactComponent={};Nu.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Nu.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function iM(){}iM.prototype=Nu.prototype;function kC(n,e,t){this.props=n,this.context=e,this.refs=nM,this.updater=t||eM}var OC=kC.prototype=new iM;OC.constructor=kC;tM(OC,Nu.prototype);OC.isPureReactComponent=!0;var hB=Array.isArray,rM=Object.prototype.hasOwnProperty,GC={current:null},sM={key:!0,ref:!0,__self:!0,__source:!0};function oM(n,e,t){var i,r={},s=null,o=null;if(e!=null)for(i in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)rM.call(e,i)&&!sM.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(a===1)r.children=t;else if(1>>1,ve=F[Ae];if(0>>1;Aer(z,te))Or(k,z)?(F[Ae]=k,F[O]=te,Ae=O):(F[Ae]=z,F[Y]=te,Ae=Y);else if(Or(k,te))F[Ae]=k,F[O]=te,Ae=O;else break e}}return ee}function r(F,ee){var te=F.sortIndex-ee.sortIndex;return te!==0?te:F.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var l=[],A=[],h=1,d=null,f=3,g=!1,E=!1,C=!1,y=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(F){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=F)i(A),ee.sortIndex=ee.expirationTime,e(l,ee);else break;ee=t(A)}}function B(F){if(C=!1,I(F),!E)if(t(l)!==null)E=!0,ne(R);else{var ee=t(A);ee!==null&&ue(B,ee.startTime-F)}}function R(F,ee){E=!1,C&&(C=!1,p(P),P=-1),g=!0;var te=f;try{for(I(ee),d=t(l);d!==null&&(!(d.expirationTime>ee)||F&&!L());){var Ae=d.callback;if(typeof Ae=="function"){d.callback=null,f=d.priorityLevel;var ve=Ae(d.expirationTime<=ee);ee=n.unstable_now(),typeof ve=="function"?d.callback=ve:d===t(l)&&i(l),I(ee)}else i(l);d=t(l)}if(d!==null)var Oe=!0;else{var Y=t(A);Y!==null&&ue(B,Y.startTime-ee),Oe=!1}return Oe}finally{d=null,f=te,g=!1}}var M=!1,T=null,P=-1,K=5,w=-1;function L(){return!(n.unstable_now()-wF||125Ae?(F.sortIndex=te,e(A,F),t(l)===null&&F===t(A)&&(C?(p(P),P=-1):C=!0,ue(B,te-Ae))):(F.sortIndex=ve,e(l,F),E||g||(E=!0,ne(R))),F},n.unstable_shouldYield=L,n.unstable_wrapCallback=function(F){var ee=f;return function(){var te=f;f=ee;try{return F.apply(this,arguments)}finally{f=te}}}})(uM);cM.exports=uM;var $b=cM.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var AM=V,wr=$b;function ke(n){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+n,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Fy=Object.prototype.hasOwnProperty,eL=/^[: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]*$/,fB={},pB={};function tL(n){return Fy.call(pB,n)?!0:Fy.call(fB,n)?!1:eL.test(n)?pB[n]=!0:(fB[n]=!0,!1)}function nL(n,e,t,i){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:t!==null?!t.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function iL(n,e,t,i){if(e===null||typeof e>"u"||nL(n,e,t,i))return!0;if(i)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Ki(n,e,t,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=n,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var Ci={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){Ci[n]=new Ki(n,0,!1,n,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var e=n[0];Ci[e]=new Ki(e,1,!1,n[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(n){Ci[n]=new Ki(n,2,!1,n.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){Ci[n]=new Ki(n,2,!1,n,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(n){Ci[n]=new Ki(n,3,!1,n.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(n){Ci[n]=new Ki(n,3,!0,n,null,!1,!1)});["capture","download"].forEach(function(n){Ci[n]=new Ki(n,4,!1,n,null,!1,!1)});["cols","rows","size","span"].forEach(function(n){Ci[n]=new Ki(n,6,!1,n,null,!1,!1)});["rowSpan","start"].forEach(function(n){Ci[n]=new Ki(n,5,!1,n.toLowerCase(),null,!1,!1)});var VC=/[\-:]([a-z])/g;function WC(n){return n[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(n){var e=n.replace(VC,WC);Ci[e]=new Ki(e,1,!1,n,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var e=n.replace(VC,WC);Ci[e]=new Ki(e,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(n){var e=n.replace(VC,WC);Ci[e]=new Ki(e,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(n){Ci[n]=new Ki(n,1,!1,n.toLowerCase(),null,!1,!1)});Ci.xlinkHref=new Ki("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(n){Ci[n]=new Ki(n,1,!1,n.toLowerCase(),null,!0,!0)});function YC(n,e,t,i){var r=Ci.hasOwnProperty(e)?Ci[e]:null;(r!==null?r.type!==0:i||!(2a||r[o]!==s[a]){var l=` +`+r[o].replace(" at new "," at ");return n.displayName&&l.includes("")&&(l=l.replace("",n.displayName)),l}while(1<=o&&0<=a);break}}}finally{K0=!1,Error.prepareStackTrace=t}return(n=n?n.displayName||n.name:"")?PA(n):""}function rL(n){switch(n.tag){case 5:return PA(n.type);case 16:return PA("Lazy");case 13:return PA("Suspense");case 19:return PA("SuspenseList");case 0:case 2:case 15:return n=q0(n.type,!1),n;case 11:return n=q0(n.type.render,!1),n;case 1:return n=q0(n.type,!0),n;default:return""}}function zy(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case $c:return"Fragment";case Zc:return"Portal";case ky:return"Profiler";case XC:return"StrictMode";case Oy:return"Suspense";case Gy:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case fM:return(n.displayName||"Context")+".Consumer";case dM:return(n._context.displayName||"Context")+".Provider";case JC:var e=n.render;return n=n.displayName,n||(n=e.displayName||e.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case jC:return e=n.displayName||null,e!==null?e:zy(n.type)||"Memo";case ha:e=n._payload,n=n._init;try{return zy(n(e))}catch{}}return null}function sL(n){var e=n.type;switch(n.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=e.render,n=n.displayName||n.name||"",e.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return zy(e);case 8:return e===XC?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function La(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function gM(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function oL(n){var e=gM(n)?"checked":"value",t=Object.getOwnPropertyDescriptor(n.constructor.prototype,e),i=""+n[e];if(!n.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,s=t.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(n,e,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function hf(n){n._valueTracker||(n._valueTracker=oL(n))}function mM(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=gM(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}function ug(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function Hy(n,e){var t=e.checked;return bn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??n._wrapperState.initialChecked})}function mB(n,e){var t=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;t=La(e.value!=null?e.value:t),n._wrapperState={initialChecked:i,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function EM(n,e){e=e.checked,e!=null&&YC(n,"checked",e,!1)}function Vy(n,e){EM(n,e);var t=La(e.value),i=e.type;if(t!=null)i==="number"?(t===0&&n.value===""||n.value!=t)&&(n.value=""+t):n.value!==""+t&&(n.value=""+t);else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}e.hasOwnProperty("value")?Wy(n,e.type,t):e.hasOwnProperty("defaultValue")&&Wy(n,e.type,La(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(n.defaultChecked=!!e.defaultChecked)}function EB(n,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+n._wrapperState.initialValue,t||e===n.value||(n.value=e),n.defaultValue=e}t=n.name,t!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,t!==""&&(n.name=t)}function Wy(n,e,t){(e!=="number"||ug(n.ownerDocument)!==n)&&(t==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+t&&(n.defaultValue=""+t))}var UA=Array.isArray;function pu(n,e,t,i){if(n=n.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=df.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;e.firstChild;)n.appendChild(e.firstChild)}});function ah(n,e){if(e){var t=n.firstChild;if(t&&t===n.lastChild&&t.nodeType===3){t.nodeValue=e;return}}n.textContent=e}var WA={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},aL=["Webkit","ms","Moz","O"];Object.keys(WA).forEach(function(n){aL.forEach(function(e){e=e+n.charAt(0).toUpperCase()+n.substring(1),WA[e]=WA[n]})});function IM(n,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||WA.hasOwnProperty(n)&&WA[n]?(""+e).trim():e+"px"}function xM(n,e){n=n.style;for(var t in e)if(e.hasOwnProperty(t)){var i=t.indexOf("--")===0,r=IM(t,e[t],i);t==="float"&&(t="cssFloat"),i?n.setProperty(t,r):n[t]=r}}var lL=bn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Jy(n,e){if(e){if(lL[n]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(ke(137,n));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(ke(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(ke(61))}if(e.style!=null&&typeof e.style!="object")throw Error(ke(62))}}function jy(n,e){if(n.indexOf("-")===-1)return typeof e.is=="string";switch(n){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!1;default:return!0}}var Ky=null;function KC(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var qy=null,gu=null,mu=null;function CB(n){if(n=Kh(n)){if(typeof qy!="function")throw Error(ke(280));var e=n.stateNode;e&&(e=Kg(e),qy(n.stateNode,n.type,e))}}function BM(n){gu?mu?mu.push(n):mu=[n]:gu=n}function SM(){if(gu){var n=gu,e=mu;if(mu=gu=null,CB(n),e)for(n=0;n>>=0,n===0?32:31-(yL(n)/vL|0)|0}var ff=64,pf=4194304;function FA(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function fg(n,e){var t=n.pendingLanes;if(t===0)return 0;var i=0,r=n.suspendedLanes,s=n.pingedLanes,o=t&268435455;if(o!==0){var a=o&~r;a!==0?i=FA(a):(s&=o,s!==0&&(i=FA(s)))}else o=t&~r,o!==0?i=FA(o):s!==0&&(i=FA(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=t&16),e=n.entangledLanes,e!==0)for(n=n.entanglements,e&=i;0t;t++)e.push(n);return e}function Jh(n,e,t){n.pendingLanes|=e,e!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,e=31-As(e),n[e]=t}function BL(n,e){var t=n.pendingLanes&~e;n.pendingLanes=e,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=e,n.mutableReadLanes&=e,n.entangledLanes&=e,e=n.entanglements;var i=n.eventTimes;for(n=n.expirationTimes;0=XA),RB=" ",TB=!1;function WM(n,e){switch(n){case"keyup":return ZL.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function YM(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var eu=!1;function eN(n,e){switch(n){case"compositionend":return YM(e);case"keypress":return e.which!==32?null:(TB=!0,RB);case"textInput":return n=e.data,n===RB&&TB?null:n;default:return null}}function tN(n,e){if(eu)return n==="compositionend"||!rI&&WM(n,e)?(n=HM(),Fp=tI=ma=null,eu=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=NB(t)}}function KM(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?KM(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function qM(){for(var n=window,e=ug();e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=ug(n.document)}return e}function sI(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}function uN(n){var e=qM(),t=n.focusedElem,i=n.selectionRange;if(e!==t&&t&&t.ownerDocument&&KM(t.ownerDocument.documentElement,t)){if(i!==null&&sI(t)){if(e=i.start,n=i.end,n===void 0&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if(n=(e=t.ownerDocument||document)&&e.defaultView||window,n.getSelection){n=n.getSelection();var r=t.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!n.extend&&s>i&&(r=i,i=s,s=r),r=PB(t,s);var o=PB(t,i);r&&o&&(n.rangeCount!==1||n.anchorNode!==r.node||n.anchorOffset!==r.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),n.removeAllRanges(),s>i?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}}for(e=[],n=t;n=n.parentNode;)n.nodeType===1&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,tu=null,iv=null,jA=null,rv=!1;function UB(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;rv||tu==null||tu!==ug(i)||(i=tu,"selectionStart"in i&&sI(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),jA&&dh(jA,i)||(jA=i,i=mg(iv,"onSelect"),0ru||(n.current=uv[ru],uv[ru]=null,ru--)}function En(n,e){ru++,uv[ru]=n.current,n.current=e}var Na={},Ni=ka(Na),or=ka(!1),Yl=Na;function _u(n,e){var t=n.type.contextTypes;if(!t)return Na;var i=n.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in t)r[s]=e[s];return i&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=e,n.__reactInternalMemoizedMaskedChildContext=r),r}function ar(n){return n=n.childContextTypes,n!=null}function yg(){Bn(or),Bn(Ni)}function VB(n,e,t){if(Ni.current!==Na)throw Error(ke(168));En(Ni,e),En(or,t)}function oQ(n,e,t){var i=n.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(ke(108,sL(n)||"Unknown",r));return bn({},t,i)}function vg(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||Na,Yl=Ni.current,En(Ni,n),En(or,or.current),!0}function WB(n,e,t){var i=n.stateNode;if(!i)throw Error(ke(169));t?(n=oQ(n,e,Yl),i.__reactInternalMemoizedMergedChildContext=n,Bn(or),Bn(Ni),En(Ni,n)):Bn(or),En(or,t)}var uo=null,qg=!1,AE=!1;function aQ(n){uo===null?uo=[n]:uo.push(n)}function IN(n){qg=!0,aQ(n)}function Oa(){if(!AE&&uo!==null){AE=!0;var n=0,e=hn;try{var t=uo;for(hn=1;n>=o,r-=o,po=1<<32-As(e)+r|t<P?(K=T,T=null):K=T.sibling;var w=f(p,T,I[P],B);if(w===null){T===null&&(T=K);break}n&&T&&w.alternate===null&&e(p,T),v=s(w,v,P),M===null?R=w:M.sibling=w,M=w,T=K}if(P===I.length)return t(p,T),wn&&Bl(p,P),R;if(T===null){for(;PP?(K=T,T=null):K=T.sibling;var L=f(p,T,w.value,B);if(L===null){T===null&&(T=K);break}n&&T&&L.alternate===null&&e(p,T),v=s(L,v,P),M===null?R=L:M.sibling=L,M=L,T=K}if(w.done)return t(p,T),wn&&Bl(p,P),R;if(T===null){for(;!w.done;P++,w=I.next())w=d(p,w.value,B),w!==null&&(v=s(w,v,P),M===null?R=w:M.sibling=w,M=w);return wn&&Bl(p,P),R}for(T=i(p,T);!w.done;P++,w=I.next())w=g(T,p,P,w.value,B),w!==null&&(n&&w.alternate!==null&&T.delete(w.key===null?P:w.key),v=s(w,v,P),M===null?R=w:M.sibling=w,M=w);return n&&T.forEach(function(q){return e(p,q)}),wn&&Bl(p,P),R}function y(p,v,I,B){if(typeof I=="object"&&I!==null&&I.type===$c&&I.key===null&&(I=I.props.children),typeof I=="object"&&I!==null){switch(I.$$typeof){case Af:e:{for(var R=I.key,M=v;M!==null;){if(M.key===R){if(R=I.type,R===$c){if(M.tag===7){t(p,M.sibling),v=r(M,I.props.children),v.return=p,p=v;break e}}else if(M.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===ha&&ZB(R)===M.type){t(p,M.sibling),v=r(M,I.props),v.ref=mA(p,M,I),v.return=p,p=v;break e}t(p,M);break}else e(p,M);M=M.sibling}I.type===$c?(v=Ol(I.props.children,p.mode,B,I.key),v.return=p,p=v):(B=Yp(I.type,I.key,I.props,null,p.mode,B),B.ref=mA(p,v,I),B.return=p,p=B)}return o(p);case Zc:e:{for(M=I.key;v!==null;){if(v.key===M)if(v.tag===4&&v.stateNode.containerInfo===I.containerInfo&&v.stateNode.implementation===I.implementation){t(p,v.sibling),v=r(v,I.children||[]),v.return=p,p=v;break e}else{t(p,v);break}else e(p,v);v=v.sibling}v=yE(I,p.mode,B),v.return=p,p=v}return o(p);case ha:return M=I._init,y(p,v,M(I._payload),B)}if(UA(I))return E(p,v,I,B);if(hA(I))return C(p,v,I,B);If(p,I)}return typeof I=="string"&&I!==""||typeof I=="number"?(I=""+I,v!==null&&v.tag===6?(t(p,v.sibling),v=r(v,I),v.return=p,p=v):(t(p,v),v=EE(I,p.mode,B),v.return=p,p=v),o(p)):t(p,v)}return y}var Mu=pQ(!0),gQ=pQ(!1),qh={},Fs=ka(qh),mh=ka(qh),Eh=ka(qh);function Ll(n){if(n===qh)throw Error(ke(174));return n}function fI(n,e){switch(En(Eh,e),En(mh,n),En(Fs,qh),n=e.nodeType,n){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:Xy(null,"");break;default:n=n===8?e.parentNode:e,e=n.namespaceURI||null,n=n.tagName,e=Xy(e,n)}Bn(Fs),En(Fs,e)}function Qu(){Bn(Fs),Bn(mh),Bn(Eh)}function mQ(n){Ll(Eh.current);var e=Ll(Fs.current),t=Xy(e,n.type);e!==t&&(En(mh,n),En(Fs,t))}function pI(n){mh.current===n&&(Bn(Fs),Bn(mh))}var Rn=ka(0);function _g(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var hE=[];function gI(){for(var n=0;nt?t:4,n(!0);var i=dE.transition;dE.transition={};try{n(!1),e()}finally{hn=t,dE.transition=i}}function bQ(){return jr().memoizedState}function _N(n,e,t){var i=_a(n);if(t={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null},LQ(n))NQ(e,t);else if(t=AQ(n,e,t,i),t!==null){var r=Xi();hs(t,n,i,r),PQ(t,e,i)}}function wN(n,e,t){var i=_a(n),r={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null};if(LQ(n))NQ(e,r);else{var s=n.alternate;if(n.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,t);if(r.hasEagerState=!0,r.eagerState=a,ps(a,o)){var l=e.interleaved;l===null?(r.next=r,hI(e)):(r.next=l.next,l.next=r),e.interleaved=r;return}}catch{}finally{}t=AQ(n,e,r,i),t!==null&&(r=Xi(),hs(t,n,i,r),PQ(t,e,i))}}function LQ(n){var e=n.alternate;return n===Dn||e!==null&&e===Dn}function NQ(n,e){KA=wg=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function PQ(n,e,t){if(t&4194240){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,ZC(n,t)}}var Mg={readContext:Jr,useCallback:wi,useContext:wi,useEffect:wi,useImperativeHandle:wi,useInsertionEffect:wi,useLayoutEffect:wi,useMemo:wi,useReducer:wi,useRef:wi,useState:wi,useDebugValue:wi,useDeferredValue:wi,useTransition:wi,useMutableSource:wi,useSyncExternalStore:wi,useId:wi,unstable_isNewReconciler:!1},MN={readContext:Jr,useCallback:function(n,e){return Rs().memoizedState=[n,e===void 0?null:e],n},useContext:Jr,useEffect:eS,useImperativeHandle:function(n,e,t){return t=t!=null?t.concat([n]):null,zp(4194308,4,MQ.bind(null,e,n),t)},useLayoutEffect:function(n,e){return zp(4194308,4,n,e)},useInsertionEffect:function(n,e){return zp(4,2,n,e)},useMemo:function(n,e){var t=Rs();return e=e===void 0?null:e,n=n(),t.memoizedState=[n,e],n},useReducer:function(n,e,t){var i=Rs();return e=t!==void 0?t(e):e,i.memoizedState=i.baseState=e,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:e},i.queue=n,n=n.dispatch=_N.bind(null,Dn,n),[i.memoizedState,n]},useRef:function(n){var e=Rs();return n={current:n},e.memoizedState=n},useState:$B,useDebugValue:CI,useDeferredValue:function(n){return Rs().memoizedState=n},useTransition:function(){var n=$B(!1),e=n[0];return n=SN.bind(null,n[1]),Rs().memoizedState=n,[e,n]},useMutableSource:function(){},useSyncExternalStore:function(n,e,t){var i=Dn,r=Rs();if(wn){if(t===void 0)throw Error(ke(407));t=t()}else{if(t=e(),hi===null)throw Error(ke(349));Jl&30||vQ(i,e,t)}r.memoizedState=t;var s={value:t,getSnapshot:e};return r.queue=s,eS(IQ.bind(null,i,s,n),[n]),i.flags|=2048,Ch(9,CQ.bind(null,i,s,t,e),void 0,null),t},useId:function(){var n=Rs(),e=hi.identifierPrefix;if(wn){var t=go,i=po;t=(i&~(1<<32-As(i)-1)).toString(32)+t,e=":"+e+"R"+t,t=yh++,0<\/script>",n=n.removeChild(n.firstChild)):typeof i.is=="string"?n=o.createElement(t,{is:i.is}):(n=o.createElement(t),t==="select"&&(o=n,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):n=o.createElementNS(n,t),n[Ds]=e,n[gh]=i,WQ(n,e,!1,!1),e.stateNode=n;e:{switch(o=jy(t,i),t){case"dialog":Cn("cancel",n),Cn("close",n),r=i;break;case"iframe":case"object":case"embed":Cn("load",n),r=i;break;case"video":case"audio":for(r=0;rTu&&(e.flags|=128,i=!0,EA(s,!1),e.lanes=4194304)}else{if(!i)if(n=_g(o),n!==null){if(e.flags|=128,i=!0,t=n.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),EA(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!wn)return Mi(e),null}else 2*Vn()-s.renderingStartTime>Tu&&t!==1073741824&&(e.flags|=128,i=!0,EA(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(t=s.last,t!==null?t.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Vn(),e.sibling=null,t=Rn.current,En(Rn,i?t&1|2:t&1),e):(Mi(e),null);case 22:case 23:return wI(),i=e.memoizedState!==null,n!==null&&n.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?vr&1073741824&&(Mi(e),e.subtreeFlags&6&&(e.flags|=8192)):Mi(e),null;case 24:return null;case 25:return null}throw Error(ke(156,e.tag))}function PN(n,e){switch(aI(e),e.tag){case 1:return ar(e.type)&&yg(),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return Qu(),Bn(or),Bn(Ni),gI(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 5:return pI(e),null;case 13:if(Bn(Rn),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(ke(340));wu()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return Bn(Rn),null;case 4:return Qu(),null;case 10:return AI(e.type._context),null;case 22:case 23:return wI(),null;case 24:return null;default:return null}}var Bf=!1,Di=!1,UN=typeof WeakSet=="function"?WeakSet:Set,it=null;function lu(n,e){var t=n.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(i){Un(n,e,i)}else t.current=null}function Iv(n,e,t){try{t()}catch(i){Un(n,e,i)}}var cS=!1;function FN(n,e){if(sv=pg,n=qM(),sI(n)){if("selectionStart"in n)var t={start:n.selectionStart,end:n.selectionEnd};else e:{t=(t=n.ownerDocument)&&t.defaultView||window;var i=t.getSelection&&t.getSelection();if(i&&i.rangeCount!==0){t=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{t.nodeType,s.nodeType}catch{t=null;break e}var o=0,a=-1,l=-1,A=0,h=0,d=n,f=null;t:for(;;){for(var g;d!==t||r!==0&&d.nodeType!==3||(a=o+r),d!==s||i!==0&&d.nodeType!==3||(l=o+i),d.nodeType===3&&(o+=d.nodeValue.length),(g=d.firstChild)!==null;)f=d,d=g;for(;;){if(d===n)break t;if(f===t&&++A===r&&(a=o),f===s&&++h===i&&(l=o),(g=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=g}t=a===-1||l===-1?null:{start:a,end:l}}else t=null}t=t||{start:0,end:0}}else t=null;for(ov={focusedElem:n,selectionRange:t},pg=!1,it=e;it!==null;)if(e=it,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,it=n;else for(;it!==null;){e=it;try{var E=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var C=E.memoizedProps,y=E.memoizedState,p=e.stateNode,v=p.getSnapshotBeforeUpdate(e.elementType===e.type?C:os(e.type,C),y);p.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var I=e.stateNode.containerInfo;I.nodeType===1?I.textContent="":I.nodeType===9&&I.documentElement&&I.removeChild(I.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ke(163))}}catch(B){Un(e,e.return,B)}if(n=e.sibling,n!==null){n.return=e.return,it=n;break}it=e.return}return E=cS,cS=!1,E}function qA(n,e,t){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&n)===n){var s=r.destroy;r.destroy=void 0,s!==void 0&&Iv(e,t,s)}r=r.next}while(r!==i)}}function em(n,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&n)===n){var i=t.create;t.destroy=i()}t=t.next}while(t!==e)}}function xv(n){var e=n.ref;if(e!==null){var t=n.stateNode;switch(n.tag){case 5:n=t;break;default:n=t}typeof e=="function"?e(n):e.current=n}}function JQ(n){var e=n.alternate;e!==null&&(n.alternate=null,JQ(e)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(e=n.stateNode,e!==null&&(delete e[Ds],delete e[gh],delete e[cv],delete e[vN],delete e[CN])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function jQ(n){return n.tag===5||n.tag===3||n.tag===4}function uS(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||jQ(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function Bv(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(n,e):t.insertBefore(n,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(n,t)):(e=t,e.appendChild(n)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=Eg));else if(i!==4&&(n=n.child,n!==null))for(Bv(n,e,t),n=n.sibling;n!==null;)Bv(n,e,t),n=n.sibling}function Sv(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.insertBefore(n,e):t.appendChild(n);else if(i!==4&&(n=n.child,n!==null))for(Sv(n,e,t),n=n.sibling;n!==null;)Sv(n,e,t),n=n.sibling}var Ei=null,ls=!1;function Zo(n,e,t){for(t=t.child;t!==null;)KQ(n,e,t),t=t.sibling}function KQ(n,e,t){if(Us&&typeof Us.onCommitFiberUnmount=="function")try{Us.onCommitFiberUnmount(Yg,t)}catch{}switch(t.tag){case 5:Di||lu(t,e);case 6:var i=Ei,r=ls;Ei=null,Zo(n,e,t),Ei=i,ls=r,Ei!==null&&(ls?(n=Ei,t=t.stateNode,n.nodeType===8?n.parentNode.removeChild(t):n.removeChild(t)):Ei.removeChild(t.stateNode));break;case 18:Ei!==null&&(ls?(n=Ei,t=t.stateNode,n.nodeType===8?uE(n.parentNode,t):n.nodeType===1&&uE(n,t),Ah(n)):uE(Ei,t.stateNode));break;case 4:i=Ei,r=ls,Ei=t.stateNode.containerInfo,ls=!0,Zo(n,e,t),Ei=i,ls=r;break;case 0:case 11:case 14:case 15:if(!Di&&(i=t.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&Iv(t,e,o),r=r.next}while(r!==i)}Zo(n,e,t);break;case 1:if(!Di&&(lu(t,e),i=t.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=t.memoizedProps,i.state=t.memoizedState,i.componentWillUnmount()}catch(a){Un(t,e,a)}Zo(n,e,t);break;case 21:Zo(n,e,t);break;case 22:t.mode&1?(Di=(i=Di)||t.memoizedState!==null,Zo(n,e,t),Di=i):Zo(n,e,t);break;default:Zo(n,e,t)}}function AS(n){var e=n.updateQueue;if(e!==null){n.updateQueue=null;var t=n.stateNode;t===null&&(t=n.stateNode=new UN),e.forEach(function(i){var r=XN.bind(null,n,i);t.has(i)||(t.add(i),i.then(r,r))})}}function ns(n,e){var t=e.deletions;if(t!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=Vn()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*ON(i/1960))-i,10n?16:n,Ea===null)var i=!1;else{if(n=Ea,Ea=null,Tg=0,$t&6)throw Error(ke(331));var r=$t;for($t|=4,it=n.current;it!==null;){var s=it,o=s.child;if(it.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lVn()-SI?kl(n,0):BI|=t),lr(n,e)}function r2(n,e){e===0&&(n.mode&1?(e=pf,pf<<=1,!(pf&130023424)&&(pf=4194304)):e=1);var t=Xi();n=xo(n,e),n!==null&&(Jh(n,e,t),lr(n,t))}function YN(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),r2(n,t)}function XN(n,e){var t=0;switch(n.tag){case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;default:throw Error(ke(314))}i!==null&&i.delete(e),r2(n,t)}var s2;s2=function(n,e,t){if(n!==null)if(n.memoizedProps!==e.pendingProps||or.current)sr=!0;else{if(!(n.lanes&t)&&!(e.flags&128))return sr=!1,LN(n,e,t);sr=!!(n.flags&131072)}else sr=!1,wn&&e.flags&1048576&&lQ(e,Ig,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;Hp(n,e),n=e.pendingProps;var r=_u(e,Ni.current);yu(e,t),r=EI(null,e,i,n,r,t);var s=yI();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,ar(i)?(s=!0,vg(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,dI(e),r.updater=Zg,e.stateNode=r,r._reactInternals=e,pv(e,i,n,t),e=Ev(null,e,i,!0,s,t)):(e.tag=0,wn&&s&&oI(e),Vi(null,e,r,t),e=e.child),e;case 16:i=e.elementType;e:{switch(Hp(n,e),n=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=jN(i),n=os(i,n),r){case 0:e=mv(null,e,i,n,t);break e;case 1:e=oS(null,e,i,n,t);break e;case 11:e=rS(null,e,i,n,t);break e;case 14:e=sS(null,e,i,os(i.type,n),t);break e}throw Error(ke(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:os(i,r),mv(n,e,i,r,t);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:os(i,r),oS(n,e,i,r,t);case 3:e:{if(zQ(e),n===null)throw Error(ke(387));i=e.pendingProps,s=e.memoizedState,r=s.element,hQ(n,e),Sg(e,i,null,t);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=Ru(Error(ke(423)),e),e=aS(n,e,i,t,r);break e}else if(i!==r){r=Ru(Error(ke(424)),e),e=aS(n,e,i,t,r);break e}else for(xr=xa(e.stateNode.containerInfo.firstChild),Sr=e,wn=!0,cs=null,t=gQ(e,null,i,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(wu(),i===r){e=Bo(n,e,t);break e}Vi(n,e,i,t)}e=e.child}return e;case 5:return mQ(e),n===null&&hv(e),i=e.type,r=e.pendingProps,s=n!==null?n.memoizedProps:null,o=r.children,av(i,r)?o=null:s!==null&&av(i,s)&&(e.flags|=32),GQ(n,e),Vi(n,e,o,t),e.child;case 6:return n===null&&hv(e),null;case 13:return HQ(n,e,t);case 4:return fI(e,e.stateNode.containerInfo),i=e.pendingProps,n===null?e.child=Mu(e,null,i,t):Vi(n,e,i,t),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:os(i,r),rS(n,e,i,r,t);case 7:return Vi(n,e,e.pendingProps,t),e.child;case 8:return Vi(n,e,e.pendingProps.children,t),e.child;case 12:return Vi(n,e,e.pendingProps.children,t),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,En(xg,i._currentValue),i._currentValue=o,s!==null)if(ps(s.value,o)){if(s.children===r.children&&!or.current){e=Bo(n,e,t);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===i){if(s.tag===1){l=yo(-1,t&-t),l.tag=2;var A=s.updateQueue;if(A!==null){A=A.shared;var h=A.pending;h===null?l.next=l:(l.next=h.next,h.next=l),A.pending=l}}s.lanes|=t,l=s.alternate,l!==null&&(l.lanes|=t),dv(s.return,t,e),a.lanes|=t;break}l=l.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(ke(341));o.lanes|=t,a=o.alternate,a!==null&&(a.lanes|=t),dv(o,t,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Vi(n,e,r.children,t),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,yu(e,t),r=Jr(r),i=i(r),e.flags|=1,Vi(n,e,i,t),e.child;case 14:return i=e.type,r=os(i,e.pendingProps),r=os(i.type,r),sS(n,e,i,r,t);case 15:return kQ(n,e,e.type,e.pendingProps,t);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:os(i,r),Hp(n,e),e.tag=1,ar(i)?(n=!0,vg(e)):n=!1,yu(e,t),fQ(e,i,r),pv(e,i,r,t),Ev(null,e,i,!0,n,t);case 19:return VQ(n,e,t);case 22:return OQ(n,e,t)}throw Error(ke(156,e.tag))};function o2(n,e){return DM(n,e)}function JN(n,e,t,i){this.tag=n,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Hr(n,e,t,i){return new JN(n,e,t,i)}function QI(n){return n=n.prototype,!(!n||!n.isReactComponent)}function jN(n){if(typeof n=="function")return QI(n)?1:0;if(n!=null){if(n=n.$$typeof,n===JC)return 11;if(n===jC)return 14}return 2}function wa(n,e){var t=n.alternate;return t===null?(t=Hr(n.tag,e,n.key,n.mode),t.elementType=n.elementType,t.type=n.type,t.stateNode=n.stateNode,t.alternate=n,n.alternate=t):(t.pendingProps=e,t.type=n.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=n.flags&14680064,t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=n.sibling,t.index=n.index,t.ref=n.ref,t}function Yp(n,e,t,i,r,s){var o=2;if(i=n,typeof n=="function")QI(n)&&(o=1);else if(typeof n=="string")o=5;else e:switch(n){case $c:return Ol(t.children,r,s,e);case XC:o=8,r|=8;break;case ky:return n=Hr(12,t,e,r|2),n.elementType=ky,n.lanes=s,n;case Oy:return n=Hr(13,t,e,r),n.elementType=Oy,n.lanes=s,n;case Gy:return n=Hr(19,t,e,r),n.elementType=Gy,n.lanes=s,n;case pM:return nm(t,r,s,e);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case dM:o=10;break e;case fM:o=9;break e;case JC:o=11;break e;case jC:o=14;break e;case ha:o=16,i=null;break e}throw Error(ke(130,n==null?n:typeof n,""))}return e=Hr(o,t,e,r),e.elementType=n,e.type=i,e.lanes=s,e}function Ol(n,e,t,i){return n=Hr(7,n,i,e),n.lanes=t,n}function nm(n,e,t,i){return n=Hr(22,n,i,e),n.elementType=pM,n.lanes=t,n.stateNode={isHidden:!1},n}function EE(n,e,t){return n=Hr(6,n,null,e),n.lanes=t,n}function yE(n,e,t){return e=Hr(4,n.children!==null?n.children:[],n.key,e),e.lanes=t,e.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},e}function KN(n,e,t,i,r){this.tag=e,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=$0(0),this.expirationTimes=$0(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$0(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function RI(n,e,t,i,r,s,o,a,l){return n=new KN(n,e,t,a,l),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Hr(3,null,null,e),n.current=s,s.stateNode=n,s.memoizedState={element:i,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},dI(s),n}function qN(n,e,t){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(u2)}catch(n){console.error(n)}}u2(),lM.exports=Mr;var n3=lM.exports,A2,yS=n3;A2=yS.createRoot,yS.hydrateRoot;/** + * @license + * Copyright 2010-2023 Three.js Authors + * SPDX-License-Identifier: MIT + */const am="161",i3={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r3={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},h2=0,Rv=1,d2=2,s3=3,f2=0,lm=1,eh=2,as=3,Kr=0,Ji=1,bs=2,vo=0,Gl=1,Tv=2,Dv=3,bv=4,p2=5,ga=100,g2=101,m2=102,Lv=103,Nv=104,E2=200,y2=201,v2=202,C2=203,Lg=204,Ng=205,I2=206,x2=207,B2=208,S2=209,_2=210,w2=211,M2=212,Q2=213,R2=214,T2=0,D2=1,b2=2,xh=3,L2=4,N2=5,P2=6,U2=7,Zh=0,F2=1,k2=2,ks=0,O2=1,G2=2,z2=3,LI=4,H2=5,V2=6,Pv="attached",W2="detached",cm=300,So=301,Pa=302,Bh=303,Sh=304,Fu=306,_h=1e3,bi=1001,wh=1002,zn=1003,Pg=1004,o3=1004,Rl=1005,a3=1005,xn=1006,th=1007,l3=1007,Ls=1008,c3=1008,Os=1009,Y2=1010,X2=1011,um=1012,NI=1013,mo=1014,zr=1015,ql=1016,PI=1017,UI=1018,Ma=1020,J2=1021,Wi=1023,j2=1024,K2=1025,Qa=1026,Zl=1027,q2=1028,FI=1029,Z2=1030,kI=1031,OI=1033,Xp=33776,Jp=33777,jp=33778,Kp=33779,Uv=35840,Fv=35841,kv=35842,Ov=35843,GI=36196,Gv=37492,zv=37496,Hv=37808,Vv=37809,Wv=37810,Yv=37811,Xv=37812,Jv=37813,jv=37814,Kv=37815,qv=37816,Zv=37817,$v=37818,eC=37819,tC=37820,nC=37821,qp=36492,iC=36494,rC=36495,$2=36283,sC=36284,oC=36285,aC=36286,eR=2200,tR=2201,nR=2202,Mh=2300,Qh=2301,Zp=2302,Nl=2400,Pl=2401,Rh=2402,Am=2500,zI=2501,u3=0,A3=1,h3=2,HI=3e3,Ra=3001,iR=3200,VI=3201,Ga=0,rR=1,Cr="",Hn="srgb",Gs="srgb-linear",hm="display-p3",$h="display-p3-linear",Th="linear",mn="srgb",Dh="rec709",bh="p3",d3=0,_l=7680,f3=7681,p3=7682,g3=7683,m3=34055,E3=34056,y3=5386,v3=512,C3=513,I3=514,x3=515,B3=516,S3=517,_3=518,lC=519,sR=512,oR=513,aR=514,WI=515,lR=516,cR=517,uR=518,AR=519,Lh=35044,ya=35048,w3=35040,M3=35045,Q3=35049,R3=35041,T3=35046,D3=35050,b3=35042,L3="100",cC="300 es",Ug=1035,Ns=2e3,Nh=2001;class wo{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const i=this._listeners[e.type];if(i!==void 0){e.target=this;const r=i.slice(0);for(let s=0,o=r.length;s>8&255]+Qi[n>>16&255]+Qi[n>>24&255]+"-"+Qi[e&255]+Qi[e>>8&255]+"-"+Qi[e>>16&15|64]+Qi[e>>24&255]+"-"+Qi[t&63|128]+Qi[t>>8&255]+"-"+Qi[t>>16&255]+Qi[t>>24&255]+Qi[i&255]+Qi[i>>8&255]+Qi[i>>16&255]+Qi[i>>24&255]).toLowerCase()}function Fn(n,e,t){return Math.max(e,Math.min(t,n))}function YI(n,e){return(n%e+e)%e}function N3(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function P3(n,e,t){return n!==e?(t-n)/(e-n):0}function nh(n,e,t){return(1-t)*n+t*e}function U3(n,e,t,i){return nh(n,e,1-Math.exp(-t*i))}function F3(n,e=1){return e-Math.abs(YI(n,e*2)-e)}function k3(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function O3(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function G3(n,e){return n+Math.floor(Math.random()*(e-n+1))}function z3(n,e){return n+Math.random()*(e-n)}function H3(n){return n*(.5-Math.random())}function V3(n){n!==void 0&&(vS=n);let e=vS+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function W3(n){return n*zl}function Y3(n){return n*Du}function uC(n){return(n&n-1)===0&&n!==0}function X3(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function Fg(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function J3(n,e,t,i,r){const s=Math.cos,o=Math.sin,a=s(t/2),l=o(t/2),A=s((e+i)/2),h=o((e+i)/2),d=s((e-i)/2),f=o((e-i)/2),g=s((i-e)/2),E=o((i-e)/2);switch(r){case"XYX":n.set(a*h,l*d,l*f,a*A);break;case"YZY":n.set(l*f,a*h,l*d,a*A);break;case"ZXZ":n.set(l*d,l*f,a*h,a*A);break;case"XZX":n.set(a*h,l*E,l*g,a*A);break;case"YXY":n.set(l*g,a*h,l*E,a*A);break;case"ZYZ":n.set(l*E,l*g,a*h,a*A);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Yi(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Lt(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}const j3={DEG2RAD:zl,RAD2DEG:Du,generateUUID:_r,clamp:Fn,euclideanModulo:YI,mapLinear:N3,inverseLerp:P3,lerp:nh,damp:U3,pingpong:F3,smoothstep:k3,smootherstep:O3,randInt:G3,randFloat:z3,randFloatSpread:H3,seededRandom:V3,degToRad:W3,radToDeg:Y3,isPowerOfTwo:uC,ceilPowerOfTwo:X3,floorPowerOfTwo:Fg,setQuaternionFromProperEuler:J3,normalize:Lt,denormalize:Yi};class Be{constructor(e=0,t=0){Be.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Fn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Rt{constructor(e,t,i,r,s,o,a,l,A){Rt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,l,A)}set(e,t,i,r,s,o,a,l,A){const h=this.elements;return h[0]=e,h[1]=r,h[2]=a,h[3]=t,h[4]=s,h[5]=l,h[6]=i,h[7]=o,h[8]=A,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[3],l=i[6],A=i[1],h=i[4],d=i[7],f=i[2],g=i[5],E=i[8],C=r[0],y=r[3],p=r[6],v=r[1],I=r[4],B=r[7],R=r[2],M=r[5],T=r[8];return s[0]=o*C+a*v+l*R,s[3]=o*y+a*I+l*M,s[6]=o*p+a*B+l*T,s[1]=A*C+h*v+d*R,s[4]=A*y+h*I+d*M,s[7]=A*p+h*B+d*T,s[2]=f*C+g*v+E*R,s[5]=f*y+g*I+E*M,s[8]=f*p+g*B+E*T,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8];return t*o*h-t*a*A-i*s*h+i*a*l+r*s*A-r*o*l}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8],d=h*o-a*A,f=a*l-h*s,g=A*s-o*l,E=t*d+i*f+r*g;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);const C=1/E;return e[0]=d*C,e[1]=(r*A-h*i)*C,e[2]=(a*i-r*o)*C,e[3]=f*C,e[4]=(h*t-r*l)*C,e[5]=(r*s-a*t)*C,e[6]=g*C,e[7]=(i*l-A*t)*C,e[8]=(o*t-i*s)*C,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,a){const l=Math.cos(s),A=Math.sin(s);return this.set(i*l,i*A,-i*(l*o+A*a)+o+e,-r*A,r*l,-r*(-A*o+l*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(vE.makeScale(e,t)),this}rotate(e){return this.premultiply(vE.makeRotation(-e)),this}translate(e,t){return this.premultiply(vE.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const vE=new Rt;function hR(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const K3={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function uu(n,e){return new K3[n](e)}function Ph(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function dR(){const n=Ph("canvas");return n.style.display="block",n}const CS={};function Hl(n){n in CS||(CS[n]=!0,console.warn(n))}const IS=new Rt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),xS=new Rt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),wf={[Gs]:{transfer:Th,primaries:Dh,toReference:n=>n,fromReference:n=>n},[Hn]:{transfer:mn,primaries:Dh,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[$h]:{transfer:Th,primaries:bh,toReference:n=>n.applyMatrix3(xS),fromReference:n=>n.applyMatrix3(IS)},[hm]:{transfer:mn,primaries:bh,toReference:n=>n.convertSRGBToLinear().applyMatrix3(xS),fromReference:n=>n.applyMatrix3(IS).convertLinearToSRGB()}},q3=new Set([Gs,$h]),un={enabled:!0,_workingColorSpace:Gs,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!q3.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;const i=wf[e].toReference,r=wf[t].fromReference;return r(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return wf[n].primaries},getTransfer:function(n){return n===Cr?Th:wf[n].transfer}};function Cu(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function CE(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let Ic;class XI{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{Ic===void 0&&(Ic=Ph("canvas")),Ic.width=e.width,Ic.height=e.height;const i=Ic.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=Ic}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=Ph("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==cm)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case _h:e.x=e.x-Math.floor(e.x);break;case bi:e.x=e.x<0?0:1;break;case wh:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case _h:e.y=e.y-Math.floor(e.y);break;case bi:e.y=e.y<0?0:1;break;case wh:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Hl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===Hn?Ra:HI}set encoding(e){Hl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===Ra?Hn:Cr}}Mn.DEFAULT_IMAGE=null;Mn.DEFAULT_MAPPING=cm;Mn.DEFAULT_ANISOTROPY=1;class An{constructor(e=0,t=0,i=0,r=1){An.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const l=e.elements,A=l[0],h=l[4],d=l[8],f=l[1],g=l[5],E=l[9],C=l[2],y=l[6],p=l[10];if(Math.abs(h-f)<.01&&Math.abs(d-C)<.01&&Math.abs(E-y)<.01){if(Math.abs(h+f)<.1&&Math.abs(d+C)<.1&&Math.abs(E+y)<.1&&Math.abs(A+g+p-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const I=(A+1)/2,B=(g+1)/2,R=(p+1)/2,M=(h+f)/4,T=(d+C)/4,P=(E+y)/4;return I>B&&I>R?I<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(I),r=M/i,s=T/i):B>R?B<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(B),i=M/r,s=P/r):R<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(R),i=T/s,r=P/s),this.set(i,r,s,t),this}let v=Math.sqrt((y-E)*(y-E)+(d-C)*(d-C)+(f-h)*(f-h));return Math.abs(v)<.001&&(v=1),this.x=(y-E)/v,this.y=(d-C)/v,this.z=(f-h)/v,this.w=Math.acos((A+g+p-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class fR extends wo{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new An(0,0,e,t),this.scissorTest=!1,this.viewport=new An(0,0,e,t);const r={width:e,height:t,depth:1};i.encoding!==void 0&&(Hl("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===Ra?Hn:Cr),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:xn,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},i),this.texture=new Mn(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps,this.texture.internalFormat=i.internalFormat,this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.depthTexture=i.depthTexture,this.samples=i.samples}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new Ul(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class qr extends fR{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}}class dm extends Mn{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=zn,this.minFilter=zn,this.wrapR=bi,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class eP extends qr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new dm(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class JI extends Mn{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=zn,this.minFilter=zn,this.wrapR=bi,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class tP extends qr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new JI(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class nP extends qr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const s=this.texture;this.texture=[];for(let o=0;o=0?1:-1,I=1-p*p;if(I>Number.EPSILON){const R=Math.sqrt(I),M=Math.atan2(R,p*v);y=Math.sin(y*M)/R,a=Math.sin(a*M)/R}const B=a*v;if(l=l*y+f*B,A=A*y+g*B,h=h*y+E*B,d=d*y+C*B,y===1-a){const R=1/Math.sqrt(l*l+A*A+h*h+d*d);l*=R,A*=R,h*=R,d*=R}}e[t]=l,e[t+1]=A,e[t+2]=h,e[t+3]=d}static multiplyQuaternionsFlat(e,t,i,r,s,o){const a=i[r],l=i[r+1],A=i[r+2],h=i[r+3],d=s[o],f=s[o+1],g=s[o+2],E=s[o+3];return e[t]=a*E+h*d+l*g-A*f,e[t+1]=l*E+h*f+A*d-a*g,e[t+2]=A*E+h*g+a*f-l*d,e[t+3]=h*E-a*d-l*f-A*g,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,a=Math.cos,l=Math.sin,A=a(i/2),h=a(r/2),d=a(s/2),f=l(i/2),g=l(r/2),E=l(s/2);switch(o){case"XYZ":this._x=f*h*d+A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d-f*g*E;break;case"YXZ":this._x=f*h*d+A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d+f*g*E;break;case"ZXY":this._x=f*h*d-A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d-f*g*E;break;case"ZYX":this._x=f*h*d-A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d+f*g*E;break;case"YZX":this._x=f*h*d+A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d-f*g*E;break;case"XZY":this._x=f*h*d-A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d+f*g*E;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],a=t[5],l=t[9],A=t[2],h=t[6],d=t[10],f=i+a+d;if(f>0){const g=.5/Math.sqrt(f+1);this._w=.25/g,this._x=(h-l)*g,this._y=(s-A)*g,this._z=(o-r)*g}else if(i>a&&i>d){const g=2*Math.sqrt(1+i-a-d);this._w=(h-l)/g,this._x=.25*g,this._y=(r+o)/g,this._z=(s+A)/g}else if(a>d){const g=2*Math.sqrt(1+a-i-d);this._w=(s-A)/g,this._x=(r+o)/g,this._y=.25*g,this._z=(l+h)/g}else{const g=2*Math.sqrt(1+d-i-a);this._w=(o-r)/g,this._x=(s+A)/g,this._y=(l+h)/g,this._z=.25*g}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Fn(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,a=t._x,l=t._y,A=t._z,h=t._w;return this._x=i*h+o*a+r*A-s*l,this._y=r*h+o*l+s*a-i*A,this._z=s*h+o*A+i*l-r*a,this._w=o*h-i*a-r*l-s*A,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let a=o*e._w+i*e._x+r*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const l=1-a*a;if(l<=Number.EPSILON){const g=1-t;return this._w=g*o+t*this._w,this._x=g*i+t*this._x,this._y=g*r+t*this._y,this._z=g*s+t*this._z,this.normalize(),this}const A=Math.sqrt(l),h=Math.atan2(A,a),d=Math.sin((1-t)*h)/A,f=Math.sin(t*h)/A;return this._w=o*d+this._w*f,this._x=i*d+this._x*f,this._y=r*d+this._y*f,this._z=s*d+this._z*f,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(s),i*Math.cos(s),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class G{constructor(e=0,t=0,i=0){G.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(BS.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(BS.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,a=e.z,l=e.w,A=2*(o*r-a*i),h=2*(a*t-s*r),d=2*(s*i-o*t);return this.x=t+l*A+o*d-a*h,this.y=i+l*h+a*A-s*d,this.z=r+l*d+s*h-o*A,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,a=t.y,l=t.z;return this.x=r*l-s*a,this.y=s*o-i*l,this.z=i*a-r*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return xE.copy(this).projectOnVector(e),this.sub(xE)}reflect(e){return this.sub(xE.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Fn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const xE=new G,BS=new Wn;class ri{constructor(e=new G(1/0,1/0,1/0),t=new G(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,is),is.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(vA),Qf.subVectors(this.max,vA),xc.subVectors(e.a,vA),Bc.subVectors(e.b,vA),Sc.subVectors(e.c,vA),$o.subVectors(Bc,xc),ea.subVectors(Sc,Bc),Al.subVectors(xc,Sc);let t=[0,-$o.z,$o.y,0,-ea.z,ea.y,0,-Al.z,Al.y,$o.z,0,-$o.x,ea.z,0,-ea.x,Al.z,0,-Al.x,-$o.y,$o.x,0,-ea.y,ea.x,0,-Al.y,Al.x,0];return!BE(t,xc,Bc,Sc,Qf)||(t=[1,0,0,0,1,0,0,0,1],!BE(t,xc,Bc,Sc,Qf))?!1:(Rf.crossVectors($o,ea),t=[Rf.x,Rf.y,Rf.z],BE(t,xc,Bc,Sc,Qf))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,is).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(is).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(eo[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),eo[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),eo[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),eo[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),eo[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),eo[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),eo[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),eo[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(eo),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const eo=[new G,new G,new G,new G,new G,new G,new G,new G],is=new G,Mf=new ri,xc=new G,Bc=new G,Sc=new G,$o=new G,ea=new G,Al=new G,vA=new G,Qf=new G,Rf=new G,hl=new G;function BE(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){hl.fromArray(n,s);const a=r.x*Math.abs(hl.x)+r.y*Math.abs(hl.y)+r.z*Math.abs(hl.z),l=e.dot(hl),A=t.dot(hl),h=i.dot(hl);if(Math.max(-Math.max(l,A,h),Math.min(l,A,h))>a)return!1}return!0}const iP=new ri,CA=new G,SE=new G;class $n{constructor(e=new G,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):iP.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;CA.subVectors(e,this.center);const t=CA.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(CA,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(SE.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(CA.copy(e.center).add(SE)),this.expandByPoint(CA.copy(e.center).sub(SE))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const to=new G,_E=new G,Tf=new G,ta=new G,wE=new G,Df=new G,ME=new G;class za{constructor(e=new G,t=new G(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,to)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=to.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(to.copy(this.origin).addScaledVector(this.direction,t),to.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){_E.copy(e).add(t).multiplyScalar(.5),Tf.copy(t).sub(e).normalize(),ta.copy(this.origin).sub(_E);const s=e.distanceTo(t)*.5,o=-this.direction.dot(Tf),a=ta.dot(this.direction),l=-ta.dot(Tf),A=ta.lengthSq(),h=Math.abs(1-o*o);let d,f,g,E;if(h>0)if(d=o*l-a,f=o*a-l,E=s*h,d>=0)if(f>=-E)if(f<=E){const C=1/h;d*=C,f*=C,g=d*(d+o*f+2*a)+f*(o*d+f+2*l)+A}else f=s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;else f=-s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;else f<=-E?(d=Math.max(0,-(-o*s+a)),f=d>0?-s:Math.min(Math.max(-s,-l),s),g=-d*d+f*(f+2*l)+A):f<=E?(d=0,f=Math.min(Math.max(-s,-l),s),g=f*(f+2*l)+A):(d=Math.max(0,-(o*s+a)),f=d>0?s:Math.min(Math.max(-s,-l),s),g=-d*d+f*(f+2*l)+A);else f=o>0?-s:s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;return i&&i.copy(this.origin).addScaledVector(this.direction,d),r&&r.copy(_E).addScaledVector(Tf,f),g}intersectSphere(e,t){to.subVectors(e.center,this.origin);const i=to.dot(this.direction),r=to.dot(to)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=i-o,l=i+o;return l<0?null:a<0?this.at(l,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,a,l;const A=1/this.direction.x,h=1/this.direction.y,d=1/this.direction.z,f=this.origin;return A>=0?(i=(e.min.x-f.x)*A,r=(e.max.x-f.x)*A):(i=(e.max.x-f.x)*A,r=(e.min.x-f.x)*A),h>=0?(s=(e.min.y-f.y)*h,o=(e.max.y-f.y)*h):(s=(e.max.y-f.y)*h,o=(e.min.y-f.y)*h),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(a=(e.min.z-f.z)*d,l=(e.max.z-f.z)*d):(a=(e.max.z-f.z)*d,l=(e.min.z-f.z)*d),i>l||a>r)||((a>i||i!==i)&&(i=a),(l=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,to)!==null}intersectTriangle(e,t,i,r,s){wE.subVectors(t,e),Df.subVectors(i,e),ME.crossVectors(wE,Df);let o=this.direction.dot(ME),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;ta.subVectors(this.origin,e);const l=a*this.direction.dot(Df.crossVectors(ta,Df));if(l<0)return null;const A=a*this.direction.dot(wE.cross(ta));if(A<0||l+A>o)return null;const h=-a*ta.dot(ME);return h<0?null:this.at(h/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ut{constructor(e,t,i,r,s,o,a,l,A,h,d,f,g,E,C,y){ut.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,l,A,h,d,f,g,E,C,y)}set(e,t,i,r,s,o,a,l,A,h,d,f,g,E,C,y){const p=this.elements;return p[0]=e,p[4]=t,p[8]=i,p[12]=r,p[1]=s,p[5]=o,p[9]=a,p[13]=l,p[2]=A,p[6]=h,p[10]=d,p[14]=f,p[3]=g,p[7]=E,p[11]=C,p[15]=y,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ut().fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/_c.setFromMatrixColumn(e,0).length(),s=1/_c.setFromMatrixColumn(e,1).length(),o=1/_c.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),a=Math.sin(i),l=Math.cos(r),A=Math.sin(r),h=Math.cos(s),d=Math.sin(s);if(e.order==="XYZ"){const f=o*h,g=o*d,E=a*h,C=a*d;t[0]=l*h,t[4]=-l*d,t[8]=A,t[1]=g+E*A,t[5]=f-C*A,t[9]=-a*l,t[2]=C-f*A,t[6]=E+g*A,t[10]=o*l}else if(e.order==="YXZ"){const f=l*h,g=l*d,E=A*h,C=A*d;t[0]=f+C*a,t[4]=E*a-g,t[8]=o*A,t[1]=o*d,t[5]=o*h,t[9]=-a,t[2]=g*a-E,t[6]=C+f*a,t[10]=o*l}else if(e.order==="ZXY"){const f=l*h,g=l*d,E=A*h,C=A*d;t[0]=f-C*a,t[4]=-o*d,t[8]=E+g*a,t[1]=g+E*a,t[5]=o*h,t[9]=C-f*a,t[2]=-o*A,t[6]=a,t[10]=o*l}else if(e.order==="ZYX"){const f=o*h,g=o*d,E=a*h,C=a*d;t[0]=l*h,t[4]=E*A-g,t[8]=f*A+C,t[1]=l*d,t[5]=C*A+f,t[9]=g*A-E,t[2]=-A,t[6]=a*l,t[10]=o*l}else if(e.order==="YZX"){const f=o*l,g=o*A,E=a*l,C=a*A;t[0]=l*h,t[4]=C-f*d,t[8]=E*d+g,t[1]=d,t[5]=o*h,t[9]=-a*h,t[2]=-A*h,t[6]=g*d+E,t[10]=f-C*d}else if(e.order==="XZY"){const f=o*l,g=o*A,E=a*l,C=a*A;t[0]=l*h,t[4]=-d,t[8]=A*h,t[1]=f*d+C,t[5]=o*h,t[9]=g*d-E,t[2]=E*d-g,t[6]=a*h,t[10]=C*d+f}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(rP,e,sP)}lookAt(e,t,i){const r=this.elements;return Er.subVectors(e,t),Er.lengthSq()===0&&(Er.z=1),Er.normalize(),na.crossVectors(i,Er),na.lengthSq()===0&&(Math.abs(i.z)===1?Er.x+=1e-4:Er.z+=1e-4,Er.normalize(),na.crossVectors(i,Er)),na.normalize(),bf.crossVectors(Er,na),r[0]=na.x,r[4]=bf.x,r[8]=Er.x,r[1]=na.y,r[5]=bf.y,r[9]=Er.y,r[2]=na.z,r[6]=bf.z,r[10]=Er.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[4],l=i[8],A=i[12],h=i[1],d=i[5],f=i[9],g=i[13],E=i[2],C=i[6],y=i[10],p=i[14],v=i[3],I=i[7],B=i[11],R=i[15],M=r[0],T=r[4],P=r[8],K=r[12],w=r[1],L=r[5],q=r[9],fe=r[13],J=r[2],re=r[6],ne=r[10],ue=r[14],F=r[3],ee=r[7],te=r[11],Ae=r[15];return s[0]=o*M+a*w+l*J+A*F,s[4]=o*T+a*L+l*re+A*ee,s[8]=o*P+a*q+l*ne+A*te,s[12]=o*K+a*fe+l*ue+A*Ae,s[1]=h*M+d*w+f*J+g*F,s[5]=h*T+d*L+f*re+g*ee,s[9]=h*P+d*q+f*ne+g*te,s[13]=h*K+d*fe+f*ue+g*Ae,s[2]=E*M+C*w+y*J+p*F,s[6]=E*T+C*L+y*re+p*ee,s[10]=E*P+C*q+y*ne+p*te,s[14]=E*K+C*fe+y*ue+p*Ae,s[3]=v*M+I*w+B*J+R*F,s[7]=v*T+I*L+B*re+R*ee,s[11]=v*P+I*q+B*ne+R*te,s[15]=v*K+I*fe+B*ue+R*Ae,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],a=e[5],l=e[9],A=e[13],h=e[2],d=e[6],f=e[10],g=e[14],E=e[3],C=e[7],y=e[11],p=e[15];return E*(+s*l*d-r*A*d-s*a*f+i*A*f+r*a*g-i*l*g)+C*(+t*l*g-t*A*f+s*o*f-r*o*g+r*A*h-s*l*h)+y*(+t*A*d-t*a*g-s*o*d+i*o*g+s*a*h-i*A*h)+p*(-r*a*h-t*l*d+t*a*f+r*o*d-i*o*f+i*l*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8],d=e[9],f=e[10],g=e[11],E=e[12],C=e[13],y=e[14],p=e[15],v=d*y*A-C*f*A+C*l*g-a*y*g-d*l*p+a*f*p,I=E*f*A-h*y*A-E*l*g+o*y*g+h*l*p-o*f*p,B=h*C*A-E*d*A+E*a*g-o*C*g-h*a*p+o*d*p,R=E*d*l-h*C*l-E*a*f+o*C*f+h*a*y-o*d*y,M=t*v+i*I+r*B+s*R;if(M===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/M;return e[0]=v*T,e[1]=(C*f*s-d*y*s-C*r*g+i*y*g+d*r*p-i*f*p)*T,e[2]=(a*y*s-C*l*s+C*r*A-i*y*A-a*r*p+i*l*p)*T,e[3]=(d*l*s-a*f*s-d*r*A+i*f*A+a*r*g-i*l*g)*T,e[4]=I*T,e[5]=(h*y*s-E*f*s+E*r*g-t*y*g-h*r*p+t*f*p)*T,e[6]=(E*l*s-o*y*s-E*r*A+t*y*A+o*r*p-t*l*p)*T,e[7]=(o*f*s-h*l*s+h*r*A-t*f*A-o*r*g+t*l*g)*T,e[8]=B*T,e[9]=(E*d*s-h*C*s-E*i*g+t*C*g+h*i*p-t*d*p)*T,e[10]=(o*C*s-E*a*s+E*i*A-t*C*A-o*i*p+t*a*p)*T,e[11]=(h*a*s-o*d*s-h*i*A+t*d*A+o*i*g-t*a*g)*T,e[12]=R*T,e[13]=(h*C*r-E*d*r+E*i*f-t*C*f-h*i*y+t*d*y)*T,e[14]=(E*a*r-o*C*r-E*i*l+t*C*l+o*i*y-t*a*y)*T,e[15]=(o*d*r-h*a*r+h*i*l-t*d*l-o*i*f+t*a*f)*T,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,a=e.y,l=e.z,A=s*o,h=s*a;return this.set(A*o+i,A*a-r*l,A*l+r*a,0,A*a+r*l,h*a+i,h*l-r*o,0,A*l-r*a,h*l+r*o,s*l*l+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,a=t._z,l=t._w,A=s+s,h=o+o,d=a+a,f=s*A,g=s*h,E=s*d,C=o*h,y=o*d,p=a*d,v=l*A,I=l*h,B=l*d,R=i.x,M=i.y,T=i.z;return r[0]=(1-(C+p))*R,r[1]=(g+B)*R,r[2]=(E-I)*R,r[3]=0,r[4]=(g-B)*M,r[5]=(1-(f+p))*M,r[6]=(y+v)*M,r[7]=0,r[8]=(E+I)*T,r[9]=(y-v)*T,r[10]=(1-(f+C))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=_c.set(r[0],r[1],r[2]).length();const o=_c.set(r[4],r[5],r[6]).length(),a=_c.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],rs.copy(this);const A=1/s,h=1/o,d=1/a;return rs.elements[0]*=A,rs.elements[1]*=A,rs.elements[2]*=A,rs.elements[4]*=h,rs.elements[5]*=h,rs.elements[6]*=h,rs.elements[8]*=d,rs.elements[9]*=d,rs.elements[10]*=d,t.setFromRotationMatrix(rs),i.x=s,i.y=o,i.z=a,this}makePerspective(e,t,i,r,s,o,a=Ns){const l=this.elements,A=2*s/(t-e),h=2*s/(i-r),d=(t+e)/(t-e),f=(i+r)/(i-r);let g,E;if(a===Ns)g=-(o+s)/(o-s),E=-2*o*s/(o-s);else if(a===Nh)g=-o/(o-s),E=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return l[0]=A,l[4]=0,l[8]=d,l[12]=0,l[1]=0,l[5]=h,l[9]=f,l[13]=0,l[2]=0,l[6]=0,l[10]=g,l[14]=E,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,i,r,s,o,a=Ns){const l=this.elements,A=1/(t-e),h=1/(i-r),d=1/(o-s),f=(t+e)*A,g=(i+r)*h;let E,C;if(a===Ns)E=(o+s)*d,C=-2*d;else if(a===Nh)E=s*d,C=-1*d;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return l[0]=2*A,l[4]=0,l[8]=0,l[12]=-f,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-g,l[2]=0,l[6]=0,l[10]=C,l[14]=-E,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const _c=new G,rs=new ut,rP=new G(0,0,0),sP=new G(1,1,1),na=new G,bf=new G,Er=new G,SS=new ut,_S=new Wn;class ku{constructor(e=0,t=0,i=0,r=ku.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const r=e.elements,s=r[0],o=r[4],a=r[8],l=r[1],A=r[5],h=r[9],d=r[2],f=r[6],g=r[10];switch(t){case"XYZ":this._y=Math.asin(Fn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,g),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(f,A),this._z=0);break;case"YXZ":this._x=Math.asin(-Fn(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,g),this._z=Math.atan2(l,A)):(this._y=Math.atan2(-d,s),this._z=0);break;case"ZXY":this._x=Math.asin(Fn(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-d,g),this._z=Math.atan2(-o,A)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-Fn(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(f,g),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-o,A));break;case"YZX":this._z=Math.asin(Fn(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,A),this._y=Math.atan2(-d,s)):(this._x=0,this._y=Math.atan2(a,g));break;case"XZY":this._z=Math.asin(-Fn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(f,A),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,g),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return SS.makeRotationFromQuaternion(e),this.setFromRotationMatrix(SS,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return _S.setFromEuler(this),this.setFromQuaternion(_S,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}ku.DEFAULT_ORDER="XYZ";class Vl{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,l){return a[l.uuid]===void 0&&(a[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(e.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const l=a.shapes;if(Array.isArray(l))for(let A=0,h=l.length;A0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(i.geometries=a),l.length>0&&(i.materials=l),A.length>0&&(i.textures=A),h.length>0&&(i.images=h),d.length>0&&(i.shapes=d),f.length>0&&(i.skeletons=f),g.length>0&&(i.animations=g),E.length>0&&(i.nodes=E)}return i.object=r,i;function o(a){const l=[];for(const A in a){const h=a[A];delete h.metadata,l.push(h)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){ss.subVectors(r,t),io.subVectors(i,t),QE.subVectors(e,t);const o=ss.dot(ss),a=ss.dot(io),l=ss.dot(QE),A=io.dot(io),h=io.dot(QE),d=o*A-a*a;if(d===0)return s.set(0,0,0),null;const f=1/d,g=(A*l-a*h)*f,E=(o*h-a*l)*f;return s.set(1-g-E,E,g)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,ro)===null?!1:ro.x>=0&&ro.y>=0&&ro.x+ro.y<=1}static getInterpolation(e,t,i,r,s,o,a,l){return this.getBarycoord(e,t,i,r,ro)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(s,ro.x),l.addScaledVector(o,ro.y),l.addScaledVector(a,ro.z),l)}static isFrontFacing(e,t,i,r){return ss.subVectors(i,t),io.subVectors(e,t),ss.cross(io).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return ss.subVectors(this.c,this.b),io.subVectors(this.a,this.b),ss.cross(io).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Ir.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Ir.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return Ir.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return Ir.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Ir.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,a;Mc.subVectors(r,i),Qc.subVectors(s,i),RE.subVectors(e,i);const l=Mc.dot(RE),A=Qc.dot(RE);if(l<=0&&A<=0)return t.copy(i);TE.subVectors(e,r);const h=Mc.dot(TE),d=Qc.dot(TE);if(h>=0&&d<=h)return t.copy(r);const f=l*d-h*A;if(f<=0&&l>=0&&h<=0)return o=l/(l-h),t.copy(i).addScaledVector(Mc,o);DE.subVectors(e,s);const g=Mc.dot(DE),E=Qc.dot(DE);if(E>=0&&g<=E)return t.copy(s);const C=g*A-l*E;if(C<=0&&A>=0&&E<=0)return a=A/(A-E),t.copy(i).addScaledVector(Qc,a);const y=h*E-g*d;if(y<=0&&d-h>=0&&g-E>=0)return TS.subVectors(s,r),a=(d-h)/(d-h+(g-E)),t.copy(r).addScaledVector(TS,a);const p=1/(y+C+f);return o=C*p,a=f*p,t.copy(i).addScaledVector(Mc,o).addScaledVector(Qc,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const pR={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},ia={h:0,s:0,l:0},Nf={h:0,s:0,l:0};function bE(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class Je{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Hn){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,un.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=un.workingColorSpace){return this.r=e,this.g=t,this.b=i,un.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=un.workingColorSpace){if(e=YI(e,1),t=Fn(t,0,1),i=Fn(i,0,1),t===0)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=bE(o,s,e+1/3),this.g=bE(o,s,e),this.b=bE(o,s,e-1/3)}return un.toWorkingColorSpace(this,r),this}setStyle(e,t=Hn){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=Hn){const i=pR[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=Cu(e.r),this.g=Cu(e.g),this.b=Cu(e.b),this}copyLinearToSRGB(e){return this.r=CE(e.r),this.g=CE(e.g),this.b=CE(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Hn){return un.fromWorkingColorSpace(Ri.copy(this),e),Math.round(Fn(Ri.r*255,0,255))*65536+Math.round(Fn(Ri.g*255,0,255))*256+Math.round(Fn(Ri.b*255,0,255))}getHexString(e=Hn){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=un.workingColorSpace){un.fromWorkingColorSpace(Ri.copy(this),t);const i=Ri.r,r=Ri.g,s=Ri.b,o=Math.max(i,r,s),a=Math.min(i,r,s);let l,A;const h=(a+o)/2;if(a===o)l=0,A=0;else{const d=o-a;switch(A=h<=.5?d/(o+a):d/(2-o-a),o){case i:l=(r-s)/d+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Gl&&(i.blending=this.blending),this.side!==Kr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==Lg&&(i.blendSrc=this.blendSrc),this.blendDst!==Ng&&(i.blendDst=this.blendDst),this.blendEquation!==ga&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==xh&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==lC&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==_l&&(i.stencilFail=this.stencilFail),this.stencilZFail!==_l&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==_l&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(s){const o=[];for(const a in s){const l=s[a];delete l.metadata,o.push(l)}return o}if(t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(t!==null){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class cr extends fi{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Zh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const Ao=hP();function hP(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let l=0;l<256;++l){const A=l-127;A<-27?(i[l]=0,i[l|256]=32768,r[l]=24,r[l|256]=24):A<-14?(i[l]=1024>>-A-14,i[l|256]=1024>>-A-14|32768,r[l]=-A-1,r[l|256]=-A-1):A<=15?(i[l]=A+15<<10,i[l|256]=A+15<<10|32768,r[l]=13,r[l|256]=13):A<128?(i[l]=31744,i[l|256]=64512,r[l]=24,r[l|256]=24):(i[l]=31744,i[l|256]=64512,r[l]=13,r[l|256]=13)}const s=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let l=1;l<1024;++l){let A=l<<13,h=0;for(;!(A&8388608);)A<<=1,h-=8388608;A&=-8388609,h+=947912704,s[l]=A|h}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)o[l]=l<<23;o[31]=1199570944,o[32]=2147483648;for(let l=33;l<63;++l)o[l]=2147483648+(l-32<<23);o[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(a[l]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:o,offsetTable:a}}function ir(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Fn(n,-65504,65504),Ao.floatView[0]=n;const e=Ao.uint32View[0],t=e>>23&511;return Ao.baseTable[t]+((e&8388607)>>Ao.shiftTable[t])}function OA(n){const e=n>>10;return Ao.uint32View[0]=Ao.mantissaTable[Ao.offsetTable[e]+(n&1023)]+Ao.exponentTable[e],Ao.floatView[0]}const dP={toHalfFloat:ir,fromHalfFloat:OA},qn=new G,Pf=new Be;class cn{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=Lh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=zr,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Hl("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const A in l)l[A]!==void 0&&(e[A]=l[A]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const l in i){const A=i[l];e.data.attributes[l]=A.toJSON(e.data)}const r={};let s=!1;for(const l in this.morphAttributes){const A=this.morphAttributes[l],h=[];for(let d=0,f=A.length;d0&&(r[l]=h,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(t));const r=e.attributes;for(const A in r){const h=r[A];this.setAttribute(A,h.clone(t))}const s=e.morphAttributes;for(const A in s){const h=[],d=s[A];for(let f=0,g=d.length;f0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(DS.copy(s).invert(),dl.copy(e.ray).applyMatrix4(DS),!(i.boundingBox!==null&&dl.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,dl)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,a=s.index,l=s.attributes.position,A=s.attributes.uv,h=s.attributes.uv1,d=s.attributes.normal,f=s.groups,g=s.drawRange;if(a!==null)if(Array.isArray(o))for(let E=0,C=f.length;Et.far?null:{distance:A,point:Hf.clone(),object:n}}function Vf(n,e,t,i,r,s,o,a,l,A){n.getVertexPosition(a,Tc),n.getVertexPosition(l,Dc),n.getVertexPosition(A,bc);const h=IP(n,e,t,i,Tc,Dc,bc,zf);if(h){r&&(kf.fromBufferAttribute(r,a),Of.fromBufferAttribute(r,l),Gf.fromBufferAttribute(r,A),h.uv=Ir.getInterpolation(zf,Tc,Dc,bc,kf,Of,Gf,new Be)),s&&(kf.fromBufferAttribute(s,a),Of.fromBufferAttribute(s,l),Gf.fromBufferAttribute(s,A),h.uv1=Ir.getInterpolation(zf,Tc,Dc,bc,kf,Of,Gf,new Be),h.uv2=h.uv1),o&&(LS.fromBufferAttribute(o,a),NS.fromBufferAttribute(o,l),PS.fromBufferAttribute(o,A),h.normal=Ir.getInterpolation(zf,Tc,Dc,bc,LS,NS,PS,new G),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const d={a,b:l,c:A,normal:new G,materialIndex:0};Ir.getNormal(Tc,Dc,bc,d.normal),h.face=d}return h}class ic extends Nt{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const l=[],A=[],h=[],d=[];let f=0,g=0;E("z","y","x",-1,-1,i,t,e,o,s,0),E("z","y","x",1,-1,i,t,-e,o,s,1),E("x","z","y",1,1,e,i,t,r,o,2),E("x","z","y",1,-1,e,i,-t,r,o,3),E("x","y","z",1,-1,e,t,i,r,s,4),E("x","y","z",-1,-1,e,t,-i,r,s,5),this.setIndex(l),this.setAttribute("position",new ot(A,3)),this.setAttribute("normal",new ot(h,3)),this.setAttribute("uv",new ot(d,2));function E(C,y,p,v,I,B,R,M,T,P,K){const w=B/T,L=R/P,q=B/2,fe=R/2,J=M/2,re=T+1,ne=P+1;let ue=0,F=0;const ee=new G;for(let te=0;te0?1:-1,h.push(ee.x,ee.y,ee.z),d.push(ve/T),d.push(1-te/P),ue+=1}}for(let te=0;te0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class ed extends Wt{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ut,this.projectionMatrix=new ut,this.projectionMatrixInverse=new ut,this.coordinateSystem=Ns}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const ra=new G,US=new Be,FS=new Be;class ni extends ed{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=Du*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(zl*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Du*2*Math.atan(Math.tan(zl*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){ra.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(ra.x,ra.y).multiplyScalar(-e/ra.z),ra.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(ra.x,ra.y).multiplyScalar(-e/ra.z)}getViewSize(e,t){return this.getViewBounds(e,US,FS),t.subVectors(FS,US)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(zl*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const l=o.fullWidth,A=o.fullHeight;s+=o.offsetX*r/l,t-=o.offsetY*i/A,r*=o.width/l,i*=o.height/A}const a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Lc=-90,Nc=1;class ER extends Wt{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new ni(Lc,Nc,e,t);r.layers=this.layers,this.add(r);const s=new ni(Lc,Nc,e,t);s.layers=this.layers,this.add(s);const o=new ni(Lc,Nc,e,t);o.layers=this.layers,this.add(o);const a=new ni(Lc,Nc,e,t);a.layers=this.layers,this.add(a);const l=new ni(Lc,Nc,e,t);l.layers=this.layers,this.add(l);const A=new ni(Lc,Nc,e,t);A.layers=this.layers,this.add(A)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,a,l]=t;for(const A of t)this.remove(A);if(e===Ns)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===Nh)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const A of t)this.add(A),A.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,l,A,h]=this.children,d=e.getRenderTarget(),f=e.getActiveCubeFace(),g=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;const C=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,a),e.setRenderTarget(i,3,r),e.render(t,l),e.setRenderTarget(i,4,r),e.render(t,A),i.texture.generateMipmaps=C,e.setRenderTarget(i,5,r),e.render(t,h),e.setRenderTarget(d,f,g),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}}class td extends Mn{constructor(e,t,i,r,s,o,a,l,A,h){e=e!==void 0?e:[],t=t!==void 0?t:So,super(e,t,i,r,s,o,a,l,A,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class yR extends qr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];t.encoding!==void 0&&(Hl("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===Ra?Hn:Cr),this.texture=new td(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:xn}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},r=new ic(5,5,5),s=new gs({name:"CubemapFromEquirect",uniforms:bu(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Ji,blending:vo});s.uniforms.tEquirect.value=t;const o=new en(r,s),a=t.minFilter;return t.minFilter===Ls&&(t.minFilter=xn),new ER(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,r){const s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,i,r);e.setRenderTarget(s)}}const PE=new G,_P=new G,wP=new Rt;class on{constructor(e=new G(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){const r=PE.subVectors(i,t).cross(_P.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const i=e.delta(PE),r=this.normal.dot(i);if(r===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const s=-(e.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||wP.getNormalMatrix(e),r=this.coplanarPoint(PE).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const fl=new $n,Wf=new G;class nd{constructor(e=new on,t=new on,i=new on,r=new on,s=new on,o=new on){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=Ns){const i=this.planes,r=e.elements,s=r[0],o=r[1],a=r[2],l=r[3],A=r[4],h=r[5],d=r[6],f=r[7],g=r[8],E=r[9],C=r[10],y=r[11],p=r[12],v=r[13],I=r[14],B=r[15];if(i[0].setComponents(l-s,f-A,y-g,B-p).normalize(),i[1].setComponents(l+s,f+A,y+g,B+p).normalize(),i[2].setComponents(l+o,f+h,y+E,B+v).normalize(),i[3].setComponents(l-o,f-h,y-E,B-v).normalize(),i[4].setComponents(l-a,f-d,y-C,B-I).normalize(),t===Ns)i[5].setComponents(l+a,f+d,y+C,B+I).normalize();else if(t===Nh)i[5].setComponents(a,d,C,I).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),fl.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),fl.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(fl)}intersectsSprite(e){return fl.center.set(0,0,0),fl.radius=.7071067811865476,fl.applyMatrix4(e.matrixWorld),this.intersectsSphere(fl)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,Wf.y=r.normal.y>0?e.max.y:e.min.y,Wf.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Wf)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function vR(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function MP(n,e){const t=e.isWebGL2,i=new WeakMap;function r(A,h){const d=A.array,f=A.usage,g=d.byteLength,E=n.createBuffer();n.bindBuffer(h,E),n.bufferData(h,d,f),A.onUploadCallback();let C;if(d instanceof Float32Array)C=n.FLOAT;else if(d instanceof Uint16Array)if(A.isFloat16BufferAttribute)if(t)C=n.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else C=n.UNSIGNED_SHORT;else if(d instanceof Int16Array)C=n.SHORT;else if(d instanceof Uint32Array)C=n.UNSIGNED_INT;else if(d instanceof Int32Array)C=n.INT;else if(d instanceof Int8Array)C=n.BYTE;else if(d instanceof Uint8Array)C=n.UNSIGNED_BYTE;else if(d instanceof Uint8ClampedArray)C=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+d);return{buffer:E,type:C,bytesPerElement:d.BYTES_PER_ELEMENT,version:A.version,size:g}}function s(A,h,d){const f=h.array,g=h._updateRange,E=h.updateRanges;if(n.bindBuffer(d,A),g.count===-1&&E.length===0&&n.bufferSubData(d,0,f),E.length!==0){for(let C=0,y=E.length;C 0 + vec4 plane; + #ifdef ALPHA_TO_COVERAGE + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + if ( clipOpacity == 0.0 ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + float unionClipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + } + #pragma unroll_loop_end + clipOpacity *= 1.0 - unionClipOpacity; + #endif + diffuseColor.a *= clipOpacity; + if ( diffuseColor.a == 0.0 ) discard; + #else + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif + #endif +#endif`,WP=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,YP=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,XP=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,JP=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,jP=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,KP=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,qP=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,ZP=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +#ifdef USE_ALPHAHASH + varying vec3 vPosition; +#endif +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); + return dot( weights, rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +} +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} // validated`,$P=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,eU=`vec3 transformedNormal = objectNormal; +#ifdef USE_TANGENT + vec3 transformedTangent = objectTangent; +#endif +#ifdef USE_BATCHING + mat3 bm = mat3( batchingMatrix ); + transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); + transformedNormal = bm * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = bm * transformedTangent; + #endif +#endif +#ifdef USE_INSTANCING + mat3 im = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); + transformedNormal = im * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = im * transformedTangent; + #endif +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,tU=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,nU=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,iU=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,rU=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,sU="gl_FragColor = linearToOutputTexel( gl_FragColor );",oU=` +const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( + vec3( 0.8224621, 0.177538, 0.0 ), + vec3( 0.0331941, 0.9668058, 0.0 ), + vec3( 0.0170827, 0.0723974, 0.9105199 ) +); +const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( + vec3( 1.2249401, - 0.2249404, 0.0 ), + vec3( - 0.0420569, 1.0420571, 0.0 ), + vec3( - 0.0196376, - 0.0786361, 1.0982735 ) +); +vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { + return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); +} +vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { + return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); +} +vec4 LinearTransferOETF( in vec4 value ) { + return value; +} +vec4 sRGBTransferOETF( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +} +vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return sRGBTransferOETF( value ); +}`,aU=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,lU=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,cU=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,uU=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,AU=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,hU=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,dU=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,fU=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,pU=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,gU=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,mU=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif`,EU=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,yU=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,vU=`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,CU=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +#if defined( USE_LIGHT_PROBES ) + uniform vec3 lightProbe[ 9 ]; +#endif +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( LEGACY_LIGHTS ) + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #else + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometryPosition; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometryPosition; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,IU=`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #ifdef USE_ANISOTROPY + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); + return getIBLRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif +#endif`,xU=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,BU=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,SU=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,_U=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,wU=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef USE_SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULAR_COLORMAP + specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEEN_COLORMAP + material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEEN_ROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; + #endif +#endif +#ifdef USE_ANISOTROPY + #ifdef USE_ANISOTROPYMAP + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; + #else + vec2 anisotropyV = anisotropyVector; + #endif + material.anisotropy = length( anisotropyV ); + if( material.anisotropy == 0.0 ) { + anisotropyV = vec2( 1.0, 0.0 ); + } else { + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + } + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; + material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; +#endif`,MU=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaT; + vec3 anisotropyT; + vec3 anisotropyB; + #endif +}; +vec3 clearcoatSpecularDirect = vec3( 0.0 ); +vec3 clearcoatSpecularIndirect = vec3( 0.0 ); +vec3 sheenSpecularDirect = vec3( 0.0 ); +vec3 sheenSpecularIndirect = vec3(0.0 ); +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +#ifdef USE_ANISOTROPY + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( gv + gl ); + return saturate(v); + } + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + return RECIPROCAL_PI * a2 * pow2 ( w2 ); + } +#endif +#ifdef USE_CLEARCOAT + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); + } +#endif +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + #ifdef USE_IRIDESCENCE + F = mix( F, material.iridescenceFresnel, material.iridescence ); + #endif + #ifdef USE_ANISOTROPY + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); + #else + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + #endif + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometryNormal; + vec3 viewDir = geometryViewDir; + vec3 position = geometryPosition; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); + #endif + #ifdef USE_SHEEN + sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,QU=` +vec3 geometryPosition = - vViewPosition; +vec3 geometryNormal = normal; +vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +vec3 geometryClearcoatNormal = vec3( 0.0 ); +#ifdef USE_CLEARCOAT + geometryClearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometryViewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometryPosition, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometryPosition, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + #if defined( USE_LIGHT_PROBES ) + irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); + #endif + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,RU=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,TU=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif`,DU=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,bU=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,LU=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,NU=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,PU=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,UU=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,FU=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + #if defined( USE_POINTS_UV ) + vec2 uv = vUv; + #else + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; + #endif +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,kU=`#if defined( USE_POINTS_UV ) + varying vec2 vUv; +#else + #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; + #endif +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,OU=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,GU=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,zU=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,HU=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif`,VU=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif`,WU=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif`,YU=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal *= faceDirection; + #endif +#endif +#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #ifdef USE_TANGENT + mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn = getTangentFrame( - vViewPosition, normal, + #if defined( USE_NORMALMAP ) + vNormalMapUv + #elif defined( USE_CLEARCOAT_NORMALMAP ) + vClearcoatNormalMapUv + #else + vUv + #endif + ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn[0] *= faceDirection; + tbn[1] *= faceDirection; + #endif +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + #ifdef USE_TANGENT + mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,XU=`#ifdef USE_NORMALMAP_OBJECTSPACE + normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( USE_NORMALMAP_TANGENTSPACE ) + vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,JU=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,jU=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,KU=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,qU=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef USE_NORMALMAP_OBJECTSPACE + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) + mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( uv.st ); + vec2 st1 = dFdy( uv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); + return mat3( T * scale, B * scale, N ); + } +#endif`,ZU=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,$U=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,eF=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif`,tF=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,nF=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,iF=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec2 packDepthToRG( in highp float v ) { + return packDepthToRGBA( v ).yx; +} +float unpackRGToDepth( const in highp vec2 v ) { + return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { + return depth * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * depth - far ); +}`,rF=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,sF=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_BATCHING + mvPosition = batchingMatrix * mvPosition; +#endif +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,oF=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,aF=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,lF=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,cF=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,uF=`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,AF=`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,hF=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,dF=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,fF=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,pF=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + mat4 getBoneMatrix( const in float i ) { + int size = textureSize( boneTexture, 0 ).x; + int j = int( i ) * 4; + int x = j % size; + int y = j / size; + vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); + vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); + vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); + vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); + return mat4( v1, v2, v3, v4 ); + } +#endif`,gF=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,mF=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,EF=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,yF=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,vF=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,CF=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return saturate( toneMappingExposure * color ); +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( + vec3( 1.6605, - 0.1246, - 0.0182 ), + vec3( - 0.5876, 1.1329, - 0.1006 ), + vec3( - 0.0728, - 0.0083, 1.1187 ) +); +const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( + vec3( 0.6274, 0.0691, 0.0164 ), + vec3( 0.3293, 0.9195, 0.0880 ), + vec3( 0.0433, 0.0113, 0.8956 ) +); +vec3 agxDefaultContrastApprox( vec3 x ) { + vec3 x2 = x * x; + vec3 x4 = x2 * x2; + return + 15.5 * x4 * x2 + - 40.14 * x4 * x + + 31.96 * x4 + - 6.868 * x2 * x + + 0.4298 * x2 + + 0.1191 * x + - 0.00232; +} +vec3 AgXToneMapping( vec3 color ) { + const mat3 AgXInsetMatrix = mat3( + vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), + vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), + vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) + ); + const mat3 AgXOutsetMatrix = mat3( + vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), + vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), + vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) + ); + const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; + color *= toneMappingExposure; + color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; + color = AgXInsetMatrix * color; + color = max( color, 1e-10 ); color = log2( color ); + color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); + color = clamp( color, 0.0, 1.0 ); + color = agxDefaultContrastApprox( color ); + color = AgXOutsetMatrix * color; + color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); + color = LINEAR_REC2020_TO_LINEAR_SRGB * color; + color = clamp( color, 0.0, 1.0 ); + return color; +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,IF=`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); +#endif`,xF=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + float w0( float a ) { + return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); + } + float w1( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); + } + float w2( float a ){ + return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); + } + float w3( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * a ); + } + float g0( float a ) { + return w0( a ) + w1( a ); + } + float g1( float a ) { + return w2( a ) + w3( a ); + } + float h0( float a ) { + return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); + } + float h1( float a ) { + return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); + } + vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { + uv = uv * texelSize.zw + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + float g0x = g0( fuv.x ); + float g1x = g1( fuv.x ); + float h0x = h0( fuv.x ); + float h1x = h1( fuv.x ); + float h0y = h0( fuv.y ); + float h1y = h1( fuv.y ); + vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); + } + vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { + vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); + vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); + vec2 fLodSizeInv = 1.0 / fLodSize; + vec2 cLodSizeInv = 1.0 / cLodSize; + vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); + vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); + return mix( fSample, cSample, fract( lod ) ); + } + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); + } + vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return vec3( 1.0 ); + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 attenuatedColor = transmittance * transmittedLight.rgb; + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; + return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); + } +#endif`,BF=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + varying vec2 vNormalMapUv; +#endif +#ifdef USE_EMISSIVEMAP + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_SPECULARMAP + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,SF=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + uniform mat3 mapTransform; + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + uniform mat3 alphaMapTransform; + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + uniform mat3 lightMapTransform; + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + uniform mat3 aoMapTransform; + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + uniform mat3 bumpMapTransform; + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + uniform mat3 normalMapTransform; + varying vec2 vNormalMapUv; +#endif +#ifdef USE_DISPLACEMENTMAP + uniform mat3 displacementMapTransform; + varying vec2 vDisplacementMapUv; +#endif +#ifdef USE_EMISSIVEMAP + uniform mat3 emissiveMapTransform; + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + uniform mat3 metalnessMapTransform; + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + uniform mat3 roughnessMapTransform; + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + uniform mat3 anisotropyMapTransform; + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + uniform mat3 clearcoatMapTransform; + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform mat3 clearcoatNormalMapTransform; + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform mat3 clearcoatRoughnessMapTransform; + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + uniform mat3 sheenColorMapTransform; + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + uniform mat3 sheenRoughnessMapTransform; + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + uniform mat3 iridescenceMapTransform; + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform mat3 iridescenceThicknessMapTransform; + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SPECULARMAP + uniform mat3 specularMapTransform; + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + uniform mat3 specularColorMapTransform; + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + uniform mat3 specularIntensityMapTransform; + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,_F=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + vUv = vec3( uv, 1 ).xy; +#endif +#ifdef USE_MAP + vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ALPHAMAP + vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_LIGHTMAP + vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_AOMAP + vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_BUMPMAP + vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_NORMALMAP + vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_DISPLACEMENTMAP + vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_EMISSIVEMAP + vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_METALNESSMAP + vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ROUGHNESSMAP + vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ANISOTROPYMAP + vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOATMAP + vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCEMAP + vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_COLORMAP + vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULARMAP + vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_COLORMAP + vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_TRANSMISSIONMAP + vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_THICKNESSMAP + vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; +#endif`,wF=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_BATCHING + worldPosition = batchingMatrix * worldPosition; + #endif + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const MF=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,QF=`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,RF=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,TF=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,DF=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,bF=`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,LF=`#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,NF=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,PF=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,UF=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +#include +void main () { + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,FF=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,kF=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,OF=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,GF=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,zF=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,HF=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,VF=`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,WF=`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,YF=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,XF=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,JF=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + vViewPosition = - mvPosition.xyz; +#endif +}`,jF=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,KF=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,qF=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,ZF=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,$F=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define USE_SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef USE_SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULAR_COLORMAP + uniform sampler2D specularColorMap; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEEN_COLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEEN_ROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropyVector; + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,ek=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,tk=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,nk=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +#ifdef USE_POINTS_UV + varying vec2 vUv; + uniform mat3 uvTransform; +#endif +void main() { + #ifdef USE_POINTS_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + #endif + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,ik=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,rk=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,sk=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,ok=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,ak=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,Ut={alphahash_fragment:QP,alphahash_pars_fragment:RP,alphamap_fragment:TP,alphamap_pars_fragment:DP,alphatest_fragment:bP,alphatest_pars_fragment:LP,aomap_fragment:NP,aomap_pars_fragment:PP,batching_pars_vertex:UP,batching_vertex:FP,begin_vertex:kP,beginnormal_vertex:OP,bsdfs:GP,iridescence_fragment:zP,bumpmap_pars_fragment:HP,clipping_planes_fragment:VP,clipping_planes_pars_fragment:WP,clipping_planes_pars_vertex:YP,clipping_planes_vertex:XP,color_fragment:JP,color_pars_fragment:jP,color_pars_vertex:KP,color_vertex:qP,common:ZP,cube_uv_reflection_fragment:$P,defaultnormal_vertex:eU,displacementmap_pars_vertex:tU,displacementmap_vertex:nU,emissivemap_fragment:iU,emissivemap_pars_fragment:rU,colorspace_fragment:sU,colorspace_pars_fragment:oU,envmap_fragment:aU,envmap_common_pars_fragment:lU,envmap_pars_fragment:cU,envmap_pars_vertex:uU,envmap_physical_pars_fragment:IU,envmap_vertex:AU,fog_vertex:hU,fog_pars_vertex:dU,fog_fragment:fU,fog_pars_fragment:pU,gradientmap_pars_fragment:gU,lightmap_fragment:mU,lightmap_pars_fragment:EU,lights_lambert_fragment:yU,lights_lambert_pars_fragment:vU,lights_pars_begin:CU,lights_toon_fragment:xU,lights_toon_pars_fragment:BU,lights_phong_fragment:SU,lights_phong_pars_fragment:_U,lights_physical_fragment:wU,lights_physical_pars_fragment:MU,lights_fragment_begin:QU,lights_fragment_maps:RU,lights_fragment_end:TU,logdepthbuf_fragment:DU,logdepthbuf_pars_fragment:bU,logdepthbuf_pars_vertex:LU,logdepthbuf_vertex:NU,map_fragment:PU,map_pars_fragment:UU,map_particle_fragment:FU,map_particle_pars_fragment:kU,metalnessmap_fragment:OU,metalnessmap_pars_fragment:GU,morphcolor_vertex:zU,morphnormal_vertex:HU,morphtarget_pars_vertex:VU,morphtarget_vertex:WU,normal_fragment_begin:YU,normal_fragment_maps:XU,normal_pars_fragment:JU,normal_pars_vertex:jU,normal_vertex:KU,normalmap_pars_fragment:qU,clearcoat_normal_fragment_begin:ZU,clearcoat_normal_fragment_maps:$U,clearcoat_pars_fragment:eF,iridescence_pars_fragment:tF,opaque_fragment:nF,packing:iF,premultiplied_alpha_fragment:rF,project_vertex:sF,dithering_fragment:oF,dithering_pars_fragment:aF,roughnessmap_fragment:lF,roughnessmap_pars_fragment:cF,shadowmap_pars_fragment:uF,shadowmap_pars_vertex:AF,shadowmap_vertex:hF,shadowmask_pars_fragment:dF,skinbase_vertex:fF,skinning_pars_vertex:pF,skinning_vertex:gF,skinnormal_vertex:mF,specularmap_fragment:EF,specularmap_pars_fragment:yF,tonemapping_fragment:vF,tonemapping_pars_fragment:CF,transmission_fragment:IF,transmission_pars_fragment:xF,uv_pars_fragment:BF,uv_pars_vertex:SF,uv_vertex:_F,worldpos_vertex:wF,background_vert:MF,background_frag:QF,backgroundCube_vert:RF,backgroundCube_frag:TF,cube_vert:DF,cube_frag:bF,depth_vert:LF,depth_frag:NF,distanceRGBA_vert:PF,distanceRGBA_frag:UF,equirect_vert:FF,equirect_frag:kF,linedashed_vert:OF,linedashed_frag:GF,meshbasic_vert:zF,meshbasic_frag:HF,meshlambert_vert:VF,meshlambert_frag:WF,meshmatcap_vert:YF,meshmatcap_frag:XF,meshnormal_vert:JF,meshnormal_frag:jF,meshphong_vert:KF,meshphong_frag:qF,meshphysical_vert:ZF,meshphysical_frag:$F,meshtoon_vert:ek,meshtoon_frag:tk,points_vert:nk,points_frag:ik,shadow_vert:rk,shadow_frag:sk,sprite_vert:ok,sprite_frag:ak},Ye={common:{diffuse:{value:new Je(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Rt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Rt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Rt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Rt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Rt},normalScale:{value:new Be(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Rt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Rt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Rt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Rt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Je(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Je(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0},uvTransform:{value:new Rt}},sprite:{diffuse:{value:new Je(16777215)},opacity:{value:1},center:{value:new Be(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}}},us={basic:{uniforms:zi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.fog]),vertexShader:Ut.meshbasic_vert,fragmentShader:Ut.meshbasic_frag},lambert:{uniforms:zi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:Ut.meshlambert_vert,fragmentShader:Ut.meshlambert_frag},phong:{uniforms:zi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},specular:{value:new Je(1118481)},shininess:{value:30}}]),vertexShader:Ut.meshphong_vert,fragmentShader:Ut.meshphong_frag},standard:{uniforms:zi([Ye.common,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.roughnessmap,Ye.metalnessmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ut.meshphysical_vert,fragmentShader:Ut.meshphysical_frag},toon:{uniforms:zi([Ye.common,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.gradientmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:Ut.meshtoon_vert,fragmentShader:Ut.meshtoon_frag},matcap:{uniforms:zi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,{matcap:{value:null}}]),vertexShader:Ut.meshmatcap_vert,fragmentShader:Ut.meshmatcap_frag},points:{uniforms:zi([Ye.points,Ye.fog]),vertexShader:Ut.points_vert,fragmentShader:Ut.points_frag},dashed:{uniforms:zi([Ye.common,Ye.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ut.linedashed_vert,fragmentShader:Ut.linedashed_frag},depth:{uniforms:zi([Ye.common,Ye.displacementmap]),vertexShader:Ut.depth_vert,fragmentShader:Ut.depth_frag},normal:{uniforms:zi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,{opacity:{value:1}}]),vertexShader:Ut.meshnormal_vert,fragmentShader:Ut.meshnormal_frag},sprite:{uniforms:zi([Ye.sprite,Ye.fog]),vertexShader:Ut.sprite_vert,fragmentShader:Ut.sprite_frag},background:{uniforms:{uvTransform:{value:new Rt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ut.background_vert,fragmentShader:Ut.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Ut.backgroundCube_vert,fragmentShader:Ut.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ut.cube_vert,fragmentShader:Ut.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ut.equirect_vert,fragmentShader:Ut.equirect_frag},distanceRGBA:{uniforms:zi([Ye.common,Ye.displacementmap,{referencePosition:{value:new G},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ut.distanceRGBA_vert,fragmentShader:Ut.distanceRGBA_frag},shadow:{uniforms:zi([Ye.lights,Ye.fog,{color:{value:new Je(0)},opacity:{value:1}}]),vertexShader:Ut.shadow_vert,fragmentShader:Ut.shadow_frag}};us.physical={uniforms:zi([us.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Rt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Rt},clearcoatNormalScale:{value:new Be(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Rt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Rt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Rt},sheen:{value:0},sheenColor:{value:new Je(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Rt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Rt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Rt},transmissionSamplerSize:{value:new Be},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Rt},attenuationDistance:{value:0},attenuationColor:{value:new Je(0)},specularColor:{value:new Je(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Rt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Rt},anisotropyVector:{value:new Be},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Rt}}]),vertexShader:Ut.meshphysical_vert,fragmentShader:Ut.meshphysical_frag};const Yf={r:0,b:0,g:0};function lk(n,e,t,i,r,s,o){const a=new Je(0);let l=s===!0?0:1,A,h,d=null,f=0,g=null;function E(y,p){let v=!1,I=p.isScene===!0?p.background:null;I&&I.isTexture&&(I=(p.backgroundBlurriness>0?t:e).get(I)),I===null?C(a,l):I&&I.isColor&&(C(I,1),v=!0);const B=n.xr.getEnvironmentBlendMode();B==="additive"?i.buffers.color.setClear(0,0,0,1,o):B==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||v)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),I&&(I.isCubeTexture||I.mapping===Fu)?(h===void 0&&(h=new en(new ic(1,1,1),new gs({name:"BackgroundCubeMaterial",uniforms:bu(us.backgroundCube.uniforms),vertexShader:us.backgroundCube.vertexShader,fragmentShader:us.backgroundCube.fragmentShader,side:Ji,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,M,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=I,h.material.uniforms.flipEnvMap.value=I.isCubeTexture&&I.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=p.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,h.material.toneMapped=un.getTransfer(I.colorSpace)!==mn,(d!==I||f!==I.version||g!==n.toneMapping)&&(h.material.needsUpdate=!0,d=I,f=I.version,g=n.toneMapping),h.layers.enableAll(),y.unshift(h,h.geometry,h.material,0,0,null)):I&&I.isTexture&&(A===void 0&&(A=new en(new Ha(2,2),new gs({name:"BackgroundMaterial",uniforms:bu(us.background.uniforms),vertexShader:us.background.vertexShader,fragmentShader:us.background.fragmentShader,side:Kr,depthTest:!1,depthWrite:!1,fog:!1})),A.geometry.deleteAttribute("normal"),Object.defineProperty(A.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(A)),A.material.uniforms.t2D.value=I,A.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,A.material.toneMapped=un.getTransfer(I.colorSpace)!==mn,I.matrixAutoUpdate===!0&&I.updateMatrix(),A.material.uniforms.uvTransform.value.copy(I.matrix),(d!==I||f!==I.version||g!==n.toneMapping)&&(A.material.needsUpdate=!0,d=I,f=I.version,g=n.toneMapping),A.layers.enableAll(),y.unshift(A,A.geometry,A.material,0,0,null))}function C(y,p){y.getRGB(Yf,gR(n)),i.buffers.color.setClear(Yf.r,Yf.g,Yf.b,p,o)}return{getClearColor:function(){return a},setClearColor:function(y,p=1){a.set(y),l=p,C(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(y){l=y,C(a,l)},render:E}}function ck(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||s!==null,a={},l=y(null);let A=l,h=!1;function d(J,re,ne,ue,F){let ee=!1;if(o){const te=C(ue,ne,re);A!==te&&(A=te,g(A.object)),ee=p(J,ue,ne,F),ee&&v(J,ue,ne,F)}else{const te=re.wireframe===!0;(A.geometry!==ue.id||A.program!==ne.id||A.wireframe!==te)&&(A.geometry=ue.id,A.program=ne.id,A.wireframe=te,ee=!0)}F!==null&&t.update(F,n.ELEMENT_ARRAY_BUFFER),(ee||h)&&(h=!1,P(J,re,ne,ue),F!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(F).buffer))}function f(){return i.isWebGL2?n.createVertexArray():s.createVertexArrayOES()}function g(J){return i.isWebGL2?n.bindVertexArray(J):s.bindVertexArrayOES(J)}function E(J){return i.isWebGL2?n.deleteVertexArray(J):s.deleteVertexArrayOES(J)}function C(J,re,ne){const ue=ne.wireframe===!0;let F=a[J.id];F===void 0&&(F={},a[J.id]=F);let ee=F[re.id];ee===void 0&&(ee={},F[re.id]=ee);let te=ee[ue];return te===void 0&&(te=y(f()),ee[ue]=te),te}function y(J){const re=[],ne=[],ue=[];for(let F=0;F=0){const Y=F[ve];let z=ee[ve];if(z===void 0&&(ve==="instanceMatrix"&&J.instanceMatrix&&(z=J.instanceMatrix),ve==="instanceColor"&&J.instanceColor&&(z=J.instanceColor)),Y===void 0||Y.attribute!==z||z&&Y.data!==z.data)return!0;te++}return A.attributesNum!==te||A.index!==ue}function v(J,re,ne,ue){const F={},ee=re.attributes;let te=0;const Ae=ne.getAttributes();for(const ve in Ae)if(Ae[ve].location>=0){let Y=ee[ve];Y===void 0&&(ve==="instanceMatrix"&&J.instanceMatrix&&(Y=J.instanceMatrix),ve==="instanceColor"&&J.instanceColor&&(Y=J.instanceColor));const z={};z.attribute=Y,Y&&Y.data&&(z.data=Y.data),F[ve]=z,te++}A.attributes=F,A.attributesNum=te,A.index=ue}function I(){const J=A.newAttributes;for(let re=0,ne=J.length;re=0){let Oe=F[Ae];if(Oe===void 0&&(Ae==="instanceMatrix"&&J.instanceMatrix&&(Oe=J.instanceMatrix),Ae==="instanceColor"&&J.instanceColor&&(Oe=J.instanceColor)),Oe!==void 0){const Y=Oe.normalized,z=Oe.itemSize,O=t.get(Oe);if(O===void 0)continue;const k=O.buffer,me=O.type,Ie=O.bytesPerElement,oe=i.isWebGL2===!0&&(me===n.INT||me===n.UNSIGNED_INT||Oe.gpuType===NI);if(Oe.isInterleavedBufferAttribute){const Se=Oe.data,H=Se.stride,Ee=Oe.offset;if(Se.isInstancedInterleavedBuffer){for(let ie=0;ie0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext";let a=t.precision!==void 0?t.precision:"highp";const l=s(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);const A=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,d=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),f=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),g=n.getParameter(n.MAX_TEXTURE_SIZE),E=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),C=n.getParameter(n.MAX_VERTEX_ATTRIBS),y=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),p=n.getParameter(n.MAX_VARYING_VECTORS),v=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),I=f>0,B=o||e.has("OES_texture_float"),R=I&&B,M=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:A,getMaxAnisotropy:r,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:d,maxVertexTextures:f,maxTextureSize:g,maxCubemapSize:E,maxAttributes:C,maxVertexUniforms:y,maxVaryings:p,maxFragmentUniforms:v,vertexTextures:I,floatFragmentTextures:B,floatVertexTextures:R,maxSamples:M}}function hk(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new on,a=new Rt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(d,f){const g=d.length!==0||f||i!==0||r;return r=f,i=d.length,g},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(d,f){t=h(d,f,0)},this.setState=function(d,f,g){const E=d.clippingPlanes,C=d.clipIntersection,y=d.clipShadows,p=n.get(d);if(!r||E===null||E.length===0||s&&!y)s?h(null):A();else{const v=s?0:i,I=v*4;let B=p.clippingState||null;l.value=B,B=h(E,f,I,g);for(let R=0;R!==I;++R)B[R]=t[R];p.clippingState=B,this.numIntersection=C?this.numPlanes:0,this.numPlanes+=v}};function A(){l.value!==t&&(l.value=t,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(d,f,g,E){const C=d!==null?d.length:0;let y=null;if(C!==0){if(y=l.value,E!==!0||y===null){const p=g+C*4,v=f.matrixWorldInverse;a.getNormalMatrix(v),(y===null||y.length0){const A=new yR(l.height);return A.fromEquirectangularTexture(n,o),e.set(o,A),o.addEventListener("dispose",r),t(A.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}class id extends ed{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,a=r+t,l=r-t;if(this.view!==null&&this.view.enabled){const A=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=A*this.view.offsetX,o=s+A*this.view.width,a-=h*this.view.offsetY,l=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}const Au=4,kS=[.125,.215,.35,.446,.526,.582],Tl=20,UE=new id,OS=new Je;let FE=null,kE=0,OE=0;const wl=(1+Math.sqrt(5))/2,Pc=1/wl,GS=[new G(1,1,1),new G(-1,1,1),new G(1,1,-1),new G(-1,1,-1),new G(0,wl,Pc),new G(0,wl,-Pc),new G(Pc,0,wl),new G(-Pc,0,wl),new G(wl,Pc,0),new G(-wl,Pc,0)];class AC{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){FE=this._renderer.getRenderTarget(),kE=this._renderer.getActiveCubeFace(),OE=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=VS(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=HS(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?I:0,I,I),h.setRenderTarget(r),C&&h.render(E,a),h.render(e,a)}E.geometry.dispose(),E.material.dispose(),h.toneMapping=f,h.autoClear=d,e.background=y}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===So||e.mapping===Pa;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=VS()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=HS());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new en(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;const l=this._cubeSize;Xf(t,0,0,3*l,2*l),i.setRenderTarget(t),i.render(o,UE)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;rTl&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${y} samples when the maximum is set to ${Tl}`);const p=[];let v=0;for(let T=0;TI-Au?r-I+Au:0),M=4*(this._cubeSize-B);Xf(t,R,M,3*B,2*B),l.setRenderTarget(t),l.render(d,UE)}}function fk(n){const e=[],t=[],i=[];let r=n;const s=n-Au+1+kS.length;for(let o=0;on-Au?l=kS[o-n+Au-1]:o===0&&(l=0),i.push(l);const A=1/(a-2),h=-A,d=1+A,f=[h,h,d,h,d,d,h,h,d,d,h,d],g=6,E=6,C=3,y=2,p=1,v=new Float32Array(C*E*g),I=new Float32Array(y*E*g),B=new Float32Array(p*E*g);for(let M=0;M2?0:-1,K=[T,P,0,T+2/3,P,0,T+2/3,P+1,0,T,P,0,T+2/3,P+1,0,T,P+1,0];v.set(K,C*E*M),I.set(f,y*E*M);const w=[M,M,M,M,M,M];B.set(w,p*E*M)}const R=new Nt;R.setAttribute("position",new cn(v,C)),R.setAttribute("uv",new cn(I,y)),R.setAttribute("faceIndex",new cn(B,p)),e.push(R),r>Au&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function zS(n,e,t){const i=new qr(n,e,t);return i.texture.mapping=Fu,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function Xf(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function pk(n,e,t){const i=new Float32Array(Tl),r=new G(0,1,0);return new gs({name:"SphericalGaussianBlur",defines:{n:Tl,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:qI(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:vo,depthTest:!1,depthWrite:!1})}function HS(){return new gs({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:qI(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:vo,depthTest:!1,depthWrite:!1})}function VS(){return new gs({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:qI(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:vo,depthTest:!1,depthWrite:!1})}function qI(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function gk(n){let e=new WeakMap,t=null;function i(a){if(a&&a.isTexture){const l=a.mapping,A=l===Bh||l===Sh,h=l===So||l===Pa;if(A||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let d=e.get(a);return t===null&&(t=new AC(n)),d=A?t.fromEquirectangular(a,d):t.fromCubemap(a,d),e.set(a,d),d.texture}else{if(e.has(a))return e.get(a).texture;{const d=a.image;if(A&&d&&d.height>0||h&&d&&r(d)){t===null&&(t=new AC(n));const f=A?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,f),a.addEventListener("dispose",s),f.texture}else return null}}}return a}function r(a){let l=0;const A=6;for(let h=0;he.maxTextureSize&&(L=Math.ceil(w/e.maxTextureSize),w=e.maxTextureSize);const q=new Float32Array(w*L*4*C),fe=new dm(q,w,L,C);fe.type=zr,fe.needsUpdate=!0;const J=K*4;for(let ne=0;ne0)return n;const r=e*t;let s=WS[r];if(s===void 0&&(s=new Float32Array(r),WS[r]=s),e!==0){i.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(s,a)}return s}function si(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${a}: ${t[o]}`)}return i.join(` +`)}function E4(n){const e=un.getPrimaries(un.workingColorSpace),t=un.getPrimaries(n);let i;switch(e===t?i="":e===bh&&t===Dh?i="LinearDisplayP3ToLinearSRGB":e===Dh&&t===bh&&(i="LinearSRGBToLinearDisplayP3"),n){case Gs:case $h:return[i,"LinearTransferOETF"];case Hn:case hm:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}function ZS(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=n.getShaderInfoLog(e).trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` + +`+r+` + +`+m4(n.getShaderSource(e),o)}else return r}function y4(n,e){const t=E4(e);return`vec4 ${n}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function v4(n,e){let t;switch(e){case O2:t="Linear";break;case G2:t="Reinhard";break;case z2:t="OptimizedCineon";break;case LI:t="ACESFilmic";break;case V2:t="AgX";break;case H2:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function C4(n){return[n.extensionDerivatives||n.envMapCubeUVHeight||n.bumpMap||n.normalMapTangentSpace||n.clearcoatNormalMap||n.flatShading||n.alphaToCoverage||n.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(n.extensionFragDepth||n.logarithmicDepthBuffer)&&n.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",n.extensionDrawBuffers&&n.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(n.extensionShaderTextureLOD||n.envMap||n.transmission)&&n.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(hu).join(` +`)}function I4(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(hu).join(` +`)}function x4(n){const e=[];for(const t in n){const i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(` +`)}function B4(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function hC(n){return n.replace(S4,w4)}const _4=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function w4(n,e){let t=Ut[e];if(t===void 0){const i=_4.get(e);if(i!==void 0)t=Ut[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return hC(t)}const M4=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function t_(n){return n.replace(M4,Q4)}function Q4(n,e,t,i){let r="";for(let s=parseInt(e);s0&&(p+=` +`),v=[g,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,C].filter(hu).join(` +`),v.length>0&&(v+=` +`)):(p=[n_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,C,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(hu).join(` +`),v=[g,n_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,C,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+A:"",t.envMap?"#define "+h:"",t.envMap?"#define "+d:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==ks?"#define TONE_MAPPING":"",t.toneMapping!==ks?Ut.tonemapping_pars_fragment:"",t.toneMapping!==ks?v4("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",Ut.colorspace_pars_fragment,y4("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(hu).join(` +`)),o=hC(o),o=$S(o,t),o=e_(o,t),a=hC(a),a=$S(a,t),a=e_(a,t),o=t_(o),a=t_(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(I=`#version 300 es +`,p=[E,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+p,v=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===cC?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===cC?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+v);const B=I+p+o,R=I+v+a,M=qS(r,r.VERTEX_SHADER,B),T=qS(r,r.FRAGMENT_SHADER,R);r.attachShader(y,M),r.attachShader(y,T),t.index0AttributeName!==void 0?r.bindAttribLocation(y,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(y,0,"position"),r.linkProgram(y);function P(q){if(n.debug.checkShaderErrors){const fe=r.getProgramInfoLog(y).trim(),J=r.getShaderInfoLog(M).trim(),re=r.getShaderInfoLog(T).trim();let ne=!0,ue=!0;if(r.getProgramParameter(y,r.LINK_STATUS)===!1)if(ne=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,y,M,T);else{const F=ZS(r,M,"vertex"),ee=ZS(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(y,r.VALIDATE_STATUS)+` + +Material Name: `+q.name+` +Material Type: `+q.type+` + +Program Info Log: `+fe+` +`+F+` +`+ee)}else fe!==""?console.warn("THREE.WebGLProgram: Program Info Log:",fe):(J===""||re==="")&&(ue=!1);ue&&(q.diagnostics={runnable:ne,programLog:fe,vertexShader:{log:J,prefix:p},fragmentShader:{log:re,prefix:v}})}r.deleteShader(M),r.deleteShader(T),K=new $p(r,y),w=B4(r,y)}let K;this.getUniforms=function(){return K===void 0&&P(this),K};let w;this.getAttributes=function(){return w===void 0&&P(this),w};let L=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return L===!1&&(L=r.getProgramParameter(y,p4)),L},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(y),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=g4++,this.cacheKey=e,this.usedTimes=1,this.program=y,this.vertexShader=M,this.fragmentShader=T,this}let P4=0;class U4{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new F4(e),t.set(e,i)),i}}class F4{constructor(e){this.id=P4++,this.code=e,this.usedTimes=0}}function k4(n,e,t,i,r,s,o){const a=new Vl,l=new U4,A=new Set,h=[],d=r.isWebGL2,f=r.logarithmicDepthBuffer,g=r.vertexTextures;let E=r.precision;const C={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function y(w){return A.add(w),w===0?"uv":`uv${w}`}function p(w,L,q,fe,J){const re=fe.fog,ne=J.geometry,ue=w.isMeshStandardMaterial?fe.environment:null,F=(w.isMeshStandardMaterial?t:e).get(w.envMap||ue),ee=F&&F.mapping===Fu?F.image.height:null,te=C[w.type];w.precision!==null&&(E=r.getMaxPrecision(w.precision),E!==w.precision&&console.warn("THREE.WebGLProgram.getParameters:",w.precision,"not supported, using",E,"instead."));const Ae=ne.morphAttributes.position||ne.morphAttributes.normal||ne.morphAttributes.color,ve=Ae!==void 0?Ae.length:0;let Oe=0;ne.morphAttributes.position!==void 0&&(Oe=1),ne.morphAttributes.normal!==void 0&&(Oe=2),ne.morphAttributes.color!==void 0&&(Oe=3);let Y,z,O,k;if(te){const Kt=us[te];Y=Kt.vertexShader,z=Kt.fragmentShader}else Y=w.vertexShader,z=w.fragmentShader,l.update(w),O=l.getVertexShaderID(w),k=l.getFragmentShaderID(w);const me=n.getRenderTarget(),Ie=J.isInstancedMesh===!0,oe=J.isBatchedMesh===!0,Se=!!w.map,H=!!w.matcap,Ee=!!F,ie=!!w.aoMap,le=!!w.lightMap,de=!!w.bumpMap,Te=!!w.normalMap,$=!!w.displacementMap,_=!!w.emissiveMap,D=!!w.metalnessMap,se=!!w.roughnessMap,Le=w.anisotropy>0,De=w.clearcoat>0,Qe=w.iridescence>0,Xe=w.sheen>0,Ve=w.transmission>0,Ke=Le&&!!w.anisotropyMap,lt=De&&!!w.clearcoatMap,It=De&&!!w.clearcoatNormalMap,Pe=De&&!!w.clearcoatRoughnessMap,Pt=Qe&&!!w.iridescenceMap,wt=Qe&&!!w.iridescenceThicknessMap,pt=Xe&&!!w.sheenColorMap,at=Xe&&!!w.sheenRoughnessMap,tt=!!w.specularMap,Bt=!!w.specularColorMap,Ot=!!w.specularIntensityMap,tn=Ve&&!!w.transmissionMap,Mt=Ve&&!!w.thicknessMap,Jt=!!w.gradientMap,j=!!w.alphaMap,Ge=w.alphaTest>0,Fe=!!w.alphaHash,rt=!!w.extensions;let dt=ks;w.toneMapped&&(me===null||me.isXRRenderTarget===!0)&&(dt=n.toneMapping);const jt={isWebGL2:d,shaderID:te,shaderType:w.type,shaderName:w.name,vertexShader:Y,fragmentShader:z,defines:w.defines,customVertexShaderID:O,customFragmentShaderID:k,isRawShaderMaterial:w.isRawShaderMaterial===!0,glslVersion:w.glslVersion,precision:E,batching:oe,instancing:Ie,instancingColor:Ie&&J.instanceColor!==null,supportsVertexTextures:g,outputColorSpace:me===null?n.outputColorSpace:me.isXRRenderTarget===!0?me.texture.colorSpace:Gs,alphaToCoverage:!!w.alphaToCoverage,map:Se,matcap:H,envMap:Ee,envMapMode:Ee&&F.mapping,envMapCubeUVHeight:ee,aoMap:ie,lightMap:le,bumpMap:de,normalMap:Te,displacementMap:g&&$,emissiveMap:_,normalMapObjectSpace:Te&&w.normalMapType===rR,normalMapTangentSpace:Te&&w.normalMapType===Ga,metalnessMap:D,roughnessMap:se,anisotropy:Le,anisotropyMap:Ke,clearcoat:De,clearcoatMap:lt,clearcoatNormalMap:It,clearcoatRoughnessMap:Pe,iridescence:Qe,iridescenceMap:Pt,iridescenceThicknessMap:wt,sheen:Xe,sheenColorMap:pt,sheenRoughnessMap:at,specularMap:tt,specularColorMap:Bt,specularIntensityMap:Ot,transmission:Ve,transmissionMap:tn,thicknessMap:Mt,gradientMap:Jt,opaque:w.transparent===!1&&w.blending===Gl&&w.alphaToCoverage===!1,alphaMap:j,alphaTest:Ge,alphaHash:Fe,combine:w.combine,mapUv:Se&&y(w.map.channel),aoMapUv:ie&&y(w.aoMap.channel),lightMapUv:le&&y(w.lightMap.channel),bumpMapUv:de&&y(w.bumpMap.channel),normalMapUv:Te&&y(w.normalMap.channel),displacementMapUv:$&&y(w.displacementMap.channel),emissiveMapUv:_&&y(w.emissiveMap.channel),metalnessMapUv:D&&y(w.metalnessMap.channel),roughnessMapUv:se&&y(w.roughnessMap.channel),anisotropyMapUv:Ke&&y(w.anisotropyMap.channel),clearcoatMapUv:lt&&y(w.clearcoatMap.channel),clearcoatNormalMapUv:It&&y(w.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Pe&&y(w.clearcoatRoughnessMap.channel),iridescenceMapUv:Pt&&y(w.iridescenceMap.channel),iridescenceThicknessMapUv:wt&&y(w.iridescenceThicknessMap.channel),sheenColorMapUv:pt&&y(w.sheenColorMap.channel),sheenRoughnessMapUv:at&&y(w.sheenRoughnessMap.channel),specularMapUv:tt&&y(w.specularMap.channel),specularColorMapUv:Bt&&y(w.specularColorMap.channel),specularIntensityMapUv:Ot&&y(w.specularIntensityMap.channel),transmissionMapUv:tn&&y(w.transmissionMap.channel),thicknessMapUv:Mt&&y(w.thicknessMap.channel),alphaMapUv:j&&y(w.alphaMap.channel),vertexTangents:!!ne.attributes.tangent&&(Te||Le),vertexColors:w.vertexColors,vertexAlphas:w.vertexColors===!0&&!!ne.attributes.color&&ne.attributes.color.itemSize===4,pointsUvs:J.isPoints===!0&&!!ne.attributes.uv&&(Se||j),fog:!!re,useFog:w.fog===!0,fogExp2:!!re&&re.isFogExp2,flatShading:w.flatShading===!0,sizeAttenuation:w.sizeAttenuation===!0,logarithmicDepthBuffer:f,skinning:J.isSkinnedMesh===!0,morphTargets:ne.morphAttributes.position!==void 0,morphNormals:ne.morphAttributes.normal!==void 0,morphColors:ne.morphAttributes.color!==void 0,morphTargetsCount:ve,morphTextureStride:Oe,numDirLights:L.directional.length,numPointLights:L.point.length,numSpotLights:L.spot.length,numSpotLightMaps:L.spotLightMap.length,numRectAreaLights:L.rectArea.length,numHemiLights:L.hemi.length,numDirLightShadows:L.directionalShadowMap.length,numPointLightShadows:L.pointShadowMap.length,numSpotLightShadows:L.spotShadowMap.length,numSpotLightShadowsWithMaps:L.numSpotLightShadowsWithMaps,numLightProbes:L.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:w.dithering,shadowMapEnabled:n.shadowMap.enabled&&q.length>0,shadowMapType:n.shadowMap.type,toneMapping:dt,useLegacyLights:n._useLegacyLights,decodeVideoTexture:Se&&w.map.isVideoTexture===!0&&un.getTransfer(w.map.colorSpace)===mn,premultipliedAlpha:w.premultipliedAlpha,doubleSided:w.side===bs,flipSided:w.side===Ji,useDepthPacking:w.depthPacking>=0,depthPacking:w.depthPacking||0,index0AttributeName:w.index0AttributeName,extensionDerivatives:rt&&w.extensions.derivatives===!0,extensionFragDepth:rt&&w.extensions.fragDepth===!0,extensionDrawBuffers:rt&&w.extensions.drawBuffers===!0,extensionShaderTextureLOD:rt&&w.extensions.shaderTextureLOD===!0,extensionClipCullDistance:rt&&w.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:rt&&w.extensions.multiDraw===!0&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:d||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:d||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:d||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:w.customProgramCacheKey()};return jt.vertexUv1s=A.has(1),jt.vertexUv2s=A.has(2),jt.vertexUv3s=A.has(3),A.clear(),jt}function v(w){const L=[];if(w.shaderID?L.push(w.shaderID):(L.push(w.customVertexShaderID),L.push(w.customFragmentShaderID)),w.defines!==void 0)for(const q in w.defines)L.push(q),L.push(w.defines[q]);return w.isRawShaderMaterial===!1&&(I(L,w),B(L,w),L.push(n.outputColorSpace)),L.push(w.customProgramCacheKey),L.join()}function I(w,L){w.push(L.precision),w.push(L.outputColorSpace),w.push(L.envMapMode),w.push(L.envMapCubeUVHeight),w.push(L.mapUv),w.push(L.alphaMapUv),w.push(L.lightMapUv),w.push(L.aoMapUv),w.push(L.bumpMapUv),w.push(L.normalMapUv),w.push(L.displacementMapUv),w.push(L.emissiveMapUv),w.push(L.metalnessMapUv),w.push(L.roughnessMapUv),w.push(L.anisotropyMapUv),w.push(L.clearcoatMapUv),w.push(L.clearcoatNormalMapUv),w.push(L.clearcoatRoughnessMapUv),w.push(L.iridescenceMapUv),w.push(L.iridescenceThicknessMapUv),w.push(L.sheenColorMapUv),w.push(L.sheenRoughnessMapUv),w.push(L.specularMapUv),w.push(L.specularColorMapUv),w.push(L.specularIntensityMapUv),w.push(L.transmissionMapUv),w.push(L.thicknessMapUv),w.push(L.combine),w.push(L.fogExp2),w.push(L.sizeAttenuation),w.push(L.morphTargetsCount),w.push(L.morphAttributeCount),w.push(L.numDirLights),w.push(L.numPointLights),w.push(L.numSpotLights),w.push(L.numSpotLightMaps),w.push(L.numHemiLights),w.push(L.numRectAreaLights),w.push(L.numDirLightShadows),w.push(L.numPointLightShadows),w.push(L.numSpotLightShadows),w.push(L.numSpotLightShadowsWithMaps),w.push(L.numLightProbes),w.push(L.shadowMapType),w.push(L.toneMapping),w.push(L.numClippingPlanes),w.push(L.numClipIntersection),w.push(L.depthPacking)}function B(w,L){a.disableAll(),L.isWebGL2&&a.enable(0),L.supportsVertexTextures&&a.enable(1),L.instancing&&a.enable(2),L.instancingColor&&a.enable(3),L.matcap&&a.enable(4),L.envMap&&a.enable(5),L.normalMapObjectSpace&&a.enable(6),L.normalMapTangentSpace&&a.enable(7),L.clearcoat&&a.enable(8),L.iridescence&&a.enable(9),L.alphaTest&&a.enable(10),L.vertexColors&&a.enable(11),L.vertexAlphas&&a.enable(12),L.vertexUv1s&&a.enable(13),L.vertexUv2s&&a.enable(14),L.vertexUv3s&&a.enable(15),L.vertexTangents&&a.enable(16),L.anisotropy&&a.enable(17),L.alphaHash&&a.enable(18),L.batching&&a.enable(19),w.push(a.mask),a.disableAll(),L.fog&&a.enable(0),L.useFog&&a.enable(1),L.flatShading&&a.enable(2),L.logarithmicDepthBuffer&&a.enable(3),L.skinning&&a.enable(4),L.morphTargets&&a.enable(5),L.morphNormals&&a.enable(6),L.morphColors&&a.enable(7),L.premultipliedAlpha&&a.enable(8),L.shadowMapEnabled&&a.enable(9),L.useLegacyLights&&a.enable(10),L.doubleSided&&a.enable(11),L.flipSided&&a.enable(12),L.useDepthPacking&&a.enable(13),L.dithering&&a.enable(14),L.transmission&&a.enable(15),L.sheen&&a.enable(16),L.opaque&&a.enable(17),L.pointsUvs&&a.enable(18),L.decodeVideoTexture&&a.enable(19),L.alphaToCoverage&&a.enable(20),w.push(a.mask)}function R(w){const L=C[w.type];let q;if(L){const fe=us[L];q=mR.clone(fe.uniforms)}else q=w.uniforms;return q}function M(w,L){let q;for(let fe=0,J=h.length;fe0?i.push(p):g.transparent===!0?r.push(p):t.push(p)}function l(d,f,g,E,C,y){const p=o(d,f,g,E,C,y);g.transmission>0?i.unshift(p):g.transparent===!0?r.unshift(p):t.unshift(p)}function A(d,f){t.length>1&&t.sort(d||G4),i.length>1&&i.sort(f||i_),r.length>1&&r.sort(f||i_)}function h(){for(let d=e,f=n.length;d=s.length?(o=new r_,s.push(o)):o=s[r],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function H4(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new G,color:new Je};break;case"SpotLight":t={position:new G,direction:new G,color:new Je,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new G,color:new Je,distance:0,decay:0};break;case"HemisphereLight":t={direction:new G,skyColor:new Je,groundColor:new Je};break;case"RectAreaLight":t={color:new Je,position:new G,halfWidth:new G,halfHeight:new G};break}return n[e.id]=t,t}}}function V4(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Be};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Be};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Be,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let W4=0;function Y4(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function X4(n,e){const t=new H4,i=V4(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)r.probe.push(new G);const s=new G,o=new ut,a=new ut;function l(h,d){let f=0,g=0,E=0;for(let q=0;q<9;q++)r.probe[q].set(0,0,0);let C=0,y=0,p=0,v=0,I=0,B=0,R=0,M=0,T=0,P=0,K=0;h.sort(Y4);const w=d===!0?Math.PI:1;for(let q=0,fe=h.length;q0&&(e.isWebGL2?n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=f,r.ambient[1]=g,r.ambient[2]=E;const L=r.hash;(L.directionalLength!==C||L.pointLength!==y||L.spotLength!==p||L.rectAreaLength!==v||L.hemiLength!==I||L.numDirectionalShadows!==B||L.numPointShadows!==R||L.numSpotShadows!==M||L.numSpotMaps!==T||L.numLightProbes!==K)&&(r.directional.length=C,r.spot.length=p,r.rectArea.length=v,r.point.length=y,r.hemi.length=I,r.directionalShadow.length=B,r.directionalShadowMap.length=B,r.pointShadow.length=R,r.pointShadowMap.length=R,r.spotShadow.length=M,r.spotShadowMap.length=M,r.directionalShadowMatrix.length=B,r.pointShadowMatrix.length=R,r.spotLightMatrix.length=M+T-P,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=P,r.numLightProbes=K,L.directionalLength=C,L.pointLength=y,L.spotLength=p,L.rectAreaLength=v,L.hemiLength=I,L.numDirectionalShadows=B,L.numPointShadows=R,L.numSpotShadows=M,L.numSpotMaps=T,L.numLightProbes=K,r.version=W4++)}function A(h,d){let f=0,g=0,E=0,C=0,y=0;const p=d.matrixWorldInverse;for(let v=0,I=h.length;v=a.length?(l=new s_(n,e),a.push(l)):l=a[o],l}function r(){t=new WeakMap}return{get:i,dispose:r}}class pm extends fi{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=iR,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class gm extends fi{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const j4=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,K4=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function q4(n,e,t){let i=new nd;const r=new Be,s=new Be,o=new An,a=new pm({depthPacking:VI}),l=new gm,A={},h=t.maxTextureSize,d={[Kr]:Ji,[Ji]:Kr,[bs]:bs},f=new gs({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Be},radius:{value:4}},vertexShader:j4,fragmentShader:K4}),g=f.clone();g.defines.HORIZONTAL_PASS=1;const E=new Nt;E.setAttribute("position",new cn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const C=new en(E,f),y=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=lm;let p=this.type;this.render=function(M,T,P){if(y.enabled===!1||y.autoUpdate===!1&&y.needsUpdate===!1||M.length===0)return;const K=n.getRenderTarget(),w=n.getActiveCubeFace(),L=n.getActiveMipmapLevel(),q=n.state;q.setBlending(vo),q.buffers.color.setClear(1,1,1,1),q.buffers.depth.setTest(!0),q.setScissorTest(!1);const fe=p!==as&&this.type===as,J=p===as&&this.type!==as;for(let re=0,ne=M.length;reh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/ee.x),r.x=s.x*ee.x,F.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/ee.y),r.y=s.y*ee.y,F.mapSize.y=s.y)),F.map===null||fe===!0||J===!0){const Ae=this.type!==as?{minFilter:zn,magFilter:zn}:{};F.map!==null&&F.map.dispose(),F.map=new qr(r.x,r.y,Ae),F.map.texture.name=ue.name+".shadowMap",F.camera.updateProjectionMatrix()}n.setRenderTarget(F.map),n.clear();const te=F.getViewportCount();for(let Ae=0;Ae0||T.map&&T.alphaTest>0){const q=w.uuid,fe=T.uuid;let J=A[q];J===void 0&&(J={},A[q]=J);let re=J[fe];re===void 0&&(re=w.clone(),J[fe]=re,T.addEventListener("dispose",R)),w=re}if(w.visible=T.visible,w.wireframe=T.wireframe,K===as?w.side=T.shadowSide!==null?T.shadowSide:T.side:w.side=T.shadowSide!==null?T.shadowSide:d[T.side],w.alphaMap=T.alphaMap,w.alphaTest=T.alphaTest,w.map=T.map,w.clipShadows=T.clipShadows,w.clippingPlanes=T.clippingPlanes,w.clipIntersection=T.clipIntersection,w.displacementMap=T.displacementMap,w.displacementScale=T.displacementScale,w.displacementBias=T.displacementBias,w.wireframeLinewidth=T.wireframeLinewidth,w.linewidth=T.linewidth,P.isPointLight===!0&&w.isMeshDistanceMaterial===!0){const q=n.properties.get(w);q.light=P}return w}function B(M,T,P,K,w){if(M.visible===!1)return;if(M.layers.test(T.layers)&&(M.isMesh||M.isLine||M.isPoints)&&(M.castShadow||M.receiveShadow&&w===as)&&(!M.frustumCulled||i.intersectsObject(M))){M.modelViewMatrix.multiplyMatrices(P.matrixWorldInverse,M.matrixWorld);const fe=e.update(M),J=M.material;if(Array.isArray(J)){const re=fe.groups;for(let ne=0,ue=re.length;ne=1):te.indexOf("OpenGL ES")!==-1&&(ee=parseFloat(/^OpenGL ES (\d)/.exec(te)[1]),F=ee>=2);let Ae=null,ve={};const Oe=n.getParameter(n.SCISSOR_BOX),Y=n.getParameter(n.VIEWPORT),z=new An().fromArray(Oe),O=new An().fromArray(Y);function k(j,Ge,Fe,rt){const dt=new Uint8Array(4),jt=n.createTexture();n.bindTexture(j,jt),n.texParameteri(j,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(j,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Kt=0;Kt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new WeakMap;let d;const f=new WeakMap;let g=!1;try{g=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function E(_,D){return g?new OffscreenCanvas(_,D):Ph("canvas")}function C(_,D,se,Le){let De=1;if((_.width>Le||_.height>Le)&&(De=Le/Math.max(_.width,_.height)),De<1||D===!0)if(typeof HTMLImageElement<"u"&&_ instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&_ instanceof ImageBitmap){const Qe=D?Fg:Math.floor,Xe=Qe(De*_.width),Ve=Qe(De*_.height);d===void 0&&(d=E(Xe,Ve));const Ke=se?E(Xe,Ve):d;return Ke.width=Xe,Ke.height=Ve,Ke.getContext("2d").drawImage(_,0,0,Xe,Ve),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+_.width+"x"+_.height+") to ("+Xe+"x"+Ve+")."),Ke}else return"data"in _&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+_.width+"x"+_.height+")."),_;return _}function y(_){return uC(_.width)&&uC(_.height)}function p(_){return a?!1:_.wrapS!==bi||_.wrapT!==bi||_.minFilter!==zn&&_.minFilter!==xn}function v(_,D){return _.generateMipmaps&&D&&_.minFilter!==zn&&_.minFilter!==xn}function I(_){n.generateMipmap(_)}function B(_,D,se,Le,De=!1){if(a===!1)return D;if(_!==null){if(n[_]!==void 0)return n[_];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+_+"'")}let Qe=D;if(D===n.RED&&(se===n.FLOAT&&(Qe=n.R32F),se===n.HALF_FLOAT&&(Qe=n.R16F),se===n.UNSIGNED_BYTE&&(Qe=n.R8)),D===n.RED_INTEGER&&(se===n.UNSIGNED_BYTE&&(Qe=n.R8UI),se===n.UNSIGNED_SHORT&&(Qe=n.R16UI),se===n.UNSIGNED_INT&&(Qe=n.R32UI),se===n.BYTE&&(Qe=n.R8I),se===n.SHORT&&(Qe=n.R16I),se===n.INT&&(Qe=n.R32I)),D===n.RG&&(se===n.FLOAT&&(Qe=n.RG32F),se===n.HALF_FLOAT&&(Qe=n.RG16F),se===n.UNSIGNED_BYTE&&(Qe=n.RG8)),D===n.RGBA){const Xe=De?Th:un.getTransfer(Le);se===n.FLOAT&&(Qe=n.RGBA32F),se===n.HALF_FLOAT&&(Qe=n.RGBA16F),se===n.UNSIGNED_BYTE&&(Qe=Xe===mn?n.SRGB8_ALPHA8:n.RGBA8),se===n.UNSIGNED_SHORT_4_4_4_4&&(Qe=n.RGBA4),se===n.UNSIGNED_SHORT_5_5_5_1&&(Qe=n.RGB5_A1)}return(Qe===n.R16F||Qe===n.R32F||Qe===n.RG16F||Qe===n.RG32F||Qe===n.RGBA16F||Qe===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Qe}function R(_,D,se){return v(_,se)===!0||_.isFramebufferTexture&&_.minFilter!==zn&&_.minFilter!==xn?Math.log2(Math.max(D.width,D.height))+1:_.mipmaps!==void 0&&_.mipmaps.length>0?_.mipmaps.length:_.isCompressedTexture&&Array.isArray(_.image)?D.mipmaps.length:1}function M(_){return _===zn||_===Pg||_===Rl?n.NEAREST:n.LINEAR}function T(_){const D=_.target;D.removeEventListener("dispose",T),K(D),D.isVideoTexture&&h.delete(D)}function P(_){const D=_.target;D.removeEventListener("dispose",P),L(D)}function K(_){const D=i.get(_);if(D.__webglInit===void 0)return;const se=_.source,Le=f.get(se);if(Le){const De=Le[D.__cacheKey];De.usedTimes--,De.usedTimes===0&&w(_),Object.keys(Le).length===0&&f.delete(se)}i.remove(_)}function w(_){const D=i.get(_);n.deleteTexture(D.__webglTexture);const se=_.source,Le=f.get(se);delete Le[D.__cacheKey],o.memory.textures--}function L(_){const D=_.texture,se=i.get(_),Le=i.get(D);if(Le.__webglTexture!==void 0&&(n.deleteTexture(Le.__webglTexture),o.memory.textures--),_.depthTexture&&_.depthTexture.dispose(),_.isWebGLCubeRenderTarget)for(let De=0;De<6;De++){if(Array.isArray(se.__webglFramebuffer[De]))for(let Qe=0;Qe=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+_+" texture units while this GPU supports only "+r.maxTextures),q+=1,_}function re(_){const D=[];return D.push(_.wrapS),D.push(_.wrapT),D.push(_.wrapR||0),D.push(_.magFilter),D.push(_.minFilter),D.push(_.anisotropy),D.push(_.internalFormat),D.push(_.format),D.push(_.type),D.push(_.generateMipmaps),D.push(_.premultiplyAlpha),D.push(_.flipY),D.push(_.unpackAlignment),D.push(_.colorSpace),D.join()}function ne(_,D){const se=i.get(_);if(_.isVideoTexture&&Te(_),_.isRenderTargetTexture===!1&&_.version>0&&se.__version!==_.version){const Le=_.image;if(Le===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Le.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{z(se,_,D);return}}t.bindTexture(n.TEXTURE_2D,se.__webglTexture,n.TEXTURE0+D)}function ue(_,D){const se=i.get(_);if(_.version>0&&se.__version!==_.version){z(se,_,D);return}t.bindTexture(n.TEXTURE_2D_ARRAY,se.__webglTexture,n.TEXTURE0+D)}function F(_,D){const se=i.get(_);if(_.version>0&&se.__version!==_.version){z(se,_,D);return}t.bindTexture(n.TEXTURE_3D,se.__webglTexture,n.TEXTURE0+D)}function ee(_,D){const se=i.get(_);if(_.version>0&&se.__version!==_.version){O(se,_,D);return}t.bindTexture(n.TEXTURE_CUBE_MAP,se.__webglTexture,n.TEXTURE0+D)}const te={[_h]:n.REPEAT,[bi]:n.CLAMP_TO_EDGE,[wh]:n.MIRRORED_REPEAT},Ae={[zn]:n.NEAREST,[Pg]:n.NEAREST_MIPMAP_NEAREST,[Rl]:n.NEAREST_MIPMAP_LINEAR,[xn]:n.LINEAR,[th]:n.LINEAR_MIPMAP_NEAREST,[Ls]:n.LINEAR_MIPMAP_LINEAR},ve={[sR]:n.NEVER,[AR]:n.ALWAYS,[oR]:n.LESS,[WI]:n.LEQUAL,[aR]:n.EQUAL,[uR]:n.GEQUAL,[lR]:n.GREATER,[cR]:n.NOTEQUAL};function Oe(_,D,se){if(D.type===zr&&e.has("OES_texture_float_linear")===!1&&(D.magFilter===xn||D.magFilter===th||D.magFilter===Rl||D.magFilter===Ls||D.minFilter===xn||D.minFilter===th||D.minFilter===Rl||D.minFilter===Ls)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),se?(n.texParameteri(_,n.TEXTURE_WRAP_S,te[D.wrapS]),n.texParameteri(_,n.TEXTURE_WRAP_T,te[D.wrapT]),(_===n.TEXTURE_3D||_===n.TEXTURE_2D_ARRAY)&&n.texParameteri(_,n.TEXTURE_WRAP_R,te[D.wrapR]),n.texParameteri(_,n.TEXTURE_MAG_FILTER,Ae[D.magFilter]),n.texParameteri(_,n.TEXTURE_MIN_FILTER,Ae[D.minFilter])):(n.texParameteri(_,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(_,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(_===n.TEXTURE_3D||_===n.TEXTURE_2D_ARRAY)&&n.texParameteri(_,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(D.wrapS!==bi||D.wrapT!==bi)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(_,n.TEXTURE_MAG_FILTER,M(D.magFilter)),n.texParameteri(_,n.TEXTURE_MIN_FILTER,M(D.minFilter)),D.minFilter!==zn&&D.minFilter!==xn&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),D.compareFunction&&(n.texParameteri(_,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(_,n.TEXTURE_COMPARE_FUNC,ve[D.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const Le=e.get("EXT_texture_filter_anisotropic");if(D.magFilter===zn||D.minFilter!==Rl&&D.minFilter!==Ls||D.type===zr&&e.has("OES_texture_float_linear")===!1||a===!1&&D.type===ql&&e.has("OES_texture_half_float_linear")===!1)return;(D.anisotropy>1||i.get(D).__currentAnisotropy)&&(n.texParameterf(_,Le.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,r.getMaxAnisotropy())),i.get(D).__currentAnisotropy=D.anisotropy)}}function Y(_,D){let se=!1;_.__webglInit===void 0&&(_.__webglInit=!0,D.addEventListener("dispose",T));const Le=D.source;let De=f.get(Le);De===void 0&&(De={},f.set(Le,De));const Qe=re(D);if(Qe!==_.__cacheKey){De[Qe]===void 0&&(De[Qe]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,se=!0),De[Qe].usedTimes++;const Xe=De[_.__cacheKey];Xe!==void 0&&(De[_.__cacheKey].usedTimes--,Xe.usedTimes===0&&w(D)),_.__cacheKey=Qe,_.__webglTexture=De[Qe].texture}return se}function z(_,D,se){let Le=n.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&&(Le=n.TEXTURE_2D_ARRAY),D.isData3DTexture&&(Le=n.TEXTURE_3D);const De=Y(_,D),Qe=D.source;t.bindTexture(Le,_.__webglTexture,n.TEXTURE0+se);const Xe=i.get(Qe);if(Qe.version!==Xe.__version||De===!0){t.activeTexture(n.TEXTURE0+se);const Ve=un.getPrimaries(un.workingColorSpace),Ke=D.colorSpace===Cr?null:un.getPrimaries(D.colorSpace),lt=D.colorSpace===Cr||Ve===Ke?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,D.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,D.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,lt);const It=p(D)&&y(D.image)===!1;let Pe=C(D.image,It,!1,r.maxTextureSize);Pe=$(D,Pe);const Pt=y(Pe)||a,wt=s.convert(D.format,D.colorSpace);let pt=s.convert(D.type),at=B(D.internalFormat,wt,pt,D.colorSpace,D.isVideoTexture);Oe(Le,D,Pt);let tt;const Bt=D.mipmaps,Ot=a&&D.isVideoTexture!==!0&&at!==GI,tn=Xe.__version===void 0||De===!0,Mt=Qe.dataReady,Jt=R(D,Pe,Pt);if(D.isDepthTexture)at=n.DEPTH_COMPONENT,a?D.type===zr?at=n.DEPTH_COMPONENT32F:D.type===mo?at=n.DEPTH_COMPONENT24:D.type===Ma?at=n.DEPTH24_STENCIL8:at=n.DEPTH_COMPONENT16:D.type===zr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),D.format===Qa&&at===n.DEPTH_COMPONENT&&D.type!==um&&D.type!==mo&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),D.type=mo,pt=s.convert(D.type)),D.format===Zl&&at===n.DEPTH_COMPONENT&&(at=n.DEPTH_STENCIL,D.type!==Ma&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),D.type=Ma,pt=s.convert(D.type))),tn&&(Ot?t.texStorage2D(n.TEXTURE_2D,1,at,Pe.width,Pe.height):t.texImage2D(n.TEXTURE_2D,0,at,Pe.width,Pe.height,0,wt,pt,null));else if(D.isDataTexture)if(Bt.length>0&&Pt){Ot&&tn&&t.texStorage2D(n.TEXTURE_2D,Jt,at,Bt[0].width,Bt[0].height);for(let j=0,Ge=Bt.length;j>=1,Ge>>=1}}else if(Bt.length>0&&Pt){Ot&&tn&&t.texStorage2D(n.TEXTURE_2D,Jt,at,Bt[0].width,Bt[0].height);for(let j=0,Ge=Bt.length;j0&&Mt++,t.texStorage2D(n.TEXTURE_CUBE_MAP,Mt,tt,Pe[0].width,Pe[0].height));for(let j=0;j<6;j++)if(It){Bt?tn&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+j,0,0,0,Pe[j].width,Pe[j].height,pt,at,Pe[j].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+j,0,tt,Pe[j].width,Pe[j].height,0,pt,at,Pe[j].data);for(let Ge=0;Ge>Qe),Pe=Math.max(1,D.height>>Qe);De===n.TEXTURE_3D||De===n.TEXTURE_2D_ARRAY?t.texImage3D(De,Qe,Ke,It,Pe,D.depth,0,Xe,Ve,null):t.texImage2D(De,Qe,Ke,It,Pe,0,Xe,Ve,null)}t.bindFramebuffer(n.FRAMEBUFFER,_),de(D)?l.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,Le,De,i.get(se).__webglTexture,0,le(D)):(De===n.TEXTURE_2D||De>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&De<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,Le,De,i.get(se).__webglTexture,Qe),t.bindFramebuffer(n.FRAMEBUFFER,null)}function me(_,D,se){if(n.bindRenderbuffer(n.RENDERBUFFER,_),D.depthBuffer&&!D.stencilBuffer){let Le=a===!0?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(se||de(D)){const De=D.depthTexture;De&&De.isDepthTexture&&(De.type===zr?Le=n.DEPTH_COMPONENT32F:De.type===mo&&(Le=n.DEPTH_COMPONENT24));const Qe=le(D);de(D)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Qe,Le,D.width,D.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Qe,Le,D.width,D.height)}else n.renderbufferStorage(n.RENDERBUFFER,Le,D.width,D.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,_)}else if(D.depthBuffer&&D.stencilBuffer){const Le=le(D);se&&de(D)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,Le,n.DEPTH24_STENCIL8,D.width,D.height):de(D)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Le,n.DEPTH24_STENCIL8,D.width,D.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,D.width,D.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,_)}else{const Le=D.isWebGLMultipleRenderTargets===!0?D.texture:[D.texture];for(let De=0;De0){se.__webglFramebuffer[Ve]=[];for(let Ke=0;Ke0){se.__webglFramebuffer=[];for(let Ve=0;Ve0&&de(_)===!1){const Ve=Qe?D:[D];se.__webglMultisampledFramebuffer=n.createFramebuffer(),se.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,se.__webglMultisampledFramebuffer);for(let Ke=0;Ke0)for(let Ke=0;Ke0)for(let Ke=0;Ke0&&de(_)===!1){const D=_.isWebGLMultipleRenderTargets?_.texture:[_.texture],se=_.width,Le=_.height;let De=n.COLOR_BUFFER_BIT;const Qe=[],Xe=_.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Ve=i.get(_),Ke=_.isWebGLMultipleRenderTargets===!0;if(Ke)for(let lt=0;lt0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&D.__useRenderToTexture!==!1}function Te(_){const D=o.render.frame;h.get(_)!==D&&(h.set(_,D),_.update())}function $(_,D){const se=_.colorSpace,Le=_.format,De=_.type;return _.isCompressedTexture===!0||_.isVideoTexture===!0||_.format===Ug||se!==Gs&&se!==Cr&&(un.getTransfer(se)===mn?a===!1?e.has("EXT_sRGB")===!0&&Le===Wi?(_.format=Ug,_.minFilter=xn,_.generateMipmaps=!1):D=XI.sRGBToLinear(D):(Le!==Wi||De!==Os)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",se)),D}this.allocateTextureUnit=J,this.resetTextureUnits=fe,this.setTexture2D=ne,this.setTexture2DArray=ue,this.setTexture3D=F,this.setTextureCube=ee,this.rebindTextures=Se,this.setupRenderTarget=H,this.updateRenderTargetMipmap=Ee,this.updateMultisampleRenderTarget=ie,this.setupDepthRenderbuffer=oe,this.setupFrameBufferTexture=k,this.useMultisampledRTT=de}function _R(n,e,t){const i=t.isWebGL2;function r(s,o=Cr){let a;const l=un.getTransfer(o);if(s===Os)return n.UNSIGNED_BYTE;if(s===PI)return n.UNSIGNED_SHORT_4_4_4_4;if(s===UI)return n.UNSIGNED_SHORT_5_5_5_1;if(s===Y2)return n.BYTE;if(s===X2)return n.SHORT;if(s===um)return n.UNSIGNED_SHORT;if(s===NI)return n.INT;if(s===mo)return n.UNSIGNED_INT;if(s===zr)return n.FLOAT;if(s===ql)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===J2)return n.ALPHA;if(s===Wi)return n.RGBA;if(s===j2)return n.LUMINANCE;if(s===K2)return n.LUMINANCE_ALPHA;if(s===Qa)return n.DEPTH_COMPONENT;if(s===Zl)return n.DEPTH_STENCIL;if(s===Ug)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===q2)return n.RED;if(s===FI)return n.RED_INTEGER;if(s===Z2)return n.RG;if(s===kI)return n.RG_INTEGER;if(s===OI)return n.RGBA_INTEGER;if(s===Xp||s===Jp||s===jp||s===Kp)if(l===mn)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===Xp)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===Jp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===jp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===Kp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===Xp)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===Jp)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===jp)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===Kp)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===Uv||s===Fv||s===kv||s===Ov)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===Uv)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Fv)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===kv)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===Ov)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===GI)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===Gv||s===zv)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(s===Gv)return l===mn?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===zv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===Hv||s===Vv||s===Wv||s===Yv||s===Xv||s===Jv||s===jv||s===Kv||s===qv||s===Zv||s===$v||s===eC||s===tC||s===nC)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(s===Hv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===Vv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===Wv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===Yv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===Xv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===Jv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===jv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===Kv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===qv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===Zv)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===$v)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===eC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===tC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===nC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===qp||s===iC||s===rC)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(s===qp)return l===mn?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===iC)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===rC)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===$2||s===sC||s===oC||s===aC)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(s===qp)return a.COMPRESSED_RED_RGTC1_EXT;if(s===sC)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===oC)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===aC)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===Ma?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[s]!==void 0?n[s]:null}return{convert:r}}class wR extends ni{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class Vr extends Wt{constructor(){super(),this.isGroup=!0,this.type="Group"}}const eO={type:"move"};class zE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Vr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Vr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new G,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new G),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Vr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new G,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new G),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,s=null,o=null;const a=this._targetRay,l=this._grip,A=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(A&&e.hand){o=!0;for(const C of e.hand.values()){const y=t.getJointPose(C,i),p=this._getHandJoint(A,C);y!==null&&(p.matrix.fromArray(y.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.matrixWorldNeedsUpdate=!0,p.jointRadius=y.radius),p.visible=y!==null}const h=A.joints["index-finger-tip"],d=A.joints["thumb-tip"],f=h.position.distanceTo(d.position),g=.02,E=.005;A.inputState.pinching&&f>g+E?(A.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!A.inputState.pinching&&f<=g-E&&(A.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));a!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(eO)))}return a!==null&&(a.visible=r!==null),l!==null&&(l.visible=s!==null),A!==null&&(A.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new Vr;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}const tO=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,nO=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class iO{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,i){if(this.texture===null){const r=new Mn,s=e.properties.get(r);s.__webglTexture=t.texture,(t.depthNear!=i.depthNear||t.depthFar!=i.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}render(e,t){if(this.texture!==null){if(this.mesh===null){const i=t.cameras[0].viewport,r=new gs({extensions:{fragDepth:!0},vertexShader:tO,fragmentShader:nO,uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new en(new Ha(20,20),r)}e.render(this.mesh,t)}}reset(){this.texture=null,this.mesh=null}}class rO extends wo{constructor(e,t){super();const i=this;let r=null,s=1,o=null,a="local-floor",l=1,A=null,h=null,d=null,f=null,g=null,E=null;const C=new iO,y=t.getContextAttributes();let p=null,v=null;const I=[],B=[],R=new Be;let M=null;const T=new ni;T.layers.enable(1),T.viewport=new An;const P=new ni;P.layers.enable(2),P.viewport=new An;const K=[T,P],w=new wR;w.layers.enable(1),w.layers.enable(2);let L=null,q=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Y){let z=I[Y];return z===void 0&&(z=new zE,I[Y]=z),z.getTargetRaySpace()},this.getControllerGrip=function(Y){let z=I[Y];return z===void 0&&(z=new zE,I[Y]=z),z.getGripSpace()},this.getHand=function(Y){let z=I[Y];return z===void 0&&(z=new zE,I[Y]=z),z.getHandSpace()};function fe(Y){const z=B.indexOf(Y.inputSource);if(z===-1)return;const O=I[z];O!==void 0&&(O.update(Y.inputSource,Y.frame,A||o),O.dispatchEvent({type:Y.type,data:Y.inputSource}))}function J(){r.removeEventListener("select",fe),r.removeEventListener("selectstart",fe),r.removeEventListener("selectend",fe),r.removeEventListener("squeeze",fe),r.removeEventListener("squeezestart",fe),r.removeEventListener("squeezeend",fe),r.removeEventListener("end",J),r.removeEventListener("inputsourceschange",re);for(let Y=0;Y=0&&(B[k]=null,I[k].disconnect(O))}for(let z=0;z=B.length){B.push(O),k=Ie;break}else if(B[Ie]===null){B[Ie]=O,k=Ie;break}if(k===-1)break}const me=I[k];me&&me.connect(O)}}const ne=new G,ue=new G;function F(Y,z,O){ne.setFromMatrixPosition(z.matrixWorld),ue.setFromMatrixPosition(O.matrixWorld);const k=ne.distanceTo(ue),me=z.projectionMatrix.elements,Ie=O.projectionMatrix.elements,oe=me[14]/(me[10]-1),Se=me[14]/(me[10]+1),H=(me[9]+1)/me[5],Ee=(me[9]-1)/me[5],ie=(me[8]-1)/me[0],le=(Ie[8]+1)/Ie[0],de=oe*ie,Te=oe*le,$=k/(-ie+le),_=$*-ie;z.matrixWorld.decompose(Y.position,Y.quaternion,Y.scale),Y.translateX(_),Y.translateZ($),Y.matrixWorld.compose(Y.position,Y.quaternion,Y.scale),Y.matrixWorldInverse.copy(Y.matrixWorld).invert();const D=oe+$,se=Se+$,Le=de-_,De=Te+(k-_),Qe=H*Se/se*D,Xe=Ee*Se/se*D;Y.projectionMatrix.makePerspective(Le,De,Qe,Xe,D,se),Y.projectionMatrixInverse.copy(Y.projectionMatrix).invert()}function ee(Y,z){z===null?Y.matrixWorld.copy(Y.matrix):Y.matrixWorld.multiplyMatrices(z.matrixWorld,Y.matrix),Y.matrixWorldInverse.copy(Y.matrixWorld).invert()}this.updateCamera=function(Y){if(r===null)return;C.texture!==null&&(Y.near=C.depthNear,Y.far=C.depthFar),w.near=P.near=T.near=Y.near,w.far=P.far=T.far=Y.far,(L!==w.near||q!==w.far)&&(r.updateRenderState({depthNear:w.near,depthFar:w.far}),L=w.near,q=w.far,T.near=L,T.far=q,P.near=L,P.far=q,T.updateProjectionMatrix(),P.updateProjectionMatrix(),Y.updateProjectionMatrix());const z=Y.parent,O=w.cameras;ee(w,z);for(let k=0;k0&&(y.alphaTest.value=p.alphaTest);const v=e.get(p).envMap;if(v&&(y.envMap.value=v,y.flipEnvMap.value=v.isCubeTexture&&v.isRenderTargetTexture===!1?-1:1,y.reflectivity.value=p.reflectivity,y.ior.value=p.ior,y.refractionRatio.value=p.refractionRatio),p.lightMap){y.lightMap.value=p.lightMap;const I=n._useLegacyLights===!0?Math.PI:1;y.lightMapIntensity.value=p.lightMapIntensity*I,t(p.lightMap,y.lightMapTransform)}p.aoMap&&(y.aoMap.value=p.aoMap,y.aoMapIntensity.value=p.aoMapIntensity,t(p.aoMap,y.aoMapTransform))}function o(y,p){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,p.map&&(y.map.value=p.map,t(p.map,y.mapTransform))}function a(y,p){y.dashSize.value=p.dashSize,y.totalSize.value=p.dashSize+p.gapSize,y.scale.value=p.scale}function l(y,p,v,I){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,y.size.value=p.size*v,y.scale.value=I*.5,p.map&&(y.map.value=p.map,t(p.map,y.uvTransform)),p.alphaMap&&(y.alphaMap.value=p.alphaMap,t(p.alphaMap,y.alphaMapTransform)),p.alphaTest>0&&(y.alphaTest.value=p.alphaTest)}function A(y,p){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,y.rotation.value=p.rotation,p.map&&(y.map.value=p.map,t(p.map,y.mapTransform)),p.alphaMap&&(y.alphaMap.value=p.alphaMap,t(p.alphaMap,y.alphaMapTransform)),p.alphaTest>0&&(y.alphaTest.value=p.alphaTest)}function h(y,p){y.specular.value.copy(p.specular),y.shininess.value=Math.max(p.shininess,1e-4)}function d(y,p){p.gradientMap&&(y.gradientMap.value=p.gradientMap)}function f(y,p){y.metalness.value=p.metalness,p.metalnessMap&&(y.metalnessMap.value=p.metalnessMap,t(p.metalnessMap,y.metalnessMapTransform)),y.roughness.value=p.roughness,p.roughnessMap&&(y.roughnessMap.value=p.roughnessMap,t(p.roughnessMap,y.roughnessMapTransform)),e.get(p).envMap&&(y.envMapIntensity.value=p.envMapIntensity)}function g(y,p,v){y.ior.value=p.ior,p.sheen>0&&(y.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),y.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(y.sheenColorMap.value=p.sheenColorMap,t(p.sheenColorMap,y.sheenColorMapTransform)),p.sheenRoughnessMap&&(y.sheenRoughnessMap.value=p.sheenRoughnessMap,t(p.sheenRoughnessMap,y.sheenRoughnessMapTransform))),p.clearcoat>0&&(y.clearcoat.value=p.clearcoat,y.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(y.clearcoatMap.value=p.clearcoatMap,t(p.clearcoatMap,y.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(y.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,t(p.clearcoatRoughnessMap,y.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(y.clearcoatNormalMap.value=p.clearcoatNormalMap,t(p.clearcoatNormalMap,y.clearcoatNormalMapTransform),y.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Ji&&y.clearcoatNormalScale.value.negate())),p.iridescence>0&&(y.iridescence.value=p.iridescence,y.iridescenceIOR.value=p.iridescenceIOR,y.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],y.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(y.iridescenceMap.value=p.iridescenceMap,t(p.iridescenceMap,y.iridescenceMapTransform)),p.iridescenceThicknessMap&&(y.iridescenceThicknessMap.value=p.iridescenceThicknessMap,t(p.iridescenceThicknessMap,y.iridescenceThicknessMapTransform))),p.transmission>0&&(y.transmission.value=p.transmission,y.transmissionSamplerMap.value=v.texture,y.transmissionSamplerSize.value.set(v.width,v.height),p.transmissionMap&&(y.transmissionMap.value=p.transmissionMap,t(p.transmissionMap,y.transmissionMapTransform)),y.thickness.value=p.thickness,p.thicknessMap&&(y.thicknessMap.value=p.thicknessMap,t(p.thicknessMap,y.thicknessMapTransform)),y.attenuationDistance.value=p.attenuationDistance,y.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(y.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(y.anisotropyMap.value=p.anisotropyMap,t(p.anisotropyMap,y.anisotropyMapTransform))),y.specularIntensity.value=p.specularIntensity,y.specularColor.value.copy(p.specularColor),p.specularColorMap&&(y.specularColorMap.value=p.specularColorMap,t(p.specularColorMap,y.specularColorMapTransform)),p.specularIntensityMap&&(y.specularIntensityMap.value=p.specularIntensityMap,t(p.specularIntensityMap,y.specularIntensityMapTransform))}function E(y,p){p.matcap&&(y.matcap.value=p.matcap)}function C(y,p){const v=e.get(p).light;y.referencePosition.value.setFromMatrixPosition(v.matrixWorld),y.nearDistance.value=v.shadow.camera.near,y.farDistance.value=v.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function oO(n,e,t,i){let r={},s={},o=[];const a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(v,I){const B=I.program;i.uniformBlockBinding(v,B)}function A(v,I){let B=r[v.id];B===void 0&&(E(v),B=h(v),r[v.id]=B,v.addEventListener("dispose",y));const R=I.program;i.updateUBOMapping(v,R);const M=e.render.frame;s[v.id]!==M&&(f(v),s[v.id]=M)}function h(v){const I=d();v.__bindingPointIndex=I;const B=n.createBuffer(),R=v.__size,M=v.usage;return n.bindBuffer(n.UNIFORM_BUFFER,B),n.bufferData(n.UNIFORM_BUFFER,R,M),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,I,B),B}function d(){for(let v=0;v0&&(B+=R-M),v.__size=B,v.__cache={},this}function C(v){const I={boundary:0,storage:0};return typeof v=="number"||typeof v=="boolean"?(I.boundary=4,I.storage=4):v.isVector2?(I.boundary=8,I.storage=8):v.isVector3||v.isColor?(I.boundary=16,I.storage=12):v.isVector4?(I.boundary=16,I.storage=16):v.isMatrix3?(I.boundary=48,I.storage=48):v.isMatrix4?(I.boundary=64,I.storage=64):v.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",v),I}function y(v){const I=v.target;I.removeEventListener("dispose",y);const B=o.indexOf(I.__bindingPointIndex);o.splice(B,1),n.deleteBuffer(r[I.id]),delete r[I.id],delete s[I.id]}function p(){for(const v in r)n.deleteBuffer(r[v]);o=[],r={},s={}}return{bind:l,update:A,dispose:p}}class $I{constructor(e={}){const{canvas:t=dR(),context:i=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:A=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:d=!1}=e;this.isWebGLRenderer=!0;let f;i!==null?f=i.getContextAttributes().alpha:f=o;const g=new Uint32Array(4),E=new Int32Array(4);let C=null,y=null;const p=[],v=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=Hn,this._useLegacyLights=!1,this.toneMapping=ks,this.toneMappingExposure=1;const I=this;let B=!1,R=0,M=0,T=null,P=-1,K=null;const w=new An,L=new An;let q=null;const fe=new Je(0);let J=0,re=t.width,ne=t.height,ue=1,F=null,ee=null;const te=new An(0,0,re,ne),Ae=new An(0,0,re,ne);let ve=!1;const Oe=new nd;let Y=!1,z=!1,O=null;const k=new ut,me=new Be,Ie=new G,oe={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Se(){return T===null?ue:1}let H=i;function Ee(W,pe){for(let xe=0;xe{function Ze(){if(_e.forEach(function(ct){$.get(ct).currentProgram.isReady()&&_e.delete(ct)}),_e.size===0){Ce(W);return}setTimeout(Ze,10)}ie.get("KHR_parallel_shader_compile")!==null?Ze():setTimeout(Ze,10)})};let Kt=null;function Ln(W){Kt&&Kt(W)}function pi(){dn.stop()}function an(){dn.start()}const dn=new vR;dn.setAnimationLoop(Ln),typeof self<"u"&&dn.setContext(self),this.setAnimationLoop=function(W){Kt=W,Mt.setAnimationLoop(W),W===null?dn.stop():dn.start()},Mt.addEventListener("sessionstart",pi),Mt.addEventListener("sessionend",an),this.render=function(W,pe){if(pe!==void 0&&pe.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(B===!0)return;W.matrixWorldAutoUpdate===!0&&W.updateMatrixWorld(),pe.parent===null&&pe.matrixWorldAutoUpdate===!0&&pe.updateMatrixWorld(),Mt.enabled===!0&&Mt.isPresenting===!0&&(Mt.cameraAutoUpdate===!0&&Mt.updateCamera(pe),pe=Mt.getCamera()),W.isScene===!0&&W.onBeforeRender(I,W,pe,T),y=lt.get(W,v.length),y.init(),v.push(y),k.multiplyMatrices(pe.projectionMatrix,pe.matrixWorldInverse),Oe.setFromProjectionMatrix(k),z=this.localClippingEnabled,Y=It.init(this.clippingPlanes,z),C=Ke.get(W,p.length),C.init(),p.push(C),$i(W,pe,0,I.sortObjects),C.finish(),I.sortObjects===!0&&C.sort(F,ee),this.info.render.frame++,Y===!0&&It.beginShadows();const xe=y.state.shadowsArray;if(Pe.render(xe,W,pe),Y===!0&&It.endShadows(),this.info.autoReset===!0&&this.info.reset(),(Mt.enabled===!1||Mt.isPresenting===!1||Mt.hasDepthSensing()===!1)&&Pt.render(C,W),y.setupLights(I._useLegacyLights),pe.isArrayCamera){const _e=pe.cameras;for(let Ce=0,Ze=_e.length;Ce0?y=v[v.length-1]:y=null,p.pop(),p.length>0?C=p[p.length-1]:C=null};function $i(W,pe,xe,_e){if(W.visible===!1)return;if(W.layers.test(pe.layers)){if(W.isGroup)xe=W.renderOrder;else if(W.isLOD)W.autoUpdate===!0&&W.update(pe);else if(W.isLight)y.pushLight(W),W.castShadow&&y.pushShadow(W);else if(W.isSprite){if(!W.frustumCulled||Oe.intersectsSprite(W)){_e&&Ie.setFromMatrixPosition(W.matrixWorld).applyMatrix4(k);const ct=Qe.update(W),mt=W.material;mt.visible&&C.push(W,ct,mt,xe,Ie.z,null)}}else if((W.isMesh||W.isLine||W.isPoints)&&(!W.frustumCulled||Oe.intersectsObject(W))){const ct=Qe.update(W),mt=W.material;if(_e&&(W.boundingSphere!==void 0?(W.boundingSphere===null&&W.computeBoundingSphere(),Ie.copy(W.boundingSphere.center)):(ct.boundingSphere===null&&ct.computeBoundingSphere(),Ie.copy(ct.boundingSphere.center)),Ie.applyMatrix4(W.matrixWorld).applyMatrix4(k)),Array.isArray(mt)){const gt=ct.groups;for(let Qt=0,St=gt.length;Qt0&&gi(Ce,Ze,pe,xe),_e&&de.viewport(w.copy(_e)),Ce.length>0&&Ys(Ce,pe,xe),Ze.length>0&&Ys(Ze,pe,xe),ct.length>0&&Ys(ct,pe,xe),de.buffers.depth.setTest(!0),de.buffers.depth.setMask(!0),de.buffers.color.setMask(!0),de.setPolygonOffset(!1)}function gi(W,pe,xe,_e){if((xe.isScene===!0?xe.overrideMaterial:null)!==null)return;const Ze=le.isWebGL2;O===null&&(O=new qr(1,1,{generateMipmaps:!0,type:ie.has("EXT_color_buffer_half_float")?ql:Os,minFilter:Ls,samples:Ze?4:0})),I.getDrawingBufferSize(me),Ze?O.setSize(me.x,me.y):O.setSize(Fg(me.x),Fg(me.y));const ct=I.getRenderTarget();I.setRenderTarget(O),I.getClearColor(fe),J=I.getClearAlpha(),J<1&&I.setClearColor(16777215,.5),I.clear();const mt=I.toneMapping;I.toneMapping=ks,Ys(W,xe,_e),_.updateMultisampleRenderTarget(O),_.updateRenderTargetMipmap(O);let gt=!1;for(let Qt=0,St=pe.length;Qt0),_t=!!xe.morphAttributes.position,yn=!!xe.morphAttributes.normal,Xn=!!xe.morphAttributes.color;let ln=ks;_e.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&(ln=I.toneMapping);const Jn=xe.morphAttributes.position||xe.morphAttributes.normal||xe.morphAttributes.color,vt=Jn!==void 0?Jn.length:0,et=$.get(_e),Ii=y.state.lights;if(Y===!0&&(z===!0||W!==K)){const we=W===K&&_e.id===P;It.setState(_e,W,we)}let xt=!1;_e.version===et.__version?(et.needsLights&&et.lightsStateVersion!==Ii.state.version||et.outputColorSpace!==mt||Ce.isBatchedMesh&&et.batching===!1||!Ce.isBatchedMesh&&et.batching===!0||Ce.isInstancedMesh&&et.instancing===!1||!Ce.isInstancedMesh&&et.instancing===!0||Ce.isSkinnedMesh&&et.skinning===!1||!Ce.isSkinnedMesh&&et.skinning===!0||Ce.isInstancedMesh&&et.instancingColor===!0&&Ce.instanceColor===null||Ce.isInstancedMesh&&et.instancingColor===!1&&Ce.instanceColor!==null||et.envMap!==gt||_e.fog===!0&&et.fog!==Ze||et.numClippingPlanes!==void 0&&(et.numClippingPlanes!==It.numPlanes||et.numIntersection!==It.numIntersection)||et.vertexAlphas!==Qt||et.vertexTangents!==St||et.morphTargets!==_t||et.morphNormals!==yn||et.morphColors!==Xn||et.toneMapping!==ln||le.isWebGL2===!0&&et.morphTargetsCount!==vt)&&(xt=!0):(xt=!0,et.__version=_e.version);let fn=et.currentProgram;xt===!0&&(fn=vs(_e,pe,Ce));let Ar=!1,N=!1,U=!1;const Z=fn.getUniforms(),ae=et.uniforms;if(de.useProgram(fn.program)&&(Ar=!0,N=!0,U=!0),_e.id!==P&&(P=_e.id,N=!0),Ar||K!==W){Z.setValue(H,"projectionMatrix",W.projectionMatrix),Z.setValue(H,"viewMatrix",W.matrixWorldInverse);const we=Z.map.cameraPosition;we!==void 0&&we.setValue(H,Ie.setFromMatrixPosition(W.matrixWorld)),le.logarithmicDepthBuffer&&Z.setValue(H,"logDepthBufFC",2/(Math.log(W.far+1)/Math.LN2)),(_e.isMeshPhongMaterial||_e.isMeshToonMaterial||_e.isMeshLambertMaterial||_e.isMeshBasicMaterial||_e.isMeshStandardMaterial||_e.isShaderMaterial)&&Z.setValue(H,"isOrthographic",W.isOrthographicCamera===!0),K!==W&&(K=W,N=!0,U=!0)}if(Ce.isSkinnedMesh){Z.setOptional(H,Ce,"bindMatrix"),Z.setOptional(H,Ce,"bindMatrixInverse");const we=Ce.skeleton;we&&(le.floatVertexTextures?(we.boneTexture===null&&we.computeBoneTexture(),Z.setValue(H,"boneTexture",we.boneTexture,_)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}Ce.isBatchedMesh&&(Z.setOptional(H,Ce,"batchingTexture"),Z.setValue(H,"batchingTexture",Ce._matricesTexture,_));const ge=xe.morphAttributes;if((ge.position!==void 0||ge.normal!==void 0||ge.color!==void 0&&le.isWebGL2===!0)&&wt.update(Ce,xe,fn),(N||et.receiveShadow!==Ce.receiveShadow)&&(et.receiveShadow=Ce.receiveShadow,Z.setValue(H,"receiveShadow",Ce.receiveShadow)),_e.isMeshGouraudMaterial&&_e.envMap!==null&&(ae.envMap.value=gt,ae.flipEnvMap.value=gt.isCubeTexture&>.isRenderTargetTexture===!1?-1:1),N&&(Z.setValue(H,"toneMappingExposure",I.toneMappingExposure),et.needsLights&&Xu(ae,U),Ze&&_e.fog===!0&&Ve.refreshFogUniforms(ae,Ze),Ve.refreshMaterialUniforms(ae,_e,ue,ne,O),$p.upload(H,Go(et),ae,_)),_e.isShaderMaterial&&_e.uniformsNeedUpdate===!0&&($p.upload(H,Go(et),ae,_),_e.uniformsNeedUpdate=!1),_e.isSpriteMaterial&&Z.setValue(H,"center",Ce.center),Z.setValue(H,"modelViewMatrix",Ce.modelViewMatrix),Z.setValue(H,"normalMatrix",Ce.normalMatrix),Z.setValue(H,"modelMatrix",Ce.matrixWorld),_e.isShaderMaterial||_e.isRawShaderMaterial){const we=_e.uniformsGroups;for(let Ue=0,Ne=we.length;Ue0&&_.useMultisampledRTT(W)===!1?Ce=$.get(W).__webglMultisampledFramebuffer:Array.isArray(St)?Ce=St[xe]:Ce=St,w.copy(W.viewport),L.copy(W.scissor),q=W.scissorTest}else w.copy(te).multiplyScalar(ue).floor(),L.copy(Ae).multiplyScalar(ue).floor(),q=ve;if(de.bindFramebuffer(H.FRAMEBUFFER,Ce)&&le.drawBuffers&&_e&&de.drawBuffers(W,Ce),de.viewport(w),de.scissor(L),de.setScissorTest(q),Ze){const gt=$.get(W.texture);H.framebufferTexture2D(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_CUBE_MAP_POSITIVE_X+pe,gt.__webglTexture,xe)}else if(ct){const gt=$.get(W.texture),Qt=pe||0;H.framebufferTextureLayer(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,gt.__webglTexture,xe||0,Qt)}P=-1},this.readRenderTargetPixels=function(W,pe,xe,_e,Ce,Ze,ct){if(!(W&&W.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let mt=$.get(W).__webglFramebuffer;if(W.isWebGLCubeRenderTarget&&ct!==void 0&&(mt=mt[ct]),mt){de.bindFramebuffer(H.FRAMEBUFFER,mt);try{const gt=W.texture,Qt=gt.format,St=gt.type;if(Qt!==Wi&&tt.convert(Qt)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const _t=St===ql&&(ie.has("EXT_color_buffer_half_float")||le.isWebGL2&&ie.has("EXT_color_buffer_float"));if(St!==Os&&tt.convert(St)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_TYPE)&&!(St===zr&&(le.isWebGL2||ie.has("OES_texture_float")||ie.has("WEBGL_color_buffer_float")))&&!_t){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}pe>=0&&pe<=W.width-_e&&xe>=0&&xe<=W.height-Ce&&H.readPixels(pe,xe,_e,Ce,tt.convert(Qt),tt.convert(St),Ze)}finally{const gt=T!==null?$.get(T).__webglFramebuffer:null;de.bindFramebuffer(H.FRAMEBUFFER,gt)}}},this.copyFramebufferToTexture=function(W,pe,xe=0){const _e=Math.pow(2,-xe),Ce=Math.floor(pe.image.width*_e),Ze=Math.floor(pe.image.height*_e);_.setTexture2D(pe,0),H.copyTexSubImage2D(H.TEXTURE_2D,xe,0,0,W.x,W.y,Ce,Ze),de.unbindTexture()},this.copyTextureToTexture=function(W,pe,xe,_e=0){const Ce=pe.image.width,Ze=pe.image.height,ct=tt.convert(xe.format),mt=tt.convert(xe.type);_.setTexture2D(xe,0),H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,xe.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,xe.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,xe.unpackAlignment),pe.isDataTexture?H.texSubImage2D(H.TEXTURE_2D,_e,W.x,W.y,Ce,Ze,ct,mt,pe.image.data):pe.isCompressedTexture?H.compressedTexSubImage2D(H.TEXTURE_2D,_e,W.x,W.y,pe.mipmaps[0].width,pe.mipmaps[0].height,ct,pe.mipmaps[0].data):H.texSubImage2D(H.TEXTURE_2D,_e,W.x,W.y,ct,mt,pe.image),_e===0&&xe.generateMipmaps&&H.generateMipmap(H.TEXTURE_2D),de.unbindTexture()},this.copyTextureToTexture3D=function(W,pe,xe,_e,Ce=0){if(I.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Ze=W.max.x-W.min.x+1,ct=W.max.y-W.min.y+1,mt=W.max.z-W.min.z+1,gt=tt.convert(_e.format),Qt=tt.convert(_e.type);let St;if(_e.isData3DTexture)_.setTexture3D(_e,0),St=H.TEXTURE_3D;else if(_e.isDataArrayTexture||_e.isCompressedArrayTexture)_.setTexture2DArray(_e,0),St=H.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,_e.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,_e.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,_e.unpackAlignment);const _t=H.getParameter(H.UNPACK_ROW_LENGTH),yn=H.getParameter(H.UNPACK_IMAGE_HEIGHT),Xn=H.getParameter(H.UNPACK_SKIP_PIXELS),ln=H.getParameter(H.UNPACK_SKIP_ROWS),Jn=H.getParameter(H.UNPACK_SKIP_IMAGES),vt=xe.isCompressedTexture?xe.mipmaps[Ce]:xe.image;H.pixelStorei(H.UNPACK_ROW_LENGTH,vt.width),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,vt.height),H.pixelStorei(H.UNPACK_SKIP_PIXELS,W.min.x),H.pixelStorei(H.UNPACK_SKIP_ROWS,W.min.y),H.pixelStorei(H.UNPACK_SKIP_IMAGES,W.min.z),xe.isDataTexture||xe.isData3DTexture?H.texSubImage3D(St,Ce,pe.x,pe.y,pe.z,Ze,ct,mt,gt,Qt,vt.data):xe.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),H.compressedTexSubImage3D(St,Ce,pe.x,pe.y,pe.z,Ze,ct,mt,gt,vt.data)):H.texSubImage3D(St,Ce,pe.x,pe.y,pe.z,Ze,ct,mt,gt,Qt,vt),H.pixelStorei(H.UNPACK_ROW_LENGTH,_t),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,yn),H.pixelStorei(H.UNPACK_SKIP_PIXELS,Xn),H.pixelStorei(H.UNPACK_SKIP_ROWS,ln),H.pixelStorei(H.UNPACK_SKIP_IMAGES,Jn),Ce===0&&_e.generateMipmaps&&H.generateMipmap(St),de.unbindTexture()},this.initTexture=function(W){W.isCubeTexture?_.setTextureCube(W,0):W.isData3DTexture?_.setTexture3D(W,0):W.isDataArrayTexture||W.isCompressedArrayTexture?_.setTexture2DArray(W,0):_.setTexture2D(W,0),de.unbindTexture()},this.resetState=function(){R=0,M=0,T=null,de.reset(),Bt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Ns}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===hm?"display-p3":"srgb",t.unpackColorSpace=un.workingColorSpace===$h?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===Hn?Ra:HI}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===Ra?Hn:Gs}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class MR extends $I{}MR.prototype.isWebGL1Renderer=!0;class mm{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Je(e),this.density=t}clone(){return new mm(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Em{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Je(e),this.near=t,this.far=i}clone(){return new Em(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Uh extends Wt{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}}class ym{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=Lh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=_r()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Hl("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:l,point:BA.clone(),uv:Ir.getInterpolation(BA,Jf,_A,jf,o_,HE,a_,new Be),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function Kf(n,e,t,i,r,s){Oc.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(SA.x=s*Oc.x-r*Oc.y,SA.y=r*Oc.x+s*Oc.y):SA.copy(Oc),n.copy(e),n.x+=SA.x,n.y+=SA.y,n.applyMatrix4(QR)}const qf=new G,l_=new G;class TR extends Wt{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){qf.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(qf);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){qf.setFromMatrixPosition(e.matrixWorld),l_.setFromMatrixPosition(this.matrixWorld);const i=qf.distanceTo(l_)/e.zoom;t[0].object.visible=!0;let r,s;for(r=1,s=t.length;r=o)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const zc="batchId",sa=new ut,m_=new ut,dO=new ut,E_=new ut,YE=new nd,ep=new ri,pl=new $n,QA=new G,XE=new hO,Ti=new en,tp=[];function fO(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new cn(a,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(zc,new cn(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(zc))throw new Error(`BatchedMesh: Geometry cannot use attribute "${zc}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===zc)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ri);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,a=this._drawRanges,l=this._bounds;this._geometryCount!==0&&(s=o[o.length-1]),t===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=t,s===null?r.vertexStart=0:r.vertexStart=s.vertexStart+s.vertexCount;const A=e.getIndex(),h=A!==null;if(h&&(i===-1?r.indexCount=A.count:r.indexCount=i,s===null?r.indexStart=0:r.indexStart=s.indexStart+s.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const d=this._visibility,f=this._active,g=this._matricesTexture,E=this._matricesTexture.image.data;d.push(!0),f.push(!0);const C=this._geometryCount;this._geometryCount++,dO.toArray(E,C*16),g.needsUpdate=!0,o.push(r),a.push({start:h?r.indexStart:r.vertexStart,count:-1}),l.push({boxInitialized:!1,box:new ri,sphereInitialized:!1,sphere:new $n});const y=this.geometry.getAttribute(zc);for(let p=0;p=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=i.getIndex()!==null,s=i.getIndex(),o=t.getIndex(),a=this._reservedRanges[e];if(r&&o.count>a.indexCount||t.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const l=a.vertexStart,A=a.vertexCount;for(const g in i.attributes){if(g===zc)continue;const E=t.getAttribute(g),C=i.getAttribute(g);fO(E,C,l);const y=E.itemSize;for(let p=E.count,v=A;p=t.length||t[e]===!1?this:(t[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,t){if(this._active[e]===!1)return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(r.boxInitialized===!1){s.makeEmpty();const a=o.index,l=o.attributes.position,A=this._drawRanges[e];for(let h=A.start,d=A.start+A.count;h=o||i[e]===!1?this:(t.toArray(s,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,t){const i=this._active,r=this._matricesTexture.image.data,s=this._geometryCount;return e>=s||i[e]===!1?null:t.fromArray(r,e*16)}setVisibleAt(e,t){const i=this._visibility,r=this._active,s=this._geometryCount;return e>=s||r[e]===!1||i[e]===t?this:(i[e]=t,this._visibilityChanged=!0,this)}getVisibleAt(e){const t=this._visibility,i=this._active,r=this._geometryCount;return e>=r||i[e]===!1?!1:t[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,a=this.matrixWorld,l=this.geometry;Ti.material=this.material,Ti.geometry.index=l.index,Ti.geometry.attributes=l.attributes,Ti.geometry.boundingBox===null&&(Ti.geometry.boundingBox=new ri),Ti.geometry.boundingSphere===null&&(Ti.geometry.boundingSphere=new $n);for(let A=0;A({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),a=o===null?1:o.array.BYTES_PER_ELEMENT,l=this._active,A=this._visibility,h=this._multiDrawStarts,d=this._multiDrawCounts,f=this._drawRanges,g=this.perObjectFrustumCulled;g&&(E_.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),YE.setFromProjectionMatrix(E_,e.coordinateSystem));let E=0;if(this.sortObjects){m_.copy(this.matrixWorld).invert(),QA.setFromMatrixPosition(i.matrixWorld).applyMatrix4(m_);for(let p=0,v=A.length;pl)continue;f.applyMatrix4(this.matrixWorld);const P=e.ray.origin.distanceTo(f);Pe.far||t.push({distance:P,point:d.clone().applyMatrix4(this.matrixWorld),index:I,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),v=Math.min(y.count,o.start+o.count);for(let I=p,B=v-1;Il)continue;f.applyMatrix4(this.matrixWorld);const M=e.ray.origin.distanceTo(f);Me.far||t.push({distance:M,point:d.clone().applyMatrix4(this.matrixWorld),index:I,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:A,distanceToRay:Math.sqrt(a),point:l,index:e,face:null,object:o})}}class pO extends Mn{constructor(e,t,i,r,s,o,a,l,A){super(e,t,i,r,s,o,a,l,A),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:xn,this.magFilter=s!==void 0?s:xn,this.generateMipmaps=!1;const h=this;function d(){h.needsUpdate=!0,e.requestVideoFrameCallback(d)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(d)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class gO extends Mn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=zn,this.minFilter=zn,this.generateMipmaps=!1,this.needsUpdate=!0}}class Cm extends Mn{constructor(e,t,i,r,s,o,a,l,A,h,d,f){super(null,o,a,l,A,h,r,s,d,f),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class mO extends Cm{constructor(e,t,i,r,s,o){super(e,t,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=bi}}class EO extends Cm{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,So),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class yO extends Mn{constructor(e,t,i,r,s,o,a,l,A){super(e,t,i,r,s,o,a,l,A),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Es{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;t?o=t:o=e*i[s-1];let a=0,l=s-1,A;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),A=i[r]-o,A<0)a=r+1;else if(A>0)l=r-1;else{l=r;break}if(r=l,i[r]===o)return r/(s-1);const h=i[r],f=i[r+1]-h,g=(o-h)/f;return(r+g)/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=t||(o.isVector2?new Be:new G);return l.copy(a).sub(o).normalize(),l}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new G,r=[],s=[],o=[],a=new G,l=new ut;for(let g=0;g<=e;g++){const E=g/e;r[g]=this.getTangentAt(E,new G)}s[0]=new G,o[0]=new G;let A=Number.MAX_VALUE;const h=Math.abs(r[0].x),d=Math.abs(r[0].y),f=Math.abs(r[0].z);h<=A&&(A=h,i.set(1,0,0)),d<=A&&(A=d,i.set(0,1,0)),f<=A&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let g=1;g<=e;g++){if(s[g]=s[g-1].clone(),o[g]=o[g-1].clone(),a.crossVectors(r[g-1],r[g]),a.length()>Number.EPSILON){a.normalize();const E=Math.acos(Fn(r[g-1].dot(r[g]),-1,1));s[g].applyMatrix4(l.makeRotationAxis(a,E))}o[g].crossVectors(r[g],s[g])}if(t===!0){let g=Math.acos(Fn(s[0].dot(s[e]),-1,1));g/=e,r[0].dot(a.crossVectors(s[0],s[e]))>0&&(g=-g);for(let E=1;E<=e;E++)s[E].applyMatrix4(l.makeRotationAxis(r[E],g*E)),o[E].crossVectors(r[E],s[E])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class Im extends Es{constructor(e=0,t=0,i=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(e,t){const i=t||new Be,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let A,h;this.closed||a>0?A=r[(a-1)%s]:(sp.subVectors(r[0],r[1]).add(r[0]),A=sp);const d=r[a%s],f=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],d=r[o>r.length-3?r.length-1:o+2];return i.set(__(a,l.x,A.x,h.x,d.x),__(a,l.y,A.y,h.y,d.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,a=this.curves[s],l=a.getLength(),A=l===0?0:1-o/l;return a.getPointAt(A,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const d=A.getPoint(0);d.equals(this.currentPoint)||this.lineTo(d.x,d.y)}this.curves.push(A);const h=A.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class rd extends Nt{constructor(e=[new Be(0,-.5),new Be(.5,0),new Be(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Fn(r,0,Math.PI*2);const s=[],o=[],a=[],l=[],A=[],h=1/t,d=new G,f=new Be,g=new G,E=new G,C=new G;let y=0,p=0;for(let v=0;v<=e.length-1;v++)switch(v){case 0:y=e[v+1].x-e[v].x,p=e[v+1].y-e[v].y,g.x=p*1,g.y=-y,g.z=p*0,C.copy(g),g.normalize(),l.push(g.x,g.y,g.z);break;case e.length-1:l.push(C.x,C.y,C.z);break;default:y=e[v+1].x-e[v].x,p=e[v+1].y-e[v].y,g.x=p*1,g.y=-y,g.z=p*0,E.copy(g),g.x+=C.x,g.y+=C.y,g.z+=C.z,g.normalize(),l.push(g.x,g.y,g.z),C.copy(E)}for(let v=0;v<=t;v++){const I=i+v*h*r,B=Math.sin(I),R=Math.cos(I);for(let M=0;M<=e.length-1;M++){d.x=e[M].x*B,d.y=e[M].y,d.z=e[M].x*R,o.push(d.x,d.y,d.z),f.x=v/t,f.y=M/(e.length-1),a.push(f.x,f.y);const T=l[3*M+0]*B,P=l[3*M+1],K=l[3*M+0]*R;A.push(T,P,K)}}for(let v=0;v0&&I(!0),t>0&&I(!1)),this.setIndex(h),this.setAttribute("position",new ot(d,3)),this.setAttribute("normal",new ot(f,3)),this.setAttribute("uv",new ot(g,2));function v(){const B=new G,R=new G;let M=0;const T=(t-e)/i;for(let P=0;P<=s;P++){const K=[],w=P/s,L=w*(t-e)+e;for(let q=0;q<=r;q++){const fe=q/r,J=fe*l+a,re=Math.sin(J),ne=Math.cos(J);R.x=L*re,R.y=-w*i+y,R.z=L*ne,d.push(R.x,R.y,R.z),B.set(re,T,ne).normalize(),f.push(B.x,B.y,B.z),g.push(fe,1-w),K.push(E++)}C.push(K)}for(let P=0;P.9&&T<.1&&(I<.2&&(o[v+0]+=1),B<.2&&(o[v+2]+=1),R<.2&&(o[v+4]+=1))}}function f(v){s.push(v.x,v.y,v.z)}function g(v,I){const B=v*3;I.x=e[B+0],I.y=e[B+1],I.z=e[B+2]}function E(){const v=new G,I=new G,B=new G,R=new G,M=new Be,T=new Be,P=new Be;for(let K=0,w=0;K80*t){a=A=n[0],l=h=n[1];for(let E=t;EA&&(A=d),f>h&&(h=f);g=Math.max(A-a,h-l),g=g!==0?32767/g:0}return Fh(s,o,t,a,l,g,0),o}};function zR(n,e,t,i,r){let s,o;if(r===HO(n,e,t,i)>0)for(s=e;s=e;s-=i)o=w_(s,n[s],n[s+1],o);return o&&wm(o,o.next)&&(Oh(o),o=o.next),o}function ec(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(wm(t,t.next)||Tn(t.prev,t,t.next)===0)){if(Oh(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function Fh(n,e,t,i,r,s,o){if(!n)return;!o&&s&&UO(n,i,r,s);let a=n,l,A;for(;n.prev!==n.next;){if(l=n.prev,A=n.next,s?QO(n,i,r,s):MO(n)){e.push(l.i/t|0),e.push(n.i/t|0),e.push(A.i/t|0),Oh(n),n=A.next,a=A.next;continue}if(n=A,n===a){o?o===1?(n=RO(ec(n),e,t),Fh(n,e,t,i,r,s,2)):o===2&&TO(n,e,t,i,r,s):Fh(ec(n),e,t,i,r,s,1);break}}}function MO(n){const e=n.prev,t=n,i=n.next;if(Tn(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,a=e.y,l=t.y,A=i.y,h=rs?r>o?r:o:s>o?s:o,g=a>l?a>A?a:A:l>A?l:A;let E=i.next;for(;E!==e;){if(E.x>=h&&E.x<=f&&E.y>=d&&E.y<=g&&du(r,a,s,l,o,A,E.x,E.y)&&Tn(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function QO(n,e,t,i){const r=n.prev,s=n,o=n.next;if(Tn(r,s,o)>=0)return!1;const a=r.x,l=s.x,A=o.x,h=r.y,d=s.y,f=o.y,g=al?a>A?a:A:l>A?l:A,y=h>d?h>f?h:f:d>f?d:f,p=fC(g,E,e,t,i),v=fC(C,y,e,t,i);let I=n.prevZ,B=n.nextZ;for(;I&&I.z>=p&&B&&B.z<=v;){if(I.x>=g&&I.x<=C&&I.y>=E&&I.y<=y&&I!==r&&I!==o&&du(a,h,l,d,A,f,I.x,I.y)&&Tn(I.prev,I,I.next)>=0||(I=I.prevZ,B.x>=g&&B.x<=C&&B.y>=E&&B.y<=y&&B!==r&&B!==o&&du(a,h,l,d,A,f,B.x,B.y)&&Tn(B.prev,B,B.next)>=0))return!1;B=B.nextZ}for(;I&&I.z>=p;){if(I.x>=g&&I.x<=C&&I.y>=E&&I.y<=y&&I!==r&&I!==o&&du(a,h,l,d,A,f,I.x,I.y)&&Tn(I.prev,I,I.next)>=0)return!1;I=I.prevZ}for(;B&&B.z<=v;){if(B.x>=g&&B.x<=C&&B.y>=E&&B.y<=y&&B!==r&&B!==o&&du(a,h,l,d,A,f,B.x,B.y)&&Tn(B.prev,B,B.next)>=0)return!1;B=B.nextZ}return!0}function RO(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!wm(r,s)&&HR(r,i,i.next,s)&&kh(r,s)&&kh(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),Oh(i),Oh(i.next),i=n=s),i=i.next}while(i!==n);return ec(i)}function TO(n,e,t,i,r,s){let o=n;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&OO(o,a)){let l=VR(o,a);o=ec(o,o.next),l=ec(l,l.next),Fh(o,e,t,i,r,s,0),Fh(l,e,t,i,r,s,0);return}a=a.next}o=o.next}while(o!==n)}function DO(n,e,t,i){const r=[];let s,o,a,l,A;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){const f=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(f<=s&&f>i&&(i=f,r=t.x=t.x&&t.x>=l&&s!==t.x&&du(or.x||t.x===r.x&&PO(r,t)))&&(r=t,h=d)),t=t.next;while(t!==a);return r}function PO(n,e){return Tn(n.prev,n,e.prev)<0&&Tn(e.next,n,n.next)<0}function UO(n,e,t,i){let r=n;do r.z===0&&(r.z=fC(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,FO(r)}function FO(n){let e,t,i,r,s,o,a,l,A=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||l>0&&i;)a!==0&&(l===0||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,A*=2}while(o>1);return n}function fC(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function kO(n){let e=n,t=n;do(e.x=(n-o)*(s-a)&&(n-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(r-o)*(i-a)}function OO(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!GO(n,e)&&(kh(n,e)&&kh(e,n)&&zO(n,e)&&(Tn(n.prev,n,e.prev)||Tn(n,e.prev,e))||wm(n,e)&&Tn(n.prev,n,n.next)>0&&Tn(e.prev,e,e.next)>0)}function Tn(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function wm(n,e){return n.x===e.x&&n.y===e.y}function HR(n,e,t,i){const r=up(Tn(n,e,t)),s=up(Tn(n,e,i)),o=up(Tn(t,i,n)),a=up(Tn(t,i,e));return!!(r!==s&&o!==a||r===0&&cp(n,t,e)||s===0&&cp(n,i,e)||o===0&&cp(t,n,i)||a===0&&cp(t,e,i))}function cp(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function up(n){return n>0?1:n<0?-1:0}function GO(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&HR(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function kh(n,e){return Tn(n.prev,n,n.next)<0?Tn(n,e,n.next)>=0&&Tn(n,n.prev,e)>=0:Tn(n,e,n.prev)<0||Tn(n,n.next,e)<0}function zO(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function VR(n,e){const t=new pC(n.i,n.x,n.y),i=new pC(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function w_(n,e,t,i){const r=new pC(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Oh(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function pC(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function HO(n,e,t,i){let r=0;for(let s=e,o=t-i;s2&&n[e-1].equals(n[0])&&n.pop()}function Q_(n,e){for(let t=0;tNumber.EPSILON){const Qe=Math.sqrt(Le),Xe=Math.sqrt(D*D+se*se),Ve=Ee.x-_/Qe,Ke=Ee.y+$/Qe,lt=ie.x-se/Xe,It=ie.y+D/Xe,Pe=((lt-Ve)*se-(It-Ke)*D)/($*se-_*D);le=Ve+$*Pe-H.x,de=Ke+_*Pe-H.y;const Pt=le*le+de*de;if(Pt<=2)return new Be(le,de);Te=Math.sqrt(Pt/2)}else{let Qe=!1;$>Number.EPSILON?D>Number.EPSILON&&(Qe=!0):$<-Number.EPSILON?D<-Number.EPSILON&&(Qe=!0):Math.sign(_)===Math.sign(se)&&(Qe=!0),Qe?(le=-_,de=$,Te=Math.sqrt(Le)):(le=$,de=_,Te=Math.sqrt(Le/2))}return new Be(le/Te,de/Te)}const ee=[];for(let H=0,Ee=J.length,ie=Ee-1,le=H+1;H=0;H--){const Ee=H/y,ie=g*Math.cos(Ee*Math.PI/2),le=E*Math.sin(Ee*Math.PI/2)+C;for(let de=0,Te=J.length;de=0;){const le=ie;let de=ie-1;de<0&&(de=H.length-1);for(let Te=0,$=h+y*2;Te<$;Te++){const _=ne*Te,D=ne*(Te+1),se=Ee+le+_,Le=Ee+de+_,De=Ee+de+D,Qe=Ee+le+D;Ie(se,Le,De,Qe)}}}function k(H,Ee,ie){l.push(H),l.push(Ee),l.push(ie)}function me(H,Ee,ie){oe(H),oe(Ee),oe(ie);const le=r.length/3,de=v.generateTopUV(i,r,le-3,le-2,le-1);Se(de[0]),Se(de[1]),Se(de[2])}function Ie(H,Ee,ie,le){oe(H),oe(Ee),oe(le),oe(Ee),oe(ie),oe(le);const de=r.length/3,Te=v.generateSideWallUV(i,r,de-6,de-3,de-2,de-1);Se(Te[0]),Se(Te[1]),Se(Te[3]),Se(Te[1]),Se(Te[2]),Se(Te[3])}function oe(H){r.push(l[H*3+0]),r.push(l[H*3+1]),r.push(l[H*3+2])}function Se(H){s.push(H.x),s.push(H.y)}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){const e=super.toJSON(),t=this.parameters.shapes,i=this.parameters.options;return WO(t,i,e)}static fromJSON(e,t){const i=[];for(let s=0,o=e.shapes.length;s0)&&g.push(I,B,M),(p!==i-1||l0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class Ax extends fi{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Je(16777215),this.specular=new Je(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ga,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Zh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class jR extends fi{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Je(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ga,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class KR extends fi{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ga,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class qR extends fi{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ga,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Zh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class ZR extends fi{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Je(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ga,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class $R extends qi{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function Fl(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function eT(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function tT(n){function e(r,s){return n[r]-n[s]}const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function gC(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const a=t[s]*e;for(let l=0;l!==e;++l)r[o++]=n[a+l]}return r}function hx(n,e,t,i){let r=1,s=n[0];for(;s!==void 0&&s[i]===void 0;)s=n[r++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&&(e.push(s.time),t.push.apply(t,o)),s=n[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++];while(s!==void 0);else do o=s[i],o!==void 0&&(e.push(s.time),t.push(o)),s=n[r++];while(s!==void 0)}function XO(n,e,t,i,r=30){const s=n.clone();s.name=e;const o=[];for(let l=0;l=i)){d.push(A.times[g]);for(let C=0;Cs.tracks[l].times[0]&&(a=s.tracks[l].times[0]);for(let l=0;l=a.times[E]){const p=E*d+h,v=p+d-h;C=a.values.slice(p,v)}else{const p=a.createInterpolant(),v=h,I=d-h;p.evaluate(s),C=p.resultBuffer.slice(v,I)}l==="quaternion"&&new Wn().fromArray(C).normalize().conjugate().toArray(C);const y=A.times.length;for(let p=0;p=s)){const a=t[1];e=s)break t}o=i,i=0;break n}break e}for(;i>>1;et;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){const l=i[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),e=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),e=!1;break}o=l}if(r!==void 0&&eT(r))for(let a=0,l=r.length;a!==l;++a){const A=r[a];if(isNaN(A)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,A),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===Zp,s=e.length-1;let o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*i,l=o*i,A=0;A!==i;++A)t[l+A]=t[a+A];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}ys.prototype.TimeBufferType=Float32Array;ys.prototype.ValueBufferType=Float32Array;ys.prototype.DefaultInterpolation=Qh;class rc extends ys{}rc.prototype.ValueTypeName="bool";rc.prototype.ValueBufferType=Array;rc.prototype.DefaultInterpolation=Mh;rc.prototype.InterpolantFactoryMethodLinear=void 0;rc.prototype.InterpolantFactoryMethodSmooth=void 0;class fx extends ys{}fx.prototype.ValueTypeName="color";class Gh extends ys{}Gh.prototype.ValueTypeName="number";class rT extends ad{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(i-t)/(r-t);let A=e*a;for(let h=A+a;A!==h;A+=4)Wn.slerpFlat(s,0,o,A-a,o,A,l);return s}}class Hu extends ys{InterpolantFactoryMethodLinear(e){return new rT(this.times,this.values,this.getValueSize(),e)}}Hu.prototype.ValueTypeName="quaternion";Hu.prototype.DefaultInterpolation=Qh;Hu.prototype.InterpolantFactoryMethodSmooth=void 0;class sc extends ys{}sc.prototype.ValueTypeName="string";sc.prototype.ValueBufferType=Array;sc.prototype.DefaultInterpolation=Mh;sc.prototype.InterpolantFactoryMethodLinear=void 0;sc.prototype.InterpolantFactoryMethodSmooth=void 0;class zh extends ys{}zh.prototype.ValueTypeName="vector";class Hh{constructor(e,t=-1,i,r=Am){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=_r(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(qO(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(ys.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let a=0;a1){const d=h[1];let f=r[d];f||(r[d]=f=[]),f.push(A)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(d,f,g,E,C){if(g.length!==0){const y=[],p=[];hx(g,y,p,E),y.length!==0&&C.push(new d(f,y,p))}},r=[],s=e.name||"default",o=e.fps||30,a=e.blendMode;let l=e.length||-1;const A=e.hierarchy||[];for(let d=0;d{t&&t(s),this.manager.itemEnd(e)},0),s;if(so[e]!==void 0){so[e].push({onLoad:t,onProgress:i,onError:r});return}so[e]=[],so[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(A=>{if(A.status===200||A.status===0){if(A.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||A.body===void 0||A.body.getReader===void 0)return A;const h=so[e],d=A.body.getReader(),f=A.headers.get("Content-Length")||A.headers.get("X-File-Size"),g=f?parseInt(f):0,E=g!==0;let C=0;const y=new ReadableStream({start(p){v();function v(){d.read().then(({done:I,value:B})=>{if(I)p.close();else{C+=B.byteLength;const R=new ProgressEvent("progress",{lengthComputable:E,loaded:C,total:g});for(let M=0,T=h.length;M{switch(l){case"arraybuffer":return A.arrayBuffer();case"blob":return A.blob();case"document":return A.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return A.json();default:if(a===void 0)return A.text();{const d=/charset="?([^;"\s]*)"?/i.exec(a),f=d&&d[1]?d[1].toLowerCase():void 0,g=new TextDecoder(f);return A.arrayBuffer().then(E=>g.decode(E))}}}).then(A=>{Eo.add(e,A);const h=so[e];delete so[e];for(let d=0,f=h.length;d{const h=so[e];if(h===void 0)throw this.manager.itemError(e),A;delete so[e];for(let d=0,f=h.length;d{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class $O extends Zi{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new zs(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{t(s.parse(JSON.parse(a)))}catch(l){r?r(l):console.error(l),s.manager.itemError(e)}},i,r)}parse(e){const t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=new Je().setHex(o.value);break;case"v2":r.uniforms[s].value=new Be().fromArray(o.value);break;case"v3":r.uniforms[s].value=new G().fromArray(o.value);break;case"v4":r.uniforms[s].value=new An().fromArray(o.value);break;case"m3":r.uniforms[s].value=new Rt().fromArray(o.value);break;case"m4":r.uniforms[s].value=new ut().fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=i(e.map)),e.matcap!==void 0&&(r.matcap=i(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),r.normalScale=new Be().fromArray(s)}return e.displacementMap!==void 0&&(r.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=i(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new Be().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const t={ShadowMaterial:YR,SpriteMaterial:ex,RawShaderMaterial:XR,ShaderMaterial:gs,PointsMaterial:ix,MeshPhysicalMaterial:JR,MeshStandardMaterial:ux,MeshPhongMaterial:Ax,MeshToonMaterial:jR,MeshNormalMaterial:KR,MeshLambertMaterial:qR,MeshDepthMaterial:pm,MeshDistanceMaterial:gm,MeshBasicMaterial:cr,MeshMatcapMaterial:ZR,LineDashedMaterial:$R,LineBasicMaterial:qi,Material:fi};return new t[e]}}class mC{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,r=e.length;i0){const l=new px(t);s=new Vh(l),s.setCrossOrigin(this.crossOrigin);for(let A=0,h=e.length;A0){r=new Vh(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;o{const y=new ri;y.min.fromArray(C.boxMin),y.max.fromArray(C.boxMax);const p=new $n;return p.radius=C.sphereRadius,p.center.fromArray(C.sphereCenter),{boxInitialized:C.boxInitialized,box:y,sphereInitialized:C.sphereInitialized,sphere:p}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=A(e.matricesTexture.uuid);break;case"LOD":o=new TR;break;case"Line":o=new Ua(a(e.geometry),l(e.material));break;case"LineLoop":o=new LR(a(e.geometry),l(e.material));break;case"LineSegments":o=new Hs(a(e.geometry),l(e.material));break;case"PointCloud":case"Points":o=new NR(a(e.geometry),l(e.material));break;case"Sprite":o=new RR(l(e.material));break;case"Group":o=new Vr;break;case"Bone":o=new tx;break;default:o=new Wt}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const f=e.children;for(let g=0;g"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=Eo.get(e);if(o!==void 0){if(s.manager.itemStart(e),o.then){o.then(A=>{t&&t(A),s.manager.itemEnd(e)}).catch(A=>{r&&r(A)});return}return setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(e,a).then(function(A){return A.blob()}).then(function(A){return createImageBitmap(A,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(A){return Eo.add(e,A),t&&t(A),s.manager.itemEnd(e),A}).catch(function(A){r&&r(A),Eo.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});Eo.add(e,l),s.manager.itemStart(e)}}let Ap;class Ex{static getContext(){return Ap===void 0&&(Ap=new(window.AudioContext||window.webkitAudioContext)),Ap}static setContext(e){Ap=e}}class cG extends Zi{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new zs(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(l){try{const A=l.slice(0);Ex.getContext().decodeAudioData(A,function(d){t(d)}).catch(a)}catch(A){a(A)}},i,r);function a(l){r?r(l):console.error(l),s.manager.itemError(e)}}}const U_=new ut,F_=new ut,gl=new ut;class uG{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new ni,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new ni,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,gl.copy(e.projectionMatrix);const r=t.eyeSep/2,s=r*t.near/t.focus,o=t.near*Math.tan(zl*t.fov*.5)/t.zoom;let a,l;F_.elements[12]=-r,U_.elements[12]=r,a=-o*t.aspect+s,l=o*t.aspect+s,gl.elements[0]=2*t.near/(l-a),gl.elements[8]=(l+a)/(l-a),this.cameraL.projectionMatrix.copy(gl),a=-o*t.aspect-s,l=o*t.aspect-s,gl.elements[0]=2*t.near/(l-a),gl.elements[8]=(l+a)/(l-a),this.cameraR.projectionMatrix.copy(gl)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(F_),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(U_)}}class yx{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=k_(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=k_();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function k_(){return(typeof performance>"u"?Date:performance).now()}const ml=new G,O_=new Wn,AG=new G,El=new G;class hG extends Wt{constructor(){super(),this.type="AudioListener",this.context=Ex.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new yx}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(ml,O_,AG),El.set(0,0,-1).applyQuaternion(O_),t.positionX){const r=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(ml.x,r),t.positionY.linearRampToValueAtTime(ml.y,r),t.positionZ.linearRampToValueAtTime(ml.z,r),t.forwardX.linearRampToValueAtTime(El.x,r),t.forwardY.linearRampToValueAtTime(El.y,r),t.forwardZ.linearRampToValueAtTime(El.z,r),t.upX.linearRampToValueAtTime(i.x,r),t.upY.linearRampToValueAtTime(i.y,r),t.upZ.linearRampToValueAtTime(i.z,r)}else t.setPosition(ml.x,ml.y,ml.z),t.setOrientation(El.x,El.y,El.z,i.x,i.y,i.z)}}class gT extends Wt{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let l=t,A=t+t;l!==A;++l)if(i[l]!==i[l+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let s=i,o=r;s!==o;++s)t[s]=t[r+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let o=0;o!==s;++o)e[t+o]=e[i+o]}_slerp(e,t,i,r){Wn.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,s){const o=this._workIndex*s;Wn.multiplyQuaternionsFlat(e,o,e,t,e,i),Wn.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,i,r,s){const o=1-r;for(let a=0;a!==s;++a){const l=t+a;e[l]=e[l]*o+e[i+a]*r}}_lerpAdditive(e,t,i,r,s){for(let o=0;o!==s;++o){const a=t+o;e[a]=e[a]+e[i+o]*r}}}const vx="\\[\\]\\.:\\/",gG=new RegExp("["+vx+"]","g"),Cx="[^"+vx+"]",mG="[^"+vx.replace("\\.","")+"]",EG=/((?:WC+[\/:])*)/.source.replace("WC",Cx),yG=/(WCOD+)?/.source.replace("WCOD",mG),vG=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Cx),CG=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Cx),IG=new RegExp("^"+EG+yG+vG+CG+"$"),xG=["material","materials","bones","map"];class BG{constructor(e,t,i){const r=i||qt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class qt{constructor(e,t,i){this.path=t,this.parsedPath=i||qt.parseTrackName(t),this.node=qt.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new qt.Composite(e,t,i):new qt(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(gG,"")}static parseTrackName(e){const t=IG.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=i.nodeName.substring(r+1);xG.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(s){for(let o=0;o=s){const d=s++,f=e[d];t[f.uuid]=h,e[h]=f,t[A]=d,e[d]=l;for(let g=0,E=r;g!==E;++g){const C=i[g],y=C[d],p=C[h];C[h]=y,C[d]=p}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let s=this.nCachedObjects_,o=e.length;for(let a=0,l=arguments.length;a!==l;++a){const A=arguments[a],h=A.uuid,d=t[h];if(d!==void 0)if(delete t[h],d0&&(t[g.uuid]=d),e[d]=g,e.pop();for(let E=0,C=r;E!==C;++E){const y=i[E];y[d]=y[f],y.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const s=this._bindings;if(r!==void 0)return s[r];const o=this._paths,a=this._parsedPaths,l=this._objects,A=l.length,h=this.nCachedObjects_,d=new Array(A);r=s.length,i[e]=r,o.push(e),a.push(t),s.push(d);for(let f=h,g=l.length;f!==g;++f){const E=l[f];d[f]=new qt(E,e,t)}return d}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,l=o[a],A=e[a];t[A]=i,o[i]=l,o.pop(),s[i]=s[a],s.pop(),r[i]=r[a],r.pop()}}}class ET{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const s=t.tracks,o=s.length,a=new Array(o),l={endingStart:Nl,endingEnd:Nl};for(let A=0;A!==o;++A){const h=s[A].createInterpolant(null);a[A]=h,h.settings=l}this._interpolantSettings=l,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=tR,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const r=this._clip.duration,s=e._clip.duration,o=s/r,a=r/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,s=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const l=a.parameterPositions,A=a.sampleValues;return l[0]=s,l[1]=s+i,A[0]=e/o,A[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const l=(e-s)*i;l<0||i===0?t=0:(this._startTime=null,t=i*l)}t*=this._updateTimeScale(e);const o=this._updateTime(t),a=this._updateWeight(e);if(a>0){const l=this._interpolants,A=this._propertyBindings;switch(this.blendMode){case zI:for(let h=0,d=l.length;h!==d;++h)l[h].evaluate(o),A[h].accumulateAdditive(a);break;case Am:default:for(let h=0,d=l.length;h!==d;++h)l[h].evaluate(o),A[h].accumulate(r,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,s=this._loopCount;const o=i===nR;if(e===0)return s===-1?r:o&&(s&1)===1?t-r:r;if(i===eR){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=t||r<0){const a=Math.floor(r/t);r-=t*a,s+=Math.abs(a);const l=this.repetitions-s;if(l<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(l===1){const A=e<0;this._setEndings(A,!A,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&(s&1)===1)return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=Pl,r.endingEnd=Pl):(e?r.endingStart=this.zeroSlopeAtStart?Pl:Nl:r.endingStart=Rh,t?r.endingEnd=this.zeroSlopeAtEnd?Pl:Nl:r.endingEnd=Rh)}_scheduleFading(e,t,i){const r=this._mixer,s=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,l=o.sampleValues;return a[0]=s,l[0]=t,a[1]=s+e,l[1]=i,this}}const _G=new Float32Array(1);class wG extends wo{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,s=r.length,o=e._propertyBindings,a=e._interpolants,l=i.uuid,A=this._bindingsByRootAndName;let h=A[l];h===void 0&&(h={},A[l]=h);for(let d=0;d!==s;++d){const f=r[d],g=f.name;let E=h[g];if(E!==void 0)++E.referenceCount,o[d]=E;else{if(E=o[d],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,l,g));continue}const C=t&&t._propertyBindings[d].binding.parsedPath;E=new mT(qt.create(i,g,C),f.ValueTypeName,f.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,l,g),o[d]=E}a[d].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,r=e._clip.uuid,s=this._actionsByClip[r];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,r,i)}const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let A=0;A!==i;++A)t[A]._update(r,e,s,o);const a=this._bindings,l=this._nActiveBindings;for(let A=0;A!==l;++A)a[A].apply(o);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,H_).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const V_=new G,hp=new G;class vT{constructor(e=new G,t=new G){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){V_.subVectors(e,this.start),hp.subVectors(this.end,this.start);const i=hp.dot(hp);let s=hp.dot(V_)/i;return t&&(s=Fn(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const W_=new G;class LG extends Wt{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new Nt,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,a=1,l=32;o1)for(let d=0;d.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{K_.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(K_,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class XG extends Hs{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Nt;r.setAttribute("position",new ot(t,3)),r.setAttribute("color",new ot(i,3));const s=new qi({vertexColors:!0,toneMapped:!1});super(r,s),this.type="AxesHelper"}setColors(e,t,i){const r=new Je,s=this.geometry.attributes.color.array;return r.set(e),r.toArray(s,0),r.toArray(s,3),r.set(t),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Aa{constructor(){this.type="ShapePath",this.color=new Je,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new Ta,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,s,o){return this.currentPath.bezierCurveTo(e,t,i,r,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(p){const v=[];for(let I=0,B=p.length;INumber.EPSILON){if(w<0&&(T=v[M],K=-K,P=v[R],w=-w),p.yP.y)continue;if(p.y===T.y){if(p.x===T.x)return!0}else{const L=w*(p.x-T.x)-K*(p.y-T.y);if(L===0)return!0;if(L<0)continue;B=!B}}else{if(p.y!==T.y)continue;if(P.x<=p.x&&p.x<=T.x||T.x<=p.x&&p.x<=P.x)return!0}}return B}const r=ds.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,l;const A=[];if(s.length===1)return a=s[0],l=new Da,l.curves=a.curves,A.push(l),A;let h=!r(s[0].getPoints());h=e?!h:h;const d=[],f=[];let g=[],E=0,C;f[E]=void 0,g[E]=[];for(let p=0,v=s.length;p1){let p=!1,v=0;for(let I=0,B=f.length;I0&&p===!1&&(g=d)}let y;for(let p=0,v=f.length;p{const d=typeof A=="function"?A(e):A;if(d!==e){const f=e;e=h?d:Object.assign({},e,d),t.forEach(g=>g(e,f))}},r=()=>e,s=(A,h=r,d=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let f=h(e);function g(){const E=h(e);if(!d(f,E)){const C=f;A(f=E,C)}}return t.add(g),()=>t.delete(g)},l={setState:i,getState:r,subscribe:(A,h,d)=>h||d?s(A,h,d):(t.add(A),()=>t.delete(A)),destroy:()=>t.clear()};return e=n(i,r,l),l}const KG=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),q_=KG?V.useEffect:V.useLayoutEffect;function xT(n){const e=typeof n=="function"?jG(n):n,t=(i=e.getState,r=Object.is)=>{const[,s]=V.useReducer(y=>y+1,0),o=e.getState(),a=V.useRef(o),l=V.useRef(i),A=V.useRef(r),h=V.useRef(!1),d=V.useRef();d.current===void 0&&(d.current=i(o));let f,g=!1;(a.current!==o||l.current!==i||A.current!==r||h.current)&&(f=i(o),g=!r(d.current,f)),q_(()=>{g&&(d.current=f),a.current=o,l.current=i,A.current=r,h.current=!1});const E=V.useRef(o);q_(()=>{const y=()=>{try{const v=e.getState(),I=l.current(v);A.current(d.current,I)||(a.current=v,d.current=I,s())}catch{h.current=!0,s()}},p=e.subscribe(y);return e.getState()!==E.current&&y(),p},[]);const C=g?f:d.current;return V.useDebugValue(C),C};return Object.assign(t,e),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,e];return{next(){const r=i.length<=0;return{value:i.shift(),done:r}}}},t}var BT={exports:{}},ST={exports:{}},_T={};/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(n){function e(F,ee){var te=F.length;F.push(ee);e:for(;0>>1,ve=F[Ae];if(0>>1;Aer(z,te))Or(k,z)?(F[Ae]=k,F[O]=te,Ae=O):(F[Ae]=z,F[Y]=te,Ae=Y);else if(Or(k,te))F[Ae]=k,F[O]=te,Ae=O;else break e}}return ee}function r(F,ee){var te=F.sortIndex-ee.sortIndex;return te!==0?te:F.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var l=[],A=[],h=1,d=null,f=3,g=!1,E=!1,C=!1,y=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(F){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=F)i(A),ee.sortIndex=ee.expirationTime,e(l,ee);else break;ee=t(A)}}function B(F){if(C=!1,I(F),!E)if(t(l)!==null)E=!0,ne(R);else{var ee=t(A);ee!==null&&ue(B,ee.startTime-F)}}function R(F,ee){E=!1,C&&(C=!1,p(P),P=-1),g=!0;var te=f;try{for(I(ee),d=t(l);d!==null&&(!(d.expirationTime>ee)||F&&!L());){var Ae=d.callback;if(typeof Ae=="function"){d.callback=null,f=d.priorityLevel;var ve=Ae(d.expirationTime<=ee);ee=n.unstable_now(),typeof ve=="function"?d.callback=ve:d===t(l)&&i(l),I(ee)}else i(l);d=t(l)}if(d!==null)var Oe=!0;else{var Y=t(A);Y!==null&&ue(B,Y.startTime-ee),Oe=!1}return Oe}finally{d=null,f=te,g=!1}}var M=!1,T=null,P=-1,K=5,w=-1;function L(){return!(n.unstable_now()-wF||125Ae?(F.sortIndex=te,e(A,F),t(l)===null&&F===t(A)&&(C?(p(P),P=-1):C=!0,ue(B,te-Ae))):(F.sortIndex=ve,e(l,F),E||g||(E=!0,ne(R))),F},n.unstable_shouldYield=L,n.unstable_wrapCallback=function(F){var ee=f;return function(){var te=f;f=ee;try{return F.apply(this,arguments)}finally{f=te}}}})(_T);ST.exports=_T;var yC=ST.exports;/** + * @license React + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var qG=function(e){var t={},i=V,r=yC,s=Object.assign;function o(c){for(var u="https://reactjs.org/docs/error-decoder.html?invariant="+c,m=1;mce||S[X]!==Q[ce]){var Re=` +`+S[X].replace(" at new "," at ");return c.displayName&&Re.includes("")&&(Re=Re.replace("",c.displayName)),Re}while(1<=X&&0<=ce);break}}}finally{St=!1,Error.prepareStackTrace=m}return(c=c?c.displayName||c.name:"")?Qt(c):""}var yn=Object.prototype.hasOwnProperty,Xn=[],ln=-1;function Jn(c){return{current:c}}function vt(c){0>ln||(c.current=Xn[ln],Xn[ln]=null,ln--)}function et(c,u){ln++,Xn[ln]=c.current,c.current=u}var Ii={},xt=Jn(Ii),fn=Jn(!1),Ar=Ii;function N(c,u){var m=c.type.contextTypes;if(!m)return Ii;var x=c.stateNode;if(x&&x.__reactInternalMemoizedUnmaskedChildContext===u)return x.__reactInternalMemoizedMaskedChildContext;var S={},Q;for(Q in m)S[Q]=u[Q];return x&&(c=c.stateNode,c.__reactInternalMemoizedUnmaskedChildContext=u,c.__reactInternalMemoizedMaskedChildContext=S),S}function U(c){return c=c.childContextTypes,c!=null}function Z(){vt(fn),vt(xt)}function ae(c,u,m){if(xt.current!==Ii)throw Error(o(168));et(xt,u),et(fn,m)}function ge(c,u,m){var x=c.stateNode;if(u=u.childContextTypes,typeof x.getChildContext!="function")return m;x=x.getChildContext();for(var S in x)if(!(S in u))throw Error(o(108,P(c)||"Unknown",S));return s({},m,x)}function we(c){return c=(c=c.stateNode)&&c.__reactInternalMemoizedMergedChildContext||Ii,Ar=xt.current,et(xt,c),et(fn,fn.current),!0}function Ue(c,u,m){var x=c.stateNode;if(!x)throw Error(o(169));m?(c=ge(c,u,Ar),x.__reactInternalMemoizedMergedChildContext=c,vt(fn),vt(xt),et(xt,c)):vt(fn),et(fn,m)}var Ne=Math.clz32?Math.clz32:$e,We=Math.log,ze=Math.LN2;function $e(c){return c>>>=0,c===0?32:31-(We(c)/ze|0)|0}var ft=64,Ht=4194304;function gn(c){switch(c&-c){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return c&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return c}}function Xt(c,u){var m=c.pendingLanes;if(m===0)return 0;var x=0,S=c.suspendedLanes,Q=c.pingedLanes,X=m&268435455;if(X!==0){var ce=X&~S;ce!==0?x=gn(ce):(Q&=X,Q!==0&&(x=gn(Q)))}else X=m&~S,X!==0?x=gn(X):Q!==0&&(x=gn(Q));if(x===0)return 0;if(u!==0&&u!==x&&!(u&S)&&(S=x&-x,Q=u&-u,S>=Q||S===16&&(Q&4194240)!==0))return u;if(x&4&&(x|=m&16),u=c.entangledLanes,u!==0)for(c=c.entanglements,u&=x;0m;m++)u.push(c);return u}function Ho(c,u,m){c.pendingLanes|=u,u!==536870912&&(c.suspendedLanes=0,c.pingedLanes=0),c=c.eventTimes,u=31-Ne(u),c[u]=m}function yd(c,u){var m=c.pendingLanes&~u;c.pendingLanes=u,c.suspendedLanes=0,c.pingedLanes=0,c.expiredLanes&=u,c.mutableReadLanes&=u,c.entangledLanes&=u,u=c.entanglements;var x=c.eventTimes;for(c=c.expirationTimes;0>=X,S-=X,Ks=1<<32-Ne(u)+S|m<rn?(ci=Dt,Dt=null):ci=Dt.sibling;var sn=yt(ye,Dt,Me[rn],qe);if(sn===null){Dt===null&&(Dt=ci);break}c&&Dt&&sn.alternate===null&&u(ye,Dt),he=Q(sn,he,rn),kt===null?At=sn:kt.sibling=sn,kt=sn,Dt=ci}if(rn===Me.length)return m(ye,Dt),Sn&&il(ye,rn),At;if(Dt===null){for(;rnrn?(ci=Dt,Dt=null):ci=Dt.sibling;var qo=yt(ye,Dt,sn.value,qe);if(qo===null){Dt===null&&(Dt=ci);break}c&&Dt&&qo.alternate===null&&u(ye,Dt),he=Q(qo,he,rn),kt===null?At=qo:kt.sibling=qo,kt=qo,Dt=ci}if(sn.done)return m(ye,Dt),Sn&&il(ye,rn),At;if(Dt===null){for(;!sn.done;rn++,sn=Me.next())sn=Tt(ye,sn.value,qe),sn!==null&&(he=Q(sn,he,rn),kt===null?At=sn:kt.sibling=sn,kt=sn);return Sn&&il(ye,rn),At}for(Dt=x(ye,Dt);!sn.done;rn++,sn=Me.next())sn=pn(Dt,ye,rn,sn.value,qe),sn!==null&&(c&&sn.alternate!==null&&Dt.delete(sn.key===null?rn:sn.key),he=Q(sn,he,rn),kt===null?At=sn:kt.sibling=sn,kt=sn);return c&&Dt.forEach(function(Qb){return u(ye,Qb)}),Sn&&il(ye,rn),At}function Ur(ye,he,Me,qe){if(typeof Me=="object"&&Me!==null&&Me.type===h&&Me.key===null&&(Me=Me.props.children),typeof Me=="object"&&Me!==null){switch(Me.$$typeof){case l:e:{for(var At=Me.key,kt=he;kt!==null;){if(kt.key===At){if(At=Me.type,At===h){if(kt.tag===7){m(ye,kt.sibling),he=S(kt,Me.props.children),he.return=ye,ye=he;break e}}else if(kt.elementType===At||typeof At=="object"&&At!==null&&At.$$typeof===I&&jx(At)===kt.type){m(ye,kt.sibling),he=S(kt,Me.props),he.ref=qu(ye,kt,Me),he.return=ye,ye=he;break e}m(ye,kt);break}else u(ye,kt);kt=kt.sibling}Me.type===h?(he=ul(Me.props.children,ye.mode,qe,Me.key),he.return=ye,ye=he):(qe=lf(Me.type,Me.key,Me.props,null,ye.mode,qe),qe.ref=qu(ye,he,Me),qe.return=ye,ye=qe)}return X(ye);case A:e:{for(kt=Me.key;he!==null;){if(he.key===kt)if(he.tag===4&&he.stateNode.containerInfo===Me.containerInfo&&he.stateNode.implementation===Me.implementation){m(ye,he.sibling),he=S(he,Me.children||[]),he.return=ye,ye=he;break e}else{m(ye,he);break}else u(ye,he);he=he.sibling}he=Y0(Me,ye.mode,qe),he.return=ye,ye=he}return X(ye);case I:return kt=Me._init,Ur(ye,he,kt(Me._payload),qe)}if(re(Me))return ht(ye,he,Me,qe);if(M(Me))return _i(ye,he,Me,qe);Rd(ye,Me)}return typeof Me=="string"&&Me!==""||typeof Me=="number"?(Me=""+Me,he!==null&&he.tag===6?(m(ye,he.sibling),he=S(he,Me),he.return=ye,ye=he):(m(ye,he),he=W0(Me,ye.mode,qe),he.return=ye,ye=he),X(ye)):m(ye,he)}return Ur}var fc=Kx(!0),qx=Kx(!1),Zu={},br=Jn(Zu),$u=Jn(Zu),pc=Jn(Zu);function Ss(c){if(c===Zu)throw Error(o(174));return c}function c0(c,u){et(pc,u),et($u,c),et(br,Zu),c=ue(u),vt(br),et(br,c)}function gc(){vt(br),vt($u),vt(pc)}function Zx(c){var u=Ss(pc.current),m=Ss(br.current);u=F(m,c.type,u),m!==u&&(et($u,c),et(br,u))}function u0(c){$u.current===c&&(vt(br),vt($u))}var Qn=Jn(0);function Td(c){for(var u=c;u!==null;){if(u.tag===13){var m=u.memoizedState;if(m!==null&&(m=m.dehydrated,m===null||el(m)||gi(m)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!==void 0){if(u.flags&128)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===c)break;for(;u.sibling===null;){if(u.return===null||u.return===c)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var A0=[];function h0(){for(var c=0;cm?m:4,c(!0);var x=Lr.transition;Lr.transition={};try{c(!1),u()}finally{nn=m,Lr.transition=x}}function h1(){return _s().memoizedState}function nb(c,u,m){var x=Jo(c);m={lane:x,action:m,hasEagerState:!1,eagerState:null,next:null},d1(c)?f1(u,m):(p1(c,u,m),m=ki(),c=Nr(c,x,m),c!==null&&g1(c,u,x))}function ib(c,u,m){var x=Jo(c),S={lane:x,action:m,hasEagerState:!1,eagerState:null,next:null};if(d1(c))f1(u,S);else{p1(c,u,S);var Q=c.alternate;if(c.lanes===0&&(Q===null||Q.lanes===0)&&(Q=u.lastRenderedReducer,Q!==null))try{var X=u.lastRenderedState,ce=Q(X,m);if(S.hasEagerState=!0,S.eagerState=ce,Is(ce,X))return}catch{}finally{}m=ki(),c=Nr(c,x,m),c!==null&&g1(c,u,x)}}function d1(c){var u=c.alternate;return c===Nn||u!==null&&u===Nn}function f1(c,u){eA=bd=!0;var m=c.pending;m===null?u.next=u:(u.next=m.next,m.next=u),c.pending=u}function p1(c,u,m){jn!==null&&c.mode&1&&!(Gt&2)?(c=u.interleaved,c===null?(m.next=m,Bs===null?Bs=[u]:Bs.push(u)):(m.next=c.next,c.next=m),u.interleaved=m):(c=u.pending,c===null?m.next=m:(m.next=c.next,c.next=m),u.pending=m)}function g1(c,u,m){if(m&4194240){var x=u.lanes;x&=c.pendingLanes,m|=x,u.lanes=m,Ym(c,m)}}var Fd={readContext:Rr,useCallback:Bi,useContext:Bi,useEffect:Bi,useImperativeHandle:Bi,useInsertionEffect:Bi,useLayoutEffect:Bi,useMemo:Bi,useReducer:Bi,useRef:Bi,useState:Bi,useDebugValue:Bi,useDeferredValue:Bi,useTransition:Bi,useMutableSource:Bi,useSyncExternalStore:Bi,useId:Bi,unstable_isNewReconciler:!1},rb={readContext:Rr,useCallback:function(c,u){return Zs().memoizedState=[c,u===void 0?null:u],c},useContext:Rr,useEffect:m0,useImperativeHandle:function(c,u,m){return m=m!=null?m.concat([c]):null,Pd(4194308,4,l1.bind(null,u,c),m)},useLayoutEffect:function(c,u){return Pd(4194308,4,c,u)},useInsertionEffect:function(c,u){return Pd(4,2,c,u)},useMemo:function(c,u){var m=Zs();return u=u===void 0?null:u,c=c(),m.memoizedState=[c,u],c},useReducer:function(c,u,m){var x=Zs();return u=m!==void 0?m(u):u,x.memoizedState=x.baseState=u,c={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:c,lastRenderedState:u},x.queue=c,c=c.dispatch=nb.bind(null,Nn,c),[x.memoizedState,c]},useRef:function(c){var u=Zs();return c={current:c},u.memoizedState=c},useState:g0,useDebugValue:E0,useDeferredValue:function(c){var u=g0(c),m=u[0],x=u[1];return m0(function(){var S=Lr.transition;Lr.transition={};try{x(c)}finally{Lr.transition=S}},[c]),m},useTransition:function(){var c=g0(!1),u=c[0];return c=tb.bind(null,c[1]),Zs().memoizedState=c,[u,c]},useMutableSource:function(){},useSyncExternalStore:function(c,u,m){var x=Nn,S=Zs();if(Sn){if(m===void 0)throw Error(o(407));m=m()}else{if(m=u(),jn===null)throw Error(o(349));mc&30||t1(x,u,m)}S.memoizedState=m;var Q={value:m,getSnapshot:u};return S.queue=Q,m0(i1.bind(null,x,Q,c),[c]),x.flags|=2048,nA(9,n1.bind(null,x,Q,m,u),void 0,null),m},useId:function(){var c=Zs(),u=jn.identifierPrefix;if(Sn){var m=qs,x=Ks;m=(x&~(1<<32-Ne(x)-1)).toString(32)+m,u=":"+u+"R"+m,m=tA++,0U0&&(u.flags|=128,x=!0,oA(S,!1),u.lanes=4194304)}else{if(!x)if(c=Td(Q),c!==null){if(u.flags|=128,x=!0,c=c.updateQueue,c!==null&&(u.updateQueue=c,u.flags|=4),oA(S,!0),S.tail===null&&S.tailMode==="hidden"&&!Q.alternate&&!Sn)return Si(u),null}else 2*ai()-S.renderingStartTime>U0&&m!==1073741824&&(u.flags|=128,x=!0,oA(S,!1),u.lanes=4194304);S.isBackwards?(Q.sibling=u.child,u.child=Q):(c=S.last,c!==null?c.sibling=Q:u.child=Q,S.last=Q)}return S.tail!==null?(u=S.tail,S.rendering=u,S.tail=u.sibling,S.renderingStartTime=ai(),u.sibling=null,c=Qn.current,et(Qn,x?c&1|2:c&1),u):(Si(u),null);case 22:case 23:return z0(),x=u.memoizedState!==null,c!==null&&c.memoizedState!==null!==x&&(u.flags|=8192),x&&u.mode&1?mr&1073741824&&(Si(u),Se&&u.subtreeFlags&6&&(u.flags|=8192)):Si(u),null;case 24:return null;case 25:return null}throw Error(o(156,u.tag))}var cb=a.ReactCurrentOwner,gr=!1;function Fi(c,u,m,x){u.child=c===null?qx(u,null,m,x):fc(u,c.child,m,x)}function B1(c,u,m,x,S){m=m.render;var Q=u.ref;return uc(u,S),x=f0(c,u,m,x,Q,S),m=p0(),c!==null&&!gr?(u.updateQueue=c.updateQueue,u.flags&=-2053,c.lanes&=~S,$s(c,u,S)):(Sn&&m&&r0(u),u.flags|=1,Fi(c,u,x,S),u.child)}function S1(c,u,m,x,S){if(c===null){var Q=m.type;return typeof Q=="function"&&!V0(Q)&&Q.defaultProps===void 0&&m.compare===null&&m.defaultProps===void 0?(u.tag=15,u.type=Q,_1(c,u,Q,x,S)):(c=lf(m.type,null,x,u,u.mode,S),c.ref=u.ref,c.return=u,u.child=c)}if(Q=c.child,!(c.lanes&S)){var X=Q.memoizedProps;if(m=m.compare,m=m!==null?m:Id,m(X,x)&&c.ref===u.ref)return $s(c,u,S)}return u.flags|=1,c=Ko(Q,x),c.ref=u.ref,c.return=u,u.child=c}function _1(c,u,m,x,S){if(c!==null&&Id(c.memoizedProps,x)&&c.ref===u.ref)if(gr=!1,(c.lanes&S)!==0)c.flags&131072&&(gr=!0);else return u.lanes=c.lanes,$s(c,u,S);return C0(c,u,m,x,S)}function w1(c,u,m){var x=u.pendingProps,S=x.children,Q=c!==null?c.memoizedState:null;if(x.mode==="hidden")if(!(u.mode&1))u.memoizedState={baseLanes:0,cachePool:null},et(Ec,mr),mr|=m;else if(m&1073741824)u.memoizedState={baseLanes:0,cachePool:null},x=Q!==null?Q.baseLanes:m,et(Ec,mr),mr|=x;else return c=Q!==null?Q.baseLanes|m:m,u.lanes=u.childLanes=1073741824,u.memoizedState={baseLanes:c,cachePool:null},u.updateQueue=null,et(Ec,mr),mr|=c,null;else Q!==null?(x=Q.baseLanes|m,u.memoizedState=null):x=m,et(Ec,mr),mr|=x;return Fi(c,u,S,m),u.child}function M1(c,u){var m=u.ref;(c===null&&m!==null||c!==null&&c.ref!==m)&&(u.flags|=512,u.flags|=2097152)}function C0(c,u,m,x,S){var Q=U(m)?Ar:xt.current;return Q=N(u,Q),uc(u,S),m=f0(c,u,m,x,Q,S),x=p0(),c!==null&&!gr?(u.updateQueue=c.updateQueue,u.flags&=-2053,c.lanes&=~S,$s(c,u,S)):(Sn&&x&&r0(u),u.flags|=1,Fi(c,u,m,S),u.child)}function Q1(c,u,m,x,S){if(U(m)){var Q=!0;we(u)}else Q=!1;if(uc(u,S),u.stateNode===null)c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),Hx(u,m,x),i0(u,m,x,S),x=!0;else if(c===null){var X=u.stateNode,ce=u.memoizedProps;X.props=ce;var Re=X.context,He=m.contextType;typeof He=="object"&&He!==null?He=Rr(He):(He=U(m)?Ar:xt.current,He=N(u,He));var st=m.getDerivedStateFromProps,Tt=typeof st=="function"||typeof X.getSnapshotBeforeUpdate=="function";Tt||typeof X.UNSAFE_componentWillReceiveProps!="function"&&typeof X.componentWillReceiveProps!="function"||(ce!==x||Re!==He)&&Vx(u,X,x,He),Vo=!1;var yt=u.memoizedState;X.state=yt,_d(u,x,X,S),Re=u.memoizedState,ce!==x||yt!==Re||fn.current||Vo?(typeof st=="function"&&(n0(u,m,st,x),Re=u.memoizedState),(ce=Vo||zx(u,m,ce,x,yt,Re,He))?(Tt||typeof X.UNSAFE_componentWillMount!="function"&&typeof X.componentWillMount!="function"||(typeof X.componentWillMount=="function"&&X.componentWillMount(),typeof X.UNSAFE_componentWillMount=="function"&&X.UNSAFE_componentWillMount()),typeof X.componentDidMount=="function"&&(u.flags|=4194308)):(typeof X.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=x,u.memoizedState=Re),X.props=x,X.state=Re,X.context=He,x=ce):(typeof X.componentDidMount=="function"&&(u.flags|=4194308),x=!1)}else{X=u.stateNode,Fx(c,u),ce=u.memoizedProps,He=u.type===u.elementType?ce:es(u.type,ce),X.props=He,Tt=u.pendingProps,yt=X.context,Re=m.contextType,typeof Re=="object"&&Re!==null?Re=Rr(Re):(Re=U(m)?Ar:xt.current,Re=N(u,Re));var pn=m.getDerivedStateFromProps;(st=typeof pn=="function"||typeof X.getSnapshotBeforeUpdate=="function")||typeof X.UNSAFE_componentWillReceiveProps!="function"&&typeof X.componentWillReceiveProps!="function"||(ce!==Tt||yt!==Re)&&Vx(u,X,x,Re),Vo=!1,yt=u.memoizedState,X.state=yt,_d(u,x,X,S);var ht=u.memoizedState;ce!==Tt||yt!==ht||fn.current||Vo?(typeof pn=="function"&&(n0(u,m,pn,x),ht=u.memoizedState),(He=Vo||zx(u,m,He,x,yt,ht,Re)||!1)?(st||typeof X.UNSAFE_componentWillUpdate!="function"&&typeof X.componentWillUpdate!="function"||(typeof X.componentWillUpdate=="function"&&X.componentWillUpdate(x,ht,Re),typeof X.UNSAFE_componentWillUpdate=="function"&&X.UNSAFE_componentWillUpdate(x,ht,Re)),typeof X.componentDidUpdate=="function"&&(u.flags|=4),typeof X.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof X.componentDidUpdate!="function"||ce===c.memoizedProps&&yt===c.memoizedState||(u.flags|=4),typeof X.getSnapshotBeforeUpdate!="function"||ce===c.memoizedProps&&yt===c.memoizedState||(u.flags|=1024),u.memoizedProps=x,u.memoizedState=ht),X.props=x,X.state=ht,X.context=Re,x=He):(typeof X.componentDidUpdate!="function"||ce===c.memoizedProps&&yt===c.memoizedState||(u.flags|=4),typeof X.getSnapshotBeforeUpdate!="function"||ce===c.memoizedProps&&yt===c.memoizedState||(u.flags|=1024),x=!1)}return I0(c,u,m,x,Q,S)}function I0(c,u,m,x,S,Q){M1(c,u);var X=(u.flags&128)!==0;if(!x&&!X)return S&&Ue(u,m,!1),$s(c,u,Q);x=u.stateNode,cb.current=u;var ce=X&&typeof m.getDerivedStateFromError!="function"?null:x.render();return u.flags|=1,c!==null&&X?(u.child=fc(u,c.child,null,Q),u.child=fc(u,null,ce,Q)):Fi(c,u,ce,Q),u.memoizedState=x.state,S&&Ue(u,m,!0),u.child}function R1(c){var u=c.stateNode;u.pendingContext?ae(c,u.pendingContext,u.pendingContext!==u.context):u.context&&ae(c,u.context,!1),c0(c,u.containerInfo)}function T1(c,u,m,x,S){return dc(),l0(S),u.flags|=256,Fi(c,u,m,x),u.child}var Gd={dehydrated:null,treeContext:null,retryLane:0};function zd(c){return{baseLanes:c,cachePool:null}}function D1(c,u,m){var x=u.pendingProps,S=Qn.current,Q=!1,X=(u.flags&128)!==0,ce;if((ce=X)||(ce=c!==null&&c.memoizedState===null?!1:(S&2)!==0),ce?(Q=!0,u.flags&=-129):(c===null||c.memoizedState!==null)&&(S|=1),et(Qn,S&1),c===null)return a0(u),c=u.memoizedState,c!==null&&(c=c.dehydrated,c!==null)?(u.mode&1?gi(c)?u.lanes=8:u.lanes=1073741824:u.lanes=1,null):(S=x.children,c=x.fallback,Q?(x=u.mode,Q=u.child,S={mode:"hidden",children:S},!(x&1)&&Q!==null?(Q.childLanes=0,Q.pendingProps=S):Q=cf(S,x,0,null),c=ul(c,x,m,null),Q.return=u,c.return=u,Q.sibling=c,u.child=Q,u.child.memoizedState=zd(m),u.memoizedState=Gd,c):x0(u,S));if(S=c.memoizedState,S!==null){if(ce=S.dehydrated,ce!==null){if(X)return u.flags&256?(u.flags&=-257,Hd(c,u,m,Error(o(422)))):u.memoizedState!==null?(u.child=c.child,u.flags|=128,null):(Q=x.fallback,S=u.mode,x=cf({mode:"visible",children:x.children},S,0,null),Q=ul(Q,S,m,null),Q.flags|=2,x.return=u,Q.return=u,x.sibling=Q,u.child=x,u.mode&1&&fc(u,c.child,null,m),u.child.memoizedState=zd(m),u.memoizedState=Gd,Q);if(!(u.mode&1))u=Hd(c,u,m,null);else if(gi(ce))u=Hd(c,u,m,Error(o(419)));else if(x=(m&c.childLanes)!==0,gr||x){if(x=jn,x!==null){switch(m&-m){case 4:Q=2;break;case 16:Q=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:Q=32;break;case 536870912:Q=268435456;break;default:Q=0}x=Q&(x.suspendedLanes|m)?0:Q,x!==0&&x!==S.retryLane&&(S.retryLane=x,Nr(c,x,-1))}H0(),u=Hd(c,u,m,Error(o(421)))}else el(ce)?(u.flags|=128,u.child=c.child,u=Ib.bind(null,c),Ys(ce,u),u=null):(m=S.treeContext,Ee&&(pr=zo(ce),fr=u,Sn=!0,ts=null,ju=!1,m!==null&&(Tr[Dr++]=Ks,Tr[Dr++]=qs,Tr[Dr++]=nl,Ks=m.id,qs=m.overflow,nl=u)),u=x0(u,u.pendingProps.children),u.flags|=4096);return u}return Q?(x=L1(c,u,x.children,x.fallback,m),Q=u.child,S=c.child.memoizedState,Q.memoizedState=S===null?zd(m):{baseLanes:S.baseLanes|m,cachePool:null},Q.childLanes=c.childLanes&~m,u.memoizedState=Gd,x):(m=b1(c,u,x.children,m),u.memoizedState=null,m)}return Q?(x=L1(c,u,x.children,x.fallback,m),Q=u.child,S=c.child.memoizedState,Q.memoizedState=S===null?zd(m):{baseLanes:S.baseLanes|m,cachePool:null},Q.childLanes=c.childLanes&~m,u.memoizedState=Gd,x):(m=b1(c,u,x.children,m),u.memoizedState=null,m)}function x0(c,u){return u=cf({mode:"visible",children:u},c.mode,0,null),u.return=c,c.child=u}function b1(c,u,m,x){var S=c.child;return c=S.sibling,m=Ko(S,{mode:"visible",children:m}),!(u.mode&1)&&(m.lanes=x),m.return=u,m.sibling=null,c!==null&&(x=u.deletions,x===null?(u.deletions=[c],u.flags|=16):x.push(c)),u.child=m}function L1(c,u,m,x,S){var Q=u.mode;c=c.child;var X=c.sibling,ce={mode:"hidden",children:m};return!(Q&1)&&u.child!==c?(m=u.child,m.childLanes=0,m.pendingProps=ce,u.deletions=null):(m=Ko(c,ce),m.subtreeFlags=c.subtreeFlags&14680064),X!==null?x=Ko(X,x):(x=ul(x,Q,S,null),x.flags|=2),x.return=u,m.return=u,m.sibling=x,u.child=m,x}function Hd(c,u,m,x){return x!==null&&l0(x),fc(u,c.child,null,m),c=x0(u,u.pendingProps.children),c.flags|=2,u.memoizedState=null,c}function N1(c,u,m){c.lanes|=u;var x=c.alternate;x!==null&&(x.lanes|=u),e0(c.return,u,m)}function B0(c,u,m,x,S){var Q=c.memoizedState;Q===null?c.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:x,tail:m,tailMode:S}:(Q.isBackwards=u,Q.rendering=null,Q.renderingStartTime=0,Q.last=x,Q.tail=m,Q.tailMode=S)}function P1(c,u,m){var x=u.pendingProps,S=x.revealOrder,Q=x.tail;if(Fi(c,u,x.children,m),x=Qn.current,x&2)x=x&1|2,u.flags|=128;else{if(c!==null&&c.flags&128)e:for(c=u.child;c!==null;){if(c.tag===13)c.memoizedState!==null&&N1(c,m,u);else if(c.tag===19)N1(c,m,u);else if(c.child!==null){c.child.return=c,c=c.child;continue}if(c===u)break e;for(;c.sibling===null;){if(c.return===null||c.return===u)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}x&=1}if(et(Qn,x),!(u.mode&1))u.memoizedState=null;else switch(S){case"forwards":for(m=u.child,S=null;m!==null;)c=m.alternate,c!==null&&Td(c)===null&&(S=m),m=m.sibling;m=S,m===null?(S=u.child,u.child=null):(S=m.sibling,m.sibling=null),B0(u,!1,S,m,Q);break;case"backwards":for(m=null,S=u.child,u.child=null;S!==null;){if(c=S.alternate,c!==null&&Td(c)===null){u.child=S;break}c=S.sibling,S.sibling=m,m=S,S=c}B0(u,!0,m,null,Q);break;case"together":B0(u,!1,null,null,void 0);break;default:u.memoizedState=null}return u.child}function $s(c,u,m){if(c!==null&&(u.dependencies=c.dependencies),yc|=u.lanes,!(m&u.childLanes))return null;if(c!==null&&u.child!==c.child)throw Error(o(153));if(u.child!==null){for(c=u.child,m=Ko(c,c.pendingProps),u.child=m,m.return=u;c.sibling!==null;)c=c.sibling,m=m.sibling=Ko(c,c.pendingProps),m.return=u;m.sibling=null}return u.child}function ub(c,u,m){switch(u.tag){case 3:R1(u),dc();break;case 5:Zx(u);break;case 1:U(u.type)&&we(u);break;case 4:c0(u,u.stateNode.containerInfo);break;case 10:Ux(u,u.type._context,u.memoizedProps.value);break;case 13:var x=u.memoizedState;if(x!==null)return x.dehydrated!==null?(et(Qn,Qn.current&1),u.flags|=128,null):m&u.child.childLanes?D1(c,u,m):(et(Qn,Qn.current&1),c=$s(c,u,m),c!==null?c.sibling:null);et(Qn,Qn.current&1);break;case 19:if(x=(m&u.childLanes)!==0,c.flags&128){if(x)return P1(c,u,m);u.flags|=128}var S=u.memoizedState;if(S!==null&&(S.rendering=null,S.tail=null,S.lastEffect=null),et(Qn,Qn.current),x)break;return null;case 22:case 23:return u.lanes=0,w1(c,u,m)}return $s(c,u,m)}function Ab(c,u){switch(s0(u),u.tag){case 1:return U(u.type)&&Z(),c=u.flags,c&65536?(u.flags=c&-65537|128,u):null;case 3:return gc(),vt(fn),vt(xt),h0(),c=u.flags,c&65536&&!(c&128)?(u.flags=c&-65537|128,u):null;case 5:return u0(u),null;case 13:if(vt(Qn),c=u.memoizedState,c!==null&&c.dehydrated!==null){if(u.alternate===null)throw Error(o(340));dc()}return c=u.flags,c&65536?(u.flags=c&-65537|128,u):null;case 19:return vt(Qn),null;case 4:return gc(),null;case 10:return $m(u.type._context),null;case 22:case 23:return z0(),null;case 24:return null;default:return null}}var Vd=!1,sl=!1,hb=typeof WeakSet=="function"?WeakSet:Set,je=null;function Wd(c,u){var m=c.ref;if(m!==null)if(typeof m=="function")try{m(null)}catch(x){nr(c,u,x)}else m.current=null}function S0(c,u,m){try{m()}catch(x){nr(c,u,x)}}var U1=!1;function db(c,u){for(ee(c.containerInfo),je=u;je!==null;)if(c=je,u=c.child,(c.subtreeFlags&1028)!==0&&u!==null)u.return=c,je=u;else for(;je!==null;){c=je;try{var m=c.alternate;if(c.flags&1024)switch(c.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var x=m.memoizedProps,S=m.memoizedState,Q=c.stateNode,X=Q.getSnapshotBeforeUpdate(c.elementType===c.type?x:es(c.type,x),S);Q.__reactInternalSnapshotBeforeUpdate=X}break;case 3:Se&&Ge(c.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(ce){nr(c,c.return,ce)}if(u=c.sibling,u!==null){u.return=c.return,je=u;break}je=c.return}return m=U1,U1=!1,m}function ol(c,u,m){var x=u.updateQueue;if(x=x!==null?x.lastEffect:null,x!==null){var S=x=x.next;do{if((S.tag&c)===c){var Q=S.destroy;S.destroy=void 0,Q!==void 0&&S0(u,m,Q)}S=S.next}while(S!==x)}}function aA(c,u){if(u=u.updateQueue,u=u!==null?u.lastEffect:null,u!==null){var m=u=u.next;do{if((m.tag&c)===c){var x=m.create;m.destroy=x()}m=m.next}while(m!==u)}}function _0(c){var u=c.ref;if(u!==null){var m=c.stateNode;switch(c.tag){case 5:c=ne(m);break;default:c=m}typeof u=="function"?u(c):u.current=c}}function F1(c,u,m){if(Cs&&typeof Cs.onCommitFiberUnmount=="function")try{Cs.onCommitFiberUnmount(vd,u)}catch{}switch(u.tag){case 0:case 11:case 14:case 15:if(c=u.updateQueue,c!==null&&(c=c.lastEffect,c!==null)){var x=c=c.next;do{var S=x,Q=S.destroy;S=S.tag,Q!==void 0&&(S&2||S&4)&&S0(u,m,Q),x=x.next}while(x!==c)}break;case 1:if(Wd(u,m),c=u.stateNode,typeof c.componentWillUnmount=="function")try{c.props=u.memoizedProps,c.state=u.memoizedState,c.componentWillUnmount()}catch(X){nr(u,m,X)}break;case 5:Wd(u,m);break;case 4:Se?V1(c,u,m):H&&H&&(u=u.stateNode.containerInfo,m=rt(u),Kt(u,m))}}function k1(c,u,m){for(var x=u;;)if(F1(c,x,m),x.child===null||Se&&x.tag===4){if(x===u)break;for(;x.sibling===null;){if(x.return===null||x.return===u)return;x=x.return}x.sibling.return=x.return,x=x.sibling}else x.child.return=x,x=x.child}function O1(c){var u=c.alternate;u!==null&&(c.alternate=null,O1(u)),c.child=null,c.deletions=null,c.sibling=null,c.tag===5&&(u=c.stateNode,u!==null&&Te(u)),c.stateNode=null,c.return=null,c.dependencies=null,c.memoizedProps=null,c.memoizedState=null,c.pendingProps=null,c.stateNode=null,c.updateQueue=null}function G1(c){return c.tag===5||c.tag===3||c.tag===4}function z1(c){e:for(;;){for(;c.sibling===null;){if(c.return===null||G1(c.return))return null;c=c.return}for(c.sibling.return=c.return,c=c.sibling;c.tag!==5&&c.tag!==6&&c.tag!==18;){if(c.flags&2||c.child===null||c.tag===4)continue e;c.child.return=c,c=c.child}if(!(c.flags&2))return c.stateNode}}function H1(c){if(Se){e:{for(var u=c.return;u!==null;){if(G1(u))break e;u=u.return}throw Error(o(160))}var m=u;switch(m.tag){case 5:u=m.stateNode,m.flags&32&&(Ot(u),m.flags&=-33),m=z1(c),M0(c,m,u);break;case 3:case 4:u=m.stateNode.containerInfo,m=z1(c),w0(c,m,u);break;default:throw Error(o(161))}}}function w0(c,u,m){var x=c.tag;if(x===5||x===6)c=c.stateNode,u?at(m,c,u):It(m,c);else if(x!==4&&(c=c.child,c!==null))for(w0(c,u,m),c=c.sibling;c!==null;)w0(c,u,m),c=c.sibling}function M0(c,u,m){var x=c.tag;if(x===5||x===6)c=c.stateNode,u?pt(m,c,u):lt(m,c);else if(x!==4&&(c=c.child,c!==null))for(M0(c,u,m),c=c.sibling;c!==null;)M0(c,u,m),c=c.sibling}function V1(c,u,m){for(var x=u,S=!1,Q,X;;){if(!S){S=x.return;e:for(;;){if(S===null)throw Error(o(160));switch(Q=S.stateNode,S.tag){case 5:X=!1;break e;case 3:Q=Q.containerInfo,X=!0;break e;case 4:Q=Q.containerInfo,X=!0;break e}S=S.return}S=!0}if(x.tag===5||x.tag===6)k1(c,x,m),X?Bt(Q,x.stateNode):tt(Q,x.stateNode);else if(x.tag===18)X?Ce(Q,x.stateNode):_e(Q,x.stateNode);else if(x.tag===4){if(x.child!==null){Q=x.stateNode.containerInfo,X=!0,x.child.return=x,x=x.child;continue}}else if(F1(c,x,m),x.child!==null){x.child.return=x,x=x.child;continue}if(x===u)break;for(;x.sibling===null;){if(x.return===null||x.return===u)return;x=x.return,x.tag===4&&(S=!1)}x.sibling.return=x.return,x=x.sibling}}function Q0(c,u){if(Se){switch(u.tag){case 0:case 11:case 14:case 15:ol(3,u,u.return),aA(3,u),ol(5,u,u.return);return;case 1:return;case 5:var m=u.stateNode;if(m!=null){var x=u.memoizedProps;c=c!==null?c.memoizedProps:x;var S=u.type,Q=u.updateQueue;u.updateQueue=null,Q!==null&&wt(m,Q,S,c,x,u)}return;case 6:if(u.stateNode===null)throw Error(o(162));m=u.memoizedProps,Pe(u.stateNode,c!==null?c.memoizedProps:m,m);return;case 3:Ee&&c!==null&&c.memoizedState.isDehydrated&&pe(u.stateNode.containerInfo);return;case 12:return;case 13:Yd(u);return;case 19:Yd(u);return;case 17:return}throw Error(o(163))}switch(u.tag){case 0:case 11:case 14:case 15:ol(3,u,u.return),aA(3,u),ol(5,u,u.return);return;case 12:return;case 13:Yd(u);return;case 19:Yd(u);return;case 3:Ee&&c!==null&&c.memoizedState.isDehydrated&&pe(u.stateNode.containerInfo);break;case 22:case 23:return}e:if(H){switch(u.tag){case 1:case 5:case 6:break e;case 3:case 4:u=u.stateNode,Kt(u.containerInfo,u.pendingChildren);break e}throw Error(o(163))}}function Yd(c){var u=c.updateQueue;if(u!==null){c.updateQueue=null;var m=c.stateNode;m===null&&(m=c.stateNode=new hb),u.forEach(function(x){var S=xb.bind(null,c,x);m.has(x)||(m.add(x),x.then(S,S))})}}function fb(c,u){for(je=u;je!==null;){u=je;var m=u.deletions;if(m!==null)for(var x=0;x";case Jd:return":has("+(D0(c)||"")+")";case jd:return'[role="'+c.value+'"]';case qd:return'"'+c.value+'"';case Kd:return'[data-testname="'+c.value+'"]';default:throw Error(o(365))}}function j1(c,u){var m=[];c=[c,0];for(var x=0;xS&&(S=X),x&=~Q}if(x=S,x=ai()-x,x=(120>x?120:480>x?480:1080>x?1080:1920>x?1920:3e3>x?3e3:4320>x?4320:1960*gb(x/1960))-x,10c?16:c,Xo===null)var x=!1;else{if(c=Xo,Xo=null,nf=0,Gt&6)throw Error(o(331));var S=Gt;for(Gt|=4,je=c.current;je!==null;){var Q=je,X=Q.child;if(je.flags&16){var ce=Q.deletions;if(ce!==null){for(var Re=0;Reai()-P0?al(c,0):N0|=m),tr(c,u)}function rB(c,u){u===0&&(c.mode&1?(u=Ht,Ht<<=1,!(Ht&130023424)&&(Ht=4194304)):u=1);var m=ki();c=of(c,u),c!==null&&(Ho(c,u,m),tr(c,m))}function Ib(c){var u=c.memoizedState,m=0;u!==null&&(m=u.retryLane),rB(c,m)}function xb(c,u){var m=0;switch(c.tag){case 13:var x=c.stateNode,S=c.memoizedState;S!==null&&(m=S.retryLane);break;case 19:x=c.stateNode;break;default:throw Error(o(314))}x!==null&&x.delete(u),rB(c,m)}var sB;sB=function(c,u,m){if(c!==null)if(c.memoizedProps!==u.pendingProps||fn.current)gr=!0;else{if(!(c.lanes&m)&&!(u.flags&128))return gr=!1,ub(c,u,m);gr=!!(c.flags&131072)}else gr=!1,Sn&&u.flags&1048576&&Wx(u,Qd,u.index);switch(u.lanes=0,u.tag){case 2:var x=u.type;c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),c=u.pendingProps;var S=N(u,xt.current);uc(u,m),S=f0(null,u,x,c,S,m);var Q=p0();return u.flags|=1,typeof S=="object"&&S!==null&&typeof S.render=="function"&&S.$$typeof===void 0?(u.tag=1,u.memoizedState=null,u.updateQueue=null,U(x)?(Q=!0,we(u)):Q=!1,u.memoizedState=S.state!==null&&S.state!==void 0?S.state:null,t0(u),S.updater=wd,u.stateNode=S,S._reactInternals=u,i0(u,x,c,m),u=I0(null,u,x,!0,Q,m)):(u.tag=0,Sn&&Q&&r0(u),Fi(null,u,S,m),u=u.child),u;case 16:x=u.elementType;e:{switch(c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),c=u.pendingProps,S=x._init,x=S(x._payload),u.type=x,S=u.tag=Sb(x),c=es(x,c),S){case 0:u=C0(null,u,x,c,m);break e;case 1:u=Q1(null,u,x,c,m);break e;case 11:u=B1(null,u,x,c,m);break e;case 14:u=S1(null,u,x,es(x.type,c),m);break e}throw Error(o(306,x,""))}return u;case 0:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:es(x,S),C0(c,u,x,S,m);case 1:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:es(x,S),Q1(c,u,x,S,m);case 3:e:{if(R1(u),c===null)throw Error(o(387));x=u.pendingProps,Q=u.memoizedState,S=Q.element,Fx(c,u),_d(u,x,null,m);var X=u.memoizedState;if(x=X.element,Ee&&Q.isDehydrated)if(Q={element:x,isDehydrated:!1,cache:X.cache,transitions:X.transitions},u.updateQueue.baseState=Q,u.memoizedState=Q,u.flags&256){S=Error(o(423)),u=T1(c,u,x,m,S);break e}else if(x!==S){S=Error(o(424)),u=T1(c,u,x,m,S);break e}else for(Ee&&(pr=Go(u.stateNode.containerInfo),fr=u,Sn=!0,ts=null,ju=!1),m=qx(u,null,x,m),u.child=m;m;)m.flags=m.flags&-3|4096,m=m.sibling;else{if(dc(),x===S){u=$s(c,u,m);break e}Fi(c,u,x,m)}u=u.child}return u;case 5:return Zx(u),c===null&&a0(u),x=u.type,S=u.pendingProps,Q=c!==null?c.memoizedProps:null,X=S.children,z(x,S)?X=null:Q!==null&&z(x,Q)&&(u.flags|=32),M1(c,u),Fi(c,u,X,m),u.child;case 6:return c===null&&a0(u),null;case 13:return D1(c,u,m);case 4:return c0(u,u.stateNode.containerInfo),x=u.pendingProps,c===null?u.child=fc(u,null,x,m):Fi(c,u,x,m),u.child;case 11:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:es(x,S),B1(c,u,x,S,m);case 7:return Fi(c,u,u.pendingProps,m),u.child;case 8:return Fi(c,u,u.pendingProps.children,m),u.child;case 12:return Fi(c,u,u.pendingProps.children,m),u.child;case 10:e:{if(x=u.type._context,S=u.pendingProps,Q=u.memoizedProps,X=S.value,Ux(u,x,X),Q!==null)if(Is(Q.value,X)){if(Q.children===S.children&&!fn.current){u=$s(c,u,m);break e}}else for(Q=u.child,Q!==null&&(Q.return=u);Q!==null;){var ce=Q.dependencies;if(ce!==null){X=Q.child;for(var Re=ce.firstContext;Re!==null;){if(Re.context===x){if(Q.tag===1){Re=js(-1,m&-m),Re.tag=2;var He=Q.updateQueue;if(He!==null){He=He.shared;var st=He.pending;st===null?Re.next=Re:(Re.next=st.next,st.next=Re),He.pending=Re}}Q.lanes|=m,Re=Q.alternate,Re!==null&&(Re.lanes|=m),e0(Q.return,m,u),ce.lanes|=m;break}Re=Re.next}}else if(Q.tag===10)X=Q.type===u.type?null:Q.child;else if(Q.tag===18){if(X=Q.return,X===null)throw Error(o(341));X.lanes|=m,ce=X.alternate,ce!==null&&(ce.lanes|=m),e0(X,m,u),X=Q.sibling}else X=Q.child;if(X!==null)X.return=Q;else for(X=Q;X!==null;){if(X===u){X=null;break}if(Q=X.sibling,Q!==null){Q.return=X.return,X=Q;break}X=X.return}Q=X}Fi(c,u,S.children,m),u=u.child}return u;case 9:return S=u.type,x=u.pendingProps.children,uc(u,m),S=Rr(S),x=x(S),u.flags|=1,Fi(c,u,x,m),u.child;case 14:return x=u.type,S=es(x,u.pendingProps),S=es(x.type,S),S1(c,u,x,S,m);case 15:return _1(c,u,u.type,u.pendingProps,m);case 17:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:es(x,S),c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),u.tag=1,U(x)?(c=!0,we(u)):c=!1,uc(u,m),Hx(u,x,S),i0(u,x,S,m),I0(null,u,x,!0,c,m);case 19:return P1(c,u,m);case 22:return w1(c,u,m)}throw Error(o(156,u.tag))};function oB(c,u){return Xm(c,u)}function Bb(c,u,m,x){this.tag=c,this.key=m,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=x,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pr(c,u,m,x){return new Bb(c,u,m,x)}function V0(c){return c=c.prototype,!(!c||!c.isReactComponent)}function Sb(c){if(typeof c=="function")return V0(c)?1:0;if(c!=null){if(c=c.$$typeof,c===C)return 11;if(c===v)return 14}return 2}function Ko(c,u){var m=c.alternate;return m===null?(m=Pr(c.tag,u,c.key,c.mode),m.elementType=c.elementType,m.type=c.type,m.stateNode=c.stateNode,m.alternate=c,c.alternate=m):(m.pendingProps=u,m.type=c.type,m.flags=0,m.subtreeFlags=0,m.deletions=null),m.flags=c.flags&14680064,m.childLanes=c.childLanes,m.lanes=c.lanes,m.child=c.child,m.memoizedProps=c.memoizedProps,m.memoizedState=c.memoizedState,m.updateQueue=c.updateQueue,u=c.dependencies,m.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},m.sibling=c.sibling,m.index=c.index,m.ref=c.ref,m}function lf(c,u,m,x,S,Q){var X=2;if(x=c,typeof c=="function")V0(c)&&(X=1);else if(typeof c=="string")X=5;else e:switch(c){case h:return ul(m.children,S,Q,u);case d:X=8,S|=8;break;case f:return c=Pr(12,m,u,S|2),c.elementType=f,c.lanes=Q,c;case y:return c=Pr(13,m,u,S),c.elementType=y,c.lanes=Q,c;case p:return c=Pr(19,m,u,S),c.elementType=p,c.lanes=Q,c;case B:return cf(m,S,Q,u);default:if(typeof c=="object"&&c!==null)switch(c.$$typeof){case g:X=10;break e;case E:X=9;break e;case C:X=11;break e;case v:X=14;break e;case I:X=16,x=null;break e}throw Error(o(130,c==null?c:typeof c,""))}return u=Pr(X,m,u,S),u.elementType=c,u.type=x,u.lanes=Q,u}function ul(c,u,m,x){return c=Pr(7,c,x,u),c.lanes=m,c}function cf(c,u,m,x){return c=Pr(22,c,x,u),c.elementType=B,c.lanes=m,c.stateNode={},c}function W0(c,u,m){return c=Pr(6,c,null,u),c.lanes=m,c}function Y0(c,u,m){return u=Pr(4,c.children!==null?c.children:[],c.key,u),u.lanes=m,u.stateNode={containerInfo:c.containerInfo,pendingChildren:null,implementation:c.implementation},u}function _b(c,u,m,x,S){this.tag=u,this.containerInfo=c,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=Ie,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=dr(0),this.expirationTimes=dr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=dr(0),this.identifierPrefix=x,this.onRecoverableError=S,Ee&&(this.mutableSourceEagerHydrationData=null)}function aB(c,u,m,x,S,Q,X,ce,Re){return c=new _b(c,u,m,ce,Re),u===1?(u=1,Q===!0&&(u|=8)):u=0,Q=Pr(3,null,null,u),c.current=Q,Q.stateNode=c,Q.memoizedState={element:x,isDehydrated:m,cache:null,transitions:null},t0(Q),c}function lB(c){if(!c)return Ii;c=c._reactInternals;e:{if(K(c)!==c||c.tag!==1)throw Error(o(170));var u=c;do{switch(u.tag){case 3:u=u.stateNode.context;break e;case 1:if(U(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break e}}u=u.return}while(u!==null);throw Error(o(171))}if(c.tag===1){var m=c.type;if(U(m))return ge(c,m,u)}return u}function cB(c){var u=c._reactInternals;if(u===void 0)throw typeof c.render=="function"?Error(o(188)):(c=Object.keys(c).join(","),Error(o(268,c)));return c=q(u),c===null?null:c.stateNode}function uB(c,u){if(c=c.memoizedState,c!==null&&c.dehydrated!==null){var m=c.retryLane;c.retryLane=m!==0&&m=He&&Q>=Tt&&S<=st&&X<=yt){c.splice(u,1);break}else if(x!==He||m.width!==Re.width||ytX){if(!(Q!==Tt||m.height!==Re.height||stS)){He>x&&(Re.width+=He-x,Re.x=x),stQ&&(Re.height+=Tt-Q,Re.y=Q),ytm&&(m=X)),X ")+` + +No matching component was found for: + `)+c.join(" > ")}return null},t.getPublicRootInstance=function(c){if(c=c.current,!c.child)return null;switch(c.child.tag){case 5:return ne(c.child.stateNode);default:return c.child.stateNode}},t.injectIntoDevTools=function(c){if(c={bundleType:c.bundleType,version:c.version,rendererPackageName:c.rendererPackageName,rendererConfig:c.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:a.ReactCurrentDispatcher,findHostInstanceByFiber:wb,findFiberByHostInstance:c.findFiberByHostInstance||Mb,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")c=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)c=!0;else{try{vd=u.inject(c),Cs=u}catch{}c=!!u.checkDCE}}return c},t.isAlreadyRendering=function(){return!1},t.observeVisibleRects=function(c,u,m,x){if(!D)throw Error(o(363));c=b0(c,u);var S=Ke(c,m,x).disconnect;return{disconnect:function(){S()}}},t.registerMutableSourceForHydration=function(c,u){var m=u._getVersion;m=m(u._source),c.mutableSourceEagerHydrationData==null?c.mutableSourceEagerHydrationData=[u,m]:c.mutableSourceEagerHydrationData.push(u,m)},t.runWithPriority=function(c,u){var m=nn;try{return nn=c,u()}finally{nn=m}},t.shouldError=function(){return null},t.shouldSuspend=function(){return!1},t.updateContainer=function(c,u,m,x){var S=u.current,Q=ki(),X=Jo(S);return m=lB(m),u.context===null?u.context=m:u.pendingContext=m,u=js(Q,X),u.payload={element:c},x=x===void 0?null:x,x!==null&&(u.callback=x),Wo(S,u),c=Nr(S,X,Q),c!==null&&Sd(c,S,X),X},t};BT.exports=qG;var ZG=BT.exports;const $G=FC(ZG),xx={},ez=n=>void Object.assign(xx,n);function tz(n,e){function t(h,{args:d=[],attach:f,...g},E){let C=`${h[0].toUpperCase()}${h.slice(1)}`,y;if(h==="primitive"){if(g.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const p=g.object;y=jc(p,{type:h,root:E,attach:f,primitive:!0})}else{const p=xx[C];if(!p)throw new Error(`R3F: ${C} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(d))throw new Error("R3F: The args prop must be an array!");y=jc(new p(...d),{type:h,root:E,attach:f,memoizedProps:{args:d}})}return y.__r3f.attach===void 0&&(y instanceof Nt?y.__r3f.attach="geometry":y instanceof fi&&(y.__r3f.attach="material")),C!=="inject"&&sy(y,g),y}function i(h,d){let f=!1;if(d){var g,E;(g=d.__r3f)!=null&&g.attach?ry(h,d,d.__r3f.attach):d.isObject3D&&h.isObject3D&&(h.add(d),f=!0),f||(E=h.__r3f)==null||E.objects.push(d),d.__r3f||jc(d,{}),d.__r3f.parent=h,CC(d),Kc(d)}}function r(h,d,f){let g=!1;if(d){var E,C;if((E=d.__r3f)!=null&&E.attach)ry(h,d,d.__r3f.attach);else if(d.isObject3D&&h.isObject3D){d.parent=h,d.dispatchEvent({type:"added"});const y=h.children.filter(v=>v!==d),p=y.indexOf(f);h.children=[...y.slice(0,p),d,...y.slice(p)],g=!0}g||(C=h.__r3f)==null||C.objects.push(d),d.__r3f||jc(d,{}),d.__r3f.parent=h,CC(d),Kc(d)}}function s(h,d,f=!1){h&&[...h].forEach(g=>o(d,g,f))}function o(h,d,f){if(d){var g,E,C;if(d.__r3f&&(d.__r3f.parent=null),(g=h.__r3f)!=null&&g.objects&&(h.__r3f.objects=h.__r3f.objects.filter(B=>B!==d)),(E=d.__r3f)!=null&&E.attach)nw(h,d,d.__r3f.attach);else if(d.isObject3D&&h.isObject3D){var y;h.remove(d),(y=d.__r3f)!=null&&y.root&&lz(d.__r3f.root,d)}const v=(C=d.__r3f)==null?void 0:C.primitive,I=!v&&(f===void 0?d.dispose!==null:f);if(!v){var p;s((p=d.__r3f)==null?void 0:p.objects,d,I),s(d.children,d,I)}if(delete d.__r3f,I&&d.dispose&&d.type!=="Scene"){const B=()=>{try{d.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?yC.unstable_scheduleCallback(yC.unstable_IdlePriority,B):B()}Kc(h)}}function a(h,d,f,g){var E;const C=(E=h.__r3f)==null?void 0:E.parent;if(!C)return;const y=t(d,f,h.__r3f.root);if(h.children){for(const p of h.children)p.__r3f&&i(y,p);h.children=h.children.filter(p=>!p.__r3f)}h.__r3f.objects.forEach(p=>i(y,p)),h.__r3f.objects=[],h.__r3f.autoRemovedBeforeAppend||o(C,h),y.parent&&(y.__r3f.autoRemovedBeforeAppend=!0),i(C,y),y.raycast&&y.__r3f.eventCount&&y.__r3f.root.getState().internal.interaction.push(y),[g,g.alternate].forEach(p=>{p!==null&&(p.stateNode=y,p.ref&&(typeof p.ref=="function"?p.ref(y):p.ref.current=y))})}const l=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:$G({createInstance:t,removeChild:o,appendChild:i,appendInitialChild:i,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(h,d)=>{if(!d)return;const f=h.getState().scene;f.__r3f&&(f.__r3f.root=h,i(f,d))},removeChildFromContainer:(h,d)=>{d&&o(h.getState().scene,d)},insertInContainerBefore:(h,d,f)=>{if(!d||!f)return;const g=h.getState().scene;g.__r3f&&r(g,d,f)},getRootHostContext:()=>null,getChildHostContext:h=>h,finalizeInitialChildren(h){var d;return!!((d=h==null?void 0:h.__r3f)!=null?d:{}).handlers},prepareUpdate(h,d,f,g){var E;if(((E=h==null?void 0:h.__r3f)!=null?E:{}).primitive&&g.object&&g.object!==h)return[!0];{const{args:y=[],children:p,...v}=g,{args:I=[],children:B,...R}=f;if(!Array.isArray(y))throw new Error("R3F: the args prop must be an array!");if(y.some((T,P)=>T!==I[P]))return[!0];const M=bT(h,v,R,!0);return M.changes.length?[!1,M]:null}},commitUpdate(h,[d,f],g,E,C,y){d?a(h,g,C,y):sy(h,f)},commitMount(h,d,f,g){var E;const C=(E=h.__r3f)!=null?E:{};h.raycast&&C.handlers&&C.eventCount&&h.__r3f.root.getState().internal.interaction.push(h)},getPublicInstance:h=>h,prepareForCommit:()=>null,preparePortalMount:h=>jc(h.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(h){var d;const{attach:f,parent:g}=(d=h.__r3f)!=null?d:{};f&&g&&nw(g,h,f),h.isObject3D&&(h.visible=!1),Kc(h)},unhideInstance(h,d){var f;const{attach:g,parent:E}=(f=h.__r3f)!=null?f:{};g&&E&&ry(E,h,g),(h.isObject3D&&d.visible==null||d.visible)&&(h.visible=!0),Kc(h)},createTextInstance:l,hideTextInstance:l,unhideTextInstance:l,getCurrentEventPriority:()=>e?e():fu.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&_n.fun(performance.now)?performance.now:_n.fun(Date.now)?Date.now:()=>0,scheduleTimeout:_n.fun(setTimeout)?setTimeout:void 0,cancelTimeout:_n.fun(clearTimeout)?clearTimeout:void 0}),applyProps:sy}}var Z_,$_;const iy=n=>"colorSpace"in n||"outputColorSpace"in n,wT=()=>{var n;return(n=xx.ColorManagement)!=null?n:null},MT=n=>n&&n.isOrthographicCamera,nz=n=>n&&n.hasOwnProperty("current"),cd=typeof window<"u"&&((Z_=window.document)!=null&&Z_.createElement||(($_=window.navigator)==null?void 0:$_.product)==="ReactNative")?V.useLayoutEffect:V.useEffect;function QT(n){const e=V.useRef(n);return cd(()=>void(e.current=n),[n]),e}function iz({set:n}){return cd(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}class RT extends V.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}RT.getDerivedStateFromError=()=>({error:!0});const TT="__default",ew=new Map,rz=n=>n&&!!n.memoized&&!!n.changes;function DT(n){var e;const t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}const TA=n=>{var e;return(e=n.__r3f)==null?void 0:e.root.getState()},_n={obj:n=>n===Object(n)&&!_n.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(_n.str(n)||_n.num(n))return n===e;const s=_n.obj(n);if(s&&i==="reference")return n===e;const o=_n.arr(n);if(o&&t==="reference")return n===e;if((o||s)&&n===e)return!0;let a;for(a in n)if(!(a in e))return!1;if(s&&t==="shallow"&&i==="shallow"){for(a in r?e:n)if(!_n.equ(n[a],e[a],{strict:r,objects:"reference"}))return!1}else for(a in r?e:n)if(n[a]!==e[a])return!1;if(_n.und(a)){if(o&&n.length===0&&e.length===0||s&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function sz(n){n.dispose&&n.type!=="Scene"&&n.dispose();for(const e in n)e.dispose==null||e.dispose(),delete n[e]}function jc(n,e){const t=n;return t.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},n}function vC(n,e){let t=n;if(e.includes("-")){const i=e.split("-"),r=i.pop();return t=i.reduce((s,o)=>s[o],n),{target:t,key:r}}else return{target:t,key:e}}const tw=/-\d+$/;function ry(n,e,t){if(_n.str(t)){if(tw.test(t)){const s=t.replace(tw,""),{target:o,key:a}=vC(n,s);Array.isArray(o[a])||(o[a]=[])}const{target:i,key:r}=vC(n,t);e.__r3f.previousAttach=i[r],i[r]=e}else e.__r3f.previousAttach=t(n,e)}function nw(n,e,t){var i,r;if(_n.str(t)){const{target:s,key:o}=vC(n,t),a=e.__r3f.previousAttach;a===void 0?delete s[o]:s[o]=a}else(i=e.__r3f)==null||i.previousAttach==null||i.previousAttach(n,e);(r=e.__r3f)==null||delete r.previousAttach}function bT(n,{children:e,key:t,ref:i,...r},{children:s,key:o,ref:a,...l}={},A=!1){var h;const d=(h=n==null?void 0:n.__r3f)!=null?h:{},f=Object.entries(r),g=[];if(A){const C=Object.keys(l);for(let y=0;y{var p;if((p=n.__r3f)!=null&&p.primitive&&C==="object"||_n.equ(y,l[C]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(C))return g.push([C,y,!0,[]]);let v=[];C.includes("-")&&(v=C.split("-")),g.push([C,y,!1,v]);for(const I in r){const B=r[I];I.startsWith(`${C}-`)&&g.push([I,B,!1,I.split("-")])}});const E={...r};return d.memoizedProps&&d.memoizedProps.args&&(E.args=d.memoizedProps.args),d.memoizedProps&&d.memoizedProps.attach&&(E.attach=d.memoizedProps.attach),{memoized:E,changes:g}}const oz=typeof process<"u"&&!1;function sy(n,e){var t,i,r;const s=(t=n.__r3f)!=null?t:{},o=s.root,a=(i=o==null||o.getState==null?void 0:o.getState())!=null?i:{},{memoized:l,changes:A}=rz(e)?e:bT(n,e),h=s.eventCount;n.__r3f&&(n.__r3f.memoizedProps=l);for(let f=0;fI[B],n),!(v&&v.set))){const[I,...B]=y.reverse();p=B.reverse().reduce((R,M)=>R[M],n),g=I}if(E===TT+"remove")if(p.constructor){let I=ew.get(p.constructor);I||(I=new p.constructor,ew.set(p.constructor,I)),E=I[g]}else E=0;if(C)E?s.handlers[g]=E:delete s.handlers[g],s.eventCount=Object.keys(s.handlers).length;else if(v&&v.set&&(v.copy||v instanceof Vl)){if(Array.isArray(E))v.fromArray?v.fromArray(E):v.set(...E);else if(v.copy&&E&&E.constructor&&(oz?v.constructor.name===E.constructor.name:v.constructor===E.constructor))v.copy(E);else if(E!==void 0){const I=v instanceof Je;!I&&v.setScalar?v.setScalar(E):v instanceof Vl&&E instanceof Vl?v.mask=E.mask:v.set(E),!wT()&&!a.linear&&I&&v.convertSRGBToLinear()}}else if(p[g]=E,p[g]instanceof Mn&&p[g].format===Wi&&p[g].type===Os){const I=p[g];iy(I)&&iy(a.gl)?I.colorSpace=a.gl.outputColorSpace:I.encoding=a.gl.outputEncoding}Kc(n)}if(s.parent&&a.internal&&n.raycast&&h!==s.eventCount){const f=a.internal.interaction.indexOf(n);f>-1&&a.internal.interaction.splice(f,1),s.eventCount&&a.internal.interaction.push(n)}return!(A.length===1&&A[0][0]==="onUpdate")&&A.length&&(r=n.__r3f)!=null&&r.parent&&CC(n),n}function Kc(n){var e,t;const i=(e=n.__r3f)==null||(t=e.root)==null||t.getState==null?void 0:t.getState();i&&i.internal.frames===0&&i.invalidate()}function CC(n){n.onUpdate==null||n.onUpdate(n)}function LT(n,e){n.manual||(MT(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix(),n.updateMatrixWorld())}function Ep(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function az(){var n;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return fu.DefaultEventPriority;switch((n=e.event)==null?void 0:n.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return fu.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return fu.ContinuousEventPriority;default:return fu.DefaultEventPriority}}function NT(n,e,t,i){const r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function lz(n,e){const{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{NT(t.capturedMap,e,i,r)})}function cz(n){function e(l){const{internal:A}=n.getState(),h=l.offsetX-A.initialClick[0],d=l.offsetY-A.initialClick[1];return Math.round(Math.sqrt(h*h+d*d))}function t(l){return l.filter(A=>["Move","Over","Enter","Out","Leave"].some(h=>{var d;return(d=A.__r3f)==null?void 0:d.handlers["onPointer"+h]}))}function i(l,A){const h=n.getState(),d=new Set,f=[],g=A?A(h.internal.interaction):h.internal.interaction;for(let p=0;p{const I=TA(p.object),B=TA(v.object);return!I||!B?p.distance-v.distance:B.events.priority-I.events.priority||p.distance-v.distance}).filter(p=>{const v=Ep(p);return d.has(v)?!1:(d.add(v),!0)});h.events.filter&&(C=h.events.filter(C,h));for(const p of C){let v=p.object;for(;v;){var y;(y=v.__r3f)!=null&&y.eventCount&&f.push({...p,eventObject:v}),v=v.parent}}if("pointerId"in l&&h.internal.capturedMap.has(l.pointerId))for(let p of h.internal.capturedMap.get(l.pointerId).values())d.has(Ep(p.intersection))||f.push(p.intersection);return f}function r(l,A,h,d){const f=n.getState();if(l.length){const g={stopped:!1};for(const E of l){const C=TA(E.object)||f,{raycaster:y,pointer:p,camera:v,internal:I}=C,B=new G(p.x,p.y,0).unproject(v),R=w=>{var L,q;return(L=(q=I.capturedMap.get(w))==null?void 0:q.has(E.eventObject))!=null?L:!1},M=w=>{const L={intersection:E,target:A.target};I.capturedMap.has(w)?I.capturedMap.get(w).set(E.eventObject,L):I.capturedMap.set(w,new Map([[E.eventObject,L]])),A.target.setPointerCapture(w)},T=w=>{const L=I.capturedMap.get(w);L&&NT(I.capturedMap,E.eventObject,L,w)};let P={};for(let w in A){let L=A[w];typeof L!="function"&&(P[w]=L)}let K={...E,...P,pointer:p,intersections:l,stopped:g.stopped,delta:h,unprojectedPoint:B,ray:y.ray,camera:v,stopPropagation(){const w="pointerId"in A&&I.capturedMap.get(A.pointerId);if((!w||w.has(E.eventObject))&&(K.stopped=g.stopped=!0,I.hovered.size&&Array.from(I.hovered.values()).find(L=>L.eventObject===E.eventObject))){const L=l.slice(0,l.indexOf(E));s([...L,E])}},target:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},currentTarget:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},nativeEvent:A};if(d(K),g.stopped===!0)break}}return l}function s(l){const{internal:A}=n.getState();for(const h of A.hovered.values())if(!l.length||!l.find(d=>d.object===h.object&&d.index===h.index&&d.instanceId===h.instanceId)){const f=h.eventObject.__r3f,g=f==null?void 0:f.handlers;if(A.hovered.delete(Ep(h)),f!=null&&f.eventCount){const E={...h,intersections:l};g.onPointerOut==null||g.onPointerOut(E),g.onPointerLeave==null||g.onPointerLeave(E)}}}function o(l,A){for(let h=0;hs([]);case"onLostPointerCapture":return A=>{const{internal:h}=n.getState();"pointerId"in A&&h.capturedMap.has(A.pointerId)&&requestAnimationFrame(()=>{h.capturedMap.has(A.pointerId)&&(h.capturedMap.delete(A.pointerId),s([]))})}}return function(h){const{onPointerMissed:d,internal:f}=n.getState();f.lastEvent.current=h;const g=l==="onPointerMove",E=l==="onClick"||l==="onContextMenu"||l==="onDoubleClick",y=i(h,g?t:void 0),p=E?e(h):0;l==="onPointerDown"&&(f.initialClick=[h.offsetX,h.offsetY],f.initialHits=y.map(I=>I.eventObject)),E&&!y.length&&p<=2&&(o(h,f.interaction),d&&d(h)),g&&s(y);function v(I){const B=I.eventObject,R=B.__r3f,M=R==null?void 0:R.handlers;if(R!=null&&R.eventCount)if(g){if(M.onPointerOver||M.onPointerEnter||M.onPointerOut||M.onPointerLeave){const T=Ep(I),P=f.hovered.get(T);P?P.stopped&&I.stopPropagation():(f.hovered.set(T,I),M.onPointerOver==null||M.onPointerOver(I),M.onPointerEnter==null||M.onPointerEnter(I))}M.onPointerMove==null||M.onPointerMove(I)}else{const T=M[l];T?(!E||f.initialHits.includes(B))&&(o(h,f.interaction.filter(P=>!f.initialHits.includes(P))),T(I)):E&&f.initialHits.includes(B)&&o(h,f.interaction.filter(P=>!f.initialHits.includes(P)))}}r(y,h,p,v)}}return{handlePointer:a}}const uz=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],PT=n=>!!(n!=null&&n.render),Bx=V.createContext(null),Az=(n,e)=>{const t=xT((a,l)=>{const A=new G,h=new G,d=new G;function f(p=l().camera,v=h,I=l().size){const{width:B,height:R,top:M,left:T}=I,P=B/R;v instanceof G?d.copy(v):d.set(...v);const K=p.getWorldPosition(A).distanceTo(d);if(MT(p))return{width:B/p.zoom,height:R/p.zoom,top:M,left:T,factor:1,distance:K,aspect:P};{const w=p.fov*Math.PI/180,L=2*Math.tan(w/2)*K,q=L*(B/R);return{width:q,height:L,top:M,left:T,factor:B/q,distance:K,aspect:P}}}let g;const E=p=>a(v=>({performance:{...v.performance,current:p}})),C=new Be;return{set:a,get:l,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(p=1)=>n(l(),p),advance:(p,v)=>e(p,v,l()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new yx,pointer:C,mouse:C,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const p=l();g&&clearTimeout(g),p.performance.current!==p.performance.min&&E(p.performance.min),g=setTimeout(()=>E(l().performance.max),p.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:f},setEvents:p=>a(v=>({...v,events:{...v.events,...p}})),setSize:(p,v,I,B,R)=>{const M=l().camera,T={width:p,height:v,top:B||0,left:R||0,updateStyle:I};a(P=>({size:T,viewport:{...P.viewport,...f(M,h,T)}}))},setDpr:p=>a(v=>{const I=DT(p);return{viewport:{...v.viewport,dpr:I,initialDpr:v.viewport.initialDpr||I}}}),setFrameloop:(p="always")=>{const v=l().clock;v.stop(),v.elapsedTime=0,p!=="never"&&(v.start(),v.elapsedTime=0),a(()=>({frameloop:p}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:V.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(p,v,I)=>{const B=l().internal;return B.priority=B.priority+(v>0?1:0),B.subscribers.push({ref:p,priority:v,store:I}),B.subscribers=B.subscribers.sort((R,M)=>R.priority-M.priority),()=>{const R=l().internal;R!=null&&R.subscribers&&(R.priority=R.priority-(v>0?1:0),R.subscribers=R.subscribers.filter(M=>M.ref!==p))}}}}}),i=t.getState();let r=i.size,s=i.viewport.dpr,o=i.camera;return t.subscribe(()=>{const{camera:a,size:l,viewport:A,gl:h,set:d}=t.getState();if(l.width!==r.width||l.height!==r.height||A.dpr!==s){var f;r=l,s=A.dpr,LT(a,l),h.setPixelRatio(A.dpr);const g=(f=l.updateStyle)!=null?f:typeof HTMLCanvasElement<"u"&&h.domElement instanceof HTMLCanvasElement;h.setSize(l.width,l.height,g)}a!==o&&(o=a,d(g=>({viewport:{...g.viewport,...g.viewport.getCurrentViewport(a)}})))}),t.subscribe(a=>n(a)),t};let yp,hz=new Set,dz=new Set,fz=new Set;function oy(n,e){if(n.size)for(const{callback:t}of n.values())t(e)}function DA(n,e){switch(n){case"before":return oy(hz,e);case"after":return oy(dz,e);case"tail":return oy(fz,e)}}let ay,ly;function cy(n,e,t){let i=e.clock.getDelta();for(e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),ay=e.internal.subscribers,yp=0;yp0)&&!((A=r.gl.xr)!=null&&A.isPresenting)&&(t+=cy(l,r))}if(DA("after",l),t===0)return DA("tail",l),e=!1,cancelAnimationFrame(i)}function o(l,A=1){var h;if(!l)return n.forEach(d=>o(d.store.getState()),A);(h=l.gl.xr)!=null&&h.isPresenting||!l.internal.active||l.frameloop==="never"||(l.internal.frames=Math.min(60,l.internal.frames+A),e||(e=!0,requestAnimationFrame(s)))}function a(l,A=!0,h,d){if(A&&DA("before",l),h)cy(l,h,d);else for(const f of n.values())cy(l,f.store.getState());A&&DA("after",l)}return{loop:s,invalidate:o,advance:a}}function Mo(){const n=V.useContext(Bx);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function Pm(n=t=>t,e){return Mo()(n,e)}function Zr(n,e=0){const t=Mo(),i=t.getState().internal.subscribe,r=QT(n);return cd(()=>i(r,e,t),[e,i,t]),null}const Lu=new Map,{invalidate:iw,advance:rw}=pz(Lu),{reconciler:Wh,applyProps:Hc}=tz(Lu,az),Vc={objects:"shallow",strict:!1},gz=(n,e)=>{const t=typeof n=="function"?n(e):n;return PT(t)?t:new $I({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...n})};function mz(n,e){const t=typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement;if(e){const{width:i,height:r,top:s,left:o,updateStyle:a=t}=e;return{width:i,height:r,top:s,left:o,updateStyle:a}}else if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){const{width:i,height:r,top:s,left:o}=n.parentElement.getBoundingClientRect();return{width:i,height:r,top:s,left:o,updateStyle:t}}else if(typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0,updateStyle:t};return{width:0,height:0,top:0,left:0}}function Ez(n){const e=Lu.get(n),t=e==null?void 0:e.fiber,i=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,s=i||Az(iw,rw),o=t||Wh.createContainer(s,fu.ConcurrentRoot,null,!1,null,"",r,null);e||Lu.set(n,{fiber:o,store:s});let a,l=!1,A;return{configure(h={}){let{gl:d,size:f,scene:g,events:E,onCreated:C,shadows:y=!1,linear:p=!1,flat:v=!1,legacy:I=!1,orthographic:B=!1,frameloop:R="always",dpr:M=[1,2],performance:T,raycaster:P,camera:K,onPointerMissed:w}=h,L=s.getState(),q=L.gl;L.gl||L.set({gl:q=gz(d,n)});let fe=L.raycaster;fe||L.set({raycaster:fe=new ld});const{params:J,...re}=P||{};if(_n.equ(re,fe,Vc)||Hc(fe,{...re}),_n.equ(J,fe.params,Vc)||Hc(fe,{params:{...fe.params,...J}}),!L.camera||L.camera===A&&!_n.equ(A,K,Vc)){A=K;const ve=K instanceof ed,Oe=ve?K:B?new id(0,0,0,0,.1,1e3):new ni(75,0,.1,1e3);ve||(Oe.position.z=5,K&&Hc(Oe,K),!L.camera&&!(K!=null&&K.rotation)&&Oe.lookAt(0,0,0)),L.set({camera:Oe}),fe.camera=Oe}if(!L.scene){let ve;g instanceof Uh?ve=g:(ve=new Uh,g&&Hc(ve,g)),L.set({scene:jc(ve)})}if(!L.xr){var ne;const ve=(z,O)=>{const k=s.getState();k.frameloop!=="never"&&rw(z,!0,k,O)},Oe=()=>{const z=s.getState();z.gl.xr.enabled=z.gl.xr.isPresenting,z.gl.xr.setAnimationLoop(z.gl.xr.isPresenting?ve:null),z.gl.xr.isPresenting||iw(z)},Y={connect(){const z=s.getState().gl;z.xr.addEventListener("sessionstart",Oe),z.xr.addEventListener("sessionend",Oe)},disconnect(){const z=s.getState().gl;z.xr.removeEventListener("sessionstart",Oe),z.xr.removeEventListener("sessionend",Oe)}};typeof((ne=q.xr)==null?void 0:ne.addEventListener)=="function"&&Y.connect(),L.set({xr:Y})}if(q.shadowMap){const ve=q.shadowMap.enabled,Oe=q.shadowMap.type;if(q.shadowMap.enabled=!!y,_n.boo(y))q.shadowMap.type=eh;else if(_n.str(y)){var ue;const Y={basic:f2,percentage:lm,soft:eh,variance:as};q.shadowMap.type=(ue=Y[y])!=null?ue:eh}else _n.obj(y)&&Object.assign(q.shadowMap,y);(ve!==q.shadowMap.enabled||Oe!==q.shadowMap.type)&&(q.shadowMap.needsUpdate=!0)}const F=wT();F&&("enabled"in F?F.enabled=!I:"legacyMode"in F&&(F.legacyMode=I)),Hc(q,{outputEncoding:p?3e3:3001,toneMapping:v?ks:LI}),L.legacy!==I&&L.set(()=>({legacy:I})),L.linear!==p&&L.set(()=>({linear:p})),L.flat!==v&&L.set(()=>({flat:v})),d&&!_n.fun(d)&&!PT(d)&&!_n.equ(d,q,Vc)&&Hc(q,d),E&&!L.events.handlers&&L.set({events:E(s)});const Ae=mz(n,f);return _n.equ(Ae,L.size,Vc)||L.setSize(Ae.width,Ae.height,Ae.updateStyle,Ae.top,Ae.left),M&&L.viewport.dpr!==DT(M)&&L.setDpr(M),L.frameloop!==R&&L.setFrameloop(R),L.onPointerMissed||L.set({onPointerMissed:w}),T&&!_n.equ(T,L.performance,Vc)&&L.set(ve=>({performance:{...ve.performance,...T}})),a=C,l=!0,this},render(h){return l||this.configure(),Wh.updateContainer(V.createElement(yz,{store:s,children:h,onCreated:a,rootElement:n}),o,null,()=>{}),s},unmount(){UT(n)}}}function yz({store:n,children:e,onCreated:t,rootElement:i}){return cd(()=>{const r=n.getState();r.set(s=>({internal:{...s.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),V.createElement(Bx.Provider,{value:n},e)}function UT(n,e){const t=Lu.get(n),i=t==null?void 0:t.fiber;if(i){const r=t==null?void 0:t.store.getState();r&&(r.internal.active=!1),Wh.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{var s,o,a,l;r.events.disconnect==null||r.events.disconnect(),(s=r.gl)==null||(o=s.renderLists)==null||o.dispose==null||o.dispose(),(a=r.gl)==null||a.forceContextLoss==null||a.forceContextLoss(),(l=r.gl)!=null&&l.xr&&r.xr.disconnect(),sz(r),Lu.delete(n),e&&e(n)}catch{}},500)})}}function FT(n,e,t){return V.createElement(vz,{key:e.uuid,children:n,container:e,state:t})}function vz({state:n={},children:e,container:t}){const{events:i,size:r,...s}=n,o=Mo(),[a]=V.useState(()=>new ld),[l]=V.useState(()=>new Be),A=V.useCallback((d,f)=>{const g={...d};Object.keys(d).forEach(C=>{(uz.includes(C)||d[C]!==f[C]&&f[C])&&delete g[C]});let E;if(f&&r){const C=f.camera;E=d.viewport.getCurrentViewport(C,new G,r),C!==d.camera&<(C,r)}return{...g,scene:t,raycaster:a,pointer:l,mouse:l,previousRoot:o,events:{...d.events,...f==null?void 0:f.events,...i},size:{...d.size,...r},viewport:{...d.viewport,...E},...s}},[n]),[h]=V.useState(()=>{const d=o.getState();return xT((g,E)=>({...d,scene:t,raycaster:a,pointer:l,mouse:l,previousRoot:o,events:{...d.events,...i},size:{...d.size,...r},...s,set:g,get:E,setEvents:C=>g(y=>({...y,events:{...y.events,...C}}))}))});return V.useEffect(()=>{const d=o.subscribe(f=>h.setState(g=>A(f,g)));return()=>{d(),h.destroy()}},[]),V.useEffect(()=>{h.setState(d=>A(o.getState(),d))},[A]),V.createElement(V.Fragment,null,Wh.createPortal(V.createElement(Bx.Provider,{value:h},e),h,null))}Wh.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:V.version});function Og(){return Og=Object.assign?Object.assign.bind():function(n){for(var e=1;e=0?i=setTimeout(l,e-h):(i=null,t||(a=n.apply(s,r),s=r=null))}var A=function(){s=this,r=arguments,o=Date.now();var h=t&&!i;return i||(i=setTimeout(l,e)),h&&(a=n.apply(s,r),s=r=null),a};return A.clear=function(){i&&(clearTimeout(i),i=null)},A.flush=function(){i&&(a=n.apply(s,r),s=r=null,clearTimeout(i),i=null)},A}IC.debounce=IC;var Cz=IC;const sw=FC(Cz);function Iz(n){let{debounce:e,scroll:t,polyfill:i,offsetSize:r}=n===void 0?{debounce:0,scroll:!1,offsetSize:!1}:n;const s=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!s)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,a]=V.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),l=V.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),A=e?typeof e=="number"?e:e.scroll:null,h=e?typeof e=="number"?e:e.resize:null,d=V.useRef(!1);V.useEffect(()=>(d.current=!0,()=>void(d.current=!1)));const[f,g,E]=V.useMemo(()=>{const v=()=>{if(!l.current.element)return;const{left:I,top:B,width:R,height:M,bottom:T,right:P,x:K,y:w}=l.current.element.getBoundingClientRect(),L={left:I,top:B,width:R,height:M,bottom:T,right:P,x:K,y:w};l.current.element instanceof HTMLElement&&r&&(L.height=l.current.element.offsetHeight,L.width=l.current.element.offsetWidth),Object.freeze(L),d.current&&!_z(l.current.lastBounds,L)&&a(l.current.lastBounds=L)};return[v,h?sw(v,h):v,A?sw(v,A):v]},[a,r,A,h]);function C(){l.current.scrollContainers&&(l.current.scrollContainers.forEach(v=>v.removeEventListener("scroll",E,!0)),l.current.scrollContainers=null),l.current.resizeObserver&&(l.current.resizeObserver.disconnect(),l.current.resizeObserver=null)}function y(){l.current.element&&(l.current.resizeObserver=new s(E),l.current.resizeObserver.observe(l.current.element),t&&l.current.scrollContainers&&l.current.scrollContainers.forEach(v=>v.addEventListener("scroll",E,{capture:!0,passive:!0})))}const p=v=>{!v||v===l.current.element||(C(),l.current.element=v,l.current.scrollContainers=kT(v),y())};return Bz(E,!!t),xz(g),V.useEffect(()=>{C(),y()},[t,E,g]),V.useEffect(()=>C,[]),[p,o,f]}function xz(n){V.useEffect(()=>{const e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function Bz(n,e){V.useEffect(()=>{if(e){const t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function kT(n){const e=[];if(!n||n===document.body)return e;const{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(s=>s==="auto"||s==="scroll")&&e.push(n),[...e,...kT(n.parentElement)]}const Sz=["x","y","top","bottom","left","right","width","height"],_z=(n,e)=>Sz.every(t=>n[t]===e[t]);var wz=Object.defineProperty,Mz=Object.defineProperties,Qz=Object.getOwnPropertyDescriptors,ow=Object.getOwnPropertySymbols,Rz=Object.prototype.hasOwnProperty,Tz=Object.prototype.propertyIsEnumerable,aw=(n,e,t)=>e in n?wz(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,lw=(n,e)=>{for(var t in e||(e={}))Rz.call(e,t)&&aw(n,t,e[t]);if(ow)for(var t of ow(e))Tz.call(e,t)&&aw(n,t,e[t]);return n},Dz=(n,e)=>Mz(n,Qz(e));function OT(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){const r=OT(i,e,t);if(r)return r;i=e?null:i.sibling}}function GT(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}const Sx=GT(V.createContext(null));class zT extends V.Component{render(){return V.createElement(Sx.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:cw,ReactCurrentDispatcher:uw}=V.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function bz(){const n=V.useContext(Sx);if(n===null)throw new Error("its-fine: useFiber must be called within a !");const e=V.useId();return V.useMemo(()=>{for(const i of[cw==null?void 0:cw.current,n,n==null?void 0:n.alternate]){if(!i)continue;const r=OT(i,!1,s=>{let o=s.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[n,e])}function Lz(){var n,e;const t=bz(),[i]=V.useState(()=>new Map);i.clear();let r=t;for(;r;){const s=(n=r.type)==null?void 0:n._context;s&&s!==Sx&&!i.has(s)&&i.set(s,(e=uw==null?void 0:uw.current)==null?void 0:e.readContext(GT(s))),r=r.return}return i}function Nz(){const n=Lz();return V.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>V.createElement(e,null,V.createElement(t.Provider,Dz(lw({},i),{value:n.get(t)}))),e=>V.createElement(zT,lw({},e))),[n])}const uy={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function Pz(n){const{handlePointer:e}=cz(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(uy).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;const{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{var i;const{set:r,events:s}=n.getState();s.disconnect==null||s.disconnect(),r(o=>({events:{...o.events,connected:t}})),Object.entries((i=s.handlers)!=null?i:[]).forEach(([o,a])=>{const[l,A]=uy[o];t.addEventListener(l,a,{passive:A})})},disconnect:()=>{const{set:t,events:i}=n.getState();if(i.connected){var r;Object.entries((r=i.handlers)!=null?r:[]).forEach(([s,o])=>{if(i&&i.connected instanceof HTMLElement){const[a]=uy[s];i.connected.removeEventListener(a,o)}}),t(s=>({events:{...s.events,connected:void 0}}))}}}}const Uz=V.forwardRef(function({children:e,fallback:t,resize:i,style:r,gl:s,events:o=Pz,eventSource:a,eventPrefix:l,shadows:A,linear:h,flat:d,legacy:f,orthographic:g,frameloop:E,dpr:C,performance:y,raycaster:p,camera:v,scene:I,onPointerMissed:B,onCreated:R,...M},T){V.useMemo(()=>ez(JG),[]);const P=Nz(),[K,w]=Iz({scroll:!0,debounce:{scroll:50,resize:0},...i}),L=V.useRef(null),q=V.useRef(null);V.useImperativeHandle(T,()=>L.current);const fe=QT(B),[J,re]=V.useState(!1),[ne,ue]=V.useState(!1);if(J)throw J;if(ne)throw ne;const F=V.useRef(null);cd(()=>{const te=L.current;w.width>0&&w.height>0&&te&&(F.current||(F.current=Ez(te)),F.current.configure({gl:s,events:o,shadows:A,linear:h,flat:d,legacy:f,orthographic:g,frameloop:E,dpr:C,performance:y,raycaster:p,camera:v,scene:I,size:w,onPointerMissed:(...Ae)=>fe.current==null?void 0:fe.current(...Ae),onCreated:Ae=>{Ae.events.connect==null||Ae.events.connect(a?nz(a)?a.current:a:q.current),l&&Ae.setEvents({compute:(ve,Oe)=>{const Y=ve[l+"X"],z=ve[l+"Y"];Oe.pointer.set(Y/Oe.size.width*2-1,-(z/Oe.size.height)*2+1),Oe.raycaster.setFromCamera(Oe.pointer,Oe.camera)}}),R==null||R(Ae)}}),F.current.render(V.createElement(P,null,V.createElement(RT,{set:ue},V.createElement(V.Suspense,{fallback:V.createElement(iz,{set:re})},e)))))}),V.useEffect(()=>{const te=L.current;if(te)return()=>UT(te)},[]);const ee=a?"none":"auto";return V.createElement("div",Og({ref:q,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ee,...r}},M),V.createElement("div",{ref:K,style:{width:"100%",height:"100%"}},V.createElement("canvas",{ref:L,style:{display:"block"}},t)))}),Fz=V.forwardRef(function(e,t){return V.createElement(zT,null,V.createElement(Uz,Og({},e,{ref:t})))});function Um(){throw new Error("Cycle detected")}var kz=Symbol.for("preact-signals");function Fm(){if(ba>1)ba--;else{for(var n,e=!1;sh!==void 0;){var t=sh;for(sh=void 0,xC++;t!==void 0;){var i=t.o;if(t.o=void 0,t.f&=-3,!(8&t.f)&&WT(t))try{t.c()}catch(r){e||(n=r,e=!0)}t=i}}if(xC=0,ba--,e)throw n}}function HT(n){if(ba>0)return n();ba++;try{return n()}finally{Fm()}}var In=void 0,Ay=0;function hy(n){if(Ay>0)return n();var e=In;In=void 0,Ay++;try{return n()}finally{Ay--,In=e}}var sh=void 0,ba=0,xC=0,Gg=0;function VT(n){if(In!==void 0){var e=n.n;if(e===void 0||e.t!==In)return e={i:0,S:n,p:In.s,n:void 0,t:In,e:void 0,x:void 0,r:e},In.s!==void 0&&(In.s.n=e),In.s=e,n.n=e,32&In.f&&n.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=In.s,e.n=void 0,In.s.n=e,In.s=e),e}}function kn(n){this.v=n,this.i=0,this.n=void 0,this.t=void 0}kn.prototype.brand=kz;kn.prototype.h=function(){return!0};kn.prototype.S=function(n){this.t!==n&&n.e===void 0&&(n.x=this.t,this.t!==void 0&&(this.t.e=n),this.t=n)};kn.prototype.U=function(n){if(this.t!==void 0){var e=n.e,t=n.x;e!==void 0&&(e.x=t,n.e=void 0),t!==void 0&&(t.e=e,n.x=void 0),n===this.t&&(this.t=t)}};kn.prototype.subscribe=function(n){var e=this;return Zt(function(){var t=e.value,i=32&this.f;this.f&=-33;try{n(t)}finally{this.f|=i}})};kn.prototype.valueOf=function(){return this.value};kn.prototype.toString=function(){return this.value+""};kn.prototype.toJSON=function(){return this.value};kn.prototype.peek=function(){return this.v};Object.defineProperty(kn.prototype,"value",{get:function(){var n=VT(this);return n!==void 0&&(n.i=this.i),this.v},set:function(n){if(In instanceof Ya&&function(){throw new Error("Computed cannot have side-effects")}(),n!==this.v){xC>100&&Um(),this.v=n,this.i++,Gg++,ba++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{Fm()}}}});function zt(n){return new kn(n)}function WT(n){for(var e=n.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function YT(n){for(var e=n.s;e!==void 0;e=e.n){var t=e.S.n;if(t!==void 0&&(e.r=t),e.S.n=e,e.i=-1,e.n===void 0){n.s=e;break}}}function XT(n){for(var e=n.s,t=void 0;e!==void 0;){var i=e.p;e.i===-1?(e.S.U(e),i!==void 0&&(i.n=e.n),e.n!==void 0&&(e.n.p=i)):t=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=i}n.s=t}function Ya(n){kn.call(this,void 0),this.x=n,this.s=void 0,this.g=Gg-1,this.f=4}(Ya.prototype=new kn).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Gg))return!0;if(this.g=Gg,this.f|=1,this.i>0&&!WT(this))return this.f&=-2,!0;var n=In;try{YT(this),In=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(t){this.v=t,this.f|=16,this.i++}return In=n,XT(this),this.f&=-2,!0};Ya.prototype.S=function(n){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}kn.prototype.S.call(this,n)};Ya.prototype.U=function(n){if(this.t!==void 0&&(kn.prototype.U.call(this,n),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};Ya.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var n=this.t;n!==void 0;n=n.x)n.t.N()}};Ya.prototype.peek=function(){if(this.h()||Um(),16&this.f)throw this.v;return this.v};Object.defineProperty(Ya.prototype,"value",{get:function(){1&this.f&&Um();var n=VT(this);if(this.h(),n!==void 0&&(n.i=this.i),16&this.f)throw this.v;return this.v}});function Yn(n){return new Ya(n)}function JT(n){var e=n.u;if(n.u=void 0,typeof e=="function"){ba++;var t=In;In=void 0;try{e()}catch(i){throw n.f&=-2,n.f|=8,_x(n),i}finally{In=t,Fm()}}}function _x(n){for(var e=n.s;e!==void 0;e=e.n)e.S.U(e);n.x=void 0,n.s=void 0,JT(n)}function Oz(n){if(In!==this)throw new Error("Out-of-order effect");XT(this),In=n,this.f&=-2,8&this.f&&_x(this),Fm()}function ud(n){this.x=n,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}ud.prototype.c=function(){var n=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{n()}};ud.prototype.S=function(){1&this.f&&Um(),this.f|=1,this.f&=-9,JT(this),YT(this),ba++;var n=In;return In=this,Oz.bind(this,n)};ud.prototype.N=function(){2&this.f||(this.f|=2,this.o=sh,sh=this)};ud.prototype.d=function(){this.f|=8,1&this.f||_x(this)};function Zt(n){var e=new ud(n);try{e.c()}catch(t){throw e.d(),t}return e.d.bind(e)}function km(n,e,t){const i=V.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=V.useMemo(()=>{let s={};return(o,a)=>{let l=0,A=!1;for(const h in s){if(!KT(s[h],o[h])){A=!0;break}++l}A||(A=l!=a),s=o,!(!A&&e.getProperty.peek()!=null)&&(e.getProperty.value=h=>BC(o[h]))}},[e]);jT(n,i,r,t)}function Gz(n,e){const t=n.length;for(const i in e)for(let r=0;r{let r={},s=0;const o=(l,A)=>{if(A===void 0)return;const h=r[l];if(h===void 0&&++s,h==null||!(A instanceof kn)){r[l]=A;return}if(Array.isArray(h)){h.push(A);return}r[l]=[h,A]};return{add:(l,A)=>{if(A!==void 0){if(i!=null){i(l,A,e,o);return}e(l)&&o(l,A)}},finish:()=>{t(r,s),s=0,r={}}}},[e,t,i]))}function KT(n,e){if(!Array.isArray(n))return n===e;if(!Array.isArray(e))return!1;const t=n.length;if(t!=e.length)return!1;for(let i=0;izt(void 0),[]),r=V.useMemo(()=>({hasBatchedProperty:s=>e.includes(s),getProperty:i}),[e]);return km(n,r,t),i}const SC=V.createContext(void 0);function Vu(n,e){const t=V.useContext(SC);t!=null&&e(t);const{classes:i}=n;if(Array.isArray(i)){const r=i.length;for(let s=0;sGz(n,t))}function Xr(n){const t={...V.useContext(SC)};for(const i in n){if(i==="children")continue;const r=n[i];r!=null&&(t[i]=r)}return b.jsx(SC.Provider,{value:t,children:n.children})}var Hi={},wx={},Ft={};Object.defineProperty(Ft,"__esModule",{value:!0});Ft.default=Ft.Wrap=Ft.Unit=Ft.PrintOptions=Ft.PositionType=Ft.Overflow=Ft.NodeType=Ft.MeasureMode=Ft.LogLevel=Ft.Justify=Ft.Gutter=Ft.FlexDirection=Ft.ExperimentalFeature=Ft.Errata=Ft.Edge=Ft.Display=Ft.Direction=Ft.Dimension=Ft.Align=void 0;let ao=function(n){return n[n.Auto=0]="Auto",n[n.FlexStart=1]="FlexStart",n[n.Center=2]="Center",n[n.FlexEnd=3]="FlexEnd",n[n.Stretch=4]="Stretch",n[n.Baseline=5]="Baseline",n[n.SpaceBetween=6]="SpaceBetween",n[n.SpaceAround=7]="SpaceAround",n}({});Ft.Align=ao;let _C=function(n){return n[n.Width=0]="Width",n[n.Height=1]="Height",n}({});Ft.Dimension=_C;let eg=function(n){return n[n.Inherit=0]="Inherit",n[n.LTR=1]="LTR",n[n.RTL=2]="RTL",n}({});Ft.Direction=eg;let wC=function(n){return n[n.Flex=0]="Flex",n[n.None=1]="None",n}({});Ft.Display=wC;let Qs=function(n){return n[n.Left=0]="Left",n[n.Top=1]="Top",n[n.Right=2]="Right",n[n.Bottom=3]="Bottom",n[n.Start=4]="Start",n[n.End=5]="End",n[n.Horizontal=6]="Horizontal",n[n.Vertical=7]="Vertical",n[n.All=8]="All",n}({});Ft.Edge=Qs;let GA=function(n){return n[n.None=0]="None",n[n.StretchFlexBasis=1]="StretchFlexBasis",n[n.All=2147483647]="All",n[n.Classic=2147483646]="Classic",n}({});Ft.Errata=GA;let tg=function(n){return n[n.WebFlexBasis=0]="WebFlexBasis",n[n.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",n[n.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",n}({});Ft.ExperimentalFeature=tg;let zA=function(n){return n[n.Column=0]="Column",n[n.ColumnReverse=1]="ColumnReverse",n[n.Row=2]="Row",n[n.RowReverse=3]="RowReverse",n}({});Ft.FlexDirection=zA;let ng=function(n){return n[n.Column=0]="Column",n[n.Row=1]="Row",n[n.All=2]="All",n}({});Ft.Gutter=ng;let Ml=function(n){return n[n.FlexStart=0]="FlexStart",n[n.Center=1]="Center",n[n.FlexEnd=2]="FlexEnd",n[n.SpaceBetween=3]="SpaceBetween",n[n.SpaceAround=4]="SpaceAround",n[n.SpaceEvenly=5]="SpaceEvenly",n}({});Ft.Justify=Ml;let Ql=function(n){return n[n.Error=0]="Error",n[n.Warn=1]="Warn",n[n.Info=2]="Info",n[n.Debug=3]="Debug",n[n.Verbose=4]="Verbose",n[n.Fatal=5]="Fatal",n}({});Ft.LogLevel=Ql;let ig=function(n){return n[n.Undefined=0]="Undefined",n[n.Exactly=1]="Exactly",n[n.AtMost=2]="AtMost",n}({});Ft.MeasureMode=ig;let MC=function(n){return n[n.Default=0]="Default",n[n.Text=1]="Text",n}({});Ft.NodeType=MC;let rg=function(n){return n[n.Visible=0]="Visible",n[n.Hidden=1]="Hidden",n[n.Scroll=2]="Scroll",n}({});Ft.Overflow=rg;let sg=function(n){return n[n.Static=0]="Static",n[n.Relative=1]="Relative",n[n.Absolute=2]="Absolute",n}({});Ft.PositionType=sg;let og=function(n){return n[n.Layout=1]="Layout",n[n.Style=2]="Style",n[n.Children=4]="Children",n}({});Ft.PrintOptions=og;let HA=function(n){return n[n.Undefined=0]="Undefined",n[n.Point=1]="Point",n[n.Percent=2]="Percent",n[n.Auto=3]="Auto",n}({});Ft.Unit=HA;let ag=function(n){return n[n.NoWrap=0]="NoWrap",n[n.Wrap=1]="Wrap",n[n.WrapReverse=2]="WrapReverse",n}({});Ft.Wrap=ag;const zz={ALIGN_AUTO:ao.Auto,ALIGN_FLEX_START:ao.FlexStart,ALIGN_CENTER:ao.Center,ALIGN_FLEX_END:ao.FlexEnd,ALIGN_STRETCH:ao.Stretch,ALIGN_BASELINE:ao.Baseline,ALIGN_SPACE_BETWEEN:ao.SpaceBetween,ALIGN_SPACE_AROUND:ao.SpaceAround,DIMENSION_WIDTH:_C.Width,DIMENSION_HEIGHT:_C.Height,DIRECTION_INHERIT:eg.Inherit,DIRECTION_LTR:eg.LTR,DIRECTION_RTL:eg.RTL,DISPLAY_FLEX:wC.Flex,DISPLAY_NONE:wC.None,EDGE_LEFT:Qs.Left,EDGE_TOP:Qs.Top,EDGE_RIGHT:Qs.Right,EDGE_BOTTOM:Qs.Bottom,EDGE_START:Qs.Start,EDGE_END:Qs.End,EDGE_HORIZONTAL:Qs.Horizontal,EDGE_VERTICAL:Qs.Vertical,EDGE_ALL:Qs.All,ERRATA_NONE:GA.None,ERRATA_STRETCH_FLEX_BASIS:GA.StretchFlexBasis,ERRATA_ALL:GA.All,ERRATA_CLASSIC:GA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:tg.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:tg.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:tg.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:zA.Column,FLEX_DIRECTION_COLUMN_REVERSE:zA.ColumnReverse,FLEX_DIRECTION_ROW:zA.Row,FLEX_DIRECTION_ROW_REVERSE:zA.RowReverse,GUTTER_COLUMN:ng.Column,GUTTER_ROW:ng.Row,GUTTER_ALL:ng.All,JUSTIFY_FLEX_START:Ml.FlexStart,JUSTIFY_CENTER:Ml.Center,JUSTIFY_FLEX_END:Ml.FlexEnd,JUSTIFY_SPACE_BETWEEN:Ml.SpaceBetween,JUSTIFY_SPACE_AROUND:Ml.SpaceAround,JUSTIFY_SPACE_EVENLY:Ml.SpaceEvenly,LOG_LEVEL_ERROR:Ql.Error,LOG_LEVEL_WARN:Ql.Warn,LOG_LEVEL_INFO:Ql.Info,LOG_LEVEL_DEBUG:Ql.Debug,LOG_LEVEL_VERBOSE:Ql.Verbose,LOG_LEVEL_FATAL:Ql.Fatal,MEASURE_MODE_UNDEFINED:ig.Undefined,MEASURE_MODE_EXACTLY:ig.Exactly,MEASURE_MODE_AT_MOST:ig.AtMost,NODE_TYPE_DEFAULT:MC.Default,NODE_TYPE_TEXT:MC.Text,OVERFLOW_VISIBLE:rg.Visible,OVERFLOW_HIDDEN:rg.Hidden,OVERFLOW_SCROLL:rg.Scroll,POSITION_TYPE_STATIC:sg.Static,POSITION_TYPE_RELATIVE:sg.Relative,POSITION_TYPE_ABSOLUTE:sg.Absolute,PRINT_OPTIONS_LAYOUT:og.Layout,PRINT_OPTIONS_STYLE:og.Style,PRINT_OPTIONS_CHILDREN:og.Children,UNIT_UNDEFINED:HA.Undefined,UNIT_POINT:HA.Point,UNIT_PERCENT:HA.Percent,UNIT_AUTO:HA.Auto,WRAP_NO_WRAP:ag.NoWrap,WRAP_WRAP:ag.Wrap,WRAP_WRAP_REVERSE:ag.WrapReverse};var Hz=zz;Ft.default=Hz;Object.defineProperty(wx,"__esModule",{value:!0});wx.default=Wz;var aa=Vz(Ft);function qT(n){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(qT=function(i){return i?t:e})(n)}function Vz(n,e){if(!e&&n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=qT(e);if(t&&t.has(n))return t.get(n);var i={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if(s!=="default"&&Object.prototype.hasOwnProperty.call(n,s)){var o=r?Object.getOwnPropertyDescriptor(n,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=n[s]}return i.default=n,t&&t.set(n,i),i}function Wz(n){function e(r,s,o){const a=r[s];r[s]=function(){for(var l=arguments.length,A=new Array(l),h=0;h1?a-1:0),A=1;As?n.Node.createWithConfig(s):n.Node.createDefault()),e(n.Node.prototype,"free",function(){n.Node.destroy(this)}),e(n.Node.prototype,"freeRecursive",function(){for(let r=0,s=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:aa.Direction.LTR;return r.call(this,s,o,a)}),{Config:n.Config,Node:n.Node,...aa.default}}var ZT={exports:{}};(function(n,e){var t=(()=>{var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var s;s||(s=typeof r<"u"?r:{});var o,a;s.ready=new Promise(function(N,U){o=N,a=U});var l=Object.assign({},s),A="";typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),i&&(A=i),A.indexOf("blob:")!==0?A=A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):A="";var h=s.print||console.log.bind(console),d=s.printErr||console.warn.bind(console);Object.assign(s,l),l=null;var f;s.wasmBinary&&(f=s.wasmBinary),s.noExitRuntime,typeof WebAssembly!="object"&&ue("no native wasm support detected");var g,E=!1;function C(N,U,Z){Z=U+Z;for(var ae="";!(U>=Z);){var ge=N[U++];if(!ge)break;if(ge&128){var we=N[U++]&63;if((ge&224)==192)ae+=String.fromCharCode((ge&31)<<6|we);else{var Ue=N[U++]&63;ge=(ge&240)==224?(ge&15)<<12|we<<6|Ue:(ge&7)<<18|we<<12|Ue<<6|N[U++]&63,65536>ge?ae+=String.fromCharCode(ge):(ge-=65536,ae+=String.fromCharCode(55296|ge>>10,56320|ge&1023))}}else ae+=String.fromCharCode(ge)}return ae}var y,p,v,I,B,R,M,T,P;function K(){var N=g.buffer;y=N,s.HEAP8=p=new Int8Array(N),s.HEAP16=I=new Int16Array(N),s.HEAP32=R=new Int32Array(N),s.HEAPU8=v=new Uint8Array(N),s.HEAPU16=B=new Uint16Array(N),s.HEAPU32=M=new Uint32Array(N),s.HEAPF32=T=new Float32Array(N),s.HEAPF64=P=new Float64Array(N)}var w,L=[],q=[],fe=[];function J(){var N=s.preRun.shift();L.unshift(N)}var re=0,ne=null;function ue(N){throw s.onAbort&&s.onAbort(N),N="Aborted("+N+")",d(N),E=!0,N=new WebAssembly.RuntimeError(N+". Build with -sASSERTIONS for more info."),a(N),N}function F(N){return N.startsWith("data:application/octet-stream;base64,")}var ee;if(ee="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVp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",!F(ee)){var te=ee;ee=s.locateFile?s.locateFile(te,A):A+te}function Ae(){var N=ee;try{if(N==ee&&f)return new Uint8Array(f);if(F(N))try{var U=Jn(N.slice(37)),Z=new Uint8Array(U.length);for(N=0;N=U?"_"+N:N}function z(N,U){return N=Y(N),function(){return U.apply(this,arguments)}}var O=[{},{value:void 0},{value:null},{value:!0},{value:!1}],k=[];function me(N){var U=Error,Z=z(N,function(ae){this.name=N,this.message=ae,ae=Error(ae).stack,ae!==void 0&&(this.stack=this.toString()+` +`+ae.replace(/^Error(:[^\n]*)?\n/,""))});return Z.prototype=Object.create(U.prototype),Z.prototype.constructor=Z,Z.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Z}var Ie=void 0;function oe(N){throw new Ie(N)}var Se=N=>(N||oe("Cannot use deleted val. handle = "+N),O[N].value),H=N=>{switch(N){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var U=k.length?k.pop():O.length;return O[U]={fa:1,value:N},U}},Ee=void 0,ie=void 0;function le(N){for(var U="";v[N];)U+=ie[v[N++]];return U}var de=[];function Te(){for(;de.length;){var N=de.pop();N.L.Z=!1,N.delete()}}var $=void 0,_={};function D(N,U){for(U===void 0&&oe("ptr should not be undefined");N.P;)U=N.aa(U),N=N.P;return U}var se={};function Le(N){N=et(N);var U=le(N);return xt(N),U}function De(N,U){var Z=se[N];return Z===void 0&&oe(U+" has unknown type "+Le(N)),Z}function Qe(){}var Xe=!1;function Ve(N){--N.count.value,N.count.value===0&&(N.S?N.T.V(N.S):N.O.M.V(N.N))}function Ke(N,U,Z){return U===Z?N:Z.P===void 0?null:(N=Ke(N,U,Z.P),N===null?null:Z.ma(N))}var lt={};function It(N,U){return U=D(N,U),_[U]}var Pe=void 0;function Pt(N){throw new Pe(N)}function wt(N,U){return U.O&&U.N||Pt("makeClassHandle requires ptr and ptrType"),!!U.T!=!!U.S&&Pt("Both smartPtrType and smartPtr must be specified"),U.count={value:1},pt(Object.create(N,{L:{value:U}}))}function pt(N){return typeof FinalizationRegistry>"u"?(pt=U=>U,N):(Xe=new FinalizationRegistry(U=>{Ve(U.L)}),pt=U=>{var Z=U.L;return Z.S&&Xe.register(U,{L:Z},U),U},Qe=U=>{Xe.unregister(U)},pt(N))}var at={};function tt(N){for(;N.length;){var U=N.pop();N.pop()(U)}}function Bt(N){return this.fromWireType(R[N>>2])}var Ot={},tn={};function Mt(N,U,Z){function ae(Ne){Ne=Z(Ne),Ne.length!==N.length&&Pt("Mismatched type converter count");for(var We=0;We{se.hasOwnProperty(Ne)?ge[We]=se[Ne]:(we.push(Ne),Ot.hasOwnProperty(Ne)||(Ot[Ne]=[]),Ot[Ne].push(()=>{ge[We]=se[Ne],++Ue,Ue===we.length&&ae(ge)}))}),we.length===0&&ae(ge)}function Jt(N){switch(N){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+N)}}function j(N,U,Z={}){if(!("argPackAdvance"in U))throw new TypeError("registerType registeredInstance requires argPackAdvance");var ae=U.name;if(N||oe('type "'+ae+'" must have a positive integer typeid pointer'),se.hasOwnProperty(N)){if(Z.ta)return;oe("Cannot register type '"+ae+"' twice")}se[N]=U,delete tn[N],Ot.hasOwnProperty(N)&&(U=Ot[N],delete Ot[N],U.forEach(ge=>ge()))}function Ge(N){oe(N.L.O.M.name+" instance already deleted")}function Fe(){}function rt(N,U,Z){if(N[U].R===void 0){var ae=N[U];N[U]=function(){return N[U].R.hasOwnProperty(arguments.length)||oe("Function '"+Z+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+N[U].R+")!"),N[U].R[arguments.length].apply(this,arguments)},N[U].R=[],N[U].R[ae.Y]=ae}}function dt(N,U){s.hasOwnProperty(N)?(oe("Cannot register public name '"+N+"' twice"),rt(s,N,N),s.hasOwnProperty(void 0)&&oe("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),s[N].R[void 0]=U):s[N]=U}function jt(N,U,Z,ae,ge,we,Ue,Ne){this.name=N,this.constructor=U,this.W=Z,this.V=ae,this.P=ge,this.oa=we,this.aa=Ue,this.ma=Ne,this.ia=[]}function Kt(N,U,Z){for(;U!==Z;)U.aa||oe("Expected null or instance of "+Z.name+", got an instance of "+U.name),N=U.aa(N),U=U.P;return N}function Ln(N,U){return U===null?(this.da&&oe("null is not a valid "+this.name),0):(U.L||oe('Cannot pass "'+tl(U)+'" as a '+this.name),U.L.N||oe("Cannot pass deleted object as a pointer of type "+this.name),Kt(U.L.N,U.L.O.M,this.M))}function pi(N,U){if(U===null){if(this.da&&oe("null is not a valid "+this.name),this.ca){var Z=this.ea();return N!==null&&N.push(this.V,Z),Z}return 0}if(U.L||oe('Cannot pass "'+tl(U)+'" as a '+this.name),U.L.N||oe("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&U.L.O.ba&&oe("Cannot convert argument of type "+(U.L.T?U.L.T.name:U.L.O.name)+" to parameter type "+this.name),Z=Kt(U.L.N,U.L.O.M,this.M),this.ca)switch(U.L.S===void 0&&oe("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:U.L.T===this?Z=U.L.S:oe("Cannot convert argument of type "+(U.L.T?U.L.T.name:U.L.O.name)+" to parameter type "+this.name);break;case 1:Z=U.L.S;break;case 2:if(U.L.T===this)Z=U.L.S;else{var ae=U.clone();Z=this.wa(Z,H(function(){ae.delete()})),N!==null&&N.push(this.V,Z)}break;default:oe("Unsupporting sharing policy")}return Z}function an(N,U){return U===null?(this.da&&oe("null is not a valid "+this.name),0):(U.L||oe('Cannot pass "'+tl(U)+'" as a '+this.name),U.L.N||oe("Cannot pass deleted object as a pointer of type "+this.name),U.L.O.ba&&oe("Cannot convert argument of type "+U.L.O.name+" to parameter type "+this.name),Kt(U.L.N,U.L.O.M,this.M))}function dn(N,U,Z,ae){this.name=N,this.M=U,this.da=Z,this.ba=ae,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,U.P!==void 0?this.toWireType=pi:(this.toWireType=ae?Ln:an,this.U=null)}function $i(N,U){s.hasOwnProperty(N)||Pt("Replacing nonexistant public symbol"),s[N]=U,s[N].Y=void 0}function el(N,U){var Z=[];return function(){if(Z.length=0,Object.assign(Z,arguments),N.includes("j")){var ae=s["dynCall_"+N];ae=Z&&Z.length?ae.apply(null,[U].concat(Z)):ae.call(null,U)}else ae=w.get(U).apply(null,Z);return ae}}function gi(N,U){N=le(N);var Z=N.includes("j")?el(N,U):w.get(U);return typeof Z!="function"&&oe("unknown function pointer with signature "+N+": "+U),Z}var Ys=void 0;function ur(N,U){function Z(we){ge[we]||se[we]||(tn[we]?tn[we].forEach(Z):(ae.push(we),ge[we]=!0))}var ae=[],ge={};throw U.forEach(Z),new Ys(N+": "+ae.map(Le).join([", "]))}function vs(N,U,Z,ae,ge){var we=U.length;2>we&&oe("argTypes array size mismatch! Must at least get return value and 'this' types!");var Ue=U[1]!==null&&Z!==null,Ne=!1;for(Z=1;Z>2]);return Z}function zo(N){4>2])};case 3:return function(Z){return this.fromWireType(P[Z>>3])};default:throw new TypeError("Unknown float type: "+N)}}function Ju(N,U,Z){switch(U){case 0:return Z?function(ae){return p[ae]}:function(ae){return v[ae]};case 1:return Z?function(ae){return I[ae>>1]}:function(ae){return B[ae>>1]};case 2:return Z?function(ae){return R[ae>>2]}:function(ae){return M[ae>>2]};default:throw new TypeError("Unknown integer type: "+N)}}function W(N,U){for(var Z="",ae=0;!(ae>=U/2);++ae){var ge=I[N+2*ae>>1];if(ge==0)break;Z+=String.fromCharCode(ge)}return Z}function pe(N,U,Z){if(Z===void 0&&(Z=2147483647),2>Z)return 0;Z-=2;var ae=U;Z=Z<2*N.length?Z/2:N.length;for(var ge=0;ge>1]=N.charCodeAt(ge),U+=2;return I[U>>1]=0,U-ae}function xe(N){return 2*N.length}function _e(N,U){for(var Z=0,ae="";!(Z>=U/4);){var ge=R[N+4*Z>>2];if(ge==0)break;++Z,65536<=ge?(ge-=65536,ae+=String.fromCharCode(55296|ge>>10,56320|ge&1023)):ae+=String.fromCharCode(ge)}return ae}function Ce(N,U,Z){if(Z===void 0&&(Z=2147483647),4>Z)return 0;var ae=U;Z=ae+Z-4;for(var ge=0;ge=we){var Ue=N.charCodeAt(++ge);we=65536+((we&1023)<<10)|Ue&1023}if(R[U>>2]=we,U+=4,U+4>Z)break}return R[U>>2]=0,U-ae}function Ze(N){for(var U=0,Z=0;Z=ae&&++Z,U+=4}return U}var ct={};function mt(N){var U=ct[N];return U===void 0?le(N):U}var gt=[];function Qt(N){var U=gt.length;return gt.push(N),U}function St(N,U){for(var Z=Array(N),ae=0;ae>2],"parameter "+ae);return Z}var _t=[],yn=[null,[],[]];Ie=s.BindingError=me("BindingError"),s.count_emval_handles=function(){for(var N=0,U=5;Uln;++ln)Xn[ln]=String.fromCharCode(ln);ie=Xn,s.getInheritedInstanceCount=function(){return Object.keys(_).length},s.getLiveInheritedInstances=function(){var N=[],U;for(U in _)_.hasOwnProperty(U)&&N.push(_[U]);return N},s.flushPendingDeletes=Te,s.setDelayFunction=function(N){$=N,de.length&&$&&$(Te)},Pe=s.InternalError=me("InternalError"),Fe.prototype.isAliasOf=function(N){if(!(this instanceof Fe&&N instanceof Fe))return!1;var U=this.L.O.M,Z=this.L.N,ae=N.L.O.M;for(N=N.L.N;U.P;)Z=U.aa(Z),U=U.P;for(;ae.P;)N=ae.aa(N),ae=ae.P;return U===ae&&Z===N},Fe.prototype.clone=function(){if(this.L.N||Ge(this),this.L.$)return this.L.count.value+=1,this;var N=pt,U=Object,Z=U.create,ae=Object.getPrototypeOf(this),ge=this.L;return N=N(Z.call(U,ae,{L:{value:{count:ge.count,Z:ge.Z,$:ge.$,N:ge.N,O:ge.O,S:ge.S,T:ge.T}}})),N.L.count.value+=1,N.L.Z=!1,N},Fe.prototype.delete=function(){this.L.N||Ge(this),this.L.Z&&!this.L.$&&oe("Object already scheduled for deletion"),Qe(this),Ve(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},Fe.prototype.isDeleted=function(){return!this.L.N},Fe.prototype.deleteLater=function(){return this.L.N||Ge(this),this.L.Z&&!this.L.$&&oe("Object already scheduled for deletion"),de.push(this),de.length===1&&$&&$(Te),this.L.Z=!0,this},dn.prototype.pa=function(N){return this.ja&&(N=this.ja(N)),N},dn.prototype.ga=function(N){this.V&&this.V(N)},dn.prototype.argPackAdvance=8,dn.prototype.readValueFromPointer=Bt,dn.prototype.deleteObject=function(N){N!==null&&N.delete()},dn.prototype.fromWireType=function(N){function U(){return this.ca?wt(this.M.W,{O:this.va,N:Z,T:this,S:N}):wt(this.M.W,{O:this,N})}var Z=this.pa(N);if(!Z)return this.ga(N),null;var ae=It(this.M,Z);if(ae!==void 0)return ae.L.count.value===0?(ae.L.N=Z,ae.L.S=N,ae.clone()):(ae=ae.clone(),this.ga(N),ae);if(ae=this.M.oa(Z),ae=lt[ae],!ae)return U.call(this);ae=this.ba?ae.ka:ae.pointerType;var ge=Ke(Z,this.M,ae.M);return ge===null?U.call(this):this.ca?wt(ae.M.W,{O:ae,N:ge,T:this,S:N}):wt(ae.M.W,{O:ae,N:ge})},Ys=s.UnboundTypeError=me("UnboundTypeError");var Jn=typeof atob=="function"?atob:function(N){var U="",Z=0;N=N.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var ae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),ge="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),Ue="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++));ae=ae<<2|ge>>4,ge=(ge&15)<<4|we>>2;var Ne=(we&3)<<6|Ue;U+=String.fromCharCode(ae),we!==64&&(U+=String.fromCharCode(ge)),Ue!==64&&(U+=String.fromCharCode(Ne))}while(ZUe.sa).concat(ge.map(Ue=>Ue.ya));Mt([N],we,Ue=>{var Ne={};return ge.forEach((We,ze)=>{var $e=Ue[ze],ft=We.qa,Ht=We.ra,gn=Ue[ze+ge.length],Xt=We.xa,Ui=We.za;Ne[We.na]={read:hr=>$e.fromWireType(ft(Ht,hr)),write:(hr,Xs)=>{var dr=[];Xt(Ui,hr,gn.toWireType(dr,Xs)),tt(dr)}}}),[{name:U.name,fromWireType:function(We){var ze={},$e;for($e in Ne)ze[$e]=Ne[$e].read(We);return ae(We),ze},toWireType:function(We,ze){for(var $e in Ne)if(!($e in ze))throw new TypeError('Missing field: "'+$e+'"');var ft=Z();for($e in Ne)Ne[$e].write(ft,ze[$e]);return We!==null&&We.push(ae,ft),ft},argPackAdvance:8,readValueFromPointer:Bt,U:ae}]})},v:function(){},B:function(N,U,Z,ae,ge){var we=Jt(Z);U=le(U),j(N,{name:U,fromWireType:function(Ue){return!!Ue},toWireType:function(Ue,Ne){return Ne?ae:ge},argPackAdvance:8,readValueFromPointer:function(Ue){if(Z===1)var Ne=p;else if(Z===2)Ne=I;else if(Z===4)Ne=R;else throw new TypeError("Unknown boolean type size: "+U);return this.fromWireType(Ne[Ue>>we])},U:null})},f:function(N,U,Z,ae,ge,we,Ue,Ne,We,ze,$e,ft,Ht){$e=le($e),we=gi(ge,we),Ne&&(Ne=gi(Ue,Ne)),ze&&(ze=gi(We,ze)),Ht=gi(ft,Ht);var gn=Y($e);dt(gn,function(){ur("Cannot construct "+$e+" due to unbound types",[ae])}),Mt([N,U,Z],ae?[ae]:[],function(Xt){if(Xt=Xt[0],ae)var Ui=Xt.M,hr=Ui.W;else hr=Fe.prototype;Xt=z(gn,function(){if(Object.getPrototypeOf(this)!==Xs)throw new Ie("Use 'new' to construct "+$e);if(dr.X===void 0)throw new Ie($e+" has no accessible constructor");var yd=dr.X[arguments.length];if(yd===void 0)throw new Ie("Tried to invoke ctor of "+$e+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(dr.X).toString()+") parameters instead!");return yd.apply(this,arguments)});var Xs=Object.create(hr,{constructor:{value:Xt}});Xt.prototype=Xs;var dr=new jt($e,Xt,Xs,Ht,Ui,we,Ne,ze);Ui=new dn($e,dr,!0,!1),hr=new dn($e+"*",dr,!1,!1);var Ho=new dn($e+" const*",dr,!1,!0);return lt[N]={pointerType:hr,ka:Ho},$i(gn,Xt),[Ui,hr,Ho]})},c:function(N,U,Z,ae,ge,we,Ue){var Ne=Go(Z,ae);U=le(U),we=gi(ge,we),Mt([],[N],function(We){function ze(){ur("Cannot call "+$e+" due to unbound types",Ne)}We=We[0];var $e=We.name+"."+U;U.startsWith("@@")&&(U=Symbol[U.substring(2)]);var ft=We.M.constructor;return ft[U]===void 0?(ze.Y=Z-1,ft[U]=ze):(rt(ft,U,$e),ft[U].R[Z-1]=ze),Mt([],Ne,function(Ht){return Ht=vs($e,[Ht[0],null].concat(Ht.slice(1)),null,we,Ue),ft[U].R===void 0?(Ht.Y=Z-1,ft[U]=Ht):ft[U].R[Z-1]=Ht,[]}),[]})},o:function(N,U,Z,ae,ge,we){0{ur("Cannot construct "+Ne.name+" due to unbound types",Ue)},Mt([],Ue,function(ze){return ze.splice(1,0,null),Ne.M.X[U-1]=vs(We,ze,null,ge,we),[]}),[]})},a:function(N,U,Z,ae,ge,we,Ue,Ne){var We=Go(Z,ae);U=le(U),we=gi(ge,we),Mt([],[N],function(ze){function $e(){ur("Cannot call "+ft+" due to unbound types",We)}ze=ze[0];var ft=ze.name+"."+U;U.startsWith("@@")&&(U=Symbol[U.substring(2)]),Ne&&ze.M.ia.push(U);var Ht=ze.M.W,gn=Ht[U];return gn===void 0||gn.R===void 0&&gn.className!==ze.name&&gn.Y===Z-2?($e.Y=Z-2,$e.className=ze.name,Ht[U]=$e):(rt(Ht,U,ft),Ht[U].R[Z-2]=$e),Mt([],We,function(Xt){return Xt=vs(ft,Xt,ze,we,Ue),Ht[U].R===void 0?(Xt.Y=Z-2,Ht[U]=Xt):Ht[U].R[Z-2]=Xt,[]}),[]})},A:function(N,U){U=le(U),j(N,{name:U,fromWireType:function(Z){var ae=Se(Z);return zo(Z),ae},toWireType:function(Z,ae){return H(ae)},argPackAdvance:8,readValueFromPointer:Bt,U:null})},m:function(N,U,Z){Z=Jt(Z),U=le(U),j(N,{name:U,fromWireType:function(ae){return ae},toWireType:function(ae,ge){return ge},argPackAdvance:8,readValueFromPointer:Xu(U,Z),U:null})},d:function(N,U,Z,ae,ge){U=le(U),ge===-1&&(ge=4294967295),ge=Jt(Z);var we=Ne=>Ne;if(ae===0){var Ue=32-8*Z;we=Ne=>Ne<>>Ue}Z=U.includes("unsigned")?function(Ne,We){return We>>>0}:function(Ne,We){return We},j(N,{name:U,fromWireType:we,toWireType:Z,argPackAdvance:8,readValueFromPointer:Ju(U,ge,ae!==0),U:null})},b:function(N,U,Z){function ae(we){we>>=2;var Ue=M;return new ge(y,Ue[we+1],Ue[we])}var ge=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][U];Z=le(Z),j(N,{name:Z,fromWireType:ae,argPackAdvance:8,readValueFromPointer:ae},{ta:!0})},n:function(N,U){U=le(U);var Z=U==="std::string";j(N,{name:U,fromWireType:function(ae){var ge=M[ae>>2],we=ae+4;if(Z)for(var Ue=we,Ne=0;Ne<=ge;++Ne){var We=we+Ne;if(Ne==ge||v[We]==0){if(Ue=Ue?C(v,Ue,We-Ue):"",ze===void 0)var ze=Ue;else ze+="\0",ze+=Ue;Ue=We+1}}else{for(ze=Array(ge),Ne=0;Ne=We?Ne++:2047>=We?Ne+=2:55296<=We&&57343>=We?(Ne+=4,++we):Ne+=3}we=Ne}else we=ge.length;if(Ne=Ii(4+we+1),We=Ne+4,M[Ne>>2]=we,Z&&Ue){if(Ue=We,We=we+1,we=v,0=$e){var ft=ge.charCodeAt(++ze);$e=65536+(($e&1023)<<10)|ft&1023}if(127>=$e){if(Ue>=We)break;we[Ue++]=$e}else{if(2047>=$e){if(Ue+1>=We)break;we[Ue++]=192|$e>>6}else{if(65535>=$e){if(Ue+2>=We)break;we[Ue++]=224|$e>>12}else{if(Ue+3>=We)break;we[Ue++]=240|$e>>18,we[Ue++]=128|$e>>12&63}we[Ue++]=128|$e>>6&63}we[Ue++]=128|$e&63}}we[Ue]=0}}else if(Ue)for(Ue=0;UeB,Ne=1;else U===4&&(ae=_e,ge=Ce,we=Ze,Ue=()=>M,Ne=2);j(N,{name:Z,fromWireType:function(We){for(var ze=M[We>>2],$e=Ue(),ft,Ht=We+4,gn=0;gn<=ze;++gn){var Xt=We+4+gn*U;(gn==ze||$e[Xt>>Ne]==0)&&(Ht=ae(Ht,Xt-Ht),ft===void 0?ft=Ht:(ft+="\0",ft+=Ht),Ht=Xt+U)}return xt(We),ft},toWireType:function(We,ze){typeof ze!="string"&&oe("Cannot pass non-string to C++ string type "+Z);var $e=we(ze),ft=Ii(4+$e+U);return M[ft>>2]=$e>>Ne,ge(ze,ft+4,$e+U),We!==null&&We.push(xt,ft),ft},argPackAdvance:8,readValueFromPointer:Bt,U:function(We){xt(We)}})},k:function(N,U,Z,ae,ge,we){at[N]={name:le(U),ea:gi(Z,ae),V:gi(ge,we),ha:[]}},h:function(N,U,Z,ae,ge,we,Ue,Ne,We,ze){at[N].ha.push({na:le(U),sa:Z,qa:gi(ae,ge),ra:we,ya:Ue,xa:gi(Ne,We),za:ze})},C:function(N,U){U=le(U),j(N,{ua:!0,name:U,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(N,U,Z,ae,ge){N=gt[N],U=Se(U),Z=mt(Z);var we=[];return M[ae>>2]=H(we),N(U,Z,we,ge)},t:function(N,U,Z,ae){N=gt[N],U=Se(U),Z=mt(Z),N(U,Z,null,ae)},g:zo,l:function(N,U){var Z=St(N,U),ae=Z[0];U=ae.name+"_$"+Z.slice(1).map(function(Ue){return Ue.name}).join("_")+"$";var ge=_t[U];if(ge!==void 0)return ge;var we=Array(N-1);return ge=Qt((Ue,Ne,We,ze)=>{for(var $e=0,ft=0;ft>>=0,2147483648=Z;Z*=2){var ae=U*(1+.2/Z);ae=Math.min(ae,N+100663296);var ge=Math;ae=Math.max(N,ae),ge=ge.min.call(ge,2147483648,ae+(65536-ae%65536)%65536);e:{try{g.grow(ge-y.byteLength+65535>>>16),K();var we=1;break e}catch{}we=void 0}if(we)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(N,U,Z,ae){for(var ge=0,we=0;we>2],Ne=M[U+4>>2];U+=8;for(var We=0;We>2]=ge,0}};(function(){function N(ge){s.asm=ge.exports,g=s.asm.D,K(),w=s.asm.I,q.unshift(s.asm.E),re--,s.monitorRunDependencies&&s.monitorRunDependencies(re),re==0&&ne&&(ge=ne,ne=null,ge())}function U(ge){N(ge.instance)}function Z(ge){return ve().then(function(we){return WebAssembly.instantiate(we,ae)}).then(function(we){return we}).then(ge,function(we){d("failed to asynchronously prepare wasm: "+we),ue(we)})}var ae={a:vt};if(re++,s.monitorRunDependencies&&s.monitorRunDependencies(re),s.instantiateWasm)try{return s.instantiateWasm(ae,N)}catch(ge){d("Module.instantiateWasm callback failed with error: "+ge),a(ge)}return function(){return f||typeof WebAssembly.instantiateStreaming!="function"||F(ee)||typeof fetch!="function"?Z(U):fetch(ee,{credentials:"same-origin"}).then(function(ge){return WebAssembly.instantiateStreaming(ge,ae).then(U,function(we){return d("wasm streaming compile failed: "+we),d("falling back to ArrayBuffer instantiation"),Z(U)})})}().catch(a),{}})(),s.___wasm_call_ctors=function(){return(s.___wasm_call_ctors=s.asm.E).apply(null,arguments)};var et=s.___getTypeName=function(){return(et=s.___getTypeName=s.asm.F).apply(null,arguments)};s.__embind_initialize_bindings=function(){return(s.__embind_initialize_bindings=s.asm.G).apply(null,arguments)};var Ii=s._malloc=function(){return(Ii=s._malloc=s.asm.H).apply(null,arguments)},xt=s._free=function(){return(xt=s._free=s.asm.J).apply(null,arguments)};s.dynCall_jiji=function(){return(s.dynCall_jiji=s.asm.K).apply(null,arguments)};var fn;ne=function N(){fn||Ar(),fn||(ne=N)};function Ar(){function N(){if(!fn&&(fn=!0,s.calledRun=!0,!E)){if(Oe(q),o(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;){var U=s.postRun.shift();fe.unshift(U)}Oe(fe)}}if(!(0Zt(n),e);V.useEffect(()=>t,[t])}let dy;function Jz(){if(dy==null){const n=dy=zt(void 0);Hi.loadYoga().then(e=>n.value=e)}return dy}function tD(n,e,...t){const i=V.useMemo(()=>zt(void 0),[]);return V.useEffect(()=>{if(!(e instanceof kn)){let r=!1;return n(e,...t).then(s=>r?void 0:i.value=s),()=>r=!0}return Zt(()=>{let r=!1;return n(e.value,...t).then(s=>r?void 0:i.value=s).catch(console.error),()=>r=!0})},[e,...t]),i}function nD(n,e,t,i,r){const[s,o]=n.value,[a,l,A,h]=e.value,[d,f,g,E]=t.value,C=a+d,y=l+f,p=A+g,v=h+E,I=s-v-y,B=o-C-p,R=I/B;let M=1;return R>r?M=B*i:M=I*i/r,[(v-y)*.5*i,(p-C)*.5*i,M]}const Aw=new Je;function QC(n,e,t,i=0){const r=e*n.itemSize+i;n.addUpdateRange(r,3),Array.isArray(t)?n.set(t,r):(Aw.set(t),Aw.toArray(n.array,r)),n.needsUpdate=!0}function zg(n){return n instanceof kn?n.value:n}const iD=V.createContext(void 0);function Xa(){const n=V.useContext(iD);if(n==null)throw new Error("Can only be used inside a component.");return n}const jz=iD.Provider;function ho(n){const e=new Map;return(t,i)=>{const r=t.length;for(const s in i){const o=i[s];if(o===void 0)return;let a=e.get(o);a==null&&e.set(o,a=Yn(()=>n()?zg(o):void 0));for(let l=0;l"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),rD=zt((Iu==null?void 0:Iu.matches)??!1);Iu==null||Iu.addEventListener("change",n=>rD.value=n.matches);const Kz=zt("system"),qz=Yn(()=>{switch(Kz.value){case"system":return rD.value;case"dark":return!0;case"light":return!1}}),Zz=ho(()=>qz.value);function Do(n,e){Vu(e,t=>{const i=t.dark;i!=null&&Zz(n,i)})}const $z=Math.cos(45/180*Math.PI),fy=[new on,new on,new on,new on],hw=new G;class eH{constructor(e,t,i,r,s){be(this,"planes");be(this,"facePlane");be(this,"originalCenter");this.originalCenter=new G(t,i,0).applyMatrix4(e),this.facePlane=new on(new G(0,0,1),0).applyMatrix4(e);const o=r/2,a=s/2,l=i+a,A=t+o,h=-i+a,d=-t+o;this.planes=[new on(new G(0,-1,0),h).applyMatrix4(e),new on(new G(-1,0,0),d).applyMatrix4(e),new on(new G(0,1,0),l).applyMatrix4(e),new on(new G(1,0,0),A).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const s=this.facePlane,o=e[r],a=s.normal.dot(o.normal);if(Math.abs(a)>.99)return this;const l=fy[r];if(Math.abs(a)<.01){l.copy(o);continue}l.normal.crossVectors(s.normal,o.normal).normalize().cross(s.normal).negate();const A=1-a*a,h=(s.constant-o.constant*a)/A,d=(o.constant-s.constant*a)/A;hw.copy(s.normal).multiplyScalar(h).addScaledVector(o.normal,d),l.constant=-hw.dot(l.normal)}let t=0;const i=this.planes[0].normal;for(;fy[t].normal.dot(i)>$z;)break;for(let r=0;r<4;r++){const s=this.planes[r],o=(r+t)%4;fy[o].distanceToPoint(this.originalCenter)Yn(()=>{const r=e.value,s=n==null?void 0:n.value;if(s==null||r==null)return!1;const[o,a]=t.value;for(let h=0;h<4;h++){const[d,f]=iH[h];dw[h].set(d*i.pixelSize*o,f*i.pixelSize*a,0).applyMatrix4(r)}const{planes:l}=s;let A;for(let h=0;h<4;h++){const d=l[h];A=!0;for(let f=0;f<4;f++){const g=dw[f];d.distanceToPoint(g)>=0&&(A=!1)}if(A)return!0}return!1}),[e,n,i,t])}function rH(n,e,t,i,r,s){return V.useMemo(()=>Yn(()=>{const o=n.value;if(o==null||i.value===Hi.Overflow.Visible)return s==null?void 0:s.value;const[a,l]=e.value,[A,h,d,f]=t.value,g=new eH(o,(h-f)*r.pixelSize/2,(A-d)*r.pixelSize/2,(a-f-h)*r.pixelSize,(l-A-d)*r.pixelSize);return(s==null?void 0:s.value)!=null&&g.min(s.value),g}),[n,e,t,r,i,s])}const RC=new on(new G(-1,0,0),Number.MAX_SAFE_INTEGER),Hg=new Float32Array(16);for(let n=0;n<4;n++)RC.normal.toArray(Hg,n*4),Hg[n*4+3]=RC.constant;function Ad(n,e){const t=V.useMemo(()=>[new on,new on,new on,new on],[]);return Zr(()=>{var s;const i=e.current;if(i==null)return;const r=(s=n==null?void 0:n.value)==null?void 0:s.planes;if(r==null){for(let o=0;o<4;o++)t[o].copy(RC);return}for(let o=0;o<4;o++)t[o].copy(r[o]).applyMatrix4(i.matrixWorld)}),t}class sH{constructor(e,t){be(this,"glyphInfoMap",new Map);be(this,"kerningMap",new Map);be(this,"questionmarkGlyphInfo");be(this,"pageWidth");be(this,"pageHeight");be(this,"distanceRange");this.page=t;const{scaleW:i,scaleH:r,lineHeight:s}=e.common;this.pageWidth=i,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const l of e.chars)l.uvX=l.x/i,l.uvY=l.y/r,l.uvWidth=l.width/i,l.uvHeight=l.height/r,l.width/=o,l.height/=o,l.xadvance/=o,l.xoffset/=o,l.yoffset-=s-o,l.yoffset/=o,this.glyphInfoMap.set(l.char,l);for(const{first:l,second:A,amount:h}of e.kernings)this.kerningMap.set(`${l}/${A}`,h/o);const a=this.glyphInfoMap.get("?");if(a==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=a}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` +`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,t){return this.kerningMap.get(`${e}/${t}`)??0}}function oH(n,e,t){e[t+0]=n.uvX,e[t+1]=n.uvY+n.uvHeight,e[t+2]=n.uvWidth,e[t+3]=-n.uvHeight}const fw=new ut,aH=new ut;class lH{constructor(e,t,i,r,s){be(this,"index");be(this,"hidden",!0);be(this,"glyphInfo");be(this,"x",0);be(this,"y",0);be(this,"fontSize",0);be(this,"pixelSize",0);this.group=e,this.baseMatrix=t,this.color=i,this.opacity=r,this.clippingRect=s}getX(e){return this.glyphInfo==null?this.x:this.x+e*this.glyphInfo.width*this.fontSize}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const t=this.index*16,{instanceClipping:i}=this.group;this.clippingRect==null?i.set(Hg,t):this.clippingRect.toArray(i.array,t),i.addUpdateRange(t,16),i.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&QC(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:t}=this.group,i=this.index*4+3;t.array[i]=e,t.addUpdateRange(i,1),t.needsUpdate=!0}updateGlyphAndTransformation(e,t,i,r,s){this.glyphInfo===e&&this.x===t&&this.y===i&&this.fontSize===r&&this.pixelSize===s||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=t,this.y=i,this.fontSize=r,this.pixelSize=s,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:t}=this.group;oH(this.glyphInfo,t.array,e),t.addUpdateRange(e,4),t.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:t}=this.group;t.addUpdateRange(e,16),fw.makeTranslation(this.x*this.pixelSize,this.y*this.pixelSize,0).multiply(aH.makeScale(this.fontSize*this.glyphInfo.width*this.pixelSize,this.fontSize*this.glyphInfo.height*this.pixelSize,1)).premultiply(this.baseMatrix),fw.toArray(t.array,e),t.needsUpdate=!0}}function pw(n,e,t,i){return((i==null?0:n.getKerning(i,t.id))+t.xoffset)*e}function py(n,e,t){return(((t==null?void 0:t.yoffset)??0)+(e-1)/2)*n}function Yh(n,e,t){return e.xadvance*n+t}function vp(n,e){return n*e}function TC(n,{lineHeight:e,fontSize:t}){return Math.max(n,1)*t*e}const cH=[];class uH{constructor(e,t,i,r,s,o,a,l,A,h){be(this,"glyphLines",[]);be(this,"lastLayout");be(this,"unsubscribeInitialList",[]);be(this,"unsubscribeShowList",[]);be(this,"opacity",1);be(this,"color",16777215);this.group=e,this.getAlignmentProperties=t,this.getAppearanceProperties=i,this.layoutSignal=r,this.matrix=s,this.parentClippingRect=a,this.selectionRange=l,this.selectionBoxes=A,this.caretPosition=h,this.unsubscribeInitialList=[Zt(()=>{const d=i.value;if(d==null||(o==null?void 0:o.value)===!0||(d("opacity")??1)<.01){this.hide();return}this.show()}),Zt(()=>this.updateSelectionBoxes(this.lastLayout,l==null?void 0:l.value,hy(()=>{var d;return((d=t.value)==null?void 0:d.call(t,"verticalAlign"))??"top"}),hy(()=>{var d;return((d=t.value)==null?void 0:d.call(t,"horizontalAlign"))??"left"})))]}getCharIndex(e,t){const i=hy(()=>{var d,f;return((f=(d=this.getAlignmentProperties).value)==null?void 0:f.call(d,"verticalAlign"))??"top"}),r=this.lastLayout;if(r==null)return 0;t-=-Cp(r,i);const s=Math.floor(t/-vp(r.lineHeight,r.fontSize)),o=r.lines;if(s<0||o.length===0)return 0;if(s>=o.length){const d=o[o.length-1];return d.charIndexOffset+d.charLength+1}const a=o[s],l=r.font.getGlyphInfo(" ").xadvance*r.fontSize,A=this.glyphLines[s];let h=A.length;for(let d=0;d=d.charIndexOffset+d.charLength)continue;const f=this.glyphLines[h][Math.max(i-d.charIndexOffset,0)];return{lineIndex:h,x:this.getGlyphX(f,r?0:1,s)}}const l=e[a-1];if(l.charLength===0)return{lineIndex:a-1,x:gw(t,l.nonWhitespaceWidth,o)-t/2};const A=this.glyphLines[a-1][l.charLength-1];return{lineIndex:a-1,x:this.getGlyphX(A,1,s)}}getGlyphX(e,t,i){return typeof e=="number"?e+t*i:e.getX(t)}show(){this.unsubscribeShowList.length>0||(Cl(this.glyphLines,e=>e.show()),this.unsubscribeShowList.push(Zt(()=>{const e=this.matrix.value;e!=null&&Cl(this.glyphLines,t=>t.updateBaseMatrix(e))}),Zt(()=>{var t;const e=(t=this.parentClippingRect)==null?void 0:t.value;Cl(this.glyphLines,i=>i.updateClippingRect(e))}),Zt(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.color=e("color")??16777215;Cl(this.glyphLines,i=>i.updateColor(t))}),Zt(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.opacity=e("opacity")??1;Cl(this.glyphLines,i=>i.updateOpacity(t))}),Zt(()=>{var C,y;const e=this.layoutSignal.value,t=this.getAlignmentProperties.value;if(e==null||t==null)return;const{text:i,font:r,lines:s,letterSpacing:o=0,fontSize:a=16,lineHeight:l=1.2,availableWidth:A}=e,h=t("verticalAlign")??"top",d=t("horizontalAlign")??"left";let f=Cp(e,h)-e.availableHeight/2;const g=s.length,E=this.group.pixelSize;for(let p=0;pR+B){K=ne.id;const ee=P+pw(r,a,ne,K);typeof w[J]=="number"?w[J]=P:w.splice(J,0,ee),P+=T+Yh(a,ne,o);continue}let ue=w[J];for(;Jp.hide(),g),this.glyphLines.length=g,this.lastLayout=e,this.updateSelectionBoxes(e,(y=this.selectionRange)==null?void 0:y.peek(),h,d)})))}hide(){const e=this.unsubscribeShowList.length;if(e!==0){for(let t=0;tt.hide())}}destroy(){this.hide(),this.glyphLines.length=0;const e=this.unsubscribeInitialList.length;for(let t=0;t{t.uniforms.fontPage={value:e.page},t.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},t.uniforms.distanceRange={value:e.distanceRange},t.uniforms.v_weight={value:.3},t.vertexShader=`attribute vec4 instanceUVOffset; + varying vec2 fontUv; + attribute vec4 instanceRGBA; + varying vec4 rgba; + attribute mat4 instanceClipping; + varying mat4 clipping; + varying vec3 localPosition; + `+t.vertexShader,t.vertexShader=t.vertexShader.replace("#include ",`#include + fontUv = instanceUVOffset.xy + uv * instanceUVOffset.zw; + rgba = instanceRGBA; + clipping = instanceClipping; + localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`),t.fragmentShader=`uniform sampler2D fontPage; + uniform vec2 pageSize; + uniform int distanceRange; + uniform float v_weight; + varying vec2 fontUv; + varying vec4 rgba; + varying mat4 clipping; + varying vec3 localPosition; + float median(float r, float g, float b) { + return max(min(r, g), min(max(r, g), b)); + } + float getDistance() { + vec3 msdf = texture(fontPage, fontUv).rgb; + return median(msdf.r, msdf.g, msdf.b); + } + `+t.fragmentShader,t.fragmentShader=t.fragmentShader.replace("#include ",` #include + vec4 plane; + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + for(int i = 0; i < 4; i++) { + plane = clipping[ i ]; + distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + + if ( clipOpacity == 0.0 ) discard; + } + vec2 dxdy = fwidth(fontUv) * pageSize; + float dist = getDistance() + min(float(v_weight), 0.5 - 1.0 / float(distanceRange)) - 0.5; + float multiplier = clamp(dist * float(distanceRange) / length(dxdy) + 0.5, 0.0, 1.0); + if(multiplier <= 0.5) { + discard; + } + diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); + diffuseColor *= rgba; + `)}}}const DC=Symbol("camera-distance-key"),bC=Symbol("order-info-key");function dH(n,e){if(n.groupOrder!==e.groupOrder)return n.groupOrder-e.groupOrder;if(n.renderOrder!==e.renderOrder)return n.renderOrder-e.renderOrder;const t=n.object[DC],i=e.object[DC];return t==null||i==null?n.z!==e.z?e.z-n.z:n.id-e.id:t===i?pH(n.object[bC],e.object[bC]):i.current-t.current}function fH(n){n.setTransparentSort(dH)}const di={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function pH(n,e){let t=n.majorIndex-e.majorIndex;return t!=0||(t=n.elementType-e.elementType,t!=0)?t:n.minorIndex-e.minorIndex}const oD=V.createContext(void 0),gH=oD.Provider;function Pi(n,e,t,i){const r=i??V.useContext(oD),s=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return V.useMemo(()=>{let a,l;return r==null?(a=0,l=0):n>r.elementType?(a=r.majorIndex,l=0):n!=r.elementType||!mH(t,r.instancedGroupDependencies)?(a=r.majorIndex+1,l=0):(a=r.majorIndex,l=r.minorIndex+1),s>0&&(a+=s,l=0),l+=o,{instancedGroupDependencies:t,elementType:n,majorIndex:a,minorIndex:l}},[s,o,r,n,t])}function mH(n,e){if(n===e)return!0;if(n==null||e==null)return!1;let t=0;for(const i in n){if(n[i]!=e[i])return!1;++t}return t===Object.keys(e).length}function ac(n,e,t){return n[DC]=e,n[bC]=t,n}class EH extends Vr{constructor(t,i,r,s){super();be(this,"instanceMatrix");be(this,"instanceUV");be(this,"instanceRGBA");be(this,"instanceClipping");be(this,"glyphs",[]);be(this,"requestedGlyphs",[]);be(this,"holeIndicies",[]);be(this,"mesh");be(this,"material");be(this,"timeTillDecimate");this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.material=new hH(t)}requestActivate(t){const i=this.holeIndicies.shift();if(i!=null){this.glyphs[i]=t,t.activate(i);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(t);return}const r=this.mesh.count;this.glyphs[r]=t,t.activate(r),this.mesh.count+=1}delete(t){if(t.index==null){const s=this.requestedGlyphs.indexOf(t);if(s===-1)return;this.requestedGlyphs.splice(s,1);return}const i=this.requestedGlyphs.shift();if(i!=null){i.activate(t.index),this.glyphs[t.index]=i,t.index=void 0;return}if(t.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,t.index=void 0;return}const r=t.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(t.index),this.glyphs[t.index]=void 0,t.index=void 0}onFrame(t){var a;const i=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(i===0){this.visible=!1;return}this.visible=!0;const r=((a=this.instanceMatrix)==null?void 0:a.count)??0;if(i0)&&i<=r)return;this.timeTillDecimate=void 0,this.resize(i);const s=this.mesh.count,o=this.requestedGlyphs.length;for(let l=0;lf-g);const A=this.holeIndicies.length;let h=0,d=0;for(;d0)for(let f=this.holeIndicies[0];f{for(const o of r)o(s);gy.set(n,s)}).catch(console.error)}async function CH(n,e){const t=await(await fetch(n)).json();if(t.pages.length!==1)throw new Error("only supporting exactly 1 page");const i=await yH.loadAsync(new URL(t.pages[0],n).href);return i.anisotropy=e.capabilities.getMaxAnisotropy(),i.flipY=!1,new sH(t,i)}const IH=({text:n,fontSize:e,font:t,letterSpacing:i},r,s,o)=>{s=Mx(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let l=0,A=0;for(;sr)break;o.nonWhitespaceCharLength=s-a+1,o.nonWhitespaceWidth=l,o.whitespacesBetween=A}o.charLength=s-a},xH=({text:n,fontSize:e,font:t,letterSpacing:i},r,s,o)=>{s=Mx(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let l=0,A=0;for(;s{s=Mx(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let l=0,A=0;for(;s0&&r!=null&&l>r)break;const d=n[s+1];(d===" "||d===` +`||d==null)&&(o.charLength=s-a+1,o.nonWhitespaceCharLength=o.charLength,o.nonWhitespaceWidth=l,o.whitespacesBetween=A)}};function Mx(n,e){const t=n.length;for(;n[e]===" "&&enew Map,[]),r=V.useCallback((s,o)=>{let a=i.get(o);a==null&&i.set(o,a=new Map);let l=a==null?void 0:a.get(s);return l==null&&(a.set(s,l=new EH(o,n,e,{majorIndex:s,elementType:di.Text,minorIndex:0})),t.add(l)),l},[n,e,t]);return Zr((s,o)=>{for(const a of i.values())for(const l of a.values())l.onFrame(o)}),r}const QH=V.createContext(null),RH={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},LC={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},TH=["horizontalAlign","verticalAlign"],DH=["color","opacity"],bH=["fontSize","letterSpacing","lineHeight","wordBreak"];function cD(n,e,t,i,r,s,o,a,l,A,h){const d=Pi(di.Text,void 0,void 0,o),f=V.useContext(lD);if(f==null)throw new Error("Can only be used inside a component.");const g=NH(n),E=V.useMemo(()=>zt(e),[]);E.value=e;const C=V.useRef(void 0),y=FH(n,g,E,C),p=ms(n,TH),v=ms(n,DH),I=V.useMemo(()=>zt(void 0),[]);return V.useEffect(()=>i.addLayoutChangeListener(()=>{const B=C.current;if(B==null)return;const{size:R,paddingInset:M,borderInset:T}=i,[P,K]=R.value,[w,L,q,fe]=M.value,[J,re,ne,ue]=T.value,F=P-L-fe-re-ue,ee=K-w-q-J-ne;I.value=_H(B,F,ee)}),[i]),yi(()=>{const B=g.value;if(B==null)return;const R=new uH(f(d.majorIndex,B),p,v,I,t,r,s,a,l,A);return h!=null&&(h.current=R),()=>R.destroy()},[f,t,i,r,s,d.majorIndex,l,h]),y}const LH=["fontFamily","fontWeight"];function NH(n){const e=V.useMemo(()=>zt(void 0),[]),t=V.useContext(QH)??RH,i=ms(n,LH),r=Pm(({gl:s})=>s);return yi(()=>{const s=i.value;if(s==null)return;let o=s("fontWeight")??"normal";typeof o=="string"&&(o=LC[o]);let a=s("fontFamily");a==null&&(a=Object.keys(t)[0]);const l=PH(t[a],o);let A=!1;return vH(l,r,h=>A?void 0:e.value=h),()=>A=!0},[t,r]),e}function PH(n,e){let t=1/0,i;for(const r in n){const s=Math.abs(e-UH(r));if(s===0)return n[r];sYn(()=>{const o=e.value,a=r.value;if(o==null||a==null)return;const l=t.value,A={font:o,fontSize:a("fontSize")??16,letterSpacing:a("letterSpacing")??0,lineHeight:a("lineHeight")??1.2,text:Array.isArray(l)?l.map(h=>zg(h)).join(""):zg(l),wordBreak:a("wordBreak")??"break-word"};return i.current=A,(h,d)=>SH(A,d===Hi.MeasureMode.Undefined?void 0:h)}),[e,r,i,t])}const qc={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},uD=Object.keys(qc),kH=uD.length,AD=V.createContext(void 0),OH=AD.Provider;function bo(n,e,t){const i=t??V.useContext(AD);if(i==null)throw new Error("Can only be used inside a component.");const r=V.useMemo(()=>({sm:ho(()=>i.value[0]>qc.sm),md:ho(()=>i.value[0]>qc.md),lg:ho(()=>i.value[0]>qc.lg),xl:ho(()=>i.value[0]>qc.xl),"2xl":ho(()=>i.value[0]>qc["2xl"])}),[i]);Vu(e,s=>{for(let o=0;oe.createChild(n),[n,e]);return V.useEffect(()=>(e.addChild(t),()=>{e.removeChild(t),t.destroy()}),[e,t]),t}function zH(){let n=V.useRef(void 0);return Zr(()=>{if(n.current==null)return;const e=n.current;n.current=void 0,e.calculateLayout()}),V.useCallback(e=>{n.current!=null||e.yogaNode==null||(n.current=e)},[])}const Qx=hD.Provider,Ts=new on,Bp=new G,HH=[new on().setFromNormalAndCoplanarPoint(new G(1,0,0),new G(-.5,0,0)),new on().setFromNormalAndCoplanarPoint(new G(-1,0,0),new G(.5,0,0)),new on().setFromNormalAndCoplanarPoint(new G(0,1,0),new G(0,-.5,0)),new on().setFromNormalAndCoplanarPoint(new G(0,-1,0),new G(0,.5,0))],Il=[0,0,0,0];function dD(n){return(e,t)=>{const i=n.matrixWorld;if(Ts.constant=0,Ts.normal.set(0,0,1),Ts.applyMatrix4(i),Ts.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(Ts,Bp)==null)return;const r=Ts.normal.clone();for(let s=0;s<4;s++){const o=HH[s];if(Ts.copy(o).applyMatrix4(i),(Il[s]=Ts.distanceToPoint(Bp))<0)return}t.push({distance:Bp.distanceTo(e.ray.origin),object:n,point:Bp.clone(),uv:new Be(Il[0]/(Il[0]+Il[1]),Il[3]/(Il[2]+Il[3])),normal:r})}}function Wu(n,e,t,i,r){return(s,o)=>{var d;const a=t.current;if(a==null)return;const l=o.length;e.call(n,s,o);const A=(d=i==null?void 0:i.value)==null?void 0:d.planes,h=a.matrixWorld;e:for(let f=o.length-1;f>=l;f--){const g=o[f];if(g.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,A!=null){for(let E=0;E<4;E++)if(Ts.copy(A[E]).applyMatrix4(h),Ts.distanceToPoint(g.point)<0){o.splice(f,1);continue e}}}}}function fD(n,e){for(;e>=n.length;){let t=0,i=0;if(n.length>0){const r=n[n.length-1];t+=r.offset+r.elements.length,i=Math.min(0,r.missingSpace),r.missingSpace-=i}n.push({add:[],missingSpace:i,offset:t,elements:[]})}}function VH(n,e,t){fD(n,0);const i=n[n.length-1];i.missingSpace+=e-t}function WH(n,e,t,i){fD(n,e);const r=n[e];return r.missingSpace+=1,r.missingSpace<=0?(i(t,r,r.elements.length),r.elements.push(t),!1):(r.add.push(t),!0)}function YH(n,e,t,i,r,s,o,a){if(e>=n.length)throw new Error(`no bucket at index ${e}`);const l=n[e];l.missingSpace-=1;const A=l.add.indexOf(t);if(A!=-1)return l.add.splice(A,1),!1;if(i==null||i>=l.elements.length)throw new Error(`no element at index ${i}`);if(l.add.length>0){const g=l.add.shift();return l.elements[i]=g,r(g,l,i),!1}const h=l.offset,d=l.elements.length-1;if(d!=i){const g=h+d,E=h+i;a(E,g,g+1);const C=l.elements[d];l.elements[i]=C,o(C,i)}if(s(h+d),l.elements.length-=1,e0;){const g=n[e-1];g.missingSpace+=f.missingSpace,f=n[--e]}return n.length=e+1,!1}function XH(n,e,t){let i=n.length,r=-1;for(let o=0;o0&&(r=o);const l=o===i-1;if(!l&&a.missingSpace===0)continue;const A=a.missingSpace<0;for(let h=o-1;h>=0;h--){const d=n[h];if(d.missingSpace===0)continue;const f=d.missingSpace<0;if(f&&(l||A)){Ew(n,t,h,o,Math.abs(d.missingSpace));continue}if(!A&&!f)continue;const g=Math.min(Math.abs(d.missingSpace),Math.abs(a.missingSpace));A?JH(n,t,h,o,g):Ew(n,t,h,o,g)}}const s=n[r];for(let o=r+1;oh>0)&&(i==null||i>0),[a,l]=e.value;return!(a>0&&l>0&&(r==null||r>0)&&s!=null)&&!o?!1:t==null?!0:!t.value}function VA(n,e,t,i,r){n[e]=jH(n[e],t,Om(Math.ceil((i??0)/r*100),0,49))}const Sp=new Je,mD=new Je(-1,-1,-1),yw={backgroundColor:(n,e)=>(Array.isArray(e)?Sp.setRGB(...e):Sp.set(e??mD)).toArray(n,4),borderBottomLeftRadius:(n,e,t)=>VA(n,7,0,e,t.value[1]),borderBottomRightRadius:(n,e,t)=>VA(n,7,1,e,t.value[1]),borderTopRightRadius:(n,e,t)=>VA(n,7,2,e,t.value[1]),borderTopLeftRadius:(n,e,t)=>VA(n,7,3,e,t.value[1]),borderColor:(n,e)=>(Array.isArray(e)?Sp.setRGB(...e):Sp.set(e??16777215)).toArray(n,8),borderBend:(n,e)=>n[11]=e??0,borderOpacity:(n,e)=>n[12]=e??1,backgroundOpacity:(n,e)=>n[15]=e??-1},ED=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],KH=["borderOpacity","backgroundColor","backgroundOpacity"];class qH{constructor(e,t,i){be(this,"data",new Float32Array(16));be(this,"unsubscribeList",[]);be(this,"unsubscribe");be(this,"visible",!1);be(this,"materials",[]);be(this,"active",zt(!1));be(this,"getProperty",zt(void 0));this.size=e,this.size=e,this.unsubscribe=Zt(()=>{const r=this.getProperty.value,s=r!=null&&gD(t,e,i,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=s,!s){this.deactivate();return}this.activate(e,t)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return KH.includes(e)}hasImmediateProperty(e){return e in yw}setProperty(e,t){const i=yw[e];i(this.data,t,this.size)}activate(e,t){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(ED),this.unsubscribeList.push(Zt(()=>this.data.set(e.value,13)),Zt(()=>this.data.set(t.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let t=0;t{i.call(t,r,s),e.type==="normal"&&(r.uniforms.data={value:e.data}),e5(r,e.type==="instanced")},t}class vD extends gm{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),ID(e,this.info.type==="instanced")}}class CD extends pm{constructor(e){super({depthPacking:VI}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),ID(e,this.info.type==="instanced")}}const ZH=new CD({type:"instanced"}),$H=new vD({type:"instanced"});function ID(n,e){xD(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",`#include + ${BD(e,void 0)} + `)}function xD(n,e){n.vertexShader=n.vertexShader.replace("#include ",` #include + out vec4 borderRadius; + ${e?"":"uniform highp mat4 data;"}`),n.vertexShader=n.vertexShader.replace("#include ",` #include + highp int packedBorderRadius = int(data[1].w); + borderRadius = vec4( + packedBorderRadius / 125000 % 50, + packedBorderRadius / 2500 % 50, + packedBorderRadius / 50 % 50, + packedBorderRadius % 50 + ) * vec4(0.5 / 50.0);`),e&&(n.vertexShader=n.vertexShader.replace("#include ",` #include + attribute highp mat4 aData; + attribute mat4 aClipping; + out mat4 data; + out mat4 clipping; + out vec3 localPosition;`),n.vertexShader=n.vertexShader.replace("#include ",` #include + data = aData; + clipping = aClipping; + localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`)),n.fragmentShader=`${e?"in":"uniform"} highp mat4 data; + in vec4 borderRadius; + ${e?` + in vec3 localPosition; + in mat4 clipping; + `:""} + + float min4 (vec4 v) { + return min(min(min(v.x,v.y),v.z),v.w); + } + float max4 (vec4 v) { + return max(max(max(v.x,v.y),v.z),v.w); + } + vec2 radiusDistance(float radius, vec2 outside, vec2 border, vec2 borderSize) { + vec2 outerRadiusXX = vec2(radius, radius); + vec2 innerRadiusXX = outerRadiusXX - borderSize; + vec2 radiusWeightUnnormalized = abs(innerRadiusXX - border); + vec2 radiusWeight = radiusWeightUnnormalized / vec2(radiusWeightUnnormalized.x + radiusWeightUnnormalized.y); + return vec2( + radius - distance(outside, outerRadiusXX), + dot(radiusWeight, innerRadiusXX) - distance(border, innerRadiusXX) + ); + } + `+n.fragmentShader,n.fragmentShader=n.fragmentShader.replace("#include ",` ${e?` + vec4 plane; + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + + for(int i = 0; i < 4; i++) { + plane = clipping[ i ]; + distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + + if ( clipOpacity < 0.01 ) discard; + } + `:""} + vec4 absoluteBorderSize = data[0]; + vec3 backgroundColor = data[1].xyz; + vec3 borderColor = data[2].xyz; + float borderBend = data[2].w; + float borderOpacity = data[3].x; + float width = data[3].y; + float height = data[3].z; + float backgroundOpacity = data[3].w; + float ratio = width / height; + vec4 relative = vec4(height, height, height, height); + vec4 borderSize = absoluteBorderSize / relative; + vec4 v_outsideDistance = vec4(1.0 - vUv.y, (1.0 - vUv.x) * ratio, vUv.y, vUv.x * ratio); + vec4 v_borderDistance = v_outsideDistance - borderSize; + + vec2 distance = vec2(min4(v_outsideDistance), min4(v_borderDistance)); + vec4 negateBorderDistance = vec4(1.0) - v_borderDistance; + float maxWeight = max4(negateBorderDistance); + vec4 borderWeight = step(maxWeight, negateBorderDistance); + + vec4 insideBorder; + + if(all(lessThan(v_outsideDistance.xw, borderRadius.xx))) { + distance = radiusDistance(borderRadius.x, v_outsideDistance.xw, v_borderDistance.xw, borderSize.xw); + + float tmp = borderRadius.x - borderSize.w; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.x - borderSize.x; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.yz = vec2(0.0); + insideBorder.xw = max(vec2(0.0), lineIntersection - v_borderDistance.xw); + + } else if(all(lessThan(v_outsideDistance.xy, borderRadius.yy))) { + distance = radiusDistance(borderRadius.y, v_outsideDistance.xy, v_borderDistance.xy, borderSize.xy); + + float tmp = borderRadius.y - borderSize.y; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.y - borderSize.x; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.zw = vec2(0.0); + insideBorder.xy = max(vec2(0.0), lineIntersection - v_borderDistance.xy); + + } else if(all(lessThan(v_outsideDistance.zy, borderRadius.zz))) { + distance = radiusDistance(borderRadius.z, v_outsideDistance.zy, v_borderDistance.zy, borderSize.zy); + + float tmp = borderRadius.z - borderSize.y; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.z - borderSize.z; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.xw = vec2(0.0); + insideBorder.zy =max(vec2(0.0), lineIntersection - v_borderDistance.zy); + + } else if(all(lessThan(v_outsideDistance.zw, borderRadius.ww))) { + distance = radiusDistance(borderRadius.w, v_outsideDistance.zw, v_borderDistance.zw, borderSize.zw); + + float tmp = borderRadius.w - borderSize.w; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.w - borderSize.z; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.xy = vec2(0.0); + insideBorder.zw = max(vec2(0.0), lineIntersection - v_borderDistance.zw); + + } + + if(insideBorder.x + insideBorder.y + insideBorder.z + insideBorder.w > 0.0) { + borderWeight = normalize(insideBorder); + } + + #include `)}function BD(n,e){return`float ddx = fwidth(distance.x); + float outer = smoothstep(-ddx, ddx, distance.x); + + float ddy = fwidth(distance.y); + float inner = smoothstep(-ddy, ddy, distance.y); + + float transition = 1.0 - step(0.1, outer - inner) * (1.0 - inner); + + if(backgroundColor.r < 0.0 && backgroundOpacity >= 0.0) { + backgroundColor = vec3(1.0); + } + if(backgroundOpacity < 0.0) { + backgroundOpacity = backgroundColor.r >= 0.0 ? 1.0 : 0.0; + } + + if(backgroundOpacity < 0.0) { + backgroundOpacity = 0.0; + } + + float outOpacity = ${n?"clipOpacity * ":""} outer * mix(borderOpacity, ${e==null?"":`${e} *`} backgroundOpacity, transition); + + if(outOpacity < 0.01) { + discard; + }`}function e5(n,e){xD(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",` #include + ${BD(e,"diffuseColor.a")} + diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); + diffuseColor.a = outOpacity; + `),n.fragmentShader=n.fragmentShader.replace("#include ",` #include + vec3 b = normalize(vBitangent); + vec3 t = normalize(vTangent); + mat4 directions = mat4(vec4(b, 1.0), vec4(t, 1.0), vec4(-b, 1.0), vec4(-t, 1.0)); + float currentBorderSize = distance.x - distance.y; + float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; + vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; + normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); + `)}class t5 extends en{constructor(t,i,r){const s=pD();super(s);be(this,"count",0);be(this,"isInstancedMesh",!0);be(this,"instanceColor",null);be(this,"morphTexture",null);be(this,"boundingBox",new ri);be(this,"boundingSphere",new $n);this.instanceMatrix=t,this.frustumCulled=!1,s.attributes.aData=i,s.attributes.aClipping=r,this.customDepthMaterial=ZH,this.customDistanceMaterial=$H}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class n5 extends Vr{constructor(t,i,r,s,o,a){super();be(this,"mesh");be(this,"instanceMatrix");be(this,"instanceData");be(this,"instanceClipping");be(this,"buckets",[]);be(this,"elementCount",0);be(this,"bufferElementSize",0);be(this,"timeToNextUpdate");be(this,"activateElement",(t,i,r)=>{const s=i.offset+r;this.instanceData.set(ED,16*s),this.instanceData.addUpdateRange(16*s,16),this.instanceData.needsUpdate=!0,t.activate(i,r)});be(this,"setElementIndex",(t,i)=>{t.setIndexInBucket(i)});be(this,"bufferCopyWithin",(t,i,r)=>{my(this.instanceMatrix,t,i,r),my(this.instanceData,t,i,r),my(this.instanceClipping,t,i,r)});be(this,"clearBufferAt",t=>{const i=t*16;this.instanceMatrix.array.fill(0,i,i+16),this.instanceMatrix.addUpdateRange(i,16),this.instanceMatrix.needsUpdate=!0});this.material=t,this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.meshReceiveShadow=o,this.meshCastShadow=a}updateCount(){const t=this.buckets[this.buckets.length-1],i=t.offset+t.elements.length;this.mesh!=null&&(this.mesh.count=i),this.visible=i>0}insert(t,i){if(this.elementCount+=1,!WH(this.buckets,t,i,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(t,i,r){if(this.elementCount-=1,!YH(this.buckets,t,r,i,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(t){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=t,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(t){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,t)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),XH(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const t=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),VH(this.buckets,t,this.bufferElementSize);const i=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&i.set(this.instanceMatrix.array.subarray(0,i.length)),this.instanceMatrix=new Br(i,16,!1),this.instanceMatrix.setUsage(ya);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new Br(r,16,!1),this.instanceData.setUsage(ya);const s=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&s.set(this.instanceClipping.array.subarray(0,s.length)),this.instanceClipping=new Br(s,16,!1),this.instanceClipping.setUsage(ya),this.mesh=new t5(this.instanceMatrix,this.instanceData,this.instanceClipping),ac(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function my(n,e,t,i){const r=n.itemSize,s=t*r,o=i*r,a=e*r;n.array.copyWithin(a,s,o);const l=o-s;n.addUpdateRange(s,l),n.addUpdateRange(a,l),n.needsUpdate=!0}const vw={backgroundColor:(n,e,t)=>QC(n.instanceData,e,t??mD,4),borderBottomLeftRadius:(n,e,t,{value:i})=>wp(n.instanceData,e,7,0,t,i[1]),borderBottomRightRadius:(n,e,t,{value:i})=>wp(n.instanceData,e,7,1,t,i[1]),borderTopRightRadius:(n,e,t,{value:i})=>wp(n.instanceData,e,7,2,t,i[1]),borderTopLeftRadius:(n,e,t,{value:i})=>wp(n.instanceData,e,7,3,t,i[1]),borderColor:(n,e,t)=>QC(n.instanceData,e,t??16777215,8),borderBend:(n,e,t)=>Ey(n.instanceData,e,11,t??0),borderOpacity:(n,e,t)=>Ey(n.instanceData,e,12,t??1),backgroundOpacity:(n,e,t)=>Ey(n.instanceData,e,15,t??-1)},i5=["borderOpacity","backgroundColor","backgroundOpacity"],_p=new ut,r5=new ut;class Tx{constructor(e,t,i,r,s,o,a,l){be(this,"indexInBucket");be(this,"bucket");be(this,"unsubscribeList",[]);be(this,"unsubscribeVisible");be(this,"destroyed",!1);be(this,"insertedIntoGroup",!1);be(this,"active",zt(!1));be(this,"getProperty",zt(void 0));this.group=e,this.matrix=t,this.size=i,this.offset=r,this.borderInset=s,this.clippingRect=o,this.minorIndex=l,this.unsubscribeVisible=Zt(()=>{const A=this.getProperty.value;if(A!=null&&gD(s,i,a,A("borderOpacity"),A("backgroundOpacity"),A("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return i5.includes(e)}hasImmediateProperty(e){return e in vw}setProperty(e,t){const i=this.getIndexInBuffer();i!=null&&vw[e](this.group,i,t,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,t){this.bucket=e,this.indexInBucket=t,this.active.value=!0,this.unsubscribeList.push(Zt(()=>{const i=this.matrix.value;if(i==null)return;const{instanceMatrix:r,pixelSize:s}=this.group,o=this.getIndexInBuffer();if(o==null)return;const a=o*16,[l,A]=this.size.value;if(_p.makeScale(l*s,A*s,1),this.offset!=null){const[h,d]=this.offset.value;_p.premultiply(r5.makeTranslation(h*s,d*s,0))}_p.premultiply(i),_p.toArray(r.array,a),r.addUpdateRange(a,16),r.needsUpdate=!0}),Zt(()=>{const[i,r]=this.size.value,{instanceData:s}=this.group,{array:o}=s,a=this.getIndexInBuffer();if(a==null)return;const l=a*16+13;o[l]=i,o[l+1]=r,s.addUpdateRange(l,2),s.needsUpdate=!0}),Zt(()=>{const{instanceData:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16+0;i.array.set(this.borderInset.value,s),i.addUpdateRange(s,4),i.needsUpdate=!0}),Zt(()=>{var a;const{instanceClipping:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16,o=(a=this.clippingRect)==null?void 0:a.value;o!=null?o.toArray(i.array,s):i.array.set(Hg,s),i.addUpdateRange(s,16),i.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let t=0;te.hasImmediateProperty.bind(e),[e]),a=V.useCallback(l=>{if(!i.current){r.current=l;return}Cw(l,r.current,s.current,e),r.current=l},[e]);yi(()=>{if(i.current=e.active.value,!i.current){Iw(s.current),s.current={};return}return Cw(r.current,s5,s.current,e),()=>{Iw(s.current),s.current={}}},[e]),jT(n,o,a,t)}function Cw(n,e,t,i){var r,s;for(const o in n){const a=n[o];if(o in e){const l=e[o];if(delete e[o],KT(a,l))continue;(r=t[o])==null||r.call(t)}t[o]=Zt(()=>{const l=BC(a);i.setProperty(o,l)})}for(const o in e)(s=t[o])==null||s.call(t),delete t[o],BC(e[o])!==void 0&&i.setProperty(o,void 0)}function Iw(n){for(const e in n)n[e]()}function Lo({handlers:n,hoverHandlers:e,activeHandlers:t,inputHandlers:i,matrix:r,children:s,groupRef:o}){return V.useEffect(()=>{const a=o.current;if(a!=null)return Zt(()=>r.value!=null&&a.matrix.copy(r.value))},[o,r]),b.jsx("group",{ref:o,onPointerOut:la(n.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:la(n.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:la(n.onPointerUp,la(t==null?void 0:t.onPointerUp,i==null?void 0:i.onPointerUp)),onPointerDown:la(n.onPointerDown,la(t==null?void 0:t.onPointerDown,i==null?void 0:i.onPointerDown)),onPointerLeave:la(n.onPointerLeave,t==null?void 0:t.onPointerLeave),onPointerMove:la(n.onPointerMove,i==null?void 0:i.onPointerMove),onWheel:n.onWheel,onClick:n.onClick,onContextMenu:n.onContextMenu,onDoubleClick:n.onDoubleClick,onPointerCancel:n.onPointerCancel,onPointerEnter:n.onPointerEnter,onPointerMissed:n.onPointerMissed,matrixAutoUpdate:!1,children:s})}function la(n,e){return n==null?e:e==null?n:t=>{e(t),!t.stopped&&n(t)}}function lc(n,e,t,i){const r=Vs(),s=V.useMemo(()=>{const o=new en(Rx);return o.matrixAutoUpdate=!1,o.raycast=Wu(o,dD(o),i,r,t),o.visible=!1,o},[r,t,i]);return yi(()=>{const[o,a]=n.value;s.scale.set(o*e.pixelSize,a*e.pixelSize,1),s.updateMatrix()},[n,e]),s}const SD=V.createContext(void 0);function Dx(){const n=V.useContext(SD);if(n==null)throw new Error("Can only be used inside a component.");return n}function o5(n,e,t,i,r,s,o){const{materials:a,setter:l}=V.useMemo(()=>{const A=new qH(e,t,i),h={data:A.data,type:"normal"},d=yD(r??cr,h),f=new CD(h),g=new vD(h);return d.clippingPlanes=s,f.clippingPlanes=s,g.clippingPlanes=s,{materials:[d,f,g],setter:A}},[e,t,i,r,s]);return $r(n,l,o),km(n,l,o),V.useEffect(()=>()=>l.destroy(),[l]),a}function Ws(n=cr,{castShadow:e=!1,receiveShadow:t=!1}){return V.useMemo(()=>({materialClass:n,castShadow:e,receiveShadow:t}),[n,e,t])}function Ka(n,e,t,i,r,s,o,a,l,A,h){const d=h??Dx(),f=V.useMemo(()=>new Tx(d(o.majorIndex,l),e,t,i,r,a,s,o.minorIndex),[d,e,t,r,a,s,o,i,l]);V.useEffect(()=>()=>f.destroy(),[f]),$r(n,f,A),km(n,f,A)}function a5(n,e,t){const i=V.useMemo(()=>new Map,[]),r=V.useCallback((s,{materialClass:o,receiveShadow:a,castShadow:l})=>{let A=i.get(o);A==null&&i.set(o,A=new Map);const h=(s<<2)+((a?1:0)<<1)+(l?1:0);let d=A.get(h);if(d==null){const f=yD(o,{type:"instanced"});A.set(h,d=new n5(f,n,e,{elementType:di.Panel,majorIndex:s,minorIndex:0},a,l)),t.add(d)}return d},[n,i,e,t]);return Zr((s,o)=>{for(const a of i.values())for(const l of a.values())l.onFrame(o)}),r}const l5=SD.Provider,NC=[],lg=[];function c5(n,e){NC.push(n),lg.push(e),document.body.style.cursor=e}function xw(n){const e=NC.indexOf(n);e!=-1&&(NC.splice(e,1),lg.splice(e,1),document.body.style.cursor=lg[lg.length-1]??"default")}function No(n,e,t){const i=V.useMemo(()=>zt([]),[]),r=V.useMemo(()=>ho(()=>i.value.length>0),[]);let s=!1;Vu(e,a=>{a.hover!=null&&(s=!0,r(n,a.hover))}),V.useEffect(()=>()=>xw(i),[]);const o=e.cursor??t;if(!s&&e.onHoverChange==null&&o==null){i.value.length=0;return}return{onPointerOver:a=>{i.value=[a.pointerId,...i.value],e.onHoverChange!=null&&i.value.length===1&&e.onHoverChange(!0),o!=null&&c5(i,o)},onPointerOut:a=>{i.value=i.value.filter(l=>l!=a.pointerId),e.onHoverChange!=null&&i.value.length===0&&e.onHoverChange(!1),xw(i)}}}function Gm(n){return(e,t,i,r)=>{if(i(e)){r(e,t);return}const s=n[e];if(s==null)return;const o=s.length;if(i(s[0]))for(let a=0;azt([0,0]),[])}function p5(n,e,t){return V.useMemo(()=>Yn(()=>{const i=t.value;if(i==null)return;const[r,s]=n.value,{pixelSize:o}=e;return new ut().makeTranslation(-r*o,s*o,0).premultiply(i)}),[n,e,t])}function g5({node:n,scrollPosition:e,children:t}){const i=V.useRef(null);return V.useEffect(()=>Zt(()=>{var a,l;const[r,s]=e.value,{pixelSize:o}=n;(a=i.current)==null||a.position.set(-r*o,s*o,0),(l=i.current)==null||l.updateMatrix()}),[n,e]),b.jsx("group",{ref:i,children:t})}function dd({listeners:n,node:e,scrollPosition:t,children:i}){const[r,s]=V.useState(()=>e.scrollable.value.some(d=>d));yi(()=>s(e.scrollable.value.some(d=>d)),[e]);const o=V.useRef(n.onScroll);o.current=n.onScroll;const a=V.useMemo(()=>new Map,[]),l=V.useMemo(()=>new Be,[]),A=V.useCallback((d,f,g,E,C)=>{var L,q;const[y,p]=d==null?[!1,!1]:m5(d.nativeEvent);y&&(f=0),p&&(g=0);const[v,I]=t.value,[B,R]=e.maxScrollPosition.value;let[M,T]=t.value;const[P,K]=((L=e.anyAncestorScrollable)==null?void 0:L.value)??[!1,!1];M=Bw(v,B,f,C&&!P),T=Bw(I,R,g,C&&!K),E!=null&&E>0&&l.set(f,g).divideScalar(E),d!=null&&E5(d.nativeEvent,y||Math.min(v,(B??0)-v)>5,p||Math.min(I,(R??0)-I)>5),!(((q=o.current)==null?void 0:q.call(o,M,T,t,d))===!1||v===M&&I===T)&&(t.value=[M,T])},[e,t,l]);Zr((d,f)=>{if(a.size>0)return;let g=0,E=0;const[C,y]=t.value,[p,v]=e.maxScrollPosition.value;g+=PC(C,0,p??0)*-.3,E+=PC(y,0,v??0)*-.3,g+=l.x*f,E+=l.y*f,l.multiplyScalar(.9),Math.abs(l.x)<.01&&(l.x=0),Math.abs(l.y)<.01&&(l.y=0),!(g===0&&E===0)&&A(void 0,g,E,void 0,!0)});const h=V.useRef(null);return r?b.jsx("group",{ref:h,matrixAutoUpdate:!1,onPointerDown:d=>{let f=a.get(d.pointerId);f==null&&a.set(d.pointerId,f={timestamp:0,point:new G}),f.timestamp=performance.now()/1e3,h.current.worldToLocal(f.point.copy(d.point))},onPointerUp:d=>{a.delete(d.pointerId)},onPointerLeave:d=>{a.delete(d.pointerId)},onPointerCancel:d=>{a.delete(d.pointerId)},onContextMenu:d=>d.nativeEvent.preventDefault(),onPointerMove:d=>{const f=a.get(d.pointerId);if(f==null)return;h.current.worldToLocal(vy.copy(d.point)),yy.copy(vy).sub(f.point).divideScalar(e.pixelSize);const g=performance.now()/1e3,E=g-f.timestamp;f.point.copy(vy),f.timestamp=g,!d.defaultPrevented&&A(d,-yy.x,yy.y,E,!0)},onWheel:d=>{d.defaultPrevented||A(d,d.deltaX,d.deltaY,void 0,!1)},children:i}):b.jsx("group",{matrixAutoUpdate:!1,children:i})}const wD=Symbol("was-scrolled");function m5(n){return n[wD]??[!1,!1]}function E5(n,e,t){n[wD]=[e,t]}function Bw(n,e,t,i){if(t===0)return n;const r=PC(n,0,e??0);Sw(t)===Sw(r)&&(t*=Math.max(0,1-Math.abs(r)/100));let s=n+t;return i&&e!=null?s:Om(s,0,e??0)}function Sw(n){return n>=0}function PC(n,e,t){return nt?n-t:0}const _w=9;function MD(n){return n[_w].toLowerCase()+n.slice(_w+1)}const y5=(n,e,t,i)=>{if(n.startsWith("scrollbarBorder")){if(n=MD(n),t(n)){i(n,e);return}u5(n,e,t,i)}},v5=(n,e,t,i)=>{if(n.startsWith("scrollbar")){if(n==="scrollbarOpacity"){i("backgroundOpacity",e);return}if(n==="scrollbarColor"){i("backgroundColor",e);return}if(n=MD(n),t(n)){i(n,e);return}Uo(n,e,t,i)}};function fd(n,e,t,i,r,s,o,a,l){const A=Ws(s,{castShadow:!1,receiveShadow:!1}),h=Pi(di.Panel,void 0,A,a),d=ms(n,C5),f=ms(n,I5,y5),g=V.useMemo(()=>Yn(()=>{const y=f.value;return[(y==null?void 0:y("scrollbarBorderTop"))??0,(y==null?void 0:y("scrollbarBorderRight"))??0,(y==null?void 0:y("scrollbarBorderBottom"))??0,(y==null?void 0:y("scrollbarBorderLeft"))??0]}),[f]),E=n.length;ww(n,0,e,t,i,r,s,o,h,l,d,g),ww(n,1,e,t,i,r,s,o,h,l,d,g);const C=n.length;for(let y=E;y{const C=Yn(()=>{const y=h.value;if(y!=null)return x5(e,y("scrollbarWidth")??10,i.size.value,i.maxScrollPosition.value,i.borderInset.value,t.value)});return[Yn(()=>{var y;return((y=C.value)==null?void 0:y.slice(0,2))??[0,0]}),Yn(()=>{var y;return((y=C.value)==null?void 0:y.slice(2,4))??[0,0]})]},[e,i,t,h]),E=V.useMemo(()=>({materialClass:o??cr,receiveShadow:!1,castShadow:!1}),[o]);Ka(n,r,g,f,d,s,l,a,E,v5,A)}function x5(n,e,t,i,r,s){const o=[0,0,0,0],a=i[n];if(a==null)return o;const l=1-n,A=t[n]-r[l]-r[l+2],h=Math.max(e,A*A/(a+A)),d=A-h,f=s[n];return o[n]=t[n]*.5-h*.5-r[(n+3)%4]-d*Om(f/a,0,1),o[l]=t[l]*.5-e*.5-r[l+1],n===0&&(o[0]*=-1,o[1]*=-1),o[n+2]=h,o[l+2]=e,o}function qa(n,e,t,i){V.useImperativeHandle(n,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:t instanceof en?t:t.current,scrollPosition:i}),[t,e,i])}function Fo({onSizeChange:n},e){const t=V.useMemo(()=>{if(n==null)return;let i=!0;return Zt(()=>{const r=e.value;if(i){i=!1;return}n(...r)})},[n,e]);V.useEffect(()=>t,[t])}function Za({onIsInViewportChange:n},e){const t=V.useMemo(()=>{if(n==null)return;let i=!0;return Zt(()=>{const r=!e.value;if(i){i=!1;return}n(r)})},[e,n]);V.useEffect(()=>t,[t])}function $a(n){const e=V.useContext(QD);if(e==null)throw new Error("Can only be used inside a uikit component.");return V.useMemo(()=>Yn(()=>{const t=n.value,i=e.value;if(!(t==null||i==null))return i.clone().multiply(t)}),[n,e])}const QD=V.createContext(void 0),B5=QD.Provider;function pd({globalMatrix:n,node:e,scrollPosition:t,children:i,orderInfo:r}){const s=Vs(),o=rH(n,e.size,e.borderInset,e.overflow,e,s),a=p5(t,e,n);return b.jsx(g5,{node:e,scrollPosition:t,children:b.jsx(B5,{value:a,children:b.jsx(Qx,{value:e,children:b.jsx(nH,{value:o,children:b.jsx(gH,{value:r,children:i})})})})})}const RD="transformTranslateX",TD="transformTranslateY",DD="transformTranslateZ",bD="transformRotateX",LD="transformRotateY",ND="transformRotateZ",PD="transformScaleX",UD="transformScaleY",FD="transformScaleZ",S5=[RD,TD,DD,bD,LD,ND,PD,UD,FD],_5=new G,w5=new G,Mp=new G,Cy=new ut,M5=new ku,Q5=new Wn,Iy=Math.PI/180;function R5([n,e,t]){return Q5.setFromEuler(M5.set(n*Iy,e*Iy,t*Iy))}function ko(n,e){const t=ms(n,S5,f5);return V.useMemo(()=>Yn(()=>{const i=t.value;if(i==null)return;const{pixelSize:r,relativeCenter:s}=e,[o,a]=s.value,l=new ut().makeTranslation(o*r,a*r,0),A=i("transformOriginX")??"center",h=i("transformOriginY")??"center";let d=!0;if(A!="center"||h!="center"){const[C,y]=e.size.value;d=!1,Mp.set(-$T[A]*C*r,-eD[h]*y*r,0),l.multiply(Cy.makeTranslation(Mp)),Mp.negate()}const f=[i(bD)??0,i(LD)??0,i(ND)??0],g=[i(RD)??0,-(i(TD)??0),i(DD)??0],E=[i(PD)??1,i(UD)??1,i(FD)??1];return(g.some(C=>C!=0)||f.some(C=>C!=0)||E.some(C=>C!=1))&&l.multiply(Cy.compose(_5.fromArray(g).multiplyScalar(r),R5(f),w5.fromArray(E))),d||l.multiply(Cy.makeTranslation(Mp)),l}),[t,e])}function Oo(n,e){const t=V.useMemo(()=>zt([]),[]),i=V.useMemo(()=>ho(()=>t.value.length>0),[]);let r=!1;if(Vu(e,o=>{o.active!=null&&(r=!0,i(n,o.active))}),!r&&e.onActiveChange==null){t.value.length=0;return}const s=o=>{t.value=t.value.filter(a=>a!=o.pointerId),!(e.onActiveChange==null||t.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{t.value=[o.pointerId,...t.value],!(e.onActiveChange==null||t.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:s,onPointerLeave:s}}V.forwardRef((n,e)=>{const t=Qo(),i=V.useRef(null),r=ja(i);$r(t,r,Po);const s=ko(t,r),o=$a(s),a=Vs(),l=Ja(a,o,r.size,r);Fo(n,r.size),Za(n,l);const A=Ws(n.panelMaterialClass,n),h=Pi(di.Panel,n.zIndexOffset,A);Ka(t,o,r.size,void 0,r.borderInset,l,h,a,A,Uo);const d=V.useRef(null),f=Xa(),g=Pi(di.Object,void 0,void 0,h),E=b5(t,d,f,r.cameraDistance,a,g);To(t,n),Do(t,n),bo(t,n);const C=No(t,n),y=Oo(t,n),p=V.useMemo(()=>Yn(()=>{const[B,R]=E.value;return B/R}),[E]);(n.keepAspectRatio??!0)&&fs(t,"aspectRatio",p),Ro(t);const v=V.useRef(null);V.useEffect(()=>Zt(()=>{const[B,R]=r.size.value,[M,T,P,K]=r.paddingInset.value,[w,L,q,fe]=r.borderInset.value,J=M+w,re=T+L,ne=P+q,ue=K+fe,F=B-ue-re,ee=R-J-ne,{pixelSize:te}=r,{current:Ae}=v;Ae==null||Ae.position.set((ue-re)*.5*te,(ne-J)*.5*te,0);const[,ve,Oe]=E.value;Ae==null||Ae.scale.set(F*te,ee*te,n.keepAspectRatio?ee*te*Oe/ve:Oe),Ae==null||Ae.updateMatrix()}),[r,n.keepAspectRatio,E]);const I=lc(r.size,r,h,f);return qa(e,r,I),b.jsxs(Lo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:C,activeHandlers:y,children:[b.jsx("primitive",{object:I}),b.jsx("group",{matrixAutoUpdate:!1,ref:v,children:b.jsx("group",{ref:d,matrixAutoUpdate:!1,children:b.jsx(Qx,{value:void 0,children:n.children})})})]})});const xy=new ri,T5=new G().setScalar(.001),D5=["depthAlign"];function b5(n,e,t,i,r,s){const o=V.useMemo(()=>zt(new G(1,1,1)),[]),a=Ad(r,t),l=ms(n,D5);return V.useEffect(()=>{const A=e.current;if(A==null)return;A.traverse(g=>{g instanceof en&&(ac(g,i,s),g.material.clippingPlanes=a,g.material.needsUpdate=!0,g.raycast=Wu(g,g.raycast,t,r,s))});const h=A.parent;h==null||h.remove(A),xy.setFromObject(A);const d=new G,f=new G;return xy.getSize(d).max(T5),o.value=d,A.scale.set(1,1,1).divide(d),h!=null&&h.add(A),xy.getCenter(f),Zt(()=>{const g=l.value;g!=null&&(A.position.copy(f).negate(),A.position.z-=Xz[g("depthAlign")??"back"]*d.z,A.position.divide(d),A.updateMatrix())})},[l,i,a,t]),o}const Et=V.forwardRef((n,e)=>{const t=Qo(),i=V.useRef(null),r=ja(i);$r(t,r,Po);const s=ko(t,r),o=Vs(),a=$a(s),l=Ja(o,a,r.size,r),A=Ws(n.panelMaterialClass,n),h=Pi(di.Panel,n.zIndexOffset,A);Ka(t,a,r.size,void 0,r.borderInset,l,h,o,A,Uo);const d=hd();fd(t,d,r,a,l,n.scrollbarPanelMaterialClass,o,h),To(t,n),Do(t,n),bo(t,n);const f=No(t,n),g=Oo(t,n);Ro(t),Fo(n,r.size),Za(n,l);const E=Xa(),C=lc(r.size,r,h,E);return qa(e,r,C,d),b.jsxs(Lo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:f,activeHandlers:g,children:[b.jsx(dd,{listeners:n,node:r,scrollPosition:d,children:b.jsx("primitive",{object:C})}),b.jsx(pd,{globalMatrix:a,node:r,orderInfo:h,scrollPosition:d,children:n.children})]})});V.forwardRef((n,e)=>{const t=Qo(),i=V.useRef(null),r=ja(i);$r(t,r,Po);const s=ko(t,r),o=Vs(),a=Xa(),l=Ad(o,a),A=Pi(di.Custom,n.zIndexOffset,void 0),h=V.useRef(null),d=$a(s),f=Ja(o,d,r.size,r);V.useEffect(()=>{const C=h.current;if(C==null)return;C.raycast=Wu(C,C.raycast,a,o,A),ac(C,r.cameraDistance,A),C.material instanceof fi&&(C.material.clippingPlanes=l,C.material.needsUpdate=!0,C.material.shadowSide=Kr);const y=Zt(()=>{const[v,I]=r.size.value;C.scale.set(v*r.pixelSize,I*r.pixelSize,1),C.updateMatrix()}),p=Zt(()=>void(C.visible=!f.value));return()=>{y(),p()}},[l,r,f,o,A,a]),To(t,n),Do(t,n),bo(t,n);const g=No(t,n),E=Oo(t,n);return Ro(t),Fo(n,r.size),Za(n,f),qa(e,r,h),b.jsx(Lo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:g,activeHandlers:E,children:b.jsx("mesh",{receiveShadow:n.receiveShadow,castShadow:n.castShadow,customDepthMaterial:n.customDepthMaterial,customDistanceMaterial:n.customDistanceMaterial,ref:h,matrixAutoUpdate:!1,geometry:Rx,children:b.jsx(Qx,{value:void 0,children:n.children})})})});const L5="fill",N5=(n,e,t,i)=>{if(n==="opacity"){i("backgroundOpacity",e);return}Uo(n,e,t,i)},P5=V.forwardRef((n,e)=>{const t=Qo(),i=tD(O5,n.src),r=V.useMemo(()=>Yn(()=>{const I=i.value;if(I==null)return;const B=I.source.data;return B.width/B.height}),[i]),s=V.useRef(null),o=ja(s);$r(t,o,Po),F5(t,i,o.borderInset,o.size);const a=ko(t,o),l=Vs(),A=Xa(),h=Ad(l,A),d=$a(a),f=Ja(l,d,o.size,o),g=o5(t,o.size,o.borderInset,f,n.materialClass,h,N5),E=Pi(di.Image,n.zIndexOffset,void 0),C=V.useMemo(()=>{const[I,B,R]=g,M=new en(Rx,I);return M.matrixAutoUpdate=!1,M.castShadow=n.castShadow??!1,M.receiveShadow=n.receiveShadow??!1,M.customDepthMaterial=B,M.customDistanceMaterial=R,M.raycast=Wu(M,dD(M),A,l,E),ac(M,o.cameraDistance,E),M},[o,g,A,l,E,n.receiveShadow,n.castShadow]),y=hd();fd(t,y,o,d,f,n.scrollbarPanelMaterialClass,l,E),To(t,n),Do(t,n),bo(t,n);const p=No(t,n),v=Oo(t,n);return fs(t,"backgroundColor",16777215),(n.keepAspectRatio??!0)&&fs(t,"aspectRatio",r),Ro(t),Fo(n,o.size),Za(n,f),yi(()=>{const I=i.value??null;C.material.map!==I&&(C.material.map=I,C.material.needsUpdate=!0)},[C,i]),yi(()=>{const[I,B]=o.size.value;C.scale.set(I*o.pixelSize,B*o.pixelSize,1),C.updateMatrix()},[C]),yi(()=>void(C.visible=!f.value),[C,f]),qa(e,o,C,y),b.jsxs(Lo,{groupRef:s,hoverHandlers:p,handlers:n,matrix:a,activeHandlers:v,children:[b.jsx(dd,{listeners:n,node:o,scrollPosition:y,children:b.jsx("primitive",{object:C})}),b.jsx(pd,{globalMatrix:d,node:o,orderInfo:E,scrollPosition:y,children:n.children})]})}),U5=["fit"];function F5(n,e,t,i){const r=ms(n,U5);yi(()=>{const s=r.value,o=e.value;if(o==null||s==null)return;const a=s("fit")??L5;if(o.matrix.identity(),a==="fill"||o==null){Mw(t,i,o);return}const{width:l,height:A}=o.source.data,h=l/A,[d,f]=i.value,[g,E,C,y]=t.value,p=(d-y-E)/(f-g-C);h>p?o.matrix.translate(-(.5*(p-h))/p,0).scale(p/h,1):o.matrix.translate(0,-(.5*(h-p))/h).scale(1,h/p),Mw(t,i,o)},[e,t,i])}function Mw(n,e,t){const[i,r]=e.value,[s,o,a,l]=n.value,A=i-l-o,h=r-s-a;t.matrix.translate(-1+(l+A)/i,-1+(s+h)/r).scale(i/A,r/h)}const k5=new gx;async function O5(n){if(n==null)return Promise.resolve(void 0);if(n instanceof Mn)return Promise.resolve(n);try{const e=await k5.loadAsync(n);return e.colorSpace=Hn,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function oo(n,e,t){if(e==null)return t;const i=n[e];if(i==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(n).join(", ")}`);return i}function vn(n,e,t){return typeof n=="number"?Math.round(n/e):n??t}const G5={static:0,relative:1,absolute:2},By={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},z5={column:0,"column-reverse":1,row:2,"row-reverse":3},H5={"no-wrap":0,wrap:1,"wrap-reverse":2},V5={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},W5={visible:0,hidden:1,scroll:2},Y5={flex:0,none:1},Qw={positionType:(n,e,t)=>n.setPositionType(oo(G5,t,0)),positionTop:(n,e,t)=>n.setPosition(1,vn(t,e,NaN)),positionLeft:(n,e,t)=>n.setPosition(0,vn(t,e,NaN)),positionRight:(n,e,t)=>n.setPosition(2,vn(t,e,NaN)),positionBottom:(n,e,t)=>n.setPosition(3,vn(t,e,NaN)),alignContent:(n,e,t)=>n.setAlignContent(oo(By,t,1)),alignItems:(n,e,t)=>n.setAlignItems(oo(By,t,4)),alignSelf:(n,e,t)=>n.setAlignSelf(oo(By,t,0)),flexDirection:(n,e,t)=>n.setFlexDirection(oo(z5,t,0)),flexWrap:(n,e,t)=>n.setFlexWrap(oo(H5,t,0)),justifyContent:(n,e,t)=>n.setJustifyContent(oo(V5,t,0)),marginTop:(n,e,t)=>n.setMargin(1,vn(t,e,NaN)),marginLeft:(n,e,t)=>n.setMargin(0,vn(t,e,NaN)),marginRight:(n,e,t)=>n.setMargin(2,vn(t,e,NaN)),marginBottom:(n,e,t)=>n.setMargin(3,vn(t,e,NaN)),flexBasis:(n,e,t)=>n.setFlexBasis(vn(t,e,NaN)),flexGrow:(n,e,t)=>n.setFlexGrow(t??0),flexShrink:(n,e,t)=>n.setFlexShrink(t??0),width:(n,e,t)=>n.setWidth(vn(t,e,NaN)),height:(n,e,t)=>n.setHeight(vn(t,e,NaN)),minWidth:(n,e,t)=>n.setMinWidth(vn(t,e,NaN)),minHeight:(n,e,t)=>n.setMinHeight(vn(t,e,NaN)),maxWidth:(n,e,t)=>n.setMaxWidth(vn(t,e,NaN)),maxHeight:(n,e,t)=>n.setMaxHeight(vn(t,e,NaN)),aspectRatio:(n,e,t)=>n.setAspectRatio(t??NaN),borderTop:(n,e,t)=>n.setBorder(1,vn(t,e,NaN)),borderLeft:(n,e,t)=>n.setBorder(0,vn(t,e,NaN)),borderRight:(n,e,t)=>n.setBorder(2,vn(t,e,NaN)),borderBottom:(n,e,t)=>n.setBorder(3,vn(t,e,NaN)),overflow:(n,e,t)=>n.setOverflow(oo(W5,t,0)),display:(n,e,t)=>n.setDisplay(oo(Y5,t,0)),paddingTop:(n,e,t)=>n.setPadding(1,vn(t,e,NaN)),paddingLeft:(n,e,t)=>n.setPadding(0,vn(t,e,NaN)),paddingRight:(n,e,t)=>n.setPadding(2,vn(t,e,NaN)),paddingBottom:(n,e,t)=>n.setPadding(3,vn(t,e,NaN)),gapRow:(n,e,t)=>n.setGap(1,vn(t,e,NaN)),gapColumn:(n,e,t)=>n.setGap(0,vn(t,e,NaN))};function X5(n,e){return n.L===e.L}function J5(n,e,t){if(t==null){n.setMeasureFunc(null);return}n.setMeasureFunc((i,r,s,o)=>{const a=t(i*e,r,s*e,o);return{width:Math.ceil(Math.ceil(a.width)/e),height:Math.ceil(Math.ceil(a.height)/e)}}),n.markDirty()}class bx{constructor(e,t,i,r,s,o,a){be(this,"size",zt([0,0]));be(this,"relativeCenter",zt([0,0]));be(this,"borderInset",zt([0,0,0,0]));be(this,"paddingInset",zt([0,0,0,0]));be(this,"overflow",zt(Hi.Overflow.Visible));be(this,"maxScrollPosition",zt([void 0,void 0]));be(this,"scrollable",zt([!1,!1]));be(this,"children",[]);be(this,"yogaNode");be(this,"unsubscribeYoga");be(this,"layoutChangeListeners",new Set);be(this,"requestCalculateLayout");be(this,"active",zt(!1));this.groupRef=e,this.cameraDistance=t,this.yoga=i,this.precision=r,this.pixelSize=s,this.anyAncestorScrollable=a,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=Zt(()=>{var l;i.value!=null&&((l=this.unsubscribeYoga)==null||l.call(this),this.unsubscribeYoga=void 0,this.yogaNode=i.value.Node.create(),this.active.value=!0)})}setProperty(e,t){e==="measureFunc"?J5(this.yogaNode,this.precision,t):Qw[e](this.yogaNode,this.precision,t),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in Qw}destroy(){var e,t;(e=this.unsubscribeYoga)==null||e.call(this),(t=this.yogaNode)==null||t.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),HT(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new bx(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,Yn(()=>{var a;const[i,r]=((a=this.anyAncestorScrollable)==null?void 0:a.value)??[!1,!1],[s,o]=this.scrollable.value;return[i||s,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((a,l)=>{var g,E;if(e??(e=(E=(g=a.groupRef.current)==null?void 0:g.parent)==null?void 0:E.children),e==null)return 0;const A=a.groupRef.current,h=l.groupRef.current;if(A==null||h==null)return 0;const d=e.indexOf(A);if(d===-1)throw new Error("parent mismatch");const f=e.indexOf(h);if(f===-1)throw new Error("parent mismatch");return d-f});let t=0,i=this.yogaNode.getChild(t),r=this.children[t];for(;r!=null||i!=null;){if(r!=null&&i!=null&&X5(i,Tw(r.yogaNode))){r=this.children[++t],i=this.yogaNode.getChild(t);continue}if(i!=null&&this.yogaNode.removeChild(i),r!=null){const a=Tw(r.yogaNode);(o=a.getParent())==null||o.removeChild(a),this.yogaNode.insertChild(a,t),r=this.children[++t]}i=this.yogaNode.getChild(t)}const s=this.children.length;for(let a=0;a0,P>0)}else Wc(this.maxScrollPosition,void 0,void 0),Wc(this.scrollable,!1,!1);const B=this.overflow.value===Hi.Overflow.Visible;return[s+Math.max(i,B?v:0),o+Math.max(r,B?I:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function Wc(n,e,t){const[i,r]=n.value;i===e&&r===t||(n.value=[e,t])}function Rw(n,e,t,i,r){const[s,o,a,l]=n.value;s==e&&o==t&&a==i&&l==r||(n.value=[e,t,i,r])}function Tw(n){if(n==null)throw new Error("commit cannot be called with a children that miss a yoga node");return n}const j5=.1,kD=.002,Qp=new on,Dw=new G,K5=V.forwardRef((n,e)=>{const t=Qo(),i=Pm(P=>P.gl);V.useEffect(()=>fH(i),[i]);const{sizeX:r,sizeY:s}=n,[o,a]=V.useMemo(()=>[n.precision??j5,n.pixelSize??kD],[]),l=Jz(),A=V.useMemo(()=>({current:0}),[]),h=V.useRef(null),d=zH(),f=V.useMemo(()=>new bx(h,A,l,o,a,d,void 0),[d,h,l]);$r(t,f,Po),V.useEffect(()=>()=>f.destroy(),[f]);const g=ko(t,f),E=V.useMemo(()=>{const P=new Vr;return P.matrixAutoUpdate=!1,P},[]),C=a5(a,f.cameraDistance,E),y=MH(a,f.cameraDistance,E),p=Ws(n.panelMaterialClass,n),v=Pi(di.Panel,void 0,p),I=Z5(g,f.size,a,n),B=hd();fd(t,B,f,I,void 0,n.scrollbarPanelMaterialClass,void 0,v,C),Ka(t,I,f.size,void 0,f.borderInset,void 0,v,void 0,p,Uo,C),To(t,n),Do(t,n),bo(t,n,f.size);const R=No(t,n),M=Oo(t,n);fs(t,"width",bw(r,a)),fs(t,"height",bw(s,a)),Ro(t),Fo(n,f.size);const T=lc(f.size,f,v,h);return qa(e,f,T,B),Zr(({camera:P})=>{Qp.normal.set(0,0,1),Qp.constant=0,Qp.applyMatrix4(T.matrixWorld),Dw.setFromMatrixPosition(P.matrixWorld),A.current=Qp.distanceToPoint(Dw)}),b.jsxs(b.Fragment,{children:[b.jsx("primitive",{object:E}),b.jsx(Lo,{groupRef:h,matrix:I,handlers:n,hoverHandlers:R,activeHandlers:M,children:b.jsx(jz,{value:h,children:b.jsx(wH,{value:y,children:b.jsxs(l5,{value:C,children:[b.jsx(dd,{node:f,scrollPosition:B,listeners:n,children:b.jsx("primitive",{object:T})}),b.jsx(OH,{value:f.size,children:b.jsx(pd,{globalMatrix:I,node:f,orderInfo:v,scrollPosition:B,children:n.children})})]})})})})]})});function bw(n,e){return V.useMemo(()=>n===void 0?void 0:n instanceof kn?Yn(()=>{const t=n.value;if(t!=null)return t/e}):n/e,[n,e])}const q5=new ut;function Z5(n,e,t,{anchorX:i="center",anchorY:r="center"}){return V.useMemo(()=>Yn(()=>{var a;const[s,o]=e.value;return(a=n.value)==null?void 0:a.clone().premultiply(q5.makeTranslation($T[i]*s*t,eD[r]*o*t,0))}),[n,e,i,r,t])}const $5=Hn;class Yu extends Zi{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,i,r){const s=this,o=new zs(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(a){try{t(s.parse(a))}catch(l){r?r(l):console.error(l),s.manager.itemError(e)}},i,r)}parse(e){const t=this;function i(Y,z){if(Y.nodeType!==1)return;const O=B(Y);let k=!1,me=null;switch(Y.nodeName){case"svg":z=E(Y,z);break;case"style":s(Y);break;case"g":z=E(Y,z);break;case"path":z=E(Y,z),Y.hasAttribute("d")&&(me=r(Y));break;case"rect":z=E(Y,z),me=l(Y);break;case"polygon":z=E(Y,z),me=A(Y);break;case"polyline":z=E(Y,z),me=h(Y);break;case"circle":z=E(Y,z),me=d(Y);break;case"ellipse":z=E(Y,z),me=f(Y);break;case"line":z=E(Y,z),me=g(Y);break;case"defs":k=!0;break;case"use":z=E(Y,z);const Se=(Y.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),H=Y.viewportElement.getElementById(Se);H?i(H,z):console.warn("SVGLoader: 'use node' references non-existent node id: "+Se);break}me&&(z.fill!==void 0&&z.fill!=="none"&&me.color.setStyle(z.fill,$5),M(me,Ae),q.push(me),me.userData={node:Y,style:z});const Ie=Y.childNodes;for(let oe=0;oe0?Ae.copy(J[J.length-1]):Ae.identity())}function r(Y){const z=new Aa,O=new Be,k=new Be,me=new Be;let Ie=!0,oe=!1;const Se=Y.getAttribute("d");if(Se===""||Se==="none")return null;const H=Se.match(/[a-df-z][^a-df-z]*/ig);for(let Ee=0,ie=H.length;Ee0&&(O.copy(me),z.currentPath.currentPoint.copy(O),Ie=!0);break;default:console.warn(le)}oe=!1}return z}function s(Y){if(!(!Y.sheet||!Y.sheet.cssRules||!Y.sheet.cssRules.length))for(let z=0;zme.trim());for(let me=0;meoe!==""));fe[k[me]]=Object.assign(fe[k[me]]||{},Ie)}}}function o(Y,z,O,k,me,Ie,oe,Se){if(z==0||O==0){Y.lineTo(Se.x,Se.y);return}k=k*Math.PI/180,z=Math.abs(z),O=Math.abs(O);const H=(oe.x-Se.x)/2,Ee=(oe.y-Se.y)/2,ie=Math.cos(k)*H+Math.sin(k)*Ee,le=-Math.sin(k)*H+Math.cos(k)*Ee;let de=z*z,Te=O*O;const $=ie*ie,_=le*le,D=$/de+_/Te;if(D>1){const Pe=Math.sqrt(D);z=Pe*z,O=Pe*O,de=z*z,Te=O*O}const se=de*_+Te*$,Le=(de*Te-se)/se;let De=Math.sqrt(Math.max(0,Le));me===Ie&&(De=-De);const Qe=De*z*le/O,Xe=-De*O*ie/z,Ve=Math.cos(k)*Qe-Math.sin(k)*Xe+(oe.x+Se.x)/2,Ke=Math.sin(k)*Qe+Math.cos(k)*Xe+(oe.y+Se.y)/2,lt=a(1,0,(ie-Qe)/z,(le-Xe)/O),It=a((ie-Qe)/z,(le-Xe)/O,(-ie-Qe)/z,(-le-Xe)/O)%(Math.PI*2);Y.currentPath.absellipse(Ve,Ke,z,O,lt,lt+It,Ie===0,k)}function a(Y,z,O,k){const me=Y*O+z*k,Ie=Math.sqrt(Y*Y+z*z)*Math.sqrt(O*O+k*k);let oe=Math.acos(Math.max(-1,Math.min(1,me/Ie)));return Y*k-z*O<0&&(oe=-oe),oe}function l(Y){const z=I(Y.getAttribute("x")||0),O=I(Y.getAttribute("y")||0),k=I(Y.getAttribute("rx")||Y.getAttribute("ry")||0),me=I(Y.getAttribute("ry")||Y.getAttribute("rx")||0),Ie=I(Y.getAttribute("width")),oe=I(Y.getAttribute("height")),Se=1-.551915024494,H=new Aa;return H.moveTo(z+k,O),H.lineTo(z+Ie-k,O),(k!==0||me!==0)&&H.bezierCurveTo(z+Ie-k*Se,O,z+Ie,O+me*Se,z+Ie,O+me),H.lineTo(z+Ie,O+oe-me),(k!==0||me!==0)&&H.bezierCurveTo(z+Ie,O+oe-me*Se,z+Ie-k*Se,O+oe,z+Ie-k,O+oe),H.lineTo(z+k,O+oe),(k!==0||me!==0)&&H.bezierCurveTo(z+k*Se,O+oe,z,O+oe-me*Se,z,O+oe-me),H.lineTo(z,O+me),(k!==0||me!==0)&&H.bezierCurveTo(z,O+me*Se,z+k*Se,O,z+k,O),H}function A(Y){function z(Ie,oe,Se){const H=I(oe),Ee=I(Se);me===0?k.moveTo(H,Ee):k.lineTo(H,Ee),me++}const O=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,k=new Aa;let me=0;return Y.getAttribute("points").replace(O,z),k.currentPath.autoClose=!0,k}function h(Y){function z(Ie,oe,Se){const H=I(oe),Ee=I(Se);me===0?k.moveTo(H,Ee):k.lineTo(H,Ee),me++}const O=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,k=new Aa;let me=0;return Y.getAttribute("points").replace(O,z),k.currentPath.autoClose=!1,k}function d(Y){const z=I(Y.getAttribute("cx")||0),O=I(Y.getAttribute("cy")||0),k=I(Y.getAttribute("r")||0),me=new Ta;me.absarc(z,O,k,0,Math.PI*2);const Ie=new Aa;return Ie.subPaths.push(me),Ie}function f(Y){const z=I(Y.getAttribute("cx")||0),O=I(Y.getAttribute("cy")||0),k=I(Y.getAttribute("rx")||0),me=I(Y.getAttribute("ry")||0),Ie=new Ta;Ie.absellipse(z,O,k,me,0,Math.PI*2);const oe=new Aa;return oe.subPaths.push(Ie),oe}function g(Y){const z=I(Y.getAttribute("x1")||0),O=I(Y.getAttribute("y1")||0),k=I(Y.getAttribute("x2")||0),me=I(Y.getAttribute("y2")||0),Ie=new Aa;return Ie.moveTo(z,O),Ie.lineTo(k,me),Ie.currentPath.autoClose=!1,Ie}function E(Y,z){z=Object.assign({},z);let O={};if(Y.hasAttribute("class")){const oe=Y.getAttribute("class").split(/\s/).filter(Boolean).map(Se=>Se.trim());for(let Se=0;Se0&&z.premultiply(J[J.length-1]),Ae.copy(z),J.push(z),z}function R(Y){const z=new Rt,O=re;if(Y.nodeName==="use"&&(Y.hasAttribute("x")||Y.hasAttribute("y"))){const k=I(Y.getAttribute("x")),me=I(Y.getAttribute("y"));z.translate(k,me)}if(Y.hasAttribute("transform")){const k=Y.getAttribute("transform").split(")");for(let me=k.length-1;me>=0;me--){const Ie=k[me].trim();if(Ie==="")continue;const oe=Ie.indexOf("("),Se=Ie.length;if(oe>0&&oe=1){const ie=Ee[0];let le=0;Ee.length>=2&&(le=Ee[1]),O.translate(ie,le)}break;case"rotate":if(Ee.length>=1){let ie=0,le=0,de=0;ie=Ee[0]*Math.PI/180,Ee.length>=3&&(le=Ee[1],de=Ee[2]),ne.makeTranslation(-le,-de),ue.makeRotation(ie),F.multiplyMatrices(ue,ne),ne.makeTranslation(le,de),O.multiplyMatrices(ne,F)}break;case"scale":if(Ee.length>=1){const ie=Ee[0];let le=ie;Ee.length>=2&&(le=Ee[1]),O.scale(ie,le)}break;case"skewX":Ee.length===1&&O.set(1,Math.tan(Ee[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":Ee.length===1&&O.set(1,0,0,Math.tan(Ee[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":Ee.length===6&&O.set(Ee[0],Ee[2],Ee[4],Ee[1],Ee[3],Ee[5],0,0,1);break}}z.premultiply(O)}}return z}function M(Y,z){function O(oe){te.set(oe.x,oe.y,1).applyMatrix3(z),oe.set(te.x,te.y)}function k(oe){const Se=oe.xRadius,H=oe.yRadius,Ee=Math.cos(oe.aRotation),ie=Math.sin(oe.aRotation),le=new G(Se*Ee,Se*ie,0),de=new G(-H*ie,H*Ee,0),Te=le.applyMatrix3(z),$=de.applyMatrix3(z),_=re.set(Te.x,$.x,0,Te.y,$.y,0,0,0,1),D=ne.copy(_).invert(),De=ue.copy(D).transpose().multiply(D).elements,Qe=L(De[0],De[1],De[4]),Xe=Math.sqrt(Qe.rt1),Ve=Math.sqrt(Qe.rt2);if(oe.xRadius=1/Xe,oe.yRadius=1/Ve,oe.aRotation=Math.atan2(Qe.sn,Qe.cs),!((oe.aEndAngle-oe.aStartAngle)%(2*Math.PI){const{x:pt,y:at}=new G(Math.cos(wt),Math.sin(wt),0).applyMatrix3(Pe);return Math.atan2(at,pt)};oe.aStartAngle=Pt(oe.aStartAngle),oe.aEndAngle=Pt(oe.aEndAngle),T(z)&&(oe.aClockwise=!oe.aClockwise)}}function me(oe){const Se=K(z),H=w(z);oe.xRadius*=Se,oe.yRadius*=H;const Ee=Se>Number.EPSILON?Math.atan2(z.elements[1],z.elements[0]):Math.atan2(-z.elements[3],z.elements[4]);oe.aRotation+=Ee,T(z)&&(oe.aStartAngle*=-1,oe.aEndAngle*=-1,oe.aClockwise=!oe.aClockwise)}const Ie=Y.subPaths;for(let oe=0,Se=Ie.length;oeNumber.EPSILON}function K(Y){const z=Y.elements;return Math.sqrt(z[0]*z[0]+z[1]*z[1])}function w(Y){const z=Y.elements;return Math.sqrt(z[3]*z[3]+z[4]*z[4])}function L(Y,z,O){let k,me,Ie,oe,Se;const H=Y+O,Ee=Y-O,ie=Math.sqrt(Ee*Ee+4*z*z);return H>0?(k=.5*(H+ie),Se=1/k,me=Y*Se*O-z*Se*z):H<0?me=.5*(H-ie):(k=.5*ie,me=-.5*ie),Ee>0?Ie=Ee+ie:Ie=Ee-ie,Math.abs(Ie)>2*Math.abs(z)?(Se=-2*z/Ie,oe=1/Math.sqrt(1+Se*Se),Ie=Se*oe):Math.abs(z)===0?(Ie=1,oe=0):(Se=-.5*Ie/z,Ie=1/Math.sqrt(1+Se*Se),oe=Se*Ie),Ee>0&&(Se=Ie,Ie=-oe,oe=Se),{rt1:k,rt2:me,cs:Ie,sn:oe}}const q=[],fe={},J=[],re=new Rt,ne=new Rt,ue=new Rt,F=new Rt,ee=new Be,te=new G,Ae=new Rt,ve=new DOMParser().parseFromString(e,"image/svg+xml");return i(ve.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:q,xml:ve.documentElement}}static createShapes(e){const i={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:i.ORIGIN,t:0};function s(C,y,p,v){const I=C.x,B=y.x,R=p.x,M=v.x,T=C.y,P=y.y,K=p.y,w=v.y,L=(M-R)*(T-K)-(w-K)*(I-R),q=(B-I)*(T-K)-(P-T)*(I-R),fe=(w-K)*(B-I)-(M-R)*(P-T),J=L/fe,re=q/fe;if(fe===0&&L!==0||J<=0||J>=1||re<0||re>1)return null;if(L===0&&fe===0){for(let ne=0;ne<2;ne++)if(o(ne===0?p:v,C,y),r.loc==i.ORIGIN){const ue=ne===0?p:v;return{x:ue.x,y:ue.y,t:r.t}}else if(r.loc==i.BETWEEN){const ue=+(I+r.t*(B-I)).toPrecision(10),F=+(T+r.t*(P-T)).toPrecision(10);return{x:ue,y:F,t:r.t}}return null}else{for(let F=0;F<2;F++)if(o(F===0?p:v,C,y),r.loc==i.ORIGIN){const ee=F===0?p:v;return{x:ee.x,y:ee.y,t:r.t}}const ne=+(I+J*(B-I)).toPrecision(10),ue=+(T+J*(P-T)).toPrecision(10);return{x:ne,y:ue,t:J}}}function o(C,y,p){const v=p.x-y.x,I=p.y-y.y,B=C.x-y.x,R=C.y-y.y,M=v*R-B*I;if(C.x===y.x&&C.y===y.y){r.loc=i.ORIGIN,r.t=0;return}if(C.x===p.x&&C.y===p.y){r.loc=i.DESTINATION,r.t=1;return}if(M<-Number.EPSILON){r.loc=i.LEFT;return}if(M>Number.EPSILON){r.loc=i.RIGHT;return}if(v*B<0||I*R<0){r.loc=i.BEHIND;return}if(Math.sqrt(v*v+I*I)w.t<=K.t+Number.EPSILON&&w.t>=K.t-Number.EPSILON)===void 0&&(p.push(K),v.push(new Be(K.x,K.y)))}}return v}function l(C,y,p){const v=new Be;y.getCenter(v);const I=[];return p.forEach(B=>{B.boundingBox.containsPoint(v)&&a(C,B.points).forEach(M=>{I.push({identifier:B.identifier,isCW:B.isCW,point:M})})}),I.sort((B,R)=>B.point.x-R.point.x),I}function A(C,y,p,v,I){(I==null||I==="")&&(I="nonzero");const B=new Be;C.boundingBox.getCenter(B);const R=[new Be(p,B.y),new Be(v,B.y)],M=l(R,C.boundingBox,y);M.sort((q,fe)=>q.point.x-fe.point.x);const T=[],P=[];M.forEach(q=>{q.identifier===C.identifier?T.push(q):P.push(q)});const K=T[0].point.x,w=[];let L=0;for(;L0&&w[w.length-1]===P[L].identifier?w.pop():w.push(P[L].identifier),L++;if(w.push(C.identifier),I==="evenodd"){const q=w.length%2===0,fe=w[w.length-2];return{identifier:C.identifier,isHole:q,for:fe}}else if(I==="nonzero"){let q=!0,fe=null,J=null;for(let re=0;re{const y=C.getPoints();let p=-999999999,v=999999999,I=-999999999,B=999999999;for(let R=0;Rp&&(p=M.y),M.yI&&(I=M.x),M.x=B&&(h=B-1),{curves:C.curves,points:y,isCW:ds.isClockWise(y),identifier:-1,boundingBox:new yT(new Be(B,v),new Be(I,p))}});f=f.filter(C=>C.points.length>1);for(let C=0;CA(C,f,h,d,e.userData?e.userData.style.fillRule:void 0)),E=[];return f.forEach(C=>{if(!g[C.identifier].isHole){const p=new Da;p.curves=C.curves,g.filter(I=>I.isHole&&I.for===C.identifier).forEach(I=>{const B=f[I.identifier],R=new Ta;R.curves=B.curves,p.holes.push(R)}),E.push(p)}}),E}static getStrokeStyle(e,t,i,r,s){return e=e!==void 0?e:1,t=t!==void 0?t:"#000",i=i!==void 0?i:"miter",r=r!==void 0?r:"butt",s=s!==void 0?s:4,{strokeColor:t,strokeWidth:e,strokeLineJoin:i,strokeLineCap:r,strokeMiterLimit:s}}static pointsToStroke(e,t,i,r){const s=[],o=[],a=[];if(Yu.pointsToStrokeWithBuffers(e,t,i,r,s,o,a)===0)return null;const l=new Nt;return l.setAttribute("position",new ot(s,3)),l.setAttribute("normal",new ot(o,3)),l.setAttribute("uv",new ot(a,2)),l}static pointsToStrokeWithBuffers(e,t,i,r,s,o,a,l){const A=new Be,h=new Be,d=new Be,f=new Be,g=new Be,E=new Be,C=new Be,y=new Be,p=new Be,v=new Be,I=new Be,B=new Be,R=new Be,M=new Be,T=new Be,P=new Be,K=new Be;i=i!==void 0?i:12,r=r!==void 0?r:.001,l=l!==void 0?l:0,e=Ee(e);const w=e.length;if(w<2)return 0;const L=e[0].equals(e[w-1]);let q,fe=e[0],J;const re=t.strokeWidth/2,ne=1/(w-1);let ue=0,F,ee,te,Ae,ve=!1,Oe=0,Y=l*3,z=l*2;O(e[0],e[1],A).multiplyScalar(re),y.copy(e[0]).sub(A),p.copy(e[0]).add(A),v.copy(y),I.copy(p);for(let ie=1;ieNumber.EPSILON){const Te=re/de;d.multiplyScalar(-Te),f.subVectors(q,fe),g.copy(f).setLength(Te).add(d),P.copy(g).negate();const $=g.length(),_=f.length();f.divideScalar(_),E.subVectors(J,q);const D=E.length();switch(E.divideScalar(D),f.dot(P)<_&&E.dot(P)=r&&de.push(ie[Te]);return de.push(ie[ie.length-1]),de}}}const e8=new Yu,Rp=new ri,xl=new G;async function t8(n,e,t=cr,i,r,s,o){const a=new Vr;a.matrixAutoUpdate=!1;const l=await e8.loadAsync(n);Rp.makeEmpty();for(const d of l.paths){const f=Yu.createShapes(d),g=new t;g.transparent=!0,g.depthWrite=!1,g.toneMapped=!1,g.clippingPlanes=i;for(const E of f){const C=new zu(E);C.computeBoundingBox(),Rp.union(C.boundingBox);const y=new en(C,g);y.matrixAutoUpdate=!1,y.raycast=Wu(y,y.raycast,s,r,o),ac(y,e,o),y.userData.color=d.color,y.scale.y=-1,y.updateMatrix(),a.add(y)}}Rp.getSize(xl);const A=xl.x/xl.y,h=1/xl.y;return a.scale.set(1,1,1).multiplyScalar(h),Rp.getCenter(xl),xl.y*=-1,a.position.copy(xl).negate().multiplyScalar(h),a.updateMatrix(),Object.assign(a,{aspectRatio:A})}const Lw=new Je,n8=["color","opacity"];V.forwardRef((n,e)=>{const t=Qo(),i=V.useRef(null),r=ja(i);$r(t,r,Po);const s=ko(t,r),o=$a(s),a=Vs(),l=Ja(a,o,r.size,r),A=Ws(n.panelMaterialClass,n),h=Pi(di.Panel,n.zIndexOffset,A);Ka(t,o,r.size,void 0,r.borderInset,l,h,a,A,Uo);const d=Xa(),f=Ad(a,d),g=Pi(di.Svg,void 0,void 0,h),E=tD(t8,n.src,r.cameraDistance,n.materialClass,f,a,d,g),C=ms(t,n8);yi(()=>{var w;const M=C.value;if(M==null)return;const T=M("color"),P=M("opacity");let K;Array.isArray(T)?K=Lw.setRGB(...T):T!=null&&(K=Lw.set(T)),(w=E.value)==null||w.traverse(L=>{if(!(L instanceof en))return;L.receiveShadow=n.receiveShadow??!1,L.castShadow=n.castShadow??!1;const q=L.material;q.color.copy(K??L.userData.color),q.opacity=P??1})},[E,n.color,n.receiveShadow,n.castShadow]);const y=V.useMemo(()=>Yn(()=>{var M;return(M=E.value)==null?void 0:M.aspectRatio}),[E]),p=hd();fd(t,p,r,o,l,n.scrollbarPanelMaterialClass,a,g),To(t,n),Do(t,n),bo(t,n);const v=No(t,n),I=Oo(t,n);fs(t,"aspectRatio",y),Ro(t),Fo(n,r.size),Za(n,l);const B=V.useMemo(()=>{const M=new Vr;return M.matrixAutoUpdate=!1,M},[]);yi(()=>{var K;const[M,T,P]=nD(r.size,r.paddingInset,r.borderInset,r.pixelSize,((K=E.value)==null?void 0:K.aspectRatio)??1);B.position.set(M,T,0),B.scale.setScalar(P),B.updateMatrix()},[r,E]),yi(()=>{const M=E.value;if(M!=null)return B.add(M),()=>B.remove(M)},[E,B]),yi(()=>void(B.visible=!l.value),[]);const R=lc(r.size,r,h,d);return qa(e,r,R,p),b.jsxs(Lo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:v,activeHandlers:I,children:[b.jsxs(dd,{listeners:n,node:r,scrollPosition:p,children:[b.jsx("primitive",{object:R}),b.jsx("primitive",{object:B})]}),b.jsx(pd,{globalMatrix:o,node:r,orderInfo:g,scrollPosition:p,children:n.children})]})});const nt=V.forwardRef((n,e)=>{const t=Qo(),i=V.useRef(null),r=ja(i);$r(t,r,Po);const s=ko(t,r),o=Xa(),a=$a(s),l=Vs(),A=Ja(l,a,r.size,r);Fo(n,r.size),Za(n,A);const h=Ws(n.panelMaterialClass,n),d=Pi(di.Panel,n.zIndexOffset,h);Ka(t,a,r.size,void 0,r.borderInset,A,d,l,h,Uo);const f=cD(t,n.children,a,r,A,l,d);To(t,n),Do(t,n),bo(t,n);const g=No(t,n),E=Oo(t,n);fs(t,"measureFunc",f),Ro(t);const C=lc(r.size,r,d,o);return qa(e,r,C),b.jsx(Lo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:g,activeHandlers:E,children:b.jsx("primitive",{object:C})})});function i8(n,e,t){const i=V.useMemo(()=>ho(()=>t.value),[t]);Vu(e,r=>{r.focus!=null&&i(n,r.focus)})}const r8=zt([0,0,0,0]),Nw=1.5,Pw=(n,e,t,i)=>{n=="color"&&i("backgroundColor",e)};function s8(n,e,t,i,r,s,o){const a=o??Dx(),l=Ws(void 0,{castShadow:!1,receiveShadow:!1}),A=Pi(di.Panel,void 0,l,r),h=V.useMemo(()=>zt(void 0),[]),d=V.useMemo(()=>Zt(()=>{const C=t.value;C==null&&(h.value=void 0),h.value=C;const y=setInterval(()=>h.value=h.peek()==null?C:void 0,500);return()=>clearInterval(y)}),[h,t]);V.useEffect(()=>d,[d]);const f=V.useMemo(()=>new Tx(a(A.majorIndex,l),e,Yn(()=>{const C=h.value;return C==null?[0,0]:[Nw,C[2]]}),Yn(()=>{const C=h.value;return C==null?[0,0]:[C[0]-Nw/2,C[1]]}),r8,s,i,A.minorIndex),[a,A,l,e,s,i,h]),g=n.length;$r(n,f,Pw),km(n,f,Pw);const E=n.length;for(let C=g;C()=>f.destroy(),[f])}const o8=zt([0,0,0,0]);function a8(n,e,t,i,r,s){const o=s??Dx(),a=V.useMemo(()=>[],[]),l=Ws(void 0,{castShadow:!1,receiveShadow:!1}),A=Pi(di.Panel,void 0,l,i),h=V.useMemo(()=>Zt(()=>{const d=e.value,f=d.length;for(let E=0;E{if(R==="backgroundColor")return 11851775;if(R==="backgroundOpacity")return 1};const B=Zt(()=>{I.active.value&&(I.setProperty("backgroundColor",11851775),I.setProperty("backgroundOpacity",1))});a[E]=C={unsubscribe:B,panel:I,offset:v,size:p}}const y=d[E];C.size.value=y.size,C.offset.value=y.position}const g=a.length;for(let E=f;E()=>{h();const d=a.length;for(let f=0;f{const t=V.useMemo(()=>zt(n.defaultValue??""),[]),i=V.useMemo(()=>n.value??t,[n.value,t]),r=V.useRef(n.onValueChange);r.current=n.onValueChange;const s=V.useRef(void 0),o=n.value!=null,a=V.useCallback(re=>{var ne;o||(t.value=re),(ne=r.current)==null||ne.call(r,re)},[t,o]),l=V.useMemo(()=>zt(void 0),[]),A=A8(i,l,a,n.multiline);A.tabIndex=n.tabIndex??0,A.disabled=n.disabled??!1;const h=V.useMemo(()=>zt(document.activeElement===A),[]);V.useEffect(()=>{const re=()=>h.value=document.activeElement===A;return A.addEventListener("focus",re),A.addEventListener("blur",re),()=>{A.removeEventListener("focus",re),A.removeEventListener("blur",re)}},[A,h]);const d=V.useCallback(re=>{h.peek()!==re&&(re?A.focus():A.blur())},[h,A]),f=Qo(),g=V.useRef(null),E=ja(g);$r(f,E,Po);const C=ko(f,E),y=Xa(),p=$a(C),v=Vs(),I=Ja(v,p,E.size,E);Fo(n,E.size),Za(n,I);const B=Ws(n.panelMaterialClass,n),R=Pi(di.Panel,n.zIndexOffset,B);Ka(f,p,E.size,void 0,E.borderInset,I,R,v,B,Uo);const M=V.useMemo(()=>zt([]),[]),T=V.useMemo(()=>zt(void 0),[]),P=a8(p,M,I,R,v);s8(f,p,T,I,R,v);const K=lc(E.size,E,R,y),w=V.useRef(),L=cD(f,i,p,E,I,v,P,l,M,T,w),q=n.disabled??!1;To(f,n),Do(f,n),bo(f,n);const fe=No(f,n,q?void 0:"text"),J=Oo(f,n);return i8(f,n,h),fs(f,"measureFunc",L),Ro(f),V.useImperativeHandle(e,()=>({focus:()=>d(!0),value:i,borderInset:E.borderInset,paddingInset:E.paddingInset,pixelSize:E.pixelSize,center:E.relativeCenter,size:E.size,interactionPanel:K}),[K,E,i,d]),b.jsx(Lo,{groupRef:g,matrix:C,handlers:n,inputHandlers:q?void 0:{onPointerDown:re=>{var ue;if((ue=n.onPointerDown)==null||ue.call(n,re),re.defaultPrevented||re.uv==null||w.current==null)return;c8(re.nativeEvent),re.stopPropagation();const ne=Uw(E,re.uv,w.current);s.current=ne,setTimeout(()=>{d(!0),l.value=[ne,ne],A.setSelectionRange(ne,ne)})},onPointerUp:re=>{var ne;(ne=n.onPointerUp)==null||ne.call(n,re),s.current=void 0},onPointerMove:re=>{var te;if((te=n.onPointerMove)==null||te.call(n,re),s.current==null||re.uv==null||w.current==null)return;re.stopPropagation();const ne=Uw(E,re.uv,w.current),ue=Math.min(s.current,ne),F=Math.max(s.current,ne),ee=s.current{d(!0),l.value=[ue,F],A.setSelectionRange(ue,F,ee)})}},hoverHandlers:fe,activeHandlers:J,children:b.jsx("primitive",{object:K})})});function A8(n,e,t,i=!1){const r=V.useMemo(()=>{const s=document.createElement(i?"textarea":"input"),o=s.style;o.setProperty("position","absolute"),o.setProperty("left","-1000vw"),o.setProperty("pointerEvents","none"),o.setProperty("opacity","0"),s.addEventListener("input",()=>{t==null||t(s.value),a()});const a=()=>{const{selectionStart:l,selectionEnd:A}=s;if(l==null||A==null){e.value=void 0;return}const h=e.peek();h!=null&&h[0]===l&&h[1]===A||(e.value=[l,A])};return s.addEventListener("keydown",a),s.addEventListener("keyup",a),s.addEventListener("blur",()=>e.value=void 0),document.body.appendChild(s),s},[t,e,i]);return yi(()=>{r.value=zg(n)},[n]),V.useEffect(()=>()=>r.remove(),[r]),r}function Uw({size:n,borderInset:e,paddingInset:t},i,r){const[s,o]=n.peek(),[a,,,l]=e.peek(),[A,,,h]=t.peek(),d=i.x*s-l-h,f=-i.y*o+a+A;return r.getCharIndex(d,f)}const h8=V.forwardRef((n,e)=>{const t=Mo(),i=n.pixelSize??kD,[r,s]=V.useMemo(()=>{const{width:A,height:h}=t.getState().size;return[zt(A*i),zt(h*i)]},[i,t]);V.useEffect(()=>{const A=h=>{HT(()=>{r.value=h.size.width*i,s.value=h.size.height*i})};return A(t.getState()),t.subscribe(A)},[i,r,s,t]);const o=Pm(A=>A.camera),a=V.useRef(null);Zr(()=>{if(a.current==null)return;let A=1;o instanceof ni&&(A=s.peek()/(2*Math.tan(o.fov/360*Math.PI))),a.current.position.z=-A,a.current.updateMatrix()});const l=n.attachCamera??!0;return b.jsxs(b.Fragment,{children:[l&&b.jsx("primitive",{object:o}),FT(b.jsx("group",{ref:a,matrixAutoUpdate:!1,children:b.jsx(K5,{ref:e,...n,sizeX:r,sizeY:s,children:n.children})}),o)]})}),Fw=new Je,d8=["color","opacity"],f8=new Yu,gd=V.forwardRef((n,e)=>{const t=Qo(),i=V.useRef(null),r=ja(i);$r(t,r,Po);const s=ko(t,r),o=$a(s),a=Vs(),l=Ja(a,o,r.size,r),A=Ws(n.panelMaterialClass,n),h=Pi(di.Panel,n.zIndexOffset,A);Ka(t,o,r.size,void 0,r.borderInset,l,h,a,A,Uo);const d=Xa(),f=Ad(a,d),g=Pi(di.Svg,void 0,void 0,h),E=V.useMemo(()=>{const B=new Vr;B.matrixAutoUpdate=!1;const R=f8.parse(n.text);for(const M of R.paths){const T=Yu.createShapes(M),P=new(n.materialClass??cr);P.transparent=!0,P.depthWrite=!1,P.toneMapped=!1,P.clippingPlanes=f;for(const K of T){const w=new zu(K);w.computeBoundingBox();const L=new en(w,P);L.matrixAutoUpdate=!1,L.raycast=Wu(L,L.raycast,d,a,g),ac(L,r.cameraDistance,g),L.userData.color=M.color,L.scale.y=-1,L.updateMatrix(),B.add(L)}}return B},[n.text,n.materialClass,f,d,a,r,g]),C=ms(t,d8);yi(()=>{const B=C.value;if(B==null)return;const R=B("color"),M=B("opacity");let T;Array.isArray(R)?T=Fw.setRGB(...R):R!=null&&(T=Fw.set(R)),E.traverse(P=>{if(!(P instanceof en))return;P.receiveShadow=n.receiveShadow??!1,P.castShadow=n.castShadow??!1;const K=P.material;K.color.copy(T??P.userData.color),K.opacity=M??1})},[E,n.color,n.receiveShadow,n.castShadow]);const y=hd();fd(t,y,r,o,l,n.scrollbarPanelMaterialClass,a,g),fs(t,"width",n.svgWidth),fs(t,"height",n.svgHeight),To(t,n),Do(t,n),bo(t,n);const p=No(t,n),v=Oo(t,n);fs(t,"aspectRatio",n.svgWidth/n.svgHeight),Ro(t),Fo(n,r.size),Za(n,l),yi(()=>{const B=n.svgWidth/n.svgHeight,[R,M,T]=nD(r.size,r.paddingInset,r.borderInset,r.pixelSize,n.svgWidth/n.svgHeight);E.position.set(R-T*B/2,M+T/2,0),E.scale.setScalar(T/n.svgHeight),E.updateMatrix()},[r,E,n.svgWidth,n.svgHeight]),yi(()=>void(E.visible=!l.value),[]);const I=lc(r.size,r,h,d);return qa(e,r,I,y),b.jsxs(Lo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:p,activeHandlers:v,children:[b.jsxs(dd,{listeners:n,node:r,scrollPosition:y,children:[b.jsx("primitive",{object:I}),b.jsx("primitive",{object:E})]}),b.jsx(pd,{globalMatrix:o,node:r,orderInfo:g,scrollPosition:y,children:n.children})]})});V.forwardRef(({children:n,resolution:e=1,frames:t=1/0,renderPriority:i=0,eventPriority:r=0,...s},o)=>{const a=V.useMemo(()=>new qr(1,1,{minFilter:xn,magFilter:xn,type:ql}),[]),l=V.useRef(null),A=V.useMemo(()=>({events:{compute:p8.bind(null,l),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);V.useEffect(()=>{if(l.current==null)return;const{size:d}=l.current,f=Zt(()=>{const[g,E]=d.value;a.setSize(g,E),A.size.width=g,A.size.height=E});return()=>{f(),a.dispose()}},[a,A]),V.useImperativeHandle(o,()=>l.current,[]);const h=V.useMemo(()=>new Uh,[]);return b.jsxs(b.Fragment,{children:[FT(b.jsxs(g8,{imageRef:l,renderPriority:i,frames:t,fbo:a,children:[n,b.jsx("group",{onPointerOver:()=>null})]}),h,A),b.jsx(P5,{...s,src:a.texture,fit:"fill",keepAspectRatio:!1,ref:l})]})});function p8({current:n},e,t,i){var o,a,l;if(n==null||i==null)return!1;i.raycaster.camera||(l=(a=i.events).compute)==null||l.call(a,e,i,(o=i.previousRoot)==null?void 0:o.getState());const[r]=i.raycaster.intersectObject(n.interactionPanel);if(!r)return!1;const s=r.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(s.x*2-1,s.y*2-1),t.camera)}function g8({frames:n,renderPriority:e,children:t,fbo:i,imageRef:r}){const s=Mo();V.useEffect(()=>{if(r.current==null)return;const{size:A}=r.current;return Zt(()=>{const[h,d]=A.value;s.setState({size:{width:h,height:d,top:0,left:0}})})});let o=0,a,l;return Zr(A=>{(n===1/0||ob.jsx(gd,{...n,ref:e,text:m8,svgWidth:24,svgHeight:24})),E8='',y8=V.forwardRef((n,e)=>b.jsx(gd,{...n,ref:e,text:E8,svgWidth:24,svgHeight:24})),v8='',Yc=V.forwardRef((n,e)=>b.jsx(gd,{...n,ref:e,text:v8,svgWidth:24,svgHeight:24})),C8='',I8=V.forwardRef((n,e)=>b.jsx(gd,{...n,ref:e,text:C8,svgWidth:24,svgHeight:24})),x8='',Xc=V.forwardRef((n,e)=>b.jsx(gd,{...n,ref:e,text:x8,svgWidth:24,svgHeight:24})),lo=new ld,Sy=new vT,kw=new on;function B8(n,e,t,i,r){const s=[];for(const[o,a]of r){Sy.set(i[a.lineIndex],i[a.lineIndex+1]).applyMatrix4(n.matrixWorld);const l=Sy.at(a.distanceOnLine/Sy.distance(),new G);Hm(kw,a,o);const A=S8(n,i,kw)??l;s.push({...a,intersections:s,pointOnFace:A,point:l,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),capturedObject:o})}return s}const Ow=new G,_y=new za;function S8(n,e,t){for(let i=e.length-1;i>0;i--){const r=e[i-1],s=e[i];if(_y.origin.copy(r).applyMatrix4(n.matrixWorld),_y.direction.copy(s).applyMatrix4(n.matrixWorld).sub(lo.ray.origin).normalize(),_y.intersectPlane(t,Ow)!=null)return Ow.clone()}}const _8=new ut;function w8(n,e,t,i,r,s,o){const a=[];return md(r,s.hasEventHandlers.bind(s),l=>{let A=0;for(let h=1;hv===C.object)!=-1)continue;const p=C.distance;C.distance+=A,a.push(Object.assign(C,{intersections:a,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),lineIndex:h-1,distanceOnLine:p,pointOnFace:C.point,localPoint:C.point.clone().applyMatrix4(_8.copy(C.object.matrixWorld).invert())}))}A+=g}}),a.sort((l,A)=>l.distance-A.distance)}const Ps=new ld,xu=new G,fo=new on,Gw=new za;function M8(n,e,t,i){xu.copy(i).applyQuaternion(e);const r=[];for(const[s,o]of t){Gw.set(n,xu),Hm(fo,o,s);const a=Gw.intersectPlane(fo,new G)??o.point;r.push({...o,intersections:r,pointOnFace:a,point:xu.clone().multiplyScalar(o.distance).add(n),inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),capturedObject:s})}return r}function Q8(n,e,t,i,r){Ps.setFromCamera(e,n),n.getWorldPosition(i),n.getWorldQuaternion(r),n.getWorldDirection(xu);const s=[];for(const[o,a]of t){fo.setFromNormalAndCoplanarPoint(xu,Ps.ray.origin),fo.constant-=a.distanceViewPlane;const l=Ps.ray.intersectPlane(fo,new G);if(l==null)continue;Hm(fo,a,o);const A=Ps.ray.intersectPlane(fo,new G)??l;s.push({...a,intersections:s,point:l,pointOnFace:A,inputDevicePosition:i.clone(),inputDeviceRotation:r.clone(),capturedObject:o})}return s}const Vg=new ut;function R8(n,e,t,i,r,s){Ps.ray.origin.copy(n),Ps.ray.direction.copy(s).applyQuaternion(e);const o=[];return md(t,i.hasEventHandlers.bind(i),a=>{const l=Ps.intersectObject(a,!0);for(const A of l)r&&!zm(A)||(Vg.copy(a.matrixWorld).invert(),o.push(Object.assign(A,{intersections:o,inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),pointOnFace:A.point,localPoint:A.point.clone().applyMatrix4(Vg)})))}),o.sort((a,l)=>a.distance-l.distance)}function T8(n,e,t,i,r,s,o){Ps.setFromCamera(e,n),n.getWorldPosition(s),n.getWorldQuaternion(o),fo.setFromNormalAndCoplanarPoint(n.getWorldDirection(xu),Ps.ray.origin);const a=[];return md(t,i.hasEventHandlers.bind(i),l=>{const A=Ps.intersectObject(l,!0);for(const h of A)r&&!zm(h)||(Vg.copy(l.matrixWorld).invert(),a.push(Object.assign(h,{intersections:a,pointOnFace:h.point,inputDevicePosition:s.clone(),inputDeviceRotation:o.clone(),distanceViewPlane:fo.distanceToPoint(h.point),localPoint:h.point.clone().applyMatrix4(Vg)})))}),a.sort((l,A)=>l.distance-A.distance)}const zw=new G,Hw=new Wn,Vw=new on;function D8(n,e,t){const i=[];for(const[r,s]of t){zw.copy(s.point).sub(s.inputDevicePosition),Hw.copy(s.inputDeviceRotation).invert().multiply(e);const o=zw.clone().applyQuaternion(Hw).add(n);Hm(Vw,s,r);const a=Vw.projectPoint(n,new G);i.push({distance:s.distance,intersections:i,inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),object:s.object,point:o,pointOnFace:a,face:s.face,capturedObject:r,distanceToFace:a.distanceTo(n),localPoint:s.localPoint})}return i}const Wr=new $n;function b8(n,e,t,i,r,s){Wr.center.copy(n),Wr.radius=t;const o=[];return md(i,r.hasEventHandlers.bind(r),a=>OD(a,e,s,o)),o.sort((a,l)=>a.distance-l.distance)}function OD(n,e,t,i){N8(n,e,t,i);for(const r of n.children)OD(r,e,t,i)}const bA=new ut,LA=new ut;function L8(n){return"spherecast"in n}function N8(n,e,t,i){if(n.updateWorldMatrix(!0,!1),L8(n)){const r=[];n.spherecast(Wr,r);for(const s of r)t&&!zm(s)||i.push({...s,pointOnFace:s.point,intersections:i,inputDevicePosition:Wr.center.clone(),inputDeviceRotation:e.clone(),localPoint:s.point.clone().applyMatrix4(bA.copy(s.object.matrixWorld).invert())})}if(n instanceof nx){n.geometry.boundingSphere==null&&n.geometry.computeBoundingSphere(),n.geometry.boundingBox==null&&n.geometry.computeBoundingBox();const r=[];for(let s=0;sWr.radius*Wr.radius)return;wy.max(P8);const h=Bu.center.clone().sub(Yw);h.divide(wy),U8(h);const d=Tp.clone();o&&!F8(n,d)||a.push({intersections:a,distance:Math.sqrt(A),object:n,face:{a:0,b:0,c:0,materialIndex:0,normal:h},pointOnFace:d,point:d,instanceId:l,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),localPoint:d.clone().applyMatrix4(r)})}function U8(n){const e=Math.abs(n.x),t=Math.abs(n.y),i=Math.abs(n.z);if(e>=t&&e>=i){n.set(n.x<0?-1:1,0,0);return}if(t>=e&&t>=i){n.set(0,n.y<0?-1:1,0);return}n.set(0,0,n.z<0?-1:1)}function md(n,e,t){if(e(n))return t(n);for(const i of n.children)md(i,e,t)}function zm(n){if(!(n.object instanceof en)||n.object.material.clippingPlanes==null)return!0;const e=n.object.material.clippingPlanes;for(const t of e)if(t.distanceToPoint(n.point)<0)return!1;return!0}function F8(n,e){if(!(n instanceof en)||n.material.clippingPlanes==null)return!0;const t=n.material.clippingPlanes;for(const i of t)if(i.distanceToPoint(e)<0)return!1;return!0}function Hm(n,e,t){return e.face==null?!1:(n.setFromNormalAndCoplanarPoint(e.face.normal,e.localPoint),n.applyMatrix4(t.matrixWorld),!0)}const My=new G,Jw=new Wn,jw=Symbol("traversal-id"),Kw=[],UC=new Wt;class Vm{constructor(e,t,i,r,s,o,a,l,A,h,d){be(this,"inputDeviceId");be(this,"dispatchPressAlways");be(this,"eventDispatcher");be(this,"computeIntersections");be(this,"getPressedElementIds");be(this,"getInputDeviceTransformation");be(this,"wasDragged");be(this,"onIntersections");be(this,"filterIntersections");be(this,"onStartEventCaptures");be(this,"onEndEventCaptures");be(this,"intersections",[]);be(this,"lastPositionChangeTime");be(this,"capturedEvents");be(this,"objectInteractionStateMap",new Map);this.inputDeviceId=e,this.dispatchPressAlways=t,this.eventDispatcher=i,this.computeIntersections=r,this.getPressedElementIds=s,this.getInputDeviceTransformation=o,this.wasDragged=a,this.onIntersections=l,this.filterIntersections=A,this.onStartEventCaptures=h,this.onEndEventCaptures=d}update(e,t,i,...r){var a;this.eventDispatcher.bind(e,this);const s=performance.now(),o=this.intersections;if(t&&(this.intersections=this.computeIntersections(e,this.capturedEvents),this.capturedEvents==null&&this.filterIntersections!=null&&(this.intersections=this.filterIntersections(this.intersections)),(a=this.onIntersections)==null||a.call(this,this.intersections),this.intersections.length===0&&(this.getInputDeviceTransformation(My,Jw),this.intersections=[{distance:1/0,inputDevicePosition:My.clone(),inputDeviceRotation:Jw.clone(),object:UC,point:My.clone()}])),this.traverseIntersections(this.intersections,(l,A,h,d,f)=>(t&&(this.dispatchEnterOrMove(l,A,h),A.lastIntersectedTime=s),i&&(this.dispatchPress(l,h,f,r),this.dispatchRelease(e,l,h,A,f),this.updateElementStateMap(h,A,f,r,s)),A.lastPressedElementIds=f,A.blockFollowingIntersections&&(this.intersections.length=d+1),!0),l=>this.getPressedElementIds(l)),t){const l=this.getPressedElementIds();this.traverseIntersections(o,(A,h,d)=>h.lastIntersectedTime===s?!1:(this.dispatchRelease(e,A,d,h,l),this.eventDispatcher.leave(A,d),h.lastLeftTime=s,h.lastPressedElementIds=Kw,!0)),this.lastPositionChangeTime=s}}cancel(e){this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(t,i,r)=>(this.eventDispatcher.cancel(t,r),!0))}wheel(e){this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(t,i,r)=>(this.eventDispatcher.wheel(t,r),!0))}leave(e){var t;this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(i,r,s)=>(this.eventDispatcher.leave(i,s),!0)),this.capturedEvents!=null&&((t=this.onEndEventCaptures)==null||t.call(this,e)),this.lastPositionChangeTime=void 0,this.intersections.length=0,this.capturedEvents=void 0}updateElementStateMap(e,t,i,r,s){for(const o of i)(r.includes(o)||this.dispatchPressAlways)&&t.elementStateMap.set(o,{lastPressEventTime:s,lastPressEventIntersection:e})}dispatchPress(e,t,i,r){for(const s of i)(this.dispatchPressAlways||r.includes(s))&&this.eventDispatcher.press(e,t,s)}dispatchRelease(e,t,i,r,s){for(const o of r.lastPressedElementIds){if(s.includes(o))continue;this.eventDispatcher.release(t,i,o),this.removeEventCapture(e,t);const a=r.elementStateMap.get(o);a!=null&&(r.lastLeftTime==null||r.lastLeftTime{}){const r=Math.random();e:for(let s=0;snew Map,[]),d=V.useMemo(()=>new Wm,[]);d.onPointerDownMissed=r,d.onPointerUpMissed=s,d.onClickMissed=o;const f=V.useMemo(()=>({filterClipped:A??!0,computeIntersections:n,isDrag:e,onIntersections:t,filterIntersections:i,onStartEventCaptures:a,onEndEventCaptures:l}),[]);f.filterClipped=A??!0,f.computeIntersections=n,f.isDrag=e,f.onIntersections=t,f.filterIntersections=i,f.onStartEventCaptures=a,f.onEndEventCaptures=l;for(const[g,E]of h)GD(E.translator,g,f);return V.useEffect(()=>()=>{for(const{translator:g}of h.values())g.leave({});h.clear()},[]),V.useMemo(()=>{const g=E=>G8(h,d,f,E);return{cancel:(E,C)=>{const{translator:y}=g(E);y.cancel(C)},enter:(E,C)=>{const{translator:y}=g(E);y.update(C,!0,!0)},leave:(E,C)=>{const{translator:y}=g(E);y.leave(C),h.delete(E)},press:(E,C,...y)=>{const{inputDeviceElementPressMap:p,inputDeviceElementPressSet:v,translator:I}=g(E);for(const B of y)v.add(B),p.set(B,C);I.update(C,!1,!0,...y)},release:(E,C,...y)=>{const{inputDeviceElementPressMap:p,inputDeviceElementPressSet:v,inputDeviceElementDragSet:I,translator:B}=g(E);for(const R of y)v.delete(R),p.delete(R);B.update(C,!1,!0);for(const R of y)I.delete(R)},move:(E,C)=>{const{translator:y,inputDeviceElementPressMap:p,inputDeviceElementDragSet:v}=g(E);for(const[I,B]of p)f.isDrag(B,C)&&v.add(I);y.update(C,!0,!1)},wheel:E=>{for(const{translator:C}of h.values())C.wheel(E)},blur:E=>{for(const{translator:C}of h.values())C.leave(E);h.clear()}}},[])}function GD(n,e,{filterIntersections:t,onEndEventCaptures:i,onIntersections:r,onStartEventCaptures:s}){n.onIntersections=r==null?void 0:r.bind(null,e),n.filterIntersections=t==null?void 0:t.bind(null,e),n.onStartEventCaptures=s==null?void 0:s.bind(null,e),n.onEndEventCaptures=i==null?void 0:i.bind(null,e)}function G8(n,e,t,i){let r=n.get(i);if(r==null){const s=new G,o=new Wn,a={inputDeviceElementPressSet:new Set,inputDeviceElementPressMap:new Map,translator:new Vm(i,!1,e,(l,A)=>t.computeIntersections(l,A,t.filterClipped,e,s,o),()=>[...a.inputDeviceElementPressSet],(l,A)=>{l.copy(s),A.copy(o)},l=>a.inputDeviceElementDragSet.has(l)),inputDeviceElementDragSet:new Set};GD(a.translator,i,t),n.set(i,r=a)}return r}new G;const z8=[];function H8(n,e,t){if(n.current==null)return!1;const i=n.current*n.current,r=e.offsetX-t.offsetX,s=e.offsetY-t.offsetY;return r*r+s*s>i}function V8({filterClipped:n,filterIntersections:e,onClickMissed:t,onIntersections:i,onPointerDownMissed:r,onPointerUpMissed:s,dragDistance:o}){const a=Mo(),l=Pm(({gl:f})=>f.domElement),A=V.useMemo(()=>W8.bind(null,a),[a]),h=V.useRef(o);h.current=o;const d=O8(A,H8.bind(null,h),i,e,r,s,t,Y8,X8,n);return V.useEffect(()=>{const f=v=>d.cancel(v.pointerId,v),g=v=>d.press(v.pointerId,v,v.button),E=v=>d.release(v.pointerId,v,v.button),C=v=>d.enter(v.pointerId,v),y=v=>d.leave(v.pointerId,v),p=v=>d.move(v.pointerId,v);return l.addEventListener("pointercancel",f),l.addEventListener("pointerdown",g),l.addEventListener("pointerup",E),l.addEventListener("pointerover",C),l.addEventListener("pointerout",y),l.addEventListener("pointermove",p),l.addEventListener("wheel",d.wheel),l.addEventListener("blur",d.blur),()=>{l.removeEventListener("pointercancel",f),l.removeEventListener("pointerdown",g),l.removeEventListener("pointerup",E),l.removeEventListener("pointerover",C),l.removeEventListener("pointerout",y),l.removeEventListener("pointermove",p),l.removeEventListener("wheel",d.wheel),l.removeEventListener("blur",d.blur)}},[l,d]),null}function W8(n,e,t,i,r,s,o){if(!(e.target instanceof HTMLCanvasElement))return z8;const{camera:a,scene:l,size:A}=n.getState(),h=new Be(e.offsetX/A.width*2-1,-(e.offsetY/A.height)*2+1);return t==null?T8(a,h,l,r,i,s,o):Q8(a,h,t,s,o)}function Y8(n,e){e.target instanceof HTMLCanvasElement&&e.target.setPointerCapture(n)}function X8(n,e){e.target instanceof HTMLCanvasElement&&e.target.releasePointerCapture(n)}const Qy=new G,Ry=new Wn,J8=new G(0,0,1);V.forwardRef(({id:n,onIntersections:e,filterIntersections:t,onClickMissed:i,onPointerDownMissed:r,onPointerUpMissed:s,filterClipped:o=!0,direction:a=J8,initialPressedElementIds:l},A)=>{const h=Mo(),d=V.useMemo(()=>new Wt,[]),f=V.useMemo(()=>new Wm,[]);f.onPointerDownMissed=r,f.onPointerUpMissed=s,f.onClickMissed=i;const g=V.useMemo(()=>new Set(l),[]),E=V.useMemo(()=>({filterClipped:o,direction:a}),[]);E.filterClipped=o,E.direction=a;const C=V.useMemo(()=>new Vm(n,!1,f,(p,v)=>(d.getWorldPosition(Qy),d.getWorldQuaternion(Ry),v==null?R8(Qy,Ry,h.getState().scene,f,E.filterClipped,E.direction):M8(Qy,Ry,v,E.direction)),()=>[...g],(p,v)=>{d.getWorldPosition(p),d.getWorldQuaternion(v)}),[n,h]);C.onIntersections=e,C.filterIntersections=t,V.useImperativeHandle(A,()=>({press:(p,v)=>{g.add(p),C.update(v,!1,!0,p)},release:(p,v)=>{g.delete(p),C.update(v,!1,!0)},cancel:C.cancel.bind(C),wheel(p){C.wheel(p)}}),[C]),V.useEffect(()=>C.leave.bind(C,{}),[C]);const y=V.useRef(g.size>0);return Zr(()=>{C.update({},!0,y.current,...g),y.current=!1}),HC.createElement("primitive",{object:d})});const Ty=new G,Dy=new Wn;V.forwardRef(({id:n,distanceElement:e,radius:t,onIntersections:i,filterIntersections:r,onClickMissed:s,onPointerDownMissed:o,onPointerUpMissed:a,filterClipped:l=!0,initialPressedElementIds:A},h)=>{const d=V.useMemo(()=>new Wt,[]),f=Mo(),g=V.useMemo(()=>new Set(A),[]),E=V.useMemo(()=>new Wm,[]);E.onPointerDownMissed=o,E.onPointerUpMissed=a,E.onClickMissed=s;const C=V.useMemo(()=>({distanceElement:e,radius:t,filterClipped:l}),[]);C.distanceElement=e,C.radius=t,C.filterClipped=l;const y=V.useMemo(()=>new Vm(n,!0,E,(v,I)=>(d.getWorldPosition(Ty),d.getWorldQuaternion(Dy),I==null?b8(Ty,Dy,C.radius,f.getState().scene,E,C.filterClipped):D8(Ty,Dy,I)),v=>v!=null&&C.distanceElement!=null&&v.distance<=C.distanceElement.downRadius&&(v.distanceToFace==null||v.distanceToFace<2*C.distanceElement.downRadius*2)?[...g,C.distanceElement.id]:[...g],(v,I)=>{d.getWorldPosition(v),d.getWorldQuaternion(I)}),[n,f]);y.onIntersections=i,y.filterIntersections=r,V.useImperativeHandle(h,()=>({press:(v,I)=>{g.add(v),y.update(I,!1,!0,v)},release:(v,I)=>{g.delete(v),y.update(I,!1,!0)},cancel:y.cancel.bind(y),wheel(v){y.wheel(v)}}),[y]),V.useEffect(()=>y.leave.bind(y,{}),[y]);const p=V.useRef(g.size>0);return Zr(()=>{y.update({},!0,p.current||e!=null,...g),p.current=!1}),HC.createElement("primitive",{object:d})});const by=new G,Ly=new Wn;V.forwardRef(({id:n,points:e,onIntersections:t,filterIntersections:i,onClickMissed:r,onPointerDownMissed:s,onPointerUpMissed:o,filterClipped:a=!0,initialPressedElementIds:l},A)=>{const h=V.useMemo(()=>new Wt,[]),d=Mo(),f=V.useMemo(()=>new Wm,[]);f.onPointerDownMissed=s,f.onPointerUpMissed=o,f.onClickMissed=r;const g=V.useMemo(()=>new Set(l),[]),E=V.useMemo(()=>({points:e,filterClipped:a}),[]);E.points=e,E.filterClipped=a;const C=V.useMemo(()=>new Vm(n,!1,f,(p,v)=>(h.getWorldPosition(by),h.getWorldQuaternion(Ly),v==null?w8(h,by,Ly,E.points,d.getState().scene,f,E.filterClipped):B8(h,by,Ly,E.points,v)),()=>[...g],(p,v)=>{h.getWorldPosition(p),h.getWorldQuaternion(v)}),[n,d]);C.onIntersections=t,C.filterIntersections=i,V.useImperativeHandle(A,()=>({press:(p,v)=>{g.add(p),C.update(v,!1,!0,p)},release:(p,v)=>{g.delete(p),C.update(v,!1,!0)},cancel:C.cancel.bind(C),wheel(p){C.wheel(p)}}),[C]),V.useEffect(()=>C.leave.bind(C,{}),[C]);const y=V.useRef(g.size>0);return Zr(()=>{C.update({},!0,y.current,...g),y.current=!1}),HC.createElement("primitive",{object:h})});const j8=()=>({enabled:!1,priority:0});class Wm{constructor(e,t,i){be(this,"onPointerDownMissed");be(this,"onPointerUpMissed");be(this,"onClickMissed");be(this,"stoppedEventTypeSet");be(this,"event");be(this,"translator");be(this,"press",this.dispatch.bind(this,["onPointerDown"]));be(this,"release",this.dispatch.bind(this,["onPointerUp"]));be(this,"cancel",this.dispatch.bind(this,["onPointerCancel"]));be(this,"select",this.dispatch.bind(this,["onClick"]));be(this,"move",this.dispatch.bind(this,["onPointerMove"]));be(this,"enter",this.dispatch.bind(this,["onPointerEnter","onPointerOver"]));be(this,"leave",this.dispatch.bind(this,["onPointerLeave","onPointerOut"]));be(this,"wheel",this.dispatch.bind(this,["onWheel"]));be(this,"losteventcapture",()=>{});this.onPointerDownMissed=e,this.onPointerUpMissed=t,this.onClickMissed=i}dispatch(e,t,i,r){var s,o;for(const a of e){if(this.stoppedEventTypeSet.has(a))return;if(t==UC){switch(a){case"onClick":case"onPointerDown":case"onPointerUp":{const A=this[`${a}Missed`];if(A==null)return;A(this.createEvent(a,t,i,r))}}return}(o=(s=t.__r3f.handlers)[a])==null||o.call(s,this.createEvent(a,t,i,r))}}createEvent(e,t,i,r){const s=this.stoppedEventTypeSet,o=this.translator,a={setPointerCapture:this.translator.addEventCapture.bind(this.translator,this.event,t,i),releasePointerCapture:this.translator.removeEventCapture.bind(this.translator,this.event,t),hasPointerCapture:this.translator.hasEventCapture.bind(this.translator,t)},l={};for(const A in this.event){const h=this.event[A];typeof h!="function"&&(l[A]=h)}return Object.assign(l,i,{eventObject:t,pointer:null,stopped:null,delta:0,unprojectedPoint:null,ray:null,camera:null,stopPropagation(){s.add(e),e=="onPointerEnter"&&o.blockFollowingIntersections(t)},pointerId:this.translator.inputDeviceId,target:a,currentTarget:a,nativeEvent:this.event,inputDeviceElementId:r,inputDeviceId:this.translator.inputDeviceId}),l}bind(e,t){this.stoppedEventTypeSet=new Set,this.event=e,this.translator=t}hasEventHandlers(e){if(e===UC)return!0;const t=e.__r3f;return t!=null&&t.eventCount>0}}class Ed extends Ax{constructor(){super({specular:"#555",shininess:100})}}function Jc(n,e,t){return new Je().setHSL(n/360,e/100,t/100,"srgb")}const Vt={foreground:Jc(0,0,100),background:Jc(0,0,0),card:Jc(0,0,53),cardForeground:Jc(0,0,100),accent:Jc(210,100,52),accentForeground:Jc(0,0,100)};function K8(n){return b.jsx(Xr,{scrollbarColor:Vt.background,scrollbarBorderRadius:4,scrollbarOpacity:.3,color:Vt.background,fontWeight:"medium",...n})}function Li({children:n,...e}){return b.jsx(Et,{backgroundColor:Vt.card,backgroundOpacity:.8,borderColor:Vt.card,borderOpacity:.8,border:4,borderBend:.3,panelMaterialClass:Ed,borderRadius:32,...e,children:b.jsx(Xr,{color:Vt.cardForeground,children:n})})}function q8(n){const e=n/44;return{height:44*e,padding:20*e,borderRadius:12*e,fontSize:14*e,iconSize:18*e}}const Z8={xs:{iconSize:12,height:24,padding:6,borderRadius:4,fontSize:8},sm:{height:32,padding:12,borderRadius:8,fontSize:12,iconSize:14},md:{height:44,padding:20,borderRadius:12,fontSize:14,iconSize:18},lg:{height:52,padding:25,borderRadius:16,fontSize:16,iconSize:22},xl:{height:56,padding:29,borderRadius:20,fontSize:18,iconSize:28}};function Ct({children:n,size:e="md",variant:t="rect",platter:i,selected:r,disabled:s,...o}){const{borderRadius:a,fontSize:l,height:A,padding:h,iconSize:d}=typeof e=="number"?q8(e):Z8[e];return b.jsx(Et,{cursor:s?void 0:"pointer",height:A,width:t==="icon"?A:void 0,paddingX:h,borderRadius:t==="rect"?a:A/2,justifyContent:"center",alignItems:"center",backgroundColor:Vt.foreground,backgroundOpacity:s?.1:r?1:i?.15:0,hover:{backgroundOpacity:s?.1:r?1:.2},...o,children:b.jsx(Xr,{color:r&&!s?Vt.background:Vt.foreground,opacity:s?.4:1,fontSize:l,width:t==="icon"?d:void 0,height:t==="icon"?d:void 0,children:n})})}const zD=V.createContext({});function cg({value:n,defaultValue:e,onValueChange:t,disabled:i,...r}){const[s,o]=V.useState(e),a=n??s,l=V.useRef(t);l.current=t;const A=V.useMemo(()=>({value:a,onValueChange:d=>{var f;o(d),(f=l.current)==null||f.call(l,d)},disabled:i}),[a,i]),h=i?.3:.4;return b.jsx(zD.Provider,{value:A,children:b.jsx(Et,{height:36,border:2,backgroundOpacity:h,borderOpacity:h,backgroundColor:Vt.background,borderColor:Vt.background,borderBend:i?0:-.3,borderRadius:18,panelMaterialClass:Ed,flexDirection:"row",...r})})}function Gi({children:n,value:e,disabled:t,...i}){const{value:r,onValueChange:s,disabled:o}=V.useContext(zD),a=r===e&&!o;return b.jsx(Et,{height:32,paddingX:20,cursor:o||t?void 0:"pointer",...i,onClick:l=>{var A;t||(s==null||s(e),(A=i.onClick)==null||A.call(i,l))},backgroundColor:Vt.foreground,borderColor:Vt.foreground,backgroundOpacity:a?.3:0,borderOpacity:a?.3:0,border:2,borderRadius:16,borderBend:.3,panelMaterialClass:Ed,flexDirection:"row",alignItems:"center",gapColumn:10,children:b.jsx(Xr,{color:Vt.foreground,opacity:t||o?.4:1,children:n})})}function $8(){return b.jsxs(Li,{borderRadius:32,padding:32,gap:8,flexDirection:"column",children:[b.jsx(nt,{fontSize:32,children:"Hello World!"}),b.jsx(nt,{fontSize:24,opacity:.7,children:"This is the apfel kit."})]})}function qw({selected:n,disabled:e=!1,defaultSelected:t,onSelectedChange:i,...r}){const[s,o]=V.useState(t??!1),a=n??s;return b.jsx(Et,{width:28,height:28,border:2,borderRadius:15,backgroundColor:!e&&a?Vt.accent:Vt.foreground,backgroundOpacity:!e&&a?.9:.1,borderColor:!e&&a?Vt.accent:Vt.foreground,hover:e?void 0:{backgroundOpacity:a?1:.3,backgroundColor:a?Vt.accent:Vt.foreground,borderColor:a?Vt.accent:Vt.foreground},borderOpacity:e?.2:a?1:.5,justifyContent:"center",alignItems:"center",cursor:e?void 0:"pointer",...r,onClick:l=>{var A;e||(o(!a),i==null||i(!a),(A=r.onClick)==null||A.call(r,l))},children:a&&b.jsx(y8,{height:18,width:18,color:Vt.accentForeground})})}function e6(){return b.jsxs(Li,{borderRadius:32,padding:16,flexDirection:"column",gapRow:16,children:[b.jsx(qw,{disabled:!0,defaultSelected:!1}),b.jsx(qw,{defaultSelected:!0})]})}function t6(){return b.jsxs(Et,{flexDirection:"column",md:{flexDirection:"row"},alignItems:"center",gap:32,children:[b.jsx(Li,{borderRadius:32,padding:16,children:b.jsxs(Et,{flexDirection:"row",gapColumn:16,children:[b.jsxs(Et,{flexDirection:"column",justifyContent:"space-between",alignItems:"center",gapRow:16,children:[b.jsx(Ct,{variant:"icon",size:"xs",children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"sm",children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"md",children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"lg",children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"xl",children:b.jsx(bt,{})})]}),b.jsxs(Et,{flexDirection:"column",justifyContent:"space-between",alignItems:"center",gapRow:16,children:[b.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"sm",platter:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"md",platter:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"lg",platter:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"xl",platter:!0,children:b.jsx(bt,{})})]}),b.jsxs(Et,{flexDirection:"column",justifyContent:"space-between",alignItems:"center",gapRow:16,children:[b.jsx(Ct,{variant:"icon",size:"xs",selected:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"sm",selected:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"md",selected:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"lg",selected:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"xl",selected:!0,children:b.jsx(bt,{})})]}),b.jsxs(Et,{flexDirection:"column",justifyContent:"space-between",alignItems:"center",gapRow:16,children:[b.jsx(Ct,{variant:"icon",size:"xs",disabled:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"sm",disabled:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"md",disabled:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"lg",disabled:!0,children:b.jsx(bt,{})}),b.jsx(Ct,{variant:"icon",size:"xl",disabled:!0,children:b.jsx(bt,{})})]})]})}),b.jsx(Li,{borderRadius:32,padding:24,children:b.jsxs(Et,{flexDirection:"column",gapRow:32,children:[b.jsxs(Et,{flexDirection:"row",gapColumn:16,children:[b.jsxs(Et,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[b.jsx(Ct,{variant:"pill",size:"sm",children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"pill",size:"md",children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"pill",size:"lg",children:b.jsx(nt,{children:"Label"})})]}),b.jsxs(Et,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[b.jsx(Ct,{variant:"pill",size:"sm",platter:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"pill",size:"md",platter:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"pill",size:"lg",platter:!0,children:b.jsx(nt,{children:"Label"})})]}),b.jsxs(Et,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[b.jsx(Ct,{variant:"pill",size:"sm",selected:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"pill",size:"md",selected:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"pill",size:"lg",selected:!0,children:b.jsx(nt,{children:"Label"})})]}),b.jsxs(Et,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[b.jsx(Ct,{variant:"pill",size:"sm",disabled:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"pill",size:"md",disabled:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"pill",size:"lg",disabled:!0,children:b.jsx(nt,{children:"Label"})})]})]}),b.jsxs(Et,{flexDirection:"row",gapColumn:16,children:[b.jsxs(Et,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[b.jsx(Ct,{variant:"rect",size:"sm",children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"rect",size:"md",children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"rect",size:"lg",children:b.jsx(nt,{children:"Label"})})]}),b.jsxs(Et,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[b.jsx(Ct,{variant:"rect",size:"sm",platter:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"rect",size:"md",platter:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"rect",size:"lg",platter:!0,children:b.jsx(nt,{children:"Label"})})]}),b.jsxs(Et,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[b.jsx(Ct,{variant:"rect",size:"sm",selected:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"rect",size:"md",selected:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"rect",size:"lg",selected:!0,children:b.jsx(nt,{children:"Label"})})]}),b.jsxs(Et,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[b.jsx(Ct,{variant:"rect",size:"sm",disabled:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"rect",size:"md",disabled:!0,children:b.jsx(nt,{children:"Label"})}),b.jsx(Ct,{variant:"rect",size:"lg",disabled:!0,children:b.jsx(nt,{children:"Label"})})]})]})]})})]})}const HD=V.createContext("plain");function Dp({type:n="plain",...e}){return b.jsx(HD.Provider,{value:n,children:b.jsx(Et,{flexDirection:"column",alignItems:"stretch",gapRow:n==="plain"?8:1,...e})})}function kr({children:n,subtitle:e,selected:t,leadingAccessory:i,trailingAccessory:r,isFirst:s,isLast:o,...a}){const l=V.useContext(HD);return b.jsx(Et,{height:e?72:60,borderRadius:l==="plain"?16:void 0,borderTopRadius:l==="inset"?s?16:0:void 0,borderBottomRadius:l==="inset"?o?16:0:void 0,paddingX:20,flexDirection:"row",alignItems:"center",gapColumn:16,backgroundColor:l==="plain"?Vt.foreground:Vt.background,backgroundOpacity:l==="plain"?t?.2:0:.2,hover:{backgroundOpacity:l==="plain"&&t?.2:.1},active:l==="plain"?{backgroundOpacity:.3}:void 0,cursor:"pointer",...a,children:b.jsxs(Xr,{color:Vt.foreground,children:[i&&b.jsx(Et,{children:i}),b.jsxs(Et,{flexDirection:"column",flexGrow:1,children:[b.jsx(Xr,{fontSize:18,children:n}),b.jsx(Xr,{fontSize:14,opacity:.5,children:e})]}),r&&b.jsx(Et,{children:r})]})})}function n6(){return b.jsxs(Et,{flexDirection:"column",gapRow:32,alignItems:"center",children:[b.jsxs(Et,{flexDirection:"column",md:{flexDirection:"row"},gap:32,children:[b.jsx(Li,{borderRadius:32,padding:16,children:b.jsxs(Dp,{type:"plain",width:400,children:[b.jsx(kr,{subtitle:b.jsx(nt,{children:"Subtitle"}),trailingAccessory:b.jsx(Yc,{height:18,width:18,opacity:.3}),children:b.jsx(nt,{children:"Title"})}),b.jsx(kr,{trailingAccessory:b.jsx(Yc,{height:18,width:18,opacity:.3}),children:b.jsx(nt,{children:"Title"})}),b.jsx(kr,{subtitle:b.jsx(nt,{children:"Subtitle"}),selected:!0,trailingAccessory:b.jsx(Yc,{height:18,width:18,opacity:.3}),children:b.jsx(nt,{children:"Title"})})]})}),b.jsx(Li,{borderRadius:32,padding:16,children:b.jsxs(Dp,{type:"plain",width:400,children:[b.jsx(kr,{subtitle:b.jsx(nt,{children:"Subtitle"}),leadingAccessory:b.jsx(bt,{height:16,width:16}),trailingAccessory:b.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:b.jsx(Xc,{height:14,width:14})}),children:b.jsx(nt,{children:"Title"})}),b.jsx(kr,{leadingAccessory:b.jsx(bt,{height:16,width:16}),trailingAccessory:b.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:b.jsx(Xc,{height:14,width:14})}),children:b.jsx(nt,{children:"Title"})}),b.jsx(kr,{subtitle:b.jsx(nt,{children:"Subtitle"}),selected:!0,leadingAccessory:b.jsx(bt,{height:16,width:16}),trailingAccessory:b.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:b.jsx(Xc,{height:14,width:14})}),children:b.jsx(nt,{children:"Title"})})]})})]}),b.jsxs(Et,{flexDirection:"column",md:{flexDirection:"row"},gap:32,children:[b.jsx(Li,{borderRadius:32,padding:16,children:b.jsxs(Dp,{type:"inset",width:400,children:[b.jsx(kr,{isFirst:!0,subtitle:b.jsx(nt,{children:"Subtitle"}),trailingAccessory:b.jsx(Yc,{height:18,width:18,opacity:.3}),children:b.jsx(nt,{children:"Title"})}),b.jsx(kr,{trailingAccessory:b.jsx(Yc,{height:18,width:18,opacity:.3}),children:b.jsx(nt,{children:"Title"})}),b.jsx(kr,{isLast:!0,subtitle:b.jsx(nt,{children:"Subtitle"}),trailingAccessory:b.jsx(Yc,{height:18,width:18,opacity:.3}),children:b.jsx(nt,{children:"Title"})})]})}),b.jsx(Li,{borderRadius:32,padding:16,children:b.jsxs(Dp,{type:"inset",width:400,children:[b.jsx(kr,{isFirst:!0,subtitle:b.jsx(nt,{children:"Subtitle"}),leadingAccessory:b.jsx(bt,{height:16,width:16}),trailingAccessory:b.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:b.jsx(Xc,{height:14,width:14})}),children:b.jsx(nt,{children:"Title"})}),b.jsx(kr,{leadingAccessory:b.jsx(bt,{height:16,width:16}),trailingAccessory:b.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:b.jsx(Xc,{height:14,width:14})}),children:b.jsx(nt,{children:"Title"})}),b.jsx(kr,{isLast:!0,subtitle:b.jsx(nt,{children:"Subtitle"}),leadingAccessory:b.jsx(bt,{height:16,width:16}),trailingAccessory:b.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:b.jsx(Xc,{height:14,width:14})}),children:b.jsx(nt,{children:"Title"})})]})})]})]})}const Ny=new G,i6={xs:{height:12,knobHeight:8},sm:{height:16,knobHeight:12},md:{height:28,knobHeight:20},lg:{height:44,knobHeight:32}};function ca({value:n,defaultValue:e,onValueChange:t,min:i=0,max:r=100,step:s=1,size:o="md",icon:a,disabled:l,...A}){const[h,d]=V.useState(e),f=n??h??50,g=V.useRef(null),E=V.useRef(t);E.current=t;const C=n!=null,y=V.useMemo(()=>{let P=!1;function K(w){var q;if(g.current==null)return;Ny.copy(w.point),g.current.interactionPanel.worldToLocal(Ny);const L=Math.min(Math.max(Math.round(((Ny.x+.5)*(r-i)+i)/s)*s,i),r);C||d(L),(q=E.current)==null||q.call(E,L),w.stopPropagation()}return{onPointerDown(w){P=!0,K(w),w.target.setPointerCapture(w.pointerId)},onPointerMove(w){P&&K(w)},onPointerUp(w){P&&(P=!1,w.stopPropagation())}}},[r,i,C,s]),p=r-i,v=`${((1-.03)*Om(f/p,0,1)+.03)*100}%`,{height:I,knobHeight:B}=i6[o],R=(I-B)/2,M=o=="md"||o=="lg",T=o==="md"?12:18;return b.jsx(Et,{ref:g,height:I,borderRadius:I/2,backgroundColor:Vt.background,borderColor:Vt.background,backgroundOpacity:.4,positionType:"relative",borderOpacity:.4,cursor:l?void 0:"pointer",border:2,borderBend:-.3,panelMaterialClass:Ed,...l?{}:y,...A,children:b.jsx(Et,{positionType:"absolute",inset:-2,children:b.jsxs(Et,{width:v,minWidth:I,height:"100%",borderRadius:I/2,backgroundOpacity:l?.35:.6,backgroundColor:Vt.foreground,children:[M&&b.jsx(Et,{width:I,height:I,alignItems:"center",justifyContent:"center",children:b.jsx(Xr,{color:Vt.foreground,width:T,height:T,opacity:l?.4:1,children:a})}),b.jsx(Et,{positionType:"absolute",height:B,width:B,borderRadius:B/2,positionTop:R,positionRight:R,backgroundColor:Vt.foreground,backgroundOpacity:l?0:1})]})})})}function r6(){return b.jsxs(Li,{borderRadius:32,padding:16,flexDirection:"column",md:{flexDirection:"row"},gapColumn:16,gapRow:32,children:[b.jsxs(Et,{flexDirection:"column",gapRow:16,width:250,children:[b.jsx(ca,{size:"xs",defaultValue:25}),b.jsx(ca,{size:"sm",defaultValue:50}),b.jsx(ca,{size:"md",defaultValue:75,icon:b.jsx(bt,{})}),b.jsx(ca,{size:"lg",defaultValue:100,icon:b.jsx(bt,{})})]}),b.jsxs(Et,{flexDirection:"column",gapRow:16,width:250,children:[b.jsx(ca,{size:"xs",defaultValue:25,disabled:!0}),b.jsx(ca,{size:"sm",defaultValue:50,disabled:!0}),b.jsx(ca,{size:"md",defaultValue:75,disabled:!0,icon:b.jsx(bt,{})}),b.jsx(ca,{size:"lg",defaultValue:100,disabled:!0,icon:b.jsx(bt,{})})]})]})}function s6(){return b.jsxs(Li,{borderRadius:32,padding:16,flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[b.jsxs(cg,{defaultValue:"1",children:[b.jsx(Gi,{value:"1",children:b.jsx(nt,{children:"Label"})}),b.jsx(Gi,{value:"2",children:b.jsx(nt,{children:"Label"})}),b.jsx(Gi,{value:"3",children:b.jsx(nt,{children:"Label"})}),b.jsx(Gi,{value:"4",children:b.jsx(nt,{children:"Long Label"})}),b.jsx(Gi,{value:"5",disabled:!0,children:b.jsx(nt,{children:"Disabled"})})]}),b.jsxs(cg,{defaultValue:"1",children:[b.jsxs(Gi,{value:"1",children:[b.jsx(bt,{height:12,width:12}),b.jsx(nt,{children:"Label"})]}),b.jsxs(Gi,{value:"2",children:[b.jsx(bt,{height:12,width:12}),b.jsx(nt,{children:"Label"})]}),b.jsxs(Gi,{value:"3",children:[b.jsx(bt,{height:12,width:12}),b.jsx(nt,{children:"Label"})]}),b.jsxs(Gi,{value:"4",disabled:!0,children:[b.jsx(bt,{height:12,width:12}),b.jsx(nt,{children:"Disabled"})]})]}),b.jsxs(cg,{defaultValue:"1",disabled:!0,children:[b.jsx(Gi,{value:"1",children:b.jsx(nt,{children:"Label"})}),b.jsx(Gi,{value:"2",children:b.jsx(nt,{children:"Label"})}),b.jsx(Gi,{value:"3",children:b.jsx(nt,{children:"Label"})}),b.jsx(Gi,{value:"4",children:b.jsx(nt,{children:"Long Label"})}),b.jsx(Gi,{value:"5",disabled:!0,children:b.jsx(nt,{children:"Disabled"})})]})]})}const VD=V.createContext(void 0);function o6({value:n,defaultValue:e,onValueChange:t,...i}){const[r,s]=V.useState(e),o=n!==void 0?n:r,a=V.useRef(t);a.current=t;const[l,A]=V.useState(!1),h=V.useMemo(()=>({isExpanded:l,setIsExpanded:A,value:o,setValue:f=>{var g;s(f),(g=a.current)==null||g.call(a,f)}}),[l,o]),d=V.useRef();return b.jsx(VD.Provider,{value:h,children:b.jsx(Li,{minHeight:68,borderRadius:34,minWidth:68,padding:8,border:4,flexDirection:"column",gapRow:8,onHoverChange:f=>{f?d.current=setTimeout(()=>A(!0),300):(clearTimeout(d.current),A(!1))},...i})})}function bp({value:n,children:e,icon:t,...i}){const{isExpanded:r,value:s,setValue:o}=V.useContext(VD),a=s===n;return b.jsx(Et,{minWidth:44,height:44,borderRadius:22,backgroundColor:Vt.foreground,backgroundOpacity:a?.2:0,hover:a?void 0:{backgroundOpacity:.1},cursor:"pointer",flexDirection:"row",alignItems:"center",gapColumn:10,...i,onClick:l=>{var A;o(n),(A=i.onClick)==null||A.call(i,l)},children:b.jsxs(Xr,{color:Vt.foreground,fontSize:16,children:[b.jsx(Et,{width:44,flexDirection:"row",justifyContent:"center",children:b.jsx(Xr,{width:22,height:22,children:t})}),r&&b.jsx(Et,{paddingRight:28,children:e})]})})}function a6(){return b.jsxs(o6,{defaultValue:"1",children:[b.jsx(bp,{value:"1",icon:b.jsx(bt,{}),children:b.jsx(nt,{children:"Label"})}),b.jsx(bp,{value:"2",icon:b.jsx(bt,{}),children:b.jsx(nt,{children:"Label"})}),b.jsx(bp,{value:"3",icon:b.jsx(bt,{}),children:b.jsx(nt,{children:"Label"})}),b.jsx(bp,{value:"4",icon:b.jsx(bt,{}),children:b.jsx(nt,{children:"Label"})})]})}function NA({value:n=0,...e}){return b.jsx(Et,{width:"100%",height:4,borderRadius:2,backgroundColor:Vt.foreground,backgroundOpacity:.2,...e,children:b.jsx(Et,{backgroundColor:Vt.foreground,backgroundOpacity:.8,minWidth:4,width:`${n*100}%`,height:4,borderRadius:2})})}function l6(){return b.jsxs(Li,{width:200,borderRadius:32,padding:16,flexDirection:"column",gapRow:16,children:[b.jsx(NA,{value:0}),b.jsx(NA,{value:.25}),b.jsx(NA,{value:.5}),b.jsx(NA,{value:.75}),b.jsx(NA,{value:1})]})}const c6={sm:{diameter:20,pillWidth:3,pillHeight:6},md:{diameter:28,pillWidth:4,pillHeight:10},lg:{diameter:44,pillWidth:6,pillHeight:16}},Lp=8;function Py({size:n="md",...e}){const t=V.useMemo(()=>new Array(Lp).fill(void 0).map(()=>zt(0)),[]);Zr(({clock:o})=>{for(let a=0;ab.jsx(Et,{positionType:"absolute",inset:0,transformRotateZ:a*360/Lp,alignItems:"center",justifyContent:"flex-start",children:b.jsx(Et,{backgroundOpacity:o,width:s,height:r,borderRadius:s/2,backgroundColor:Vt.foreground})},a))})}function u6(){return b.jsxs(Li,{borderRadius:32,padding:16,flexDirection:"row",gapColumn:16,children:[b.jsx(Py,{size:"sm"}),b.jsx(Py,{size:"md"}),b.jsx(Py,{size:"lg"})]})}function ua({variant:n="rect",prefix:e,placeholder:t,panelMaterialClass:i,multiline:r,value:s,defaultValue:o,onValueChange:a,tabIndex:l,disabled:A=!1,...h}){const[d,f]=V.useState(null),g=V.useMemo(()=>{if(d!=null){if(d.value instanceof kn){const E=d.value;return Yn(()=>E.value.length>0?0:void 0)}return d.value.length>0?0:void 0}},[d]);return b.jsx(Et,{height:44,width:"100%",paddingRight:20,paddingLeft:e?0:20,flexDirection:"row",alignItems:"center",borderRadius:n==="pill"?22:12,backgroundColor:"#444",backgroundOpacity:A?.3:.4,borderOpacity:A?.3:.4,hover:A?void 0:{backgroundOpacity:.2,borderOpacity:.2},border:2,borderColor:"#444",borderBend:A?0:-.3,panelMaterialClass:Ed,overflow:"hidden",...h,children:b.jsxs(Xr,{color:Vt.foreground,opacity:A?.2:.5,children:[e&&b.jsx(Et,{paddingX:12,children:b.jsx(Xr,{width:14,height:14,children:e})}),b.jsxs(Et,{justifyContent:"center",minHeight:1,flexGrow:1,positionType:"relative",children:[t!=null&&b.jsx(nt,{fontSize:14,positionType:"absolute",opacity:g,children:t}),b.jsx(u8,{ref:f,height:"100%",width:"100%",verticalAlign:"center",fontSize:14,panelMaterialClass:i,multiline:r,value:s,defaultValue:o,onValueChange:a,tabIndex:l,disabled:A})]})]})})}function A6(){const[n,e]=V.useState("");return b.jsx(Li,{borderRadius:32,padding:16,children:b.jsxs(Et,{flexDirection:"row",gapColumn:16,children:[b.jsxs(Et,{flexDirection:"column",alignItems:"stretch",gapRow:16,width:300,children:[b.jsx(ua,{value:n,onValueChange:e,variant:"rect",placeholder:"Placeholder"}),b.jsx(ua,{value:n,onValueChange:e,variant:"rect",placeholder:"Placeholder",prefix:b.jsx(bt,{})}),b.jsx(ua,{value:n,onValueChange:e,variant:"rect",placeholder:"Placeholder",disabled:!0}),b.jsx(ua,{value:n,onValueChange:e,variant:"rect",placeholder:"Placeholder",disabled:!0,prefix:b.jsx(bt,{})})]}),b.jsxs(Et,{flexDirection:"column",alignItems:"stretch",gapRow:16,width:300,children:[b.jsx(ua,{value:n,onValueChange:e,variant:"pill",placeholder:"Placeholder"}),b.jsx(ua,{value:n,onValueChange:e,variant:"pill",placeholder:"Placeholder",prefix:b.jsx(bt,{})}),b.jsx(ua,{value:n,onValueChange:e,variant:"pill",placeholder:"Placeholder",disabled:!0}),b.jsx(ua,{value:n,onValueChange:e,variant:"pill",placeholder:"Placeholder",disabled:!0,prefix:b.jsx(bt,{})})]})]})})}const Uy={card:$8,checkbox:e6,button:t6,list:n6,slider:r6,tabs:s6,"tab-bar":a6,progress:l6,loading:u6,input:A6},h6="button";function d6(){const[n,e]=V.useState(()=>{let s=new URLSearchParams(window.location.search).get("component");return(s==null||!(s in Uy))&&(s=h6),s}),t=r=>{const s=new URLSearchParams(window.location.search);s.set("component",r),history.replaceState(null,"","?"+s.toString()),e(r)},i=Uy[n];return b.jsxs(Fz,{events:j8,style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:[b.jsx(V8,{}),b.jsx("color",{attach:"background",args:["black"]}),b.jsx("ambientLight",{intensity:.5}),b.jsx("directionalLight",{intensity:1,position:[-5,5,10]}),b.jsx(K8,{children:b.jsxs(h8,{overflow:"scroll",scrollbarColor:"black",backgroundColor:"white",gap:32,paddingX:32,alignItems:"center",padding:32,children:[b.jsx(Li,{borderRadius:32,gap:32,paddingX:16,children:b.jsx(Et,{flexDirection:"row",maxWidth:"100%",overflow:"scroll",paddingY:16,children:b.jsx(cg,{value:n,onValueChange:t,children:Object.keys(Uy).map(r=>b.jsx(Gi,{value:r,children:b.jsxs(nt,{children:[r[0].toUpperCase(),r.slice(1)]})},r))})})}),b.jsx(Et,{flexGrow:1,flexDirection:"row",justifyContent:"center",alignItems:"center",children:b.jsx(i,{})}),b.jsxs(Li,{padding:8,flexDirection:"row",gap:8,alignItems:"center",children:[b.jsxs(nt,{backgroundColor:"black",padding:8,borderRadius:16,marginLeft:8,children:["npx uikit component add apfel ",n]}),b.jsx(Ct,{onClick:()=>navigator.clipboard.writeText(`npx uikit component add apfel ${n}`),variant:"icon",children:b.jsx(I8,{})})]})]})})]})}A2(document.getElementById("root")).render(b.jsx(V.StrictMode,{children:b.jsx(d6,{})})); diff --git a/examples/apfel/assets/index-yNiRayrx.js b/examples/apfel/assets/index-yNiRayrx.js deleted file mode 100644 index 5a779ffd..00000000 --- a/examples/apfel/assets/index-yNiRayrx.js +++ /dev/null @@ -1,4056 +0,0 @@ -var fb=Object.defineProperty;var pb=(n,e,t)=>e in n?fb(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ne=(n,e,t)=>(pb(n,typeof e!="symbol"?e+"":e,t),t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function Rv(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Uw={exports:{}},Fg={},Fw={exports:{}},Vt={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Hh=Symbol.for("react.element"),gb=Symbol.for("react.portal"),mb=Symbol.for("react.fragment"),Eb=Symbol.for("react.strict_mode"),yb=Symbol.for("react.profiler"),Cb=Symbol.for("react.provider"),vb=Symbol.for("react.context"),Ib=Symbol.for("react.forward_ref"),xb=Symbol.for("react.suspense"),Bb=Symbol.for("react.memo"),_b=Symbol.for("react.lazy"),tB=Symbol.iterator;function Sb(n){return n===null||typeof n!="object"?null:(n=tB&&n[tB]||n["@@iterator"],typeof n=="function"?n:null)}var kw={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ow=Object.assign,Gw={};function Tu(n,e,t){this.props=n,this.context=e,this.refs=Gw,this.updater=t||kw}Tu.prototype.isReactComponent={};Tu.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Tu.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function zw(){}zw.prototype=Tu.prototype;function Tv(n,e,t){this.props=n,this.context=e,this.refs=Gw,this.updater=t||kw}var Dv=Tv.prototype=new zw;Dv.constructor=Tv;Ow(Dv,Tu.prototype);Dv.isPureReactComponent=!0;var nB=Array.isArray,Hw=Object.prototype.hasOwnProperty,bv={current:null},Vw={key:!0,ref:!0,__self:!0,__source:!0};function Ww(n,e,t){var i,r={},s=null,o=null;if(e!=null)for(i in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)Hw.call(e,i)&&!Vw.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(a===1)r.children=t;else if(1>>1,Ce=F[ue];if(0>>1;uer(z,te))Or(k,z)?(F[ue]=k,F[O]=te,ue=O):(F[ue]=z,F[W]=te,ue=W);else if(Or(k,te))F[ue]=k,F[O]=te,ue=O;else break e}}return ee}function r(F,ee){var te=F.sortIndex-ee.sortIndex;return te!==0?te:F.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var l=[],A=[],h=1,d=null,f=3,g=!1,E=!1,v=!1,y=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(F){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=F)i(A),ee.sortIndex=ee.expirationTime,e(l,ee);else break;ee=t(A)}}function B(F){if(v=!1,I(F),!E)if(t(l)!==null)E=!0,se(R);else{var ee=t(A);ee!==null&&de(B,ee.startTime-F)}}function R(F,ee){E=!1,v&&(v=!1,p(U),U=-1),g=!0;var te=f;try{for(I(ee),d=t(l);d!==null&&(!(d.expirationTime>ee)||F&&!b());){var ue=d.callback;if(typeof ue=="function"){d.callback=null,f=d.priorityLevel;var Ce=ue(d.expirationTime<=ee);ee=n.unstable_now(),typeof Ce=="function"?d.callback=Ce:d===t(l)&&i(l),I(ee)}else i(l);d=t(l)}if(d!==null)var Oe=!0;else{var W=t(A);W!==null&&de(B,W.startTime-ee),Oe=!1}return Oe}finally{d=null,f=te,g=!1}}var M=!1,T=null,U=-1,K=5,w=-1;function b(){return!(n.unstable_now()-wF||125ue?(F.sortIndex=te,e(A,F),t(l)===null&&F===t(A)&&(v?(p(U),U=-1):v=!0,de(B,te-ue))):(F.sortIndex=Ce,e(l,F),E||g||(E=!0,se(R))),F},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(F){var ee=f;return function(){var te=f;f=ee;try{return F.apply(this,arguments)}finally{f=te}}}})(jw);Jw.exports=jw;var Ub=Jw.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Kw=Y,Sr=Ub;function ke(n){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+n,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Qy=Object.prototype.hasOwnProperty,Fb=/^[: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]*$/,rB={},sB={};function kb(n){return Qy.call(sB,n)?!0:Qy.call(rB,n)?!1:Fb.test(n)?sB[n]=!0:(rB[n]=!0,!1)}function Ob(n,e,t,i){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:t!==null?!t.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function Gb(n,e,t,i){if(e===null||typeof e>"u"||Ob(n,e,t,i))return!0;if(i)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function ji(n,e,t,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=n,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var yi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){yi[n]=new ji(n,0,!1,n,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var e=n[0];yi[e]=new ji(e,1,!1,n[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(n){yi[n]=new ji(n,2,!1,n.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){yi[n]=new ji(n,2,!1,n,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(n){yi[n]=new ji(n,3,!1,n.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(n){yi[n]=new ji(n,3,!0,n,null,!1,!1)});["capture","download"].forEach(function(n){yi[n]=new ji(n,4,!1,n,null,!1,!1)});["cols","rows","size","span"].forEach(function(n){yi[n]=new ji(n,6,!1,n,null,!1,!1)});["rowSpan","start"].forEach(function(n){yi[n]=new ji(n,5,!1,n.toLowerCase(),null,!1,!1)});var Pv=/[\-:]([a-z])/g;function Uv(n){return n[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(n){var e=n.replace(Pv,Uv);yi[e]=new ji(e,1,!1,n,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var e=n.replace(Pv,Uv);yi[e]=new ji(e,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(n){var e=n.replace(Pv,Uv);yi[e]=new ji(e,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(n){yi[n]=new ji(n,1,!1,n.toLowerCase(),null,!1,!1)});yi.xlinkHref=new ji("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(n){yi[n]=new ji(n,1,!1,n.toLowerCase(),null,!0,!0)});function Fv(n,e,t,i){var r=yi.hasOwnProperty(e)?yi[e]:null;(r!==null?r.type!==0:i||!(2a||r[o]!==s[a]){var l=` -`+r[o].replace(" at new "," at ");return n.displayName&&l.includes("")&&(l=l.replace("",n.displayName)),l}while(1<=o&&0<=a);break}}}finally{V0=!1,Error.prepareStackTrace=t}return(n=n?n.displayName||n.name:"")?bA(n):""}function zb(n){switch(n.tag){case 5:return bA(n.type);case 16:return bA("Lazy");case 13:return bA("Suspense");case 19:return bA("SuspenseList");case 0:case 2:case 15:return n=W0(n.type,!1),n;case 11:return n=W0(n.type.render,!1),n;case 1:return n=W0(n.type,!0),n;default:return""}}function by(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case jc:return"Fragment";case Jc:return"Portal";case Ry:return"Profiler";case kv:return"StrictMode";case Ty:return"Suspense";case Dy:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case $w:return(n.displayName||"Context")+".Consumer";case Zw:return(n._context.displayName||"Context")+".Provider";case Ov:var e=n.render;return n=n.displayName,n||(n=e.displayName||e.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case Gv:return e=n.displayName||null,e!==null?e:by(n.type)||"Memo";case Ko:e=n._payload,n=n._init;try{return by(n(e))}catch{}}return null}function Hb(n){var e=n.type;switch(n.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=e.render,n=n.displayName||n.name||"",e.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return by(e);case 8:return e===kv?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function ya(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function tM(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Vb(n){var e=tM(n)?"checked":"value",t=Object.getOwnPropertyDescriptor(n.constructor.prototype,e),i=""+n[e];if(!n.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,s=t.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(n,e,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function lf(n){n._valueTracker||(n._valueTracker=Vb(n))}function nM(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=tM(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}function ig(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function Ny(n,e){var t=e.checked;return Dn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??n._wrapperState.initialChecked})}function aB(n,e){var t=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;t=ya(e.value!=null?e.value:t),n._wrapperState={initialChecked:i,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function iM(n,e){e=e.checked,e!=null&&Fv(n,"checked",e,!1)}function Ly(n,e){iM(n,e);var t=ya(e.value),i=e.type;if(t!=null)i==="number"?(t===0&&n.value===""||n.value!=t)&&(n.value=""+t):n.value!==""+t&&(n.value=""+t);else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}e.hasOwnProperty("value")?Py(n,e.type,t):e.hasOwnProperty("defaultValue")&&Py(n,e.type,ya(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(n.defaultChecked=!!e.defaultChecked)}function lB(n,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+n._wrapperState.initialValue,t||e===n.value||(n.value=e),n.defaultValue=e}t=n.name,t!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,t!==""&&(n.name=t)}function Py(n,e,t){(e!=="number"||ig(n.ownerDocument)!==n)&&(t==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+t&&(n.defaultValue=""+t))}var NA=Array.isArray;function Au(n,e,t,i){if(n=n.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=cf.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;e.firstChild;)n.appendChild(e.firstChild)}});function rh(n,e){if(e){var t=n.firstChild;if(t&&t===n.lastChild&&t.nodeType===3){t.nodeValue=e;return}}n.textContent=e}var zA={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},Wb=["Webkit","ms","Moz","O"];Object.keys(zA).forEach(function(n){Wb.forEach(function(e){e=e+n.charAt(0).toUpperCase()+n.substring(1),zA[e]=zA[n]})});function aM(n,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||zA.hasOwnProperty(n)&&zA[n]?(""+e).trim():e+"px"}function lM(n,e){n=n.style;for(var t in e)if(e.hasOwnProperty(t)){var i=t.indexOf("--")===0,r=aM(t,e[t],i);t==="float"&&(t="cssFloat"),i?n.setProperty(t,r):n[t]=r}}var Yb=Dn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ky(n,e){if(e){if(Yb[n]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(ke(137,n));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(ke(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(ke(61))}if(e.style!=null&&typeof e.style!="object")throw Error(ke(62))}}function Oy(n,e){if(n.indexOf("-")===-1)return typeof e.is=="string";switch(n){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!1;default:return!0}}var Gy=null;function zv(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var zy=null,hu=null,du=null;function AB(n){if(n=Yh(n)){if(typeof zy!="function")throw Error(ke(280));var e=n.stateNode;e&&(e=Hg(e),zy(n.stateNode,n.type,e))}}function cM(n){hu?du?du.push(n):du=[n]:hu=n}function uM(){if(hu){var n=hu,e=du;if(du=hu=null,AB(n),e)for(n=0;n>>=0,n===0?32:31-(iN(n)/rN|0)|0}var uf=64,Af=4194304;function LA(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function ag(n,e){var t=n.pendingLanes;if(t===0)return 0;var i=0,r=n.suspendedLanes,s=n.pingedLanes,o=t&268435455;if(o!==0){var a=o&~r;a!==0?i=LA(a):(s&=o,s!==0&&(i=LA(s)))}else o=t&~r,o!==0?i=LA(o):s!==0&&(i=LA(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=t&16),e=n.entangledLanes,e!==0)for(n=n.entanglements,e&=i;0t;t++)e.push(n);return e}function Vh(n,e,t){n.pendingLanes|=e,e!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,e=31-cs(e),n[e]=t}function lN(n,e){var t=n.pendingLanes&~e;n.pendingLanes=e,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=e,n.mutableReadLanes&=e,n.entangledLanes&=e,e=n.entanglements;var i=n.eventTimes;for(n=n.expirationTimes;0=VA),CB=" ",vB=!1;function RM(n,e){switch(n){case"keyup":return PN.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function TM(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Kc=!1;function FN(n,e){switch(n){case"compositionend":return TM(e);case"keypress":return e.which!==32?null:(vB=!0,CB);case"textInput":return n=e.data,n===CB&&vB?null:n;default:return null}}function kN(n,e){if(Kc)return n==="compositionend"||!Kv&&RM(n,e)?(n=MM(),Tp=Xv=na=null,Kc=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=_B(t)}}function LM(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?LM(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function PM(){for(var n=window,e=ig();e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=ig(n.document)}return e}function qv(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}function JN(n){var e=PM(),t=n.focusedElem,i=n.selectionRange;if(e!==t&&t&&t.ownerDocument&&LM(t.ownerDocument.documentElement,t)){if(i!==null&&qv(t)){if(e=i.start,n=i.end,n===void 0&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if(n=(e=t.ownerDocument||document)&&e.defaultView||window,n.getSelection){n=n.getSelection();var r=t.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!n.extend&&s>i&&(r=i,i=s,s=r),r=SB(t,s);var o=SB(t,i);r&&o&&(n.rangeCount!==1||n.anchorNode!==r.node||n.anchorOffset!==r.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),n.removeAllRanges(),s>i?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}}for(e=[],n=t;n=n.parentNode;)n.nodeType===1&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,qc=null,Jy=null,YA=null,jy=!1;function wB(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;jy||qc==null||qc!==ig(i)||(i=qc,"selectionStart"in i&&qv(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),YA&&uh(YA,i)||(YA=i,i=ug(Jy,"onSelect"),0eu||(n.current=tC[eu],tC[eu]=null,eu--)}function En(n,e){eu++,tC[eu]=n.current,n.current=e}var Ca={},bi=Ba(Ca),sr=Ba(!1),Pl=Ca;function Iu(n,e){var t=n.type.contextTypes;if(!t)return Ca;var i=n.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in t)r[s]=e[s];return i&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=e,n.__reactInternalMemoizedMaskedChildContext=r),r}function or(n){return n=n.childContextTypes,n!=null}function hg(){xn(sr),xn(bi)}function NB(n,e,t){if(bi.current!==Ca)throw Error(ke(168));En(bi,e),En(sr,t)}function WM(n,e,t){var i=n.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(ke(108,Hb(n)||"Unknown",r));return Dn({},t,i)}function dg(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||Ca,Pl=bi.current,En(bi,n),En(sr,sr.current),!0}function LB(n,e,t){var i=n.stateNode;if(!i)throw Error(ke(169));t?(n=WM(n,e,Pl),i.__reactInternalMemoizedMergedChildContext=n,xn(sr),xn(bi),En(bi,n)):xn(sr),En(sr,t)}var lo=null,Vg=!1,sE=!1;function YM(n){lo===null?lo=[n]:lo.push(n)}function oL(n){Vg=!0,YM(n)}function _a(){if(!sE&&lo!==null){sE=!0;var n=0,e=An;try{var t=lo;for(An=1;n>=o,r-=o,Ao=1<<32-cs(e)+r|t<U?(K=T,T=null):K=T.sibling;var w=f(p,T,I[U],B);if(w===null){T===null&&(T=K);break}n&&T&&w.alternate===null&&e(p,T),C=s(w,C,U),M===null?R=w:M.sibling=w,M=w,T=K}if(U===I.length)return t(p,T),Sn&&fl(p,U),R;if(T===null){for(;UU?(K=T,T=null):K=T.sibling;var b=f(p,T,w.value,B);if(b===null){T===null&&(T=K);break}n&&T&&b.alternate===null&&e(p,T),C=s(b,C,U),M===null?R=b:M.sibling=b,M=b,T=K}if(w.done)return t(p,T),Sn&&fl(p,U),R;if(T===null){for(;!w.done;U++,w=I.next())w=d(p,w.value,B),w!==null&&(C=s(w,C,U),M===null?R=w:M.sibling=w,M=w);return Sn&&fl(p,U),R}for(T=i(p,T);!w.done;U++,w=I.next())w=g(T,p,U,w.value,B),w!==null&&(n&&w.alternate!==null&&T.delete(w.key===null?U:w.key),C=s(w,C,U),M===null?R=w:M.sibling=w,M=w);return n&&T.forEach(function(q){return e(p,q)}),Sn&&fl(p,U),R}function y(p,C,I,B){if(typeof I=="object"&&I!==null&&I.type===jc&&I.key===null&&(I=I.props.children),typeof I=="object"&&I!==null){switch(I.$$typeof){case af:e:{for(var R=I.key,M=C;M!==null;){if(M.key===R){if(R=I.type,R===jc){if(M.tag===7){t(p,M.sibling),C=r(M,I.props.children),C.return=p,p=C;break e}}else if(M.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Ko&&zB(R)===M.type){t(p,M.sibling),C=r(M,I.props),C.ref=dA(p,M,I),C.return=p,p=C;break e}t(p,M);break}else e(p,M);M=M.sibling}I.type===jc?(C=Rl(I.props.children,p.mode,B,I.key),C.return=p,p=C):(B=kp(I.type,I.key,I.props,null,p.mode,B),B.ref=dA(p,C,I),B.return=p,p=B)}return o(p);case Jc:e:{for(M=I.key;C!==null;){if(C.key===M)if(C.tag===4&&C.stateNode.containerInfo===I.containerInfo&&C.stateNode.implementation===I.implementation){t(p,C.sibling),C=r(C,I.children||[]),C.return=p,p=C;break e}else{t(p,C);break}else e(p,C);C=C.sibling}C=dE(I,p.mode,B),C.return=p,p=C}return o(p);case Ko:return M=I._init,y(p,C,M(I._payload),B)}if(NA(I))return E(p,C,I,B);if(lA(I))return v(p,C,I,B);Ef(p,I)}return typeof I=="string"&&I!==""||typeof I=="number"?(I=""+I,C!==null&&C.tag===6?(t(p,C.sibling),C=r(C,I),C.return=p,p=C):(t(p,C),C=hE(I,p.mode,B),C.return=p,p=C),o(p)):t(p,C)}return y}var Bu=eQ(!0),tQ=eQ(!1),Xh={},Ls=Ba(Xh),fh=Ba(Xh),ph=Ba(Xh);function Bl(n){if(n===Xh)throw Error(ke(174));return n}function oI(n,e){switch(En(ph,e),En(fh,n),En(Ls,Xh),n=e.nodeType,n){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:Fy(null,"");break;default:n=n===8?e.parentNode:e,e=n.namespaceURI||null,n=n.tagName,e=Fy(e,n)}xn(Ls),En(Ls,e)}function _u(){xn(Ls),xn(fh),xn(ph)}function nQ(n){Bl(ph.current);var e=Bl(Ls.current),t=Fy(e,n.type);e!==t&&(En(fh,n),En(Ls,t))}function aI(n){fh.current===n&&(xn(Ls),xn(fh))}var Qn=Ba(0);function yg(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var oE=[];function lI(){for(var n=0;nt?t:4,n(!0);var i=aE.transition;aE.transition={};try{n(!1),e()}finally{An=t,aE.transition=i}}function EQ(){return Jr().memoizedState}function uL(n,e,t){var i=Aa(n);if(t={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null},yQ(n))CQ(e,t);else if(t=KM(n,e,t,i),t!==null){var r=Wi();us(t,n,i,r),vQ(t,e,i)}}function AL(n,e,t){var i=Aa(n),r={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null};if(yQ(n))CQ(e,r);else{var s=n.alternate;if(n.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,t);if(r.hasEagerState=!0,r.eagerState=a,hs(a,o)){var l=e.interleaved;l===null?(r.next=r,rI(e)):(r.next=l.next,l.next=r),e.interleaved=r;return}}catch{}finally{}t=KM(n,e,r,i),t!==null&&(r=Wi(),us(t,n,i,r),vQ(t,e,i))}}function yQ(n){var e=n.alternate;return n===Tn||e!==null&&e===Tn}function CQ(n,e){XA=Cg=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function vQ(n,e,t){if(t&4194240){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,Vv(n,t)}}var vg={readContext:Xr,useCallback:_i,useContext:_i,useEffect:_i,useImperativeHandle:_i,useInsertionEffect:_i,useLayoutEffect:_i,useMemo:_i,useReducer:_i,useRef:_i,useState:_i,useDebugValue:_i,useDeferredValue:_i,useTransition:_i,useMutableSource:_i,useSyncExternalStore:_i,useId:_i,unstable_isNewReconciler:!1},hL={readContext:Xr,useCallback:function(n,e){return ws().memoizedState=[n,e===void 0?null:e],n},useContext:Xr,useEffect:VB,useImperativeHandle:function(n,e,t){return t=t!=null?t.concat([n]):null,Lp(4194308,4,dQ.bind(null,e,n),t)},useLayoutEffect:function(n,e){return Lp(4194308,4,n,e)},useInsertionEffect:function(n,e){return Lp(4,2,n,e)},useMemo:function(n,e){var t=ws();return e=e===void 0?null:e,n=n(),t.memoizedState=[n,e],n},useReducer:function(n,e,t){var i=ws();return e=t!==void 0?t(e):e,i.memoizedState=i.baseState=e,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:e},i.queue=n,n=n.dispatch=uL.bind(null,Tn,n),[i.memoizedState,n]},useRef:function(n){var e=ws();return n={current:n},e.memoizedState=n},useState:HB,useDebugValue:dI,useDeferredValue:function(n){return ws().memoizedState=n},useTransition:function(){var n=HB(!1),e=n[0];return n=cL.bind(null,n[1]),ws().memoizedState=n,[e,n]},useMutableSource:function(){},useSyncExternalStore:function(n,e,t){var i=Tn,r=ws();if(Sn){if(t===void 0)throw Error(ke(407));t=t()}else{if(t=e(),Ai===null)throw Error(ke(349));Fl&30||sQ(i,e,t)}r.memoizedState=t;var s={value:t,getSnapshot:e};return r.queue=s,VB(aQ.bind(null,i,s,n),[n]),i.flags|=2048,Eh(9,oQ.bind(null,i,s,t,e),void 0,null),t},useId:function(){var n=ws(),e=Ai.identifierPrefix;if(Sn){var t=ho,i=Ao;t=(i&~(1<<32-cs(i)-1)).toString(32)+t,e=":"+e+"R"+t,t=gh++,0<\/script>",n=n.removeChild(n.firstChild)):typeof i.is=="string"?n=o.createElement(t,{is:i.is}):(n=o.createElement(t),t==="select"&&(o=n,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):n=o.createElementNS(n,t),n[Qs]=e,n[dh]=i,RQ(n,e,!1,!1),e.stateNode=n;e:{switch(o=Oy(t,i),t){case"dialog":vn("cancel",n),vn("close",n),r=i;break;case"iframe":case"object":case"embed":vn("load",n),r=i;break;case"video":case"audio":for(r=0;rwu&&(e.flags|=128,i=!0,fA(s,!1),e.lanes=4194304)}else{if(!i)if(n=yg(o),n!==null){if(e.flags|=128,i=!0,t=n.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),fA(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Sn)return Si(e),null}else 2*Hn()-s.renderingStartTime>wu&&t!==1073741824&&(e.flags|=128,i=!0,fA(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(t=s.last,t!==null?t.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Hn(),e.sibling=null,t=Qn.current,En(Qn,i?t&1|2:t&1),e):(Si(e),null);case 22:case 23:return yI(),i=e.memoizedState!==null,n!==null&&n.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?yr&1073741824&&(Si(e),e.subtreeFlags&6&&(e.flags|=8192)):Si(e),null;case 24:return null;case 25:return null}throw Error(ke(156,e.tag))}function CL(n,e){switch($v(e),e.tag){case 1:return or(e.type)&&hg(),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return _u(),xn(sr),xn(bi),lI(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 5:return aI(e),null;case 13:if(xn(Qn),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(ke(340));xu()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return xn(Qn),null;case 4:return _u(),null;case 10:return iI(e.type._context),null;case 22:case 23:return yI(),null;case 24:return null;default:return null}}var Cf=!1,Ri=!1,vL=typeof WeakSet=="function"?WeakSet:Set,nt=null;function ru(n,e){var t=n.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(i){Un(n,e,i)}else t.current=null}function dC(n,e,t){try{t()}catch(i){Un(n,e,i)}}var $B=!1;function IL(n,e){if(Ky=lg,n=PM(),qv(n)){if("selectionStart"in n)var t={start:n.selectionStart,end:n.selectionEnd};else e:{t=(t=n.ownerDocument)&&t.defaultView||window;var i=t.getSelection&&t.getSelection();if(i&&i.rangeCount!==0){t=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{t.nodeType,s.nodeType}catch{t=null;break e}var o=0,a=-1,l=-1,A=0,h=0,d=n,f=null;t:for(;;){for(var g;d!==t||r!==0&&d.nodeType!==3||(a=o+r),d!==s||i!==0&&d.nodeType!==3||(l=o+i),d.nodeType===3&&(o+=d.nodeValue.length),(g=d.firstChild)!==null;)f=d,d=g;for(;;){if(d===n)break t;if(f===t&&++A===r&&(a=o),f===s&&++h===i&&(l=o),(g=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=g}t=a===-1||l===-1?null:{start:a,end:l}}else t=null}t=t||{start:0,end:0}}else t=null;for(qy={focusedElem:n,selectionRange:t},lg=!1,nt=e;nt!==null;)if(e=nt,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,nt=n;else for(;nt!==null;){e=nt;try{var E=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var v=E.memoizedProps,y=E.memoizedState,p=e.stateNode,C=p.getSnapshotBeforeUpdate(e.elementType===e.type?v:rs(e.type,v),y);p.__reactInternalSnapshotBeforeUpdate=C}break;case 3:var I=e.stateNode.containerInfo;I.nodeType===1?I.textContent="":I.nodeType===9&&I.documentElement&&I.removeChild(I.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ke(163))}}catch(B){Un(e,e.return,B)}if(n=e.sibling,n!==null){n.return=e.return,nt=n;break}nt=e.return}return E=$B,$B=!1,E}function JA(n,e,t){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&n)===n){var s=r.destroy;r.destroy=void 0,s!==void 0&&dC(e,t,s)}r=r.next}while(r!==i)}}function Xg(n,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&n)===n){var i=t.create;t.destroy=i()}t=t.next}while(t!==e)}}function fC(n){var e=n.ref;if(e!==null){var t=n.stateNode;switch(n.tag){case 5:n=t;break;default:n=t}typeof e=="function"?e(n):e.current=n}}function bQ(n){var e=n.alternate;e!==null&&(n.alternate=null,bQ(e)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(e=n.stateNode,e!==null&&(delete e[Qs],delete e[dh],delete e[eC],delete e[rL],delete e[sL])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function NQ(n){return n.tag===5||n.tag===3||n.tag===4}function e_(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||NQ(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function pC(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(n,e):t.insertBefore(n,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(n,t)):(e=t,e.appendChild(n)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=Ag));else if(i!==4&&(n=n.child,n!==null))for(pC(n,e,t),n=n.sibling;n!==null;)pC(n,e,t),n=n.sibling}function gC(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.insertBefore(n,e):t.appendChild(n);else if(i!==4&&(n=n.child,n!==null))for(gC(n,e,t),n=n.sibling;n!==null;)gC(n,e,t),n=n.sibling}var mi=null,os=!1;function Fo(n,e,t){for(t=t.child;t!==null;)LQ(n,e,t),t=t.sibling}function LQ(n,e,t){if(Ns&&typeof Ns.onCommitFiberUnmount=="function")try{Ns.onCommitFiberUnmount(kg,t)}catch{}switch(t.tag){case 5:Ri||ru(t,e);case 6:var i=mi,r=os;mi=null,Fo(n,e,t),mi=i,os=r,mi!==null&&(os?(n=mi,t=t.stateNode,n.nodeType===8?n.parentNode.removeChild(t):n.removeChild(t)):mi.removeChild(t.stateNode));break;case 18:mi!==null&&(os?(n=mi,t=t.stateNode,n.nodeType===8?rE(n.parentNode,t):n.nodeType===1&&rE(n,t),lh(n)):rE(mi,t.stateNode));break;case 4:i=mi,r=os,mi=t.stateNode.containerInfo,os=!0,Fo(n,e,t),mi=i,os=r;break;case 0:case 11:case 14:case 15:if(!Ri&&(i=t.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&dC(t,e,o),r=r.next}while(r!==i)}Fo(n,e,t);break;case 1:if(!Ri&&(ru(t,e),i=t.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=t.memoizedProps,i.state=t.memoizedState,i.componentWillUnmount()}catch(a){Un(t,e,a)}Fo(n,e,t);break;case 21:Fo(n,e,t);break;case 22:t.mode&1?(Ri=(i=Ri)||t.memoizedState!==null,Fo(n,e,t),Ri=i):Fo(n,e,t);break;default:Fo(n,e,t)}}function t_(n){var e=n.updateQueue;if(e!==null){n.updateQueue=null;var t=n.stateNode;t===null&&(t=n.stateNode=new vL),e.forEach(function(i){var r=TL.bind(null,n,i);t.has(i)||(t.add(i),i.then(r,r))})}}function es(n,e){var t=e.deletions;if(t!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=Hn()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*BL(i/1960))-i,10n?16:n,ia===null)var i=!1;else{if(n=ia,ia=null,Bg=0,qt&6)throw Error(ke(331));var r=qt;for(qt|=4,nt=n.current;nt!==null;){var s=nt,o=s.child;if(nt.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lHn()-mI?Ql(n,0):gI|=t),ar(n,e)}function HQ(n,e){e===0&&(n.mode&1?(e=Af,Af<<=1,!(Af&130023424)&&(Af=4194304)):e=1);var t=Wi();n=Co(n,e),n!==null&&(Vh(n,e,t),ar(n,t))}function RL(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),HQ(n,t)}function TL(n,e){var t=0;switch(n.tag){case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;default:throw Error(ke(314))}i!==null&&i.delete(e),HQ(n,t)}var VQ;VQ=function(n,e,t){if(n!==null)if(n.memoizedProps!==e.pendingProps||sr.current)rr=!0;else{if(!(n.lanes&t)&&!(e.flags&128))return rr=!1,EL(n,e,t);rr=!!(n.flags&131072)}else rr=!1,Sn&&e.flags&1048576&&XM(e,pg,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;Pp(n,e),n=e.pendingProps;var r=Iu(e,bi.current);pu(e,t),r=uI(null,e,i,n,r,t);var s=AI();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,or(i)?(s=!0,dg(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,sI(e),r.updater=Wg,e.stateNode=r,r._reactInternals=e,oC(e,i,n,t),e=cC(null,e,i,!0,s,t)):(e.tag=0,Sn&&s&&Zv(e),Gi(null,e,r,t),e=e.child),e;case 16:i=e.elementType;e:{switch(Pp(n,e),n=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=bL(i),n=rs(i,n),r){case 0:e=lC(null,e,i,n,t);break e;case 1:e=KB(null,e,i,n,t);break e;case 11:e=JB(null,e,i,n,t);break e;case 14:e=jB(null,e,i,rs(i.type,n),t);break e}throw Error(ke(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:rs(i,r),lC(n,e,i,r,t);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:rs(i,r),KB(n,e,i,r,t);case 3:e:{if(wQ(e),n===null)throw Error(ke(387));i=e.pendingProps,s=e.memoizedState,r=s.element,qM(n,e),Eg(e,i,null,t);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=Su(Error(ke(423)),e),e=qB(n,e,i,t,r);break e}else if(i!==r){r=Su(Error(ke(424)),e),e=qB(n,e,i,t,r);break e}else for(Ir=la(e.stateNode.containerInfo.firstChild),Br=e,Sn=!0,as=null,t=tQ(e,null,i,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(xu(),i===r){e=vo(n,e,t);break e}Gi(n,e,i,t)}e=e.child}return e;case 5:return nQ(e),n===null&&iC(e),i=e.type,r=e.pendingProps,s=n!==null?n.memoizedProps:null,o=r.children,Zy(i,r)?o=null:s!==null&&Zy(i,s)&&(e.flags|=32),SQ(n,e),Gi(n,e,o,t),e.child;case 6:return n===null&&iC(e),null;case 13:return MQ(n,e,t);case 4:return oI(e,e.stateNode.containerInfo),i=e.pendingProps,n===null?e.child=Bu(e,null,i,t):Gi(n,e,i,t),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:rs(i,r),JB(n,e,i,r,t);case 7:return Gi(n,e,e.pendingProps,t),e.child;case 8:return Gi(n,e,e.pendingProps.children,t),e.child;case 12:return Gi(n,e,e.pendingProps.children,t),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,En(gg,i._currentValue),i._currentValue=o,s!==null)if(hs(s.value,o)){if(s.children===r.children&&!sr.current){e=vo(n,e,t);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===i){if(s.tag===1){l=go(-1,t&-t),l.tag=2;var A=s.updateQueue;if(A!==null){A=A.shared;var h=A.pending;h===null?l.next=l:(l.next=h.next,h.next=l),A.pending=l}}s.lanes|=t,l=s.alternate,l!==null&&(l.lanes|=t),rC(s.return,t,e),a.lanes|=t;break}l=l.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(ke(341));o.lanes|=t,a=o.alternate,a!==null&&(a.lanes|=t),rC(o,t,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Gi(n,e,r.children,t),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,pu(e,t),r=Xr(r),i=i(r),e.flags|=1,Gi(n,e,i,t),e.child;case 14:return i=e.type,r=rs(i,e.pendingProps),r=rs(i.type,r),jB(n,e,i,r,t);case 15:return BQ(n,e,e.type,e.pendingProps,t);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:rs(i,r),Pp(n,e),e.tag=1,or(i)?(n=!0,dg(e)):n=!1,pu(e,t),$M(e,i,r),oC(e,i,r,t),cC(null,e,i,!0,n,t);case 19:return QQ(n,e,t);case 22:return _Q(n,e,t)}throw Error(ke(156,e.tag))};function WQ(n,e){return mM(n,e)}function DL(n,e,t,i){this.tag=n,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Hr(n,e,t,i){return new DL(n,e,t,i)}function vI(n){return n=n.prototype,!(!n||!n.isReactComponent)}function bL(n){if(typeof n=="function")return vI(n)?1:0;if(n!=null){if(n=n.$$typeof,n===Ov)return 11;if(n===Gv)return 14}return 2}function ha(n,e){var t=n.alternate;return t===null?(t=Hr(n.tag,e,n.key,n.mode),t.elementType=n.elementType,t.type=n.type,t.stateNode=n.stateNode,t.alternate=n,n.alternate=t):(t.pendingProps=e,t.type=n.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=n.flags&14680064,t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=n.sibling,t.index=n.index,t.ref=n.ref,t}function kp(n,e,t,i,r,s){var o=2;if(i=n,typeof n=="function")vI(n)&&(o=1);else if(typeof n=="string")o=5;else e:switch(n){case jc:return Rl(t.children,r,s,e);case kv:o=8,r|=8;break;case Ry:return n=Hr(12,t,e,r|2),n.elementType=Ry,n.lanes=s,n;case Ty:return n=Hr(13,t,e,r),n.elementType=Ty,n.lanes=s,n;case Dy:return n=Hr(19,t,e,r),n.elementType=Dy,n.lanes=s,n;case eM:return jg(t,r,s,e);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case Zw:o=10;break e;case $w:o=9;break e;case Ov:o=11;break e;case Gv:o=14;break e;case Ko:o=16,i=null;break e}throw Error(ke(130,n==null?n:typeof n,""))}return e=Hr(o,t,e,r),e.elementType=n,e.type=i,e.lanes=s,e}function Rl(n,e,t,i){return n=Hr(7,n,i,e),n.lanes=t,n}function jg(n,e,t,i){return n=Hr(22,n,i,e),n.elementType=eM,n.lanes=t,n.stateNode={isHidden:!1},n}function hE(n,e,t){return n=Hr(6,n,null,e),n.lanes=t,n}function dE(n,e,t){return e=Hr(4,n.children!==null?n.children:[],n.key,e),e.lanes=t,e.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},e}function NL(n,e,t,i,r){this.tag=e,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=X0(0),this.expirationTimes=X0(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=X0(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function II(n,e,t,i,r,s,o,a,l){return n=new NL(n,e,t,a,l),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Hr(3,null,null,e),n.current=s,s.stateNode=n,s.memoizedState={element:i,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},sI(s),n}function LL(n,e,t){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(jQ)}catch(n){console.error(n)}}jQ(),Xw.exports=Mr;var OL=Xw.exports,KQ,c_=OL;KQ=c_.createRoot,c_.hydrateRoot;/** - * @license - * Copyright 2010-2023 Three.js Authors - * SPDX-License-Identifier: MIT - */const em="161",GL={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},zL={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},qQ=0,vC=1,ZQ=2,HL=3,$Q=0,tm=1,qA=2,ss=3,jr=0,Yi=1,Rs=2,mo=0,Tl=1,IC=2,xC=3,BC=4,e2=5,ea=100,t2=101,n2=102,_C=103,SC=104,i2=200,r2=201,s2=202,o2=203,wg=204,Mg=205,a2=206,l2=207,c2=208,u2=209,A2=210,h2=211,d2=212,f2=213,p2=214,g2=0,m2=1,E2=2,Ch=3,y2=4,C2=5,v2=6,I2=7,Jh=0,x2=1,B2=2,Ps=0,_2=1,S2=2,w2=3,SI=4,M2=5,Q2=6,wC="attached",R2="detached",nm=300,Io=301,va=302,vh=303,Ih=304,Nu=306,xh=1e3,Ti=1001,Bh=1002,Gn=1003,Qg=1004,VL=1004,Cl=1005,WL=1005,In=1006,ZA=1007,YL=1007,Ts=1008,XL=1008,Us=1009,T2=1010,D2=1011,im=1012,wI=1013,fo=1014,zr=1015,Gl=1016,MI=1017,QI=1018,da=1020,b2=1021,zi=1023,N2=1024,L2=1025,fa=1026,zl=1027,P2=1028,RI=1029,U2=1030,TI=1031,DI=1033,Op=33776,Gp=33777,zp=33778,Hp=33779,MC=35840,QC=35841,RC=35842,TC=35843,bI=36196,DC=37492,bC=37496,NC=37808,LC=37809,PC=37810,UC=37811,FC=37812,kC=37813,OC=37814,GC=37815,zC=37816,HC=37817,VC=37818,WC=37819,YC=37820,XC=37821,Vp=36492,JC=36494,jC=36495,F2=36283,KC=36284,qC=36285,ZC=36286,k2=2200,O2=2201,G2=2202,_h=2300,Sh=2301,Wp=2302,_l=2400,Sl=2401,wh=2402,rm=2500,NI=2501,JL=0,jL=1,KL=2,LI=3e3,pa=3001,z2=3200,PI=3201,Sa=0,H2=1,Cr="",zn="srgb",Os="srgb-linear",sm="display-p3",jh="display-p3-linear",Mh="linear",mn="srgb",Qh="rec709",Rh="p3",qL=0,gl=7680,ZL=7681,$L=7682,e3=7683,t3=34055,n3=34056,i3=5386,r3=512,s3=513,o3=514,a3=515,l3=516,c3=517,u3=518,$C=519,V2=512,W2=513,Y2=514,UI=515,X2=516,J2=517,j2=518,K2=519,Th=35044,ra=35048,A3=35040,h3=35045,d3=35049,f3=35041,p3=35046,g3=35050,m3=35042,E3="100",ev="300 es",Rg=1035,Ds=2e3,Dh=2001;class Bo{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const i=this._listeners[e.type];if(i!==void 0){e.target=this;const r=i.slice(0);for(let s=0,o=r.length;s>8&255]+wi[n>>16&255]+wi[n>>24&255]+"-"+wi[e&255]+wi[e>>8&255]+"-"+wi[e>>16&15|64]+wi[e>>24&255]+"-"+wi[t&63|128]+wi[t>>8&255]+"-"+wi[t>>16&255]+wi[t>>24&255]+wi[i&255]+wi[i>>8&255]+wi[i>>16&255]+wi[i>>24&255]).toLowerCase()}function Fn(n,e,t){return Math.max(e,Math.min(t,n))}function FI(n,e){return(n%e+e)%e}function y3(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function C3(n,e,t){return n!==e?(t-n)/(e-n):0}function $A(n,e,t){return(1-t)*n+t*e}function v3(n,e,t,i){return $A(n,e,1-Math.exp(-t*i))}function I3(n,e=1){return e-Math.abs(FI(n,e*2)-e)}function x3(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function B3(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function _3(n,e){return n+Math.floor(Math.random()*(e-n+1))}function S3(n,e){return n+Math.random()*(e-n)}function w3(n){return n*(.5-Math.random())}function M3(n){n!==void 0&&(u_=n);let e=u_+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function Q3(n){return n*Dl}function R3(n){return n*Mu}function tv(n){return(n&n-1)===0&&n!==0}function T3(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function Tg(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function D3(n,e,t,i,r){const s=Math.cos,o=Math.sin,a=s(t/2),l=o(t/2),A=s((e+i)/2),h=o((e+i)/2),d=s((e-i)/2),f=o((e-i)/2),g=s((i-e)/2),E=o((i-e)/2);switch(r){case"XYX":n.set(a*h,l*d,l*f,a*A);break;case"YZY":n.set(l*f,a*h,l*d,a*A);break;case"ZXZ":n.set(l*d,l*f,a*h,a*A);break;case"XZX":n.set(a*h,l*E,l*g,a*A);break;case"YXY":n.set(l*g,a*h,l*E,a*A);break;case"ZYZ":n.set(l*E,l*g,a*h,a*A);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Hi(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function bt(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}const b3={DEG2RAD:Dl,RAD2DEG:Mu,generateUUID:_r,clamp:Fn,euclideanModulo:FI,mapLinear:y3,inverseLerp:C3,lerp:$A,damp:v3,pingpong:I3,smoothstep:x3,smootherstep:B3,randInt:_3,randFloat:S3,randFloatSpread:w3,seededRandom:M3,degToRad:Q3,radToDeg:R3,isPowerOfTwo:tv,ceilPowerOfTwo:T3,floorPowerOfTwo:Tg,setQuaternionFromProperEuler:D3,normalize:bt,denormalize:Hi};class _e{constructor(e=0,t=0){_e.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Fn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Rt{constructor(e,t,i,r,s,o,a,l,A){Rt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,l,A)}set(e,t,i,r,s,o,a,l,A){const h=this.elements;return h[0]=e,h[1]=r,h[2]=a,h[3]=t,h[4]=s,h[5]=l,h[6]=i,h[7]=o,h[8]=A,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[3],l=i[6],A=i[1],h=i[4],d=i[7],f=i[2],g=i[5],E=i[8],v=r[0],y=r[3],p=r[6],C=r[1],I=r[4],B=r[7],R=r[2],M=r[5],T=r[8];return s[0]=o*v+a*C+l*R,s[3]=o*y+a*I+l*M,s[6]=o*p+a*B+l*T,s[1]=A*v+h*C+d*R,s[4]=A*y+h*I+d*M,s[7]=A*p+h*B+d*T,s[2]=f*v+g*C+E*R,s[5]=f*y+g*I+E*M,s[8]=f*p+g*B+E*T,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8];return t*o*h-t*a*A-i*s*h+i*a*l+r*s*A-r*o*l}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8],d=h*o-a*A,f=a*l-h*s,g=A*s-o*l,E=t*d+i*f+r*g;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);const v=1/E;return e[0]=d*v,e[1]=(r*A-h*i)*v,e[2]=(a*i-r*o)*v,e[3]=f*v,e[4]=(h*t-r*l)*v,e[5]=(r*s-a*t)*v,e[6]=g*v,e[7]=(i*l-A*t)*v,e[8]=(o*t-i*s)*v,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,a){const l=Math.cos(s),A=Math.sin(s);return this.set(i*l,i*A,-i*(l*o+A*a)+o+e,-r*A,r*l,-r*(-A*o+l*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(fE.makeScale(e,t)),this}rotate(e){return this.premultiply(fE.makeRotation(-e)),this}translate(e,t){return this.premultiply(fE.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const fE=new Rt;function q2(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const N3={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function ou(n,e){return new N3[n](e)}function bh(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function Z2(){const n=bh("canvas");return n.style.display="block",n}const A_={};function bl(n){n in A_||(A_[n]=!0,console.warn(n))}const h_=new Rt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),d_=new Rt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),xf={[Os]:{transfer:Mh,primaries:Qh,toReference:n=>n,fromReference:n=>n},[zn]:{transfer:mn,primaries:Qh,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[jh]:{transfer:Mh,primaries:Rh,toReference:n=>n.applyMatrix3(d_),fromReference:n=>n.applyMatrix3(h_)},[sm]:{transfer:mn,primaries:Rh,toReference:n=>n.convertSRGBToLinear().applyMatrix3(d_),fromReference:n=>n.applyMatrix3(h_).convertLinearToSRGB()}},L3=new Set([Os,jh]),ln={enabled:!0,_workingColorSpace:Os,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!L3.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;const i=xf[e].toReference,r=xf[t].fromReference;return r(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return xf[n].primaries},getTransfer:function(n){return n===Cr?Mh:xf[n].transfer}};function mu(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function pE(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let Ec;class kI{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{Ec===void 0&&(Ec=bh("canvas")),Ec.width=e.width,Ec.height=e.height;const i=Ec.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=Ec}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=bh("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==nm)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case xh:e.x=e.x-Math.floor(e.x);break;case Ti:e.x=e.x<0?0:1;break;case Bh:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case xh:e.y=e.y-Math.floor(e.y);break;case Ti:e.y=e.y<0?0:1;break;case Bh:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return bl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===zn?pa:LI}set encoding(e){bl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===pa?zn:Cr}}wn.DEFAULT_IMAGE=null;wn.DEFAULT_MAPPING=nm;wn.DEFAULT_ANISOTROPY=1;class cn{constructor(e=0,t=0,i=0,r=1){cn.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const l=e.elements,A=l[0],h=l[4],d=l[8],f=l[1],g=l[5],E=l[9],v=l[2],y=l[6],p=l[10];if(Math.abs(h-f)<.01&&Math.abs(d-v)<.01&&Math.abs(E-y)<.01){if(Math.abs(h+f)<.1&&Math.abs(d+v)<.1&&Math.abs(E+y)<.1&&Math.abs(A+g+p-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const I=(A+1)/2,B=(g+1)/2,R=(p+1)/2,M=(h+f)/4,T=(d+v)/4,U=(E+y)/4;return I>B&&I>R?I<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(I),r=M/i,s=T/i):B>R?B<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(B),i=M/r,s=U/r):R<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(R),i=T/s,r=U/s),this.set(i,r,s,t),this}let C=Math.sqrt((y-E)*(y-E)+(d-v)*(d-v)+(f-h)*(f-h));return Math.abs(C)<.001&&(C=1),this.x=(y-E)/C,this.y=(d-v)/C,this.z=(f-h)/C,this.w=Math.acos((A+g+p-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class $2 extends Bo{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new cn(0,0,e,t),this.scissorTest=!1,this.viewport=new cn(0,0,e,t);const r={width:e,height:t,depth:1};i.encoding!==void 0&&(bl("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===pa?zn:Cr),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:In,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},i),this.texture=new wn(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps,this.texture.internalFormat=i.internalFormat,this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.depthTexture=i.depthTexture,this.samples=i.samples}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new wl(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Kr extends $2{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}}class om extends wn{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Ti,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class F3 extends Kr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new om(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class OI extends wn{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Ti,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class k3 extends Kr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new OI(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class O3 extends Kr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const s=this.texture;this.texture=[];for(let o=0;o=0?1:-1,I=1-p*p;if(I>Number.EPSILON){const R=Math.sqrt(I),M=Math.atan2(R,p*C);y=Math.sin(y*M)/R,a=Math.sin(a*M)/R}const B=a*C;if(l=l*y+f*B,A=A*y+g*B,h=h*y+E*B,d=d*y+v*B,y===1-a){const R=1/Math.sqrt(l*l+A*A+h*h+d*d);l*=R,A*=R,h*=R,d*=R}}e[t]=l,e[t+1]=A,e[t+2]=h,e[t+3]=d}static multiplyQuaternionsFlat(e,t,i,r,s,o){const a=i[r],l=i[r+1],A=i[r+2],h=i[r+3],d=s[o],f=s[o+1],g=s[o+2],E=s[o+3];return e[t]=a*E+h*d+l*g-A*f,e[t+1]=l*E+h*f+A*d-a*g,e[t+2]=A*E+h*g+a*f-l*d,e[t+3]=h*E-a*d-l*f-A*g,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,a=Math.cos,l=Math.sin,A=a(i/2),h=a(r/2),d=a(s/2),f=l(i/2),g=l(r/2),E=l(s/2);switch(o){case"XYZ":this._x=f*h*d+A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d-f*g*E;break;case"YXZ":this._x=f*h*d+A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d+f*g*E;break;case"ZXY":this._x=f*h*d-A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d-f*g*E;break;case"ZYX":this._x=f*h*d-A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d+f*g*E;break;case"YZX":this._x=f*h*d+A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d-f*g*E;break;case"XZY":this._x=f*h*d-A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d+f*g*E;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],a=t[5],l=t[9],A=t[2],h=t[6],d=t[10],f=i+a+d;if(f>0){const g=.5/Math.sqrt(f+1);this._w=.25/g,this._x=(h-l)*g,this._y=(s-A)*g,this._z=(o-r)*g}else if(i>a&&i>d){const g=2*Math.sqrt(1+i-a-d);this._w=(h-l)/g,this._x=.25*g,this._y=(r+o)/g,this._z=(s+A)/g}else if(a>d){const g=2*Math.sqrt(1+a-i-d);this._w=(s-A)/g,this._x=(r+o)/g,this._y=.25*g,this._z=(l+h)/g}else{const g=2*Math.sqrt(1+d-i-a);this._w=(o-r)/g,this._x=(s+A)/g,this._y=(l+h)/g,this._z=.25*g}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Fn(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,a=t._x,l=t._y,A=t._z,h=t._w;return this._x=i*h+o*a+r*A-s*l,this._y=r*h+o*l+s*a-i*A,this._z=s*h+o*A+i*l-r*a,this._w=o*h-i*a-r*l-s*A,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let a=o*e._w+i*e._x+r*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const l=1-a*a;if(l<=Number.EPSILON){const g=1-t;return this._w=g*o+t*this._w,this._x=g*i+t*this._x,this._y=g*r+t*this._y,this._z=g*s+t*this._z,this.normalize(),this}const A=Math.sqrt(l),h=Math.atan2(A,a),d=Math.sin((1-t)*h)/A,f=Math.sin(t*h)/A;return this._w=o*d+this._w*f,this._x=i*d+this._x*f,this._y=r*d+this._y*f,this._z=s*d+this._z*f,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(s),i*Math.cos(s),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class G{constructor(e=0,t=0,i=0){G.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(f_.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(f_.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,a=e.z,l=e.w,A=2*(o*r-a*i),h=2*(a*t-s*r),d=2*(s*i-o*t);return this.x=t+l*A+o*d-a*h,this.y=i+l*h+a*A-s*d,this.z=r+l*d+s*h-o*A,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,a=t.y,l=t.z;return this.x=r*l-s*a,this.y=s*o-i*l,this.z=i*a-r*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return mE.copy(this).projectOnVector(e),this.sub(mE)}reflect(e){return this.sub(mE.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Fn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const mE=new G,f_=new Vn;class ii{constructor(e=new G(1/0,1/0,1/0),t=new G(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,ts),ts.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(gA),_f.subVectors(this.max,gA),yc.subVectors(e.a,gA),Cc.subVectors(e.b,gA),vc.subVectors(e.c,gA),ko.subVectors(Cc,yc),Oo.subVectors(vc,Cc),nl.subVectors(yc,vc);let t=[0,-ko.z,ko.y,0,-Oo.z,Oo.y,0,-nl.z,nl.y,ko.z,0,-ko.x,Oo.z,0,-Oo.x,nl.z,0,-nl.x,-ko.y,ko.x,0,-Oo.y,Oo.x,0,-nl.y,nl.x,0];return!EE(t,yc,Cc,vc,_f)||(t=[1,0,0,0,1,0,0,0,1],!EE(t,yc,Cc,vc,_f))?!1:(Sf.crossVectors(ko,Oo),t=[Sf.x,Sf.y,Sf.z],EE(t,yc,Cc,vc,_f))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,ts).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(ts).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Zs[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Zs[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Zs[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Zs[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Zs[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Zs[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Zs[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Zs[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Zs),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const Zs=[new G,new G,new G,new G,new G,new G,new G,new G],ts=new G,Bf=new ii,yc=new G,Cc=new G,vc=new G,ko=new G,Oo=new G,nl=new G,gA=new G,_f=new G,Sf=new G,il=new G;function EE(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){il.fromArray(n,s);const a=r.x*Math.abs(il.x)+r.y*Math.abs(il.y)+r.z*Math.abs(il.z),l=e.dot(il),A=t.dot(il),h=i.dot(il);if(Math.max(-Math.max(l,A,h),Math.min(l,A,h))>a)return!1}return!0}const G3=new ii,mA=new G,yE=new G;class Zn{constructor(e=new G,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):G3.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;mA.subVectors(e,this.center);const t=mA.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(mA,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(yE.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(mA.copy(e.center).add(yE)),this.expandByPoint(mA.copy(e.center).sub(yE))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const $s=new G,CE=new G,wf=new G,Go=new G,vE=new G,Mf=new G,IE=new G;class wa{constructor(e=new G,t=new G(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,$s)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=$s.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):($s.copy(this.origin).addScaledVector(this.direction,t),$s.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){CE.copy(e).add(t).multiplyScalar(.5),wf.copy(t).sub(e).normalize(),Go.copy(this.origin).sub(CE);const s=e.distanceTo(t)*.5,o=-this.direction.dot(wf),a=Go.dot(this.direction),l=-Go.dot(wf),A=Go.lengthSq(),h=Math.abs(1-o*o);let d,f,g,E;if(h>0)if(d=o*l-a,f=o*a-l,E=s*h,d>=0)if(f>=-E)if(f<=E){const v=1/h;d*=v,f*=v,g=d*(d+o*f+2*a)+f*(o*d+f+2*l)+A}else f=s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;else f=-s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;else f<=-E?(d=Math.max(0,-(-o*s+a)),f=d>0?-s:Math.min(Math.max(-s,-l),s),g=-d*d+f*(f+2*l)+A):f<=E?(d=0,f=Math.min(Math.max(-s,-l),s),g=f*(f+2*l)+A):(d=Math.max(0,-(o*s+a)),f=d>0?s:Math.min(Math.max(-s,-l),s),g=-d*d+f*(f+2*l)+A);else f=o>0?-s:s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;return i&&i.copy(this.origin).addScaledVector(this.direction,d),r&&r.copy(CE).addScaledVector(wf,f),g}intersectSphere(e,t){$s.subVectors(e.center,this.origin);const i=$s.dot(this.direction),r=$s.dot($s)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=i-o,l=i+o;return l<0?null:a<0?this.at(l,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,a,l;const A=1/this.direction.x,h=1/this.direction.y,d=1/this.direction.z,f=this.origin;return A>=0?(i=(e.min.x-f.x)*A,r=(e.max.x-f.x)*A):(i=(e.max.x-f.x)*A,r=(e.min.x-f.x)*A),h>=0?(s=(e.min.y-f.y)*h,o=(e.max.y-f.y)*h):(s=(e.max.y-f.y)*h,o=(e.min.y-f.y)*h),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(a=(e.min.z-f.z)*d,l=(e.max.z-f.z)*d):(a=(e.max.z-f.z)*d,l=(e.min.z-f.z)*d),i>l||a>r)||((a>i||i!==i)&&(i=a),(l=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,$s)!==null}intersectTriangle(e,t,i,r,s){vE.subVectors(t,e),Mf.subVectors(i,e),IE.crossVectors(vE,Mf);let o=this.direction.dot(IE),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;Go.subVectors(this.origin,e);const l=a*this.direction.dot(Mf.crossVectors(Go,Mf));if(l<0)return null;const A=a*this.direction.dot(vE.cross(Go));if(A<0||l+A>o)return null;const h=-a*Go.dot(IE);return h<0?null:this.at(h/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ut{constructor(e,t,i,r,s,o,a,l,A,h,d,f,g,E,v,y){ut.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,l,A,h,d,f,g,E,v,y)}set(e,t,i,r,s,o,a,l,A,h,d,f,g,E,v,y){const p=this.elements;return p[0]=e,p[4]=t,p[8]=i,p[12]=r,p[1]=s,p[5]=o,p[9]=a,p[13]=l,p[2]=A,p[6]=h,p[10]=d,p[14]=f,p[3]=g,p[7]=E,p[11]=v,p[15]=y,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ut().fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/Ic.setFromMatrixColumn(e,0).length(),s=1/Ic.setFromMatrixColumn(e,1).length(),o=1/Ic.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),a=Math.sin(i),l=Math.cos(r),A=Math.sin(r),h=Math.cos(s),d=Math.sin(s);if(e.order==="XYZ"){const f=o*h,g=o*d,E=a*h,v=a*d;t[0]=l*h,t[4]=-l*d,t[8]=A,t[1]=g+E*A,t[5]=f-v*A,t[9]=-a*l,t[2]=v-f*A,t[6]=E+g*A,t[10]=o*l}else if(e.order==="YXZ"){const f=l*h,g=l*d,E=A*h,v=A*d;t[0]=f+v*a,t[4]=E*a-g,t[8]=o*A,t[1]=o*d,t[5]=o*h,t[9]=-a,t[2]=g*a-E,t[6]=v+f*a,t[10]=o*l}else if(e.order==="ZXY"){const f=l*h,g=l*d,E=A*h,v=A*d;t[0]=f-v*a,t[4]=-o*d,t[8]=E+g*a,t[1]=g+E*a,t[5]=o*h,t[9]=v-f*a,t[2]=-o*A,t[6]=a,t[10]=o*l}else if(e.order==="ZYX"){const f=o*h,g=o*d,E=a*h,v=a*d;t[0]=l*h,t[4]=E*A-g,t[8]=f*A+v,t[1]=l*d,t[5]=v*A+f,t[9]=g*A-E,t[2]=-A,t[6]=a*l,t[10]=o*l}else if(e.order==="YZX"){const f=o*l,g=o*A,E=a*l,v=a*A;t[0]=l*h,t[4]=v-f*d,t[8]=E*d+g,t[1]=d,t[5]=o*h,t[9]=-a*h,t[2]=-A*h,t[6]=g*d+E,t[10]=f-v*d}else if(e.order==="XZY"){const f=o*l,g=o*A,E=a*l,v=a*A;t[0]=l*h,t[4]=-d,t[8]=A*h,t[1]=f*d+v,t[5]=o*h,t[9]=g*d-E,t[2]=E*d-g,t[6]=a*h,t[10]=v*d+f}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(z3,e,H3)}lookAt(e,t,i){const r=this.elements;return mr.subVectors(e,t),mr.lengthSq()===0&&(mr.z=1),mr.normalize(),zo.crossVectors(i,mr),zo.lengthSq()===0&&(Math.abs(i.z)===1?mr.x+=1e-4:mr.z+=1e-4,mr.normalize(),zo.crossVectors(i,mr)),zo.normalize(),Qf.crossVectors(mr,zo),r[0]=zo.x,r[4]=Qf.x,r[8]=mr.x,r[1]=zo.y,r[5]=Qf.y,r[9]=mr.y,r[2]=zo.z,r[6]=Qf.z,r[10]=mr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[4],l=i[8],A=i[12],h=i[1],d=i[5],f=i[9],g=i[13],E=i[2],v=i[6],y=i[10],p=i[14],C=i[3],I=i[7],B=i[11],R=i[15],M=r[0],T=r[4],U=r[8],K=r[12],w=r[1],b=r[5],q=r[9],ge=r[13],J=r[2],ce=r[6],se=r[10],de=r[14],F=r[3],ee=r[7],te=r[11],ue=r[15];return s[0]=o*M+a*w+l*J+A*F,s[4]=o*T+a*b+l*ce+A*ee,s[8]=o*U+a*q+l*se+A*te,s[12]=o*K+a*ge+l*de+A*ue,s[1]=h*M+d*w+f*J+g*F,s[5]=h*T+d*b+f*ce+g*ee,s[9]=h*U+d*q+f*se+g*te,s[13]=h*K+d*ge+f*de+g*ue,s[2]=E*M+v*w+y*J+p*F,s[6]=E*T+v*b+y*ce+p*ee,s[10]=E*U+v*q+y*se+p*te,s[14]=E*K+v*ge+y*de+p*ue,s[3]=C*M+I*w+B*J+R*F,s[7]=C*T+I*b+B*ce+R*ee,s[11]=C*U+I*q+B*se+R*te,s[15]=C*K+I*ge+B*de+R*ue,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],a=e[5],l=e[9],A=e[13],h=e[2],d=e[6],f=e[10],g=e[14],E=e[3],v=e[7],y=e[11],p=e[15];return E*(+s*l*d-r*A*d-s*a*f+i*A*f+r*a*g-i*l*g)+v*(+t*l*g-t*A*f+s*o*f-r*o*g+r*A*h-s*l*h)+y*(+t*A*d-t*a*g-s*o*d+i*o*g+s*a*h-i*A*h)+p*(-r*a*h-t*l*d+t*a*f+r*o*d-i*o*f+i*l*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8],d=e[9],f=e[10],g=e[11],E=e[12],v=e[13],y=e[14],p=e[15],C=d*y*A-v*f*A+v*l*g-a*y*g-d*l*p+a*f*p,I=E*f*A-h*y*A-E*l*g+o*y*g+h*l*p-o*f*p,B=h*v*A-E*d*A+E*a*g-o*v*g-h*a*p+o*d*p,R=E*d*l-h*v*l-E*a*f+o*v*f+h*a*y-o*d*y,M=t*C+i*I+r*B+s*R;if(M===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/M;return e[0]=C*T,e[1]=(v*f*s-d*y*s-v*r*g+i*y*g+d*r*p-i*f*p)*T,e[2]=(a*y*s-v*l*s+v*r*A-i*y*A-a*r*p+i*l*p)*T,e[3]=(d*l*s-a*f*s-d*r*A+i*f*A+a*r*g-i*l*g)*T,e[4]=I*T,e[5]=(h*y*s-E*f*s+E*r*g-t*y*g-h*r*p+t*f*p)*T,e[6]=(E*l*s-o*y*s-E*r*A+t*y*A+o*r*p-t*l*p)*T,e[7]=(o*f*s-h*l*s+h*r*A-t*f*A-o*r*g+t*l*g)*T,e[8]=B*T,e[9]=(E*d*s-h*v*s-E*i*g+t*v*g+h*i*p-t*d*p)*T,e[10]=(o*v*s-E*a*s+E*i*A-t*v*A-o*i*p+t*a*p)*T,e[11]=(h*a*s-o*d*s-h*i*A+t*d*A+o*i*g-t*a*g)*T,e[12]=R*T,e[13]=(h*v*r-E*d*r+E*i*f-t*v*f-h*i*y+t*d*y)*T,e[14]=(E*a*r-o*v*r-E*i*l+t*v*l+o*i*y-t*a*y)*T,e[15]=(o*d*r-h*a*r+h*i*l-t*d*l-o*i*f+t*a*f)*T,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,a=e.y,l=e.z,A=s*o,h=s*a;return this.set(A*o+i,A*a-r*l,A*l+r*a,0,A*a+r*l,h*a+i,h*l-r*o,0,A*l-r*a,h*l+r*o,s*l*l+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,a=t._z,l=t._w,A=s+s,h=o+o,d=a+a,f=s*A,g=s*h,E=s*d,v=o*h,y=o*d,p=a*d,C=l*A,I=l*h,B=l*d,R=i.x,M=i.y,T=i.z;return r[0]=(1-(v+p))*R,r[1]=(g+B)*R,r[2]=(E-I)*R,r[3]=0,r[4]=(g-B)*M,r[5]=(1-(f+p))*M,r[6]=(y+C)*M,r[7]=0,r[8]=(E+I)*T,r[9]=(y-C)*T,r[10]=(1-(f+v))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=Ic.set(r[0],r[1],r[2]).length();const o=Ic.set(r[4],r[5],r[6]).length(),a=Ic.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],ns.copy(this);const A=1/s,h=1/o,d=1/a;return ns.elements[0]*=A,ns.elements[1]*=A,ns.elements[2]*=A,ns.elements[4]*=h,ns.elements[5]*=h,ns.elements[6]*=h,ns.elements[8]*=d,ns.elements[9]*=d,ns.elements[10]*=d,t.setFromRotationMatrix(ns),i.x=s,i.y=o,i.z=a,this}makePerspective(e,t,i,r,s,o,a=Ds){const l=this.elements,A=2*s/(t-e),h=2*s/(i-r),d=(t+e)/(t-e),f=(i+r)/(i-r);let g,E;if(a===Ds)g=-(o+s)/(o-s),E=-2*o*s/(o-s);else if(a===Dh)g=-o/(o-s),E=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return l[0]=A,l[4]=0,l[8]=d,l[12]=0,l[1]=0,l[5]=h,l[9]=f,l[13]=0,l[2]=0,l[6]=0,l[10]=g,l[14]=E,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,i,r,s,o,a=Ds){const l=this.elements,A=1/(t-e),h=1/(i-r),d=1/(o-s),f=(t+e)*A,g=(i+r)*h;let E,v;if(a===Ds)E=(o+s)*d,v=-2*d;else if(a===Dh)E=s*d,v=-1*d;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return l[0]=2*A,l[4]=0,l[8]=0,l[12]=-f,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-g,l[2]=0,l[6]=0,l[10]=v,l[14]=-E,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const Ic=new G,ns=new ut,z3=new G(0,0,0),H3=new G(1,1,1),zo=new G,Qf=new G,mr=new G,p_=new ut,g_=new Vn;class Lu{constructor(e=0,t=0,i=0,r=Lu.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const r=e.elements,s=r[0],o=r[4],a=r[8],l=r[1],A=r[5],h=r[9],d=r[2],f=r[6],g=r[10];switch(t){case"XYZ":this._y=Math.asin(Fn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,g),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(f,A),this._z=0);break;case"YXZ":this._x=Math.asin(-Fn(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,g),this._z=Math.atan2(l,A)):(this._y=Math.atan2(-d,s),this._z=0);break;case"ZXY":this._x=Math.asin(Fn(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-d,g),this._z=Math.atan2(-o,A)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-Fn(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(f,g),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-o,A));break;case"YZX":this._z=Math.asin(Fn(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,A),this._y=Math.atan2(-d,s)):(this._x=0,this._y=Math.atan2(a,g));break;case"XZY":this._z=Math.asin(-Fn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(f,A),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,g),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return p_.makeRotationFromQuaternion(e),this.setFromRotationMatrix(p_,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return g_.setFromEuler(this),this.setFromQuaternion(g_,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Lu.DEFAULT_ORDER="XYZ";class Nl{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,l){return a[l.uuid]===void 0&&(a[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(e.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const l=a.shapes;if(Array.isArray(l))for(let A=0,h=l.length;A0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(i.geometries=a),l.length>0&&(i.materials=l),A.length>0&&(i.textures=A),h.length>0&&(i.images=h),d.length>0&&(i.shapes=d),f.length>0&&(i.skeletons=f),g.length>0&&(i.animations=g),E.length>0&&(i.nodes=E)}return i.object=r,i;function o(a){const l=[];for(const A in a){const h=a[A];delete h.metadata,l.push(h)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){is.subVectors(r,t),to.subVectors(i,t),xE.subVectors(e,t);const o=is.dot(is),a=is.dot(to),l=is.dot(xE),A=to.dot(to),h=to.dot(xE),d=o*A-a*a;if(d===0)return s.set(0,0,0),null;const f=1/d,g=(A*l-a*h)*f,E=(o*h-a*l)*f;return s.set(1-g-E,E,g)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,no)===null?!1:no.x>=0&&no.y>=0&&no.x+no.y<=1}static getInterpolation(e,t,i,r,s,o,a,l){return this.getBarycoord(e,t,i,r,no)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(s,no.x),l.addScaledVector(o,no.y),l.addScaledVector(a,no.z),l)}static isFrontFacing(e,t,i,r){return is.subVectors(i,t),to.subVectors(e,t),is.cross(to).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return is.subVectors(this.c,this.b),to.subVectors(this.a,this.b),is.cross(to).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return vr.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return vr.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return vr.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return vr.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return vr.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,a;Bc.subVectors(r,i),_c.subVectors(s,i),BE.subVectors(e,i);const l=Bc.dot(BE),A=_c.dot(BE);if(l<=0&&A<=0)return t.copy(i);_E.subVectors(e,r);const h=Bc.dot(_E),d=_c.dot(_E);if(h>=0&&d<=h)return t.copy(r);const f=l*d-h*A;if(f<=0&&l>=0&&h<=0)return o=l/(l-h),t.copy(i).addScaledVector(Bc,o);SE.subVectors(e,s);const g=Bc.dot(SE),E=_c.dot(SE);if(E>=0&&g<=E)return t.copy(s);const v=g*A-l*E;if(v<=0&&A>=0&&E<=0)return a=A/(A-E),t.copy(i).addScaledVector(_c,a);const y=h*E-g*d;if(y<=0&&d-h>=0&&g-E>=0)return v_.subVectors(s,r),a=(d-h)/(d-h+(g-E)),t.copy(r).addScaledVector(v_,a);const p=1/(y+v+f);return o=v*p,a=f*p,t.copy(i).addScaledVector(Bc,o).addScaledVector(_c,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const eR={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ho={h:0,s:0,l:0},Tf={h:0,s:0,l:0};function wE(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class Je{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=zn){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,ln.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=ln.workingColorSpace){return this.r=e,this.g=t,this.b=i,ln.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=ln.workingColorSpace){if(e=FI(e,1),t=Fn(t,0,1),i=Fn(i,0,1),t===0)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=wE(o,s,e+1/3),this.g=wE(o,s,e),this.b=wE(o,s,e-1/3)}return ln.toWorkingColorSpace(this,r),this}setStyle(e,t=zn){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=zn){const i=eR[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=mu(e.r),this.g=mu(e.g),this.b=mu(e.b),this}copyLinearToSRGB(e){return this.r=pE(e.r),this.g=pE(e.g),this.b=pE(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=zn){return ln.fromWorkingColorSpace(Mi.copy(this),e),Math.round(Fn(Mi.r*255,0,255))*65536+Math.round(Fn(Mi.g*255,0,255))*256+Math.round(Fn(Mi.b*255,0,255))}getHexString(e=zn){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=ln.workingColorSpace){ln.fromWorkingColorSpace(Mi.copy(this),t);const i=Mi.r,r=Mi.g,s=Mi.b,o=Math.max(i,r,s),a=Math.min(i,r,s);let l,A;const h=(a+o)/2;if(a===o)l=0,A=0;else{const d=o-a;switch(A=h<=.5?d/(o+a):d/(2-o-a),o){case i:l=(r-s)/d+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Tl&&(i.blending=this.blending),this.side!==jr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==wg&&(i.blendSrc=this.blendSrc),this.blendDst!==Mg&&(i.blendDst=this.blendDst),this.blendEquation!==ea&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==Ch&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==$C&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==gl&&(i.stencilFail=this.stencilFail),this.stencilZFail!==gl&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==gl&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(s){const o=[];for(const a in s){const l=s[a];delete l.metadata,o.push(l)}return o}if(t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(t!==null){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class lr extends di{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Jh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const co=K3();function K3(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let l=0;l<256;++l){const A=l-127;A<-27?(i[l]=0,i[l|256]=32768,r[l]=24,r[l|256]=24):A<-14?(i[l]=1024>>-A-14,i[l|256]=1024>>-A-14|32768,r[l]=-A-1,r[l|256]=-A-1):A<=15?(i[l]=A+15<<10,i[l|256]=A+15<<10|32768,r[l]=13,r[l|256]=13):A<128?(i[l]=31744,i[l|256]=64512,r[l]=24,r[l|256]=24):(i[l]=31744,i[l|256]=64512,r[l]=13,r[l|256]=13)}const s=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let l=1;l<1024;++l){let A=l<<13,h=0;for(;!(A&8388608);)A<<=1,h-=8388608;A&=-8388609,h+=947912704,s[l]=A|h}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)o[l]=l<<23;o[31]=1199570944,o[32]=2147483648;for(let l=33;l<63;++l)o[l]=2147483648+(l-32<<23);o[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(a[l]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:o,offsetTable:a}}function nr(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Fn(n,-65504,65504),co.floatView[0]=n;const e=co.uint32View[0],t=e>>23&511;return co.baseTable[t]+((e&8388607)>>co.shiftTable[t])}function UA(n){const e=n>>10;return co.uint32View[0]=co.mantissaTable[co.offsetTable[e]+(n&1023)]+co.exponentTable[e],co.floatView[0]}const q3={toHalfFloat:nr,fromHalfFloat:UA},Kn=new G,Df=new _e;class an{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=Th,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=zr,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return bl("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const A in l)l[A]!==void 0&&(e[A]=l[A]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const l in i){const A=i[l];e.data.attributes[l]=A.toJSON(e.data)}const r={};let s=!1;for(const l in this.morphAttributes){const A=this.morphAttributes[l],h=[];for(let d=0,f=A.length;d0&&(r[l]=h,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(t));const r=e.attributes;for(const A in r){const h=r[A];this.setAttribute(A,h.clone(t))}const s=e.morphAttributes;for(const A in s){const h=[],d=s[A];for(let f=0,g=d.length;f0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(I_.copy(s).invert(),rl.copy(e.ray).applyMatrix4(I_),!(i.boundingBox!==null&&rl.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,rl)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,a=s.index,l=s.attributes.position,A=s.attributes.uv,h=s.attributes.uv1,d=s.attributes.normal,f=s.groups,g=s.drawRange;if(a!==null)if(Array.isArray(o))for(let E=0,v=f.length;Et.far?null:{distance:A,point:kf.clone(),object:n}}function Of(n,e,t,i,r,s,o,a,l,A){n.getVertexPosition(a,wc),n.getVertexPosition(l,Mc),n.getVertexPosition(A,Qc);const h=oP(n,e,t,i,wc,Mc,Qc,Ff);if(h){r&&(Lf.fromBufferAttribute(r,a),Pf.fromBufferAttribute(r,l),Uf.fromBufferAttribute(r,A),h.uv=vr.getInterpolation(Ff,wc,Mc,Qc,Lf,Pf,Uf,new _e)),s&&(Lf.fromBufferAttribute(s,a),Pf.fromBufferAttribute(s,l),Uf.fromBufferAttribute(s,A),h.uv1=vr.getInterpolation(Ff,wc,Mc,Qc,Lf,Pf,Uf,new _e),h.uv2=h.uv1),o&&(B_.fromBufferAttribute(o,a),__.fromBufferAttribute(o,l),S_.fromBufferAttribute(o,A),h.normal=vr.getInterpolation(Ff,wc,Mc,Qc,B_,__,S_,new G),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const d={a,b:l,c:A,normal:new G,materialIndex:0};vr.getNormal(wc,Mc,Qc,d.normal),h.face=d}return h}class Xl extends Nt{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const l=[],A=[],h=[],d=[];let f=0,g=0;E("z","y","x",-1,-1,i,t,e,o,s,0),E("z","y","x",1,-1,i,t,-e,o,s,1),E("x","z","y",1,1,e,i,t,r,o,2),E("x","z","y",1,-1,e,i,-t,r,o,3),E("x","y","z",1,-1,e,t,i,r,s,4),E("x","y","z",-1,-1,e,t,-i,r,s,5),this.setIndex(l),this.setAttribute("position",new ot(A,3)),this.setAttribute("normal",new ot(h,3)),this.setAttribute("uv",new ot(d,2));function E(v,y,p,C,I,B,R,M,T,U,K){const w=B/T,b=R/U,q=B/2,ge=R/2,J=M/2,ce=T+1,se=U+1;let de=0,F=0;const ee=new G;for(let te=0;te0?1:-1,h.push(ee.x,ee.y,ee.z),d.push(Ce/T),d.push(1-te/U),de+=1}}for(let te=0;te0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class Kh extends Ht{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ut,this.projectionMatrix=new ut,this.projectionMatrixInverse=new ut,this.coordinateSystem=Ds}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Vo=new G,w_=new _e,M_=new _e;class ti extends Kh{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=Mu*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(Dl*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Mu*2*Math.atan(Math.tan(Dl*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){Vo.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Vo.x,Vo.y).multiplyScalar(-e/Vo.z),Vo.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Vo.x,Vo.y).multiplyScalar(-e/Vo.z)}getViewSize(e,t){return this.getViewBounds(e,w_,M_),t.subVectors(M_,w_)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(Dl*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const l=o.fullWidth,A=o.fullHeight;s+=o.offsetX*r/l,t-=o.offsetY*i/A,r*=o.width/l,i*=o.height/A}const a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Rc=-90,Tc=1;class iR extends Ht{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new ti(Rc,Tc,e,t);r.layers=this.layers,this.add(r);const s=new ti(Rc,Tc,e,t);s.layers=this.layers,this.add(s);const o=new ti(Rc,Tc,e,t);o.layers=this.layers,this.add(o);const a=new ti(Rc,Tc,e,t);a.layers=this.layers,this.add(a);const l=new ti(Rc,Tc,e,t);l.layers=this.layers,this.add(l);const A=new ti(Rc,Tc,e,t);A.layers=this.layers,this.add(A)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,a,l]=t;for(const A of t)this.remove(A);if(e===Ds)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===Dh)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const A of t)this.add(A),A.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,l,A,h]=this.children,d=e.getRenderTarget(),f=e.getActiveCubeFace(),g=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;const v=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,a),e.setRenderTarget(i,3,r),e.render(t,l),e.setRenderTarget(i,4,r),e.render(t,A),i.texture.generateMipmaps=v,e.setRenderTarget(i,5,r),e.render(t,h),e.setRenderTarget(d,f,g),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}}class qh extends wn{constructor(e,t,i,r,s,o,a,l,A,h){e=e!==void 0?e:[],t=t!==void 0?t:Io,super(e,t,i,r,s,o,a,l,A,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class rR extends Kr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];t.encoding!==void 0&&(bl("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===pa?zn:Cr),this.texture=new qh(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:In}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:` - - varying vec3 vWorldDirection; - - vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); - - } - - void main() { - - vWorldDirection = transformDirection( position, modelMatrix ); - - #include - #include - - } - `,fragmentShader:` - - uniform sampler2D tEquirect; - - varying vec3 vWorldDirection; - - #include - - void main() { - - vec3 direction = normalize( vWorldDirection ); - - vec2 sampleUV = equirectUv( direction ); - - gl_FragColor = texture2D( tEquirect, sampleUV ); - - } - `},r=new Xl(5,5,5),s=new ds({name:"CubemapFromEquirect",uniforms:Qu(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Yi,blending:mo});s.uniforms.tEquirect.value=t;const o=new Zt(r,s),a=t.minFilter;return t.minFilter===Ts&&(t.minFilter=In),new iR(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,r){const s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,i,r);e.setRenderTarget(s)}}const RE=new G,uP=new G,AP=new Rt;class rn{constructor(e=new G(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){const r=RE.subVectors(i,t).cross(uP.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const i=e.delta(RE),r=this.normal.dot(i);if(r===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const s=-(e.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||AP.getNormalMatrix(e),r=this.coplanarPoint(RE).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const sl=new Zn,Gf=new G;class Zh{constructor(e=new rn,t=new rn,i=new rn,r=new rn,s=new rn,o=new rn){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=Ds){const i=this.planes,r=e.elements,s=r[0],o=r[1],a=r[2],l=r[3],A=r[4],h=r[5],d=r[6],f=r[7],g=r[8],E=r[9],v=r[10],y=r[11],p=r[12],C=r[13],I=r[14],B=r[15];if(i[0].setComponents(l-s,f-A,y-g,B-p).normalize(),i[1].setComponents(l+s,f+A,y+g,B+p).normalize(),i[2].setComponents(l+o,f+h,y+E,B+C).normalize(),i[3].setComponents(l-o,f-h,y-E,B-C).normalize(),i[4].setComponents(l-a,f-d,y-v,B-I).normalize(),t===Ds)i[5].setComponents(l+a,f+d,y+v,B+I).normalize();else if(t===Dh)i[5].setComponents(a,d,v,I).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),sl.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),sl.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(sl)}intersectsSprite(e){return sl.center.set(0,0,0),sl.radius=.7071067811865476,sl.applyMatrix4(e.matrixWorld),this.intersectsSphere(sl)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,Gf.y=r.normal.y>0?e.max.y:e.min.y,Gf.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Gf)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function sR(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function hP(n,e){const t=e.isWebGL2,i=new WeakMap;function r(A,h){const d=A.array,f=A.usage,g=d.byteLength,E=n.createBuffer();n.bindBuffer(h,E),n.bufferData(h,d,f),A.onUploadCallback();let v;if(d instanceof Float32Array)v=n.FLOAT;else if(d instanceof Uint16Array)if(A.isFloat16BufferAttribute)if(t)v=n.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else v=n.UNSIGNED_SHORT;else if(d instanceof Int16Array)v=n.SHORT;else if(d instanceof Uint32Array)v=n.UNSIGNED_INT;else if(d instanceof Int32Array)v=n.INT;else if(d instanceof Int8Array)v=n.BYTE;else if(d instanceof Uint8Array)v=n.UNSIGNED_BYTE;else if(d instanceof Uint8ClampedArray)v=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+d);return{buffer:E,type:v,bytesPerElement:d.BYTES_PER_ELEMENT,version:A.version,size:g}}function s(A,h,d){const f=h.array,g=h._updateRange,E=h.updateRanges;if(n.bindBuffer(d,A),g.count===-1&&E.length===0&&n.bufferSubData(d,0,f),E.length!==0){for(let v=0,y=E.length;v 0 - vec4 plane; - #ifdef ALPHA_TO_COVERAGE - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - if ( clipOpacity == 0.0 ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - float unionClipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - } - #pragma unroll_loop_end - clipOpacity *= 1.0 - unionClipOpacity; - #endif - diffuseColor.a *= clipOpacity; - if ( diffuseColor.a == 0.0 ) discard; - #else - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - bool clipped = true; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; - } - #pragma unroll_loop_end - if ( clipped ) discard; - #endif - #endif -#endif`,QP=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; - uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,RP=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; -#endif`,TP=`#if NUM_CLIPPING_PLANES > 0 - vClipPosition = - mvPosition.xyz; -#endif`,DP=`#if defined( USE_COLOR_ALPHA ) - diffuseColor *= vColor; -#elif defined( USE_COLOR ) - diffuseColor.rgb *= vColor; -#endif`,bP=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) - varying vec3 vColor; -#endif`,NP=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) - varying vec3 vColor; -#endif`,LP=`#if defined( USE_COLOR_ALPHA ) - vColor = vec4( 1.0 ); -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) - vColor = vec3( 1.0 ); -#endif -#ifdef USE_COLOR - vColor *= color; -#endif -#ifdef USE_INSTANCING_COLOR - vColor.xyz *= instanceColor.xyz; -#endif`,PP=`#define PI 3.141592653589793 -#define PI2 6.283185307179586 -#define PI_HALF 1.5707963267948966 -#define RECIPROCAL_PI 0.3183098861837907 -#define RECIPROCAL_PI2 0.15915494309189535 -#define EPSILON 1e-6 -#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -#define whiteComplement( a ) ( 1.0 - saturate( a ) ) -float pow2( const in float x ) { return x*x; } -vec3 pow2( const in vec3 x ) { return x*x; } -float pow3( const in float x ) { return x*x*x; } -float pow4( const in float x ) { float x2 = x*x; return x2*x2; } -float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } -float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } -highp float rand( const in vec2 uv ) { - const highp float a = 12.9898, b = 78.233, c = 43758.5453; - highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); - return fract( sin( sn ) * c ); -} -#ifdef HIGH_PRECISION - float precisionSafeLength( vec3 v ) { return length( v ); } -#else - float precisionSafeLength( vec3 v ) { - float maxComponent = max3( abs( v ) ); - return length( v / maxComponent ) * maxComponent; - } -#endif -struct IncidentLight { - vec3 color; - vec3 direction; - bool visible; -}; -struct ReflectedLight { - vec3 directDiffuse; - vec3 directSpecular; - vec3 indirectDiffuse; - vec3 indirectSpecular; -}; -#ifdef USE_ALPHAHASH - varying vec3 vPosition; -#endif -vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); -} -vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); -} -mat3 transposeMat3( const in mat3 m ) { - mat3 tmp; - tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); - tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); - tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); - return tmp; -} -float luminance( const in vec3 rgb ) { - const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); - return dot( weights, rgb ); -} -bool isPerspectiveMatrix( mat4 m ) { - return m[ 2 ][ 3 ] == - 1.0; -} -vec2 equirectUv( in vec3 dir ) { - float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; - float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; - return vec2( u, v ); -} -vec3 BRDF_Lambert( const in vec3 diffuseColor ) { - return RECIPROCAL_PI * diffuseColor; -} -vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} -float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} // validated`,UP=`#ifdef ENVMAP_TYPE_CUBE_UV - #define cubeUV_minMipLevel 4.0 - #define cubeUV_minTileSize 16.0 - float getFace( vec3 direction ) { - vec3 absDirection = abs( direction ); - float face = - 1.0; - if ( absDirection.x > absDirection.z ) { - if ( absDirection.x > absDirection.y ) - face = direction.x > 0.0 ? 0.0 : 3.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } else { - if ( absDirection.z > absDirection.y ) - face = direction.z > 0.0 ? 2.0 : 5.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } - return face; - } - vec2 getUV( vec3 direction, float face ) { - vec2 uv; - if ( face == 0.0 ) { - uv = vec2( direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 1.0 ) { - uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); - } else if ( face == 2.0 ) { - uv = vec2( - direction.x, direction.y ) / abs( direction.z ); - } else if ( face == 3.0 ) { - uv = vec2( - direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 4.0 ) { - uv = vec2( - direction.x, direction.z ) / abs( direction.y ); - } else { - uv = vec2( direction.x, direction.y ) / abs( direction.z ); - } - return 0.5 * ( uv + 1.0 ); - } - vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { - float face = getFace( direction ); - float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); - mipInt = max( mipInt, cubeUV_minMipLevel ); - float faceSize = exp2( mipInt ); - highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; - if ( face > 2.0 ) { - uv.y += faceSize; - face -= 3.0; - } - uv.x += face * faceSize; - uv.x += filterInt * 3.0 * cubeUV_minTileSize; - uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); - uv.x *= CUBEUV_TEXEL_WIDTH; - uv.y *= CUBEUV_TEXEL_HEIGHT; - #ifdef texture2DGradEXT - return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; - #else - return texture2D( envMap, uv ).rgb; - #endif - } - #define cubeUV_r0 1.0 - #define cubeUV_m0 - 2.0 - #define cubeUV_r1 0.8 - #define cubeUV_m1 - 1.0 - #define cubeUV_r4 0.4 - #define cubeUV_m4 2.0 - #define cubeUV_r5 0.305 - #define cubeUV_m5 3.0 - #define cubeUV_r6 0.21 - #define cubeUV_m6 4.0 - float roughnessToMip( float roughness ) { - float mip = 0.0; - if ( roughness >= cubeUV_r1 ) { - mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; - } else if ( roughness >= cubeUV_r4 ) { - mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; - } else if ( roughness >= cubeUV_r5 ) { - mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; - } else if ( roughness >= cubeUV_r6 ) { - mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; - } else { - mip = - 2.0 * log2( 1.16 * roughness ); } - return mip; - } - vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { - float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); - float mipF = fract( mip ); - float mipInt = floor( mip ); - vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); - if ( mipF == 0.0 ) { - return vec4( color0, 1.0 ); - } else { - vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); - return vec4( mix( color0, color1, mipF ), 1.0 ); - } - } -#endif`,FP=`vec3 transformedNormal = objectNormal; -#ifdef USE_TANGENT - vec3 transformedTangent = objectTangent; -#endif -#ifdef USE_BATCHING - mat3 bm = mat3( batchingMatrix ); - transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); - transformedNormal = bm * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = bm * transformedTangent; - #endif -#endif -#ifdef USE_INSTANCING - mat3 im = mat3( instanceMatrix ); - transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); - transformedNormal = im * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = im * transformedTangent; - #endif -#endif -transformedNormal = normalMatrix * transformedNormal; -#ifdef FLIP_SIDED - transformedNormal = - transformedNormal; -#endif -#ifdef USE_TANGENT - transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; - #ifdef FLIP_SIDED - transformedTangent = - transformedTangent; - #endif -#endif`,kP=`#ifdef USE_DISPLACEMENTMAP - uniform sampler2D displacementMap; - uniform float displacementScale; - uniform float displacementBias; -#endif`,OP=`#ifdef USE_DISPLACEMENTMAP - transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,GP=`#ifdef USE_EMISSIVEMAP - vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); - totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,zP=`#ifdef USE_EMISSIVEMAP - uniform sampler2D emissiveMap; -#endif`,HP="gl_FragColor = linearToOutputTexel( gl_FragColor );",VP=` -const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( - vec3( 0.8224621, 0.177538, 0.0 ), - vec3( 0.0331941, 0.9668058, 0.0 ), - vec3( 0.0170827, 0.0723974, 0.9105199 ) -); -const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( - vec3( 1.2249401, - 0.2249404, 0.0 ), - vec3( - 0.0420569, 1.0420571, 0.0 ), - vec3( - 0.0196376, - 0.0786361, 1.0982735 ) -); -vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { - return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); -} -vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { - return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); -} -vec4 LinearTransferOETF( in vec4 value ) { - return value; -} -vec4 sRGBTransferOETF( in vec4 value ) { - return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); -} -vec4 LinearToLinear( in vec4 value ) { - return value; -} -vec4 LinearTosRGB( in vec4 value ) { - return sRGBTransferOETF( value ); -}`,WP=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vec3 cameraToFrag; - if ( isOrthographic ) { - cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToFrag = normalize( vWorldPosition - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vec3 reflectVec = reflect( cameraToFrag, worldNormal ); - #else - vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); - #endif - #else - vec3 reflectVec = vReflect; - #endif - #ifdef ENVMAP_TYPE_CUBE - vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); - #else - vec4 envColor = vec4( 0.0 ); - #endif - #ifdef ENVMAP_BLENDING_MULTIPLY - outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_MIX ) - outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_ADD ) - outgoingLight += envColor.xyz * specularStrength * reflectivity; - #endif -#endif`,YP=`#ifdef USE_ENVMAP - uniform float envMapIntensity; - uniform float flipEnvMap; - #ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; - #else - uniform sampler2D envMap; - #endif - -#endif`,XP=`#ifdef USE_ENVMAP - uniform float reflectivity; - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - varying vec3 vWorldPosition; - uniform float refractionRatio; - #else - varying vec3 vReflect; - #endif -#endif`,JP=`#ifdef USE_ENVMAP - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - - varying vec3 vWorldPosition; - #else - varying vec3 vReflect; - uniform float refractionRatio; - #endif -#endif`,jP=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vWorldPosition = worldPosition.xyz; - #else - vec3 cameraToVertex; - if ( isOrthographic ) { - cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vReflect = reflect( cameraToVertex, worldNormal ); - #else - vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); - #endif - #endif -#endif`,KP=`#ifdef USE_FOG - vFogDepth = - mvPosition.z; -#endif`,qP=`#ifdef USE_FOG - varying float vFogDepth; -#endif`,ZP=`#ifdef USE_FOG - #ifdef FOG_EXP2 - float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); - #else - float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); - #endif - gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); -#endif`,$P=`#ifdef USE_FOG - uniform vec3 fogColor; - varying float vFogDepth; - #ifdef FOG_EXP2 - uniform float fogDensity; - #else - uniform float fogNear; - uniform float fogFar; - #endif -#endif`,eU=`#ifdef USE_GRADIENTMAP - uniform sampler2D gradientMap; -#endif -vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { - float dotNL = dot( normal, lightDirection ); - vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); - #ifdef USE_GRADIENTMAP - return vec3( texture2D( gradientMap, coord ).r ); - #else - vec2 fw = fwidth( coord ) * 0.5; - return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); - #endif -}`,tU=`#ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - reflectedLight.indirectDiffuse += lightMapIrradiance; -#endif`,nU=`#ifdef USE_LIGHTMAP - uniform sampler2D lightMap; - uniform float lightMapIntensity; -#endif`,iU=`LambertMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,rU=`varying vec3 vViewPosition; -struct LambertMaterial { - vec3 diffuseColor; - float specularStrength; -}; -void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Lambert -#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,sU=`uniform bool receiveShadow; -uniform vec3 ambientLightColor; -#if defined( USE_LIGHT_PROBES ) - uniform vec3 lightProbe[ 9 ]; -#endif -vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { - float x = normal.x, y = normal.y, z = normal.z; - vec3 result = shCoefficients[ 0 ] * 0.886227; - result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; - result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; - result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; - result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; - result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; - result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); - result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; - result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); - return result; -} -vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); - return irradiance; -} -vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { - vec3 irradiance = ambientLightColor; - return irradiance; -} -float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { - #if defined ( LEGACY_LIGHTS ) - if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { - return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); - } - return 1.0; - #else - float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); - if ( cutoffDistance > 0.0 ) { - distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); - } - return distanceFalloff; - #endif -} -float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { - return smoothstep( coneCosine, penumbraCosine, angleCosine ); -} -#if NUM_DIR_LIGHTS > 0 - struct DirectionalLight { - vec3 direction; - vec3 color; - }; - uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; - void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { - light.color = directionalLight.color; - light.direction = directionalLight.direction; - light.visible = true; - } -#endif -#if NUM_POINT_LIGHTS > 0 - struct PointLight { - vec3 position; - vec3 color; - float distance; - float decay; - }; - uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; - void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = pointLight.position - geometryPosition; - light.direction = normalize( lVector ); - float lightDistance = length( lVector ); - light.color = pointLight.color; - light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } -#endif -#if NUM_SPOT_LIGHTS > 0 - struct SpotLight { - vec3 position; - vec3 direction; - vec3 color; - float distance; - float decay; - float coneCos; - float penumbraCos; - }; - uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; - void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = spotLight.position - geometryPosition; - light.direction = normalize( lVector ); - float angleCos = dot( light.direction, spotLight.direction ); - float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); - if ( spotAttenuation > 0.0 ) { - float lightDistance = length( lVector ); - light.color = spotLight.color * spotAttenuation; - light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } else { - light.color = vec3( 0.0 ); - light.visible = false; - } - } -#endif -#if NUM_RECT_AREA_LIGHTS > 0 - struct RectAreaLight { - vec3 color; - vec3 position; - vec3 halfWidth; - vec3 halfHeight; - }; - uniform sampler2D ltc_1; uniform sampler2D ltc_2; - uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; -#endif -#if NUM_HEMI_LIGHTS > 0 - struct HemisphereLight { - vec3 direction; - vec3 skyColor; - vec3 groundColor; - }; - uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; - vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { - float dotNL = dot( normal, hemiLight.direction ); - float hemiDiffuseWeight = 0.5 * dotNL + 0.5; - vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); - return irradiance; - } -#endif`,oU=`#ifdef USE_ENVMAP - vec3 getIBLIrradiance( const in vec3 normal ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); - return PI * envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 reflectVec = reflect( - viewDir, normal ); - reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); - reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); - return envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = normalize( cross( bentNormal, bitangent ) ); - bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); - return getIBLRadiance( viewDir, bentNormal, roughness ); - #else - return vec3( 0.0 ); - #endif - } - #endif -#endif`,aU=`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,lU=`varying vec3 vViewPosition; -struct ToonMaterial { - vec3 diffuseColor; -}; -void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Toon -#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,cU=`BlinnPhongMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularColor = specular; -material.specularShininess = shininess; -material.specularStrength = specularStrength;`,uU=`varying vec3 vViewPosition; -struct BlinnPhongMaterial { - vec3 diffuseColor; - vec3 specularColor; - float specularShininess; - float specularStrength; -}; -void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); - reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; -} -void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_BlinnPhong -#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,AU=`PhysicalMaterial material; -material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); -vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); -float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); -material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; -material.roughness = min( material.roughness, 1.0 ); -#ifdef IOR - material.ior = ior; - #ifdef USE_SPECULAR - float specularIntensityFactor = specularIntensity; - vec3 specularColorFactor = specularColor; - #ifdef USE_SPECULAR_COLORMAP - specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; - #endif - material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); - #else - float specularIntensityFactor = 1.0; - vec3 specularColorFactor = vec3( 1.0 ); - material.specularF90 = 1.0; - #endif - material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); -#else - material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); - material.specularF90 = 1.0; -#endif -#ifdef USE_CLEARCOAT - material.clearcoat = clearcoat; - material.clearcoatRoughness = clearcoatRoughness; - material.clearcoatF0 = vec3( 0.04 ); - material.clearcoatF90 = 1.0; - #ifdef USE_CLEARCOATMAP - material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; - #endif - #ifdef USE_CLEARCOAT_ROUGHNESSMAP - material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; - #endif - material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); - material.clearcoatRoughness += geometryRoughness; - material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); -#endif -#ifdef USE_IRIDESCENCE - material.iridescence = iridescence; - material.iridescenceIOR = iridescenceIOR; - #ifdef USE_IRIDESCENCEMAP - material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; - #endif - #ifdef USE_IRIDESCENCE_THICKNESSMAP - material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; - #else - material.iridescenceThickness = iridescenceThicknessMaximum; - #endif -#endif -#ifdef USE_SHEEN - material.sheenColor = sheenColor; - #ifdef USE_SHEEN_COLORMAP - material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; - #endif - material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); - #ifdef USE_SHEEN_ROUGHNESSMAP - material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; - #endif -#endif -#ifdef USE_ANISOTROPY - #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; - vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; - #else - vec2 anisotropyV = anisotropyVector; - #endif - material.anisotropy = length( anisotropyV ); - if( material.anisotropy == 0.0 ) { - anisotropyV = vec2( 1.0, 0.0 ); - } else { - anisotropyV /= material.anisotropy; - material.anisotropy = saturate( material.anisotropy ); - } - material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); - material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; - material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; -#endif`,hU=`struct PhysicalMaterial { - vec3 diffuseColor; - float roughness; - vec3 specularColor; - float specularF90; - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - #endif - #ifdef USE_SHEEN - vec3 sheenColor; - float sheenRoughness; - #endif - #ifdef IOR - float ior; - #endif - #ifdef USE_TRANSMISSION - float transmission; - float transmissionAlpha; - float thickness; - float attenuationDistance; - vec3 attenuationColor; - #endif - #ifdef USE_ANISOTROPY - float anisotropy; - float alphaT; - vec3 anisotropyT; - vec3 anisotropyB; - #endif -}; -vec3 clearcoatSpecularDirect = vec3( 0.0 ); -vec3 clearcoatSpecularIndirect = vec3( 0.0 ); -vec3 sheenSpecularDirect = vec3( 0.0 ); -vec3 sheenSpecularIndirect = vec3(0.0 ); -vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { - float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); - float x2 = x * x; - float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); - return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); -} -float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { - float a2 = pow2( alpha ); - float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); - float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); - return 0.5 / max( gv + gl, EPSILON ); -} -float D_GGX( const in float alpha, const in float dotNH ) { - float a2 = pow2( alpha ); - float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; - return RECIPROCAL_PI * a2 / pow2( denom ); -} -#ifdef USE_ANISOTROPY - float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { - float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); - float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); - float v = 0.5 / ( gv + gl ); - return saturate(v); - } - float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { - float a2 = alphaT * alphaB; - highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); - highp float v2 = dot( v, v ); - float w2 = a2 / v2; - return RECIPROCAL_PI * a2 * pow2 ( w2 ); - } -#endif -#ifdef USE_CLEARCOAT - vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { - vec3 f0 = material.clearcoatF0; - float f90 = material.clearcoatF90; - float roughness = material.clearcoatRoughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - return F * ( V * D ); - } -#endif -vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 f0 = material.specularColor; - float f90 = material.specularF90; - float roughness = material.roughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - #ifdef USE_IRIDESCENCE - F = mix( F, material.iridescenceFresnel, material.iridescence ); - #endif - #ifdef USE_ANISOTROPY - float dotTL = dot( material.anisotropyT, lightDir ); - float dotTV = dot( material.anisotropyT, viewDir ); - float dotTH = dot( material.anisotropyT, halfDir ); - float dotBL = dot( material.anisotropyB, lightDir ); - float dotBV = dot( material.anisotropyB, viewDir ); - float dotBH = dot( material.anisotropyB, halfDir ); - float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); - float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); - #else - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - #endif - return F * ( V * D ); -} -vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { - const float LUT_SIZE = 64.0; - const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; - const float LUT_BIAS = 0.5 / LUT_SIZE; - float dotNV = saturate( dot( N, V ) ); - vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); - uv = uv * LUT_SCALE + LUT_BIAS; - return uv; -} -float LTC_ClippedSphereFormFactor( const in vec3 f ) { - float l = length( f ); - return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); -} -vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { - float x = dot( v1, v2 ); - float y = abs( x ); - float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; - float b = 3.4175940 + ( 4.1616724 + y ) * y; - float v = a / b; - float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; - return cross( v1, v2 ) * theta_sintheta; -} -vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { - vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; - vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; - vec3 lightNormal = cross( v1, v2 ); - if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); - vec3 T1, T2; - T1 = normalize( V - N * dot( V, N ) ); - T2 = - cross( N, T1 ); - mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); - vec3 coords[ 4 ]; - coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); - coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); - coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); - coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); - coords[ 0 ] = normalize( coords[ 0 ] ); - coords[ 1 ] = normalize( coords[ 1 ] ); - coords[ 2 ] = normalize( coords[ 2 ] ); - coords[ 3 ] = normalize( coords[ 3 ] ); - vec3 vectorFormFactor = vec3( 0.0 ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); - float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); - return vec3( result ); -} -#if defined( USE_SHEEN ) -float D_Charlie( float roughness, float dotNH ) { - float alpha = pow2( roughness ); - float invAlpha = 1.0 / alpha; - float cos2h = dotNH * dotNH; - float sin2h = max( 1.0 - cos2h, 0.0078125 ); - return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); -} -float V_Neubelt( float dotNV, float dotNL ) { - return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); -} -vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float D = D_Charlie( sheenRoughness, dotNH ); - float V = V_Neubelt( dotNV, dotNL ); - return sheenColor * ( D * V ); -} -#endif -float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - float r2 = roughness * roughness; - float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; - float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; - float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); - return saturate( DG * RECIPROCAL_PI ); -} -vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); - const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); - vec4 r = roughness * c0 + c1; - float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; - vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; - return fab; -} -vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { - vec2 fab = DFGApprox( normal, viewDir, roughness ); - return specularColor * fab.x + specularF90 * fab.y; -} -#ifdef USE_IRIDESCENCE -void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#else -void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#endif - vec2 fab = DFGApprox( normal, viewDir, roughness ); - #ifdef USE_IRIDESCENCE - vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); - #else - vec3 Fr = specularColor; - #endif - vec3 FssEss = Fr * fab.x + specularF90 * fab.y; - float Ess = fab.x + fab.y; - float Ems = 1.0 - Ess; - vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); - singleScatter += FssEss; - multiScatter += Fms * Ems; -} -#if NUM_RECT_AREA_LIGHTS > 0 - void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - vec3 normal = geometryNormal; - vec3 viewDir = geometryViewDir; - vec3 position = geometryPosition; - vec3 lightPos = rectAreaLight.position; - vec3 halfWidth = rectAreaLight.halfWidth; - vec3 halfHeight = rectAreaLight.halfHeight; - vec3 lightColor = rectAreaLight.color; - float roughness = material.roughness; - vec3 rectCoords[ 4 ]; - rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; - rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; - rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; - vec2 uv = LTC_Uv( normal, viewDir, roughness ); - vec4 t1 = texture2D( ltc_1, uv ); - vec4 t2 = texture2D( ltc_2, uv ); - mat3 mInv = mat3( - vec3( t1.x, 0, t1.y ), - vec3( 0, 1, 0 ), - vec3( t1.z, 0, t1.w ) - ); - vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); - reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); - reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); - } -#endif -void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - #ifdef USE_CLEARCOAT - float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); - vec3 ccIrradiance = dotNLcc * directLight.color; - clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); - #endif - #ifdef USE_SHEEN - sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); - #endif - reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { - #ifdef USE_CLEARCOAT - clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); - #endif - #ifdef USE_SHEEN - sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - #endif - vec3 singleScattering = vec3( 0.0 ); - vec3 multiScattering = vec3( 0.0 ); - vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; - #ifdef USE_IRIDESCENCE - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); - #else - computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); - #endif - vec3 totalScattering = singleScattering + multiScattering; - vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); - reflectedLight.indirectSpecular += radiance * singleScattering; - reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; - reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; -} -#define RE_Direct RE_Direct_Physical -#define RE_Direct_RectArea RE_Direct_RectArea_Physical -#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical -#define RE_IndirectSpecular RE_IndirectSpecular_Physical -float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { - return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); -}`,dU=` -vec3 geometryPosition = - vViewPosition; -vec3 geometryNormal = normal; -vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); -vec3 geometryClearcoatNormal = vec3( 0.0 ); -#ifdef USE_CLEARCOAT - geometryClearcoatNormal = clearcoatNormal; -#endif -#ifdef USE_IRIDESCENCE - float dotNVi = saturate( dot( normal, geometryViewDir ) ); - if ( material.iridescenceThickness == 0.0 ) { - material.iridescence = 0.0; - } else { - material.iridescence = saturate( material.iridescence ); - } - if ( material.iridescence > 0.0 ) { - material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); - material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); - } -#endif -IncidentLight directLight; -#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) - PointLight pointLight; - #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { - pointLight = pointLights[ i ]; - getPointLightInfo( pointLight, geometryPosition, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) - pointLightShadow = pointLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) - SpotLight spotLight; - vec4 spotColor; - vec3 spotLightCoord; - bool inSpotLightMap; - #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { - spotLight = spotLights[ i ]; - getSpotLightInfo( spotLight, geometryPosition, directLight ); - #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX - #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS - #else - #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #endif - #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) - spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; - inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); - spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); - directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; - #endif - #undef SPOT_LIGHT_MAP_INDEX - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - spotLightShadow = spotLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) - DirectionalLight directionalLight; - #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { - directionalLight = directionalLights[ i ]; - getDirectionalLightInfo( directionalLight, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) - directionalLightShadow = directionalLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) - RectAreaLight rectAreaLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { - rectAreaLight = rectAreaLights[ i ]; - RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if defined( RE_IndirectDiffuse ) - vec3 iblIrradiance = vec3( 0.0 ); - vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); - #if defined( USE_LIGHT_PROBES ) - irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); - #endif - #if ( NUM_HEMI_LIGHTS > 0 ) - #pragma unroll_loop_start - for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { - irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); - } - #pragma unroll_loop_end - #endif -#endif -#if defined( RE_IndirectSpecular ) - vec3 radiance = vec3( 0.0 ); - vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,fU=`#if defined( RE_IndirectDiffuse ) - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - irradiance += lightMapIrradiance; - #endif - #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) - iblIrradiance += getIBLIrradiance( geometryNormal ); - #endif -#endif -#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); - #else - radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); - #endif - #ifdef USE_CLEARCOAT - clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); - #endif -#endif`,pU=`#if defined( RE_IndirectDiffuse ) - RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif -#if defined( RE_IndirectSpecular ) - RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif`,gU=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) - gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,mU=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) - uniform float logDepthBufFC; - varying float vFragDepth; - varying float vIsPerspective; -#endif`,EU=`#ifdef USE_LOGDEPTHBUF - #ifdef USE_LOGDEPTHBUF_EXT - varying float vFragDepth; - varying float vIsPerspective; - #else - uniform float logDepthBufFC; - #endif -#endif`,yU=`#ifdef USE_LOGDEPTHBUF - #ifdef USE_LOGDEPTHBUF_EXT - vFragDepth = 1.0 + gl_Position.w; - vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); - #else - if ( isPerspectiveMatrix( projectionMatrix ) ) { - gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; - gl_Position.z *= gl_Position.w; - } - #endif -#endif`,CU=`#ifdef USE_MAP - vec4 sampledDiffuseColor = texture2D( map, vMapUv ); - #ifdef DECODE_VIDEO_TEXTURE - sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); - - #endif - diffuseColor *= sampledDiffuseColor; -#endif`,vU=`#ifdef USE_MAP - uniform sampler2D map; -#endif`,IU=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - #if defined( USE_POINTS_UV ) - vec2 uv = vUv; - #else - vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; - #endif -#endif -#ifdef USE_MAP - diffuseColor *= texture2D( map, uv ); -#endif -#ifdef USE_ALPHAMAP - diffuseColor.a *= texture2D( alphaMap, uv ).g; -#endif`,xU=`#if defined( USE_POINTS_UV ) - varying vec2 vUv; -#else - #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - uniform mat3 uvTransform; - #endif -#endif -#ifdef USE_MAP - uniform sampler2D map; -#endif -#ifdef USE_ALPHAMAP - uniform sampler2D alphaMap; -#endif`,BU=`float metalnessFactor = metalness; -#ifdef USE_METALNESSMAP - vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); - metalnessFactor *= texelMetalness.b; -#endif`,_U=`#ifdef USE_METALNESSMAP - uniform sampler2D metalnessMap; -#endif`,SU=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) - vColor *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - #if defined( USE_COLOR_ALPHA ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; - #elif defined( USE_COLOR ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; - #endif - } -#endif`,wU=`#ifdef USE_MORPHNORMALS - objectNormal *= morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; - } - #else - objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; - objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; - objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; - objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; - #endif -#endif`,MU=`#ifdef USE_MORPHTARGETS - uniform float morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - uniform sampler2DArray morphTargetsTexture; - uniform ivec2 morphTargetsTextureSize; - vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { - int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; - int y = texelIndex / morphTargetsTextureSize.x; - int x = texelIndex - y * morphTargetsTextureSize.x; - ivec3 morphUV = ivec3( x, y, morphTargetIndex ); - return texelFetch( morphTargetsTexture, morphUV, 0 ); - } - #else - #ifndef USE_MORPHNORMALS - uniform float morphTargetInfluences[ 8 ]; - #else - uniform float morphTargetInfluences[ 4 ]; - #endif - #endif -#endif`,QU=`#ifdef USE_MORPHTARGETS - transformed *= morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; - } - #else - transformed += morphTarget0 * morphTargetInfluences[ 0 ]; - transformed += morphTarget1 * morphTargetInfluences[ 1 ]; - transformed += morphTarget2 * morphTargetInfluences[ 2 ]; - transformed += morphTarget3 * morphTargetInfluences[ 3 ]; - #ifndef USE_MORPHNORMALS - transformed += morphTarget4 * morphTargetInfluences[ 4 ]; - transformed += morphTarget5 * morphTargetInfluences[ 5 ]; - transformed += morphTarget6 * morphTargetInfluences[ 6 ]; - transformed += morphTarget7 * morphTargetInfluences[ 7 ]; - #endif - #endif -#endif`,RU=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; -#ifdef FLAT_SHADED - vec3 fdx = dFdx( vViewPosition ); - vec3 fdy = dFdy( vViewPosition ); - vec3 normal = normalize( cross( fdx, fdy ) ); -#else - vec3 normal = normalize( vNormal ); - #ifdef DOUBLE_SIDED - normal *= faceDirection; - #endif -#endif -#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) - #ifdef USE_TANGENT - mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn = getTangentFrame( - vViewPosition, normal, - #if defined( USE_NORMALMAP ) - vNormalMapUv - #elif defined( USE_CLEARCOAT_NORMALMAP ) - vClearcoatNormalMapUv - #else - vUv - #endif - ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn[0] *= faceDirection; - tbn[1] *= faceDirection; - #endif -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - #ifdef USE_TANGENT - mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn2[0] *= faceDirection; - tbn2[1] *= faceDirection; - #endif -#endif -vec3 nonPerturbedNormal = normal;`,TU=`#ifdef USE_NORMALMAP_OBJECTSPACE - normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - #ifdef FLIP_SIDED - normal = - normal; - #endif - #ifdef DOUBLE_SIDED - normal = normal * faceDirection; - #endif - normal = normalize( normalMatrix * normal ); -#elif defined( USE_NORMALMAP_TANGENTSPACE ) - vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - mapN.xy *= normalScale; - normal = normalize( tbn * mapN ); -#elif defined( USE_BUMPMAP ) - normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,DU=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,bU=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,NU=`#ifndef FLAT_SHADED - vNormal = normalize( transformedNormal ); - #ifdef USE_TANGENT - vTangent = normalize( transformedTangent ); - vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); - #endif -#endif`,LU=`#ifdef USE_NORMALMAP - uniform sampler2D normalMap; - uniform vec2 normalScale; -#endif -#ifdef USE_NORMALMAP_OBJECTSPACE - uniform mat3 normalMatrix; -#endif -#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) - mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { - vec3 q0 = dFdx( eye_pos.xyz ); - vec3 q1 = dFdy( eye_pos.xyz ); - vec2 st0 = dFdx( uv.st ); - vec2 st1 = dFdy( uv.st ); - vec3 N = surf_norm; - vec3 q1perp = cross( q1, N ); - vec3 q0perp = cross( N, q0 ); - vec3 T = q1perp * st0.x + q0perp * st1.x; - vec3 B = q1perp * st0.y + q0perp * st1.y; - float det = max( dot( T, T ), dot( B, B ) ); - float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); - return mat3( T * scale, B * scale, N ); - } -#endif`,PU=`#ifdef USE_CLEARCOAT - vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,UU=`#ifdef USE_CLEARCOAT_NORMALMAP - vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; - clearcoatMapN.xy *= clearcoatNormalScale; - clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,FU=`#ifdef USE_CLEARCOATMAP - uniform sampler2D clearcoatMap; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform sampler2D clearcoatNormalMap; - uniform vec2 clearcoatNormalScale; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform sampler2D clearcoatRoughnessMap; -#endif`,kU=`#ifdef USE_IRIDESCENCEMAP - uniform sampler2D iridescenceMap; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform sampler2D iridescenceThicknessMap; -#endif`,OU=`#ifdef OPAQUE -diffuseColor.a = 1.0; -#endif -#ifdef USE_TRANSMISSION -diffuseColor.a *= material.transmissionAlpha; -#endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,GU=`vec3 packNormalToRGB( const in vec3 normal ) { - return normalize( normal ) * 0.5 + 0.5; -} -vec3 unpackRGBToNormal( const in vec3 rgb ) { - return 2.0 * rgb.xyz - 1.0; -} -const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; -const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); -const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); -const float ShiftRight8 = 1. / 256.; -vec4 packDepthToRGBA( const in float v ) { - vec4 r = vec4( fract( v * PackFactors ), v ); - r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; -} -float unpackRGBAToDepth( const in vec4 v ) { - return dot( v, UnpackFactors ); -} -vec2 packDepthToRG( in highp float v ) { - return packDepthToRGBA( v ).yx; -} -float unpackRGToDepth( const in highp vec2 v ) { - return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); -} -vec4 pack2HalfToRGBA( vec2 v ) { - vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); - return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); -} -vec2 unpackRGBATo2Half( vec4 v ) { - return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); -} -float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { - return ( viewZ + near ) / ( near - far ); -} -float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { - return depth * ( near - far ) - near; -} -float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { - return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); -} -float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { - return ( near * far ) / ( ( far - near ) * depth - far ); -}`,zU=`#ifdef PREMULTIPLIED_ALPHA - gl_FragColor.rgb *= gl_FragColor.a; -#endif`,HU=`vec4 mvPosition = vec4( transformed, 1.0 ); -#ifdef USE_BATCHING - mvPosition = batchingMatrix * mvPosition; -#endif -#ifdef USE_INSTANCING - mvPosition = instanceMatrix * mvPosition; -#endif -mvPosition = modelViewMatrix * mvPosition; -gl_Position = projectionMatrix * mvPosition;`,VU=`#ifdef DITHERING - gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,WU=`#ifdef DITHERING - vec3 dithering( vec3 color ) { - float grid_position = rand( gl_FragCoord.xy ); - vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); - dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); - return color + dither_shift_RGB; - } -#endif`,YU=`float roughnessFactor = roughness; -#ifdef USE_ROUGHNESSMAP - vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); - roughnessFactor *= texelRoughness.g; -#endif`,XU=`#ifdef USE_ROUGHNESSMAP - uniform sampler2D roughnessMap; -#endif`,JU=`#if NUM_SPOT_LIGHT_COORDS > 0 - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#if NUM_SPOT_LIGHT_MAPS > 0 - uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - struct SpotLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif - float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { - return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); - } - vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { - return unpackRGBATo2Half( texture2D( shadow, uv ) ); - } - float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ - float occlusion = 1.0; - vec2 distribution = texture2DDistribution( shadow, uv ); - float hard_shadow = step( compare , distribution.x ); - if (hard_shadow != 1.0 ) { - float distance = compare - distribution.x ; - float variance = max( 0.00000, distribution.y * distribution.y ); - float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); - } - return occlusion; - } - float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - shadowCoord.z += shadowBias; - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - #if defined( SHADOWMAP_TYPE_PCF ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx0 = - texelSize.x * shadowRadius; - float dy0 = - texelSize.y * shadowRadius; - float dx1 = + texelSize.x * shadowRadius; - float dy1 = + texelSize.y * shadowRadius; - float dx2 = dx0 / 2.0; - float dy2 = dy0 / 2.0; - float dx3 = dx1 / 2.0; - float dy3 = dy1 / 2.0; - shadow = ( - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) - ) * ( 1.0 / 17.0 ); - #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx = texelSize.x; - float dy = texelSize.y; - vec2 uv = shadowCoord.xy; - vec2 f = fract( uv * shadowMapSize + 0.5 ); - uv -= f * texelSize; - shadow = ( - texture2DCompare( shadowMap, uv, shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), - f.x ), - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), - f.x ), - f.y ) - ) * ( 1.0 / 9.0 ); - #elif defined( SHADOWMAP_TYPE_VSM ) - shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); - #else - shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); - #endif - } - return shadow; - } - vec2 cubeToUV( vec3 v, float texelSizeY ) { - vec3 absV = abs( v ); - float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); - absV *= scaleToCube; - v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); - vec2 planar = v.xy; - float almostATexel = 1.5 * texelSizeY; - float almostOne = 1.0 - almostATexel; - if ( absV.z >= almostOne ) { - if ( v.z > 0.0 ) - planar.x = 4.0 - v.x; - } else if ( absV.x >= almostOne ) { - float signX = sign( v.x ); - planar.x = v.z * signX + 2.0 * signX; - } else if ( absV.y >= almostOne ) { - float signY = sign( v.y ); - planar.x = v.x + 2.0 * signY + 2.0; - planar.y = v.z * signY - 2.0; - } - return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); - } - float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); - vec3 lightToPosition = shadowCoord.xyz; - float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; - vec3 bd3D = normalize( lightToPosition ); - #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) - vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; - return ( - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) - ) * ( 1.0 / 9.0 ); - #else - return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); - #endif - } -#endif`,jU=`#if NUM_SPOT_LIGHT_COORDS > 0 - uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - struct SpotLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif -#endif`,KU=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) - vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - vec4 shadowWorldPosition; -#endif -#if defined( USE_SHADOWMAP ) - #if NUM_DIR_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); - vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); - vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif -#endif -#if NUM_SPOT_LIGHT_COORDS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { - shadowWorldPosition = worldPosition; - #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; - #endif - vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end -#endif`,qU=`float getShadowMask() { - float shadow = 1.0; - #ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - directionalLight = directionalLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { - spotLight = spotLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - pointLight = pointLightShadows[ i ]; - shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; - } - #pragma unroll_loop_end - #endif - #endif - return shadow; -}`,ZU=`#ifdef USE_SKINNING - mat4 boneMatX = getBoneMatrix( skinIndex.x ); - mat4 boneMatY = getBoneMatrix( skinIndex.y ); - mat4 boneMatZ = getBoneMatrix( skinIndex.z ); - mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,$U=`#ifdef USE_SKINNING - uniform mat4 bindMatrix; - uniform mat4 bindMatrixInverse; - uniform highp sampler2D boneTexture; - mat4 getBoneMatrix( const in float i ) { - int size = textureSize( boneTexture, 0 ).x; - int j = int( i ) * 4; - int x = j % size; - int y = j / size; - vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); - vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); - vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); - vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); - return mat4( v1, v2, v3, v4 ); - } -#endif`,eF=`#ifdef USE_SKINNING - vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); - vec4 skinned = vec4( 0.0 ); - skinned += boneMatX * skinVertex * skinWeight.x; - skinned += boneMatY * skinVertex * skinWeight.y; - skinned += boneMatZ * skinVertex * skinWeight.z; - skinned += boneMatW * skinVertex * skinWeight.w; - transformed = ( bindMatrixInverse * skinned ).xyz; -#endif`,tF=`#ifdef USE_SKINNING - mat4 skinMatrix = mat4( 0.0 ); - skinMatrix += skinWeight.x * boneMatX; - skinMatrix += skinWeight.y * boneMatY; - skinMatrix += skinWeight.z * boneMatZ; - skinMatrix += skinWeight.w * boneMatW; - skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; - objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; - #ifdef USE_TANGENT - objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; - #endif -#endif`,nF=`float specularStrength; -#ifdef USE_SPECULARMAP - vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); - specularStrength = texelSpecular.r; -#else - specularStrength = 1.0; -#endif`,iF=`#ifdef USE_SPECULARMAP - uniform sampler2D specularMap; -#endif`,rF=`#if defined( TONE_MAPPING ) - gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,sF=`#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -uniform float toneMappingExposure; -vec3 LinearToneMapping( vec3 color ) { - return saturate( toneMappingExposure * color ); -} -vec3 ReinhardToneMapping( vec3 color ) { - color *= toneMappingExposure; - return saturate( color / ( vec3( 1.0 ) + color ) ); -} -vec3 OptimizedCineonToneMapping( vec3 color ) { - color *= toneMappingExposure; - color = max( vec3( 0.0 ), color - 0.004 ); - return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); -} -vec3 RRTAndODTFit( vec3 v ) { - vec3 a = v * ( v + 0.0245786 ) - 0.000090537; - vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; - return a / b; -} -vec3 ACESFilmicToneMapping( vec3 color ) { - const mat3 ACESInputMat = mat3( - vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), - vec3( 0.04823, 0.01566, 0.83777 ) - ); - const mat3 ACESOutputMat = mat3( - vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), - vec3( -0.07367, -0.00605, 1.07602 ) - ); - color *= toneMappingExposure / 0.6; - color = ACESInputMat * color; - color = RRTAndODTFit( color ); - color = ACESOutputMat * color; - return saturate( color ); -} -const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( - vec3( 1.6605, - 0.1246, - 0.0182 ), - vec3( - 0.5876, 1.1329, - 0.1006 ), - vec3( - 0.0728, - 0.0083, 1.1187 ) -); -const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( - vec3( 0.6274, 0.0691, 0.0164 ), - vec3( 0.3293, 0.9195, 0.0880 ), - vec3( 0.0433, 0.0113, 0.8956 ) -); -vec3 agxDefaultContrastApprox( vec3 x ) { - vec3 x2 = x * x; - vec3 x4 = x2 * x2; - return + 15.5 * x4 * x2 - - 40.14 * x4 * x - + 31.96 * x4 - - 6.868 * x2 * x - + 0.4298 * x2 - + 0.1191 * x - - 0.00232; -} -vec3 AgXToneMapping( vec3 color ) { - const mat3 AgXInsetMatrix = mat3( - vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), - vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), - vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) - ); - const mat3 AgXOutsetMatrix = mat3( - vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), - vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), - vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) - ); - const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; - color *= toneMappingExposure; - color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; - color = AgXInsetMatrix * color; - color = max( color, 1e-10 ); color = log2( color ); - color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); - color = clamp( color, 0.0, 1.0 ); - color = agxDefaultContrastApprox( color ); - color = AgXOutsetMatrix * color; - color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); - color = LINEAR_REC2020_TO_LINEAR_SRGB * color; - color = clamp( color, 0.0, 1.0 ); - return color; -} -vec3 CustomToneMapping( vec3 color ) { return color; }`,oF=`#ifdef USE_TRANSMISSION - material.transmission = transmission; - material.transmissionAlpha = 1.0; - material.thickness = thickness; - material.attenuationDistance = attenuationDistance; - material.attenuationColor = attenuationColor; - #ifdef USE_TRANSMISSIONMAP - material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; - #endif - #ifdef USE_THICKNESSMAP - material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; - #endif - vec3 pos = vWorldPosition; - vec3 v = normalize( cameraPosition - pos ); - vec3 n = inverseTransformDirection( normal, viewMatrix ); - vec4 transmitted = getIBLVolumeRefraction( - n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, - pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, - material.attenuationColor, material.attenuationDistance ); - material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); - totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); -#endif`,aF=`#ifdef USE_TRANSMISSION - uniform float transmission; - uniform float thickness; - uniform float attenuationDistance; - uniform vec3 attenuationColor; - #ifdef USE_TRANSMISSIONMAP - uniform sampler2D transmissionMap; - #endif - #ifdef USE_THICKNESSMAP - uniform sampler2D thicknessMap; - #endif - uniform vec2 transmissionSamplerSize; - uniform sampler2D transmissionSamplerMap; - uniform mat4 modelMatrix; - uniform mat4 projectionMatrix; - varying vec3 vWorldPosition; - float w0( float a ) { - return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); - } - float w1( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); - } - float w2( float a ){ - return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); - } - float w3( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * a ); - } - float g0( float a ) { - return w0( a ) + w1( a ); - } - float g1( float a ) { - return w2( a ) + w3( a ); - } - float h0( float a ) { - return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); - } - float h1( float a ) { - return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); - } - vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { - uv = uv * texelSize.zw + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - float g0x = g0( fuv.x ); - float g1x = g1( fuv.x ); - float h0x = h0( fuv.x ); - float h1x = h1( fuv.x ); - float h0y = h0( fuv.y ); - float h1y = h1( fuv.y ); - vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + - g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); - } - vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { - vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); - vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); - vec2 fLodSizeInv = 1.0 / fLodSize; - vec2 cLodSizeInv = 1.0 / cLodSize; - vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); - vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); - return mix( fSample, cSample, fract( lod ) ); - } - vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { - vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); - vec3 modelScale; - modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); - modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); - modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); - return normalize( refractionVector ) * thickness * modelScale; - } - float applyIorToRoughness( const in float roughness, const in float ior ) { - return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); - } - vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { - float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); - return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); - } - vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { - if ( isinf( attenuationDistance ) ) { - return vec3( 1.0 ); - } else { - vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; - vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; - } - } - vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, - const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, - const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, - const in vec3 attenuationColor, const in float attenuationDistance ) { - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); - vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); - vec3 attenuatedColor = transmittance * transmittedLight.rgb; - vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); - float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; - return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); - } -#endif`,lF=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - varying vec2 vNormalMapUv; -#endif -#ifdef USE_EMISSIVEMAP - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_SPECULARMAP - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,cF=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - uniform mat3 mapTransform; - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - uniform mat3 alphaMapTransform; - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - uniform mat3 lightMapTransform; - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - uniform mat3 aoMapTransform; - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - uniform mat3 bumpMapTransform; - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - uniform mat3 normalMapTransform; - varying vec2 vNormalMapUv; -#endif -#ifdef USE_DISPLACEMENTMAP - uniform mat3 displacementMapTransform; - varying vec2 vDisplacementMapUv; -#endif -#ifdef USE_EMISSIVEMAP - uniform mat3 emissiveMapTransform; - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - uniform mat3 metalnessMapTransform; - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - uniform mat3 roughnessMapTransform; - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - uniform mat3 anisotropyMapTransform; - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - uniform mat3 clearcoatMapTransform; - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform mat3 clearcoatNormalMapTransform; - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform mat3 clearcoatRoughnessMapTransform; - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - uniform mat3 sheenColorMapTransform; - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - uniform mat3 sheenRoughnessMapTransform; - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - uniform mat3 iridescenceMapTransform; - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform mat3 iridescenceThicknessMapTransform; - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SPECULARMAP - uniform mat3 specularMapTransform; - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - uniform mat3 specularColorMapTransform; - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - uniform mat3 specularIntensityMapTransform; - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,uF=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - vUv = vec3( uv, 1 ).xy; -#endif -#ifdef USE_MAP - vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ALPHAMAP - vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_LIGHTMAP - vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_AOMAP - vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_BUMPMAP - vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_NORMALMAP - vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_DISPLACEMENTMAP - vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_EMISSIVEMAP - vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_METALNESSMAP - vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ROUGHNESSMAP - vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ANISOTROPYMAP - vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOATMAP - vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCEMAP - vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_COLORMAP - vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULARMAP - vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_COLORMAP - vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_TRANSMISSIONMAP - vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_THICKNESSMAP - vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; -#endif`,AF=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 - vec4 worldPosition = vec4( transformed, 1.0 ); - #ifdef USE_BATCHING - worldPosition = batchingMatrix * worldPosition; - #endif - #ifdef USE_INSTANCING - worldPosition = instanceMatrix * worldPosition; - #endif - worldPosition = modelMatrix * worldPosition; -#endif`;const hF=`varying vec2 vUv; -uniform mat3 uvTransform; -void main() { - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,dF=`uniform sampler2D t2D; -uniform float backgroundIntensity; -varying vec2 vUv; -void main() { - vec4 texColor = texture2D( t2D, vUv ); - #ifdef DECODE_VIDEO_TEXTURE - texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,fF=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,pF=`#ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; -#elif defined( ENVMAP_TYPE_CUBE_UV ) - uniform sampler2D envMap; -#endif -uniform float flipEnvMap; -uniform float backgroundBlurriness; -uniform float backgroundIntensity; -varying vec3 vWorldDirection; -#include -void main() { - #ifdef ENVMAP_TYPE_CUBE - vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); - #elif defined( ENVMAP_TYPE_CUBE_UV ) - vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); - #else - vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,gF=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,mF=`uniform samplerCube tCube; -uniform float tFlip; -uniform float opacity; -varying vec3 vWorldDirection; -void main() { - vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); - gl_FragColor = texColor; - gl_FragColor.a *= opacity; - #include - #include -}`,EF=`#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vHighPrecisionZW = gl_Position.zw; -}`,yF=`#if DEPTH_PACKING == 3200 - uniform float opacity; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - vec4 diffuseColor = vec4( 1.0 ); - #include - #if DEPTH_PACKING == 3200 - diffuseColor.a = opacity; - #endif - #include - #include - #include - #include - #include - float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; - #if DEPTH_PACKING == 3200 - gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); - #elif DEPTH_PACKING == 3201 - gl_FragColor = packDepthToRGBA( fragCoordZ ); - #endif -}`,CF=`#define DISTANCE -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vWorldPosition = worldPosition.xyz; -}`,vF=`#define DISTANCE -uniform vec3 referencePosition; -uniform float nearDistance; -uniform float farDistance; -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -#include -void main () { - vec4 diffuseColor = vec4( 1.0 ); - #include - #include - #include - #include - #include - float dist = length( vWorldPosition - referencePosition ); - dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); - dist = saturate( dist ); - gl_FragColor = packDepthToRGBA( dist ); -}`,IF=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include -}`,xF=`uniform sampler2D tEquirect; -varying vec3 vWorldDirection; -#include -void main() { - vec3 direction = normalize( vWorldDirection ); - vec2 sampleUV = equirectUv( direction ); - gl_FragColor = texture2D( tEquirect, sampleUV ); - #include - #include -}`,BF=`uniform float scale; -attribute float lineDistance; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vLineDistance = scale * lineDistance; - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,_F=`uniform vec3 diffuse; -uniform float opacity; -uniform float dashSize; -uniform float totalSize; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - if ( mod( vLineDistance, totalSize ) > dashSize ) { - discard; - } - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,SF=`#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) - #include - #include - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,wF=`uniform vec3 diffuse; -uniform float opacity; -#ifndef FLAT_SHADED - varying vec3 vNormal; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; - #else - reflectedLight.indirectDiffuse += vec3( 1.0 ); - #endif - #include - reflectedLight.indirectDiffuse *= diffuseColor.rgb; - vec3 outgoingLight = reflectedLight.indirectDiffuse; - #include - #include - #include - #include - #include - #include - #include -}`,MF=`#define LAMBERT -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,QF=`#define LAMBERT -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,RF=`#define MATCAP -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; -}`,TF=`#define MATCAP -uniform vec3 diffuse; -uniform float opacity; -uniform sampler2D matcap; -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 viewDir = normalize( vViewPosition ); - vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); - vec3 y = cross( viewDir, x ); - vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; - #ifdef USE_MATCAP - vec4 matcapColor = texture2D( matcap, uv ); - #else - vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); - #endif - vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; - #include - #include - #include - #include - #include - #include -}`,DF=`#define NORMAL -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - vViewPosition = - mvPosition.xyz; -#endif -}`,bF=`#define NORMAL -uniform float opacity; -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); - #include - #include - #include - #include - gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); - #ifdef OPAQUE - gl_FragColor.a = 1.0; - #endif -}`,NF=`#define PHONG -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,LF=`#define PHONG -uniform vec3 diffuse; -uniform vec3 emissive; -uniform vec3 specular; -uniform float shininess; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,PF=`#define STANDARD -varying vec3 vViewPosition; -#ifdef USE_TRANSMISSION - varying vec3 vWorldPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -#ifdef USE_TRANSMISSION - vWorldPosition = worldPosition.xyz; -#endif -}`,UF=`#define STANDARD -#ifdef PHYSICAL - #define IOR - #define USE_SPECULAR -#endif -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float roughness; -uniform float metalness; -uniform float opacity; -#ifdef IOR - uniform float ior; -#endif -#ifdef USE_SPECULAR - uniform float specularIntensity; - uniform vec3 specularColor; - #ifdef USE_SPECULAR_COLORMAP - uniform sampler2D specularColorMap; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - uniform sampler2D specularIntensityMap; - #endif -#endif -#ifdef USE_CLEARCOAT - uniform float clearcoat; - uniform float clearcoatRoughness; -#endif -#ifdef USE_IRIDESCENCE - uniform float iridescence; - uniform float iridescenceIOR; - uniform float iridescenceThicknessMinimum; - uniform float iridescenceThicknessMaximum; -#endif -#ifdef USE_SHEEN - uniform vec3 sheenColor; - uniform float sheenRoughness; - #ifdef USE_SHEEN_COLORMAP - uniform sampler2D sheenColorMap; - #endif - #ifdef USE_SHEEN_ROUGHNESSMAP - uniform sampler2D sheenRoughnessMap; - #endif -#endif -#ifdef USE_ANISOTROPY - uniform vec2 anisotropyVector; - #ifdef USE_ANISOTROPYMAP - uniform sampler2D anisotropyMap; - #endif -#endif -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; - vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; - #include - vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; - #ifdef USE_SHEEN - float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); - outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; - #endif - #ifdef USE_CLEARCOAT - float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); - vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); - outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; - #endif - #include - #include - #include - #include - #include - #include -}`,FF=`#define TOON -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -}`,kF=`#define TOON -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include -}`,OF=`uniform float size; -uniform float scale; -#include -#include -#include -#include -#include -#include -#ifdef USE_POINTS_UV - varying vec2 vUv; - uniform mat3 uvTransform; -#endif -void main() { - #ifdef USE_POINTS_UV - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - #endif - #include - #include - #include - #include - #include - gl_PointSize = size; - #ifdef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); - #endif - #include - #include - #include - #include -}`,GF=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,zF=`#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,HF=`uniform vec3 color; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); - #include - #include - #include -}`,VF=`uniform float rotation; -uniform vec2 center; -#include -#include -#include -#include -#include -void main() { - #include - vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); - vec2 scale; - scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); - scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); - #ifndef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) scale *= - mvPosition.z; - #endif - vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; - vec2 rotatedPosition; - rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; - rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; - mvPosition.xy += rotatedPosition; - gl_Position = projectionMatrix * mvPosition; - #include - #include - #include -}`,WF=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include -}`,Pt={alphahash_fragment:dP,alphahash_pars_fragment:fP,alphamap_fragment:pP,alphamap_pars_fragment:gP,alphatest_fragment:mP,alphatest_pars_fragment:EP,aomap_fragment:yP,aomap_pars_fragment:CP,batching_pars_vertex:vP,batching_vertex:IP,begin_vertex:xP,beginnormal_vertex:BP,bsdfs:_P,iridescence_fragment:SP,bumpmap_pars_fragment:wP,clipping_planes_fragment:MP,clipping_planes_pars_fragment:QP,clipping_planes_pars_vertex:RP,clipping_planes_vertex:TP,color_fragment:DP,color_pars_fragment:bP,color_pars_vertex:NP,color_vertex:LP,common:PP,cube_uv_reflection_fragment:UP,defaultnormal_vertex:FP,displacementmap_pars_vertex:kP,displacementmap_vertex:OP,emissivemap_fragment:GP,emissivemap_pars_fragment:zP,colorspace_fragment:HP,colorspace_pars_fragment:VP,envmap_fragment:WP,envmap_common_pars_fragment:YP,envmap_pars_fragment:XP,envmap_pars_vertex:JP,envmap_physical_pars_fragment:oU,envmap_vertex:jP,fog_vertex:KP,fog_pars_vertex:qP,fog_fragment:ZP,fog_pars_fragment:$P,gradientmap_pars_fragment:eU,lightmap_fragment:tU,lightmap_pars_fragment:nU,lights_lambert_fragment:iU,lights_lambert_pars_fragment:rU,lights_pars_begin:sU,lights_toon_fragment:aU,lights_toon_pars_fragment:lU,lights_phong_fragment:cU,lights_phong_pars_fragment:uU,lights_physical_fragment:AU,lights_physical_pars_fragment:hU,lights_fragment_begin:dU,lights_fragment_maps:fU,lights_fragment_end:pU,logdepthbuf_fragment:gU,logdepthbuf_pars_fragment:mU,logdepthbuf_pars_vertex:EU,logdepthbuf_vertex:yU,map_fragment:CU,map_pars_fragment:vU,map_particle_fragment:IU,map_particle_pars_fragment:xU,metalnessmap_fragment:BU,metalnessmap_pars_fragment:_U,morphcolor_vertex:SU,morphnormal_vertex:wU,morphtarget_pars_vertex:MU,morphtarget_vertex:QU,normal_fragment_begin:RU,normal_fragment_maps:TU,normal_pars_fragment:DU,normal_pars_vertex:bU,normal_vertex:NU,normalmap_pars_fragment:LU,clearcoat_normal_fragment_begin:PU,clearcoat_normal_fragment_maps:UU,clearcoat_pars_fragment:FU,iridescence_pars_fragment:kU,opaque_fragment:OU,packing:GU,premultiplied_alpha_fragment:zU,project_vertex:HU,dithering_fragment:VU,dithering_pars_fragment:WU,roughnessmap_fragment:YU,roughnessmap_pars_fragment:XU,shadowmap_pars_fragment:JU,shadowmap_pars_vertex:jU,shadowmap_vertex:KU,shadowmask_pars_fragment:qU,skinbase_vertex:ZU,skinning_pars_vertex:$U,skinning_vertex:eF,skinnormal_vertex:tF,specularmap_fragment:nF,specularmap_pars_fragment:iF,tonemapping_fragment:rF,tonemapping_pars_fragment:sF,transmission_fragment:oF,transmission_pars_fragment:aF,uv_pars_fragment:lF,uv_pars_vertex:cF,uv_vertex:uF,worldpos_vertex:AF,background_vert:hF,background_frag:dF,backgroundCube_vert:fF,backgroundCube_frag:pF,cube_vert:gF,cube_frag:mF,depth_vert:EF,depth_frag:yF,distanceRGBA_vert:CF,distanceRGBA_frag:vF,equirect_vert:IF,equirect_frag:xF,linedashed_vert:BF,linedashed_frag:_F,meshbasic_vert:SF,meshbasic_frag:wF,meshlambert_vert:MF,meshlambert_frag:QF,meshmatcap_vert:RF,meshmatcap_frag:TF,meshnormal_vert:DF,meshnormal_frag:bF,meshphong_vert:NF,meshphong_frag:LF,meshphysical_vert:PF,meshphysical_frag:UF,meshtoon_vert:FF,meshtoon_frag:kF,points_vert:OF,points_frag:GF,shadow_vert:zF,shadow_frag:HF,sprite_vert:VF,sprite_frag:WF},Ye={common:{diffuse:{value:new Je(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Rt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Rt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Rt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Rt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Rt},normalScale:{value:new _e(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Rt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Rt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Rt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Rt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Je(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Je(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0},uvTransform:{value:new Rt}},sprite:{diffuse:{value:new Je(16777215)},opacity:{value:1},center:{value:new _e(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}}},ls={basic:{uniforms:ki([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.fog]),vertexShader:Pt.meshbasic_vert,fragmentShader:Pt.meshbasic_frag},lambert:{uniforms:ki([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:Pt.meshlambert_vert,fragmentShader:Pt.meshlambert_frag},phong:{uniforms:ki([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},specular:{value:new Je(1118481)},shininess:{value:30}}]),vertexShader:Pt.meshphong_vert,fragmentShader:Pt.meshphong_frag},standard:{uniforms:ki([Ye.common,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.roughnessmap,Ye.metalnessmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Pt.meshphysical_vert,fragmentShader:Pt.meshphysical_frag},toon:{uniforms:ki([Ye.common,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.gradientmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:Pt.meshtoon_vert,fragmentShader:Pt.meshtoon_frag},matcap:{uniforms:ki([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,{matcap:{value:null}}]),vertexShader:Pt.meshmatcap_vert,fragmentShader:Pt.meshmatcap_frag},points:{uniforms:ki([Ye.points,Ye.fog]),vertexShader:Pt.points_vert,fragmentShader:Pt.points_frag},dashed:{uniforms:ki([Ye.common,Ye.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Pt.linedashed_vert,fragmentShader:Pt.linedashed_frag},depth:{uniforms:ki([Ye.common,Ye.displacementmap]),vertexShader:Pt.depth_vert,fragmentShader:Pt.depth_frag},normal:{uniforms:ki([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,{opacity:{value:1}}]),vertexShader:Pt.meshnormal_vert,fragmentShader:Pt.meshnormal_frag},sprite:{uniforms:ki([Ye.sprite,Ye.fog]),vertexShader:Pt.sprite_vert,fragmentShader:Pt.sprite_frag},background:{uniforms:{uvTransform:{value:new Rt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Pt.background_vert,fragmentShader:Pt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Pt.backgroundCube_vert,fragmentShader:Pt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Pt.cube_vert,fragmentShader:Pt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Pt.equirect_vert,fragmentShader:Pt.equirect_frag},distanceRGBA:{uniforms:ki([Ye.common,Ye.displacementmap,{referencePosition:{value:new G},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Pt.distanceRGBA_vert,fragmentShader:Pt.distanceRGBA_frag},shadow:{uniforms:ki([Ye.lights,Ye.fog,{color:{value:new Je(0)},opacity:{value:1}}]),vertexShader:Pt.shadow_vert,fragmentShader:Pt.shadow_frag}};ls.physical={uniforms:ki([ls.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Rt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Rt},clearcoatNormalScale:{value:new _e(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Rt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Rt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Rt},sheen:{value:0},sheenColor:{value:new Je(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Rt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Rt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Rt},transmissionSamplerSize:{value:new _e},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Rt},attenuationDistance:{value:0},attenuationColor:{value:new Je(0)},specularColor:{value:new Je(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Rt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Rt},anisotropyVector:{value:new _e},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Rt}}]),vertexShader:Pt.meshphysical_vert,fragmentShader:Pt.meshphysical_frag};const zf={r:0,b:0,g:0};function YF(n,e,t,i,r,s,o){const a=new Je(0);let l=s===!0?0:1,A,h,d=null,f=0,g=null;function E(y,p){let C=!1,I=p.isScene===!0?p.background:null;I&&I.isTexture&&(I=(p.backgroundBlurriness>0?t:e).get(I)),I===null?v(a,l):I&&I.isColor&&(v(I,1),C=!0);const B=n.xr.getEnvironmentBlendMode();B==="additive"?i.buffers.color.setClear(0,0,0,1,o):B==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||C)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),I&&(I.isCubeTexture||I.mapping===Nu)?(h===void 0&&(h=new Zt(new Xl(1,1,1),new ds({name:"BackgroundCubeMaterial",uniforms:Qu(ls.backgroundCube.uniforms),vertexShader:ls.backgroundCube.vertexShader,fragmentShader:ls.backgroundCube.fragmentShader,side:Yi,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,M,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=I,h.material.uniforms.flipEnvMap.value=I.isCubeTexture&&I.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=p.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,h.material.toneMapped=ln.getTransfer(I.colorSpace)!==mn,(d!==I||f!==I.version||g!==n.toneMapping)&&(h.material.needsUpdate=!0,d=I,f=I.version,g=n.toneMapping),h.layers.enableAll(),y.unshift(h,h.geometry,h.material,0,0,null)):I&&I.isTexture&&(A===void 0&&(A=new Zt(new Ma(2,2),new ds({name:"BackgroundMaterial",uniforms:Qu(ls.background.uniforms),vertexShader:ls.background.vertexShader,fragmentShader:ls.background.fragmentShader,side:jr,depthTest:!1,depthWrite:!1,fog:!1})),A.geometry.deleteAttribute("normal"),Object.defineProperty(A.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(A)),A.material.uniforms.t2D.value=I,A.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,A.material.toneMapped=ln.getTransfer(I.colorSpace)!==mn,I.matrixAutoUpdate===!0&&I.updateMatrix(),A.material.uniforms.uvTransform.value.copy(I.matrix),(d!==I||f!==I.version||g!==n.toneMapping)&&(A.material.needsUpdate=!0,d=I,f=I.version,g=n.toneMapping),A.layers.enableAll(),y.unshift(A,A.geometry,A.material,0,0,null))}function v(y,p){y.getRGB(zf,tR(n)),i.buffers.color.setClear(zf.r,zf.g,zf.b,p,o)}return{getClearColor:function(){return a},setClearColor:function(y,p=1){a.set(y),l=p,v(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(y){l=y,v(a,l)},render:E}}function XF(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||s!==null,a={},l=y(null);let A=l,h=!1;function d(J,ce,se,de,F){let ee=!1;if(o){const te=v(de,se,ce);A!==te&&(A=te,g(A.object)),ee=p(J,de,se,F),ee&&C(J,de,se,F)}else{const te=ce.wireframe===!0;(A.geometry!==de.id||A.program!==se.id||A.wireframe!==te)&&(A.geometry=de.id,A.program=se.id,A.wireframe=te,ee=!0)}F!==null&&t.update(F,n.ELEMENT_ARRAY_BUFFER),(ee||h)&&(h=!1,U(J,ce,se,de),F!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(F).buffer))}function f(){return i.isWebGL2?n.createVertexArray():s.createVertexArrayOES()}function g(J){return i.isWebGL2?n.bindVertexArray(J):s.bindVertexArrayOES(J)}function E(J){return i.isWebGL2?n.deleteVertexArray(J):s.deleteVertexArrayOES(J)}function v(J,ce,se){const de=se.wireframe===!0;let F=a[J.id];F===void 0&&(F={},a[J.id]=F);let ee=F[ce.id];ee===void 0&&(ee={},F[ce.id]=ee);let te=ee[de];return te===void 0&&(te=y(f()),ee[de]=te),te}function y(J){const ce=[],se=[],de=[];for(let F=0;F=0){const W=F[Ce];let z=ee[Ce];if(z===void 0&&(Ce==="instanceMatrix"&&J.instanceMatrix&&(z=J.instanceMatrix),Ce==="instanceColor"&&J.instanceColor&&(z=J.instanceColor)),W===void 0||W.attribute!==z||z&&W.data!==z.data)return!0;te++}return A.attributesNum!==te||A.index!==de}function C(J,ce,se,de){const F={},ee=ce.attributes;let te=0;const ue=se.getAttributes();for(const Ce in ue)if(ue[Ce].location>=0){let W=ee[Ce];W===void 0&&(Ce==="instanceMatrix"&&J.instanceMatrix&&(W=J.instanceMatrix),Ce==="instanceColor"&&J.instanceColor&&(W=J.instanceColor));const z={};z.attribute=W,W&&W.data&&(z.data=W.data),F[Ce]=z,te++}A.attributes=F,A.attributesNum=te,A.index=de}function I(){const J=A.newAttributes;for(let ce=0,se=J.length;ce=0){let Oe=F[ue];if(Oe===void 0&&(ue==="instanceMatrix"&&J.instanceMatrix&&(Oe=J.instanceMatrix),ue==="instanceColor"&&J.instanceColor&&(Oe=J.instanceColor)),Oe!==void 0){const W=Oe.normalized,z=Oe.itemSize,O=t.get(Oe);if(O===void 0)continue;const k=O.buffer,me=O.type,Ie=O.bytesPerElement,re=i.isWebGL2===!0&&(me===n.INT||me===n.UNSIGNED_INT||Oe.gpuType===wI);if(Oe.isInterleavedBufferAttribute){const Be=Oe.data,H=Be.stride,Ee=Oe.offset;if(Be.isInstancedInterleavedBuffer){for(let ne=0;ne0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext";let a=t.precision!==void 0?t.precision:"highp";const l=s(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);const A=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,d=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),f=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),g=n.getParameter(n.MAX_TEXTURE_SIZE),E=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),v=n.getParameter(n.MAX_VERTEX_ATTRIBS),y=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),p=n.getParameter(n.MAX_VARYING_VECTORS),C=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),I=f>0,B=o||e.has("OES_texture_float"),R=I&&B,M=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:A,getMaxAnisotropy:r,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:d,maxVertexTextures:f,maxTextureSize:g,maxCubemapSize:E,maxAttributes:v,maxVertexUniforms:y,maxVaryings:p,maxFragmentUniforms:C,vertexTextures:I,floatFragmentTextures:B,floatVertexTextures:R,maxSamples:M}}function KF(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new rn,a=new Rt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(d,f){const g=d.length!==0||f||i!==0||r;return r=f,i=d.length,g},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(d,f){t=h(d,f,0)},this.setState=function(d,f,g){const E=d.clippingPlanes,v=d.clipIntersection,y=d.clipShadows,p=n.get(d);if(!r||E===null||E.length===0||s&&!y)s?h(null):A();else{const C=s?0:i,I=C*4;let B=p.clippingState||null;l.value=B,B=h(E,f,I,g);for(let R=0;R!==I;++R)B[R]=t[R];p.clippingState=B,this.numIntersection=v?this.numPlanes:0,this.numPlanes+=C}};function A(){l.value!==t&&(l.value=t,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(d,f,g,E){const v=d!==null?d.length:0;let y=null;if(v!==0){if(y=l.value,E!==!0||y===null){const p=g+v*4,C=f.matrixWorldInverse;a.getNormalMatrix(C),(y===null||y.length0){const A=new rR(l.height);return A.fromEquirectangularTexture(n,o),e.set(o,A),o.addEventListener("dispose",r),t(A.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}class $h extends Kh{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,a=r+t,l=r-t;if(this.view!==null&&this.view.enabled){const A=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=A*this.view.offsetX,o=s+A*this.view.width,a-=h*this.view.offsetY,l=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}const au=4,Q_=[.125,.215,.35,.446,.526,.582],vl=20,TE=new $h,R_=new Je;let DE=null,bE=0,NE=0;const ml=(1+Math.sqrt(5))/2,Dc=1/ml,T_=[new G(1,1,1),new G(-1,1,1),new G(1,1,-1),new G(-1,1,-1),new G(0,ml,Dc),new G(0,ml,-Dc),new G(Dc,0,ml),new G(-Dc,0,ml),new G(ml,Dc,0),new G(-ml,Dc,0)];class nv{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){DE=this._renderer.getRenderTarget(),bE=this._renderer.getActiveCubeFace(),NE=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=N_(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=b_(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?I:0,I,I),h.setRenderTarget(r),v&&h.render(E,a),h.render(e,a)}E.geometry.dispose(),E.material.dispose(),h.toneMapping=f,h.autoClear=d,e.background=y}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===Io||e.mapping===va;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=N_()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=b_());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new Zt(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;const l=this._cubeSize;Hf(t,0,0,3*l,2*l),i.setRenderTarget(t),i.render(o,TE)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;rvl&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${y} samples when the maximum is set to ${vl}`);const p=[];let C=0;for(let T=0;TI-au?r-I+au:0),M=4*(this._cubeSize-B);Hf(t,R,M,3*B,2*B),l.setRenderTarget(t),l.render(d,TE)}}function ZF(n){const e=[],t=[],i=[];let r=n;const s=n-au+1+Q_.length;for(let o=0;on-au?l=Q_[o-n+au-1]:o===0&&(l=0),i.push(l);const A=1/(a-2),h=-A,d=1+A,f=[h,h,d,h,d,d,h,h,d,d,h,d],g=6,E=6,v=3,y=2,p=1,C=new Float32Array(v*E*g),I=new Float32Array(y*E*g),B=new Float32Array(p*E*g);for(let M=0;M2?0:-1,K=[T,U,0,T+2/3,U,0,T+2/3,U+1,0,T,U,0,T+2/3,U+1,0,T,U+1,0];C.set(K,v*E*M),I.set(f,y*E*M);const w=[M,M,M,M,M,M];B.set(w,p*E*M)}const R=new Nt;R.setAttribute("position",new an(C,v)),R.setAttribute("uv",new an(I,y)),R.setAttribute("faceIndex",new an(B,p)),e.push(R),r>au&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function D_(n,e,t){const i=new Kr(n,e,t);return i.texture.mapping=Nu,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function Hf(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function $F(n,e,t){const i=new Float32Array(vl),r=new G(0,1,0);return new ds({name:"SphericalGaussianBlur",defines:{n:vl,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:HI(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform int samples; - uniform float weights[ n ]; - uniform bool latitudinal; - uniform float dTheta; - uniform float mipInt; - uniform vec3 poleAxis; - - #define ENVMAP_TYPE_CUBE_UV - #include - - vec3 getSample( float theta, vec3 axis ) { - - float cosTheta = cos( theta ); - // Rodrigues' axis-angle rotation - vec3 sampleDirection = vOutputDirection * cosTheta - + cross( axis, vOutputDirection ) * sin( theta ) - + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); - - return bilinearCubeUV( envMap, sampleDirection, mipInt ); - - } - - void main() { - - vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); - - if ( all( equal( axis, vec3( 0.0 ) ) ) ) { - - axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); - - } - - axis = normalize( axis ); - - gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); - - for ( int i = 1; i < n; i++ ) { - - if ( i >= samples ) { - - break; - - } - - float theta = dTheta * float( i ); - gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); - gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); - - } - - } - `,blending:mo,depthTest:!1,depthWrite:!1})}function b_(){return new ds({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:HI(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - - #include - - void main() { - - vec3 outputDirection = normalize( vOutputDirection ); - vec2 uv = equirectUv( outputDirection ); - - gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); - - } - `,blending:mo,depthTest:!1,depthWrite:!1})}function N_(){return new ds({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:HI(),fragmentShader:` - - precision mediump float; - precision mediump int; - - uniform float flipEnvMap; - - varying vec3 vOutputDirection; - - uniform samplerCube envMap; - - void main() { - - gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); - - } - `,blending:mo,depthTest:!1,depthWrite:!1})}function HI(){return` - - precision mediump float; - precision mediump int; - - attribute float faceIndex; - - varying vec3 vOutputDirection; - - // RH coordinate system; PMREM face-indexing convention - vec3 getDirection( vec2 uv, float face ) { - - uv = 2.0 * uv - 1.0; - - vec3 direction = vec3( uv, 1.0 ); - - if ( face == 0.0 ) { - - direction = direction.zyx; // ( 1, v, u ) pos x - - } else if ( face == 1.0 ) { - - direction = direction.xzy; - direction.xz *= -1.0; // ( -u, 1, -v ) pos y - - } else if ( face == 2.0 ) { - - direction.x *= -1.0; // ( -u, v, 1 ) pos z - - } else if ( face == 3.0 ) { - - direction = direction.zyx; - direction.xz *= -1.0; // ( -1, v, -u ) neg x - - } else if ( face == 4.0 ) { - - direction = direction.xzy; - direction.xy *= -1.0; // ( -u, -1, v ) neg y - - } else if ( face == 5.0 ) { - - direction.z *= -1.0; // ( u, v, -1 ) neg z - - } - - return direction; - - } - - void main() { - - vOutputDirection = getDirection( uv, faceIndex ); - gl_Position = vec4( position, 1.0 ); - - } - `}function ek(n){let e=new WeakMap,t=null;function i(a){if(a&&a.isTexture){const l=a.mapping,A=l===vh||l===Ih,h=l===Io||l===va;if(A||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let d=e.get(a);return t===null&&(t=new nv(n)),d=A?t.fromEquirectangular(a,d):t.fromCubemap(a,d),e.set(a,d),d.texture}else{if(e.has(a))return e.get(a).texture;{const d=a.image;if(A&&d&&d.height>0||h&&d&&r(d)){t===null&&(t=new nv(n));const f=A?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,f),a.addEventListener("dispose",s),f.texture}else return null}}}return a}function r(a){let l=0;const A=6;for(let h=0;he.maxTextureSize&&(b=Math.ceil(w/e.maxTextureSize),w=e.maxTextureSize);const q=new Float32Array(w*b*4*v),ge=new om(q,w,b,v);ge.type=zr,ge.needsUpdate=!0;const J=K*4;for(let se=0;se0)return n;const r=e*t;let s=L_[r];if(s===void 0&&(s=new Float32Array(r),L_[r]=s),e!==0){i.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(s,a)}return s}function ri(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${a}: ${t[o]}`)}return i.join(` -`)}function n4(n){const e=ln.getPrimaries(ln.workingColorSpace),t=ln.getPrimaries(n);let i;switch(e===t?i="":e===Rh&&t===Qh?i="LinearDisplayP3ToLinearSRGB":e===Qh&&t===Rh&&(i="LinearSRGBToLinearDisplayP3"),n){case Os:case jh:return[i,"LinearTransferOETF"];case zn:case sm:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}function z_(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=n.getShaderInfoLog(e).trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` - -`+r+` - -`+t4(n.getShaderSource(e),o)}else return r}function i4(n,e){const t=n4(e);return`vec4 ${n}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function r4(n,e){let t;switch(e){case _2:t="Linear";break;case S2:t="Reinhard";break;case w2:t="OptimizedCineon";break;case SI:t="ACESFilmic";break;case Q2:t="AgX";break;case M2:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function s4(n){return[n.extensionDerivatives||n.envMapCubeUVHeight||n.bumpMap||n.normalMapTangentSpace||n.clearcoatNormalMap||n.flatShading||n.alphaToCoverage||n.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(n.extensionFragDepth||n.logarithmicDepthBuffer)&&n.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",n.extensionDrawBuffers&&n.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(n.extensionShaderTextureLOD||n.envMap||n.transmission)&&n.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(lu).join(` -`)}function o4(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(lu).join(` -`)}function a4(n){const e=[];for(const t in n){const i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(` -`)}function l4(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function iv(n){return n.replace(c4,A4)}const u4=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function A4(n,e){let t=Pt[e];if(t===void 0){const i=u4.get(e);if(i!==void 0)t=Pt[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return iv(t)}const h4=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function W_(n){return n.replace(h4,d4)}function d4(n,e,t,i){let r="";for(let s=parseInt(e);s0&&(p+=` -`),C=[g,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,v].filter(lu).join(` -`),C.length>0&&(C+=` -`)):(p=[Y_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,v,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` -`].filter(lu).join(` -`),C=[g,Y_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,v,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+A:"",t.envMap?"#define "+h:"",t.envMap?"#define "+d:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Ps?"#define TONE_MAPPING":"",t.toneMapping!==Ps?Pt.tonemapping_pars_fragment:"",t.toneMapping!==Ps?r4("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",Pt.colorspace_pars_fragment,i4("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` -`].filter(lu).join(` -`)),o=iv(o),o=H_(o,t),o=V_(o,t),a=iv(a),a=H_(a,t),a=V_(a,t),o=W_(o),a=W_(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(I=`#version 300 es -`,p=[E,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` -`)+` -`+p,C=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===ev?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===ev?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` -`)+` -`+C);const B=I+p+o,R=I+C+a,M=G_(r,r.VERTEX_SHADER,B),T=G_(r,r.FRAGMENT_SHADER,R);r.attachShader(y,M),r.attachShader(y,T),t.index0AttributeName!==void 0?r.bindAttribLocation(y,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(y,0,"position"),r.linkProgram(y);function U(q){if(n.debug.checkShaderErrors){const ge=r.getProgramInfoLog(y).trim(),J=r.getShaderInfoLog(M).trim(),ce=r.getShaderInfoLog(T).trim();let se=!0,de=!0;if(r.getProgramParameter(y,r.LINK_STATUS)===!1)if(se=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,y,M,T);else{const F=z_(r,M,"vertex"),ee=z_(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(y,r.VALIDATE_STATUS)+` - -Material Name: `+q.name+` -Material Type: `+q.type+` - -Program Info Log: `+ge+` -`+F+` -`+ee)}else ge!==""?console.warn("THREE.WebGLProgram: Program Info Log:",ge):(J===""||ce==="")&&(de=!1);de&&(q.diagnostics={runnable:se,programLog:ge,vertexShader:{log:J,prefix:p},fragmentShader:{log:ce,prefix:C}})}r.deleteShader(M),r.deleteShader(T),K=new Yp(r,y),w=l4(r,y)}let K;this.getUniforms=function(){return K===void 0&&U(this),K};let w;this.getAttributes=function(){return w===void 0&&U(this),w};let b=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return b===!1&&(b=r.getProgramParameter(y,$k)),b},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(y),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=e4++,this.cacheKey=e,this.usedTimes=1,this.program=y,this.vertexShader=M,this.fragmentShader=T,this}let C4=0;class v4{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new I4(e),t.set(e,i)),i}}class I4{constructor(e){this.id=C4++,this.code=e,this.usedTimes=0}}function x4(n,e,t,i,r,s,o){const a=new Nl,l=new v4,A=new Set,h=[],d=r.isWebGL2,f=r.logarithmicDepthBuffer,g=r.vertexTextures;let E=r.precision;const v={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function y(w){return A.add(w),w===0?"uv":`uv${w}`}function p(w,b,q,ge,J){const ce=ge.fog,se=J.geometry,de=w.isMeshStandardMaterial?ge.environment:null,F=(w.isMeshStandardMaterial?t:e).get(w.envMap||de),ee=F&&F.mapping===Nu?F.image.height:null,te=v[w.type];w.precision!==null&&(E=r.getMaxPrecision(w.precision),E!==w.precision&&console.warn("THREE.WebGLProgram.getParameters:",w.precision,"not supported, using",E,"instead."));const ue=se.morphAttributes.position||se.morphAttributes.normal||se.morphAttributes.color,Ce=ue!==void 0?ue.length:0;let Oe=0;se.morphAttributes.position!==void 0&&(Oe=1),se.morphAttributes.normal!==void 0&&(Oe=2),se.morphAttributes.color!==void 0&&(Oe=3);let W,z,O,k;if(te){const jt=ls[te];W=jt.vertexShader,z=jt.fragmentShader}else W=w.vertexShader,z=w.fragmentShader,l.update(w),O=l.getVertexShaderID(w),k=l.getFragmentShaderID(w);const me=n.getRenderTarget(),Ie=J.isInstancedMesh===!0,re=J.isBatchedMesh===!0,Be=!!w.map,H=!!w.matcap,Ee=!!F,ne=!!w.aoMap,ae=!!w.lightMap,he=!!w.bumpMap,Te=!!w.normalMap,$=!!w.displacementMap,S=!!w.emissiveMap,D=!!w.metalnessMap,ie=!!w.roughnessMap,be=w.anisotropy>0,De=w.clearcoat>0,Qe=w.iridescence>0,Xe=w.sheen>0,Ve=w.transmission>0,Ke=be&&!!w.anisotropyMap,lt=De&&!!w.clearcoatMap,vt=De&&!!w.clearcoatNormalMap,Pe=De&&!!w.clearcoatRoughnessMap,Lt=Qe&&!!w.iridescenceMap,St=Qe&&!!w.iridescenceThicknessMap,pt=Xe&&!!w.sheenColorMap,at=Xe&&!!w.sheenRoughnessMap,tt=!!w.specularMap,xt=!!w.specularColorMap,kt=!!w.specularIntensityMap,$t=Ve&&!!w.transmissionMap,wt=Ve&&!!w.thicknessMap,Xt=!!w.gradientMap,j=!!w.alphaMap,Ge=w.alphaTest>0,Fe=!!w.alphaHash,rt=!!w.extensions;let dt=Ps;w.toneMapped&&(me===null||me.isXRRenderTarget===!0)&&(dt=n.toneMapping);const Jt={isWebGL2:d,shaderID:te,shaderType:w.type,shaderName:w.name,vertexShader:W,fragmentShader:z,defines:w.defines,customVertexShaderID:O,customFragmentShaderID:k,isRawShaderMaterial:w.isRawShaderMaterial===!0,glslVersion:w.glslVersion,precision:E,batching:re,instancing:Ie,instancingColor:Ie&&J.instanceColor!==null,supportsVertexTextures:g,outputColorSpace:me===null?n.outputColorSpace:me.isXRRenderTarget===!0?me.texture.colorSpace:Os,alphaToCoverage:!!w.alphaToCoverage,map:Be,matcap:H,envMap:Ee,envMapMode:Ee&&F.mapping,envMapCubeUVHeight:ee,aoMap:ne,lightMap:ae,bumpMap:he,normalMap:Te,displacementMap:g&&$,emissiveMap:S,normalMapObjectSpace:Te&&w.normalMapType===H2,normalMapTangentSpace:Te&&w.normalMapType===Sa,metalnessMap:D,roughnessMap:ie,anisotropy:be,anisotropyMap:Ke,clearcoat:De,clearcoatMap:lt,clearcoatNormalMap:vt,clearcoatRoughnessMap:Pe,iridescence:Qe,iridescenceMap:Lt,iridescenceThicknessMap:St,sheen:Xe,sheenColorMap:pt,sheenRoughnessMap:at,specularMap:tt,specularColorMap:xt,specularIntensityMap:kt,transmission:Ve,transmissionMap:$t,thicknessMap:wt,gradientMap:Xt,opaque:w.transparent===!1&&w.blending===Tl&&w.alphaToCoverage===!1,alphaMap:j,alphaTest:Ge,alphaHash:Fe,combine:w.combine,mapUv:Be&&y(w.map.channel),aoMapUv:ne&&y(w.aoMap.channel),lightMapUv:ae&&y(w.lightMap.channel),bumpMapUv:he&&y(w.bumpMap.channel),normalMapUv:Te&&y(w.normalMap.channel),displacementMapUv:$&&y(w.displacementMap.channel),emissiveMapUv:S&&y(w.emissiveMap.channel),metalnessMapUv:D&&y(w.metalnessMap.channel),roughnessMapUv:ie&&y(w.roughnessMap.channel),anisotropyMapUv:Ke&&y(w.anisotropyMap.channel),clearcoatMapUv:lt&&y(w.clearcoatMap.channel),clearcoatNormalMapUv:vt&&y(w.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Pe&&y(w.clearcoatRoughnessMap.channel),iridescenceMapUv:Lt&&y(w.iridescenceMap.channel),iridescenceThicknessMapUv:St&&y(w.iridescenceThicknessMap.channel),sheenColorMapUv:pt&&y(w.sheenColorMap.channel),sheenRoughnessMapUv:at&&y(w.sheenRoughnessMap.channel),specularMapUv:tt&&y(w.specularMap.channel),specularColorMapUv:xt&&y(w.specularColorMap.channel),specularIntensityMapUv:kt&&y(w.specularIntensityMap.channel),transmissionMapUv:$t&&y(w.transmissionMap.channel),thicknessMapUv:wt&&y(w.thicknessMap.channel),alphaMapUv:j&&y(w.alphaMap.channel),vertexTangents:!!se.attributes.tangent&&(Te||be),vertexColors:w.vertexColors,vertexAlphas:w.vertexColors===!0&&!!se.attributes.color&&se.attributes.color.itemSize===4,pointsUvs:J.isPoints===!0&&!!se.attributes.uv&&(Be||j),fog:!!ce,useFog:w.fog===!0,fogExp2:!!ce&&ce.isFogExp2,flatShading:w.flatShading===!0,sizeAttenuation:w.sizeAttenuation===!0,logarithmicDepthBuffer:f,skinning:J.isSkinnedMesh===!0,morphTargets:se.morphAttributes.position!==void 0,morphNormals:se.morphAttributes.normal!==void 0,morphColors:se.morphAttributes.color!==void 0,morphTargetsCount:Ce,morphTextureStride:Oe,numDirLights:b.directional.length,numPointLights:b.point.length,numSpotLights:b.spot.length,numSpotLightMaps:b.spotLightMap.length,numRectAreaLights:b.rectArea.length,numHemiLights:b.hemi.length,numDirLightShadows:b.directionalShadowMap.length,numPointLightShadows:b.pointShadowMap.length,numSpotLightShadows:b.spotShadowMap.length,numSpotLightShadowsWithMaps:b.numSpotLightShadowsWithMaps,numLightProbes:b.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:w.dithering,shadowMapEnabled:n.shadowMap.enabled&&q.length>0,shadowMapType:n.shadowMap.type,toneMapping:dt,useLegacyLights:n._useLegacyLights,decodeVideoTexture:Be&&w.map.isVideoTexture===!0&&ln.getTransfer(w.map.colorSpace)===mn,premultipliedAlpha:w.premultipliedAlpha,doubleSided:w.side===Rs,flipSided:w.side===Yi,useDepthPacking:w.depthPacking>=0,depthPacking:w.depthPacking||0,index0AttributeName:w.index0AttributeName,extensionDerivatives:rt&&w.extensions.derivatives===!0,extensionFragDepth:rt&&w.extensions.fragDepth===!0,extensionDrawBuffers:rt&&w.extensions.drawBuffers===!0,extensionShaderTextureLOD:rt&&w.extensions.shaderTextureLOD===!0,extensionClipCullDistance:rt&&w.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:rt&&w.extensions.multiDraw===!0&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:d||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:d||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:d||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:w.customProgramCacheKey()};return Jt.vertexUv1s=A.has(1),Jt.vertexUv2s=A.has(2),Jt.vertexUv3s=A.has(3),A.clear(),Jt}function C(w){const b=[];if(w.shaderID?b.push(w.shaderID):(b.push(w.customVertexShaderID),b.push(w.customFragmentShaderID)),w.defines!==void 0)for(const q in w.defines)b.push(q),b.push(w.defines[q]);return w.isRawShaderMaterial===!1&&(I(b,w),B(b,w),b.push(n.outputColorSpace)),b.push(w.customProgramCacheKey),b.join()}function I(w,b){w.push(b.precision),w.push(b.outputColorSpace),w.push(b.envMapMode),w.push(b.envMapCubeUVHeight),w.push(b.mapUv),w.push(b.alphaMapUv),w.push(b.lightMapUv),w.push(b.aoMapUv),w.push(b.bumpMapUv),w.push(b.normalMapUv),w.push(b.displacementMapUv),w.push(b.emissiveMapUv),w.push(b.metalnessMapUv),w.push(b.roughnessMapUv),w.push(b.anisotropyMapUv),w.push(b.clearcoatMapUv),w.push(b.clearcoatNormalMapUv),w.push(b.clearcoatRoughnessMapUv),w.push(b.iridescenceMapUv),w.push(b.iridescenceThicknessMapUv),w.push(b.sheenColorMapUv),w.push(b.sheenRoughnessMapUv),w.push(b.specularMapUv),w.push(b.specularColorMapUv),w.push(b.specularIntensityMapUv),w.push(b.transmissionMapUv),w.push(b.thicknessMapUv),w.push(b.combine),w.push(b.fogExp2),w.push(b.sizeAttenuation),w.push(b.morphTargetsCount),w.push(b.morphAttributeCount),w.push(b.numDirLights),w.push(b.numPointLights),w.push(b.numSpotLights),w.push(b.numSpotLightMaps),w.push(b.numHemiLights),w.push(b.numRectAreaLights),w.push(b.numDirLightShadows),w.push(b.numPointLightShadows),w.push(b.numSpotLightShadows),w.push(b.numSpotLightShadowsWithMaps),w.push(b.numLightProbes),w.push(b.shadowMapType),w.push(b.toneMapping),w.push(b.numClippingPlanes),w.push(b.numClipIntersection),w.push(b.depthPacking)}function B(w,b){a.disableAll(),b.isWebGL2&&a.enable(0),b.supportsVertexTextures&&a.enable(1),b.instancing&&a.enable(2),b.instancingColor&&a.enable(3),b.matcap&&a.enable(4),b.envMap&&a.enable(5),b.normalMapObjectSpace&&a.enable(6),b.normalMapTangentSpace&&a.enable(7),b.clearcoat&&a.enable(8),b.iridescence&&a.enable(9),b.alphaTest&&a.enable(10),b.vertexColors&&a.enable(11),b.vertexAlphas&&a.enable(12),b.vertexUv1s&&a.enable(13),b.vertexUv2s&&a.enable(14),b.vertexUv3s&&a.enable(15),b.vertexTangents&&a.enable(16),b.anisotropy&&a.enable(17),b.alphaHash&&a.enable(18),b.batching&&a.enable(19),w.push(a.mask),a.disableAll(),b.fog&&a.enable(0),b.useFog&&a.enable(1),b.flatShading&&a.enable(2),b.logarithmicDepthBuffer&&a.enable(3),b.skinning&&a.enable(4),b.morphTargets&&a.enable(5),b.morphNormals&&a.enable(6),b.morphColors&&a.enable(7),b.premultipliedAlpha&&a.enable(8),b.shadowMapEnabled&&a.enable(9),b.useLegacyLights&&a.enable(10),b.doubleSided&&a.enable(11),b.flipSided&&a.enable(12),b.useDepthPacking&&a.enable(13),b.dithering&&a.enable(14),b.transmission&&a.enable(15),b.sheen&&a.enable(16),b.opaque&&a.enable(17),b.pointsUvs&&a.enable(18),b.decodeVideoTexture&&a.enable(19),b.alphaToCoverage&&a.enable(20),w.push(a.mask)}function R(w){const b=v[w.type];let q;if(b){const ge=ls[b];q=nR.clone(ge.uniforms)}else q=w.uniforms;return q}function M(w,b){let q;for(let ge=0,J=h.length;ge0?i.push(p):g.transparent===!0?r.push(p):t.push(p)}function l(d,f,g,E,v,y){const p=o(d,f,g,E,v,y);g.transmission>0?i.unshift(p):g.transparent===!0?r.unshift(p):t.unshift(p)}function A(d,f){t.length>1&&t.sort(d||_4),i.length>1&&i.sort(f||X_),r.length>1&&r.sort(f||X_)}function h(){for(let d=e,f=n.length;d=s.length?(o=new J_,s.push(o)):o=s[r],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function w4(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new G,color:new Je};break;case"SpotLight":t={position:new G,direction:new G,color:new Je,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new G,color:new Je,distance:0,decay:0};break;case"HemisphereLight":t={direction:new G,skyColor:new Je,groundColor:new Je};break;case"RectAreaLight":t={color:new Je,position:new G,halfWidth:new G,halfHeight:new G};break}return n[e.id]=t,t}}}function M4(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let Q4=0;function R4(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function T4(n,e){const t=new w4,i=M4(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)r.probe.push(new G);const s=new G,o=new ut,a=new ut;function l(h,d){let f=0,g=0,E=0;for(let q=0;q<9;q++)r.probe[q].set(0,0,0);let v=0,y=0,p=0,C=0,I=0,B=0,R=0,M=0,T=0,U=0,K=0;h.sort(R4);const w=d===!0?Math.PI:1;for(let q=0,ge=h.length;q0&&(e.isWebGL2?n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=f,r.ambient[1]=g,r.ambient[2]=E;const b=r.hash;(b.directionalLength!==v||b.pointLength!==y||b.spotLength!==p||b.rectAreaLength!==C||b.hemiLength!==I||b.numDirectionalShadows!==B||b.numPointShadows!==R||b.numSpotShadows!==M||b.numSpotMaps!==T||b.numLightProbes!==K)&&(r.directional.length=v,r.spot.length=p,r.rectArea.length=C,r.point.length=y,r.hemi.length=I,r.directionalShadow.length=B,r.directionalShadowMap.length=B,r.pointShadow.length=R,r.pointShadowMap.length=R,r.spotShadow.length=M,r.spotShadowMap.length=M,r.directionalShadowMatrix.length=B,r.pointShadowMatrix.length=R,r.spotLightMatrix.length=M+T-U,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=U,r.numLightProbes=K,b.directionalLength=v,b.pointLength=y,b.spotLength=p,b.rectAreaLength=C,b.hemiLength=I,b.numDirectionalShadows=B,b.numPointShadows=R,b.numSpotShadows=M,b.numSpotMaps=T,b.numLightProbes=K,r.version=Q4++)}function A(h,d){let f=0,g=0,E=0,v=0,y=0;const p=d.matrixWorldInverse;for(let C=0,I=h.length;C=a.length?(l=new j_(n,e),a.push(l)):l=a[o],l}function r(){t=new WeakMap}return{get:i,dispose:r}}class lm extends di{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=z2,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class cm extends di{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const b4=`void main() { - gl_Position = vec4( position, 1.0 ); -}`,N4=`uniform sampler2D shadow_pass; -uniform vec2 resolution; -uniform float radius; -#include -void main() { - const float samples = float( VSM_SAMPLES ); - float mean = 0.0; - float squared_mean = 0.0; - float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); - float uvStart = samples <= 1.0 ? 0.0 : - 1.0; - for ( float i = 0.0; i < samples; i ++ ) { - float uvOffset = uvStart + i * uvStride; - #ifdef HORIZONTAL_PASS - vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); - mean += distribution.x; - squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; - #else - float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); - mean += depth; - squared_mean += depth * depth; - #endif - } - mean = mean / samples; - squared_mean = squared_mean / samples; - float std_dev = sqrt( squared_mean - mean * mean ); - gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function L4(n,e,t){let i=new Zh;const r=new _e,s=new _e,o=new cn,a=new lm({depthPacking:PI}),l=new cm,A={},h=t.maxTextureSize,d={[jr]:Yi,[Yi]:jr,[Rs]:Rs},f=new ds({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new _e},radius:{value:4}},vertexShader:b4,fragmentShader:N4}),g=f.clone();g.defines.HORIZONTAL_PASS=1;const E=new Nt;E.setAttribute("position",new an(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new Zt(E,f),y=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=tm;let p=this.type;this.render=function(M,T,U){if(y.enabled===!1||y.autoUpdate===!1&&y.needsUpdate===!1||M.length===0)return;const K=n.getRenderTarget(),w=n.getActiveCubeFace(),b=n.getActiveMipmapLevel(),q=n.state;q.setBlending(mo),q.buffers.color.setClear(1,1,1,1),q.buffers.depth.setTest(!0),q.setScissorTest(!1);const ge=p!==ss&&this.type===ss,J=p===ss&&this.type!==ss;for(let ce=0,se=M.length;ceh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/ee.x),r.x=s.x*ee.x,F.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/ee.y),r.y=s.y*ee.y,F.mapSize.y=s.y)),F.map===null||ge===!0||J===!0){const ue=this.type!==ss?{minFilter:Gn,magFilter:Gn}:{};F.map!==null&&F.map.dispose(),F.map=new Kr(r.x,r.y,ue),F.map.texture.name=de.name+".shadowMap",F.camera.updateProjectionMatrix()}n.setRenderTarget(F.map),n.clear();const te=F.getViewportCount();for(let ue=0;ue0||T.map&&T.alphaTest>0){const q=w.uuid,ge=T.uuid;let J=A[q];J===void 0&&(J={},A[q]=J);let ce=J[ge];ce===void 0&&(ce=w.clone(),J[ge]=ce,T.addEventListener("dispose",R)),w=ce}if(w.visible=T.visible,w.wireframe=T.wireframe,K===ss?w.side=T.shadowSide!==null?T.shadowSide:T.side:w.side=T.shadowSide!==null?T.shadowSide:d[T.side],w.alphaMap=T.alphaMap,w.alphaTest=T.alphaTest,w.map=T.map,w.clipShadows=T.clipShadows,w.clippingPlanes=T.clippingPlanes,w.clipIntersection=T.clipIntersection,w.displacementMap=T.displacementMap,w.displacementScale=T.displacementScale,w.displacementBias=T.displacementBias,w.wireframeLinewidth=T.wireframeLinewidth,w.linewidth=T.linewidth,U.isPointLight===!0&&w.isMeshDistanceMaterial===!0){const q=n.properties.get(w);q.light=U}return w}function B(M,T,U,K,w){if(M.visible===!1)return;if(M.layers.test(T.layers)&&(M.isMesh||M.isLine||M.isPoints)&&(M.castShadow||M.receiveShadow&&w===ss)&&(!M.frustumCulled||i.intersectsObject(M))){M.modelViewMatrix.multiplyMatrices(U.matrixWorldInverse,M.matrixWorld);const ge=e.update(M),J=M.material;if(Array.isArray(J)){const ce=ge.groups;for(let se=0,de=ce.length;se=1):te.indexOf("OpenGL ES")!==-1&&(ee=parseFloat(/^OpenGL ES (\d)/.exec(te)[1]),F=ee>=2);let ue=null,Ce={};const Oe=n.getParameter(n.SCISSOR_BOX),W=n.getParameter(n.VIEWPORT),z=new cn().fromArray(Oe),O=new cn().fromArray(W);function k(j,Ge,Fe,rt){const dt=new Uint8Array(4),Jt=n.createTexture();n.bindTexture(j,Jt),n.texParameteri(j,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(j,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let jt=0;jt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new WeakMap;let d;const f=new WeakMap;let g=!1;try{g=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function E(S,D){return g?new OffscreenCanvas(S,D):bh("canvas")}function v(S,D,ie,be){let De=1;if((S.width>be||S.height>be)&&(De=be/Math.max(S.width,S.height)),De<1||D===!0)if(typeof HTMLImageElement<"u"&&S instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&S instanceof ImageBitmap){const Qe=D?Tg:Math.floor,Xe=Qe(De*S.width),Ve=Qe(De*S.height);d===void 0&&(d=E(Xe,Ve));const Ke=ie?E(Xe,Ve):d;return Ke.width=Xe,Ke.height=Ve,Ke.getContext("2d").drawImage(S,0,0,Xe,Ve),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+S.width+"x"+S.height+") to ("+Xe+"x"+Ve+")."),Ke}else return"data"in S&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+S.width+"x"+S.height+")."),S;return S}function y(S){return tv(S.width)&&tv(S.height)}function p(S){return a?!1:S.wrapS!==Ti||S.wrapT!==Ti||S.minFilter!==Gn&&S.minFilter!==In}function C(S,D){return S.generateMipmaps&&D&&S.minFilter!==Gn&&S.minFilter!==In}function I(S){n.generateMipmap(S)}function B(S,D,ie,be,De=!1){if(a===!1)return D;if(S!==null){if(n[S]!==void 0)return n[S];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+S+"'")}let Qe=D;if(D===n.RED&&(ie===n.FLOAT&&(Qe=n.R32F),ie===n.HALF_FLOAT&&(Qe=n.R16F),ie===n.UNSIGNED_BYTE&&(Qe=n.R8)),D===n.RED_INTEGER&&(ie===n.UNSIGNED_BYTE&&(Qe=n.R8UI),ie===n.UNSIGNED_SHORT&&(Qe=n.R16UI),ie===n.UNSIGNED_INT&&(Qe=n.R32UI),ie===n.BYTE&&(Qe=n.R8I),ie===n.SHORT&&(Qe=n.R16I),ie===n.INT&&(Qe=n.R32I)),D===n.RG&&(ie===n.FLOAT&&(Qe=n.RG32F),ie===n.HALF_FLOAT&&(Qe=n.RG16F),ie===n.UNSIGNED_BYTE&&(Qe=n.RG8)),D===n.RGBA){const Xe=De?Mh:ln.getTransfer(be);ie===n.FLOAT&&(Qe=n.RGBA32F),ie===n.HALF_FLOAT&&(Qe=n.RGBA16F),ie===n.UNSIGNED_BYTE&&(Qe=Xe===mn?n.SRGB8_ALPHA8:n.RGBA8),ie===n.UNSIGNED_SHORT_4_4_4_4&&(Qe=n.RGBA4),ie===n.UNSIGNED_SHORT_5_5_5_1&&(Qe=n.RGB5_A1)}return(Qe===n.R16F||Qe===n.R32F||Qe===n.RG16F||Qe===n.RG32F||Qe===n.RGBA16F||Qe===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Qe}function R(S,D,ie){return C(S,ie)===!0||S.isFramebufferTexture&&S.minFilter!==Gn&&S.minFilter!==In?Math.log2(Math.max(D.width,D.height))+1:S.mipmaps!==void 0&&S.mipmaps.length>0?S.mipmaps.length:S.isCompressedTexture&&Array.isArray(S.image)?D.mipmaps.length:1}function M(S){return S===Gn||S===Qg||S===Cl?n.NEAREST:n.LINEAR}function T(S){const D=S.target;D.removeEventListener("dispose",T),K(D),D.isVideoTexture&&h.delete(D)}function U(S){const D=S.target;D.removeEventListener("dispose",U),b(D)}function K(S){const D=i.get(S);if(D.__webglInit===void 0)return;const ie=S.source,be=f.get(ie);if(be){const De=be[D.__cacheKey];De.usedTimes--,De.usedTimes===0&&w(S),Object.keys(be).length===0&&f.delete(ie)}i.remove(S)}function w(S){const D=i.get(S);n.deleteTexture(D.__webglTexture);const ie=S.source,be=f.get(ie);delete be[D.__cacheKey],o.memory.textures--}function b(S){const D=S.texture,ie=i.get(S),be=i.get(D);if(be.__webglTexture!==void 0&&(n.deleteTexture(be.__webglTexture),o.memory.textures--),S.depthTexture&&S.depthTexture.dispose(),S.isWebGLCubeRenderTarget)for(let De=0;De<6;De++){if(Array.isArray(ie.__webglFramebuffer[De]))for(let Qe=0;Qe=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+S+" texture units while this GPU supports only "+r.maxTextures),q+=1,S}function ce(S){const D=[];return D.push(S.wrapS),D.push(S.wrapT),D.push(S.wrapR||0),D.push(S.magFilter),D.push(S.minFilter),D.push(S.anisotropy),D.push(S.internalFormat),D.push(S.format),D.push(S.type),D.push(S.generateMipmaps),D.push(S.premultiplyAlpha),D.push(S.flipY),D.push(S.unpackAlignment),D.push(S.colorSpace),D.join()}function se(S,D){const ie=i.get(S);if(S.isVideoTexture&&Te(S),S.isRenderTargetTexture===!1&&S.version>0&&ie.__version!==S.version){const be=S.image;if(be===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(be.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{z(ie,S,D);return}}t.bindTexture(n.TEXTURE_2D,ie.__webglTexture,n.TEXTURE0+D)}function de(S,D){const ie=i.get(S);if(S.version>0&&ie.__version!==S.version){z(ie,S,D);return}t.bindTexture(n.TEXTURE_2D_ARRAY,ie.__webglTexture,n.TEXTURE0+D)}function F(S,D){const ie=i.get(S);if(S.version>0&&ie.__version!==S.version){z(ie,S,D);return}t.bindTexture(n.TEXTURE_3D,ie.__webglTexture,n.TEXTURE0+D)}function ee(S,D){const ie=i.get(S);if(S.version>0&&ie.__version!==S.version){O(ie,S,D);return}t.bindTexture(n.TEXTURE_CUBE_MAP,ie.__webglTexture,n.TEXTURE0+D)}const te={[xh]:n.REPEAT,[Ti]:n.CLAMP_TO_EDGE,[Bh]:n.MIRRORED_REPEAT},ue={[Gn]:n.NEAREST,[Qg]:n.NEAREST_MIPMAP_NEAREST,[Cl]:n.NEAREST_MIPMAP_LINEAR,[In]:n.LINEAR,[ZA]:n.LINEAR_MIPMAP_NEAREST,[Ts]:n.LINEAR_MIPMAP_LINEAR},Ce={[V2]:n.NEVER,[K2]:n.ALWAYS,[W2]:n.LESS,[UI]:n.LEQUAL,[Y2]:n.EQUAL,[j2]:n.GEQUAL,[X2]:n.GREATER,[J2]:n.NOTEQUAL};function Oe(S,D,ie){if(D.type===zr&&e.has("OES_texture_float_linear")===!1&&(D.magFilter===In||D.magFilter===ZA||D.magFilter===Cl||D.magFilter===Ts||D.minFilter===In||D.minFilter===ZA||D.minFilter===Cl||D.minFilter===Ts)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),ie?(n.texParameteri(S,n.TEXTURE_WRAP_S,te[D.wrapS]),n.texParameteri(S,n.TEXTURE_WRAP_T,te[D.wrapT]),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,te[D.wrapR]),n.texParameteri(S,n.TEXTURE_MAG_FILTER,ue[D.magFilter]),n.texParameteri(S,n.TEXTURE_MIN_FILTER,ue[D.minFilter])):(n.texParameteri(S,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(S,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(D.wrapS!==Ti||D.wrapT!==Ti)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(S,n.TEXTURE_MAG_FILTER,M(D.magFilter)),n.texParameteri(S,n.TEXTURE_MIN_FILTER,M(D.minFilter)),D.minFilter!==Gn&&D.minFilter!==In&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),D.compareFunction&&(n.texParameteri(S,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(S,n.TEXTURE_COMPARE_FUNC,Ce[D.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const be=e.get("EXT_texture_filter_anisotropic");if(D.magFilter===Gn||D.minFilter!==Cl&&D.minFilter!==Ts||D.type===zr&&e.has("OES_texture_float_linear")===!1||a===!1&&D.type===Gl&&e.has("OES_texture_half_float_linear")===!1)return;(D.anisotropy>1||i.get(D).__currentAnisotropy)&&(n.texParameterf(S,be.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,r.getMaxAnisotropy())),i.get(D).__currentAnisotropy=D.anisotropy)}}function W(S,D){let ie=!1;S.__webglInit===void 0&&(S.__webglInit=!0,D.addEventListener("dispose",T));const be=D.source;let De=f.get(be);De===void 0&&(De={},f.set(be,De));const Qe=ce(D);if(Qe!==S.__cacheKey){De[Qe]===void 0&&(De[Qe]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,ie=!0),De[Qe].usedTimes++;const Xe=De[S.__cacheKey];Xe!==void 0&&(De[S.__cacheKey].usedTimes--,Xe.usedTimes===0&&w(D)),S.__cacheKey=Qe,S.__webglTexture=De[Qe].texture}return ie}function z(S,D,ie){let be=n.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&&(be=n.TEXTURE_2D_ARRAY),D.isData3DTexture&&(be=n.TEXTURE_3D);const De=W(S,D),Qe=D.source;t.bindTexture(be,S.__webglTexture,n.TEXTURE0+ie);const Xe=i.get(Qe);if(Qe.version!==Xe.__version||De===!0){t.activeTexture(n.TEXTURE0+ie);const Ve=ln.getPrimaries(ln.workingColorSpace),Ke=D.colorSpace===Cr?null:ln.getPrimaries(D.colorSpace),lt=D.colorSpace===Cr||Ve===Ke?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,D.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,D.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,lt);const vt=p(D)&&y(D.image)===!1;let Pe=v(D.image,vt,!1,r.maxTextureSize);Pe=$(D,Pe);const Lt=y(Pe)||a,St=s.convert(D.format,D.colorSpace);let pt=s.convert(D.type),at=B(D.internalFormat,St,pt,D.colorSpace,D.isVideoTexture);Oe(be,D,Lt);let tt;const xt=D.mipmaps,kt=a&&D.isVideoTexture!==!0&&at!==bI,$t=Xe.__version===void 0||De===!0,wt=Qe.dataReady,Xt=R(D,Pe,Lt);if(D.isDepthTexture)at=n.DEPTH_COMPONENT,a?D.type===zr?at=n.DEPTH_COMPONENT32F:D.type===fo?at=n.DEPTH_COMPONENT24:D.type===da?at=n.DEPTH24_STENCIL8:at=n.DEPTH_COMPONENT16:D.type===zr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),D.format===fa&&at===n.DEPTH_COMPONENT&&D.type!==im&&D.type!==fo&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),D.type=fo,pt=s.convert(D.type)),D.format===zl&&at===n.DEPTH_COMPONENT&&(at=n.DEPTH_STENCIL,D.type!==da&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),D.type=da,pt=s.convert(D.type))),$t&&(kt?t.texStorage2D(n.TEXTURE_2D,1,at,Pe.width,Pe.height):t.texImage2D(n.TEXTURE_2D,0,at,Pe.width,Pe.height,0,St,pt,null));else if(D.isDataTexture)if(xt.length>0&&Lt){kt&&$t&&t.texStorage2D(n.TEXTURE_2D,Xt,at,xt[0].width,xt[0].height);for(let j=0,Ge=xt.length;j>=1,Ge>>=1}}else if(xt.length>0&&Lt){kt&&$t&&t.texStorage2D(n.TEXTURE_2D,Xt,at,xt[0].width,xt[0].height);for(let j=0,Ge=xt.length;j0&&wt++,t.texStorage2D(n.TEXTURE_CUBE_MAP,wt,tt,Pe[0].width,Pe[0].height));for(let j=0;j<6;j++)if(vt){xt?$t&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+j,0,0,0,Pe[j].width,Pe[j].height,pt,at,Pe[j].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+j,0,tt,Pe[j].width,Pe[j].height,0,pt,at,Pe[j].data);for(let Ge=0;Ge>Qe),Pe=Math.max(1,D.height>>Qe);De===n.TEXTURE_3D||De===n.TEXTURE_2D_ARRAY?t.texImage3D(De,Qe,Ke,vt,Pe,D.depth,0,Xe,Ve,null):t.texImage2D(De,Qe,Ke,vt,Pe,0,Xe,Ve,null)}t.bindFramebuffer(n.FRAMEBUFFER,S),he(D)?l.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,be,De,i.get(ie).__webglTexture,0,ae(D)):(De===n.TEXTURE_2D||De>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&De<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,be,De,i.get(ie).__webglTexture,Qe),t.bindFramebuffer(n.FRAMEBUFFER,null)}function me(S,D,ie){if(n.bindRenderbuffer(n.RENDERBUFFER,S),D.depthBuffer&&!D.stencilBuffer){let be=a===!0?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(ie||he(D)){const De=D.depthTexture;De&&De.isDepthTexture&&(De.type===zr?be=n.DEPTH_COMPONENT32F:De.type===fo&&(be=n.DEPTH_COMPONENT24));const Qe=ae(D);he(D)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Qe,be,D.width,D.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Qe,be,D.width,D.height)}else n.renderbufferStorage(n.RENDERBUFFER,be,D.width,D.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,S)}else if(D.depthBuffer&&D.stencilBuffer){const be=ae(D);ie&&he(D)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):he(D)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,D.width,D.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,S)}else{const be=D.isWebGLMultipleRenderTargets===!0?D.texture:[D.texture];for(let De=0;De0){ie.__webglFramebuffer[Ve]=[];for(let Ke=0;Ke0){ie.__webglFramebuffer=[];for(let Ve=0;Ve0&&he(S)===!1){const Ve=Qe?D:[D];ie.__webglMultisampledFramebuffer=n.createFramebuffer(),ie.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,ie.__webglMultisampledFramebuffer);for(let Ke=0;Ke0)for(let Ke=0;Ke0)for(let Ke=0;Ke0&&he(S)===!1){const D=S.isWebGLMultipleRenderTargets?S.texture:[S.texture],ie=S.width,be=S.height;let De=n.COLOR_BUFFER_BIT;const Qe=[],Xe=S.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Ve=i.get(S),Ke=S.isWebGLMultipleRenderTargets===!0;if(Ke)for(let lt=0;lt0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&D.__useRenderToTexture!==!1}function Te(S){const D=o.render.frame;h.get(S)!==D&&(h.set(S,D),S.update())}function $(S,D){const ie=S.colorSpace,be=S.format,De=S.type;return S.isCompressedTexture===!0||S.isVideoTexture===!0||S.format===Rg||ie!==Os&&ie!==Cr&&(ln.getTransfer(ie)===mn?a===!1?e.has("EXT_sRGB")===!0&&be===zi?(S.format=Rg,S.minFilter=In,S.generateMipmaps=!1):D=kI.sRGBToLinear(D):(be!==zi||De!==Us)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ie)),D}this.allocateTextureUnit=J,this.resetTextureUnits=ge,this.setTexture2D=se,this.setTexture2DArray=de,this.setTexture3D=F,this.setTextureCube=ee,this.rebindTextures=Be,this.setupRenderTarget=H,this.updateRenderTargetMipmap=Ee,this.updateMultisampleRenderTarget=ne,this.setupDepthRenderbuffer=re,this.setupFrameBufferTexture=k,this.useMultisampledRTT=he}function AR(n,e,t){const i=t.isWebGL2;function r(s,o=Cr){let a;const l=ln.getTransfer(o);if(s===Us)return n.UNSIGNED_BYTE;if(s===MI)return n.UNSIGNED_SHORT_4_4_4_4;if(s===QI)return n.UNSIGNED_SHORT_5_5_5_1;if(s===T2)return n.BYTE;if(s===D2)return n.SHORT;if(s===im)return n.UNSIGNED_SHORT;if(s===wI)return n.INT;if(s===fo)return n.UNSIGNED_INT;if(s===zr)return n.FLOAT;if(s===Gl)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===b2)return n.ALPHA;if(s===zi)return n.RGBA;if(s===N2)return n.LUMINANCE;if(s===L2)return n.LUMINANCE_ALPHA;if(s===fa)return n.DEPTH_COMPONENT;if(s===zl)return n.DEPTH_STENCIL;if(s===Rg)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===P2)return n.RED;if(s===RI)return n.RED_INTEGER;if(s===U2)return n.RG;if(s===TI)return n.RG_INTEGER;if(s===DI)return n.RGBA_INTEGER;if(s===Op||s===Gp||s===zp||s===Hp)if(l===mn)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===Op)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===Gp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===zp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===Hp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===Op)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===Gp)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===zp)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===Hp)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===MC||s===QC||s===RC||s===TC)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===MC)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===QC)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===RC)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===TC)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===bI)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===DC||s===bC)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(s===DC)return l===mn?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===bC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===NC||s===LC||s===PC||s===UC||s===FC||s===kC||s===OC||s===GC||s===zC||s===HC||s===VC||s===WC||s===YC||s===XC)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(s===NC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===LC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===PC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===UC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===FC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===kC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===OC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===GC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===zC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===HC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===VC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===WC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===YC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===XC)return l===mn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===Vp||s===JC||s===jC)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(s===Vp)return l===mn?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===JC)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===jC)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===F2||s===KC||s===qC||s===ZC)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(s===Vp)return a.COMPRESSED_RED_RGTC1_EXT;if(s===KC)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===qC)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===ZC)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===da?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[s]!==void 0?n[s]:null}return{convert:r}}class hR extends ti{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class Vr extends Ht{constructor(){super(),this.isGroup=!0,this.type="Group"}}const F4={type:"move"};class PE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Vr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Vr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new G,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new G),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Vr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new G,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new G),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,s=null,o=null;const a=this._targetRay,l=this._grip,A=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(A&&e.hand){o=!0;for(const v of e.hand.values()){const y=t.getJointPose(v,i),p=this._getHandJoint(A,v);y!==null&&(p.matrix.fromArray(y.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.matrixWorldNeedsUpdate=!0,p.jointRadius=y.radius),p.visible=y!==null}const h=A.joints["index-finger-tip"],d=A.joints["thumb-tip"],f=h.position.distanceTo(d.position),g=.02,E=.005;A.inputState.pinching&&f>g+E?(A.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!A.inputState.pinching&&f<=g-E&&(A.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));a!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(F4)))}return a!==null&&(a.visible=r!==null),l!==null&&(l.visible=s!==null),A!==null&&(A.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new Vr;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}const k4=` -void main() { - - gl_Position = vec4( position, 1.0 ); - -}`,O4=` -uniform sampler2DArray depthColor; -uniform float depthWidth; -uniform float depthHeight; - -void main() { - - vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); - - if ( coord.x >= 1.0 ) { - - gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; - - } else { - - gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; - - } - -}`;class G4{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,i){if(this.texture===null){const r=new wn,s=e.properties.get(r);s.__webglTexture=t.texture,(t.depthNear!=i.depthNear||t.depthFar!=i.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}render(e,t){if(this.texture!==null){if(this.mesh===null){const i=t.cameras[0].viewport,r=new ds({extensions:{fragDepth:!0},vertexShader:k4,fragmentShader:O4,uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new Zt(new Ma(20,20),r)}e.render(this.mesh,t)}}reset(){this.texture=null,this.mesh=null}}class z4 extends Bo{constructor(e,t){super();const i=this;let r=null,s=1,o=null,a="local-floor",l=1,A=null,h=null,d=null,f=null,g=null,E=null;const v=new G4,y=t.getContextAttributes();let p=null,C=null;const I=[],B=[],R=new _e;let M=null;const T=new ti;T.layers.enable(1),T.viewport=new cn;const U=new ti;U.layers.enable(2),U.viewport=new cn;const K=[T,U],w=new hR;w.layers.enable(1),w.layers.enable(2);let b=null,q=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(W){let z=I[W];return z===void 0&&(z=new PE,I[W]=z),z.getTargetRaySpace()},this.getControllerGrip=function(W){let z=I[W];return z===void 0&&(z=new PE,I[W]=z),z.getGripSpace()},this.getHand=function(W){let z=I[W];return z===void 0&&(z=new PE,I[W]=z),z.getHandSpace()};function ge(W){const z=B.indexOf(W.inputSource);if(z===-1)return;const O=I[z];O!==void 0&&(O.update(W.inputSource,W.frame,A||o),O.dispatchEvent({type:W.type,data:W.inputSource}))}function J(){r.removeEventListener("select",ge),r.removeEventListener("selectstart",ge),r.removeEventListener("selectend",ge),r.removeEventListener("squeeze",ge),r.removeEventListener("squeezestart",ge),r.removeEventListener("squeezeend",ge),r.removeEventListener("end",J),r.removeEventListener("inputsourceschange",ce);for(let W=0;W=0&&(B[k]=null,I[k].disconnect(O))}for(let z=0;z=B.length){B.push(O),k=Ie;break}else if(B[Ie]===null){B[Ie]=O,k=Ie;break}if(k===-1)break}const me=I[k];me&&me.connect(O)}}const se=new G,de=new G;function F(W,z,O){se.setFromMatrixPosition(z.matrixWorld),de.setFromMatrixPosition(O.matrixWorld);const k=se.distanceTo(de),me=z.projectionMatrix.elements,Ie=O.projectionMatrix.elements,re=me[14]/(me[10]-1),Be=me[14]/(me[10]+1),H=(me[9]+1)/me[5],Ee=(me[9]-1)/me[5],ne=(me[8]-1)/me[0],ae=(Ie[8]+1)/Ie[0],he=re*ne,Te=re*ae,$=k/(-ne+ae),S=$*-ne;z.matrixWorld.decompose(W.position,W.quaternion,W.scale),W.translateX(S),W.translateZ($),W.matrixWorld.compose(W.position,W.quaternion,W.scale),W.matrixWorldInverse.copy(W.matrixWorld).invert();const D=re+$,ie=Be+$,be=he-S,De=Te+(k-S),Qe=H*Be/ie*D,Xe=Ee*Be/ie*D;W.projectionMatrix.makePerspective(be,De,Qe,Xe,D,ie),W.projectionMatrixInverse.copy(W.projectionMatrix).invert()}function ee(W,z){z===null?W.matrixWorld.copy(W.matrix):W.matrixWorld.multiplyMatrices(z.matrixWorld,W.matrix),W.matrixWorldInverse.copy(W.matrixWorld).invert()}this.updateCamera=function(W){if(r===null)return;v.texture!==null&&(W.near=v.depthNear,W.far=v.depthFar),w.near=U.near=T.near=W.near,w.far=U.far=T.far=W.far,(b!==w.near||q!==w.far)&&(r.updateRenderState({depthNear:w.near,depthFar:w.far}),b=w.near,q=w.far,T.near=b,T.far=q,U.near=b,U.far=q,T.updateProjectionMatrix(),U.updateProjectionMatrix(),W.updateProjectionMatrix());const z=W.parent,O=w.cameras;ee(w,z);for(let k=0;k0&&(y.alphaTest.value=p.alphaTest);const C=e.get(p).envMap;if(C&&(y.envMap.value=C,y.flipEnvMap.value=C.isCubeTexture&&C.isRenderTargetTexture===!1?-1:1,y.reflectivity.value=p.reflectivity,y.ior.value=p.ior,y.refractionRatio.value=p.refractionRatio),p.lightMap){y.lightMap.value=p.lightMap;const I=n._useLegacyLights===!0?Math.PI:1;y.lightMapIntensity.value=p.lightMapIntensity*I,t(p.lightMap,y.lightMapTransform)}p.aoMap&&(y.aoMap.value=p.aoMap,y.aoMapIntensity.value=p.aoMapIntensity,t(p.aoMap,y.aoMapTransform))}function o(y,p){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,p.map&&(y.map.value=p.map,t(p.map,y.mapTransform))}function a(y,p){y.dashSize.value=p.dashSize,y.totalSize.value=p.dashSize+p.gapSize,y.scale.value=p.scale}function l(y,p,C,I){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,y.size.value=p.size*C,y.scale.value=I*.5,p.map&&(y.map.value=p.map,t(p.map,y.uvTransform)),p.alphaMap&&(y.alphaMap.value=p.alphaMap,t(p.alphaMap,y.alphaMapTransform)),p.alphaTest>0&&(y.alphaTest.value=p.alphaTest)}function A(y,p){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,y.rotation.value=p.rotation,p.map&&(y.map.value=p.map,t(p.map,y.mapTransform)),p.alphaMap&&(y.alphaMap.value=p.alphaMap,t(p.alphaMap,y.alphaMapTransform)),p.alphaTest>0&&(y.alphaTest.value=p.alphaTest)}function h(y,p){y.specular.value.copy(p.specular),y.shininess.value=Math.max(p.shininess,1e-4)}function d(y,p){p.gradientMap&&(y.gradientMap.value=p.gradientMap)}function f(y,p){y.metalness.value=p.metalness,p.metalnessMap&&(y.metalnessMap.value=p.metalnessMap,t(p.metalnessMap,y.metalnessMapTransform)),y.roughness.value=p.roughness,p.roughnessMap&&(y.roughnessMap.value=p.roughnessMap,t(p.roughnessMap,y.roughnessMapTransform)),e.get(p).envMap&&(y.envMapIntensity.value=p.envMapIntensity)}function g(y,p,C){y.ior.value=p.ior,p.sheen>0&&(y.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),y.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(y.sheenColorMap.value=p.sheenColorMap,t(p.sheenColorMap,y.sheenColorMapTransform)),p.sheenRoughnessMap&&(y.sheenRoughnessMap.value=p.sheenRoughnessMap,t(p.sheenRoughnessMap,y.sheenRoughnessMapTransform))),p.clearcoat>0&&(y.clearcoat.value=p.clearcoat,y.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(y.clearcoatMap.value=p.clearcoatMap,t(p.clearcoatMap,y.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(y.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,t(p.clearcoatRoughnessMap,y.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(y.clearcoatNormalMap.value=p.clearcoatNormalMap,t(p.clearcoatNormalMap,y.clearcoatNormalMapTransform),y.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Yi&&y.clearcoatNormalScale.value.negate())),p.iridescence>0&&(y.iridescence.value=p.iridescence,y.iridescenceIOR.value=p.iridescenceIOR,y.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],y.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(y.iridescenceMap.value=p.iridescenceMap,t(p.iridescenceMap,y.iridescenceMapTransform)),p.iridescenceThicknessMap&&(y.iridescenceThicknessMap.value=p.iridescenceThicknessMap,t(p.iridescenceThicknessMap,y.iridescenceThicknessMapTransform))),p.transmission>0&&(y.transmission.value=p.transmission,y.transmissionSamplerMap.value=C.texture,y.transmissionSamplerSize.value.set(C.width,C.height),p.transmissionMap&&(y.transmissionMap.value=p.transmissionMap,t(p.transmissionMap,y.transmissionMapTransform)),y.thickness.value=p.thickness,p.thicknessMap&&(y.thicknessMap.value=p.thicknessMap,t(p.thicknessMap,y.thicknessMapTransform)),y.attenuationDistance.value=p.attenuationDistance,y.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(y.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(y.anisotropyMap.value=p.anisotropyMap,t(p.anisotropyMap,y.anisotropyMapTransform))),y.specularIntensity.value=p.specularIntensity,y.specularColor.value.copy(p.specularColor),p.specularColorMap&&(y.specularColorMap.value=p.specularColorMap,t(p.specularColorMap,y.specularColorMapTransform)),p.specularIntensityMap&&(y.specularIntensityMap.value=p.specularIntensityMap,t(p.specularIntensityMap,y.specularIntensityMapTransform))}function E(y,p){p.matcap&&(y.matcap.value=p.matcap)}function v(y,p){const C=e.get(p).light;y.referencePosition.value.setFromMatrixPosition(C.matrixWorld),y.nearDistance.value=C.shadow.camera.near,y.farDistance.value=C.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function V4(n,e,t,i){let r={},s={},o=[];const a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(C,I){const B=I.program;i.uniformBlockBinding(C,B)}function A(C,I){let B=r[C.id];B===void 0&&(E(C),B=h(C),r[C.id]=B,C.addEventListener("dispose",y));const R=I.program;i.updateUBOMapping(C,R);const M=e.render.frame;s[C.id]!==M&&(f(C),s[C.id]=M)}function h(C){const I=d();C.__bindingPointIndex=I;const B=n.createBuffer(),R=C.__size,M=C.usage;return n.bindBuffer(n.UNIFORM_BUFFER,B),n.bufferData(n.UNIFORM_BUFFER,R,M),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,I,B),B}function d(){for(let C=0;C0&&(B+=R-M),C.__size=B,C.__cache={},this}function v(C){const I={boundary:0,storage:0};return typeof C=="number"||typeof C=="boolean"?(I.boundary=4,I.storage=4):C.isVector2?(I.boundary=8,I.storage=8):C.isVector3||C.isColor?(I.boundary=16,I.storage=12):C.isVector4?(I.boundary=16,I.storage=16):C.isMatrix3?(I.boundary=48,I.storage=48):C.isMatrix4?(I.boundary=64,I.storage=64):C.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",C),I}function y(C){const I=C.target;I.removeEventListener("dispose",y);const B=o.indexOf(I.__bindingPointIndex);o.splice(B,1),n.deleteBuffer(r[I.id]),delete r[I.id],delete s[I.id]}function p(){for(const C in r)n.deleteBuffer(r[C]);o=[],r={},s={}}return{bind:l,update:A,dispose:p}}class WI{constructor(e={}){const{canvas:t=Z2(),context:i=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:A=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:d=!1}=e;this.isWebGLRenderer=!0;let f;i!==null?f=i.getContextAttributes().alpha:f=o;const g=new Uint32Array(4),E=new Int32Array(4);let v=null,y=null;const p=[],C=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=zn,this._useLegacyLights=!1,this.toneMapping=Ps,this.toneMappingExposure=1;const I=this;let B=!1,R=0,M=0,T=null,U=-1,K=null;const w=new cn,b=new cn;let q=null;const ge=new Je(0);let J=0,ce=t.width,se=t.height,de=1,F=null,ee=null;const te=new cn(0,0,ce,se),ue=new cn(0,0,ce,se);let Ce=!1;const Oe=new Zh;let W=!1,z=!1,O=null;const k=new ut,me=new _e,Ie=new G,re={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Be(){return T===null?de:1}let H=i;function Ee(V,fe){for(let xe=0;xe{function Ze(){if(Se.forEach(function(ct){$.get(ct).currentProgram.isReady()&&Se.delete(ct)}),Se.size===0){ve(V);return}setTimeout(Ze,10)}ne.get("KHR_parallel_shader_compile")!==null?Ze():setTimeout(Ze,10)})};let jt=null;function bn(V){jt&&jt(V)}function fi(){dn.stop()}function sn(){dn.start()}const dn=new sR;dn.setAnimationLoop(bn),typeof self<"u"&&dn.setContext(self),this.setAnimationLoop=function(V){jt=V,wt.setAnimationLoop(V),V===null?dn.stop():dn.start()},wt.addEventListener("sessionstart",fi),wt.addEventListener("sessionend",sn),this.render=function(V,fe){if(fe!==void 0&&fe.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(B===!0)return;V.matrixWorldAutoUpdate===!0&&V.updateMatrixWorld(),fe.parent===null&&fe.matrixWorldAutoUpdate===!0&&fe.updateMatrixWorld(),wt.enabled===!0&&wt.isPresenting===!0&&(wt.cameraAutoUpdate===!0&&wt.updateCamera(fe),fe=wt.getCamera()),V.isScene===!0&&V.onBeforeRender(I,V,fe,T),y=lt.get(V,C.length),y.init(),C.push(y),k.multiplyMatrices(fe.projectionMatrix,fe.matrixWorldInverse),Oe.setFromProjectionMatrix(k),z=this.localClippingEnabled,W=vt.init(this.clippingPlanes,z),v=Ke.get(V,p.length),v.init(),p.push(v),Zi(V,fe,0,I.sortObjects),v.finish(),I.sortObjects===!0&&v.sort(F,ee),this.info.render.frame++,W===!0&&vt.beginShadows();const xe=y.state.shadowsArray;if(Pe.render(xe,V,fe),W===!0&&vt.endShadows(),this.info.autoReset===!0&&this.info.reset(),(wt.enabled===!1||wt.isPresenting===!1||wt.hasDepthSensing()===!1)&&Lt.render(v,V),y.setupLights(I._useLegacyLights),fe.isArrayCamera){const Se=fe.cameras;for(let ve=0,Ze=Se.length;ve0?y=C[C.length-1]:y=null,p.pop(),p.length>0?v=p[p.length-1]:v=null};function Zi(V,fe,xe,Se){if(V.visible===!1)return;if(V.layers.test(fe.layers)){if(V.isGroup)xe=V.renderOrder;else if(V.isLOD)V.autoUpdate===!0&&V.update(fe);else if(V.isLight)y.pushLight(V),V.castShadow&&y.pushShadow(V);else if(V.isSprite){if(!V.frustumCulled||Oe.intersectsSprite(V)){Se&&Ie.setFromMatrixPosition(V.matrixWorld).applyMatrix4(k);const ct=Qe.update(V),mt=V.material;mt.visible&&v.push(V,ct,mt,xe,Ie.z,null)}}else if((V.isMesh||V.isLine||V.isPoints)&&(!V.frustumCulled||Oe.intersectsObject(V))){const ct=Qe.update(V),mt=V.material;if(Se&&(V.boundingSphere!==void 0?(V.boundingSphere===null&&V.computeBoundingSphere(),Ie.copy(V.boundingSphere.center)):(ct.boundingSphere===null&&ct.computeBoundingSphere(),Ie.copy(ct.boundingSphere.center)),Ie.applyMatrix4(V.matrixWorld).applyMatrix4(k)),Array.isArray(mt)){const gt=ct.groups;for(let Mt=0,Bt=gt.length;Mt0&&pi(ve,Ze,fe,xe),Se&&he.viewport(w.copy(Se)),ve.length>0&&Vs(ve,fe,xe),Ze.length>0&&Vs(Ze,fe,xe),ct.length>0&&Vs(ct,fe,xe),he.buffers.depth.setTest(!0),he.buffers.depth.setMask(!0),he.buffers.color.setMask(!0),he.setPolygonOffset(!1)}function pi(V,fe,xe,Se){if((xe.isScene===!0?xe.overrideMaterial:null)!==null)return;const Ze=ae.isWebGL2;O===null&&(O=new Kr(1,1,{generateMipmaps:!0,type:ne.has("EXT_color_buffer_half_float")?Gl:Us,minFilter:Ts,samples:Ze?4:0})),I.getDrawingBufferSize(me),Ze?O.setSize(me.x,me.y):O.setSize(Tg(me.x),Tg(me.y));const ct=I.getRenderTarget();I.setRenderTarget(O),I.getClearColor(ge),J=I.getClearAlpha(),J<1&&I.setClearColor(16777215,.5),I.clear();const mt=I.toneMapping;I.toneMapping=Ps,Vs(V,xe,Se),S.updateMultisampleRenderTarget(O),S.updateRenderTargetMipmap(O);let gt=!1;for(let Mt=0,Bt=fe.length;Mt0),_t=!!xe.morphAttributes.position,yn=!!xe.morphAttributes.normal,Yn=!!xe.morphAttributes.color;let on=Ps;Se.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&(on=I.toneMapping);const Xn=xe.morphAttributes.position||xe.morphAttributes.normal||xe.morphAttributes.color,yt=Xn!==void 0?Xn.length:0,et=$.get(Se),Ci=y.state.lights;if(W===!0&&(z===!0||V!==K)){const we=V===K&&Se.id===U;vt.setState(Se,V,we)}let It=!1;Se.version===et.__version?(et.needsLights&&et.lightsStateVersion!==Ci.state.version||et.outputColorSpace!==mt||ve.isBatchedMesh&&et.batching===!1||!ve.isBatchedMesh&&et.batching===!0||ve.isInstancedMesh&&et.instancing===!1||!ve.isInstancedMesh&&et.instancing===!0||ve.isSkinnedMesh&&et.skinning===!1||!ve.isSkinnedMesh&&et.skinning===!0||ve.isInstancedMesh&&et.instancingColor===!0&&ve.instanceColor===null||ve.isInstancedMesh&&et.instancingColor===!1&&ve.instanceColor!==null||et.envMap!==gt||Se.fog===!0&&et.fog!==Ze||et.numClippingPlanes!==void 0&&(et.numClippingPlanes!==vt.numPlanes||et.numIntersection!==vt.numIntersection)||et.vertexAlphas!==Mt||et.vertexTangents!==Bt||et.morphTargets!==_t||et.morphNormals!==yn||et.morphColors!==Yn||et.toneMapping!==on||ae.isWebGL2===!0&&et.morphTargetsCount!==yt)&&(It=!0):(It=!0,et.__version=Se.version);let fn=et.currentProgram;It===!0&&(fn=ms(Se,fe,ve));let ur=!1,L=!1,P=!1;const Z=fn.getUniforms(),oe=et.uniforms;if(he.useProgram(fn.program)&&(ur=!0,L=!0,P=!0),Se.id!==U&&(U=Se.id,L=!0),ur||K!==V){Z.setValue(H,"projectionMatrix",V.projectionMatrix),Z.setValue(H,"viewMatrix",V.matrixWorldInverse);const we=Z.map.cameraPosition;we!==void 0&&we.setValue(H,Ie.setFromMatrixPosition(V.matrixWorld)),ae.logarithmicDepthBuffer&&Z.setValue(H,"logDepthBufFC",2/(Math.log(V.far+1)/Math.LN2)),(Se.isMeshPhongMaterial||Se.isMeshToonMaterial||Se.isMeshLambertMaterial||Se.isMeshBasicMaterial||Se.isMeshStandardMaterial||Se.isShaderMaterial)&&Z.setValue(H,"isOrthographic",V.isOrthographicCamera===!0),K!==V&&(K=V,L=!0,P=!0)}if(ve.isSkinnedMesh){Z.setOptional(H,ve,"bindMatrix"),Z.setOptional(H,ve,"bindMatrixInverse");const we=ve.skeleton;we&&(ae.floatVertexTextures?(we.boneTexture===null&&we.computeBoneTexture(),Z.setValue(H,"boneTexture",we.boneTexture,S)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}ve.isBatchedMesh&&(Z.setOptional(H,ve,"batchingTexture"),Z.setValue(H,"batchingTexture",ve._matricesTexture,S));const pe=xe.morphAttributes;if((pe.position!==void 0||pe.normal!==void 0||pe.color!==void 0&&ae.isWebGL2===!0)&&St.update(ve,xe,fn),(L||et.receiveShadow!==ve.receiveShadow)&&(et.receiveShadow=ve.receiveShadow,Z.setValue(H,"receiveShadow",ve.receiveShadow)),Se.isMeshGouraudMaterial&&Se.envMap!==null&&(oe.envMap.value=gt,oe.flipEnvMap.value=gt.isCubeTexture&>.isRenderTargetTexture===!1?-1:1),L&&(Z.setValue(H,"toneMappingExposure",I.toneMappingExposure),et.needsLights&&Hu(oe,P),Ze&&Se.fog===!0&&Ve.refreshFogUniforms(oe,Ze),Ve.refreshMaterialUniforms(oe,Se,de,se,O),Yp.upload(H,wo(et),oe,S)),Se.isShaderMaterial&&Se.uniformsNeedUpdate===!0&&(Yp.upload(H,wo(et),oe,S),Se.uniformsNeedUpdate=!1),Se.isSpriteMaterial&&Z.setValue(H,"center",ve.center),Z.setValue(H,"modelViewMatrix",ve.modelViewMatrix),Z.setValue(H,"normalMatrix",ve.normalMatrix),Z.setValue(H,"modelMatrix",ve.matrixWorld),Se.isShaderMaterial||Se.isRawShaderMaterial){const we=Se.uniformsGroups;for(let Ue=0,Le=we.length;Ue0&&S.useMultisampledRTT(V)===!1?ve=$.get(V).__webglMultisampledFramebuffer:Array.isArray(Bt)?ve=Bt[xe]:ve=Bt,w.copy(V.viewport),b.copy(V.scissor),q=V.scissorTest}else w.copy(te).multiplyScalar(de).floor(),b.copy(ue).multiplyScalar(de).floor(),q=Ce;if(he.bindFramebuffer(H.FRAMEBUFFER,ve)&&ae.drawBuffers&&Se&&he.drawBuffers(V,ve),he.viewport(w),he.scissor(b),he.setScissorTest(q),Ze){const gt=$.get(V.texture);H.framebufferTexture2D(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_CUBE_MAP_POSITIVE_X+fe,gt.__webglTexture,xe)}else if(ct){const gt=$.get(V.texture),Mt=fe||0;H.framebufferTextureLayer(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,gt.__webglTexture,xe||0,Mt)}U=-1},this.readRenderTargetPixels=function(V,fe,xe,Se,ve,Ze,ct){if(!(V&&V.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let mt=$.get(V).__webglFramebuffer;if(V.isWebGLCubeRenderTarget&&ct!==void 0&&(mt=mt[ct]),mt){he.bindFramebuffer(H.FRAMEBUFFER,mt);try{const gt=V.texture,Mt=gt.format,Bt=gt.type;if(Mt!==zi&&tt.convert(Mt)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const _t=Bt===Gl&&(ne.has("EXT_color_buffer_half_float")||ae.isWebGL2&&ne.has("EXT_color_buffer_float"));if(Bt!==Us&&tt.convert(Bt)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_TYPE)&&!(Bt===zr&&(ae.isWebGL2||ne.has("OES_texture_float")||ne.has("WEBGL_color_buffer_float")))&&!_t){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}fe>=0&&fe<=V.width-Se&&xe>=0&&xe<=V.height-ve&&H.readPixels(fe,xe,Se,ve,tt.convert(Mt),tt.convert(Bt),Ze)}finally{const gt=T!==null?$.get(T).__webglFramebuffer:null;he.bindFramebuffer(H.FRAMEBUFFER,gt)}}},this.copyFramebufferToTexture=function(V,fe,xe=0){const Se=Math.pow(2,-xe),ve=Math.floor(fe.image.width*Se),Ze=Math.floor(fe.image.height*Se);S.setTexture2D(fe,0),H.copyTexSubImage2D(H.TEXTURE_2D,xe,0,0,V.x,V.y,ve,Ze),he.unbindTexture()},this.copyTextureToTexture=function(V,fe,xe,Se=0){const ve=fe.image.width,Ze=fe.image.height,ct=tt.convert(xe.format),mt=tt.convert(xe.type);S.setTexture2D(xe,0),H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,xe.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,xe.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,xe.unpackAlignment),fe.isDataTexture?H.texSubImage2D(H.TEXTURE_2D,Se,V.x,V.y,ve,Ze,ct,mt,fe.image.data):fe.isCompressedTexture?H.compressedTexSubImage2D(H.TEXTURE_2D,Se,V.x,V.y,fe.mipmaps[0].width,fe.mipmaps[0].height,ct,fe.mipmaps[0].data):H.texSubImage2D(H.TEXTURE_2D,Se,V.x,V.y,ct,mt,fe.image),Se===0&&xe.generateMipmaps&&H.generateMipmap(H.TEXTURE_2D),he.unbindTexture()},this.copyTextureToTexture3D=function(V,fe,xe,Se,ve=0){if(I.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Ze=V.max.x-V.min.x+1,ct=V.max.y-V.min.y+1,mt=V.max.z-V.min.z+1,gt=tt.convert(Se.format),Mt=tt.convert(Se.type);let Bt;if(Se.isData3DTexture)S.setTexture3D(Se,0),Bt=H.TEXTURE_3D;else if(Se.isDataArrayTexture||Se.isCompressedArrayTexture)S.setTexture2DArray(Se,0),Bt=H.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,Se.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Se.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,Se.unpackAlignment);const _t=H.getParameter(H.UNPACK_ROW_LENGTH),yn=H.getParameter(H.UNPACK_IMAGE_HEIGHT),Yn=H.getParameter(H.UNPACK_SKIP_PIXELS),on=H.getParameter(H.UNPACK_SKIP_ROWS),Xn=H.getParameter(H.UNPACK_SKIP_IMAGES),yt=xe.isCompressedTexture?xe.mipmaps[ve]:xe.image;H.pixelStorei(H.UNPACK_ROW_LENGTH,yt.width),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,yt.height),H.pixelStorei(H.UNPACK_SKIP_PIXELS,V.min.x),H.pixelStorei(H.UNPACK_SKIP_ROWS,V.min.y),H.pixelStorei(H.UNPACK_SKIP_IMAGES,V.min.z),xe.isDataTexture||xe.isData3DTexture?H.texSubImage3D(Bt,ve,fe.x,fe.y,fe.z,Ze,ct,mt,gt,Mt,yt.data):xe.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),H.compressedTexSubImage3D(Bt,ve,fe.x,fe.y,fe.z,Ze,ct,mt,gt,yt.data)):H.texSubImage3D(Bt,ve,fe.x,fe.y,fe.z,Ze,ct,mt,gt,Mt,yt),H.pixelStorei(H.UNPACK_ROW_LENGTH,_t),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,yn),H.pixelStorei(H.UNPACK_SKIP_PIXELS,Yn),H.pixelStorei(H.UNPACK_SKIP_ROWS,on),H.pixelStorei(H.UNPACK_SKIP_IMAGES,Xn),ve===0&&Se.generateMipmaps&&H.generateMipmap(Bt),he.unbindTexture()},this.initTexture=function(V){V.isCubeTexture?S.setTextureCube(V,0):V.isData3DTexture?S.setTexture3D(V,0):V.isDataArrayTexture||V.isCompressedArrayTexture?S.setTexture2DArray(V,0):S.setTexture2D(V,0),he.unbindTexture()},this.resetState=function(){R=0,M=0,T=null,he.reset(),xt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Ds}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===sm?"display-p3":"srgb",t.unpackColorSpace=ln.workingColorSpace===jh?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===zn?pa:LI}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===pa?zn:Os}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class dR extends WI{}dR.prototype.isWebGL1Renderer=!0;class um{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Je(e),this.density=t}clone(){return new um(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Am{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Je(e),this.near=t,this.far=i}clone(){return new Am(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Nh extends Ht{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}}class hm{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=Th,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=_r()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return bl("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:l,point:CA.clone(),uv:vr.getInterpolation(CA,Vf,IA,Wf,K_,UE,q_,new _e),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function Yf(n,e,t,i,r,s){Pc.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(vA.x=s*Pc.x-r*Pc.y,vA.y=r*Pc.x+s*Pc.y):vA.copy(Pc),n.copy(e),n.x+=vA.x,n.y+=vA.y,n.applyMatrix4(fR)}const Xf=new G,Z_=new G;class gR extends Ht{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){Xf.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(Xf);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Xf.setFromMatrixPosition(e.matrixWorld),Z_.setFromMatrixPosition(this.matrixWorld);const i=Xf.distanceTo(Z_)/e.zoom;t[0].object.visible=!0;let r,s;for(r=1,s=t.length;r=o)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const Fc="batchId",Wo=new ut,aS=new ut,q4=new ut,lS=new ut,OE=new Zh,Kf=new ii,ol=new Zn,_A=new G,GE=new K4,Qi=new Zt,qf=[];function Z4(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new an(a,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(Fc,new an(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(Fc))throw new Error(`BatchedMesh: Geometry cannot use attribute "${Fc}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===Fc)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ii);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,a=this._drawRanges,l=this._bounds;this._geometryCount!==0&&(s=o[o.length-1]),t===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=t,s===null?r.vertexStart=0:r.vertexStart=s.vertexStart+s.vertexCount;const A=e.getIndex(),h=A!==null;if(h&&(i===-1?r.indexCount=A.count:r.indexCount=i,s===null?r.indexStart=0:r.indexStart=s.indexStart+s.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const d=this._visibility,f=this._active,g=this._matricesTexture,E=this._matricesTexture.image.data;d.push(!0),f.push(!0);const v=this._geometryCount;this._geometryCount++,q4.toArray(E,v*16),g.needsUpdate=!0,o.push(r),a.push({start:h?r.indexStart:r.vertexStart,count:-1}),l.push({boxInitialized:!1,box:new ii,sphereInitialized:!1,sphere:new Zn});const y=this.geometry.getAttribute(Fc);for(let p=0;p=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=i.getIndex()!==null,s=i.getIndex(),o=t.getIndex(),a=this._reservedRanges[e];if(r&&o.count>a.indexCount||t.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const l=a.vertexStart,A=a.vertexCount;for(const g in i.attributes){if(g===Fc)continue;const E=t.getAttribute(g),v=i.getAttribute(g);Z4(E,v,l);const y=E.itemSize;for(let p=E.count,C=A;p=t.length||t[e]===!1?this:(t[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,t){if(this._active[e]===!1)return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(r.boxInitialized===!1){s.makeEmpty();const a=o.index,l=o.attributes.position,A=this._drawRanges[e];for(let h=A.start,d=A.start+A.count;h=o||i[e]===!1?this:(t.toArray(s,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,t){const i=this._active,r=this._matricesTexture.image.data,s=this._geometryCount;return e>=s||i[e]===!1?null:t.fromArray(r,e*16)}setVisibleAt(e,t){const i=this._visibility,r=this._active,s=this._geometryCount;return e>=s||r[e]===!1||i[e]===t?this:(i[e]=t,this._visibilityChanged=!0,this)}getVisibleAt(e){const t=this._visibility,i=this._active,r=this._geometryCount;return e>=r||i[e]===!1?!1:t[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,a=this.matrixWorld,l=this.geometry;Qi.material=this.material,Qi.geometry.index=l.index,Qi.geometry.attributes=l.attributes,Qi.geometry.boundingBox===null&&(Qi.geometry.boundingBox=new ii),Qi.geometry.boundingSphere===null&&(Qi.geometry.boundingSphere=new Zn);for(let A=0;A({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),a=o===null?1:o.array.BYTES_PER_ELEMENT,l=this._active,A=this._visibility,h=this._multiDrawStarts,d=this._multiDrawCounts,f=this._drawRanges,g=this.perObjectFrustumCulled;g&&(lS.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),OE.setFromProjectionMatrix(lS,e.coordinateSystem));let E=0;if(this.sortObjects){aS.copy(this.matrixWorld).invert(),_A.setFromMatrixPosition(i.matrixWorld).applyMatrix4(aS);for(let p=0,C=A.length;pl)continue;f.applyMatrix4(this.matrixWorld);const U=e.ray.origin.distanceTo(f);Ue.far||t.push({distance:U,point:d.clone().applyMatrix4(this.matrixWorld),index:I,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),C=Math.min(y.count,o.start+o.count);for(let I=p,B=C-1;Il)continue;f.applyMatrix4(this.matrixWorld);const M=e.ray.origin.distanceTo(f);Me.far||t.push({distance:M,point:d.clone().applyMatrix4(this.matrixWorld),index:I,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:A,distanceToRay:Math.sqrt(a),point:l,index:e,face:null,object:o})}}class $4 extends wn{constructor(e,t,i,r,s,o,a,l,A){super(e,t,i,r,s,o,a,l,A),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:In,this.magFilter=s!==void 0?s:In,this.generateMipmaps=!1;const h=this;function d(){h.needsUpdate=!0,e.requestVideoFrameCallback(d)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(d)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class eO extends wn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=Gn,this.minFilter=Gn,this.generateMipmaps=!1,this.needsUpdate=!0}}class fm extends wn{constructor(e,t,i,r,s,o,a,l,A,h,d,f){super(null,o,a,l,A,h,r,s,d,f),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class tO extends fm{constructor(e,t,i,r,s,o){super(e,t,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=Ti}}class nO extends fm{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,Io),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class iO extends wn{constructor(e,t,i,r,s,o,a,l,A){super(e,t,i,r,s,o,a,l,A),this.isCanvasTexture=!0,this.needsUpdate=!0}}class ps{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;t?o=t:o=e*i[s-1];let a=0,l=s-1,A;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),A=i[r]-o,A<0)a=r+1;else if(A>0)l=r-1;else{l=r;break}if(r=l,i[r]===o)return r/(s-1);const h=i[r],f=i[r+1]-h,g=(o-h)/f;return(r+g)/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=t||(o.isVector2?new _e:new G);return l.copy(a).sub(o).normalize(),l}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new G,r=[],s=[],o=[],a=new G,l=new ut;for(let g=0;g<=e;g++){const E=g/e;r[g]=this.getTangentAt(E,new G)}s[0]=new G,o[0]=new G;let A=Number.MAX_VALUE;const h=Math.abs(r[0].x),d=Math.abs(r[0].y),f=Math.abs(r[0].z);h<=A&&(A=h,i.set(1,0,0)),d<=A&&(A=d,i.set(0,1,0)),f<=A&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let g=1;g<=e;g++){if(s[g]=s[g-1].clone(),o[g]=o[g-1].clone(),a.crossVectors(r[g-1],r[g]),a.length()>Number.EPSILON){a.normalize();const E=Math.acos(Fn(r[g-1].dot(r[g]),-1,1));s[g].applyMatrix4(l.makeRotationAxis(a,E))}o[g].crossVectors(r[g],s[g])}if(t===!0){let g=Math.acos(Fn(s[0].dot(s[e]),-1,1));g/=e,r[0].dot(a.crossVectors(s[0],s[e]))>0&&(g=-g);for(let E=1;E<=e;E++)s[E].applyMatrix4(l.makeRotationAxis(r[E],g*E)),o[E].crossVectors(r[E],s[E])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class pm extends ps{constructor(e=0,t=0,i=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(e,t){const i=t||new _e,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let A,h;this.closed||a>0?A=r[(a-1)%s]:(tp.subVectors(r[0],r[1]).add(r[0]),A=tp);const d=r[a%s],f=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],d=r[o>r.length-3?r.length-1:o+2];return i.set(gS(a,l.x,A.x,h.x,d.x),gS(a,l.y,A.y,h.y,d.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,a=this.curves[s],l=a.getLength(),A=l===0?0:1-o/l;return a.getPointAt(A,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const d=A.getPoint(0);d.equals(this.currentPoint)||this.lineTo(d.x,d.y)}this.curves.push(A);const h=A.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class ed extends Nt{constructor(e=[new _e(0,-.5),new _e(.5,0),new _e(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Fn(r,0,Math.PI*2);const s=[],o=[],a=[],l=[],A=[],h=1/t,d=new G,f=new _e,g=new G,E=new G,v=new G;let y=0,p=0;for(let C=0;C<=e.length-1;C++)switch(C){case 0:y=e[C+1].x-e[C].x,p=e[C+1].y-e[C].y,g.x=p*1,g.y=-y,g.z=p*0,v.copy(g),g.normalize(),l.push(g.x,g.y,g.z);break;case e.length-1:l.push(v.x,v.y,v.z);break;default:y=e[C+1].x-e[C].x,p=e[C+1].y-e[C].y,g.x=p*1,g.y=-y,g.z=p*0,E.copy(g),g.x+=v.x,g.y+=v.y,g.z+=v.z,g.normalize(),l.push(g.x,g.y,g.z),v.copy(E)}for(let C=0;C<=t;C++){const I=i+C*h*r,B=Math.sin(I),R=Math.cos(I);for(let M=0;M<=e.length-1;M++){d.x=e[M].x*B,d.y=e[M].y,d.z=e[M].x*R,o.push(d.x,d.y,d.z),f.x=C/t,f.y=M/(e.length-1),a.push(f.x,f.y);const T=l[3*M+0]*B,U=l[3*M+1],K=l[3*M+0]*R;A.push(T,U,K)}}for(let C=0;C0&&I(!0),t>0&&I(!1)),this.setIndex(h),this.setAttribute("position",new ot(d,3)),this.setAttribute("normal",new ot(f,3)),this.setAttribute("uv",new ot(g,2));function C(){const B=new G,R=new G;let M=0;const T=(t-e)/i;for(let U=0;U<=s;U++){const K=[],w=U/s,b=w*(t-e)+e;for(let q=0;q<=r;q++){const ge=q/r,J=ge*l+a,ce=Math.sin(J),se=Math.cos(J);R.x=b*ce,R.y=-w*i+y,R.z=b*se,d.push(R.x,R.y,R.z),B.set(ce,T,se).normalize(),f.push(B.x,B.y,B.z),g.push(ge,1-w),K.push(E++)}v.push(K)}for(let U=0;U.9&&T<.1&&(I<.2&&(o[C+0]+=1),B<.2&&(o[C+2]+=1),R<.2&&(o[C+4]+=1))}}function f(C){s.push(C.x,C.y,C.z)}function g(C,I){const B=C*3;I.x=e[B+0],I.y=e[B+1],I.z=e[B+2]}function E(){const C=new G,I=new G,B=new G,R=new G,M=new _e,T=new _e,U=new _e;for(let K=0,w=0;K80*t){a=A=n[0],l=h=n[1];for(let E=t;EA&&(A=d),f>h&&(h=f);g=Math.max(A-a,h-l),g=g!==0?32767/g:0}return Lh(s,o,t,a,l,g,0),o}};function wR(n,e,t,i,r){let s,o;if(r===wO(n,e,t,i)>0)for(s=e;s=e;s-=i)o=mS(s,n[s],n[s+1],o);return o&&Cm(o,o.next)&&(Uh(o),o=o.next),o}function Vl(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(Cm(t,t.next)||Rn(t.prev,t,t.next)===0)){if(Uh(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function Lh(n,e,t,i,r,s,o){if(!n)return;!o&&s&&vO(n,i,r,s);let a=n,l,A;for(;n.prev!==n.next;){if(l=n.prev,A=n.next,s?dO(n,i,r,s):hO(n)){e.push(l.i/t|0),e.push(n.i/t|0),e.push(A.i/t|0),Uh(n),n=A.next,a=A.next;continue}if(n=A,n===a){o?o===1?(n=fO(Vl(n),e,t),Lh(n,e,t,i,r,s,2)):o===2&&pO(n,e,t,i,r,s):Lh(Vl(n),e,t,i,r,s,1);break}}}function hO(n){const e=n.prev,t=n,i=n.next;if(Rn(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,a=e.y,l=t.y,A=i.y,h=rs?r>o?r:o:s>o?s:o,g=a>l?a>A?a:A:l>A?l:A;let E=i.next;for(;E!==e;){if(E.x>=h&&E.x<=f&&E.y>=d&&E.y<=g&&cu(r,a,s,l,o,A,E.x,E.y)&&Rn(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function dO(n,e,t,i){const r=n.prev,s=n,o=n.next;if(Rn(r,s,o)>=0)return!1;const a=r.x,l=s.x,A=o.x,h=r.y,d=s.y,f=o.y,g=al?a>A?a:A:l>A?l:A,y=h>d?h>f?h:f:d>f?d:f,p=sv(g,E,e,t,i),C=sv(v,y,e,t,i);let I=n.prevZ,B=n.nextZ;for(;I&&I.z>=p&&B&&B.z<=C;){if(I.x>=g&&I.x<=v&&I.y>=E&&I.y<=y&&I!==r&&I!==o&&cu(a,h,l,d,A,f,I.x,I.y)&&Rn(I.prev,I,I.next)>=0||(I=I.prevZ,B.x>=g&&B.x<=v&&B.y>=E&&B.y<=y&&B!==r&&B!==o&&cu(a,h,l,d,A,f,B.x,B.y)&&Rn(B.prev,B,B.next)>=0))return!1;B=B.nextZ}for(;I&&I.z>=p;){if(I.x>=g&&I.x<=v&&I.y>=E&&I.y<=y&&I!==r&&I!==o&&cu(a,h,l,d,A,f,I.x,I.y)&&Rn(I.prev,I,I.next)>=0)return!1;I=I.prevZ}for(;B&&B.z<=C;){if(B.x>=g&&B.x<=v&&B.y>=E&&B.y<=y&&B!==r&&B!==o&&cu(a,h,l,d,A,f,B.x,B.y)&&Rn(B.prev,B,B.next)>=0)return!1;B=B.nextZ}return!0}function fO(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!Cm(r,s)&&MR(r,i,i.next,s)&&Ph(r,s)&&Ph(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),Uh(i),Uh(i.next),i=n=s),i=i.next}while(i!==n);return Vl(i)}function pO(n,e,t,i,r,s){let o=n;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&BO(o,a)){let l=QR(o,a);o=Vl(o,o.next),l=Vl(l,l.next),Lh(o,e,t,i,r,s,0),Lh(l,e,t,i,r,s,0);return}a=a.next}o=o.next}while(o!==n)}function gO(n,e,t,i){const r=[];let s,o,a,l,A;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){const f=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(f<=s&&f>i&&(i=f,r=t.x=t.x&&t.x>=l&&s!==t.x&&cu(or.x||t.x===r.x&&CO(r,t)))&&(r=t,h=d)),t=t.next;while(t!==a);return r}function CO(n,e){return Rn(n.prev,n,e.prev)<0&&Rn(e.next,n,n.next)<0}function vO(n,e,t,i){let r=n;do r.z===0&&(r.z=sv(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,IO(r)}function IO(n){let e,t,i,r,s,o,a,l,A=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||l>0&&i;)a!==0&&(l===0||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,A*=2}while(o>1);return n}function sv(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function xO(n){let e=n,t=n;do(e.x=(n-o)*(s-a)&&(n-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(r-o)*(i-a)}function BO(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!_O(n,e)&&(Ph(n,e)&&Ph(e,n)&&SO(n,e)&&(Rn(n.prev,n,e.prev)||Rn(n,e.prev,e))||Cm(n,e)&&Rn(n.prev,n,n.next)>0&&Rn(e.prev,e,e.next)>0)}function Rn(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function Cm(n,e){return n.x===e.x&&n.y===e.y}function MR(n,e,t,i){const r=op(Rn(n,e,t)),s=op(Rn(n,e,i)),o=op(Rn(t,i,n)),a=op(Rn(t,i,e));return!!(r!==s&&o!==a||r===0&&sp(n,t,e)||s===0&&sp(n,i,e)||o===0&&sp(t,n,i)||a===0&&sp(t,e,i))}function sp(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function op(n){return n>0?1:n<0?-1:0}function _O(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&MR(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function Ph(n,e){return Rn(n.prev,n,n.next)<0?Rn(n,e,n.next)>=0&&Rn(n,n.prev,e)>=0:Rn(n,e,n.prev)<0||Rn(n,n.next,e)<0}function SO(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function QR(n,e){const t=new ov(n.i,n.x,n.y),i=new ov(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function mS(n,e,t,i){const r=new ov(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Uh(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function ov(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function wO(n,e,t,i){let r=0;for(let s=e,o=t-i;s2&&n[e-1].equals(n[0])&&n.pop()}function yS(n,e){for(let t=0;tNumber.EPSILON){const Qe=Math.sqrt(be),Xe=Math.sqrt(D*D+ie*ie),Ve=Ee.x-S/Qe,Ke=Ee.y+$/Qe,lt=ne.x-ie/Xe,vt=ne.y+D/Xe,Pe=((lt-Ve)*ie-(vt-Ke)*D)/($*ie-S*D);ae=Ve+$*Pe-H.x,he=Ke+S*Pe-H.y;const Lt=ae*ae+he*he;if(Lt<=2)return new _e(ae,he);Te=Math.sqrt(Lt/2)}else{let Qe=!1;$>Number.EPSILON?D>Number.EPSILON&&(Qe=!0):$<-Number.EPSILON?D<-Number.EPSILON&&(Qe=!0):Math.sign(S)===Math.sign(ie)&&(Qe=!0),Qe?(ae=-S,he=$,Te=Math.sqrt(be)):(ae=$,he=S,Te=Math.sqrt(be/2))}return new _e(ae/Te,he/Te)}const ee=[];for(let H=0,Ee=J.length,ne=Ee-1,ae=H+1;H=0;H--){const Ee=H/y,ne=g*Math.cos(Ee*Math.PI/2),ae=E*Math.sin(Ee*Math.PI/2)+v;for(let he=0,Te=J.length;he=0;){const ae=ne;let he=ne-1;he<0&&(he=H.length-1);for(let Te=0,$=h+y*2;Te<$;Te++){const S=se*Te,D=se*(Te+1),ie=Ee+ae+S,be=Ee+he+S,De=Ee+he+D,Qe=Ee+ae+D;Ie(ie,be,De,Qe)}}}function k(H,Ee,ne){l.push(H),l.push(Ee),l.push(ne)}function me(H,Ee,ne){re(H),re(Ee),re(ne);const ae=r.length/3,he=C.generateTopUV(i,r,ae-3,ae-2,ae-1);Be(he[0]),Be(he[1]),Be(he[2])}function Ie(H,Ee,ne,ae){re(H),re(Ee),re(ae),re(Ee),re(ne),re(ae);const he=r.length/3,Te=C.generateSideWallUV(i,r,he-6,he-3,he-2,he-1);Be(Te[0]),Be(Te[1]),Be(Te[3]),Be(Te[1]),Be(Te[2]),Be(Te[3])}function re(H){r.push(l[H*3+0]),r.push(l[H*3+1]),r.push(l[H*3+2])}function Be(H){s.push(H.x),s.push(H.y)}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){const e=super.toJSON(),t=this.parameters.shapes,i=this.parameters.options;return QO(t,i,e)}static fromJSON(e,t){const i=[];for(let s=0,o=e.shapes.length;s0)&&g.push(I,B,M),(p!==i-1||l0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class ix extends di{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Je(16777215),this.specular=new Je(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Sa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Jh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class NR extends di{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Je(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Sa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class LR extends di{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Sa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class PR extends di{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Sa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Jh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class UR extends di{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Je(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Sa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class FR extends Ki{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function Ml(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function kR(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function OR(n){function e(r,s){return n[r]-n[s]}const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function av(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const a=t[s]*e;for(let l=0;l!==e;++l)r[o++]=n[a+l]}return r}function rx(n,e,t,i){let r=1,s=n[0];for(;s!==void 0&&s[i]===void 0;)s=n[r++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&&(e.push(s.time),t.push.apply(t,o)),s=n[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++];while(s!==void 0);else do o=s[i],o!==void 0&&(e.push(s.time),t.push(o)),s=n[r++];while(s!==void 0)}function TO(n,e,t,i,r=30){const s=n.clone();s.name=e;const o=[];for(let l=0;l=i)){d.push(A.times[g]);for(let v=0;vs.tracks[l].times[0]&&(a=s.tracks[l].times[0]);for(let l=0;l=a.times[E]){const p=E*d+h,C=p+d-h;v=a.values.slice(p,C)}else{const p=a.createInterpolant(),C=h,I=d-h;p.evaluate(s),v=p.resultBuffer.slice(C,I)}l==="quaternion"&&new Vn().fromArray(v).normalize().conjugate().toArray(v);const y=A.times.length;for(let p=0;p=s)){const a=t[1];e=s)break t}o=i,i=0;break n}break e}for(;i>>1;et;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){const l=i[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),e=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),e=!1;break}o=l}if(r!==void 0&&kR(r))for(let a=0,l=r.length;a!==l;++a){const A=r[a];if(isNaN(A)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,A),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===Wp,s=e.length-1;let o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*i,l=o*i,A=0;A!==i;++A)t[l+A]=t[a+A];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}gs.prototype.TimeBufferType=Float32Array;gs.prototype.ValueBufferType=Float32Array;gs.prototype.DefaultInterpolation=Sh;class Jl extends gs{}Jl.prototype.ValueTypeName="bool";Jl.prototype.ValueBufferType=Array;Jl.prototype.DefaultInterpolation=_h;Jl.prototype.InterpolantFactoryMethodLinear=void 0;Jl.prototype.InterpolantFactoryMethodSmooth=void 0;class ox extends gs{}ox.prototype.ValueTypeName="color";class Fh extends gs{}Fh.prototype.ValueTypeName="number";class HR extends id{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(i-t)/(r-t);let A=e*a;for(let h=A+a;A!==h;A+=4)Vn.slerpFlat(s,0,o,A-a,o,A,l);return s}}class ku extends gs{InterpolantFactoryMethodLinear(e){return new HR(this.times,this.values,this.getValueSize(),e)}}ku.prototype.ValueTypeName="quaternion";ku.prototype.DefaultInterpolation=Sh;ku.prototype.InterpolantFactoryMethodSmooth=void 0;class jl extends gs{}jl.prototype.ValueTypeName="string";jl.prototype.ValueBufferType=Array;jl.prototype.DefaultInterpolation=_h;jl.prototype.InterpolantFactoryMethodLinear=void 0;jl.prototype.InterpolantFactoryMethodSmooth=void 0;class kh extends gs{}kh.prototype.ValueTypeName="vector";class Oh{constructor(e,t=-1,i,r=rm){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=_r(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(LO(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(gs.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let a=0;a1){const d=h[1];let f=r[d];f||(r[d]=f=[]),f.push(A)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(d,f,g,E,v){if(g.length!==0){const y=[],p=[];rx(g,y,p,E),y.length!==0&&v.push(new d(f,y,p))}},r=[],s=e.name||"default",o=e.fps||30,a=e.blendMode;let l=e.length||-1;const A=e.hierarchy||[];for(let d=0;d{t&&t(s),this.manager.itemEnd(e)},0),s;if(io[e]!==void 0){io[e].push({onLoad:t,onProgress:i,onError:r});return}io[e]=[],io[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(A=>{if(A.status===200||A.status===0){if(A.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||A.body===void 0||A.body.getReader===void 0)return A;const h=io[e],d=A.body.getReader(),f=A.headers.get("Content-Length")||A.headers.get("X-File-Size"),g=f?parseInt(f):0,E=g!==0;let v=0;const y=new ReadableStream({start(p){C();function C(){d.read().then(({done:I,value:B})=>{if(I)p.close();else{v+=B.byteLength;const R=new ProgressEvent("progress",{lengthComputable:E,loaded:v,total:g});for(let M=0,T=h.length;M{switch(l){case"arraybuffer":return A.arrayBuffer();case"blob":return A.blob();case"document":return A.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return A.json();default:if(a===void 0)return A.text();{const d=/charset="?([^;"\s]*)"?/i.exec(a),f=d&&d[1]?d[1].toLowerCase():void 0,g=new TextDecoder(f);return A.arrayBuffer().then(E=>g.decode(E))}}}).then(A=>{po.add(e,A);const h=io[e];delete io[e];for(let d=0,f=h.length;d{const h=io[e];if(h===void 0)throw this.manager.itemError(e),A;delete io[e];for(let d=0,f=h.length;d{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class UO extends qi{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Gs(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{t(s.parse(JSON.parse(a)))}catch(l){r?r(l):console.error(l),s.manager.itemError(e)}},i,r)}parse(e){const t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=new Je().setHex(o.value);break;case"v2":r.uniforms[s].value=new _e().fromArray(o.value);break;case"v3":r.uniforms[s].value=new G().fromArray(o.value);break;case"v4":r.uniforms[s].value=new cn().fromArray(o.value);break;case"m3":r.uniforms[s].value=new Rt().fromArray(o.value);break;case"m4":r.uniforms[s].value=new ut().fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=i(e.map)),e.matcap!==void 0&&(r.matcap=i(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),r.normalScale=new _e().fromArray(s)}return e.displacementMap!==void 0&&(r.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=i(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new _e().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const t={ShadowMaterial:TR,SpriteMaterial:YI,RawShaderMaterial:DR,ShaderMaterial:ds,PointsMaterial:jI,MeshPhysicalMaterial:bR,MeshStandardMaterial:nx,MeshPhongMaterial:ix,MeshToonMaterial:NR,MeshNormalMaterial:LR,MeshLambertMaterial:PR,MeshDepthMaterial:lm,MeshDistanceMaterial:cm,MeshBasicMaterial:lr,MeshMatcapMaterial:UR,LineDashedMaterial:FR,LineBasicMaterial:Ki,Material:di};return new t[e]}}class lv{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,r=e.length;i0){const l=new ax(t);s=new Gh(l),s.setCrossOrigin(this.crossOrigin);for(let A=0,h=e.length;A0){r=new Gh(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;o{const y=new ii;y.min.fromArray(v.boxMin),y.max.fromArray(v.boxMax);const p=new Zn;return p.radius=v.sphereRadius,p.center.fromArray(v.sphereCenter),{boxInitialized:v.boxInitialized,box:y,sphereInitialized:v.sphereInitialized,sphere:p}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=A(e.matricesTexture.uuid);break;case"LOD":o=new gR;break;case"Line":o=new Ia(a(e.geometry),l(e.material));break;case"LineLoop":o=new yR(a(e.geometry),l(e.material));break;case"LineSegments":o=new zs(a(e.geometry),l(e.material));break;case"PointCloud":case"Points":o=new CR(a(e.geometry),l(e.material));break;case"Sprite":o=new pR(l(e.material));break;case"Group":o=new Vr;break;case"Bone":o=new XI;break;default:o=new Ht}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const f=e.children;for(let g=0;g"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=po.get(e);if(o!==void 0){if(s.manager.itemStart(e),o.then){o.then(A=>{t&&t(A),s.manager.itemEnd(e)}).catch(A=>{r&&r(A)});return}return setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(e,a).then(function(A){return A.blob()}).then(function(A){return createImageBitmap(A,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(A){return po.add(e,A),t&&t(A),s.manager.itemEnd(e),A}).catch(function(A){r&&r(A),po.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});po.add(e,l),s.manager.itemStart(e)}}let ap;class ux{static getContext(){return ap===void 0&&(ap=new(window.AudioContext||window.webkitAudioContext)),ap}static setContext(e){ap=e}}class XO extends qi{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Gs(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(l){try{const A=l.slice(0);ux.getContext().decodeAudioData(A,function(d){t(d)}).catch(a)}catch(A){a(A)}},i,r);function a(l){r?r(l):console.error(l),s.manager.itemError(e)}}}const wS=new ut,MS=new ut,al=new ut;class JO{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new ti,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new ti,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,al.copy(e.projectionMatrix);const r=t.eyeSep/2,s=r*t.near/t.focus,o=t.near*Math.tan(Dl*t.fov*.5)/t.zoom;let a,l;MS.elements[12]=-r,wS.elements[12]=r,a=-o*t.aspect+s,l=o*t.aspect+s,al.elements[0]=2*t.near/(l-a),al.elements[8]=(l+a)/(l-a),this.cameraL.projectionMatrix.copy(al),a=-o*t.aspect-s,l=o*t.aspect-s,al.elements[0]=2*t.near/(l-a),al.elements[8]=(l+a)/(l-a),this.cameraR.projectionMatrix.copy(al)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(MS),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(wS)}}class Ax{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=QS(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=QS();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function QS(){return(typeof performance>"u"?Date:performance).now()}const ll=new G,RS=new Vn,jO=new G,cl=new G;class KO extends Ht{constructor(){super(),this.type="AudioListener",this.context=ux.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Ax}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(ll,RS,jO),cl.set(0,0,-1).applyQuaternion(RS),t.positionX){const r=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(ll.x,r),t.positionY.linearRampToValueAtTime(ll.y,r),t.positionZ.linearRampToValueAtTime(ll.z,r),t.forwardX.linearRampToValueAtTime(cl.x,r),t.forwardY.linearRampToValueAtTime(cl.y,r),t.forwardZ.linearRampToValueAtTime(cl.z,r),t.upX.linearRampToValueAtTime(i.x,r),t.upY.linearRampToValueAtTime(i.y,r),t.upZ.linearRampToValueAtTime(i.z,r)}else t.setPosition(ll.x,ll.y,ll.z),t.setOrientation(cl.x,cl.y,cl.z,i.x,i.y,i.z)}}class tT extends Ht{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let l=t,A=t+t;l!==A;++l)if(i[l]!==i[l+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let s=i,o=r;s!==o;++s)t[s]=t[r+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let o=0;o!==s;++o)e[t+o]=e[i+o]}_slerp(e,t,i,r){Vn.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,s){const o=this._workIndex*s;Vn.multiplyQuaternionsFlat(e,o,e,t,e,i),Vn.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,i,r,s){const o=1-r;for(let a=0;a!==s;++a){const l=t+a;e[l]=e[l]*o+e[i+a]*r}}_lerpAdditive(e,t,i,r,s){for(let o=0;o!==s;++o){const a=t+o;e[a]=e[a]+e[i+o]*r}}}const hx="\\[\\]\\.:\\/",eG=new RegExp("["+hx+"]","g"),dx="[^"+hx+"]",tG="[^"+hx.replace("\\.","")+"]",nG=/((?:WC+[\/:])*)/.source.replace("WC",dx),iG=/(WCOD+)?/.source.replace("WCOD",tG),rG=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",dx),sG=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",dx),oG=new RegExp("^"+nG+iG+rG+sG+"$"),aG=["material","materials","bones","map"];class lG{constructor(e,t,i){const r=i||Kt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class Kt{constructor(e,t,i){this.path=t,this.parsedPath=i||Kt.parseTrackName(t),this.node=Kt.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new Kt.Composite(e,t,i):new Kt(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(eG,"")}static parseTrackName(e){const t=oG.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=i.nodeName.substring(r+1);aG.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(s){for(let o=0;o=s){const d=s++,f=e[d];t[f.uuid]=h,e[h]=f,t[A]=d,e[d]=l;for(let g=0,E=r;g!==E;++g){const v=i[g],y=v[d],p=v[h];v[h]=y,v[d]=p}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let s=this.nCachedObjects_,o=e.length;for(let a=0,l=arguments.length;a!==l;++a){const A=arguments[a],h=A.uuid,d=t[h];if(d!==void 0)if(delete t[h],d0&&(t[g.uuid]=d),e[d]=g,e.pop();for(let E=0,v=r;E!==v;++E){const y=i[E];y[d]=y[f],y.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const s=this._bindings;if(r!==void 0)return s[r];const o=this._paths,a=this._parsedPaths,l=this._objects,A=l.length,h=this.nCachedObjects_,d=new Array(A);r=s.length,i[e]=r,o.push(e),a.push(t),s.push(d);for(let f=h,g=l.length;f!==g;++f){const E=l[f];d[f]=new Kt(E,e,t)}return d}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,l=o[a],A=e[a];t[A]=i,o[i]=l,o.pop(),s[i]=s[a],s.pop(),r[i]=r[a],r.pop()}}}class iT{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const s=t.tracks,o=s.length,a=new Array(o),l={endingStart:_l,endingEnd:_l};for(let A=0;A!==o;++A){const h=s[A].createInterpolant(null);a[A]=h,h.settings=l}this._interpolantSettings=l,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=O2,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const r=this._clip.duration,s=e._clip.duration,o=s/r,a=r/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,s=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const l=a.parameterPositions,A=a.sampleValues;return l[0]=s,l[1]=s+i,A[0]=e/o,A[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const l=(e-s)*i;l<0||i===0?t=0:(this._startTime=null,t=i*l)}t*=this._updateTimeScale(e);const o=this._updateTime(t),a=this._updateWeight(e);if(a>0){const l=this._interpolants,A=this._propertyBindings;switch(this.blendMode){case NI:for(let h=0,d=l.length;h!==d;++h)l[h].evaluate(o),A[h].accumulateAdditive(a);break;case rm:default:for(let h=0,d=l.length;h!==d;++h)l[h].evaluate(o),A[h].accumulate(r,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,s=this._loopCount;const o=i===G2;if(e===0)return s===-1?r:o&&(s&1)===1?t-r:r;if(i===k2){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=t||r<0){const a=Math.floor(r/t);r-=t*a,s+=Math.abs(a);const l=this.repetitions-s;if(l<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(l===1){const A=e<0;this._setEndings(A,!A,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&(s&1)===1)return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=Sl,r.endingEnd=Sl):(e?r.endingStart=this.zeroSlopeAtStart?Sl:_l:r.endingStart=wh,t?r.endingEnd=this.zeroSlopeAtEnd?Sl:_l:r.endingEnd=wh)}_scheduleFading(e,t,i){const r=this._mixer,s=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,l=o.sampleValues;return a[0]=s,l[0]=t,a[1]=s+e,l[1]=i,this}}const uG=new Float32Array(1);class AG extends Bo{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,s=r.length,o=e._propertyBindings,a=e._interpolants,l=i.uuid,A=this._bindingsByRootAndName;let h=A[l];h===void 0&&(h={},A[l]=h);for(let d=0;d!==s;++d){const f=r[d],g=f.name;let E=h[g];if(E!==void 0)++E.referenceCount,o[d]=E;else{if(E=o[d],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,l,g));continue}const v=t&&t._propertyBindings[d].binding.parsedPath;E=new nT(Kt.create(i,g,v),f.ValueTypeName,f.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,l,g),o[d]=E}a[d].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,r=e._clip.uuid,s=this._actionsByClip[r];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,r,i)}const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let A=0;A!==i;++A)t[A]._update(r,e,s,o);const a=this._bindings,l=this._nActiveBindings;for(let A=0;A!==l;++A)a[A].apply(o);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,bS).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const NS=new G,lp=new G;class sT{constructor(e=new G,t=new G){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){NS.subVectors(e,this.start),lp.subVectors(this.end,this.start);const i=lp.dot(lp);let s=lp.dot(NS)/i;return t&&(s=Fn(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const LS=new G;class EG extends Ht{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new Nt,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,a=1,l=32;o1)for(let d=0;d.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{OS.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(OS,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class TG extends zs{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Nt;r.setAttribute("position",new ot(t,3)),r.setAttribute("color",new ot(i,3));const s=new Ki({vertexColors:!0,toneMapped:!1});super(r,s),this.type="AxesHelper"}setColors(e,t,i){const r=new Je,s=this.geometry.attributes.color.array;return r.set(e),r.toArray(s,0),r.toArray(s,3),r.set(t),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class jo{constructor(){this.type="ShapePath",this.color=new Je,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new ga,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,s,o){return this.currentPath.bezierCurveTo(e,t,i,r,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(p){const C=[];for(let I=0,B=p.length;INumber.EPSILON){if(w<0&&(T=C[M],K=-K,U=C[R],w=-w),p.yU.y)continue;if(p.y===T.y){if(p.x===T.x)return!0}else{const b=w*(p.x-T.x)-K*(p.y-T.y);if(b===0)return!0;if(b<0)continue;B=!B}}else{if(p.y!==T.y)continue;if(U.x<=p.x&&p.x<=T.x||T.x<=p.x&&p.x<=U.x)return!0}}return B}const r=As.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,l;const A=[];if(s.length===1)return a=s[0],l=new ma,l.curves=a.curves,A.push(l),A;let h=!r(s[0].getPoints());h=e?!h:h;const d=[],f=[];let g=[],E=0,v;f[E]=void 0,g[E]=[];for(let p=0,C=s.length;p1){let p=!1,C=0;for(let I=0,B=f.length;I0&&p===!1&&(g=d)}let y;for(let p=0,C=f.length;p{const d=typeof A=="function"?A(e):A;if(d!==e){const f=e;e=h?d:Object.assign({},e,d),t.forEach(g=>g(e,f))}},r=()=>e,s=(A,h=r,d=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let f=h(e);function g(){const E=h(e);if(!d(f,E)){const v=f;A(f=E,v)}}return t.add(g),()=>t.delete(g)},l={setState:i,getState:r,subscribe:(A,h,d)=>h||d?s(A,h,d):(t.add(A),()=>t.delete(A)),destroy:()=>t.clear()};return e=n(i,r,l),l}const NG=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),GS=NG?Y.useEffect:Y.useLayoutEffect;function lT(n){const e=typeof n=="function"?bG(n):n,t=(i=e.getState,r=Object.is)=>{const[,s]=Y.useReducer(y=>y+1,0),o=e.getState(),a=Y.useRef(o),l=Y.useRef(i),A=Y.useRef(r),h=Y.useRef(!1),d=Y.useRef();d.current===void 0&&(d.current=i(o));let f,g=!1;(a.current!==o||l.current!==i||A.current!==r||h.current)&&(f=i(o),g=!r(d.current,f)),GS(()=>{g&&(d.current=f),a.current=o,l.current=i,A.current=r,h.current=!1});const E=Y.useRef(o);GS(()=>{const y=()=>{try{const C=e.getState(),I=l.current(C);A.current(d.current,I)||(a.current=C,d.current=I,s())}catch{h.current=!0,s()}},p=e.subscribe(y);return e.getState()!==E.current&&y(),p},[]);const v=g?f:d.current;return Y.useDebugValue(v),v};return Object.assign(t,e),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,e];return{next(){const r=i.length<=0;return{value:i.shift(),done:r}}}},t}var cT={exports:{}},uT={exports:{}},AT={};/** - * @license React - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */(function(n){function e(F,ee){var te=F.length;F.push(ee);e:for(;0>>1,Ce=F[ue];if(0>>1;uer(z,te))Or(k,z)?(F[ue]=k,F[O]=te,ue=O):(F[ue]=z,F[W]=te,ue=W);else if(Or(k,te))F[ue]=k,F[O]=te,ue=O;else break e}}return ee}function r(F,ee){var te=F.sortIndex-ee.sortIndex;return te!==0?te:F.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var l=[],A=[],h=1,d=null,f=3,g=!1,E=!1,v=!1,y=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(F){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=F)i(A),ee.sortIndex=ee.expirationTime,e(l,ee);else break;ee=t(A)}}function B(F){if(v=!1,I(F),!E)if(t(l)!==null)E=!0,se(R);else{var ee=t(A);ee!==null&&de(B,ee.startTime-F)}}function R(F,ee){E=!1,v&&(v=!1,p(U),U=-1),g=!0;var te=f;try{for(I(ee),d=t(l);d!==null&&(!(d.expirationTime>ee)||F&&!b());){var ue=d.callback;if(typeof ue=="function"){d.callback=null,f=d.priorityLevel;var Ce=ue(d.expirationTime<=ee);ee=n.unstable_now(),typeof Ce=="function"?d.callback=Ce:d===t(l)&&i(l),I(ee)}else i(l);d=t(l)}if(d!==null)var Oe=!0;else{var W=t(A);W!==null&&de(B,W.startTime-ee),Oe=!1}return Oe}finally{d=null,f=te,g=!1}}var M=!1,T=null,U=-1,K=5,w=-1;function b(){return!(n.unstable_now()-wF||125ue?(F.sortIndex=te,e(A,F),t(l)===null&&F===t(A)&&(v?(p(U),U=-1):v=!0,de(B,te-ue))):(F.sortIndex=Ce,e(l,F),E||g||(E=!0,se(R))),F},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(F){var ee=f;return function(){var te=f;f=ee;try{return F.apply(this,arguments)}finally{f=te}}}})(AT);uT.exports=AT;var uv=uT.exports;/** - * @license React - * react-reconciler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var LG=function(e){var t={},i=Y,r=uv,s=Object.assign;function o(c){for(var u="https://reactjs.org/docs/error-decoder.html?invariant="+c,m=1;mle||_[X]!==Q[le]){var Re=` -`+_[X].replace(" at new "," at ");return c.displayName&&Re.includes("")&&(Re=Re.replace("",c.displayName)),Re}while(1<=X&&0<=le);break}}}finally{Bt=!1,Error.prepareStackTrace=m}return(c=c?c.displayName||c.name:"")?Mt(c):""}var yn=Object.prototype.hasOwnProperty,Yn=[],on=-1;function Xn(c){return{current:c}}function yt(c){0>on||(c.current=Yn[on],Yn[on]=null,on--)}function et(c,u){on++,Yn[on]=c.current,c.current=u}var Ci={},It=Xn(Ci),fn=Xn(!1),ur=Ci;function L(c,u){var m=c.type.contextTypes;if(!m)return Ci;var x=c.stateNode;if(x&&x.__reactInternalMemoizedUnmaskedChildContext===u)return x.__reactInternalMemoizedMaskedChildContext;var _={},Q;for(Q in m)_[Q]=u[Q];return x&&(c=c.stateNode,c.__reactInternalMemoizedUnmaskedChildContext=u,c.__reactInternalMemoizedMaskedChildContext=_),_}function P(c){return c=c.childContextTypes,c!=null}function Z(){yt(fn),yt(It)}function oe(c,u,m){if(It.current!==Ci)throw Error(o(168));et(It,u),et(fn,m)}function pe(c,u,m){var x=c.stateNode;if(u=u.childContextTypes,typeof x.getChildContext!="function")return m;x=x.getChildContext();for(var _ in x)if(!(_ in u))throw Error(o(108,U(c)||"Unknown",_));return s({},m,x)}function we(c){return c=(c=c.stateNode)&&c.__reactInternalMemoizedMergedChildContext||Ci,ur=It.current,et(It,c),et(fn,fn.current),!0}function Ue(c,u,m){var x=c.stateNode;if(!x)throw Error(o(169));m?(c=pe(c,u,ur),x.__reactInternalMemoizedMergedChildContext=c,yt(fn),yt(It),et(It,c)):yt(fn),et(fn,m)}var Le=Math.clz32?Math.clz32:$e,We=Math.log,ze=Math.LN2;function $e(c){return c>>>=0,c===0?32:31-(We(c)/ze|0)|0}var ft=64,zt=4194304;function gn(c){switch(c&-c){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return c&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return c}}function Yt(c,u){var m=c.pendingLanes;if(m===0)return 0;var x=0,_=c.suspendedLanes,Q=c.pingedLanes,X=m&268435455;if(X!==0){var le=X&~_;le!==0?x=gn(le):(Q&=X,Q!==0&&(x=gn(Q)))}else X=m&~_,X!==0?x=gn(X):Q!==0&&(x=gn(Q));if(x===0)return 0;if(u!==0&&u!==x&&!(u&_)&&(_=x&-x,Q=u&-u,_>=Q||_===16&&(Q&4194240)!==0))return u;if(x&4&&(x|=m&16),u=c.entangledLanes,u!==0)for(c=c.entanglements,u&=x;0m;m++)u.push(c);return u}function Qo(c,u,m){c.pendingLanes|=u,u!==536870912&&(c.suspendedLanes=0,c.pingedLanes=0),c=c.eventTimes,u=31-Le(u),c[u]=m}function pd(c,u){var m=c.pendingLanes&~u;c.pendingLanes=u,c.suspendedLanes=0,c.pingedLanes=0,c.expiredLanes&=u,c.mutableReadLanes&=u,c.entangledLanes&=u,u=c.entanglements;var x=c.eventTimes;for(c=c.expirationTimes;0>=X,_-=X,Js=1<<32-Le(u)+_|m<<_|x,js=Q+c}else Js=1<tn?(li=Dt,Dt=null):li=Dt.sibling;var nn=Et(ye,Dt,Me[tn],qe);if(nn===null){Dt===null&&(Dt=li);break}c&&Dt&&nn.alternate===null&&u(ye,Dt),Ae=Q(nn,Ae,tn),Ft===null?At=nn:Ft.sibling=nn,Ft=nn,Dt=li}if(tn===Me.length)return m(ye,Dt),Bn&&Ja(ye,tn),At;if(Dt===null){for(;tntn?(li=Dt,Dt=null):li=Dt.sibling;var Uo=Et(ye,Dt,nn.value,qe);if(Uo===null){Dt===null&&(Dt=li);break}c&&Dt&&Uo.alternate===null&&u(ye,Dt),Ae=Q(Uo,Ae,tn),Ft===null?At=Uo:Ft.sibling=Uo,Ft=Uo,Dt=li}if(nn.done)return m(ye,Dt),Bn&&Ja(ye,tn),At;if(Dt===null){for(;!nn.done;tn++,nn=Me.next())nn=Tt(ye,nn.value,qe),nn!==null&&(Ae=Q(nn,Ae,tn),Ft===null?At=nn:Ft.sibling=nn,Ft=nn);return Bn&&Ja(ye,tn),At}for(Dt=x(ye,Dt);!nn.done;tn++,nn=Me.next())nn=pn(Dt,ye,tn,nn.value,qe),nn!==null&&(c&&nn.alternate!==null&&Dt.delete(nn.key===null?tn:nn.key),Ae=Q(nn,Ae,tn),Ft===null?At=nn:Ft.sibling=nn,Ft=nn);return c&&Dt.forEach(function(db){return u(ye,db)}),Bn&&Ja(ye,tn),At}function Ur(ye,Ae,Me,qe){if(typeof Me=="object"&&Me!==null&&Me.type===h&&Me.key===null&&(Me=Me.props.children),typeof Me=="object"&&Me!==null){switch(Me.$$typeof){case l:e:{for(var At=Me.key,Ft=Ae;Ft!==null;){if(Ft.key===At){if(At=Me.type,At===h){if(Ft.tag===7){m(ye,Ft.sibling),Ae=_(Ft,Me.props.children),Ae.return=ye,ye=Ae;break e}}else if(Ft.elementType===At||typeof At=="object"&&At!==null&&At.$$typeof===I&&kx(At)===Ft.type){m(ye,Ft.sibling),Ae=_(Ft,Me.props),Ae.ref=Xu(ye,Ft,Me),Ae.return=ye,ye=Ae;break e}m(ye,Ft);break}else u(ye,Ft);Ft=Ft.sibling}Me.type===h?(Ae=tl(Me.props.children,ye.mode,qe,Me.key),Ae.return=ye,ye=Ae):(qe=rf(Me.type,Me.key,Me.props,null,ye.mode,qe),qe.ref=Xu(ye,Ae,Me),qe.return=ye,ye=qe)}return X(ye);case A:e:{for(Ft=Me.key;Ae!==null;){if(Ae.key===Ft)if(Ae.tag===4&&Ae.stateNode.containerInfo===Me.containerInfo&&Ae.stateNode.implementation===Me.implementation){m(ye,Ae.sibling),Ae=_(Ae,Me.children||[]),Ae.return=ye,ye=Ae;break e}else{m(ye,Ae);break}else u(ye,Ae);Ae=Ae.sibling}Ae=O0(Me,ye.mode,qe),Ae.return=ye,ye=Ae}return X(ye);case I:return Ft=Me._init,Ur(ye,Ae,Ft(Me._payload),qe)}if(ce(Me))return ht(ye,Ae,Me,qe);if(M(Me))return Bi(ye,Ae,Me,qe);Sd(ye,Me)}return typeof Me=="string"&&Me!==""||typeof Me=="number"?(Me=""+Me,Ae!==null&&Ae.tag===6?(m(ye,Ae.sibling),Ae=_(Ae,Me),Ae.return=ye,ye=Ae):(m(ye,Ae),Ae=k0(Me,ye.mode,qe),Ae.return=ye,ye=Ae),X(ye)):m(ye,Ae)}return Ur}var uc=Ox(!0),Gx=Ox(!1),Ju={},br=Xn(Ju),ju=Xn(Ju),Ac=Xn(Ju);function Is(c){if(c===Ju)throw Error(o(174));return c}function i0(c,u){et(Ac,u),et(ju,c),et(br,Ju),c=de(u),yt(br),et(br,c)}function hc(){yt(br),yt(ju),yt(Ac)}function zx(c){var u=Is(Ac.current),m=Is(br.current);u=F(m,c.type,u),m!==u&&(et(ju,c),et(br,u))}function r0(c){ju.current===c&&(yt(br),yt(ju))}var Mn=Xn(0);function wd(c){for(var u=c;u!==null;){if(u.tag===13){var m=u.memoizedState;if(m!==null&&(m=m.dehydrated,m===null||Wa(m)||pi(m)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!==void 0){if(u.flags&128)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===c)break;for(;u.sibling===null;){if(u.return===null||u.return===c)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var s0=[];function o0(){for(var c=0;cm?m:4,c(!0);var x=Nr.transition;Nr.transition={};try{c(!1),u()}finally{en=m,Nr.transition=x}}function n1(){return xs().memoizedState}function OD(c,u,m){var x=No(c);m={lane:x,action:m,hasEagerState:!1,eagerState:null,next:null},i1(c)?r1(u,m):(s1(c,u,m),m=Pi(),c=Lr(c,x,m),c!==null&&o1(c,u,x))}function GD(c,u,m){var x=No(c),_={lane:x,action:m,hasEagerState:!1,eagerState:null,next:null};if(i1(c))r1(u,_);else{s1(c,u,_);var Q=c.alternate;if(c.lanes===0&&(Q===null||Q.lanes===0)&&(Q=u.lastRenderedReducer,Q!==null))try{var X=u.lastRenderedState,le=Q(X,m);if(_.hasEagerState=!0,_.eagerState=le,ys(le,X))return}catch{}finally{}m=Pi(),c=Lr(c,x,m),c!==null&&o1(c,u,x)}}function i1(c){var u=c.alternate;return c===Nn||u!==null&&u===Nn}function r1(c,u){Ku=Qd=!0;var m=c.pending;m===null?u.next=u:(u.next=m.next,m.next=u),c.pending=u}function s1(c,u,m){Jn!==null&&c.mode&1&&!(Ot&2)?(c=u.interleaved,c===null?(m.next=m,vs===null?vs=[u]:vs.push(u)):(m.next=c.next,c.next=m),u.interleaved=m):(c=u.pending,c===null?m.next=m:(m.next=c.next,c.next=m),u.pending=m)}function o1(c,u,m){if(m&4194240){var x=u.lanes;x&=c.pendingLanes,m|=x,u.lanes=m,Om(c,m)}}var Nd={readContext:Rr,useCallback:Ii,useContext:Ii,useEffect:Ii,useImperativeHandle:Ii,useInsertionEffect:Ii,useLayoutEffect:Ii,useMemo:Ii,useReducer:Ii,useRef:Ii,useState:Ii,useDebugValue:Ii,useDeferredValue:Ii,useTransition:Ii,useMutableSource:Ii,useSyncExternalStore:Ii,useId:Ii,unstable_isNewReconciler:!1},zD={readContext:Rr,useCallback:function(c,u){return Ks().memoizedState=[c,u===void 0?null:u],c},useContext:Rr,useEffect:A0,useImperativeHandle:function(c,u,m){return m=m!=null?m.concat([c]):null,Dd(4194308,4,Zx.bind(null,u,c),m)},useLayoutEffect:function(c,u){return Dd(4194308,4,c,u)},useInsertionEffect:function(c,u){return Dd(4,2,c,u)},useMemo:function(c,u){var m=Ks();return u=u===void 0?null:u,c=c(),m.memoizedState=[c,u],c},useReducer:function(c,u,m){var x=Ks();return u=m!==void 0?m(u):u,x.memoizedState=x.baseState=u,c={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:c,lastRenderedState:u},x.queue=c,c=c.dispatch=OD.bind(null,Nn,c),[x.memoizedState,c]},useRef:function(c){var u=Ks();return c={current:c},u.memoizedState=c},useState:u0,useDebugValue:h0,useDeferredValue:function(c){var u=u0(c),m=u[0],x=u[1];return A0(function(){var _=Nr.transition;Nr.transition={};try{x(c)}finally{Nr.transition=_}},[c]),m},useTransition:function(){var c=u0(!1),u=c[0];return c=kD.bind(null,c[1]),Ks().memoizedState=c,[u,c]},useMutableSource:function(){},useSyncExternalStore:function(c,u,m){var x=Nn,_=Ks();if(Bn){if(m===void 0)throw Error(o(407));m=m()}else{if(m=u(),Jn===null)throw Error(o(349));dc&30||Wx(x,u,m)}_.memoizedState=m;var Q={value:m,getSnapshot:u};return _.queue=Q,A0(Xx.bind(null,x,Q,c),[c]),x.flags|=2048,Zu(9,Yx.bind(null,x,Q,m,u),void 0,null),m},useId:function(){var c=Ks(),u=Jn.identifierPrefix;if(Bn){var m=js,x=Js;m=(x&~(1<<32-Le(x)-1)).toString(32)+m,u=":"+u+"R"+m,m=qu++,0T0&&(u.flags|=128,x=!0,nA(_,!1),u.lanes=4194304)}else{if(!x)if(c=wd(Q),c!==null){if(u.flags|=128,x=!0,c=c.updateQueue,c!==null&&(u.updateQueue=c,u.flags|=4),nA(_,!0),_.tail===null&&_.tailMode==="hidden"&&!Q.alternate&&!Bn)return xi(u),null}else 2*oi()-_.renderingStartTime>T0&&m!==1073741824&&(u.flags|=128,x=!0,nA(_,!1),u.lanes=4194304);_.isBackwards?(Q.sibling=u.child,u.child=Q):(c=_.last,c!==null?c.sibling=Q:u.child=Q,_.last=Q)}return _.tail!==null?(u=_.tail,_.rendering=u,_.tail=u.sibling,_.renderingStartTime=oi(),u.sibling=null,c=Mn.current,et(Mn,x?c&1|2:c&1),u):(xi(u),null);case 22:case 23:return P0(),x=u.memoizedState!==null,c!==null&&c.memoizedState!==null!==x&&(u.flags|=8192),x&&u.mode&1?gr&1073741824&&(xi(u),Be&&u.subtreeFlags&6&&(u.flags|=8192)):xi(u),null;case 24:return null;case 25:return null}throw Error(o(156,u.tag))}var XD=a.ReactCurrentOwner,pr=!1;function Li(c,u,m,x){u.child=c===null?Gx(u,null,m,x):uc(u,c.child,m,x)}function f1(c,u,m,x,_){m=m.render;var Q=u.ref;return oc(u,_),x=l0(c,u,m,x,Q,_),m=c0(),c!==null&&!pr?(u.updateQueue=c.updateQueue,u.flags&=-2053,c.lanes&=~_,qs(c,u,_)):(Bn&&m&&Zm(u),u.flags|=1,Li(c,u,x,_),u.child)}function p1(c,u,m,x,_){if(c===null){var Q=m.type;return typeof Q=="function"&&!F0(Q)&&Q.defaultProps===void 0&&m.compare===null&&m.defaultProps===void 0?(u.tag=15,u.type=Q,g1(c,u,Q,x,_)):(c=rf(m.type,null,x,u,u.mode,_),c.ref=u.ref,c.return=u,u.child=c)}if(Q=c.child,!(c.lanes&_)){var X=Q.memoizedProps;if(m=m.compare,m=m!==null?m:Ed,m(X,x)&&c.ref===u.ref)return qs(c,u,_)}return u.flags|=1,c=Po(Q,x),c.ref=u.ref,c.return=u,u.child=c}function g1(c,u,m,x,_){if(c!==null&&Ed(c.memoizedProps,x)&&c.ref===u.ref)if(pr=!1,(c.lanes&_)!==0)c.flags&131072&&(pr=!0);else return u.lanes=c.lanes,qs(c,u,_);return p0(c,u,m,x,_)}function m1(c,u,m){var x=u.pendingProps,_=x.children,Q=c!==null?c.memoizedState:null;if(x.mode==="hidden")if(!(u.mode&1))u.memoizedState={baseLanes:0,cachePool:null},et(fc,gr),gr|=m;else if(m&1073741824)u.memoizedState={baseLanes:0,cachePool:null},x=Q!==null?Q.baseLanes:m,et(fc,gr),gr|=x;else return c=Q!==null?Q.baseLanes|m:m,u.lanes=u.childLanes=1073741824,u.memoizedState={baseLanes:c,cachePool:null},u.updateQueue=null,et(fc,gr),gr|=c,null;else Q!==null?(x=Q.baseLanes|m,u.memoizedState=null):x=m,et(fc,gr),gr|=x;return Li(c,u,_,m),u.child}function E1(c,u){var m=u.ref;(c===null&&m!==null||c!==null&&c.ref!==m)&&(u.flags|=512,u.flags|=2097152)}function p0(c,u,m,x,_){var Q=P(m)?ur:It.current;return Q=L(u,Q),oc(u,_),m=l0(c,u,m,x,Q,_),x=c0(),c!==null&&!pr?(u.updateQueue=c.updateQueue,u.flags&=-2053,c.lanes&=~_,qs(c,u,_)):(Bn&&x&&Zm(u),u.flags|=1,Li(c,u,m,_),u.child)}function y1(c,u,m,x,_){if(P(m)){var Q=!0;we(u)}else Q=!1;if(oc(u,_),u.stateNode===null)c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),bx(u,m,x),qm(u,m,x,_),x=!0;else if(c===null){var X=u.stateNode,le=u.memoizedProps;X.props=le;var Re=X.context,He=m.contextType;typeof He=="object"&&He!==null?He=Rr(He):(He=P(m)?ur:It.current,He=L(u,He));var st=m.getDerivedStateFromProps,Tt=typeof st=="function"||typeof X.getSnapshotBeforeUpdate=="function";Tt||typeof X.UNSAFE_componentWillReceiveProps!="function"&&typeof X.componentWillReceiveProps!="function"||(le!==x||Re!==He)&&Nx(u,X,x,He),Ro=!1;var Et=u.memoizedState;X.state=Et,Id(u,x,X,_),Re=u.memoizedState,le!==x||Et!==Re||fn.current||Ro?(typeof st=="function"&&(Km(u,m,st,x),Re=u.memoizedState),(le=Ro||Dx(u,m,le,x,Et,Re,He))?(Tt||typeof X.UNSAFE_componentWillMount!="function"&&typeof X.componentWillMount!="function"||(typeof X.componentWillMount=="function"&&X.componentWillMount(),typeof X.UNSAFE_componentWillMount=="function"&&X.UNSAFE_componentWillMount()),typeof X.componentDidMount=="function"&&(u.flags|=4194308)):(typeof X.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=x,u.memoizedState=Re),X.props=x,X.state=Re,X.context=He,x=le):(typeof X.componentDidMount=="function"&&(u.flags|=4194308),x=!1)}else{X=u.stateNode,Mx(c,u),le=u.memoizedProps,He=u.type===u.elementType?le:Zr(u.type,le),X.props=He,Tt=u.pendingProps,Et=X.context,Re=m.contextType,typeof Re=="object"&&Re!==null?Re=Rr(Re):(Re=P(m)?ur:It.current,Re=L(u,Re));var pn=m.getDerivedStateFromProps;(st=typeof pn=="function"||typeof X.getSnapshotBeforeUpdate=="function")||typeof X.UNSAFE_componentWillReceiveProps!="function"&&typeof X.componentWillReceiveProps!="function"||(le!==Tt||Et!==Re)&&Nx(u,X,x,Re),Ro=!1,Et=u.memoizedState,X.state=Et,Id(u,x,X,_);var ht=u.memoizedState;le!==Tt||Et!==ht||fn.current||Ro?(typeof pn=="function"&&(Km(u,m,pn,x),ht=u.memoizedState),(He=Ro||Dx(u,m,He,x,Et,ht,Re)||!1)?(st||typeof X.UNSAFE_componentWillUpdate!="function"&&typeof X.componentWillUpdate!="function"||(typeof X.componentWillUpdate=="function"&&X.componentWillUpdate(x,ht,Re),typeof X.UNSAFE_componentWillUpdate=="function"&&X.UNSAFE_componentWillUpdate(x,ht,Re)),typeof X.componentDidUpdate=="function"&&(u.flags|=4),typeof X.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof X.componentDidUpdate!="function"||le===c.memoizedProps&&Et===c.memoizedState||(u.flags|=4),typeof X.getSnapshotBeforeUpdate!="function"||le===c.memoizedProps&&Et===c.memoizedState||(u.flags|=1024),u.memoizedProps=x,u.memoizedState=ht),X.props=x,X.state=ht,X.context=Re,x=He):(typeof X.componentDidUpdate!="function"||le===c.memoizedProps&&Et===c.memoizedState||(u.flags|=4),typeof X.getSnapshotBeforeUpdate!="function"||le===c.memoizedProps&&Et===c.memoizedState||(u.flags|=1024),x=!1)}return g0(c,u,m,x,Q,_)}function g0(c,u,m,x,_,Q){E1(c,u);var X=(u.flags&128)!==0;if(!x&&!X)return _&&Ue(u,m,!1),qs(c,u,Q);x=u.stateNode,XD.current=u;var le=X&&typeof m.getDerivedStateFromError!="function"?null:x.render();return u.flags|=1,c!==null&&X?(u.child=uc(u,c.child,null,Q),u.child=uc(u,null,le,Q)):Li(c,u,le,Q),u.memoizedState=x.state,_&&Ue(u,m,!0),u.child}function C1(c){var u=c.stateNode;u.pendingContext?oe(c,u.pendingContext,u.pendingContext!==u.context):u.context&&oe(c,u.context,!1),i0(c,u.containerInfo)}function v1(c,u,m,x,_){return cc(),n0(_),u.flags|=256,Li(c,u,m,x),u.child}var Ud={dehydrated:null,treeContext:null,retryLane:0};function Fd(c){return{baseLanes:c,cachePool:null}}function I1(c,u,m){var x=u.pendingProps,_=Mn.current,Q=!1,X=(u.flags&128)!==0,le;if((le=X)||(le=c!==null&&c.memoizedState===null?!1:(_&2)!==0),le?(Q=!0,u.flags&=-129):(c===null||c.memoizedState!==null)&&(_|=1),et(Mn,_&1),c===null)return t0(u),c=u.memoizedState,c!==null&&(c=c.dehydrated,c!==null)?(u.mode&1?pi(c)?u.lanes=8:u.lanes=1073741824:u.lanes=1,null):(_=x.children,c=x.fallback,Q?(x=u.mode,Q=u.child,_={mode:"hidden",children:_},!(x&1)&&Q!==null?(Q.childLanes=0,Q.pendingProps=_):Q=sf(_,x,0,null),c=tl(c,x,m,null),Q.return=u,c.return=u,Q.sibling=c,u.child=Q,u.child.memoizedState=Fd(m),u.memoizedState=Ud,c):m0(u,_));if(_=c.memoizedState,_!==null){if(le=_.dehydrated,le!==null){if(X)return u.flags&256?(u.flags&=-257,kd(c,u,m,Error(o(422)))):u.memoizedState!==null?(u.child=c.child,u.flags|=128,null):(Q=x.fallback,_=u.mode,x=sf({mode:"visible",children:x.children},_,0,null),Q=tl(Q,_,m,null),Q.flags|=2,x.return=u,Q.return=u,x.sibling=Q,u.child=x,u.mode&1&&uc(u,c.child,null,m),u.child.memoizedState=Fd(m),u.memoizedState=Ud,Q);if(!(u.mode&1))u=kd(c,u,m,null);else if(pi(le))u=kd(c,u,m,Error(o(419)));else if(x=(m&c.childLanes)!==0,pr||x){if(x=Jn,x!==null){switch(m&-m){case 4:Q=2;break;case 16:Q=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:Q=32;break;case 536870912:Q=268435456;break;default:Q=0}x=Q&(x.suspendedLanes|m)?0:Q,x!==0&&x!==_.retryLane&&(_.retryLane=x,Lr(c,x,-1))}U0(),u=kd(c,u,m,Error(o(421)))}else Wa(le)?(u.flags|=128,u.child=c.child,u=ob.bind(null,c),Vs(le,u),u=null):(m=_.treeContext,Ee&&(fr=Mo(le),dr=u,Bn=!0,$r=null,Wu=!1,m!==null&&(Tr[Dr++]=Js,Tr[Dr++]=js,Tr[Dr++]=Xa,Js=m.id,js=m.overflow,Xa=u)),u=m0(u,u.pendingProps.children),u.flags|=4096);return u}return Q?(x=B1(c,u,x.children,x.fallback,m),Q=u.child,_=c.child.memoizedState,Q.memoizedState=_===null?Fd(m):{baseLanes:_.baseLanes|m,cachePool:null},Q.childLanes=c.childLanes&~m,u.memoizedState=Ud,x):(m=x1(c,u,x.children,m),u.memoizedState=null,m)}return Q?(x=B1(c,u,x.children,x.fallback,m),Q=u.child,_=c.child.memoizedState,Q.memoizedState=_===null?Fd(m):{baseLanes:_.baseLanes|m,cachePool:null},Q.childLanes=c.childLanes&~m,u.memoizedState=Ud,x):(m=x1(c,u,x.children,m),u.memoizedState=null,m)}function m0(c,u){return u=sf({mode:"visible",children:u},c.mode,0,null),u.return=c,c.child=u}function x1(c,u,m,x){var _=c.child;return c=_.sibling,m=Po(_,{mode:"visible",children:m}),!(u.mode&1)&&(m.lanes=x),m.return=u,m.sibling=null,c!==null&&(x=u.deletions,x===null?(u.deletions=[c],u.flags|=16):x.push(c)),u.child=m}function B1(c,u,m,x,_){var Q=u.mode;c=c.child;var X=c.sibling,le={mode:"hidden",children:m};return!(Q&1)&&u.child!==c?(m=u.child,m.childLanes=0,m.pendingProps=le,u.deletions=null):(m=Po(c,le),m.subtreeFlags=c.subtreeFlags&14680064),X!==null?x=Po(X,x):(x=tl(x,Q,_,null),x.flags|=2),x.return=u,m.return=u,m.sibling=x,u.child=m,x}function kd(c,u,m,x){return x!==null&&n0(x),uc(u,c.child,null,m),c=m0(u,u.pendingProps.children),c.flags|=2,u.memoizedState=null,c}function _1(c,u,m){c.lanes|=u;var x=c.alternate;x!==null&&(x.lanes|=u),Jm(c.return,u,m)}function E0(c,u,m,x,_){var Q=c.memoizedState;Q===null?c.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:x,tail:m,tailMode:_}:(Q.isBackwards=u,Q.rendering=null,Q.renderingStartTime=0,Q.last=x,Q.tail=m,Q.tailMode=_)}function S1(c,u,m){var x=u.pendingProps,_=x.revealOrder,Q=x.tail;if(Li(c,u,x.children,m),x=Mn.current,x&2)x=x&1|2,u.flags|=128;else{if(c!==null&&c.flags&128)e:for(c=u.child;c!==null;){if(c.tag===13)c.memoizedState!==null&&_1(c,m,u);else if(c.tag===19)_1(c,m,u);else if(c.child!==null){c.child.return=c,c=c.child;continue}if(c===u)break e;for(;c.sibling===null;){if(c.return===null||c.return===u)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}x&=1}if(et(Mn,x),!(u.mode&1))u.memoizedState=null;else switch(_){case"forwards":for(m=u.child,_=null;m!==null;)c=m.alternate,c!==null&&wd(c)===null&&(_=m),m=m.sibling;m=_,m===null?(_=u.child,u.child=null):(_=m.sibling,m.sibling=null),E0(u,!1,_,m,Q);break;case"backwards":for(m=null,_=u.child,u.child=null;_!==null;){if(c=_.alternate,c!==null&&wd(c)===null){u.child=_;break}c=_.sibling,_.sibling=m,m=_,_=c}E0(u,!0,m,null,Q);break;case"together":E0(u,!1,null,null,void 0);break;default:u.memoizedState=null}return u.child}function qs(c,u,m){if(c!==null&&(u.dependencies=c.dependencies),pc|=u.lanes,!(m&u.childLanes))return null;if(c!==null&&u.child!==c.child)throw Error(o(153));if(u.child!==null){for(c=u.child,m=Po(c,c.pendingProps),u.child=m,m.return=u;c.sibling!==null;)c=c.sibling,m=m.sibling=Po(c,c.pendingProps),m.return=u;m.sibling=null}return u.child}function JD(c,u,m){switch(u.tag){case 3:C1(u),cc();break;case 5:zx(u);break;case 1:P(u.type)&&we(u);break;case 4:i0(u,u.stateNode.containerInfo);break;case 10:wx(u,u.type._context,u.memoizedProps.value);break;case 13:var x=u.memoizedState;if(x!==null)return x.dehydrated!==null?(et(Mn,Mn.current&1),u.flags|=128,null):m&u.child.childLanes?I1(c,u,m):(et(Mn,Mn.current&1),c=qs(c,u,m),c!==null?c.sibling:null);et(Mn,Mn.current&1);break;case 19:if(x=(m&u.childLanes)!==0,c.flags&128){if(x)return S1(c,u,m);u.flags|=128}var _=u.memoizedState;if(_!==null&&(_.rendering=null,_.tail=null,_.lastEffect=null),et(Mn,Mn.current),x)break;return null;case 22:case 23:return u.lanes=0,m1(c,u,m)}return qs(c,u,m)}function jD(c,u){switch($m(u),u.tag){case 1:return P(u.type)&&Z(),c=u.flags,c&65536?(u.flags=c&-65537|128,u):null;case 3:return hc(),yt(fn),yt(It),o0(),c=u.flags,c&65536&&!(c&128)?(u.flags=c&-65537|128,u):null;case 5:return r0(u),null;case 13:if(yt(Mn),c=u.memoizedState,c!==null&&c.dehydrated!==null){if(u.alternate===null)throw Error(o(340));cc()}return c=u.flags,c&65536?(u.flags=c&-65537|128,u):null;case 19:return yt(Mn),null;case 4:return hc(),null;case 10:return Xm(u.type._context),null;case 22:case 23:return P0(),null;case 24:return null;default:return null}}var Od=!1,Ka=!1,KD=typeof WeakSet=="function"?WeakSet:Set,je=null;function Gd(c,u){var m=c.ref;if(m!==null)if(typeof m=="function")try{m(null)}catch(x){tr(c,u,x)}else m.current=null}function y0(c,u,m){try{m()}catch(x){tr(c,u,x)}}var w1=!1;function qD(c,u){for(ee(c.containerInfo),je=u;je!==null;)if(c=je,u=c.child,(c.subtreeFlags&1028)!==0&&u!==null)u.return=c,je=u;else for(;je!==null;){c=je;try{var m=c.alternate;if(c.flags&1024)switch(c.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var x=m.memoizedProps,_=m.memoizedState,Q=c.stateNode,X=Q.getSnapshotBeforeUpdate(c.elementType===c.type?x:Zr(c.type,x),_);Q.__reactInternalSnapshotBeforeUpdate=X}break;case 3:Be&&Ge(c.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(le){tr(c,c.return,le)}if(u=c.sibling,u!==null){u.return=c.return,je=u;break}je=c.return}return m=w1,w1=!1,m}function qa(c,u,m){var x=u.updateQueue;if(x=x!==null?x.lastEffect:null,x!==null){var _=x=x.next;do{if((_.tag&c)===c){var Q=_.destroy;_.destroy=void 0,Q!==void 0&&y0(u,m,Q)}_=_.next}while(_!==x)}}function iA(c,u){if(u=u.updateQueue,u=u!==null?u.lastEffect:null,u!==null){var m=u=u.next;do{if((m.tag&c)===c){var x=m.create;m.destroy=x()}m=m.next}while(m!==u)}}function C0(c){var u=c.ref;if(u!==null){var m=c.stateNode;switch(c.tag){case 5:c=se(m);break;default:c=m}typeof u=="function"?u(c):u.current=c}}function M1(c,u,m){if(Es&&typeof Es.onCommitFiberUnmount=="function")try{Es.onCommitFiberUnmount(gd,u)}catch{}switch(u.tag){case 0:case 11:case 14:case 15:if(c=u.updateQueue,c!==null&&(c=c.lastEffect,c!==null)){var x=c=c.next;do{var _=x,Q=_.destroy;_=_.tag,Q!==void 0&&(_&2||_&4)&&y0(u,m,Q),x=x.next}while(x!==c)}break;case 1:if(Gd(u,m),c=u.stateNode,typeof c.componentWillUnmount=="function")try{c.props=u.memoizedProps,c.state=u.memoizedState,c.componentWillUnmount()}catch(X){tr(u,m,X)}break;case 5:Gd(u,m);break;case 4:Be?N1(c,u,m):H&&H&&(u=u.stateNode.containerInfo,m=rt(u),jt(u,m))}}function Q1(c,u,m){for(var x=u;;)if(M1(c,x,m),x.child===null||Be&&x.tag===4){if(x===u)break;for(;x.sibling===null;){if(x.return===null||x.return===u)return;x=x.return}x.sibling.return=x.return,x=x.sibling}else x.child.return=x,x=x.child}function R1(c){var u=c.alternate;u!==null&&(c.alternate=null,R1(u)),c.child=null,c.deletions=null,c.sibling=null,c.tag===5&&(u=c.stateNode,u!==null&&Te(u)),c.stateNode=null,c.return=null,c.dependencies=null,c.memoizedProps=null,c.memoizedState=null,c.pendingProps=null,c.stateNode=null,c.updateQueue=null}function T1(c){return c.tag===5||c.tag===3||c.tag===4}function D1(c){e:for(;;){for(;c.sibling===null;){if(c.return===null||T1(c.return))return null;c=c.return}for(c.sibling.return=c.return,c=c.sibling;c.tag!==5&&c.tag!==6&&c.tag!==18;){if(c.flags&2||c.child===null||c.tag===4)continue e;c.child.return=c,c=c.child}if(!(c.flags&2))return c.stateNode}}function b1(c){if(Be){e:{for(var u=c.return;u!==null;){if(T1(u))break e;u=u.return}throw Error(o(160))}var m=u;switch(m.tag){case 5:u=m.stateNode,m.flags&32&&(kt(u),m.flags&=-33),m=D1(c),I0(c,m,u);break;case 3:case 4:u=m.stateNode.containerInfo,m=D1(c),v0(c,m,u);break;default:throw Error(o(161))}}}function v0(c,u,m){var x=c.tag;if(x===5||x===6)c=c.stateNode,u?at(m,c,u):vt(m,c);else if(x!==4&&(c=c.child,c!==null))for(v0(c,u,m),c=c.sibling;c!==null;)v0(c,u,m),c=c.sibling}function I0(c,u,m){var x=c.tag;if(x===5||x===6)c=c.stateNode,u?pt(m,c,u):lt(m,c);else if(x!==4&&(c=c.child,c!==null))for(I0(c,u,m),c=c.sibling;c!==null;)I0(c,u,m),c=c.sibling}function N1(c,u,m){for(var x=u,_=!1,Q,X;;){if(!_){_=x.return;e:for(;;){if(_===null)throw Error(o(160));switch(Q=_.stateNode,_.tag){case 5:X=!1;break e;case 3:Q=Q.containerInfo,X=!0;break e;case 4:Q=Q.containerInfo,X=!0;break e}_=_.return}_=!0}if(x.tag===5||x.tag===6)Q1(c,x,m),X?xt(Q,x.stateNode):tt(Q,x.stateNode);else if(x.tag===18)X?ve(Q,x.stateNode):Se(Q,x.stateNode);else if(x.tag===4){if(x.child!==null){Q=x.stateNode.containerInfo,X=!0,x.child.return=x,x=x.child;continue}}else if(M1(c,x,m),x.child!==null){x.child.return=x,x=x.child;continue}if(x===u)break;for(;x.sibling===null;){if(x.return===null||x.return===u)return;x=x.return,x.tag===4&&(_=!1)}x.sibling.return=x.return,x=x.sibling}}function x0(c,u){if(Be){switch(u.tag){case 0:case 11:case 14:case 15:qa(3,u,u.return),iA(3,u),qa(5,u,u.return);return;case 1:return;case 5:var m=u.stateNode;if(m!=null){var x=u.memoizedProps;c=c!==null?c.memoizedProps:x;var _=u.type,Q=u.updateQueue;u.updateQueue=null,Q!==null&&St(m,Q,_,c,x,u)}return;case 6:if(u.stateNode===null)throw Error(o(162));m=u.memoizedProps,Pe(u.stateNode,c!==null?c.memoizedProps:m,m);return;case 3:Ee&&c!==null&&c.memoizedState.isDehydrated&&fe(u.stateNode.containerInfo);return;case 12:return;case 13:zd(u);return;case 19:zd(u);return;case 17:return}throw Error(o(163))}switch(u.tag){case 0:case 11:case 14:case 15:qa(3,u,u.return),iA(3,u),qa(5,u,u.return);return;case 12:return;case 13:zd(u);return;case 19:zd(u);return;case 3:Ee&&c!==null&&c.memoizedState.isDehydrated&&fe(u.stateNode.containerInfo);break;case 22:case 23:return}e:if(H){switch(u.tag){case 1:case 5:case 6:break e;case 3:case 4:u=u.stateNode,jt(u.containerInfo,u.pendingChildren);break e}throw Error(o(163))}}function zd(c){var u=c.updateQueue;if(u!==null){c.updateQueue=null;var m=c.stateNode;m===null&&(m=c.stateNode=new KD),u.forEach(function(x){var _=ab.bind(null,c,x);m.has(x)||(m.add(x),x.then(_,_))})}}function ZD(c,u){for(je=u;je!==null;){u=je;var m=u.deletions;if(m!==null)for(var x=0;x";case Vd:return":has("+(S0(c)||"")+")";case Wd:return'[role="'+c.value+'"]';case Xd:return'"'+c.value+'"';case Yd:return'[data-testname="'+c.value+'"]';default:throw Error(o(365))}}function k1(c,u){var m=[];c=[c,0];for(var x=0;x_&&(_=X),x&=~Q}if(x=_,x=oi()-x,x=(120>x?120:480>x?480:1080>x?1080:1920>x?1920:3e3>x?3e3:4320>x?4320:1960*eb(x/1960))-x,10c?16:c,bo===null)var x=!1;else{if(c=bo,bo=null,Zd=0,Ot&6)throw Error(o(331));var _=Ot;for(Ot|=4,je=c.current;je!==null;){var Q=je,X=Q.child;if(je.flags&16){var le=Q.deletions;if(le!==null){for(var Re=0;Reoi()-R0?Za(c,0):Q0|=m),er(c,u)}function J1(c,u){u===0&&(c.mode&1?(u=zt,zt<<=1,!(zt&130023424)&&(zt=4194304)):u=1);var m=Pi();c=tf(c,u),c!==null&&(Qo(c,u,m),er(c,m))}function ob(c){var u=c.memoizedState,m=0;u!==null&&(m=u.retryLane),J1(c,m)}function ab(c,u){var m=0;switch(c.tag){case 13:var x=c.stateNode,_=c.memoizedState;_!==null&&(m=_.retryLane);break;case 19:x=c.stateNode;break;default:throw Error(o(314))}x!==null&&x.delete(u),J1(c,m)}var j1;j1=function(c,u,m){if(c!==null)if(c.memoizedProps!==u.pendingProps||fn.current)pr=!0;else{if(!(c.lanes&m)&&!(u.flags&128))return pr=!1,JD(c,u,m);pr=!!(c.flags&131072)}else pr=!1,Bn&&u.flags&1048576&&Lx(u,_d,u.index);switch(u.lanes=0,u.tag){case 2:var x=u.type;c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),c=u.pendingProps;var _=L(u,It.current);oc(u,m),_=l0(null,u,x,c,_,m);var Q=c0();return u.flags|=1,typeof _=="object"&&_!==null&&typeof _.render=="function"&&_.$$typeof===void 0?(u.tag=1,u.memoizedState=null,u.updateQueue=null,P(x)?(Q=!0,we(u)):Q=!1,u.memoizedState=_.state!==null&&_.state!==void 0?_.state:null,jm(u),_.updater=xd,u.stateNode=_,_._reactInternals=u,qm(u,x,c,m),u=g0(null,u,x,!0,Q,m)):(u.tag=0,Bn&&Q&&Zm(u),Li(null,u,_,m),u=u.child),u;case 16:x=u.elementType;e:{switch(c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),c=u.pendingProps,_=x._init,x=_(x._payload),u.type=x,_=u.tag=cb(x),c=Zr(x,c),_){case 0:u=p0(null,u,x,c,m);break e;case 1:u=y1(null,u,x,c,m);break e;case 11:u=f1(null,u,x,c,m);break e;case 14:u=p1(null,u,x,Zr(x.type,c),m);break e}throw Error(o(306,x,""))}return u;case 0:return x=u.type,_=u.pendingProps,_=u.elementType===x?_:Zr(x,_),p0(c,u,x,_,m);case 1:return x=u.type,_=u.pendingProps,_=u.elementType===x?_:Zr(x,_),y1(c,u,x,_,m);case 3:e:{if(C1(u),c===null)throw Error(o(387));x=u.pendingProps,Q=u.memoizedState,_=Q.element,Mx(c,u),Id(u,x,null,m);var X=u.memoizedState;if(x=X.element,Ee&&Q.isDehydrated)if(Q={element:x,isDehydrated:!1,cache:X.cache,transitions:X.transitions},u.updateQueue.baseState=Q,u.memoizedState=Q,u.flags&256){_=Error(o(423)),u=v1(c,u,x,m,_);break e}else if(x!==_){_=Error(o(424)),u=v1(c,u,x,m,_);break e}else for(Ee&&(fr=wo(u.stateNode.containerInfo),dr=u,Bn=!0,$r=null,Wu=!1),m=Gx(u,null,x,m),u.child=m;m;)m.flags=m.flags&-3|4096,m=m.sibling;else{if(cc(),x===_){u=qs(c,u,m);break e}Li(c,u,x,m)}u=u.child}return u;case 5:return zx(u),c===null&&t0(u),x=u.type,_=u.pendingProps,Q=c!==null?c.memoizedProps:null,X=_.children,z(x,_)?X=null:Q!==null&&z(x,Q)&&(u.flags|=32),E1(c,u),Li(c,u,X,m),u.child;case 6:return c===null&&t0(u),null;case 13:return I1(c,u,m);case 4:return i0(u,u.stateNode.containerInfo),x=u.pendingProps,c===null?u.child=uc(u,null,x,m):Li(c,u,x,m),u.child;case 11:return x=u.type,_=u.pendingProps,_=u.elementType===x?_:Zr(x,_),f1(c,u,x,_,m);case 7:return Li(c,u,u.pendingProps,m),u.child;case 8:return Li(c,u,u.pendingProps.children,m),u.child;case 12:return Li(c,u,u.pendingProps.children,m),u.child;case 10:e:{if(x=u.type._context,_=u.pendingProps,Q=u.memoizedProps,X=_.value,wx(u,x,X),Q!==null)if(ys(Q.value,X)){if(Q.children===_.children&&!fn.current){u=qs(c,u,m);break e}}else for(Q=u.child,Q!==null&&(Q.return=u);Q!==null;){var le=Q.dependencies;if(le!==null){X=Q.child;for(var Re=le.firstContext;Re!==null;){if(Re.context===x){if(Q.tag===1){Re=Xs(-1,m&-m),Re.tag=2;var He=Q.updateQueue;if(He!==null){He=He.shared;var st=He.pending;st===null?Re.next=Re:(Re.next=st.next,st.next=Re),He.pending=Re}}Q.lanes|=m,Re=Q.alternate,Re!==null&&(Re.lanes|=m),Jm(Q.return,m,u),le.lanes|=m;break}Re=Re.next}}else if(Q.tag===10)X=Q.type===u.type?null:Q.child;else if(Q.tag===18){if(X=Q.return,X===null)throw Error(o(341));X.lanes|=m,le=X.alternate,le!==null&&(le.lanes|=m),Jm(X,m,u),X=Q.sibling}else X=Q.child;if(X!==null)X.return=Q;else for(X=Q;X!==null;){if(X===u){X=null;break}if(Q=X.sibling,Q!==null){Q.return=X.return,X=Q;break}X=X.return}Q=X}Li(c,u,_.children,m),u=u.child}return u;case 9:return _=u.type,x=u.pendingProps.children,oc(u,m),_=Rr(_),x=x(_),u.flags|=1,Li(c,u,x,m),u.child;case 14:return x=u.type,_=Zr(x,u.pendingProps),_=Zr(x.type,_),p1(c,u,x,_,m);case 15:return g1(c,u,u.type,u.pendingProps,m);case 17:return x=u.type,_=u.pendingProps,_=u.elementType===x?_:Zr(x,_),c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),u.tag=1,P(x)?(c=!0,we(u)):c=!1,oc(u,m),bx(u,x,_),qm(u,x,_,m),g0(null,u,x,!0,c,m);case 19:return S1(c,u,m);case 22:return m1(c,u,m)}throw Error(o(156,u.tag))};function K1(c,u){return Gm(c,u)}function lb(c,u,m,x){this.tag=c,this.key=m,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=x,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pr(c,u,m,x){return new lb(c,u,m,x)}function F0(c){return c=c.prototype,!(!c||!c.isReactComponent)}function cb(c){if(typeof c=="function")return F0(c)?1:0;if(c!=null){if(c=c.$$typeof,c===v)return 11;if(c===C)return 14}return 2}function Po(c,u){var m=c.alternate;return m===null?(m=Pr(c.tag,u,c.key,c.mode),m.elementType=c.elementType,m.type=c.type,m.stateNode=c.stateNode,m.alternate=c,c.alternate=m):(m.pendingProps=u,m.type=c.type,m.flags=0,m.subtreeFlags=0,m.deletions=null),m.flags=c.flags&14680064,m.childLanes=c.childLanes,m.lanes=c.lanes,m.child=c.child,m.memoizedProps=c.memoizedProps,m.memoizedState=c.memoizedState,m.updateQueue=c.updateQueue,u=c.dependencies,m.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},m.sibling=c.sibling,m.index=c.index,m.ref=c.ref,m}function rf(c,u,m,x,_,Q){var X=2;if(x=c,typeof c=="function")F0(c)&&(X=1);else if(typeof c=="string")X=5;else e:switch(c){case h:return tl(m.children,_,Q,u);case d:X=8,_|=8;break;case f:return c=Pr(12,m,u,_|2),c.elementType=f,c.lanes=Q,c;case y:return c=Pr(13,m,u,_),c.elementType=y,c.lanes=Q,c;case p:return c=Pr(19,m,u,_),c.elementType=p,c.lanes=Q,c;case B:return sf(m,_,Q,u);default:if(typeof c=="object"&&c!==null)switch(c.$$typeof){case g:X=10;break e;case E:X=9;break e;case v:X=11;break e;case C:X=14;break e;case I:X=16,x=null;break e}throw Error(o(130,c==null?c:typeof c,""))}return u=Pr(X,m,u,_),u.elementType=c,u.type=x,u.lanes=Q,u}function tl(c,u,m,x){return c=Pr(7,c,x,u),c.lanes=m,c}function sf(c,u,m,x){return c=Pr(22,c,x,u),c.elementType=B,c.lanes=m,c.stateNode={},c}function k0(c,u,m){return c=Pr(6,c,null,u),c.lanes=m,c}function O0(c,u,m){return u=Pr(4,c.children!==null?c.children:[],c.key,u),u.lanes=m,u.stateNode={containerInfo:c.containerInfo,pendingChildren:null,implementation:c.implementation},u}function ub(c,u,m,x,_){this.tag=u,this.containerInfo=c,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=Ie,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=hr(0),this.expirationTimes=hr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=hr(0),this.identifierPrefix=x,this.onRecoverableError=_,Ee&&(this.mutableSourceEagerHydrationData=null)}function q1(c,u,m,x,_,Q,X,le,Re){return c=new ub(c,u,m,le,Re),u===1?(u=1,Q===!0&&(u|=8)):u=0,Q=Pr(3,null,null,u),c.current=Q,Q.stateNode=c,Q.memoizedState={element:x,isDehydrated:m,cache:null,transitions:null},jm(Q),c}function Z1(c){if(!c)return Ci;c=c._reactInternals;e:{if(K(c)!==c||c.tag!==1)throw Error(o(170));var u=c;do{switch(u.tag){case 3:u=u.stateNode.context;break e;case 1:if(P(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break e}}u=u.return}while(u!==null);throw Error(o(171))}if(c.tag===1){var m=c.type;if(P(m))return pe(c,m,u)}return u}function $1(c){var u=c._reactInternals;if(u===void 0)throw typeof c.render=="function"?Error(o(188)):(c=Object.keys(c).join(","),Error(o(268,c)));return c=q(u),c===null?null:c.stateNode}function eB(c,u){if(c=c.memoizedState,c!==null&&c.dehydrated!==null){var m=c.retryLane;c.retryLane=m!==0&&m=He&&Q>=Tt&&_<=st&&X<=Et){c.splice(u,1);break}else if(x!==He||m.width!==Re.width||EtX){if(!(Q!==Tt||m.height!==Re.height||st_)){He>x&&(Re.width+=He-x,Re.x=x),st<_&&(Re.width=_-He),c.splice(u,1);break}}else{Tt>Q&&(Re.height+=Tt-Q,Re.y=Q),Etm&&(m=X)),X ")+` - -No matching component was found for: - `)+c.join(" > ")}return null},t.getPublicRootInstance=function(c){if(c=c.current,!c.child)return null;switch(c.child.tag){case 5:return se(c.child.stateNode);default:return c.child.stateNode}},t.injectIntoDevTools=function(c){if(c={bundleType:c.bundleType,version:c.version,rendererPackageName:c.rendererPackageName,rendererConfig:c.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:a.ReactCurrentDispatcher,findHostInstanceByFiber:Ab,findFiberByHostInstance:c.findFiberByHostInstance||hb,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")c=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)c=!0;else{try{gd=u.inject(c),Es=u}catch{}c=!!u.checkDCE}}return c},t.isAlreadyRendering=function(){return!1},t.observeVisibleRects=function(c,u,m,x){if(!D)throw Error(o(363));c=w0(c,u);var _=Ke(c,m,x).disconnect;return{disconnect:function(){_()}}},t.registerMutableSourceForHydration=function(c,u){var m=u._getVersion;m=m(u._source),c.mutableSourceEagerHydrationData==null?c.mutableSourceEagerHydrationData=[u,m]:c.mutableSourceEagerHydrationData.push(u,m)},t.runWithPriority=function(c,u){var m=en;try{return en=c,u()}finally{en=m}},t.shouldError=function(){return null},t.shouldSuspend=function(){return!1},t.updateContainer=function(c,u,m,x){var _=u.current,Q=Pi(),X=No(_);return m=Z1(m),u.context===null?u.context=m:u.pendingContext=m,u=Xs(Q,X),u.payload={element:c},x=x===void 0?null:x,x!==null&&(u.callback=x),To(_,u),c=Lr(_,X,Q),c!==null&&vd(c,_,X),X},t};cT.exports=LG;var PG=cT.exports;const UG=Rv(PG),px={},FG=n=>void Object.assign(px,n);function kG(n,e){function t(h,{args:d=[],attach:f,...g},E){let v=`${h[0].toUpperCase()}${h.slice(1)}`,y;if(h==="primitive"){if(g.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const p=g.object;y=Wc(p,{type:h,root:E,attach:f,primitive:!0})}else{const p=px[v];if(!p)throw new Error(`R3F: ${v} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(d))throw new Error("R3F: The args prop must be an array!");y=Wc(new p(...d),{type:h,root:E,attach:f,memoizedProps:{args:d}})}return y.__r3f.attach===void 0&&(y instanceof Nt?y.__r3f.attach="geometry":y instanceof di&&(y.__r3f.attach="material")),v!=="inject"&&$E(y,g),y}function i(h,d){let f=!1;if(d){var g,E;(g=d.__r3f)!=null&&g.attach?ZE(h,d,d.__r3f.attach):d.isObject3D&&h.isObject3D&&(h.add(d),f=!0),f||(E=h.__r3f)==null||E.objects.push(d),d.__r3f||Wc(d,{}),d.__r3f.parent=h,hv(d),Yc(d)}}function r(h,d,f){let g=!1;if(d){var E,v;if((E=d.__r3f)!=null&&E.attach)ZE(h,d,d.__r3f.attach);else if(d.isObject3D&&h.isObject3D){d.parent=h,d.dispatchEvent({type:"added"});const y=h.children.filter(C=>C!==d),p=y.indexOf(f);h.children=[...y.slice(0,p),d,...y.slice(p)],g=!0}g||(v=h.__r3f)==null||v.objects.push(d),d.__r3f||Wc(d,{}),d.__r3f.parent=h,hv(d),Yc(d)}}function s(h,d,f=!1){h&&[...h].forEach(g=>o(d,g,f))}function o(h,d,f){if(d){var g,E,v;if(d.__r3f&&(d.__r3f.parent=null),(g=h.__r3f)!=null&&g.objects&&(h.__r3f.objects=h.__r3f.objects.filter(B=>B!==d)),(E=d.__r3f)!=null&&E.attach)YS(h,d,d.__r3f.attach);else if(d.isObject3D&&h.isObject3D){var y;h.remove(d),(y=d.__r3f)!=null&&y.root&&YG(d.__r3f.root,d)}const C=(v=d.__r3f)==null?void 0:v.primitive,I=!C&&(f===void 0?d.dispose!==null:f);if(!C){var p;s((p=d.__r3f)==null?void 0:p.objects,d,I),s(d.children,d,I)}if(delete d.__r3f,I&&d.dispose&&d.type!=="Scene"){const B=()=>{try{d.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?uv.unstable_scheduleCallback(uv.unstable_IdlePriority,B):B()}Yc(h)}}function a(h,d,f,g){var E;const v=(E=h.__r3f)==null?void 0:E.parent;if(!v)return;const y=t(d,f,h.__r3f.root);if(h.children){for(const p of h.children)p.__r3f&&i(y,p);h.children=h.children.filter(p=>!p.__r3f)}h.__r3f.objects.forEach(p=>i(y,p)),h.__r3f.objects=[],h.__r3f.autoRemovedBeforeAppend||o(v,h),y.parent&&(y.__r3f.autoRemovedBeforeAppend=!0),i(v,y),y.raycast&&y.__r3f.eventCount&&y.__r3f.root.getState().internal.interaction.push(y),[g,g.alternate].forEach(p=>{p!==null&&(p.stateNode=y,p.ref&&(typeof p.ref=="function"?p.ref(y):p.ref.current=y))})}const l=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:UG({createInstance:t,removeChild:o,appendChild:i,appendInitialChild:i,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(h,d)=>{if(!d)return;const f=h.getState().scene;f.__r3f&&(f.__r3f.root=h,i(f,d))},removeChildFromContainer:(h,d)=>{d&&o(h.getState().scene,d)},insertInContainerBefore:(h,d,f)=>{if(!d||!f)return;const g=h.getState().scene;g.__r3f&&r(g,d,f)},getRootHostContext:()=>null,getChildHostContext:h=>h,finalizeInitialChildren(h){var d;return!!((d=h==null?void 0:h.__r3f)!=null?d:{}).handlers},prepareUpdate(h,d,f,g){var E;if(((E=h==null?void 0:h.__r3f)!=null?E:{}).primitive&&g.object&&g.object!==h)return[!0];{const{args:y=[],children:p,...C}=g,{args:I=[],children:B,...R}=f;if(!Array.isArray(y))throw new Error("R3F: the args prop must be an array!");if(y.some((T,U)=>T!==I[U]))return[!0];const M=ET(h,C,R,!0);return M.changes.length?[!1,M]:null}},commitUpdate(h,[d,f],g,E,v,y){d?a(h,g,v,y):$E(h,f)},commitMount(h,d,f,g){var E;const v=(E=h.__r3f)!=null?E:{};h.raycast&&v.handlers&&v.eventCount&&h.__r3f.root.getState().internal.interaction.push(h)},getPublicInstance:h=>h,prepareForCommit:()=>null,preparePortalMount:h=>Wc(h.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(h){var d;const{attach:f,parent:g}=(d=h.__r3f)!=null?d:{};f&&g&&YS(g,h,f),h.isObject3D&&(h.visible=!1),Yc(h)},unhideInstance(h,d){var f;const{attach:g,parent:E}=(f=h.__r3f)!=null?f:{};g&&E&&ZE(E,h,g),(h.isObject3D&&d.visible==null||d.visible)&&(h.visible=!0),Yc(h)},createTextInstance:l,hideTextInstance:l,unhideTextInstance:l,getCurrentEventPriority:()=>e?e():uu.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&_n.fun(performance.now)?performance.now:_n.fun(Date.now)?Date.now:()=>0,scheduleTimeout:_n.fun(setTimeout)?setTimeout:void 0,cancelTimeout:_n.fun(clearTimeout)?clearTimeout:void 0}),applyProps:$E}}var zS,HS;const qE=n=>"colorSpace"in n||"outputColorSpace"in n,hT=()=>{var n;return(n=px.ColorManagement)!=null?n:null},dT=n=>n&&n.isOrthographicCamera,OG=n=>n&&n.hasOwnProperty("current"),sd=typeof window<"u"&&((zS=window.document)!=null&&zS.createElement||((HS=window.navigator)==null?void 0:HS.product)==="ReactNative")?Y.useLayoutEffect:Y.useEffect;function fT(n){const e=Y.useRef(n);return sd(()=>void(e.current=n),[n]),e}function GG({set:n}){return sd(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}class pT extends Y.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}pT.getDerivedStateFromError=()=>({error:!0});const gT="__default",VS=new Map,zG=n=>n&&!!n.memoized&&!!n.changes;function mT(n){var e;const t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}const wA=n=>{var e;return(e=n.__r3f)==null?void 0:e.root.getState()},_n={obj:n=>n===Object(n)&&!_n.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(_n.str(n)||_n.num(n))return n===e;const s=_n.obj(n);if(s&&i==="reference")return n===e;const o=_n.arr(n);if(o&&t==="reference")return n===e;if((o||s)&&n===e)return!0;let a;for(a in n)if(!(a in e))return!1;if(s&&t==="shallow"&&i==="shallow"){for(a in r?e:n)if(!_n.equ(n[a],e[a],{strict:r,objects:"reference"}))return!1}else for(a in r?e:n)if(n[a]!==e[a])return!1;if(_n.und(a)){if(o&&n.length===0&&e.length===0||s&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function HG(n){n.dispose&&n.type!=="Scene"&&n.dispose();for(const e in n)e.dispose==null||e.dispose(),delete n[e]}function Wc(n,e){const t=n;return t.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},n}function Av(n,e){let t=n;if(e.includes("-")){const i=e.split("-"),r=i.pop();return t=i.reduce((s,o)=>s[o],n),{target:t,key:r}}else return{target:t,key:e}}const WS=/-\d+$/;function ZE(n,e,t){if(_n.str(t)){if(WS.test(t)){const s=t.replace(WS,""),{target:o,key:a}=Av(n,s);Array.isArray(o[a])||(o[a]=[])}const{target:i,key:r}=Av(n,t);e.__r3f.previousAttach=i[r],i[r]=e}else e.__r3f.previousAttach=t(n,e)}function YS(n,e,t){var i,r;if(_n.str(t)){const{target:s,key:o}=Av(n,t),a=e.__r3f.previousAttach;a===void 0?delete s[o]:s[o]=a}else(i=e.__r3f)==null||i.previousAttach==null||i.previousAttach(n,e);(r=e.__r3f)==null||delete r.previousAttach}function ET(n,{children:e,key:t,ref:i,...r},{children:s,key:o,ref:a,...l}={},A=!1){var h;const d=(h=n==null?void 0:n.__r3f)!=null?h:{},f=Object.entries(r),g=[];if(A){const v=Object.keys(l);for(let y=0;y{var p;if((p=n.__r3f)!=null&&p.primitive&&v==="object"||_n.equ(y,l[v]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(v))return g.push([v,y,!0,[]]);let C=[];v.includes("-")&&(C=v.split("-")),g.push([v,y,!1,C]);for(const I in r){const B=r[I];I.startsWith(`${v}-`)&&g.push([I,B,!1,I.split("-")])}});const E={...r};return d.memoizedProps&&d.memoizedProps.args&&(E.args=d.memoizedProps.args),d.memoizedProps&&d.memoizedProps.attach&&(E.attach=d.memoizedProps.attach),{memoized:E,changes:g}}const VG=typeof process<"u"&&!1;function $E(n,e){var t,i,r;const s=(t=n.__r3f)!=null?t:{},o=s.root,a=(i=o==null||o.getState==null?void 0:o.getState())!=null?i:{},{memoized:l,changes:A}=zG(e)?e:ET(n,e),h=s.eventCount;n.__r3f&&(n.__r3f.memoizedProps=l);for(let f=0;fI[B],n),!(C&&C.set))){const[I,...B]=y.reverse();p=B.reverse().reduce((R,M)=>R[M],n),g=I}if(E===gT+"remove")if(p.constructor){let I=VS.get(p.constructor);I||(I=new p.constructor,VS.set(p.constructor,I)),E=I[g]}else E=0;if(v)E?s.handlers[g]=E:delete s.handlers[g],s.eventCount=Object.keys(s.handlers).length;else if(C&&C.set&&(C.copy||C instanceof Nl)){if(Array.isArray(E))C.fromArray?C.fromArray(E):C.set(...E);else if(C.copy&&E&&E.constructor&&(VG?C.constructor.name===E.constructor.name:C.constructor===E.constructor))C.copy(E);else if(E!==void 0){const I=C instanceof Je;!I&&C.setScalar?C.setScalar(E):C instanceof Nl&&E instanceof Nl?C.mask=E.mask:C.set(E),!hT()&&!a.linear&&I&&C.convertSRGBToLinear()}}else if(p[g]=E,p[g]instanceof wn&&p[g].format===zi&&p[g].type===Us){const I=p[g];qE(I)&&qE(a.gl)?I.colorSpace=a.gl.outputColorSpace:I.encoding=a.gl.outputEncoding}Yc(n)}if(s.parent&&a.internal&&n.raycast&&h!==s.eventCount){const f=a.internal.interaction.indexOf(n);f>-1&&a.internal.interaction.splice(f,1),s.eventCount&&a.internal.interaction.push(n)}return!(A.length===1&&A[0][0]==="onUpdate")&&A.length&&(r=n.__r3f)!=null&&r.parent&&hv(n),n}function Yc(n){var e,t;const i=(e=n.__r3f)==null||(t=e.root)==null||t.getState==null?void 0:t.getState();i&&i.internal.frames===0&&i.invalidate()}function hv(n){n.onUpdate==null||n.onUpdate(n)}function yT(n,e){n.manual||(dT(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix(),n.updateMatrixWorld())}function fp(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function WG(){var n;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return uu.DefaultEventPriority;switch((n=e.event)==null?void 0:n.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return uu.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return uu.ContinuousEventPriority;default:return uu.DefaultEventPriority}}function CT(n,e,t,i){const r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function YG(n,e){const{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{CT(t.capturedMap,e,i,r)})}function XG(n){function e(l){const{internal:A}=n.getState(),h=l.offsetX-A.initialClick[0],d=l.offsetY-A.initialClick[1];return Math.round(Math.sqrt(h*h+d*d))}function t(l){return l.filter(A=>["Move","Over","Enter","Out","Leave"].some(h=>{var d;return(d=A.__r3f)==null?void 0:d.handlers["onPointer"+h]}))}function i(l,A){const h=n.getState(),d=new Set,f=[],g=A?A(h.internal.interaction):h.internal.interaction;for(let p=0;p{const I=wA(p.object),B=wA(C.object);return!I||!B?p.distance-C.distance:B.events.priority-I.events.priority||p.distance-C.distance}).filter(p=>{const C=fp(p);return d.has(C)?!1:(d.add(C),!0)});h.events.filter&&(v=h.events.filter(v,h));for(const p of v){let C=p.object;for(;C;){var y;(y=C.__r3f)!=null&&y.eventCount&&f.push({...p,eventObject:C}),C=C.parent}}if("pointerId"in l&&h.internal.capturedMap.has(l.pointerId))for(let p of h.internal.capturedMap.get(l.pointerId).values())d.has(fp(p.intersection))||f.push(p.intersection);return f}function r(l,A,h,d){const f=n.getState();if(l.length){const g={stopped:!1};for(const E of l){const v=wA(E.object)||f,{raycaster:y,pointer:p,camera:C,internal:I}=v,B=new G(p.x,p.y,0).unproject(C),R=w=>{var b,q;return(b=(q=I.capturedMap.get(w))==null?void 0:q.has(E.eventObject))!=null?b:!1},M=w=>{const b={intersection:E,target:A.target};I.capturedMap.has(w)?I.capturedMap.get(w).set(E.eventObject,b):I.capturedMap.set(w,new Map([[E.eventObject,b]])),A.target.setPointerCapture(w)},T=w=>{const b=I.capturedMap.get(w);b&&CT(I.capturedMap,E.eventObject,b,w)};let U={};for(let w in A){let b=A[w];typeof b!="function"&&(U[w]=b)}let K={...E,...U,pointer:p,intersections:l,stopped:g.stopped,delta:h,unprojectedPoint:B,ray:y.ray,camera:C,stopPropagation(){const w="pointerId"in A&&I.capturedMap.get(A.pointerId);if((!w||w.has(E.eventObject))&&(K.stopped=g.stopped=!0,I.hovered.size&&Array.from(I.hovered.values()).find(b=>b.eventObject===E.eventObject))){const b=l.slice(0,l.indexOf(E));s([...b,E])}},target:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},currentTarget:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},nativeEvent:A};if(d(K),g.stopped===!0)break}}return l}function s(l){const{internal:A}=n.getState();for(const h of A.hovered.values())if(!l.length||!l.find(d=>d.object===h.object&&d.index===h.index&&d.instanceId===h.instanceId)){const f=h.eventObject.__r3f,g=f==null?void 0:f.handlers;if(A.hovered.delete(fp(h)),f!=null&&f.eventCount){const E={...h,intersections:l};g.onPointerOut==null||g.onPointerOut(E),g.onPointerLeave==null||g.onPointerLeave(E)}}}function o(l,A){for(let h=0;hs([]);case"onLostPointerCapture":return A=>{const{internal:h}=n.getState();"pointerId"in A&&h.capturedMap.has(A.pointerId)&&requestAnimationFrame(()=>{h.capturedMap.has(A.pointerId)&&(h.capturedMap.delete(A.pointerId),s([]))})}}return function(h){const{onPointerMissed:d,internal:f}=n.getState();f.lastEvent.current=h;const g=l==="onPointerMove",E=l==="onClick"||l==="onContextMenu"||l==="onDoubleClick",y=i(h,g?t:void 0),p=E?e(h):0;l==="onPointerDown"&&(f.initialClick=[h.offsetX,h.offsetY],f.initialHits=y.map(I=>I.eventObject)),E&&!y.length&&p<=2&&(o(h,f.interaction),d&&d(h)),g&&s(y);function C(I){const B=I.eventObject,R=B.__r3f,M=R==null?void 0:R.handlers;if(R!=null&&R.eventCount)if(g){if(M.onPointerOver||M.onPointerEnter||M.onPointerOut||M.onPointerLeave){const T=fp(I),U=f.hovered.get(T);U?U.stopped&&I.stopPropagation():(f.hovered.set(T,I),M.onPointerOver==null||M.onPointerOver(I),M.onPointerEnter==null||M.onPointerEnter(I))}M.onPointerMove==null||M.onPointerMove(I)}else{const T=M[l];T?(!E||f.initialHits.includes(B))&&(o(h,f.interaction.filter(U=>!f.initialHits.includes(U))),T(I)):E&&f.initialHits.includes(B)&&o(h,f.interaction.filter(U=>!f.initialHits.includes(U)))}}r(y,h,p,C)}}return{handlePointer:a}}const JG=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],vT=n=>!!(n!=null&&n.render),gx=Y.createContext(null),jG=(n,e)=>{const t=lT((a,l)=>{const A=new G,h=new G,d=new G;function f(p=l().camera,C=h,I=l().size){const{width:B,height:R,top:M,left:T}=I,U=B/R;C instanceof G?d.copy(C):d.set(...C);const K=p.getWorldPosition(A).distanceTo(d);if(dT(p))return{width:B/p.zoom,height:R/p.zoom,top:M,left:T,factor:1,distance:K,aspect:U};{const w=p.fov*Math.PI/180,b=2*Math.tan(w/2)*K,q=b*(B/R);return{width:q,height:b,top:M,left:T,factor:B/q,distance:K,aspect:U}}}let g;const E=p=>a(C=>({performance:{...C.performance,current:p}})),v=new _e;return{set:a,get:l,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(p=1)=>n(l(),p),advance:(p,C)=>e(p,C,l()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new Ax,pointer:v,mouse:v,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const p=l();g&&clearTimeout(g),p.performance.current!==p.performance.min&&E(p.performance.min),g=setTimeout(()=>E(l().performance.max),p.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:f},setEvents:p=>a(C=>({...C,events:{...C.events,...p}})),setSize:(p,C,I,B,R)=>{const M=l().camera,T={width:p,height:C,top:B||0,left:R||0,updateStyle:I};a(U=>({size:T,viewport:{...U.viewport,...f(M,h,T)}}))},setDpr:p=>a(C=>{const I=mT(p);return{viewport:{...C.viewport,dpr:I,initialDpr:C.viewport.initialDpr||I}}}),setFrameloop:(p="always")=>{const C=l().clock;C.stop(),C.elapsedTime=0,p!=="never"&&(C.start(),C.elapsedTime=0),a(()=>({frameloop:p}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:Y.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(p,C,I)=>{const B=l().internal;return B.priority=B.priority+(C>0?1:0),B.subscribers.push({ref:p,priority:C,store:I}),B.subscribers=B.subscribers.sort((R,M)=>R.priority-M.priority),()=>{const R=l().internal;R!=null&&R.subscribers&&(R.priority=R.priority-(C>0?1:0),R.subscribers=R.subscribers.filter(M=>M.ref!==p))}}}}}),i=t.getState();let r=i.size,s=i.viewport.dpr,o=i.camera;return t.subscribe(()=>{const{camera:a,size:l,viewport:A,gl:h,set:d}=t.getState();if(l.width!==r.width||l.height!==r.height||A.dpr!==s){var f;r=l,s=A.dpr,yT(a,l),h.setPixelRatio(A.dpr);const g=(f=l.updateStyle)!=null?f:typeof HTMLCanvasElement<"u"&&h.domElement instanceof HTMLCanvasElement;h.setSize(l.width,l.height,g)}a!==o&&(o=a,d(g=>({viewport:{...g.viewport,...g.viewport.getCurrentViewport(a)}})))}),t.subscribe(a=>n(a)),t};let pp,KG=new Set,qG=new Set,ZG=new Set;function ey(n,e){if(n.size)for(const{callback:t}of n.values())t(e)}function MA(n,e){switch(n){case"before":return ey(KG,e);case"after":return ey(qG,e);case"tail":return ey(ZG,e)}}let ty,ny;function iy(n,e,t){let i=e.clock.getDelta();for(e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),ty=e.internal.subscribers,pp=0;pp0)&&!((A=r.gl.xr)!=null&&A.isPresenting)&&(t+=iy(l,r))}if(MA("after",l),t===0)return MA("tail",l),e=!1,cancelAnimationFrame(i)}function o(l,A=1){var h;if(!l)return n.forEach(d=>o(d.store.getState()),A);(h=l.gl.xr)!=null&&h.isPresenting||!l.internal.active||l.frameloop==="never"||(l.internal.frames=Math.min(60,l.internal.frames+A),e||(e=!0,requestAnimationFrame(s)))}function a(l,A=!0,h,d){if(A&&MA("before",l),h)iy(l,h,d);else for(const f of n.values())iy(l,f.store.getState());A&&MA("after",l)}return{loop:s,invalidate:o,advance:a}}function _o(){const n=Y.useContext(gx);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function Qm(n=t=>t,e){return _o()(n,e)}function qr(n,e=0){const t=_o(),i=t.getState().internal.subscribe,r=fT(n);return sd(()=>i(r,e,t),[e,i,t]),null}const Ru=new Map,{invalidate:XS,advance:JS}=$G(Ru),{reconciler:zh,applyProps:kc}=kG(Ru,WG),Oc={objects:"shallow",strict:!1},ez=(n,e)=>{const t=typeof n=="function"?n(e):n;return vT(t)?t:new WI({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...n})};function tz(n,e){const t=typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement;if(e){const{width:i,height:r,top:s,left:o,updateStyle:a=t}=e;return{width:i,height:r,top:s,left:o,updateStyle:a}}else if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){const{width:i,height:r,top:s,left:o}=n.parentElement.getBoundingClientRect();return{width:i,height:r,top:s,left:o,updateStyle:t}}else if(typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0,updateStyle:t};return{width:0,height:0,top:0,left:0}}function nz(n){const e=Ru.get(n),t=e==null?void 0:e.fiber,i=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,s=i||jG(XS,JS),o=t||zh.createContainer(s,uu.ConcurrentRoot,null,!1,null,"",r,null);e||Ru.set(n,{fiber:o,store:s});let a,l=!1,A;return{configure(h={}){let{gl:d,size:f,scene:g,events:E,onCreated:v,shadows:y=!1,linear:p=!1,flat:C=!1,legacy:I=!1,orthographic:B=!1,frameloop:R="always",dpr:M=[1,2],performance:T,raycaster:U,camera:K,onPointerMissed:w}=h,b=s.getState(),q=b.gl;b.gl||b.set({gl:q=ez(d,n)});let ge=b.raycaster;ge||b.set({raycaster:ge=new rd});const{params:J,...ce}=U||{};if(_n.equ(ce,ge,Oc)||kc(ge,{...ce}),_n.equ(J,ge.params,Oc)||kc(ge,{params:{...ge.params,...J}}),!b.camera||b.camera===A&&!_n.equ(A,K,Oc)){A=K;const Ce=K instanceof Kh,Oe=Ce?K:B?new $h(0,0,0,0,.1,1e3):new ti(75,0,.1,1e3);Ce||(Oe.position.z=5,K&&kc(Oe,K),!b.camera&&!(K!=null&&K.rotation)&&Oe.lookAt(0,0,0)),b.set({camera:Oe}),ge.camera=Oe}if(!b.scene){let Ce;g instanceof Nh?Ce=g:(Ce=new Nh,g&&kc(Ce,g)),b.set({scene:Wc(Ce)})}if(!b.xr){var se;const Ce=(z,O)=>{const k=s.getState();k.frameloop!=="never"&&JS(z,!0,k,O)},Oe=()=>{const z=s.getState();z.gl.xr.enabled=z.gl.xr.isPresenting,z.gl.xr.setAnimationLoop(z.gl.xr.isPresenting?Ce:null),z.gl.xr.isPresenting||XS(z)},W={connect(){const z=s.getState().gl;z.xr.addEventListener("sessionstart",Oe),z.xr.addEventListener("sessionend",Oe)},disconnect(){const z=s.getState().gl;z.xr.removeEventListener("sessionstart",Oe),z.xr.removeEventListener("sessionend",Oe)}};typeof((se=q.xr)==null?void 0:se.addEventListener)=="function"&&W.connect(),b.set({xr:W})}if(q.shadowMap){const Ce=q.shadowMap.enabled,Oe=q.shadowMap.type;if(q.shadowMap.enabled=!!y,_n.boo(y))q.shadowMap.type=qA;else if(_n.str(y)){var de;const W={basic:$Q,percentage:tm,soft:qA,variance:ss};q.shadowMap.type=(de=W[y])!=null?de:qA}else _n.obj(y)&&Object.assign(q.shadowMap,y);(Ce!==q.shadowMap.enabled||Oe!==q.shadowMap.type)&&(q.shadowMap.needsUpdate=!0)}const F=hT();F&&("enabled"in F?F.enabled=!I:"legacyMode"in F&&(F.legacyMode=I)),kc(q,{outputEncoding:p?3e3:3001,toneMapping:C?Ps:SI}),b.legacy!==I&&b.set(()=>({legacy:I})),b.linear!==p&&b.set(()=>({linear:p})),b.flat!==C&&b.set(()=>({flat:C})),d&&!_n.fun(d)&&!vT(d)&&!_n.equ(d,q,Oc)&&kc(q,d),E&&!b.events.handlers&&b.set({events:E(s)});const ue=tz(n,f);return _n.equ(ue,b.size,Oc)||b.setSize(ue.width,ue.height,ue.updateStyle,ue.top,ue.left),M&&b.viewport.dpr!==mT(M)&&b.setDpr(M),b.frameloop!==R&&b.setFrameloop(R),b.onPointerMissed||b.set({onPointerMissed:w}),T&&!_n.equ(T,b.performance,Oc)&&b.set(Ce=>({performance:{...Ce.performance,...T}})),a=v,l=!0,this},render(h){return l||this.configure(),zh.updateContainer(Y.createElement(iz,{store:s,children:h,onCreated:a,rootElement:n}),o,null,()=>{}),s},unmount(){IT(n)}}}function iz({store:n,children:e,onCreated:t,rootElement:i}){return sd(()=>{const r=n.getState();r.set(s=>({internal:{...s.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),Y.createElement(gx.Provider,{value:n},e)}function IT(n,e){const t=Ru.get(n),i=t==null?void 0:t.fiber;if(i){const r=t==null?void 0:t.store.getState();r&&(r.internal.active=!1),zh.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{var s,o,a,l;r.events.disconnect==null||r.events.disconnect(),(s=r.gl)==null||(o=s.renderLists)==null||o.dispose==null||o.dispose(),(a=r.gl)==null||a.forceContextLoss==null||a.forceContextLoss(),(l=r.gl)!=null&&l.xr&&r.xr.disconnect(),HG(r),Ru.delete(n),e&&e(n)}catch{}},500)})}}function xT(n,e,t){return Y.createElement(rz,{key:e.uuid,children:n,container:e,state:t})}function rz({state:n={},children:e,container:t}){const{events:i,size:r,...s}=n,o=_o(),[a]=Y.useState(()=>new rd),[l]=Y.useState(()=>new _e),A=Y.useCallback((d,f)=>{const g={...d};Object.keys(d).forEach(v=>{(JG.includes(v)||d[v]!==f[v]&&f[v])&&delete g[v]});let E;if(f&&r){const v=f.camera;E=d.viewport.getCurrentViewport(v,new G,r),v!==d.camera&&yT(v,r)}return{...g,scene:t,raycaster:a,pointer:l,mouse:l,previousRoot:o,events:{...d.events,...f==null?void 0:f.events,...i},size:{...d.size,...r},viewport:{...d.viewport,...E},...s}},[n]),[h]=Y.useState(()=>{const d=o.getState();return lT((g,E)=>({...d,scene:t,raycaster:a,pointer:l,mouse:l,previousRoot:o,events:{...d.events,...i},size:{...d.size,...r},...s,set:g,get:E,setEvents:v=>g(y=>({...y,events:{...y.events,...v}}))}))});return Y.useEffect(()=>{const d=o.subscribe(f=>h.setState(g=>A(f,g)));return()=>{d(),h.destroy()}},[]),Y.useEffect(()=>{h.setState(d=>A(o.getState(),d))},[A]),Y.createElement(Y.Fragment,null,zh.createPortal(Y.createElement(gx.Provider,{value:h},e),h,null))}zh.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:Y.version});function bg(){return bg=Object.assign?Object.assign.bind():function(n){for(var e=1;e=0?i=setTimeout(l,e-h):(i=null,t||(a=n.apply(s,r),s=r=null))}var A=function(){s=this,r=arguments,o=Date.now();var h=t&&!i;return i||(i=setTimeout(l,e)),h&&(a=n.apply(s,r),s=r=null),a};return A.clear=function(){i&&(clearTimeout(i),i=null)},A.flush=function(){i&&(a=n.apply(s,r),s=r=null,clearTimeout(i),i=null)},A}dv.debounce=dv;var sz=dv;const jS=Rv(sz);function oz(n){let{debounce:e,scroll:t,polyfill:i,offsetSize:r}=n===void 0?{debounce:0,scroll:!1,offsetSize:!1}:n;const s=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!s)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,a]=Y.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),l=Y.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),A=e?typeof e=="number"?e:e.scroll:null,h=e?typeof e=="number"?e:e.resize:null,d=Y.useRef(!1);Y.useEffect(()=>(d.current=!0,()=>void(d.current=!1)));const[f,g,E]=Y.useMemo(()=>{const C=()=>{if(!l.current.element)return;const{left:I,top:B,width:R,height:M,bottom:T,right:U,x:K,y:w}=l.current.element.getBoundingClientRect(),b={left:I,top:B,width:R,height:M,bottom:T,right:U,x:K,y:w};l.current.element instanceof HTMLElement&&r&&(b.height=l.current.element.offsetHeight,b.width=l.current.element.offsetWidth),Object.freeze(b),d.current&&!uz(l.current.lastBounds,b)&&a(l.current.lastBounds=b)};return[C,h?jS(C,h):C,A?jS(C,A):C]},[a,r,A,h]);function v(){l.current.scrollContainers&&(l.current.scrollContainers.forEach(C=>C.removeEventListener("scroll",E,!0)),l.current.scrollContainers=null),l.current.resizeObserver&&(l.current.resizeObserver.disconnect(),l.current.resizeObserver=null)}function y(){l.current.element&&(l.current.resizeObserver=new s(E),l.current.resizeObserver.observe(l.current.element),t&&l.current.scrollContainers&&l.current.scrollContainers.forEach(C=>C.addEventListener("scroll",E,{capture:!0,passive:!0})))}const p=C=>{!C||C===l.current.element||(v(),l.current.element=C,l.current.scrollContainers=BT(C),y())};return lz(E,!!t),az(g),Y.useEffect(()=>{v(),y()},[t,E,g]),Y.useEffect(()=>v,[]),[p,o,f]}function az(n){Y.useEffect(()=>{const e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function lz(n,e){Y.useEffect(()=>{if(e){const t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function BT(n){const e=[];if(!n||n===document.body)return e;const{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(s=>s==="auto"||s==="scroll")&&e.push(n),[...e,...BT(n.parentElement)]}const cz=["x","y","top","bottom","left","right","width","height"],uz=(n,e)=>cz.every(t=>n[t]===e[t]);var Az=Object.defineProperty,hz=Object.defineProperties,dz=Object.getOwnPropertyDescriptors,KS=Object.getOwnPropertySymbols,fz=Object.prototype.hasOwnProperty,pz=Object.prototype.propertyIsEnumerable,qS=(n,e,t)=>e in n?Az(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ZS=(n,e)=>{for(var t in e||(e={}))fz.call(e,t)&&qS(n,t,e[t]);if(KS)for(var t of KS(e))pz.call(e,t)&&qS(n,t,e[t]);return n},gz=(n,e)=>hz(n,dz(e));function _T(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){const r=_T(i,e,t);if(r)return r;i=e?null:i.sibling}}function ST(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}const mx=ST(Y.createContext(null));class wT extends Y.Component{render(){return Y.createElement(mx.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:$S,ReactCurrentDispatcher:ew}=Y.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function mz(){const n=Y.useContext(mx);if(n===null)throw new Error("its-fine: useFiber must be called within a !");const e=Y.useId();return Y.useMemo(()=>{for(const i of[$S==null?void 0:$S.current,n,n==null?void 0:n.alternate]){if(!i)continue;const r=_T(i,!1,s=>{let o=s.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[n,e])}function Ez(){var n,e;const t=mz(),[i]=Y.useState(()=>new Map);i.clear();let r=t;for(;r;){const s=(n=r.type)==null?void 0:n._context;s&&s!==mx&&!i.has(s)&&i.set(s,(e=ew==null?void 0:ew.current)==null?void 0:e.readContext(ST(s))),r=r.return}return i}function yz(){const n=Ez();return Y.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>Y.createElement(e,null,Y.createElement(t.Provider,gz(ZS({},i),{value:n.get(t)}))),e=>Y.createElement(wT,ZS({},e))),[n])}const ry={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function Cz(n){const{handlePointer:e}=XG(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(ry).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;const{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{var i;const{set:r,events:s}=n.getState();s.disconnect==null||s.disconnect(),r(o=>({events:{...o.events,connected:t}})),Object.entries((i=s.handlers)!=null?i:[]).forEach(([o,a])=>{const[l,A]=ry[o];t.addEventListener(l,a,{passive:A})})},disconnect:()=>{const{set:t,events:i}=n.getState();if(i.connected){var r;Object.entries((r=i.handlers)!=null?r:[]).forEach(([s,o])=>{if(i&&i.connected instanceof HTMLElement){const[a]=ry[s];i.connected.removeEventListener(a,o)}}),t(s=>({events:{...s.events,connected:void 0}}))}}}}const vz=Y.forwardRef(function({children:e,fallback:t,resize:i,style:r,gl:s,events:o=Cz,eventSource:a,eventPrefix:l,shadows:A,linear:h,flat:d,legacy:f,orthographic:g,frameloop:E,dpr:v,performance:y,raycaster:p,camera:C,scene:I,onPointerMissed:B,onCreated:R,...M},T){Y.useMemo(()=>FG(DG),[]);const U=yz(),[K,w]=oz({scroll:!0,debounce:{scroll:50,resize:0},...i}),b=Y.useRef(null),q=Y.useRef(null);Y.useImperativeHandle(T,()=>b.current);const ge=fT(B),[J,ce]=Y.useState(!1),[se,de]=Y.useState(!1);if(J)throw J;if(se)throw se;const F=Y.useRef(null);sd(()=>{const te=b.current;w.width>0&&w.height>0&&te&&(F.current||(F.current=nz(te)),F.current.configure({gl:s,events:o,shadows:A,linear:h,flat:d,legacy:f,orthographic:g,frameloop:E,dpr:v,performance:y,raycaster:p,camera:C,scene:I,size:w,onPointerMissed:(...ue)=>ge.current==null?void 0:ge.current(...ue),onCreated:ue=>{ue.events.connect==null||ue.events.connect(a?OG(a)?a.current:a:q.current),l&&ue.setEvents({compute:(Ce,Oe)=>{const W=Ce[l+"X"],z=Ce[l+"Y"];Oe.pointer.set(W/Oe.size.width*2-1,-(z/Oe.size.height)*2+1),Oe.raycaster.setFromCamera(Oe.pointer,Oe.camera)}}),R==null||R(ue)}}),F.current.render(Y.createElement(U,null,Y.createElement(pT,{set:de},Y.createElement(Y.Suspense,{fallback:Y.createElement(GG,{set:ce})},e)))))}),Y.useEffect(()=>{const te=b.current;if(te)return()=>IT(te)},[]);const ee=a?"none":"auto";return Y.createElement("div",bg({ref:q,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ee,...r}},M),Y.createElement("div",{ref:K,style:{width:"100%",height:"100%"}},Y.createElement("canvas",{ref:b,style:{display:"block"}},t)))}),Iz=Y.forwardRef(function(e,t){return Y.createElement(wT,null,Y.createElement(vz,bg({},e,{ref:t})))});function Rm(){throw new Error("Cycle detected")}var xz=Symbol.for("preact-signals");function Tm(){if(Ea>1)Ea--;else{for(var n,e=!1;nh!==void 0;){var t=nh;for(nh=void 0,fv++;t!==void 0;){var i=t.o;if(t.o=void 0,t.f&=-3,!(8&t.f)&&RT(t))try{t.c()}catch(r){e||(n=r,e=!0)}t=i}}if(fv=0,Ea--,e)throw n}}function MT(n){if(Ea>0)return n();Ea++;try{return n()}finally{Tm()}}var Pn=void 0,nh=void 0,Ea=0,fv=0,Ng=0;function QT(n){if(Pn!==void 0){var e=n.n;if(e===void 0||e.t!==Pn)return e={i:0,S:n,p:Pn.s,n:void 0,t:Pn,e:void 0,x:void 0,r:e},Pn.s!==void 0&&(Pn.s.n=e),Pn.s=e,n.n=e,32&Pn.f&&n.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=Pn.s,e.n=void 0,Pn.s.n=e,Pn.s=e),e}}function Wn(n){this.v=n,this.i=0,this.n=void 0,this.t=void 0}Wn.prototype.brand=xz;Wn.prototype.h=function(){return!0};Wn.prototype.S=function(n){this.t!==n&&n.e===void 0&&(n.x=this.t,this.t!==void 0&&(this.t.e=n),this.t=n)};Wn.prototype.U=function(n){if(this.t!==void 0){var e=n.e,t=n.x;e!==void 0&&(e.x=t,n.e=void 0),t!==void 0&&(t.e=e,n.x=void 0),n===this.t&&(this.t=t)}};Wn.prototype.subscribe=function(n){var e=this;return un(function(){var t=e.value,i=32&this.f;this.f&=-33;try{n(t)}finally{this.f|=i}})};Wn.prototype.valueOf=function(){return this.value};Wn.prototype.toString=function(){return this.value+""};Wn.prototype.toJSON=function(){return this.value};Wn.prototype.peek=function(){return this.v};Object.defineProperty(Wn.prototype,"value",{get:function(){var n=QT(this);return n!==void 0&&(n.i=this.i),this.v},set:function(n){if(Pn instanceof Ta&&function(){throw new Error("Computed cannot have side-effects")}(),n!==this.v){fv>100&&Rm(),this.v=n,this.i++,Ng++,Ea++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{Tm()}}}});function hn(n){return new Wn(n)}function RT(n){for(var e=n.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function TT(n){for(var e=n.s;e!==void 0;e=e.n){var t=e.S.n;if(t!==void 0&&(e.r=t),e.S.n=e,e.i=-1,e.n===void 0){n.s=e;break}}}function DT(n){for(var e=n.s,t=void 0;e!==void 0;){var i=e.p;e.i===-1?(e.S.U(e),i!==void 0&&(i.n=e.n),e.n!==void 0&&(e.n.p=i)):t=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=i}n.s=t}function Ta(n){Wn.call(this,void 0),this.x=n,this.s=void 0,this.g=Ng-1,this.f=4}(Ta.prototype=new Wn).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Ng))return!0;if(this.g=Ng,this.f|=1,this.i>0&&!RT(this))return this.f&=-2,!0;var n=Pn;try{TT(this),Pn=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(t){this.v=t,this.f|=16,this.i++}return Pn=n,DT(this),this.f&=-2,!0};Ta.prototype.S=function(n){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}Wn.prototype.S.call(this,n)};Ta.prototype.U=function(n){if(this.t!==void 0&&(Wn.prototype.U.call(this,n),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};Ta.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var n=this.t;n!==void 0;n=n.x)n.t.N()}};Ta.prototype.peek=function(){if(this.h()||Rm(),16&this.f)throw this.v;return this.v};Object.defineProperty(Ta.prototype,"value",{get:function(){1&this.f&&Rm();var n=QT(this);if(this.h(),n!==void 0&&(n.i=this.i),16&this.f)throw this.v;return this.v}});function hi(n){return new Ta(n)}function bT(n){var e=n.u;if(n.u=void 0,typeof e=="function"){Ea++;var t=Pn;Pn=void 0;try{e()}catch(i){throw n.f&=-2,n.f|=8,Ex(n),i}finally{Pn=t,Tm()}}}function Ex(n){for(var e=n.s;e!==void 0;e=e.n)e.S.U(e);n.x=void 0,n.s=void 0,bT(n)}function Bz(n){if(Pn!==this)throw new Error("Out-of-order effect");DT(this),Pn=n,this.f&=-2,8&this.f&&Ex(this),Tm()}function od(n){this.x=n,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}od.prototype.c=function(){var n=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{n()}};od.prototype.S=function(){1&this.f&&Rm(),this.f|=1,this.f&=-9,bT(this),TT(this),Ea++;var n=Pn;return Pn=this,Bz.bind(this,n)};od.prototype.N=function(){2&this.f||(this.f|=2,this.o=nh,nh=this)};od.prototype.d=function(){this.f|=8,1&this.f||Ex(this)};function un(n){var e=new od(n);try{e.c()}catch(t){throw e.d(),t}return e.d.bind(e)}function yx(n,e,t){const i=Y.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=Y.useMemo(()=>{let s={};return(o,a)=>{let l=0,A=!1;for(const h in s){if(!LT(s[h],o[h])){A=!0;break}++l}A||(A=l!=a),s=o,!(!A&&e.getProperty.peek()!=null)&&(e.getProperty.value=h=>pv(o[h]))}},[e]);NT(n,i,r,t)}function _z(n,e){const t=n.length;for(const i in e)for(let r=0;r{let r={},s=0;const o=(l,A)=>{if(A===void 0)return;const h=r[l];if(h===void 0&&++s,h==null||!(A instanceof Wn)){r[l]=A;return}if(Array.isArray(h)){h.push(A);return}r[l]=[h,A]};return{add:(l,A)=>{if(A!==void 0){if(i!=null){i(l,A,e,o);return}e(l)&&o(l,A)}},finish:()=>{t(r,s),s=0,r={}}}},[e,t,i]))}function LT(n,e){if(!Array.isArray(n))return n===e;if(!Array.isArray(e))return!1;const t=n.length;if(t!=e.length)return!1;for(let i=0;ihn(void 0),[]),r=Y.useMemo(()=>({hasBatchedProperty:s=>e.includes(s),getProperty:i}),[e]);return yx(n,r,t),i}const gv=Y.createContext(null);function ad(n,e){const t=Y.useContext(gv);t!=null&&e(t);const{classes:i}=n;if(Array.isArray(i)){const r=i.length;for(let s=0;s_z(n,t))}function ks(n){const t={...Y.useContext(gv)};for(const i in n){if(i==="children")continue;const r=n[i];r!=null&&(t[i]=r)}return N.jsx(gv.Provider,{value:t,children:n.children})}var Oi={},Cx={},Ut={};Object.defineProperty(Ut,"__esModule",{value:!0});Ut.default=Ut.Wrap=Ut.Unit=Ut.PrintOptions=Ut.PositionType=Ut.Overflow=Ut.NodeType=Ut.MeasureMode=Ut.LogLevel=Ut.Justify=Ut.Gutter=Ut.FlexDirection=Ut.ExperimentalFeature=Ut.Errata=Ut.Edge=Ut.Display=Ut.Direction=Ut.Dimension=Ut.Align=void 0;let so=function(n){return n[n.Auto=0]="Auto",n[n.FlexStart=1]="FlexStart",n[n.Center=2]="Center",n[n.FlexEnd=3]="FlexEnd",n[n.Stretch=4]="Stretch",n[n.Baseline=5]="Baseline",n[n.SpaceBetween=6]="SpaceBetween",n[n.SpaceAround=7]="SpaceAround",n}({});Ut.Align=so;let mv=function(n){return n[n.Width=0]="Width",n[n.Height=1]="Height",n}({});Ut.Dimension=mv;let Xp=function(n){return n[n.Inherit=0]="Inherit",n[n.LTR=1]="LTR",n[n.RTL=2]="RTL",n}({});Ut.Direction=Xp;let Ev=function(n){return n[n.Flex=0]="Flex",n[n.None=1]="None",n}({});Ut.Display=Ev;let Ss=function(n){return n[n.Left=0]="Left",n[n.Top=1]="Top",n[n.Right=2]="Right",n[n.Bottom=3]="Bottom",n[n.Start=4]="Start",n[n.End=5]="End",n[n.Horizontal=6]="Horizontal",n[n.Vertical=7]="Vertical",n[n.All=8]="All",n}({});Ut.Edge=Ss;let FA=function(n){return n[n.None=0]="None",n[n.StretchFlexBasis=1]="StretchFlexBasis",n[n.All=2147483647]="All",n[n.Classic=2147483646]="Classic",n}({});Ut.Errata=FA;let Jp=function(n){return n[n.WebFlexBasis=0]="WebFlexBasis",n[n.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",n[n.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",n}({});Ut.ExperimentalFeature=Jp;let kA=function(n){return n[n.Column=0]="Column",n[n.ColumnReverse=1]="ColumnReverse",n[n.Row=2]="Row",n[n.RowReverse=3]="RowReverse",n}({});Ut.FlexDirection=kA;let jp=function(n){return n[n.Column=0]="Column",n[n.Row=1]="Row",n[n.All=2]="All",n}({});Ut.Gutter=jp;let El=function(n){return n[n.FlexStart=0]="FlexStart",n[n.Center=1]="Center",n[n.FlexEnd=2]="FlexEnd",n[n.SpaceBetween=3]="SpaceBetween",n[n.SpaceAround=4]="SpaceAround",n[n.SpaceEvenly=5]="SpaceEvenly",n}({});Ut.Justify=El;let yl=function(n){return n[n.Error=0]="Error",n[n.Warn=1]="Warn",n[n.Info=2]="Info",n[n.Debug=3]="Debug",n[n.Verbose=4]="Verbose",n[n.Fatal=5]="Fatal",n}({});Ut.LogLevel=yl;let Kp=function(n){return n[n.Undefined=0]="Undefined",n[n.Exactly=1]="Exactly",n[n.AtMost=2]="AtMost",n}({});Ut.MeasureMode=Kp;let yv=function(n){return n[n.Default=0]="Default",n[n.Text=1]="Text",n}({});Ut.NodeType=yv;let qp=function(n){return n[n.Visible=0]="Visible",n[n.Hidden=1]="Hidden",n[n.Scroll=2]="Scroll",n}({});Ut.Overflow=qp;let Zp=function(n){return n[n.Static=0]="Static",n[n.Relative=1]="Relative",n[n.Absolute=2]="Absolute",n}({});Ut.PositionType=Zp;let $p=function(n){return n[n.Layout=1]="Layout",n[n.Style=2]="Style",n[n.Children=4]="Children",n}({});Ut.PrintOptions=$p;let OA=function(n){return n[n.Undefined=0]="Undefined",n[n.Point=1]="Point",n[n.Percent=2]="Percent",n[n.Auto=3]="Auto",n}({});Ut.Unit=OA;let eg=function(n){return n[n.NoWrap=0]="NoWrap",n[n.Wrap=1]="Wrap",n[n.WrapReverse=2]="WrapReverse",n}({});Ut.Wrap=eg;const Sz={ALIGN_AUTO:so.Auto,ALIGN_FLEX_START:so.FlexStart,ALIGN_CENTER:so.Center,ALIGN_FLEX_END:so.FlexEnd,ALIGN_STRETCH:so.Stretch,ALIGN_BASELINE:so.Baseline,ALIGN_SPACE_BETWEEN:so.SpaceBetween,ALIGN_SPACE_AROUND:so.SpaceAround,DIMENSION_WIDTH:mv.Width,DIMENSION_HEIGHT:mv.Height,DIRECTION_INHERIT:Xp.Inherit,DIRECTION_LTR:Xp.LTR,DIRECTION_RTL:Xp.RTL,DISPLAY_FLEX:Ev.Flex,DISPLAY_NONE:Ev.None,EDGE_LEFT:Ss.Left,EDGE_TOP:Ss.Top,EDGE_RIGHT:Ss.Right,EDGE_BOTTOM:Ss.Bottom,EDGE_START:Ss.Start,EDGE_END:Ss.End,EDGE_HORIZONTAL:Ss.Horizontal,EDGE_VERTICAL:Ss.Vertical,EDGE_ALL:Ss.All,ERRATA_NONE:FA.None,ERRATA_STRETCH_FLEX_BASIS:FA.StretchFlexBasis,ERRATA_ALL:FA.All,ERRATA_CLASSIC:FA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Jp.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:Jp.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:Jp.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:kA.Column,FLEX_DIRECTION_COLUMN_REVERSE:kA.ColumnReverse,FLEX_DIRECTION_ROW:kA.Row,FLEX_DIRECTION_ROW_REVERSE:kA.RowReverse,GUTTER_COLUMN:jp.Column,GUTTER_ROW:jp.Row,GUTTER_ALL:jp.All,JUSTIFY_FLEX_START:El.FlexStart,JUSTIFY_CENTER:El.Center,JUSTIFY_FLEX_END:El.FlexEnd,JUSTIFY_SPACE_BETWEEN:El.SpaceBetween,JUSTIFY_SPACE_AROUND:El.SpaceAround,JUSTIFY_SPACE_EVENLY:El.SpaceEvenly,LOG_LEVEL_ERROR:yl.Error,LOG_LEVEL_WARN:yl.Warn,LOG_LEVEL_INFO:yl.Info,LOG_LEVEL_DEBUG:yl.Debug,LOG_LEVEL_VERBOSE:yl.Verbose,LOG_LEVEL_FATAL:yl.Fatal,MEASURE_MODE_UNDEFINED:Kp.Undefined,MEASURE_MODE_EXACTLY:Kp.Exactly,MEASURE_MODE_AT_MOST:Kp.AtMost,NODE_TYPE_DEFAULT:yv.Default,NODE_TYPE_TEXT:yv.Text,OVERFLOW_VISIBLE:qp.Visible,OVERFLOW_HIDDEN:qp.Hidden,OVERFLOW_SCROLL:qp.Scroll,POSITION_TYPE_STATIC:Zp.Static,POSITION_TYPE_RELATIVE:Zp.Relative,POSITION_TYPE_ABSOLUTE:Zp.Absolute,PRINT_OPTIONS_LAYOUT:$p.Layout,PRINT_OPTIONS_STYLE:$p.Style,PRINT_OPTIONS_CHILDREN:$p.Children,UNIT_UNDEFINED:OA.Undefined,UNIT_POINT:OA.Point,UNIT_PERCENT:OA.Percent,UNIT_AUTO:OA.Auto,WRAP_NO_WRAP:eg.NoWrap,WRAP_WRAP:eg.Wrap,WRAP_WRAP_REVERSE:eg.WrapReverse};var wz=Sz;Ut.default=wz;Object.defineProperty(Cx,"__esModule",{value:!0});Cx.default=Qz;var Xo=Mz(Ut);function PT(n){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(PT=function(i){return i?t:e})(n)}function Mz(n,e){if(!e&&n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=PT(e);if(t&&t.has(n))return t.get(n);var i={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if(s!=="default"&&Object.prototype.hasOwnProperty.call(n,s)){var o=r?Object.getOwnPropertyDescriptor(n,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=n[s]}return i.default=n,t&&t.set(n,i),i}function Qz(n){function e(r,s,o){const a=r[s];r[s]=function(){for(var l=arguments.length,A=new Array(l),h=0;h1?a-1:0),A=1;As?n.Node.createWithConfig(s):n.Node.createDefault()),e(n.Node.prototype,"free",function(){n.Node.destroy(this)}),e(n.Node.prototype,"freeRecursive",function(){for(let r=0,s=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Xo.Direction.LTR;return r.call(this,s,o,a)}),{Config:n.Config,Node:n.Node,...Xo.default}}var UT={exports:{}};(function(n,e){var t=(()=>{var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var s;s||(s=typeof r<"u"?r:{});var o,a;s.ready=new Promise(function(L,P){o=L,a=P});var l=Object.assign({},s),A="";typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),i&&(A=i),A.indexOf("blob:")!==0?A=A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):A="";var h=s.print||console.log.bind(console),d=s.printErr||console.warn.bind(console);Object.assign(s,l),l=null;var f;s.wasmBinary&&(f=s.wasmBinary),s.noExitRuntime,typeof WebAssembly!="object"&&de("no native wasm support detected");var g,E=!1;function v(L,P,Z){Z=P+Z;for(var oe="";!(P>=Z);){var pe=L[P++];if(!pe)break;if(pe&128){var we=L[P++]&63;if((pe&224)==192)oe+=String.fromCharCode((pe&31)<<6|we);else{var Ue=L[P++]&63;pe=(pe&240)==224?(pe&15)<<12|we<<6|Ue:(pe&7)<<18|we<<12|Ue<<6|L[P++]&63,65536>pe?oe+=String.fromCharCode(pe):(pe-=65536,oe+=String.fromCharCode(55296|pe>>10,56320|pe&1023))}}else oe+=String.fromCharCode(pe)}return oe}var y,p,C,I,B,R,M,T,U;function K(){var L=g.buffer;y=L,s.HEAP8=p=new Int8Array(L),s.HEAP16=I=new Int16Array(L),s.HEAP32=R=new Int32Array(L),s.HEAPU8=C=new Uint8Array(L),s.HEAPU16=B=new Uint16Array(L),s.HEAPU32=M=new Uint32Array(L),s.HEAPF32=T=new Float32Array(L),s.HEAPF64=U=new Float64Array(L)}var w,b=[],q=[],ge=[];function J(){var L=s.preRun.shift();b.unshift(L)}var ce=0,se=null;function de(L){throw s.onAbort&&s.onAbort(L),L="Aborted("+L+")",d(L),E=!0,L=new WebAssembly.RuntimeError(L+". Build with -sASSERTIONS for more info."),a(L),L}function F(L){return L.startsWith("data:application/octet-stream;base64,")}var ee;if(ee="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVp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",!F(ee)){var te=ee;ee=s.locateFile?s.locateFile(te,A):A+te}function ue(){var L=ee;try{if(L==ee&&f)return new Uint8Array(f);if(F(L))try{var P=Xn(L.slice(37)),Z=new Uint8Array(P.length);for(L=0;L=P?"_"+L:L}function z(L,P){return L=W(L),function(){return P.apply(this,arguments)}}var O=[{},{value:void 0},{value:null},{value:!0},{value:!1}],k=[];function me(L){var P=Error,Z=z(L,function(oe){this.name=L,this.message=oe,oe=Error(oe).stack,oe!==void 0&&(this.stack=this.toString()+` -`+oe.replace(/^Error(:[^\n]*)?\n/,""))});return Z.prototype=Object.create(P.prototype),Z.prototype.constructor=Z,Z.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Z}var Ie=void 0;function re(L){throw new Ie(L)}var Be=L=>(L||re("Cannot use deleted val. handle = "+L),O[L].value),H=L=>{switch(L){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var P=k.length?k.pop():O.length;return O[P]={fa:1,value:L},P}},Ee=void 0,ne=void 0;function ae(L){for(var P="";C[L];)P+=ne[C[L++]];return P}var he=[];function Te(){for(;he.length;){var L=he.pop();L.L.Z=!1,L.delete()}}var $=void 0,S={};function D(L,P){for(P===void 0&&re("ptr should not be undefined");L.P;)P=L.aa(P),L=L.P;return P}var ie={};function be(L){L=et(L);var P=ae(L);return It(L),P}function De(L,P){var Z=ie[L];return Z===void 0&&re(P+" has unknown type "+be(L)),Z}function Qe(){}var Xe=!1;function Ve(L){--L.count.value,L.count.value===0&&(L.S?L.T.V(L.S):L.O.M.V(L.N))}function Ke(L,P,Z){return P===Z?L:Z.P===void 0?null:(L=Ke(L,P,Z.P),L===null?null:Z.ma(L))}var lt={};function vt(L,P){return P=D(L,P),S[P]}var Pe=void 0;function Lt(L){throw new Pe(L)}function St(L,P){return P.O&&P.N||Lt("makeClassHandle requires ptr and ptrType"),!!P.T!=!!P.S&&Lt("Both smartPtrType and smartPtr must be specified"),P.count={value:1},pt(Object.create(L,{L:{value:P}}))}function pt(L){return typeof FinalizationRegistry>"u"?(pt=P=>P,L):(Xe=new FinalizationRegistry(P=>{Ve(P.L)}),pt=P=>{var Z=P.L;return Z.S&&Xe.register(P,{L:Z},P),P},Qe=P=>{Xe.unregister(P)},pt(L))}var at={};function tt(L){for(;L.length;){var P=L.pop();L.pop()(P)}}function xt(L){return this.fromWireType(R[L>>2])}var kt={},$t={};function wt(L,P,Z){function oe(Le){Le=Z(Le),Le.length!==L.length&&Lt("Mismatched type converter count");for(var We=0;We{ie.hasOwnProperty(Le)?pe[We]=ie[Le]:(we.push(Le),kt.hasOwnProperty(Le)||(kt[Le]=[]),kt[Le].push(()=>{pe[We]=ie[Le],++Ue,Ue===we.length&&oe(pe)}))}),we.length===0&&oe(pe)}function Xt(L){switch(L){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+L)}}function j(L,P,Z={}){if(!("argPackAdvance"in P))throw new TypeError("registerType registeredInstance requires argPackAdvance");var oe=P.name;if(L||re('type "'+oe+'" must have a positive integer typeid pointer'),ie.hasOwnProperty(L)){if(Z.ta)return;re("Cannot register type '"+oe+"' twice")}ie[L]=P,delete $t[L],kt.hasOwnProperty(L)&&(P=kt[L],delete kt[L],P.forEach(pe=>pe()))}function Ge(L){re(L.L.O.M.name+" instance already deleted")}function Fe(){}function rt(L,P,Z){if(L[P].R===void 0){var oe=L[P];L[P]=function(){return L[P].R.hasOwnProperty(arguments.length)||re("Function '"+Z+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+L[P].R+")!"),L[P].R[arguments.length].apply(this,arguments)},L[P].R=[],L[P].R[oe.Y]=oe}}function dt(L,P){s.hasOwnProperty(L)?(re("Cannot register public name '"+L+"' twice"),rt(s,L,L),s.hasOwnProperty(void 0)&&re("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),s[L].R[void 0]=P):s[L]=P}function Jt(L,P,Z,oe,pe,we,Ue,Le){this.name=L,this.constructor=P,this.W=Z,this.V=oe,this.P=pe,this.oa=we,this.aa=Ue,this.ma=Le,this.ia=[]}function jt(L,P,Z){for(;P!==Z;)P.aa||re("Expected null or instance of "+Z.name+", got an instance of "+P.name),L=P.aa(L),P=P.P;return L}function bn(L,P){return P===null?(this.da&&re("null is not a valid "+this.name),0):(P.L||re('Cannot pass "'+Ya(P)+'" as a '+this.name),P.L.N||re("Cannot pass deleted object as a pointer of type "+this.name),jt(P.L.N,P.L.O.M,this.M))}function fi(L,P){if(P===null){if(this.da&&re("null is not a valid "+this.name),this.ca){var Z=this.ea();return L!==null&&L.push(this.V,Z),Z}return 0}if(P.L||re('Cannot pass "'+Ya(P)+'" as a '+this.name),P.L.N||re("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&P.L.O.ba&&re("Cannot convert argument of type "+(P.L.T?P.L.T.name:P.L.O.name)+" to parameter type "+this.name),Z=jt(P.L.N,P.L.O.M,this.M),this.ca)switch(P.L.S===void 0&&re("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:P.L.T===this?Z=P.L.S:re("Cannot convert argument of type "+(P.L.T?P.L.T.name:P.L.O.name)+" to parameter type "+this.name);break;case 1:Z=P.L.S;break;case 2:if(P.L.T===this)Z=P.L.S;else{var oe=P.clone();Z=this.wa(Z,H(function(){oe.delete()})),L!==null&&L.push(this.V,Z)}break;default:re("Unsupporting sharing policy")}return Z}function sn(L,P){return P===null?(this.da&&re("null is not a valid "+this.name),0):(P.L||re('Cannot pass "'+Ya(P)+'" as a '+this.name),P.L.N||re("Cannot pass deleted object as a pointer of type "+this.name),P.L.O.ba&&re("Cannot convert argument of type "+P.L.O.name+" to parameter type "+this.name),jt(P.L.N,P.L.O.M,this.M))}function dn(L,P,Z,oe){this.name=L,this.M=P,this.da=Z,this.ba=oe,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,P.P!==void 0?this.toWireType=fi:(this.toWireType=oe?bn:sn,this.U=null)}function Zi(L,P){s.hasOwnProperty(L)||Lt("Replacing nonexistant public symbol"),s[L]=P,s[L].Y=void 0}function Wa(L,P){var Z=[];return function(){if(Z.length=0,Object.assign(Z,arguments),L.includes("j")){var oe=s["dynCall_"+L];oe=Z&&Z.length?oe.apply(null,[P].concat(Z)):oe.call(null,P)}else oe=w.get(P).apply(null,Z);return oe}}function pi(L,P){L=ae(L);var Z=L.includes("j")?Wa(L,P):w.get(P);return typeof Z!="function"&&re("unknown function pointer with signature "+L+": "+P),Z}var Vs=void 0;function cr(L,P){function Z(we){pe[we]||ie[we]||($t[we]?$t[we].forEach(Z):(oe.push(we),pe[we]=!0))}var oe=[],pe={};throw P.forEach(Z),new Vs(L+": "+oe.map(be).join([", "]))}function ms(L,P,Z,oe,pe){var we=P.length;2>we&&re("argTypes array size mismatch! Must at least get return value and 'this' types!");var Ue=P[1]!==null&&Z!==null,Le=!1;for(Z=1;Z>2]);return Z}function Mo(L){4>2])};case 3:return function(Z){return this.fromWireType(U[Z>>3])};default:throw new TypeError("Unknown float type: "+L)}}function Vu(L,P,Z){switch(P){case 0:return Z?function(oe){return p[oe]}:function(oe){return C[oe]};case 1:return Z?function(oe){return I[oe>>1]}:function(oe){return B[oe>>1]};case 2:return Z?function(oe){return R[oe>>2]}:function(oe){return M[oe>>2]};default:throw new TypeError("Unknown integer type: "+L)}}function V(L,P){for(var Z="",oe=0;!(oe>=P/2);++oe){var pe=I[L+2*oe>>1];if(pe==0)break;Z+=String.fromCharCode(pe)}return Z}function fe(L,P,Z){if(Z===void 0&&(Z=2147483647),2>Z)return 0;Z-=2;var oe=P;Z=Z<2*L.length?Z/2:L.length;for(var pe=0;pe>1]=L.charCodeAt(pe),P+=2;return I[P>>1]=0,P-oe}function xe(L){return 2*L.length}function Se(L,P){for(var Z=0,oe="";!(Z>=P/4);){var pe=R[L+4*Z>>2];if(pe==0)break;++Z,65536<=pe?(pe-=65536,oe+=String.fromCharCode(55296|pe>>10,56320|pe&1023)):oe+=String.fromCharCode(pe)}return oe}function ve(L,P,Z){if(Z===void 0&&(Z=2147483647),4>Z)return 0;var oe=P;Z=oe+Z-4;for(var pe=0;pe=we){var Ue=L.charCodeAt(++pe);we=65536+((we&1023)<<10)|Ue&1023}if(R[P>>2]=we,P+=4,P+4>Z)break}return R[P>>2]=0,P-oe}function Ze(L){for(var P=0,Z=0;Z=oe&&++Z,P+=4}return P}var ct={};function mt(L){var P=ct[L];return P===void 0?ae(L):P}var gt=[];function Mt(L){var P=gt.length;return gt.push(L),P}function Bt(L,P){for(var Z=Array(L),oe=0;oe>2],"parameter "+oe);return Z}var _t=[],yn=[null,[],[]];Ie=s.BindingError=me("BindingError"),s.count_emval_handles=function(){for(var L=0,P=5;Pon;++on)Yn[on]=String.fromCharCode(on);ne=Yn,s.getInheritedInstanceCount=function(){return Object.keys(S).length},s.getLiveInheritedInstances=function(){var L=[],P;for(P in S)S.hasOwnProperty(P)&&L.push(S[P]);return L},s.flushPendingDeletes=Te,s.setDelayFunction=function(L){$=L,he.length&&$&&$(Te)},Pe=s.InternalError=me("InternalError"),Fe.prototype.isAliasOf=function(L){if(!(this instanceof Fe&&L instanceof Fe))return!1;var P=this.L.O.M,Z=this.L.N,oe=L.L.O.M;for(L=L.L.N;P.P;)Z=P.aa(Z),P=P.P;for(;oe.P;)L=oe.aa(L),oe=oe.P;return P===oe&&Z===L},Fe.prototype.clone=function(){if(this.L.N||Ge(this),this.L.$)return this.L.count.value+=1,this;var L=pt,P=Object,Z=P.create,oe=Object.getPrototypeOf(this),pe=this.L;return L=L(Z.call(P,oe,{L:{value:{count:pe.count,Z:pe.Z,$:pe.$,N:pe.N,O:pe.O,S:pe.S,T:pe.T}}})),L.L.count.value+=1,L.L.Z=!1,L},Fe.prototype.delete=function(){this.L.N||Ge(this),this.L.Z&&!this.L.$&&re("Object already scheduled for deletion"),Qe(this),Ve(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},Fe.prototype.isDeleted=function(){return!this.L.N},Fe.prototype.deleteLater=function(){return this.L.N||Ge(this),this.L.Z&&!this.L.$&&re("Object already scheduled for deletion"),he.push(this),he.length===1&&$&&$(Te),this.L.Z=!0,this},dn.prototype.pa=function(L){return this.ja&&(L=this.ja(L)),L},dn.prototype.ga=function(L){this.V&&this.V(L)},dn.prototype.argPackAdvance=8,dn.prototype.readValueFromPointer=xt,dn.prototype.deleteObject=function(L){L!==null&&L.delete()},dn.prototype.fromWireType=function(L){function P(){return this.ca?St(this.M.W,{O:this.va,N:Z,T:this,S:L}):St(this.M.W,{O:this,N:L})}var Z=this.pa(L);if(!Z)return this.ga(L),null;var oe=vt(this.M,Z);if(oe!==void 0)return oe.L.count.value===0?(oe.L.N=Z,oe.L.S=L,oe.clone()):(oe=oe.clone(),this.ga(L),oe);if(oe=this.M.oa(Z),oe=lt[oe],!oe)return P.call(this);oe=this.ba?oe.ka:oe.pointerType;var pe=Ke(Z,this.M,oe.M);return pe===null?P.call(this):this.ca?St(oe.M.W,{O:oe,N:pe,T:this,S:L}):St(oe.M.W,{O:oe,N:pe})},Vs=s.UnboundTypeError=me("UnboundTypeError");var Xn=typeof atob=="function"?atob:function(L){var P="",Z=0;L=L.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var oe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++)),pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++)),we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++)),Ue="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++));oe=oe<<2|pe>>4,pe=(pe&15)<<4|we>>2;var Le=(we&3)<<6|Ue;P+=String.fromCharCode(oe),we!==64&&(P+=String.fromCharCode(pe)),Ue!==64&&(P+=String.fromCharCode(Le))}while(ZUe.sa).concat(pe.map(Ue=>Ue.ya));wt([L],we,Ue=>{var Le={};return pe.forEach((We,ze)=>{var $e=Ue[ze],ft=We.qa,zt=We.ra,gn=Ue[ze+pe.length],Yt=We.xa,Ni=We.za;Le[We.na]={read:Ar=>$e.fromWireType(ft(zt,Ar)),write:(Ar,Ws)=>{var hr=[];Yt(Ni,Ar,gn.toWireType(hr,Ws)),tt(hr)}}}),[{name:P.name,fromWireType:function(We){var ze={},$e;for($e in Le)ze[$e]=Le[$e].read(We);return oe(We),ze},toWireType:function(We,ze){for(var $e in Le)if(!($e in ze))throw new TypeError('Missing field: "'+$e+'"');var ft=Z();for($e in Le)Le[$e].write(ft,ze[$e]);return We!==null&&We.push(oe,ft),ft},argPackAdvance:8,readValueFromPointer:xt,U:oe}]})},v:function(){},B:function(L,P,Z,oe,pe){var we=Xt(Z);P=ae(P),j(L,{name:P,fromWireType:function(Ue){return!!Ue},toWireType:function(Ue,Le){return Le?oe:pe},argPackAdvance:8,readValueFromPointer:function(Ue){if(Z===1)var Le=p;else if(Z===2)Le=I;else if(Z===4)Le=R;else throw new TypeError("Unknown boolean type size: "+P);return this.fromWireType(Le[Ue>>we])},U:null})},f:function(L,P,Z,oe,pe,we,Ue,Le,We,ze,$e,ft,zt){$e=ae($e),we=pi(pe,we),Le&&(Le=pi(Ue,Le)),ze&&(ze=pi(We,ze)),zt=pi(ft,zt);var gn=W($e);dt(gn,function(){cr("Cannot construct "+$e+" due to unbound types",[oe])}),wt([L,P,Z],oe?[oe]:[],function(Yt){if(Yt=Yt[0],oe)var Ni=Yt.M,Ar=Ni.W;else Ar=Fe.prototype;Yt=z(gn,function(){if(Object.getPrototypeOf(this)!==Ws)throw new Ie("Use 'new' to construct "+$e);if(hr.X===void 0)throw new Ie($e+" has no accessible constructor");var pd=hr.X[arguments.length];if(pd===void 0)throw new Ie("Tried to invoke ctor of "+$e+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(hr.X).toString()+") parameters instead!");return pd.apply(this,arguments)});var Ws=Object.create(Ar,{constructor:{value:Yt}});Yt.prototype=Ws;var hr=new Jt($e,Yt,Ws,zt,Ni,we,Le,ze);Ni=new dn($e,hr,!0,!1),Ar=new dn($e+"*",hr,!1,!1);var Qo=new dn($e+" const*",hr,!1,!0);return lt[L]={pointerType:Ar,ka:Qo},Zi(gn,Yt),[Ni,Ar,Qo]})},c:function(L,P,Z,oe,pe,we,Ue){var Le=wo(Z,oe);P=ae(P),we=pi(pe,we),wt([],[L],function(We){function ze(){cr("Cannot call "+$e+" due to unbound types",Le)}We=We[0];var $e=We.name+"."+P;P.startsWith("@@")&&(P=Symbol[P.substring(2)]);var ft=We.M.constructor;return ft[P]===void 0?(ze.Y=Z-1,ft[P]=ze):(rt(ft,P,$e),ft[P].R[Z-1]=ze),wt([],Le,function(zt){return zt=ms($e,[zt[0],null].concat(zt.slice(1)),null,we,Ue),ft[P].R===void 0?(zt.Y=Z-1,ft[P]=zt):ft[P].R[Z-1]=zt,[]}),[]})},o:function(L,P,Z,oe,pe,we){0{cr("Cannot construct "+Le.name+" due to unbound types",Ue)},wt([],Ue,function(ze){return ze.splice(1,0,null),Le.M.X[P-1]=ms(We,ze,null,pe,we),[]}),[]})},a:function(L,P,Z,oe,pe,we,Ue,Le){var We=wo(Z,oe);P=ae(P),we=pi(pe,we),wt([],[L],function(ze){function $e(){cr("Cannot call "+ft+" due to unbound types",We)}ze=ze[0];var ft=ze.name+"."+P;P.startsWith("@@")&&(P=Symbol[P.substring(2)]),Le&&ze.M.ia.push(P);var zt=ze.M.W,gn=zt[P];return gn===void 0||gn.R===void 0&&gn.className!==ze.name&&gn.Y===Z-2?($e.Y=Z-2,$e.className=ze.name,zt[P]=$e):(rt(zt,P,ft),zt[P].R[Z-2]=$e),wt([],We,function(Yt){return Yt=ms(ft,Yt,ze,we,Ue),zt[P].R===void 0?(Yt.Y=Z-2,zt[P]=Yt):zt[P].R[Z-2]=Yt,[]}),[]})},A:function(L,P){P=ae(P),j(L,{name:P,fromWireType:function(Z){var oe=Be(Z);return Mo(Z),oe},toWireType:function(Z,oe){return H(oe)},argPackAdvance:8,readValueFromPointer:xt,U:null})},m:function(L,P,Z){Z=Xt(Z),P=ae(P),j(L,{name:P,fromWireType:function(oe){return oe},toWireType:function(oe,pe){return pe},argPackAdvance:8,readValueFromPointer:Hu(P,Z),U:null})},d:function(L,P,Z,oe,pe){P=ae(P),pe===-1&&(pe=4294967295),pe=Xt(Z);var we=Le=>Le;if(oe===0){var Ue=32-8*Z;we=Le=>Le<>>Ue}Z=P.includes("unsigned")?function(Le,We){return We>>>0}:function(Le,We){return We},j(L,{name:P,fromWireType:we,toWireType:Z,argPackAdvance:8,readValueFromPointer:Vu(P,pe,oe!==0),U:null})},b:function(L,P,Z){function oe(we){we>>=2;var Ue=M;return new pe(y,Ue[we+1],Ue[we])}var pe=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][P];Z=ae(Z),j(L,{name:Z,fromWireType:oe,argPackAdvance:8,readValueFromPointer:oe},{ta:!0})},n:function(L,P){P=ae(P);var Z=P==="std::string";j(L,{name:P,fromWireType:function(oe){var pe=M[oe>>2],we=oe+4;if(Z)for(var Ue=we,Le=0;Le<=pe;++Le){var We=we+Le;if(Le==pe||C[We]==0){if(Ue=Ue?v(C,Ue,We-Ue):"",ze===void 0)var ze=Ue;else ze+="\0",ze+=Ue;Ue=We+1}}else{for(ze=Array(pe),Le=0;Le=We?Le++:2047>=We?Le+=2:55296<=We&&57343>=We?(Le+=4,++we):Le+=3}we=Le}else we=pe.length;if(Le=Ci(4+we+1),We=Le+4,M[Le>>2]=we,Z&&Ue){if(Ue=We,We=we+1,we=C,0=$e){var ft=pe.charCodeAt(++ze);$e=65536+(($e&1023)<<10)|ft&1023}if(127>=$e){if(Ue>=We)break;we[Ue++]=$e}else{if(2047>=$e){if(Ue+1>=We)break;we[Ue++]=192|$e>>6}else{if(65535>=$e){if(Ue+2>=We)break;we[Ue++]=224|$e>>12}else{if(Ue+3>=We)break;we[Ue++]=240|$e>>18,we[Ue++]=128|$e>>12&63}we[Ue++]=128|$e>>6&63}we[Ue++]=128|$e&63}}we[Ue]=0}}else if(Ue)for(Ue=0;UeB,Le=1;else P===4&&(oe=Se,pe=ve,we=Ze,Ue=()=>M,Le=2);j(L,{name:Z,fromWireType:function(We){for(var ze=M[We>>2],$e=Ue(),ft,zt=We+4,gn=0;gn<=ze;++gn){var Yt=We+4+gn*P;(gn==ze||$e[Yt>>Le]==0)&&(zt=oe(zt,Yt-zt),ft===void 0?ft=zt:(ft+="\0",ft+=zt),zt=Yt+P)}return It(We),ft},toWireType:function(We,ze){typeof ze!="string"&&re("Cannot pass non-string to C++ string type "+Z);var $e=we(ze),ft=Ci(4+$e+P);return M[ft>>2]=$e>>Le,pe(ze,ft+4,$e+P),We!==null&&We.push(It,ft),ft},argPackAdvance:8,readValueFromPointer:xt,U:function(We){It(We)}})},k:function(L,P,Z,oe,pe,we){at[L]={name:ae(P),ea:pi(Z,oe),V:pi(pe,we),ha:[]}},h:function(L,P,Z,oe,pe,we,Ue,Le,We,ze){at[L].ha.push({na:ae(P),sa:Z,qa:pi(oe,pe),ra:we,ya:Ue,xa:pi(Le,We),za:ze})},C:function(L,P){P=ae(P),j(L,{ua:!0,name:P,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(L,P,Z,oe,pe){L=gt[L],P=Be(P),Z=mt(Z);var we=[];return M[oe>>2]=H(we),L(P,Z,we,pe)},t:function(L,P,Z,oe){L=gt[L],P=Be(P),Z=mt(Z),L(P,Z,null,oe)},g:Mo,l:function(L,P){var Z=Bt(L,P),oe=Z[0];P=oe.name+"_$"+Z.slice(1).map(function(Ue){return Ue.name}).join("_")+"$";var pe=_t[P];if(pe!==void 0)return pe;var we=Array(L-1);return pe=Mt((Ue,Le,We,ze)=>{for(var $e=0,ft=0;ft>>=0,2147483648=Z;Z*=2){var oe=P*(1+.2/Z);oe=Math.min(oe,L+100663296);var pe=Math;oe=Math.max(L,oe),pe=pe.min.call(pe,2147483648,oe+(65536-oe%65536)%65536);e:{try{g.grow(pe-y.byteLength+65535>>>16),K();var we=1;break e}catch{}we=void 0}if(we)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(L,P,Z,oe){for(var pe=0,we=0;we>2],Le=M[P+4>>2];P+=8;for(var We=0;We>2]=pe,0}};(function(){function L(pe){s.asm=pe.exports,g=s.asm.D,K(),w=s.asm.I,q.unshift(s.asm.E),ce--,s.monitorRunDependencies&&s.monitorRunDependencies(ce),ce==0&&se&&(pe=se,se=null,pe())}function P(pe){L(pe.instance)}function Z(pe){return Ce().then(function(we){return WebAssembly.instantiate(we,oe)}).then(function(we){return we}).then(pe,function(we){d("failed to asynchronously prepare wasm: "+we),de(we)})}var oe={a:yt};if(ce++,s.monitorRunDependencies&&s.monitorRunDependencies(ce),s.instantiateWasm)try{return s.instantiateWasm(oe,L)}catch(pe){d("Module.instantiateWasm callback failed with error: "+pe),a(pe)}return function(){return f||typeof WebAssembly.instantiateStreaming!="function"||F(ee)||typeof fetch!="function"?Z(P):fetch(ee,{credentials:"same-origin"}).then(function(pe){return WebAssembly.instantiateStreaming(pe,oe).then(P,function(we){return d("wasm streaming compile failed: "+we),d("falling back to ArrayBuffer instantiation"),Z(P)})})}().catch(a),{}})(),s.___wasm_call_ctors=function(){return(s.___wasm_call_ctors=s.asm.E).apply(null,arguments)};var et=s.___getTypeName=function(){return(et=s.___getTypeName=s.asm.F).apply(null,arguments)};s.__embind_initialize_bindings=function(){return(s.__embind_initialize_bindings=s.asm.G).apply(null,arguments)};var Ci=s._malloc=function(){return(Ci=s._malloc=s.asm.H).apply(null,arguments)},It=s._free=function(){return(It=s._free=s.asm.J).apply(null,arguments)};s.dynCall_jiji=function(){return(s.dynCall_jiji=s.asm.K).apply(null,arguments)};var fn;se=function L(){fn||ur(),fn||(se=L)};function ur(){function L(){if(!fn&&(fn=!0,s.calledRun=!0,!E)){if(Oe(q),o(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;){var P=s.postRun.shift();ge.unshift(P)}Oe(ge)}}if(!(0un(n),e);Y.useEffect(()=>t,[t])}let sy;function Dz(){if(sy==null){const n=sy=hn(void 0);Oi.loadYoga().then(e=>n.value=e)}return sy}function OT(n,e,...t){const i=Y.useMemo(()=>hn(void 0),[]);return Y.useEffect(()=>{if(!(e instanceof Wn)){let r=!1;return n(e,...t).then(s=>r?void 0:i.value=s),()=>r=!0}return un(()=>{let r=!1;return n(e.value,...t).then(s=>r?void 0:i.value=s).catch(console.error),()=>r=!0})},[e,...t]),i}function GT(n,e,t,i,r){const[s,o]=n.value,[a,l,A,h]=e.value,[d,f,g,E]=t.value,v=a+d,y=l+f,p=A+g,C=h+E,I=s-C-y,B=o-v-p,R=I/B;let M=1;return R>r?M=B*i:M=I*i/r,[(C-y)*.5*i,(p-v)*.5*i,M]}const tw=new Je;function Cv(n,e,t,i=0){const r=e*n.itemSize+i;n.addUpdateRange(r,3),Array.isArray(t)?n.set(t,r):(tw.set(t),tw.toArray(n.array,r)),n.needsUpdate=!0}function vv(n){return n instanceof Wn?n.value:n}const zT=Y.createContext(null);function ql(){return Y.useContext(zT)}const bz=zT.Provider;function ta(n){const e=new Map;return(t,i)=>{const r=t.length;for(const s in i){const o=i[s];if(o===void 0)return;let a=e.get(o);a==null&&e.set(o,a=hi(()=>n()?vv(o):void 0));for(let l=0;l"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),HT=hn((Eu==null?void 0:Eu.matches)??!1);Eu==null||Eu.addEventListener("change",n=>HT.value=n.matches);const Nz=hn("system"),Lz=hi(()=>{switch(Nz.value){case"system":return HT.value;case"dark":return!0;case"light":return!1}}),Pz=ta(()=>Lz.value);function La(n,e){ad(e,t=>{const i=t.dark;i!=null&&Pz(n,i)})}const Uz=Math.cos(45/180*Math.PI),oy=[new rn,new rn,new rn,new rn],nw=new G;class Fz{constructor(e,t,i,r,s){Ne(this,"planes");Ne(this,"facePlane");Ne(this,"originalCenter");this.originalCenter=new G(t,i,0).applyMatrix4(e),this.facePlane=new rn(new G(0,0,1),0).applyMatrix4(e);const o=r/2,a=s/2,l=i+a,A=t+o,h=-i+a,d=-t+o;this.planes=[new rn(new G(0,-1,0),h).applyMatrix4(e),new rn(new G(-1,0,0),d).applyMatrix4(e),new rn(new G(0,1,0),l).applyMatrix4(e),new rn(new G(1,0,0),A).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const s=this.facePlane,o=e[r],a=s.normal.dot(o.normal);if(Math.abs(a)>.99)return this;const l=oy[r];if(Math.abs(a)<.01){l.copy(o);continue}l.normal.crossVectors(s.normal,o.normal).normalize().cross(s.normal).negate();const A=1-a*a,h=(s.constant-o.constant*a)/A,d=(o.constant-s.constant*a)/A;nw.copy(s.normal).multiplyScalar(h).addScaledVector(o.normal,d),l.constant=-nw.dot(l.normal)}let t=0;const i=this.planes[0].normal;for(;oy[t].normal.dot(i)>Uz;)break;for(let r=0;r<4;r++){const s=this.planes[r],o=(r+t)%4;oy[o].distanceToPoint(this.originalCenter)hi(()=>{const r=e.value,s=n==null?void 0:n.value;if(s==null||r==null)return!1;const[o,a]=t.value;for(let h=0;h<4;h++){const[d,f]=Gz[h];iw[h].set(d*i.pixelSize*o,f*i.pixelSize*a,0).applyMatrix4(r)}const{planes:l}=s;let A;for(let h=0;h<4;h++){const d=l[h];A=!0;for(let f=0;f<4;f++){const g=iw[f];d.distanceToPoint(g)>=0&&(A=!1)}if(A)return!0}return!1}),[e,n,i,t])}function zz(n,e,t,i,r,s){return Y.useMemo(()=>hi(()=>{const o=n.value;if(o==null||i.value===Oi.Overflow.Visible)return s==null?void 0:s.value;const[a,l]=e.value,[A,h,d,f]=t.value,g=new Fz(o,(h-f)*r.pixelSize/2,(A-d)*r.pixelSize/2,(a-f-h)*r.pixelSize,(l-A-d)*r.pixelSize);return(s==null?void 0:s.value)!=null&&g.min(s.value),g}),[n,e,t,r,i,s])}const Iv=new rn(new G(-1,0,0),Number.MAX_SAFE_INTEGER),Lg=new Float32Array(16);for(let n=0;n<4;n++)Iv.normal.toArray(Lg,n*4),Lg[n*4+3]=Iv.constant;function ld(n,e){const t=Y.useMemo(()=>[new rn,new rn,new rn,new rn],[]);return qr(()=>{var s;const i=e.current;if(i==null)return;const r=(s=n==null?void 0:n.value)==null?void 0:s.planes;if(r==null){for(let o=0;o<4;o++)t[o].copy(Iv);return}for(let o=0;o<4;o++)t[o].copy(r[o]).applyMatrix4(i.matrixWorld)}),t}class Hz{constructor(e,t){Ne(this,"glyphInfoMap",new Map);Ne(this,"kerningMap",new Map);Ne(this,"questionmarkGlyphInfo");Ne(this,"pageWidth");Ne(this,"pageHeight");Ne(this,"distanceRange");this.page=t;const{scaleW:i,scaleH:r,lineHeight:s}=e.common;this.pageWidth=i,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const l of e.chars)l.uvX=l.x/i,l.uvY=l.y/r,l.uvWidth=l.width/i,l.uvHeight=l.height/r,l.width/=o,l.height/=o,l.xadvance/=o,l.xoffset/=o,l.yoffset-=s-o,l.yoffset/=o,this.glyphInfoMap.set(l.char,l);for(const{first:l,second:A,amount:h}of e.kernings)this.kerningMap.set(`${l}/${A}`,h/o);const a=this.glyphInfoMap.get("?");if(a==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=a}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` -`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,t){return this.kerningMap.get(`${e}/${t}`)??0}}function Vz(n,e,t){e[t+0]=n.uvX,e[t+1]=n.uvY+n.uvHeight,e[t+2]=n.uvWidth,e[t+3]=-n.uvHeight}const rw=new ut,Wz=new ut;class Yz{constructor(e,t,i,r,s){Ne(this,"index");Ne(this,"hidden",!0);Ne(this,"glyphInfo");Ne(this,"x",0);Ne(this,"y",0);Ne(this,"fontSize",0);this.group=e,this.baseMatrix=t,this.color=i,this.opacity=r,this.clippingRect=s}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const t=this.index*16,{instanceClipping:i}=this.group;this.clippingRect==null?i.set(Lg,t):this.clippingRect.toArray(i.array,t),i.addUpdateRange(t,16),i.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&Cv(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:t}=this.group,i=this.index*4+3;t.array[i]=e,t.addUpdateRange(i,1),t.needsUpdate=!0}updateGlyphAndTransformation(e,t,i,r){this.glyphInfo===e&&this.x===t&&this.y===i&&this.fontSize===r||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=t,this.y=i,this.fontSize=r,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:t}=this.group;Vz(this.glyphInfo,t.array,e),t.addUpdateRange(e,4),t.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:t}=this.group;t.addUpdateRange(e,16),rw.makeTranslation(this.x,this.y,0).multiply(Wz.makeScale(this.fontSize*this.glyphInfo.width,this.fontSize*this.glyphInfo.height,1)).premultiply(this.baseMatrix),rw.toArray(t.array,e),t.needsUpdate=!0}}function Xz(n,e,t,i){return((i==null?0:n.getKerning(i,t.id))+t.xoffset)*e}function Jz(n,e,t){return(t.yoffset+(e-1)/2)*n}function Dm(n,e,t){return e.xadvance*n+t}function jz(n,e){return n*e}function xv(n,{lineHeight:e,fontSize:t}){return Math.max(n,1)*t*e}class Kz{constructor(e,t,i,r,s,o,a){Ne(this,"glyphLines",[]);Ne(this,"unsubscribe");Ne(this,"unsubscribeList",[]);Ne(this,"opacity",1);Ne(this,"color",16777215);this.group=e,this.getAlignmentProperties=t,this.getAppearanceProperties=i,this.layout=r,this.matrix=s,this.parentClippingRect=a,this.unsubscribe=un(()=>{const l=i.value;if(l==null||(o==null?void 0:o.value)===!0||(l("opacity")??1)<.01){this.hide();return}this.show()})}show(){this.unsubscribeList.length>0||(hl(this.glyphLines,e=>e.show()),this.unsubscribeList.push(un(()=>{const e=this.matrix.value;e!=null&&hl(this.glyphLines,t=>t.updateBaseMatrix(e))}),un(()=>{var t;const e=(t=this.parentClippingRect)==null?void 0:t.value;hl(this.glyphLines,i=>i.updateClippingRect(e))}),un(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.color=e("color")??16777215;hl(this.glyphLines,i=>i.updateColor(t))}),un(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.opacity=e("opacity")??1;hl(this.glyphLines,i=>i.updateOpacity(t))}),un(()=>{var v;const e=this.layout.value,t=this.getAlignmentProperties.value;if(e==null||t==null)return;const{text:i,font:r,lines:s,letterSpacing:o=0,fontSize:a=16,lineHeight:l=1.2,availableHeight:A,availableWidth:h}=e;let d=-A/2;switch(t("verticalAlign")){case"center":d+=(A-xv(e.lines.length,e))/2;break;case"bottom":d+=A-xv(e.lines.length,e);break}const f=t("horizontalAlign")??"left",g=s.length,E=this.group.pixelSize;for(let y=0;yy.hide(),g),this.glyphLines.length=g})))}hide(){const e=this.unsubscribeList.length;if(e!==0){for(let t=0;tt.hide())}}destroy(){this.hide(),this.glyphLines.length=0,this.unsubscribe()}}function hl(n,e,t=0){const i=n.length;for(let r=t;r{t.uniforms.fontPage={value:e.page},t.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},t.uniforms.distanceRange={value:e.distanceRange},t.uniforms.v_weight={value:.3},t.vertexShader=`attribute vec4 instanceUVOffset; - varying vec2 fontUv; - attribute vec4 instanceRGBA; - varying vec4 rgba; - attribute mat4 instanceClipping; - varying mat4 clipping; - varying vec3 localPosition; - `+t.vertexShader,t.vertexShader=t.vertexShader.replace("#include ",`#include - fontUv = instanceUVOffset.xy + uv * instanceUVOffset.zw; - rgba = instanceRGBA; - clipping = instanceClipping; - localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`),t.fragmentShader=`uniform sampler2D fontPage; - uniform vec2 pageSize; - uniform int distanceRange; - uniform float v_weight; - varying vec2 fontUv; - varying vec4 rgba; - varying mat4 clipping; - varying vec3 localPosition; - float median(float r, float g, float b) { - return max(min(r, g), min(max(r, g), b)); - } - float getDistance() { - vec3 msdf = texture(fontPage, fontUv).rgb; - return median(msdf.r, msdf.g, msdf.b); - } - `+t.fragmentShader,t.fragmentShader=t.fragmentShader.replace("#include ",` #include - vec4 plane; - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - for(int i = 0; i < 4; i++) { - plane = clipping[ i ]; - distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - - if ( clipOpacity == 0.0 ) discard; - } - vec2 dxdy = fwidth(fontUv) * pageSize; - float dist = getDistance() + min(float(v_weight), 0.5 - 1.0 / float(distanceRange)) - 0.5; - float multiplier = clamp(dist * float(distanceRange) / length(dxdy) + 0.5, 0.0, 1.0); - if(multiplier <= 0.5) { - discard; - } - diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); - diffuseColor *= rgba; - `)}}}const Bv=Symbol("camera-distance-key"),_v=Symbol("order-info-key");function $z(n,e){if(n.groupOrder!==e.groupOrder)return n.groupOrder-e.groupOrder;if(n.renderOrder!==e.renderOrder)return n.renderOrder-e.renderOrder;const t=n.object[Bv],i=e.object[Bv];return t==null||i==null?n.z!==e.z?e.z-n.z:n.id-e.id:t===i?tH(n.object[_v],e.object[_v]):i.current-t.current}function eH(n){n.setTransparentSort($z)}const Xi={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function tH(n,e){let t=n.majorIndex-e.majorIndex;return t!=0||(t=n.elementType-e.elementType,t!=0)?t:n.minorIndex-e.minorIndex}const WT=Y.createContext(null),nH=WT.Provider;function wr(n,e,t,i){const r=i??Y.useContext(WT),s=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return Y.useMemo(()=>{let a,l;return r==null?(a=0,l=0):n>r.elementType?(a=r.majorIndex,l=0):n!=r.elementType||!iH(t,r.instancedGroupDependencies)?(a=r.majorIndex+1,l=0):(a=r.majorIndex,l=r.minorIndex+1),s>0&&(a+=s,l=0),l+=o,{instancedGroupDependencies:t,elementType:n,majorIndex:a,minorIndex:l}},[s,o,r,n,t])}function iH(n,e){if(n===e)return!0;if(n==null||e==null)return!1;let t=0;for(const i in n){if(n[i]!=e[i])return!1;++t}return t===Object.keys(e).length}function $l(n,e,t){return n[Bv]=e,n[_v]=t,n}class rH extends Vr{constructor(t,i,r,s){super();Ne(this,"instanceMatrix");Ne(this,"instanceUV");Ne(this,"instanceRGBA");Ne(this,"instanceClipping");Ne(this,"glyphs",[]);Ne(this,"requestedGlyphs",[]);Ne(this,"holeIndicies",[]);Ne(this,"mesh");Ne(this,"material");Ne(this,"timeTillDecimate");this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.material=new Zz(t)}requestActivate(t){const i=this.holeIndicies.shift();if(i!=null){this.glyphs[i]=t,t.activate(i);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(t);return}const r=this.mesh.count;this.glyphs[r]=t,t.activate(r),this.mesh.count+=1}delete(t){if(t.index==null){const s=this.requestedGlyphs.indexOf(t);if(s===-1)return;this.requestedGlyphs.splice(s,1);return}const i=this.requestedGlyphs.shift();if(i!=null){i.activate(t.index),this.glyphs[t.index]=i,t.index=void 0;return}if(t.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,t.index=void 0;return}const r=t.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(t.index),this.glyphs[t.index]=void 0,t.index=void 0}onFrame(t){var a;const i=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(i===0){this.visible=!1;return}this.visible=!0;const r=((a=this.instanceMatrix)==null?void 0:a.count)??0;if(i0)&&i<=r)return;this.timeTillDecimate=void 0,this.resize(i);const s=this.mesh.count,o=this.requestedGlyphs.length;for(let l=0;lf-g);const A=this.holeIndicies.length;let h=0,d=0;for(;d0)for(let f=this.holeIndicies[0];f{for(const o of r)o(s);ay.set(n,s)}).catch(console.error)}async function aH(n,e){const t=await(await fetch(n)).json();if(t.pages.length!==1)throw new Error("only supporting exactly 1 page");const i=await sH.loadAsync(new URL(t.pages[0],n).href);return i.anisotropy=e.capabilities.getMaxAnisotropy(),i.flipY=!1,new Hz(t,i)}const lH=({text:n,fontSize:e,font:t,letterSpacing:i},r,s)=>{let o={start:s,end:s,whitespaces:0,width:0},a=s,l=0,A=0;for(;ar)break;l+=d,++a,h===" "?A+=1:(o.width=l,o.end=a,o.whitespaces=A)}return o},cH=({text:n,fontSize:e,font:t,letterSpacing:i},r,s)=>{let o={start:s,end:s,whitespaces:0,width:0},a=0,l=0,A=s;for(;A{let o={start:s,end:s,whitespaces:0,width:0},a=0,l=0,A=s;for(;A0&&a+d>r)break;if(++A,a+=d,h===" "){l+=1;continue}const f=n[A];f!=" "&&f!=` -`&&Anew Map,[]),r=Y.useCallback((s,o)=>{let a=i.get(o);a==null&&i.set(o,a=new Map);let l=a==null?void 0:a.get(s);return l==null&&(a.set(s,l=new rH(o,n,e,{majorIndex:s,elementType:Xi.Text,minorIndex:0})),t.add(l)),l},[n,e,t]);return qr((s,o)=>{for(const a of i.values())for(const l of a.values())l.onFrame(o)}),r}const pH=Y.createContext(null),gH={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},Sv={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},mH=["horizontalAlign","verticalAlign"],EH=["color","opacity"],yH=["fontSize","letterSpacing","lineHeight","wordBreak"];function CH(n,e,t,i,r,s,o){const a=Y.useContext(XT),l=IH(n),A=Y.useMemo(()=>hn(e),[]);A.value=e;const h=Y.useRef(void 0),d=_H(n,l,A,h),f=fs(n,mH),g=fs(n,EH),E=Y.useMemo(()=>hn(void 0),[]);return Y.useEffect(()=>i.addLayoutChangeListener(()=>{const v=h.current;if(v==null)return;const{size:y,paddingInset:p,borderInset:C}=i,[I,B]=y.value,[R,M,T,U]=p.value,[K,w,b,q]=C.value,ge=I-M-U-w-q,J=B-R-T-K-b;E.value=hH(v,ge,J)}),[i]),Di(()=>{const v=l.value;if(v==null)return;const y=new Kz(a(o.majorIndex,v),f,g,E,t,r,s);return()=>y.destroy()},[a,t,i,r,s,o.majorIndex]),d}const vH=["fontFamily","fontWeight"];function IH(n){const e=Y.useMemo(()=>hn(void 0),[]),t=Y.useContext(pH)??gH,i=fs(n,vH),r=Qm(({gl:s})=>s);return Di(()=>{const s=i.value;if(s==null)return;let o=s("fontWeight")??"normal";typeof o=="string"&&(o=Sv[o]);let a=s("fontFamily");a==null&&(a=Object.keys(t)[0]);const l=xH(t[a],o);let A=!1;return oH(l,r,h=>A?void 0:e.value=h),()=>A=!0},[t,r]),e}function xH(n,e){let t=1/0,i;for(const r in n){const s=Math.abs(e-BH(r));if(s===0)return n[r];shi(()=>{const o=e.value,a=r.value;if(o==null||a==null)return;const l=t.value,A=Array.isArray(l)?l.map(E=>vv(E)).join(""):vv(l),h=a("letterSpacing")??0,d=a("lineHeight")??1.2,f=a("fontSize")??16,g=a("wordBreak")??"break-word";return(E,v)=>{const y=v===Oi.MeasureMode.Undefined?void 0:E;return AH(i.current={font:o,fontSize:f,letterSpacing:h,lineHeight:d,text:A,wordBreak:g},y)}}),[e,r,i,t])}const Xc={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},JT=Object.keys(Xc),SH=JT.length,jT=Y.createContext(null),wH=jT.Provider;function Pa(n,e,t){const i=t??Y.useContext(jT),r=Y.useMemo(()=>({sm:ta(()=>i.value[0]>Xc.sm),md:ta(()=>i.value[0]>Xc.md),lg:ta(()=>i.value[0]>Xc.lg),xl:ta(()=>i.value[0]>Xc.xl),"2xl":ta(()=>i.value[0]>Xc["2xl"])}),[i]);ad(e,s=>{for(let o=0;oe.createChild(n),[n,e]);return Y.useEffect(()=>(e.addChild(t),()=>{e.removeChild(t),t.destroy()}),[e,t]),t}function QH(){let n=Y.useRef(void 0);return qr(()=>{if(n.current==null)return;const e=n.current;n.current=void 0,e.calculateLayout()}),Y.useCallback(e=>{n.current!=null||e.yogaNode==null||(n.current=e)},[])}const vx=KT.Provider,Ms=new rn,mp=new G,RH=[new rn().setFromNormalAndCoplanarPoint(new G(1,0,0),new G(-.5,0,0)),new rn().setFromNormalAndCoplanarPoint(new G(-1,0,0),new G(.5,0,0)),new rn().setFromNormalAndCoplanarPoint(new G(0,1,0),new G(0,-.5,0)),new rn().setFromNormalAndCoplanarPoint(new G(0,-1,0),new G(0,.5,0))];function qT(n){return(e,t)=>{const i=n.matrixWorld;if(Ms.constant=0,Ms.normal.set(0,0,1),Ms.applyMatrix4(i),Ms.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(Ms,mp)==null)return;const r=Ms.normal.clone();for(let s=0;s<4;s++){const o=RH[s];if(Ms.copy(o).applyMatrix4(i),Ms.distanceToPoint(mp)<0)return}t.push({distance:mp.distanceTo(e.ray.origin),object:n,point:mp.clone(),normal:r})}}function Ou(n,e,t,i,r){return(s,o)=>{var d;const a=t.current;if(a==null)return;const l=o.length;e.call(n,s,o);const A=(d=i==null?void 0:i.value)==null?void 0:d.planes,h=a.matrixWorld;e:for(let f=o.length-1;f>=l;f--){const g=o[f];if(g.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,A!=null){for(let E=0;E<4;E++)if(Ms.copy(A[E]).applyMatrix4(h),Ms.distanceToPoint(g.point)<0){o.splice(f,1);continue e}}}}}function ZT(n,e){for(;e>=n.length;){let t=0,i=0;if(n.length>0){const r=n[n.length-1];t+=r.offset+r.elements.length,i=Math.min(0,r.missingSpace),r.missingSpace-=i}n.push({add:[],missingSpace:i,offset:t,elements:[]})}}function TH(n,e,t){ZT(n,0);const i=n[n.length-1];i.missingSpace+=e-t}function DH(n,e,t,i){ZT(n,e);const r=n[e];return r.missingSpace+=1,r.missingSpace<=0?(i(t,r,r.elements.length),r.elements.push(t),!1):(r.add.push(t),!0)}function bH(n,e,t,i,r,s,o,a){if(e>=n.length)throw new Error(`no bucket at index ${e}`);const l=n[e];l.missingSpace-=1;const A=l.add.indexOf(t);if(A!=-1)return l.add.splice(A,1),!1;if(i==null||i>=l.elements.length)throw new Error(`no element at index ${i}`);if(l.add.length>0){const g=l.add.shift();return l.elements[i]=g,r(g,l,i),!1}const h=l.offset,d=l.elements.length-1;if(d!=i){const g=h+d,E=h+i;a(E,g,g+1);const v=l.elements[d];l.elements[i]=v,o(v,i)}if(s(h+d),l.elements.length-=1,e0;){const g=n[e-1];g.missingSpace+=f.missingSpace,f=n[--e]}return n.length=e+1,!1}function NH(n,e,t){let i=n.length,r=-1;for(let o=0;o0&&(r=o);const l=o===i-1;if(!l&&a.missingSpace===0)continue;const A=a.missingSpace<0;for(let h=o-1;h>=0;h--){const d=n[h];if(d.missingSpace===0)continue;const f=d.missingSpace<0;if(f&&(l||A)){ow(n,t,h,o,Math.abs(d.missingSpace));continue}if(!A&&!f)continue;const g=Math.min(Math.abs(d.missingSpace),Math.abs(a.missingSpace));A?LH(n,t,h,o,g):ow(n,t,h,o,g)}}const s=n[r];for(let o=r+1;oh>0)&&(i==null||i>0),[a,l]=e.value;return!(a>0&&l>0&&(r==null||r>0)&&s!=null)&&!o?!1:t==null?!0:!t.value}function GA(n,e,t,i,r){n[e]=PH(n[e],t,bm(Math.ceil((i??0)/r*100),0,49))}const Ep=new Je,tD=new Je(-1,-1,-1),aw={backgroundColor:(n,e)=>(Array.isArray(e)?Ep.setRGB(...e):Ep.set(e??tD)).toArray(n,4),borderBottomLeftRadius:(n,e,t)=>GA(n,7,0,e,t.value[1]),borderBottomRightRadius:(n,e,t)=>GA(n,7,1,e,t.value[1]),borderTopRightRadius:(n,e,t)=>GA(n,7,2,e,t.value[1]),borderTopLeftRadius:(n,e,t)=>GA(n,7,3,e,t.value[1]),borderColor:(n,e)=>(Array.isArray(e)?Ep.setRGB(...e):Ep.set(e??16777215)).toArray(n,8),borderBend:(n,e)=>n[11]=e??0,borderOpacity:(n,e)=>n[12]=e??1,backgroundOpacity:(n,e)=>n[15]=e??-1},nD=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],UH=["borderOpacity","backgroundColor","backgroundOpacity"];class FH{constructor(e,t,i){Ne(this,"data",new Float32Array(16));Ne(this,"unsubscribeList",[]);Ne(this,"unsubscribe");Ne(this,"visible",!1);Ne(this,"materials",[]);Ne(this,"active",hn(!1));Ne(this,"getProperty",hn(void 0));this.size=e,this.size=e,this.unsubscribe=un(()=>{const r=this.getProperty.value,s=r!=null&&eD(t,e,i,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=s,!s){this.deactivate();return}this.activate(e,t)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return UH.includes(e)}hasImmediateProperty(e){return e in aw}setProperty(e,t){const i=aw[e];i(this.data,t,this.size)}activate(e,t){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(nD),this.unsubscribeList.push(un(()=>this.data.set(e.value,13)),un(()=>this.data.set(t.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let t=0;t{i.call(t,r,s),e.type==="normal"&&(r.uniforms.data={value:e.data}),GH(r,e.type==="instanced")},t}class rD extends cm{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),oD(e,this.info.type==="instanced")}}class sD extends lm{constructor(e){super({depthPacking:PI}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),oD(e,this.info.type==="instanced")}}const kH=new sD({type:"instanced"}),OH=new rD({type:"instanced"});function oD(n,e){aD(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",`#include - ${lD(e,void 0)} - `)}function aD(n,e){n.vertexShader=n.vertexShader.replace("#include ",` #include - out vec4 borderRadius; - ${e?"":"uniform highp mat4 data;"}`),n.vertexShader=n.vertexShader.replace("#include ",` #include - highp int packedBorderRadius = int(data[1].w); - borderRadius = vec4( - packedBorderRadius / 125000 % 50, - packedBorderRadius / 2500 % 50, - packedBorderRadius / 50 % 50, - packedBorderRadius % 50 - ) * vec4(0.5 / 50.0);`),e&&(n.vertexShader=n.vertexShader.replace("#include ",` #include - attribute highp mat4 aData; - attribute mat4 aClipping; - out mat4 data; - out mat4 clipping; - out vec3 localPosition;`),n.vertexShader=n.vertexShader.replace("#include ",` #include - data = aData; - clipping = aClipping; - localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`)),n.fragmentShader=`${e?"in":"uniform"} highp mat4 data; - in vec4 borderRadius; - ${e?` - in vec3 localPosition; - in mat4 clipping; - `:""} - - float min4 (vec4 v) { - return min(min(min(v.x,v.y),v.z),v.w); - } - float max4 (vec4 v) { - return max(max(max(v.x,v.y),v.z),v.w); - } - vec2 radiusDistance(float radius, vec2 outside, vec2 border, vec2 borderSize) { - vec2 outerRadiusXX = vec2(radius, radius); - vec2 innerRadiusXX = outerRadiusXX - borderSize; - vec2 radiusWeightUnnormalized = abs(innerRadiusXX - border); - vec2 radiusWeight = radiusWeightUnnormalized / vec2(radiusWeightUnnormalized.x + radiusWeightUnnormalized.y); - return vec2( - radius - distance(outside, outerRadiusXX), - dot(radiusWeight, innerRadiusXX) - distance(border, innerRadiusXX) - ); - } - `+n.fragmentShader,n.fragmentShader=n.fragmentShader.replace("#include ",` ${e?` - vec4 plane; - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - - for(int i = 0; i < 4; i++) { - plane = clipping[ i ]; - distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - - if ( clipOpacity < 0.01 ) discard; - } - `:""} - vec4 absoluteBorderSize = data[0]; - vec3 backgroundColor = data[1].xyz; - vec3 borderColor = data[2].xyz; - float borderBend = data[2].w; - float borderOpacity = data[3].x; - float width = data[3].y; - float height = data[3].z; - float backgroundOpacity = data[3].w; - float ratio = width / height; - vec4 relative = vec4(height, height, height, height); - vec4 borderSize = absoluteBorderSize / relative; - vec4 v_outsideDistance = vec4(1.0 - vUv.y, (1.0 - vUv.x) * ratio, vUv.y, vUv.x * ratio); - vec4 v_borderDistance = v_outsideDistance - borderSize; - - vec2 distance = vec2(min4(v_outsideDistance), min4(v_borderDistance)); - vec4 negateBorderDistance = vec4(1.0) - v_borderDistance; - float maxWeight = max4(negateBorderDistance); - vec4 borderWeight = step(maxWeight, negateBorderDistance); - - vec4 insideBorder; - - if(all(lessThan(v_outsideDistance.xw, borderRadius.xx))) { - distance = radiusDistance(borderRadius.x, v_outsideDistance.xw, v_borderDistance.xw, borderSize.xw); - - float tmp = borderRadius.x - borderSize.w; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.x - borderSize.x; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.yz = vec2(0.0); - insideBorder.xw = max(vec2(0.0), lineIntersection - v_borderDistance.xw); - - } else if(all(lessThan(v_outsideDistance.xy, borderRadius.yy))) { - distance = radiusDistance(borderRadius.y, v_outsideDistance.xy, v_borderDistance.xy, borderSize.xy); - - float tmp = borderRadius.y - borderSize.y; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.y - borderSize.x; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.zw = vec2(0.0); - insideBorder.xy = max(vec2(0.0), lineIntersection - v_borderDistance.xy); - - } else if(all(lessThan(v_outsideDistance.zy, borderRadius.zz))) { - distance = radiusDistance(borderRadius.z, v_outsideDistance.zy, v_borderDistance.zy, borderSize.zy); - - float tmp = borderRadius.z - borderSize.y; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.z - borderSize.z; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.xw = vec2(0.0); - insideBorder.zy =max(vec2(0.0), lineIntersection - v_borderDistance.zy); - - } else if(all(lessThan(v_outsideDistance.zw, borderRadius.ww))) { - distance = radiusDistance(borderRadius.w, v_outsideDistance.zw, v_borderDistance.zw, borderSize.zw); - - float tmp = borderRadius.w - borderSize.w; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.w - borderSize.z; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.xy = vec2(0.0); - insideBorder.zw = max(vec2(0.0), lineIntersection - v_borderDistance.zw); - - } - - if(insideBorder.x + insideBorder.y + insideBorder.z + insideBorder.w > 0.0) { - borderWeight = normalize(insideBorder); - } - - #include `)}function lD(n,e){return`float ddx = fwidth(distance.x); - float outer = smoothstep(-ddx, ddx, distance.x); - - float ddy = fwidth(distance.y); - float inner = smoothstep(-ddy, ddy, distance.y); - - float transition = 1.0 - step(0.1, outer - inner) * (1.0 - inner); - - if(backgroundColor.r < 0.0 && backgroundOpacity >= 0.0) { - backgroundColor = vec3(1.0); - } - if(backgroundOpacity < 0.0) { - backgroundOpacity = backgroundColor.r >= 0.0 ? 1.0 : 0.0; - } - - if(backgroundOpacity < 0.0) { - backgroundOpacity = 0.0; - } - - float outOpacity = ${n?"clipOpacity * ":""} outer * mix(borderOpacity, ${e==null?"":`${e} *`} backgroundOpacity, transition); - - if(outOpacity < 0.01) { - discard; - }`}function GH(n,e){aD(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",` #include - ${lD(e,"diffuseColor.a")} - diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); - diffuseColor.a = outOpacity; - `),n.fragmentShader=n.fragmentShader.replace("#include ",` #include - vec3 b = normalize(vBitangent); - vec3 t = normalize(vTangent); - mat4 directions = mat4(vec4(b, 1.0), vec4(t, 1.0), vec4(-b, 1.0), vec4(-t, 1.0)); - float currentBorderSize = distance.x - distance.y; - float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; - vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; - normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); - `)}class zH extends Zt{constructor(t,i,r){const s=$T();super(s);Ne(this,"count",0);Ne(this,"isInstancedMesh",!0);Ne(this,"instanceColor",null);Ne(this,"morphTexture",null);Ne(this,"boundingBox",new ii);Ne(this,"boundingSphere",new Zn);this.instanceMatrix=t,this.frustumCulled=!1,s.attributes.aData=i,s.attributes.aClipping=r,this.customDepthMaterial=kH,this.customDistanceMaterial=OH}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class HH extends Vr{constructor(t,i,r,s,o,a){super();Ne(this,"mesh");Ne(this,"instanceMatrix");Ne(this,"instanceData");Ne(this,"instanceClipping");Ne(this,"buckets",[]);Ne(this,"elementCount",0);Ne(this,"bufferElementSize",0);Ne(this,"timeToNextUpdate");Ne(this,"activateElement",(t,i,r)=>{const s=i.offset+r;this.instanceData.set(nD,16*s),this.instanceData.addUpdateRange(16*s,16),this.instanceData.needsUpdate=!0,t.activate(i,r)});Ne(this,"setElementIndex",(t,i)=>{t.setIndexInBucket(i)});Ne(this,"bufferCopyWithin",(t,i,r)=>{ly(this.instanceMatrix,t,i,r),ly(this.instanceData,t,i,r),ly(this.instanceClipping,t,i,r)});Ne(this,"clearBufferAt",t=>{const i=t*16;this.instanceMatrix.array.fill(0,i,i+16),this.instanceMatrix.addUpdateRange(i,16),this.instanceMatrix.needsUpdate=!0});this.material=t,this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.meshReceiveShadow=o,this.meshCastShadow=a}updateCount(){const t=this.buckets[this.buckets.length-1],i=t.offset+t.elements.length;this.mesh!=null&&(this.mesh.count=i),this.visible=i>0}insert(t,i){if(this.elementCount+=1,!DH(this.buckets,t,i,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(t,i,r){if(this.elementCount-=1,!bH(this.buckets,t,r,i,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(t){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=t,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(t){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,t)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),NH(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const t=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),TH(this.buckets,t,this.bufferElementSize);const i=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&i.set(this.instanceMatrix.array.subarray(0,i.length)),this.instanceMatrix=new xr(i,16,!1),this.instanceMatrix.setUsage(ra);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new xr(r,16,!1),this.instanceData.setUsage(ra);const s=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&s.set(this.instanceClipping.array.subarray(0,s.length)),this.instanceClipping=new xr(s,16,!1),this.instanceClipping.setUsage(ra),this.mesh=new zH(this.instanceMatrix,this.instanceData,this.instanceClipping),$l(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function ly(n,e,t,i){const r=n.itemSize,s=t*r,o=i*r,a=e*r;n.array.copyWithin(a,s,o);const l=o-s;n.addUpdateRange(s,l),n.addUpdateRange(a,l),n.needsUpdate=!0}const lw={backgroundColor:(n,e,t)=>Cv(n.instanceData,e,t??tD,4),borderBottomLeftRadius:(n,e,t,{value:i})=>Cp(n.instanceData,e,7,0,t,i[1]),borderBottomRightRadius:(n,e,t,{value:i})=>Cp(n.instanceData,e,7,1,t,i[1]),borderTopRightRadius:(n,e,t,{value:i})=>Cp(n.instanceData,e,7,2,t,i[1]),borderTopLeftRadius:(n,e,t,{value:i})=>Cp(n.instanceData,e,7,3,t,i[1]),borderColor:(n,e,t)=>Cv(n.instanceData,e,t??16777215,8),borderBend:(n,e,t)=>cy(n.instanceData,e,11,t??0),borderOpacity:(n,e,t)=>cy(n.instanceData,e,12,t??1),backgroundOpacity:(n,e,t)=>cy(n.instanceData,e,15,t??-1)},VH=["borderOpacity","backgroundColor","backgroundOpacity"],yp=new ut,WH=new ut;class YH{constructor(e,t,i,r,s,o,a,l){Ne(this,"indexInBucket");Ne(this,"bucket");Ne(this,"unsubscribeList",[]);Ne(this,"unsubscribeVisible");Ne(this,"destroyed",!1);Ne(this,"insertedIntoGroup",!1);Ne(this,"active",hn(!1));Ne(this,"getProperty",hn(void 0));this.group=e,this.matrix=t,this.size=i,this.offset=r,this.borderInset=s,this.clippingRect=o,this.minorIndex=l,this.unsubscribeVisible=un(()=>{const A=this.getProperty.value;if(A!=null&&eD(s,i,a,A("borderOpacity"),A("backgroundOpacity"),A("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return VH.includes(e)}hasImmediateProperty(e){return e in lw}setProperty(e,t){const i=this.getIndexInBuffer();i!=null&&lw[e](this.group,i,t,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,t){this.bucket=e,this.indexInBucket=t,this.active.value=!0,this.unsubscribeList.push(un(()=>{const i=this.matrix.value;if(i==null)return;const{instanceMatrix:r,pixelSize:s}=this.group,o=this.getIndexInBuffer();if(o==null)return;const a=o*16,[l,A]=this.size.value;if(yp.makeScale(l*s,A*s,1),this.offset!=null){const[h,d]=this.offset.value;yp.premultiply(WH.makeTranslation(h*s,d*s,0))}yp.premultiply(i),yp.toArray(r.array,a),r.addUpdateRange(a,16),r.needsUpdate=!0}),un(()=>{const[i,r]=this.size.value,{instanceData:s}=this.group,{array:o}=s,a=this.getIndexInBuffer();if(a==null)return;const l=a*16+13;o[l]=i,o[l+1]=r,s.addUpdateRange(l,2),s.needsUpdate=!0}),un(()=>{const{instanceData:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16+0;i.array.set(this.borderInset.value,s),i.addUpdateRange(s,4),i.needsUpdate=!0}),un(()=>{var a;const{instanceClipping:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16,o=(a=this.clippingRect)==null?void 0:a.value;o!=null?o.toArray(i.array,s):i.array.set(Lg,s),i.addUpdateRange(s,16),i.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let t=0;te.hasImmediateProperty.bind(e),[e]),a=Y.useCallback(l=>{if(!i.current){r.current=l;return}cw(l,r.current,s.current,e),r.current=l},[e]);Di(()=>{if(i.current=e.active.value,!i.current){uw(s.current),s.current={};return}return cw(r.current,XH,s.current,e),()=>{uw(s.current),s.current={}}},[e]),NT(n,o,a,t)}function cw(n,e,t,i){var r,s;for(const o in n){const a=n[o];if(o in e){const l=e[o];if(delete e[o],LT(a,l))continue;(r=t[o])==null||r.call(t)}t[o]=un(()=>{const l=pv(a);i.setProperty(o,l)})}for(const o in e)(s=t[o])==null||s.call(t),delete t[o],pv(e[o])!==void 0&&i.setProperty(o,void 0)}function uw(n){for(const e in n)n[e]()}function Ua({handlers:n,hoverHandlers:e,activeHandlers:t,matrix:i,children:r,groupRef:s}){return Y.useEffect(()=>{const o=s.current;if(o!=null)return un(()=>i.value!=null&&o.matrix.copy(i.value))},[s,i]),N.jsx("group",{ref:s,onPointerOut:QA(n.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:QA(n.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:QA(n.onPointerUp,t==null?void 0:t.onPointerUp),onPointerDown:QA(n.onPointerDown,t==null?void 0:t.onPointerDown),onPointerLeave:QA(n.onPointerLeave,t==null?void 0:t.onPointerLeave),onPointerMove:n.onPointerMove,onWheel:n.onWheel,onClick:n.onClick,onContextMenu:n.onContextMenu,onDoubleClick:n.onDoubleClick,onPointerCancel:n.onPointerCancel,onPointerEnter:n.onPointerEnter,onPointerMissed:n.onPointerMissed,matrixAutoUpdate:!1,children:r})}function QA(n,e){return n==null?e:e==null?n:t=>{e(t),!t.stopped&&n(t)}}function Gu(n,e,t,i){const r=So(),s=Y.useMemo(()=>{const o=new Zt(Ix);return o.matrixAutoUpdate=!1,o.raycast=Ou(o,qT(o),i,r,t),o.visible=!1,o},[r,t,i]);return Di(()=>{const[o,a]=n.value;s.scale.set(o*e.pixelSize,a*e.pixelSize,1),s.updateMatrix()},[n,e]),s}const cD=Y.createContext(null);function JH(n,e,t,i,r,s,o){const{materials:a,setter:l}=Y.useMemo(()=>{const A=new FH(e,t,i),h={data:A.data,type:"normal"},d=iD(r??lr,h),f=new sD(h),g=new rD(h);return d.clippingPlanes=s,f.clippingPlanes=s,g.clippingPlanes=s,{materials:[d,f,g],setter:A}},[e,t,i,r,s]);return Hs(n,l,o),yx(n,l,o),Y.useEffect(()=>()=>l.destroy(),[l]),a}function tc(n=lr,{castShadow:e=!1,receiveShadow:t=!1}){return Y.useMemo(()=>({materialClass:n,castShadow:e,receiveShadow:t}),[n,e,t])}function nc(n,e,t,i,r,s,o,a,l,A,h){const d=h??Y.useContext(cD),f=Y.useMemo(()=>new YH(d(o.majorIndex,l),e,t,i,r,a,s,o.minorIndex),[d,e,t,r,a,s,o,i,l]);Y.useEffect(()=>()=>f.destroy(),[f]),Hs(n,f,A),yx(n,f,A)}function jH(n,e,t){const i=Y.useMemo(()=>new Map,[]),r=Y.useCallback((s,{materialClass:o,receiveShadow:a,castShadow:l})=>{let A=i.get(o);A==null&&i.set(o,A=new Map);const h=(s<<2)+((a?1:0)<<1)+(l?1:0);let d=A.get(h);if(d==null){const f=iD(o,{type:"instanced"});A.set(h,d=new HH(f,n,e,{elementType:Xi.Panel,majorIndex:s,minorIndex:0},a,l)),t.add(d)}return d},[n,i,e,t]);return qr((s,o)=>{for(const a of i.values())for(const l of a.values())l.onFrame(o)}),r}const KH=cD.Provider,wv=[],tg=[];function qH(n,e){wv.push(n),tg.push(e),document.body.style.cursor=e}function Aw(n){const e=wv.indexOf(n);e!=-1&&(wv.splice(e,1),tg.splice(e,1),document.body.style.cursor=tg[tg.length-1]??"default")}function Fa(n,e){const t=Y.useMemo(()=>hn([]),[]),i=Y.useMemo(()=>ta(()=>t.value.length>0),[]);let r=!1;if(ad(e,s=>{s.hover!=null&&(r=!0,i(n,s.hover))}),Y.useEffect(()=>()=>Aw(t),[]),!r&&e.onHoverChange==null&&e.cursor==null){t.value.length=0;return}return{onPointerOver:s=>{t.value=[s.pointerId,...t.value],e.onHoverChange!=null&&t.value.length===1&&e.onHoverChange(!0),e.cursor!=null&&qH(t,e.cursor)},onPointerOut:s=>{t.value=t.value.filter(o=>o!=s.pointerId),e.onHoverChange!=null&&t.value.length===0&&e.onHoverChange(!1),Aw(t)}}}function Nm(n){return(e,t,i,r)=>{if(i(e)){r(e,t);return}const s=n[e];if(s==null)return;const o=s.length;if(i(s[0]))for(let a=0;ahn([0,0]),[])}function i5(n,e,t){return Y.useMemo(()=>hi(()=>{const i=t.value;if(i==null)return;const[r,s]=n.value,{pixelSize:o}=e;return new ut().makeTranslation(-r*o,s*o,0).premultiply(i)}),[n,e,t])}function r5({node:n,scrollPosition:e,children:t}){const i=Y.useRef(null);return Y.useEffect(()=>un(()=>{var a,l;const[r,s]=e.value,{pixelSize:o}=n;(a=i.current)==null||a.position.set(-r*o,s*o,0),(l=i.current)==null||l.updateMatrix()}),[n,e]),N.jsx("group",{ref:i,children:t})}function ud({listeners:n,node:e,scrollPosition:t,children:i}){const[r,s]=Y.useState(()=>e.scrollable.value.some(d=>d));Di(()=>s(e.scrollable.value.some(d=>d)),[e]);const o=Y.useRef(n.onScroll);o.current=n.onScroll;const a=Y.useMemo(()=>new Map,[]),l=Y.useMemo(()=>new _e,[]),A=Y.useCallback((d,f,g,E,v)=>{var b,q;const[y,p]=d==null?[!1,!1]:s5(d.nativeEvent);y&&(f=0),p&&(g=0);const[C,I]=t.value,[B,R]=e.maxScrollPosition.value;let[M,T]=t.value;const[U,K]=((b=e.anyAncestorScrollable)==null?void 0:b.value)??[!1,!1];M=hw(C,B,f,v&&!U),T=hw(I,R,g,v&&!K),E!=null&&E>0&&l.set(f,g).divideScalar(E),d!=null&&o5(d.nativeEvent,y||Math.min(C,(B??0)-C)>5,p||Math.min(I,(R??0)-I)>5),!(((q=o.current)==null?void 0:q.call(o,M,T,t,d))===!1||C===M&&I===T)&&(t.value=[M,T])},[e,t,l]);qr((d,f)=>{if(a.size>0)return;let g=0,E=0;const[v,y]=t.value,[p,C]=e.maxScrollPosition.value;g+=Mv(v,0,p??0)*-.3,E+=Mv(y,0,C??0)*-.3,g+=l.x*f,E+=l.y*f,l.multiplyScalar(.9),Math.abs(l.x)<.01&&(l.x=0),Math.abs(l.y)<.01&&(l.y=0),!(g===0&&E===0)&&A(void 0,g,E,void 0,!0)});const h=Y.useRef(null);return r?N.jsx("group",{ref:h,matrixAutoUpdate:!1,onPointerDown:d=>{let f=a.get(d.pointerId);f==null&&a.set(d.pointerId,f={timestamp:0,point:new G}),f.timestamp=performance.now()/1e3,h.current.worldToLocal(f.point.copy(d.point))},onPointerUp:d=>{a.delete(d.pointerId)},onPointerLeave:d=>{a.delete(d.pointerId)},onPointerCancel:d=>{a.delete(d.pointerId)},onContextMenu:d=>d.nativeEvent.preventDefault(),onPointerMove:d=>{const f=a.get(d.pointerId);if(f==null)return;h.current.worldToLocal(Ay.copy(d.point)),uy.copy(Ay).sub(f.point).divideScalar(e.pixelSize);const g=performance.now()/1e3,E=g-f.timestamp;f.point.copy(Ay),f.timestamp=g,!d.defaultPrevented&&A(d,-uy.x,uy.y,E,!0)},onWheel:d=>{d.defaultPrevented||A(d,d.deltaX,d.deltaY,void 0,!1)},children:i}):N.jsx("group",{matrixAutoUpdate:!1,children:i})}const AD=Symbol("was-scrolled");function s5(n){return n[AD]??[!1,!1]}function o5(n,e,t){n[AD]=[e,t]}function hw(n,e,t,i){if(t===0)return n;const r=Mv(n,0,e??0);dw(t)===dw(r)&&(t*=Math.max(0,1-Math.abs(r)/100));let s=n+t;return i&&e!=null?s:bm(s,0,e??0)}function dw(n){return n>=0}function Mv(n,e,t){return nt?n-t:0}const fw=9;function hD(n){return n[fw].toLowerCase()+n.slice(fw+1)}const a5=(n,e,t,i)=>{if(n.startsWith("scrollbarBorder")){if(n=hD(n),t(n)){i(n,e);return}ZH(n,e,t,i)}},l5=(n,e,t,i)=>{if(n.startsWith("scrollbar")){if(n==="scrollbarOpacity"){i("backgroundOpacity",e);return}if(n==="scrollbarColor"){i("backgroundColor",e);return}if(n=hD(n),t(n)){i(n,e);return}Oa(n,e,t,i)}};function Ad(n,e,t,i,r,s,o,a,l){const A=tc(s,{castShadow:!1,receiveShadow:!1}),h=wr(Xi.Panel,void 0,A,a),d=fs(n,c5),f=fs(n,u5,a5),g=Y.useMemo(()=>hi(()=>{const y=f.value;return[(y==null?void 0:y("scrollbarBorderTop"))??0,(y==null?void 0:y("scrollbarBorderRight"))??0,(y==null?void 0:y("scrollbarBorderBottom"))??0,(y==null?void 0:y("scrollbarBorderLeft"))??0]}),[f]),E=n.length;pw(n,0,e,t,i,r,s,o,h,l,d,g),pw(n,1,e,t,i,r,s,o,h,l,d,g);const v=n.length;for(let y=E;y{const v=hi(()=>{const y=h.value;if(y!=null)return A5(e,y("scrollbarWidth")??10,i.size.value,i.maxScrollPosition.value,i.borderInset.value,t.value)});return[hi(()=>{var y;return((y=v.value)==null?void 0:y.slice(0,2))??[0,0]}),hi(()=>{var y;return((y=v.value)==null?void 0:y.slice(2,4))??[0,0]})]},[e,i,t,h]),E=Y.useMemo(()=>({materialClass:o??lr,receiveShadow:!1,castShadow:!1}),[o]);nc(n,r,g,f,d,s,l,a,E,l5,A)}function A5(n,e,t,i,r,s){const o=[0,0,0,0],a=i[n];if(a==null)return o;const l=1-n,A=t[n]-r[l]-r[l+2],h=Math.max(e,A*A/(a+A)),d=A-h,f=s[n];return o[n]=t[n]*.5-h*.5-r[(n+3)%4]-d*bm(f/a,0,1),o[l]=t[l]*.5-e*.5-r[l+1],n===0&&(o[0]*=-1,o[1]*=-1),o[n+2]=h,o[l+2]=e,o}function Ga(n,e,t,i){Y.useImperativeHandle(n,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:t instanceof Zt?t:t.current,scrollPosition:i}),[t,e,i])}function za({onSizeChange:n},e){const t=Y.useMemo(()=>{if(n==null)return;let i=!0;return un(()=>{const r=e.value;if(i){i=!1;return}n(...r)})},[n,e]);Y.useEffect(()=>t,[t])}function ic({onIsInViewportChange:n},e){const t=Y.useMemo(()=>{if(n==null)return;let i=!0;return un(()=>{const r=!e.value;if(i){i=!1;return}n(r)})},[e,n]);Y.useEffect(()=>t,[t])}function rc(n){const e=Y.useContext(dD);return Y.useMemo(()=>hi(()=>{const t=n.value,i=e.value;if(!(t==null||i==null))return i.clone().multiply(t)}),[n,e])}const dD=Y.createContext(null),h5=dD.Provider;function hd({globalMatrix:n,node:e,scrollPosition:t,children:i,orderInfo:r}){const s=So(),o=zz(n,e.size,e.borderInset,e.overflow,e,s),a=i5(t,e,n);return N.jsx(r5,{node:e,scrollPosition:t,children:N.jsx(h5,{value:a,children:N.jsx(vx,{value:e,children:N.jsx(Oz,{value:o,children:N.jsx(nH,{value:r,children:i})})})})})}const fD="transformTranslateX",pD="transformTranslateY",gD="transformTranslateZ",mD="transformRotateX",ED="transformRotateY",yD="transformRotateZ",CD="transformScaleX",vD="transformScaleY",ID="transformScaleZ",d5=[fD,pD,gD,mD,ED,yD,CD,vD,ID],f5=new G,p5=new G,vp=new G,hy=new ut,g5=new Lu,m5=new Vn,dy=Math.PI/180;function E5([n,e,t]){return m5.setFromEuler(g5.set(n*dy,e*dy,t*dy))}function Ha(n,e){const t=fs(n,d5,n5);return Y.useMemo(()=>hi(()=>{const i=t.value;if(i==null)return;const{pixelSize:r,relativeCenter:s}=e,[o,a]=s.value,l=new ut().makeTranslation(o*r,a*r,0),A=i("transformOriginX")??"center",h=i("transformOriginY")??"center";let d=!0;if(A!="center"||h!="center"){const[v,y]=e.size.value;d=!1,vp.set(-FT[A]*v*r,-kT[h]*y*r,0),l.multiply(hy.makeTranslation(vp)),vp.negate()}const f=[i(mD)??0,i(ED)??0,i(yD)??0],g=[i(fD)??0,-(i(pD)??0),i(gD)??0],E=[i(CD)??1,i(vD)??1,i(ID)??1];return(g.some(v=>v!=0)||f.some(v=>v!=0)||E.some(v=>v!=1))&&l.multiply(hy.compose(f5.fromArray(g).multiplyScalar(r),E5(f),p5.fromArray(E))),d||l.multiply(hy.makeTranslation(vp)),l}),[t,e])}function Va(n,e){const t=Y.useMemo(()=>hn([]),[]),i=Y.useMemo(()=>ta(()=>t.value.length>0),[]);let r=!1;if(ad(e,o=>{o.active!=null&&(r=!0,i(n,o.active))}),!r&&e.onActiveChange==null){t.value.length=0;return}const s=o=>{t.value=t.value.filter(a=>a!=o.pointerId),!(e.onActiveChange==null||t.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{t.value=[o.pointerId,...t.value],!(e.onActiveChange==null||t.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:s,onPointerLeave:s}}Y.forwardRef((n,e)=>{const t=Da(),i=Y.useRef(null),r=ec(i);Hs(t,r,ka);const s=Ha(t,r),o=rc(s),a=So(),l=Zl(a,o,r.size,r);za(n,r.size),ic(n,l);const A=tc(n.panelMaterialClass,n),h=wr(Xi.Panel,n.zIndexOffset,A);nc(t,o,r.size,void 0,r.borderInset,l,h,a,A,Oa);const d=Y.useRef(null),f=ql(),g=wr(Xi.Object,void 0,void 0,h),E=v5(t,d,f,r.cameraDistance,a,g);Na(t,n),La(t,n),Pa(t,n);const v=Fa(t,n),y=Va(t,n),p=Y.useMemo(()=>hi(()=>{const[B,R]=E.value;return B/R}),[E]);(n.keepAspectRatio??!0)&&Fs(t,"aspectRatio",p),ba(t);const C=Y.useRef(null);Y.useEffect(()=>un(()=>{const[B,R]=r.size.value,[M,T,U,K]=r.paddingInset.value,[w,b,q,ge]=r.borderInset.value,J=M+w,ce=T+b,se=U+q,de=K+ge,F=B-de-ce,ee=R-J-se,{pixelSize:te}=r,{current:ue}=C;ue==null||ue.position.set((de-ce)*.5*te,(se-J)*.5*te,0);const[,Ce,Oe]=E.value;ue==null||ue.scale.set(F*te,ee*te,n.keepAspectRatio?ee*te*Oe/Ce:Oe),ue==null||ue.updateMatrix()}),[r,n.keepAspectRatio,E]);const I=Gu(r.size,r,h,f);return Ga(e,r,I),N.jsxs(Ua,{groupRef:i,matrix:s,handlers:n,hoverHandlers:v,activeHandlers:y,children:[N.jsx("primitive",{object:I}),N.jsx("group",{matrixAutoUpdate:!1,ref:C,children:N.jsx("group",{ref:d,matrixAutoUpdate:!1,children:N.jsx(vx,{value:void 0,children:n.children})})})]})});const fy=new ii,y5=new G().setScalar(.001),C5=["depthAlign"];function v5(n,e,t,i,r,s){const o=Y.useMemo(()=>hn(new G(1,1,1)),[]),a=ld(r,t),l=fs(n,C5);return Y.useEffect(()=>{const A=e.current;if(A==null)return;A.traverse(g=>{g instanceof Zt&&($l(g,i,s),g.material.clippingPlanes=a,g.material.needsUpdate=!0,g.raycast=Ou(g,g.raycast,t,r,s))});const h=A.parent;h==null||h.remove(A),fy.setFromObject(A);const d=new G,f=new G;return fy.getSize(d).max(y5),o.value=d,A.scale.set(1,1,1).divide(d),h!=null&&h.add(A),fy.getCenter(f),un(()=>{const g=l.value;g!=null&&(A.position.copy(f).negate(),A.position.z-=Tz[g("depthAlign")??"back"]*d.z,A.position.divide(d),A.updateMatrix())})},[l,i,a,t]),o}const Qt=Y.forwardRef((n,e)=>{const t=Da(),i=Y.useRef(null),r=ec(i);Hs(t,r,ka);const s=Ha(t,r),o=So(),a=rc(s),l=Zl(o,a,r.size,r),A=tc(n.panelMaterialClass,n),h=wr(Xi.Panel,n.zIndexOffset,A);nc(t,a,r.size,void 0,r.borderInset,l,h,o,A,Oa);const d=cd();Ad(t,d,r,a,l,n.scrollbarPanelMaterialClass,o,h),Na(t,n),La(t,n),Pa(t,n);const f=Fa(t,n),g=Va(t,n);ba(t),za(n,r.size),ic(n,l);const E=ql(),v=Gu(r.size,r,h,E);return Ga(e,r,v,d),N.jsxs(Ua,{groupRef:i,matrix:s,handlers:n,hoverHandlers:f,activeHandlers:g,children:[N.jsx(ud,{listeners:n,node:r,scrollPosition:d,children:N.jsx("primitive",{object:v})}),N.jsx(hd,{globalMatrix:a,node:r,orderInfo:h,scrollPosition:d,children:n.children})]})});Y.forwardRef((n,e)=>{const t=Da(),i=Y.useRef(null),r=ec(i);Hs(t,r,ka);const s=Ha(t,r),o=So(),a=ql(),l=ld(o,a),A=wr(Xi.Custom,n.zIndexOffset,void 0),h=Y.useRef(null),d=rc(s),f=Zl(o,d,r.size,r);Y.useEffect(()=>{const v=h.current;if(v==null)return;v.raycast=Ou(v,v.raycast,a,o,A),$l(v,r.cameraDistance,A),v.material instanceof di&&(v.material.clippingPlanes=l,v.material.needsUpdate=!0,v.material.shadowSide=jr);const y=un(()=>{const[C,I]=r.size.value;v.scale.set(C*r.pixelSize,I*r.pixelSize,1),v.updateMatrix()}),p=un(()=>void(v.visible=!f.value));return()=>{y(),p()}},[l,r,f,o,A,a]),Na(t,n),La(t,n),Pa(t,n);const g=Fa(t,n),E=Va(t,n);return ba(t),za(n,r.size),ic(n,f),Ga(e,r,h),N.jsx(Ua,{groupRef:i,matrix:s,handlers:n,hoverHandlers:g,activeHandlers:E,children:N.jsx("mesh",{receiveShadow:n.receiveShadow,castShadow:n.castShadow,customDepthMaterial:n.customDepthMaterial,customDistanceMaterial:n.customDistanceMaterial,ref:h,matrixAutoUpdate:!1,geometry:Ix,children:N.jsx(vx,{value:void 0,children:n.children})})})});const I5="fill",x5=(n,e,t,i)=>{if(n==="opacity"){i("backgroundOpacity",e);return}Oa(n,e,t,i)},B5=Y.forwardRef((n,e)=>{const t=Da(),i=OT(M5,n.src),r=Y.useMemo(()=>hi(()=>{const I=i.value;if(I==null)return;const B=I.source.data;return B.width/B.height}),[i]),s=Y.useRef(null),o=ec(s);Hs(t,o,ka),S5(t,i,o.borderInset,o.size);const a=Ha(t,o),l=So(),A=ql(),h=ld(l,A),d=rc(a),f=Zl(l,d,o.size,o),g=JH(t,o.size,o.borderInset,f,n.materialClass,h,x5),E=wr(Xi.Image,n.zIndexOffset,void 0),v=Y.useMemo(()=>{const[I,B,R]=g,M=new Zt(Ix,I);return M.matrixAutoUpdate=!1,M.castShadow=n.castShadow??!1,M.receiveShadow=n.receiveShadow??!1,M.customDepthMaterial=B,M.customDistanceMaterial=R,M.raycast=Ou(M,qT(M),A,l,E),$l(M,o.cameraDistance,E),M},[o,g,A,l,E,n.receiveShadow,n.castShadow]),y=cd();Ad(t,y,o,d,f,n.scrollbarPanelMaterialClass,l,E),Na(t,n),La(t,n),Pa(t,n);const p=Fa(t,n),C=Va(t,n);return Fs(t,"backgroundColor",16777215),(n.keepAspectRatio??!0)&&Fs(t,"aspectRatio",r),ba(t),za(n,o.size),ic(n,f),Di(()=>{const I=i.value??null;v.material.map!==I&&(v.material.map=I,v.material.needsUpdate=!0)},[v,i]),Di(()=>{const[I,B]=o.size.value;v.scale.set(I*o.pixelSize,B*o.pixelSize,1),v.updateMatrix()},[v]),Di(()=>void(v.visible=!f.value),[v,f]),Ga(e,o,v,y),N.jsxs(Ua,{groupRef:s,hoverHandlers:p,handlers:n,matrix:a,activeHandlers:C,children:[N.jsx(ud,{listeners:n,node:o,scrollPosition:y,children:N.jsx("primitive",{object:v})}),N.jsx(hd,{globalMatrix:d,node:o,orderInfo:E,scrollPosition:y,children:n.children})]})}),_5=["fit"];function S5(n,e,t,i){const r=fs(n,_5);Di(()=>{const s=r.value,o=e.value;if(o==null||s==null)return;const a=s("fit")??I5;if(o.matrix.identity(),a==="fill"||o==null){gw(t,i,o);return}const{width:l,height:A}=o.source.data,h=l/A,[d,f]=i.value,[g,E,v,y]=t.value,p=(d-y-E)/(f-g-v);h>p?o.matrix.translate(-(.5*(p-h))/p,0).scale(p/h,1):o.matrix.translate(0,-(.5*(h-p))/h).scale(1,h/p),gw(t,i,o)},[e,t,i])}function gw(n,e,t){const[i,r]=e.value,[s,o,a,l]=n.value,A=i-l-o,h=r-s-a;t.matrix.translate(-1+(l+A)/i,-1+(s+h)/r).scale(i/A,r/h)}const w5=new lx;async function M5(n){if(n==null)return Promise.resolve(void 0);if(n instanceof wn)return Promise.resolve(n);try{const e=await w5.loadAsync(n);return e.colorSpace=zn,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function ro(n,e,t){if(e==null)return t;const i=n[e];if(i==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(n).join(", ")}`);return i}function Cn(n,e,t){return typeof n=="number"?Math.round(n/e):n??t}const Q5={static:0,relative:1,absolute:2},py={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},R5={column:0,"column-reverse":1,row:2,"row-reverse":3},T5={"no-wrap":0,wrap:1,"wrap-reverse":2},D5={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},b5={visible:0,hidden:1,scroll:2},N5={flex:0,none:1},mw={positionType:(n,e,t)=>n.setPositionType(ro(Q5,t,0)),positionTop:(n,e,t)=>n.setPosition(1,Cn(t,e,NaN)),positionLeft:(n,e,t)=>n.setPosition(0,Cn(t,e,NaN)),positionRight:(n,e,t)=>n.setPosition(2,Cn(t,e,NaN)),positionBottom:(n,e,t)=>n.setPosition(3,Cn(t,e,NaN)),alignContent:(n,e,t)=>n.setAlignContent(ro(py,t,1)),alignItems:(n,e,t)=>n.setAlignItems(ro(py,t,4)),alignSelf:(n,e,t)=>n.setAlignSelf(ro(py,t,0)),flexDirection:(n,e,t)=>n.setFlexDirection(ro(R5,t,0)),flexWrap:(n,e,t)=>n.setFlexWrap(ro(T5,t,0)),justifyContent:(n,e,t)=>n.setJustifyContent(ro(D5,t,0)),marginTop:(n,e,t)=>n.setMargin(1,Cn(t,e,NaN)),marginLeft:(n,e,t)=>n.setMargin(0,Cn(t,e,NaN)),marginRight:(n,e,t)=>n.setMargin(2,Cn(t,e,NaN)),marginBottom:(n,e,t)=>n.setMargin(3,Cn(t,e,NaN)),flexBasis:(n,e,t)=>n.setFlexBasis(Cn(t,e,NaN)),flexGrow:(n,e,t)=>n.setFlexGrow(t??0),flexShrink:(n,e,t)=>n.setFlexShrink(t??0),width:(n,e,t)=>n.setWidth(Cn(t,e,NaN)),height:(n,e,t)=>n.setHeight(Cn(t,e,NaN)),minWidth:(n,e,t)=>n.setMinWidth(Cn(t,e,NaN)),minHeight:(n,e,t)=>n.setMinHeight(Cn(t,e,NaN)),maxWidth:(n,e,t)=>n.setMaxWidth(Cn(t,e,NaN)),maxHeight:(n,e,t)=>n.setMaxHeight(Cn(t,e,NaN)),aspectRatio:(n,e,t)=>n.setAspectRatio(t??NaN),borderTop:(n,e,t)=>n.setBorder(1,Cn(t,e,NaN)),borderLeft:(n,e,t)=>n.setBorder(0,Cn(t,e,NaN)),borderRight:(n,e,t)=>n.setBorder(2,Cn(t,e,NaN)),borderBottom:(n,e,t)=>n.setBorder(3,Cn(t,e,NaN)),overflow:(n,e,t)=>n.setOverflow(ro(b5,t,0)),display:(n,e,t)=>n.setDisplay(ro(N5,t,0)),paddingTop:(n,e,t)=>n.setPadding(1,Cn(t,e,NaN)),paddingLeft:(n,e,t)=>n.setPadding(0,Cn(t,e,NaN)),paddingRight:(n,e,t)=>n.setPadding(2,Cn(t,e,NaN)),paddingBottom:(n,e,t)=>n.setPadding(3,Cn(t,e,NaN)),gapRow:(n,e,t)=>n.setGap(1,Cn(t,e,NaN)),gapColumn:(n,e,t)=>n.setGap(0,Cn(t,e,NaN))};function L5(n,e){return n.L===e.L}function P5(n,e,t){if(t==null){n.setMeasureFunc(null);return}n.setMeasureFunc((i,r,s,o)=>{const a=t(i*e,r,s*e,o);return{width:Math.ceil(Math.ceil(a.width)/e),height:Math.ceil(Math.ceil(a.height)/e)}}),n.markDirty()}class xx{constructor(e,t,i,r,s,o,a){Ne(this,"size",hn([0,0]));Ne(this,"relativeCenter",hn([0,0]));Ne(this,"borderInset",hn([0,0,0,0]));Ne(this,"paddingInset",hn([0,0,0,0]));Ne(this,"overflow",hn(Oi.Overflow.Visible));Ne(this,"maxScrollPosition",hn([void 0,void 0]));Ne(this,"scrollable",hn([!1,!1]));Ne(this,"children",[]);Ne(this,"yogaNode");Ne(this,"unsubscribeYoga");Ne(this,"layoutChangeListeners",new Set);Ne(this,"requestCalculateLayout");Ne(this,"active",hn(!1));this.groupRef=e,this.cameraDistance=t,this.yoga=i,this.precision=r,this.pixelSize=s,this.anyAncestorScrollable=a,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=un(()=>{var l;i.value!=null&&((l=this.unsubscribeYoga)==null||l.call(this),this.unsubscribeYoga=void 0,this.yogaNode=i.value.Node.create(),this.active.value=!0)})}setProperty(e,t){e==="measureFunc"?P5(this.yogaNode,this.precision,t):mw[e](this.yogaNode,this.precision,t),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in mw}destroy(){var e,t;(e=this.unsubscribeYoga)==null||e.call(this),(t=this.yogaNode)==null||t.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),MT(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new xx(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,hi(()=>{var a;const[i,r]=((a=this.anyAncestorScrollable)==null?void 0:a.value)??[!1,!1],[s,o]=this.scrollable.value;return[i||s,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((a,l)=>{var g,E;if(e??(e=(E=(g=a.groupRef.current)==null?void 0:g.parent)==null?void 0:E.children),e==null)return 0;const A=a.groupRef.current,h=l.groupRef.current;if(A==null||h==null)return 0;const d=e.indexOf(A);if(d===-1)throw new Error("parent mismatch");const f=e.indexOf(h);if(f===-1)throw new Error("parent mismatch");return d-f});let t=0,i=this.yogaNode.getChild(t),r=this.children[t];for(;r!=null||i!=null;){if(r!=null&&i!=null&&L5(i,yw(r.yogaNode))){r=this.children[++t],i=this.yogaNode.getChild(t);continue}if(i!=null&&this.yogaNode.removeChild(i),r!=null){const a=yw(r.yogaNode);(o=a.getParent())==null||o.removeChild(a),this.yogaNode.insertChild(a,t),r=this.children[++t]}i=this.yogaNode.getChild(t)}const s=this.children.length;for(let a=0;a0,U>0)}else Gc(this.maxScrollPosition,void 0,void 0),Gc(this.scrollable,!1,!1);const B=this.overflow.value===Oi.Overflow.Visible;return[s+Math.max(i,B?C:0),o+Math.max(r,B?I:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function Gc(n,e,t){const[i,r]=n.value;i===e&&r===t||(n.value=[e,t])}function Ew(n,e,t,i,r){const[s,o,a,l]=n.value;s==e&&o==t&&a==i&&l==r||(n.value=[e,t,i,r])}function yw(n){if(n==null)throw new Error("commit cannot be called with a children that miss a yoga node");return n}const U5=.1,xD=.002,Ip=new rn,Cw=new G,F5=Y.forwardRef((n,e)=>{const t=Da(),i=Qm(U=>U.gl);Y.useEffect(()=>eH(i),[i]);const{sizeX:r,sizeY:s}=n,[o,a]=Y.useMemo(()=>[n.precision??U5,n.pixelSize??xD],[]),l=Dz(),A=Y.useMemo(()=>({current:0}),[]),h=Y.useRef(null),d=QH(),f=Y.useMemo(()=>new xx(h,A,l,o,a,d,void 0),[d,h,l]);Hs(t,f,ka),Y.useEffect(()=>()=>f.destroy(),[f]);const g=Ha(t,f),E=Y.useMemo(()=>{const U=new Vr;return U.matrixAutoUpdate=!1,U},[]),v=jH(a,f.cameraDistance,E),y=fH(a,f.cameraDistance,E),p=tc(n.panelMaterialClass,n),C=wr(Xi.Panel,void 0,p),I=O5(g,f.size,a,n),B=cd();Ad(t,B,f,I,void 0,n.scrollbarPanelMaterialClass,void 0,C,v),nc(t,I,f.size,void 0,f.borderInset,void 0,C,void 0,p,Oa,v),Na(t,n),La(t,n),Pa(t,n,f.size);const R=Fa(t,n),M=Va(t,n);Fs(t,"width",vw(r,a)),Fs(t,"height",vw(s,a)),ba(t),za(n,f.size);const T=Gu(f.size,f,C,h);return Ga(e,f,T,B),qr(({camera:U})=>{Ip.normal.set(0,0,1),Ip.constant=0,Ip.applyMatrix4(T.matrixWorld),Cw.setFromMatrixPosition(U.matrixWorld),A.current=Ip.distanceToPoint(Cw)}),N.jsxs(N.Fragment,{children:[N.jsx("primitive",{object:E}),N.jsx(Ua,{groupRef:h,matrix:I,handlers:n,hoverHandlers:R,activeHandlers:M,children:N.jsx(bz,{value:h,children:N.jsx(dH,{value:y,children:N.jsxs(KH,{value:v,children:[N.jsx(ud,{node:f,scrollPosition:B,listeners:n,children:N.jsx("primitive",{object:T})}),N.jsx(wH,{value:f.size,children:N.jsx(hd,{globalMatrix:I,node:f,orderInfo:C,scrollPosition:B,children:n.children})})]})})})})]})});function vw(n,e){return Y.useMemo(()=>n===void 0?void 0:n instanceof Wn?hi(()=>{const t=n.value;if(t!=null)return t/e}):n/e,[n,e])}const k5=new ut;function O5(n,e,t,{anchorX:i="center",anchorY:r="center"}){return Y.useMemo(()=>hi(()=>{var a;const[s,o]=e.value;return(a=n.value)==null?void 0:a.clone().premultiply(k5.makeTranslation(FT[i]*s*t,kT[r]*o*t,0))}),[n,e,i,r,t])}const G5=zn;class zu extends qi{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,i,r){const s=this,o=new Gs(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(a){try{t(s.parse(a))}catch(l){r?r(l):console.error(l),s.manager.itemError(e)}},i,r)}parse(e){const t=this;function i(W,z){if(W.nodeType!==1)return;const O=B(W);let k=!1,me=null;switch(W.nodeName){case"svg":z=E(W,z);break;case"style":s(W);break;case"g":z=E(W,z);break;case"path":z=E(W,z),W.hasAttribute("d")&&(me=r(W));break;case"rect":z=E(W,z),me=l(W);break;case"polygon":z=E(W,z),me=A(W);break;case"polyline":z=E(W,z),me=h(W);break;case"circle":z=E(W,z),me=d(W);break;case"ellipse":z=E(W,z),me=f(W);break;case"line":z=E(W,z),me=g(W);break;case"defs":k=!0;break;case"use":z=E(W,z);const Be=(W.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),H=W.viewportElement.getElementById(Be);H?i(H,z):console.warn("SVGLoader: 'use node' references non-existent node id: "+Be);break}me&&(z.fill!==void 0&&z.fill!=="none"&&me.color.setStyle(z.fill,G5),M(me,ue),q.push(me),me.userData={node:W,style:z});const Ie=W.childNodes;for(let re=0;re0?ue.copy(J[J.length-1]):ue.identity())}function r(W){const z=new jo,O=new _e,k=new _e,me=new _e;let Ie=!0,re=!1;const Be=W.getAttribute("d");if(Be===""||Be==="none")return null;const H=Be.match(/[a-df-z][^a-df-z]*/ig);for(let Ee=0,ne=H.length;Ee0&&(O.copy(me),z.currentPath.currentPoint.copy(O),Ie=!0);break;default:console.warn(ae)}re=!1}return z}function s(W){if(!(!W.sheet||!W.sheet.cssRules||!W.sheet.cssRules.length))for(let z=0;zme.trim());for(let me=0;mere!==""));ge[k[me]]=Object.assign(ge[k[me]]||{},Ie)}}}function o(W,z,O,k,me,Ie,re,Be){if(z==0||O==0){W.lineTo(Be.x,Be.y);return}k=k*Math.PI/180,z=Math.abs(z),O=Math.abs(O);const H=(re.x-Be.x)/2,Ee=(re.y-Be.y)/2,ne=Math.cos(k)*H+Math.sin(k)*Ee,ae=-Math.sin(k)*H+Math.cos(k)*Ee;let he=z*z,Te=O*O;const $=ne*ne,S=ae*ae,D=$/he+S/Te;if(D>1){const Pe=Math.sqrt(D);z=Pe*z,O=Pe*O,he=z*z,Te=O*O}const ie=he*S+Te*$,be=(he*Te-ie)/ie;let De=Math.sqrt(Math.max(0,be));me===Ie&&(De=-De);const Qe=De*z*ae/O,Xe=-De*O*ne/z,Ve=Math.cos(k)*Qe-Math.sin(k)*Xe+(re.x+Be.x)/2,Ke=Math.sin(k)*Qe+Math.cos(k)*Xe+(re.y+Be.y)/2,lt=a(1,0,(ne-Qe)/z,(ae-Xe)/O),vt=a((ne-Qe)/z,(ae-Xe)/O,(-ne-Qe)/z,(-ae-Xe)/O)%(Math.PI*2);W.currentPath.absellipse(Ve,Ke,z,O,lt,lt+vt,Ie===0,k)}function a(W,z,O,k){const me=W*O+z*k,Ie=Math.sqrt(W*W+z*z)*Math.sqrt(O*O+k*k);let re=Math.acos(Math.max(-1,Math.min(1,me/Ie)));return W*k-z*O<0&&(re=-re),re}function l(W){const z=I(W.getAttribute("x")||0),O=I(W.getAttribute("y")||0),k=I(W.getAttribute("rx")||W.getAttribute("ry")||0),me=I(W.getAttribute("ry")||W.getAttribute("rx")||0),Ie=I(W.getAttribute("width")),re=I(W.getAttribute("height")),Be=1-.551915024494,H=new jo;return H.moveTo(z+k,O),H.lineTo(z+Ie-k,O),(k!==0||me!==0)&&H.bezierCurveTo(z+Ie-k*Be,O,z+Ie,O+me*Be,z+Ie,O+me),H.lineTo(z+Ie,O+re-me),(k!==0||me!==0)&&H.bezierCurveTo(z+Ie,O+re-me*Be,z+Ie-k*Be,O+re,z+Ie-k,O+re),H.lineTo(z+k,O+re),(k!==0||me!==0)&&H.bezierCurveTo(z+k*Be,O+re,z,O+re-me*Be,z,O+re-me),H.lineTo(z,O+me),(k!==0||me!==0)&&H.bezierCurveTo(z,O+me*Be,z+k*Be,O,z+k,O),H}function A(W){function z(Ie,re,Be){const H=I(re),Ee=I(Be);me===0?k.moveTo(H,Ee):k.lineTo(H,Ee),me++}const O=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,k=new jo;let me=0;return W.getAttribute("points").replace(O,z),k.currentPath.autoClose=!0,k}function h(W){function z(Ie,re,Be){const H=I(re),Ee=I(Be);me===0?k.moveTo(H,Ee):k.lineTo(H,Ee),me++}const O=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,k=new jo;let me=0;return W.getAttribute("points").replace(O,z),k.currentPath.autoClose=!1,k}function d(W){const z=I(W.getAttribute("cx")||0),O=I(W.getAttribute("cy")||0),k=I(W.getAttribute("r")||0),me=new ga;me.absarc(z,O,k,0,Math.PI*2);const Ie=new jo;return Ie.subPaths.push(me),Ie}function f(W){const z=I(W.getAttribute("cx")||0),O=I(W.getAttribute("cy")||0),k=I(W.getAttribute("rx")||0),me=I(W.getAttribute("ry")||0),Ie=new ga;Ie.absellipse(z,O,k,me,0,Math.PI*2);const re=new jo;return re.subPaths.push(Ie),re}function g(W){const z=I(W.getAttribute("x1")||0),O=I(W.getAttribute("y1")||0),k=I(W.getAttribute("x2")||0),me=I(W.getAttribute("y2")||0),Ie=new jo;return Ie.moveTo(z,O),Ie.lineTo(k,me),Ie.currentPath.autoClose=!1,Ie}function E(W,z){z=Object.assign({},z);let O={};if(W.hasAttribute("class")){const re=W.getAttribute("class").split(/\s/).filter(Boolean).map(Be=>Be.trim());for(let Be=0;Be0&&z.premultiply(J[J.length-1]),ue.copy(z),J.push(z),z}function R(W){const z=new Rt,O=ce;if(W.nodeName==="use"&&(W.hasAttribute("x")||W.hasAttribute("y"))){const k=I(W.getAttribute("x")),me=I(W.getAttribute("y"));z.translate(k,me)}if(W.hasAttribute("transform")){const k=W.getAttribute("transform").split(")");for(let me=k.length-1;me>=0;me--){const Ie=k[me].trim();if(Ie==="")continue;const re=Ie.indexOf("("),Be=Ie.length;if(re>0&&re=1){const ne=Ee[0];let ae=0;Ee.length>=2&&(ae=Ee[1]),O.translate(ne,ae)}break;case"rotate":if(Ee.length>=1){let ne=0,ae=0,he=0;ne=Ee[0]*Math.PI/180,Ee.length>=3&&(ae=Ee[1],he=Ee[2]),se.makeTranslation(-ae,-he),de.makeRotation(ne),F.multiplyMatrices(de,se),se.makeTranslation(ae,he),O.multiplyMatrices(se,F)}break;case"scale":if(Ee.length>=1){const ne=Ee[0];let ae=ne;Ee.length>=2&&(ae=Ee[1]),O.scale(ne,ae)}break;case"skewX":Ee.length===1&&O.set(1,Math.tan(Ee[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":Ee.length===1&&O.set(1,0,0,Math.tan(Ee[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":Ee.length===6&&O.set(Ee[0],Ee[2],Ee[4],Ee[1],Ee[3],Ee[5],0,0,1);break}}z.premultiply(O)}}return z}function M(W,z){function O(re){te.set(re.x,re.y,1).applyMatrix3(z),re.set(te.x,te.y)}function k(re){const Be=re.xRadius,H=re.yRadius,Ee=Math.cos(re.aRotation),ne=Math.sin(re.aRotation),ae=new G(Be*Ee,Be*ne,0),he=new G(-H*ne,H*Ee,0),Te=ae.applyMatrix3(z),$=he.applyMatrix3(z),S=ce.set(Te.x,$.x,0,Te.y,$.y,0,0,0,1),D=se.copy(S).invert(),De=de.copy(D).transpose().multiply(D).elements,Qe=b(De[0],De[1],De[4]),Xe=Math.sqrt(Qe.rt1),Ve=Math.sqrt(Qe.rt2);if(re.xRadius=1/Xe,re.yRadius=1/Ve,re.aRotation=Math.atan2(Qe.sn,Qe.cs),!((re.aEndAngle-re.aStartAngle)%(2*Math.PI){const{x:pt,y:at}=new G(Math.cos(St),Math.sin(St),0).applyMatrix3(Pe);return Math.atan2(at,pt)};re.aStartAngle=Lt(re.aStartAngle),re.aEndAngle=Lt(re.aEndAngle),T(z)&&(re.aClockwise=!re.aClockwise)}}function me(re){const Be=K(z),H=w(z);re.xRadius*=Be,re.yRadius*=H;const Ee=Be>Number.EPSILON?Math.atan2(z.elements[1],z.elements[0]):Math.atan2(-z.elements[3],z.elements[4]);re.aRotation+=Ee,T(z)&&(re.aStartAngle*=-1,re.aEndAngle*=-1,re.aClockwise=!re.aClockwise)}const Ie=W.subPaths;for(let re=0,Be=Ie.length;reNumber.EPSILON}function K(W){const z=W.elements;return Math.sqrt(z[0]*z[0]+z[1]*z[1])}function w(W){const z=W.elements;return Math.sqrt(z[3]*z[3]+z[4]*z[4])}function b(W,z,O){let k,me,Ie,re,Be;const H=W+O,Ee=W-O,ne=Math.sqrt(Ee*Ee+4*z*z);return H>0?(k=.5*(H+ne),Be=1/k,me=W*Be*O-z*Be*z):H<0?me=.5*(H-ne):(k=.5*ne,me=-.5*ne),Ee>0?Ie=Ee+ne:Ie=Ee-ne,Math.abs(Ie)>2*Math.abs(z)?(Be=-2*z/Ie,re=1/Math.sqrt(1+Be*Be),Ie=Be*re):Math.abs(z)===0?(Ie=1,re=0):(Be=-.5*Ie/z,Ie=1/Math.sqrt(1+Be*Be),re=Be*Ie),Ee>0&&(Be=Ie,Ie=-re,re=Be),{rt1:k,rt2:me,cs:Ie,sn:re}}const q=[],ge={},J=[],ce=new Rt,se=new Rt,de=new Rt,F=new Rt,ee=new _e,te=new G,ue=new Rt,Ce=new DOMParser().parseFromString(e,"image/svg+xml");return i(Ce.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:q,xml:Ce.documentElement}}static createShapes(e){const i={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:i.ORIGIN,t:0};function s(v,y,p,C){const I=v.x,B=y.x,R=p.x,M=C.x,T=v.y,U=y.y,K=p.y,w=C.y,b=(M-R)*(T-K)-(w-K)*(I-R),q=(B-I)*(T-K)-(U-T)*(I-R),ge=(w-K)*(B-I)-(M-R)*(U-T),J=b/ge,ce=q/ge;if(ge===0&&b!==0||J<=0||J>=1||ce<0||ce>1)return null;if(b===0&&ge===0){for(let se=0;se<2;se++)if(o(se===0?p:C,v,y),r.loc==i.ORIGIN){const de=se===0?p:C;return{x:de.x,y:de.y,t:r.t}}else if(r.loc==i.BETWEEN){const de=+(I+r.t*(B-I)).toPrecision(10),F=+(T+r.t*(U-T)).toPrecision(10);return{x:de,y:F,t:r.t}}return null}else{for(let F=0;F<2;F++)if(o(F===0?p:C,v,y),r.loc==i.ORIGIN){const ee=F===0?p:C;return{x:ee.x,y:ee.y,t:r.t}}const se=+(I+J*(B-I)).toPrecision(10),de=+(T+J*(U-T)).toPrecision(10);return{x:se,y:de,t:J}}}function o(v,y,p){const C=p.x-y.x,I=p.y-y.y,B=v.x-y.x,R=v.y-y.y,M=C*R-B*I;if(v.x===y.x&&v.y===y.y){r.loc=i.ORIGIN,r.t=0;return}if(v.x===p.x&&v.y===p.y){r.loc=i.DESTINATION,r.t=1;return}if(M<-Number.EPSILON){r.loc=i.LEFT;return}if(M>Number.EPSILON){r.loc=i.RIGHT;return}if(C*B<0||I*R<0){r.loc=i.BEHIND;return}if(Math.sqrt(C*C+I*I)w.t<=K.t+Number.EPSILON&&w.t>=K.t-Number.EPSILON)===void 0&&(p.push(K),C.push(new _e(K.x,K.y)))}}return C}function l(v,y,p){const C=new _e;y.getCenter(C);const I=[];return p.forEach(B=>{B.boundingBox.containsPoint(C)&&a(v,B.points).forEach(M=>{I.push({identifier:B.identifier,isCW:B.isCW,point:M})})}),I.sort((B,R)=>B.point.x-R.point.x),I}function A(v,y,p,C,I){(I==null||I==="")&&(I="nonzero");const B=new _e;v.boundingBox.getCenter(B);const R=[new _e(p,B.y),new _e(C,B.y)],M=l(R,v.boundingBox,y);M.sort((q,ge)=>q.point.x-ge.point.x);const T=[],U=[];M.forEach(q=>{q.identifier===v.identifier?T.push(q):U.push(q)});const K=T[0].point.x,w=[];let b=0;for(;b0&&w[w.length-1]===U[b].identifier?w.pop():w.push(U[b].identifier),b++;if(w.push(v.identifier),I==="evenodd"){const q=w.length%2===0,ge=w[w.length-2];return{identifier:v.identifier,isHole:q,for:ge}}else if(I==="nonzero"){let q=!0,ge=null,J=null;for(let ce=0;ce{const y=v.getPoints();let p=-999999999,C=999999999,I=-999999999,B=999999999;for(let R=0;Rp&&(p=M.y),M.yI&&(I=M.x),M.x=B&&(h=B-1),{curves:v.curves,points:y,isCW:As.isClockWise(y),identifier:-1,boundingBox:new rT(new _e(B,C),new _e(I,p))}});f=f.filter(v=>v.points.length>1);for(let v=0;vA(v,f,h,d,e.userData?e.userData.style.fillRule:void 0)),E=[];return f.forEach(v=>{if(!g[v.identifier].isHole){const p=new ma;p.curves=v.curves,g.filter(I=>I.isHole&&I.for===v.identifier).forEach(I=>{const B=f[I.identifier],R=new ga;R.curves=B.curves,p.holes.push(R)}),E.push(p)}}),E}static getStrokeStyle(e,t,i,r,s){return e=e!==void 0?e:1,t=t!==void 0?t:"#000",i=i!==void 0?i:"miter",r=r!==void 0?r:"butt",s=s!==void 0?s:4,{strokeColor:t,strokeWidth:e,strokeLineJoin:i,strokeLineCap:r,strokeMiterLimit:s}}static pointsToStroke(e,t,i,r){const s=[],o=[],a=[];if(zu.pointsToStrokeWithBuffers(e,t,i,r,s,o,a)===0)return null;const l=new Nt;return l.setAttribute("position",new ot(s,3)),l.setAttribute("normal",new ot(o,3)),l.setAttribute("uv",new ot(a,2)),l}static pointsToStrokeWithBuffers(e,t,i,r,s,o,a,l){const A=new _e,h=new _e,d=new _e,f=new _e,g=new _e,E=new _e,v=new _e,y=new _e,p=new _e,C=new _e,I=new _e,B=new _e,R=new _e,M=new _e,T=new _e,U=new _e,K=new _e;i=i!==void 0?i:12,r=r!==void 0?r:.001,l=l!==void 0?l:0,e=Ee(e);const w=e.length;if(w<2)return 0;const b=e[0].equals(e[w-1]);let q,ge=e[0],J;const ce=t.strokeWidth/2,se=1/(w-1);let de=0,F,ee,te,ue,Ce=!1,Oe=0,W=l*3,z=l*2;O(e[0],e[1],A).multiplyScalar(ce),y.copy(e[0]).sub(A),p.copy(e[0]).add(A),C.copy(y),I.copy(p);for(let ne=1;neNumber.EPSILON){const Te=ce/he;d.multiplyScalar(-Te),f.subVectors(q,ge),g.copy(f).setLength(Te).add(d),U.copy(g).negate();const $=g.length(),S=f.length();f.divideScalar(S),E.subVectors(J,q);const D=E.length();switch(E.divideScalar(D),f.dot(U)=r&&he.push(ne[Te]);return he.push(ne[ne.length-1]),he}}}const z5=new zu,xp=new ii,dl=new G;async function H5(n,e,t=lr,i,r,s,o){const a=new Vr;a.matrixAutoUpdate=!1;const l=await z5.loadAsync(n);xp.makeEmpty();for(const d of l.paths){const f=zu.createShapes(d),g=new t;g.transparent=!0,g.depthWrite=!1,g.toneMapped=!1,g.clippingPlanes=i;for(const E of f){const v=new Fu(E);v.computeBoundingBox(),xp.union(v.boundingBox);const y=new Zt(v,g);y.matrixAutoUpdate=!1,y.raycast=Ou(y,y.raycast,s,r,o),$l(y,e,o),y.userData.color=d.color,y.scale.y=-1,y.updateMatrix(),a.add(y)}}xp.getSize(dl);const A=dl.x/dl.y,h=1/dl.y;return a.scale.set(1,1,1).multiplyScalar(h),xp.getCenter(dl),dl.y*=-1,a.position.copy(dl).negate().multiplyScalar(h),a.updateMatrix(),Object.assign(a,{aspectRatio:A})}const Iw=new Je,V5=["color","opacity"];Y.forwardRef((n,e)=>{const t=Da(),i=Y.useRef(null),r=ec(i);Hs(t,r,ka);const s=Ha(t,r),o=rc(s),a=So(),l=Zl(a,o,r.size,r),A=tc(n.panelMaterialClass,n),h=wr(Xi.Panel,n.zIndexOffset,A);nc(t,o,r.size,void 0,r.borderInset,l,h,a,A,Oa);const d=ql(),f=ld(a,d),g=wr(Xi.Svg,void 0,void 0,h),E=OT(H5,n.src,r.cameraDistance,n.materialClass,f,a,d,g),v=fs(t,V5);Di(()=>{var w;const M=v.value;if(M==null)return;const T=M("color"),U=M("opacity");let K;Array.isArray(T)?K=Iw.setRGB(...T):T!=null&&(K=Iw.set(T)),(w=E.value)==null||w.traverse(b=>{if(!(b instanceof Zt))return;b.receiveShadow=n.receiveShadow??!1,b.castShadow=n.castShadow??!1;const q=b.material;q.color.copy(K??b.userData.color),q.opacity=U??1})},[E,n.color,n.receiveShadow,n.castShadow]);const y=Y.useMemo(()=>hi(()=>{var M;return(M=E.value)==null?void 0:M.aspectRatio}),[E]),p=cd();Ad(t,p,r,o,l,n.scrollbarPanelMaterialClass,a,g),Na(t,n),La(t,n),Pa(t,n);const C=Fa(t,n),I=Va(t,n);Fs(t,"aspectRatio",y),ba(t),za(n,r.size),ic(n,l);const B=Y.useMemo(()=>{const M=new Vr;return M.matrixAutoUpdate=!1,M},[]);Di(()=>{var K;const[M,T,U]=GT(r.size,r.paddingInset,r.borderInset,r.pixelSize,((K=E.value)==null?void 0:K.aspectRatio)??1);B.position.set(M,T,0),B.scale.setScalar(U),B.updateMatrix()},[r,E]),Di(()=>{const M=E.value;if(M!=null)return B.add(M),()=>B.remove(M)},[E,B]),Di(()=>void(B.visible=!l.value),[]);const R=Gu(r.size,r,h,d);return Ga(e,r,R,p),N.jsxs(Ua,{groupRef:i,matrix:s,handlers:n,hoverHandlers:C,activeHandlers:I,children:[N.jsxs(ud,{listeners:n,node:r,scrollPosition:p,children:[N.jsx("primitive",{object:R}),N.jsx("primitive",{object:B})]}),N.jsx(hd,{globalMatrix:o,node:r,orderInfo:g,scrollPosition:p,children:n.children})]})});const it=Y.forwardRef((n,e)=>{const t=Da(),i=Y.useRef(null),r=ec(i);Hs(t,r,ka);const s=Ha(t,r),o=ql(),a=rc(s),l=So(),A=Zl(l,a,r.size,r);za(n,r.size),ic(n,A);const h=tc(n.panelMaterialClass,n),d=wr(Xi.Panel,n.zIndexOffset,h);nc(t,a,r.size,void 0,r.borderInset,A,d,l,h,Oa);const f=wr(Xi.Text,void 0,void 0,d),g=CH(t,n.children,a,r,A,l,f);Na(t,n),La(t,n),Pa(t,n);const E=Fa(t,n),v=Va(t,n);Fs(t,"measureFunc",g),ba(t);const y=Gu(r.size,r,d,o);return Ga(e,r,y),N.jsx(Ua,{groupRef:i,matrix:s,handlers:n,hoverHandlers:E,activeHandlers:v,children:N.jsx("primitive",{object:y})})}),W5=Y.forwardRef((n,e)=>{const t=_o(),i=n.pixelSize??xD,[r,s]=Y.useMemo(()=>{const{width:A,height:h}=t.getState().size;return[hn(A*i),hn(h*i)]},[i,t]);Y.useEffect(()=>{const A=h=>{MT(()=>{r.value=h.size.width*i,s.value=h.size.height*i})};return A(t.getState()),t.subscribe(A)},[i,r,s,t]);const o=Qm(A=>A.camera),a=Y.useRef(null);qr(()=>{if(a.current==null)return;let A=1;o instanceof ti&&(A=s.peek()/(2*Math.tan(o.fov/360*Math.PI))),a.current.position.z=-A,a.current.updateMatrix()});const l=n.attachCamera??!0;return N.jsxs(N.Fragment,{children:[l&&N.jsx("primitive",{object:o}),xT(N.jsx("group",{ref:a,matrixAutoUpdate:!1,children:N.jsx(F5,{ref:e,...n,sizeX:r,sizeY:s,children:n.children})}),o)]})}),xw=new Je,Y5=["color","opacity"],X5=new zu,dd=Y.forwardRef((n,e)=>{const t=Da(),i=Y.useRef(null),r=ec(i);Hs(t,r,ka);const s=Ha(t,r),o=rc(s),a=So(),l=Zl(a,o,r.size,r),A=tc(n.panelMaterialClass,n),h=wr(Xi.Panel,n.zIndexOffset,A);nc(t,o,r.size,void 0,r.borderInset,l,h,a,A,Oa);const d=ql(),f=ld(a,d),g=wr(Xi.Svg,void 0,void 0,h),E=Y.useMemo(()=>{const B=new Vr;B.matrixAutoUpdate=!1;const R=X5.parse(n.text);for(const M of R.paths){const T=zu.createShapes(M),U=new(n.materialClass??lr);U.transparent=!0,U.depthWrite=!1,U.toneMapped=!1,U.clippingPlanes=f;for(const K of T){const w=new Fu(K);w.computeBoundingBox();const b=new Zt(w,U);b.matrixAutoUpdate=!1,b.raycast=Ou(b,b.raycast,d,a,g),$l(b,r.cameraDistance,g),b.userData.color=M.color,b.scale.y=-1,b.updateMatrix(),B.add(b)}}return B},[n.text,n.materialClass,f,d,a,r,g]),v=fs(t,Y5);Di(()=>{const B=v.value;if(B==null)return;const R=B("color"),M=B("opacity");let T;Array.isArray(R)?T=xw.setRGB(...R):R!=null&&(T=xw.set(R)),E.traverse(U=>{if(!(U instanceof Zt))return;U.receiveShadow=n.receiveShadow??!1,U.castShadow=n.castShadow??!1;const K=U.material;K.color.copy(T??U.userData.color),K.opacity=M??1})},[E,n.color,n.receiveShadow,n.castShadow]);const y=cd();Ad(t,y,r,o,l,n.scrollbarPanelMaterialClass,a,g),Fs(t,"width",n.svgWidth),Fs(t,"height",n.svgHeight),Na(t,n),La(t,n),Pa(t,n);const p=Fa(t,n),C=Va(t,n);Fs(t,"aspectRatio",n.svgWidth/n.svgHeight),ba(t),za(n,r.size),ic(n,l),Di(()=>{const B=n.svgWidth/n.svgHeight,[R,M,T]=GT(r.size,r.paddingInset,r.borderInset,r.pixelSize,n.svgWidth/n.svgHeight);E.position.set(R-T*B/2,M+T/2,0),E.scale.setScalar(T/n.svgHeight),E.updateMatrix()},[r,E,n.svgWidth,n.svgHeight]),Di(()=>void(E.visible=!l.value),[]);const I=Gu(r.size,r,h,d);return Ga(e,r,I,y),N.jsxs(Ua,{groupRef:i,matrix:s,handlers:n,hoverHandlers:p,activeHandlers:C,children:[N.jsxs(ud,{listeners:n,node:r,scrollPosition:y,children:[N.jsx("primitive",{object:I}),N.jsx("primitive",{object:E})]}),N.jsx(hd,{globalMatrix:o,node:r,orderInfo:g,scrollPosition:y,children:n.children})]})});Y.forwardRef(({children:n,resolution:e=1,frames:t=1/0,renderPriority:i=0,eventPriority:r=0,...s},o)=>{const a=Y.useMemo(()=>new Kr(1,1,{minFilter:In,magFilter:In,type:Gl}),[]),l=Y.useRef(null),A=Y.useMemo(()=>({events:{compute:J5.bind(null,l),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);Y.useEffect(()=>{if(l.current==null)return;const{size:d}=l.current,f=un(()=>{const[g,E]=d.value;a.setSize(g,E),A.size.width=g,A.size.height=E});return()=>{f(),a.dispose()}},[a,A]),Y.useImperativeHandle(o,()=>l.current,[]);const h=Y.useMemo(()=>new Nh,[]);return N.jsxs(N.Fragment,{children:[xT(N.jsxs(j5,{imageRef:l,renderPriority:i,frames:t,fbo:a,children:[n,N.jsx("group",{onPointerOver:()=>null})]}),h,A),N.jsx(B5,{...s,src:a.texture,fit:"fill",keepAspectRatio:!1,ref:l})]})});function J5({current:n},e,t,i){var o,a,l;if(n==null||i==null)return!1;i.raycaster.camera||(l=(a=i.events).compute)==null||l.call(a,e,i,(o=i.previousRoot)==null?void 0:o.getState());const[r]=i.raycaster.intersectObject(n.interactionPanel);if(!r)return!1;const s=r.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(s.x*2-1,s.y*2-1),t.camera)}function j5({frames:n,renderPriority:e,children:t,fbo:i,imageRef:r}){const s=_o();Y.useEffect(()=>{if(r.current==null)return;const{size:A}=r.current;return un(()=>{const[h,d]=A.value;s.setState({size:{width:h,height:d,top:0,left:0}})})});let o=0,a,l;return qr(A=>{(n===1/0||oN.jsx(dd,{...n,ref:e,text:K5,svgWidth:24,svgHeight:24})),q5='',Z5=Y.forwardRef((n,e)=>N.jsx(dd,{...n,ref:e,text:q5,svgWidth:24,svgHeight:24})),$5='',zc=Y.forwardRef((n,e)=>N.jsx(dd,{...n,ref:e,text:$5,svgWidth:24,svgHeight:24})),e8='',t8=Y.forwardRef((n,e)=>N.jsx(dd,{...n,ref:e,text:e8,svgWidth:24,svgHeight:24})),n8='',Hc=Y.forwardRef((n,e)=>N.jsx(dd,{...n,ref:e,text:n8,svgWidth:24,svgHeight:24})),oo=new rd,gy=new sT,Bw=new rn;function i8(n,e,t,i,r){const s=[];for(const[o,a]of r){gy.set(i[a.lineIndex],i[a.lineIndex+1]).applyMatrix4(n.matrixWorld);const l=gy.at(a.distanceOnLine/gy.distance(),new G);Pm(Bw,a,o);const A=r8(n,i,Bw)??l;s.push({...a,intersections:s,pointOnFace:A,point:l,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),capturedObject:o})}return s}const _w=new G,my=new wa;function r8(n,e,t){for(let i=e.length-1;i>0;i--){const r=e[i-1],s=e[i];if(my.origin.copy(r).applyMatrix4(n.matrixWorld),my.direction.copy(s).applyMatrix4(n.matrixWorld).sub(oo.ray.origin).normalize(),my.intersectPlane(t,_w)!=null)return _w.clone()}}const s8=new ut;function o8(n,e,t,i,r,s,o){const a=[];return fd(r,s.hasEventHandlers.bind(s),l=>{let A=0;for(let h=1;hC===v.object)!=-1)continue;const p=v.distance;v.distance+=A,a.push(Object.assign(v,{intersections:a,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),lineIndex:h-1,distanceOnLine:p,pointOnFace:v.point,localPoint:v.point.clone().applyMatrix4(s8.copy(v.object.matrixWorld).invert())}))}A+=g}}),a.sort((l,A)=>l.distance-A.distance)}const bs=new rd,yu=new G,uo=new rn,Sw=new wa;function a8(n,e,t,i){yu.copy(i).applyQuaternion(e);const r=[];for(const[s,o]of t){Sw.set(n,yu),Pm(uo,o,s);const a=Sw.intersectPlane(uo,new G)??o.point;r.push({...o,intersections:r,pointOnFace:a,point:yu.clone().multiplyScalar(o.distance).add(n),inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),capturedObject:s})}return r}function l8(n,e,t,i,r){bs.setFromCamera(e,n),n.getWorldPosition(i),n.getWorldQuaternion(r),n.getWorldDirection(yu);const s=[];for(const[o,a]of t){uo.setFromNormalAndCoplanarPoint(yu,bs.ray.origin),uo.constant-=a.distanceViewPlane;const l=bs.ray.intersectPlane(uo,new G);if(l==null)continue;Pm(uo,a,o);const A=bs.ray.intersectPlane(uo,new G)??l;s.push({...a,intersections:s,point:l,pointOnFace:A,inputDevicePosition:i.clone(),inputDeviceRotation:r.clone(),capturedObject:o})}return s}const Ug=new ut;function c8(n,e,t,i,r,s){bs.ray.origin.copy(n),bs.ray.direction.copy(s).applyQuaternion(e);const o=[];return fd(t,i.hasEventHandlers.bind(i),a=>{const l=bs.intersectObject(a,!0);for(const A of l)r&&!Lm(A)||(Ug.copy(a.matrixWorld).invert(),o.push(Object.assign(A,{intersections:o,inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),pointOnFace:A.point,localPoint:A.point.clone().applyMatrix4(Ug)})))}),o.sort((a,l)=>a.distance-l.distance)}function u8(n,e,t,i,r,s,o){bs.setFromCamera(e,n),n.getWorldPosition(s),n.getWorldQuaternion(o),uo.setFromNormalAndCoplanarPoint(n.getWorldDirection(yu),bs.ray.origin);const a=[];return fd(t,i.hasEventHandlers.bind(i),l=>{const A=bs.intersectObject(l,!0);for(const h of A)r&&!Lm(h)||(Ug.copy(l.matrixWorld).invert(),a.push(Object.assign(h,{intersections:a,pointOnFace:h.point,inputDevicePosition:s.clone(),inputDeviceRotation:o.clone(),distanceViewPlane:uo.distanceToPoint(h.point),localPoint:h.point.clone().applyMatrix4(Ug)})))}),a.sort((l,A)=>l.distance-A.distance)}const ww=new G,Mw=new Vn,Qw=new rn;function A8(n,e,t){const i=[];for(const[r,s]of t){ww.copy(s.point).sub(s.inputDevicePosition),Mw.copy(s.inputDeviceRotation).invert().multiply(e);const o=ww.clone().applyQuaternion(Mw).add(n);Pm(Qw,s,r);const a=Qw.projectPoint(n,new G);i.push({distance:s.distance,intersections:i,inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),object:s.object,point:o,pointOnFace:a,face:s.face,capturedObject:r,distanceToFace:a.distanceTo(n),localPoint:s.localPoint})}return i}const Wr=new Zn;function h8(n,e,t,i,r,s){Wr.center.copy(n),Wr.radius=t;const o=[];return fd(i,r.hasEventHandlers.bind(r),a=>BD(a,e,s,o)),o.sort((a,l)=>a.distance-l.distance)}function BD(n,e,t,i){f8(n,e,t,i);for(const r of n.children)BD(r,e,t,i)}const RA=new ut,TA=new ut;function d8(n){return"spherecast"in n}function f8(n,e,t,i){if(n.updateWorldMatrix(!0,!1),d8(n)){const r=[];n.spherecast(Wr,r);for(const s of r)t&&!Lm(s)||i.push({...s,pointOnFace:s.point,intersections:i,inputDevicePosition:Wr.center.clone(),inputDeviceRotation:e.clone(),localPoint:s.point.clone().applyMatrix4(RA.copy(s.object.matrixWorld).invert())})}if(n instanceof JI){n.geometry.boundingSphere==null&&n.geometry.computeBoundingSphere(),n.geometry.boundingBox==null&&n.geometry.computeBoundingBox();const r=[];for(let s=0;sWr.radius*Wr.radius)return;Ey.max(p8);const h=Cu.center.clone().sub(Tw);h.divide(Ey),g8(h);const d=Bp.clone();o&&!m8(n,d)||a.push({intersections:a,distance:Math.sqrt(A),object:n,face:{a:0,b:0,c:0,materialIndex:0,normal:h},pointOnFace:d,point:d,instanceId:l,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),localPoint:d.clone().applyMatrix4(r)})}function g8(n){const e=Math.abs(n.x),t=Math.abs(n.y),i=Math.abs(n.z);if(e>=t&&e>=i){n.set(n.x<0?-1:1,0,0);return}if(t>=e&&t>=i){n.set(0,n.y<0?-1:1,0);return}n.set(0,0,n.z<0?-1:1)}function fd(n,e,t){if(e(n))return t(n);for(const i of n.children)fd(i,e,t)}function Lm(n){if(!(n.object instanceof Zt)||n.object.material.clippingPlanes==null)return!0;const e=n.object.material.clippingPlanes;for(const t of e)if(t.distanceToPoint(n.point)<0)return!1;return!0}function m8(n,e){if(!(n instanceof Zt)||n.material.clippingPlanes==null)return!0;const t=n.material.clippingPlanes;for(const i of t)if(i.distanceToPoint(e)<0)return!1;return!0}function Pm(n,e,t){return e.face==null?!1:(n.setFromNormalAndCoplanarPoint(e.face.normal,e.localPoint),n.applyMatrix4(t.matrixWorld),!0)}const yy=new G,bw=new Vn,Nw=Symbol("traversal-id"),Lw=[],Qv=new Ht;class Um{constructor(e,t,i,r,s,o,a,l,A,h,d){Ne(this,"inputDeviceId");Ne(this,"dispatchPressAlways");Ne(this,"eventDispatcher");Ne(this,"computeIntersections");Ne(this,"getPressedElementIds");Ne(this,"getInputDeviceTransformation");Ne(this,"wasDragged");Ne(this,"onIntersections");Ne(this,"filterIntersections");Ne(this,"onStartEventCaptures");Ne(this,"onEndEventCaptures");Ne(this,"intersections",[]);Ne(this,"lastPositionChangeTime");Ne(this,"capturedEvents");Ne(this,"objectInteractionStateMap",new Map);this.inputDeviceId=e,this.dispatchPressAlways=t,this.eventDispatcher=i,this.computeIntersections=r,this.getPressedElementIds=s,this.getInputDeviceTransformation=o,this.wasDragged=a,this.onIntersections=l,this.filterIntersections=A,this.onStartEventCaptures=h,this.onEndEventCaptures=d}update(e,t,i,...r){var a;this.eventDispatcher.bind(e,this);const s=performance.now(),o=this.intersections;if(t&&(this.intersections=this.computeIntersections(e,this.capturedEvents),this.capturedEvents==null&&this.filterIntersections!=null&&(this.intersections=this.filterIntersections(this.intersections)),(a=this.onIntersections)==null||a.call(this,this.intersections),this.intersections.length===0&&(this.getInputDeviceTransformation(yy,bw),this.intersections=[{distance:1/0,inputDevicePosition:yy.clone(),inputDeviceRotation:bw.clone(),object:Qv,point:yy.clone()}])),this.traverseIntersections(this.intersections,(l,A,h,d,f)=>(t&&(this.dispatchEnterOrMove(l,A,h),A.lastIntersectedTime=s),i&&(this.dispatchPress(l,h,f,r),this.dispatchRelease(e,l,h,A,f),this.updateElementStateMap(h,A,f,r,s)),A.lastPressedElementIds=f,A.blockFollowingIntersections&&(this.intersections.length=d+1),!0),l=>this.getPressedElementIds(l)),t){const l=this.getPressedElementIds();this.traverseIntersections(o,(A,h,d)=>h.lastIntersectedTime===s?!1:(this.dispatchRelease(e,A,d,h,l),this.eventDispatcher.leave(A,d),h.lastLeftTime=s,h.lastPressedElementIds=Lw,!0)),this.lastPositionChangeTime=s}}cancel(e){this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(t,i,r)=>(this.eventDispatcher.cancel(t,r),!0))}wheel(e){this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(t,i,r)=>(this.eventDispatcher.wheel(t,r),!0))}leave(e){var t;this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(i,r,s)=>(this.eventDispatcher.leave(i,s),!0)),this.capturedEvents!=null&&((t=this.onEndEventCaptures)==null||t.call(this,e)),this.lastPositionChangeTime=void 0,this.intersections.length=0,this.capturedEvents=void 0}updateElementStateMap(e,t,i,r,s){for(const o of i)(r.includes(o)||this.dispatchPressAlways)&&t.elementStateMap.set(o,{lastPressEventTime:s,lastPressEventIntersection:e})}dispatchPress(e,t,i,r){for(const s of i)(this.dispatchPressAlways||r.includes(s))&&this.eventDispatcher.press(e,t,s)}dispatchRelease(e,t,i,r,s){for(const o of r.lastPressedElementIds){if(s.includes(o))continue;this.eventDispatcher.release(t,i,o),this.removeEventCapture(e,t);const a=r.elementStateMap.get(o);a!=null&&(r.lastLeftTime==null||r.lastLeftTime{}){const r=Math.random();e:for(let s=0;snew Map,[]),d=Y.useMemo(()=>new Fm,[]);d.onPointerDownMissed=r,d.onPointerUpMissed=s,d.onClickMissed=o;const f=Y.useMemo(()=>({filterClipped:A??!0,computeIntersections:n,isDrag:e,onIntersections:t,filterIntersections:i,onStartEventCaptures:a,onEndEventCaptures:l}),[]);f.filterClipped=A??!0,f.computeIntersections=n,f.isDrag=e,f.onIntersections=t,f.filterIntersections=i,f.onStartEventCaptures=a,f.onEndEventCaptures=l;for(const[g,E]of h)_D(E.translator,g,f);return Y.useEffect(()=>()=>{for(const{translator:g}of h.values())g.leave({});h.clear()},[]),Y.useMemo(()=>{const g=E=>C8(h,d,f,E);return{cancel:(E,v)=>{const{translator:y}=g(E);y.cancel(v)},enter:(E,v)=>{const{translator:y}=g(E);y.update(v,!0,!0)},leave:(E,v)=>{const{translator:y}=g(E);y.leave(v),h.delete(E)},press:(E,v,...y)=>{const{inputDeviceElementPressMap:p,inputDeviceElementPressSet:C,translator:I}=g(E);for(const B of y)C.add(B),p.set(B,v);I.update(v,!1,!0,...y)},release:(E,v,...y)=>{const{inputDeviceElementPressMap:p,inputDeviceElementPressSet:C,inputDeviceElementDragSet:I,translator:B}=g(E);for(const R of y)C.delete(R),p.delete(R);B.update(v,!1,!0);for(const R of y)I.delete(R)},move:(E,v)=>{const{translator:y,inputDeviceElementPressMap:p,inputDeviceElementDragSet:C}=g(E);for(const[I,B]of p)f.isDrag(B,v)&&C.add(I);y.update(v,!0,!1)},wheel:E=>{for(const{translator:v}of h.values())v.wheel(E)},blur:E=>{for(const{translator:v}of h.values())v.leave(E);h.clear()}}},[])}function _D(n,e,{filterIntersections:t,onEndEventCaptures:i,onIntersections:r,onStartEventCaptures:s}){n.onIntersections=r==null?void 0:r.bind(null,e),n.filterIntersections=t==null?void 0:t.bind(null,e),n.onStartEventCaptures=s==null?void 0:s.bind(null,e),n.onEndEventCaptures=i==null?void 0:i.bind(null,e)}function C8(n,e,t,i){let r=n.get(i);if(r==null){const s=new G,o=new Vn,a={inputDeviceElementPressSet:new Set,inputDeviceElementPressMap:new Map,translator:new Um(i,!1,e,(l,A)=>t.computeIntersections(l,A,t.filterClipped,e,s,o),()=>[...a.inputDeviceElementPressSet],(l,A)=>{l.copy(s),A.copy(o)},l=>a.inputDeviceElementDragSet.has(l)),inputDeviceElementDragSet:new Set};_D(a.translator,i,t),n.set(i,r=a)}return r}new G;const v8=[];function I8(n,e,t){if(n.current==null)return!1;const i=n.current*n.current,r=e.offsetX-t.offsetX,s=e.offsetY-t.offsetY;return r*r+s*s>i}function x8({filterClipped:n,filterIntersections:e,onClickMissed:t,onIntersections:i,onPointerDownMissed:r,onPointerUpMissed:s,dragDistance:o}){const a=_o(),l=Qm(({gl:f})=>f.domElement),A=Y.useMemo(()=>B8.bind(null,a),[a]),h=Y.useRef(o);h.current=o;const d=y8(A,I8.bind(null,h),i,e,r,s,t,_8,S8,n);return Y.useEffect(()=>{const f=C=>d.cancel(C.pointerId,C),g=C=>d.press(C.pointerId,C,C.button),E=C=>d.release(C.pointerId,C,C.button),v=C=>d.enter(C.pointerId,C),y=C=>d.leave(C.pointerId,C),p=C=>d.move(C.pointerId,C);return l.addEventListener("pointercancel",f),l.addEventListener("pointerdown",g),l.addEventListener("pointerup",E),l.addEventListener("pointerover",v),l.addEventListener("pointerout",y),l.addEventListener("pointermove",p),l.addEventListener("wheel",d.wheel),l.addEventListener("blur",d.blur),()=>{l.removeEventListener("pointercancel",f),l.removeEventListener("pointerdown",g),l.removeEventListener("pointerup",E),l.removeEventListener("pointerover",v),l.removeEventListener("pointerout",y),l.removeEventListener("pointermove",p),l.removeEventListener("wheel",d.wheel),l.removeEventListener("blur",d.blur)}},[l,d]),null}function B8(n,e,t,i,r,s,o){if(!(e.target instanceof HTMLCanvasElement))return v8;const{camera:a,scene:l,size:A}=n.getState(),h=new _e(e.offsetX/A.width*2-1,-(e.offsetY/A.height)*2+1);return t==null?u8(a,h,l,r,i,s,o):l8(a,h,t,s,o)}function _8(n,e){e.target instanceof HTMLCanvasElement&&e.target.setPointerCapture(n)}function S8(n,e){e.target instanceof HTMLCanvasElement&&e.target.releasePointerCapture(n)}const Cy=new G,vy=new Vn,w8=new G(0,0,1);Y.forwardRef(({id:n,onIntersections:e,filterIntersections:t,onClickMissed:i,onPointerDownMissed:r,onPointerUpMissed:s,filterClipped:o=!0,direction:a=w8,initialPressedElementIds:l},A)=>{const h=_o(),d=Y.useMemo(()=>new Ht,[]),f=Y.useMemo(()=>new Fm,[]);f.onPointerDownMissed=r,f.onPointerUpMissed=s,f.onClickMissed=i;const g=Y.useMemo(()=>new Set(l),[]),E=Y.useMemo(()=>({filterClipped:o,direction:a}),[]);E.filterClipped=o,E.direction=a;const v=Y.useMemo(()=>new Um(n,!1,f,(p,C)=>(d.getWorldPosition(Cy),d.getWorldQuaternion(vy),C==null?c8(Cy,vy,h.getState().scene,f,E.filterClipped,E.direction):a8(Cy,vy,C,E.direction)),()=>[...g],(p,C)=>{d.getWorldPosition(p),d.getWorldQuaternion(C)}),[n,h]);v.onIntersections=e,v.filterIntersections=t,Y.useImperativeHandle(A,()=>({press:(p,C)=>{g.add(p),v.update(C,!1,!0,p)},release:(p,C)=>{g.delete(p),v.update(C,!1,!0)},cancel:v.cancel.bind(v),wheel(p){v.wheel(p)}}),[v]),Y.useEffect(()=>v.leave.bind(v,{}),[v]);const y=Y.useRef(g.size>0);return qr(()=>{v.update({},!0,y.current,...g),y.current=!1}),Lv.createElement("primitive",{object:d})});const Iy=new G,xy=new Vn;Y.forwardRef(({id:n,distanceElement:e,radius:t,onIntersections:i,filterIntersections:r,onClickMissed:s,onPointerDownMissed:o,onPointerUpMissed:a,filterClipped:l=!0,initialPressedElementIds:A},h)=>{const d=Y.useMemo(()=>new Ht,[]),f=_o(),g=Y.useMemo(()=>new Set(A),[]),E=Y.useMemo(()=>new Fm,[]);E.onPointerDownMissed=o,E.onPointerUpMissed=a,E.onClickMissed=s;const v=Y.useMemo(()=>({distanceElement:e,radius:t,filterClipped:l}),[]);v.distanceElement=e,v.radius=t,v.filterClipped=l;const y=Y.useMemo(()=>new Um(n,!0,E,(C,I)=>(d.getWorldPosition(Iy),d.getWorldQuaternion(xy),I==null?h8(Iy,xy,v.radius,f.getState().scene,E,v.filterClipped):A8(Iy,xy,I)),C=>C!=null&&v.distanceElement!=null&&C.distance<=v.distanceElement.downRadius&&(C.distanceToFace==null||C.distanceToFace<2*v.distanceElement.downRadius*2)?[...g,v.distanceElement.id]:[...g],(C,I)=>{d.getWorldPosition(C),d.getWorldQuaternion(I)}),[n,f]);y.onIntersections=i,y.filterIntersections=r,Y.useImperativeHandle(h,()=>({press:(C,I)=>{g.add(C),y.update(I,!1,!0,C)},release:(C,I)=>{g.delete(C),y.update(I,!1,!0)},cancel:y.cancel.bind(y),wheel(C){y.wheel(C)}}),[y]),Y.useEffect(()=>y.leave.bind(y,{}),[y]);const p=Y.useRef(g.size>0);return qr(()=>{y.update({},!0,p.current||e!=null,...g),p.current=!1}),Lv.createElement("primitive",{object:d})});const By=new G,_y=new Vn;Y.forwardRef(({id:n,points:e,onIntersections:t,filterIntersections:i,onClickMissed:r,onPointerDownMissed:s,onPointerUpMissed:o,filterClipped:a=!0,initialPressedElementIds:l},A)=>{const h=Y.useMemo(()=>new Ht,[]),d=_o(),f=Y.useMemo(()=>new Fm,[]);f.onPointerDownMissed=s,f.onPointerUpMissed=o,f.onClickMissed=r;const g=Y.useMemo(()=>new Set(l),[]),E=Y.useMemo(()=>({points:e,filterClipped:a}),[]);E.points=e,E.filterClipped=a;const v=Y.useMemo(()=>new Um(n,!1,f,(p,C)=>(h.getWorldPosition(By),h.getWorldQuaternion(_y),C==null?o8(h,By,_y,E.points,d.getState().scene,f,E.filterClipped):i8(h,By,_y,E.points,C)),()=>[...g],(p,C)=>{h.getWorldPosition(p),h.getWorldQuaternion(C)}),[n,d]);v.onIntersections=t,v.filterIntersections=i,Y.useImperativeHandle(A,()=>({press:(p,C)=>{g.add(p),v.update(C,!1,!0,p)},release:(p,C)=>{g.delete(p),v.update(C,!1,!0)},cancel:v.cancel.bind(v),wheel(p){v.wheel(p)}}),[v]),Y.useEffect(()=>v.leave.bind(v,{}),[v]);const y=Y.useRef(g.size>0);return qr(()=>{v.update({},!0,y.current,...g),y.current=!1}),Lv.createElement("primitive",{object:h})});const M8=()=>({enabled:!1,priority:0});class Fm{constructor(e,t,i){Ne(this,"onPointerDownMissed");Ne(this,"onPointerUpMissed");Ne(this,"onClickMissed");Ne(this,"stoppedEventTypeSet");Ne(this,"event");Ne(this,"translator");Ne(this,"press",this.dispatch.bind(this,["onPointerDown"]));Ne(this,"release",this.dispatch.bind(this,["onPointerUp"]));Ne(this,"cancel",this.dispatch.bind(this,["onPointerCancel"]));Ne(this,"select",this.dispatch.bind(this,["onClick"]));Ne(this,"move",this.dispatch.bind(this,["onPointerMove"]));Ne(this,"enter",this.dispatch.bind(this,["onPointerEnter","onPointerOver"]));Ne(this,"leave",this.dispatch.bind(this,["onPointerLeave","onPointerOut"]));Ne(this,"wheel",this.dispatch.bind(this,["onWheel"]));Ne(this,"losteventcapture",()=>{});this.onPointerDownMissed=e,this.onPointerUpMissed=t,this.onClickMissed=i}dispatch(e,t,i,r){var s,o;for(const a of e){if(this.stoppedEventTypeSet.has(a))return;if(t==Qv){switch(a){case"onClick":case"onPointerDown":case"onPointerUp":{const A=this[`${a}Missed`];if(A==null)return;A(this.createEvent(a,t,i,r))}}return}(o=(s=t.__r3f.handlers)[a])==null||o.call(s,this.createEvent(a,t,i,r))}}createEvent(e,t,i,r){const s=this.stoppedEventTypeSet,o=this.translator,a={setPointerCapture:this.translator.addEventCapture.bind(this.translator,this.event,t,i),releasePointerCapture:this.translator.removeEventCapture.bind(this.translator,this.event,t),hasPointerCapture:this.translator.hasEventCapture.bind(this.translator,t)},l={};for(const A in this.event){const h=this.event[A];typeof h!="function"&&(l[A]=h)}return Object.assign(l,i,{eventObject:t,pointer:null,stopped:null,delta:0,unprojectedPoint:null,ray:null,camera:null,stopPropagation(){s.add(e),e=="onPointerEnter"&&o.blockFollowingIntersections(t)},pointerId:this.translator.inputDeviceId,target:a,currentTarget:a,nativeEvent:this.event,inputDeviceElementId:r,inputDeviceId:this.translator.inputDeviceId}),l}bind(e,t){this.stoppedEventTypeSet=new Set,this.event=e,this.translator=t}hasEventHandlers(e){if(e===Qv)return!0;const t=e.__r3f;return t!=null&&t.eventCount>0}}class km extends ix{constructor(){super({specular:"#555",shininess:100})}}function Vc(n,e,t){return new Je().setHSL(n/360,e/100,t/100,"srgb")}const Wt={foreground:Vc(0,0,100),background:Vc(0,0,0),card:Vc(0,0,53),cardForeground:Vc(0,0,100),accent:Vc(210,100,52),accentForeground:Vc(0,0,100)};function Q8(n){return N.jsx(ks,{scrollbarColor:Wt.background,scrollbarBorderRadius:4,scrollbarOpacity:.3,color:Wt.background,fontWeight:"medium",...n})}function Vi({children:n,...e}){return N.jsx(Qt,{backgroundColor:Wt.card,backgroundOpacity:.8,borderColor:Wt.card,borderOpacity:.8,border:4,borderBend:.3,panelMaterialClass:km,borderRadius:32,...e,children:N.jsx(ks,{color:Wt.cardForeground,children:n})})}function R8(n){const e=n/44;return{height:44*e,padding:20*e,borderRadius:12*e,fontSize:14*e,iconSize:18*e}}const T8={xs:{iconSize:12,height:24,padding:6,borderRadius:4,fontSize:8},sm:{height:32,padding:12,borderRadius:8,fontSize:12,iconSize:14},md:{height:44,padding:20,borderRadius:12,fontSize:14,iconSize:18},lg:{height:52,padding:25,borderRadius:16,fontSize:16,iconSize:22},xl:{height:56,padding:29,borderRadius:20,fontSize:18,iconSize:28}};function Ct({children:n,size:e="md",variant:t="rect",platter:i,selected:r,disabled:s,...o}){const{borderRadius:a,fontSize:l,height:A,padding:h,iconSize:d}=typeof e=="number"?R8(e):T8[e];return N.jsx(Qt,{cursor:s?void 0:"pointer",height:A,width:t==="icon"?A:void 0,paddingX:h,borderRadius:t==="rect"?a:A/2,justifyContent:"center",alignItems:"center",backgroundColor:Wt.foreground,backgroundOpacity:s?.1:r?1:i?.15:0,hover:{backgroundOpacity:s?.1:r?1:.2},...o,children:N.jsx(ks,{color:r&&!s?Wt.background:Wt.foreground,opacity:s?.4:1,fontSize:l,width:t==="icon"?d:void 0,height:t==="icon"?d:void 0,children:n})})}const SD=Y.createContext({});function ng({value:n,defaultValue:e,onValueChange:t,disabled:i,...r}){const[s,o]=Y.useState(e),a=n??s,l=Y.useRef(t);l.current=t;const A=Y.useMemo(()=>({value:a,onValueChange:d=>{var f;o(d),(f=l.current)==null||f.call(l,d)},disabled:i}),[a,i]),h=i?.3:.4;return N.jsx(SD.Provider,{value:A,children:N.jsx(Qt,{height:36,border:2,backgroundOpacity:h,borderOpacity:h,backgroundColor:Wt.background,borderColor:Wt.background,borderBend:i?0:-.3,borderRadius:18,panelMaterialClass:km,flexDirection:"row",...r})})}function Fi({children:n,value:e,disabled:t,...i}){const{value:r,onValueChange:s,disabled:o}=Y.useContext(SD),a=r===e&&!o;return N.jsx(Qt,{height:32,paddingX:20,cursor:o||t?void 0:"pointer",...i,onClick:l=>{var A;t||(s==null||s(e),(A=i.onClick)==null||A.call(i,l))},backgroundColor:Wt.foreground,borderColor:Wt.foreground,backgroundOpacity:a?.3:0,borderOpacity:a?.3:0,border:2,borderRadius:16,borderBend:.3,panelMaterialClass:km,flexDirection:"row",alignItems:"center",gapColumn:10,children:N.jsx(ks,{color:Wt.foreground,opacity:t||o?.4:1,children:n})})}function D8(){return N.jsxs(Vi,{borderRadius:32,padding:32,gap:8,flexDirection:"column",children:[N.jsx(it,{fontSize:32,children:"Hello World!"}),N.jsx(it,{fontSize:24,opacity:.7,children:"This is the apfel kit."})]})}function Pw({selected:n,disabled:e=!1,defaultSelected:t,onSelectedChange:i,...r}){const[s,o]=Y.useState(t??!1),a=n??s;return N.jsx(Qt,{width:28,height:28,border:2,borderRadius:15,backgroundColor:!e&&a?Wt.accent:Wt.foreground,backgroundOpacity:!e&&a?.9:.1,borderColor:!e&&a?Wt.accent:Wt.foreground,hover:e?void 0:{backgroundOpacity:a?1:.3,backgroundColor:a?Wt.accent:Wt.foreground,borderColor:a?Wt.accent:Wt.foreground},borderOpacity:e?.2:a?1:.5,justifyContent:"center",alignItems:"center",cursor:e?void 0:"pointer",...r,onClick:l=>{var A;e||(o(!a),i==null||i(!a),(A=r.onClick)==null||A.call(r,l))},children:a&&N.jsx(Z5,{height:18,width:18,color:Wt.accentForeground})})}function b8(){return N.jsxs(Vi,{borderRadius:32,padding:16,flexDirection:"column",gapRow:16,children:[N.jsx(Pw,{disabled:!0,defaultSelected:!1}),N.jsx(Pw,{defaultSelected:!0})]})}function N8(){return N.jsxs(Qt,{flexDirection:"column",md:{flexDirection:"row"},alignItems:"center",gap:32,children:[N.jsx(Vi,{borderRadius:32,padding:16,children:N.jsxs(Qt,{flexDirection:"row",gapColumn:16,children:[N.jsxs(Qt,{flexDirection:"column",justifyContent:"space-between",alignItems:"center",gapRow:16,children:[N.jsx(Ct,{variant:"icon",size:"xs",children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"sm",children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"md",children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"lg",children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"xl",children:N.jsx(Gt,{})})]}),N.jsxs(Qt,{flexDirection:"column",justifyContent:"space-between",alignItems:"center",gapRow:16,children:[N.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"sm",platter:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"md",platter:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"lg",platter:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"xl",platter:!0,children:N.jsx(Gt,{})})]}),N.jsxs(Qt,{flexDirection:"column",justifyContent:"space-between",alignItems:"center",gapRow:16,children:[N.jsx(Ct,{variant:"icon",size:"xs",selected:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"sm",selected:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"md",selected:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"lg",selected:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"xl",selected:!0,children:N.jsx(Gt,{})})]}),N.jsxs(Qt,{flexDirection:"column",justifyContent:"space-between",alignItems:"center",gapRow:16,children:[N.jsx(Ct,{variant:"icon",size:"xs",disabled:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"sm",disabled:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"md",disabled:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"lg",disabled:!0,children:N.jsx(Gt,{})}),N.jsx(Ct,{variant:"icon",size:"xl",disabled:!0,children:N.jsx(Gt,{})})]})]})}),N.jsx(Vi,{borderRadius:32,padding:24,children:N.jsxs(Qt,{flexDirection:"column",gapRow:32,children:[N.jsxs(Qt,{flexDirection:"row",gapColumn:16,children:[N.jsxs(Qt,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[N.jsx(Ct,{variant:"pill",size:"sm",children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"pill",size:"md",children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"pill",size:"lg",children:N.jsx(it,{children:"Label"})})]}),N.jsxs(Qt,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[N.jsx(Ct,{variant:"pill",size:"sm",platter:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"pill",size:"md",platter:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"pill",size:"lg",platter:!0,children:N.jsx(it,{children:"Label"})})]}),N.jsxs(Qt,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[N.jsx(Ct,{variant:"pill",size:"sm",selected:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"pill",size:"md",selected:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"pill",size:"lg",selected:!0,children:N.jsx(it,{children:"Label"})})]}),N.jsxs(Qt,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[N.jsx(Ct,{variant:"pill",size:"sm",disabled:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"pill",size:"md",disabled:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"pill",size:"lg",disabled:!0,children:N.jsx(it,{children:"Label"})})]})]}),N.jsxs(Qt,{flexDirection:"row",gapColumn:16,children:[N.jsxs(Qt,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[N.jsx(Ct,{variant:"rect",size:"sm",children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"rect",size:"md",children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"rect",size:"lg",children:N.jsx(it,{children:"Label"})})]}),N.jsxs(Qt,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[N.jsx(Ct,{variant:"rect",size:"sm",platter:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"rect",size:"md",platter:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"rect",size:"lg",platter:!0,children:N.jsx(it,{children:"Label"})})]}),N.jsxs(Qt,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[N.jsx(Ct,{variant:"rect",size:"sm",selected:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"rect",size:"md",selected:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"rect",size:"lg",selected:!0,children:N.jsx(it,{children:"Label"})})]}),N.jsxs(Qt,{flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[N.jsx(Ct,{variant:"rect",size:"sm",disabled:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"rect",size:"md",disabled:!0,children:N.jsx(it,{children:"Label"})}),N.jsx(Ct,{variant:"rect",size:"lg",disabled:!0,children:N.jsx(it,{children:"Label"})})]})]})]})})]})}const wD=Y.createContext("plain");function _p({type:n="plain",...e}){return N.jsx(wD.Provider,{value:n,children:N.jsx(Qt,{flexDirection:"column",alignItems:"stretch",gapRow:n==="plain"?8:1,...e})})}function kr({children:n,subtitle:e,selected:t,leadingAccessory:i,trailingAccessory:r,isFirst:s,isLast:o,...a}){const l=Y.useContext(wD);return N.jsx(Qt,{height:e?72:60,borderRadius:l==="plain"?16:void 0,borderTopRadius:l==="inset"?s?16:0:void 0,borderBottomRadius:l==="inset"?o?16:0:void 0,paddingX:20,flexDirection:"row",alignItems:"center",gapColumn:16,backgroundColor:l==="plain"?Wt.foreground:Wt.background,backgroundOpacity:l==="plain"?t?.2:0:.2,hover:{backgroundOpacity:l==="plain"&&t?.2:.1},active:l==="plain"?{backgroundOpacity:.3}:void 0,cursor:"pointer",...a,children:N.jsxs(ks,{color:Wt.foreground,children:[i&&N.jsx(Qt,{children:i}),N.jsxs(Qt,{flexDirection:"column",flexGrow:1,children:[N.jsx(ks,{fontSize:18,children:n}),N.jsx(ks,{fontSize:14,opacity:.5,children:e})]}),r&&N.jsx(Qt,{children:r})]})})}function L8(){return N.jsxs(Qt,{flexDirection:"column",gapRow:32,alignItems:"center",children:[N.jsxs(Qt,{flexDirection:"column",md:{flexDirection:"row"},gap:32,children:[N.jsx(Vi,{borderRadius:32,padding:16,children:N.jsxs(_p,{type:"plain",width:400,children:[N.jsx(kr,{subtitle:N.jsx(it,{children:"Subtitle"}),trailingAccessory:N.jsx(zc,{height:18,width:18,opacity:.3}),children:N.jsx(it,{children:"Title"})}),N.jsx(kr,{trailingAccessory:N.jsx(zc,{height:18,width:18,opacity:.3}),children:N.jsx(it,{children:"Title"})}),N.jsx(kr,{subtitle:N.jsx(it,{children:"Subtitle"}),selected:!0,trailingAccessory:N.jsx(zc,{height:18,width:18,opacity:.3}),children:N.jsx(it,{children:"Title"})})]})}),N.jsx(Vi,{borderRadius:32,padding:16,children:N.jsxs(_p,{type:"plain",width:400,children:[N.jsx(kr,{subtitle:N.jsx(it,{children:"Subtitle"}),leadingAccessory:N.jsx(Gt,{height:16,width:16}),trailingAccessory:N.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:N.jsx(Hc,{height:14,width:14})}),children:N.jsx(it,{children:"Title"})}),N.jsx(kr,{leadingAccessory:N.jsx(Gt,{height:16,width:16}),trailingAccessory:N.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:N.jsx(Hc,{height:14,width:14})}),children:N.jsx(it,{children:"Title"})}),N.jsx(kr,{subtitle:N.jsx(it,{children:"Subtitle"}),selected:!0,leadingAccessory:N.jsx(Gt,{height:16,width:16}),trailingAccessory:N.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:N.jsx(Hc,{height:14,width:14})}),children:N.jsx(it,{children:"Title"})})]})})]}),N.jsxs(Qt,{flexDirection:"column",md:{flexDirection:"row"},gap:32,children:[N.jsx(Vi,{borderRadius:32,padding:16,children:N.jsxs(_p,{type:"inset",width:400,children:[N.jsx(kr,{isFirst:!0,subtitle:N.jsx(it,{children:"Subtitle"}),trailingAccessory:N.jsx(zc,{height:18,width:18,opacity:.3}),children:N.jsx(it,{children:"Title"})}),N.jsx(kr,{trailingAccessory:N.jsx(zc,{height:18,width:18,opacity:.3}),children:N.jsx(it,{children:"Title"})}),N.jsx(kr,{isLast:!0,subtitle:N.jsx(it,{children:"Subtitle"}),trailingAccessory:N.jsx(zc,{height:18,width:18,opacity:.3}),children:N.jsx(it,{children:"Title"})})]})}),N.jsx(Vi,{borderRadius:32,padding:16,children:N.jsxs(_p,{type:"inset",width:400,children:[N.jsx(kr,{isFirst:!0,subtitle:N.jsx(it,{children:"Subtitle"}),leadingAccessory:N.jsx(Gt,{height:16,width:16}),trailingAccessory:N.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:N.jsx(Hc,{height:14,width:14})}),children:N.jsx(it,{children:"Title"})}),N.jsx(kr,{leadingAccessory:N.jsx(Gt,{height:16,width:16}),trailingAccessory:N.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:N.jsx(Hc,{height:14,width:14})}),children:N.jsx(it,{children:"Title"})}),N.jsx(kr,{isLast:!0,subtitle:N.jsx(it,{children:"Subtitle"}),leadingAccessory:N.jsx(Gt,{height:16,width:16}),trailingAccessory:N.jsx(Ct,{variant:"icon",size:"xs",platter:!0,children:N.jsx(Hc,{height:14,width:14})}),children:N.jsx(it,{children:"Title"})})]})})]})]})}const Sy=new G,P8={xs:{height:12,knobHeight:8},sm:{height:16,knobHeight:12},md:{height:28,knobHeight:20},lg:{height:44,knobHeight:32}};function Jo({value:n,defaultValue:e,onValueChange:t,min:i=0,max:r=100,step:s=1,size:o="md",icon:a,disabled:l,...A}){const[h,d]=Y.useState(e),f=n??h??50,g=Y.useRef(null),E=Y.useRef(t);E.current=t;const v=n!=null,y=Y.useMemo(()=>{let U=!1;function K(w){var q;if(g.current==null)return;Sy.copy(w.point),g.current.interactionPanel.worldToLocal(Sy);const b=Math.min(Math.max(Math.round(((Sy.x+.5)*(r-i)+i)/s)*s,i),r);v||d(b),(q=E.current)==null||q.call(E,b),w.stopPropagation()}return{onPointerDown(w){U=!0,K(w),w.target.setPointerCapture(w.pointerId)},onPointerMove(w){U&&K(w)},onPointerUp(w){U&&(U=!1,w.stopPropagation())}}},[r,i,v,s]),p=r-i,C=`${((1-.03)*bm(f/p,0,1)+.03)*100}%`,{height:I,knobHeight:B}=P8[o],R=(I-B)/2,M=o=="md"||o=="lg",T=o==="md"?12:18;return N.jsx(Qt,{ref:g,height:I,borderRadius:I/2,backgroundColor:Wt.background,borderColor:Wt.background,backgroundOpacity:.4,positionType:"relative",borderOpacity:.4,cursor:l?void 0:"pointer",border:2,borderBend:-.3,panelMaterialClass:km,...l?{}:y,...A,children:N.jsx(Qt,{positionType:"absolute",inset:-2,children:N.jsxs(Qt,{width:C,minWidth:I,height:"100%",borderRadius:I/2,backgroundOpacity:l?.35:.6,backgroundColor:Wt.foreground,children:[M&&N.jsx(Qt,{width:I,height:I,alignItems:"center",justifyContent:"center",children:N.jsx(ks,{color:Wt.foreground,width:T,height:T,opacity:l?.4:1,children:a})}),N.jsx(Qt,{positionType:"absolute",height:B,width:B,borderRadius:B/2,positionTop:R,positionRight:R,backgroundColor:Wt.foreground,backgroundOpacity:l?0:1})]})})})}function U8(){return N.jsxs(Vi,{borderRadius:32,padding:16,flexDirection:"column",md:{flexDirection:"row"},gapColumn:16,gapRow:32,children:[N.jsxs(Qt,{flexDirection:"column",gapRow:16,width:250,children:[N.jsx(Jo,{size:"xs",defaultValue:25}),N.jsx(Jo,{size:"sm",defaultValue:50}),N.jsx(Jo,{size:"md",defaultValue:75,icon:N.jsx(Gt,{})}),N.jsx(Jo,{size:"lg",defaultValue:100,icon:N.jsx(Gt,{})})]}),N.jsxs(Qt,{flexDirection:"column",gapRow:16,width:250,children:[N.jsx(Jo,{size:"xs",defaultValue:25,disabled:!0}),N.jsx(Jo,{size:"sm",defaultValue:50,disabled:!0}),N.jsx(Jo,{size:"md",defaultValue:75,disabled:!0,icon:N.jsx(Gt,{})}),N.jsx(Jo,{size:"lg",defaultValue:100,disabled:!0,icon:N.jsx(Gt,{})})]})]})}function F8(){return N.jsxs(Vi,{borderRadius:32,padding:16,flexDirection:"column",alignItems:"flex-start",gapRow:16,children:[N.jsxs(ng,{defaultValue:"1",children:[N.jsx(Fi,{value:"1",children:N.jsx(it,{children:"Label"})}),N.jsx(Fi,{value:"2",children:N.jsx(it,{children:"Label"})}),N.jsx(Fi,{value:"3",children:N.jsx(it,{children:"Label"})}),N.jsx(Fi,{value:"4",children:N.jsx(it,{children:"Long Label"})}),N.jsx(Fi,{value:"5",disabled:!0,children:N.jsx(it,{children:"Disabled"})})]}),N.jsxs(ng,{defaultValue:"1",children:[N.jsxs(Fi,{value:"1",children:[N.jsx(Gt,{height:12,width:12}),N.jsx(it,{children:"Label"})]}),N.jsxs(Fi,{value:"2",children:[N.jsx(Gt,{height:12,width:12}),N.jsx(it,{children:"Label"})]}),N.jsxs(Fi,{value:"3",children:[N.jsx(Gt,{height:12,width:12}),N.jsx(it,{children:"Label"})]}),N.jsxs(Fi,{value:"4",disabled:!0,children:[N.jsx(Gt,{height:12,width:12}),N.jsx(it,{children:"Disabled"})]})]}),N.jsxs(ng,{defaultValue:"1",disabled:!0,children:[N.jsx(Fi,{value:"1",children:N.jsx(it,{children:"Label"})}),N.jsx(Fi,{value:"2",children:N.jsx(it,{children:"Label"})}),N.jsx(Fi,{value:"3",children:N.jsx(it,{children:"Label"})}),N.jsx(Fi,{value:"4",children:N.jsx(it,{children:"Long Label"})}),N.jsx(Fi,{value:"5",disabled:!0,children:N.jsx(it,{children:"Disabled"})})]})]})}const MD=Y.createContext(void 0);function k8({value:n,defaultValue:e,onValueChange:t,...i}){const[r,s]=Y.useState(e),o=n!==void 0?n:r,a=Y.useRef(t);a.current=t;const[l,A]=Y.useState(!1),h=Y.useMemo(()=>({isExpanded:l,setIsExpanded:A,value:o,setValue:f=>{var g;s(f),(g=a.current)==null||g.call(a,f)}}),[l,o]),d=Y.useRef();return N.jsx(MD.Provider,{value:h,children:N.jsx(Vi,{minHeight:68,borderRadius:34,minWidth:68,padding:8,border:4,flexDirection:"column",gapRow:8,onHoverChange:f=>{f?d.current=setTimeout(()=>A(!0),300):(clearTimeout(d.current),A(!1))},...i})})}function Sp({value:n,children:e,icon:t,...i}){const{isExpanded:r,value:s,setValue:o}=Y.useContext(MD),a=s===n;return N.jsx(Qt,{minWidth:44,height:44,borderRadius:22,backgroundColor:Wt.foreground,backgroundOpacity:a?.2:0,hover:a?void 0:{backgroundOpacity:.1},cursor:"pointer",flexDirection:"row",alignItems:"center",gapColumn:10,...i,onClick:l=>{var A;o(n),(A=i.onClick)==null||A.call(i,l)},children:N.jsxs(ks,{color:Wt.foreground,fontSize:16,children:[N.jsx(Qt,{width:44,flexDirection:"row",justifyContent:"center",children:N.jsx(ks,{width:22,height:22,children:t})}),r&&N.jsx(Qt,{paddingRight:28,children:e})]})})}function O8(){return N.jsxs(k8,{defaultValue:"1",children:[N.jsx(Sp,{value:"1",icon:N.jsx(Gt,{}),children:N.jsx(it,{children:"Label"})}),N.jsx(Sp,{value:"2",icon:N.jsx(Gt,{}),children:N.jsx(it,{children:"Label"})}),N.jsx(Sp,{value:"3",icon:N.jsx(Gt,{}),children:N.jsx(it,{children:"Label"})}),N.jsx(Sp,{value:"4",icon:N.jsx(Gt,{}),children:N.jsx(it,{children:"Label"})})]})}function DA({value:n=0,...e}){return N.jsx(Qt,{width:"100%",height:4,borderRadius:2,backgroundColor:Wt.foreground,backgroundOpacity:.2,...e,children:N.jsx(Qt,{backgroundColor:Wt.foreground,backgroundOpacity:.8,minWidth:4,width:`${n*100}%`,height:4,borderRadius:2})})}function G8(){return N.jsxs(Vi,{width:200,borderRadius:32,padding:16,flexDirection:"column",gapRow:16,children:[N.jsx(DA,{value:0}),N.jsx(DA,{value:.25}),N.jsx(DA,{value:.5}),N.jsx(DA,{value:.75}),N.jsx(DA,{value:1})]})}const z8={sm:{diameter:20,pillWidth:3,pillHeight:6},md:{diameter:28,pillWidth:4,pillHeight:10},lg:{diameter:44,pillWidth:6,pillHeight:16}},wp=8;function wy({size:n="md",...e}){const t=Y.useMemo(()=>new Array(wp).fill(void 0).map(()=>hn(0)),[]);qr(({clock:o})=>{for(let a=0;aN.jsx(Qt,{positionType:"absolute",inset:0,transformRotateZ:a*360/wp,alignItems:"center",justifyContent:"flex-start",children:N.jsx(Qt,{backgroundOpacity:o,width:s,height:r,borderRadius:s/2,backgroundColor:Wt.foreground})},a))})}function H8(){return N.jsxs(Vi,{borderRadius:32,padding:16,flexDirection:"row",gapColumn:16,children:[N.jsx(wy,{size:"sm"}),N.jsx(wy,{size:"md"}),N.jsx(wy,{size:"lg"})]})}const My={card:D8,checkbox:b8,button:N8,list:L8,slider:U8,tabs:F8,"tab-bar":O8,progress:G8,loading:H8},V8="button";function W8(){const[n,e]=Y.useState(()=>{let s=new URLSearchParams(window.location.search).get("component");return(s==null||!(s in My))&&(s=V8),s}),t=r=>{const s=new URLSearchParams(window.location.search);s.set("component",r),history.replaceState(null,"","?"+s.toString()),e(r)},i=My[n];return N.jsxs(Iz,{events:M8,style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:[N.jsx(x8,{}),N.jsx("color",{attach:"background",args:["black"]}),N.jsx("ambientLight",{intensity:.5}),N.jsx("directionalLight",{intensity:1,position:[-5,5,10]}),N.jsx(Q8,{children:N.jsxs(W5,{overflow:"scroll",scrollbarColor:"black",backgroundColor:"white",gap:32,paddingX:32,alignItems:"center",padding:32,children:[N.jsx(Vi,{borderRadius:32,gap:32,paddingX:16,children:N.jsx(Qt,{flexDirection:"row",maxWidth:"100%",overflow:"scroll",paddingY:16,children:N.jsx(ng,{value:n,onValueChange:t,children:Object.keys(My).map(r=>N.jsx(Fi,{value:r,children:N.jsxs(it,{children:[r[0].toUpperCase(),r.slice(1)]})},r))})})}),N.jsx(Qt,{flexGrow:1,flexDirection:"row",justifyContent:"center",alignItems:"center",children:N.jsx(i,{})}),N.jsxs(Vi,{padding:8,flexDirection:"row",gap:8,alignItems:"center",children:[N.jsxs(it,{backgroundColor:"black",padding:8,borderRadius:16,marginLeft:8,children:["npx uikit component add apfel ",n]}),N.jsx(Ct,{onClick:()=>navigator.clipboard.writeText(`npx uikit component add apfel ${n}`),variant:"icon",children:N.jsx(t8,{})})]})]})})]})}KQ(document.getElementById("root")).render(N.jsx(Y.StrictMode,{children:N.jsx(W8,{})})); diff --git a/examples/apfel/index.html b/examples/apfel/index.html index 6c8b4d25..e943691e 100644 --- a/examples/apfel/index.html +++ b/examples/apfel/index.html @@ -5,7 +5,7 @@ Document - +
diff --git a/examples/auth/assets/index-nn0181pd.js b/examples/auth/assets/index-nn0181pd.js new file mode 100644 index 00000000..5f1c1557 --- /dev/null +++ b/examples/auth/assets/index-nn0181pd.js @@ -0,0 +1,4068 @@ +var Bb=Object.defineProperty;var _b=(n,e,t)=>e in n?Bb(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var We=(n,e,t)=>(_b(n,typeof e!="symbol"?e+"":e,t),t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function Yw(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Xw={exports:{}},mg={},Jw={exports:{}},Ot={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Mh=Symbol.for("react.element"),Sb=Symbol.for("react.portal"),wb=Symbol.for("react.fragment"),Mb=Symbol.for("react.strict_mode"),Qb=Symbol.for("react.profiler"),Rb=Symbol.for("react.provider"),Tb=Symbol.for("react.context"),Db=Symbol.for("react.forward_ref"),bb=Symbol.for("react.suspense"),Nb=Symbol.for("react.memo"),Lb=Symbol.for("react.lazy"),EB=Symbol.iterator;function Pb(n){return n===null||typeof n!="object"?null:(n=EB&&n[EB]||n["@@iterator"],typeof n=="function"?n:null)}var Kw={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},qw=Object.assign,jw={};function Eu(n,e,t){this.props=n,this.context=e,this.refs=jw,this.updater=t||Kw}Eu.prototype.isReactComponent={};Eu.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Eu.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function Zw(){}Zw.prototype=Eu.prototype;function YI(n,e,t){this.props=n,this.context=e,this.refs=jw,this.updater=t||Kw}var XI=YI.prototype=new Zw;XI.constructor=YI;qw(XI,Eu.prototype);XI.isPureReactComponent=!0;var yB=Array.isArray,$w=Object.prototype.hasOwnProperty,JI={current:null},eM={key:!0,ref:!0,__self:!0,__source:!0};function tM(n,e,t){var i,r={},s=null,o=null;if(e!=null)for(i in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)$w.call(e,i)&&!eM.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(a===1)r.children=t;else if(1>>1,ye=U[ue];if(0>>1;uer(O,ee))kr(F,O)?(U[ue]=F,U[k]=ee,ue=k):(U[ue]=O,U[V]=ee,ue=V);else if(kr(F,ee))U[ue]=F,U[k]=ee,ue=k;else break e}}return $}function r(U,$){var ee=U.sortIndex-$.sortIndex;return ee!==0?ee:U.id-$.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var c=[],A=[],h=1,f=null,d=3,m=!1,E=!1,x=!1,y=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(U){for(var $=t(A);$!==null;){if($.callback===null)i(A);else if($.startTime<=U)i(A),$.sortIndex=$.expirationTime,e(c,$);else break;$=t(A)}}function B(U){if(x=!1,I(U),!E)if(t(c)!==null)E=!0,te(R);else{var $=t(A);$!==null&&ce(B,$.startTime-U)}}function R(U,$){E=!1,x&&(x=!1,p(P),P=-1),m=!0;var ee=d;try{for(I($),f=t(c);f!==null&&(!(f.expirationTime>$)||U&&!b());){var ue=f.callback;if(typeof ue=="function"){f.callback=null,d=f.priorityLevel;var ye=ue(f.expirationTime<=$);$=n.unstable_now(),typeof ye=="function"?f.callback=ye:f===t(c)&&i(c),I($)}else i(c);f=t(c)}if(f!==null)var ke=!0;else{var V=t(A);V!==null&&ce(B,V.startTime-$),ke=!1}return ke}finally{f=null,d=ee,m=!1}}var M=!1,T=null,P=-1,J=5,w=-1;function b(){return!(n.unstable_now()-wU||125ue?(U.sortIndex=ee,e(A,U),t(c)===null&&U===t(A)&&(x?(p(P),P=-1):x=!0,ce(B,ee-ue))):(U.sortIndex=ye,e(c,U),E||m||(E=!0,te(R))),U},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(U){var $=d;return function(){var ee=d;d=$;try{return U.apply(this,arguments)}finally{d=ee}}}})(sM);rM.exports=sM;var Xb=rM.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var oM=q,xr=Xb;function Fe(n){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+n,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),WE=Object.prototype.hasOwnProperty,Jb=/^[: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]*$/,vB={},CB={};function Kb(n){return WE.call(CB,n)?!0:WE.call(vB,n)?!1:Jb.test(n)?CB[n]=!0:(vB[n]=!0,!1)}function qb(n,e,t,i){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:t!==null?!t.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function jb(n,e,t,i){if(e===null||typeof e>"u"||qb(n,e,t,i))return!0;if(i)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Yi(n,e,t,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=n,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var Ei={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){Ei[n]=new Yi(n,0,!1,n,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var e=n[0];Ei[e]=new Yi(e,1,!1,n[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(n){Ei[n]=new Yi(n,2,!1,n.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){Ei[n]=new Yi(n,2,!1,n,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(n){Ei[n]=new Yi(n,3,!1,n.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(n){Ei[n]=new Yi(n,3,!0,n,null,!1,!1)});["capture","download"].forEach(function(n){Ei[n]=new Yi(n,4,!1,n,null,!1,!1)});["cols","rows","size","span"].forEach(function(n){Ei[n]=new Yi(n,6,!1,n,null,!1,!1)});["rowSpan","start"].forEach(function(n){Ei[n]=new Yi(n,5,!1,n.toLowerCase(),null,!1,!1)});var qI=/[\-:]([a-z])/g;function jI(n){return n[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(n){var e=n.replace(qI,jI);Ei[e]=new Yi(e,1,!1,n,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var e=n.replace(qI,jI);Ei[e]=new Yi(e,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(n){var e=n.replace(qI,jI);Ei[e]=new Yi(e,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(n){Ei[n]=new Yi(n,1,!1,n.toLowerCase(),null,!1,!1)});Ei.xlinkHref=new Yi("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(n){Ei[n]=new Yi(n,1,!1,n.toLowerCase(),null,!0,!0)});function ZI(n,e,t,i){var r=Ei.hasOwnProperty(e)?Ei[e]:null;(r!==null?r.type!==0:i||!(2a||r[o]!==s[a]){var c=` +`+r[o].replace(" at new "," at ");return n.displayName&&c.includes("")&&(c=c.replace("",n.displayName)),c}while(1<=o&&0<=a);break}}}finally{g0=!1,Error.prepareStackTrace=t}return(n=n?n.displayName||n.name:"")?mA(n):""}function Zb(n){switch(n.tag){case 5:return mA(n.type);case 16:return mA("Lazy");case 13:return mA("Suspense");case 19:return mA("SuspenseList");case 0:case 2:case 15:return n=m0(n.type,!1),n;case 11:return n=m0(n.type.render,!1),n;case 1:return n=m0(n.type,!0),n;default:return""}}function KE(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case Uc:return"Fragment";case Pc:return"Portal";case YE:return"Profiler";case $I:return"StrictMode";case XE:return"Suspense";case JE:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case cM:return(n.displayName||"Context")+".Consumer";case lM:return(n._context.displayName||"Context")+".Provider";case ev:var e=n.render;return n=n.displayName,n||(n=e.displayName||e.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case tv:return e=n.displayName||null,e!==null?e:KE(n.type)||"Memo";case $o:e=n._payload,n=n._init;try{return KE(n(e))}catch{}}return null}function $b(n){var e=n.type;switch(n.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=e.render,n=n.displayName||n.name||"",e.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return KE(e);case 8:return e===$I?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function va(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function AM(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function e2(n){var e=AM(n)?"checked":"value",t=Object.getOwnPropertyDescriptor(n.constructor.prototype,e),i=""+n[e];if(!n.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,s=t.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(n,e,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function Vf(n){n._valueTracker||(n._valueTracker=e2(n))}function hM(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=AM(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}function Up(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function qE(n,e){var t=e.checked;return Rn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??n._wrapperState.initialChecked})}function BB(n,e){var t=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;t=va(e.value!=null?e.value:t),n._wrapperState={initialChecked:i,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function fM(n,e){e=e.checked,e!=null&&ZI(n,"checked",e,!1)}function jE(n,e){fM(n,e);var t=va(e.value),i=e.type;if(t!=null)i==="number"?(t===0&&n.value===""||n.value!=t)&&(n.value=""+t):n.value!==""+t&&(n.value=""+t);else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}e.hasOwnProperty("value")?ZE(n,e.type,t):e.hasOwnProperty("defaultValue")&&ZE(n,e.type,va(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(n.defaultChecked=!!e.defaultChecked)}function _B(n,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+n._wrapperState.initialValue,t||e===n.value||(n.value=e),n.defaultValue=e}t=n.name,t!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,t!==""&&(n.name=t)}function ZE(n,e,t){(e!=="number"||Up(n.ownerDocument)!==n)&&(t==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+t&&(n.defaultValue=""+t))}var EA=Array.isArray;function $c(n,e,t,i){if(n=n.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=Wf.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;e.firstChild;)n.appendChild(e.firstChild)}});function HA(n,e){if(e){var t=n.firstChild;if(t&&t===n.lastChild&&t.nodeType===3){t.nodeValue=e;return}}n.textContent=e}var SA={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},t2=["Webkit","ms","Moz","O"];Object.keys(SA).forEach(function(n){t2.forEach(function(e){e=e+n.charAt(0).toUpperCase()+n.substring(1),SA[e]=SA[n]})});function mM(n,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||SA.hasOwnProperty(n)&&SA[n]?(""+e).trim():e+"px"}function EM(n,e){n=n.style;for(var t in e)if(e.hasOwnProperty(t)){var i=t.indexOf("--")===0,r=mM(t,e[t],i);t==="float"&&(t="cssFloat"),i?n.setProperty(t,r):n[t]=r}}var n2=Rn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ty(n,e){if(e){if(n2[n]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Fe(137,n));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Fe(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Fe(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Fe(62))}}function ny(n,e){if(n.indexOf("-")===-1)return typeof e.is=="string";switch(n){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!1;default:return!0}}var iy=null;function nv(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var ry=null,eu=null,tu=null;function MB(n){if(n=Th(n)){if(typeof ry!="function")throw Error(Fe(280));var e=n.stateNode;e&&(e=Cg(e),ry(n.stateNode,n.type,e))}}function yM(n){eu?tu?tu.push(n):tu=[n]:eu=n}function IM(){if(eu){var n=eu,e=tu;if(tu=eu=null,MB(n),e)for(n=0;n>>=0,n===0?32:31-(f2(n)/d2|0)|0}var Yf=64,Xf=4194304;function yA(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function Op(n,e){var t=n.pendingLanes;if(t===0)return 0;var i=0,r=n.suspendedLanes,s=n.pingedLanes,o=t&268435455;if(o!==0){var a=o&~r;a!==0?i=yA(a):(s&=o,s!==0&&(i=yA(s)))}else o=t&~r,o!==0?i=yA(o):s!==0&&(i=yA(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=t&16),e=n.entangledLanes,e!==0)for(n=n.entanglements,e&=i;0t;t++)e.push(n);return e}function Qh(n,e,t){n.pendingLanes|=e,e!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,e=31-rs(e),n[e]=t}function E2(n,e){var t=n.pendingLanes&~e;n.pendingLanes=e,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=e,n.mutableReadLanes&=e,n.entangledLanes&=e,e=n.entanglements;var i=n.eventTimes;for(n=n.expirationTimes;0=MA),UB=" ",FB=!1;function GM(n,e){switch(n){case"keyup":return Y2.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function OM(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Fc=!1;function J2(n,e){switch(n){case"compositionend":return OM(e);case"keypress":return e.which!==32?null:(FB=!0,UB);case"textInput":return n=e.data,n===UB&&FB?null:n;default:return null}}function K2(n,e){if(Fc)return n==="compositionend"||!uv&&GM(n,e)?(n=FM(),hp=av=ra=null,Fc=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=HB(t)}}function WM(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?WM(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function YM(){for(var n=window,e=Up();e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=Up(n.document)}return e}function Av(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}function rN(n){var e=YM(),t=n.focusedElem,i=n.selectionRange;if(e!==t&&t&&t.ownerDocument&&WM(t.ownerDocument.documentElement,t)){if(i!==null&&Av(t)){if(e=i.start,n=i.end,n===void 0&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if(n=(e=t.ownerDocument||document)&&e.defaultView||window,n.getSelection){n=n.getSelection();var r=t.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!n.extend&&s>i&&(r=i,i=s,s=r),r=zB(t,s);var o=zB(t,i);r&&o&&(n.rangeCount!==1||n.anchorNode!==r.node||n.anchorOffset!==r.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),n.removeAllRanges(),s>i?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}}for(e=[],n=t;n=n.parentNode;)n.nodeType===1&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,kc=null,uy=null,RA=null,Ay=!1;function VB(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;Ay||kc==null||kc!==Up(i)||(i=kc,"selectionStart"in i&&Av(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),RA&&JA(RA,i)||(RA=i,i=Vp(uy,"onSelect"),0Hc||(n.current=my[Hc],my[Hc]=null,Hc--)}function dn(n,e){Hc++,my[Hc]=n.current,n.current=e}var Ca={},Ti=Sa(Ca),nr=Sa(!1),bl=Ca;function lu(n,e){var t=n.type.contextTypes;if(!t)return Ca;var i=n.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in t)r[s]=e[s];return i&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=e,n.__reactInternalMemoizedMaskedChildContext=r),r}function ir(n){return n=n.childContextTypes,n!=null}function Yp(){In(nr),In(Ti)}function jB(n,e,t){if(Ti.current!==Ca)throw Error(Fe(168));dn(Ti,e),dn(nr,t)}function t1(n,e,t){var i=n.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(Fe(108,$b(n)||"Unknown",r));return Rn({},t,i)}function Xp(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||Ca,bl=Ti.current,dn(Ti,n),dn(nr,nr.current),!0}function ZB(n,e,t){var i=n.stateNode;if(!i)throw Error(Fe(169));t?(n=t1(n,e,bl),i.__reactInternalMemoizedMergedChildContext=n,In(nr),In(Ti),dn(Ti,n)):In(nr),dn(nr,t)}var to=null,xg=!1,T0=!1;function n1(n){to===null?to=[n]:to.push(n)}function gN(n){xg=!0,n1(n)}function wa(){if(!T0&&to!==null){T0=!0;var n=0,e=an;try{var t=to;for(an=1;n>=o,r-=o,ro=1<<32-rs(e)+r|t<P?(J=T,T=null):J=T.sibling;var w=d(p,T,I[P],B);if(w===null){T===null&&(T=J);break}n&&T&&w.alternate===null&&e(p,T),C=s(w,C,P),M===null?R=w:M.sibling=w,M=w,T=J}if(P===I.length)return t(p,T),xn&&Al(p,P),R;if(T===null){for(;PP?(J=T,T=null):J=T.sibling;var b=d(p,T,w.value,B);if(b===null){T===null&&(T=J);break}n&&T&&b.alternate===null&&e(p,T),C=s(b,C,P),M===null?R=b:M.sibling=b,M=b,T=J}if(w.done)return t(p,T),xn&&Al(p,P),R;if(T===null){for(;!w.done;P++,w=I.next())w=f(p,w.value,B),w!==null&&(C=s(w,C,P),M===null?R=w:M.sibling=w,M=w);return xn&&Al(p,P),R}for(T=i(p,T);!w.done;P++,w=I.next())w=m(T,p,P,w.value,B),w!==null&&(n&&w.alternate!==null&&T.delete(w.key===null?P:w.key),C=s(w,C,P),M===null?R=w:M.sibling=w,M=w);return n&&T.forEach(function(K){return e(p,K)}),xn&&Al(p,P),R}function y(p,C,I,B){if(typeof I=="object"&&I!==null&&I.type===Uc&&I.key===null&&(I=I.props.children),typeof I=="object"&&I!==null){switch(I.$$typeof){case zf:e:{for(var R=I.key,M=C;M!==null;){if(M.key===R){if(R=I.type,R===Uc){if(M.tag===7){t(p,M.sibling),C=r(M,I.props.children),C.return=p,p=C;break e}}else if(M.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===$o&&s_(R)===M.type){t(p,M.sibling),C=r(M,I.props),C.ref=tA(p,M,I),C.return=p,p=C;break e}t(p,M);break}else e(p,M);M=M.sibling}I.type===Uc?(C=wl(I.props.children,p.mode,B,I.key),C.return=p,p=C):(B=Ip(I.type,I.key,I.props,null,p.mode,B),B.ref=tA(p,C,I),B.return=p,p=B)}return o(p);case Pc:e:{for(M=I.key;C!==null;){if(C.key===M)if(C.tag===4&&C.stateNode.containerInfo===I.containerInfo&&C.stateNode.implementation===I.implementation){t(p,C.sibling),C=r(C,I.children||[]),C.return=p,p=C;break e}else{t(p,C);break}else e(p,C);C=C.sibling}C=k0(I,p.mode,B),C.return=p,p=C}return o(p);case $o:return M=I._init,y(p,C,M(I._payload),B)}if(EA(I))return E(p,C,I,B);if(qu(I))return x(p,C,I,B);ed(p,I)}return typeof I=="string"&&I!==""||typeof I=="number"?(I=""+I,C!==null&&C.tag===6?(t(p,C.sibling),C=r(C,I),C.return=p,p=C):(t(p,C),C=F0(I,p.mode,B),C.return=p,p=C),o(p)):t(p,C)}return y}var uu=u1(!0),A1=u1(!1),Dh={},Rs=Sa(Dh),ZA=Sa(Dh),$A=Sa(Dh);function vl(n){if(n===Dh)throw Error(Fe(174));return n}function Iv(n,e){switch(dn($A,e),dn(ZA,n),dn(Rs,Dh),n=e.nodeType,n){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:ey(null,"");break;default:n=n===8?e.parentNode:e,e=n.namespaceURI||null,n=n.tagName,e=ey(e,n)}In(Rs),dn(Rs,e)}function Au(){In(Rs),In(ZA),In($A)}function h1(n){vl($A.current);var e=vl(Rs.current),t=ey(e,n.type);e!==t&&(dn(ZA,n),dn(Rs,t))}function vv(n){ZA.current===n&&(In(Rs),In(ZA))}var wn=Sa(0);function $p(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var D0=[];function Cv(){for(var n=0;nt?t:4,n(!0);var i=b0.transition;b0.transition={};try{n(!1),e()}finally{an=t,b0.transition=i}}function M1(){return Hr().memoizedState}function IN(n,e,t){var i=fa(n);if(t={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null},Q1(n))R1(e,t);else if(t=o1(n,e,t,i),t!==null){var r=Hi();ss(t,n,i,r),T1(t,e,i)}}function vN(n,e,t){var i=fa(n),r={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null};if(Q1(n))R1(e,r);else{var s=n.alternate;if(n.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,t);if(r.hasEagerState=!0,r.eagerState=a,ls(a,o)){var c=e.interleaved;c===null?(r.next=r,Ev(e)):(r.next=c.next,c.next=r),e.interleaved=r;return}}catch{}finally{}t=o1(n,e,r,i),t!==null&&(r=Hi(),ss(t,n,i,r),T1(t,e,i))}}function Q1(n){var e=n.alternate;return n===Qn||e!==null&&e===Qn}function R1(n,e){TA=eg=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function T1(n,e,t){if(t&4194240){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,rv(n,t)}}var tg={readContext:Or,useCallback:Bi,useContext:Bi,useEffect:Bi,useImperativeHandle:Bi,useInsertionEffect:Bi,useLayoutEffect:Bi,useMemo:Bi,useReducer:Bi,useRef:Bi,useState:Bi,useDebugValue:Bi,useDeferredValue:Bi,useTransition:Bi,useMutableSource:Bi,useSyncExternalStore:Bi,useId:Bi,unstable_isNewReconciler:!1},CN={readContext:Or,useCallback:function(n,e){return xs().memoizedState=[n,e===void 0?null:e],n},useContext:Or,useEffect:a_,useImperativeHandle:function(n,e,t){return t=t!=null?t.concat([n]):null,gp(4194308,4,x1.bind(null,e,n),t)},useLayoutEffect:function(n,e){return gp(4194308,4,n,e)},useInsertionEffect:function(n,e){return gp(4,2,n,e)},useMemo:function(n,e){var t=xs();return e=e===void 0?null:e,n=n(),t.memoizedState=[n,e],n},useReducer:function(n,e,t){var i=xs();return e=t!==void 0?t(e):e,i.memoizedState=i.baseState=e,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:e},i.queue=n,n=n.dispatch=IN.bind(null,Qn,n),[i.memoizedState,n]},useRef:function(n){var e=xs();return n={current:n},e.memoizedState=n},useState:o_,useDebugValue:wv,useDeferredValue:function(n){return xs().memoizedState=n},useTransition:function(){var n=o_(!1),e=n[0];return n=yN.bind(null,n[1]),xs().memoizedState=n,[e,n]},useMutableSource:function(){},useSyncExternalStore:function(n,e,t){var i=Qn,r=xs();if(xn){if(t===void 0)throw Error(Fe(407));t=t()}else{if(t=e(),ai===null)throw Error(Fe(349));Ll&30||p1(i,e,t)}r.memoizedState=t;var s={value:t,getSnapshot:e};return r.queue=s,a_(m1.bind(null,i,s,n),[n]),i.flags|=2048,nh(9,g1.bind(null,i,s,t,e),void 0,null),t},useId:function(){var n=xs(),e=ai.identifierPrefix;if(xn){var t=so,i=ro;t=(i&~(1<<32-rs(i)-1)).toString(32)+t,e=":"+e+"R"+t,t=eh++,0<\/script>",n=n.removeChild(n.firstChild)):typeof i.is=="string"?n=o.createElement(t,{is:i.is}):(n=o.createElement(t),t==="select"&&(o=n,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):n=o.createElementNS(n,t),n[_s]=e,n[jA]=i,G1(n,e,!1,!1),e.stateNode=n;e:{switch(o=ny(t,i),t){case"dialog":mn("cancel",n),mn("close",n),r=i;break;case"iframe":case"object":case"embed":mn("load",n),r=i;break;case"video":case"audio":for(r=0;rfu&&(e.flags|=128,i=!0,nA(s,!1),e.lanes=4194304)}else{if(!i)if(n=$p(o),n!==null){if(e.flags|=128,i=!0,t=n.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),nA(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!xn)return _i(e),null}else 2*Hn()-s.renderingStartTime>fu&&t!==1073741824&&(e.flags|=128,i=!0,nA(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(t=s.last,t!==null?t.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Hn(),e.sibling=null,t=wn.current,dn(wn,i?t&1|2:t&1),e):(_i(e),null);case 22:case 23:return bv(),i=e.memoizedState!==null,n!==null&&n.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?gr&1073741824&&(_i(e),e.subtreeFlags&6&&(e.flags|=8192)):_i(e),null;case 24:return null;case 25:return null}throw Error(Fe(156,e.tag))}function RN(n,e){switch(fv(e),e.tag){case 1:return ir(e.type)&&Yp(),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return Au(),In(nr),In(Ti),Cv(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 5:return vv(e),null;case 13:if(In(wn),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(Fe(340));cu()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return In(wn),null;case 4:return Au(),null;case 10:return mv(e.type._context),null;case 22:case 23:return bv(),null;case 24:return null;default:return null}}var nd=!1,Qi=!1,TN=typeof WeakSet=="function"?WeakSet:Set,nt=null;function Yc(n,e){var t=n.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(i){Nn(n,e,i)}else t.current=null}function Qy(n,e,t){try{t()}catch(i){Nn(n,e,i)}}var g_=!1;function DN(n,e){if(hy=Hp,n=YM(),Av(n)){if("selectionStart"in n)var t={start:n.selectionStart,end:n.selectionEnd};else e:{t=(t=n.ownerDocument)&&t.defaultView||window;var i=t.getSelection&&t.getSelection();if(i&&i.rangeCount!==0){t=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{t.nodeType,s.nodeType}catch{t=null;break e}var o=0,a=-1,c=-1,A=0,h=0,f=n,d=null;t:for(;;){for(var m;f!==t||r!==0&&f.nodeType!==3||(a=o+r),f!==s||i!==0&&f.nodeType!==3||(c=o+i),f.nodeType===3&&(o+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===n)break t;if(d===t&&++A===r&&(a=o),d===s&&++h===i&&(c=o),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}t=a===-1||c===-1?null:{start:a,end:c}}else t=null}t=t||{start:0,end:0}}else t=null;for(fy={focusedElem:n,selectionRange:t},Hp=!1,nt=e;nt!==null;)if(e=nt,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,nt=n;else for(;nt!==null;){e=nt;try{var E=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var x=E.memoizedProps,y=E.memoizedState,p=e.stateNode,C=p.getSnapshotBeforeUpdate(e.elementType===e.type?x:Zr(e.type,x),y);p.__reactInternalSnapshotBeforeUpdate=C}break;case 3:var I=e.stateNode.containerInfo;I.nodeType===1?I.textContent="":I.nodeType===9&&I.documentElement&&I.removeChild(I.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Fe(163))}}catch(B){Nn(e,e.return,B)}if(n=e.sibling,n!==null){n.return=e.return,nt=n;break}nt=e.return}return E=g_,g_=!1,E}function DA(n,e,t){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&n)===n){var s=r.destroy;r.destroy=void 0,s!==void 0&&Qy(e,t,s)}r=r.next}while(r!==i)}}function Sg(n,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&n)===n){var i=t.create;t.destroy=i()}t=t.next}while(t!==e)}}function Ry(n){var e=n.ref;if(e!==null){var t=n.stateNode;switch(n.tag){case 5:n=t;break;default:n=t}typeof e=="function"?e(n):e.current=n}}function z1(n){var e=n.alternate;e!==null&&(n.alternate=null,z1(e)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(e=n.stateNode,e!==null&&(delete e[_s],delete e[jA],delete e[gy],delete e[dN],delete e[pN])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function V1(n){return n.tag===5||n.tag===3||n.tag===4}function m_(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||V1(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function Ty(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(n,e):t.insertBefore(n,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(n,t)):(e=t,e.appendChild(n)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=Wp));else if(i!==4&&(n=n.child,n!==null))for(Ty(n,e,t),n=n.sibling;n!==null;)Ty(n,e,t),n=n.sibling}function Dy(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.insertBefore(n,e):t.appendChild(n);else if(i!==4&&(n=n.child,n!==null))for(Dy(n,e,t),n=n.sibling;n!==null;)Dy(n,e,t),n=n.sibling}var di=null,es=!1;function Oo(n,e,t){for(t=t.child;t!==null;)W1(n,e,t),t=t.sibling}function W1(n,e,t){if(Qs&&typeof Qs.onCommitFiberUnmount=="function")try{Qs.onCommitFiberUnmount(Eg,t)}catch{}switch(t.tag){case 5:Qi||Yc(t,e);case 6:var i=di,r=es;di=null,Oo(n,e,t),di=i,es=r,di!==null&&(es?(n=di,t=t.stateNode,n.nodeType===8?n.parentNode.removeChild(t):n.removeChild(t)):di.removeChild(t.stateNode));break;case 18:di!==null&&(es?(n=di,t=t.stateNode,n.nodeType===8?R0(n.parentNode,t):n.nodeType===1&&R0(n,t),YA(n)):R0(di,t.stateNode));break;case 4:i=di,r=es,di=t.stateNode.containerInfo,es=!0,Oo(n,e,t),di=i,es=r;break;case 0:case 11:case 14:case 15:if(!Qi&&(i=t.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&Qy(t,e,o),r=r.next}while(r!==i)}Oo(n,e,t);break;case 1:if(!Qi&&(Yc(t,e),i=t.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=t.memoizedProps,i.state=t.memoizedState,i.componentWillUnmount()}catch(a){Nn(t,e,a)}Oo(n,e,t);break;case 21:Oo(n,e,t);break;case 22:t.mode&1?(Qi=(i=Qi)||t.memoizedState!==null,Oo(n,e,t),Qi=i):Oo(n,e,t);break;default:Oo(n,e,t)}}function E_(n){var e=n.updateQueue;if(e!==null){n.updateQueue=null;var t=n.stateNode;t===null&&(t=n.stateNode=new TN),e.forEach(function(i){var r=ON.bind(null,n,i);t.has(i)||(t.add(i),i.then(r,r))})}}function Jr(n,e){var t=e.deletions;if(t!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=Hn()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*NN(i/1960))-i,10n?16:n,sa===null)var i=!1;else{if(n=sa,sa=null,rg=0,Jt&6)throw Error(Fe(331));var r=Jt;for(Jt|=4,nt=n.current;nt!==null;){var s=nt,o=s.child;if(nt.flags&16){var a=s.deletions;if(a!==null){for(var c=0;cHn()-Tv?Sl(n,0):Rv|=t),rr(n,e)}function $1(n,e){e===0&&(n.mode&1?(e=Xf,Xf<<=1,!(Xf&130023424)&&(Xf=4194304)):e=1);var t=Hi();n=ho(n,e),n!==null&&(Qh(n,e,t),rr(n,t))}function GN(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),$1(n,t)}function ON(n,e){var t=0;switch(n.tag){case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;default:throw Error(Fe(314))}i!==null&&i.delete(e),$1(n,t)}var eQ;eQ=function(n,e,t){if(n!==null)if(n.memoizedProps!==e.pendingProps||nr.current)tr=!0;else{if(!(n.lanes&t)&&!(e.flags&128))return tr=!1,MN(n,e,t);tr=!!(n.flags&131072)}else tr=!1,xn&&e.flags&1048576&&i1(e,Kp,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;mp(n,e),n=e.pendingProps;var r=lu(e,Ti.current);iu(e,t),r=Bv(null,e,i,n,r,t);var s=_v();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,ir(i)?(s=!0,Xp(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,yv(e),r.updater=Bg,e.stateNode=r,r._reactInternals=e,Cy(e,i,n,t),e=_y(null,e,i,!0,s,t)):(e.tag=0,xn&&s&&hv(e),ki(null,e,r,t),e=e.child),e;case 16:i=e.elementType;e:{switch(mp(n,e),n=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=zN(i),n=Zr(i,n),r){case 0:e=By(null,e,i,n,t);break e;case 1:e=f_(null,e,i,n,t);break e;case 11:e=A_(null,e,i,n,t);break e;case 14:e=h_(null,e,i,Zr(i.type,n),t);break e}throw Error(Fe(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Zr(i,r),By(n,e,i,r,t);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Zr(i,r),f_(n,e,i,r,t);case 3:e:{if(U1(e),n===null)throw Error(Fe(387));i=e.pendingProps,s=e.memoizedState,r=s.element,a1(n,e),Zp(e,i,null,t);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=hu(Error(Fe(423)),e),e=d_(n,e,i,t,r);break e}else if(i!==r){r=hu(Error(Fe(424)),e),e=d_(n,e,i,t,r);break e}else for(yr=ua(e.stateNode.containerInfo.firstChild),vr=e,xn=!0,ns=null,t=A1(e,null,i,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(cu(),i===r){e=fo(n,e,t);break e}ki(n,e,i,t)}e=e.child}return e;case 5:return h1(e),n===null&&yy(e),i=e.type,r=e.pendingProps,s=n!==null?n.memoizedProps:null,o=r.children,dy(i,r)?o=null:s!==null&&dy(i,s)&&(e.flags|=32),P1(n,e),ki(n,e,o,t),e.child;case 6:return n===null&&yy(e),null;case 13:return F1(n,e,t);case 4:return Iv(e,e.stateNode.containerInfo),i=e.pendingProps,n===null?e.child=uu(e,null,i,t):ki(n,e,i,t),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Zr(i,r),A_(n,e,i,r,t);case 7:return ki(n,e,e.pendingProps,t),e.child;case 8:return ki(n,e,e.pendingProps.children,t),e.child;case 12:return ki(n,e,e.pendingProps.children,t),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,dn(qp,i._currentValue),i._currentValue=o,s!==null)if(ls(s.value,o)){if(s.children===r.children&&!nr.current){e=fo(n,e,t);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var c=a.firstContext;c!==null;){if(c.context===i){if(s.tag===1){c=lo(-1,t&-t),c.tag=2;var A=s.updateQueue;if(A!==null){A=A.shared;var h=A.pending;h===null?c.next=c:(c.next=h.next,h.next=c),A.pending=c}}s.lanes|=t,c=s.alternate,c!==null&&(c.lanes|=t),Iy(s.return,t,e),a.lanes|=t;break}c=c.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(Fe(341));o.lanes|=t,a=o.alternate,a!==null&&(a.lanes|=t),Iy(o,t,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}ki(n,e,r.children,t),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,iu(e,t),r=Or(r),i=i(r),e.flags|=1,ki(n,e,i,t),e.child;case 14:return i=e.type,r=Zr(i,e.pendingProps),r=Zr(i.type,r),h_(n,e,i,r,t);case 15:return N1(n,e,e.type,e.pendingProps,t);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Zr(i,r),mp(n,e),e.tag=1,ir(i)?(n=!0,Xp(e)):n=!1,iu(e,t),c1(e,i,r),Cy(e,i,r,t),_y(null,e,i,!0,n,t);case 19:return k1(n,e,t);case 22:return L1(n,e,t)}throw Error(Fe(156,e.tag))};function tQ(n,e){return wM(n,e)}function HN(n,e,t,i){this.tag=n,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Fr(n,e,t,i){return new HN(n,e,t,i)}function Lv(n){return n=n.prototype,!(!n||!n.isReactComponent)}function zN(n){if(typeof n=="function")return Lv(n)?1:0;if(n!=null){if(n=n.$$typeof,n===ev)return 11;if(n===tv)return 14}return 2}function da(n,e){var t=n.alternate;return t===null?(t=Fr(n.tag,e,n.key,n.mode),t.elementType=n.elementType,t.type=n.type,t.stateNode=n.stateNode,t.alternate=n,n.alternate=t):(t.pendingProps=e,t.type=n.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=n.flags&14680064,t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=n.sibling,t.index=n.index,t.ref=n.ref,t}function Ip(n,e,t,i,r,s){var o=2;if(i=n,typeof n=="function")Lv(n)&&(o=1);else if(typeof n=="string")o=5;else e:switch(n){case Uc:return wl(t.children,r,s,e);case $I:o=8,r|=8;break;case YE:return n=Fr(12,t,e,r|2),n.elementType=YE,n.lanes=s,n;case XE:return n=Fr(13,t,e,r),n.elementType=XE,n.lanes=s,n;case JE:return n=Fr(19,t,e,r),n.elementType=JE,n.lanes=s,n;case uM:return Mg(t,r,s,e);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case lM:o=10;break e;case cM:o=9;break e;case ev:o=11;break e;case tv:o=14;break e;case $o:o=16,i=null;break e}throw Error(Fe(130,n==null?n:typeof n,""))}return e=Fr(o,t,e,r),e.elementType=n,e.type=i,e.lanes=s,e}function wl(n,e,t,i){return n=Fr(7,n,i,e),n.lanes=t,n}function Mg(n,e,t,i){return n=Fr(22,n,i,e),n.elementType=uM,n.lanes=t,n.stateNode={isHidden:!1},n}function F0(n,e,t){return n=Fr(6,n,null,e),n.lanes=t,n}function k0(n,e,t){return e=Fr(4,n.children!==null?n.children:[],n.key,e),e.lanes=t,e.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},e}function VN(n,e,t,i,r){this.tag=e,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=y0(0),this.expirationTimes=y0(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=y0(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function Pv(n,e,t,i,r,s,o,a,c){return n=new VN(n,e,t,a,c),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Fr(3,null,null,e),n.current=s,s.stateNode=n,s.memoizedState={element:i,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},yv(s),n}function WN(n,e,t){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(sQ)}catch(n){console.error(n)}}sQ(),iM.exports=Br;var qN=iM.exports,oQ,S_=qN;oQ=S_.createRoot,S_.hydrateRoot;/** + * @license + * Copyright 2010-2023 Three.js Authors + * SPDX-License-Identifier: MIT + */const bg="161",jN={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},ZN={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},aQ=0,Uy=1,lQ=2,$N=3,cQ=0,Ng=1,LA=2,$r=3,zr=0,zi=1,Ss=2,co=0,Ml=1,Fy=2,ky=3,Gy=4,uQ=5,ia=100,AQ=101,hQ=102,Oy=103,Hy=104,fQ=200,dQ=201,pQ=202,gQ=203,ag=204,lg=205,mQ=206,EQ=207,yQ=208,IQ=209,vQ=210,CQ=211,xQ=212,BQ=213,_Q=214,SQ=0,wQ=1,MQ=2,rh=3,QQ=4,RQ=5,TQ=6,DQ=7,bh=0,bQ=1,NQ=2,Ts=0,LQ=1,PQ=2,UQ=3,Gv=4,FQ=5,kQ=6,zy="attached",GQ="detached",Lg=300,po=301,xa=302,sh=303,oh=304,vu=306,ah=1e3,Ri=1001,lh=1002,Gn=1003,cg=1004,eL=1004,ml=1005,tL=1005,yn=1006,PA=1007,nL=1007,ws=1008,iL=1008,Ds=1009,OQ=1010,HQ=1011,Pg=1012,Ov=1013,oo=1014,Ur=1015,Fl=1016,Hv=1017,zv=1018,pa=1020,zQ=1021,Gi=1023,VQ=1024,WQ=1025,ga=1026,kl=1027,YQ=1028,Vv=1029,XQ=1030,Wv=1031,Yv=1033,vp=33776,Cp=33777,xp=33778,Bp=33779,Vy=35840,Wy=35841,Yy=35842,Xy=35843,Xv=36196,Jy=37492,Ky=37496,qy=37808,jy=37809,Zy=37810,$y=37811,eI=37812,tI=37813,nI=37814,iI=37815,rI=37816,sI=37817,oI=37818,aI=37819,lI=37820,cI=37821,_p=36492,uI=36494,AI=36495,JQ=36283,hI=36284,fI=36285,dI=36286,KQ=2200,qQ=2201,jQ=2202,ch=2300,uh=2301,Sp=2302,Cl=2400,xl=2401,Ah=2402,Ug=2500,Jv=2501,rL=0,sL=1,oL=2,Kv=3e3,ma=3001,ZQ=3200,qv=3201,Ma=0,$Q=1,mr="",On="srgb",bs="srgb-linear",Fg="display-p3",Nh="display-p3-linear",hh="linear",fn="srgb",fh="rec709",dh="p3",aL=0,fl=7680,lL=7681,cL=7682,uL=7683,AL=34055,hL=34056,fL=5386,dL=512,pL=513,gL=514,mL=515,EL=516,yL=517,IL=518,pI=519,eR=512,tR=513,nR=514,jv=515,iR=516,rR=517,sR=518,oR=519,ph=35044,oa=35048,vL=35040,CL=35045,xL=35049,BL=35041,_L=35046,SL=35050,wL=35042,ML="100",gI="300 es",ug=1035,Ms=2e3,gh=2001;class mo{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const i=this._listeners[e.type];if(i!==void 0){e.target=this;const r=i.slice(0);for(let s=0,o=r.length;s>8&255]+Si[n>>16&255]+Si[n>>24&255]+"-"+Si[e&255]+Si[e>>8&255]+"-"+Si[e>>16&15|64]+Si[e>>24&255]+"-"+Si[t&63|128]+Si[t>>8&255]+"-"+Si[t>>16&255]+Si[t>>24&255]+Si[i&255]+Si[i>>8&255]+Si[i>>16&255]+Si[i>>24&255]).toLowerCase()}function Ln(n,e,t){return Math.max(e,Math.min(t,n))}function Zv(n,e){return(n%e+e)%e}function QL(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function RL(n,e,t){return n!==e?(t-n)/(e-n):0}function UA(n,e,t){return(1-t)*n+t*e}function TL(n,e,t,i){return UA(n,e,1-Math.exp(-t*i))}function DL(n,e=1){return e-Math.abs(Zv(n,e*2)-e)}function bL(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function NL(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function LL(n,e){return n+Math.floor(Math.random()*(e-n+1))}function PL(n,e){return n+Math.random()*(e-n)}function UL(n){return n*(.5-Math.random())}function FL(n){n!==void 0&&(w_=n);let e=w_+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function kL(n){return n*Ql}function GL(n){return n*du}function mI(n){return(n&n-1)===0&&n!==0}function OL(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function Ag(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function HL(n,e,t,i,r){const s=Math.cos,o=Math.sin,a=s(t/2),c=o(t/2),A=s((e+i)/2),h=o((e+i)/2),f=s((e-i)/2),d=o((e-i)/2),m=s((i-e)/2),E=o((i-e)/2);switch(r){case"XYX":n.set(a*h,c*f,c*d,a*A);break;case"YZY":n.set(c*d,a*h,c*f,a*A);break;case"ZXZ":n.set(c*f,c*d,a*h,a*A);break;case"XZX":n.set(a*h,c*E,c*m,a*A);break;case"YXY":n.set(c*m,a*h,c*E,a*A);break;case"ZYZ":n.set(c*E,c*m,a*h,a*A);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Oi(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Rt(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}const zL={DEG2RAD:Ql,RAD2DEG:du,generateUUID:Cr,clamp:Ln,euclideanModulo:Zv,mapLinear:QL,inverseLerp:RL,lerp:UA,damp:TL,pingpong:DL,smoothstep:bL,smootherstep:NL,randInt:LL,randFloat:PL,randFloatSpread:UL,seededRandom:FL,degToRad:kL,radToDeg:GL,isPowerOfTwo:mI,ceilPowerOfTwo:OL,floorPowerOfTwo:Ag,setQuaternionFromProperEuler:HL,normalize:Rt,denormalize:Oi};class Be{constructor(e=0,t=0){Be.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Ln(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class wt{constructor(e,t,i,r,s,o,a,c,A){wt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,c,A)}set(e,t,i,r,s,o,a,c,A){const h=this.elements;return h[0]=e,h[1]=r,h[2]=a,h[3]=t,h[4]=s,h[5]=c,h[6]=i,h[7]=o,h[8]=A,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[3],c=i[6],A=i[1],h=i[4],f=i[7],d=i[2],m=i[5],E=i[8],x=r[0],y=r[3],p=r[6],C=r[1],I=r[4],B=r[7],R=r[2],M=r[5],T=r[8];return s[0]=o*x+a*C+c*R,s[3]=o*y+a*I+c*M,s[6]=o*p+a*B+c*T,s[1]=A*x+h*C+f*R,s[4]=A*y+h*I+f*M,s[7]=A*p+h*B+f*T,s[2]=d*x+m*C+E*R,s[5]=d*y+m*I+E*M,s[8]=d*p+m*B+E*T,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8];return t*o*h-t*a*A-i*s*h+i*a*c+r*s*A-r*o*c}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8],f=h*o-a*A,d=a*c-h*s,m=A*s-o*c,E=t*f+i*d+r*m;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);const x=1/E;return e[0]=f*x,e[1]=(r*A-h*i)*x,e[2]=(a*i-r*o)*x,e[3]=d*x,e[4]=(h*t-r*c)*x,e[5]=(r*s-a*t)*x,e[6]=m*x,e[7]=(i*c-A*t)*x,e[8]=(o*t-i*s)*x,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,a){const c=Math.cos(s),A=Math.sin(s);return this.set(i*c,i*A,-i*(c*o+A*a)+o+e,-r*A,r*c,-r*(-A*o+c*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(G0.makeScale(e,t)),this}rotate(e){return this.premultiply(G0.makeRotation(-e)),this}translate(e,t){return this.premultiply(G0.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const G0=new wt;function aR(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const VL={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function Jc(n,e){return new VL[n](e)}function mh(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function lR(){const n=mh("canvas");return n.style.display="block",n}const M_={};function Rl(n){n in M_||(M_[n]=!0,console.warn(n))}const Q_=new wt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),R_=new wt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),sd={[bs]:{transfer:hh,primaries:fh,toReference:n=>n,fromReference:n=>n},[On]:{transfer:fn,primaries:fh,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[Nh]:{transfer:hh,primaries:dh,toReference:n=>n.applyMatrix3(R_),fromReference:n=>n.applyMatrix3(Q_)},[Fg]:{transfer:fn,primaries:dh,toReference:n=>n.convertSRGBToLinear().applyMatrix3(R_),fromReference:n=>n.applyMatrix3(Q_).convertLinearToSRGB()}},WL=new Set([bs,Nh]),sn={enabled:!0,_workingColorSpace:bs,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!WL.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;const i=sd[e].toReference,r=sd[t].fromReference;return r(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return sd[n].primaries},getTransfer:function(n){return n===mr?hh:sd[n].transfer}};function su(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function O0(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let cc;class $v{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{cc===void 0&&(cc=mh("canvas")),cc.width=e.width,cc.height=e.height;const i=cc.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=cc}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=mh("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==Lg)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case ah:e.x=e.x-Math.floor(e.x);break;case Ri:e.x=e.x<0?0:1;break;case lh:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case ah:e.y=e.y-Math.floor(e.y);break;case Ri:e.y=e.y<0?0:1;break;case lh:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Rl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===On?ma:Kv}set encoding(e){Rl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===ma?On:mr}}Bn.DEFAULT_IMAGE=null;Bn.DEFAULT_MAPPING=Lg;Bn.DEFAULT_ANISOTROPY=1;class on{constructor(e=0,t=0,i=0,r=1){on.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const c=e.elements,A=c[0],h=c[4],f=c[8],d=c[1],m=c[5],E=c[9],x=c[2],y=c[6],p=c[10];if(Math.abs(h-d)<.01&&Math.abs(f-x)<.01&&Math.abs(E-y)<.01){if(Math.abs(h+d)<.1&&Math.abs(f+x)<.1&&Math.abs(E+y)<.1&&Math.abs(A+m+p-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const I=(A+1)/2,B=(m+1)/2,R=(p+1)/2,M=(h+d)/4,T=(f+x)/4,P=(E+y)/4;return I>B&&I>R?I<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(I),r=M/i,s=T/i):B>R?B<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(B),i=M/r,s=P/r):R<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(R),i=T/s,r=P/s),this.set(i,r,s,t),this}let C=Math.sqrt((y-E)*(y-E)+(f-x)*(f-x)+(d-h)*(d-h));return Math.abs(C)<.001&&(C=1),this.x=(y-E)/C,this.y=(f-x)/C,this.z=(d-h)/C,this.w=Math.acos((A+m+p-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class cR extends mo{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new on(0,0,e,t),this.scissorTest=!1,this.viewport=new on(0,0,e,t);const r={width:e,height:t,depth:1};i.encoding!==void 0&&(Rl("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===ma?On:mr),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:yn,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},i),this.texture=new Bn(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps,this.texture.internalFormat=i.internalFormat,this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.depthTexture=i.depthTexture,this.samples=i.samples}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new Bl(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Vr extends cR{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}}class kg extends Bn{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Ri,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class JL extends Vr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new kg(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class eC extends Bn{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Ri,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class KL extends Vr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new eC(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class qL extends Vr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const s=this.texture;this.texture=[];for(let o=0;o=0?1:-1,I=1-p*p;if(I>Number.EPSILON){const R=Math.sqrt(I),M=Math.atan2(R,p*C);y=Math.sin(y*M)/R,a=Math.sin(a*M)/R}const B=a*C;if(c=c*y+d*B,A=A*y+m*B,h=h*y+E*B,f=f*y+x*B,y===1-a){const R=1/Math.sqrt(c*c+A*A+h*h+f*f);c*=R,A*=R,h*=R,f*=R}}e[t]=c,e[t+1]=A,e[t+2]=h,e[t+3]=f}static multiplyQuaternionsFlat(e,t,i,r,s,o){const a=i[r],c=i[r+1],A=i[r+2],h=i[r+3],f=s[o],d=s[o+1],m=s[o+2],E=s[o+3];return e[t]=a*E+h*f+c*m-A*d,e[t+1]=c*E+h*d+A*f-a*m,e[t+2]=A*E+h*m+a*d-c*f,e[t+3]=h*E-a*f-c*d-A*m,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,a=Math.cos,c=Math.sin,A=a(i/2),h=a(r/2),f=a(s/2),d=c(i/2),m=c(r/2),E=c(s/2);switch(o){case"XYZ":this._x=d*h*f+A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f-d*m*E;break;case"YXZ":this._x=d*h*f+A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f+d*m*E;break;case"ZXY":this._x=d*h*f-A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f-d*m*E;break;case"ZYX":this._x=d*h*f-A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f+d*m*E;break;case"YZX":this._x=d*h*f+A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f-d*m*E;break;case"XZY":this._x=d*h*f-A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f+d*m*E;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],a=t[5],c=t[9],A=t[2],h=t[6],f=t[10],d=i+a+f;if(d>0){const m=.5/Math.sqrt(d+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-A)*m,this._z=(o-r)*m}else if(i>a&&i>f){const m=2*Math.sqrt(1+i-a-f);this._w=(h-c)/m,this._x=.25*m,this._y=(r+o)/m,this._z=(s+A)/m}else if(a>f){const m=2*Math.sqrt(1+a-i-f);this._w=(s-A)/m,this._x=(r+o)/m,this._y=.25*m,this._z=(c+h)/m}else{const m=2*Math.sqrt(1+f-i-a);this._w=(o-r)/m,this._x=(s+A)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Ln(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,a=t._x,c=t._y,A=t._z,h=t._w;return this._x=i*h+o*a+r*A-s*c,this._y=r*h+o*c+s*a-i*A,this._z=s*h+o*A+i*c-r*a,this._w=o*h-i*a-r*c-s*A,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let a=o*e._w+i*e._x+r*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const c=1-a*a;if(c<=Number.EPSILON){const m=1-t;return this._w=m*o+t*this._w,this._x=m*i+t*this._x,this._y=m*r+t*this._y,this._z=m*s+t*this._z,this.normalize(),this}const A=Math.sqrt(c),h=Math.atan2(A,a),f=Math.sin((1-t)*h)/A,d=Math.sin(t*h)/A;return this._w=o*f+this._w*d,this._x=i*f+this._x*d,this._y=r*f+this._y*d,this._z=s*f+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(s),i*Math.cos(s),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class G{constructor(e=0,t=0,i=0){G.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(T_.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(T_.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,a=e.z,c=e.w,A=2*(o*r-a*i),h=2*(a*t-s*r),f=2*(s*i-o*t);return this.x=t+c*A+o*f-a*h,this.y=i+c*h+a*A-s*f,this.z=r+c*f+s*h-o*A,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,a=t.y,c=t.z;return this.x=r*c-s*a,this.y=s*o-i*c,this.z=i*a-r*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return z0.copy(this).projectOnVector(e),this.sub(z0)}reflect(e){return this.sub(z0.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Ln(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const z0=new G,T_=new Vi;class $n{constructor(e=new G(1/0,1/0,1/0),t=new G(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,Kr),Kr.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(rA),ad.subVectors(this.max,rA),uc.subVectors(e.a,rA),Ac.subVectors(e.b,rA),hc.subVectors(e.c,rA),Ho.subVectors(Ac,uc),zo.subVectors(hc,Ac),Za.subVectors(uc,hc);let t=[0,-Ho.z,Ho.y,0,-zo.z,zo.y,0,-Za.z,Za.y,Ho.z,0,-Ho.x,zo.z,0,-zo.x,Za.z,0,-Za.x,-Ho.y,Ho.x,0,-zo.y,zo.x,0,-Za.y,Za.x,0];return!V0(t,uc,Ac,hc,ad)||(t=[1,0,0,0,1,0,0,0,1],!V0(t,uc,Ac,hc,ad))?!1:(ld.crossVectors(Ho,zo),t=[ld.x,ld.y,ld.z],V0(t,uc,Ac,hc,ad))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Kr).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(Kr).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Ys[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Ys[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Ys[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Ys[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Ys[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Ys[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Ys[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Ys[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Ys),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const Ys=[new G,new G,new G,new G,new G,new G,new G,new G],Kr=new G,od=new $n,uc=new G,Ac=new G,hc=new G,Ho=new G,zo=new G,Za=new G,rA=new G,ad=new G,ld=new G,$a=new G;function V0(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){$a.fromArray(n,s);const a=r.x*Math.abs($a.x)+r.y*Math.abs($a.y)+r.z*Math.abs($a.z),c=e.dot($a),A=t.dot($a),h=i.dot($a);if(Math.max(-Math.max(c,A,h),Math.min(c,A,h))>a)return!1}return!0}const jL=new $n,sA=new G,W0=new G;class li{constructor(e=new G,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):jL.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;sA.subVectors(e,this.center);const t=sA.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(sA,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(W0.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(sA.copy(e.center).add(W0)),this.expandByPoint(sA.copy(e.center).sub(W0))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Xs=new G,Y0=new G,cd=new G,Vo=new G,X0=new G,ud=new G,J0=new G;class Cu{constructor(e=new G,t=new G(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Xs)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Xs.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Xs.copy(this.origin).addScaledVector(this.direction,t),Xs.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){Y0.copy(e).add(t).multiplyScalar(.5),cd.copy(t).sub(e).normalize(),Vo.copy(this.origin).sub(Y0);const s=e.distanceTo(t)*.5,o=-this.direction.dot(cd),a=Vo.dot(this.direction),c=-Vo.dot(cd),A=Vo.lengthSq(),h=Math.abs(1-o*o);let f,d,m,E;if(h>0)if(f=o*c-a,d=o*a-c,E=s*h,f>=0)if(d>=-E)if(d<=E){const x=1/h;f*=x,d*=x,m=f*(f+o*d+2*a)+d*(o*f+d+2*c)+A}else d=s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;else d=-s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;else d<=-E?(f=Math.max(0,-(-o*s+a)),d=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+A):d<=E?(f=0,d=Math.min(Math.max(-s,-c),s),m=d*(d+2*c)+A):(f=Math.max(0,-(o*s+a)),d=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+A);else d=o>0?-s:s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;return i&&i.copy(this.origin).addScaledVector(this.direction,f),r&&r.copy(Y0).addScaledVector(cd,d),m}intersectSphere(e,t){Xs.subVectors(e.center,this.origin);const i=Xs.dot(this.direction),r=Xs.dot(Xs)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=i-o,c=i+o;return c<0?null:a<0?this.at(c,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,a,c;const A=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,d=this.origin;return A>=0?(i=(e.min.x-d.x)*A,r=(e.max.x-d.x)*A):(i=(e.max.x-d.x)*A,r=(e.min.x-d.x)*A),h>=0?(s=(e.min.y-d.y)*h,o=(e.max.y-d.y)*h):(s=(e.max.y-d.y)*h,o=(e.min.y-d.y)*h),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(a=(e.min.z-d.z)*f,c=(e.max.z-d.z)*f):(a=(e.max.z-d.z)*f,c=(e.min.z-d.z)*f),i>c||a>r)||((a>i||i!==i)&&(i=a),(c=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,Xs)!==null}intersectTriangle(e,t,i,r,s){X0.subVectors(t,e),ud.subVectors(i,e),J0.crossVectors(X0,ud);let o=this.direction.dot(J0),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;Vo.subVectors(this.origin,e);const c=a*this.direction.dot(ud.crossVectors(Vo,ud));if(c<0)return null;const A=a*this.direction.dot(X0.cross(Vo));if(A<0||c+A>o)return null;const h=-a*Vo.dot(J0);return h<0?null:this.at(h/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ft{constructor(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,y){ft.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,y)}set(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,y){const p=this.elements;return p[0]=e,p[4]=t,p[8]=i,p[12]=r,p[1]=s,p[5]=o,p[9]=a,p[13]=c,p[2]=A,p[6]=h,p[10]=f,p[14]=d,p[3]=m,p[7]=E,p[11]=x,p[15]=y,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ft().fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/fc.setFromMatrixColumn(e,0).length(),s=1/fc.setFromMatrixColumn(e,1).length(),o=1/fc.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),a=Math.sin(i),c=Math.cos(r),A=Math.sin(r),h=Math.cos(s),f=Math.sin(s);if(e.order==="XYZ"){const d=o*h,m=o*f,E=a*h,x=a*f;t[0]=c*h,t[4]=-c*f,t[8]=A,t[1]=m+E*A,t[5]=d-x*A,t[9]=-a*c,t[2]=x-d*A,t[6]=E+m*A,t[10]=o*c}else if(e.order==="YXZ"){const d=c*h,m=c*f,E=A*h,x=A*f;t[0]=d+x*a,t[4]=E*a-m,t[8]=o*A,t[1]=o*f,t[5]=o*h,t[9]=-a,t[2]=m*a-E,t[6]=x+d*a,t[10]=o*c}else if(e.order==="ZXY"){const d=c*h,m=c*f,E=A*h,x=A*f;t[0]=d-x*a,t[4]=-o*f,t[8]=E+m*a,t[1]=m+E*a,t[5]=o*h,t[9]=x-d*a,t[2]=-o*A,t[6]=a,t[10]=o*c}else if(e.order==="ZYX"){const d=o*h,m=o*f,E=a*h,x=a*f;t[0]=c*h,t[4]=E*A-m,t[8]=d*A+x,t[1]=c*f,t[5]=x*A+d,t[9]=m*A-E,t[2]=-A,t[6]=a*c,t[10]=o*c}else if(e.order==="YZX"){const d=o*c,m=o*A,E=a*c,x=a*A;t[0]=c*h,t[4]=x-d*f,t[8]=E*f+m,t[1]=f,t[5]=o*h,t[9]=-a*h,t[2]=-A*h,t[6]=m*f+E,t[10]=d-x*f}else if(e.order==="XZY"){const d=o*c,m=o*A,E=a*c,x=a*A;t[0]=c*h,t[4]=-f,t[8]=A*h,t[1]=d*f+x,t[5]=o*h,t[9]=m*f-E,t[2]=E*f-m,t[6]=a*h,t[10]=x*f+d}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(ZL,e,$L)}lookAt(e,t,i){const r=this.elements;return dr.subVectors(e,t),dr.lengthSq()===0&&(dr.z=1),dr.normalize(),Wo.crossVectors(i,dr),Wo.lengthSq()===0&&(Math.abs(i.z)===1?dr.x+=1e-4:dr.z+=1e-4,dr.normalize(),Wo.crossVectors(i,dr)),Wo.normalize(),Ad.crossVectors(dr,Wo),r[0]=Wo.x,r[4]=Ad.x,r[8]=dr.x,r[1]=Wo.y,r[5]=Ad.y,r[9]=dr.y,r[2]=Wo.z,r[6]=Ad.z,r[10]=dr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[4],c=i[8],A=i[12],h=i[1],f=i[5],d=i[9],m=i[13],E=i[2],x=i[6],y=i[10],p=i[14],C=i[3],I=i[7],B=i[11],R=i[15],M=r[0],T=r[4],P=r[8],J=r[12],w=r[1],b=r[5],K=r[9],fe=r[13],Y=r[2],ie=r[6],te=r[10],ce=r[14],U=r[3],$=r[7],ee=r[11],ue=r[15];return s[0]=o*M+a*w+c*Y+A*U,s[4]=o*T+a*b+c*ie+A*$,s[8]=o*P+a*K+c*te+A*ee,s[12]=o*J+a*fe+c*ce+A*ue,s[1]=h*M+f*w+d*Y+m*U,s[5]=h*T+f*b+d*ie+m*$,s[9]=h*P+f*K+d*te+m*ee,s[13]=h*J+f*fe+d*ce+m*ue,s[2]=E*M+x*w+y*Y+p*U,s[6]=E*T+x*b+y*ie+p*$,s[10]=E*P+x*K+y*te+p*ee,s[14]=E*J+x*fe+y*ce+p*ue,s[3]=C*M+I*w+B*Y+R*U,s[7]=C*T+I*b+B*ie+R*$,s[11]=C*P+I*K+B*te+R*ee,s[15]=C*J+I*fe+B*ce+R*ue,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],a=e[5],c=e[9],A=e[13],h=e[2],f=e[6],d=e[10],m=e[14],E=e[3],x=e[7],y=e[11],p=e[15];return E*(+s*c*f-r*A*f-s*a*d+i*A*d+r*a*m-i*c*m)+x*(+t*c*m-t*A*d+s*o*d-r*o*m+r*A*h-s*c*h)+y*(+t*A*f-t*a*m-s*o*f+i*o*m+s*a*h-i*A*h)+p*(-r*a*h-t*c*f+t*a*d+r*o*f-i*o*d+i*c*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8],f=e[9],d=e[10],m=e[11],E=e[12],x=e[13],y=e[14],p=e[15],C=f*y*A-x*d*A+x*c*m-a*y*m-f*c*p+a*d*p,I=E*d*A-h*y*A-E*c*m+o*y*m+h*c*p-o*d*p,B=h*x*A-E*f*A+E*a*m-o*x*m-h*a*p+o*f*p,R=E*f*c-h*x*c-E*a*d+o*x*d+h*a*y-o*f*y,M=t*C+i*I+r*B+s*R;if(M===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/M;return e[0]=C*T,e[1]=(x*d*s-f*y*s-x*r*m+i*y*m+f*r*p-i*d*p)*T,e[2]=(a*y*s-x*c*s+x*r*A-i*y*A-a*r*p+i*c*p)*T,e[3]=(f*c*s-a*d*s-f*r*A+i*d*A+a*r*m-i*c*m)*T,e[4]=I*T,e[5]=(h*y*s-E*d*s+E*r*m-t*y*m-h*r*p+t*d*p)*T,e[6]=(E*c*s-o*y*s-E*r*A+t*y*A+o*r*p-t*c*p)*T,e[7]=(o*d*s-h*c*s+h*r*A-t*d*A-o*r*m+t*c*m)*T,e[8]=B*T,e[9]=(E*f*s-h*x*s-E*i*m+t*x*m+h*i*p-t*f*p)*T,e[10]=(o*x*s-E*a*s+E*i*A-t*x*A-o*i*p+t*a*p)*T,e[11]=(h*a*s-o*f*s-h*i*A+t*f*A+o*i*m-t*a*m)*T,e[12]=R*T,e[13]=(h*x*r-E*f*r+E*i*d-t*x*d-h*i*y+t*f*y)*T,e[14]=(E*a*r-o*x*r-E*i*c+t*x*c+o*i*y-t*a*y)*T,e[15]=(o*f*r-h*a*r+h*i*c-t*f*c-o*i*d+t*a*d)*T,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,a=e.y,c=e.z,A=s*o,h=s*a;return this.set(A*o+i,A*a-r*c,A*c+r*a,0,A*a+r*c,h*a+i,h*c-r*o,0,A*c-r*a,h*c+r*o,s*c*c+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,a=t._z,c=t._w,A=s+s,h=o+o,f=a+a,d=s*A,m=s*h,E=s*f,x=o*h,y=o*f,p=a*f,C=c*A,I=c*h,B=c*f,R=i.x,M=i.y,T=i.z;return r[0]=(1-(x+p))*R,r[1]=(m+B)*R,r[2]=(E-I)*R,r[3]=0,r[4]=(m-B)*M,r[5]=(1-(d+p))*M,r[6]=(y+C)*M,r[7]=0,r[8]=(E+I)*T,r[9]=(y-C)*T,r[10]=(1-(d+x))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=fc.set(r[0],r[1],r[2]).length();const o=fc.set(r[4],r[5],r[6]).length(),a=fc.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],qr.copy(this);const A=1/s,h=1/o,f=1/a;return qr.elements[0]*=A,qr.elements[1]*=A,qr.elements[2]*=A,qr.elements[4]*=h,qr.elements[5]*=h,qr.elements[6]*=h,qr.elements[8]*=f,qr.elements[9]*=f,qr.elements[10]*=f,t.setFromRotationMatrix(qr),i.x=s,i.y=o,i.z=a,this}makePerspective(e,t,i,r,s,o,a=Ms){const c=this.elements,A=2*s/(t-e),h=2*s/(i-r),f=(t+e)/(t-e),d=(i+r)/(i-r);let m,E;if(a===Ms)m=-(o+s)/(o-s),E=-2*o*s/(o-s);else if(a===gh)m=-o/(o-s),E=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return c[0]=A,c[4]=0,c[8]=f,c[12]=0,c[1]=0,c[5]=h,c[9]=d,c[13]=0,c[2]=0,c[6]=0,c[10]=m,c[14]=E,c[3]=0,c[7]=0,c[11]=-1,c[15]=0,this}makeOrthographic(e,t,i,r,s,o,a=Ms){const c=this.elements,A=1/(t-e),h=1/(i-r),f=1/(o-s),d=(t+e)*A,m=(i+r)*h;let E,x;if(a===Ms)E=(o+s)*f,x=-2*f;else if(a===gh)E=s*f,x=-1*f;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return c[0]=2*A,c[4]=0,c[8]=0,c[12]=-d,c[1]=0,c[5]=2*h,c[9]=0,c[13]=-m,c[2]=0,c[6]=0,c[10]=x,c[14]=-E,c[3]=0,c[7]=0,c[11]=0,c[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const fc=new G,qr=new ft,ZL=new G(0,0,0),$L=new G(1,1,1),Wo=new G,Ad=new G,dr=new G,D_=new ft,b_=new Vi;class xu{constructor(e=0,t=0,i=0,r=xu.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const r=e.elements,s=r[0],o=r[4],a=r[8],c=r[1],A=r[5],h=r[9],f=r[2],d=r[6],m=r[10];switch(t){case"XYZ":this._y=Math.asin(Ln(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(d,A),this._z=0);break;case"YXZ":this._x=Math.asin(-Ln(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,m),this._z=Math.atan2(c,A)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(Ln(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-o,A)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-Ln(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(d,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-o,A));break;case"YZX":this._z=Math.asin(Ln(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,A),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(a,m));break;case"XZY":this._z=Math.asin(-Ln(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,A),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return D_.makeRotationFromQuaternion(e),this.setFromRotationMatrix(D_,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return b_.setFromEuler(this),this.setFromQuaternion(b_,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}xu.DEFAULT_ORDER="XYZ";class Tl{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,c){return a[c.uuid]===void 0&&(a[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(e.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const c=a.shapes;if(Array.isArray(c))for(let A=0,h=c.length;A0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(i.geometries=a),c.length>0&&(i.materials=c),A.length>0&&(i.textures=A),h.length>0&&(i.images=h),f.length>0&&(i.shapes=f),d.length>0&&(i.skeletons=d),m.length>0&&(i.animations=m),E.length>0&&(i.nodes=E)}return i.object=r,i;function o(a){const c=[];for(const A in a){const h=a[A];delete h.metadata,c.push(h)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){jr.subVectors(r,t),Ks.subVectors(i,t),K0.subVectors(e,t);const o=jr.dot(jr),a=jr.dot(Ks),c=jr.dot(K0),A=Ks.dot(Ks),h=Ks.dot(K0),f=o*A-a*a;if(f===0)return s.set(0,0,0),null;const d=1/f,m=(A*c-a*h)*d,E=(o*h-a*c)*d;return s.set(1-m-E,E,m)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,qs)===null?!1:qs.x>=0&&qs.y>=0&&qs.x+qs.y<=1}static getInterpolation(e,t,i,r,s,o,a,c){return this.getBarycoord(e,t,i,r,qs)===null?(c.x=0,c.y=0,"z"in c&&(c.z=0),"w"in c&&(c.w=0),null):(c.setScalar(0),c.addScaledVector(s,qs.x),c.addScaledVector(o,qs.y),c.addScaledVector(a,qs.z),c)}static isFrontFacing(e,t,i,r){return jr.subVectors(i,t),Ks.subVectors(e,t),jr.cross(Ks).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return jr.subVectors(this.c,this.b),Ks.subVectors(this.a,this.b),jr.cross(Ks).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Er.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Er.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return Er.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return Er.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Er.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,a;pc.subVectors(r,i),gc.subVectors(s,i),q0.subVectors(e,i);const c=pc.dot(q0),A=gc.dot(q0);if(c<=0&&A<=0)return t.copy(i);j0.subVectors(e,r);const h=pc.dot(j0),f=gc.dot(j0);if(h>=0&&f<=h)return t.copy(r);const d=c*f-h*A;if(d<=0&&c>=0&&h<=0)return o=c/(c-h),t.copy(i).addScaledVector(pc,o);Z0.subVectors(e,s);const m=pc.dot(Z0),E=gc.dot(Z0);if(E>=0&&m<=E)return t.copy(s);const x=m*A-c*E;if(x<=0&&A>=0&&E<=0)return a=A/(A-E),t.copy(i).addScaledVector(gc,a);const y=h*E-m*f;if(y<=0&&f-h>=0&&m-E>=0)return F_.subVectors(s,r),a=(f-h)/(f-h+(m-E)),t.copy(r).addScaledVector(F_,a);const p=1/(y+x+d);return o=x*p,a=d*p,t.copy(i).addScaledVector(pc,o).addScaledVector(gc,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const uR={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Yo={h:0,s:0,l:0},fd={h:0,s:0,l:0};function $0(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class Je{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=On){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,sn.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=sn.workingColorSpace){return this.r=e,this.g=t,this.b=i,sn.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=sn.workingColorSpace){if(e=Zv(e,1),t=Ln(t,0,1),i=Ln(i,0,1),t===0)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=$0(o,s,e+1/3),this.g=$0(o,s,e),this.b=$0(o,s,e-1/3)}return sn.toWorkingColorSpace(this,r),this}setStyle(e,t=On){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=On){const i=uR[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=su(e.r),this.g=su(e.g),this.b=su(e.b),this}copyLinearToSRGB(e){return this.r=O0(e.r),this.g=O0(e.g),this.b=O0(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=On){return sn.fromWorkingColorSpace(wi.copy(this),e),Math.round(Ln(wi.r*255,0,255))*65536+Math.round(Ln(wi.g*255,0,255))*256+Math.round(Ln(wi.b*255,0,255))}getHexString(e=On){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=sn.workingColorSpace){sn.fromWorkingColorSpace(wi.copy(this),t);const i=wi.r,r=wi.g,s=wi.b,o=Math.max(i,r,s),a=Math.min(i,r,s);let c,A;const h=(a+o)/2;if(a===o)c=0,A=0;else{const f=o-a;switch(A=h<=.5?f/(o+a):f/(2-o-a),o){case i:c=(r-s)/f+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Ml&&(i.blending=this.blending),this.side!==zr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==ag&&(i.blendSrc=this.blendSrc),this.blendDst!==lg&&(i.blendDst=this.blendDst),this.blendEquation!==ia&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==rh&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==pI&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==fl&&(i.stencilFail=this.stencilFail),this.stencilZFail!==fl&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==fl&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(s){const o=[];for(const a in s){const c=s[a];delete c.metadata,o.push(c)}return o}if(t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(t!==null){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class sr extends ui{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=bh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const no=oP();function oP(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let c=0;c<256;++c){const A=c-127;A<-27?(i[c]=0,i[c|256]=32768,r[c]=24,r[c|256]=24):A<-14?(i[c]=1024>>-A-14,i[c|256]=1024>>-A-14|32768,r[c]=-A-1,r[c|256]=-A-1):A<=15?(i[c]=A+15<<10,i[c|256]=A+15<<10|32768,r[c]=13,r[c|256]=13):A<128?(i[c]=31744,i[c|256]=64512,r[c]=24,r[c|256]=24):(i[c]=31744,i[c|256]=64512,r[c]=13,r[c|256]=13)}const s=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let c=1;c<1024;++c){let A=c<<13,h=0;for(;!(A&8388608);)A<<=1,h-=8388608;A&=-8388609,h+=947912704,s[c]=A|h}for(let c=1024;c<2048;++c)s[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)o[c]=c<<23;o[31]=1199570944,o[32]=2147483648;for(let c=33;c<63;++c)o[c]=2147483648+(c-32<<23);o[63]=3347054592;for(let c=1;c<64;++c)c!==32&&(a[c]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:o,offsetTable:a}}function $i(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Ln(n,-65504,65504),no.floatView[0]=n;const e=no.uint32View[0],t=e>>23&511;return no.baseTable[t]+((e&8388607)>>no.shiftTable[t])}function vA(n){const e=n>>10;return no.uint32View[0]=no.mantissaTable[no.offsetTable[e]+(n&1023)]+no.exponentTable[e],no.floatView[0]}const aP={toHalfFloat:$i,fromHalfFloat:vA},Xn=new G,dd=new Be;class rn{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=ph,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Ur,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Rl("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const c=this.parameters;for(const A in c)c[A]!==void 0&&(e[A]=c[A]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const c in i){const A=i[c];e.data.attributes[c]=A.toJSON(e.data)}const r={};let s=!1;for(const c in this.morphAttributes){const A=this.morphAttributes[c],h=[];for(let f=0,d=A.length;f0&&(r[c]=h,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(t));const r=e.attributes;for(const A in r){const h=r[A];this.setAttribute(A,h.clone(t))}const s=e.morphAttributes;for(const A in s){const h=[],f=s[A];for(let d=0,m=f.length;d0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(k_.copy(s).invert(),el.copy(e.ray).applyMatrix4(k_),!(i.boundingBox!==null&&el.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,el)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,a=s.index,c=s.attributes.position,A=s.attributes.uv,h=s.attributes.uv1,f=s.attributes.normal,d=s.groups,m=s.drawRange;if(a!==null)if(Array.isArray(o))for(let E=0,x=d.length;Et.far?null:{distance:A,point:vd.clone(),object:n}}function Cd(n,e,t,i,r,s,o,a,c,A){n.getVertexPosition(a,Ec),n.getVertexPosition(c,yc),n.getVertexPosition(A,Ic);const h=gP(n,e,t,i,Ec,yc,Ic,Id);if(h){r&&(md.fromBufferAttribute(r,a),Ed.fromBufferAttribute(r,c),yd.fromBufferAttribute(r,A),h.uv=Er.getInterpolation(Id,Ec,yc,Ic,md,Ed,yd,new Be)),s&&(md.fromBufferAttribute(s,a),Ed.fromBufferAttribute(s,c),yd.fromBufferAttribute(s,A),h.uv1=Er.getInterpolation(Id,Ec,yc,Ic,md,Ed,yd,new Be),h.uv2=h.uv1),o&&(O_.fromBufferAttribute(o,a),H_.fromBufferAttribute(o,c),z_.fromBufferAttribute(o,A),h.normal=Er.getInterpolation(Id,Ec,yc,Ic,O_,H_,z_,new G),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const f={a,b:c,c:A,normal:new G,materialIndex:0};Er.getNormal(Ec,yc,Ic,f.normal),h.face=f}return h}class Vl extends Tt{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const c=[],A=[],h=[],f=[];let d=0,m=0;E("z","y","x",-1,-1,i,t,e,o,s,0),E("z","y","x",1,-1,i,t,-e,o,s,1),E("x","z","y",1,1,e,i,t,r,o,2),E("x","z","y",1,-1,e,i,-t,r,o,3),E("x","y","z",1,-1,e,t,i,r,s,4),E("x","y","z",-1,-1,e,t,-i,r,s,5),this.setIndex(c),this.setAttribute("position",new st(A,3)),this.setAttribute("normal",new st(h,3)),this.setAttribute("uv",new st(f,2));function E(x,y,p,C,I,B,R,M,T,P,J){const w=B/T,b=R/P,K=B/2,fe=R/2,Y=M/2,ie=T+1,te=P+1;let ce=0,U=0;const $=new G;for(let ee=0;ee0?1:-1,h.push($.x,$.y,$.z),f.push(ye/T),f.push(1-ee/P),ce+=1}}for(let ee=0;ee0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class Lh extends $t{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ft,this.projectionMatrix=new ft,this.projectionMatrixInverse=new ft,this.coordinateSystem=Ms}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Xo=new G,V_=new Be,W_=new Be;class jn extends Lh{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=du*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(Ql*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return du*2*Math.atan(Math.tan(Ql*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){Xo.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Xo.x,Xo.y).multiplyScalar(-e/Xo.z),Xo.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Xo.x,Xo.y).multiplyScalar(-e/Xo.z)}getViewSize(e,t){return this.getViewBounds(e,V_,W_),t.subVectors(W_,V_)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(Ql*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const c=o.fullWidth,A=o.fullHeight;s+=o.offsetX*r/c,t-=o.offsetY*i/A,r*=o.width/c,i*=o.height/A}const a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const vc=-90,Cc=1;class fR extends $t{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new jn(vc,Cc,e,t);r.layers=this.layers,this.add(r);const s=new jn(vc,Cc,e,t);s.layers=this.layers,this.add(s);const o=new jn(vc,Cc,e,t);o.layers=this.layers,this.add(o);const a=new jn(vc,Cc,e,t);a.layers=this.layers,this.add(a);const c=new jn(vc,Cc,e,t);c.layers=this.layers,this.add(c);const A=new jn(vc,Cc,e,t);A.layers=this.layers,this.add(A)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,a,c]=t;for(const A of t)this.remove(A);if(e===Ms)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(e===gh)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const A of t)this.add(A),A.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,c,A,h]=this.children,f=e.getRenderTarget(),d=e.getActiveCubeFace(),m=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;const x=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,a),e.setRenderTarget(i,3,r),e.render(t,c),e.setRenderTarget(i,4,r),e.render(t,A),i.texture.generateMipmaps=x,e.setRenderTarget(i,5,r),e.render(t,h),e.setRenderTarget(f,d,m),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}}class Ph extends Bn{constructor(e,t,i,r,s,o,a,c,A,h){e=e!==void 0?e:[],t=t!==void 0?t:po,super(e,t,i,r,s,o,a,c,A,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class dR extends Vr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];t.encoding!==void 0&&(Rl("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===ma?On:mr),this.texture=new Ph(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:yn}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},r=new Vl(5,5,5),s=new cs({name:"CubemapFromEquirect",uniforms:pu(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:zi,blending:co});s.uniforms.tEquirect.value=t;const o=new nn(r,s),a=t.minFilter;return t.minFilter===ws&&(t.minFilter=yn),new fR(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,r){const s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,i,r);e.setRenderTarget(s)}}const nE=new G,IP=new G,vP=new wt;class ln{constructor(e=new G(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){const r=nE.subVectors(i,t).cross(IP.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const i=e.delta(nE),r=this.normal.dot(i);if(r===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const s=-(e.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||vP.getNormalMatrix(e),r=this.coplanarPoint(nE).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const tl=new li,xd=new G;class Uh{constructor(e=new ln,t=new ln,i=new ln,r=new ln,s=new ln,o=new ln){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=Ms){const i=this.planes,r=e.elements,s=r[0],o=r[1],a=r[2],c=r[3],A=r[4],h=r[5],f=r[6],d=r[7],m=r[8],E=r[9],x=r[10],y=r[11],p=r[12],C=r[13],I=r[14],B=r[15];if(i[0].setComponents(c-s,d-A,y-m,B-p).normalize(),i[1].setComponents(c+s,d+A,y+m,B+p).normalize(),i[2].setComponents(c+o,d+h,y+E,B+C).normalize(),i[3].setComponents(c-o,d-h,y-E,B-C).normalize(),i[4].setComponents(c-a,d-f,y-x,B-I).normalize(),t===Ms)i[5].setComponents(c+a,d+f,y+x,B+I).normalize();else if(t===gh)i[5].setComponents(a,f,x,I).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),tl.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),tl.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(tl)}intersectsSprite(e){return tl.center.set(0,0,0),tl.radius=.7071067811865476,tl.applyMatrix4(e.matrixWorld),this.intersectsSphere(tl)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,xd.y=r.normal.y>0?e.max.y:e.min.y,xd.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(xd)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function pR(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function CP(n,e){const t=e.isWebGL2,i=new WeakMap;function r(A,h){const f=A.array,d=A.usage,m=f.byteLength,E=n.createBuffer();n.bindBuffer(h,E),n.bufferData(h,f,d),A.onUploadCallback();let x;if(f instanceof Float32Array)x=n.FLOAT;else if(f instanceof Uint16Array)if(A.isFloat16BufferAttribute)if(t)x=n.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else x=n.UNSIGNED_SHORT;else if(f instanceof Int16Array)x=n.SHORT;else if(f instanceof Uint32Array)x=n.UNSIGNED_INT;else if(f instanceof Int32Array)x=n.INT;else if(f instanceof Int8Array)x=n.BYTE;else if(f instanceof Uint8Array)x=n.UNSIGNED_BYTE;else if(f instanceof Uint8ClampedArray)x=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:E,type:x,bytesPerElement:f.BYTES_PER_ELEMENT,version:A.version,size:m}}function s(A,h,f){const d=h.array,m=h._updateRange,E=h.updateRanges;if(n.bindBuffer(f,A),m.count===-1&&E.length===0&&n.bufferSubData(f,0,d),E.length!==0){for(let x=0,y=E.length;x 0 + vec4 plane; + #ifdef ALPHA_TO_COVERAGE + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + if ( clipOpacity == 0.0 ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + float unionClipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + } + #pragma unroll_loop_end + clipOpacity *= 1.0 - unionClipOpacity; + #endif + diffuseColor.a *= clipOpacity; + if ( diffuseColor.a == 0.0 ) discard; + #else + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif + #endif +#endif`,kP=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,GP=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,OP=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,HP=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,zP=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,VP=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,WP=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,YP=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +#ifdef USE_ALPHAHASH + varying vec3 vPosition; +#endif +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); + return dot( weights, rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +} +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} // validated`,XP=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,JP=`vec3 transformedNormal = objectNormal; +#ifdef USE_TANGENT + vec3 transformedTangent = objectTangent; +#endif +#ifdef USE_BATCHING + mat3 bm = mat3( batchingMatrix ); + transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); + transformedNormal = bm * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = bm * transformedTangent; + #endif +#endif +#ifdef USE_INSTANCING + mat3 im = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); + transformedNormal = im * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = im * transformedTangent; + #endif +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,KP=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,qP=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,jP=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,ZP=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,$P="gl_FragColor = linearToOutputTexel( gl_FragColor );",e3=` +const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( + vec3( 0.8224621, 0.177538, 0.0 ), + vec3( 0.0331941, 0.9668058, 0.0 ), + vec3( 0.0170827, 0.0723974, 0.9105199 ) +); +const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( + vec3( 1.2249401, - 0.2249404, 0.0 ), + vec3( - 0.0420569, 1.0420571, 0.0 ), + vec3( - 0.0196376, - 0.0786361, 1.0982735 ) +); +vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { + return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); +} +vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { + return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); +} +vec4 LinearTransferOETF( in vec4 value ) { + return value; +} +vec4 sRGBTransferOETF( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +} +vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return sRGBTransferOETF( value ); +}`,t3=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,n3=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,i3=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,r3=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,s3=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,o3=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,a3=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,l3=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,c3=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,u3=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,A3=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif`,h3=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,f3=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,d3=`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,p3=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +#if defined( USE_LIGHT_PROBES ) + uniform vec3 lightProbe[ 9 ]; +#endif +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( LEGACY_LIGHTS ) + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #else + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometryPosition; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometryPosition; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,g3=`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #ifdef USE_ANISOTROPY + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); + return getIBLRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif +#endif`,m3=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,E3=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,y3=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,I3=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,v3=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef USE_SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULAR_COLORMAP + specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEEN_COLORMAP + material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEEN_ROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; + #endif +#endif +#ifdef USE_ANISOTROPY + #ifdef USE_ANISOTROPYMAP + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; + #else + vec2 anisotropyV = anisotropyVector; + #endif + material.anisotropy = length( anisotropyV ); + if( material.anisotropy == 0.0 ) { + anisotropyV = vec2( 1.0, 0.0 ); + } else { + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + } + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; + material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; +#endif`,C3=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaT; + vec3 anisotropyT; + vec3 anisotropyB; + #endif +}; +vec3 clearcoatSpecularDirect = vec3( 0.0 ); +vec3 clearcoatSpecularIndirect = vec3( 0.0 ); +vec3 sheenSpecularDirect = vec3( 0.0 ); +vec3 sheenSpecularIndirect = vec3(0.0 ); +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +#ifdef USE_ANISOTROPY + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( gv + gl ); + return saturate(v); + } + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + return RECIPROCAL_PI * a2 * pow2 ( w2 ); + } +#endif +#ifdef USE_CLEARCOAT + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); + } +#endif +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + #ifdef USE_IRIDESCENCE + F = mix( F, material.iridescenceFresnel, material.iridescence ); + #endif + #ifdef USE_ANISOTROPY + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); + #else + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + #endif + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometryNormal; + vec3 viewDir = geometryViewDir; + vec3 position = geometryPosition; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); + #endif + #ifdef USE_SHEEN + sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,x3=` +vec3 geometryPosition = - vViewPosition; +vec3 geometryNormal = normal; +vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +vec3 geometryClearcoatNormal = vec3( 0.0 ); +#ifdef USE_CLEARCOAT + geometryClearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometryViewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometryPosition, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometryPosition, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + #if defined( USE_LIGHT_PROBES ) + irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); + #endif + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,B3=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,_3=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif`,S3=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,w3=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,M3=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,Q3=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,R3=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,T3=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,D3=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + #if defined( USE_POINTS_UV ) + vec2 uv = vUv; + #else + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; + #endif +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,b3=`#if defined( USE_POINTS_UV ) + varying vec2 vUv; +#else + #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; + #endif +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,N3=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,L3=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,P3=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,U3=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif`,F3=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif`,k3=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif`,G3=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal *= faceDirection; + #endif +#endif +#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #ifdef USE_TANGENT + mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn = getTangentFrame( - vViewPosition, normal, + #if defined( USE_NORMALMAP ) + vNormalMapUv + #elif defined( USE_CLEARCOAT_NORMALMAP ) + vClearcoatNormalMapUv + #else + vUv + #endif + ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn[0] *= faceDirection; + tbn[1] *= faceDirection; + #endif +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + #ifdef USE_TANGENT + mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,O3=`#ifdef USE_NORMALMAP_OBJECTSPACE + normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( USE_NORMALMAP_TANGENTSPACE ) + vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,H3=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,z3=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,V3=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,W3=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef USE_NORMALMAP_OBJECTSPACE + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) + mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( uv.st ); + vec2 st1 = dFdy( uv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); + return mat3( T * scale, B * scale, N ); + } +#endif`,Y3=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,X3=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,J3=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif`,K3=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,q3=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,j3=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec2 packDepthToRG( in highp float v ) { + return packDepthToRGBA( v ).yx; +} +float unpackRGToDepth( const in highp vec2 v ) { + return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { + return depth * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * depth - far ); +}`,Z3=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,$3=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_BATCHING + mvPosition = batchingMatrix * mvPosition; +#endif +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,eU=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,tU=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,nU=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,iU=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,rU=`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,sU=`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,oU=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,aU=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,lU=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,cU=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + mat4 getBoneMatrix( const in float i ) { + int size = textureSize( boneTexture, 0 ).x; + int j = int( i ) * 4; + int x = j % size; + int y = j / size; + vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); + vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); + vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); + vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); + return mat4( v1, v2, v3, v4 ); + } +#endif`,uU=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,AU=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,hU=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,fU=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,dU=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,pU=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return saturate( toneMappingExposure * color ); +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( + vec3( 1.6605, - 0.1246, - 0.0182 ), + vec3( - 0.5876, 1.1329, - 0.1006 ), + vec3( - 0.0728, - 0.0083, 1.1187 ) +); +const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( + vec3( 0.6274, 0.0691, 0.0164 ), + vec3( 0.3293, 0.9195, 0.0880 ), + vec3( 0.0433, 0.0113, 0.8956 ) +); +vec3 agxDefaultContrastApprox( vec3 x ) { + vec3 x2 = x * x; + vec3 x4 = x2 * x2; + return + 15.5 * x4 * x2 + - 40.14 * x4 * x + + 31.96 * x4 + - 6.868 * x2 * x + + 0.4298 * x2 + + 0.1191 * x + - 0.00232; +} +vec3 AgXToneMapping( vec3 color ) { + const mat3 AgXInsetMatrix = mat3( + vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), + vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), + vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) + ); + const mat3 AgXOutsetMatrix = mat3( + vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), + vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), + vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) + ); + const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; + color *= toneMappingExposure; + color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; + color = AgXInsetMatrix * color; + color = max( color, 1e-10 ); color = log2( color ); + color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); + color = clamp( color, 0.0, 1.0 ); + color = agxDefaultContrastApprox( color ); + color = AgXOutsetMatrix * color; + color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); + color = LINEAR_REC2020_TO_LINEAR_SRGB * color; + color = clamp( color, 0.0, 1.0 ); + return color; +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,gU=`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); +#endif`,mU=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + float w0( float a ) { + return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); + } + float w1( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); + } + float w2( float a ){ + return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); + } + float w3( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * a ); + } + float g0( float a ) { + return w0( a ) + w1( a ); + } + float g1( float a ) { + return w2( a ) + w3( a ); + } + float h0( float a ) { + return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); + } + float h1( float a ) { + return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); + } + vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { + uv = uv * texelSize.zw + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + float g0x = g0( fuv.x ); + float g1x = g1( fuv.x ); + float h0x = h0( fuv.x ); + float h1x = h1( fuv.x ); + float h0y = h0( fuv.y ); + float h1y = h1( fuv.y ); + vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); + } + vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { + vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); + vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); + vec2 fLodSizeInv = 1.0 / fLodSize; + vec2 cLodSizeInv = 1.0 / cLodSize; + vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); + vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); + return mix( fSample, cSample, fract( lod ) ); + } + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); + } + vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return vec3( 1.0 ); + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 attenuatedColor = transmittance * transmittedLight.rgb; + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; + return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); + } +#endif`,EU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + varying vec2 vNormalMapUv; +#endif +#ifdef USE_EMISSIVEMAP + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_SPECULARMAP + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,yU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + uniform mat3 mapTransform; + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + uniform mat3 alphaMapTransform; + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + uniform mat3 lightMapTransform; + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + uniform mat3 aoMapTransform; + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + uniform mat3 bumpMapTransform; + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + uniform mat3 normalMapTransform; + varying vec2 vNormalMapUv; +#endif +#ifdef USE_DISPLACEMENTMAP + uniform mat3 displacementMapTransform; + varying vec2 vDisplacementMapUv; +#endif +#ifdef USE_EMISSIVEMAP + uniform mat3 emissiveMapTransform; + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + uniform mat3 metalnessMapTransform; + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + uniform mat3 roughnessMapTransform; + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + uniform mat3 anisotropyMapTransform; + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + uniform mat3 clearcoatMapTransform; + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform mat3 clearcoatNormalMapTransform; + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform mat3 clearcoatRoughnessMapTransform; + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + uniform mat3 sheenColorMapTransform; + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + uniform mat3 sheenRoughnessMapTransform; + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + uniform mat3 iridescenceMapTransform; + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform mat3 iridescenceThicknessMapTransform; + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SPECULARMAP + uniform mat3 specularMapTransform; + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + uniform mat3 specularColorMapTransform; + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + uniform mat3 specularIntensityMapTransform; + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,IU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + vUv = vec3( uv, 1 ).xy; +#endif +#ifdef USE_MAP + vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ALPHAMAP + vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_LIGHTMAP + vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_AOMAP + vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_BUMPMAP + vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_NORMALMAP + vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_DISPLACEMENTMAP + vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_EMISSIVEMAP + vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_METALNESSMAP + vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ROUGHNESSMAP + vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ANISOTROPYMAP + vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOATMAP + vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCEMAP + vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_COLORMAP + vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULARMAP + vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_COLORMAP + vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_TRANSMISSIONMAP + vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_THICKNESSMAP + vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; +#endif`,vU=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_BATCHING + worldPosition = batchingMatrix * worldPosition; + #endif + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const CU=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,xU=`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,BU=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,_U=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,SU=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,wU=`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,MU=`#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,QU=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,RU=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,TU=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +#include +void main () { + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,DU=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,bU=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,NU=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,LU=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,PU=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,UU=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,FU=`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,kU=`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,GU=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,OU=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,HU=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + vViewPosition = - mvPosition.xyz; +#endif +}`,zU=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,VU=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,WU=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,YU=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,XU=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define USE_SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef USE_SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULAR_COLORMAP + uniform sampler2D specularColorMap; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEEN_COLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEEN_ROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropyVector; + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,JU=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,KU=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,qU=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +#ifdef USE_POINTS_UV + varying vec2 vUv; + uniform mat3 uvTransform; +#endif +void main() { + #ifdef USE_POINTS_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + #endif + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,jU=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,ZU=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,$U=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,eF=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,tF=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,bt={alphahash_fragment:xP,alphahash_pars_fragment:BP,alphamap_fragment:_P,alphamap_pars_fragment:SP,alphatest_fragment:wP,alphatest_pars_fragment:MP,aomap_fragment:QP,aomap_pars_fragment:RP,batching_pars_vertex:TP,batching_vertex:DP,begin_vertex:bP,beginnormal_vertex:NP,bsdfs:LP,iridescence_fragment:PP,bumpmap_pars_fragment:UP,clipping_planes_fragment:FP,clipping_planes_pars_fragment:kP,clipping_planes_pars_vertex:GP,clipping_planes_vertex:OP,color_fragment:HP,color_pars_fragment:zP,color_pars_vertex:VP,color_vertex:WP,common:YP,cube_uv_reflection_fragment:XP,defaultnormal_vertex:JP,displacementmap_pars_vertex:KP,displacementmap_vertex:qP,emissivemap_fragment:jP,emissivemap_pars_fragment:ZP,colorspace_fragment:$P,colorspace_pars_fragment:e3,envmap_fragment:t3,envmap_common_pars_fragment:n3,envmap_pars_fragment:i3,envmap_pars_vertex:r3,envmap_physical_pars_fragment:g3,envmap_vertex:s3,fog_vertex:o3,fog_pars_vertex:a3,fog_fragment:l3,fog_pars_fragment:c3,gradientmap_pars_fragment:u3,lightmap_fragment:A3,lightmap_pars_fragment:h3,lights_lambert_fragment:f3,lights_lambert_pars_fragment:d3,lights_pars_begin:p3,lights_toon_fragment:m3,lights_toon_pars_fragment:E3,lights_phong_fragment:y3,lights_phong_pars_fragment:I3,lights_physical_fragment:v3,lights_physical_pars_fragment:C3,lights_fragment_begin:x3,lights_fragment_maps:B3,lights_fragment_end:_3,logdepthbuf_fragment:S3,logdepthbuf_pars_fragment:w3,logdepthbuf_pars_vertex:M3,logdepthbuf_vertex:Q3,map_fragment:R3,map_pars_fragment:T3,map_particle_fragment:D3,map_particle_pars_fragment:b3,metalnessmap_fragment:N3,metalnessmap_pars_fragment:L3,morphcolor_vertex:P3,morphnormal_vertex:U3,morphtarget_pars_vertex:F3,morphtarget_vertex:k3,normal_fragment_begin:G3,normal_fragment_maps:O3,normal_pars_fragment:H3,normal_pars_vertex:z3,normal_vertex:V3,normalmap_pars_fragment:W3,clearcoat_normal_fragment_begin:Y3,clearcoat_normal_fragment_maps:X3,clearcoat_pars_fragment:J3,iridescence_pars_fragment:K3,opaque_fragment:q3,packing:j3,premultiplied_alpha_fragment:Z3,project_vertex:$3,dithering_fragment:eU,dithering_pars_fragment:tU,roughnessmap_fragment:nU,roughnessmap_pars_fragment:iU,shadowmap_pars_fragment:rU,shadowmap_pars_vertex:sU,shadowmap_vertex:oU,shadowmask_pars_fragment:aU,skinbase_vertex:lU,skinning_pars_vertex:cU,skinning_vertex:uU,skinnormal_vertex:AU,specularmap_fragment:hU,specularmap_pars_fragment:fU,tonemapping_fragment:dU,tonemapping_pars_fragment:pU,transmission_fragment:gU,transmission_pars_fragment:mU,uv_pars_fragment:EU,uv_pars_vertex:yU,uv_vertex:IU,worldpos_vertex:vU,background_vert:CU,background_frag:xU,backgroundCube_vert:BU,backgroundCube_frag:_U,cube_vert:SU,cube_frag:wU,depth_vert:MU,depth_frag:QU,distanceRGBA_vert:RU,distanceRGBA_frag:TU,equirect_vert:DU,equirect_frag:bU,linedashed_vert:NU,linedashed_frag:LU,meshbasic_vert:PU,meshbasic_frag:UU,meshlambert_vert:FU,meshlambert_frag:kU,meshmatcap_vert:GU,meshmatcap_frag:OU,meshnormal_vert:HU,meshnormal_frag:zU,meshphong_vert:VU,meshphong_frag:WU,meshphysical_vert:YU,meshphysical_frag:XU,meshtoon_vert:JU,meshtoon_frag:KU,points_vert:qU,points_frag:jU,shadow_vert:ZU,shadow_frag:$U,sprite_vert:eF,sprite_frag:tF},Ye={common:{diffuse:{value:new Je(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new wt},alphaMap:{value:null},alphaMapTransform:{value:new wt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new wt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new wt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new wt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new wt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new wt},normalScale:{value:new Be(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new wt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new wt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new wt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new wt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Je(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Je(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new wt},alphaTest:{value:0},uvTransform:{value:new wt}},sprite:{diffuse:{value:new Je(16777215)},opacity:{value:1},center:{value:new Be(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new wt},alphaMap:{value:null},alphaMapTransform:{value:new wt},alphaTest:{value:0}}},is={basic:{uniforms:Ui([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.fog]),vertexShader:bt.meshbasic_vert,fragmentShader:bt.meshbasic_frag},lambert:{uniforms:Ui([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:bt.meshlambert_vert,fragmentShader:bt.meshlambert_frag},phong:{uniforms:Ui([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},specular:{value:new Je(1118481)},shininess:{value:30}}]),vertexShader:bt.meshphong_vert,fragmentShader:bt.meshphong_frag},standard:{uniforms:Ui([Ye.common,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.roughnessmap,Ye.metalnessmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:bt.meshphysical_vert,fragmentShader:bt.meshphysical_frag},toon:{uniforms:Ui([Ye.common,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.gradientmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:bt.meshtoon_vert,fragmentShader:bt.meshtoon_frag},matcap:{uniforms:Ui([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,{matcap:{value:null}}]),vertexShader:bt.meshmatcap_vert,fragmentShader:bt.meshmatcap_frag},points:{uniforms:Ui([Ye.points,Ye.fog]),vertexShader:bt.points_vert,fragmentShader:bt.points_frag},dashed:{uniforms:Ui([Ye.common,Ye.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:bt.linedashed_vert,fragmentShader:bt.linedashed_frag},depth:{uniforms:Ui([Ye.common,Ye.displacementmap]),vertexShader:bt.depth_vert,fragmentShader:bt.depth_frag},normal:{uniforms:Ui([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,{opacity:{value:1}}]),vertexShader:bt.meshnormal_vert,fragmentShader:bt.meshnormal_frag},sprite:{uniforms:Ui([Ye.sprite,Ye.fog]),vertexShader:bt.sprite_vert,fragmentShader:bt.sprite_frag},background:{uniforms:{uvTransform:{value:new wt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:bt.background_vert,fragmentShader:bt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:bt.backgroundCube_vert,fragmentShader:bt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:bt.cube_vert,fragmentShader:bt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:bt.equirect_vert,fragmentShader:bt.equirect_frag},distanceRGBA:{uniforms:Ui([Ye.common,Ye.displacementmap,{referencePosition:{value:new G},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:bt.distanceRGBA_vert,fragmentShader:bt.distanceRGBA_frag},shadow:{uniforms:Ui([Ye.lights,Ye.fog,{color:{value:new Je(0)},opacity:{value:1}}]),vertexShader:bt.shadow_vert,fragmentShader:bt.shadow_frag}};is.physical={uniforms:Ui([is.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new wt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new wt},clearcoatNormalScale:{value:new Be(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new wt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new wt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new wt},sheen:{value:0},sheenColor:{value:new Je(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new wt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new wt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new wt},transmissionSamplerSize:{value:new Be},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new wt},attenuationDistance:{value:0},attenuationColor:{value:new Je(0)},specularColor:{value:new Je(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new wt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new wt},anisotropyVector:{value:new Be},anisotropyMap:{value:null},anisotropyMapTransform:{value:new wt}}]),vertexShader:bt.meshphysical_vert,fragmentShader:bt.meshphysical_frag};const Bd={r:0,b:0,g:0};function nF(n,e,t,i,r,s,o){const a=new Je(0);let c=s===!0?0:1,A,h,f=null,d=0,m=null;function E(y,p){let C=!1,I=p.isScene===!0?p.background:null;I&&I.isTexture&&(I=(p.backgroundBlurriness>0?t:e).get(I)),I===null?x(a,c):I&&I.isColor&&(x(I,1),C=!0);const B=n.xr.getEnvironmentBlendMode();B==="additive"?i.buffers.color.setClear(0,0,0,1,o):B==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||C)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),I&&(I.isCubeTexture||I.mapping===vu)?(h===void 0&&(h=new nn(new Vl(1,1,1),new cs({name:"BackgroundCubeMaterial",uniforms:pu(is.backgroundCube.uniforms),vertexShader:is.backgroundCube.vertexShader,fragmentShader:is.backgroundCube.fragmentShader,side:zi,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,M,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=I,h.material.uniforms.flipEnvMap.value=I.isCubeTexture&&I.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=p.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,h.material.toneMapped=sn.getTransfer(I.colorSpace)!==fn,(f!==I||d!==I.version||m!==n.toneMapping)&&(h.material.needsUpdate=!0,f=I,d=I.version,m=n.toneMapping),h.layers.enableAll(),y.unshift(h,h.geometry,h.material,0,0,null)):I&&I.isTexture&&(A===void 0&&(A=new nn(new Qa(2,2),new cs({name:"BackgroundMaterial",uniforms:pu(is.background.uniforms),vertexShader:is.background.vertexShader,fragmentShader:is.background.fragmentShader,side:zr,depthTest:!1,depthWrite:!1,fog:!1})),A.geometry.deleteAttribute("normal"),Object.defineProperty(A.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(A)),A.material.uniforms.t2D.value=I,A.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,A.material.toneMapped=sn.getTransfer(I.colorSpace)!==fn,I.matrixAutoUpdate===!0&&I.updateMatrix(),A.material.uniforms.uvTransform.value.copy(I.matrix),(f!==I||d!==I.version||m!==n.toneMapping)&&(A.material.needsUpdate=!0,f=I,d=I.version,m=n.toneMapping),A.layers.enableAll(),y.unshift(A,A.geometry,A.material,0,0,null))}function x(y,p){y.getRGB(Bd,AR(n)),i.buffers.color.setClear(Bd.r,Bd.g,Bd.b,p,o)}return{getClearColor:function(){return a},setClearColor:function(y,p=1){a.set(y),c=p,x(a,c)},getClearAlpha:function(){return c},setClearAlpha:function(y){c=y,x(a,c)},render:E}}function iF(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||s!==null,a={},c=y(null);let A=c,h=!1;function f(Y,ie,te,ce,U){let $=!1;if(o){const ee=x(ce,te,ie);A!==ee&&(A=ee,m(A.object)),$=p(Y,ce,te,U),$&&C(Y,ce,te,U)}else{const ee=ie.wireframe===!0;(A.geometry!==ce.id||A.program!==te.id||A.wireframe!==ee)&&(A.geometry=ce.id,A.program=te.id,A.wireframe=ee,$=!0)}U!==null&&t.update(U,n.ELEMENT_ARRAY_BUFFER),($||h)&&(h=!1,P(Y,ie,te,ce),U!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(U).buffer))}function d(){return i.isWebGL2?n.createVertexArray():s.createVertexArrayOES()}function m(Y){return i.isWebGL2?n.bindVertexArray(Y):s.bindVertexArrayOES(Y)}function E(Y){return i.isWebGL2?n.deleteVertexArray(Y):s.deleteVertexArrayOES(Y)}function x(Y,ie,te){const ce=te.wireframe===!0;let U=a[Y.id];U===void 0&&(U={},a[Y.id]=U);let $=U[ie.id];$===void 0&&($={},U[ie.id]=$);let ee=$[ce];return ee===void 0&&(ee=y(d()),$[ce]=ee),ee}function y(Y){const ie=[],te=[],ce=[];for(let U=0;U=0){const V=U[ye];let O=$[ye];if(O===void 0&&(ye==="instanceMatrix"&&Y.instanceMatrix&&(O=Y.instanceMatrix),ye==="instanceColor"&&Y.instanceColor&&(O=Y.instanceColor)),V===void 0||V.attribute!==O||O&&V.data!==O.data)return!0;ee++}return A.attributesNum!==ee||A.index!==ce}function C(Y,ie,te,ce){const U={},$=ie.attributes;let ee=0;const ue=te.getAttributes();for(const ye in ue)if(ue[ye].location>=0){let V=$[ye];V===void 0&&(ye==="instanceMatrix"&&Y.instanceMatrix&&(V=Y.instanceMatrix),ye==="instanceColor"&&Y.instanceColor&&(V=Y.instanceColor));const O={};O.attribute=V,V&&V.data&&(O.data=V.data),U[ye]=O,ee++}A.attributes=U,A.attributesNum=ee,A.index=ce}function I(){const Y=A.newAttributes;for(let ie=0,te=Y.length;ie=0){let ke=U[ue];if(ke===void 0&&(ue==="instanceMatrix"&&Y.instanceMatrix&&(ke=Y.instanceMatrix),ue==="instanceColor"&&Y.instanceColor&&(ke=Y.instanceColor)),ke!==void 0){const V=ke.normalized,O=ke.itemSize,k=t.get(ke);if(k===void 0)continue;const F=k.buffer,ge=k.type,ve=k.bytesPerElement,se=i.isWebGL2===!0&&(ge===n.INT||ge===n.UNSIGNED_INT||ke.gpuType===Ov);if(ke.isInterleavedBufferAttribute){const xe=ke.data,H=xe.stride,me=ke.offset;if(xe.isInstancedInterleavedBuffer){for(let ne=0;ne0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext";let a=t.precision!==void 0?t.precision:"highp";const c=s(a);c!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",c,"instead."),a=c);const A=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,f=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),d=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),m=n.getParameter(n.MAX_TEXTURE_SIZE),E=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),x=n.getParameter(n.MAX_VERTEX_ATTRIBS),y=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),p=n.getParameter(n.MAX_VARYING_VECTORS),C=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),I=d>0,B=o||e.has("OES_texture_float"),R=I&&B,M=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:A,getMaxAnisotropy:r,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:d,maxTextureSize:m,maxCubemapSize:E,maxAttributes:x,maxVertexUniforms:y,maxVaryings:p,maxFragmentUniforms:C,vertexTextures:I,floatFragmentTextures:B,floatVertexTextures:R,maxSamples:M}}function oF(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new ln,a=new wt,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,d){const m=f.length!==0||d||i!==0||r;return r=d,i=f.length,m},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(f,d){t=h(f,d,0)},this.setState=function(f,d,m){const E=f.clippingPlanes,x=f.clipIntersection,y=f.clipShadows,p=n.get(f);if(!r||E===null||E.length===0||s&&!y)s?h(null):A();else{const C=s?0:i,I=C*4;let B=p.clippingState||null;c.value=B,B=h(E,d,I,m);for(let R=0;R!==I;++R)B[R]=t[R];p.clippingState=B,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=C}};function A(){c.value!==t&&(c.value=t,c.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(f,d,m,E){const x=f!==null?f.length:0;let y=null;if(x!==0){if(y=c.value,E!==!0||y===null){const p=m+x*4,C=d.matrixWorldInverse;a.getNormalMatrix(C),(y===null||y.length0){const A=new dR(c.height);return A.fromEquirectangularTexture(n,o),e.set(o,A),o.addEventListener("dispose",r),t(A.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const c=e.get(a);c!==void 0&&(e.delete(a),c.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}class Fh extends Lh{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,a=r+t,c=r-t;if(this.view!==null&&this.view.enabled){const A=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=A*this.view.offsetX,o=s+A*this.view.width,a-=h*this.view.offsetY,c=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,c,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}const Kc=4,Y_=[.125,.215,.35,.446,.526,.582],El=20,iE=new Fh,X_=new Je;let rE=null,sE=0,oE=0;const dl=(1+Math.sqrt(5))/2,xc=1/dl,J_=[new G(1,1,1),new G(-1,1,1),new G(1,1,-1),new G(-1,1,-1),new G(0,dl,xc),new G(0,dl,-xc),new G(xc,0,dl),new G(-xc,0,dl),new G(dl,xc,0),new G(-dl,xc,0)];class EI{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){rE=this._renderer.getRenderTarget(),sE=this._renderer.getActiveCubeFace(),oE=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=j_(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=q_(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?I:0,I,I),h.setRenderTarget(r),x&&h.render(E,a),h.render(e,a)}E.geometry.dispose(),E.material.dispose(),h.toneMapping=d,h.autoClear=f,e.background=y}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===po||e.mapping===xa;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=j_()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=q_());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new nn(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;const c=this._cubeSize;_d(t,0,0,3*c,2*c),i.setRenderTarget(t),i.render(o,iE)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;rEl&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${y} samples when the maximum is set to ${El}`);const p=[];let C=0;for(let T=0;TI-Kc?r-I+Kc:0),M=4*(this._cubeSize-B);_d(t,R,M,3*B,2*B),c.setRenderTarget(t),c.render(f,iE)}}function lF(n){const e=[],t=[],i=[];let r=n;const s=n-Kc+1+Y_.length;for(let o=0;on-Kc?c=Y_[o-n+Kc-1]:o===0&&(c=0),i.push(c);const A=1/(a-2),h=-A,f=1+A,d=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,E=6,x=3,y=2,p=1,C=new Float32Array(x*E*m),I=new Float32Array(y*E*m),B=new Float32Array(p*E*m);for(let M=0;M2?0:-1,J=[T,P,0,T+2/3,P,0,T+2/3,P+1,0,T,P,0,T+2/3,P+1,0,T,P+1,0];C.set(J,x*E*M),I.set(d,y*E*M);const w=[M,M,M,M,M,M];B.set(w,p*E*M)}const R=new Tt;R.setAttribute("position",new rn(C,x)),R.setAttribute("uv",new rn(I,y)),R.setAttribute("faceIndex",new rn(B,p)),e.push(R),r>Kc&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function K_(n,e,t){const i=new Vr(n,e,t);return i.texture.mapping=vu,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function _d(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function cF(n,e,t){const i=new Float32Array(El),r=new G(0,1,0);return new cs({name:"SphericalGaussianBlur",defines:{n:El,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:iC(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:co,depthTest:!1,depthWrite:!1})}function q_(){return new cs({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:iC(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:co,depthTest:!1,depthWrite:!1})}function j_(){return new cs({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:iC(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:co,depthTest:!1,depthWrite:!1})}function iC(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function uF(n){let e=new WeakMap,t=null;function i(a){if(a&&a.isTexture){const c=a.mapping,A=c===sh||c===oh,h=c===po||c===xa;if(A||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let f=e.get(a);return t===null&&(t=new EI(n)),f=A?t.fromEquirectangular(a,f):t.fromCubemap(a,f),e.set(a,f),f.texture}else{if(e.has(a))return e.get(a).texture;{const f=a.image;if(A&&f&&f.height>0||h&&f&&r(f)){t===null&&(t=new EI(n));const d=A?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,d),a.addEventListener("dispose",s),d.texture}else return null}}}return a}function r(a){let c=0;const A=6;for(let h=0;he.maxTextureSize&&(b=Math.ceil(w/e.maxTextureSize),w=e.maxTextureSize);const K=new Float32Array(w*b*4*x),fe=new kg(K,w,b,x);fe.type=Ur,fe.needsUpdate=!0;const Y=J*4;for(let te=0;te0)return n;const r=e*t;let s=Z_[r];if(s===void 0&&(s=new Float32Array(r),Z_[r]=s),e!==0){i.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(s,a)}return s}function ei(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${a}: ${t[o]}`)}return i.join(` +`)}function hk(n){const e=sn.getPrimaries(sn.workingColorSpace),t=sn.getPrimaries(n);let i;switch(e===t?i="":e===dh&&t===fh?i="LinearDisplayP3ToLinearSRGB":e===fh&&t===dh&&(i="LinearSRGBToLinearDisplayP3"),n){case bs:case Nh:return[i,"LinearTransferOETF"];case On:case Fg:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}function sS(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=n.getShaderInfoLog(e).trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` + +`+r+` + +`+Ak(n.getShaderSource(e),o)}else return r}function fk(n,e){const t=hk(e);return`vec4 ${n}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function dk(n,e){let t;switch(e){case LQ:t="Linear";break;case PQ:t="Reinhard";break;case UQ:t="OptimizedCineon";break;case Gv:t="ACESFilmic";break;case kQ:t="AgX";break;case FQ:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function pk(n){return[n.extensionDerivatives||n.envMapCubeUVHeight||n.bumpMap||n.normalMapTangentSpace||n.clearcoatNormalMap||n.flatShading||n.alphaToCoverage||n.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(n.extensionFragDepth||n.logarithmicDepthBuffer)&&n.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",n.extensionDrawBuffers&&n.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(n.extensionShaderTextureLOD||n.envMap||n.transmission)&&n.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(qc).join(` +`)}function gk(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(qc).join(` +`)}function mk(n){const e=[];for(const t in n){const i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(` +`)}function Ek(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function yI(n){return n.replace(yk,vk)}const Ik=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function vk(n,e){let t=bt[e];if(t===void 0){const i=Ik.get(e);if(i!==void 0)t=bt[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return yI(t)}const Ck=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function lS(n){return n.replace(Ck,xk)}function xk(n,e,t,i){let r="";for(let s=parseInt(e);s0&&(p+=` +`),C=[m,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x].filter(qc).join(` +`),C.length>0&&(C+=` +`)):(p=[cS(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(qc).join(` +`),C=[m,cS(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+A:"",t.envMap?"#define "+h:"",t.envMap?"#define "+f:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Ts?"#define TONE_MAPPING":"",t.toneMapping!==Ts?bt.tonemapping_pars_fragment:"",t.toneMapping!==Ts?dk("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",bt.colorspace_pars_fragment,fk("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(qc).join(` +`)),o=yI(o),o=oS(o,t),o=aS(o,t),a=yI(a),a=oS(a,t),a=aS(a,t),o=lS(o),a=lS(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(I=`#version 300 es +`,p=[E,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+p,C=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===gI?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===gI?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+C);const B=I+p+o,R=I+C+a,M=rS(r,r.VERTEX_SHADER,B),T=rS(r,r.FRAGMENT_SHADER,R);r.attachShader(y,M),r.attachShader(y,T),t.index0AttributeName!==void 0?r.bindAttribLocation(y,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(y,0,"position"),r.linkProgram(y);function P(K){if(n.debug.checkShaderErrors){const fe=r.getProgramInfoLog(y).trim(),Y=r.getShaderInfoLog(M).trim(),ie=r.getShaderInfoLog(T).trim();let te=!0,ce=!0;if(r.getProgramParameter(y,r.LINK_STATUS)===!1)if(te=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,y,M,T);else{const U=sS(r,M,"vertex"),$=sS(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(y,r.VALIDATE_STATUS)+` + +Material Name: `+K.name+` +Material Type: `+K.type+` + +Program Info Log: `+fe+` +`+U+` +`+$)}else fe!==""?console.warn("THREE.WebGLProgram: Program Info Log:",fe):(Y===""||ie==="")&&(ce=!1);ce&&(K.diagnostics={runnable:te,programLog:fe,vertexShader:{log:Y,prefix:p},fragmentShader:{log:ie,prefix:C}})}r.deleteShader(M),r.deleteShader(T),J=new wp(r,y),w=Ek(r,y)}let J;this.getUniforms=function(){return J===void 0&&P(this),J};let w;this.getAttributes=function(){return w===void 0&&P(this),w};let b=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return b===!1&&(b=r.getProgramParameter(y,ck)),b},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(y),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=uk++,this.cacheKey=e,this.usedTimes=1,this.program=y,this.vertexShader=M,this.fragmentShader=T,this}let Rk=0;class Tk{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new Dk(e),t.set(e,i)),i}}class Dk{constructor(e){this.id=Rk++,this.code=e,this.usedTimes=0}}function bk(n,e,t,i,r,s,o){const a=new Tl,c=new Tk,A=new Set,h=[],f=r.isWebGL2,d=r.logarithmicDepthBuffer,m=r.vertexTextures;let E=r.precision;const x={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function y(w){return A.add(w),w===0?"uv":`uv${w}`}function p(w,b,K,fe,Y){const ie=fe.fog,te=Y.geometry,ce=w.isMeshStandardMaterial?fe.environment:null,U=(w.isMeshStandardMaterial?t:e).get(w.envMap||ce),$=U&&U.mapping===vu?U.image.height:null,ee=x[w.type];w.precision!==null&&(E=r.getMaxPrecision(w.precision),E!==w.precision&&console.warn("THREE.WebGLProgram.getParameters:",w.precision,"not supported, using",E,"instead."));const ue=te.morphAttributes.position||te.morphAttributes.normal||te.morphAttributes.color,ye=ue!==void 0?ue.length:0;let ke=0;te.morphAttributes.position!==void 0&&(ke=1),te.morphAttributes.normal!==void 0&&(ke=2),te.morphAttributes.color!==void 0&&(ke=3);let V,O,k,F;if(ee){const Wt=is[ee];V=Wt.vertexShader,O=Wt.fragmentShader}else V=w.vertexShader,O=w.fragmentShader,c.update(w),k=c.getVertexShaderID(w),F=c.getFragmentShaderID(w);const ge=n.getRenderTarget(),ve=Y.isInstancedMesh===!0,se=Y.isBatchedMesh===!0,xe=!!w.map,H=!!w.matcap,me=!!U,ne=!!w.aoMap,ae=!!w.lightMap,he=!!w.bumpMap,Re=!!w.normalMap,Z=!!w.displacementMap,S=!!w.emissiveMap,D=!!w.metalnessMap,re=!!w.roughnessMap,De=w.anisotropy>0,Te=w.clearcoat>0,Me=w.iridescence>0,Xe=w.sheen>0,ze=w.transmission>0,qe=De&&!!w.anisotropyMap,at=Te&&!!w.clearcoatMap,yt=Te&&!!w.clearcoatNormalMap,Le=Te&&!!w.clearcoatRoughnessMap,Dt=Me&&!!w.iridescenceMap,Bt=Me&&!!w.iridescenceThicknessMap,dt=Xe&&!!w.sheenColorMap,ot=Xe&&!!w.sheenRoughnessMap,tt=!!w.specularMap,vt=!!w.specularColorMap,Pt=!!w.specularIntensityMap,Kt=ze&&!!w.transmissionMap,_t=ze&&!!w.thicknessMap,zt=!!w.gradientMap,X=!!w.alphaMap,Ge=w.alphaTest>0,Ue=!!w.alphaHash,it=!!w.extensions;let At=Ts;w.toneMapped&&(ge===null||ge.isXRRenderTarget===!0)&&(At=n.toneMapping);const Vt={isWebGL2:f,shaderID:ee,shaderType:w.type,shaderName:w.name,vertexShader:V,fragmentShader:O,defines:w.defines,customVertexShaderID:k,customFragmentShaderID:F,isRawShaderMaterial:w.isRawShaderMaterial===!0,glslVersion:w.glslVersion,precision:E,batching:se,instancing:ve,instancingColor:ve&&Y.instanceColor!==null,supportsVertexTextures:m,outputColorSpace:ge===null?n.outputColorSpace:ge.isXRRenderTarget===!0?ge.texture.colorSpace:bs,alphaToCoverage:!!w.alphaToCoverage,map:xe,matcap:H,envMap:me,envMapMode:me&&U.mapping,envMapCubeUVHeight:$,aoMap:ne,lightMap:ae,bumpMap:he,normalMap:Re,displacementMap:m&&Z,emissiveMap:S,normalMapObjectSpace:Re&&w.normalMapType===$Q,normalMapTangentSpace:Re&&w.normalMapType===Ma,metalnessMap:D,roughnessMap:re,anisotropy:De,anisotropyMap:qe,clearcoat:Te,clearcoatMap:at,clearcoatNormalMap:yt,clearcoatRoughnessMap:Le,iridescence:Me,iridescenceMap:Dt,iridescenceThicknessMap:Bt,sheen:Xe,sheenColorMap:dt,sheenRoughnessMap:ot,specularMap:tt,specularColorMap:vt,specularIntensityMap:Pt,transmission:ze,transmissionMap:Kt,thicknessMap:_t,gradientMap:zt,opaque:w.transparent===!1&&w.blending===Ml&&w.alphaToCoverage===!1,alphaMap:X,alphaTest:Ge,alphaHash:Ue,combine:w.combine,mapUv:xe&&y(w.map.channel),aoMapUv:ne&&y(w.aoMap.channel),lightMapUv:ae&&y(w.lightMap.channel),bumpMapUv:he&&y(w.bumpMap.channel),normalMapUv:Re&&y(w.normalMap.channel),displacementMapUv:Z&&y(w.displacementMap.channel),emissiveMapUv:S&&y(w.emissiveMap.channel),metalnessMapUv:D&&y(w.metalnessMap.channel),roughnessMapUv:re&&y(w.roughnessMap.channel),anisotropyMapUv:qe&&y(w.anisotropyMap.channel),clearcoatMapUv:at&&y(w.clearcoatMap.channel),clearcoatNormalMapUv:yt&&y(w.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Le&&y(w.clearcoatRoughnessMap.channel),iridescenceMapUv:Dt&&y(w.iridescenceMap.channel),iridescenceThicknessMapUv:Bt&&y(w.iridescenceThicknessMap.channel),sheenColorMapUv:dt&&y(w.sheenColorMap.channel),sheenRoughnessMapUv:ot&&y(w.sheenRoughnessMap.channel),specularMapUv:tt&&y(w.specularMap.channel),specularColorMapUv:vt&&y(w.specularColorMap.channel),specularIntensityMapUv:Pt&&y(w.specularIntensityMap.channel),transmissionMapUv:Kt&&y(w.transmissionMap.channel),thicknessMapUv:_t&&y(w.thicknessMap.channel),alphaMapUv:X&&y(w.alphaMap.channel),vertexTangents:!!te.attributes.tangent&&(Re||De),vertexColors:w.vertexColors,vertexAlphas:w.vertexColors===!0&&!!te.attributes.color&&te.attributes.color.itemSize===4,pointsUvs:Y.isPoints===!0&&!!te.attributes.uv&&(xe||X),fog:!!ie,useFog:w.fog===!0,fogExp2:!!ie&&ie.isFogExp2,flatShading:w.flatShading===!0,sizeAttenuation:w.sizeAttenuation===!0,logarithmicDepthBuffer:d,skinning:Y.isSkinnedMesh===!0,morphTargets:te.morphAttributes.position!==void 0,morphNormals:te.morphAttributes.normal!==void 0,morphColors:te.morphAttributes.color!==void 0,morphTargetsCount:ye,morphTextureStride:ke,numDirLights:b.directional.length,numPointLights:b.point.length,numSpotLights:b.spot.length,numSpotLightMaps:b.spotLightMap.length,numRectAreaLights:b.rectArea.length,numHemiLights:b.hemi.length,numDirLightShadows:b.directionalShadowMap.length,numPointLightShadows:b.pointShadowMap.length,numSpotLightShadows:b.spotShadowMap.length,numSpotLightShadowsWithMaps:b.numSpotLightShadowsWithMaps,numLightProbes:b.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:w.dithering,shadowMapEnabled:n.shadowMap.enabled&&K.length>0,shadowMapType:n.shadowMap.type,toneMapping:At,useLegacyLights:n._useLegacyLights,decodeVideoTexture:xe&&w.map.isVideoTexture===!0&&sn.getTransfer(w.map.colorSpace)===fn,premultipliedAlpha:w.premultipliedAlpha,doubleSided:w.side===Ss,flipSided:w.side===zi,useDepthPacking:w.depthPacking>=0,depthPacking:w.depthPacking||0,index0AttributeName:w.index0AttributeName,extensionDerivatives:it&&w.extensions.derivatives===!0,extensionFragDepth:it&&w.extensions.fragDepth===!0,extensionDrawBuffers:it&&w.extensions.drawBuffers===!0,extensionShaderTextureLOD:it&&w.extensions.shaderTextureLOD===!0,extensionClipCullDistance:it&&w.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:it&&w.extensions.multiDraw===!0&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:f||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:f||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:f||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:w.customProgramCacheKey()};return Vt.vertexUv1s=A.has(1),Vt.vertexUv2s=A.has(2),Vt.vertexUv3s=A.has(3),A.clear(),Vt}function C(w){const b=[];if(w.shaderID?b.push(w.shaderID):(b.push(w.customVertexShaderID),b.push(w.customFragmentShaderID)),w.defines!==void 0)for(const K in w.defines)b.push(K),b.push(w.defines[K]);return w.isRawShaderMaterial===!1&&(I(b,w),B(b,w),b.push(n.outputColorSpace)),b.push(w.customProgramCacheKey),b.join()}function I(w,b){w.push(b.precision),w.push(b.outputColorSpace),w.push(b.envMapMode),w.push(b.envMapCubeUVHeight),w.push(b.mapUv),w.push(b.alphaMapUv),w.push(b.lightMapUv),w.push(b.aoMapUv),w.push(b.bumpMapUv),w.push(b.normalMapUv),w.push(b.displacementMapUv),w.push(b.emissiveMapUv),w.push(b.metalnessMapUv),w.push(b.roughnessMapUv),w.push(b.anisotropyMapUv),w.push(b.clearcoatMapUv),w.push(b.clearcoatNormalMapUv),w.push(b.clearcoatRoughnessMapUv),w.push(b.iridescenceMapUv),w.push(b.iridescenceThicknessMapUv),w.push(b.sheenColorMapUv),w.push(b.sheenRoughnessMapUv),w.push(b.specularMapUv),w.push(b.specularColorMapUv),w.push(b.specularIntensityMapUv),w.push(b.transmissionMapUv),w.push(b.thicknessMapUv),w.push(b.combine),w.push(b.fogExp2),w.push(b.sizeAttenuation),w.push(b.morphTargetsCount),w.push(b.morphAttributeCount),w.push(b.numDirLights),w.push(b.numPointLights),w.push(b.numSpotLights),w.push(b.numSpotLightMaps),w.push(b.numHemiLights),w.push(b.numRectAreaLights),w.push(b.numDirLightShadows),w.push(b.numPointLightShadows),w.push(b.numSpotLightShadows),w.push(b.numSpotLightShadowsWithMaps),w.push(b.numLightProbes),w.push(b.shadowMapType),w.push(b.toneMapping),w.push(b.numClippingPlanes),w.push(b.numClipIntersection),w.push(b.depthPacking)}function B(w,b){a.disableAll(),b.isWebGL2&&a.enable(0),b.supportsVertexTextures&&a.enable(1),b.instancing&&a.enable(2),b.instancingColor&&a.enable(3),b.matcap&&a.enable(4),b.envMap&&a.enable(5),b.normalMapObjectSpace&&a.enable(6),b.normalMapTangentSpace&&a.enable(7),b.clearcoat&&a.enable(8),b.iridescence&&a.enable(9),b.alphaTest&&a.enable(10),b.vertexColors&&a.enable(11),b.vertexAlphas&&a.enable(12),b.vertexUv1s&&a.enable(13),b.vertexUv2s&&a.enable(14),b.vertexUv3s&&a.enable(15),b.vertexTangents&&a.enable(16),b.anisotropy&&a.enable(17),b.alphaHash&&a.enable(18),b.batching&&a.enable(19),w.push(a.mask),a.disableAll(),b.fog&&a.enable(0),b.useFog&&a.enable(1),b.flatShading&&a.enable(2),b.logarithmicDepthBuffer&&a.enable(3),b.skinning&&a.enable(4),b.morphTargets&&a.enable(5),b.morphNormals&&a.enable(6),b.morphColors&&a.enable(7),b.premultipliedAlpha&&a.enable(8),b.shadowMapEnabled&&a.enable(9),b.useLegacyLights&&a.enable(10),b.doubleSided&&a.enable(11),b.flipSided&&a.enable(12),b.useDepthPacking&&a.enable(13),b.dithering&&a.enable(14),b.transmission&&a.enable(15),b.sheen&&a.enable(16),b.opaque&&a.enable(17),b.pointsUvs&&a.enable(18),b.decodeVideoTexture&&a.enable(19),b.alphaToCoverage&&a.enable(20),w.push(a.mask)}function R(w){const b=x[w.type];let K;if(b){const fe=is[b];K=hR.clone(fe.uniforms)}else K=w.uniforms;return K}function M(w,b){let K;for(let fe=0,Y=h.length;fe0?i.push(p):m.transparent===!0?r.push(p):t.push(p)}function c(f,d,m,E,x,y){const p=o(f,d,m,E,x,y);m.transmission>0?i.unshift(p):m.transparent===!0?r.unshift(p):t.unshift(p)}function A(f,d){t.length>1&&t.sort(f||Lk),i.length>1&&i.sort(d||uS),r.length>1&&r.sort(d||uS)}function h(){for(let f=e,d=n.length;f=s.length?(o=new AS,s.push(o)):o=s[r],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function Uk(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new G,color:new Je};break;case"SpotLight":t={position:new G,direction:new G,color:new Je,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new G,color:new Je,distance:0,decay:0};break;case"HemisphereLight":t={direction:new G,skyColor:new Je,groundColor:new Je};break;case"RectAreaLight":t={color:new Je,position:new G,halfWidth:new G,halfHeight:new G};break}return n[e.id]=t,t}}}function Fk(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Be};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Be};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Be,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let kk=0;function Gk(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function Ok(n,e){const t=new Uk,i=Fk(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)r.probe.push(new G);const s=new G,o=new ft,a=new ft;function c(h,f){let d=0,m=0,E=0;for(let K=0;K<9;K++)r.probe[K].set(0,0,0);let x=0,y=0,p=0,C=0,I=0,B=0,R=0,M=0,T=0,P=0,J=0;h.sort(Gk);const w=f===!0?Math.PI:1;for(let K=0,fe=h.length;K0&&(e.isWebGL2?n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=d,r.ambient[1]=m,r.ambient[2]=E;const b=r.hash;(b.directionalLength!==x||b.pointLength!==y||b.spotLength!==p||b.rectAreaLength!==C||b.hemiLength!==I||b.numDirectionalShadows!==B||b.numPointShadows!==R||b.numSpotShadows!==M||b.numSpotMaps!==T||b.numLightProbes!==J)&&(r.directional.length=x,r.spot.length=p,r.rectArea.length=C,r.point.length=y,r.hemi.length=I,r.directionalShadow.length=B,r.directionalShadowMap.length=B,r.pointShadow.length=R,r.pointShadowMap.length=R,r.spotShadow.length=M,r.spotShadowMap.length=M,r.directionalShadowMatrix.length=B,r.pointShadowMatrix.length=R,r.spotLightMatrix.length=M+T-P,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=P,r.numLightProbes=J,b.directionalLength=x,b.pointLength=y,b.spotLength=p,b.rectAreaLength=C,b.hemiLength=I,b.numDirectionalShadows=B,b.numPointShadows=R,b.numSpotShadows=M,b.numSpotMaps=T,b.numLightProbes=J,r.version=kk++)}function A(h,f){let d=0,m=0,E=0,x=0,y=0;const p=f.matrixWorldInverse;for(let C=0,I=h.length;C=a.length?(c=new hS(n,e),a.push(c)):c=a[o],c}function r(){t=new WeakMap}return{get:i,dispose:r}}class Og extends ui{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=ZQ,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class Hg extends ui{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const zk=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,Vk=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function Wk(n,e,t){let i=new Uh;const r=new Be,s=new Be,o=new on,a=new Og({depthPacking:qv}),c=new Hg,A={},h=t.maxTextureSize,f={[zr]:zi,[zi]:zr,[Ss]:Ss},d=new cs({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Be},radius:{value:4}},vertexShader:zk,fragmentShader:Vk}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const E=new Tt;E.setAttribute("position",new rn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const x=new nn(E,d),y=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Ng;let p=this.type;this.render=function(M,T,P){if(y.enabled===!1||y.autoUpdate===!1&&y.needsUpdate===!1||M.length===0)return;const J=n.getRenderTarget(),w=n.getActiveCubeFace(),b=n.getActiveMipmapLevel(),K=n.state;K.setBlending(co),K.buffers.color.setClear(1,1,1,1),K.buffers.depth.setTest(!0),K.setScissorTest(!1);const fe=p!==$r&&this.type===$r,Y=p===$r&&this.type!==$r;for(let ie=0,te=M.length;ieh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/$.x),r.x=s.x*$.x,U.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/$.y),r.y=s.y*$.y,U.mapSize.y=s.y)),U.map===null||fe===!0||Y===!0){const ue=this.type!==$r?{minFilter:Gn,magFilter:Gn}:{};U.map!==null&&U.map.dispose(),U.map=new Vr(r.x,r.y,ue),U.map.texture.name=ce.name+".shadowMap",U.camera.updateProjectionMatrix()}n.setRenderTarget(U.map),n.clear();const ee=U.getViewportCount();for(let ue=0;ue0||T.map&&T.alphaTest>0){const K=w.uuid,fe=T.uuid;let Y=A[K];Y===void 0&&(Y={},A[K]=Y);let ie=Y[fe];ie===void 0&&(ie=w.clone(),Y[fe]=ie,T.addEventListener("dispose",R)),w=ie}if(w.visible=T.visible,w.wireframe=T.wireframe,J===$r?w.side=T.shadowSide!==null?T.shadowSide:T.side:w.side=T.shadowSide!==null?T.shadowSide:f[T.side],w.alphaMap=T.alphaMap,w.alphaTest=T.alphaTest,w.map=T.map,w.clipShadows=T.clipShadows,w.clippingPlanes=T.clippingPlanes,w.clipIntersection=T.clipIntersection,w.displacementMap=T.displacementMap,w.displacementScale=T.displacementScale,w.displacementBias=T.displacementBias,w.wireframeLinewidth=T.wireframeLinewidth,w.linewidth=T.linewidth,P.isPointLight===!0&&w.isMeshDistanceMaterial===!0){const K=n.properties.get(w);K.light=P}return w}function B(M,T,P,J,w){if(M.visible===!1)return;if(M.layers.test(T.layers)&&(M.isMesh||M.isLine||M.isPoints)&&(M.castShadow||M.receiveShadow&&w===$r)&&(!M.frustumCulled||i.intersectsObject(M))){M.modelViewMatrix.multiplyMatrices(P.matrixWorldInverse,M.matrixWorld);const fe=e.update(M),Y=M.material;if(Array.isArray(Y)){const ie=fe.groups;for(let te=0,ce=ie.length;te=1):ee.indexOf("OpenGL ES")!==-1&&($=parseFloat(/^OpenGL ES (\d)/.exec(ee)[1]),U=$>=2);let ue=null,ye={};const ke=n.getParameter(n.SCISSOR_BOX),V=n.getParameter(n.VIEWPORT),O=new on().fromArray(ke),k=new on().fromArray(V);function F(X,Ge,Ue,it){const At=new Uint8Array(4),Vt=n.createTexture();n.bindTexture(X,Vt),n.texParameteri(X,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(X,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Wt=0;Wt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new WeakMap;let f;const d=new WeakMap;let m=!1;try{m=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function E(S,D){return m?new OffscreenCanvas(S,D):mh("canvas")}function x(S,D,re,De){let Te=1;if((S.width>De||S.height>De)&&(Te=De/Math.max(S.width,S.height)),Te<1||D===!0)if(typeof HTMLImageElement<"u"&&S instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&S instanceof ImageBitmap){const Me=D?Ag:Math.floor,Xe=Me(Te*S.width),ze=Me(Te*S.height);f===void 0&&(f=E(Xe,ze));const qe=re?E(Xe,ze):f;return qe.width=Xe,qe.height=ze,qe.getContext("2d").drawImage(S,0,0,Xe,ze),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+S.width+"x"+S.height+") to ("+Xe+"x"+ze+")."),qe}else return"data"in S&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+S.width+"x"+S.height+")."),S;return S}function y(S){return mI(S.width)&&mI(S.height)}function p(S){return a?!1:S.wrapS!==Ri||S.wrapT!==Ri||S.minFilter!==Gn&&S.minFilter!==yn}function C(S,D){return S.generateMipmaps&&D&&S.minFilter!==Gn&&S.minFilter!==yn}function I(S){n.generateMipmap(S)}function B(S,D,re,De,Te=!1){if(a===!1)return D;if(S!==null){if(n[S]!==void 0)return n[S];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+S+"'")}let Me=D;if(D===n.RED&&(re===n.FLOAT&&(Me=n.R32F),re===n.HALF_FLOAT&&(Me=n.R16F),re===n.UNSIGNED_BYTE&&(Me=n.R8)),D===n.RED_INTEGER&&(re===n.UNSIGNED_BYTE&&(Me=n.R8UI),re===n.UNSIGNED_SHORT&&(Me=n.R16UI),re===n.UNSIGNED_INT&&(Me=n.R32UI),re===n.BYTE&&(Me=n.R8I),re===n.SHORT&&(Me=n.R16I),re===n.INT&&(Me=n.R32I)),D===n.RG&&(re===n.FLOAT&&(Me=n.RG32F),re===n.HALF_FLOAT&&(Me=n.RG16F),re===n.UNSIGNED_BYTE&&(Me=n.RG8)),D===n.RGBA){const Xe=Te?hh:sn.getTransfer(De);re===n.FLOAT&&(Me=n.RGBA32F),re===n.HALF_FLOAT&&(Me=n.RGBA16F),re===n.UNSIGNED_BYTE&&(Me=Xe===fn?n.SRGB8_ALPHA8:n.RGBA8),re===n.UNSIGNED_SHORT_4_4_4_4&&(Me=n.RGBA4),re===n.UNSIGNED_SHORT_5_5_5_1&&(Me=n.RGB5_A1)}return(Me===n.R16F||Me===n.R32F||Me===n.RG16F||Me===n.RG32F||Me===n.RGBA16F||Me===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Me}function R(S,D,re){return C(S,re)===!0||S.isFramebufferTexture&&S.minFilter!==Gn&&S.minFilter!==yn?Math.log2(Math.max(D.width,D.height))+1:S.mipmaps!==void 0&&S.mipmaps.length>0?S.mipmaps.length:S.isCompressedTexture&&Array.isArray(S.image)?D.mipmaps.length:1}function M(S){return S===Gn||S===cg||S===ml?n.NEAREST:n.LINEAR}function T(S){const D=S.target;D.removeEventListener("dispose",T),J(D),D.isVideoTexture&&h.delete(D)}function P(S){const D=S.target;D.removeEventListener("dispose",P),b(D)}function J(S){const D=i.get(S);if(D.__webglInit===void 0)return;const re=S.source,De=d.get(re);if(De){const Te=De[D.__cacheKey];Te.usedTimes--,Te.usedTimes===0&&w(S),Object.keys(De).length===0&&d.delete(re)}i.remove(S)}function w(S){const D=i.get(S);n.deleteTexture(D.__webglTexture);const re=S.source,De=d.get(re);delete De[D.__cacheKey],o.memory.textures--}function b(S){const D=S.texture,re=i.get(S),De=i.get(D);if(De.__webglTexture!==void 0&&(n.deleteTexture(De.__webglTexture),o.memory.textures--),S.depthTexture&&S.depthTexture.dispose(),S.isWebGLCubeRenderTarget)for(let Te=0;Te<6;Te++){if(Array.isArray(re.__webglFramebuffer[Te]))for(let Me=0;Me=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+S+" texture units while this GPU supports only "+r.maxTextures),K+=1,S}function ie(S){const D=[];return D.push(S.wrapS),D.push(S.wrapT),D.push(S.wrapR||0),D.push(S.magFilter),D.push(S.minFilter),D.push(S.anisotropy),D.push(S.internalFormat),D.push(S.format),D.push(S.type),D.push(S.generateMipmaps),D.push(S.premultiplyAlpha),D.push(S.flipY),D.push(S.unpackAlignment),D.push(S.colorSpace),D.join()}function te(S,D){const re=i.get(S);if(S.isVideoTexture&&Re(S),S.isRenderTargetTexture===!1&&S.version>0&&re.__version!==S.version){const De=S.image;if(De===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(De.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{O(re,S,D);return}}t.bindTexture(n.TEXTURE_2D,re.__webglTexture,n.TEXTURE0+D)}function ce(S,D){const re=i.get(S);if(S.version>0&&re.__version!==S.version){O(re,S,D);return}t.bindTexture(n.TEXTURE_2D_ARRAY,re.__webglTexture,n.TEXTURE0+D)}function U(S,D){const re=i.get(S);if(S.version>0&&re.__version!==S.version){O(re,S,D);return}t.bindTexture(n.TEXTURE_3D,re.__webglTexture,n.TEXTURE0+D)}function $(S,D){const re=i.get(S);if(S.version>0&&re.__version!==S.version){k(re,S,D);return}t.bindTexture(n.TEXTURE_CUBE_MAP,re.__webglTexture,n.TEXTURE0+D)}const ee={[ah]:n.REPEAT,[Ri]:n.CLAMP_TO_EDGE,[lh]:n.MIRRORED_REPEAT},ue={[Gn]:n.NEAREST,[cg]:n.NEAREST_MIPMAP_NEAREST,[ml]:n.NEAREST_MIPMAP_LINEAR,[yn]:n.LINEAR,[PA]:n.LINEAR_MIPMAP_NEAREST,[ws]:n.LINEAR_MIPMAP_LINEAR},ye={[eR]:n.NEVER,[oR]:n.ALWAYS,[tR]:n.LESS,[jv]:n.LEQUAL,[nR]:n.EQUAL,[sR]:n.GEQUAL,[iR]:n.GREATER,[rR]:n.NOTEQUAL};function ke(S,D,re){if(D.type===Ur&&e.has("OES_texture_float_linear")===!1&&(D.magFilter===yn||D.magFilter===PA||D.magFilter===ml||D.magFilter===ws||D.minFilter===yn||D.minFilter===PA||D.minFilter===ml||D.minFilter===ws)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),re?(n.texParameteri(S,n.TEXTURE_WRAP_S,ee[D.wrapS]),n.texParameteri(S,n.TEXTURE_WRAP_T,ee[D.wrapT]),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,ee[D.wrapR]),n.texParameteri(S,n.TEXTURE_MAG_FILTER,ue[D.magFilter]),n.texParameteri(S,n.TEXTURE_MIN_FILTER,ue[D.minFilter])):(n.texParameteri(S,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(S,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(D.wrapS!==Ri||D.wrapT!==Ri)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(S,n.TEXTURE_MAG_FILTER,M(D.magFilter)),n.texParameteri(S,n.TEXTURE_MIN_FILTER,M(D.minFilter)),D.minFilter!==Gn&&D.minFilter!==yn&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),D.compareFunction&&(n.texParameteri(S,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(S,n.TEXTURE_COMPARE_FUNC,ye[D.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const De=e.get("EXT_texture_filter_anisotropic");if(D.magFilter===Gn||D.minFilter!==ml&&D.minFilter!==ws||D.type===Ur&&e.has("OES_texture_float_linear")===!1||a===!1&&D.type===Fl&&e.has("OES_texture_half_float_linear")===!1)return;(D.anisotropy>1||i.get(D).__currentAnisotropy)&&(n.texParameterf(S,De.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,r.getMaxAnisotropy())),i.get(D).__currentAnisotropy=D.anisotropy)}}function V(S,D){let re=!1;S.__webglInit===void 0&&(S.__webglInit=!0,D.addEventListener("dispose",T));const De=D.source;let Te=d.get(De);Te===void 0&&(Te={},d.set(De,Te));const Me=ie(D);if(Me!==S.__cacheKey){Te[Me]===void 0&&(Te[Me]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,re=!0),Te[Me].usedTimes++;const Xe=Te[S.__cacheKey];Xe!==void 0&&(Te[S.__cacheKey].usedTimes--,Xe.usedTimes===0&&w(D)),S.__cacheKey=Me,S.__webglTexture=Te[Me].texture}return re}function O(S,D,re){let De=n.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&&(De=n.TEXTURE_2D_ARRAY),D.isData3DTexture&&(De=n.TEXTURE_3D);const Te=V(S,D),Me=D.source;t.bindTexture(De,S.__webglTexture,n.TEXTURE0+re);const Xe=i.get(Me);if(Me.version!==Xe.__version||Te===!0){t.activeTexture(n.TEXTURE0+re);const ze=sn.getPrimaries(sn.workingColorSpace),qe=D.colorSpace===mr?null:sn.getPrimaries(D.colorSpace),at=D.colorSpace===mr||ze===qe?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,D.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,D.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,at);const yt=p(D)&&y(D.image)===!1;let Le=x(D.image,yt,!1,r.maxTextureSize);Le=Z(D,Le);const Dt=y(Le)||a,Bt=s.convert(D.format,D.colorSpace);let dt=s.convert(D.type),ot=B(D.internalFormat,Bt,dt,D.colorSpace,D.isVideoTexture);ke(De,D,Dt);let tt;const vt=D.mipmaps,Pt=a&&D.isVideoTexture!==!0&&ot!==Xv,Kt=Xe.__version===void 0||Te===!0,_t=Me.dataReady,zt=R(D,Le,Dt);if(D.isDepthTexture)ot=n.DEPTH_COMPONENT,a?D.type===Ur?ot=n.DEPTH_COMPONENT32F:D.type===oo?ot=n.DEPTH_COMPONENT24:D.type===pa?ot=n.DEPTH24_STENCIL8:ot=n.DEPTH_COMPONENT16:D.type===Ur&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),D.format===ga&&ot===n.DEPTH_COMPONENT&&D.type!==Pg&&D.type!==oo&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),D.type=oo,dt=s.convert(D.type)),D.format===kl&&ot===n.DEPTH_COMPONENT&&(ot=n.DEPTH_STENCIL,D.type!==pa&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),D.type=pa,dt=s.convert(D.type))),Kt&&(Pt?t.texStorage2D(n.TEXTURE_2D,1,ot,Le.width,Le.height):t.texImage2D(n.TEXTURE_2D,0,ot,Le.width,Le.height,0,Bt,dt,null));else if(D.isDataTexture)if(vt.length>0&&Dt){Pt&&Kt&&t.texStorage2D(n.TEXTURE_2D,zt,ot,vt[0].width,vt[0].height);for(let X=0,Ge=vt.length;X>=1,Ge>>=1}}else if(vt.length>0&&Dt){Pt&&Kt&&t.texStorage2D(n.TEXTURE_2D,zt,ot,vt[0].width,vt[0].height);for(let X=0,Ge=vt.length;X0&&_t++,t.texStorage2D(n.TEXTURE_CUBE_MAP,_t,tt,Le[0].width,Le[0].height));for(let X=0;X<6;X++)if(yt){vt?Kt&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+X,0,0,0,Le[X].width,Le[X].height,dt,ot,Le[X].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+X,0,tt,Le[X].width,Le[X].height,0,dt,ot,Le[X].data);for(let Ge=0;Ge>Me),Le=Math.max(1,D.height>>Me);Te===n.TEXTURE_3D||Te===n.TEXTURE_2D_ARRAY?t.texImage3D(Te,Me,qe,yt,Le,D.depth,0,Xe,ze,null):t.texImage2D(Te,Me,qe,yt,Le,0,Xe,ze,null)}t.bindFramebuffer(n.FRAMEBUFFER,S),he(D)?c.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,De,Te,i.get(re).__webglTexture,0,ae(D)):(Te===n.TEXTURE_2D||Te>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&Te<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,De,Te,i.get(re).__webglTexture,Me),t.bindFramebuffer(n.FRAMEBUFFER,null)}function ge(S,D,re){if(n.bindRenderbuffer(n.RENDERBUFFER,S),D.depthBuffer&&!D.stencilBuffer){let De=a===!0?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(re||he(D)){const Te=D.depthTexture;Te&&Te.isDepthTexture&&(Te.type===Ur?De=n.DEPTH_COMPONENT32F:Te.type===oo&&(De=n.DEPTH_COMPONENT24));const Me=ae(D);he(D)?c.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Me,De,D.width,D.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Me,De,D.width,D.height)}else n.renderbufferStorage(n.RENDERBUFFER,De,D.width,D.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,S)}else if(D.depthBuffer&&D.stencilBuffer){const De=ae(D);re&&he(D)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,De,n.DEPTH24_STENCIL8,D.width,D.height):he(D)?c.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,De,n.DEPTH24_STENCIL8,D.width,D.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,D.width,D.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,S)}else{const De=D.isWebGLMultipleRenderTargets===!0?D.texture:[D.texture];for(let Te=0;Te0){re.__webglFramebuffer[ze]=[];for(let qe=0;qe0){re.__webglFramebuffer=[];for(let ze=0;ze0&&he(S)===!1){const ze=Me?D:[D];re.__webglMultisampledFramebuffer=n.createFramebuffer(),re.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,re.__webglMultisampledFramebuffer);for(let qe=0;qe0)for(let qe=0;qe0)for(let qe=0;qe0&&he(S)===!1){const D=S.isWebGLMultipleRenderTargets?S.texture:[S.texture],re=S.width,De=S.height;let Te=n.COLOR_BUFFER_BIT;const Me=[],Xe=S.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ze=i.get(S),qe=S.isWebGLMultipleRenderTargets===!0;if(qe)for(let at=0;at0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&D.__useRenderToTexture!==!1}function Re(S){const D=o.render.frame;h.get(S)!==D&&(h.set(S,D),S.update())}function Z(S,D){const re=S.colorSpace,De=S.format,Te=S.type;return S.isCompressedTexture===!0||S.isVideoTexture===!0||S.format===ug||re!==bs&&re!==mr&&(sn.getTransfer(re)===fn?a===!1?e.has("EXT_sRGB")===!0&&De===Gi?(S.format=ug,S.minFilter=yn,S.generateMipmaps=!1):D=$v.sRGBToLinear(D):(De!==Gi||Te!==Ds)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",re)),D}this.allocateTextureUnit=Y,this.resetTextureUnits=fe,this.setTexture2D=te,this.setTexture2DArray=ce,this.setTexture3D=U,this.setTextureCube=$,this.rebindTextures=xe,this.setupRenderTarget=H,this.updateRenderTargetMipmap=me,this.updateMultisampleRenderTarget=ne,this.setupDepthRenderbuffer=se,this.setupFrameBufferTexture=F,this.useMultisampledRTT=he}function vR(n,e,t){const i=t.isWebGL2;function r(s,o=mr){let a;const c=sn.getTransfer(o);if(s===Ds)return n.UNSIGNED_BYTE;if(s===Hv)return n.UNSIGNED_SHORT_4_4_4_4;if(s===zv)return n.UNSIGNED_SHORT_5_5_5_1;if(s===OQ)return n.BYTE;if(s===HQ)return n.SHORT;if(s===Pg)return n.UNSIGNED_SHORT;if(s===Ov)return n.INT;if(s===oo)return n.UNSIGNED_INT;if(s===Ur)return n.FLOAT;if(s===Fl)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===zQ)return n.ALPHA;if(s===Gi)return n.RGBA;if(s===VQ)return n.LUMINANCE;if(s===WQ)return n.LUMINANCE_ALPHA;if(s===ga)return n.DEPTH_COMPONENT;if(s===kl)return n.DEPTH_STENCIL;if(s===ug)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===YQ)return n.RED;if(s===Vv)return n.RED_INTEGER;if(s===XQ)return n.RG;if(s===Wv)return n.RG_INTEGER;if(s===Yv)return n.RGBA_INTEGER;if(s===vp||s===Cp||s===xp||s===Bp)if(c===fn)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===vp)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===Cp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===xp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===Bp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===vp)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===Cp)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===xp)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===Bp)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===Vy||s===Wy||s===Yy||s===Xy)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===Vy)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Wy)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Yy)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===Xy)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===Xv)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===Jy||s===Ky)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(s===Jy)return c===fn?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===Ky)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===qy||s===jy||s===Zy||s===$y||s===eI||s===tI||s===nI||s===iI||s===rI||s===sI||s===oI||s===aI||s===lI||s===cI)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(s===qy)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===jy)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===Zy)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===$y)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===eI)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===tI)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===nI)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===iI)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===rI)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===sI)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===oI)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===aI)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===lI)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===cI)return c===fn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===_p||s===uI||s===AI)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(s===_p)return c===fn?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===uI)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===AI)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===JQ||s===hI||s===fI||s===dI)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(s===_p)return a.COMPRESSED_RED_RGTC1_EXT;if(s===hI)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===fI)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===dI)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===pa?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[s]!==void 0?n[s]:null}return{convert:r}}class CR extends jn{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class kr extends $t{constructor(){super(),this.isGroup=!0,this.type="Group"}}const Jk={type:"move"};class lE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new kr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new kr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new G,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new G),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new kr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new G,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new G),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,s=null,o=null;const a=this._targetRay,c=this._grip,A=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(A&&e.hand){o=!0;for(const x of e.hand.values()){const y=t.getJointPose(x,i),p=this._getHandJoint(A,x);y!==null&&(p.matrix.fromArray(y.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.matrixWorldNeedsUpdate=!0,p.jointRadius=y.radius),p.visible=y!==null}const h=A.joints["index-finger-tip"],f=A.joints["thumb-tip"],d=h.position.distanceTo(f.position),m=.02,E=.005;A.inputState.pinching&&d>m+E?(A.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!A.inputState.pinching&&d<=m-E&&(A.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));a!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Jk)))}return a!==null&&(a.visible=r!==null),c!==null&&(c.visible=s!==null),A!==null&&(A.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new kr;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}const Kk=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,qk=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class jk{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,i){if(this.texture===null){const r=new Bn,s=e.properties.get(r);s.__webglTexture=t.texture,(t.depthNear!=i.depthNear||t.depthFar!=i.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}render(e,t){if(this.texture!==null){if(this.mesh===null){const i=t.cameras[0].viewport,r=new cs({extensions:{fragDepth:!0},vertexShader:Kk,fragmentShader:qk,uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new nn(new Qa(20,20),r)}e.render(this.mesh,t)}}reset(){this.texture=null,this.mesh=null}}class Zk extends mo{constructor(e,t){super();const i=this;let r=null,s=1,o=null,a="local-floor",c=1,A=null,h=null,f=null,d=null,m=null,E=null;const x=new jk,y=t.getContextAttributes();let p=null,C=null;const I=[],B=[],R=new Be;let M=null;const T=new jn;T.layers.enable(1),T.viewport=new on;const P=new jn;P.layers.enable(2),P.viewport=new on;const J=[T,P],w=new CR;w.layers.enable(1),w.layers.enable(2);let b=null,K=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(V){let O=I[V];return O===void 0&&(O=new lE,I[V]=O),O.getTargetRaySpace()},this.getControllerGrip=function(V){let O=I[V];return O===void 0&&(O=new lE,I[V]=O),O.getGripSpace()},this.getHand=function(V){let O=I[V];return O===void 0&&(O=new lE,I[V]=O),O.getHandSpace()};function fe(V){const O=B.indexOf(V.inputSource);if(O===-1)return;const k=I[O];k!==void 0&&(k.update(V.inputSource,V.frame,A||o),k.dispatchEvent({type:V.type,data:V.inputSource}))}function Y(){r.removeEventListener("select",fe),r.removeEventListener("selectstart",fe),r.removeEventListener("selectend",fe),r.removeEventListener("squeeze",fe),r.removeEventListener("squeezestart",fe),r.removeEventListener("squeezeend",fe),r.removeEventListener("end",Y),r.removeEventListener("inputsourceschange",ie);for(let V=0;V=0&&(B[F]=null,I[F].disconnect(k))}for(let O=0;O=B.length){B.push(k),F=ve;break}else if(B[ve]===null){B[ve]=k,F=ve;break}if(F===-1)break}const ge=I[F];ge&&ge.connect(k)}}const te=new G,ce=new G;function U(V,O,k){te.setFromMatrixPosition(O.matrixWorld),ce.setFromMatrixPosition(k.matrixWorld);const F=te.distanceTo(ce),ge=O.projectionMatrix.elements,ve=k.projectionMatrix.elements,se=ge[14]/(ge[10]-1),xe=ge[14]/(ge[10]+1),H=(ge[9]+1)/ge[5],me=(ge[9]-1)/ge[5],ne=(ge[8]-1)/ge[0],ae=(ve[8]+1)/ve[0],he=se*ne,Re=se*ae,Z=F/(-ne+ae),S=Z*-ne;O.matrixWorld.decompose(V.position,V.quaternion,V.scale),V.translateX(S),V.translateZ(Z),V.matrixWorld.compose(V.position,V.quaternion,V.scale),V.matrixWorldInverse.copy(V.matrixWorld).invert();const D=se+Z,re=xe+Z,De=he-S,Te=Re+(F-S),Me=H*xe/re*D,Xe=me*xe/re*D;V.projectionMatrix.makePerspective(De,Te,Me,Xe,D,re),V.projectionMatrixInverse.copy(V.projectionMatrix).invert()}function $(V,O){O===null?V.matrixWorld.copy(V.matrix):V.matrixWorld.multiplyMatrices(O.matrixWorld,V.matrix),V.matrixWorldInverse.copy(V.matrixWorld).invert()}this.updateCamera=function(V){if(r===null)return;x.texture!==null&&(V.near=x.depthNear,V.far=x.depthFar),w.near=P.near=T.near=V.near,w.far=P.far=T.far=V.far,(b!==w.near||K!==w.far)&&(r.updateRenderState({depthNear:w.near,depthFar:w.far}),b=w.near,K=w.far,T.near=b,T.far=K,P.near=b,P.far=K,T.updateProjectionMatrix(),P.updateProjectionMatrix(),V.updateProjectionMatrix());const O=V.parent,k=w.cameras;$(w,O);for(let F=0;F0&&(y.alphaTest.value=p.alphaTest);const C=e.get(p).envMap;if(C&&(y.envMap.value=C,y.flipEnvMap.value=C.isCubeTexture&&C.isRenderTargetTexture===!1?-1:1,y.reflectivity.value=p.reflectivity,y.ior.value=p.ior,y.refractionRatio.value=p.refractionRatio),p.lightMap){y.lightMap.value=p.lightMap;const I=n._useLegacyLights===!0?Math.PI:1;y.lightMapIntensity.value=p.lightMapIntensity*I,t(p.lightMap,y.lightMapTransform)}p.aoMap&&(y.aoMap.value=p.aoMap,y.aoMapIntensity.value=p.aoMapIntensity,t(p.aoMap,y.aoMapTransform))}function o(y,p){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,p.map&&(y.map.value=p.map,t(p.map,y.mapTransform))}function a(y,p){y.dashSize.value=p.dashSize,y.totalSize.value=p.dashSize+p.gapSize,y.scale.value=p.scale}function c(y,p,C,I){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,y.size.value=p.size*C,y.scale.value=I*.5,p.map&&(y.map.value=p.map,t(p.map,y.uvTransform)),p.alphaMap&&(y.alphaMap.value=p.alphaMap,t(p.alphaMap,y.alphaMapTransform)),p.alphaTest>0&&(y.alphaTest.value=p.alphaTest)}function A(y,p){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,y.rotation.value=p.rotation,p.map&&(y.map.value=p.map,t(p.map,y.mapTransform)),p.alphaMap&&(y.alphaMap.value=p.alphaMap,t(p.alphaMap,y.alphaMapTransform)),p.alphaTest>0&&(y.alphaTest.value=p.alphaTest)}function h(y,p){y.specular.value.copy(p.specular),y.shininess.value=Math.max(p.shininess,1e-4)}function f(y,p){p.gradientMap&&(y.gradientMap.value=p.gradientMap)}function d(y,p){y.metalness.value=p.metalness,p.metalnessMap&&(y.metalnessMap.value=p.metalnessMap,t(p.metalnessMap,y.metalnessMapTransform)),y.roughness.value=p.roughness,p.roughnessMap&&(y.roughnessMap.value=p.roughnessMap,t(p.roughnessMap,y.roughnessMapTransform)),e.get(p).envMap&&(y.envMapIntensity.value=p.envMapIntensity)}function m(y,p,C){y.ior.value=p.ior,p.sheen>0&&(y.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),y.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(y.sheenColorMap.value=p.sheenColorMap,t(p.sheenColorMap,y.sheenColorMapTransform)),p.sheenRoughnessMap&&(y.sheenRoughnessMap.value=p.sheenRoughnessMap,t(p.sheenRoughnessMap,y.sheenRoughnessMapTransform))),p.clearcoat>0&&(y.clearcoat.value=p.clearcoat,y.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(y.clearcoatMap.value=p.clearcoatMap,t(p.clearcoatMap,y.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(y.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,t(p.clearcoatRoughnessMap,y.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(y.clearcoatNormalMap.value=p.clearcoatNormalMap,t(p.clearcoatNormalMap,y.clearcoatNormalMapTransform),y.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===zi&&y.clearcoatNormalScale.value.negate())),p.iridescence>0&&(y.iridescence.value=p.iridescence,y.iridescenceIOR.value=p.iridescenceIOR,y.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],y.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(y.iridescenceMap.value=p.iridescenceMap,t(p.iridescenceMap,y.iridescenceMapTransform)),p.iridescenceThicknessMap&&(y.iridescenceThicknessMap.value=p.iridescenceThicknessMap,t(p.iridescenceThicknessMap,y.iridescenceThicknessMapTransform))),p.transmission>0&&(y.transmission.value=p.transmission,y.transmissionSamplerMap.value=C.texture,y.transmissionSamplerSize.value.set(C.width,C.height),p.transmissionMap&&(y.transmissionMap.value=p.transmissionMap,t(p.transmissionMap,y.transmissionMapTransform)),y.thickness.value=p.thickness,p.thicknessMap&&(y.thicknessMap.value=p.thicknessMap,t(p.thicknessMap,y.thicknessMapTransform)),y.attenuationDistance.value=p.attenuationDistance,y.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(y.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(y.anisotropyMap.value=p.anisotropyMap,t(p.anisotropyMap,y.anisotropyMapTransform))),y.specularIntensity.value=p.specularIntensity,y.specularColor.value.copy(p.specularColor),p.specularColorMap&&(y.specularColorMap.value=p.specularColorMap,t(p.specularColorMap,y.specularColorMapTransform)),p.specularIntensityMap&&(y.specularIntensityMap.value=p.specularIntensityMap,t(p.specularIntensityMap,y.specularIntensityMapTransform))}function E(y,p){p.matcap&&(y.matcap.value=p.matcap)}function x(y,p){const C=e.get(p).light;y.referencePosition.value.setFromMatrixPosition(C.matrixWorld),y.nearDistance.value=C.shadow.camera.near,y.farDistance.value=C.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function eG(n,e,t,i){let r={},s={},o=[];const a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function c(C,I){const B=I.program;i.uniformBlockBinding(C,B)}function A(C,I){let B=r[C.id];B===void 0&&(E(C),B=h(C),r[C.id]=B,C.addEventListener("dispose",y));const R=I.program;i.updateUBOMapping(C,R);const M=e.render.frame;s[C.id]!==M&&(d(C),s[C.id]=M)}function h(C){const I=f();C.__bindingPointIndex=I;const B=n.createBuffer(),R=C.__size,M=C.usage;return n.bindBuffer(n.UNIFORM_BUFFER,B),n.bufferData(n.UNIFORM_BUFFER,R,M),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,I,B),B}function f(){for(let C=0;C0&&(B+=R-M),C.__size=B,C.__cache={},this}function x(C){const I={boundary:0,storage:0};return typeof C=="number"||typeof C=="boolean"?(I.boundary=4,I.storage=4):C.isVector2?(I.boundary=8,I.storage=8):C.isVector3||C.isColor?(I.boundary=16,I.storage=12):C.isVector4?(I.boundary=16,I.storage=16):C.isMatrix3?(I.boundary=48,I.storage=48):C.isMatrix4?(I.boundary=64,I.storage=64):C.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",C),I}function y(C){const I=C.target;I.removeEventListener("dispose",y);const B=o.indexOf(I.__bindingPointIndex);o.splice(B,1),n.deleteBuffer(r[I.id]),delete r[I.id],delete s[I.id]}function p(){for(const C in r)n.deleteBuffer(r[C]);o=[],r={},s={}}return{bind:c,update:A,dispose:p}}class sC{constructor(e={}){const{canvas:t=lR(),context:i=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:A=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:f=!1}=e;this.isWebGLRenderer=!0;let d;i!==null?d=i.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),E=new Int32Array(4);let x=null,y=null;const p=[],C=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=On,this._useLegacyLights=!1,this.toneMapping=Ts,this.toneMappingExposure=1;const I=this;let B=!1,R=0,M=0,T=null,P=-1,J=null;const w=new on,b=new on;let K=null;const fe=new Je(0);let Y=0,ie=t.width,te=t.height,ce=1,U=null,$=null;const ee=new on(0,0,ie,te),ue=new on(0,0,ie,te);let ye=!1;const ke=new Uh;let V=!1,O=!1,k=null;const F=new ft,ge=new Be,ve=new G,se={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function xe(){return T===null?ce:1}let H=i;function me(z,de){for(let Ce=0;Ce{function Ze(){if(_e.forEach(function(lt){Z.get(lt).currentProgram.isReady()&&_e.delete(lt)}),_e.size===0){Ie(z);return}setTimeout(Ze,10)}ne.get("KHR_parallel_shader_compile")!==null?Ze():setTimeout(Ze,10)})};let Wt=null;function Tn(z){Wt&&Wt(z)}function Ai(){cn.stop()}function en(){cn.start()}const cn=new pR;cn.setAnimationLoop(Tn),typeof self<"u"&&cn.setContext(self),this.setAnimationLoop=function(z){Wt=z,_t.setAnimationLoop(z),z===null?cn.stop():cn.start()},_t.addEventListener("sessionstart",Ai),_t.addEventListener("sessionend",en),this.render=function(z,de){if(de!==void 0&&de.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(B===!0)return;z.matrixWorldAutoUpdate===!0&&z.updateMatrixWorld(),de.parent===null&&de.matrixWorldAutoUpdate===!0&&de.updateMatrixWorld(),_t.enabled===!0&&_t.isPresenting===!0&&(_t.cameraAutoUpdate===!0&&_t.updateCamera(de),de=_t.getCamera()),z.isScene===!0&&z.onBeforeRender(I,z,de,T),y=at.get(z,C.length),y.init(),C.push(y),F.multiplyMatrices(de.projectionMatrix,de.matrixWorldInverse),ke.setFromProjectionMatrix(F),O=this.localClippingEnabled,V=yt.init(this.clippingPlanes,O),x=qe.get(z,p.length),x.init(),p.push(x),Ki(z,de,0,I.sortObjects),x.finish(),I.sortObjects===!0&&x.sort(U,$),this.info.render.frame++,V===!0&&yt.beginShadows();const Ce=y.state.shadowsArray;if(Le.render(Ce,z,de),V===!0&&yt.endShadows(),this.info.autoReset===!0&&this.info.reset(),(_t.enabled===!1||_t.isPresenting===!1||_t.hasDepthSensing()===!1)&&Dt.render(x,z),y.setupLights(I._useLegacyLights),de.isArrayCamera){const _e=de.cameras;for(let Ie=0,Ze=_e.length;Ie0?y=C[C.length-1]:y=null,p.pop(),p.length>0?x=p[p.length-1]:x=null};function Ki(z,de,Ce,_e){if(z.visible===!1)return;if(z.layers.test(de.layers)){if(z.isGroup)Ce=z.renderOrder;else if(z.isLOD)z.autoUpdate===!0&&z.update(de);else if(z.isLight)y.pushLight(z),z.castShadow&&y.pushShadow(z);else if(z.isSprite){if(!z.frustumCulled||ke.intersectsSprite(z)){_e&&ve.setFromMatrixPosition(z.matrixWorld).applyMatrix4(F);const lt=Me.update(z),gt=z.material;gt.visible&&x.push(z,lt,gt,Ce,ve.z,null)}}else if((z.isMesh||z.isLine||z.isPoints)&&(!z.frustumCulled||ke.intersectsObject(z))){const lt=Me.update(z),gt=z.material;if(_e&&(z.boundingSphere!==void 0?(z.boundingSphere===null&&z.computeBoundingSphere(),ve.copy(z.boundingSphere.center)):(lt.boundingSphere===null&<.computeBoundingSphere(),ve.copy(lt.boundingSphere.center)),ve.applyMatrix4(z.matrixWorld).applyMatrix4(F)),Array.isArray(gt)){const pt=lt.groups;for(let St=0,Ct=pt.length;St0&&hi(Ie,Ze,de,Ce),_e&&he.viewport(w.copy(_e)),Ie.length>0&&Fs(Ie,de,Ce),Ze.length>0&&Fs(Ze,de,Ce),lt.length>0&&Fs(lt,de,Ce),he.buffers.depth.setTest(!0),he.buffers.depth.setMask(!0),he.buffers.color.setMask(!0),he.setPolygonOffset(!1)}function hi(z,de,Ce,_e){if((Ce.isScene===!0?Ce.overrideMaterial:null)!==null)return;const Ze=ae.isWebGL2;k===null&&(k=new Vr(1,1,{generateMipmaps:!0,type:ne.has("EXT_color_buffer_half_float")?Fl:Ds,minFilter:ws,samples:Ze?4:0})),I.getDrawingBufferSize(ge),Ze?k.setSize(ge.x,ge.y):k.setSize(Ag(ge.x),Ag(ge.y));const lt=I.getRenderTarget();I.setRenderTarget(k),I.getClearColor(fe),Y=I.getClearAlpha(),Y<1&&I.setClearColor(16777215,.5),I.clear();const gt=I.toneMapping;I.toneMapping=Ts,Fs(z,Ce,_e),S.updateMultisampleRenderTarget(k),S.updateRenderTargetMipmap(k);let pt=!1;for(let St=0,Ct=de.length;St0),xt=!!Ce.morphAttributes.position,pn=!!Ce.morphAttributes.normal,zn=!!Ce.morphAttributes.color;let tn=Ts;_e.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&(tn=I.toneMapping);const Vn=Ce.morphAttributes.position||Ce.morphAttributes.normal||Ce.morphAttributes.color,Et=Vn!==void 0?Vn.length:0,et=Z.get(_e),yi=y.state.lights;if(V===!0&&(O===!0||z!==J)){const Se=z===J&&_e.id===P;yt.setState(_e,z,Se)}let It=!1;_e.version===et.__version?(et.needsLights&&et.lightsStateVersion!==yi.state.version||et.outputColorSpace!==gt||Ie.isBatchedMesh&&et.batching===!1||!Ie.isBatchedMesh&&et.batching===!0||Ie.isInstancedMesh&&et.instancing===!1||!Ie.isInstancedMesh&&et.instancing===!0||Ie.isSkinnedMesh&&et.skinning===!1||!Ie.isSkinnedMesh&&et.skinning===!0||Ie.isInstancedMesh&&et.instancingColor===!0&&Ie.instanceColor===null||Ie.isInstancedMesh&&et.instancingColor===!1&&Ie.instanceColor!==null||et.envMap!==pt||_e.fog===!0&&et.fog!==Ze||et.numClippingPlanes!==void 0&&(et.numClippingPlanes!==yt.numPlanes||et.numIntersection!==yt.numIntersection)||et.vertexAlphas!==St||et.vertexTangents!==Ct||et.morphTargets!==xt||et.morphNormals!==pn||et.morphColors!==zn||et.toneMapping!==tn||ae.isWebGL2===!0&&et.morphTargetsCount!==Et)&&(It=!0):(It=!0,et.__version=_e.version);let un=et.currentProgram;It===!0&&(un=fs(_e,de,Ie));let ar=!1,N=!1,L=!1;const j=un.getUniforms(),oe=et.uniforms;if(he.useProgram(un.program)&&(ar=!0,N=!0,L=!0),_e.id!==P&&(P=_e.id,N=!0),ar||J!==z){j.setValue(H,"projectionMatrix",z.projectionMatrix),j.setValue(H,"viewMatrix",z.matrixWorldInverse);const Se=j.map.cameraPosition;Se!==void 0&&Se.setValue(H,ve.setFromMatrixPosition(z.matrixWorld)),ae.logarithmicDepthBuffer&&j.setValue(H,"logDepthBufFC",2/(Math.log(z.far+1)/Math.LN2)),(_e.isMeshPhongMaterial||_e.isMeshToonMaterial||_e.isMeshLambertMaterial||_e.isMeshBasicMaterial||_e.isMeshStandardMaterial||_e.isShaderMaterial)&&j.setValue(H,"isOrthographic",z.isOrthographicCamera===!0),J!==z&&(J=z,N=!0,L=!0)}if(Ie.isSkinnedMesh){j.setOptional(H,Ie,"bindMatrix"),j.setOptional(H,Ie,"bindMatrixInverse");const Se=Ie.skeleton;Se&&(ae.floatVertexTextures?(Se.boneTexture===null&&Se.computeBoneTexture(),j.setValue(H,"boneTexture",Se.boneTexture,S)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}Ie.isBatchedMesh&&(j.setOptional(H,Ie,"batchingTexture"),j.setValue(H,"batchingTexture",Ie._matricesTexture,S));const pe=Ce.morphAttributes;if((pe.position!==void 0||pe.normal!==void 0||pe.color!==void 0&&ae.isWebGL2===!0)&&Bt.update(Ie,Ce,un),(N||et.receiveShadow!==Ie.receiveShadow)&&(et.receiveShadow=Ie.receiveShadow,j.setValue(H,"receiveShadow",Ie.receiveShadow)),_e.isMeshGouraudMaterial&&_e.envMap!==null&&(oe.envMap.value=pt,oe.flipEnvMap.value=pt.isCubeTexture&&pt.isRenderTargetTexture===!1?-1:1),N&&(j.setValue(H,"toneMappingExposure",I.toneMappingExposure),et.needsLights&&Tu(oe,L),Ze&&_e.fog===!0&&ze.refreshFogUniforms(oe,Ze),ze.refreshMaterialUniforms(oe,_e,ce,te,k),wp.upload(H,Ro(et),oe,S)),_e.isShaderMaterial&&_e.uniformsNeedUpdate===!0&&(wp.upload(H,Ro(et),oe,S),_e.uniformsNeedUpdate=!1),_e.isSpriteMaterial&&j.setValue(H,"center",Ie.center),j.setValue(H,"modelViewMatrix",Ie.modelViewMatrix),j.setValue(H,"normalMatrix",Ie.normalMatrix),j.setValue(H,"modelMatrix",Ie.matrixWorld),_e.isShaderMaterial||_e.isRawShaderMaterial){const Se=_e.uniformsGroups;for(let Pe=0,Ne=Se.length;Pe0&&S.useMultisampledRTT(z)===!1?Ie=Z.get(z).__webglMultisampledFramebuffer:Array.isArray(Ct)?Ie=Ct[Ce]:Ie=Ct,w.copy(z.viewport),b.copy(z.scissor),K=z.scissorTest}else w.copy(ee).multiplyScalar(ce).floor(),b.copy(ue).multiplyScalar(ce).floor(),K=ye;if(he.bindFramebuffer(H.FRAMEBUFFER,Ie)&&ae.drawBuffers&&_e&&he.drawBuffers(z,Ie),he.viewport(w),he.scissor(b),he.setScissorTest(K),Ze){const pt=Z.get(z.texture);H.framebufferTexture2D(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_CUBE_MAP_POSITIVE_X+de,pt.__webglTexture,Ce)}else if(lt){const pt=Z.get(z.texture),St=de||0;H.framebufferTextureLayer(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,pt.__webglTexture,Ce||0,St)}P=-1},this.readRenderTargetPixels=function(z,de,Ce,_e,Ie,Ze,lt){if(!(z&&z.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let gt=Z.get(z).__webglFramebuffer;if(z.isWebGLCubeRenderTarget&<!==void 0&&(gt=gt[lt]),gt){he.bindFramebuffer(H.FRAMEBUFFER,gt);try{const pt=z.texture,St=pt.format,Ct=pt.type;if(St!==Gi&&tt.convert(St)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const xt=Ct===Fl&&(ne.has("EXT_color_buffer_half_float")||ae.isWebGL2&&ne.has("EXT_color_buffer_float"));if(Ct!==Ds&&tt.convert(Ct)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_TYPE)&&!(Ct===Ur&&(ae.isWebGL2||ne.has("OES_texture_float")||ne.has("WEBGL_color_buffer_float")))&&!xt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}de>=0&&de<=z.width-_e&&Ce>=0&&Ce<=z.height-Ie&&H.readPixels(de,Ce,_e,Ie,tt.convert(St),tt.convert(Ct),Ze)}finally{const pt=T!==null?Z.get(T).__webglFramebuffer:null;he.bindFramebuffer(H.FRAMEBUFFER,pt)}}},this.copyFramebufferToTexture=function(z,de,Ce=0){const _e=Math.pow(2,-Ce),Ie=Math.floor(de.image.width*_e),Ze=Math.floor(de.image.height*_e);S.setTexture2D(de,0),H.copyTexSubImage2D(H.TEXTURE_2D,Ce,0,0,z.x,z.y,Ie,Ze),he.unbindTexture()},this.copyTextureToTexture=function(z,de,Ce,_e=0){const Ie=de.image.width,Ze=de.image.height,lt=tt.convert(Ce.format),gt=tt.convert(Ce.type);S.setTexture2D(Ce,0),H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,Ce.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Ce.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,Ce.unpackAlignment),de.isDataTexture?H.texSubImage2D(H.TEXTURE_2D,_e,z.x,z.y,Ie,Ze,lt,gt,de.image.data):de.isCompressedTexture?H.compressedTexSubImage2D(H.TEXTURE_2D,_e,z.x,z.y,de.mipmaps[0].width,de.mipmaps[0].height,lt,de.mipmaps[0].data):H.texSubImage2D(H.TEXTURE_2D,_e,z.x,z.y,lt,gt,de.image),_e===0&&Ce.generateMipmaps&&H.generateMipmap(H.TEXTURE_2D),he.unbindTexture()},this.copyTextureToTexture3D=function(z,de,Ce,_e,Ie=0){if(I.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Ze=z.max.x-z.min.x+1,lt=z.max.y-z.min.y+1,gt=z.max.z-z.min.z+1,pt=tt.convert(_e.format),St=tt.convert(_e.type);let Ct;if(_e.isData3DTexture)S.setTexture3D(_e,0),Ct=H.TEXTURE_3D;else if(_e.isDataArrayTexture||_e.isCompressedArrayTexture)S.setTexture2DArray(_e,0),Ct=H.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,_e.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,_e.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,_e.unpackAlignment);const xt=H.getParameter(H.UNPACK_ROW_LENGTH),pn=H.getParameter(H.UNPACK_IMAGE_HEIGHT),zn=H.getParameter(H.UNPACK_SKIP_PIXELS),tn=H.getParameter(H.UNPACK_SKIP_ROWS),Vn=H.getParameter(H.UNPACK_SKIP_IMAGES),Et=Ce.isCompressedTexture?Ce.mipmaps[Ie]:Ce.image;H.pixelStorei(H.UNPACK_ROW_LENGTH,Et.width),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,Et.height),H.pixelStorei(H.UNPACK_SKIP_PIXELS,z.min.x),H.pixelStorei(H.UNPACK_SKIP_ROWS,z.min.y),H.pixelStorei(H.UNPACK_SKIP_IMAGES,z.min.z),Ce.isDataTexture||Ce.isData3DTexture?H.texSubImage3D(Ct,Ie,de.x,de.y,de.z,Ze,lt,gt,pt,St,Et.data):Ce.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),H.compressedTexSubImage3D(Ct,Ie,de.x,de.y,de.z,Ze,lt,gt,pt,Et.data)):H.texSubImage3D(Ct,Ie,de.x,de.y,de.z,Ze,lt,gt,pt,St,Et),H.pixelStorei(H.UNPACK_ROW_LENGTH,xt),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,pn),H.pixelStorei(H.UNPACK_SKIP_PIXELS,zn),H.pixelStorei(H.UNPACK_SKIP_ROWS,tn),H.pixelStorei(H.UNPACK_SKIP_IMAGES,Vn),Ie===0&&_e.generateMipmaps&&H.generateMipmap(Ct),he.unbindTexture()},this.initTexture=function(z){z.isCubeTexture?S.setTextureCube(z,0):z.isData3DTexture?S.setTexture3D(z,0):z.isDataArrayTexture||z.isCompressedArrayTexture?S.setTexture2DArray(z,0):S.setTexture2D(z,0),he.unbindTexture()},this.resetState=function(){R=0,M=0,T=null,he.reset(),vt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Ms}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===Fg?"display-p3":"srgb",t.unpackColorSpace=sn.workingColorSpace===Nh?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===On?ma:Kv}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===ma?On:bs}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class xR extends sC{}xR.prototype.isWebGL1Renderer=!0;class zg{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Je(e),this.density=t}clone(){return new zg(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Vg{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Je(e),this.near=t,this.far=i}clone(){return new Vg(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Eh extends $t{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}}class Wg{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=ph,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Cr()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Rl("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:c,point:lA.clone(),uv:Er.getInterpolation(lA,Sd,uA,wd,fS,cE,dS,new Be),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function Md(n,e,t,i,r,s){wc.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(cA.x=s*wc.x-r*wc.y,cA.y=r*wc.x+s*wc.y):cA.copy(wc),n.copy(e),n.x+=cA.x,n.y+=cA.y,n.applyMatrix4(BR)}const Qd=new G,pS=new G;class SR extends $t{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){Qd.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(Qd);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Qd.setFromMatrixPosition(e.matrixWorld),pS.setFromMatrixPosition(this.matrixWorld);const i=Qd.distanceTo(pS)/e.zoom;t[0].object.visible=!0;let r,s;for(r=1,s=t.length;r=o)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const Qc="batchId",Jo=new ft,BS=new ft,aG=new ft,_S=new ft,hE=new Uh,Dd=new $n,nl=new li,fA=new G,fE=new oG,Mi=new nn,bd=[];function lG(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new rn(a,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(Qc,new rn(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(Qc))throw new Error(`BatchedMesh: Geometry cannot use attribute "${Qc}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===Qc)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new $n);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,a=this._drawRanges,c=this._bounds;this._geometryCount!==0&&(s=o[o.length-1]),t===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=t,s===null?r.vertexStart=0:r.vertexStart=s.vertexStart+s.vertexCount;const A=e.getIndex(),h=A!==null;if(h&&(i===-1?r.indexCount=A.count:r.indexCount=i,s===null?r.indexStart=0:r.indexStart=s.indexStart+s.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const f=this._visibility,d=this._active,m=this._matricesTexture,E=this._matricesTexture.image.data;f.push(!0),d.push(!0);const x=this._geometryCount;this._geometryCount++,aG.toArray(E,x*16),m.needsUpdate=!0,o.push(r),a.push({start:h?r.indexStart:r.vertexStart,count:-1}),c.push({boxInitialized:!1,box:new $n,sphereInitialized:!1,sphere:new li});const y=this.geometry.getAttribute(Qc);for(let p=0;p=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=i.getIndex()!==null,s=i.getIndex(),o=t.getIndex(),a=this._reservedRanges[e];if(r&&o.count>a.indexCount||t.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const c=a.vertexStart,A=a.vertexCount;for(const m in i.attributes){if(m===Qc)continue;const E=t.getAttribute(m),x=i.getAttribute(m);lG(E,x,c);const y=E.itemSize;for(let p=E.count,C=A;p=t.length||t[e]===!1?this:(t[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,t){if(this._active[e]===!1)return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(r.boxInitialized===!1){s.makeEmpty();const a=o.index,c=o.attributes.position,A=this._drawRanges[e];for(let h=A.start,f=A.start+A.count;h=o||i[e]===!1?this:(t.toArray(s,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,t){const i=this._active,r=this._matricesTexture.image.data,s=this._geometryCount;return e>=s||i[e]===!1?null:t.fromArray(r,e*16)}setVisibleAt(e,t){const i=this._visibility,r=this._active,s=this._geometryCount;return e>=s||r[e]===!1||i[e]===t?this:(i[e]=t,this._visibilityChanged=!0,this)}getVisibleAt(e){const t=this._visibility,i=this._active,r=this._geometryCount;return e>=r||i[e]===!1?!1:t[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,a=this.matrixWorld,c=this.geometry;Mi.material=this.material,Mi.geometry.index=c.index,Mi.geometry.attributes=c.attributes,Mi.geometry.boundingBox===null&&(Mi.geometry.boundingBox=new $n),Mi.geometry.boundingSphere===null&&(Mi.geometry.boundingSphere=new li);for(let A=0;A({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),a=o===null?1:o.array.BYTES_PER_ELEMENT,c=this._active,A=this._visibility,h=this._multiDrawStarts,f=this._multiDrawCounts,d=this._drawRanges,m=this.perObjectFrustumCulled;m&&(_S.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),hE.setFromProjectionMatrix(_S,e.coordinateSystem));let E=0;if(this.sortObjects){BS.copy(this.matrixWorld).invert(),fA.setFromMatrixPosition(i.matrixWorld).applyMatrix4(BS);for(let p=0,C=A.length;pc)continue;d.applyMatrix4(this.matrixWorld);const P=e.ray.origin.distanceTo(d);Pe.far||t.push({distance:P,point:f.clone().applyMatrix4(this.matrixWorld),index:I,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),C=Math.min(y.count,o.start+o.count);for(let I=p,B=C-1;Ic)continue;d.applyMatrix4(this.matrixWorld);const M=e.ray.origin.distanceTo(d);Me.far||t.push({distance:M,point:f.clone().applyMatrix4(this.matrixWorld),index:I,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:A,distanceToRay:Math.sqrt(a),point:c,index:e,face:null,object:o})}}class cG extends Bn{constructor(e,t,i,r,s,o,a,c,A){super(e,t,i,r,s,o,a,c,A),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:yn,this.magFilter=s!==void 0?s:yn,this.generateMipmaps=!1;const h=this;function f(){h.needsUpdate=!0,e.requestVideoFrameCallback(f)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(f)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class uG extends Bn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=Gn,this.minFilter=Gn,this.generateMipmaps=!1,this.needsUpdate=!0}}class Xg extends Bn{constructor(e,t,i,r,s,o,a,c,A,h,f,d){super(null,o,a,c,A,h,r,s,f,d),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class AG extends Xg{constructor(e,t,i,r,s,o){super(e,t,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=Ri}}class hG extends Xg{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,po),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class fG extends Bn{constructor(e,t,i,r,s,o,a,c,A){super(e,t,i,r,s,o,a,c,A),this.isCanvasTexture=!0,this.needsUpdate=!0}}class As{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;t?o=t:o=e*i[s-1];let a=0,c=s-1,A;for(;a<=c;)if(r=Math.floor(a+(c-a)/2),A=i[r]-o,A<0)a=r+1;else if(A>0)c=r-1;else{c=r;break}if(r=c,i[r]===o)return r/(s-1);const h=i[r],d=i[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),c=t||(o.isVector2?new Be:new G);return c.copy(a).sub(o).normalize(),c}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new G,r=[],s=[],o=[],a=new G,c=new ft;for(let m=0;m<=e;m++){const E=m/e;r[m]=this.getTangentAt(E,new G)}s[0]=new G,o[0]=new G;let A=Number.MAX_VALUE;const h=Math.abs(r[0].x),f=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=A&&(A=h,i.set(1,0,0)),f<=A&&(A=f,i.set(0,1,0)),d<=A&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=e;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const E=Math.acos(Ln(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(c.makeRotationAxis(a,E))}o[m].crossVectors(r[m],s[m])}if(t===!0){let m=Math.acos(Ln(s[0].dot(s[e]),-1,1));m/=e,r[0].dot(a.crossVectors(s[0],s[e]))>0&&(m=-m);for(let E=1;E<=e;E++)s[E].applyMatrix4(c.makeRotationAxis(r[E],m*E)),o[E].crossVectors(r[E],s[E])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class Jg extends As{constructor(e=0,t=0,i=1,r=1,s=0,o=Math.PI*2,a=!1,c=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=c}getPoint(e,t){const i=t||new Be,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:c===0&&a===s-1&&(a=s-2,c=1);let A,h;this.closed||a>0?A=r[(a-1)%s]:(Ud.subVectors(r[0],r[1]).add(r[0]),A=Ud);const f=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],f=r[o>r.length-3?r.length-1:o+2];return i.set(bS(a,c.x,A.x,h.x,f.x),bS(a,c.y,A.y,h.y,f.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,a=this.curves[s],c=a.getLength(),A=c===0?0:1-o/c;return a.getPointAt(A,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const f=A.getPoint(0);f.equals(this.currentPoint)||this.lineTo(f.x,f.y)}this.curves.push(A);const h=A.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class kh extends Tt{constructor(e=[new Be(0,-.5),new Be(.5,0),new Be(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Ln(r,0,Math.PI*2);const s=[],o=[],a=[],c=[],A=[],h=1/t,f=new G,d=new Be,m=new G,E=new G,x=new G;let y=0,p=0;for(let C=0;C<=e.length-1;C++)switch(C){case 0:y=e[C+1].x-e[C].x,p=e[C+1].y-e[C].y,m.x=p*1,m.y=-y,m.z=p*0,x.copy(m),m.normalize(),c.push(m.x,m.y,m.z);break;case e.length-1:c.push(x.x,x.y,x.z);break;default:y=e[C+1].x-e[C].x,p=e[C+1].y-e[C].y,m.x=p*1,m.y=-y,m.z=p*0,E.copy(m),m.x+=x.x,m.y+=x.y,m.z+=x.z,m.normalize(),c.push(m.x,m.y,m.z),x.copy(E)}for(let C=0;C<=t;C++){const I=i+C*h*r,B=Math.sin(I),R=Math.cos(I);for(let M=0;M<=e.length-1;M++){f.x=e[M].x*B,f.y=e[M].y,f.z=e[M].x*R,o.push(f.x,f.y,f.z),d.x=C/t,d.y=M/(e.length-1),a.push(d.x,d.y);const T=c[3*M+0]*B,P=c[3*M+1],J=c[3*M+0]*R;A.push(T,P,J)}}for(let C=0;C0&&I(!0),t>0&&I(!1)),this.setIndex(h),this.setAttribute("position",new st(f,3)),this.setAttribute("normal",new st(d,3)),this.setAttribute("uv",new st(m,2));function C(){const B=new G,R=new G;let M=0;const T=(t-e)/i;for(let P=0;P<=s;P++){const J=[],w=P/s,b=w*(t-e)+e;for(let K=0;K<=r;K++){const fe=K/r,Y=fe*c+a,ie=Math.sin(Y),te=Math.cos(Y);R.x=b*ie,R.y=-w*i+y,R.z=b*te,f.push(R.x,R.y,R.z),B.set(ie,T,te).normalize(),d.push(B.x,B.y,B.z),m.push(fe,1-w),J.push(E++)}x.push(J)}for(let P=0;P.9&&T<.1&&(I<.2&&(o[C+0]+=1),B<.2&&(o[C+2]+=1),R<.2&&(o[C+4]+=1))}}function d(C){s.push(C.x,C.y,C.z)}function m(C,I){const B=C*3;I.x=e[B+0],I.y=e[B+1],I.z=e[B+2]}function E(){const C=new G,I=new G,B=new G,R=new G,M=new Be,T=new Be,P=new Be;for(let J=0,w=0;J80*t){a=A=n[0],c=h=n[1];for(let E=t;EA&&(A=f),d>h&&(h=d);m=Math.max(A-a,h-c),m=m!==0?32767/m:0}return yh(s,o,t,a,c,m,0),o}};function FR(n,e,t,i,r){let s,o;if(r===UG(n,e,t,i)>0)for(s=e;s=e;s-=i)o=NS(s,n[s],n[s+1],o);return o&&$g(o,o.next)&&(vh(o),o=o.next),o}function Ol(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&($g(t,t.next)||Mn(t.prev,t,t.next)===0)){if(vh(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function yh(n,e,t,i,r,s,o){if(!n)return;!o&&s&&TG(n,i,r,s);let a=n,c,A;for(;n.prev!==n.next;){if(c=n.prev,A=n.next,s?xG(n,i,r,s):CG(n)){e.push(c.i/t|0),e.push(n.i/t|0),e.push(A.i/t|0),vh(n),n=A.next,a=A.next;continue}if(n=A,n===a){o?o===1?(n=BG(Ol(n),e,t),yh(n,e,t,i,r,s,2)):o===2&&_G(n,e,t,i,r,s):yh(Ol(n),e,t,i,r,s,1);break}}}function CG(n){const e=n.prev,t=n,i=n.next;if(Mn(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,a=e.y,c=t.y,A=i.y,h=rs?r>o?r:o:s>o?s:o,m=a>c?a>A?a:A:c>A?c:A;let E=i.next;for(;E!==e;){if(E.x>=h&&E.x<=d&&E.y>=f&&E.y<=m&&jc(r,a,s,c,o,A,E.x,E.y)&&Mn(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function xG(n,e,t,i){const r=n.prev,s=n,o=n.next;if(Mn(r,s,o)>=0)return!1;const a=r.x,c=s.x,A=o.x,h=r.y,f=s.y,d=o.y,m=ac?a>A?a:A:c>A?c:A,y=h>f?h>d?h:d:f>d?f:d,p=vI(m,E,e,t,i),C=vI(x,y,e,t,i);let I=n.prevZ,B=n.nextZ;for(;I&&I.z>=p&&B&&B.z<=C;){if(I.x>=m&&I.x<=x&&I.y>=E&&I.y<=y&&I!==r&&I!==o&&jc(a,h,c,f,A,d,I.x,I.y)&&Mn(I.prev,I,I.next)>=0||(I=I.prevZ,B.x>=m&&B.x<=x&&B.y>=E&&B.y<=y&&B!==r&&B!==o&&jc(a,h,c,f,A,d,B.x,B.y)&&Mn(B.prev,B,B.next)>=0))return!1;B=B.nextZ}for(;I&&I.z>=p;){if(I.x>=m&&I.x<=x&&I.y>=E&&I.y<=y&&I!==r&&I!==o&&jc(a,h,c,f,A,d,I.x,I.y)&&Mn(I.prev,I,I.next)>=0)return!1;I=I.prevZ}for(;B&&B.z<=C;){if(B.x>=m&&B.x<=x&&B.y>=E&&B.y<=y&&B!==r&&B!==o&&jc(a,h,c,f,A,d,B.x,B.y)&&Mn(B.prev,B,B.next)>=0)return!1;B=B.nextZ}return!0}function BG(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!$g(r,s)&&kR(r,i,i.next,s)&&Ih(r,s)&&Ih(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),vh(i),vh(i.next),i=n=s),i=i.next}while(i!==n);return Ol(i)}function _G(n,e,t,i,r,s){let o=n;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&NG(o,a)){let c=GR(o,a);o=Ol(o,o.next),c=Ol(c,c.next),yh(o,e,t,i,r,s,0),yh(c,e,t,i,r,s,0);return}a=a.next}o=o.next}while(o!==n)}function SG(n,e,t,i){const r=[];let s,o,a,c,A;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){const d=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=s&&d>i&&(i=d,r=t.x=t.x&&t.x>=c&&s!==t.x&&jc(or.x||t.x===r.x&&RG(r,t)))&&(r=t,h=f)),t=t.next;while(t!==a);return r}function RG(n,e){return Mn(n.prev,n,e.prev)<0&&Mn(e.next,n,n.next)<0}function TG(n,e,t,i){let r=n;do r.z===0&&(r.z=vI(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,DG(r)}function DG(n){let e,t,i,r,s,o,a,c,A=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||c>0&&i;)a!==0&&(c===0||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,c--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,A*=2}while(o>1);return n}function vI(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function bG(n){let e=n,t=n;do(e.x=(n-o)*(s-a)&&(n-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(r-o)*(i-a)}function NG(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!LG(n,e)&&(Ih(n,e)&&Ih(e,n)&&PG(n,e)&&(Mn(n.prev,n,e.prev)||Mn(n,e.prev,e))||$g(n,e)&&Mn(n.prev,n,n.next)>0&&Mn(e.prev,e,e.next)>0)}function Mn(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function $g(n,e){return n.x===e.x&&n.y===e.y}function kR(n,e,t,i){const r=Hd(Mn(n,e,t)),s=Hd(Mn(n,e,i)),o=Hd(Mn(t,i,n)),a=Hd(Mn(t,i,e));return!!(r!==s&&o!==a||r===0&&Od(n,t,e)||s===0&&Od(n,i,e)||o===0&&Od(t,n,i)||a===0&&Od(t,e,i))}function Od(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function Hd(n){return n>0?1:n<0?-1:0}function LG(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&kR(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function Ih(n,e){return Mn(n.prev,n,n.next)<0?Mn(n,e,n.next)>=0&&Mn(n,n.prev,e)>=0:Mn(n,e,n.prev)<0||Mn(n,n.next,e)<0}function PG(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function GR(n,e){const t=new CI(n.i,n.x,n.y),i=new CI(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function NS(n,e,t,i){const r=new CI(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function vh(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function CI(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function UG(n,e,t,i){let r=0;for(let s=e,o=t-i;s2&&n[e-1].equals(n[0])&&n.pop()}function PS(n,e){for(let t=0;tNumber.EPSILON){const Me=Math.sqrt(De),Xe=Math.sqrt(D*D+re*re),ze=me.x-S/Me,qe=me.y+Z/Me,at=ne.x-re/Xe,yt=ne.y+D/Xe,Le=((at-ze)*re-(yt-qe)*D)/(Z*re-S*D);ae=ze+Z*Le-H.x,he=qe+S*Le-H.y;const Dt=ae*ae+he*he;if(Dt<=2)return new Be(ae,he);Re=Math.sqrt(Dt/2)}else{let Me=!1;Z>Number.EPSILON?D>Number.EPSILON&&(Me=!0):Z<-Number.EPSILON?D<-Number.EPSILON&&(Me=!0):Math.sign(S)===Math.sign(re)&&(Me=!0),Me?(ae=-S,he=Z,Re=Math.sqrt(De)):(ae=Z,he=S,Re=Math.sqrt(De/2))}return new Be(ae/Re,he/Re)}const $=[];for(let H=0,me=Y.length,ne=me-1,ae=H+1;H=0;H--){const me=H/y,ne=m*Math.cos(me*Math.PI/2),ae=E*Math.sin(me*Math.PI/2)+x;for(let he=0,Re=Y.length;he=0;){const ae=ne;let he=ne-1;he<0&&(he=H.length-1);for(let Re=0,Z=h+y*2;Re0)&&m.push(I,B,M),(p!==i-1||c0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class WR extends ui{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Je(16777215),this.specular=new Je(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ma,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=bh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class YR extends ui{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Je(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ma,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class XR extends ui{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ma,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class JR extends ui{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ma,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=bh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class KR extends ui{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Je(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ma,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class qR extends Xi{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function _l(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function jR(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function ZR(n){function e(r,s){return n[r]-n[s]}const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function xI(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const a=t[s]*e;for(let c=0;c!==e;++c)r[o++]=n[a+c]}return r}function gC(n,e,t,i){let r=1,s=n[0];for(;s!==void 0&&s[i]===void 0;)s=n[r++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&&(e.push(s.time),t.push.apply(t,o)),s=n[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++];while(s!==void 0);else do o=s[i],o!==void 0&&(e.push(s.time),t.push(o)),s=n[r++];while(s!==void 0)}function OG(n,e,t,i,r=30){const s=n.clone();s.name=e;const o=[];for(let c=0;c=i)){f.push(A.times[m]);for(let x=0;xs.tracks[c].times[0]&&(a=s.tracks[c].times[0]);for(let c=0;c=a.times[E]){const p=E*f+h,C=p+f-h;x=a.values.slice(p,C)}else{const p=a.createInterpolant(),C=h,I=f-h;p.evaluate(s),x=p.resultBuffer.slice(C,I)}c==="quaternion"&&new Vi().fromArray(x).normalize().conjugate().toArray(x);const y=A.times.length;for(let p=0;p=s)){const a=t[1];e=s)break t}o=i,i=0;break n}break e}for(;i>>1;et;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){const c=i[a];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,c),e=!1;break}if(o!==null&&o>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,c,o),e=!1;break}o=c}if(r!==void 0&&jR(r))for(let a=0,c=r.length;a!==c;++a){const A=r[a];if(isNaN(A)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,A),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===Sp,s=e.length-1;let o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*i,c=o*i,A=0;A!==i;++A)t[c+A]=t[a+A];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}hs.prototype.TimeBufferType=Float32Array;hs.prototype.ValueBufferType=Float32Array;hs.prototype.DefaultInterpolation=uh;class Wl extends hs{}Wl.prototype.ValueTypeName="bool";Wl.prototype.ValueBufferType=Array;Wl.prototype.DefaultInterpolation=ch;Wl.prototype.InterpolantFactoryMethodLinear=void 0;Wl.prototype.InterpolantFactoryMethodSmooth=void 0;class EC extends hs{}EC.prototype.ValueTypeName="color";class Ch extends hs{}Ch.prototype.ValueTypeName="number";class tT extends Hh{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=(i-t)/(r-t);let A=e*a;for(let h=A+a;A!==h;A+=4)Vi.slerpFlat(s,0,o,A-a,o,A,c);return s}}class wu extends hs{InterpolantFactoryMethodLinear(e){return new tT(this.times,this.values,this.getValueSize(),e)}}wu.prototype.ValueTypeName="quaternion";wu.prototype.DefaultInterpolation=uh;wu.prototype.InterpolantFactoryMethodSmooth=void 0;class Yl extends hs{}Yl.prototype.ValueTypeName="string";Yl.prototype.ValueBufferType=Array;Yl.prototype.DefaultInterpolation=ch;Yl.prototype.InterpolantFactoryMethodLinear=void 0;Yl.prototype.InterpolantFactoryMethodSmooth=void 0;class xh extends hs{}xh.prototype.ValueTypeName="vector";class Bh{constructor(e,t=-1,i,r=Ug){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=Cr(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(WG(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(hs.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let a=0;a1){const f=h[1];let d=r[f];d||(r[f]=d=[]),d.push(A)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(f,d,m,E,x){if(m.length!==0){const y=[],p=[];gC(m,y,p,E),y.length!==0&&x.push(new f(d,y,p))}},r=[],s=e.name||"default",o=e.fps||30,a=e.blendMode;let c=e.length||-1;const A=e.hierarchy||[];for(let f=0;f{t&&t(s),this.manager.itemEnd(e)},0),s;if(js[e]!==void 0){js[e].push({onLoad:t,onProgress:i,onError:r});return}js[e]=[],js[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,c=this.responseType;fetch(o).then(A=>{if(A.status===200||A.status===0){if(A.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||A.body===void 0||A.body.getReader===void 0)return A;const h=js[e],f=A.body.getReader(),d=A.headers.get("Content-Length")||A.headers.get("X-File-Size"),m=d?parseInt(d):0,E=m!==0;let x=0;const y=new ReadableStream({start(p){C();function C(){f.read().then(({done:I,value:B})=>{if(I)p.close();else{x+=B.byteLength;const R=new ProgressEvent("progress",{lengthComputable:E,loaded:x,total:m});for(let M=0,T=h.length;M{switch(c){case"arraybuffer":return A.arrayBuffer();case"blob":return A.blob();case"document":return A.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return A.json();default:if(a===void 0)return A.text();{const f=/charset="?([^;"\s]*)"?/i.exec(a),d=f&&f[1]?f[1].toLowerCase():void 0,m=new TextDecoder(d);return A.arrayBuffer().then(E=>m.decode(E))}}}).then(A=>{ao.add(e,A);const h=js[e];delete js[e];for(let f=0,d=h.length;f{const h=js[e];if(h===void 0)throw this.manager.itemError(e),A;delete js[e];for(let f=0,d=h.length;f{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class XG extends Ji{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Ns(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{t(s.parse(JSON.parse(a)))}catch(c){r?r(c):console.error(c),s.manager.itemError(e)}},i,r)}parse(e){const t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=new Je().setHex(o.value);break;case"v2":r.uniforms[s].value=new Be().fromArray(o.value);break;case"v3":r.uniforms[s].value=new G().fromArray(o.value);break;case"v4":r.uniforms[s].value=new on().fromArray(o.value);break;case"m3":r.uniforms[s].value=new wt().fromArray(o.value);break;case"m4":r.uniforms[s].value=new ft().fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=i(e.map)),e.matcap!==void 0&&(r.matcap=i(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),r.normalScale=new Be().fromArray(s)}return e.displacementMap!==void 0&&(r.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=i(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new Be().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const t={ShadowMaterial:HR,SpriteMaterial:oC,RawShaderMaterial:zR,ShaderMaterial:cs,PointsMaterial:lC,MeshPhysicalMaterial:VR,MeshStandardMaterial:pC,MeshPhongMaterial:WR,MeshToonMaterial:YR,MeshNormalMaterial:XR,MeshLambertMaterial:JR,MeshDepthMaterial:Og,MeshDistanceMaterial:Hg,MeshBasicMaterial:sr,MeshMatcapMaterial:KR,LineDashedMaterial:qR,LineBasicMaterial:Xi,Material:ui};return new t[e]}}class BI{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,r=e.length;i0){const c=new yC(t);s=new _h(c),s.setCrossOrigin(this.crossOrigin);for(let A=0,h=e.length;A0){r=new _h(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;o{const y=new $n;y.min.fromArray(x.boxMin),y.max.fromArray(x.boxMax);const p=new li;return p.radius=x.sphereRadius,p.center.fromArray(x.sphereCenter),{boxInitialized:x.boxInitialized,box:y,sphereInitialized:x.sphereInitialized,sphere:p}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=A(e.matricesTexture.uuid);break;case"LOD":o=new SR;break;case"Line":o=new Ba(a(e.geometry),c(e.material));break;case"LineLoop":o=new RR(a(e.geometry),c(e.material));break;case"LineSegments":o=new Ls(a(e.geometry),c(e.material));break;case"PointCloud":case"Points":o=new TR(a(e.geometry),c(e.material));break;case"Sprite":o=new _R(c(e.material));break;case"Group":o=new kr;break;case"Bone":o=new aC;break;default:o=new $t}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const d=e.children;for(let m=0;m"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=ao.get(e);if(o!==void 0){if(s.manager.itemStart(e),o.then){o.then(A=>{t&&t(A),s.manager.itemEnd(e)}).catch(A=>{r&&r(A)});return}return setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const c=fetch(e,a).then(function(A){return A.blob()}).then(function(A){return createImageBitmap(A,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(A){return ao.add(e,A),t&&t(A),s.manager.itemEnd(e),A}).catch(function(A){r&&r(A),ao.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});ao.add(e,c),s.manager.itemStart(e)}}let zd;class CC{static getContext(){return zd===void 0&&(zd=new(window.AudioContext||window.webkitAudioContext)),zd}static setContext(e){zd=e}}class iO extends Ji{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Ns(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(c){try{const A=c.slice(0);CC.getContext().decodeAudioData(A,function(f){t(f)}).catch(a)}catch(A){a(A)}},i,r);function a(c){r?r(c):console.error(c),s.manager.itemError(e)}}}const VS=new ft,WS=new ft,il=new ft;class rO{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new jn,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new jn,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,il.copy(e.projectionMatrix);const r=t.eyeSep/2,s=r*t.near/t.focus,o=t.near*Math.tan(Ql*t.fov*.5)/t.zoom;let a,c;WS.elements[12]=-r,VS.elements[12]=r,a=-o*t.aspect+s,c=o*t.aspect+s,il.elements[0]=2*t.near/(c-a),il.elements[8]=(c+a)/(c-a),this.cameraL.projectionMatrix.copy(il),a=-o*t.aspect-s,c=o*t.aspect-s,il.elements[0]=2*t.near/(c-a),il.elements[8]=(c+a)/(c-a),this.cameraR.projectionMatrix.copy(il)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(WS),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(VS)}}class xC{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=YS(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=YS();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function YS(){return(typeof performance>"u"?Date:performance).now()}const rl=new G,XS=new Vi,sO=new G,sl=new G;class oO extends $t{constructor(){super(),this.type="AudioListener",this.context=CC.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new xC}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(rl,XS,sO),sl.set(0,0,-1).applyQuaternion(XS),t.positionX){const r=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(rl.x,r),t.positionY.linearRampToValueAtTime(rl.y,r),t.positionZ.linearRampToValueAtTime(rl.z,r),t.forwardX.linearRampToValueAtTime(sl.x,r),t.forwardY.linearRampToValueAtTime(sl.y,r),t.forwardZ.linearRampToValueAtTime(sl.z,r),t.upX.linearRampToValueAtTime(i.x,r),t.upY.linearRampToValueAtTime(i.y,r),t.upZ.linearRampToValueAtTime(i.z,r)}else t.setPosition(rl.x,rl.y,rl.z),t.setOrientation(sl.x,sl.y,sl.z,i.x,i.y,i.z)}}class fT extends $t{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let c=t,A=t+t;c!==A;++c)if(i[c]!==i[c+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let s=i,o=r;s!==o;++s)t[s]=t[r+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let o=0;o!==s;++o)e[t+o]=e[i+o]}_slerp(e,t,i,r){Vi.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,s){const o=this._workIndex*s;Vi.multiplyQuaternionsFlat(e,o,e,t,e,i),Vi.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,i,r,s){const o=1-r;for(let a=0;a!==s;++a){const c=t+a;e[c]=e[c]*o+e[i+a]*r}}_lerpAdditive(e,t,i,r,s){for(let o=0;o!==s;++o){const a=t+o;e[a]=e[a]+e[i+o]*r}}}const BC="\\[\\]\\.:\\/",uO=new RegExp("["+BC+"]","g"),_C="[^"+BC+"]",AO="[^"+BC.replace("\\.","")+"]",hO=/((?:WC+[\/:])*)/.source.replace("WC",_C),fO=/(WCOD+)?/.source.replace("WCOD",AO),dO=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_C),pO=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_C),gO=new RegExp("^"+hO+fO+dO+pO+"$"),mO=["material","materials","bones","map"];class EO{constructor(e,t,i){const r=i||Yt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class Yt{constructor(e,t,i){this.path=t,this.parsedPath=i||Yt.parseTrackName(t),this.node=Yt.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new Yt.Composite(e,t,i):new Yt(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(uO,"")}static parseTrackName(e){const t=gO.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=i.nodeName.substring(r+1);mO.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(s){for(let o=0;o=s){const f=s++,d=e[f];t[d.uuid]=h,e[h]=d,t[A]=f,e[f]=c;for(let m=0,E=r;m!==E;++m){const x=i[m],y=x[f],p=x[h];x[h]=y,x[f]=p}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let s=this.nCachedObjects_,o=e.length;for(let a=0,c=arguments.length;a!==c;++a){const A=arguments[a],h=A.uuid,f=t[h];if(f!==void 0)if(delete t[h],f0&&(t[m.uuid]=f),e[f]=m,e.pop();for(let E=0,x=r;E!==x;++E){const y=i[E];y[f]=y[d],y.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const s=this._bindings;if(r!==void 0)return s[r];const o=this._paths,a=this._parsedPaths,c=this._objects,A=c.length,h=this.nCachedObjects_,f=new Array(A);r=s.length,i[e]=r,o.push(e),a.push(t),s.push(f);for(let d=h,m=c.length;d!==m;++d){const E=c[d];f[d]=new Yt(E,e,t)}return f}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,c=o[a],A=e[a];t[A]=i,o[i]=c,o.pop(),s[i]=s[a],s.pop(),r[i]=r[a],r.pop()}}}class pT{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const s=t.tracks,o=s.length,a=new Array(o),c={endingStart:Cl,endingEnd:Cl};for(let A=0;A!==o;++A){const h=s[A].createInterpolant(null);a[A]=h,h.settings=c}this._interpolantSettings=c,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=qQ,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const r=this._clip.duration,s=e._clip.duration,o=s/r,a=r/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,s=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const c=a.parameterPositions,A=a.sampleValues;return c[0]=s,c[1]=s+i,A[0]=e/o,A[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const c=(e-s)*i;c<0||i===0?t=0:(this._startTime=null,t=i*c)}t*=this._updateTimeScale(e);const o=this._updateTime(t),a=this._updateWeight(e);if(a>0){const c=this._interpolants,A=this._propertyBindings;switch(this.blendMode){case Jv:for(let h=0,f=c.length;h!==f;++h)c[h].evaluate(o),A[h].accumulateAdditive(a);break;case Ug:default:for(let h=0,f=c.length;h!==f;++h)c[h].evaluate(o),A[h].accumulate(r,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,s=this._loopCount;const o=i===jQ;if(e===0)return s===-1?r:o&&(s&1)===1?t-r:r;if(i===KQ){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=t||r<0){const a=Math.floor(r/t);r-=t*a,s+=Math.abs(a);const c=this.repetitions-s;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){const A=e<0;this._setEndings(A,!A,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&(s&1)===1)return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=xl,r.endingEnd=xl):(e?r.endingStart=this.zeroSlopeAtStart?xl:Cl:r.endingStart=Ah,t?r.endingEnd=this.zeroSlopeAtEnd?xl:Cl:r.endingEnd=Ah)}_scheduleFading(e,t,i){const r=this._mixer,s=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,c=o.sampleValues;return a[0]=s,c[0]=t,a[1]=s+e,c[1]=i,this}}const IO=new Float32Array(1);class vO extends mo{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,s=r.length,o=e._propertyBindings,a=e._interpolants,c=i.uuid,A=this._bindingsByRootAndName;let h=A[c];h===void 0&&(h={},A[c]=h);for(let f=0;f!==s;++f){const d=r[f],m=d.name;let E=h[m];if(E!==void 0)++E.referenceCount,o[f]=E;else{if(E=o[f],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,c,m));continue}const x=t&&t._propertyBindings[f].binding.parsedPath;E=new dT(Yt.create(i,m,x),d.ValueTypeName,d.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,c,m),o[f]=E}a[f].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,r=e._clip.uuid,s=this._actionsByClip[r];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,r,i)}const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let A=0;A!==i;++A)t[A]._update(r,e,s,o);const a=this._bindings,c=this._nActiveBindings;for(let A=0;A!==c;++A)a[A].apply(o);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,qS).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const jS=new G,Vd=new G;class MO{constructor(e=new G,t=new G){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){jS.subVectors(e,this.start),Vd.subVectors(this.end,this.start);const i=Vd.dot(Vd);let s=Vd.dot(jS)/i;return t&&(s=Ln(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const ZS=new G;class QO extends $t{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new Tt,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,a=1,c=32;o1)for(let f=0;f.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{iw.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(iw,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class HO extends Ls{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Tt;r.setAttribute("position",new st(t,3)),r.setAttribute("color",new st(i,3));const s=new Xi({vertexColors:!0,toneMapped:!1});super(r,s),this.type="AxesHelper"}setColors(e,t,i){const r=new Je,s=this.geometry.attributes.color.array;return r.set(e),r.toArray(s,0),r.toArray(s,3),r.set(t),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Zo{constructor(){this.type="ShapePath",this.color=new Je,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new Ea,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,s,o){return this.currentPath.bezierCurveTo(e,t,i,r,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(p){const C=[];for(let I=0,B=p.length;INumber.EPSILON){if(w<0&&(T=C[M],J=-J,P=C[R],w=-w),p.yP.y)continue;if(p.y===T.y){if(p.x===T.x)return!0}else{const b=w*(p.x-T.x)-J*(p.y-T.y);if(b===0)return!0;if(b<0)continue;B=!B}}else{if(p.y!==T.y)continue;if(P.x<=p.x&&p.x<=T.x||T.x<=p.x&&p.x<=P.x)return!0}}return B}const r=os.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,c;const A=[];if(s.length===1)return a=s[0],c=new ya,c.curves=a.curves,A.push(c),A;let h=!r(s[0].getPoints());h=e?!h:h;const f=[],d=[];let m=[],E=0,x;d[E]=void 0,m[E]=[];for(let p=0,C=s.length;p1){let p=!1,C=0;for(let I=0,B=d.length;I0&&p===!1&&(m=f)}let y;for(let p=0,C=d.length;p{const f=typeof A=="function"?A(e):A;if(f!==e){const d=e;e=h?f:Object.assign({},e,f),t.forEach(m=>m(e,d))}},r=()=>e,s=(A,h=r,f=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let d=h(e);function m(){const E=h(e);if(!f(d,E)){const x=d;A(d=E,x)}}return t.add(m),()=>t.delete(m)},c={setState:i,getState:r,subscribe:(A,h,f)=>h||f?s(A,h,f):(t.add(A),()=>t.delete(A)),destroy:()=>t.clear()};return e=n(i,r,c),c}const WO=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),rw=WO?q.useEffect:q.useLayoutEffect;function yT(n){const e=typeof n=="function"?VO(n):n,t=(i=e.getState,r=Object.is)=>{const[,s]=q.useReducer(y=>y+1,0),o=e.getState(),a=q.useRef(o),c=q.useRef(i),A=q.useRef(r),h=q.useRef(!1),f=q.useRef();f.current===void 0&&(f.current=i(o));let d,m=!1;(a.current!==o||c.current!==i||A.current!==r||h.current)&&(d=i(o),m=!r(f.current,d)),rw(()=>{m&&(f.current=d),a.current=o,c.current=i,A.current=r,h.current=!1});const E=q.useRef(o);rw(()=>{const y=()=>{try{const C=e.getState(),I=c.current(C);A.current(f.current,I)||(a.current=C,f.current=I,s())}catch{h.current=!0,s()}},p=e.subscribe(y);return e.getState()!==E.current&&y(),p},[]);const x=m?d:f.current;return q.useDebugValue(x),x};return Object.assign(t,e),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,e];return{next(){const r=i.length<=0;return{value:i.shift(),done:r}}}},t}var IT={exports:{}},vT={exports:{}},CT={};/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(n){function e(U,$){var ee=U.length;U.push($);e:for(;0>>1,ye=U[ue];if(0>>1;uer(O,ee))kr(F,O)?(U[ue]=F,U[k]=ee,ue=k):(U[ue]=O,U[V]=ee,ue=V);else if(kr(F,ee))U[ue]=F,U[k]=ee,ue=k;else break e}}return $}function r(U,$){var ee=U.sortIndex-$.sortIndex;return ee!==0?ee:U.id-$.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var c=[],A=[],h=1,f=null,d=3,m=!1,E=!1,x=!1,y=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(U){for(var $=t(A);$!==null;){if($.callback===null)i(A);else if($.startTime<=U)i(A),$.sortIndex=$.expirationTime,e(c,$);else break;$=t(A)}}function B(U){if(x=!1,I(U),!E)if(t(c)!==null)E=!0,te(R);else{var $=t(A);$!==null&&ce(B,$.startTime-U)}}function R(U,$){E=!1,x&&(x=!1,p(P),P=-1),m=!0;var ee=d;try{for(I($),f=t(c);f!==null&&(!(f.expirationTime>$)||U&&!b());){var ue=f.callback;if(typeof ue=="function"){f.callback=null,d=f.priorityLevel;var ye=ue(f.expirationTime<=$);$=n.unstable_now(),typeof ye=="function"?f.callback=ye:f===t(c)&&i(c),I($)}else i(c);f=t(c)}if(f!==null)var ke=!0;else{var V=t(A);V!==null&&ce(B,V.startTime-$),ke=!1}return ke}finally{f=null,d=ee,m=!1}}var M=!1,T=null,P=-1,J=5,w=-1;function b(){return!(n.unstable_now()-wU||125ue?(U.sortIndex=ee,e(A,U),t(c)===null&&U===t(A)&&(x?(p(P),P=-1):x=!0,ce(B,ee-ue))):(U.sortIndex=ye,e(c,U),E||m||(E=!0,te(R))),U},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(U){var $=d;return function(){var ee=d;d=$;try{return U.apply(this,arguments)}finally{d=ee}}}})(CT);vT.exports=CT;var SI=vT.exports;/** + * @license React + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var YO=function(e){var t={},i=q,r=SI,s=Object.assign;function o(l){for(var u="https://reactjs.org/docs/error-decoder.html?invariant="+l,g=1;gle||_[W]!==Q[le]){var Qe=` +`+_[W].replace(" at new "," at ");return l.displayName&&Qe.includes("")&&(Qe=Qe.replace("",l.displayName)),Qe}while(1<=W&&0<=le);break}}}finally{Ct=!1,Error.prepareStackTrace=g}return(l=l?l.displayName||l.name:"")?St(l):""}var pn=Object.prototype.hasOwnProperty,zn=[],tn=-1;function Vn(l){return{current:l}}function Et(l){0>tn||(l.current=zn[tn],zn[tn]=null,tn--)}function et(l,u){tn++,zn[tn]=l.current,l.current=u}var yi={},It=Vn(yi),un=Vn(!1),ar=yi;function N(l,u){var g=l.type.contextTypes;if(!g)return yi;var v=l.stateNode;if(v&&v.__reactInternalMemoizedUnmaskedChildContext===u)return v.__reactInternalMemoizedMaskedChildContext;var _={},Q;for(Q in g)_[Q]=u[Q];return v&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=u,l.__reactInternalMemoizedMaskedChildContext=_),_}function L(l){return l=l.childContextTypes,l!=null}function j(){Et(un),Et(It)}function oe(l,u,g){if(It.current!==yi)throw Error(o(168));et(It,u),et(un,g)}function pe(l,u,g){var v=l.stateNode;if(u=u.childContextTypes,typeof v.getChildContext!="function")return g;v=v.getChildContext();for(var _ in v)if(!(_ in u))throw Error(o(108,P(l)||"Unknown",_));return s({},g,v)}function Se(l){return l=(l=l.stateNode)&&l.__reactInternalMemoizedMergedChildContext||yi,ar=It.current,et(It,l),et(un,un.current),!0}function Pe(l,u,g){var v=l.stateNode;if(!v)throw Error(o(169));g?(l=pe(l,u,ar),v.__reactInternalMemoizedMergedChildContext=l,Et(un),Et(It),et(It,l)):Et(un),et(un,g)}var Ne=Math.clz32?Math.clz32:$e,Ve=Math.log,Oe=Math.LN2;function $e(l){return l>>>=0,l===0?32:31-(Ve(l)/Oe|0)|0}var ht=64,kt=4194304;function hn(l){switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return l&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return l}}function Ht(l,u){var g=l.pendingLanes;if(g===0)return 0;var v=0,_=l.suspendedLanes,Q=l.pingedLanes,W=g&268435455;if(W!==0){var le=W&~_;le!==0?v=hn(le):(Q&=W,Q!==0&&(v=hn(Q)))}else W=g&~_,W!==0?v=hn(W):Q!==0&&(v=hn(Q));if(v===0)return 0;if(u!==0&&u!==v&&!(u&_)&&(_=v&-v,Q=u&-u,_>=Q||_===16&&(Q&4194240)!==0))return u;if(v&4&&(v|=g&16),u=l.entangledLanes,u!==0)for(l=l.entanglements,u&=v;0g;g++)u.push(l);return u}function Do(l,u,g){l.pendingLanes|=u,u!==536870912&&(l.suspendedLanes=0,l.pingedLanes=0),l=l.eventTimes,u=31-Ne(u),l[u]=g}function jh(l,u){var g=l.pendingLanes&~u;l.pendingLanes=u,l.suspendedLanes=0,l.pingedLanes=0,l.expiredLanes&=u,l.mutableReadLanes&=u,l.entangledLanes&=u,u=l.entanglements;var v=l.eventTimes;for(l=l.expirationTimes;0>=W,_-=W,Hs=1<<32-Ne(u)+_|g<<_|v,zs=Q+l}else Hs=1<jt?(ri=Qt,Qt=null):ri=Qt.sibling;var Zt=mt(Ee,Qt,we[jt],je);if(Zt===null){Qt===null&&(Qt=ri);break}l&&Qt&&Zt.alternate===null&&u(Ee,Qt),Ae=Q(Zt,Ae,jt),Lt===null?ct=Zt:Lt.sibling=Zt,Lt=Zt,Qt=ri}if(jt===we.length)return g(Ee,Qt),vn&&Va(Ee,jt),ct;if(Qt===null){for(;jtjt?(ri=Qt,Qt=null):ri=Qt.sibling;var Go=mt(Ee,Qt,Zt.value,je);if(Go===null){Qt===null&&(Qt=ri);break}l&&Qt&&Go.alternate===null&&u(Ee,Qt),Ae=Q(Go,Ae,jt),Lt===null?ct=Go:Lt.sibling=Go,Lt=Go,Qt=ri}if(Zt.done)return g(Ee,Qt),vn&&Va(Ee,jt),ct;if(Qt===null){for(;!Zt.done;jt++,Zt=we.next())Zt=Mt(Ee,Zt.value,je),Zt!==null&&(Ae=Q(Zt,Ae,jt),Lt===null?ct=Zt:Lt.sibling=Zt,Lt=Zt);return vn&&Va(Ee,jt),ct}for(Qt=v(Ee,Qt);!Zt.done;jt++,Zt=we.next())Zt=An(Qt,Ee,jt,Zt.value,je),Zt!==null&&(l&&Zt.alternate!==null&&Qt.delete(Zt.key===null?jt:Zt.key),Ae=Q(Zt,Ae,jt),Lt===null?ct=Zt:Lt.sibling=Zt,Lt=Zt);return l&&Qt.forEach(function(xb){return u(Ee,xb)}),vn&&Va(Ee,jt),ct}function br(Ee,Ae,we,je){if(typeof we=="object"&&we!==null&&we.type===h&&we.key===null&&(we=we.props.children),typeof we=="object"&&we!==null){switch(we.$$typeof){case c:e:{for(var ct=we.key,Lt=Ae;Lt!==null;){if(Lt.key===ct){if(ct=we.type,ct===h){if(Lt.tag===7){g(Ee,Lt.sibling),Ae=_(Lt,we.props.children),Ae.return=Ee,Ee=Ae;break e}}else if(Lt.elementType===ct||typeof ct=="object"&&ct!==null&&ct.$$typeof===I&&nx(ct)===Lt.type){g(Ee,Lt.sibling),Ae=_(Lt,we.props),Ae.ref=Lu(Ee,Lt,we),Ae.return=Ee,Ee=Ae;break e}g(Ee,Lt);break}else u(Ee,Lt);Lt=Lt.sibling}we.type===h?(Ae=ja(we.props.children,Ee.mode,je,we.key),Ae.return=Ee,Ee=Ae):(je=Gf(we.type,we.key,we.props,null,Ee.mode,je),je.ref=Lu(Ee,Ae,we),je.return=Ee,Ee=je)}return W(Ee);case A:e:{for(Lt=we.key;Ae!==null;){if(Ae.key===Lt)if(Ae.tag===4&&Ae.stateNode.containerInfo===we.containerInfo&&Ae.stateNode.implementation===we.implementation){g(Ee,Ae.sibling),Ae=_(Ae,we.children||[]),Ae.return=Ee,Ee=Ae;break e}else{g(Ee,Ae);break}else u(Ee,Ae);Ae=Ae.sibling}Ae=h0(we,Ee.mode,je),Ae.return=Ee,Ee=Ae}return W(Ee);case I:return Lt=we._init,br(Ee,Ae,Lt(we._payload),je)}if(ie(we))return ut(Ee,Ae,we,je);if(M(we))return xi(Ee,Ae,we,je);cf(Ee,we)}return typeof we=="string"&&we!==""||typeof we=="number"?(we=""+we,Ae!==null&&Ae.tag===6?(g(Ee,Ae.sibling),Ae=_(Ae,we),Ae.return=Ee,Ee=Ae):(g(Ee,Ae),Ae=A0(we,Ee.mode,je),Ae.return=Ee,Ee=Ae),W(Ee)):g(Ee,Ae)}return br}var tc=ix(!0),rx=ix(!1),Pu={},Qr=Vn(Pu),Uu=Vn(Pu),nc=Vn(Pu);function Es(l){if(l===Pu)throw Error(o(174));return l}function Qm(l,u){et(nc,u),et(Uu,l),et(Qr,Pu),l=ce(u),Et(Qr),et(Qr,l)}function ic(){Et(Qr),Et(Uu),Et(nc)}function sx(l){var u=Es(nc.current),g=Es(Qr.current);u=U(g,l.type,u),g!==u&&(et(Uu,l),et(Qr,u))}function Rm(l){Uu.current===l&&(Et(Qr),Et(Uu))}var _n=Vn(0);function uf(l){for(var u=l;u!==null;){if(u.tag===13){var g=u.memoizedState;if(g!==null&&(g=g.dehydrated,g===null||Oa(g)||hi(g)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!==void 0){if(u.flags&128)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break;for(;u.sibling===null;){if(u.return===null||u.return===l)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var Tm=[];function Dm(){for(var l=0;lg?g:4,l(!0);var v=Rr.transition;Rr.transition={};try{l(!1),u()}finally{qt=g,Rr.transition=v}}function yx(){return ys().memoizedState}function qD(l,u,g){var v=Uo(l);g={lane:v,action:g,hasEagerState:!1,eagerState:null,next:null},Ix(l)?vx(u,g):(Cx(l,u,g),g=Li(),l=Tr(l,v,g),l!==null&&xx(l,u,v))}function jD(l,u,g){var v=Uo(l),_={lane:v,action:g,hasEagerState:!1,eagerState:null,next:null};if(Ix(l))vx(u,_);else{Cx(l,u,_);var Q=l.alternate;if(l.lanes===0&&(Q===null||Q.lanes===0)&&(Q=u.lastRenderedReducer,Q!==null))try{var W=u.lastRenderedState,le=Q(W,g);if(_.hasEagerState=!0,_.eagerState=le,ps(le,W))return}catch{}finally{}g=Li(),l=Tr(l,v,g),l!==null&&xx(l,u,v)}}function Ix(l){var u=l.alternate;return l===Dn||u!==null&&u===Dn}function vx(l,u){Fu=hf=!0;var g=l.pending;g===null?u.next=u:(u.next=g.next,g.next=u),l.pending=u}function Cx(l,u,g){Wn!==null&&l.mode&1&&!(Ut&2)?(l=u.interleaved,l===null?(g.next=g,ms===null?ms=[u]:ms.push(u)):(g.next=l.next,l.next=g),u.interleaved=g):(l=u.pending,l===null?g.next=g:(g.next=l.next,l.next=g),u.pending=g)}function xx(l,u,g){if(g&4194240){var v=u.lanes;v&=l.pendingLanes,g|=v,u.lanes=g,hm(l,g)}}var mf={readContext:Sr,useCallback:vi,useContext:vi,useEffect:vi,useImperativeHandle:vi,useInsertionEffect:vi,useLayoutEffect:vi,useMemo:vi,useReducer:vi,useRef:vi,useState:vi,useDebugValue:vi,useDeferredValue:vi,useTransition:vi,useMutableSource:vi,useSyncExternalStore:vi,useId:vi,unstable_isNewReconciler:!1},ZD={readContext:Sr,useCallback:function(l,u){return Vs().memoizedState=[l,u===void 0?null:u],l},useContext:Sr,useEffect:Um,useImperativeHandle:function(l,u,g){return g=g!=null?g.concat([l]):null,pf(4194308,4,px.bind(null,u,l),g)},useLayoutEffect:function(l,u){return pf(4194308,4,l,u)},useInsertionEffect:function(l,u){return pf(4,2,l,u)},useMemo:function(l,u){var g=Vs();return u=u===void 0?null:u,l=l(),g.memoizedState=[l,u],l},useReducer:function(l,u,g){var v=Vs();return u=g!==void 0?g(u):u,v.memoizedState=v.baseState=u,l={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},v.queue=l,l=l.dispatch=qD.bind(null,Dn,l),[v.memoizedState,l]},useRef:function(l){var u=Vs();return l={current:l},u.memoizedState=l},useState:Pm,useDebugValue:Fm,useDeferredValue:function(l){var u=Pm(l),g=u[0],v=u[1];return Um(function(){var _=Rr.transition;Rr.transition={};try{v(l)}finally{Rr.transition=_}},[l]),g},useTransition:function(){var l=Pm(!1),u=l[0];return l=KD.bind(null,l[1]),Vs().memoizedState=l,[u,l]},useMutableSource:function(){},useSyncExternalStore:function(l,u,g){var v=Dn,_=Vs();if(vn){if(g===void 0)throw Error(o(407));g=g()}else{if(g=u(),Wn===null)throw Error(o(349));rc&30||lx(v,u,g)}_.memoizedState=g;var Q={value:g,getSnapshot:u};return _.queue=Q,Um(ux.bind(null,v,Q,l),[l]),v.flags|=2048,Gu(9,cx.bind(null,v,Q,g,u),void 0,null),g},useId:function(){var l=Vs(),u=Wn.identifierPrefix;if(vn){var g=zs,v=Hs;g=(v&~(1<<32-Ne(v)-1)).toString(32)+g,u=":"+u+"R"+g,g=ku++,0i0&&(u.flags|=128,v=!0,Vu(_,!1),u.lanes=4194304)}else{if(!v)if(l=uf(Q),l!==null){if(u.flags|=128,v=!0,l=l.updateQueue,l!==null&&(u.updateQueue=l,u.flags|=4),Vu(_,!0),_.tail===null&&_.tailMode==="hidden"&&!Q.alternate&&!vn)return Ci(u),null}else 2*ni()-_.renderingStartTime>i0&&g!==1073741824&&(u.flags|=128,v=!0,Vu(_,!1),u.lanes=4194304);_.isBackwards?(Q.sibling=u.child,u.child=Q):(l=_.last,l!==null?l.sibling=Q:u.child=Q,_.last=Q)}return _.tail!==null?(u=_.tail,_.rendering=u,_.tail=u.sibling,_.renderingStartTime=ni(),u.sibling=null,l=_n.current,et(_n,v?l&1|2:l&1),u):(Ci(u),null);case 22:case 23:return l0(),v=u.memoizedState!==null,l!==null&&l.memoizedState!==null!==v&&(u.flags|=8192),v&&u.mode&1?fr&1073741824&&(Ci(u),xe&&u.subtreeFlags&6&&(u.flags|=8192)):Ci(u),null;case 24:return null;case 25:return null}throw Error(o(156,u.tag))}var ib=a.ReactCurrentOwner,hr=!1;function Ni(l,u,g,v){u.child=l===null?rx(u,null,g,v):tc(u,l.child,g,v)}function Tx(l,u,g,v,_){g=g.render;var Q=u.ref;return jl(u,_),v=Nm(l,u,g,v,Q,_),g=Lm(),l!==null&&!hr?(u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~_,Ws(l,u,_)):(vn&&g&&Bm(u),u.flags|=1,Ni(l,u,v,_),u.child)}function Dx(l,u,g,v,_){if(l===null){var Q=g.type;return typeof Q=="function"&&!u0(Q)&&Q.defaultProps===void 0&&g.compare===null&&g.defaultProps===void 0?(u.tag=15,u.type=Q,bx(l,u,Q,v,_)):(l=Gf(g.type,null,v,u,u.mode,_),l.ref=u.ref,l.return=u,u.child=l)}if(Q=l.child,!(l.lanes&_)){var W=Q.memoizedProps;if(g=g.compare,g=g!==null?g:ef,g(W,v)&&l.ref===u.ref)return Ws(l,u,_)}return u.flags|=1,l=ko(Q,v),l.ref=u.ref,l.return=u,u.child=l}function bx(l,u,g,v,_){if(l!==null&&ef(l.memoizedProps,v)&&l.ref===u.ref)if(hr=!1,(l.lanes&_)!==0)l.flags&131072&&(hr=!0);else return u.lanes=l.lanes,Ws(l,u,_);return Om(l,u,g,v,_)}function Nx(l,u,g){var v=u.pendingProps,_=v.children,Q=l!==null?l.memoizedState:null;if(v.mode==="hidden")if(!(u.mode&1))u.memoizedState={baseLanes:0,cachePool:null},et(sc,fr),fr|=g;else if(g&1073741824)u.memoizedState={baseLanes:0,cachePool:null},v=Q!==null?Q.baseLanes:g,et(sc,fr),fr|=v;else return l=Q!==null?Q.baseLanes|g:g,u.lanes=u.childLanes=1073741824,u.memoizedState={baseLanes:l,cachePool:null},u.updateQueue=null,et(sc,fr),fr|=l,null;else Q!==null?(v=Q.baseLanes|g,u.memoizedState=null):v=g,et(sc,fr),fr|=v;return Ni(l,u,_,g),u.child}function Lx(l,u){var g=u.ref;(l===null&&g!==null||l!==null&&l.ref!==g)&&(u.flags|=512,u.flags|=2097152)}function Om(l,u,g,v,_){var Q=L(g)?ar:It.current;return Q=N(u,Q),jl(u,_),g=Nm(l,u,g,v,Q,_),v=Lm(),l!==null&&!hr?(u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~_,Ws(l,u,_)):(vn&&v&&Bm(u),u.flags|=1,Ni(l,u,g,_),u.child)}function Px(l,u,g,v,_){if(L(g)){var Q=!0;Se(u)}else Q=!1;if(jl(u,_),u.stateNode===null)l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),qC(u,g,v),xm(u,g,v,_),v=!0;else if(l===null){var W=u.stateNode,le=u.memoizedProps;W.props=le;var Qe=W.context,He=g.contextType;typeof He=="object"&&He!==null?He=Sr(He):(He=L(g)?ar:It.current,He=N(u,He));var rt=g.getDerivedStateFromProps,Mt=typeof rt=="function"||typeof W.getSnapshotBeforeUpdate=="function";Mt||typeof W.UNSAFE_componentWillReceiveProps!="function"&&typeof W.componentWillReceiveProps!="function"||(le!==v||Qe!==He)&&jC(u,W,v,He),bo=!1;var mt=u.memoizedState;W.state=mt,sf(u,v,W,_),Qe=u.memoizedState,le!==v||mt!==Qe||un.current||bo?(typeof rt=="function"&&(Cm(u,g,rt,v),Qe=u.memoizedState),(le=bo||KC(u,g,le,v,mt,Qe,He))?(Mt||typeof W.UNSAFE_componentWillMount!="function"&&typeof W.componentWillMount!="function"||(typeof W.componentWillMount=="function"&&W.componentWillMount(),typeof W.UNSAFE_componentWillMount=="function"&&W.UNSAFE_componentWillMount()),typeof W.componentDidMount=="function"&&(u.flags|=4194308)):(typeof W.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=v,u.memoizedState=Qe),W.props=v,W.state=Qe,W.context=He,v=le):(typeof W.componentDidMount=="function"&&(u.flags|=4194308),v=!1)}else{W=u.stateNode,WC(l,u),le=u.memoizedProps,He=u.type===u.elementType?le:Yr(u.type,le),W.props=He,Mt=u.pendingProps,mt=W.context,Qe=g.contextType,typeof Qe=="object"&&Qe!==null?Qe=Sr(Qe):(Qe=L(g)?ar:It.current,Qe=N(u,Qe));var An=g.getDerivedStateFromProps;(rt=typeof An=="function"||typeof W.getSnapshotBeforeUpdate=="function")||typeof W.UNSAFE_componentWillReceiveProps!="function"&&typeof W.componentWillReceiveProps!="function"||(le!==Mt||mt!==Qe)&&jC(u,W,v,Qe),bo=!1,mt=u.memoizedState,W.state=mt,sf(u,v,W,_);var ut=u.memoizedState;le!==Mt||mt!==ut||un.current||bo?(typeof An=="function"&&(Cm(u,g,An,v),ut=u.memoizedState),(He=bo||KC(u,g,He,v,mt,ut,Qe)||!1)?(rt||typeof W.UNSAFE_componentWillUpdate!="function"&&typeof W.componentWillUpdate!="function"||(typeof W.componentWillUpdate=="function"&&W.componentWillUpdate(v,ut,Qe),typeof W.UNSAFE_componentWillUpdate=="function"&&W.UNSAFE_componentWillUpdate(v,ut,Qe)),typeof W.componentDidUpdate=="function"&&(u.flags|=4),typeof W.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof W.componentDidUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=4),typeof W.getSnapshotBeforeUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=1024),u.memoizedProps=v,u.memoizedState=ut),W.props=v,W.state=ut,W.context=Qe,v=He):(typeof W.componentDidUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=4),typeof W.getSnapshotBeforeUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=1024),v=!1)}return Hm(l,u,g,v,Q,_)}function Hm(l,u,g,v,_,Q){Lx(l,u);var W=(u.flags&128)!==0;if(!v&&!W)return _&&Pe(u,g,!1),Ws(l,u,Q);v=u.stateNode,ib.current=u;var le=W&&typeof g.getDerivedStateFromError!="function"?null:v.render();return u.flags|=1,l!==null&&W?(u.child=tc(u,l.child,null,Q),u.child=tc(u,null,le,Q)):Ni(l,u,le,Q),u.memoizedState=v.state,_&&Pe(u,g,!0),u.child}function Ux(l){var u=l.stateNode;u.pendingContext?oe(l,u.pendingContext,u.pendingContext!==u.context):u.context&&oe(l,u.context,!1),Qm(l,u.containerInfo)}function Fx(l,u,g,v,_){return ec(),Mm(_),u.flags|=256,Ni(l,u,g,v),u.child}var If={dehydrated:null,treeContext:null,retryLane:0};function vf(l){return{baseLanes:l,cachePool:null}}function kx(l,u,g){var v=u.pendingProps,_=_n.current,Q=!1,W=(u.flags&128)!==0,le;if((le=W)||(le=l!==null&&l.memoizedState===null?!1:(_&2)!==0),le?(Q=!0,u.flags&=-129):(l===null||l.memoizedState!==null)&&(_|=1),et(_n,_&1),l===null)return wm(u),l=u.memoizedState,l!==null&&(l=l.dehydrated,l!==null)?(u.mode&1?hi(l)?u.lanes=8:u.lanes=1073741824:u.lanes=1,null):(_=v.children,l=v.fallback,Q?(v=u.mode,Q=u.child,_={mode:"hidden",children:_},!(v&1)&&Q!==null?(Q.childLanes=0,Q.pendingProps=_):Q=Of(_,v,0,null),l=ja(l,v,g,null),Q.return=u,l.return=u,Q.sibling=l,u.child=Q,u.child.memoizedState=vf(g),u.memoizedState=If,l):zm(u,_));if(_=l.memoizedState,_!==null){if(le=_.dehydrated,le!==null){if(W)return u.flags&256?(u.flags&=-257,Cf(l,u,g,Error(o(422)))):u.memoizedState!==null?(u.child=l.child,u.flags|=128,null):(Q=v.fallback,_=u.mode,v=Of({mode:"visible",children:v.children},_,0,null),Q=ja(Q,_,g,null),Q.flags|=2,v.return=u,Q.return=u,v.sibling=Q,u.child=v,u.mode&1&&tc(u,l.child,null,g),u.child.memoizedState=vf(g),u.memoizedState=If,Q);if(!(u.mode&1))u=Cf(l,u,g,null);else if(hi(le))u=Cf(l,u,g,Error(o(419)));else if(v=(g&l.childLanes)!==0,hr||v){if(v=Wn,v!==null){switch(g&-g){case 4:Q=2;break;case 16:Q=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:Q=32;break;case 536870912:Q=268435456;break;default:Q=0}v=Q&(v.suspendedLanes|g)?0:Q,v!==0&&v!==_.retryLane&&(_.retryLane=v,Tr(l,v,-1))}c0(),u=Cf(l,u,g,Error(o(421)))}else Oa(le)?(u.flags|=128,u.child=l.child,u=gb.bind(null,l),Fs(le,u),u=null):(g=_.treeContext,me&&(Ar=To(le),ur=u,vn=!0,Xr=null,bu=!1,g!==null&&(wr[Mr++]=Hs,wr[Mr++]=zs,wr[Mr++]=za,Hs=g.id,zs=g.overflow,za=u)),u=zm(u,u.pendingProps.children),u.flags|=4096);return u}return Q?(v=Ox(l,u,v.children,v.fallback,g),Q=u.child,_=l.child.memoizedState,Q.memoizedState=_===null?vf(g):{baseLanes:_.baseLanes|g,cachePool:null},Q.childLanes=l.childLanes&~g,u.memoizedState=If,v):(g=Gx(l,u,v.children,g),u.memoizedState=null,g)}return Q?(v=Ox(l,u,v.children,v.fallback,g),Q=u.child,_=l.child.memoizedState,Q.memoizedState=_===null?vf(g):{baseLanes:_.baseLanes|g,cachePool:null},Q.childLanes=l.childLanes&~g,u.memoizedState=If,v):(g=Gx(l,u,v.children,g),u.memoizedState=null,g)}function zm(l,u){return u=Of({mode:"visible",children:u},l.mode,0,null),u.return=l,l.child=u}function Gx(l,u,g,v){var _=l.child;return l=_.sibling,g=ko(_,{mode:"visible",children:g}),!(u.mode&1)&&(g.lanes=v),g.return=u,g.sibling=null,l!==null&&(v=u.deletions,v===null?(u.deletions=[l],u.flags|=16):v.push(l)),u.child=g}function Ox(l,u,g,v,_){var Q=u.mode;l=l.child;var W=l.sibling,le={mode:"hidden",children:g};return!(Q&1)&&u.child!==l?(g=u.child,g.childLanes=0,g.pendingProps=le,u.deletions=null):(g=ko(l,le),g.subtreeFlags=l.subtreeFlags&14680064),W!==null?v=ko(W,v):(v=ja(v,Q,_,null),v.flags|=2),v.return=u,g.return=u,g.sibling=v,u.child=g,v}function Cf(l,u,g,v){return v!==null&&Mm(v),tc(u,l.child,null,g),l=zm(u,u.pendingProps.children),l.flags|=2,u.memoizedState=null,l}function Hx(l,u,g){l.lanes|=u;var v=l.alternate;v!==null&&(v.lanes|=u),Im(l.return,u,g)}function Vm(l,u,g,v,_){var Q=l.memoizedState;Q===null?l.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:v,tail:g,tailMode:_}:(Q.isBackwards=u,Q.rendering=null,Q.renderingStartTime=0,Q.last=v,Q.tail=g,Q.tailMode=_)}function zx(l,u,g){var v=u.pendingProps,_=v.revealOrder,Q=v.tail;if(Ni(l,u,v.children,g),v=_n.current,v&2)v=v&1|2,u.flags|=128;else{if(l!==null&&l.flags&128)e:for(l=u.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&Hx(l,g,u);else if(l.tag===19)Hx(l,g,u);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===u)break e;for(;l.sibling===null;){if(l.return===null||l.return===u)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}v&=1}if(et(_n,v),!(u.mode&1))u.memoizedState=null;else switch(_){case"forwards":for(g=u.child,_=null;g!==null;)l=g.alternate,l!==null&&uf(l)===null&&(_=g),g=g.sibling;g=_,g===null?(_=u.child,u.child=null):(_=g.sibling,g.sibling=null),Vm(u,!1,_,g,Q);break;case"backwards":for(g=null,_=u.child,u.child=null;_!==null;){if(l=_.alternate,l!==null&&uf(l)===null){u.child=_;break}l=_.sibling,_.sibling=g,g=_,_=l}Vm(u,!0,g,null,Q);break;case"together":Vm(u,!1,null,null,void 0);break;default:u.memoizedState=null}return u.child}function Ws(l,u,g){if(l!==null&&(u.dependencies=l.dependencies),oc|=u.lanes,!(g&u.childLanes))return null;if(l!==null&&u.child!==l.child)throw Error(o(153));if(u.child!==null){for(l=u.child,g=ko(l,l.pendingProps),u.child=g,g.return=u;l.sibling!==null;)l=l.sibling,g=g.sibling=ko(l,l.pendingProps),g.return=u;g.sibling=null}return u.child}function rb(l,u,g){switch(u.tag){case 3:Ux(u),ec();break;case 5:sx(u);break;case 1:L(u.type)&&Se(u);break;case 4:Qm(u,u.stateNode.containerInfo);break;case 10:VC(u,u.type._context,u.memoizedProps.value);break;case 13:var v=u.memoizedState;if(v!==null)return v.dehydrated!==null?(et(_n,_n.current&1),u.flags|=128,null):g&u.child.childLanes?kx(l,u,g):(et(_n,_n.current&1),l=Ws(l,u,g),l!==null?l.sibling:null);et(_n,_n.current&1);break;case 19:if(v=(g&u.childLanes)!==0,l.flags&128){if(v)return zx(l,u,g);u.flags|=128}var _=u.memoizedState;if(_!==null&&(_.rendering=null,_.tail=null,_.lastEffect=null),et(_n,_n.current),v)break;return null;case 22:case 23:return u.lanes=0,Nx(l,u,g)}return Ws(l,u,g)}function sb(l,u){switch(_m(u),u.tag){case 1:return L(u.type)&&j(),l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 3:return ic(),Et(un),Et(It),Dm(),l=u.flags,l&65536&&!(l&128)?(u.flags=l&-65537|128,u):null;case 5:return Rm(u),null;case 13:if(Et(_n),l=u.memoizedState,l!==null&&l.dehydrated!==null){if(u.alternate===null)throw Error(o(340));ec()}return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 19:return Et(_n),null;case 4:return ic(),null;case 10:return ym(u.type._context),null;case 22:case 23:return l0(),null;case 24:return null;default:return null}}var xf=!1,Ya=!1,ob=typeof WeakSet=="function"?WeakSet:Set,Ke=null;function Bf(l,u){var g=l.ref;if(g!==null)if(typeof g=="function")try{g(null)}catch(v){Zi(l,u,v)}else g.current=null}function Wm(l,u,g){try{g()}catch(v){Zi(l,u,v)}}var Vx=!1;function ab(l,u){for($(l.containerInfo),Ke=u;Ke!==null;)if(l=Ke,u=l.child,(l.subtreeFlags&1028)!==0&&u!==null)u.return=l,Ke=u;else for(;Ke!==null;){l=Ke;try{var g=l.alternate;if(l.flags&1024)switch(l.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var v=g.memoizedProps,_=g.memoizedState,Q=l.stateNode,W=Q.getSnapshotBeforeUpdate(l.elementType===l.type?v:Yr(l.type,v),_);Q.__reactInternalSnapshotBeforeUpdate=W}break;case 3:xe&&Ge(l.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(le){Zi(l,l.return,le)}if(u=l.sibling,u!==null){u.return=l.return,Ke=u;break}Ke=l.return}return g=Vx,Vx=!1,g}function Xa(l,u,g){var v=u.updateQueue;if(v=v!==null?v.lastEffect:null,v!==null){var _=v=v.next;do{if((_.tag&l)===l){var Q=_.destroy;_.destroy=void 0,Q!==void 0&&Wm(u,g,Q)}_=_.next}while(_!==v)}}function Wu(l,u){if(u=u.updateQueue,u=u!==null?u.lastEffect:null,u!==null){var g=u=u.next;do{if((g.tag&l)===l){var v=g.create;g.destroy=v()}g=g.next}while(g!==u)}}function Ym(l){var u=l.ref;if(u!==null){var g=l.stateNode;switch(l.tag){case 5:l=te(g);break;default:l=g}typeof u=="function"?u(l):u.current=l}}function Wx(l,u,g){if(ds&&typeof ds.onCommitFiberUnmount=="function")try{ds.onCommitFiberUnmount(Zh,u)}catch{}switch(u.tag){case 0:case 11:case 14:case 15:if(l=u.updateQueue,l!==null&&(l=l.lastEffect,l!==null)){var v=l=l.next;do{var _=v,Q=_.destroy;_=_.tag,Q!==void 0&&(_&2||_&4)&&Wm(u,g,Q),v=v.next}while(v!==l)}break;case 1:if(Bf(u,g),l=u.stateNode,typeof l.componentWillUnmount=="function")try{l.props=u.memoizedProps,l.state=u.memoizedState,l.componentWillUnmount()}catch(W){Zi(u,g,W)}break;case 5:Bf(u,g);break;case 4:xe?jx(l,u,g):H&&H&&(u=u.stateNode.containerInfo,g=it(u),Wt(u,g))}}function Yx(l,u,g){for(var v=u;;)if(Wx(l,v,g),v.child===null||xe&&v.tag===4){if(v===u)break;for(;v.sibling===null;){if(v.return===null||v.return===u)return;v=v.return}v.sibling.return=v.return,v=v.sibling}else v.child.return=v,v=v.child}function Xx(l){var u=l.alternate;u!==null&&(l.alternate=null,Xx(u)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(u=l.stateNode,u!==null&&Re(u)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}function Jx(l){return l.tag===5||l.tag===3||l.tag===4}function Kx(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||Jx(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function qx(l){if(xe){e:{for(var u=l.return;u!==null;){if(Jx(u))break e;u=u.return}throw Error(o(160))}var g=u;switch(g.tag){case 5:u=g.stateNode,g.flags&32&&(Pt(u),g.flags&=-33),g=Kx(l),Jm(l,g,u);break;case 3:case 4:u=g.stateNode.containerInfo,g=Kx(l),Xm(l,g,u);break;default:throw Error(o(161))}}}function Xm(l,u,g){var v=l.tag;if(v===5||v===6)l=l.stateNode,u?ot(g,l,u):yt(g,l);else if(v!==4&&(l=l.child,l!==null))for(Xm(l,u,g),l=l.sibling;l!==null;)Xm(l,u,g),l=l.sibling}function Jm(l,u,g){var v=l.tag;if(v===5||v===6)l=l.stateNode,u?dt(g,l,u):at(g,l);else if(v!==4&&(l=l.child,l!==null))for(Jm(l,u,g),l=l.sibling;l!==null;)Jm(l,u,g),l=l.sibling}function jx(l,u,g){for(var v=u,_=!1,Q,W;;){if(!_){_=v.return;e:for(;;){if(_===null)throw Error(o(160));switch(Q=_.stateNode,_.tag){case 5:W=!1;break e;case 3:Q=Q.containerInfo,W=!0;break e;case 4:Q=Q.containerInfo,W=!0;break e}_=_.return}_=!0}if(v.tag===5||v.tag===6)Yx(l,v,g),W?vt(Q,v.stateNode):tt(Q,v.stateNode);else if(v.tag===18)W?Ie(Q,v.stateNode):_e(Q,v.stateNode);else if(v.tag===4){if(v.child!==null){Q=v.stateNode.containerInfo,W=!0,v.child.return=v,v=v.child;continue}}else if(Wx(l,v,g),v.child!==null){v.child.return=v,v=v.child;continue}if(v===u)break;for(;v.sibling===null;){if(v.return===null||v.return===u)return;v=v.return,v.tag===4&&(_=!1)}v.sibling.return=v.return,v=v.sibling}}function Km(l,u){if(xe){switch(u.tag){case 0:case 11:case 14:case 15:Xa(3,u,u.return),Wu(3,u),Xa(5,u,u.return);return;case 1:return;case 5:var g=u.stateNode;if(g!=null){var v=u.memoizedProps;l=l!==null?l.memoizedProps:v;var _=u.type,Q=u.updateQueue;u.updateQueue=null,Q!==null&&Bt(g,Q,_,l,v,u)}return;case 6:if(u.stateNode===null)throw Error(o(162));g=u.memoizedProps,Le(u.stateNode,l!==null?l.memoizedProps:g,g);return;case 3:me&&l!==null&&l.memoizedState.isDehydrated&&de(u.stateNode.containerInfo);return;case 12:return;case 13:_f(u);return;case 19:_f(u);return;case 17:return}throw Error(o(163))}switch(u.tag){case 0:case 11:case 14:case 15:Xa(3,u,u.return),Wu(3,u),Xa(5,u,u.return);return;case 12:return;case 13:_f(u);return;case 19:_f(u);return;case 3:me&&l!==null&&l.memoizedState.isDehydrated&&de(u.stateNode.containerInfo);break;case 22:case 23:return}e:if(H){switch(u.tag){case 1:case 5:case 6:break e;case 3:case 4:u=u.stateNode,Wt(u.containerInfo,u.pendingChildren);break e}throw Error(o(163))}}function _f(l){var u=l.updateQueue;if(u!==null){l.updateQueue=null;var g=l.stateNode;g===null&&(g=l.stateNode=new ob),u.forEach(function(v){var _=mb.bind(null,l,v);g.has(v)||(g.add(v),v.then(_,_))})}}function lb(l,u){for(Ke=u;Ke!==null;){u=Ke;var g=u.deletions;if(g!==null)for(var v=0;v";case wf:return":has("+(Zm(l)||"")+")";case Mf:return'[role="'+l.value+'"]';case Rf:return'"'+l.value+'"';case Qf:return'[data-testname="'+l.value+'"]';default:throw Error(o(365))}}function nB(l,u){var g=[];l=[l,0];for(var v=0;v_&&(_=W),v&=~Q}if(v=_,v=ni()-v,v=(120>v?120:480>v?480:1080>v?1080:1920>v?1920:3e3>v?3e3:4320>v?4320:1960*ub(v/1960))-v,10l?16:l,Po===null)var v=!1;else{if(l=Po,Po=null,Lf=0,Ut&6)throw Error(o(331));var _=Ut;for(Ut|=4,Ke=l.current;Ke!==null;){var Q=Ke,W=Q.child;if(Ke.flags&16){var le=Q.deletions;if(le!==null){for(var Qe=0;Qeni()-n0?Ja(l,0):t0|=g),ji(l,u)}function AB(l,u){u===0&&(l.mode&1?(u=kt,kt<<=1,!(kt&130023424)&&(kt=4194304)):u=1);var g=Li();l=Ff(l,u),l!==null&&(Do(l,u,g),ji(l,g))}function gb(l){var u=l.memoizedState,g=0;u!==null&&(g=u.retryLane),AB(l,g)}function mb(l,u){var g=0;switch(l.tag){case 13:var v=l.stateNode,_=l.memoizedState;_!==null&&(g=_.retryLane);break;case 19:v=l.stateNode;break;default:throw Error(o(314))}v!==null&&v.delete(u),AB(l,g)}var hB;hB=function(l,u,g){if(l!==null)if(l.memoizedProps!==u.pendingProps||un.current)hr=!0;else{if(!(l.lanes&g)&&!(u.flags&128))return hr=!1,rb(l,u,g);hr=!!(l.flags&131072)}else hr=!1,vn&&u.flags&1048576&&ZC(u,lf,u.index);switch(u.lanes=0,u.tag){case 2:var v=u.type;l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),l=u.pendingProps;var _=N(u,It.current);jl(u,g),_=Nm(null,u,v,l,_,g);var Q=Lm();return u.flags|=1,typeof _=="object"&&_!==null&&typeof _.render=="function"&&_.$$typeof===void 0?(u.tag=1,u.memoizedState=null,u.updateQueue=null,L(v)?(Q=!0,Se(u)):Q=!1,u.memoizedState=_.state!==null&&_.state!==void 0?_.state:null,vm(u),_.updater=of,u.stateNode=_,_._reactInternals=u,xm(u,v,l,g),u=Hm(null,u,v,!0,Q,g)):(u.tag=0,vn&&Q&&Bm(u),Ni(null,u,_,g),u=u.child),u;case 16:v=u.elementType;e:{switch(l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),l=u.pendingProps,_=v._init,v=_(v._payload),u.type=v,_=u.tag=yb(v),l=Yr(v,l),_){case 0:u=Om(null,u,v,l,g);break e;case 1:u=Px(null,u,v,l,g);break e;case 11:u=Tx(null,u,v,l,g);break e;case 14:u=Dx(null,u,v,Yr(v.type,l),g);break e}throw Error(o(306,v,""))}return u;case 0:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Yr(v,_),Om(l,u,v,_,g);case 1:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Yr(v,_),Px(l,u,v,_,g);case 3:e:{if(Ux(u),l===null)throw Error(o(387));v=u.pendingProps,Q=u.memoizedState,_=Q.element,WC(l,u),sf(u,v,null,g);var W=u.memoizedState;if(v=W.element,me&&Q.isDehydrated)if(Q={element:v,isDehydrated:!1,cache:W.cache,transitions:W.transitions},u.updateQueue.baseState=Q,u.memoizedState=Q,u.flags&256){_=Error(o(423)),u=Fx(l,u,v,g,_);break e}else if(v!==_){_=Error(o(424)),u=Fx(l,u,v,g,_);break e}else for(me&&(Ar=Ro(u.stateNode.containerInfo),ur=u,vn=!0,Xr=null,bu=!1),g=rx(u,null,v,g),u.child=g;g;)g.flags=g.flags&-3|4096,g=g.sibling;else{if(ec(),v===_){u=Ws(l,u,g);break e}Ni(l,u,v,g)}u=u.child}return u;case 5:return sx(u),l===null&&wm(u),v=u.type,_=u.pendingProps,Q=l!==null?l.memoizedProps:null,W=_.children,O(v,_)?W=null:Q!==null&&O(v,Q)&&(u.flags|=32),Lx(l,u),Ni(l,u,W,g),u.child;case 6:return l===null&&wm(u),null;case 13:return kx(l,u,g);case 4:return Qm(u,u.stateNode.containerInfo),v=u.pendingProps,l===null?u.child=tc(u,null,v,g):Ni(l,u,v,g),u.child;case 11:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Yr(v,_),Tx(l,u,v,_,g);case 7:return Ni(l,u,u.pendingProps,g),u.child;case 8:return Ni(l,u,u.pendingProps.children,g),u.child;case 12:return Ni(l,u,u.pendingProps.children,g),u.child;case 10:e:{if(v=u.type._context,_=u.pendingProps,Q=u.memoizedProps,W=_.value,VC(u,v,W),Q!==null)if(ps(Q.value,W)){if(Q.children===_.children&&!un.current){u=Ws(l,u,g);break e}}else for(Q=u.child,Q!==null&&(Q.return=u);Q!==null;){var le=Q.dependencies;if(le!==null){W=Q.child;for(var Qe=le.firstContext;Qe!==null;){if(Qe.context===v){if(Q.tag===1){Qe=Os(-1,g&-g),Qe.tag=2;var He=Q.updateQueue;if(He!==null){He=He.shared;var rt=He.pending;rt===null?Qe.next=Qe:(Qe.next=rt.next,rt.next=Qe),He.pending=Qe}}Q.lanes|=g,Qe=Q.alternate,Qe!==null&&(Qe.lanes|=g),Im(Q.return,g,u),le.lanes|=g;break}Qe=Qe.next}}else if(Q.tag===10)W=Q.type===u.type?null:Q.child;else if(Q.tag===18){if(W=Q.return,W===null)throw Error(o(341));W.lanes|=g,le=W.alternate,le!==null&&(le.lanes|=g),Im(W,g,u),W=Q.sibling}else W=Q.child;if(W!==null)W.return=Q;else for(W=Q;W!==null;){if(W===u){W=null;break}if(Q=W.sibling,Q!==null){Q.return=W.return,W=Q;break}W=W.return}Q=W}Ni(l,u,_.children,g),u=u.child}return u;case 9:return _=u.type,v=u.pendingProps.children,jl(u,g),_=Sr(_),v=v(_),u.flags|=1,Ni(l,u,v,g),u.child;case 14:return v=u.type,_=Yr(v,u.pendingProps),_=Yr(v.type,_),Dx(l,u,v,_,g);case 15:return bx(l,u,u.type,u.pendingProps,g);case 17:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Yr(v,_),l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),u.tag=1,L(v)?(l=!0,Se(u)):l=!1,jl(u,g),qC(u,v,_),xm(u,v,_,g),Hm(null,u,v,!0,l,g);case 19:return zx(l,u,g);case 22:return Nx(l,u,g)}throw Error(o(156,u.tag))};function fB(l,u){return fm(l,u)}function Eb(l,u,g,v){this.tag=l,this.key=g,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=v,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Dr(l,u,g,v){return new Eb(l,u,g,v)}function u0(l){return l=l.prototype,!(!l||!l.isReactComponent)}function yb(l){if(typeof l=="function")return u0(l)?1:0;if(l!=null){if(l=l.$$typeof,l===x)return 11;if(l===C)return 14}return 2}function ko(l,u){var g=l.alternate;return g===null?(g=Dr(l.tag,u,l.key,l.mode),g.elementType=l.elementType,g.type=l.type,g.stateNode=l.stateNode,g.alternate=l,l.alternate=g):(g.pendingProps=u,g.type=l.type,g.flags=0,g.subtreeFlags=0,g.deletions=null),g.flags=l.flags&14680064,g.childLanes=l.childLanes,g.lanes=l.lanes,g.child=l.child,g.memoizedProps=l.memoizedProps,g.memoizedState=l.memoizedState,g.updateQueue=l.updateQueue,u=l.dependencies,g.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},g.sibling=l.sibling,g.index=l.index,g.ref=l.ref,g}function Gf(l,u,g,v,_,Q){var W=2;if(v=l,typeof l=="function")u0(l)&&(W=1);else if(typeof l=="string")W=5;else e:switch(l){case h:return ja(g.children,_,Q,u);case f:W=8,_|=8;break;case d:return l=Dr(12,g,u,_|2),l.elementType=d,l.lanes=Q,l;case y:return l=Dr(13,g,u,_),l.elementType=y,l.lanes=Q,l;case p:return l=Dr(19,g,u,_),l.elementType=p,l.lanes=Q,l;case B:return Of(g,_,Q,u);default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case m:W=10;break e;case E:W=9;break e;case x:W=11;break e;case C:W=14;break e;case I:W=16,v=null;break e}throw Error(o(130,l==null?l:typeof l,""))}return u=Dr(W,g,u,_),u.elementType=l,u.type=v,u.lanes=Q,u}function ja(l,u,g,v){return l=Dr(7,l,v,u),l.lanes=g,l}function Of(l,u,g,v){return l=Dr(22,l,v,u),l.elementType=B,l.lanes=g,l.stateNode={},l}function A0(l,u,g){return l=Dr(6,l,null,u),l.lanes=g,l}function h0(l,u,g){return u=Dr(4,l.children!==null?l.children:[],l.key,u),u.lanes=g,u.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},u}function Ib(l,u,g,v,_){this.tag=u,this.containerInfo=l,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=ve,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=cr(0),this.expirationTimes=cr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=cr(0),this.identifierPrefix=v,this.onRecoverableError=_,me&&(this.mutableSourceEagerHydrationData=null)}function dB(l,u,g,v,_,Q,W,le,Qe){return l=new Ib(l,u,g,le,Qe),u===1?(u=1,Q===!0&&(u|=8)):u=0,Q=Dr(3,null,null,u),l.current=Q,Q.stateNode=l,Q.memoizedState={element:v,isDehydrated:g,cache:null,transitions:null},vm(Q),l}function pB(l){if(!l)return yi;l=l._reactInternals;e:{if(J(l)!==l||l.tag!==1)throw Error(o(170));var u=l;do{switch(u.tag){case 3:u=u.stateNode.context;break e;case 1:if(L(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break e}}u=u.return}while(u!==null);throw Error(o(171))}if(l.tag===1){var g=l.type;if(L(g))return pe(l,g,u)}return u}function gB(l){var u=l._reactInternals;if(u===void 0)throw typeof l.render=="function"?Error(o(188)):(l=Object.keys(l).join(","),Error(o(268,l)));return l=K(u),l===null?null:l.stateNode}function mB(l,u){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var g=l.retryLane;l.retryLane=g!==0&&g=He&&Q>=Mt&&_<=rt&&W<=mt){l.splice(u,1);break}else if(v!==He||g.width!==Qe.width||mtW){if(!(Q!==Mt||g.height!==Qe.height||rt_)){He>v&&(Qe.width+=He-v,Qe.x=v),rt<_&&(Qe.width=_-He),l.splice(u,1);break}}else{Mt>Q&&(Qe.height+=Mt-Q,Qe.y=Q),mtg&&(g=W)),W ")+` + +No matching component was found for: + `)+l.join(" > ")}return null},t.getPublicRootInstance=function(l){if(l=l.current,!l.child)return null;switch(l.child.tag){case 5:return te(l.child.stateNode);default:return l.child.stateNode}},t.injectIntoDevTools=function(l){if(l={bundleType:l.bundleType,version:l.version,rendererPackageName:l.rendererPackageName,rendererConfig:l.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:a.ReactCurrentDispatcher,findHostInstanceByFiber:vb,findFiberByHostInstance:l.findFiberByHostInstance||Cb,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")l=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)l=!0;else{try{Zh=u.inject(l),ds=u}catch{}l=!!u.checkDCE}}return l},t.isAlreadyRendering=function(){return!1},t.observeVisibleRects=function(l,u,g,v){if(!D)throw Error(o(363));l=$m(l,u);var _=qe(l,g,v).disconnect;return{disconnect:function(){_()}}},t.registerMutableSourceForHydration=function(l,u){var g=u._getVersion;g=g(u._source),l.mutableSourceEagerHydrationData==null?l.mutableSourceEagerHydrationData=[u,g]:l.mutableSourceEagerHydrationData.push(u,g)},t.runWithPriority=function(l,u){var g=qt;try{return qt=l,u()}finally{qt=g}},t.shouldError=function(){return null},t.shouldSuspend=function(){return!1},t.updateContainer=function(l,u,g,v){var _=u.current,Q=Li(),W=Uo(_);return g=pB(g),u.context===null?u.context=g:u.pendingContext=g,u=Os(Q,W),u.payload={element:l},v=v===void 0?null:v,v!==null&&(u.callback=v),No(_,u),l=Tr(_,W,Q),l!==null&&rf(l,_,W),W},t};IT.exports=YO;var XO=IT.exports;const JO=Yw(XO),MC={},KO=n=>void Object.assign(MC,n);function qO(n,e){function t(h,{args:f=[],attach:d,...m},E){let x=`${h[0].toUpperCase()}${h.slice(1)}`,y;if(h==="primitive"){if(m.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const p=m.object;y=bc(p,{type:h,root:E,attach:d,primitive:!0})}else{const p=MC[x];if(!p)throw new Error(`R3F: ${x} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(f))throw new Error("R3F: The args prop must be an array!");y=bc(new p(...f),{type:h,root:E,attach:d,memoizedProps:{args:f}})}return y.__r3f.attach===void 0&&(y instanceof Tt?y.__r3f.attach="geometry":y instanceof ui&&(y.__r3f.attach="material")),x!=="inject"&&_E(y,m),y}function i(h,f){let d=!1;if(f){var m,E;(m=f.__r3f)!=null&&m.attach?BE(h,f,f.__r3f.attach):f.isObject3D&&h.isObject3D&&(h.add(f),d=!0),d||(E=h.__r3f)==null||E.objects.push(f),f.__r3f||bc(f,{}),f.__r3f.parent=h,MI(f),Nc(f)}}function r(h,f,d){let m=!1;if(f){var E,x;if((E=f.__r3f)!=null&&E.attach)BE(h,f,f.__r3f.attach);else if(f.isObject3D&&h.isObject3D){f.parent=h,f.dispatchEvent({type:"added"});const y=h.children.filter(C=>C!==f),p=y.indexOf(d);h.children=[...y.slice(0,p),f,...y.slice(p)],m=!0}m||(x=h.__r3f)==null||x.objects.push(f),f.__r3f||bc(f,{}),f.__r3f.parent=h,MI(f),Nc(f)}}function s(h,f,d=!1){h&&[...h].forEach(m=>o(f,m,d))}function o(h,f,d){if(f){var m,E,x;if(f.__r3f&&(f.__r3f.parent=null),(m=h.__r3f)!=null&&m.objects&&(h.__r3f.objects=h.__r3f.objects.filter(B=>B!==f)),(E=f.__r3f)!=null&&E.attach)cw(h,f,f.__r3f.attach);else if(f.isObject3D&&h.isObject3D){var y;h.remove(f),(y=f.__r3f)!=null&&y.root&&iH(f.__r3f.root,f)}const C=(x=f.__r3f)==null?void 0:x.primitive,I=!C&&(d===void 0?f.dispose!==null:d);if(!C){var p;s((p=f.__r3f)==null?void 0:p.objects,f,I),s(f.children,f,I)}if(delete f.__r3f,I&&f.dispose&&f.type!=="Scene"){const B=()=>{try{f.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?SI.unstable_scheduleCallback(SI.unstable_IdlePriority,B):B()}Nc(h)}}function a(h,f,d,m){var E;const x=(E=h.__r3f)==null?void 0:E.parent;if(!x)return;const y=t(f,d,h.__r3f.root);if(h.children){for(const p of h.children)p.__r3f&&i(y,p);h.children=h.children.filter(p=>!p.__r3f)}h.__r3f.objects.forEach(p=>i(y,p)),h.__r3f.objects=[],h.__r3f.autoRemovedBeforeAppend||o(x,h),y.parent&&(y.__r3f.autoRemovedBeforeAppend=!0),i(x,y),y.raycast&&y.__r3f.eventCount&&y.__r3f.root.getState().internal.interaction.push(y),[m,m.alternate].forEach(p=>{p!==null&&(p.stateNode=y,p.ref&&(typeof p.ref=="function"?p.ref(y):p.ref.current=y))})}const c=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:JO({createInstance:t,removeChild:o,appendChild:i,appendInitialChild:i,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(h,f)=>{if(!f)return;const d=h.getState().scene;d.__r3f&&(d.__r3f.root=h,i(d,f))},removeChildFromContainer:(h,f)=>{f&&o(h.getState().scene,f)},insertInContainerBefore:(h,f,d)=>{if(!f||!d)return;const m=h.getState().scene;m.__r3f&&r(m,f,d)},getRootHostContext:()=>null,getChildHostContext:h=>h,finalizeInitialChildren(h){var f;return!!((f=h==null?void 0:h.__r3f)!=null?f:{}).handlers},prepareUpdate(h,f,d,m){var E;if(((E=h==null?void 0:h.__r3f)!=null?E:{}).primitive&&m.object&&m.object!==h)return[!0];{const{args:y=[],children:p,...C}=m,{args:I=[],children:B,...R}=d;if(!Array.isArray(y))throw new Error("R3F: the args prop must be an array!");if(y.some((T,P)=>T!==I[P]))return[!0];const M=QT(h,C,R,!0);return M.changes.length?[!1,M]:null}},commitUpdate(h,[f,d],m,E,x,y){f?a(h,m,x,y):_E(h,d)},commitMount(h,f,d,m){var E;const x=(E=h.__r3f)!=null?E:{};h.raycast&&x.handlers&&x.eventCount&&h.__r3f.root.getState().internal.interaction.push(h)},getPublicInstance:h=>h,prepareForCommit:()=>null,preparePortalMount:h=>bc(h.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(h){var f;const{attach:d,parent:m}=(f=h.__r3f)!=null?f:{};d&&m&&cw(m,h,d),h.isObject3D&&(h.visible=!1),Nc(h)},unhideInstance(h,f){var d;const{attach:m,parent:E}=(d=h.__r3f)!=null?d:{};m&&E&&BE(E,h,m),(h.isObject3D&&f.visible==null||f.visible)&&(h.visible=!0),Nc(h)},createTextInstance:c,hideTextInstance:c,unhideTextInstance:c,getCurrentEventPriority:()=>e?e():Zc.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&Cn.fun(performance.now)?performance.now:Cn.fun(Date.now)?Date.now:()=>0,scheduleTimeout:Cn.fun(setTimeout)?setTimeout:void 0,cancelTimeout:Cn.fun(clearTimeout)?clearTimeout:void 0}),applyProps:_E}}var sw,ow;const xE=n=>"colorSpace"in n||"outputColorSpace"in n,xT=()=>{var n;return(n=MC.ColorManagement)!=null?n:null},BT=n=>n&&n.isOrthographicCamera,jO=n=>n&&n.hasOwnProperty("current"),zh=typeof window<"u"&&((sw=window.document)!=null&&sw.createElement||((ow=window.navigator)==null?void 0:ow.product)==="ReactNative")?q.useLayoutEffect:q.useEffect;function _T(n){const e=q.useRef(n);return zh(()=>void(e.current=n),[n]),e}function ZO({set:n}){return zh(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}class ST extends q.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}ST.getDerivedStateFromError=()=>({error:!0});const wT="__default",aw=new Map,$O=n=>n&&!!n.memoized&&!!n.changes;function MT(n){var e;const t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}const pA=n=>{var e;return(e=n.__r3f)==null?void 0:e.root.getState()},Cn={obj:n=>n===Object(n)&&!Cn.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(Cn.str(n)||Cn.num(n))return n===e;const s=Cn.obj(n);if(s&&i==="reference")return n===e;const o=Cn.arr(n);if(o&&t==="reference")return n===e;if((o||s)&&n===e)return!0;let a;for(a in n)if(!(a in e))return!1;if(s&&t==="shallow"&&i==="shallow"){for(a in r?e:n)if(!Cn.equ(n[a],e[a],{strict:r,objects:"reference"}))return!1}else for(a in r?e:n)if(n[a]!==e[a])return!1;if(Cn.und(a)){if(o&&n.length===0&&e.length===0||s&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function eH(n){n.dispose&&n.type!=="Scene"&&n.dispose();for(const e in n)e.dispose==null||e.dispose(),delete n[e]}function bc(n,e){const t=n;return t.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},n}function wI(n,e){let t=n;if(e.includes("-")){const i=e.split("-"),r=i.pop();return t=i.reduce((s,o)=>s[o],n),{target:t,key:r}}else return{target:t,key:e}}const lw=/-\d+$/;function BE(n,e,t){if(Cn.str(t)){if(lw.test(t)){const s=t.replace(lw,""),{target:o,key:a}=wI(n,s);Array.isArray(o[a])||(o[a]=[])}const{target:i,key:r}=wI(n,t);e.__r3f.previousAttach=i[r],i[r]=e}else e.__r3f.previousAttach=t(n,e)}function cw(n,e,t){var i,r;if(Cn.str(t)){const{target:s,key:o}=wI(n,t),a=e.__r3f.previousAttach;a===void 0?delete s[o]:s[o]=a}else(i=e.__r3f)==null||i.previousAttach==null||i.previousAttach(n,e);(r=e.__r3f)==null||delete r.previousAttach}function QT(n,{children:e,key:t,ref:i,...r},{children:s,key:o,ref:a,...c}={},A=!1){var h;const f=(h=n==null?void 0:n.__r3f)!=null?h:{},d=Object.entries(r),m=[];if(A){const x=Object.keys(c);for(let y=0;y{var p;if((p=n.__r3f)!=null&&p.primitive&&x==="object"||Cn.equ(y,c[x]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(x))return m.push([x,y,!0,[]]);let C=[];x.includes("-")&&(C=x.split("-")),m.push([x,y,!1,C]);for(const I in r){const B=r[I];I.startsWith(`${x}-`)&&m.push([I,B,!1,I.split("-")])}});const E={...r};return f.memoizedProps&&f.memoizedProps.args&&(E.args=f.memoizedProps.args),f.memoizedProps&&f.memoizedProps.attach&&(E.attach=f.memoizedProps.attach),{memoized:E,changes:m}}const tH=typeof process<"u"&&!1;function _E(n,e){var t,i,r;const s=(t=n.__r3f)!=null?t:{},o=s.root,a=(i=o==null||o.getState==null?void 0:o.getState())!=null?i:{},{memoized:c,changes:A}=$O(e)?e:QT(n,e),h=s.eventCount;n.__r3f&&(n.__r3f.memoizedProps=c);for(let d=0;dI[B],n),!(C&&C.set))){const[I,...B]=y.reverse();p=B.reverse().reduce((R,M)=>R[M],n),m=I}if(E===wT+"remove")if(p.constructor){let I=aw.get(p.constructor);I||(I=new p.constructor,aw.set(p.constructor,I)),E=I[m]}else E=0;if(x)E?s.handlers[m]=E:delete s.handlers[m],s.eventCount=Object.keys(s.handlers).length;else if(C&&C.set&&(C.copy||C instanceof Tl)){if(Array.isArray(E))C.fromArray?C.fromArray(E):C.set(...E);else if(C.copy&&E&&E.constructor&&(tH?C.constructor.name===E.constructor.name:C.constructor===E.constructor))C.copy(E);else if(E!==void 0){const I=C instanceof Je;!I&&C.setScalar?C.setScalar(E):C instanceof Tl&&E instanceof Tl?C.mask=E.mask:C.set(E),!xT()&&!a.linear&&I&&C.convertSRGBToLinear()}}else if(p[m]=E,p[m]instanceof Bn&&p[m].format===Gi&&p[m].type===Ds){const I=p[m];xE(I)&&xE(a.gl)?I.colorSpace=a.gl.outputColorSpace:I.encoding=a.gl.outputEncoding}Nc(n)}if(s.parent&&a.internal&&n.raycast&&h!==s.eventCount){const d=a.internal.interaction.indexOf(n);d>-1&&a.internal.interaction.splice(d,1),s.eventCount&&a.internal.interaction.push(n)}return!(A.length===1&&A[0][0]==="onUpdate")&&A.length&&(r=n.__r3f)!=null&&r.parent&&MI(n),n}function Nc(n){var e,t;const i=(e=n.__r3f)==null||(t=e.root)==null||t.getState==null?void 0:t.getState();i&&i.internal.frames===0&&i.invalidate()}function MI(n){n.onUpdate==null||n.onUpdate(n)}function RT(n,e){n.manual||(BT(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix(),n.updateMatrixWorld())}function qd(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function nH(){var n;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return Zc.DefaultEventPriority;switch((n=e.event)==null?void 0:n.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return Zc.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return Zc.ContinuousEventPriority;default:return Zc.DefaultEventPriority}}function TT(n,e,t,i){const r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function iH(n,e){const{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{TT(t.capturedMap,e,i,r)})}function rH(n){function e(c){const{internal:A}=n.getState(),h=c.offsetX-A.initialClick[0],f=c.offsetY-A.initialClick[1];return Math.round(Math.sqrt(h*h+f*f))}function t(c){return c.filter(A=>["Move","Over","Enter","Out","Leave"].some(h=>{var f;return(f=A.__r3f)==null?void 0:f.handlers["onPointer"+h]}))}function i(c,A){const h=n.getState(),f=new Set,d=[],m=A?A(h.internal.interaction):h.internal.interaction;for(let p=0;p{const I=pA(p.object),B=pA(C.object);return!I||!B?p.distance-C.distance:B.events.priority-I.events.priority||p.distance-C.distance}).filter(p=>{const C=qd(p);return f.has(C)?!1:(f.add(C),!0)});h.events.filter&&(x=h.events.filter(x,h));for(const p of x){let C=p.object;for(;C;){var y;(y=C.__r3f)!=null&&y.eventCount&&d.push({...p,eventObject:C}),C=C.parent}}if("pointerId"in c&&h.internal.capturedMap.has(c.pointerId))for(let p of h.internal.capturedMap.get(c.pointerId).values())f.has(qd(p.intersection))||d.push(p.intersection);return d}function r(c,A,h,f){const d=n.getState();if(c.length){const m={stopped:!1};for(const E of c){const x=pA(E.object)||d,{raycaster:y,pointer:p,camera:C,internal:I}=x,B=new G(p.x,p.y,0).unproject(C),R=w=>{var b,K;return(b=(K=I.capturedMap.get(w))==null?void 0:K.has(E.eventObject))!=null?b:!1},M=w=>{const b={intersection:E,target:A.target};I.capturedMap.has(w)?I.capturedMap.get(w).set(E.eventObject,b):I.capturedMap.set(w,new Map([[E.eventObject,b]])),A.target.setPointerCapture(w)},T=w=>{const b=I.capturedMap.get(w);b&&TT(I.capturedMap,E.eventObject,b,w)};let P={};for(let w in A){let b=A[w];typeof b!="function"&&(P[w]=b)}let J={...E,...P,pointer:p,intersections:c,stopped:m.stopped,delta:h,unprojectedPoint:B,ray:y.ray,camera:C,stopPropagation(){const w="pointerId"in A&&I.capturedMap.get(A.pointerId);if((!w||w.has(E.eventObject))&&(J.stopped=m.stopped=!0,I.hovered.size&&Array.from(I.hovered.values()).find(b=>b.eventObject===E.eventObject))){const b=c.slice(0,c.indexOf(E));s([...b,E])}},target:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},currentTarget:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},nativeEvent:A};if(f(J),m.stopped===!0)break}}return c}function s(c){const{internal:A}=n.getState();for(const h of A.hovered.values())if(!c.length||!c.find(f=>f.object===h.object&&f.index===h.index&&f.instanceId===h.instanceId)){const d=h.eventObject.__r3f,m=d==null?void 0:d.handlers;if(A.hovered.delete(qd(h)),d!=null&&d.eventCount){const E={...h,intersections:c};m.onPointerOut==null||m.onPointerOut(E),m.onPointerLeave==null||m.onPointerLeave(E)}}}function o(c,A){for(let h=0;hs([]);case"onLostPointerCapture":return A=>{const{internal:h}=n.getState();"pointerId"in A&&h.capturedMap.has(A.pointerId)&&requestAnimationFrame(()=>{h.capturedMap.has(A.pointerId)&&(h.capturedMap.delete(A.pointerId),s([]))})}}return function(h){const{onPointerMissed:f,internal:d}=n.getState();d.lastEvent.current=h;const m=c==="onPointerMove",E=c==="onClick"||c==="onContextMenu"||c==="onDoubleClick",y=i(h,m?t:void 0),p=E?e(h):0;c==="onPointerDown"&&(d.initialClick=[h.offsetX,h.offsetY],d.initialHits=y.map(I=>I.eventObject)),E&&!y.length&&p<=2&&(o(h,d.interaction),f&&f(h)),m&&s(y);function C(I){const B=I.eventObject,R=B.__r3f,M=R==null?void 0:R.handlers;if(R!=null&&R.eventCount)if(m){if(M.onPointerOver||M.onPointerEnter||M.onPointerOut||M.onPointerLeave){const T=qd(I),P=d.hovered.get(T);P?P.stopped&&I.stopPropagation():(d.hovered.set(T,I),M.onPointerOver==null||M.onPointerOver(I),M.onPointerEnter==null||M.onPointerEnter(I))}M.onPointerMove==null||M.onPointerMove(I)}else{const T=M[c];T?(!E||d.initialHits.includes(B))&&(o(h,d.interaction.filter(P=>!d.initialHits.includes(P))),T(I)):E&&d.initialHits.includes(B)&&o(h,d.interaction.filter(P=>!d.initialHits.includes(P)))}}r(y,h,p,C)}}return{handlePointer:a}}const sH=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],DT=n=>!!(n!=null&&n.render),QC=q.createContext(null),oH=(n,e)=>{const t=yT((a,c)=>{const A=new G,h=new G,f=new G;function d(p=c().camera,C=h,I=c().size){const{width:B,height:R,top:M,left:T}=I,P=B/R;C instanceof G?f.copy(C):f.set(...C);const J=p.getWorldPosition(A).distanceTo(f);if(BT(p))return{width:B/p.zoom,height:R/p.zoom,top:M,left:T,factor:1,distance:J,aspect:P};{const w=p.fov*Math.PI/180,b=2*Math.tan(w/2)*J,K=b*(B/R);return{width:K,height:b,top:M,left:T,factor:B/K,distance:J,aspect:P}}}let m;const E=p=>a(C=>({performance:{...C.performance,current:p}})),x=new Be;return{set:a,get:c,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(p=1)=>n(c(),p),advance:(p,C)=>e(p,C,c()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new xC,pointer:x,mouse:x,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const p=c();m&&clearTimeout(m),p.performance.current!==p.performance.min&&E(p.performance.min),m=setTimeout(()=>E(c().performance.max),p.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:d},setEvents:p=>a(C=>({...C,events:{...C.events,...p}})),setSize:(p,C,I,B,R)=>{const M=c().camera,T={width:p,height:C,top:B||0,left:R||0,updateStyle:I};a(P=>({size:T,viewport:{...P.viewport,...d(M,h,T)}}))},setDpr:p=>a(C=>{const I=MT(p);return{viewport:{...C.viewport,dpr:I,initialDpr:C.viewport.initialDpr||I}}}),setFrameloop:(p="always")=>{const C=c().clock;C.stop(),C.elapsedTime=0,p!=="never"&&(C.start(),C.elapsedTime=0),a(()=>({frameloop:p}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:q.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(p,C,I)=>{const B=c().internal;return B.priority=B.priority+(C>0?1:0),B.subscribers.push({ref:p,priority:C,store:I}),B.subscribers=B.subscribers.sort((R,M)=>R.priority-M.priority),()=>{const R=c().internal;R!=null&&R.subscribers&&(R.priority=R.priority-(C>0?1:0),R.subscribers=R.subscribers.filter(M=>M.ref!==p))}}}}}),i=t.getState();let r=i.size,s=i.viewport.dpr,o=i.camera;return t.subscribe(()=>{const{camera:a,size:c,viewport:A,gl:h,set:f}=t.getState();if(c.width!==r.width||c.height!==r.height||A.dpr!==s){var d;r=c,s=A.dpr,RT(a,c),h.setPixelRatio(A.dpr);const m=(d=c.updateStyle)!=null?d:typeof HTMLCanvasElement<"u"&&h.domElement instanceof HTMLCanvasElement;h.setSize(c.width,c.height,m)}a!==o&&(o=a,f(m=>({viewport:{...m.viewport,...m.viewport.getCurrentViewport(a)}})))}),t.subscribe(a=>n(a)),t};let jd,aH=new Set,lH=new Set,cH=new Set;function SE(n,e){if(n.size)for(const{callback:t}of n.values())t(e)}function gA(n,e){switch(n){case"before":return SE(aH,e);case"after":return SE(lH,e);case"tail":return SE(cH,e)}}let wE,ME;function QE(n,e,t){let i=e.clock.getDelta();for(e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),wE=e.internal.subscribers,jd=0;jd0)&&!((A=r.gl.xr)!=null&&A.isPresenting)&&(t+=QE(c,r))}if(gA("after",c),t===0)return gA("tail",c),e=!1,cancelAnimationFrame(i)}function o(c,A=1){var h;if(!c)return n.forEach(f=>o(f.store.getState()),A);(h=c.gl.xr)!=null&&h.isPresenting||!c.internal.active||c.frameloop==="never"||(c.internal.frames=Math.min(60,c.internal.frames+A),e||(e=!0,requestAnimationFrame(s)))}function a(c,A=!0,h,f){if(A&&gA("before",c),h)QE(c,h,f);else for(const d of n.values())QE(c,d.store.getState());A&&gA("after",c)}return{loop:s,invalidate:o,advance:a}}function Vh(){const n=q.useContext(QC);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function RC(n=t=>t,e){return Vh()(n,e)}function Da(n,e=0){const t=Vh(),i=t.getState().internal.subscribe,r=_T(n);return zh(()=>i(r,e,t),[e,i,t]),null}const gu=new Map,{invalidate:uw,advance:Aw}=uH(gu),{reconciler:Sh,applyProps:Rc}=qO(gu,nH),Tc={objects:"shallow",strict:!1},AH=(n,e)=>{const t=typeof n=="function"?n(e):n;return DT(t)?t:new sC({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...n})};function hH(n,e){const t=typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement;if(e){const{width:i,height:r,top:s,left:o,updateStyle:a=t}=e;return{width:i,height:r,top:s,left:o,updateStyle:a}}else if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){const{width:i,height:r,top:s,left:o}=n.parentElement.getBoundingClientRect();return{width:i,height:r,top:s,left:o,updateStyle:t}}else if(typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0,updateStyle:t};return{width:0,height:0,top:0,left:0}}function fH(n){const e=gu.get(n),t=e==null?void 0:e.fiber,i=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,s=i||oH(uw,Aw),o=t||Sh.createContainer(s,Zc.ConcurrentRoot,null,!1,null,"",r,null);e||gu.set(n,{fiber:o,store:s});let a,c=!1,A;return{configure(h={}){let{gl:f,size:d,scene:m,events:E,onCreated:x,shadows:y=!1,linear:p=!1,flat:C=!1,legacy:I=!1,orthographic:B=!1,frameloop:R="always",dpr:M=[1,2],performance:T,raycaster:P,camera:J,onPointerMissed:w}=h,b=s.getState(),K=b.gl;b.gl||b.set({gl:K=AH(f,n)});let fe=b.raycaster;fe||b.set({raycaster:fe=new wC});const{params:Y,...ie}=P||{};if(Cn.equ(ie,fe,Tc)||Rc(fe,{...ie}),Cn.equ(Y,fe.params,Tc)||Rc(fe,{params:{...fe.params,...Y}}),!b.camera||b.camera===A&&!Cn.equ(A,J,Tc)){A=J;const ye=J instanceof Lh,ke=ye?J:B?new Fh(0,0,0,0,.1,1e3):new jn(75,0,.1,1e3);ye||(ke.position.z=5,J&&Rc(ke,J),!b.camera&&!(J!=null&&J.rotation)&&ke.lookAt(0,0,0)),b.set({camera:ke}),fe.camera=ke}if(!b.scene){let ye;m instanceof Eh?ye=m:(ye=new Eh,m&&Rc(ye,m)),b.set({scene:bc(ye)})}if(!b.xr){var te;const ye=(O,k)=>{const F=s.getState();F.frameloop!=="never"&&Aw(O,!0,F,k)},ke=()=>{const O=s.getState();O.gl.xr.enabled=O.gl.xr.isPresenting,O.gl.xr.setAnimationLoop(O.gl.xr.isPresenting?ye:null),O.gl.xr.isPresenting||uw(O)},V={connect(){const O=s.getState().gl;O.xr.addEventListener("sessionstart",ke),O.xr.addEventListener("sessionend",ke)},disconnect(){const O=s.getState().gl;O.xr.removeEventListener("sessionstart",ke),O.xr.removeEventListener("sessionend",ke)}};typeof((te=K.xr)==null?void 0:te.addEventListener)=="function"&&V.connect(),b.set({xr:V})}if(K.shadowMap){const ye=K.shadowMap.enabled,ke=K.shadowMap.type;if(K.shadowMap.enabled=!!y,Cn.boo(y))K.shadowMap.type=LA;else if(Cn.str(y)){var ce;const V={basic:cQ,percentage:Ng,soft:LA,variance:$r};K.shadowMap.type=(ce=V[y])!=null?ce:LA}else Cn.obj(y)&&Object.assign(K.shadowMap,y);(ye!==K.shadowMap.enabled||ke!==K.shadowMap.type)&&(K.shadowMap.needsUpdate=!0)}const U=xT();U&&("enabled"in U?U.enabled=!I:"legacyMode"in U&&(U.legacyMode=I)),Rc(K,{outputEncoding:p?3e3:3001,toneMapping:C?Ts:Gv}),b.legacy!==I&&b.set(()=>({legacy:I})),b.linear!==p&&b.set(()=>({linear:p})),b.flat!==C&&b.set(()=>({flat:C})),f&&!Cn.fun(f)&&!DT(f)&&!Cn.equ(f,K,Tc)&&Rc(K,f),E&&!b.events.handlers&&b.set({events:E(s)});const ue=hH(n,d);return Cn.equ(ue,b.size,Tc)||b.setSize(ue.width,ue.height,ue.updateStyle,ue.top,ue.left),M&&b.viewport.dpr!==MT(M)&&b.setDpr(M),b.frameloop!==R&&b.setFrameloop(R),b.onPointerMissed||b.set({onPointerMissed:w}),T&&!Cn.equ(T,b.performance,Tc)&&b.set(ye=>({performance:{...ye.performance,...T}})),a=x,c=!0,this},render(h){return c||this.configure(),Sh.updateContainer(q.createElement(dH,{store:s,children:h,onCreated:a,rootElement:n}),o,null,()=>{}),s},unmount(){bT(n)}}}function dH({store:n,children:e,onCreated:t,rootElement:i}){return zh(()=>{const r=n.getState();r.set(s=>({internal:{...s.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),q.createElement(QC.Provider,{value:n},e)}function bT(n,e){const t=gu.get(n),i=t==null?void 0:t.fiber;if(i){const r=t==null?void 0:t.store.getState();r&&(r.internal.active=!1),Sh.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{var s,o,a,c;r.events.disconnect==null||r.events.disconnect(),(s=r.gl)==null||(o=s.renderLists)==null||o.dispose==null||o.dispose(),(a=r.gl)==null||a.forceContextLoss==null||a.forceContextLoss(),(c=r.gl)!=null&&c.xr&&r.xr.disconnect(),eH(r),gu.delete(n),e&&e(n)}catch{}},500)})}}function NT(n,e,t){return q.createElement(pH,{key:e.uuid,children:n,container:e,state:t})}function pH({state:n={},children:e,container:t}){const{events:i,size:r,...s}=n,o=Vh(),[a]=q.useState(()=>new wC),[c]=q.useState(()=>new Be),A=q.useCallback((f,d)=>{const m={...f};Object.keys(f).forEach(x=>{(sH.includes(x)||f[x]!==d[x]&&d[x])&&delete m[x]});let E;if(d&&r){const x=d.camera;E=f.viewport.getCurrentViewport(x,new G,r),x!==f.camera&&RT(x,r)}return{...m,scene:t,raycaster:a,pointer:c,mouse:c,previousRoot:o,events:{...f.events,...d==null?void 0:d.events,...i},size:{...f.size,...r},viewport:{...f.viewport,...E},...s}},[n]),[h]=q.useState(()=>{const f=o.getState();return yT((m,E)=>({...f,scene:t,raycaster:a,pointer:c,mouse:c,previousRoot:o,events:{...f.events,...i},size:{...f.size,...r},...s,set:m,get:E,setEvents:x=>m(y=>({...y,events:{...y.events,...x}}))}))});return q.useEffect(()=>{const f=o.subscribe(d=>h.setState(m=>A(d,m)));return()=>{f(),h.destroy()}},[]),q.useEffect(()=>{h.setState(f=>A(o.getState(),f))},[A]),q.createElement(q.Fragment,null,Sh.createPortal(q.createElement(QC.Provider,{value:h},e),h,null))}Sh.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:q.version});function fg(){return fg=Object.assign?Object.assign.bind():function(n){for(var e=1;e=0?i=setTimeout(c,e-h):(i=null,t||(a=n.apply(s,r),s=r=null))}var A=function(){s=this,r=arguments,o=Date.now();var h=t&&!i;return i||(i=setTimeout(c,e)),h&&(a=n.apply(s,r),s=r=null),a};return A.clear=function(){i&&(clearTimeout(i),i=null)},A.flush=function(){i&&(a=n.apply(s,r),s=r=null,clearTimeout(i),i=null)},A}QI.debounce=QI;var gH=QI;const hw=Yw(gH);function mH(n){let{debounce:e,scroll:t,polyfill:i,offsetSize:r}=n===void 0?{debounce:0,scroll:!1,offsetSize:!1}:n;const s=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!s)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,a]=q.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),c=q.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),A=e?typeof e=="number"?e:e.scroll:null,h=e?typeof e=="number"?e:e.resize:null,f=q.useRef(!1);q.useEffect(()=>(f.current=!0,()=>void(f.current=!1)));const[d,m,E]=q.useMemo(()=>{const C=()=>{if(!c.current.element)return;const{left:I,top:B,width:R,height:M,bottom:T,right:P,x:J,y:w}=c.current.element.getBoundingClientRect(),b={left:I,top:B,width:R,height:M,bottom:T,right:P,x:J,y:w};c.current.element instanceof HTMLElement&&r&&(b.height=c.current.element.offsetHeight,b.width=c.current.element.offsetWidth),Object.freeze(b),f.current&&!vH(c.current.lastBounds,b)&&a(c.current.lastBounds=b)};return[C,h?hw(C,h):C,A?hw(C,A):C]},[a,r,A,h]);function x(){c.current.scrollContainers&&(c.current.scrollContainers.forEach(C=>C.removeEventListener("scroll",E,!0)),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null)}function y(){c.current.element&&(c.current.resizeObserver=new s(E),c.current.resizeObserver.observe(c.current.element),t&&c.current.scrollContainers&&c.current.scrollContainers.forEach(C=>C.addEventListener("scroll",E,{capture:!0,passive:!0})))}const p=C=>{!C||C===c.current.element||(x(),c.current.element=C,c.current.scrollContainers=LT(C),y())};return yH(E,!!t),EH(m),q.useEffect(()=>{x(),y()},[t,E,m]),q.useEffect(()=>x,[]),[p,o,d]}function EH(n){q.useEffect(()=>{const e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function yH(n,e){q.useEffect(()=>{if(e){const t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function LT(n){const e=[];if(!n||n===document.body)return e;const{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(s=>s==="auto"||s==="scroll")&&e.push(n),[...e,...LT(n.parentElement)]}const IH=["x","y","top","bottom","left","right","width","height"],vH=(n,e)=>IH.every(t=>n[t]===e[t]);var CH=Object.defineProperty,xH=Object.defineProperties,BH=Object.getOwnPropertyDescriptors,fw=Object.getOwnPropertySymbols,_H=Object.prototype.hasOwnProperty,SH=Object.prototype.propertyIsEnumerable,dw=(n,e,t)=>e in n?CH(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,pw=(n,e)=>{for(var t in e||(e={}))_H.call(e,t)&&dw(n,t,e[t]);if(fw)for(var t of fw(e))SH.call(e,t)&&dw(n,t,e[t]);return n},wH=(n,e)=>xH(n,BH(e));function PT(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){const r=PT(i,e,t);if(r)return r;i=e?null:i.sibling}}function UT(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}const TC=UT(q.createContext(null));class FT extends q.Component{render(){return q.createElement(TC.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:gw,ReactCurrentDispatcher:mw}=q.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function MH(){const n=q.useContext(TC);if(n===null)throw new Error("its-fine: useFiber must be called within a !");const e=q.useId();return q.useMemo(()=>{for(const i of[gw==null?void 0:gw.current,n,n==null?void 0:n.alternate]){if(!i)continue;const r=PT(i,!1,s=>{let o=s.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[n,e])}function QH(){var n,e;const t=MH(),[i]=q.useState(()=>new Map);i.clear();let r=t;for(;r;){const s=(n=r.type)==null?void 0:n._context;s&&s!==TC&&!i.has(s)&&i.set(s,(e=mw==null?void 0:mw.current)==null?void 0:e.readContext(UT(s))),r=r.return}return i}function RH(){const n=QH();return q.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>q.createElement(e,null,q.createElement(t.Provider,wH(pw({},i),{value:n.get(t)}))),e=>q.createElement(FT,pw({},e))),[n])}const RE={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function TH(n){const{handlePointer:e}=rH(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(RE).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;const{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{var i;const{set:r,events:s}=n.getState();s.disconnect==null||s.disconnect(),r(o=>({events:{...o.events,connected:t}})),Object.entries((i=s.handlers)!=null?i:[]).forEach(([o,a])=>{const[c,A]=RE[o];t.addEventListener(c,a,{passive:A})})},disconnect:()=>{const{set:t,events:i}=n.getState();if(i.connected){var r;Object.entries((r=i.handlers)!=null?r:[]).forEach(([s,o])=>{if(i&&i.connected instanceof HTMLElement){const[a]=RE[s];i.connected.removeEventListener(a,o)}}),t(s=>({events:{...s.events,connected:void 0}}))}}}}const DH=q.forwardRef(function({children:e,fallback:t,resize:i,style:r,gl:s,events:o=TH,eventSource:a,eventPrefix:c,shadows:A,linear:h,flat:f,legacy:d,orthographic:m,frameloop:E,dpr:x,performance:y,raycaster:p,camera:C,scene:I,onPointerMissed:B,onCreated:R,...M},T){q.useMemo(()=>KO(zO),[]);const P=RH(),[J,w]=mH({scroll:!0,debounce:{scroll:50,resize:0},...i}),b=q.useRef(null),K=q.useRef(null);q.useImperativeHandle(T,()=>b.current);const fe=_T(B),[Y,ie]=q.useState(!1),[te,ce]=q.useState(!1);if(Y)throw Y;if(te)throw te;const U=q.useRef(null);zh(()=>{const ee=b.current;w.width>0&&w.height>0&&ee&&(U.current||(U.current=fH(ee)),U.current.configure({gl:s,events:o,shadows:A,linear:h,flat:f,legacy:d,orthographic:m,frameloop:E,dpr:x,performance:y,raycaster:p,camera:C,scene:I,size:w,onPointerMissed:(...ue)=>fe.current==null?void 0:fe.current(...ue),onCreated:ue=>{ue.events.connect==null||ue.events.connect(a?jO(a)?a.current:a:K.current),c&&ue.setEvents({compute:(ye,ke)=>{const V=ye[c+"X"],O=ye[c+"Y"];ke.pointer.set(V/ke.size.width*2-1,-(O/ke.size.height)*2+1),ke.raycaster.setFromCamera(ke.pointer,ke.camera)}}),R==null||R(ue)}}),U.current.render(q.createElement(P,null,q.createElement(ST,{set:ce},q.createElement(q.Suspense,{fallback:q.createElement(ZO,{set:ie})},e)))))}),q.useEffect(()=>{const ee=b.current;if(ee)return()=>bT(ee)},[]);const $=a?"none":"auto";return q.createElement("div",fg({ref:K,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:$,...r}},M),q.createElement("div",{ref:J,style:{width:"100%",height:"100%"}},q.createElement("canvas",{ref:b,style:{display:"block"}},t)))}),bH=q.forwardRef(function(e,t){return q.createElement(FT,null,q.createElement(DH,fg({},e,{ref:t})))});function lm(){throw new Error("Cycle detected")}var NH=Symbol.for("preact-signals");function cm(){if(Ia>1)Ia--;else{for(var n,e=!1;GA!==void 0;){var t=GA;for(GA=void 0,RI++;t!==void 0;){var i=t.o;if(t.o=void 0,t.f&=-3,!(8&t.f)&&OT(t))try{t.c()}catch(r){e||(n=r,e=!0)}t=i}}if(RI=0,Ia--,e)throw n}}function kT(n){if(Ia>0)return n();Ia++;try{return n()}finally{cm()}}var En=void 0,TE=0;function DE(n){if(TE>0)return n();var e=En;En=void 0,TE++;try{return n()}finally{TE--,En=e}}var GA=void 0,Ia=0,RI=0,dg=0;function GT(n){if(En!==void 0){var e=n.n;if(e===void 0||e.t!==En)return e={i:0,S:n,p:En.s,n:void 0,t:En,e:void 0,x:void 0,r:e},En.s!==void 0&&(En.s.n=e),En.s=e,n.n=e,32&En.f&&n.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=En.s,e.n=void 0,En.s.n=e,En.s=e),e}}function Un(n){this.v=n,this.i=0,this.n=void 0,this.t=void 0}Un.prototype.brand=NH;Un.prototype.h=function(){return!0};Un.prototype.S=function(n){this.t!==n&&n.e===void 0&&(n.x=this.t,this.t!==void 0&&(this.t.e=n),this.t=n)};Un.prototype.U=function(n){if(this.t!==void 0){var e=n.e,t=n.x;e!==void 0&&(e.x=t,n.e=void 0),t!==void 0&&(t.e=e,n.x=void 0),n===this.t&&(this.t=t)}};Un.prototype.subscribe=function(n){var e=this;return Xt(function(){var t=e.value,i=32&this.f;this.f&=-33;try{n(t)}finally{this.f|=i}})};Un.prototype.valueOf=function(){return this.value};Un.prototype.toString=function(){return this.value+""};Un.prototype.toJSON=function(){return this.value};Un.prototype.peek=function(){return this.v};Object.defineProperty(Un.prototype,"value",{get:function(){var n=GT(this);return n!==void 0&&(n.i=this.i),this.v},set:function(n){if(En instanceof ba&&function(){throw new Error("Computed cannot have side-effects")}(),n!==this.v){RI>100&&lm(),this.v=n,this.i++,dg++,Ia++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{cm()}}}});function Gt(n){return new Un(n)}function OT(n){for(var e=n.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function HT(n){for(var e=n.s;e!==void 0;e=e.n){var t=e.S.n;if(t!==void 0&&(e.r=t),e.S.n=e,e.i=-1,e.n===void 0){n.s=e;break}}}function zT(n){for(var e=n.s,t=void 0;e!==void 0;){var i=e.p;e.i===-1?(e.S.U(e),i!==void 0&&(i.n=e.n),e.n!==void 0&&(e.n.p=i)):t=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=i}n.s=t}function ba(n){Un.call(this,void 0),this.x=n,this.s=void 0,this.g=dg-1,this.f=4}(ba.prototype=new Un).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===dg))return!0;if(this.g=dg,this.f|=1,this.i>0&&!OT(this))return this.f&=-2,!0;var n=En;try{HT(this),En=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(t){this.v=t,this.f|=16,this.i++}return En=n,zT(this),this.f&=-2,!0};ba.prototype.S=function(n){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}Un.prototype.S.call(this,n)};ba.prototype.U=function(n){if(this.t!==void 0&&(Un.prototype.U.call(this,n),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};ba.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var n=this.t;n!==void 0;n=n.x)n.t.N()}};ba.prototype.peek=function(){if(this.h()||lm(),16&this.f)throw this.v;return this.v};Object.defineProperty(ba.prototype,"value",{get:function(){1&this.f&&lm();var n=GT(this);if(this.h(),n!==void 0&&(n.i=this.i),16&this.f)throw this.v;return this.v}});function Pn(n){return new ba(n)}function VT(n){var e=n.u;if(n.u=void 0,typeof e=="function"){Ia++;var t=En;En=void 0;try{e()}catch(i){throw n.f&=-2,n.f|=8,DC(n),i}finally{En=t,cm()}}}function DC(n){for(var e=n.s;e!==void 0;e=e.n)e.S.U(e);n.x=void 0,n.s=void 0,VT(n)}function LH(n){if(En!==this)throw new Error("Out-of-order effect");zT(this),En=n,this.f&=-2,8&this.f&&DC(this),cm()}function Wh(n){this.x=n,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}Wh.prototype.c=function(){var n=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{n()}};Wh.prototype.S=function(){1&this.f&&lm(),this.f|=1,this.f&=-9,VT(this),HT(this),Ia++;var n=En;return En=this,LH.bind(this,n)};Wh.prototype.N=function(){2&this.f||(this.f|=2,this.o=GA,GA=this)};Wh.prototype.d=function(){this.f|=8,1&this.f||DC(this)};function Xt(n){var e=new Wh(n);try{e.c()}catch(t){throw e.d(),t}return e.d.bind(e)}function um(n,e,t){const i=q.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=q.useMemo(()=>{let s={};return(o,a)=>{let c=0,A=!1;for(const h in s){if(!YT(s[h],o[h])){A=!0;break}++c}A||(A=c!=a),s=o,!(!A&&e.getProperty.peek()!=null)&&(e.getProperty.value=h=>TI(o[h]))}},[e]);WT(n,i,r,t)}function PH(n,e){const t=n.length;for(const i in e)for(let r=0;r{let r={},s=0;const o=(c,A)=>{if(A===void 0)return;const h=r[c];if(h===void 0&&++s,h==null||!(A instanceof Un)){r[c]=A;return}if(Array.isArray(h)){h.push(A);return}r[c]=[h,A]};return{add:(c,A)=>{if(A!==void 0){if(i!=null){i(c,A,e,o);return}e(c)&&o(c,A)}},finish:()=>{t(r,s),s=0,r={}}}},[e,t,i]))}function YT(n,e){if(!Array.isArray(n))return n===e;if(!Array.isArray(e))return!1;const t=n.length;if(t!=e.length)return!1;for(let i=0;iGt(void 0),[]),r=q.useMemo(()=>({hasBatchedProperty:s=>e.includes(s),getProperty:i}),[e]);return um(n,r,t),i}const DI=q.createContext(void 0);function Mu(n,e){const t=q.useContext(DI);t!=null&&e(t);const{classes:i}=n;if(Array.isArray(i)){const r=i.length;for(let s=0;sPH(n,t))}function mu(n){const t={...q.useContext(DI)};for(const i in n){if(i==="children")continue;const r=n[i];r!=null&&(t[i]=r)}return be.jsx(DI.Provider,{value:t,children:n.children})}var Fi={},bC={},Nt={};Object.defineProperty(Nt,"__esModule",{value:!0});Nt.default=Nt.Wrap=Nt.Unit=Nt.PrintOptions=Nt.PositionType=Nt.Overflow=Nt.NodeType=Nt.MeasureMode=Nt.LogLevel=Nt.Justify=Nt.Gutter=Nt.FlexDirection=Nt.ExperimentalFeature=Nt.Errata=Nt.Edge=Nt.Display=Nt.Direction=Nt.Dimension=Nt.Align=void 0;let $s=function(n){return n[n.Auto=0]="Auto",n[n.FlexStart=1]="FlexStart",n[n.Center=2]="Center",n[n.FlexEnd=3]="FlexEnd",n[n.Stretch=4]="Stretch",n[n.Baseline=5]="Baseline",n[n.SpaceBetween=6]="SpaceBetween",n[n.SpaceAround=7]="SpaceAround",n}({});Nt.Align=$s;let bI=function(n){return n[n.Width=0]="Width",n[n.Height=1]="Height",n}({});Nt.Dimension=bI;let Mp=function(n){return n[n.Inherit=0]="Inherit",n[n.LTR=1]="LTR",n[n.RTL=2]="RTL",n}({});Nt.Direction=Mp;let NI=function(n){return n[n.Flex=0]="Flex",n[n.None=1]="None",n}({});Nt.Display=NI;let Cs=function(n){return n[n.Left=0]="Left",n[n.Top=1]="Top",n[n.Right=2]="Right",n[n.Bottom=3]="Bottom",n[n.Start=4]="Start",n[n.End=5]="End",n[n.Horizontal=6]="Horizontal",n[n.Vertical=7]="Vertical",n[n.All=8]="All",n}({});Nt.Edge=Cs;let CA=function(n){return n[n.None=0]="None",n[n.StretchFlexBasis=1]="StretchFlexBasis",n[n.All=2147483647]="All",n[n.Classic=2147483646]="Classic",n}({});Nt.Errata=CA;let Qp=function(n){return n[n.WebFlexBasis=0]="WebFlexBasis",n[n.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",n[n.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",n}({});Nt.ExperimentalFeature=Qp;let xA=function(n){return n[n.Column=0]="Column",n[n.ColumnReverse=1]="ColumnReverse",n[n.Row=2]="Row",n[n.RowReverse=3]="RowReverse",n}({});Nt.FlexDirection=xA;let Rp=function(n){return n[n.Column=0]="Column",n[n.Row=1]="Row",n[n.All=2]="All",n}({});Nt.Gutter=Rp;let pl=function(n){return n[n.FlexStart=0]="FlexStart",n[n.Center=1]="Center",n[n.FlexEnd=2]="FlexEnd",n[n.SpaceBetween=3]="SpaceBetween",n[n.SpaceAround=4]="SpaceAround",n[n.SpaceEvenly=5]="SpaceEvenly",n}({});Nt.Justify=pl;let gl=function(n){return n[n.Error=0]="Error",n[n.Warn=1]="Warn",n[n.Info=2]="Info",n[n.Debug=3]="Debug",n[n.Verbose=4]="Verbose",n[n.Fatal=5]="Fatal",n}({});Nt.LogLevel=gl;let Tp=function(n){return n[n.Undefined=0]="Undefined",n[n.Exactly=1]="Exactly",n[n.AtMost=2]="AtMost",n}({});Nt.MeasureMode=Tp;let LI=function(n){return n[n.Default=0]="Default",n[n.Text=1]="Text",n}({});Nt.NodeType=LI;let Dp=function(n){return n[n.Visible=0]="Visible",n[n.Hidden=1]="Hidden",n[n.Scroll=2]="Scroll",n}({});Nt.Overflow=Dp;let bp=function(n){return n[n.Static=0]="Static",n[n.Relative=1]="Relative",n[n.Absolute=2]="Absolute",n}({});Nt.PositionType=bp;let Np=function(n){return n[n.Layout=1]="Layout",n[n.Style=2]="Style",n[n.Children=4]="Children",n}({});Nt.PrintOptions=Np;let BA=function(n){return n[n.Undefined=0]="Undefined",n[n.Point=1]="Point",n[n.Percent=2]="Percent",n[n.Auto=3]="Auto",n}({});Nt.Unit=BA;let Lp=function(n){return n[n.NoWrap=0]="NoWrap",n[n.Wrap=1]="Wrap",n[n.WrapReverse=2]="WrapReverse",n}({});Nt.Wrap=Lp;const UH={ALIGN_AUTO:$s.Auto,ALIGN_FLEX_START:$s.FlexStart,ALIGN_CENTER:$s.Center,ALIGN_FLEX_END:$s.FlexEnd,ALIGN_STRETCH:$s.Stretch,ALIGN_BASELINE:$s.Baseline,ALIGN_SPACE_BETWEEN:$s.SpaceBetween,ALIGN_SPACE_AROUND:$s.SpaceAround,DIMENSION_WIDTH:bI.Width,DIMENSION_HEIGHT:bI.Height,DIRECTION_INHERIT:Mp.Inherit,DIRECTION_LTR:Mp.LTR,DIRECTION_RTL:Mp.RTL,DISPLAY_FLEX:NI.Flex,DISPLAY_NONE:NI.None,EDGE_LEFT:Cs.Left,EDGE_TOP:Cs.Top,EDGE_RIGHT:Cs.Right,EDGE_BOTTOM:Cs.Bottom,EDGE_START:Cs.Start,EDGE_END:Cs.End,EDGE_HORIZONTAL:Cs.Horizontal,EDGE_VERTICAL:Cs.Vertical,EDGE_ALL:Cs.All,ERRATA_NONE:CA.None,ERRATA_STRETCH_FLEX_BASIS:CA.StretchFlexBasis,ERRATA_ALL:CA.All,ERRATA_CLASSIC:CA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Qp.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:Qp.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:Qp.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:xA.Column,FLEX_DIRECTION_COLUMN_REVERSE:xA.ColumnReverse,FLEX_DIRECTION_ROW:xA.Row,FLEX_DIRECTION_ROW_REVERSE:xA.RowReverse,GUTTER_COLUMN:Rp.Column,GUTTER_ROW:Rp.Row,GUTTER_ALL:Rp.All,JUSTIFY_FLEX_START:pl.FlexStart,JUSTIFY_CENTER:pl.Center,JUSTIFY_FLEX_END:pl.FlexEnd,JUSTIFY_SPACE_BETWEEN:pl.SpaceBetween,JUSTIFY_SPACE_AROUND:pl.SpaceAround,JUSTIFY_SPACE_EVENLY:pl.SpaceEvenly,LOG_LEVEL_ERROR:gl.Error,LOG_LEVEL_WARN:gl.Warn,LOG_LEVEL_INFO:gl.Info,LOG_LEVEL_DEBUG:gl.Debug,LOG_LEVEL_VERBOSE:gl.Verbose,LOG_LEVEL_FATAL:gl.Fatal,MEASURE_MODE_UNDEFINED:Tp.Undefined,MEASURE_MODE_EXACTLY:Tp.Exactly,MEASURE_MODE_AT_MOST:Tp.AtMost,NODE_TYPE_DEFAULT:LI.Default,NODE_TYPE_TEXT:LI.Text,OVERFLOW_VISIBLE:Dp.Visible,OVERFLOW_HIDDEN:Dp.Hidden,OVERFLOW_SCROLL:Dp.Scroll,POSITION_TYPE_STATIC:bp.Static,POSITION_TYPE_RELATIVE:bp.Relative,POSITION_TYPE_ABSOLUTE:bp.Absolute,PRINT_OPTIONS_LAYOUT:Np.Layout,PRINT_OPTIONS_STYLE:Np.Style,PRINT_OPTIONS_CHILDREN:Np.Children,UNIT_UNDEFINED:BA.Undefined,UNIT_POINT:BA.Point,UNIT_PERCENT:BA.Percent,UNIT_AUTO:BA.Auto,WRAP_NO_WRAP:Lp.NoWrap,WRAP_WRAP:Lp.Wrap,WRAP_WRAP_REVERSE:Lp.WrapReverse};var FH=UH;Nt.default=FH;Object.defineProperty(bC,"__esModule",{value:!0});bC.default=GH;var qo=kH(Nt);function XT(n){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(XT=function(i){return i?t:e})(n)}function kH(n,e){if(!e&&n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=XT(e);if(t&&t.has(n))return t.get(n);var i={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if(s!=="default"&&Object.prototype.hasOwnProperty.call(n,s)){var o=r?Object.getOwnPropertyDescriptor(n,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=n[s]}return i.default=n,t&&t.set(n,i),i}function GH(n){function e(r,s,o){const a=r[s];r[s]=function(){for(var c=arguments.length,A=new Array(c),h=0;h1?a-1:0),A=1;As?n.Node.createWithConfig(s):n.Node.createDefault()),e(n.Node.prototype,"free",function(){n.Node.destroy(this)}),e(n.Node.prototype,"freeRecursive",function(){for(let r=0,s=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:qo.Direction.LTR;return r.call(this,s,o,a)}),{Config:n.Config,Node:n.Node,...qo.default}}var JT={exports:{}};(function(n,e){var t=(()=>{var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var s;s||(s=typeof r<"u"?r:{});var o,a;s.ready=new Promise(function(N,L){o=N,a=L});var c=Object.assign({},s),A="";typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),i&&(A=i),A.indexOf("blob:")!==0?A=A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):A="";var h=s.print||console.log.bind(console),f=s.printErr||console.warn.bind(console);Object.assign(s,c),c=null;var d;s.wasmBinary&&(d=s.wasmBinary),s.noExitRuntime,typeof WebAssembly!="object"&&ce("no native wasm support detected");var m,E=!1;function x(N,L,j){j=L+j;for(var oe="";!(L>=j);){var pe=N[L++];if(!pe)break;if(pe&128){var Se=N[L++]&63;if((pe&224)==192)oe+=String.fromCharCode((pe&31)<<6|Se);else{var Pe=N[L++]&63;pe=(pe&240)==224?(pe&15)<<12|Se<<6|Pe:(pe&7)<<18|Se<<12|Pe<<6|N[L++]&63,65536>pe?oe+=String.fromCharCode(pe):(pe-=65536,oe+=String.fromCharCode(55296|pe>>10,56320|pe&1023))}}else oe+=String.fromCharCode(pe)}return oe}var y,p,C,I,B,R,M,T,P;function J(){var N=m.buffer;y=N,s.HEAP8=p=new Int8Array(N),s.HEAP16=I=new Int16Array(N),s.HEAP32=R=new Int32Array(N),s.HEAPU8=C=new Uint8Array(N),s.HEAPU16=B=new Uint16Array(N),s.HEAPU32=M=new Uint32Array(N),s.HEAPF32=T=new Float32Array(N),s.HEAPF64=P=new Float64Array(N)}var w,b=[],K=[],fe=[];function Y(){var N=s.preRun.shift();b.unshift(N)}var ie=0,te=null;function ce(N){throw s.onAbort&&s.onAbort(N),N="Aborted("+N+")",f(N),E=!0,N=new WebAssembly.RuntimeError(N+". Build with -sASSERTIONS for more info."),a(N),N}function U(N){return N.startsWith("data:application/octet-stream;base64,")}var $;if($="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgBDaGlsZCBhbHJlYWR5IGhhcyBhIG93bmVyLCBpdCBtdXN0IGJlIHJlbW92ZWQgZmlyc3QuAENhbm5vdCBzZXQgbWVhc3VyZSBmdW5jdGlvbjogTm9kZXMgd2l0aCBtZWFzdXJlIGZ1bmN0aW9ucyBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4AQ2Fubm90IGFkZCBjaGlsZDogTm9kZXMgd2l0aCBtZWFzdXJlIGZ1bmN0aW9ucyBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4AKG51bGwpACVzCgABAAAAAwAAAAAAAAACAAAAAwAAAAEAAAACAAAAAAAAAAEAAAABAEHyIQsVwH8DAAAAAADAfwAAAABpaQB2AHZpAEGQIgs3exsAAHkbAAC5GwAAsxsAALkbAACzGwAAaWlpZmlmaQCsGwAAfBsAAHZpaQB9GwAAwBsAAGlpaQBB0CILCccAAADIAAAAyQBB5CILDscAAADKAAAAywAAAKwbAEGAIws+exsAALkbAACzGwAAuRsAALMbAADAGwAAuxsAAMAbAABpaWlpAAAAAKwbAACRGwAArBsAAJMbAACUGwAAwBsAQcgjCwnMAAAAzQAAAM4AQdwjCxbMAAAAzwAAAMsAAACXGwAArBsAAJcbAEGAJAuiA6wbAACXGwAAsxsAAK0bAAB2aWlpaQAAAKwbAACXGwAAuRsAAHZpaWYAAAAArBsAAJcbAACtGwAAdmlpaQAAAACsGwAAlxsAALMbAACtGwAAmBsAALMbAACtGwAAmBsAALMbAACYGwAAaQBkaWkAdmlpZAAAnBsAAJwbAACXGwAArBsAAJwbAACsGwAAnBsAAJsbAACsGwAAnBsAALMbAACsGwAAnBsAALMbAAC6GwAAdmlpaWQAAACsGwAAnBsAALobAACzGwAAnRsAAJobAACdGwAAsxsAAJobAACdGwAAuhsAAJ0bAAC6GwAAnRsAALMbAABkaWlpAAAAALkbAACcGwAAsxsAAGZpaWkAAAAArBsAAJwbAACcGwAAtBsAAKwbAACcGwAAnBsAALQbAACdGwAAnBsAAJwbAACcGwAAnBsAALQbAACtGwAAnBsAAKwbAACcGwAArRsAAKwbAACcGwAAeRsAAKwbAACcGwAAkRsAAK0bAACdGwAAAAAAAKwbAACcGwAAuhsAALobAACzGwAAdmlpZGRpAACZGwAAnRsAQbAnC0EZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBgSgLIQ4AAAAAAAAAABkACg0ZGRkADQAAAgAJDgAAAAkADgAADgBBuygLAQwAQccoCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQfUoCwEQAEGBKQsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEGvKQsBEgBBuykLHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBB8ikLDhoAAAAaGhoAAAAAAAAJAEGjKgsBFABBryoLFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABB3SoLARYAQekqCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQbQrCwHVAEHcKwsI//////////8AQaAsCwnwHwEAAAAAAAUAQbQsCwHQAEHMLAsK0QAAANIAAADUGwBB5CwLAQIAQfQsCwj//////////wBBuC0LAQUAQcQtCwHTAEHcLQsO0QAAANQAAADoGwAAAAQAQfQtCwEBAEGELgsF/////woAQcguCwHW",!U($)){var ee=$;$=s.locateFile?s.locateFile(ee,A):A+ee}function ue(){var N=$;try{if(N==$&&d)return new Uint8Array(d);if(U(N))try{var L=Vn(N.slice(37)),j=new Uint8Array(L.length);for(N=0;N=L?"_"+N:N}function O(N,L){return N=V(N),function(){return L.apply(this,arguments)}}var k=[{},{value:void 0},{value:null},{value:!0},{value:!1}],F=[];function ge(N){var L=Error,j=O(N,function(oe){this.name=N,this.message=oe,oe=Error(oe).stack,oe!==void 0&&(this.stack=this.toString()+` +`+oe.replace(/^Error(:[^\n]*)?\n/,""))});return j.prototype=Object.create(L.prototype),j.prototype.constructor=j,j.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},j}var ve=void 0;function se(N){throw new ve(N)}var xe=N=>(N||se("Cannot use deleted val. handle = "+N),k[N].value),H=N=>{switch(N){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var L=F.length?F.pop():k.length;return k[L]={fa:1,value:N},L}},me=void 0,ne=void 0;function ae(N){for(var L="";C[N];)L+=ne[C[N++]];return L}var he=[];function Re(){for(;he.length;){var N=he.pop();N.L.Z=!1,N.delete()}}var Z=void 0,S={};function D(N,L){for(L===void 0&&se("ptr should not be undefined");N.P;)L=N.aa(L),N=N.P;return L}var re={};function De(N){N=et(N);var L=ae(N);return It(N),L}function Te(N,L){var j=re[N];return j===void 0&&se(L+" has unknown type "+De(N)),j}function Me(){}var Xe=!1;function ze(N){--N.count.value,N.count.value===0&&(N.S?N.T.V(N.S):N.O.M.V(N.N))}function qe(N,L,j){return L===j?N:j.P===void 0?null:(N=qe(N,L,j.P),N===null?null:j.ma(N))}var at={};function yt(N,L){return L=D(N,L),S[L]}var Le=void 0;function Dt(N){throw new Le(N)}function Bt(N,L){return L.O&&L.N||Dt("makeClassHandle requires ptr and ptrType"),!!L.T!=!!L.S&&Dt("Both smartPtrType and smartPtr must be specified"),L.count={value:1},dt(Object.create(N,{L:{value:L}}))}function dt(N){return typeof FinalizationRegistry>"u"?(dt=L=>L,N):(Xe=new FinalizationRegistry(L=>{ze(L.L)}),dt=L=>{var j=L.L;return j.S&&Xe.register(L,{L:j},L),L},Me=L=>{Xe.unregister(L)},dt(N))}var ot={};function tt(N){for(;N.length;){var L=N.pop();N.pop()(L)}}function vt(N){return this.fromWireType(R[N>>2])}var Pt={},Kt={};function _t(N,L,j){function oe(Ne){Ne=j(Ne),Ne.length!==N.length&&Dt("Mismatched type converter count");for(var Ve=0;Ve{re.hasOwnProperty(Ne)?pe[Ve]=re[Ne]:(Se.push(Ne),Pt.hasOwnProperty(Ne)||(Pt[Ne]=[]),Pt[Ne].push(()=>{pe[Ve]=re[Ne],++Pe,Pe===Se.length&&oe(pe)}))}),Se.length===0&&oe(pe)}function zt(N){switch(N){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+N)}}function X(N,L,j={}){if(!("argPackAdvance"in L))throw new TypeError("registerType registeredInstance requires argPackAdvance");var oe=L.name;if(N||se('type "'+oe+'" must have a positive integer typeid pointer'),re.hasOwnProperty(N)){if(j.ta)return;se("Cannot register type '"+oe+"' twice")}re[N]=L,delete Kt[N],Pt.hasOwnProperty(N)&&(L=Pt[N],delete Pt[N],L.forEach(pe=>pe()))}function Ge(N){se(N.L.O.M.name+" instance already deleted")}function Ue(){}function it(N,L,j){if(N[L].R===void 0){var oe=N[L];N[L]=function(){return N[L].R.hasOwnProperty(arguments.length)||se("Function '"+j+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+N[L].R+")!"),N[L].R[arguments.length].apply(this,arguments)},N[L].R=[],N[L].R[oe.Y]=oe}}function At(N,L){s.hasOwnProperty(N)?(se("Cannot register public name '"+N+"' twice"),it(s,N,N),s.hasOwnProperty(void 0)&&se("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),s[N].R[void 0]=L):s[N]=L}function Vt(N,L,j,oe,pe,Se,Pe,Ne){this.name=N,this.constructor=L,this.W=j,this.V=oe,this.P=pe,this.oa=Se,this.aa=Pe,this.ma=Ne,this.ia=[]}function Wt(N,L,j){for(;L!==j;)L.aa||se("Expected null or instance of "+j.name+", got an instance of "+L.name),N=L.aa(N),L=L.P;return N}function Tn(N,L){return L===null?(this.da&&se("null is not a valid "+this.name),0):(L.L||se('Cannot pass "'+Ha(L)+'" as a '+this.name),L.L.N||se("Cannot pass deleted object as a pointer of type "+this.name),Wt(L.L.N,L.L.O.M,this.M))}function Ai(N,L){if(L===null){if(this.da&&se("null is not a valid "+this.name),this.ca){var j=this.ea();return N!==null&&N.push(this.V,j),j}return 0}if(L.L||se('Cannot pass "'+Ha(L)+'" as a '+this.name),L.L.N||se("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&L.L.O.ba&&se("Cannot convert argument of type "+(L.L.T?L.L.T.name:L.L.O.name)+" to parameter type "+this.name),j=Wt(L.L.N,L.L.O.M,this.M),this.ca)switch(L.L.S===void 0&&se("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:L.L.T===this?j=L.L.S:se("Cannot convert argument of type "+(L.L.T?L.L.T.name:L.L.O.name)+" to parameter type "+this.name);break;case 1:j=L.L.S;break;case 2:if(L.L.T===this)j=L.L.S;else{var oe=L.clone();j=this.wa(j,H(function(){oe.delete()})),N!==null&&N.push(this.V,j)}break;default:se("Unsupporting sharing policy")}return j}function en(N,L){return L===null?(this.da&&se("null is not a valid "+this.name),0):(L.L||se('Cannot pass "'+Ha(L)+'" as a '+this.name),L.L.N||se("Cannot pass deleted object as a pointer of type "+this.name),L.L.O.ba&&se("Cannot convert argument of type "+L.L.O.name+" to parameter type "+this.name),Wt(L.L.N,L.L.O.M,this.M))}function cn(N,L,j,oe){this.name=N,this.M=L,this.da=j,this.ba=oe,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,L.P!==void 0?this.toWireType=Ai:(this.toWireType=oe?Tn:en,this.U=null)}function Ki(N,L){s.hasOwnProperty(N)||Dt("Replacing nonexistant public symbol"),s[N]=L,s[N].Y=void 0}function Oa(N,L){var j=[];return function(){if(j.length=0,Object.assign(j,arguments),N.includes("j")){var oe=s["dynCall_"+N];oe=j&&j.length?oe.apply(null,[L].concat(j)):oe.call(null,L)}else oe=w.get(L).apply(null,j);return oe}}function hi(N,L){N=ae(N);var j=N.includes("j")?Oa(N,L):w.get(L);return typeof j!="function"&&se("unknown function pointer with signature "+N+": "+L),j}var Fs=void 0;function or(N,L){function j(Se){pe[Se]||re[Se]||(Kt[Se]?Kt[Se].forEach(j):(oe.push(Se),pe[Se]=!0))}var oe=[],pe={};throw L.forEach(j),new Fs(N+": "+oe.map(De).join([", "]))}function fs(N,L,j,oe,pe){var Se=L.length;2>Se&&se("argTypes array size mismatch! Must at least get return value and 'this' types!");var Pe=L[1]!==null&&j!==null,Ne=!1;for(j=1;j>2]);return j}function To(N){4>2])};case 3:return function(j){return this.fromWireType(P[j>>3])};default:throw new TypeError("Unknown float type: "+N)}}function Du(N,L,j){switch(L){case 0:return j?function(oe){return p[oe]}:function(oe){return C[oe]};case 1:return j?function(oe){return I[oe>>1]}:function(oe){return B[oe>>1]};case 2:return j?function(oe){return R[oe>>2]}:function(oe){return M[oe>>2]};default:throw new TypeError("Unknown integer type: "+N)}}function z(N,L){for(var j="",oe=0;!(oe>=L/2);++oe){var pe=I[N+2*oe>>1];if(pe==0)break;j+=String.fromCharCode(pe)}return j}function de(N,L,j){if(j===void 0&&(j=2147483647),2>j)return 0;j-=2;var oe=L;j=j<2*N.length?j/2:N.length;for(var pe=0;pe>1]=N.charCodeAt(pe),L+=2;return I[L>>1]=0,L-oe}function Ce(N){return 2*N.length}function _e(N,L){for(var j=0,oe="";!(j>=L/4);){var pe=R[N+4*j>>2];if(pe==0)break;++j,65536<=pe?(pe-=65536,oe+=String.fromCharCode(55296|pe>>10,56320|pe&1023)):oe+=String.fromCharCode(pe)}return oe}function Ie(N,L,j){if(j===void 0&&(j=2147483647),4>j)return 0;var oe=L;j=oe+j-4;for(var pe=0;pe=Se){var Pe=N.charCodeAt(++pe);Se=65536+((Se&1023)<<10)|Pe&1023}if(R[L>>2]=Se,L+=4,L+4>j)break}return R[L>>2]=0,L-oe}function Ze(N){for(var L=0,j=0;j=oe&&++j,L+=4}return L}var lt={};function gt(N){var L=lt[N];return L===void 0?ae(N):L}var pt=[];function St(N){var L=pt.length;return pt.push(N),L}function Ct(N,L){for(var j=Array(N),oe=0;oe>2],"parameter "+oe);return j}var xt=[],pn=[null,[],[]];ve=s.BindingError=ge("BindingError"),s.count_emval_handles=function(){for(var N=0,L=5;Ltn;++tn)zn[tn]=String.fromCharCode(tn);ne=zn,s.getInheritedInstanceCount=function(){return Object.keys(S).length},s.getLiveInheritedInstances=function(){var N=[],L;for(L in S)S.hasOwnProperty(L)&&N.push(S[L]);return N},s.flushPendingDeletes=Re,s.setDelayFunction=function(N){Z=N,he.length&&Z&&Z(Re)},Le=s.InternalError=ge("InternalError"),Ue.prototype.isAliasOf=function(N){if(!(this instanceof Ue&&N instanceof Ue))return!1;var L=this.L.O.M,j=this.L.N,oe=N.L.O.M;for(N=N.L.N;L.P;)j=L.aa(j),L=L.P;for(;oe.P;)N=oe.aa(N),oe=oe.P;return L===oe&&j===N},Ue.prototype.clone=function(){if(this.L.N||Ge(this),this.L.$)return this.L.count.value+=1,this;var N=dt,L=Object,j=L.create,oe=Object.getPrototypeOf(this),pe=this.L;return N=N(j.call(L,oe,{L:{value:{count:pe.count,Z:pe.Z,$:pe.$,N:pe.N,O:pe.O,S:pe.S,T:pe.T}}})),N.L.count.value+=1,N.L.Z=!1,N},Ue.prototype.delete=function(){this.L.N||Ge(this),this.L.Z&&!this.L.$&&se("Object already scheduled for deletion"),Me(this),ze(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},Ue.prototype.isDeleted=function(){return!this.L.N},Ue.prototype.deleteLater=function(){return this.L.N||Ge(this),this.L.Z&&!this.L.$&&se("Object already scheduled for deletion"),he.push(this),he.length===1&&Z&&Z(Re),this.L.Z=!0,this},cn.prototype.pa=function(N){return this.ja&&(N=this.ja(N)),N},cn.prototype.ga=function(N){this.V&&this.V(N)},cn.prototype.argPackAdvance=8,cn.prototype.readValueFromPointer=vt,cn.prototype.deleteObject=function(N){N!==null&&N.delete()},cn.prototype.fromWireType=function(N){function L(){return this.ca?Bt(this.M.W,{O:this.va,N:j,T:this,S:N}):Bt(this.M.W,{O:this,N})}var j=this.pa(N);if(!j)return this.ga(N),null;var oe=yt(this.M,j);if(oe!==void 0)return oe.L.count.value===0?(oe.L.N=j,oe.L.S=N,oe.clone()):(oe=oe.clone(),this.ga(N),oe);if(oe=this.M.oa(j),oe=at[oe],!oe)return L.call(this);oe=this.ba?oe.ka:oe.pointerType;var pe=qe(j,this.M,oe.M);return pe===null?L.call(this):this.ca?Bt(oe.M.W,{O:oe,N:pe,T:this,S:N}):Bt(oe.M.W,{O:oe,N:pe})},Fs=s.UnboundTypeError=ge("UnboundTypeError");var Vn=typeof atob=="function"?atob:function(N){var L="",j=0;N=N.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var oe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(j++)),pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(j++)),Se="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(j++)),Pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(j++));oe=oe<<2|pe>>4,pe=(pe&15)<<4|Se>>2;var Ne=(Se&3)<<6|Pe;L+=String.fromCharCode(oe),Se!==64&&(L+=String.fromCharCode(pe)),Pe!==64&&(L+=String.fromCharCode(Ne))}while(jPe.sa).concat(pe.map(Pe=>Pe.ya));_t([N],Se,Pe=>{var Ne={};return pe.forEach((Ve,Oe)=>{var $e=Pe[Oe],ht=Ve.qa,kt=Ve.ra,hn=Pe[Oe+pe.length],Ht=Ve.xa,bi=Ve.za;Ne[Ve.na]={read:lr=>$e.fromWireType(ht(kt,lr)),write:(lr,ks)=>{var cr=[];Ht(bi,lr,hn.toWireType(cr,ks)),tt(cr)}}}),[{name:L.name,fromWireType:function(Ve){var Oe={},$e;for($e in Ne)Oe[$e]=Ne[$e].read(Ve);return oe(Ve),Oe},toWireType:function(Ve,Oe){for(var $e in Ne)if(!($e in Oe))throw new TypeError('Missing field: "'+$e+'"');var ht=j();for($e in Ne)Ne[$e].write(ht,Oe[$e]);return Ve!==null&&Ve.push(oe,ht),ht},argPackAdvance:8,readValueFromPointer:vt,U:oe}]})},v:function(){},B:function(N,L,j,oe,pe){var Se=zt(j);L=ae(L),X(N,{name:L,fromWireType:function(Pe){return!!Pe},toWireType:function(Pe,Ne){return Ne?oe:pe},argPackAdvance:8,readValueFromPointer:function(Pe){if(j===1)var Ne=p;else if(j===2)Ne=I;else if(j===4)Ne=R;else throw new TypeError("Unknown boolean type size: "+L);return this.fromWireType(Ne[Pe>>Se])},U:null})},f:function(N,L,j,oe,pe,Se,Pe,Ne,Ve,Oe,$e,ht,kt){$e=ae($e),Se=hi(pe,Se),Ne&&(Ne=hi(Pe,Ne)),Oe&&(Oe=hi(Ve,Oe)),kt=hi(ht,kt);var hn=V($e);At(hn,function(){or("Cannot construct "+$e+" due to unbound types",[oe])}),_t([N,L,j],oe?[oe]:[],function(Ht){if(Ht=Ht[0],oe)var bi=Ht.M,lr=bi.W;else lr=Ue.prototype;Ht=O(hn,function(){if(Object.getPrototypeOf(this)!==ks)throw new ve("Use 'new' to construct "+$e);if(cr.X===void 0)throw new ve($e+" has no accessible constructor");var jh=cr.X[arguments.length];if(jh===void 0)throw new ve("Tried to invoke ctor of "+$e+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(cr.X).toString()+") parameters instead!");return jh.apply(this,arguments)});var ks=Object.create(lr,{constructor:{value:Ht}});Ht.prototype=ks;var cr=new Vt($e,Ht,ks,kt,bi,Se,Ne,Oe);bi=new cn($e,cr,!0,!1),lr=new cn($e+"*",cr,!1,!1);var Do=new cn($e+" const*",cr,!1,!0);return at[N]={pointerType:lr,ka:Do},Ki(hn,Ht),[bi,lr,Do]})},c:function(N,L,j,oe,pe,Se,Pe){var Ne=Ro(j,oe);L=ae(L),Se=hi(pe,Se),_t([],[N],function(Ve){function Oe(){or("Cannot call "+$e+" due to unbound types",Ne)}Ve=Ve[0];var $e=Ve.name+"."+L;L.startsWith("@@")&&(L=Symbol[L.substring(2)]);var ht=Ve.M.constructor;return ht[L]===void 0?(Oe.Y=j-1,ht[L]=Oe):(it(ht,L,$e),ht[L].R[j-1]=Oe),_t([],Ne,function(kt){return kt=fs($e,[kt[0],null].concat(kt.slice(1)),null,Se,Pe),ht[L].R===void 0?(kt.Y=j-1,ht[L]=kt):ht[L].R[j-1]=kt,[]}),[]})},o:function(N,L,j,oe,pe,Se){0{or("Cannot construct "+Ne.name+" due to unbound types",Pe)},_t([],Pe,function(Oe){return Oe.splice(1,0,null),Ne.M.X[L-1]=fs(Ve,Oe,null,pe,Se),[]}),[]})},a:function(N,L,j,oe,pe,Se,Pe,Ne){var Ve=Ro(j,oe);L=ae(L),Se=hi(pe,Se),_t([],[N],function(Oe){function $e(){or("Cannot call "+ht+" due to unbound types",Ve)}Oe=Oe[0];var ht=Oe.name+"."+L;L.startsWith("@@")&&(L=Symbol[L.substring(2)]),Ne&&Oe.M.ia.push(L);var kt=Oe.M.W,hn=kt[L];return hn===void 0||hn.R===void 0&&hn.className!==Oe.name&&hn.Y===j-2?($e.Y=j-2,$e.className=Oe.name,kt[L]=$e):(it(kt,L,ht),kt[L].R[j-2]=$e),_t([],Ve,function(Ht){return Ht=fs(ht,Ht,Oe,Se,Pe),kt[L].R===void 0?(Ht.Y=j-2,kt[L]=Ht):kt[L].R[j-2]=Ht,[]}),[]})},A:function(N,L){L=ae(L),X(N,{name:L,fromWireType:function(j){var oe=xe(j);return To(j),oe},toWireType:function(j,oe){return H(oe)},argPackAdvance:8,readValueFromPointer:vt,U:null})},m:function(N,L,j){j=zt(j),L=ae(L),X(N,{name:L,fromWireType:function(oe){return oe},toWireType:function(oe,pe){return pe},argPackAdvance:8,readValueFromPointer:Tu(L,j),U:null})},d:function(N,L,j,oe,pe){L=ae(L),pe===-1&&(pe=4294967295),pe=zt(j);var Se=Ne=>Ne;if(oe===0){var Pe=32-8*j;Se=Ne=>Ne<>>Pe}j=L.includes("unsigned")?function(Ne,Ve){return Ve>>>0}:function(Ne,Ve){return Ve},X(N,{name:L,fromWireType:Se,toWireType:j,argPackAdvance:8,readValueFromPointer:Du(L,pe,oe!==0),U:null})},b:function(N,L,j){function oe(Se){Se>>=2;var Pe=M;return new pe(y,Pe[Se+1],Pe[Se])}var pe=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][L];j=ae(j),X(N,{name:j,fromWireType:oe,argPackAdvance:8,readValueFromPointer:oe},{ta:!0})},n:function(N,L){L=ae(L);var j=L==="std::string";X(N,{name:L,fromWireType:function(oe){var pe=M[oe>>2],Se=oe+4;if(j)for(var Pe=Se,Ne=0;Ne<=pe;++Ne){var Ve=Se+Ne;if(Ne==pe||C[Ve]==0){if(Pe=Pe?x(C,Pe,Ve-Pe):"",Oe===void 0)var Oe=Pe;else Oe+="\0",Oe+=Pe;Pe=Ve+1}}else{for(Oe=Array(pe),Ne=0;Ne=Ve?Ne++:2047>=Ve?Ne+=2:55296<=Ve&&57343>=Ve?(Ne+=4,++Se):Ne+=3}Se=Ne}else Se=pe.length;if(Ne=yi(4+Se+1),Ve=Ne+4,M[Ne>>2]=Se,j&&Pe){if(Pe=Ve,Ve=Se+1,Se=C,0=$e){var ht=pe.charCodeAt(++Oe);$e=65536+(($e&1023)<<10)|ht&1023}if(127>=$e){if(Pe>=Ve)break;Se[Pe++]=$e}else{if(2047>=$e){if(Pe+1>=Ve)break;Se[Pe++]=192|$e>>6}else{if(65535>=$e){if(Pe+2>=Ve)break;Se[Pe++]=224|$e>>12}else{if(Pe+3>=Ve)break;Se[Pe++]=240|$e>>18,Se[Pe++]=128|$e>>12&63}Se[Pe++]=128|$e>>6&63}Se[Pe++]=128|$e&63}}Se[Pe]=0}}else if(Pe)for(Pe=0;PeB,Ne=1;else L===4&&(oe=_e,pe=Ie,Se=Ze,Pe=()=>M,Ne=2);X(N,{name:j,fromWireType:function(Ve){for(var Oe=M[Ve>>2],$e=Pe(),ht,kt=Ve+4,hn=0;hn<=Oe;++hn){var Ht=Ve+4+hn*L;(hn==Oe||$e[Ht>>Ne]==0)&&(kt=oe(kt,Ht-kt),ht===void 0?ht=kt:(ht+="\0",ht+=kt),kt=Ht+L)}return It(Ve),ht},toWireType:function(Ve,Oe){typeof Oe!="string"&&se("Cannot pass non-string to C++ string type "+j);var $e=Se(Oe),ht=yi(4+$e+L);return M[ht>>2]=$e>>Ne,pe(Oe,ht+4,$e+L),Ve!==null&&Ve.push(It,ht),ht},argPackAdvance:8,readValueFromPointer:vt,U:function(Ve){It(Ve)}})},k:function(N,L,j,oe,pe,Se){ot[N]={name:ae(L),ea:hi(j,oe),V:hi(pe,Se),ha:[]}},h:function(N,L,j,oe,pe,Se,Pe,Ne,Ve,Oe){ot[N].ha.push({na:ae(L),sa:j,qa:hi(oe,pe),ra:Se,ya:Pe,xa:hi(Ne,Ve),za:Oe})},C:function(N,L){L=ae(L),X(N,{ua:!0,name:L,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(N,L,j,oe,pe){N=pt[N],L=xe(L),j=gt(j);var Se=[];return M[oe>>2]=H(Se),N(L,j,Se,pe)},t:function(N,L,j,oe){N=pt[N],L=xe(L),j=gt(j),N(L,j,null,oe)},g:To,l:function(N,L){var j=Ct(N,L),oe=j[0];L=oe.name+"_$"+j.slice(1).map(function(Pe){return Pe.name}).join("_")+"$";var pe=xt[L];if(pe!==void 0)return pe;var Se=Array(N-1);return pe=St((Pe,Ne,Ve,Oe)=>{for(var $e=0,ht=0;ht>>=0,2147483648=j;j*=2){var oe=L*(1+.2/j);oe=Math.min(oe,N+100663296);var pe=Math;oe=Math.max(N,oe),pe=pe.min.call(pe,2147483648,oe+(65536-oe%65536)%65536);e:{try{m.grow(pe-y.byteLength+65535>>>16),J();var Se=1;break e}catch{}Se=void 0}if(Se)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(N,L,j,oe){for(var pe=0,Se=0;Se>2],Ne=M[L+4>>2];L+=8;for(var Ve=0;Ve>2]=pe,0}};(function(){function N(pe){s.asm=pe.exports,m=s.asm.D,J(),w=s.asm.I,K.unshift(s.asm.E),ie--,s.monitorRunDependencies&&s.monitorRunDependencies(ie),ie==0&&te&&(pe=te,te=null,pe())}function L(pe){N(pe.instance)}function j(pe){return ye().then(function(Se){return WebAssembly.instantiate(Se,oe)}).then(function(Se){return Se}).then(pe,function(Se){f("failed to asynchronously prepare wasm: "+Se),ce(Se)})}var oe={a:Et};if(ie++,s.monitorRunDependencies&&s.monitorRunDependencies(ie),s.instantiateWasm)try{return s.instantiateWasm(oe,N)}catch(pe){f("Module.instantiateWasm callback failed with error: "+pe),a(pe)}return function(){return d||typeof WebAssembly.instantiateStreaming!="function"||U($)||typeof fetch!="function"?j(L):fetch($,{credentials:"same-origin"}).then(function(pe){return WebAssembly.instantiateStreaming(pe,oe).then(L,function(Se){return f("wasm streaming compile failed: "+Se),f("falling back to ArrayBuffer instantiation"),j(L)})})}().catch(a),{}})(),s.___wasm_call_ctors=function(){return(s.___wasm_call_ctors=s.asm.E).apply(null,arguments)};var et=s.___getTypeName=function(){return(et=s.___getTypeName=s.asm.F).apply(null,arguments)};s.__embind_initialize_bindings=function(){return(s.__embind_initialize_bindings=s.asm.G).apply(null,arguments)};var yi=s._malloc=function(){return(yi=s._malloc=s.asm.H).apply(null,arguments)},It=s._free=function(){return(It=s._free=s.asm.J).apply(null,arguments)};s.dynCall_jiji=function(){return(s.dynCall_jiji=s.asm.K).apply(null,arguments)};var un;te=function N(){un||ar(),un||(te=N)};function ar(){function N(){if(!un&&(un=!0,s.calledRun=!0,!E)){if(ke(K),o(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;){var L=s.postRun.shift();fe.unshift(L)}ke(fe)}}if(!(0Xt(n),e);q.useEffect(()=>t,[t])}let bE;function zH(){if(bE==null){const n=bE=Gt(void 0);Fi.loadYoga().then(e=>n.value=e)}return bE}function jT(n,e,...t){const i=q.useMemo(()=>Gt(void 0),[]);return q.useEffect(()=>{if(!(e instanceof Un)){let r=!1;return n(e,...t).then(s=>r?void 0:i.value=s),()=>r=!0}return Xt(()=>{let r=!1;return n(e.value,...t).then(s=>r?void 0:i.value=s).catch(console.error),()=>r=!0})},[e,...t]),i}function ZT(n,e,t,i,r){const[s,o]=n.value,[a,c,A,h]=e.value,[f,d,m,E]=t.value,x=a+f,y=c+d,p=A+m,C=h+E,I=s-C-y,B=o-x-p,R=I/B;let M=1;return R>r?M=B*i:M=I*i/r,[(C-y)*.5*i,(p-x)*.5*i,M]}const Ew=new Je;function PI(n,e,t,i=0){const r=e*n.itemSize+i;n.addUpdateRange(r,3),Array.isArray(t)?n.set(t,r):(Ew.set(t),Ew.toArray(n.array,r)),n.needsUpdate=!0}function pg(n){return n instanceof Un?n.value:n}const $T=q.createContext(void 0);function Na(){const n=q.useContext($T);if(n==null)throw new Error("Can only be used inside a component.");return n}const VH=$T.Provider;function io(n){const e=new Map;return(t,i)=>{const r=t.length;for(const s in i){const o=i[s];if(o===void 0)return;let a=e.get(o);a==null&&e.set(o,a=Pn(()=>n()?pg(o):void 0));for(let c=0;c"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),eD=Gt((ou==null?void 0:ou.matches)??!1);ou==null||ou.addEventListener("change",n=>eD.value=n.matches);const tD=Gt("system"),nD=Pn(()=>{switch(tD.value){case"system":return eD.value;case"dark":return!0;case"light":return!1}});function WH(n){tD.value=n}const YH=io(()=>nD.value);function vo(n,e){Mu(e,t=>{const i=t.dark;i!=null&&YH(n,i)})}function XH({dark:n,light:e}){const t={};for(const i in n)t[i]=Pn(()=>nD.value?n[i]:e[i]);return t}const JH=Math.cos(45/180*Math.PI),NE=[new ln,new ln,new ln,new ln],yw=new G;class KH{constructor(e,t,i,r,s){We(this,"planes");We(this,"facePlane");We(this,"originalCenter");this.originalCenter=new G(t,i,0).applyMatrix4(e),this.facePlane=new ln(new G(0,0,1),0).applyMatrix4(e);const o=r/2,a=s/2,c=i+a,A=t+o,h=-i+a,f=-t+o;this.planes=[new ln(new G(0,-1,0),h).applyMatrix4(e),new ln(new G(-1,0,0),f).applyMatrix4(e),new ln(new G(0,1,0),c).applyMatrix4(e),new ln(new G(1,0,0),A).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const s=this.facePlane,o=e[r],a=s.normal.dot(o.normal);if(Math.abs(a)>.99)return this;const c=NE[r];if(Math.abs(a)<.01){c.copy(o);continue}c.normal.crossVectors(s.normal,o.normal).normalize().cross(s.normal).negate();const A=1-a*a,h=(s.constant-o.constant*a)/A,f=(o.constant-s.constant*a)/A;yw.copy(s.normal).multiplyScalar(h).addScaledVector(o.normal,f),c.constant=-yw.dot(c.normal)}let t=0;const i=this.planes[0].normal;for(;NE[t].normal.dot(i)>JH;)break;for(let r=0;r<4;r++){const s=this.planes[r],o=(r+t)%4;NE[o].distanceToPoint(this.originalCenter)Pn(()=>{const r=e.value,s=n==null?void 0:n.value;if(s==null||r==null)return!1;const[o,a]=t.value;for(let h=0;h<4;h++){const[f,d]=ZH[h];Iw[h].set(f*i.pixelSize*o,d*i.pixelSize*a,0).applyMatrix4(r)}const{planes:c}=s;let A;for(let h=0;h<4;h++){const f=c[h];A=!0;for(let d=0;d<4;d++){const m=Iw[d];f.distanceToPoint(m)>=0&&(A=!1)}if(A)return!0}return!1}),[e,n,i,t])}function $H(n,e,t,i,r,s){return q.useMemo(()=>Pn(()=>{const o=n.value;if(o==null||i.value===Fi.Overflow.Visible)return s==null?void 0:s.value;const[a,c]=e.value,[A,h,f,d]=t.value,m=new KH(o,(h-d)*r.pixelSize/2,(A-f)*r.pixelSize/2,(a-d-h)*r.pixelSize,(c-A-f)*r.pixelSize);return(s==null?void 0:s.value)!=null&&m.min(s.value),m}),[n,e,t,r,i,s])}const UI=new ln(new G(-1,0,0),Number.MAX_SAFE_INTEGER),gg=new Float32Array(16);for(let n=0;n<4;n++)UI.normal.toArray(gg,n*4),gg[n*4+3]=UI.constant;function Yh(n,e){const t=q.useMemo(()=>[new ln,new ln,new ln,new ln],[]);return Da(()=>{var s;const i=e.current;if(i==null)return;const r=(s=n==null?void 0:n.value)==null?void 0:s.planes;if(r==null){for(let o=0;o<4;o++)t[o].copy(UI);return}for(let o=0;o<4;o++)t[o].copy(r[o]).applyMatrix4(i.matrixWorld)}),t}class e4{constructor(e,t){We(this,"glyphInfoMap",new Map);We(this,"kerningMap",new Map);We(this,"questionmarkGlyphInfo");We(this,"pageWidth");We(this,"pageHeight");We(this,"distanceRange");this.page=t;const{scaleW:i,scaleH:r,lineHeight:s}=e.common;this.pageWidth=i,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const c of e.chars)c.uvX=c.x/i,c.uvY=c.y/r,c.uvWidth=c.width/i,c.uvHeight=c.height/r,c.width/=o,c.height/=o,c.xadvance/=o,c.xoffset/=o,c.yoffset-=s-o,c.yoffset/=o,this.glyphInfoMap.set(c.char,c);for(const{first:c,second:A,amount:h}of e.kernings)this.kerningMap.set(`${c}/${A}`,h/o);const a=this.glyphInfoMap.get("?");if(a==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=a}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` +`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,t){return this.kerningMap.get(`${e}/${t}`)??0}}function t4(n,e,t){e[t+0]=n.uvX,e[t+1]=n.uvY+n.uvHeight,e[t+2]=n.uvWidth,e[t+3]=-n.uvHeight}const vw=new ft,n4=new ft;class i4{constructor(e,t,i,r,s){We(this,"index");We(this,"hidden",!0);We(this,"glyphInfo");We(this,"x",0);We(this,"y",0);We(this,"fontSize",0);We(this,"pixelSize",0);this.group=e,this.baseMatrix=t,this.color=i,this.opacity=r,this.clippingRect=s}getX(e){return this.glyphInfo==null?this.x:this.x+e*this.glyphInfo.width*this.fontSize}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const t=this.index*16,{instanceClipping:i}=this.group;this.clippingRect==null?i.set(gg,t):this.clippingRect.toArray(i.array,t),i.addUpdateRange(t,16),i.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&PI(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:t}=this.group,i=this.index*4+3;t.array[i]=e,t.addUpdateRange(i,1),t.needsUpdate=!0}updateGlyphAndTransformation(e,t,i,r,s){this.glyphInfo===e&&this.x===t&&this.y===i&&this.fontSize===r&&this.pixelSize===s||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=t,this.y=i,this.fontSize=r,this.pixelSize=s,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:t}=this.group;t4(this.glyphInfo,t.array,e),t.addUpdateRange(e,4),t.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:t}=this.group;t.addUpdateRange(e,16),vw.makeTranslation(this.x*this.pixelSize,this.y*this.pixelSize,0).multiply(n4.makeScale(this.fontSize*this.glyphInfo.width*this.pixelSize,this.fontSize*this.glyphInfo.height*this.pixelSize,1)).premultiply(this.baseMatrix),vw.toArray(t.array,e),t.needsUpdate=!0}}function Cw(n,e,t,i){return((i==null?0:n.getKerning(i,t.id))+t.xoffset)*e}function LE(n,e,t){return(((t==null?void 0:t.yoffset)??0)+(e-1)/2)*n}function wh(n,e,t){return e.xadvance*n+t}function Zd(n,e){return n*e}function FI(n,{lineHeight:e,fontSize:t}){return Math.max(n,1)*t*e}const r4=[];class s4{constructor(e,t,i,r,s,o,a,c,A,h){We(this,"glyphLines",[]);We(this,"lastLayout");We(this,"unsubscribeInitialList",[]);We(this,"unsubscribeShowList",[]);We(this,"opacity",1);We(this,"color",16777215);this.group=e,this.getAlignmentProperties=t,this.getAppearanceProperties=i,this.layoutSignal=r,this.matrix=s,this.parentClippingRect=a,this.selectionRange=c,this.selectionBoxes=A,this.caretPosition=h,this.unsubscribeInitialList=[Xt(()=>{const f=i.value;if(f==null||(o==null?void 0:o.value)===!0||(f("opacity")??1)<.01){this.hide();return}this.show()}),Xt(()=>this.updateSelectionBoxes(this.lastLayout,c==null?void 0:c.value,DE(()=>{var f;return((f=t.value)==null?void 0:f.call(t,"verticalAlign"))??"top"}),DE(()=>{var f;return((f=t.value)==null?void 0:f.call(t,"horizontalAlign"))??"left"})))]}getCharIndex(e,t){const i=DE(()=>{var f,d;return((d=(f=this.getAlignmentProperties).value)==null?void 0:d.call(f,"verticalAlign"))??"top"}),r=this.lastLayout;if(r==null)return 0;t-=-$d(r,i);const s=Math.floor(t/-Zd(r.lineHeight,r.fontSize)),o=r.lines;if(s<0||o.length===0)return 0;if(s>=o.length){const f=o[o.length-1];return f.charIndexOffset+f.charLength+1}const a=o[s],c=r.font.getGlyphInfo(" ").xadvance*r.fontSize,A=this.glyphLines[s];let h=A.length;for(let f=0;f=f.charIndexOffset+f.charLength)continue;const d=this.glyphLines[h][Math.max(i-f.charIndexOffset,0)];return{lineIndex:h,x:this.getGlyphX(d,r?0:1,s)}}const c=e[a-1];if(c.charLength===0)return{lineIndex:a-1,x:xw(t,c.nonWhitespaceWidth,o)-t/2};const A=this.glyphLines[a-1][c.charLength-1];return{lineIndex:a-1,x:this.getGlyphX(A,1,s)}}getGlyphX(e,t,i){return typeof e=="number"?e+t*i:e.getX(t)}show(){this.unsubscribeShowList.length>0||(ll(this.glyphLines,e=>e.show()),this.unsubscribeShowList.push(Xt(()=>{const e=this.matrix.value;e!=null&&ll(this.glyphLines,t=>t.updateBaseMatrix(e))}),Xt(()=>{var t;const e=(t=this.parentClippingRect)==null?void 0:t.value;ll(this.glyphLines,i=>i.updateClippingRect(e))}),Xt(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.color=e("color")??16777215;ll(this.glyphLines,i=>i.updateColor(t))}),Xt(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.opacity=e("opacity")??1;ll(this.glyphLines,i=>i.updateOpacity(t))}),Xt(()=>{var x,y;const e=this.layoutSignal.value,t=this.getAlignmentProperties.value;if(e==null||t==null)return;const{text:i,font:r,lines:s,letterSpacing:o=0,fontSize:a=16,lineHeight:c=1.2,availableWidth:A}=e,h=t("verticalAlign")??"top",f=t("horizontalAlign")??"left";let d=$d(e,h)-e.availableHeight/2;const m=s.length,E=this.group.pixelSize;for(let p=0;pR+B){J=te.id;const $=P+Cw(r,a,te,J);typeof w[Y]=="number"?w[Y]=P:w.splice(Y,0,$),P+=T+wh(a,te,o);continue}let ce=w[Y];for(;Yp.hide(),m),this.glyphLines.length=m,this.lastLayout=e,this.updateSelectionBoxes(e,(y=this.selectionRange)==null?void 0:y.peek(),h,f)})))}hide(){const e=this.unsubscribeShowList.length;if(e!==0){for(let t=0;tt.hide())}}destroy(){this.hide(),this.glyphLines.length=0;const e=this.unsubscribeInitialList.length;for(let t=0;t{t.uniforms.fontPage={value:e.page},t.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},t.uniforms.distanceRange={value:e.distanceRange},t.uniforms.v_weight={value:.3},t.vertexShader=`attribute vec4 instanceUVOffset; + varying vec2 fontUv; + attribute vec4 instanceRGBA; + varying vec4 rgba; + attribute mat4 instanceClipping; + varying mat4 clipping; + varying vec3 localPosition; + `+t.vertexShader,t.vertexShader=t.vertexShader.replace("#include ",`#include + fontUv = instanceUVOffset.xy + uv * instanceUVOffset.zw; + rgba = instanceRGBA; + clipping = instanceClipping; + localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`),t.fragmentShader=`uniform sampler2D fontPage; + uniform vec2 pageSize; + uniform int distanceRange; + uniform float v_weight; + varying vec2 fontUv; + varying vec4 rgba; + varying mat4 clipping; + varying vec3 localPosition; + float median(float r, float g, float b) { + return max(min(r, g), min(max(r, g), b)); + } + float getDistance() { + vec3 msdf = texture(fontPage, fontUv).rgb; + return median(msdf.r, msdf.g, msdf.b); + } + `+t.fragmentShader,t.fragmentShader=t.fragmentShader.replace("#include ",` #include + vec4 plane; + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + for(int i = 0; i < 4; i++) { + plane = clipping[ i ]; + distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + + if ( clipOpacity == 0.0 ) discard; + } + vec2 dxdy = fwidth(fontUv) * pageSize; + float dist = getDistance() + min(float(v_weight), 0.5 - 1.0 / float(distanceRange)) - 0.5; + float multiplier = clamp(dist * float(distanceRange) / length(dxdy) + 0.5, 0.0, 1.0); + if(multiplier <= 0.5) { + discard; + } + diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); + diffuseColor *= rgba; + `)}}}const kI=Symbol("camera-distance-key"),GI=Symbol("order-info-key");function l4(n,e){if(n.groupOrder!==e.groupOrder)return n.groupOrder-e.groupOrder;if(n.renderOrder!==e.renderOrder)return n.renderOrder-e.renderOrder;const t=n.object[kI],i=e.object[kI];return t==null||i==null?n.z!==e.z?e.z-n.z:n.id-e.id:t===i?u4(n.object[GI],e.object[GI]):i.current-t.current}function c4(n){n.setTransparentSort(l4)}const ci={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function u4(n,e){let t=n.majorIndex-e.majorIndex;return t!=0||(t=n.elementType-e.elementType,t!=0)?t:n.minorIndex-e.minorIndex}const rD=q.createContext(void 0),A4=rD.Provider;function Di(n,e,t,i){const r=i??q.useContext(rD),s=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return q.useMemo(()=>{let a,c;return r==null?(a=0,c=0):n>r.elementType?(a=r.majorIndex,c=0):n!=r.elementType||!h4(t,r.instancedGroupDependencies)?(a=r.majorIndex+1,c=0):(a=r.majorIndex,c=r.minorIndex+1),s>0&&(a+=s,c=0),c+=o,{instancedGroupDependencies:t,elementType:n,majorIndex:a,minorIndex:c}},[s,o,r,n,t])}function h4(n,e){if(n===e)return!0;if(n==null||e==null)return!1;let t=0;for(const i in n){if(n[i]!=e[i])return!1;++t}return t===Object.keys(e).length}function Jl(n,e,t){return n[kI]=e,n[GI]=t,n}class f4 extends kr{constructor(t,i,r,s){super();We(this,"instanceMatrix");We(this,"instanceUV");We(this,"instanceRGBA");We(this,"instanceClipping");We(this,"glyphs",[]);We(this,"requestedGlyphs",[]);We(this,"holeIndicies",[]);We(this,"mesh");We(this,"material");We(this,"timeTillDecimate");this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.material=new a4(t)}requestActivate(t){const i=this.holeIndicies.shift();if(i!=null){this.glyphs[i]=t,t.activate(i);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(t);return}const r=this.mesh.count;this.glyphs[r]=t,t.activate(r),this.mesh.count+=1}delete(t){if(t.index==null){const s=this.requestedGlyphs.indexOf(t);if(s===-1)return;this.requestedGlyphs.splice(s,1);return}const i=this.requestedGlyphs.shift();if(i!=null){i.activate(t.index),this.glyphs[t.index]=i,t.index=void 0;return}if(t.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,t.index=void 0;return}const r=t.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(t.index),this.glyphs[t.index]=void 0,t.index=void 0}onFrame(t){var a;const i=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(i===0){this.visible=!1;return}this.visible=!0;const r=((a=this.instanceMatrix)==null?void 0:a.count)??0;if(i0)&&i<=r)return;this.timeTillDecimate=void 0,this.resize(i);const s=this.mesh.count,o=this.requestedGlyphs.length;for(let c=0;cd-m);const A=this.holeIndicies.length;let h=0,f=0;for(;f0)for(let d=this.holeIndicies[0];d{for(const o of r)o(s);PE.set(n,s)}).catch(console.error)}async function g4(n,e){const t=await(await fetch(n)).json();if(t.pages.length!==1)throw new Error("only supporting exactly 1 page");const i=await d4.loadAsync(new URL(t.pages[0],n).href);return i.anisotropy=e.capabilities.getMaxAnisotropy(),i.flipY=!1,new e4(t,i)}const m4=({text:n,fontSize:e,font:t,letterSpacing:i},r,s,o)=>{s=NC(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let c=0,A=0;for(;sr)break;o.nonWhitespaceCharLength=s-a+1,o.nonWhitespaceWidth=c,o.whitespacesBetween=A}o.charLength=s-a},E4=({text:n,fontSize:e,font:t,letterSpacing:i},r,s,o)=>{s=NC(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let c=0,A=0;for(;s{s=NC(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let c=0,A=0;for(;s0&&r!=null&&c>r)break;const f=n[s+1];(f===" "||f===` +`||f==null)&&(o.charLength=s-a+1,o.nonWhitespaceCharLength=o.charLength,o.nonWhitespaceWidth=c,o.whitespacesBetween=A)}};function NC(n,e){const t=n.length;for(;n[e]===" "&&enew Map,[]),r=q.useCallback((s,o)=>{let a=i.get(o);a==null&&i.set(o,a=new Map);let c=a==null?void 0:a.get(s);return c==null&&(a.set(s,c=new f4(o,n,e,{majorIndex:s,elementType:ci.Text,minorIndex:0})),t.add(c)),c},[n,e,t]);return Da((s,o)=>{for(const a of i.values())for(const c of a.values())c.onFrame(o)}),r}const B4=q.createContext(null),_4={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},OI={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},S4=["horizontalAlign","verticalAlign"],w4=["color","opacity"],M4=["fontSize","letterSpacing","lineHeight","wordBreak"];function aD(n,e,t,i,r,s,o,a,c,A,h){const f=Di(ci.Text,void 0,void 0,o),d=q.useContext(oD);if(d==null)throw new Error("Can only be used inside a component.");const m=R4(n),E=q.useMemo(()=>Gt(e),[]);E.value=e;const x=q.useRef(void 0),y=b4(n,m,E,x),p=us(n,S4),C=us(n,w4),I=q.useMemo(()=>Gt(void 0),[]);return q.useEffect(()=>i.addLayoutChangeListener(()=>{const B=x.current;if(B==null)return;const{size:R,paddingInset:M,borderInset:T}=i,[P,J]=R.value,[w,b,K,fe]=M.value,[Y,ie,te,ce]=T.value,U=P-b-fe-ie-ce,$=J-w-K-Y-te;I.value=v4(B,U,$)}),[i]),gi(()=>{const B=m.value;if(B==null)return;const R=new s4(d(f.majorIndex,B),p,C,I,t,r,s,a,c,A);return h!=null&&(h.current=R),()=>R.destroy()},[d,t,i,r,s,f.majorIndex,c,h]),y}const Q4=["fontFamily","fontWeight"];function R4(n){const e=q.useMemo(()=>Gt(void 0),[]),t=q.useContext(B4)??_4,i=us(n,Q4),r=RC(({gl:s})=>s);return gi(()=>{const s=i.value;if(s==null)return;let o=s("fontWeight")??"normal";typeof o=="string"&&(o=OI[o]);let a=s("fontFamily");a==null&&(a=Object.keys(t)[0]);const c=T4(t[a],o);let A=!1;return p4(c,r,h=>A?void 0:e.value=h),()=>A=!0},[t,r]),e}function T4(n,e){let t=1/0,i;for(const r in n){const s=Math.abs(e-D4(r));if(s===0)return n[r];sPn(()=>{const o=e.value,a=r.value;if(o==null||a==null)return;const c=t.value,A={font:o,fontSize:a("fontSize")??16,letterSpacing:a("letterSpacing")??0,lineHeight:a("lineHeight")??1.2,text:Array.isArray(c)?c.map(h=>pg(h)).join(""):pg(c),wordBreak:a("wordBreak")??"break-word"};return i.current=A,(h,f)=>I4(A,f===Fi.MeasureMode.Undefined?void 0:h)}),[e,r,i,t])}const Lc={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},lD=Object.keys(Lc),N4=lD.length,cD=q.createContext(void 0),L4=cD.Provider;function Co(n,e,t){const i=t??q.useContext(cD);if(i==null)throw new Error("Can only be used inside a component.");const r=q.useMemo(()=>({sm:io(()=>i.value[0]>Lc.sm),md:io(()=>i.value[0]>Lc.md),lg:io(()=>i.value[0]>Lc.lg),xl:io(()=>i.value[0]>Lc.xl),"2xl":io(()=>i.value[0]>Lc["2xl"])}),[i]);Mu(e,s=>{for(let o=0;oe.createChild(n),[n,e]);return q.useEffect(()=>(e.addChild(t),()=>{e.removeChild(t),t.destroy()}),[e,t]),t}function U4(){let n=q.useRef(void 0);return Da(()=>{if(n.current==null)return;const e=n.current;n.current=void 0,e.calculateLayout()}),q.useCallback(e=>{n.current!=null||e.yogaNode==null||(n.current=e)},[])}const LC=uD.Provider,Bs=new ln,np=new G,F4=[new ln().setFromNormalAndCoplanarPoint(new G(1,0,0),new G(-.5,0,0)),new ln().setFromNormalAndCoplanarPoint(new G(-1,0,0),new G(.5,0,0)),new ln().setFromNormalAndCoplanarPoint(new G(0,1,0),new G(0,-.5,0)),new ln().setFromNormalAndCoplanarPoint(new G(0,-1,0),new G(0,.5,0))],cl=[0,0,0,0];function AD(n){return(e,t)=>{const i=n.matrixWorld;if(Bs.constant=0,Bs.normal.set(0,0,1),Bs.applyMatrix4(i),Bs.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(Bs,np)==null)return;const r=Bs.normal.clone();for(let s=0;s<4;s++){const o=F4[s];if(Bs.copy(o).applyMatrix4(i),(cl[s]=Bs.distanceToPoint(np))<0)return}t.push({distance:np.distanceTo(e.ray.origin),object:n,point:np.clone(),uv:new Be(cl[0]/(cl[0]+cl[1]),cl[3]/(cl[2]+cl[3])),normal:r})}}function Qu(n,e,t,i,r){return(s,o)=>{var f;const a=t.current;if(a==null)return;const c=o.length;e.call(n,s,o);const A=(f=i==null?void 0:i.value)==null?void 0:f.planes,h=a.matrixWorld;e:for(let d=o.length-1;d>=c;d--){const m=o[d];if(m.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,A!=null){for(let E=0;E<4;E++)if(Bs.copy(A[E]).applyMatrix4(h),Bs.distanceToPoint(m.point)<0){o.splice(d,1);continue e}}}}}function hD(n,e){for(;e>=n.length;){let t=0,i=0;if(n.length>0){const r=n[n.length-1];t+=r.offset+r.elements.length,i=Math.min(0,r.missingSpace),r.missingSpace-=i}n.push({add:[],missingSpace:i,offset:t,elements:[]})}}function k4(n,e,t){hD(n,0);const i=n[n.length-1];i.missingSpace+=e-t}function G4(n,e,t,i){hD(n,e);const r=n[e];return r.missingSpace+=1,r.missingSpace<=0?(i(t,r,r.elements.length),r.elements.push(t),!1):(r.add.push(t),!0)}function O4(n,e,t,i,r,s,o,a){if(e>=n.length)throw new Error(`no bucket at index ${e}`);const c=n[e];c.missingSpace-=1;const A=c.add.indexOf(t);if(A!=-1)return c.add.splice(A,1),!1;if(i==null||i>=c.elements.length)throw new Error(`no element at index ${i}`);if(c.add.length>0){const m=c.add.shift();return c.elements[i]=m,r(m,c,i),!1}const h=c.offset,f=c.elements.length-1;if(f!=i){const m=h+f,E=h+i;a(E,m,m+1);const x=c.elements[f];c.elements[i]=x,o(x,i)}if(s(h+f),c.elements.length-=1,e0;){const m=n[e-1];m.missingSpace+=d.missingSpace,d=n[--e]}return n.length=e+1,!1}function H4(n,e,t){let i=n.length,r=-1;for(let o=0;o0&&(r=o);const c=o===i-1;if(!c&&a.missingSpace===0)continue;const A=a.missingSpace<0;for(let h=o-1;h>=0;h--){const f=n[h];if(f.missingSpace===0)continue;const d=f.missingSpace<0;if(d&&(c||A)){_w(n,t,h,o,Math.abs(f.missingSpace));continue}if(!A&&!d)continue;const m=Math.min(Math.abs(f.missingSpace),Math.abs(a.missingSpace));A?z4(n,t,h,o,m):_w(n,t,h,o,m)}}const s=n[r];for(let o=r+1;oh>0)&&(i==null||i>0),[a,c]=e.value;return!(a>0&&c>0&&(r==null||r>0)&&s!=null)&&!o?!1:t==null?!0:!t.value}function _A(n,e,t,i,r){n[e]=V4(n[e],t,PC(Math.ceil((i??0)/r*100),0,49))}const ip=new Je,pD=new Je(-1,-1,-1),Sw={backgroundColor:(n,e)=>(Array.isArray(e)?ip.setRGB(...e):ip.set(e??pD)).toArray(n,4),borderBottomLeftRadius:(n,e,t)=>_A(n,7,0,e,t.value[1]),borderBottomRightRadius:(n,e,t)=>_A(n,7,1,e,t.value[1]),borderTopRightRadius:(n,e,t)=>_A(n,7,2,e,t.value[1]),borderTopLeftRadius:(n,e,t)=>_A(n,7,3,e,t.value[1]),borderColor:(n,e)=>(Array.isArray(e)?ip.setRGB(...e):ip.set(e??16777215)).toArray(n,8),borderBend:(n,e)=>n[11]=e??0,borderOpacity:(n,e)=>n[12]=e??1,backgroundOpacity:(n,e)=>n[15]=e??-1},gD=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],W4=["borderOpacity","backgroundColor","backgroundOpacity"];class Y4{constructor(e,t,i){We(this,"data",new Float32Array(16));We(this,"unsubscribeList",[]);We(this,"unsubscribe");We(this,"visible",!1);We(this,"materials",[]);We(this,"active",Gt(!1));We(this,"getProperty",Gt(void 0));this.size=e,this.size=e,this.unsubscribe=Xt(()=>{const r=this.getProperty.value,s=r!=null&&dD(t,e,i,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=s,!s){this.deactivate();return}this.activate(e,t)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return W4.includes(e)}hasImmediateProperty(e){return e in Sw}setProperty(e,t){const i=Sw[e];i(this.data,t,this.size)}activate(e,t){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(gD),this.unsubscribeList.push(Xt(()=>this.data.set(e.value,13)),Xt(()=>this.data.set(t.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let t=0;t{i.call(t,r,s),e.type==="normal"&&(r.uniforms.data={value:e.data}),K4(r,e.type==="instanced")},t}class ED extends Hg{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),ID(e,this.info.type==="instanced")}}class yD extends Og{constructor(e){super({depthPacking:qv}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),ID(e,this.info.type==="instanced")}}const X4=new yD({type:"instanced"}),J4=new ED({type:"instanced"});function ID(n,e){vD(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",`#include + ${CD(e,void 0)} + `)}function vD(n,e){n.vertexShader=n.vertexShader.replace("#include ",` #include + out vec4 borderRadius; + ${e?"":"uniform highp mat4 data;"}`),n.vertexShader=n.vertexShader.replace("#include ",` #include + highp int packedBorderRadius = int(data[1].w); + borderRadius = vec4( + packedBorderRadius / 125000 % 50, + packedBorderRadius / 2500 % 50, + packedBorderRadius / 50 % 50, + packedBorderRadius % 50 + ) * vec4(0.5 / 50.0);`),e&&(n.vertexShader=n.vertexShader.replace("#include ",` #include + attribute highp mat4 aData; + attribute mat4 aClipping; + out mat4 data; + out mat4 clipping; + out vec3 localPosition;`),n.vertexShader=n.vertexShader.replace("#include ",` #include + data = aData; + clipping = aClipping; + localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`)),n.fragmentShader=`${e?"in":"uniform"} highp mat4 data; + in vec4 borderRadius; + ${e?` + in vec3 localPosition; + in mat4 clipping; + `:""} + + float min4 (vec4 v) { + return min(min(min(v.x,v.y),v.z),v.w); + } + float max4 (vec4 v) { + return max(max(max(v.x,v.y),v.z),v.w); + } + vec2 radiusDistance(float radius, vec2 outside, vec2 border, vec2 borderSize) { + vec2 outerRadiusXX = vec2(radius, radius); + vec2 innerRadiusXX = outerRadiusXX - borderSize; + vec2 radiusWeightUnnormalized = abs(innerRadiusXX - border); + vec2 radiusWeight = radiusWeightUnnormalized / vec2(radiusWeightUnnormalized.x + radiusWeightUnnormalized.y); + return vec2( + radius - distance(outside, outerRadiusXX), + dot(radiusWeight, innerRadiusXX) - distance(border, innerRadiusXX) + ); + } + `+n.fragmentShader,n.fragmentShader=n.fragmentShader.replace("#include ",` ${e?` + vec4 plane; + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + + for(int i = 0; i < 4; i++) { + plane = clipping[ i ]; + distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + + if ( clipOpacity < 0.01 ) discard; + } + `:""} + vec4 absoluteBorderSize = data[0]; + vec3 backgroundColor = data[1].xyz; + vec3 borderColor = data[2].xyz; + float borderBend = data[2].w; + float borderOpacity = data[3].x; + float width = data[3].y; + float height = data[3].z; + float backgroundOpacity = data[3].w; + float ratio = width / height; + vec4 relative = vec4(height, height, height, height); + vec4 borderSize = absoluteBorderSize / relative; + vec4 v_outsideDistance = vec4(1.0 - vUv.y, (1.0 - vUv.x) * ratio, vUv.y, vUv.x * ratio); + vec4 v_borderDistance = v_outsideDistance - borderSize; + + vec2 distance = vec2(min4(v_outsideDistance), min4(v_borderDistance)); + vec4 negateBorderDistance = vec4(1.0) - v_borderDistance; + float maxWeight = max4(negateBorderDistance); + vec4 borderWeight = step(maxWeight, negateBorderDistance); + + vec4 insideBorder; + + if(all(lessThan(v_outsideDistance.xw, borderRadius.xx))) { + distance = radiusDistance(borderRadius.x, v_outsideDistance.xw, v_borderDistance.xw, borderSize.xw); + + float tmp = borderRadius.x - borderSize.w; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.x - borderSize.x; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.yz = vec2(0.0); + insideBorder.xw = max(vec2(0.0), lineIntersection - v_borderDistance.xw); + + } else if(all(lessThan(v_outsideDistance.xy, borderRadius.yy))) { + distance = radiusDistance(borderRadius.y, v_outsideDistance.xy, v_borderDistance.xy, borderSize.xy); + + float tmp = borderRadius.y - borderSize.y; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.y - borderSize.x; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.zw = vec2(0.0); + insideBorder.xy = max(vec2(0.0), lineIntersection - v_borderDistance.xy); + + } else if(all(lessThan(v_outsideDistance.zy, borderRadius.zz))) { + distance = radiusDistance(borderRadius.z, v_outsideDistance.zy, v_borderDistance.zy, borderSize.zy); + + float tmp = borderRadius.z - borderSize.y; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.z - borderSize.z; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.xw = vec2(0.0); + insideBorder.zy =max(vec2(0.0), lineIntersection - v_borderDistance.zy); + + } else if(all(lessThan(v_outsideDistance.zw, borderRadius.ww))) { + distance = radiusDistance(borderRadius.w, v_outsideDistance.zw, v_borderDistance.zw, borderSize.zw); + + float tmp = borderRadius.w - borderSize.w; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.w - borderSize.z; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.xy = vec2(0.0); + insideBorder.zw = max(vec2(0.0), lineIntersection - v_borderDistance.zw); + + } + + if(insideBorder.x + insideBorder.y + insideBorder.z + insideBorder.w > 0.0) { + borderWeight = normalize(insideBorder); + } + + #include `)}function CD(n,e){return`float ddx = fwidth(distance.x); + float outer = smoothstep(-ddx, ddx, distance.x); + + float ddy = fwidth(distance.y); + float inner = smoothstep(-ddy, ddy, distance.y); + + float transition = 1.0 - step(0.1, outer - inner) * (1.0 - inner); + + if(backgroundColor.r < 0.0 && backgroundOpacity >= 0.0) { + backgroundColor = vec3(1.0); + } + if(backgroundOpacity < 0.0) { + backgroundOpacity = backgroundColor.r >= 0.0 ? 1.0 : 0.0; + } + + if(backgroundOpacity < 0.0) { + backgroundOpacity = 0.0; + } + + float outOpacity = ${n?"clipOpacity * ":""} outer * mix(borderOpacity, ${e==null?"":`${e} *`} backgroundOpacity, transition); + + if(outOpacity < 0.01) { + discard; + }`}function K4(n,e){vD(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",` #include + ${CD(e,"diffuseColor.a")} + diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); + diffuseColor.a = outOpacity; + `),n.fragmentShader=n.fragmentShader.replace("#include ",` #include + vec3 b = normalize(vBitangent); + vec3 t = normalize(vTangent); + mat4 directions = mat4(vec4(b, 1.0), vec4(t, 1.0), vec4(-b, 1.0), vec4(-t, 1.0)); + float currentBorderSize = distance.x - distance.y; + float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; + vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; + normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); + `)}class q4 extends nn{constructor(t,i,r){const s=fD();super(s);We(this,"count",0);We(this,"isInstancedMesh",!0);We(this,"instanceColor",null);We(this,"morphTexture",null);We(this,"boundingBox",new $n);We(this,"boundingSphere",new li);this.instanceMatrix=t,this.frustumCulled=!1,s.attributes.aData=i,s.attributes.aClipping=r,this.customDepthMaterial=X4,this.customDistanceMaterial=J4}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class j4 extends kr{constructor(t,i,r,s,o,a){super();We(this,"mesh");We(this,"instanceMatrix");We(this,"instanceData");We(this,"instanceClipping");We(this,"buckets",[]);We(this,"elementCount",0);We(this,"bufferElementSize",0);We(this,"timeToNextUpdate");We(this,"activateElement",(t,i,r)=>{const s=i.offset+r;this.instanceData.set(gD,16*s),this.instanceData.addUpdateRange(16*s,16),this.instanceData.needsUpdate=!0,t.activate(i,r)});We(this,"setElementIndex",(t,i)=>{t.setIndexInBucket(i)});We(this,"bufferCopyWithin",(t,i,r)=>{UE(this.instanceMatrix,t,i,r),UE(this.instanceData,t,i,r),UE(this.instanceClipping,t,i,r)});We(this,"clearBufferAt",t=>{const i=t*16;this.instanceMatrix.array.fill(0,i,i+16),this.instanceMatrix.addUpdateRange(i,16),this.instanceMatrix.needsUpdate=!0});this.material=t,this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.meshReceiveShadow=o,this.meshCastShadow=a}updateCount(){const t=this.buckets[this.buckets.length-1],i=t.offset+t.elements.length;this.mesh!=null&&(this.mesh.count=i),this.visible=i>0}insert(t,i){if(this.elementCount+=1,!G4(this.buckets,t,i,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(t,i,r){if(this.elementCount-=1,!O4(this.buckets,t,r,i,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(t){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=t,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(t){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,t)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),H4(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const t=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),k4(this.buckets,t,this.bufferElementSize);const i=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&i.set(this.instanceMatrix.array.subarray(0,i.length)),this.instanceMatrix=new Ir(i,16,!1),this.instanceMatrix.setUsage(oa);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new Ir(r,16,!1),this.instanceData.setUsage(oa);const s=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&s.set(this.instanceClipping.array.subarray(0,s.length)),this.instanceClipping=new Ir(s,16,!1),this.instanceClipping.setUsage(oa),this.mesh=new q4(this.instanceMatrix,this.instanceData,this.instanceClipping),Jl(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function UE(n,e,t,i){const r=n.itemSize,s=t*r,o=i*r,a=e*r;n.array.copyWithin(a,s,o);const c=o-s;n.addUpdateRange(s,c),n.addUpdateRange(a,c),n.needsUpdate=!0}const ww={backgroundColor:(n,e,t)=>PI(n.instanceData,e,t??pD,4),borderBottomLeftRadius:(n,e,t,{value:i})=>sp(n.instanceData,e,7,0,t,i[1]),borderBottomRightRadius:(n,e,t,{value:i})=>sp(n.instanceData,e,7,1,t,i[1]),borderTopRightRadius:(n,e,t,{value:i})=>sp(n.instanceData,e,7,2,t,i[1]),borderTopLeftRadius:(n,e,t,{value:i})=>sp(n.instanceData,e,7,3,t,i[1]),borderColor:(n,e,t)=>PI(n.instanceData,e,t??16777215,8),borderBend:(n,e,t)=>FE(n.instanceData,e,11,t??0),borderOpacity:(n,e,t)=>FE(n.instanceData,e,12,t??1),backgroundOpacity:(n,e,t)=>FE(n.instanceData,e,15,t??-1)},Z4=["borderOpacity","backgroundColor","backgroundOpacity"],rp=new ft,$4=new ft;class FC{constructor(e,t,i,r,s,o,a,c){We(this,"indexInBucket");We(this,"bucket");We(this,"unsubscribeList",[]);We(this,"unsubscribeVisible");We(this,"destroyed",!1);We(this,"insertedIntoGroup",!1);We(this,"active",Gt(!1));We(this,"getProperty",Gt(void 0));this.group=e,this.matrix=t,this.size=i,this.offset=r,this.borderInset=s,this.clippingRect=o,this.minorIndex=c,this.unsubscribeVisible=Xt(()=>{const A=this.getProperty.value;if(A!=null&&dD(s,i,a,A("borderOpacity"),A("backgroundOpacity"),A("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return Z4.includes(e)}hasImmediateProperty(e){return e in ww}setProperty(e,t){const i=this.getIndexInBuffer();i!=null&&ww[e](this.group,i,t,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,t){this.bucket=e,this.indexInBucket=t,this.active.value=!0,this.unsubscribeList.push(Xt(()=>{const i=this.matrix.value;if(i==null)return;const{instanceMatrix:r,pixelSize:s}=this.group,o=this.getIndexInBuffer();if(o==null)return;const a=o*16,[c,A]=this.size.value;if(rp.makeScale(c*s,A*s,1),this.offset!=null){const[h,f]=this.offset.value;rp.premultiply($4.makeTranslation(h*s,f*s,0))}rp.premultiply(i),rp.toArray(r.array,a),r.addUpdateRange(a,16),r.needsUpdate=!0}),Xt(()=>{const[i,r]=this.size.value,{instanceData:s}=this.group,{array:o}=s,a=this.getIndexInBuffer();if(a==null)return;const c=a*16+13;o[c]=i,o[c+1]=r,s.addUpdateRange(c,2),s.needsUpdate=!0}),Xt(()=>{const{instanceData:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16+0;i.array.set(this.borderInset.value,s),i.addUpdateRange(s,4),i.needsUpdate=!0}),Xt(()=>{var a;const{instanceClipping:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16,o=(a=this.clippingRect)==null?void 0:a.value;o!=null?o.toArray(i.array,s):i.array.set(gg,s),i.addUpdateRange(s,16),i.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let t=0;te.hasImmediateProperty.bind(e),[e]),a=q.useCallback(c=>{if(!i.current){r.current=c;return}Mw(c,r.current,s.current,e),r.current=c},[e]);gi(()=>{if(i.current=e.active.value,!i.current){Qw(s.current),s.current={};return}return Mw(r.current,ez,s.current,e),()=>{Qw(s.current),s.current={}}},[e]),WT(n,o,a,t)}function Mw(n,e,t,i){var r,s;for(const o in n){const a=n[o];if(o in e){const c=e[o];if(delete e[o],YT(a,c))continue;(r=t[o])==null||r.call(t)}t[o]=Xt(()=>{const c=TI(a);i.setProperty(o,c)})}for(const o in e)(s=t[o])==null||s.call(t),delete t[o],TI(e[o])!==void 0&&i.setProperty(o,void 0)}function Qw(n){for(const e in n)n[e]()}function xo({handlers:n,hoverHandlers:e,activeHandlers:t,inputHandlers:i,matrix:r,children:s,groupRef:o}){return q.useEffect(()=>{const a=o.current;if(a!=null)return Xt(()=>r.value!=null&&a.matrix.copy(r.value))},[o,r]),be.jsx("group",{ref:o,onPointerOut:jo(n.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:jo(n.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:jo(n.onPointerUp,jo(t==null?void 0:t.onPointerUp,i==null?void 0:i.onPointerUp)),onPointerDown:jo(n.onPointerDown,jo(t==null?void 0:t.onPointerDown,i==null?void 0:i.onPointerDown)),onPointerLeave:jo(n.onPointerLeave,t==null?void 0:t.onPointerLeave),onPointerMove:jo(n.onPointerMove,i==null?void 0:i.onPointerMove),onWheel:n.onWheel,onClick:n.onClick,onContextMenu:n.onContextMenu,onDoubleClick:n.onDoubleClick,onPointerCancel:n.onPointerCancel,onPointerEnter:n.onPointerEnter,onPointerMissed:n.onPointerMissed,matrixAutoUpdate:!1,children:s})}function jo(n,e){return n==null?e:e==null?n:t=>{e(t),!t.stopped&&n(t)}}function Kl(n,e,t,i){const r=Ps(),s=q.useMemo(()=>{const o=new nn(UC);return o.matrixAutoUpdate=!1,o.raycast=Qu(o,AD(o),i,r,t),o.visible=!1,o},[r,t,i]);return gi(()=>{const[o,a]=n.value;s.scale.set(o*e.pixelSize,a*e.pixelSize,1),s.updateMatrix()},[n,e]),s}const xD=q.createContext(void 0);function kC(){const n=q.useContext(xD);if(n==null)throw new Error("Can only be used inside a component.");return n}function tz(n,e,t,i,r,s,o){const{materials:a,setter:c}=q.useMemo(()=>{const A=new Y4(e,t,i),h={data:A.data,type:"normal"},f=mD(r??sr,h),d=new yD(h),m=new ED(h);return f.clippingPlanes=s,d.clippingPlanes=s,m.clippingPlanes=s,{materials:[f,d,m],setter:A}},[e,t,i,r,s]);return Wr(n,c,o),um(n,c,o),q.useEffect(()=>()=>c.destroy(),[c]),a}function Us(n=sr,{castShadow:e=!1,receiveShadow:t=!1}){return q.useMemo(()=>({materialClass:n,castShadow:e,receiveShadow:t}),[n,e,t])}function Ua(n,e,t,i,r,s,o,a,c,A,h){const f=h??kC(),d=q.useMemo(()=>new FC(f(o.majorIndex,c),e,t,i,r,a,s,o.minorIndex),[f,e,t,r,a,s,o,i,c]);q.useEffect(()=>()=>d.destroy(),[d]),Wr(n,d,A),um(n,d,A)}function nz(n,e,t){const i=q.useMemo(()=>new Map,[]),r=q.useCallback((s,{materialClass:o,receiveShadow:a,castShadow:c})=>{let A=i.get(o);A==null&&i.set(o,A=new Map);const h=(s<<2)+((a?1:0)<<1)+(c?1:0);let f=A.get(h);if(f==null){const d=mD(o,{type:"instanced"});A.set(h,f=new j4(d,n,e,{elementType:ci.Panel,majorIndex:s,minorIndex:0},a,c)),t.add(f)}return f},[n,i,e,t]);return Da((s,o)=>{for(const a of i.values())for(const c of a.values())c.onFrame(o)}),r}const iz=xD.Provider,HI=[],Pp=[];function rz(n,e){HI.push(n),Pp.push(e),document.body.style.cursor=e}function Rw(n){const e=HI.indexOf(n);e!=-1&&(HI.splice(e,1),Pp.splice(e,1),document.body.style.cursor=Pp[Pp.length-1]??"default")}function Bo(n,e,t){const i=q.useMemo(()=>Gt([]),[]),r=q.useMemo(()=>io(()=>i.value.length>0),[]);let s=!1;Mu(e,a=>{a.hover!=null&&(s=!0,r(n,a.hover))}),q.useEffect(()=>()=>Rw(i),[]);const o=e.cursor??t;if(!s&&e.onHoverChange==null&&o==null){i.value.length=0;return}return{onPointerOver:a=>{i.value=[a.pointerId,...i.value],e.onHoverChange!=null&&i.value.length===1&&e.onHoverChange(!0),o!=null&&rz(i,o)},onPointerOut:a=>{i.value=i.value.filter(c=>c!=a.pointerId),e.onHoverChange!=null&&i.value.length===0&&e.onHoverChange(!1),Rw(i)}}}function Am(n){return(e,t,i,r)=>{if(i(e)){r(e,t);return}const s=n[e];if(s==null)return;const o=s.length;if(i(s[0]))for(let a=0;aGt([0,0]),[])}function uz(n,e,t){return q.useMemo(()=>Pn(()=>{const i=t.value;if(i==null)return;const[r,s]=n.value,{pixelSize:o}=e;return new ft().makeTranslation(-r*o,s*o,0).premultiply(i)}),[n,e,t])}function Az({node:n,scrollPosition:e,children:t}){const i=q.useRef(null);return q.useEffect(()=>Xt(()=>{var a,c;const[r,s]=e.value,{pixelSize:o}=n;(a=i.current)==null||a.position.set(-r*o,s*o,0),(c=i.current)==null||c.updateMatrix()}),[n,e]),be.jsx("group",{ref:i,children:t})}function Jh({listeners:n,node:e,scrollPosition:t,children:i}){const[r,s]=q.useState(()=>e.scrollable.value.some(f=>f));gi(()=>s(e.scrollable.value.some(f=>f)),[e]);const o=q.useRef(n.onScroll);o.current=n.onScroll;const a=q.useMemo(()=>new Map,[]),c=q.useMemo(()=>new Be,[]),A=q.useCallback((f,d,m,E,x)=>{var b,K;const[y,p]=f==null?[!1,!1]:hz(f.nativeEvent);y&&(d=0),p&&(m=0);const[C,I]=t.value,[B,R]=e.maxScrollPosition.value;let[M,T]=t.value;const[P,J]=((b=e.anyAncestorScrollable)==null?void 0:b.value)??[!1,!1];M=Tw(C,B,d,x&&!P),T=Tw(I,R,m,x&&!J),E!=null&&E>0&&c.set(d,m).divideScalar(E),f!=null&&fz(f.nativeEvent,y||Math.min(C,(B??0)-C)>5,p||Math.min(I,(R??0)-I)>5),!(((K=o.current)==null?void 0:K.call(o,M,T,t,f))===!1||C===M&&I===T)&&(t.value=[M,T])},[e,t,c]);Da((f,d)=>{if(a.size>0)return;let m=0,E=0;const[x,y]=t.value,[p,C]=e.maxScrollPosition.value;m+=zI(x,0,p??0)*-.3,E+=zI(y,0,C??0)*-.3,m+=c.x*d,E+=c.y*d,c.multiplyScalar(.9),Math.abs(c.x)<.01&&(c.x=0),Math.abs(c.y)<.01&&(c.y=0),!(m===0&&E===0)&&A(void 0,m,E,void 0,!0)});const h=q.useRef(null);return r?be.jsx("group",{ref:h,matrixAutoUpdate:!1,onPointerDown:f=>{let d=a.get(f.pointerId);d==null&&a.set(f.pointerId,d={timestamp:0,point:new G}),d.timestamp=performance.now()/1e3,h.current.worldToLocal(d.point.copy(f.point))},onPointerUp:f=>{a.delete(f.pointerId)},onPointerLeave:f=>{a.delete(f.pointerId)},onPointerCancel:f=>{a.delete(f.pointerId)},onContextMenu:f=>f.nativeEvent.preventDefault(),onPointerMove:f=>{const d=a.get(f.pointerId);if(d==null)return;h.current.worldToLocal(GE.copy(f.point)),kE.copy(GE).sub(d.point).divideScalar(e.pixelSize);const m=performance.now()/1e3,E=m-d.timestamp;d.point.copy(GE),d.timestamp=m,!f.defaultPrevented&&A(f,-kE.x,kE.y,E,!0)},onWheel:f=>{f.defaultPrevented||A(f,f.deltaX,f.deltaY,void 0,!1)},children:i}):be.jsx("group",{matrixAutoUpdate:!1,children:i})}const _D=Symbol("was-scrolled");function hz(n){return n[_D]??[!1,!1]}function fz(n,e,t){n[_D]=[e,t]}function Tw(n,e,t,i){if(t===0)return n;const r=zI(n,0,e??0);Dw(t)===Dw(r)&&(t*=Math.max(0,1-Math.abs(r)/100));let s=n+t;return i&&e!=null?s:PC(s,0,e??0)}function Dw(n){return n>=0}function zI(n,e,t){return nt?n-t:0}const bw=9;function SD(n){return n[bw].toLowerCase()+n.slice(bw+1)}const dz=(n,e,t,i)=>{if(n.startsWith("scrollbarBorder")){if(n=SD(n),t(n)){i(n,e);return}sz(n,e,t,i)}},pz=(n,e,t,i)=>{if(n.startsWith("scrollbar")){if(n==="scrollbarOpacity"){i("backgroundOpacity",e);return}if(n==="scrollbarColor"){i("backgroundColor",e);return}if(n=SD(n),t(n)){i(n,e);return}So(n,e,t,i)}};function Kh(n,e,t,i,r,s,o,a,c){const A=Us(s,{castShadow:!1,receiveShadow:!1}),h=Di(ci.Panel,void 0,A,a),f=us(n,gz),d=us(n,mz,dz),m=q.useMemo(()=>Pn(()=>{const y=d.value;return[(y==null?void 0:y("scrollbarBorderTop"))??0,(y==null?void 0:y("scrollbarBorderRight"))??0,(y==null?void 0:y("scrollbarBorderBottom"))??0,(y==null?void 0:y("scrollbarBorderLeft"))??0]}),[d]),E=n.length;Nw(n,0,e,t,i,r,s,o,h,c,f,m),Nw(n,1,e,t,i,r,s,o,h,c,f,m);const x=n.length;for(let y=E;y{const x=Pn(()=>{const y=h.value;if(y!=null)return Ez(e,y("scrollbarWidth")??10,i.size.value,i.maxScrollPosition.value,i.borderInset.value,t.value)});return[Pn(()=>{var y;return((y=x.value)==null?void 0:y.slice(0,2))??[0,0]}),Pn(()=>{var y;return((y=x.value)==null?void 0:y.slice(2,4))??[0,0]})]},[e,i,t,h]),E=q.useMemo(()=>({materialClass:o??sr,receiveShadow:!1,castShadow:!1}),[o]);Ua(n,r,m,d,f,s,c,a,E,pz,A)}function Ez(n,e,t,i,r,s){const o=[0,0,0,0],a=i[n];if(a==null)return o;const c=1-n,A=t[n]-r[c]-r[c+2],h=Math.max(e,A*A/(a+A)),f=A-h,d=s[n];return o[n]=t[n]*.5-h*.5-r[(n+3)%4]-f*PC(d/a,0,1),o[c]=t[c]*.5-e*.5-r[c+1],n===0&&(o[0]*=-1,o[1]*=-1),o[n+2]=h,o[c+2]=e,o}function Fa(n,e,t,i){q.useImperativeHandle(n,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:t instanceof nn?t:t.current,scrollPosition:i}),[t,e,i])}function wo({onSizeChange:n},e){const t=q.useMemo(()=>{if(n==null)return;let i=!0;return Xt(()=>{const r=e.value;if(i){i=!1;return}n(...r)})},[n,e]);q.useEffect(()=>t,[t])}function ka({onIsInViewportChange:n},e){const t=q.useMemo(()=>{if(n==null)return;let i=!0;return Xt(()=>{const r=!e.value;if(i){i=!1;return}n(r)})},[e,n]);q.useEffect(()=>t,[t])}function Ga(n){const e=q.useContext(wD);if(e==null)throw new Error("Can only be used inside a uikit component.");return q.useMemo(()=>Pn(()=>{const t=n.value,i=e.value;if(!(t==null||i==null))return i.clone().multiply(t)}),[n,e])}const wD=q.createContext(void 0),yz=wD.Provider;function qh({globalMatrix:n,node:e,scrollPosition:t,children:i,orderInfo:r}){const s=Ps(),o=$H(n,e.size,e.borderInset,e.overflow,e,s),a=uz(t,e,n);return be.jsx(Az,{node:e,scrollPosition:t,children:be.jsx(yz,{value:a,children:be.jsx(LC,{value:e,children:be.jsx(jH,{value:o,children:be.jsx(A4,{value:r,children:i})})})})})}const MD="transformTranslateX",QD="transformTranslateY",RD="transformTranslateZ",TD="transformRotateX",DD="transformRotateY",bD="transformRotateZ",ND="transformScaleX",LD="transformScaleY",PD="transformScaleZ",Iz=[MD,QD,RD,TD,DD,bD,ND,LD,PD],vz=new G,Cz=new G,op=new G,OE=new ft,xz=new xu,Bz=new Vi,HE=Math.PI/180;function _z([n,e,t]){return Bz.setFromEuler(xz.set(n*HE,e*HE,t*HE))}function Mo(n,e){const t=us(n,Iz,cz);return q.useMemo(()=>Pn(()=>{const i=t.value;if(i==null)return;const{pixelSize:r,relativeCenter:s}=e,[o,a]=s.value,c=new ft().makeTranslation(o*r,a*r,0),A=i("transformOriginX")??"center",h=i("transformOriginY")??"center";let f=!0;if(A!="center"||h!="center"){const[x,y]=e.size.value;f=!1,op.set(-KT[A]*x*r,-qT[h]*y*r,0),c.multiply(OE.makeTranslation(op)),op.negate()}const d=[i(TD)??0,i(DD)??0,i(bD)??0],m=[i(MD)??0,-(i(QD)??0),i(RD)??0],E=[i(ND)??1,i(LD)??1,i(PD)??1];return(m.some(x=>x!=0)||d.some(x=>x!=0)||E.some(x=>x!=1))&&c.multiply(OE.compose(vz.fromArray(m).multiplyScalar(r),_z(d),Cz.fromArray(E))),f||c.multiply(OE.makeTranslation(op)),c}),[t,e])}function Qo(n,e){const t=q.useMemo(()=>Gt([]),[]),i=q.useMemo(()=>io(()=>t.value.length>0),[]);let r=!1;if(Mu(e,o=>{o.active!=null&&(r=!0,i(n,o.active))}),!r&&e.onActiveChange==null){t.value.length=0;return}const s=o=>{t.value=t.value.filter(a=>a!=o.pointerId),!(e.onActiveChange==null||t.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{t.value=[o.pointerId,...t.value],!(e.onActiveChange==null||t.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:s,onPointerLeave:s}}q.forwardRef((n,e)=>{const t=Eo(),i=q.useRef(null),r=Pa(i);Wr(t,r,_o);const s=Mo(t,r),o=Ga(s),a=Ps(),c=La(a,o,r.size,r);wo(n,r.size),ka(n,c);const A=Us(n.panelMaterialClass,n),h=Di(ci.Panel,n.zIndexOffset,A);Ua(t,o,r.size,void 0,r.borderInset,c,h,a,A,So);const f=q.useRef(null),d=Na(),m=Di(ci.Object,void 0,void 0,h),E=Mz(t,f,d,r.cameraDistance,a,m);Io(t,n),vo(t,n),Co(t,n);const x=Bo(t,n),y=Qo(t,n),p=q.useMemo(()=>Pn(()=>{const[B,R]=E.value;return B/R}),[E]);(n.keepAspectRatio??!0)&&as(t,"aspectRatio",p),yo(t);const C=q.useRef(null);q.useEffect(()=>Xt(()=>{const[B,R]=r.size.value,[M,T,P,J]=r.paddingInset.value,[w,b,K,fe]=r.borderInset.value,Y=M+w,ie=T+b,te=P+K,ce=J+fe,U=B-ce-ie,$=R-Y-te,{pixelSize:ee}=r,{current:ue}=C;ue==null||ue.position.set((ce-ie)*.5*ee,(te-Y)*.5*ee,0);const[,ye,ke]=E.value;ue==null||ue.scale.set(U*ee,$*ee,n.keepAspectRatio?$*ee*ke/ye:ke),ue==null||ue.updateMatrix()}),[r,n.keepAspectRatio,E]);const I=Kl(r.size,r,h,d);return Fa(e,r,I),be.jsxs(xo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:x,activeHandlers:y,children:[be.jsx("primitive",{object:I}),be.jsx("group",{matrixAutoUpdate:!1,ref:C,children:be.jsx("group",{ref:f,matrixAutoUpdate:!1,children:be.jsx(LC,{value:void 0,children:n.children})})})]})});const zE=new $n,Sz=new G().setScalar(.001),wz=["depthAlign"];function Mz(n,e,t,i,r,s){const o=q.useMemo(()=>Gt(new G(1,1,1)),[]),a=Yh(r,t),c=us(n,wz);return q.useEffect(()=>{const A=e.current;if(A==null)return;A.traverse(m=>{m instanceof nn&&(Jl(m,i,s),m.material.clippingPlanes=a,m.material.needsUpdate=!0,m.raycast=Qu(m,m.raycast,t,r,s))});const h=A.parent;h==null||h.remove(A),zE.setFromObject(A);const f=new G,d=new G;return zE.getSize(f).max(Sz),o.value=f,A.scale.set(1,1,1).divide(f),h!=null&&h.add(A),zE.getCenter(d),Xt(()=>{const m=c.value;m!=null&&(A.position.copy(d).negate(),A.position.z-=HH[m("depthAlign")??"back"]*f.z,A.position.divide(f),A.updateMatrix())})},[c,i,a,t]),o}const pi=q.forwardRef((n,e)=>{const t=Eo(),i=q.useRef(null),r=Pa(i);Wr(t,r,_o);const s=Mo(t,r),o=Ps(),a=Ga(s),c=La(o,a,r.size,r),A=Us(n.panelMaterialClass,n),h=Di(ci.Panel,n.zIndexOffset,A);Ua(t,a,r.size,void 0,r.borderInset,c,h,o,A,So);const f=Xh();Kh(t,f,r,a,c,n.scrollbarPanelMaterialClass,o,h),Io(t,n),vo(t,n),Co(t,n);const d=Bo(t,n),m=Qo(t,n);yo(t),wo(n,r.size),ka(n,c);const E=Na(),x=Kl(r.size,r,h,E);return Fa(e,r,x,f),be.jsxs(xo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:d,activeHandlers:m,children:[be.jsx(Jh,{listeners:n,node:r,scrollPosition:f,children:be.jsx("primitive",{object:x})}),be.jsx(qh,{globalMatrix:a,node:r,orderInfo:h,scrollPosition:f,children:n.children})]})});q.forwardRef((n,e)=>{const t=Eo(),i=q.useRef(null),r=Pa(i);Wr(t,r,_o);const s=Mo(t,r),o=Ps(),a=Na(),c=Yh(o,a),A=Di(ci.Custom,n.zIndexOffset,void 0),h=q.useRef(null),f=Ga(s),d=La(o,f,r.size,r);q.useEffect(()=>{const x=h.current;if(x==null)return;x.raycast=Qu(x,x.raycast,a,o,A),Jl(x,r.cameraDistance,A),x.material instanceof ui&&(x.material.clippingPlanes=c,x.material.needsUpdate=!0,x.material.shadowSide=zr);const y=Xt(()=>{const[C,I]=r.size.value;x.scale.set(C*r.pixelSize,I*r.pixelSize,1),x.updateMatrix()}),p=Xt(()=>void(x.visible=!d.value));return()=>{y(),p()}},[c,r,d,o,A,a]),Io(t,n),vo(t,n),Co(t,n);const m=Bo(t,n),E=Qo(t,n);return yo(t),wo(n,r.size),ka(n,d),Fa(e,r,h),be.jsx(xo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:m,activeHandlers:E,children:be.jsx("mesh",{receiveShadow:n.receiveShadow,castShadow:n.castShadow,customDepthMaterial:n.customDepthMaterial,customDistanceMaterial:n.customDistanceMaterial,ref:h,matrixAutoUpdate:!1,geometry:UC,children:be.jsx(LC,{value:void 0,children:n.children})})})});const Qz="fill",Rz=(n,e,t,i)=>{if(n==="opacity"){i("backgroundOpacity",e);return}So(n,e,t,i)},Tz=q.forwardRef((n,e)=>{const t=Eo(),i=jT(Lz,n.src),r=q.useMemo(()=>Pn(()=>{const I=i.value;if(I==null)return;const B=I.source.data;return B.width/B.height}),[i]),s=q.useRef(null),o=Pa(s);Wr(t,o,_o),bz(t,i,o.borderInset,o.size);const a=Mo(t,o),c=Ps(),A=Na(),h=Yh(c,A),f=Ga(a),d=La(c,f,o.size,o),m=tz(t,o.size,o.borderInset,d,n.materialClass,h,Rz),E=Di(ci.Image,n.zIndexOffset,void 0),x=q.useMemo(()=>{const[I,B,R]=m,M=new nn(UC,I);return M.matrixAutoUpdate=!1,M.castShadow=n.castShadow??!1,M.receiveShadow=n.receiveShadow??!1,M.customDepthMaterial=B,M.customDistanceMaterial=R,M.raycast=Qu(M,AD(M),A,c,E),Jl(M,o.cameraDistance,E),M},[o,m,A,c,E,n.receiveShadow,n.castShadow]),y=Xh();Kh(t,y,o,f,d,n.scrollbarPanelMaterialClass,c,E),Io(t,n),vo(t,n),Co(t,n);const p=Bo(t,n),C=Qo(t,n);return as(t,"backgroundColor",16777215),(n.keepAspectRatio??!0)&&as(t,"aspectRatio",r),yo(t),wo(n,o.size),ka(n,d),gi(()=>{const I=i.value??null;x.material.map!==I&&(x.material.map=I,x.material.needsUpdate=!0)},[x,i]),gi(()=>{const[I,B]=o.size.value;x.scale.set(I*o.pixelSize,B*o.pixelSize,1),x.updateMatrix()},[x]),gi(()=>void(x.visible=!d.value),[x,d]),Fa(e,o,x,y),be.jsxs(xo,{groupRef:s,hoverHandlers:p,handlers:n,matrix:a,activeHandlers:C,children:[be.jsx(Jh,{listeners:n,node:o,scrollPosition:y,children:be.jsx("primitive",{object:x})}),be.jsx(qh,{globalMatrix:f,node:o,orderInfo:E,scrollPosition:y,children:n.children})]})}),Dz=["fit"];function bz(n,e,t,i){const r=us(n,Dz);gi(()=>{const s=r.value,o=e.value;if(o==null||s==null)return;const a=s("fit")??Qz;if(o.matrix.identity(),a==="fill"||o==null){Lw(t,i,o);return}const{width:c,height:A}=o.source.data,h=c/A,[f,d]=i.value,[m,E,x,y]=t.value,p=(f-y-E)/(d-m-x);h>p?o.matrix.translate(-(.5*(p-h))/p,0).scale(p/h,1):o.matrix.translate(0,-(.5*(h-p))/h).scale(1,h/p),Lw(t,i,o)},[e,t,i])}function Lw(n,e,t){const[i,r]=e.value,[s,o,a,c]=n.value,A=i-c-o,h=r-s-a;t.matrix.translate(-1+(c+A)/i,-1+(s+h)/r).scale(i/A,r/h)}const Nz=new IC;async function Lz(n){if(n==null)return Promise.resolve(void 0);if(n instanceof Bn)return Promise.resolve(n);try{const e=await Nz.loadAsync(n);return e.colorSpace=On,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function Zs(n,e,t){if(e==null)return t;const i=n[e];if(i==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(n).join(", ")}`);return i}function gn(n,e,t){return typeof n=="number"?Math.round(n/e):n??t}const Pz={static:0,relative:1,absolute:2},VE={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},Uz={column:0,"column-reverse":1,row:2,"row-reverse":3},Fz={"no-wrap":0,wrap:1,"wrap-reverse":2},kz={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},Gz={visible:0,hidden:1,scroll:2},Oz={flex:0,none:1},Pw={positionType:(n,e,t)=>n.setPositionType(Zs(Pz,t,0)),positionTop:(n,e,t)=>n.setPosition(1,gn(t,e,NaN)),positionLeft:(n,e,t)=>n.setPosition(0,gn(t,e,NaN)),positionRight:(n,e,t)=>n.setPosition(2,gn(t,e,NaN)),positionBottom:(n,e,t)=>n.setPosition(3,gn(t,e,NaN)),alignContent:(n,e,t)=>n.setAlignContent(Zs(VE,t,1)),alignItems:(n,e,t)=>n.setAlignItems(Zs(VE,t,4)),alignSelf:(n,e,t)=>n.setAlignSelf(Zs(VE,t,0)),flexDirection:(n,e,t)=>n.setFlexDirection(Zs(Uz,t,0)),flexWrap:(n,e,t)=>n.setFlexWrap(Zs(Fz,t,0)),justifyContent:(n,e,t)=>n.setJustifyContent(Zs(kz,t,0)),marginTop:(n,e,t)=>n.setMargin(1,gn(t,e,NaN)),marginLeft:(n,e,t)=>n.setMargin(0,gn(t,e,NaN)),marginRight:(n,e,t)=>n.setMargin(2,gn(t,e,NaN)),marginBottom:(n,e,t)=>n.setMargin(3,gn(t,e,NaN)),flexBasis:(n,e,t)=>n.setFlexBasis(gn(t,e,NaN)),flexGrow:(n,e,t)=>n.setFlexGrow(t??0),flexShrink:(n,e,t)=>n.setFlexShrink(t??0),width:(n,e,t)=>n.setWidth(gn(t,e,NaN)),height:(n,e,t)=>n.setHeight(gn(t,e,NaN)),minWidth:(n,e,t)=>n.setMinWidth(gn(t,e,NaN)),minHeight:(n,e,t)=>n.setMinHeight(gn(t,e,NaN)),maxWidth:(n,e,t)=>n.setMaxWidth(gn(t,e,NaN)),maxHeight:(n,e,t)=>n.setMaxHeight(gn(t,e,NaN)),aspectRatio:(n,e,t)=>n.setAspectRatio(t??NaN),borderTop:(n,e,t)=>n.setBorder(1,gn(t,e,NaN)),borderLeft:(n,e,t)=>n.setBorder(0,gn(t,e,NaN)),borderRight:(n,e,t)=>n.setBorder(2,gn(t,e,NaN)),borderBottom:(n,e,t)=>n.setBorder(3,gn(t,e,NaN)),overflow:(n,e,t)=>n.setOverflow(Zs(Gz,t,0)),display:(n,e,t)=>n.setDisplay(Zs(Oz,t,0)),paddingTop:(n,e,t)=>n.setPadding(1,gn(t,e,NaN)),paddingLeft:(n,e,t)=>n.setPadding(0,gn(t,e,NaN)),paddingRight:(n,e,t)=>n.setPadding(2,gn(t,e,NaN)),paddingBottom:(n,e,t)=>n.setPadding(3,gn(t,e,NaN)),gapRow:(n,e,t)=>n.setGap(1,gn(t,e,NaN)),gapColumn:(n,e,t)=>n.setGap(0,gn(t,e,NaN))};function Hz(n,e){return n.L===e.L}function zz(n,e,t){if(t==null){n.setMeasureFunc(null);return}n.setMeasureFunc((i,r,s,o)=>{const a=t(i*e,r,s*e,o);return{width:Math.ceil(Math.ceil(a.width)/e),height:Math.ceil(Math.ceil(a.height)/e)}}),n.markDirty()}class GC{constructor(e,t,i,r,s,o,a){We(this,"size",Gt([0,0]));We(this,"relativeCenter",Gt([0,0]));We(this,"borderInset",Gt([0,0,0,0]));We(this,"paddingInset",Gt([0,0,0,0]));We(this,"overflow",Gt(Fi.Overflow.Visible));We(this,"maxScrollPosition",Gt([void 0,void 0]));We(this,"scrollable",Gt([!1,!1]));We(this,"children",[]);We(this,"yogaNode");We(this,"unsubscribeYoga");We(this,"layoutChangeListeners",new Set);We(this,"requestCalculateLayout");We(this,"active",Gt(!1));this.groupRef=e,this.cameraDistance=t,this.yoga=i,this.precision=r,this.pixelSize=s,this.anyAncestorScrollable=a,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=Xt(()=>{var c;i.value!=null&&((c=this.unsubscribeYoga)==null||c.call(this),this.unsubscribeYoga=void 0,this.yogaNode=i.value.Node.create(),this.active.value=!0)})}setProperty(e,t){e==="measureFunc"?zz(this.yogaNode,this.precision,t):Pw[e](this.yogaNode,this.precision,t),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in Pw}destroy(){var e,t;(e=this.unsubscribeYoga)==null||e.call(this),(t=this.yogaNode)==null||t.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),kT(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new GC(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,Pn(()=>{var a;const[i,r]=((a=this.anyAncestorScrollable)==null?void 0:a.value)??[!1,!1],[s,o]=this.scrollable.value;return[i||s,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((a,c)=>{var m,E;if(e??(e=(E=(m=a.groupRef.current)==null?void 0:m.parent)==null?void 0:E.children),e==null)return 0;const A=a.groupRef.current,h=c.groupRef.current;if(A==null||h==null)return 0;const f=e.indexOf(A);if(f===-1)throw new Error("parent mismatch");const d=e.indexOf(h);if(d===-1)throw new Error("parent mismatch");return f-d});let t=0,i=this.yogaNode.getChild(t),r=this.children[t];for(;r!=null||i!=null;){if(r!=null&&i!=null&&Hz(i,Fw(r.yogaNode))){r=this.children[++t],i=this.yogaNode.getChild(t);continue}if(i!=null&&this.yogaNode.removeChild(i),r!=null){const a=Fw(r.yogaNode);(o=a.getParent())==null||o.removeChild(a),this.yogaNode.insertChild(a,t),r=this.children[++t]}i=this.yogaNode.getChild(t)}const s=this.children.length;for(let a=0;a0,P>0)}else Dc(this.maxScrollPosition,void 0,void 0),Dc(this.scrollable,!1,!1);const B=this.overflow.value===Fi.Overflow.Visible;return[s+Math.max(i,B?C:0),o+Math.max(r,B?I:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function Dc(n,e,t){const[i,r]=n.value;i===e&&r===t||(n.value=[e,t])}function Uw(n,e,t,i,r){const[s,o,a,c]=n.value;s==e&&o==t&&a==i&&c==r||(n.value=[e,t,i,r])}function Fw(n){if(n==null)throw new Error("commit cannot be called with a children that miss a yoga node");return n}const Vz=.1,UD=.002,ap=new ln,kw=new G,Wz=q.forwardRef((n,e)=>{const t=Eo(),i=RC(P=>P.gl);q.useEffect(()=>c4(i),[i]);const{sizeX:r,sizeY:s}=n,[o,a]=q.useMemo(()=>[n.precision??Vz,n.pixelSize??UD],[]),c=zH(),A=q.useMemo(()=>({current:0}),[]),h=q.useRef(null),f=U4(),d=q.useMemo(()=>new GC(h,A,c,o,a,f,void 0),[f,h,c]);Wr(t,d,_o),q.useEffect(()=>()=>d.destroy(),[d]);const m=Mo(t,d),E=q.useMemo(()=>{const P=new kr;return P.matrixAutoUpdate=!1,P},[]),x=nz(a,d.cameraDistance,E),y=x4(a,d.cameraDistance,E),p=Us(n.panelMaterialClass,n),C=Di(ci.Panel,void 0,p),I=Xz(m,d.size,a,n),B=Xh();Kh(t,B,d,I,void 0,n.scrollbarPanelMaterialClass,void 0,C,x),Ua(t,I,d.size,void 0,d.borderInset,void 0,C,void 0,p,So,x),Io(t,n),vo(t,n),Co(t,n,d.size);const R=Bo(t,n),M=Qo(t,n);as(t,"width",Gw(r,a)),as(t,"height",Gw(s,a)),yo(t),wo(n,d.size);const T=Kl(d.size,d,C,h);return Fa(e,d,T,B),Da(({camera:P})=>{ap.normal.set(0,0,1),ap.constant=0,ap.applyMatrix4(T.matrixWorld),kw.setFromMatrixPosition(P.matrixWorld),A.current=ap.distanceToPoint(kw)}),be.jsxs(be.Fragment,{children:[be.jsx("primitive",{object:E}),be.jsx(xo,{groupRef:h,matrix:I,handlers:n,hoverHandlers:R,activeHandlers:M,children:be.jsx(VH,{value:h,children:be.jsx(C4,{value:y,children:be.jsxs(iz,{value:x,children:[be.jsx(Jh,{node:d,scrollPosition:B,listeners:n,children:be.jsx("primitive",{object:T})}),be.jsx(L4,{value:d.size,children:be.jsx(qh,{globalMatrix:I,node:d,orderInfo:C,scrollPosition:B,children:n.children})})]})})})})]})});function Gw(n,e){return q.useMemo(()=>n===void 0?void 0:n instanceof Un?Pn(()=>{const t=n.value;if(t!=null)return t/e}):n/e,[n,e])}const Yz=new ft;function Xz(n,e,t,{anchorX:i="center",anchorY:r="center"}){return q.useMemo(()=>Pn(()=>{var a;const[s,o]=e.value;return(a=n.value)==null?void 0:a.clone().premultiply(Yz.makeTranslation(KT[i]*s*t,qT[r]*o*t,0))}),[n,e,i,r,t])}const Jz=On;class Ru extends Ji{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,i,r){const s=this,o=new Ns(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(a){try{t(s.parse(a))}catch(c){r?r(c):console.error(c),s.manager.itemError(e)}},i,r)}parse(e){const t=this;function i(V,O){if(V.nodeType!==1)return;const k=B(V);let F=!1,ge=null;switch(V.nodeName){case"svg":O=E(V,O);break;case"style":s(V);break;case"g":O=E(V,O);break;case"path":O=E(V,O),V.hasAttribute("d")&&(ge=r(V));break;case"rect":O=E(V,O),ge=c(V);break;case"polygon":O=E(V,O),ge=A(V);break;case"polyline":O=E(V,O),ge=h(V);break;case"circle":O=E(V,O),ge=f(V);break;case"ellipse":O=E(V,O),ge=d(V);break;case"line":O=E(V,O),ge=m(V);break;case"defs":F=!0;break;case"use":O=E(V,O);const xe=(V.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),H=V.viewportElement.getElementById(xe);H?i(H,O):console.warn("SVGLoader: 'use node' references non-existent node id: "+xe);break}ge&&(O.fill!==void 0&&O.fill!=="none"&&ge.color.setStyle(O.fill,Jz),M(ge,ue),K.push(ge),ge.userData={node:V,style:O});const ve=V.childNodes;for(let se=0;se0?ue.copy(Y[Y.length-1]):ue.identity())}function r(V){const O=new Zo,k=new Be,F=new Be,ge=new Be;let ve=!0,se=!1;const xe=V.getAttribute("d");if(xe===""||xe==="none")return null;const H=xe.match(/[a-df-z][^a-df-z]*/ig);for(let me=0,ne=H.length;me0&&(k.copy(ge),O.currentPath.currentPoint.copy(k),ve=!0);break;default:console.warn(ae)}se=!1}return O}function s(V){if(!(!V.sheet||!V.sheet.cssRules||!V.sheet.cssRules.length))for(let O=0;Oge.trim());for(let ge=0;gese!==""));fe[F[ge]]=Object.assign(fe[F[ge]]||{},ve)}}}function o(V,O,k,F,ge,ve,se,xe){if(O==0||k==0){V.lineTo(xe.x,xe.y);return}F=F*Math.PI/180,O=Math.abs(O),k=Math.abs(k);const H=(se.x-xe.x)/2,me=(se.y-xe.y)/2,ne=Math.cos(F)*H+Math.sin(F)*me,ae=-Math.sin(F)*H+Math.cos(F)*me;let he=O*O,Re=k*k;const Z=ne*ne,S=ae*ae,D=Z/he+S/Re;if(D>1){const Le=Math.sqrt(D);O=Le*O,k=Le*k,he=O*O,Re=k*k}const re=he*S+Re*Z,De=(he*Re-re)/re;let Te=Math.sqrt(Math.max(0,De));ge===ve&&(Te=-Te);const Me=Te*O*ae/k,Xe=-Te*k*ne/O,ze=Math.cos(F)*Me-Math.sin(F)*Xe+(se.x+xe.x)/2,qe=Math.sin(F)*Me+Math.cos(F)*Xe+(se.y+xe.y)/2,at=a(1,0,(ne-Me)/O,(ae-Xe)/k),yt=a((ne-Me)/O,(ae-Xe)/k,(-ne-Me)/O,(-ae-Xe)/k)%(Math.PI*2);V.currentPath.absellipse(ze,qe,O,k,at,at+yt,ve===0,F)}function a(V,O,k,F){const ge=V*k+O*F,ve=Math.sqrt(V*V+O*O)*Math.sqrt(k*k+F*F);let se=Math.acos(Math.max(-1,Math.min(1,ge/ve)));return V*F-O*k<0&&(se=-se),se}function c(V){const O=I(V.getAttribute("x")||0),k=I(V.getAttribute("y")||0),F=I(V.getAttribute("rx")||V.getAttribute("ry")||0),ge=I(V.getAttribute("ry")||V.getAttribute("rx")||0),ve=I(V.getAttribute("width")),se=I(V.getAttribute("height")),xe=1-.551915024494,H=new Zo;return H.moveTo(O+F,k),H.lineTo(O+ve-F,k),(F!==0||ge!==0)&&H.bezierCurveTo(O+ve-F*xe,k,O+ve,k+ge*xe,O+ve,k+ge),H.lineTo(O+ve,k+se-ge),(F!==0||ge!==0)&&H.bezierCurveTo(O+ve,k+se-ge*xe,O+ve-F*xe,k+se,O+ve-F,k+se),H.lineTo(O+F,k+se),(F!==0||ge!==0)&&H.bezierCurveTo(O+F*xe,k+se,O,k+se-ge*xe,O,k+se-ge),H.lineTo(O,k+ge),(F!==0||ge!==0)&&H.bezierCurveTo(O,k+ge*xe,O+F*xe,k,O+F,k),H}function A(V){function O(ve,se,xe){const H=I(se),me=I(xe);ge===0?F.moveTo(H,me):F.lineTo(H,me),ge++}const k=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new Zo;let ge=0;return V.getAttribute("points").replace(k,O),F.currentPath.autoClose=!0,F}function h(V){function O(ve,se,xe){const H=I(se),me=I(xe);ge===0?F.moveTo(H,me):F.lineTo(H,me),ge++}const k=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new Zo;let ge=0;return V.getAttribute("points").replace(k,O),F.currentPath.autoClose=!1,F}function f(V){const O=I(V.getAttribute("cx")||0),k=I(V.getAttribute("cy")||0),F=I(V.getAttribute("r")||0),ge=new Ea;ge.absarc(O,k,F,0,Math.PI*2);const ve=new Zo;return ve.subPaths.push(ge),ve}function d(V){const O=I(V.getAttribute("cx")||0),k=I(V.getAttribute("cy")||0),F=I(V.getAttribute("rx")||0),ge=I(V.getAttribute("ry")||0),ve=new Ea;ve.absellipse(O,k,F,ge,0,Math.PI*2);const se=new Zo;return se.subPaths.push(ve),se}function m(V){const O=I(V.getAttribute("x1")||0),k=I(V.getAttribute("y1")||0),F=I(V.getAttribute("x2")||0),ge=I(V.getAttribute("y2")||0),ve=new Zo;return ve.moveTo(O,k),ve.lineTo(F,ge),ve.currentPath.autoClose=!1,ve}function E(V,O){O=Object.assign({},O);let k={};if(V.hasAttribute("class")){const se=V.getAttribute("class").split(/\s/).filter(Boolean).map(xe=>xe.trim());for(let xe=0;xe0&&O.premultiply(Y[Y.length-1]),ue.copy(O),Y.push(O),O}function R(V){const O=new wt,k=ie;if(V.nodeName==="use"&&(V.hasAttribute("x")||V.hasAttribute("y"))){const F=I(V.getAttribute("x")),ge=I(V.getAttribute("y"));O.translate(F,ge)}if(V.hasAttribute("transform")){const F=V.getAttribute("transform").split(")");for(let ge=F.length-1;ge>=0;ge--){const ve=F[ge].trim();if(ve==="")continue;const se=ve.indexOf("("),xe=ve.length;if(se>0&&se=1){const ne=me[0];let ae=0;me.length>=2&&(ae=me[1]),k.translate(ne,ae)}break;case"rotate":if(me.length>=1){let ne=0,ae=0,he=0;ne=me[0]*Math.PI/180,me.length>=3&&(ae=me[1],he=me[2]),te.makeTranslation(-ae,-he),ce.makeRotation(ne),U.multiplyMatrices(ce,te),te.makeTranslation(ae,he),k.multiplyMatrices(te,U)}break;case"scale":if(me.length>=1){const ne=me[0];let ae=ne;me.length>=2&&(ae=me[1]),k.scale(ne,ae)}break;case"skewX":me.length===1&&k.set(1,Math.tan(me[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":me.length===1&&k.set(1,0,0,Math.tan(me[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":me.length===6&&k.set(me[0],me[2],me[4],me[1],me[3],me[5],0,0,1);break}}O.premultiply(k)}}return O}function M(V,O){function k(se){ee.set(se.x,se.y,1).applyMatrix3(O),se.set(ee.x,ee.y)}function F(se){const xe=se.xRadius,H=se.yRadius,me=Math.cos(se.aRotation),ne=Math.sin(se.aRotation),ae=new G(xe*me,xe*ne,0),he=new G(-H*ne,H*me,0),Re=ae.applyMatrix3(O),Z=he.applyMatrix3(O),S=ie.set(Re.x,Z.x,0,Re.y,Z.y,0,0,0,1),D=te.copy(S).invert(),Te=ce.copy(D).transpose().multiply(D).elements,Me=b(Te[0],Te[1],Te[4]),Xe=Math.sqrt(Me.rt1),ze=Math.sqrt(Me.rt2);if(se.xRadius=1/Xe,se.yRadius=1/ze,se.aRotation=Math.atan2(Me.sn,Me.cs),!((se.aEndAngle-se.aStartAngle)%(2*Math.PI){const{x:dt,y:ot}=new G(Math.cos(Bt),Math.sin(Bt),0).applyMatrix3(Le);return Math.atan2(ot,dt)};se.aStartAngle=Dt(se.aStartAngle),se.aEndAngle=Dt(se.aEndAngle),T(O)&&(se.aClockwise=!se.aClockwise)}}function ge(se){const xe=J(O),H=w(O);se.xRadius*=xe,se.yRadius*=H;const me=xe>Number.EPSILON?Math.atan2(O.elements[1],O.elements[0]):Math.atan2(-O.elements[3],O.elements[4]);se.aRotation+=me,T(O)&&(se.aStartAngle*=-1,se.aEndAngle*=-1,se.aClockwise=!se.aClockwise)}const ve=V.subPaths;for(let se=0,xe=ve.length;seNumber.EPSILON}function J(V){const O=V.elements;return Math.sqrt(O[0]*O[0]+O[1]*O[1])}function w(V){const O=V.elements;return Math.sqrt(O[3]*O[3]+O[4]*O[4])}function b(V,O,k){let F,ge,ve,se,xe;const H=V+k,me=V-k,ne=Math.sqrt(me*me+4*O*O);return H>0?(F=.5*(H+ne),xe=1/F,ge=V*xe*k-O*xe*O):H<0?ge=.5*(H-ne):(F=.5*ne,ge=-.5*ne),me>0?ve=me+ne:ve=me-ne,Math.abs(ve)>2*Math.abs(O)?(xe=-2*O/ve,se=1/Math.sqrt(1+xe*xe),ve=xe*se):Math.abs(O)===0?(ve=1,se=0):(xe=-.5*ve/O,ve=1/Math.sqrt(1+xe*xe),se=xe*ve),me>0&&(xe=ve,ve=-se,se=xe),{rt1:F,rt2:ge,cs:ve,sn:se}}const K=[],fe={},Y=[],ie=new wt,te=new wt,ce=new wt,U=new wt,$=new Be,ee=new G,ue=new wt,ye=new DOMParser().parseFromString(e,"image/svg+xml");return i(ye.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:K,xml:ye.documentElement}}static createShapes(e){const i={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:i.ORIGIN,t:0};function s(x,y,p,C){const I=x.x,B=y.x,R=p.x,M=C.x,T=x.y,P=y.y,J=p.y,w=C.y,b=(M-R)*(T-J)-(w-J)*(I-R),K=(B-I)*(T-J)-(P-T)*(I-R),fe=(w-J)*(B-I)-(M-R)*(P-T),Y=b/fe,ie=K/fe;if(fe===0&&b!==0||Y<=0||Y>=1||ie<0||ie>1)return null;if(b===0&&fe===0){for(let te=0;te<2;te++)if(o(te===0?p:C,x,y),r.loc==i.ORIGIN){const ce=te===0?p:C;return{x:ce.x,y:ce.y,t:r.t}}else if(r.loc==i.BETWEEN){const ce=+(I+r.t*(B-I)).toPrecision(10),U=+(T+r.t*(P-T)).toPrecision(10);return{x:ce,y:U,t:r.t}}return null}else{for(let U=0;U<2;U++)if(o(U===0?p:C,x,y),r.loc==i.ORIGIN){const $=U===0?p:C;return{x:$.x,y:$.y,t:r.t}}const te=+(I+Y*(B-I)).toPrecision(10),ce=+(T+Y*(P-T)).toPrecision(10);return{x:te,y:ce,t:Y}}}function o(x,y,p){const C=p.x-y.x,I=p.y-y.y,B=x.x-y.x,R=x.y-y.y,M=C*R-B*I;if(x.x===y.x&&x.y===y.y){r.loc=i.ORIGIN,r.t=0;return}if(x.x===p.x&&x.y===p.y){r.loc=i.DESTINATION,r.t=1;return}if(M<-Number.EPSILON){r.loc=i.LEFT;return}if(M>Number.EPSILON){r.loc=i.RIGHT;return}if(C*B<0||I*R<0){r.loc=i.BEHIND;return}if(Math.sqrt(C*C+I*I)w.t<=J.t+Number.EPSILON&&w.t>=J.t-Number.EPSILON)===void 0&&(p.push(J),C.push(new Be(J.x,J.y)))}}return C}function c(x,y,p){const C=new Be;y.getCenter(C);const I=[];return p.forEach(B=>{B.boundingBox.containsPoint(C)&&a(x,B.points).forEach(M=>{I.push({identifier:B.identifier,isCW:B.isCW,point:M})})}),I.sort((B,R)=>B.point.x-R.point.x),I}function A(x,y,p,C,I){(I==null||I==="")&&(I="nonzero");const B=new Be;x.boundingBox.getCenter(B);const R=[new Be(p,B.y),new Be(C,B.y)],M=c(R,x.boundingBox,y);M.sort((K,fe)=>K.point.x-fe.point.x);const T=[],P=[];M.forEach(K=>{K.identifier===x.identifier?T.push(K):P.push(K)});const J=T[0].point.x,w=[];let b=0;for(;b0&&w[w.length-1]===P[b].identifier?w.pop():w.push(P[b].identifier),b++;if(w.push(x.identifier),I==="evenodd"){const K=w.length%2===0,fe=w[w.length-2];return{identifier:x.identifier,isHole:K,for:fe}}else if(I==="nonzero"){let K=!0,fe=null,Y=null;for(let ie=0;ie{const y=x.getPoints();let p=-999999999,C=999999999,I=-999999999,B=999999999;for(let R=0;Rp&&(p=M.y),M.yI&&(I=M.x),M.x=B&&(h=B-1),{curves:x.curves,points:y,isCW:os.isClockWise(y),identifier:-1,boundingBox:new gT(new Be(B,C),new Be(I,p))}});d=d.filter(x=>x.points.length>1);for(let x=0;xA(x,d,h,f,e.userData?e.userData.style.fillRule:void 0)),E=[];return d.forEach(x=>{if(!m[x.identifier].isHole){const p=new ya;p.curves=x.curves,m.filter(I=>I.isHole&&I.for===x.identifier).forEach(I=>{const B=d[I.identifier],R=new Ea;R.curves=B.curves,p.holes.push(R)}),E.push(p)}}),E}static getStrokeStyle(e,t,i,r,s){return e=e!==void 0?e:1,t=t!==void 0?t:"#000",i=i!==void 0?i:"miter",r=r!==void 0?r:"butt",s=s!==void 0?s:4,{strokeColor:t,strokeWidth:e,strokeLineJoin:i,strokeLineCap:r,strokeMiterLimit:s}}static pointsToStroke(e,t,i,r){const s=[],o=[],a=[];if(Ru.pointsToStrokeWithBuffers(e,t,i,r,s,o,a)===0)return null;const c=new Tt;return c.setAttribute("position",new st(s,3)),c.setAttribute("normal",new st(o,3)),c.setAttribute("uv",new st(a,2)),c}static pointsToStrokeWithBuffers(e,t,i,r,s,o,a,c){const A=new Be,h=new Be,f=new Be,d=new Be,m=new Be,E=new Be,x=new Be,y=new Be,p=new Be,C=new Be,I=new Be,B=new Be,R=new Be,M=new Be,T=new Be,P=new Be,J=new Be;i=i!==void 0?i:12,r=r!==void 0?r:.001,c=c!==void 0?c:0,e=me(e);const w=e.length;if(w<2)return 0;const b=e[0].equals(e[w-1]);let K,fe=e[0],Y;const ie=t.strokeWidth/2,te=1/(w-1);let ce=0,U,$,ee,ue,ye=!1,ke=0,V=c*3,O=c*2;k(e[0],e[1],A).multiplyScalar(ie),y.copy(e[0]).sub(A),p.copy(e[0]).add(A),C.copy(y),I.copy(p);for(let ne=1;neNumber.EPSILON){const Re=ie/he;f.multiplyScalar(-Re),d.subVectors(K,fe),m.copy(d).setLength(Re).add(f),P.copy(m).negate();const Z=m.length(),S=d.length();d.divideScalar(S),E.subVectors(Y,K);const D=E.length();switch(E.divideScalar(D),d.dot(P)=r&&he.push(ne[Re]);return he.push(ne[ne.length-1]),he}}}const Kz=new Ru,lp=new $n,ul=new G;async function qz(n,e,t=sr,i,r,s,o){const a=new kr;a.matrixAutoUpdate=!1;const c=await Kz.loadAsync(n);lp.makeEmpty();for(const f of c.paths){const d=Ru.createShapes(f),m=new t;m.transparent=!0,m.depthWrite=!1,m.toneMapped=!1,m.clippingPlanes=i;for(const E of d){const x=new Su(E);x.computeBoundingBox(),lp.union(x.boundingBox);const y=new nn(x,m);y.matrixAutoUpdate=!1,y.raycast=Qu(y,y.raycast,s,r,o),Jl(y,e,o),y.userData.color=f.color,y.scale.y=-1,y.updateMatrix(),a.add(y)}}lp.getSize(ul);const A=ul.x/ul.y,h=1/ul.y;return a.scale.set(1,1,1).multiplyScalar(h),lp.getCenter(ul),ul.y*=-1,a.position.copy(ul).negate().multiplyScalar(h),a.updateMatrix(),Object.assign(a,{aspectRatio:A})}const Ow=new Je,jz=["color","opacity"];q.forwardRef((n,e)=>{const t=Eo(),i=q.useRef(null),r=Pa(i);Wr(t,r,_o);const s=Mo(t,r),o=Ga(s),a=Ps(),c=La(a,o,r.size,r),A=Us(n.panelMaterialClass,n),h=Di(ci.Panel,n.zIndexOffset,A);Ua(t,o,r.size,void 0,r.borderInset,c,h,a,A,So);const f=Na(),d=Yh(a,f),m=Di(ci.Svg,void 0,void 0,h),E=jT(qz,n.src,r.cameraDistance,n.materialClass,d,a,f,m),x=us(t,jz);gi(()=>{var w;const M=x.value;if(M==null)return;const T=M("color"),P=M("opacity");let J;Array.isArray(T)?J=Ow.setRGB(...T):T!=null&&(J=Ow.set(T)),(w=E.value)==null||w.traverse(b=>{if(!(b instanceof nn))return;b.receiveShadow=n.receiveShadow??!1,b.castShadow=n.castShadow??!1;const K=b.material;K.color.copy(J??b.userData.color),K.opacity=P??1})},[E,n.color,n.receiveShadow,n.castShadow]);const y=q.useMemo(()=>Pn(()=>{var M;return(M=E.value)==null?void 0:M.aspectRatio}),[E]),p=Xh();Kh(t,p,r,o,c,n.scrollbarPanelMaterialClass,a,m),Io(t,n),vo(t,n),Co(t,n);const C=Bo(t,n),I=Qo(t,n);as(t,"aspectRatio",y),yo(t),wo(n,r.size),ka(n,c);const B=q.useMemo(()=>{const M=new kr;return M.matrixAutoUpdate=!1,M},[]);gi(()=>{var J;const[M,T,P]=ZT(r.size,r.paddingInset,r.borderInset,r.pixelSize,((J=E.value)==null?void 0:J.aspectRatio)??1);B.position.set(M,T,0),B.scale.setScalar(P),B.updateMatrix()},[r,E]),gi(()=>{const M=E.value;if(M!=null)return B.add(M),()=>B.remove(M)},[E,B]),gi(()=>void(B.visible=!c.value),[]);const R=Kl(r.size,r,h,f);return Fa(e,r,R,p),be.jsxs(xo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:C,activeHandlers:I,children:[be.jsxs(Jh,{listeners:n,node:r,scrollPosition:p,children:[be.jsx("primitive",{object:R}),be.jsx("primitive",{object:B})]}),be.jsx(qh,{globalMatrix:o,node:r,orderInfo:m,scrollPosition:p,children:n.children})]})});const ts=q.forwardRef((n,e)=>{const t=Eo(),i=q.useRef(null),r=Pa(i);Wr(t,r,_o);const s=Mo(t,r),o=Na(),a=Ga(s),c=Ps(),A=La(c,a,r.size,r);wo(n,r.size),ka(n,A);const h=Us(n.panelMaterialClass,n),f=Di(ci.Panel,n.zIndexOffset,h);Ua(t,a,r.size,void 0,r.borderInset,A,f,c,h,So);const d=aD(t,n.children,a,r,A,c,f);Io(t,n),vo(t,n),Co(t,n);const m=Bo(t,n),E=Qo(t,n);as(t,"measureFunc",d),yo(t);const x=Kl(r.size,r,f,o);return Fa(e,r,x),be.jsx(xo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:m,activeHandlers:E,children:be.jsx("primitive",{object:x})})});function Zz(n,e,t){const i=q.useMemo(()=>io(()=>t.value),[t]);Mu(e,r=>{r.focus!=null&&i(n,r.focus)})}const $z=Gt([0,0,0,0]),Hw=1.5,zw=(n,e,t,i)=>{n=="color"&&i("backgroundColor",e)};function eV(n,e,t,i,r,s,o){const a=o??kC(),c=Us(void 0,{castShadow:!1,receiveShadow:!1}),A=Di(ci.Panel,void 0,c,r),h=q.useMemo(()=>Gt(void 0),[]),f=q.useMemo(()=>Xt(()=>{const x=t.value;x==null&&(h.value=void 0),h.value=x;const y=setInterval(()=>h.value=h.peek()==null?x:void 0,500);return()=>clearInterval(y)}),[h,t]);q.useEffect(()=>f,[f]);const d=q.useMemo(()=>new FC(a(A.majorIndex,c),e,Pn(()=>{const x=h.value;return x==null?[0,0]:[Hw,x[2]]}),Pn(()=>{const x=h.value;return x==null?[0,0]:[x[0]-Hw/2,x[1]]}),$z,s,i,A.minorIndex),[a,A,c,e,s,i,h]),m=n.length;Wr(n,d,zw),um(n,d,zw);const E=n.length;for(let x=m;x()=>d.destroy(),[d])}const tV=Gt([0,0,0,0]);function nV(n,e,t,i,r,s){const o=s??kC(),a=q.useMemo(()=>[],[]),c=Us(void 0,{castShadow:!1,receiveShadow:!1}),A=Di(ci.Panel,void 0,c,i),h=q.useMemo(()=>Xt(()=>{const f=e.value,d=f.length;for(let E=0;E{if(R==="backgroundColor")return 11851775;if(R==="backgroundOpacity")return 1};const B=Xt(()=>{I.active.value&&(I.setProperty("backgroundColor",11851775),I.setProperty("backgroundOpacity",1))});a[E]=x={unsubscribe:B,panel:I,offset:C,size:p}}const y=f[E];x.size.value=y.size,x.offset.value=y.position}const m=a.length;for(let E=d;E()=>{h();const f=a.length;for(let d=0;d{if(!(document.activeElement instanceof HTMLElement))return;n.preventDefault();const e=document.activeElement,t=setTimeout(()=>{VI.delete(n.nativeEvent),e.blur()});VI.set(n.nativeEvent,t)}},sV=q.forwardRef((n,e)=>{const t=q.useMemo(()=>Gt(n.defaultValue??""),[]),i=q.useMemo(()=>n.value??t,[n.value,t]),r=q.useRef(n.onValueChange);r.current=n.onValueChange;const s=q.useRef(void 0),o=n.value!=null,a=q.useCallback(ie=>{var te;o||(t.value=ie),(te=r.current)==null||te.call(r,ie)},[t,o]),c=q.useMemo(()=>Gt(void 0),[]),A=oV(i,c,a,n.multiline);A.tabIndex=n.tabIndex??0,A.disabled=n.disabled??!1;const h=q.useMemo(()=>Gt(document.activeElement===A),[]);q.useEffect(()=>{const ie=()=>h.value=document.activeElement===A;return A.addEventListener("focus",ie),A.addEventListener("blur",ie),()=>{A.removeEventListener("focus",ie),A.removeEventListener("blur",ie)}},[A,h]);const f=q.useCallback(ie=>{h.peek()!==ie&&(ie?A.focus():A.blur())},[h,A]),d=Eo(),m=q.useRef(null),E=Pa(m);Wr(d,E,_o);const x=Mo(d,E),y=Na(),p=Ga(x),C=Ps(),I=La(C,p,E.size,E);wo(n,E.size),ka(n,I);const B=Us(n.panelMaterialClass,n),R=Di(ci.Panel,n.zIndexOffset,B);Ua(d,p,E.size,void 0,E.borderInset,I,R,C,B,So);const M=q.useMemo(()=>Gt([]),[]),T=q.useMemo(()=>Gt(void 0),[]),P=nV(p,M,I,R,C);eV(d,p,T,I,R,C);const J=Kl(E.size,E,R,y),w=q.useRef(),b=aD(d,i,p,E,I,C,P,c,M,T,w),K=n.disabled??!1;Io(d,n),vo(d,n),Co(d,n);const fe=Bo(d,n,K?void 0:"text"),Y=Qo(d,n);return Zz(d,n,h),as(d,"measureFunc",b),yo(d),q.useImperativeHandle(e,()=>({focus:()=>f(!0),value:i,borderInset:E.borderInset,paddingInset:E.paddingInset,pixelSize:E.pixelSize,center:E.relativeCenter,size:E.size,interactionPanel:J}),[J,E,i,f]),be.jsx(xo,{groupRef:m,matrix:x,handlers:n,inputHandlers:K?void 0:{onPointerDown:ie=>{var ce;if((ce=n.onPointerDown)==null||ce.call(n,ie),ie.defaultPrevented||ie.uv==null||w.current==null)return;iV(ie.nativeEvent),ie.stopPropagation();const te=Vw(E,ie.uv,w.current);s.current=te,setTimeout(()=>{f(!0),c.value=[te,te],A.setSelectionRange(te,te)})},onPointerUp:ie=>{var te;(te=n.onPointerUp)==null||te.call(n,ie),s.current=void 0},onPointerMove:ie=>{var ee;if((ee=n.onPointerMove)==null||ee.call(n,ie),s.current==null||ie.uv==null||w.current==null)return;ie.stopPropagation();const te=Vw(E,ie.uv,w.current),ce=Math.min(s.current,te),U=Math.max(s.current,te),$=s.current{f(!0),c.value=[ce,U],A.setSelectionRange(ce,U,$)})}},hoverHandlers:fe,activeHandlers:Y,children:be.jsx("primitive",{object:J})})});function oV(n,e,t,i=!1){const r=q.useMemo(()=>{const s=document.createElement(i?"textarea":"input"),o=s.style;o.setProperty("position","absolute"),o.setProperty("left","-1000vw"),o.setProperty("pointerEvents","none"),o.setProperty("opacity","0"),s.addEventListener("input",()=>{t==null||t(s.value),a()});const a=()=>{const{selectionStart:c,selectionEnd:A}=s;if(c==null||A==null){e.value=void 0;return}const h=e.peek();h!=null&&h[0]===c&&h[1]===A||(e.value=[c,A])};return s.addEventListener("keydown",a),s.addEventListener("keyup",a),s.addEventListener("blur",()=>e.value=void 0),document.body.appendChild(s),s},[t,e,i]);return gi(()=>{r.value=pg(n)},[n]),q.useEffect(()=>()=>r.remove(),[r]),r}function Vw({size:n,borderInset:e,paddingInset:t},i,r){const[s,o]=n.peek(),[a,,,c]=e.peek(),[A,,,h]=t.peek(),f=i.x*s-c-h,d=-i.y*o+a+A;return r.getCharIndex(f,d)}const aV=q.forwardRef((n,e)=>{const t=Vh(),i=n.pixelSize??UD,[r,s]=q.useMemo(()=>{const{width:A,height:h}=t.getState().size;return[Gt(A*i),Gt(h*i)]},[i,t]);q.useEffect(()=>{const A=h=>{kT(()=>{r.value=h.size.width*i,s.value=h.size.height*i})};return A(t.getState()),t.subscribe(A)},[i,r,s,t]);const o=RC(A=>A.camera),a=q.useRef(null);Da(()=>{if(a.current==null)return;let A=1;o instanceof jn&&(A=s.peek()/(2*Math.tan(o.fov/360*Math.PI))),a.current.position.z=-A,a.current.updateMatrix()});const c=n.attachCamera??!0;return be.jsxs(be.Fragment,{children:[c&&be.jsx("primitive",{object:o}),NT(be.jsx("group",{ref:a,matrixAutoUpdate:!1,children:be.jsx(Wz,{ref:e,...n,sizeX:r,sizeY:s,children:n.children})}),o)]})}),Ww=new Je,lV=["color","opacity"],cV=new Ru,FD=q.forwardRef((n,e)=>{const t=Eo(),i=q.useRef(null),r=Pa(i);Wr(t,r,_o);const s=Mo(t,r),o=Ga(s),a=Ps(),c=La(a,o,r.size,r),A=Us(n.panelMaterialClass,n),h=Di(ci.Panel,n.zIndexOffset,A);Ua(t,o,r.size,void 0,r.borderInset,c,h,a,A,So);const f=Na(),d=Yh(a,f),m=Di(ci.Svg,void 0,void 0,h),E=q.useMemo(()=>{const B=new kr;B.matrixAutoUpdate=!1;const R=cV.parse(n.text);for(const M of R.paths){const T=Ru.createShapes(M),P=new(n.materialClass??sr);P.transparent=!0,P.depthWrite=!1,P.toneMapped=!1,P.clippingPlanes=d;for(const J of T){const w=new Su(J);w.computeBoundingBox();const b=new nn(w,P);b.matrixAutoUpdate=!1,b.raycast=Qu(b,b.raycast,f,a,m),Jl(b,r.cameraDistance,m),b.userData.color=M.color,b.scale.y=-1,b.updateMatrix(),B.add(b)}}return B},[n.text,n.materialClass,d,f,a,r,m]),x=us(t,lV);gi(()=>{const B=x.value;if(B==null)return;const R=B("color"),M=B("opacity");let T;Array.isArray(R)?T=Ww.setRGB(...R):R!=null&&(T=Ww.set(R)),E.traverse(P=>{if(!(P instanceof nn))return;P.receiveShadow=n.receiveShadow??!1,P.castShadow=n.castShadow??!1;const J=P.material;J.color.copy(T??P.userData.color),J.opacity=M??1})},[E,n.color,n.receiveShadow,n.castShadow]);const y=Xh();Kh(t,y,r,o,c,n.scrollbarPanelMaterialClass,a,m),as(t,"width",n.svgWidth),as(t,"height",n.svgHeight),Io(t,n),vo(t,n),Co(t,n);const p=Bo(t,n),C=Qo(t,n);as(t,"aspectRatio",n.svgWidth/n.svgHeight),yo(t),wo(n,r.size),ka(n,c),gi(()=>{const B=n.svgWidth/n.svgHeight,[R,M,T]=ZT(r.size,r.paddingInset,r.borderInset,r.pixelSize,n.svgWidth/n.svgHeight);E.position.set(R-T*B/2,M+T/2,0),E.scale.setScalar(T/n.svgHeight),E.updateMatrix()},[r,E,n.svgWidth,n.svgHeight]),gi(()=>void(E.visible=!c.value),[]);const I=Kl(r.size,r,h,f);return Fa(e,r,I,y),be.jsxs(xo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:p,activeHandlers:C,children:[be.jsxs(Jh,{listeners:n,node:r,scrollPosition:y,children:[be.jsx("primitive",{object:I}),be.jsx("primitive",{object:E})]}),be.jsx(qh,{globalMatrix:o,node:r,orderInfo:m,scrollPosition:y,children:n.children})]})});q.forwardRef(({children:n,resolution:e=1,frames:t=1/0,renderPriority:i=0,eventPriority:r=0,...s},o)=>{const a=q.useMemo(()=>new Vr(1,1,{minFilter:yn,magFilter:yn,type:Fl}),[]),c=q.useRef(null),A=q.useMemo(()=>({events:{compute:uV.bind(null,c),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);q.useEffect(()=>{if(c.current==null)return;const{size:f}=c.current,d=Xt(()=>{const[m,E]=f.value;a.setSize(m,E),A.size.width=m,A.size.height=E});return()=>{d(),a.dispose()}},[a,A]),q.useImperativeHandle(o,()=>c.current,[]);const h=q.useMemo(()=>new Eh,[]);return be.jsxs(be.Fragment,{children:[NT(be.jsxs(AV,{imageRef:c,renderPriority:i,frames:t,fbo:a,children:[n,be.jsx("group",{onPointerOver:()=>null})]}),h,A),be.jsx(Tz,{...s,src:a.texture,fit:"fill",keepAspectRatio:!1,ref:c})]})});function uV({current:n},e,t,i){var o,a,c;if(n==null||i==null)return!1;i.raycaster.camera||(c=(a=i.events).compute)==null||c.call(a,e,i,(o=i.previousRoot)==null?void 0:o.getState());const[r]=i.raycaster.intersectObject(n.interactionPanel);if(!r)return!1;const s=r.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(s.x*2-1,s.y*2-1),t.camera)}function AV({frames:n,renderPriority:e,children:t,fbo:i,imageRef:r}){const s=Vh();q.useEffect(()=>{if(r.current==null)return;const{size:A}=r.current;return Xt(()=>{const[h,f]=A.value;s.setState({size:{width:h,height:f,top:0,left:0}})})});let o=0,a,c;return Da(A=>{(n===1/0||o{if(A!=null){if(A.value instanceof Un){const d=A.value;return Pn(()=>d.value.length>0?0:void 0)}return A.value.length>0?0:void 0}},[A]);return be.jsx(pi,{height:40,positionType:"relative",overflow:"hidden",...c,children:be.jsxs(mu,{fontSize:14,height:"100%",width:"100%",border:1,paddingX:12,paddingY:8,lineHeight:1.43,opacity:o?.5:void 0,backgroundOpacity:o?.5:void 0,children:[be.jsx(sV,{ref:h,borderRadius:6,backgroundColor:Sn.background,borderColor:Sn.input,focus:{borderColor:Sn.ring},panelMaterialClass:n,multiline:e,value:t,defaultValue:i,onValueChange:r,tabIndex:s,disabled:o}),a!=null&&be.jsx(ts,{color:Sn.mutedForeground,opacity:f,borderOpacity:0,inset:0,positionType:"absolute",children:a})]})})}function gV(n){return be.jsxs(pi,{gap:24,...n,children:[be.jsxs(pi,{gap:8,children:[be.jsx(pi,{gap:4,children:be.jsx(pV,{placeholder:"name@example.com"})}),be.jsx(WI,{children:be.jsx(ts,{children:"Sign In with Email"})})]}),be.jsxs(pi,{positionType:"relative",children:[be.jsx(pi,{positionType:"absolute",inset:0,alignItems:"center",flexDirection:"row",children:be.jsx(pi,{width:"100%",borderTop:1})}),be.jsx(pi,{positionType:"relative",flexDirection:"row",justifyContent:"center",children:be.jsx(ts,{backgroundColor:Sn.background,zIndexOffset:{minor:1},paddingX:8,color:Sn.mutedForeground,fontSize:14,lineHeight:1.43,children:"OR CONTINUE WITH"})})]}),be.jsxs(WI,{variant:"outline",children:[be.jsx(FD,{marginRight:8,width:16,height:16,svgWidth:98,svgHeight:96,text:''}),be.jsx(ts,{children:"GitHub"})]})]})}WH("light");function mV(){return be.jsx(bH,{flat:!0,camera:{position:[0,0,18],fov:35},style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},...rV,children:be.jsx(aV,{backgroundColor:Sn.background,children:be.jsx(hV,{children:be.jsx(mu,{scrollbarWidth:8,scrollbarOpacity:.1,scrollbarBorderRadius:4,children:be.jsx(EV,{})})})})})}function EV(){return be.jsxs(pi,{height:"100%",positionType:"relative",flexDirection:"row",alignItems:"center",children:[be.jsx(WI,{variant:"ghost",positionType:"absolute",positionRight:16,positionTop:16,md:{positionRight:32,positionTop:32},children:be.jsx(ts,{children:"Login"})}),be.jsx(pi,{positionType:"relative",flexGrow:1,flexBasis:0,maxWidth:0,overflow:"hidden",height:"100%",flexDirection:"column",dark:{borderRight:1},padding:0,lg:{padding:40,maxWidth:1e4},backgroundColor:1579035,children:be.jsxs(mu,{color:"white",children:[be.jsxs(pi,{flexDirection:"row",alignItems:"center",children:[be.jsx(FD,{text:` + + `,svgHeight:24,svgWidth:24,width:24,height:24,marginRight:8}),be.jsx(ts,{fontSize:18,lineHeight:1.5555,fontWeight:"medium",children:"Acme Inc"})]}),be.jsx(pi,{marginTop:"auto",children:be.jsxs(pi,{gap:8,children:[be.jsx(ts,{fontSize:18,lineHeight:1.555,children:'"Culpa eiusmod ut ipsum sunt velit labore minim eu. Occaecat magna mollit aliqua cupidatat."'}),be.jsx(ts,{fontSize:14,lineHeight:1.43,children:"Max Mustermann"})]})})]})}),be.jsx(pi,{flexBasis:0,flexGrow:1,padding:16,lg:{padding:32},children:be.jsxs(pi,{marginX:"auto",width:"100%",justifyContent:"center",gap:24,sm:{width:350},children:[be.jsx(pi,{gap:8,children:be.jsxs(mu,{horizontalAlign:"center",children:[be.jsx(ts,{fontSize:24,lineHeight:1.3333,fontWeight:"semi-bold",letterSpacing:-.4,children:"Create an account"}),be.jsx(ts,{fontSize:14,lineHeight:1.43,color:Sn.mutedForeground,children:"Enter your email below to create your account"})]})}),be.jsx(gV,{}),be.jsx(ts,{paddingX:32,horizontalAlign:"center",fontSize:14,lineHeight:1.43,color:Sn.mutedForeground,children:"By clicking continue, you agree to our Terms of Service and Privacy Policy."})]})})]})}oQ(document.getElementById("root")).render(be.jsx(q.StrictMode,{children:be.jsx(mV,{})})); diff --git a/examples/auth/index.html b/examples/auth/index.html new file mode 100644 index 00000000..1f14e9f6 --- /dev/null +++ b/examples/auth/index.html @@ -0,0 +1,13 @@ + + + + + + + Document + + + +
+ + diff --git a/examples/card/assets/index-2ubHsGs2.js b/examples/card/assets/index-2ubHsGs2.js new file mode 100644 index 00000000..12ca1eaa --- /dev/null +++ b/examples/card/assets/index-2ubHsGs2.js @@ -0,0 +1,4269 @@ +var J2=Object.defineProperty;var q2=(g,A,I)=>A in g?J2(g,A,{enumerable:!0,configurable:!0,writable:!0,value:I}):g[A]=I;var iI=(g,A,I)=>(q2(g,typeof A!="symbol"?A+"":A,I),I);(function(){const A=document.createElement("link").relList;if(A&&A.supports&&A.supports("modulepreload"))return;for(const B of document.querySelectorAll('link[rel="modulepreload"]'))C(B);new MutationObserver(B=>{for(const i of B)if(i.type==="childList")for(const Q of i.addedNodes)Q.tagName==="LINK"&&Q.rel==="modulepreload"&&C(Q)}).observe(document,{childList:!0,subtree:!0});function I(B){const i={};return B.integrity&&(i.integrity=B.integrity),B.referrerPolicy&&(i.referrerPolicy=B.referrerPolicy),B.crossOrigin==="use-credentials"?i.credentials="include":B.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function C(B){if(B.ep)return;B.ep=!0;const i=I(B);fetch(B.href,i)}})();function Xh(g){return g&&g.__esModule&&Object.prototype.hasOwnProperty.call(g,"default")?g.default:g}var cK={exports:{}},zh={},DK={exports:{}},sg={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Hr=Symbol.for("react.element"),m2=Symbol.for("react.portal"),L2=Symbol.for("react.fragment"),Y2=Symbol.for("react.strict_mode"),H2=Symbol.for("react.profiler"),T2=Symbol.for("react.provider"),x2=Symbol.for("react.context"),v2=Symbol.for("react.forward_ref"),b2=Symbol.for("react.suspense"),O2=Symbol.for("react.memo"),_2=Symbol.for("react.lazy"),ZU=Symbol.iterator;function Z2(g){return g===null||typeof g!="object"?null:(g=ZU&&g[ZU]||g["@@iterator"],typeof g=="function"?g:null)}var hK={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},wK=Object.assign,SK={};function ss(g,A,I){this.props=g,this.context=A,this.refs=SK,this.updater=I||hK}ss.prototype.isReactComponent={};ss.prototype.setState=function(g,A){if(typeof g!="object"&&typeof g!="function"&&g!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,g,A,"setState")};ss.prototype.forceUpdate=function(g){this.updater.enqueueForceUpdate(this,g,"forceUpdate")};function GK(){}GK.prototype=ss.prototype;function yk(g,A,I){this.props=g,this.context=A,this.refs=SK,this.updater=I||hK}var uk=yk.prototype=new GK;uk.constructor=yk;wK(uk,ss.prototype);uk.isPureReactComponent=!0;var PU=Array.isArray,yK=Object.prototype.hasOwnProperty,kk={current:null},uK={key:!0,ref:!0,__self:!0,__source:!0};function kK(g,A,I){var C,B={},i=null,Q=null;if(A!=null)for(C in A.ref!==void 0&&(Q=A.ref),A.key!==void 0&&(i=""+A.key),A)yK.call(A,C)&&!uK.hasOwnProperty(C)&&(B[C]=A[C]);var e=arguments.length-2;if(e===1)B.children=I;else if(1>>1,NA=v[SA];if(0>>1;SAB(b,gA))YB(x,b)?(v[SA]=x,v[Y]=gA,SA=Y):(v[SA]=b,v[j]=gA,SA=j);else if(YB(x,gA))v[SA]=x,v[Y]=gA,SA=Y;else break A}}return CA}function B(v,CA){var gA=v.sortIndex-CA.sortIndex;return gA!==0?gA:v.id-CA.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;g.unstable_now=function(){return i.now()}}else{var Q=Date,e=Q.now();g.unstable_now=function(){return Q.now()-e}}var E=[],t=[],n=1,a=null,r=3,l=!1,D=!1,G=!1,h=typeof setTimeout=="function"?setTimeout:null,c=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(v){for(var CA=I(t);CA!==null;){if(CA.callback===null)C(t);else if(CA.startTime<=v)C(t),CA.sortIndex=CA.expirationTime,A(E,CA);else break;CA=I(t)}}function k(v){if(G=!1,S(v),!D)if(I(E)!==null)D=!0,iA(N);else{var CA=I(t);CA!==null&&wA(k,CA.startTime-v)}}function N(v,CA){D=!1,G&&(G=!1,c(q),q=-1),l=!0;var gA=r;try{for(S(CA),a=I(E);a!==null&&(!(a.expirationTime>CA)||v&&!K());){var SA=a.callback;if(typeof SA=="function"){a.callback=null,r=a.priorityLevel;var NA=SA(a.expirationTime<=CA);CA=g.unstable_now(),typeof NA=="function"?a.callback=NA:a===I(E)&&C(E),S(CA)}else C(E);a=I(E)}if(a!==null)var WA=!0;else{var j=I(t);j!==null&&wA(k,j.startTime-CA),WA=!1}return WA}finally{a=null,r=gA,l=!1}}var M=!1,F=null,q=-1,Z=5,U=-1;function K(){return!(g.unstable_now()-Uv||125SA?(v.sortIndex=gA,A(t,v),I(E)===null&&v===I(t)&&(G?(c(q),q=-1):G=!0,wA(k,gA-SA))):(v.sortIndex=NA,A(E,v),D||l||(D=!0,iA(N))),v},g.unstable_shouldYield=K,g.unstable_wrapCallback=function(v){var CA=r;return function(){var gA=r;r=CA;try{return v.apply(this,arguments)}finally{r=gA}}}})(UK);pK.exports=UK;var CT=pK.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var NK=T,ai=CT;function gI(g){for(var A="https://reactjs.org/docs/error-decoder.html?invariant="+g,I=1;I"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),l0=Object.prototype.hasOwnProperty,BT=/^[: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]*$/,jU={},VU={};function iT(g){return l0.call(VU,g)?!0:l0.call(jU,g)?!1:BT.test(g)?VU[g]=!0:(jU[g]=!0,!1)}function QT(g,A,I,C){if(I!==null&&I.type===0)return!1;switch(typeof A){case"function":case"symbol":return!0;case"boolean":return C?!1:I!==null?!I.acceptsBooleans:(g=g.toLowerCase().slice(0,5),g!=="data-"&&g!=="aria-");default:return!1}}function eT(g,A,I,C){if(A===null||typeof A>"u"||QT(g,A,I,C))return!0;if(C)return!1;if(I!==null)switch(I.type){case 3:return!A;case 4:return A===!1;case 5:return isNaN(A);case 6:return isNaN(A)||1>A}return!1}function HB(g,A,I,C,B,i,Q){this.acceptsBooleans=A===2||A===3||A===4,this.attributeName=C,this.attributeNamespace=B,this.mustUseProperty=I,this.propertyName=g,this.type=A,this.sanitizeURL=i,this.removeEmptyString=Q}var tB={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(g){tB[g]=new HB(g,0,!1,g,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(g){var A=g[0];tB[A]=new HB(A,1,!1,g[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(g){tB[g]=new HB(g,2,!1,g.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(g){tB[g]=new HB(g,2,!1,g,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(g){tB[g]=new HB(g,3,!1,g.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(g){tB[g]=new HB(g,3,!0,g,null,!1,!1)});["capture","download"].forEach(function(g){tB[g]=new HB(g,4,!1,g,null,!1,!1)});["cols","rows","size","span"].forEach(function(g){tB[g]=new HB(g,6,!1,g,null,!1,!1)});["rowSpan","start"].forEach(function(g){tB[g]=new HB(g,5,!1,g.toLowerCase(),null,!1,!1)});var Mk=/[\-:]([a-z])/g;function pk(g){return g[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(g){var A=g.replace(Mk,pk);tB[A]=new HB(A,1,!1,g,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(g){var A=g.replace(Mk,pk);tB[A]=new HB(A,1,!1,g,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(g){var A=g.replace(Mk,pk);tB[A]=new HB(A,1,!1,g,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(g){tB[g]=new HB(g,1,!1,g.toLowerCase(),null,!1,!1)});tB.xlinkHref=new HB("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(g){tB[g]=new HB(g,1,!1,g.toLowerCase(),null,!0,!0)});function Uk(g,A,I,C){var B=tB.hasOwnProperty(A)?tB[A]:null;(B!==null?B.type!==0:C||!(2e||B[Q]!==i[e]){var E=` +`+B[Q].replace(" at new "," at ");return g.displayName&&E.includes("")&&(E=E.replace("",g.displayName)),E}while(1<=Q&&0<=e);break}}}finally{MG=!1,Error.prepareStackTrace=I}return(g=g?g.displayName||g.name:"")?Ga(g):""}function ET(g){switch(g.tag){case 5:return Ga(g.type);case 16:return Ga("Lazy");case 13:return Ga("Suspense");case 19:return Ga("SuspenseList");case 0:case 2:case 15:return g=pG(g.type,!1),g;case 11:return g=pG(g.type.render,!1),g;case 1:return g=pG(g.type,!0),g;default:return""}}function w0(g){if(g==null)return null;if(typeof g=="function")return g.displayName||g.name||null;if(typeof g=="string")return g;switch(g){case hn:return"Fragment";case Dn:return"Portal";case c0:return"Profiler";case Nk:return"StrictMode";case D0:return"Suspense";case h0:return"SuspenseList"}if(typeof g=="object")switch(g.$$typeof){case RK:return(g.displayName||"Context")+".Consumer";case fK:return(g._context.displayName||"Context")+".Provider";case Fk:var A=g.render;return g=g.displayName,g||(g=A.displayName||A.name||"",g=g!==""?"ForwardRef("+g+")":"ForwardRef"),g;case fk:return A=g.displayName||null,A!==null?A:w0(g.type)||"Memo";case oE:A=g._payload,g=g._init;try{return w0(g(A))}catch{}}return null}function tT(g){var A=g.type;switch(g.tag){case 24:return"Cache";case 9:return(A.displayName||"Context")+".Consumer";case 10:return(A._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return g=A.render,g=g.displayName||g.name||"",A.displayName||(g!==""?"ForwardRef("+g+")":"ForwardRef");case 7:return"Fragment";case 5:return A;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return w0(A);case 8:return A===Nk?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof A=="function")return A.displayName||A.name||null;if(typeof A=="string")return A}return null}function LE(g){switch(typeof g){case"boolean":case"number":case"string":case"undefined":return g;case"object":return g;default:return""}}function JK(g){var A=g.type;return(g=g.nodeName)&&g.toLowerCase()==="input"&&(A==="checkbox"||A==="radio")}function oT(g){var A=JK(g)?"checked":"value",I=Object.getOwnPropertyDescriptor(g.constructor.prototype,A),C=""+g[A];if(!g.hasOwnProperty(A)&&typeof I<"u"&&typeof I.get=="function"&&typeof I.set=="function"){var B=I.get,i=I.set;return Object.defineProperty(g,A,{configurable:!0,get:function(){return B.call(this)},set:function(Q){C=""+Q,i.call(this,Q)}}),Object.defineProperty(g,A,{enumerable:I.enumerable}),{getValue:function(){return C},setValue:function(Q){C=""+Q},stopTracking:function(){g._valueTracker=null,delete g[A]}}}}function Qc(g){g._valueTracker||(g._valueTracker=oT(g))}function qK(g){if(!g)return!1;var A=g._valueTracker;if(!A)return!0;var I=A.getValue(),C="";return g&&(C=JK(g)?g.checked?"true":"false":g.value),g=C,g!==I?(A.setValue(g),!0):!1}function ih(g){if(g=g||(typeof document<"u"?document:void 0),typeof g>"u")return null;try{return g.activeElement||g.body}catch{return g.body}}function S0(g,A){var I=A.checked;return iC({},A,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:I??g._wrapperState.initialChecked})}function zU(g,A){var I=A.defaultValue==null?"":A.defaultValue,C=A.checked!=null?A.checked:A.defaultChecked;I=LE(A.value!=null?A.value:I),g._wrapperState={initialChecked:C,initialValue:I,controlled:A.type==="checkbox"||A.type==="radio"?A.checked!=null:A.value!=null}}function mK(g,A){A=A.checked,A!=null&&Uk(g,"checked",A,!1)}function G0(g,A){mK(g,A);var I=LE(A.value),C=A.type;if(I!=null)C==="number"?(I===0&&g.value===""||g.value!=I)&&(g.value=""+I):g.value!==""+I&&(g.value=""+I);else if(C==="submit"||C==="reset"){g.removeAttribute("value");return}A.hasOwnProperty("value")?y0(g,A.type,I):A.hasOwnProperty("defaultValue")&&y0(g,A.type,LE(A.defaultValue)),A.checked==null&&A.defaultChecked!=null&&(g.defaultChecked=!!A.defaultChecked)}function $U(g,A,I){if(A.hasOwnProperty("value")||A.hasOwnProperty("defaultValue")){var C=A.type;if(!(C!=="submit"&&C!=="reset"||A.value!==void 0&&A.value!==null))return;A=""+g._wrapperState.initialValue,I||A===g.value||(g.value=A),g.defaultValue=A}I=g.name,I!==""&&(g.name=""),g.defaultChecked=!!g._wrapperState.initialChecked,I!==""&&(g.name=I)}function y0(g,A,I){(A!=="number"||ih(g.ownerDocument)!==g)&&(I==null?g.defaultValue=""+g._wrapperState.initialValue:g.defaultValue!==""+I&&(g.defaultValue=""+I))}var ya=Array.isArray;function Jn(g,A,I,C){if(g=g.options,A){A={};for(var B=0;B"+A.valueOf().toString()+"",A=ec.firstChild;g.firstChild;)g.removeChild(g.firstChild);for(;A.firstChild;)g.appendChild(A.firstChild)}});function $a(g,A){if(A){var I=g.firstChild;if(I&&I===g.lastChild&&I.nodeType===3){I.nodeValue=A;return}}g.textContent=A}var qa={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},nT=["Webkit","ms","Moz","O"];Object.keys(qa).forEach(function(g){nT.forEach(function(A){A=A+g.charAt(0).toUpperCase()+g.substring(1),qa[A]=qa[g]})});function TK(g,A,I){return A==null||typeof A=="boolean"||A===""?"":I||typeof A!="number"||A===0||qa.hasOwnProperty(g)&&qa[g]?(""+A).trim():A+"px"}function xK(g,A){g=g.style;for(var I in A)if(A.hasOwnProperty(I)){var C=I.indexOf("--")===0,B=TK(I,A[I],C);I==="float"&&(I="cssFloat"),C?g.setProperty(I,B):g[I]=B}}var sT=iC({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function d0(g,A){if(A){if(sT[g]&&(A.children!=null||A.dangerouslySetInnerHTML!=null))throw Error(gI(137,g));if(A.dangerouslySetInnerHTML!=null){if(A.children!=null)throw Error(gI(60));if(typeof A.dangerouslySetInnerHTML!="object"||!("__html"in A.dangerouslySetInnerHTML))throw Error(gI(61))}if(A.style!=null&&typeof A.style!="object")throw Error(gI(62))}}function M0(g,A){if(g.indexOf("-")===-1)return typeof A.is=="string";switch(g){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!1;default:return!0}}var p0=null;function Rk(g){return g=g.target||g.srcElement||window,g.correspondingUseElement&&(g=g.correspondingUseElement),g.nodeType===3?g.parentNode:g}var U0=null,qn=null,mn=null;function gN(g){if(g=vr(g)){if(typeof U0!="function")throw Error(gI(280));var A=g.stateNode;A&&(A=Cw(A),U0(g.stateNode,g.type,A))}}function vK(g){qn?mn?mn.push(g):mn=[g]:qn=g}function bK(){if(qn){var g=qn,A=mn;if(mn=qn=null,gN(g),A)for(g=0;g>>=0,g===0?32:31-(uT(g)/kT|0)|0}var Ec=64,tc=4194304;function ua(g){switch(g&-g){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return g&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return g&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return g}}function th(g,A){var I=g.pendingLanes;if(I===0)return 0;var C=0,B=g.suspendedLanes,i=g.pingedLanes,Q=I&268435455;if(Q!==0){var e=Q&~B;e!==0?C=ua(e):(i&=Q,i!==0&&(C=ua(i)))}else Q=I&~B,Q!==0?C=ua(Q):i!==0&&(C=ua(i));if(C===0)return 0;if(A!==0&&A!==C&&!(A&B)&&(B=C&-C,i=A&-A,B>=i||B===16&&(i&4194240)!==0))return A;if(C&4&&(C|=I&16),A=g.entangledLanes,A!==0)for(g=g.entanglements,A&=C;0I;I++)A.push(g);return A}function Tr(g,A,I){g.pendingLanes|=A,A!==536870912&&(g.suspendedLanes=0,g.pingedLanes=0),g=g.eventTimes,A=31-iQ(A),g[A]=I}function UT(g,A){var I=g.pendingLanes&~A;g.pendingLanes=A,g.suspendedLanes=0,g.pingedLanes=0,g.expiredLanes&=A,g.mutableReadLanes&=A,g.entangledLanes&=A,A=g.entanglements;var C=g.eventTimes;for(g=g.expirationTimes;0=La),nN=" ",sN=!1;function tJ(g,A){switch(g){case"keyup":return gx.indexOf(A.keyCode)!==-1;case"keydown":return A.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function oJ(g){return g=g.detail,typeof g=="object"&&"data"in g?g.data:null}var wn=!1;function Bx(g,A){switch(g){case"compositionend":return oJ(A);case"keypress":return A.which!==32?null:(sN=!0,nN);case"textInput":return g=A.data,g===nN&&sN?null:g;default:return null}}function ix(g,A){if(wn)return g==="compositionend"||!Tk&&tJ(g,A)?(g=eJ(),JD=Lk=DE=null,wn=!1,g):null;switch(g){case"paste":return null;case"keypress":if(!(A.ctrlKey||A.altKey||A.metaKey)||A.ctrlKey&&A.altKey){if(A.char&&1=A)return{node:I,offset:A-g};g=C}A:{for(;I;){if(I.nextSibling){I=I.nextSibling;break A}I=I.parentNode}I=void 0}I=cN(I)}}function rJ(g,A){return g&&A?g===A?!0:g&&g.nodeType===3?!1:A&&A.nodeType===3?rJ(g,A.parentNode):"contains"in g?g.contains(A):g.compareDocumentPosition?!!(g.compareDocumentPosition(A)&16):!1:!1}function lJ(){for(var g=window,A=ih();A instanceof g.HTMLIFrameElement;){try{var I=typeof A.contentWindow.location.href=="string"}catch{I=!1}if(I)g=A.contentWindow;else break;A=ih(g.document)}return A}function xk(g){var A=g&&g.nodeName&&g.nodeName.toLowerCase();return A&&(A==="input"&&(g.type==="text"||g.type==="search"||g.type==="tel"||g.type==="url"||g.type==="password")||A==="textarea"||g.contentEditable==="true")}function rx(g){var A=lJ(),I=g.focusedElem,C=g.selectionRange;if(A!==I&&I&&I.ownerDocument&&rJ(I.ownerDocument.documentElement,I)){if(C!==null&&xk(I)){if(A=C.start,g=C.end,g===void 0&&(g=A),"selectionStart"in I)I.selectionStart=A,I.selectionEnd=Math.min(g,I.value.length);else if(g=(A=I.ownerDocument||document)&&A.defaultView||window,g.getSelection){g=g.getSelection();var B=I.textContent.length,i=Math.min(C.start,B);C=C.end===void 0?i:Math.min(C.end,B),!g.extend&&i>C&&(B=C,C=i,i=B),B=DN(I,i);var Q=DN(I,C);B&&Q&&(g.rangeCount!==1||g.anchorNode!==B.node||g.anchorOffset!==B.offset||g.focusNode!==Q.node||g.focusOffset!==Q.offset)&&(A=A.createRange(),A.setStart(B.node,B.offset),g.removeAllRanges(),i>C?(g.addRange(A),g.extend(Q.node,Q.offset)):(A.setEnd(Q.node,Q.offset),g.addRange(A)))}}for(A=[],g=I;g=g.parentNode;)g.nodeType===1&&A.push({element:g,left:g.scrollLeft,top:g.scrollTop});for(typeof I.focus=="function"&&I.focus(),I=0;I=document.documentMode,Sn=null,J0=null,Ha=null,q0=!1;function hN(g,A,I){var C=I.window===I?I.document:I.nodeType===9?I:I.ownerDocument;q0||Sn==null||Sn!==ih(C)||(C=Sn,"selectionStart"in C&&xk(C)?C={start:C.selectionStart,end:C.selectionEnd}:(C=(C.ownerDocument&&C.ownerDocument.defaultView||window).getSelection(),C={anchorNode:C.anchorNode,anchorOffset:C.anchorOffset,focusNode:C.focusNode,focusOffset:C.focusOffset}),Ha&&ir(Ha,C)||(Ha=C,C=sh(J0,"onSelect"),0un||(g.current=x0[un],x0[un]=null,un--)}function Tg(g,A){un++,x0[un]=g.current,g.current=A}var YE={},uB=ZE(YE),PB=ZE(!1),Io=YE;function Wn(g,A){var I=g.type.contextTypes;if(!I)return YE;var C=g.stateNode;if(C&&C.__reactInternalMemoizedUnmaskedChildContext===A)return C.__reactInternalMemoizedMaskedChildContext;var B={},i;for(i in I)B[i]=A[i];return C&&(g=g.stateNode,g.__reactInternalMemoizedUnmaskedChildContext=A,g.__reactInternalMemoizedMaskedChildContext=B),B}function WB(g){return g=g.childContextTypes,g!=null}function rh(){Pg(PB),Pg(uB)}function dN(g,A,I){if(uB.current!==YE)throw Error(gI(168));Tg(uB,A),Tg(PB,I)}function kJ(g,A,I){var C=g.stateNode;if(A=A.childContextTypes,typeof C.getChildContext!="function")return I;C=C.getChildContext();for(var B in C)if(!(B in A))throw Error(gI(108,tT(g)||"Unknown",B));return iC({},I,C)}function lh(g){return g=(g=g.stateNode)&&g.__reactInternalMemoizedMergedChildContext||YE,Io=uB.current,Tg(uB,g),Tg(PB,PB.current),!0}function MN(g,A,I){var C=g.stateNode;if(!C)throw Error(gI(169));I?(g=kJ(g,A,Io),C.__reactInternalMemoizedMergedChildContext=g,Pg(PB),Pg(uB),Tg(uB,g)):Pg(PB),Tg(PB,I)}var ie=null,Bw=!1,xG=!1;function dJ(g){ie===null?ie=[g]:ie.push(g)}function Mx(g){Bw=!0,dJ(g)}function PE(){if(!xG&&ie!==null){xG=!0;var g=0,A=Kg;try{var I=ie;for(Kg=1;g>=Q,B-=Q,Ee=1<<32-iQ(A)+B|I<q?(Z=F,F=null):Z=F.sibling;var U=r(c,F,S[q],k);if(U===null){F===null&&(F=Z);break}g&&F&&U.alternate===null&&A(c,F),y=i(U,y,q),M===null?N=U:M.sibling=U,M=U,F=Z}if(q===S.length)return I(c,F),zg&&Rt(c,q),N;if(F===null){for(;qq?(Z=F,F=null):Z=F.sibling;var K=r(c,F,U.value,k);if(K===null){F===null&&(F=Z);break}g&&F&&K.alternate===null&&A(c,F),y=i(K,y,q),M===null?N=K:M.sibling=K,M=K,F=Z}if(U.done)return I(c,F),zg&&Rt(c,q),N;if(F===null){for(;!U.done;q++,U=S.next())U=a(c,U.value,k),U!==null&&(y=i(U,y,q),M===null?N=U:M.sibling=U,M=U);return zg&&Rt(c,q),N}for(F=C(c,F);!U.done;q++,U=S.next())U=l(F,c,q,U.value,k),U!==null&&(g&&U.alternate!==null&&F.delete(U.key===null?q:U.key),y=i(U,y,q),M===null?N=U:M.sibling=U,M=U);return g&&F.forEach(function(z){return A(c,z)}),zg&&Rt(c,q),N}function h(c,y,S,k){if(typeof S=="object"&&S!==null&&S.type===hn&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case ic:A:{for(var N=S.key,M=y;M!==null;){if(M.key===N){if(N=S.type,N===hn){if(M.tag===7){I(c,M.sibling),y=B(M,S.props.children),y.return=c,c=y;break A}}else if(M.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===oE&&KN(N)===M.type){I(c,M.sibling),y=B(M,S.props),y.ref=Vs(c,M,S),y.return=c,c=y;break A}I(c,M);break}else A(c,M);M=M.sibling}S.type===hn?(y=jt(S.props.children,c.mode,k,S.key),y.return=c,c=y):(k=vD(S.type,S.key,S.props,null,c.mode,k),k.ref=Vs(c,y,S),k.return=c,c=k)}return Q(c);case Dn:A:{for(M=S.key;y!==null;){if(y.key===M)if(y.tag===4&&y.stateNode.containerInfo===S.containerInfo&&y.stateNode.implementation===S.implementation){I(c,y.sibling),y=B(y,S.children||[]),y.return=c,c=y;break A}else{I(c,y);break}else A(c,y);y=y.sibling}y=jG(S,c.mode,k),y.return=c,c=y}return Q(c);case oE:return M=S._init,h(c,y,M(S._payload),k)}if(ya(S))return D(c,y,S,k);if(_s(S))return G(c,y,S,k);cc(c,S)}return typeof S=="string"&&S!==""||typeof S=="number"?(S=""+S,y!==null&&y.tag===6?(I(c,y.sibling),y=B(y,S),y.return=c,c=y):(I(c,y),y=WG(S,c.mode,k),y.return=c,c=y),Q(c)):I(c,y)}return h}var Vn=KJ(!0),JJ=KJ(!1),br={},RQ=ZE(br),tr=ZE(br),or=ZE(br);function xt(g){if(g===br)throw Error(gI(174));return g}function Vk(g,A){switch(Tg(or,A),Tg(tr,g),Tg(RQ,br),g=A.nodeType,g){case 9:case 11:A=(A=A.documentElement)?A.namespaceURI:k0(null,"");break;default:g=g===8?A.parentNode:A,A=g.namespaceURI||null,g=g.tagName,A=k0(A,g)}Pg(RQ),Tg(RQ,A)}function Xn(){Pg(RQ),Pg(tr),Pg(or)}function qJ(g){xt(or.current);var A=xt(RQ.current),I=k0(A,g.type);A!==I&&(Tg(tr,g),Tg(RQ,I))}function Xk(g){tr.current===g&&(Pg(RQ),Pg(tr))}var gC=ZE(0);function Gh(g){for(var A=g;A!==null;){if(A.tag===13){var I=A.memoizedState;if(I!==null&&(I=I.dehydrated,I===null||I.data==="$?"||I.data==="$!"))return A}else if(A.tag===19&&A.memoizedProps.revealOrder!==void 0){if(A.flags&128)return A}else if(A.child!==null){A.child.return=A,A=A.child;continue}if(A===g)break;for(;A.sibling===null;){if(A.return===null||A.return===g)return null;A=A.return}A.sibling.return=A.return,A=A.sibling}return null}var vG=[];function zk(){for(var g=0;gI?I:4,g(!0);var C=bG.transition;bG.transition={};try{g(!1),A()}finally{Kg=I,bG.transition=C}}function XJ(){return Ti().memoizedState}function Fx(g,A,I){var C=pE(g);if(I={lane:C,action:I,hasEagerState:!1,eagerState:null,next:null},zJ(g))$J(A,I);else if(I=NJ(g,A,I,C),I!==null){var B=mB();QQ(I,g,C,B),Aq(I,A,C)}}function fx(g,A,I){var C=pE(g),B={lane:C,action:I,hasEagerState:!1,eagerState:null,next:null};if(zJ(g))$J(A,B);else{var i=g.alternate;if(g.lanes===0&&(i===null||i.lanes===0)&&(i=A.lastRenderedReducer,i!==null))try{var Q=A.lastRenderedState,e=i(Q,I);if(B.hasEagerState=!0,B.eagerState=e,tQ(e,Q)){var E=A.interleaved;E===null?(B.next=B,Wk(A)):(B.next=E.next,E.next=B),A.interleaved=B;return}}catch{}finally{}I=NJ(g,A,B,C),I!==null&&(B=mB(),QQ(I,g,C,B),Aq(I,A,C))}}function zJ(g){var A=g.alternate;return g===BC||A!==null&&A===BC}function $J(g,A){Ta=yh=!0;var I=g.pending;I===null?A.next=A:(A.next=I.next,I.next=A),g.pending=A}function Aq(g,A,I){if(I&4194240){var C=A.lanes;C&=g.pendingLanes,I|=C,A.lanes=I,Jk(g,I)}}var uh={readContext:Hi,useCallback:cB,useContext:cB,useEffect:cB,useImperativeHandle:cB,useInsertionEffect:cB,useLayoutEffect:cB,useMemo:cB,useReducer:cB,useRef:cB,useState:cB,useDebugValue:cB,useDeferredValue:cB,useTransition:cB,useMutableSource:cB,useSyncExternalStore:cB,useId:cB,unstable_isNewReconciler:!1},Rx={readContext:Hi,useCallback:function(g,A){return dQ().memoizedState=[g,A===void 0?null:A],g},useContext:Hi,useEffect:qN,useImperativeHandle:function(g,A,I){return I=I!=null?I.concat([g]):null,YD(4194308,4,ZJ.bind(null,A,g),I)},useLayoutEffect:function(g,A){return YD(4194308,4,g,A)},useInsertionEffect:function(g,A){return YD(4,2,g,A)},useMemo:function(g,A){var I=dQ();return A=A===void 0?null:A,g=g(),I.memoizedState=[g,A],g},useReducer:function(g,A,I){var C=dQ();return A=I!==void 0?I(A):A,C.memoizedState=C.baseState=A,g={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:g,lastRenderedState:A},C.queue=g,g=g.dispatch=Fx.bind(null,BC,g),[C.memoizedState,g]},useRef:function(g){var A=dQ();return g={current:g},A.memoizedState=g},useState:JN,useDebugValue:Cd,useDeferredValue:function(g){return dQ().memoizedState=g},useTransition:function(){var g=JN(!1),A=g[0];return g=Nx.bind(null,g[1]),dQ().memoizedState=g,[A,g]},useMutableSource:function(){},useSyncExternalStore:function(g,A,I){var C=BC,B=dQ();if(zg){if(I===void 0)throw Error(gI(407));I=I()}else{if(I=A(),XC===null)throw Error(gI(349));Co&30||YJ(C,A,I)}B.memoizedState=I;var i={value:I,getSnapshot:A};return B.queue=i,qN(TJ.bind(null,C,i,g),[g]),C.flags|=2048,ar(9,HJ.bind(null,C,i,I,A),void 0,null),I},useId:function(){var g=dQ(),A=XC.identifierPrefix;if(zg){var I=te,C=Ee;I=(C&~(1<<32-iQ(C)-1)).toString(32)+I,A=":"+A+"R"+I,I=nr++,0<\/script>",g=g.removeChild(g.firstChild)):typeof C.is=="string"?g=Q.createElement(I,{is:C.is}):(g=Q.createElement(I),I==="select"&&(Q=g,C.multiple?Q.multiple=!0:C.size&&(Q.size=C.size))):g=Q.createElementNS(g,I),g[NQ]=A,g[Er]=C,tq(g,A,!1,!1),A.stateNode=g;A:{switch(Q=M0(I,C),I){case"dialog":vg("cancel",g),vg("close",g),B=C;break;case"iframe":case"object":case"embed":vg("load",g),B=C;break;case"video":case"audio":for(B=0;B$n&&(A.flags|=128,C=!0,Xs(i,!1),A.lanes=4194304)}else{if(!C)if(g=Gh(Q),g!==null){if(A.flags|=128,C=!0,I=g.updateQueue,I!==null&&(A.updateQueue=I,A.flags|=4),Xs(i,!0),i.tail===null&&i.tailMode==="hidden"&&!Q.alternate&&!zg)return DB(A),null}else 2*DC()-i.renderingStartTime>$n&&I!==1073741824&&(A.flags|=128,C=!0,Xs(i,!1),A.lanes=4194304);i.isBackwards?(Q.sibling=A.child,A.child=Q):(I=i.last,I!==null?I.sibling=Q:A.child=Q,i.last=Q)}return i.tail!==null?(A=i.tail,i.rendering=A,i.tail=A.sibling,i.renderingStartTime=DC(),A.sibling=null,I=gC.current,Tg(gC,C?I&1|2:I&1),A):(DB(A),null);case 22:case 23:return td(),C=A.memoizedState!==null,g!==null&&g.memoizedState!==null!==C&&(A.flags|=8192),C&&A.mode&1?Qi&1073741824&&(DB(A),A.subtreeFlags&6&&(A.flags|=8192)):DB(A),null;case 24:return null;case 25:return null}throw Error(gI(156,A.tag))}function Tx(g,A){switch(bk(A),A.tag){case 1:return WB(A.type)&&rh(),g=A.flags,g&65536?(A.flags=g&-65537|128,A):null;case 3:return Xn(),Pg(PB),Pg(uB),zk(),g=A.flags,g&65536&&!(g&128)?(A.flags=g&-65537|128,A):null;case 5:return Xk(A),null;case 13:if(Pg(gC),g=A.memoizedState,g!==null&&g.dehydrated!==null){if(A.alternate===null)throw Error(gI(340));jn()}return g=A.flags,g&65536?(A.flags=g&-65537|128,A):null;case 19:return Pg(gC),null;case 4:return Xn(),null;case 10:return Pk(A.type._context),null;case 22:case 23:return td(),null;case 24:return null;default:return null}}var hc=!1,GB=!1,xx=typeof WeakSet=="function"?WeakSet:Set,yI=null;function pn(g,A){var I=g.ref;if(I!==null)if(typeof I=="function")try{I(null)}catch(C){oC(g,A,C)}else I.current=null}function $0(g,A,I){try{I()}catch(C){oC(g,A,C)}}var ON=!1;function vx(g,A){if(m0=oh,g=lJ(),xk(g)){if("selectionStart"in g)var I={start:g.selectionStart,end:g.selectionEnd};else A:{I=(I=g.ownerDocument)&&I.defaultView||window;var C=I.getSelection&&I.getSelection();if(C&&C.rangeCount!==0){I=C.anchorNode;var B=C.anchorOffset,i=C.focusNode;C=C.focusOffset;try{I.nodeType,i.nodeType}catch{I=null;break A}var Q=0,e=-1,E=-1,t=0,n=0,a=g,r=null;I:for(;;){for(var l;a!==I||B!==0&&a.nodeType!==3||(e=Q+B),a!==i||C!==0&&a.nodeType!==3||(E=Q+C),a.nodeType===3&&(Q+=a.nodeValue.length),(l=a.firstChild)!==null;)r=a,a=l;for(;;){if(a===g)break I;if(r===I&&++t===B&&(e=Q),r===i&&++n===C&&(E=Q),(l=a.nextSibling)!==null)break;a=r,r=a.parentNode}a=l}I=e===-1||E===-1?null:{start:e,end:E}}else I=null}I=I||{start:0,end:0}}else I=null;for(L0={focusedElem:g,selectionRange:I},oh=!1,yI=A;yI!==null;)if(A=yI,g=A.child,(A.subtreeFlags&1028)!==0&&g!==null)g.return=A,yI=g;else for(;yI!==null;){A=yI;try{var D=A.alternate;if(A.flags&1024)switch(A.tag){case 0:case 11:case 15:break;case 1:if(D!==null){var G=D.memoizedProps,h=D.memoizedState,c=A.stateNode,y=c.getSnapshotBeforeUpdate(A.elementType===A.type?G:zi(A.type,G),h);c.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var S=A.stateNode.containerInfo;S.nodeType===1?S.textContent="":S.nodeType===9&&S.documentElement&&S.removeChild(S.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(gI(163))}}catch(k){oC(A,A.return,k)}if(g=A.sibling,g!==null){g.return=A.return,yI=g;break}yI=A.return}return D=ON,ON=!1,D}function xa(g,A,I){var C=A.updateQueue;if(C=C!==null?C.lastEffect:null,C!==null){var B=C=C.next;do{if((B.tag&g)===g){var i=B.destroy;B.destroy=void 0,i!==void 0&&$0(A,I,i)}B=B.next}while(B!==C)}}function ew(g,A){if(A=A.updateQueue,A=A!==null?A.lastEffect:null,A!==null){var I=A=A.next;do{if((I.tag&g)===g){var C=I.create;I.destroy=C()}I=I.next}while(I!==A)}}function Au(g){var A=g.ref;if(A!==null){var I=g.stateNode;switch(g.tag){case 5:g=I;break;default:g=I}typeof A=="function"?A(g):A.current=g}}function sq(g){var A=g.alternate;A!==null&&(g.alternate=null,sq(A)),g.child=null,g.deletions=null,g.sibling=null,g.tag===5&&(A=g.stateNode,A!==null&&(delete A[NQ],delete A[Er],delete A[T0],delete A[kx],delete A[dx])),g.stateNode=null,g.return=null,g.dependencies=null,g.memoizedProps=null,g.memoizedState=null,g.pendingProps=null,g.stateNode=null,g.updateQueue=null}function aq(g){return g.tag===5||g.tag===3||g.tag===4}function _N(g){A:for(;;){for(;g.sibling===null;){if(g.return===null||aq(g.return))return null;g=g.return}for(g.sibling.return=g.return,g=g.sibling;g.tag!==5&&g.tag!==6&&g.tag!==18;){if(g.flags&2||g.child===null||g.tag===4)continue A;g.child.return=g,g=g.child}if(!(g.flags&2))return g.stateNode}}function Iu(g,A,I){var C=g.tag;if(C===5||C===6)g=g.stateNode,A?I.nodeType===8?I.parentNode.insertBefore(g,A):I.insertBefore(g,A):(I.nodeType===8?(A=I.parentNode,A.insertBefore(g,I)):(A=I,A.appendChild(g)),I=I._reactRootContainer,I!=null||A.onclick!==null||(A.onclick=ah));else if(C!==4&&(g=g.child,g!==null))for(Iu(g,A,I),g=g.sibling;g!==null;)Iu(g,A,I),g=g.sibling}function gu(g,A,I){var C=g.tag;if(C===5||C===6)g=g.stateNode,A?I.insertBefore(g,A):I.appendChild(g);else if(C!==4&&(g=g.child,g!==null))for(gu(g,A,I),g=g.sibling;g!==null;)gu(g,A,I),g=g.sibling}var gB=null,AQ=!1;function je(g,A,I){for(I=I.child;I!==null;)rq(g,A,I),I=I.sibling}function rq(g,A,I){if(fQ&&typeof fQ.onCommitFiberUnmount=="function")try{fQ.onCommitFiberUnmount($h,I)}catch{}switch(I.tag){case 5:GB||pn(I,A);case 6:var C=gB,B=AQ;gB=null,je(g,A,I),gB=C,AQ=B,gB!==null&&(AQ?(g=gB,I=I.stateNode,g.nodeType===8?g.parentNode.removeChild(I):g.removeChild(I)):gB.removeChild(I.stateNode));break;case 18:gB!==null&&(AQ?(g=gB,I=I.stateNode,g.nodeType===8?TG(g.parentNode,I):g.nodeType===1&&TG(g,I),Cr(g)):TG(gB,I.stateNode));break;case 4:C=gB,B=AQ,gB=I.stateNode.containerInfo,AQ=!0,je(g,A,I),gB=C,AQ=B;break;case 0:case 11:case 14:case 15:if(!GB&&(C=I.updateQueue,C!==null&&(C=C.lastEffect,C!==null))){B=C=C.next;do{var i=B,Q=i.destroy;i=i.tag,Q!==void 0&&(i&2||i&4)&&$0(I,A,Q),B=B.next}while(B!==C)}je(g,A,I);break;case 1:if(!GB&&(pn(I,A),C=I.stateNode,typeof C.componentWillUnmount=="function"))try{C.props=I.memoizedProps,C.state=I.memoizedState,C.componentWillUnmount()}catch(e){oC(I,A,e)}je(g,A,I);break;case 21:je(g,A,I);break;case 22:I.mode&1?(GB=(C=GB)||I.memoizedState!==null,je(g,A,I),GB=C):je(g,A,I);break;default:je(g,A,I)}}function ZN(g){var A=g.updateQueue;if(A!==null){g.updateQueue=null;var I=g.stateNode;I===null&&(I=g.stateNode=new xx),A.forEach(function(C){var B=Xx.bind(null,g,C);I.has(C)||(I.add(C),C.then(B,B))})}}function Zi(g,A){var I=A.deletions;if(I!==null)for(var C=0;CB&&(B=Q),C&=~i}if(C=B,C=DC()-C,C=(120>C?120:480>C?480:1080>C?1080:1920>C?1920:3e3>C?3e3:4320>C?4320:1960*Ox(C/1960))-C,10g?16:g,hE===null)var C=!1;else{if(g=hE,hE=null,Mh=0,ug&6)throw Error(gI(331));var B=ug;for(ug|=4,yI=g.current;yI!==null;){var i=yI,Q=i.child;if(yI.flags&16){var e=i.deletions;if(e!==null){for(var E=0;EDC()-ed?Wt(g,0):Qd|=I),jB(g,A)}function yq(g,A){A===0&&(g.mode&1?(A=tc,tc<<=1,!(tc&130023424)&&(tc=4194304)):A=1);var I=mB();g=he(g,A),g!==null&&(Tr(g,A,I),jB(g,I))}function Vx(g){var A=g.memoizedState,I=0;A!==null&&(I=A.retryLane),yq(g,I)}function Xx(g,A){var I=0;switch(g.tag){case 13:var C=g.stateNode,B=g.memoizedState;B!==null&&(I=B.retryLane);break;case 19:C=g.stateNode;break;default:throw Error(gI(314))}C!==null&&C.delete(A),yq(g,I)}var uq;uq=function(g,A,I){if(g!==null)if(g.memoizedProps!==A.pendingProps||PB.current)ZB=!0;else{if(!(g.lanes&I)&&!(A.flags&128))return ZB=!1,Yx(g,A,I);ZB=!!(g.flags&131072)}else ZB=!1,zg&&A.flags&1048576&&MJ(A,Dh,A.index);switch(A.lanes=0,A.tag){case 2:var C=A.type;HD(g,A),g=A.pendingProps;var B=Wn(A,uB.current);Yn(A,I),B=Ad(null,A,C,g,B,I);var i=Id();return A.flags|=1,typeof B=="object"&&B!==null&&typeof B.render=="function"&&B.$$typeof===void 0?(A.tag=1,A.memoizedState=null,A.updateQueue=null,WB(C)?(i=!0,lh(A)):i=!1,A.memoizedState=B.state!==null&&B.state!==void 0?B.state:null,jk(A),B.updater=iw,A.stateNode=B,B._reactInternals=A,Z0(A,C,g,I),A=j0(null,A,C,!0,i,I)):(A.tag=0,zg&&i&&vk(A),KB(null,A,B,I),A=A.child),A;case 16:C=A.elementType;A:{switch(HD(g,A),g=A.pendingProps,B=C._init,C=B(C._payload),A.type=C,B=A.tag=$x(C),g=zi(C,g),B){case 0:A=W0(null,A,C,g,I);break A;case 1:A=xN(null,A,C,g,I);break A;case 11:A=HN(null,A,C,g,I);break A;case 14:A=TN(null,A,C,zi(C.type,g),I);break A}throw Error(gI(306,C,""))}return A;case 0:return C=A.type,B=A.pendingProps,B=A.elementType===C?B:zi(C,B),W0(g,A,C,B,I);case 1:return C=A.type,B=A.pendingProps,B=A.elementType===C?B:zi(C,B),xN(g,A,C,B,I);case 3:A:{if(Qq(A),g===null)throw Error(gI(387));C=A.pendingProps,i=A.memoizedState,B=i.element,FJ(g,A),Sh(A,C,null,I);var Q=A.memoizedState;if(C=Q.element,i.isDehydrated)if(i={element:C,isDehydrated:!1,cache:Q.cache,pendingSuspenseBoundaries:Q.pendingSuspenseBoundaries,transitions:Q.transitions},A.updateQueue.baseState=i,A.memoizedState=i,A.flags&256){B=zn(Error(gI(423)),A),A=vN(g,A,C,I,B);break A}else if(C!==B){B=zn(Error(gI(424)),A),A=vN(g,A,C,I,B);break A}else for(Ei=kE(A.stateNode.containerInfo.firstChild),ni=A,zg=!0,gQ=null,I=JJ(A,null,C,I),A.child=I;I;)I.flags=I.flags&-3|4096,I=I.sibling;else{if(jn(),C===B){A=we(g,A,I);break A}KB(g,A,C,I)}A=A.child}return A;case 5:return qJ(A),g===null&&b0(A),C=A.type,B=A.pendingProps,i=g!==null?g.memoizedProps:null,Q=B.children,Y0(C,B)?Q=null:i!==null&&Y0(C,i)&&(A.flags|=32),iq(g,A),KB(g,A,Q,I),A.child;case 6:return g===null&&b0(A),null;case 13:return eq(g,A,I);case 4:return Vk(A,A.stateNode.containerInfo),C=A.pendingProps,g===null?A.child=Vn(A,null,C,I):KB(g,A,C,I),A.child;case 11:return C=A.type,B=A.pendingProps,B=A.elementType===C?B:zi(C,B),HN(g,A,C,B,I);case 7:return KB(g,A,A.pendingProps,I),A.child;case 8:return KB(g,A,A.pendingProps.children,I),A.child;case 12:return KB(g,A,A.pendingProps.children,I),A.child;case 10:A:{if(C=A.type._context,B=A.pendingProps,i=A.memoizedProps,Q=B.value,Tg(hh,C._currentValue),C._currentValue=Q,i!==null)if(tQ(i.value,Q)){if(i.children===B.children&&!PB.current){A=we(g,A,I);break A}}else for(i=A.child,i!==null&&(i.return=A);i!==null;){var e=i.dependencies;if(e!==null){Q=i.child;for(var E=e.firstContext;E!==null;){if(E.context===C){if(i.tag===1){E=re(-1,I&-I),E.tag=2;var t=i.updateQueue;if(t!==null){t=t.shared;var n=t.pending;n===null?E.next=E:(E.next=n.next,n.next=E),t.pending=E}}i.lanes|=I,E=i.alternate,E!==null&&(E.lanes|=I),O0(i.return,I,A),e.lanes|=I;break}E=E.next}}else if(i.tag===10)Q=i.type===A.type?null:i.child;else if(i.tag===18){if(Q=i.return,Q===null)throw Error(gI(341));Q.lanes|=I,e=Q.alternate,e!==null&&(e.lanes|=I),O0(Q,I,A),Q=i.sibling}else Q=i.child;if(Q!==null)Q.return=i;else for(Q=i;Q!==null;){if(Q===A){Q=null;break}if(i=Q.sibling,i!==null){i.return=Q.return,Q=i;break}Q=Q.return}i=Q}KB(g,A,B.children,I),A=A.child}return A;case 9:return B=A.type,C=A.pendingProps.children,Yn(A,I),B=Hi(B),C=C(B),A.flags|=1,KB(g,A,C,I),A.child;case 14:return C=A.type,B=zi(C,A.pendingProps),B=zi(C.type,B),TN(g,A,C,B,I);case 15:return Cq(g,A,A.type,A.pendingProps,I);case 17:return C=A.type,B=A.pendingProps,B=A.elementType===C?B:zi(C,B),HD(g,A),A.tag=1,WB(C)?(g=!0,lh(A)):g=!1,Yn(A,I),RJ(A,C,B),Z0(A,C,B,I),j0(null,A,C,!0,g,I);case 19:return Eq(g,A,I);case 22:return Bq(g,A,I)}throw Error(gI(156,A.tag))};function kq(g,A){return VK(g,A)}function zx(g,A,I,C){this.tag=g,this.key=I,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=A,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=C,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Li(g,A,I,C){return new zx(g,A,I,C)}function nd(g){return g=g.prototype,!(!g||!g.isReactComponent)}function $x(g){if(typeof g=="function")return nd(g)?1:0;if(g!=null){if(g=g.$$typeof,g===Fk)return 11;if(g===fk)return 14}return 2}function UE(g,A){var I=g.alternate;return I===null?(I=Li(g.tag,A,g.key,g.mode),I.elementType=g.elementType,I.type=g.type,I.stateNode=g.stateNode,I.alternate=g,g.alternate=I):(I.pendingProps=A,I.type=g.type,I.flags=0,I.subtreeFlags=0,I.deletions=null),I.flags=g.flags&14680064,I.childLanes=g.childLanes,I.lanes=g.lanes,I.child=g.child,I.memoizedProps=g.memoizedProps,I.memoizedState=g.memoizedState,I.updateQueue=g.updateQueue,A=g.dependencies,I.dependencies=A===null?null:{lanes:A.lanes,firstContext:A.firstContext},I.sibling=g.sibling,I.index=g.index,I.ref=g.ref,I}function vD(g,A,I,C,B,i){var Q=2;if(C=g,typeof g=="function")nd(g)&&(Q=1);else if(typeof g=="string")Q=5;else A:switch(g){case hn:return jt(I.children,B,i,A);case Nk:Q=8,B|=8;break;case c0:return g=Li(12,I,A,B|2),g.elementType=c0,g.lanes=i,g;case D0:return g=Li(13,I,A,B),g.elementType=D0,g.lanes=i,g;case h0:return g=Li(19,I,A,B),g.elementType=h0,g.lanes=i,g;case KK:return tw(I,B,i,A);default:if(typeof g=="object"&&g!==null)switch(g.$$typeof){case fK:Q=10;break A;case RK:Q=9;break A;case Fk:Q=11;break A;case fk:Q=14;break A;case oE:Q=16,C=null;break A}throw Error(gI(130,g==null?g:typeof g,""))}return A=Li(Q,I,A,B),A.elementType=g,A.type=C,A.lanes=i,A}function jt(g,A,I,C){return g=Li(7,g,C,A),g.lanes=I,g}function tw(g,A,I,C){return g=Li(22,g,C,A),g.elementType=KK,g.lanes=I,g.stateNode={isHidden:!1},g}function WG(g,A,I){return g=Li(6,g,null,A),g.lanes=I,g}function jG(g,A,I){return A=Li(4,g.children!==null?g.children:[],g.key,A),A.lanes=I,A.stateNode={containerInfo:g.containerInfo,pendingChildren:null,implementation:g.implementation},A}function Av(g,A,I,C,B){this.tag=A,this.containerInfo=g,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=NG(0),this.expirationTimes=NG(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=NG(0),this.identifierPrefix=C,this.onRecoverableError=B,this.mutableSourceEagerHydrationData=null}function sd(g,A,I,C,B,i,Q,e,E){return g=new Av(g,A,I,e,E),A===1?(A=1,i===!0&&(A|=8)):A=0,i=Li(3,null,null,A),g.current=i,i.stateNode=g,i.memoizedState={element:C,isDehydrated:I,cache:null,transitions:null,pendingSuspenseBoundaries:null},jk(i),g}function Iv(g,A,I){var C=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Uq)}catch(g){console.error(g)}}Uq(),MK.exports=li;var Qv=MK.exports,Nq,AF=Qv;Nq=AF.createRoot,AF.hydrateRoot;function HE(){return HE=Object.assign?Object.assign.bind():function(g){for(var A=1;A>8&255]+hB[g>>16&255]+hB[g>>24&255]+"-"+hB[A&255]+hB[A>>8&255]+"-"+hB[A>>16&15|64]+hB[A>>24&255]+"-"+hB[I&63|128]+hB[I>>8&255]+"-"+hB[I>>16&255]+hB[I>>24&255]+hB[C&255]+hB[C>>8&255]+hB[C>>16&255]+hB[C>>24&255]).toLowerCase()}function nC(g,A,I){return Math.max(A,Math.min(I,g))}function Nd(g,A){return(g%A+A)%A}function mv(g,A,I,C,B){return C+(g-A)*(B-C)/(I-A)}function Lv(g,A,I){return g!==A?(I-g)/(A-g):0}function _a(g,A,I){return(1-I)*g+I*A}function Yv(g,A,I,C){return _a(g,A,1-Math.exp(-I*C))}function Hv(g,A=1){return A-Math.abs(Nd(g,A*2)-A)}function Tv(g,A,I){return g<=A?0:g>=I?1:(g=(g-A)/(I-A),g*g*(3-2*g))}function xv(g,A,I){return g<=A?0:g>=I?1:(g=(g-A)/(I-A),g*g*g*(g*(g*6-15)+10))}function vv(g,A){return g+Math.floor(Math.random()*(A-g+1))}function bv(g,A){return g+Math.random()*(A-g)}function Ov(g){return g*(.5-Math.random())}function _v(g){g!==void 0&&(IF=g);let A=IF+=1831565813;return A=Math.imul(A^A>>>15,A|1),A^=A+Math.imul(A^A>>>7,A|61),((A^A>>>14)>>>0)/4294967296}function Zv(g){return g*Xt}function Pv(g){return g*Cs}function xu(g){return(g&g-1)===0&&g!==0}function Wv(g){return Math.pow(2,Math.ceil(Math.log(g)/Math.LN2))}function Kh(g){return Math.pow(2,Math.floor(Math.log(g)/Math.LN2))}function jv(g,A,I,C,B){const i=Math.cos,Q=Math.sin,e=i(I/2),E=Q(I/2),t=i((A+C)/2),n=Q((A+C)/2),a=i((A-C)/2),r=Q((A-C)/2),l=i((C-A)/2),D=Q((C-A)/2);switch(B){case"XYX":g.set(e*n,E*a,E*r,e*t);break;case"YZY":g.set(E*r,e*n,E*a,e*t);break;case"ZXZ":g.set(E*a,E*r,e*n,e*t);break;case"XZX":g.set(e*n,E*D,E*l,e*t);break;case"YXY":g.set(E*l,e*n,E*D,e*t);break;case"ZYZ":g.set(E*D,E*l,e*n,e*t);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+B)}}function JB(g,A){switch(A.constructor){case Float32Array:return g;case Uint32Array:return g/4294967295;case Uint16Array:return g/65535;case Uint8Array:return g/255;case Int32Array:return Math.max(g/2147483647,-1);case Int16Array:return Math.max(g/32767,-1);case Int8Array:return Math.max(g/127,-1);default:throw new Error("Invalid component type.")}}function zI(g,A){switch(A.constructor){case Float32Array:return g;case Uint32Array:return Math.round(g*4294967295);case Uint16Array:return Math.round(g*65535);case Uint8Array:return Math.round(g*255);case Int32Array:return Math.round(g*2147483647);case Int16Array:return Math.round(g*32767);case Int8Array:return Math.round(g*127);default:throw new Error("Invalid component type.")}}const RE={DEG2RAD:Xt,RAD2DEG:Cs,generateUUID:si,clamp:nC,euclideanModulo:Nd,mapLinear:mv,inverseLerp:Lv,lerp:_a,damp:Yv,pingpong:Hv,smoothstep:Tv,smootherstep:xv,randInt:vv,randFloat:bv,randFloatSpread:Ov,seededRandom:_v,degToRad:Zv,radToDeg:Pv,isPowerOfTwo:xu,ceilPowerOfTwo:Wv,floorPowerOfTwo:Kh,setQuaternionFromProperEuler:jv,normalize:zI,denormalize:JB};class qA{constructor(A=0,I=0){qA.prototype.isVector2=!0,this.x=A,this.y=I}get width(){return this.x}set width(A){this.x=A}get height(){return this.y}set height(A){this.y=A}set(A,I){return this.x=A,this.y=I,this}setScalar(A){return this.x=A,this.y=A,this}setX(A){return this.x=A,this}setY(A){return this.y=A,this}setComponent(A,I){switch(A){case 0:this.x=I;break;case 1:this.y=I;break;default:throw new Error("index is out of range: "+A)}return this}getComponent(A){switch(A){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+A)}}clone(){return new this.constructor(this.x,this.y)}copy(A){return this.x=A.x,this.y=A.y,this}add(A){return this.x+=A.x,this.y+=A.y,this}addScalar(A){return this.x+=A,this.y+=A,this}addVectors(A,I){return this.x=A.x+I.x,this.y=A.y+I.y,this}addScaledVector(A,I){return this.x+=A.x*I,this.y+=A.y*I,this}sub(A){return this.x-=A.x,this.y-=A.y,this}subScalar(A){return this.x-=A,this.y-=A,this}subVectors(A,I){return this.x=A.x-I.x,this.y=A.y-I.y,this}multiply(A){return this.x*=A.x,this.y*=A.y,this}multiplyScalar(A){return this.x*=A,this.y*=A,this}divide(A){return this.x/=A.x,this.y/=A.y,this}divideScalar(A){return this.multiplyScalar(1/A)}applyMatrix3(A){const I=this.x,C=this.y,B=A.elements;return this.x=B[0]*I+B[3]*C+B[6],this.y=B[1]*I+B[4]*C+B[7],this}min(A){return this.x=Math.min(this.x,A.x),this.y=Math.min(this.y,A.y),this}max(A){return this.x=Math.max(this.x,A.x),this.y=Math.max(this.y,A.y),this}clamp(A,I){return this.x=Math.max(A.x,Math.min(I.x,this.x)),this.y=Math.max(A.y,Math.min(I.y,this.y)),this}clampScalar(A,I){return this.x=Math.max(A,Math.min(I,this.x)),this.y=Math.max(A,Math.min(I,this.y)),this}clampLength(A,I){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(A,Math.min(I,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(A){return this.x*A.x+this.y*A.y}cross(A){return this.x*A.y-this.y*A.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(A){const I=Math.sqrt(this.lengthSq()*A.lengthSq());if(I===0)return Math.PI/2;const C=this.dot(A)/I;return Math.acos(nC(C,-1,1))}distanceTo(A){return Math.sqrt(this.distanceToSquared(A))}distanceToSquared(A){const I=this.x-A.x,C=this.y-A.y;return I*I+C*C}manhattanDistanceTo(A){return Math.abs(this.x-A.x)+Math.abs(this.y-A.y)}setLength(A){return this.normalize().multiplyScalar(A)}lerp(A,I){return this.x+=(A.x-this.x)*I,this.y+=(A.y-this.y)*I,this}lerpVectors(A,I,C){return this.x=A.x+(I.x-A.x)*C,this.y=A.y+(I.y-A.y)*C,this}equals(A){return A.x===this.x&&A.y===this.y}fromArray(A,I=0){return this.x=A[I],this.y=A[I+1],this}toArray(A=[],I=0){return A[I]=this.x,A[I+1]=this.y,A}fromBufferAttribute(A,I){return this.x=A.getX(I),this.y=A.getY(I),this}rotateAround(A,I){const C=Math.cos(I),B=Math.sin(I),i=this.x-A.x,Q=this.y-A.y;return this.x=i*C-Q*B+A.x,this.y=i*B+Q*C+A.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class PI{constructor(A,I,C,B,i,Q,e,E,t){PI.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],A!==void 0&&this.set(A,I,C,B,i,Q,e,E,t)}set(A,I,C,B,i,Q,e,E,t){const n=this.elements;return n[0]=A,n[1]=B,n[2]=e,n[3]=I,n[4]=i,n[5]=E,n[6]=C,n[7]=Q,n[8]=t,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(A){const I=this.elements,C=A.elements;return I[0]=C[0],I[1]=C[1],I[2]=C[2],I[3]=C[3],I[4]=C[4],I[5]=C[5],I[6]=C[6],I[7]=C[7],I[8]=C[8],this}extractBasis(A,I,C){return A.setFromMatrix3Column(this,0),I.setFromMatrix3Column(this,1),C.setFromMatrix3Column(this,2),this}setFromMatrix4(A){const I=A.elements;return this.set(I[0],I[4],I[8],I[1],I[5],I[9],I[2],I[6],I[10]),this}multiply(A){return this.multiplyMatrices(this,A)}premultiply(A){return this.multiplyMatrices(A,this)}multiplyMatrices(A,I){const C=A.elements,B=I.elements,i=this.elements,Q=C[0],e=C[3],E=C[6],t=C[1],n=C[4],a=C[7],r=C[2],l=C[5],D=C[8],G=B[0],h=B[3],c=B[6],y=B[1],S=B[4],k=B[7],N=B[2],M=B[5],F=B[8];return i[0]=Q*G+e*y+E*N,i[3]=Q*h+e*S+E*M,i[6]=Q*c+e*k+E*F,i[1]=t*G+n*y+a*N,i[4]=t*h+n*S+a*M,i[7]=t*c+n*k+a*F,i[2]=r*G+l*y+D*N,i[5]=r*h+l*S+D*M,i[8]=r*c+l*k+D*F,this}multiplyScalar(A){const I=this.elements;return I[0]*=A,I[3]*=A,I[6]*=A,I[1]*=A,I[4]*=A,I[7]*=A,I[2]*=A,I[5]*=A,I[8]*=A,this}determinant(){const A=this.elements,I=A[0],C=A[1],B=A[2],i=A[3],Q=A[4],e=A[5],E=A[6],t=A[7],n=A[8];return I*Q*n-I*e*t-C*i*n+C*e*E+B*i*t-B*Q*E}invert(){const A=this.elements,I=A[0],C=A[1],B=A[2],i=A[3],Q=A[4],e=A[5],E=A[6],t=A[7],n=A[8],a=n*Q-e*t,r=e*E-n*i,l=t*i-Q*E,D=I*a+C*r+B*l;if(D===0)return this.set(0,0,0,0,0,0,0,0,0);const G=1/D;return A[0]=a*G,A[1]=(B*t-n*C)*G,A[2]=(e*C-B*Q)*G,A[3]=r*G,A[4]=(n*I-B*E)*G,A[5]=(B*i-e*I)*G,A[6]=l*G,A[7]=(C*E-t*I)*G,A[8]=(Q*I-C*i)*G,this}transpose(){let A;const I=this.elements;return A=I[1],I[1]=I[3],I[3]=A,A=I[2],I[2]=I[6],I[6]=A,A=I[5],I[5]=I[7],I[7]=A,this}getNormalMatrix(A){return this.setFromMatrix4(A).invert().transpose()}transposeIntoArray(A){const I=this.elements;return A[0]=I[0],A[1]=I[3],A[2]=I[6],A[3]=I[1],A[4]=I[4],A[5]=I[7],A[6]=I[2],A[7]=I[5],A[8]=I[8],this}setUvTransform(A,I,C,B,i,Q,e){const E=Math.cos(i),t=Math.sin(i);return this.set(C*E,C*t,-C*(E*Q+t*e)+Q+A,-B*t,B*E,-B*(-t*Q+E*e)+e+I,0,0,1),this}scale(A,I){return this.premultiply(VG.makeScale(A,I)),this}rotate(A){return this.premultiply(VG.makeRotation(-A)),this}translate(A,I){return this.premultiply(VG.makeTranslation(A,I)),this}makeTranslation(A,I){return A.isVector2?this.set(1,0,A.x,0,1,A.y,0,0,1):this.set(1,0,A,0,1,I,0,0,1),this}makeRotation(A){const I=Math.cos(A),C=Math.sin(A);return this.set(I,-C,0,C,I,0,0,0,1),this}makeScale(A,I){return this.set(A,0,0,0,I,0,0,0,1),this}equals(A){const I=this.elements,C=A.elements;for(let B=0;B<9;B++)if(I[B]!==C[B])return!1;return!0}fromArray(A,I=0){for(let C=0;C<9;C++)this.elements[C]=A[C+I];return this}toArray(A=[],I=0){const C=this.elements;return A[I]=C[0],A[I+1]=C[1],A[I+2]=C[2],A[I+3]=C[3],A[I+4]=C[4],A[I+5]=C[5],A[I+6]=C[6],A[I+7]=C[7],A[I+8]=C[8],A}clone(){return new this.constructor().fromArray(this.elements)}}const VG=new PI;function Fm(g){for(let A=g.length-1;A>=0;--A)if(g[A]>=65535)return!0;return!1}const Vv={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function Nn(g,A){return new Vv[g](A)}function kr(g){return document.createElementNS("http://www.w3.org/1999/xhtml",g)}function fm(){const g=kr("canvas");return g.style.display="block",g}const gF={};function zt(g){g in gF||(gF[g]=!0,console.warn(g))}const CF=new PI().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),BF=new PI().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),Gc={[LQ]:{transfer:wr,primaries:Sr,toReference:g=>g,fromReference:g=>g},[cC]:{transfer:Hg,primaries:Sr,toReference:g=>g.convertSRGBToLinear(),fromReference:g=>g.convertLinearToSRGB()},[_r]:{transfer:wr,primaries:Gr,toReference:g=>g.applyMatrix3(BF),fromReference:g=>g.applyMatrix3(CF)},[hw]:{transfer:Hg,primaries:Gr,toReference:g=>g.convertSRGBToLinear().applyMatrix3(BF),fromReference:g=>g.applyMatrix3(CF).convertLinearToSRGB()}},Xv=new Set([LQ,_r]),Rg={enabled:!0,_workingColorSpace:LQ,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(g){if(!Xv.has(g))throw new Error(`Unsupported working color space, "${g}".`);this._workingColorSpace=g},convert:function(g,A,I){if(this.enabled===!1||A===I||!A||!I)return g;const C=Gc[A].toReference,B=Gc[I].fromReference;return B(C(g))},fromWorkingColorSpace:function(g,A){return this.convert(g,this._workingColorSpace,A)},toWorkingColorSpace:function(g,A){return this.convert(g,A,this._workingColorSpace)},getPrimaries:function(g){return Gc[g].primaries},getTransfer:function(g){return g===ei?wr:Gc[g].transfer}};function vn(g){return g<.04045?g*.0773993808:Math.pow(g*.9478672986+.0521327014,2.4)}function XG(g){return g<.0031308?g*12.92:1.055*Math.pow(g,.41666)-.055}let Ho;class Fd{static getDataURL(A){if(/^data:/i.test(A.src)||typeof HTMLCanvasElement>"u")return A.src;let I;if(A instanceof HTMLCanvasElement)I=A;else{Ho===void 0&&(Ho=kr("canvas")),Ho.width=A.width,Ho.height=A.height;const C=Ho.getContext("2d");A instanceof ImageData?C.putImageData(A,0,0):C.drawImage(A,0,0,A.width,A.height),I=Ho}return I.width>2048||I.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",A),I.toDataURL("image/jpeg",.6)):I.toDataURL("image/png")}static sRGBToLinear(A){if(typeof HTMLImageElement<"u"&&A instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&A instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&A instanceof ImageBitmap){const I=kr("canvas");I.width=A.width,I.height=A.height;const C=I.getContext("2d");C.drawImage(A,0,0,A.width,A.height);const B=C.getImageData(0,0,A.width,A.height),i=B.data;for(let Q=0;Q0&&(C.userData=this.userData),I||(A.textures[this.uuid]=C),C}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(A){if(this.mapping!==lw)return A;if(A.applyMatrix3(this.matrix),A.x<0||A.x>1)switch(this.wrapS){case xE:A.x=A.x-Math.floor(A.x);break;case BB:A.x=A.x<0?0:1;break;case Is:Math.abs(Math.floor(A.x)%2)===1?A.x=Math.ceil(A.x)-A.x:A.x=A.x-Math.floor(A.x);break}if(A.y<0||A.y>1)switch(this.wrapT){case xE:A.y=A.y-Math.floor(A.y);break;case BB:A.y=A.y<0?0:1;break;case Is:Math.abs(Math.floor(A.y)%2)===1?A.y=Math.ceil(A.y)-A.y:A.y=A.y-Math.floor(A.y);break}return this.flipY&&(A.y=1-A.y),A}set needsUpdate(A){A===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return zt("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===cC?fE:Md}set encoding(A){zt("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=A===fE?cC:ei}}Lg.DEFAULT_IMAGE=null;Lg.DEFAULT_MAPPING=lw;Lg.DEFAULT_ANISOTROPY=1;class yg{constructor(A=0,I=0,C=0,B=1){yg.prototype.isVector4=!0,this.x=A,this.y=I,this.z=C,this.w=B}get width(){return this.z}set width(A){this.z=A}get height(){return this.w}set height(A){this.w=A}set(A,I,C,B){return this.x=A,this.y=I,this.z=C,this.w=B,this}setScalar(A){return this.x=A,this.y=A,this.z=A,this.w=A,this}setX(A){return this.x=A,this}setY(A){return this.y=A,this}setZ(A){return this.z=A,this}setW(A){return this.w=A,this}setComponent(A,I){switch(A){case 0:this.x=I;break;case 1:this.y=I;break;case 2:this.z=I;break;case 3:this.w=I;break;default:throw new Error("index is out of range: "+A)}return this}getComponent(A){switch(A){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+A)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(A){return this.x=A.x,this.y=A.y,this.z=A.z,this.w=A.w!==void 0?A.w:1,this}add(A){return this.x+=A.x,this.y+=A.y,this.z+=A.z,this.w+=A.w,this}addScalar(A){return this.x+=A,this.y+=A,this.z+=A,this.w+=A,this}addVectors(A,I){return this.x=A.x+I.x,this.y=A.y+I.y,this.z=A.z+I.z,this.w=A.w+I.w,this}addScaledVector(A,I){return this.x+=A.x*I,this.y+=A.y*I,this.z+=A.z*I,this.w+=A.w*I,this}sub(A){return this.x-=A.x,this.y-=A.y,this.z-=A.z,this.w-=A.w,this}subScalar(A){return this.x-=A,this.y-=A,this.z-=A,this.w-=A,this}subVectors(A,I){return this.x=A.x-I.x,this.y=A.y-I.y,this.z=A.z-I.z,this.w=A.w-I.w,this}multiply(A){return this.x*=A.x,this.y*=A.y,this.z*=A.z,this.w*=A.w,this}multiplyScalar(A){return this.x*=A,this.y*=A,this.z*=A,this.w*=A,this}applyMatrix4(A){const I=this.x,C=this.y,B=this.z,i=this.w,Q=A.elements;return this.x=Q[0]*I+Q[4]*C+Q[8]*B+Q[12]*i,this.y=Q[1]*I+Q[5]*C+Q[9]*B+Q[13]*i,this.z=Q[2]*I+Q[6]*C+Q[10]*B+Q[14]*i,this.w=Q[3]*I+Q[7]*C+Q[11]*B+Q[15]*i,this}divideScalar(A){return this.multiplyScalar(1/A)}setAxisAngleFromQuaternion(A){this.w=2*Math.acos(A.w);const I=Math.sqrt(1-A.w*A.w);return I<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=A.x/I,this.y=A.y/I,this.z=A.z/I),this}setAxisAngleFromRotationMatrix(A){let I,C,B,i;const E=A.elements,t=E[0],n=E[4],a=E[8],r=E[1],l=E[5],D=E[9],G=E[2],h=E[6],c=E[10];if(Math.abs(n-r)<.01&&Math.abs(a-G)<.01&&Math.abs(D-h)<.01){if(Math.abs(n+r)<.1&&Math.abs(a+G)<.1&&Math.abs(D+h)<.1&&Math.abs(t+l+c-3)<.1)return this.set(1,0,0,0),this;I=Math.PI;const S=(t+1)/2,k=(l+1)/2,N=(c+1)/2,M=(n+r)/4,F=(a+G)/4,q=(D+h)/4;return S>k&&S>N?S<.01?(C=0,B=.707106781,i=.707106781):(C=Math.sqrt(S),B=M/C,i=F/C):k>N?k<.01?(C=.707106781,B=0,i=.707106781):(B=Math.sqrt(k),C=M/B,i=q/B):N<.01?(C=.707106781,B=.707106781,i=0):(i=Math.sqrt(N),C=F/i,B=q/i),this.set(C,B,i,I),this}let y=Math.sqrt((h-D)*(h-D)+(a-G)*(a-G)+(r-n)*(r-n));return Math.abs(y)<.001&&(y=1),this.x=(h-D)/y,this.y=(a-G)/y,this.z=(r-n)/y,this.w=Math.acos((t+l+c-1)/2),this}min(A){return this.x=Math.min(this.x,A.x),this.y=Math.min(this.y,A.y),this.z=Math.min(this.z,A.z),this.w=Math.min(this.w,A.w),this}max(A){return this.x=Math.max(this.x,A.x),this.y=Math.max(this.y,A.y),this.z=Math.max(this.z,A.z),this.w=Math.max(this.w,A.w),this}clamp(A,I){return this.x=Math.max(A.x,Math.min(I.x,this.x)),this.y=Math.max(A.y,Math.min(I.y,this.y)),this.z=Math.max(A.z,Math.min(I.z,this.z)),this.w=Math.max(A.w,Math.min(I.w,this.w)),this}clampScalar(A,I){return this.x=Math.max(A,Math.min(I,this.x)),this.y=Math.max(A,Math.min(I,this.y)),this.z=Math.max(A,Math.min(I,this.z)),this.w=Math.max(A,Math.min(I,this.w)),this}clampLength(A,I){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(A,Math.min(I,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(A){return this.x*A.x+this.y*A.y+this.z*A.z+this.w*A.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(A){return this.normalize().multiplyScalar(A)}lerp(A,I){return this.x+=(A.x-this.x)*I,this.y+=(A.y-this.y)*I,this.z+=(A.z-this.z)*I,this.w+=(A.w-this.w)*I,this}lerpVectors(A,I,C){return this.x=A.x+(I.x-A.x)*C,this.y=A.y+(I.y-A.y)*C,this.z=A.z+(I.z-A.z)*C,this.w=A.w+(I.w-A.w)*C,this}equals(A){return A.x===this.x&&A.y===this.y&&A.z===this.z&&A.w===this.w}fromArray(A,I=0){return this.x=A[I],this.y=A[I+1],this.z=A[I+2],this.w=A[I+3],this}toArray(A=[],I=0){return A[I]=this.x,A[I+1]=this.y,A[I+2]=this.z,A[I+3]=this.w,A}fromBufferAttribute(A,I){return this.x=A.getX(I),this.y=A.getY(I),this.z=A.getZ(I),this.w=A.getW(I),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class Rm extends Me{constructor(A=1,I=1,C={}){super(),this.isRenderTarget=!0,this.width=A,this.height=I,this.depth=1,this.scissor=new yg(0,0,A,I),this.scissorTest=!1,this.viewport=new yg(0,0,A,I);const B={width:A,height:I,depth:1};C.encoding!==void 0&&(zt("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),C.colorSpace=C.encoding===fE?cC:ei),C=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Sg,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},C),this.texture=new Lg(B,C.mapping,C.wrapS,C.wrapT,C.magFilter,C.minFilter,C.format,C.type,C.anisotropy,C.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=C.generateMipmaps,this.texture.internalFormat=C.internalFormat,this.depthBuffer=C.depthBuffer,this.stencilBuffer=C.stencilBuffer,this.depthTexture=C.depthTexture,this.samples=C.samples}setSize(A,I,C=1){(this.width!==A||this.height!==I||this.depth!==C)&&(this.width=A,this.height=I,this.depth=C,this.texture.image.width=A,this.texture.image.height=I,this.texture.image.depth=C,this.dispose()),this.viewport.set(0,0,A,I),this.scissor.set(0,0,A,I)}clone(){return new this.constructor().copy(this)}copy(A){this.width=A.width,this.height=A.height,this.depth=A.depth,this.scissor.copy(A.scissor),this.scissorTest=A.scissorTest,this.viewport.copy(A.viewport),this.texture=A.texture.clone(),this.texture.isRenderTargetTexture=!0;const I=Object.assign({},A.texture.image);return this.texture.source=new Ot(I),this.depthBuffer=A.depthBuffer,this.stencilBuffer=A.stencilBuffer,A.depthTexture!==null&&(this.depthTexture=A.depthTexture.clone()),this.samples=A.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class MC extends Rm{constructor(A=1,I=1,C={}){super(A,I,C),this.isWebGLRenderTarget=!0}}class ww extends Lg{constructor(A=null,I=1,C=1,B=1){super(null),this.isDataArrayTexture=!0,this.image={data:A,width:I,height:C,depth:B},this.magFilter=og,this.minFilter=og,this.wrapR=BB,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Ab extends MC{constructor(A=1,I=1,C=1,B={}){super(A,I,B),this.isWebGLArrayRenderTarget=!0,this.depth=C,this.texture=new ww(null,A,I,C),this.texture.isRenderTargetTexture=!0}}class fd extends Lg{constructor(A=null,I=1,C=1,B=1){super(null),this.isData3DTexture=!0,this.image={data:A,width:I,height:C,depth:B},this.magFilter=og,this.minFilter=og,this.wrapR=BB,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Ib extends MC{constructor(A=1,I=1,C=1,B={}){super(A,I,B),this.isWebGL3DRenderTarget=!0,this.depth=C,this.texture=new fd(null,A,I,C),this.texture.isRenderTargetTexture=!0}}class gb extends MC{constructor(A=1,I=1,C=1,B={}){super(A,I,B),this.isWebGLMultipleRenderTargets=!0;const i=this.texture;this.texture=[];for(let Q=0;Q=0?1:-1,S=1-c*c;if(S>Number.EPSILON){const N=Math.sqrt(S),M=Math.atan2(N,c*y);h=Math.sin(h*M)/N,e=Math.sin(e*M)/N}const k=e*y;if(E=E*h+r*k,t=t*h+l*k,n=n*h+D*k,a=a*h+G*k,h===1-e){const N=1/Math.sqrt(E*E+t*t+n*n+a*a);E*=N,t*=N,n*=N,a*=N}}A[I]=E,A[I+1]=t,A[I+2]=n,A[I+3]=a}static multiplyQuaternionsFlat(A,I,C,B,i,Q){const e=C[B],E=C[B+1],t=C[B+2],n=C[B+3],a=i[Q],r=i[Q+1],l=i[Q+2],D=i[Q+3];return A[I]=e*D+n*a+E*l-t*r,A[I+1]=E*D+n*r+t*a-e*l,A[I+2]=t*D+n*l+e*r-E*a,A[I+3]=n*D-e*a-E*r-t*l,A}get x(){return this._x}set x(A){this._x=A,this._onChangeCallback()}get y(){return this._y}set y(A){this._y=A,this._onChangeCallback()}get z(){return this._z}set z(A){this._z=A,this._onChangeCallback()}get w(){return this._w}set w(A){this._w=A,this._onChangeCallback()}set(A,I,C,B){return this._x=A,this._y=I,this._z=C,this._w=B,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(A){return this._x=A.x,this._y=A.y,this._z=A.z,this._w=A.w,this._onChangeCallback(),this}setFromEuler(A,I=!0){const C=A._x,B=A._y,i=A._z,Q=A._order,e=Math.cos,E=Math.sin,t=e(C/2),n=e(B/2),a=e(i/2),r=E(C/2),l=E(B/2),D=E(i/2);switch(Q){case"XYZ":this._x=r*n*a+t*l*D,this._y=t*l*a-r*n*D,this._z=t*n*D+r*l*a,this._w=t*n*a-r*l*D;break;case"YXZ":this._x=r*n*a+t*l*D,this._y=t*l*a-r*n*D,this._z=t*n*D-r*l*a,this._w=t*n*a+r*l*D;break;case"ZXY":this._x=r*n*a-t*l*D,this._y=t*l*a+r*n*D,this._z=t*n*D+r*l*a,this._w=t*n*a-r*l*D;break;case"ZYX":this._x=r*n*a-t*l*D,this._y=t*l*a+r*n*D,this._z=t*n*D-r*l*a,this._w=t*n*a+r*l*D;break;case"YZX":this._x=r*n*a+t*l*D,this._y=t*l*a+r*n*D,this._z=t*n*D-r*l*a,this._w=t*n*a-r*l*D;break;case"XZY":this._x=r*n*a-t*l*D,this._y=t*l*a-r*n*D,this._z=t*n*D+r*l*a,this._w=t*n*a+r*l*D;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+Q)}return I===!0&&this._onChangeCallback(),this}setFromAxisAngle(A,I){const C=I/2,B=Math.sin(C);return this._x=A.x*B,this._y=A.y*B,this._z=A.z*B,this._w=Math.cos(C),this._onChangeCallback(),this}setFromRotationMatrix(A){const I=A.elements,C=I[0],B=I[4],i=I[8],Q=I[1],e=I[5],E=I[9],t=I[2],n=I[6],a=I[10],r=C+e+a;if(r>0){const l=.5/Math.sqrt(r+1);this._w=.25/l,this._x=(n-E)*l,this._y=(i-t)*l,this._z=(Q-B)*l}else if(C>e&&C>a){const l=2*Math.sqrt(1+C-e-a);this._w=(n-E)/l,this._x=.25*l,this._y=(B+Q)/l,this._z=(i+t)/l}else if(e>a){const l=2*Math.sqrt(1+e-C-a);this._w=(i-t)/l,this._x=(B+Q)/l,this._y=.25*l,this._z=(E+n)/l}else{const l=2*Math.sqrt(1+a-C-e);this._w=(Q-B)/l,this._x=(i+t)/l,this._y=(E+n)/l,this._z=.25*l}return this._onChangeCallback(),this}setFromUnitVectors(A,I){let C=A.dot(I)+1;return CMath.abs(A.z)?(this._x=-A.y,this._y=A.x,this._z=0,this._w=C):(this._x=0,this._y=-A.z,this._z=A.y,this._w=C)):(this._x=A.y*I.z-A.z*I.y,this._y=A.z*I.x-A.x*I.z,this._z=A.x*I.y-A.y*I.x,this._w=C),this.normalize()}angleTo(A){return 2*Math.acos(Math.abs(nC(this.dot(A),-1,1)))}rotateTowards(A,I){const C=this.angleTo(A);if(C===0)return this;const B=Math.min(1,I/C);return this.slerp(A,B),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(A){return this._x*A._x+this._y*A._y+this._z*A._z+this._w*A._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let A=this.length();return A===0?(this._x=0,this._y=0,this._z=0,this._w=1):(A=1/A,this._x=this._x*A,this._y=this._y*A,this._z=this._z*A,this._w=this._w*A),this._onChangeCallback(),this}multiply(A){return this.multiplyQuaternions(this,A)}premultiply(A){return this.multiplyQuaternions(A,this)}multiplyQuaternions(A,I){const C=A._x,B=A._y,i=A._z,Q=A._w,e=I._x,E=I._y,t=I._z,n=I._w;return this._x=C*n+Q*e+B*t-i*E,this._y=B*n+Q*E+i*e-C*t,this._z=i*n+Q*t+C*E-B*e,this._w=Q*n-C*e-B*E-i*t,this._onChangeCallback(),this}slerp(A,I){if(I===0)return this;if(I===1)return this.copy(A);const C=this._x,B=this._y,i=this._z,Q=this._w;let e=Q*A._w+C*A._x+B*A._y+i*A._z;if(e<0?(this._w=-A._w,this._x=-A._x,this._y=-A._y,this._z=-A._z,e=-e):this.copy(A),e>=1)return this._w=Q,this._x=C,this._y=B,this._z=i,this;const E=1-e*e;if(E<=Number.EPSILON){const l=1-I;return this._w=l*Q+I*this._w,this._x=l*C+I*this._x,this._y=l*B+I*this._y,this._z=l*i+I*this._z,this.normalize(),this}const t=Math.sqrt(E),n=Math.atan2(t,e),a=Math.sin((1-I)*n)/t,r=Math.sin(I*n)/t;return this._w=Q*a+this._w*r,this._x=C*a+this._x*r,this._y=B*a+this._y*r,this._z=i*a+this._z*r,this._onChangeCallback(),this}slerpQuaternions(A,I,C){return this.copy(A).slerp(I,C)}random(){const A=Math.random(),I=Math.sqrt(1-A),C=Math.sqrt(A),B=2*Math.PI*Math.random(),i=2*Math.PI*Math.random();return this.set(I*Math.cos(B),C*Math.sin(i),C*Math.cos(i),I*Math.sin(B))}equals(A){return A._x===this._x&&A._y===this._y&&A._z===this._z&&A._w===this._w}fromArray(A,I=0){return this._x=A[I],this._y=A[I+1],this._z=A[I+2],this._w=A[I+3],this._onChangeCallback(),this}toArray(A=[],I=0){return A[I]=this._x,A[I+1]=this._y,A[I+2]=this._z,A[I+3]=this._w,A}fromBufferAttribute(A,I){return this._x=A.getX(I),this._y=A.getY(I),this._z=A.getZ(I),this._w=A.getW(I),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(A){return this._onChangeCallback=A,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class _{constructor(A=0,I=0,C=0){_.prototype.isVector3=!0,this.x=A,this.y=I,this.z=C}set(A,I,C){return C===void 0&&(C=this.z),this.x=A,this.y=I,this.z=C,this}setScalar(A){return this.x=A,this.y=A,this.z=A,this}setX(A){return this.x=A,this}setY(A){return this.y=A,this}setZ(A){return this.z=A,this}setComponent(A,I){switch(A){case 0:this.x=I;break;case 1:this.y=I;break;case 2:this.z=I;break;default:throw new Error("index is out of range: "+A)}return this}getComponent(A){switch(A){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+A)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(A){return this.x=A.x,this.y=A.y,this.z=A.z,this}add(A){return this.x+=A.x,this.y+=A.y,this.z+=A.z,this}addScalar(A){return this.x+=A,this.y+=A,this.z+=A,this}addVectors(A,I){return this.x=A.x+I.x,this.y=A.y+I.y,this.z=A.z+I.z,this}addScaledVector(A,I){return this.x+=A.x*I,this.y+=A.y*I,this.z+=A.z*I,this}sub(A){return this.x-=A.x,this.y-=A.y,this.z-=A.z,this}subScalar(A){return this.x-=A,this.y-=A,this.z-=A,this}subVectors(A,I){return this.x=A.x-I.x,this.y=A.y-I.y,this.z=A.z-I.z,this}multiply(A){return this.x*=A.x,this.y*=A.y,this.z*=A.z,this}multiplyScalar(A){return this.x*=A,this.y*=A,this.z*=A,this}multiplyVectors(A,I){return this.x=A.x*I.x,this.y=A.y*I.y,this.z=A.z*I.z,this}applyEuler(A){return this.applyQuaternion(iF.setFromEuler(A))}applyAxisAngle(A,I){return this.applyQuaternion(iF.setFromAxisAngle(A,I))}applyMatrix3(A){const I=this.x,C=this.y,B=this.z,i=A.elements;return this.x=i[0]*I+i[3]*C+i[6]*B,this.y=i[1]*I+i[4]*C+i[7]*B,this.z=i[2]*I+i[5]*C+i[8]*B,this}applyNormalMatrix(A){return this.applyMatrix3(A).normalize()}applyMatrix4(A){const I=this.x,C=this.y,B=this.z,i=A.elements,Q=1/(i[3]*I+i[7]*C+i[11]*B+i[15]);return this.x=(i[0]*I+i[4]*C+i[8]*B+i[12])*Q,this.y=(i[1]*I+i[5]*C+i[9]*B+i[13])*Q,this.z=(i[2]*I+i[6]*C+i[10]*B+i[14])*Q,this}applyQuaternion(A){const I=this.x,C=this.y,B=this.z,i=A.x,Q=A.y,e=A.z,E=A.w,t=2*(Q*B-e*C),n=2*(e*I-i*B),a=2*(i*C-Q*I);return this.x=I+E*t+Q*a-e*n,this.y=C+E*n+e*t-i*a,this.z=B+E*a+i*n-Q*t,this}project(A){return this.applyMatrix4(A.matrixWorldInverse).applyMatrix4(A.projectionMatrix)}unproject(A){return this.applyMatrix4(A.projectionMatrixInverse).applyMatrix4(A.matrixWorld)}transformDirection(A){const I=this.x,C=this.y,B=this.z,i=A.elements;return this.x=i[0]*I+i[4]*C+i[8]*B,this.y=i[1]*I+i[5]*C+i[9]*B,this.z=i[2]*I+i[6]*C+i[10]*B,this.normalize()}divide(A){return this.x/=A.x,this.y/=A.y,this.z/=A.z,this}divideScalar(A){return this.multiplyScalar(1/A)}min(A){return this.x=Math.min(this.x,A.x),this.y=Math.min(this.y,A.y),this.z=Math.min(this.z,A.z),this}max(A){return this.x=Math.max(this.x,A.x),this.y=Math.max(this.y,A.y),this.z=Math.max(this.z,A.z),this}clamp(A,I){return this.x=Math.max(A.x,Math.min(I.x,this.x)),this.y=Math.max(A.y,Math.min(I.y,this.y)),this.z=Math.max(A.z,Math.min(I.z,this.z)),this}clampScalar(A,I){return this.x=Math.max(A,Math.min(I,this.x)),this.y=Math.max(A,Math.min(I,this.y)),this.z=Math.max(A,Math.min(I,this.z)),this}clampLength(A,I){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(A,Math.min(I,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(A){return this.x*A.x+this.y*A.y+this.z*A.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(A){return this.normalize().multiplyScalar(A)}lerp(A,I){return this.x+=(A.x-this.x)*I,this.y+=(A.y-this.y)*I,this.z+=(A.z-this.z)*I,this}lerpVectors(A,I,C){return this.x=A.x+(I.x-A.x)*C,this.y=A.y+(I.y-A.y)*C,this.z=A.z+(I.z-A.z)*C,this}cross(A){return this.crossVectors(this,A)}crossVectors(A,I){const C=A.x,B=A.y,i=A.z,Q=I.x,e=I.y,E=I.z;return this.x=B*E-i*e,this.y=i*Q-C*E,this.z=C*e-B*Q,this}projectOnVector(A){const I=A.lengthSq();if(I===0)return this.set(0,0,0);const C=A.dot(this)/I;return this.copy(A).multiplyScalar(C)}projectOnPlane(A){return $G.copy(this).projectOnVector(A),this.sub($G)}reflect(A){return this.sub($G.copy(A).multiplyScalar(2*this.dot(A)))}angleTo(A){const I=Math.sqrt(this.lengthSq()*A.lengthSq());if(I===0)return Math.PI/2;const C=this.dot(A)/I;return Math.acos(nC(C,-1,1))}distanceTo(A){return Math.sqrt(this.distanceToSquared(A))}distanceToSquared(A){const I=this.x-A.x,C=this.y-A.y,B=this.z-A.z;return I*I+C*C+B*B}manhattanDistanceTo(A){return Math.abs(this.x-A.x)+Math.abs(this.y-A.y)+Math.abs(this.z-A.z)}setFromSpherical(A){return this.setFromSphericalCoords(A.radius,A.phi,A.theta)}setFromSphericalCoords(A,I,C){const B=Math.sin(I)*A;return this.x=B*Math.sin(C),this.y=Math.cos(I)*A,this.z=B*Math.cos(C),this}setFromCylindrical(A){return this.setFromCylindricalCoords(A.radius,A.theta,A.y)}setFromCylindricalCoords(A,I,C){return this.x=A*Math.sin(I),this.y=C,this.z=A*Math.cos(I),this}setFromMatrixPosition(A){const I=A.elements;return this.x=I[12],this.y=I[13],this.z=I[14],this}setFromMatrixScale(A){const I=this.setFromMatrixColumn(A,0).length(),C=this.setFromMatrixColumn(A,1).length(),B=this.setFromMatrixColumn(A,2).length();return this.x=I,this.y=C,this.z=B,this}setFromMatrixColumn(A,I){return this.fromArray(A.elements,I*4)}setFromMatrix3Column(A,I){return this.fromArray(A.elements,I*3)}setFromEuler(A){return this.x=A._x,this.y=A._y,this.z=A._z,this}setFromColor(A){return this.x=A.r,this.y=A.g,this.z=A.b,this}equals(A){return A.x===this.x&&A.y===this.y&&A.z===this.z}fromArray(A,I=0){return this.x=A[I],this.y=A[I+1],this.z=A[I+2],this}toArray(A=[],I=0){return A[I]=this.x,A[I+1]=this.y,A[I+2]=this.z,A}fromBufferAttribute(A,I){return this.x=A.getX(I),this.y=A.getY(I),this.z=A.getZ(I),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const A=(Math.random()-.5)*2,I=Math.random()*Math.PI*2,C=Math.sqrt(1-A**2);return this.x=C*Math.cos(I),this.y=C*Math.sin(I),this.z=A,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const $G=new _,iF=new Wg;class aC{constructor(A=new _(1/0,1/0,1/0),I=new _(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=A,this.max=I}set(A,I){return this.min.copy(A),this.max.copy(I),this}setFromArray(A){this.makeEmpty();for(let I=0,C=A.length;Ithis.max.x||A.ythis.max.y||A.zthis.max.z)}containsBox(A){return this.min.x<=A.min.x&&A.max.x<=this.max.x&&this.min.y<=A.min.y&&A.max.y<=this.max.y&&this.min.z<=A.min.z&&A.max.z<=this.max.z}getParameter(A,I){return I.set((A.x-this.min.x)/(this.max.x-this.min.x),(A.y-this.min.y)/(this.max.y-this.min.y),(A.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(A){return!(A.max.xthis.max.x||A.max.ythis.max.y||A.max.zthis.max.z)}intersectsSphere(A){return this.clampPoint(A.center,Pi),Pi.distanceToSquared(A.center)<=A.radius*A.radius}intersectsPlane(A){let I,C;return A.normal.x>0?(I=A.normal.x*this.min.x,C=A.normal.x*this.max.x):(I=A.normal.x*this.max.x,C=A.normal.x*this.min.x),A.normal.y>0?(I+=A.normal.y*this.min.y,C+=A.normal.y*this.max.y):(I+=A.normal.y*this.max.y,C+=A.normal.y*this.min.y),A.normal.z>0?(I+=A.normal.z*this.min.z,C+=A.normal.z*this.max.z):(I+=A.normal.z*this.max.z,C+=A.normal.z*this.min.z),I<=-A.constant&&C>=-A.constant}intersectsTriangle(A){if(this.isEmpty())return!1;this.getCenter($s),uc.subVectors(this.max,$s),To.subVectors(A.a,$s),xo.subVectors(A.b,$s),vo.subVectors(A.c,$s),Ve.subVectors(xo,To),Xe.subVectors(vo,xo),ct.subVectors(To,vo);let I=[0,-Ve.z,Ve.y,0,-Xe.z,Xe.y,0,-ct.z,ct.y,Ve.z,0,-Ve.x,Xe.z,0,-Xe.x,ct.z,0,-ct.x,-Ve.y,Ve.x,0,-Xe.y,Xe.x,0,-ct.y,ct.x,0];return!Ay(I,To,xo,vo,uc)||(I=[1,0,0,0,1,0,0,0,1],!Ay(I,To,xo,vo,uc))?!1:(kc.crossVectors(Ve,Xe),I=[kc.x,kc.y,kc.z],Ay(I,To,xo,vo,uc))}clampPoint(A,I){return I.copy(A).clamp(this.min,this.max)}distanceToPoint(A){return this.clampPoint(A,Pi).distanceTo(A)}getBoundingSphere(A){return this.isEmpty()?A.makeEmpty():(this.getCenter(A.center),A.radius=this.getSize(Pi).length()*.5),A}intersect(A){return this.min.max(A.min),this.max.min(A.max),this.isEmpty()&&this.makeEmpty(),this}union(A){return this.min.min(A.min),this.max.max(A.max),this}applyMatrix4(A){return this.isEmpty()?this:(jQ[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(A),jQ[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(A),jQ[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(A),jQ[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(A),jQ[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(A),jQ[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(A),jQ[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(A),jQ[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(A),this.setFromPoints(jQ),this)}translate(A){return this.min.add(A),this.max.add(A),this}equals(A){return A.min.equals(this.min)&&A.max.equals(this.max)}}const jQ=[new _,new _,new _,new _,new _,new _,new _,new _],Pi=new _,yc=new aC,To=new _,xo=new _,vo=new _,Ve=new _,Xe=new _,ct=new _,$s=new _,uc=new _,kc=new _,Dt=new _;function Ay(g,A,I,C,B){for(let i=0,Q=g.length-3;i<=Q;i+=3){Dt.fromArray(g,i);const e=B.x*Math.abs(Dt.x)+B.y*Math.abs(Dt.y)+B.z*Math.abs(Dt.z),E=A.dot(Dt),t=I.dot(Dt),n=C.dot(Dt);if(Math.max(-Math.max(E,t,n),Math.min(E,t,n))>e)return!1}return!0}const Cb=new aC,Aa=new _,Iy=new _;class xC{constructor(A=new _,I=-1){this.isSphere=!0,this.center=A,this.radius=I}set(A,I){return this.center.copy(A),this.radius=I,this}setFromPoints(A,I){const C=this.center;I!==void 0?C.copy(I):Cb.setFromPoints(A).getCenter(C);let B=0;for(let i=0,Q=A.length;ithis.radius*this.radius&&(I.sub(this.center).normalize(),I.multiplyScalar(this.radius).add(this.center)),I}getBoundingBox(A){return this.isEmpty()?(A.makeEmpty(),A):(A.set(this.center,this.center),A.expandByScalar(this.radius),A)}applyMatrix4(A){return this.center.applyMatrix4(A),this.radius=this.radius*A.getMaxScaleOnAxis(),this}translate(A){return this.center.add(A),this}expandByPoint(A){if(this.isEmpty())return this.center.copy(A),this.radius=0,this;Aa.subVectors(A,this.center);const I=Aa.lengthSq();if(I>this.radius*this.radius){const C=Math.sqrt(I),B=(C-this.radius)*.5;this.center.addScaledVector(Aa,B/C),this.radius+=B}return this}union(A){return A.isEmpty()?this:this.isEmpty()?(this.copy(A),this):(this.center.equals(A.center)===!0?this.radius=Math.max(this.radius,A.radius):(Iy.subVectors(A.center,this.center).setLength(A.radius),this.expandByPoint(Aa.copy(A.center).add(Iy)),this.expandByPoint(Aa.copy(A.center).sub(Iy))),this)}equals(A){return A.center.equals(this.center)&&A.radius===this.radius}clone(){return new this.constructor().copy(this)}}const VQ=new _,gy=new _,dc=new _,ze=new _,Cy=new _,Mc=new _,By=new _;class cs{constructor(A=new _,I=new _(0,0,-1)){this.origin=A,this.direction=I}set(A,I){return this.origin.copy(A),this.direction.copy(I),this}copy(A){return this.origin.copy(A.origin),this.direction.copy(A.direction),this}at(A,I){return I.copy(this.origin).addScaledVector(this.direction,A)}lookAt(A){return this.direction.copy(A).sub(this.origin).normalize(),this}recast(A){return this.origin.copy(this.at(A,VQ)),this}closestPointToPoint(A,I){I.subVectors(A,this.origin);const C=I.dot(this.direction);return C<0?I.copy(this.origin):I.copy(this.origin).addScaledVector(this.direction,C)}distanceToPoint(A){return Math.sqrt(this.distanceSqToPoint(A))}distanceSqToPoint(A){const I=VQ.subVectors(A,this.origin).dot(this.direction);return I<0?this.origin.distanceToSquared(A):(VQ.copy(this.origin).addScaledVector(this.direction,I),VQ.distanceToSquared(A))}distanceSqToSegment(A,I,C,B){gy.copy(A).add(I).multiplyScalar(.5),dc.copy(I).sub(A).normalize(),ze.copy(this.origin).sub(gy);const i=A.distanceTo(I)*.5,Q=-this.direction.dot(dc),e=ze.dot(this.direction),E=-ze.dot(dc),t=ze.lengthSq(),n=Math.abs(1-Q*Q);let a,r,l,D;if(n>0)if(a=Q*E-e,r=Q*e-E,D=i*n,a>=0)if(r>=-D)if(r<=D){const G=1/n;a*=G,r*=G,l=a*(a+Q*r+2*e)+r*(Q*a+r+2*E)+t}else r=i,a=Math.max(0,-(Q*r+e)),l=-a*a+r*(r+2*E)+t;else r=-i,a=Math.max(0,-(Q*r+e)),l=-a*a+r*(r+2*E)+t;else r<=-D?(a=Math.max(0,-(-Q*i+e)),r=a>0?-i:Math.min(Math.max(-i,-E),i),l=-a*a+r*(r+2*E)+t):r<=D?(a=0,r=Math.min(Math.max(-i,-E),i),l=r*(r+2*E)+t):(a=Math.max(0,-(Q*i+e)),r=a>0?i:Math.min(Math.max(-i,-E),i),l=-a*a+r*(r+2*E)+t);else r=Q>0?-i:i,a=Math.max(0,-(Q*r+e)),l=-a*a+r*(r+2*E)+t;return C&&C.copy(this.origin).addScaledVector(this.direction,a),B&&B.copy(gy).addScaledVector(dc,r),l}intersectSphere(A,I){VQ.subVectors(A.center,this.origin);const C=VQ.dot(this.direction),B=VQ.dot(VQ)-C*C,i=A.radius*A.radius;if(B>i)return null;const Q=Math.sqrt(i-B),e=C-Q,E=C+Q;return E<0?null:e<0?this.at(E,I):this.at(e,I)}intersectsSphere(A){return this.distanceSqToPoint(A.center)<=A.radius*A.radius}distanceToPlane(A){const I=A.normal.dot(this.direction);if(I===0)return A.distanceToPoint(this.origin)===0?0:null;const C=-(this.origin.dot(A.normal)+A.constant)/I;return C>=0?C:null}intersectPlane(A,I){const C=this.distanceToPlane(A);return C===null?null:this.at(C,I)}intersectsPlane(A){const I=A.distanceToPoint(this.origin);return I===0||A.normal.dot(this.direction)*I<0}intersectBox(A,I){let C,B,i,Q,e,E;const t=1/this.direction.x,n=1/this.direction.y,a=1/this.direction.z,r=this.origin;return t>=0?(C=(A.min.x-r.x)*t,B=(A.max.x-r.x)*t):(C=(A.max.x-r.x)*t,B=(A.min.x-r.x)*t),n>=0?(i=(A.min.y-r.y)*n,Q=(A.max.y-r.y)*n):(i=(A.max.y-r.y)*n,Q=(A.min.y-r.y)*n),C>Q||i>B||((i>C||isNaN(C))&&(C=i),(Q=0?(e=(A.min.z-r.z)*a,E=(A.max.z-r.z)*a):(e=(A.max.z-r.z)*a,E=(A.min.z-r.z)*a),C>E||e>B)||((e>C||C!==C)&&(C=e),(E=0?C:B,I)}intersectsBox(A){return this.intersectBox(A,VQ)!==null}intersectTriangle(A,I,C,B,i){Cy.subVectors(I,A),Mc.subVectors(C,A),By.crossVectors(Cy,Mc);let Q=this.direction.dot(By),e;if(Q>0){if(B)return null;e=1}else if(Q<0)e=-1,Q=-Q;else return null;ze.subVectors(this.origin,A);const E=e*this.direction.dot(Mc.crossVectors(ze,Mc));if(E<0)return null;const t=e*this.direction.dot(Cy.cross(ze));if(t<0||E+t>Q)return null;const n=-e*ze.dot(By);return n<0?null:this.at(n/Q,i)}applyMatrix4(A){return this.origin.applyMatrix4(A),this.direction.transformDirection(A),this}equals(A){return A.origin.equals(this.origin)&&A.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class MI{constructor(A,I,C,B,i,Q,e,E,t,n,a,r,l,D,G,h){MI.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],A!==void 0&&this.set(A,I,C,B,i,Q,e,E,t,n,a,r,l,D,G,h)}set(A,I,C,B,i,Q,e,E,t,n,a,r,l,D,G,h){const c=this.elements;return c[0]=A,c[4]=I,c[8]=C,c[12]=B,c[1]=i,c[5]=Q,c[9]=e,c[13]=E,c[2]=t,c[6]=n,c[10]=a,c[14]=r,c[3]=l,c[7]=D,c[11]=G,c[15]=h,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new MI().fromArray(this.elements)}copy(A){const I=this.elements,C=A.elements;return I[0]=C[0],I[1]=C[1],I[2]=C[2],I[3]=C[3],I[4]=C[4],I[5]=C[5],I[6]=C[6],I[7]=C[7],I[8]=C[8],I[9]=C[9],I[10]=C[10],I[11]=C[11],I[12]=C[12],I[13]=C[13],I[14]=C[14],I[15]=C[15],this}copyPosition(A){const I=this.elements,C=A.elements;return I[12]=C[12],I[13]=C[13],I[14]=C[14],this}setFromMatrix3(A){const I=A.elements;return this.set(I[0],I[3],I[6],0,I[1],I[4],I[7],0,I[2],I[5],I[8],0,0,0,0,1),this}extractBasis(A,I,C){return A.setFromMatrixColumn(this,0),I.setFromMatrixColumn(this,1),C.setFromMatrixColumn(this,2),this}makeBasis(A,I,C){return this.set(A.x,I.x,C.x,0,A.y,I.y,C.y,0,A.z,I.z,C.z,0,0,0,0,1),this}extractRotation(A){const I=this.elements,C=A.elements,B=1/bo.setFromMatrixColumn(A,0).length(),i=1/bo.setFromMatrixColumn(A,1).length(),Q=1/bo.setFromMatrixColumn(A,2).length();return I[0]=C[0]*B,I[1]=C[1]*B,I[2]=C[2]*B,I[3]=0,I[4]=C[4]*i,I[5]=C[5]*i,I[6]=C[6]*i,I[7]=0,I[8]=C[8]*Q,I[9]=C[9]*Q,I[10]=C[10]*Q,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,this}makeRotationFromEuler(A){const I=this.elements,C=A.x,B=A.y,i=A.z,Q=Math.cos(C),e=Math.sin(C),E=Math.cos(B),t=Math.sin(B),n=Math.cos(i),a=Math.sin(i);if(A.order==="XYZ"){const r=Q*n,l=Q*a,D=e*n,G=e*a;I[0]=E*n,I[4]=-E*a,I[8]=t,I[1]=l+D*t,I[5]=r-G*t,I[9]=-e*E,I[2]=G-r*t,I[6]=D+l*t,I[10]=Q*E}else if(A.order==="YXZ"){const r=E*n,l=E*a,D=t*n,G=t*a;I[0]=r+G*e,I[4]=D*e-l,I[8]=Q*t,I[1]=Q*a,I[5]=Q*n,I[9]=-e,I[2]=l*e-D,I[6]=G+r*e,I[10]=Q*E}else if(A.order==="ZXY"){const r=E*n,l=E*a,D=t*n,G=t*a;I[0]=r-G*e,I[4]=-Q*a,I[8]=D+l*e,I[1]=l+D*e,I[5]=Q*n,I[9]=G-r*e,I[2]=-Q*t,I[6]=e,I[10]=Q*E}else if(A.order==="ZYX"){const r=Q*n,l=Q*a,D=e*n,G=e*a;I[0]=E*n,I[4]=D*t-l,I[8]=r*t+G,I[1]=E*a,I[5]=G*t+r,I[9]=l*t-D,I[2]=-t,I[6]=e*E,I[10]=Q*E}else if(A.order==="YZX"){const r=Q*E,l=Q*t,D=e*E,G=e*t;I[0]=E*n,I[4]=G-r*a,I[8]=D*a+l,I[1]=a,I[5]=Q*n,I[9]=-e*n,I[2]=-t*n,I[6]=l*a+D,I[10]=r-G*a}else if(A.order==="XZY"){const r=Q*E,l=Q*t,D=e*E,G=e*t;I[0]=E*n,I[4]=-a,I[8]=t*n,I[1]=r*a+G,I[5]=Q*n,I[9]=l*a-D,I[2]=D*a-l,I[6]=e*n,I[10]=G*a+r}return I[3]=0,I[7]=0,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,this}makeRotationFromQuaternion(A){return this.compose(Bb,A,ib)}lookAt(A,I,C){const B=this.elements;return Ci.subVectors(A,I),Ci.lengthSq()===0&&(Ci.z=1),Ci.normalize(),$e.crossVectors(C,Ci),$e.lengthSq()===0&&(Math.abs(C.z)===1?Ci.x+=1e-4:Ci.z+=1e-4,Ci.normalize(),$e.crossVectors(C,Ci)),$e.normalize(),pc.crossVectors(Ci,$e),B[0]=$e.x,B[4]=pc.x,B[8]=Ci.x,B[1]=$e.y,B[5]=pc.y,B[9]=Ci.y,B[2]=$e.z,B[6]=pc.z,B[10]=Ci.z,this}multiply(A){return this.multiplyMatrices(this,A)}premultiply(A){return this.multiplyMatrices(A,this)}multiplyMatrices(A,I){const C=A.elements,B=I.elements,i=this.elements,Q=C[0],e=C[4],E=C[8],t=C[12],n=C[1],a=C[5],r=C[9],l=C[13],D=C[2],G=C[6],h=C[10],c=C[14],y=C[3],S=C[7],k=C[11],N=C[15],M=B[0],F=B[4],q=B[8],Z=B[12],U=B[1],K=B[5],z=B[9],DA=B[13],X=B[2],eA=B[6],iA=B[10],wA=B[14],v=B[3],CA=B[7],gA=B[11],SA=B[15];return i[0]=Q*M+e*U+E*X+t*v,i[4]=Q*F+e*K+E*eA+t*CA,i[8]=Q*q+e*z+E*iA+t*gA,i[12]=Q*Z+e*DA+E*wA+t*SA,i[1]=n*M+a*U+r*X+l*v,i[5]=n*F+a*K+r*eA+l*CA,i[9]=n*q+a*z+r*iA+l*gA,i[13]=n*Z+a*DA+r*wA+l*SA,i[2]=D*M+G*U+h*X+c*v,i[6]=D*F+G*K+h*eA+c*CA,i[10]=D*q+G*z+h*iA+c*gA,i[14]=D*Z+G*DA+h*wA+c*SA,i[3]=y*M+S*U+k*X+N*v,i[7]=y*F+S*K+k*eA+N*CA,i[11]=y*q+S*z+k*iA+N*gA,i[15]=y*Z+S*DA+k*wA+N*SA,this}multiplyScalar(A){const I=this.elements;return I[0]*=A,I[4]*=A,I[8]*=A,I[12]*=A,I[1]*=A,I[5]*=A,I[9]*=A,I[13]*=A,I[2]*=A,I[6]*=A,I[10]*=A,I[14]*=A,I[3]*=A,I[7]*=A,I[11]*=A,I[15]*=A,this}determinant(){const A=this.elements,I=A[0],C=A[4],B=A[8],i=A[12],Q=A[1],e=A[5],E=A[9],t=A[13],n=A[2],a=A[6],r=A[10],l=A[14],D=A[3],G=A[7],h=A[11],c=A[15];return D*(+i*E*a-B*t*a-i*e*r+C*t*r+B*e*l-C*E*l)+G*(+I*E*l-I*t*r+i*Q*r-B*Q*l+B*t*n-i*E*n)+h*(+I*t*a-I*e*l-i*Q*a+C*Q*l+i*e*n-C*t*n)+c*(-B*e*n-I*E*a+I*e*r+B*Q*a-C*Q*r+C*E*n)}transpose(){const A=this.elements;let I;return I=A[1],A[1]=A[4],A[4]=I,I=A[2],A[2]=A[8],A[8]=I,I=A[6],A[6]=A[9],A[9]=I,I=A[3],A[3]=A[12],A[12]=I,I=A[7],A[7]=A[13],A[13]=I,I=A[11],A[11]=A[14],A[14]=I,this}setPosition(A,I,C){const B=this.elements;return A.isVector3?(B[12]=A.x,B[13]=A.y,B[14]=A.z):(B[12]=A,B[13]=I,B[14]=C),this}invert(){const A=this.elements,I=A[0],C=A[1],B=A[2],i=A[3],Q=A[4],e=A[5],E=A[6],t=A[7],n=A[8],a=A[9],r=A[10],l=A[11],D=A[12],G=A[13],h=A[14],c=A[15],y=a*h*t-G*r*t+G*E*l-e*h*l-a*E*c+e*r*c,S=D*r*t-n*h*t-D*E*l+Q*h*l+n*E*c-Q*r*c,k=n*G*t-D*a*t+D*e*l-Q*G*l-n*e*c+Q*a*c,N=D*a*E-n*G*E-D*e*r+Q*G*r+n*e*h-Q*a*h,M=I*y+C*S+B*k+i*N;if(M===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const F=1/M;return A[0]=y*F,A[1]=(G*r*i-a*h*i-G*B*l+C*h*l+a*B*c-C*r*c)*F,A[2]=(e*h*i-G*E*i+G*B*t-C*h*t-e*B*c+C*E*c)*F,A[3]=(a*E*i-e*r*i-a*B*t+C*r*t+e*B*l-C*E*l)*F,A[4]=S*F,A[5]=(n*h*i-D*r*i+D*B*l-I*h*l-n*B*c+I*r*c)*F,A[6]=(D*E*i-Q*h*i-D*B*t+I*h*t+Q*B*c-I*E*c)*F,A[7]=(Q*r*i-n*E*i+n*B*t-I*r*t-Q*B*l+I*E*l)*F,A[8]=k*F,A[9]=(D*a*i-n*G*i-D*C*l+I*G*l+n*C*c-I*a*c)*F,A[10]=(Q*G*i-D*e*i+D*C*t-I*G*t-Q*C*c+I*e*c)*F,A[11]=(n*e*i-Q*a*i-n*C*t+I*a*t+Q*C*l-I*e*l)*F,A[12]=N*F,A[13]=(n*G*B-D*a*B+D*C*r-I*G*r-n*C*h+I*a*h)*F,A[14]=(D*e*B-Q*G*B-D*C*E+I*G*E+Q*C*h-I*e*h)*F,A[15]=(Q*a*B-n*e*B+n*C*E-I*a*E-Q*C*r+I*e*r)*F,this}scale(A){const I=this.elements,C=A.x,B=A.y,i=A.z;return I[0]*=C,I[4]*=B,I[8]*=i,I[1]*=C,I[5]*=B,I[9]*=i,I[2]*=C,I[6]*=B,I[10]*=i,I[3]*=C,I[7]*=B,I[11]*=i,this}getMaxScaleOnAxis(){const A=this.elements,I=A[0]*A[0]+A[1]*A[1]+A[2]*A[2],C=A[4]*A[4]+A[5]*A[5]+A[6]*A[6],B=A[8]*A[8]+A[9]*A[9]+A[10]*A[10];return Math.sqrt(Math.max(I,C,B))}makeTranslation(A,I,C){return A.isVector3?this.set(1,0,0,A.x,0,1,0,A.y,0,0,1,A.z,0,0,0,1):this.set(1,0,0,A,0,1,0,I,0,0,1,C,0,0,0,1),this}makeRotationX(A){const I=Math.cos(A),C=Math.sin(A);return this.set(1,0,0,0,0,I,-C,0,0,C,I,0,0,0,0,1),this}makeRotationY(A){const I=Math.cos(A),C=Math.sin(A);return this.set(I,0,C,0,0,1,0,0,-C,0,I,0,0,0,0,1),this}makeRotationZ(A){const I=Math.cos(A),C=Math.sin(A);return this.set(I,-C,0,0,C,I,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(A,I){const C=Math.cos(I),B=Math.sin(I),i=1-C,Q=A.x,e=A.y,E=A.z,t=i*Q,n=i*e;return this.set(t*Q+C,t*e-B*E,t*E+B*e,0,t*e+B*E,n*e+C,n*E-B*Q,0,t*E-B*e,n*E+B*Q,i*E*E+C,0,0,0,0,1),this}makeScale(A,I,C){return this.set(A,0,0,0,0,I,0,0,0,0,C,0,0,0,0,1),this}makeShear(A,I,C,B,i,Q){return this.set(1,C,i,0,A,1,Q,0,I,B,1,0,0,0,0,1),this}compose(A,I,C){const B=this.elements,i=I._x,Q=I._y,e=I._z,E=I._w,t=i+i,n=Q+Q,a=e+e,r=i*t,l=i*n,D=i*a,G=Q*n,h=Q*a,c=e*a,y=E*t,S=E*n,k=E*a,N=C.x,M=C.y,F=C.z;return B[0]=(1-(G+c))*N,B[1]=(l+k)*N,B[2]=(D-S)*N,B[3]=0,B[4]=(l-k)*M,B[5]=(1-(r+c))*M,B[6]=(h+y)*M,B[7]=0,B[8]=(D+S)*F,B[9]=(h-y)*F,B[10]=(1-(r+G))*F,B[11]=0,B[12]=A.x,B[13]=A.y,B[14]=A.z,B[15]=1,this}decompose(A,I,C){const B=this.elements;let i=bo.set(B[0],B[1],B[2]).length();const Q=bo.set(B[4],B[5],B[6]).length(),e=bo.set(B[8],B[9],B[10]).length();this.determinant()<0&&(i=-i),A.x=B[12],A.y=B[13],A.z=B[14],Wi.copy(this);const t=1/i,n=1/Q,a=1/e;return Wi.elements[0]*=t,Wi.elements[1]*=t,Wi.elements[2]*=t,Wi.elements[4]*=n,Wi.elements[5]*=n,Wi.elements[6]*=n,Wi.elements[8]*=a,Wi.elements[9]*=a,Wi.elements[10]*=a,I.setFromRotationMatrix(Wi),C.x=i,C.y=Q,C.z=e,this}makePerspective(A,I,C,B,i,Q,e=FQ){const E=this.elements,t=2*i/(I-A),n=2*i/(C-B),a=(I+A)/(I-A),r=(C+B)/(C-B);let l,D;if(e===FQ)l=-(Q+i)/(Q-i),D=-2*Q*i/(Q-i);else if(e===ur)l=-Q/(Q-i),D=-Q*i/(Q-i);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+e);return E[0]=t,E[4]=0,E[8]=a,E[12]=0,E[1]=0,E[5]=n,E[9]=r,E[13]=0,E[2]=0,E[6]=0,E[10]=l,E[14]=D,E[3]=0,E[7]=0,E[11]=-1,E[15]=0,this}makeOrthographic(A,I,C,B,i,Q,e=FQ){const E=this.elements,t=1/(I-A),n=1/(C-B),a=1/(Q-i),r=(I+A)*t,l=(C+B)*n;let D,G;if(e===FQ)D=(Q+i)*a,G=-2*a;else if(e===ur)D=i*a,G=-1*a;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+e);return E[0]=2*t,E[4]=0,E[8]=0,E[12]=-r,E[1]=0,E[5]=2*n,E[9]=0,E[13]=-l,E[2]=0,E[6]=0,E[10]=G,E[14]=-D,E[3]=0,E[7]=0,E[11]=0,E[15]=1,this}equals(A){const I=this.elements,C=A.elements;for(let B=0;B<16;B++)if(I[B]!==C[B])return!1;return!0}fromArray(A,I=0){for(let C=0;C<16;C++)this.elements[C]=A[C+I];return this}toArray(A=[],I=0){const C=this.elements;return A[I]=C[0],A[I+1]=C[1],A[I+2]=C[2],A[I+3]=C[3],A[I+4]=C[4],A[I+5]=C[5],A[I+6]=C[6],A[I+7]=C[7],A[I+8]=C[8],A[I+9]=C[9],A[I+10]=C[10],A[I+11]=C[11],A[I+12]=C[12],A[I+13]=C[13],A[I+14]=C[14],A[I+15]=C[15],A}}const bo=new _,Wi=new MI,Bb=new _(0,0,0),ib=new _(1,1,1),$e=new _,pc=new _,Ci=new _,QF=new MI,eF=new Wg;class YQ{constructor(A=0,I=0,C=0,B=YQ.DEFAULT_ORDER){this.isEuler=!0,this._x=A,this._y=I,this._z=C,this._order=B}get x(){return this._x}set x(A){this._x=A,this._onChangeCallback()}get y(){return this._y}set y(A){this._y=A,this._onChangeCallback()}get z(){return this._z}set z(A){this._z=A,this._onChangeCallback()}get order(){return this._order}set order(A){this._order=A,this._onChangeCallback()}set(A,I,C,B=this._order){return this._x=A,this._y=I,this._z=C,this._order=B,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(A){return this._x=A._x,this._y=A._y,this._z=A._z,this._order=A._order,this._onChangeCallback(),this}setFromRotationMatrix(A,I=this._order,C=!0){const B=A.elements,i=B[0],Q=B[4],e=B[8],E=B[1],t=B[5],n=B[9],a=B[2],r=B[6],l=B[10];switch(I){case"XYZ":this._y=Math.asin(nC(e,-1,1)),Math.abs(e)<.9999999?(this._x=Math.atan2(-n,l),this._z=Math.atan2(-Q,i)):(this._x=Math.atan2(r,t),this._z=0);break;case"YXZ":this._x=Math.asin(-nC(n,-1,1)),Math.abs(n)<.9999999?(this._y=Math.atan2(e,l),this._z=Math.atan2(E,t)):(this._y=Math.atan2(-a,i),this._z=0);break;case"ZXY":this._x=Math.asin(nC(r,-1,1)),Math.abs(r)<.9999999?(this._y=Math.atan2(-a,l),this._z=Math.atan2(-Q,t)):(this._y=0,this._z=Math.atan2(E,i));break;case"ZYX":this._y=Math.asin(-nC(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(r,l),this._z=Math.atan2(E,i)):(this._x=0,this._z=Math.atan2(-Q,t));break;case"YZX":this._z=Math.asin(nC(E,-1,1)),Math.abs(E)<.9999999?(this._x=Math.atan2(-n,t),this._y=Math.atan2(-a,i)):(this._x=0,this._y=Math.atan2(e,l));break;case"XZY":this._z=Math.asin(-nC(Q,-1,1)),Math.abs(Q)<.9999999?(this._x=Math.atan2(r,t),this._y=Math.atan2(e,i)):(this._x=Math.atan2(-n,l),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+I)}return this._order=I,C===!0&&this._onChangeCallback(),this}setFromQuaternion(A,I,C){return QF.makeRotationFromQuaternion(A),this.setFromRotationMatrix(QF,I,C)}setFromVector3(A,I=this._order){return this.set(A.x,A.y,A.z,I)}reorder(A){return eF.setFromEuler(this),this.setFromQuaternion(eF,A)}equals(A){return A._x===this._x&&A._y===this._y&&A._z===this._z&&A._order===this._order}fromArray(A){return this._x=A[0],this._y=A[1],this._z=A[2],A[3]!==void 0&&(this._order=A[3]),this._onChangeCallback(),this}toArray(A=[],I=0){return A[I]=this._x,A[I+1]=this._y,A[I+2]=this._z,A[I+3]=this._order,A}_onChange(A){return this._onChangeCallback=A,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}YQ.DEFAULT_ORDER="XYZ";class $t{constructor(){this.mask=1}set(A){this.mask=(1<>>0}enable(A){this.mask|=1<1){for(let I=0;I1){for(let C=0;C0&&(B.userData=this.userData),B.layers=this.layers.mask,B.matrix=this.matrix.toArray(),B.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(B.matrixAutoUpdate=!1),this.isInstancedMesh&&(B.type="InstancedMesh",B.count=this.count,B.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(B.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(B.type="BatchedMesh",B.perObjectFrustumCulled=this.perObjectFrustumCulled,B.sortObjects=this.sortObjects,B.drawRanges=this._drawRanges,B.reservedRanges=this._reservedRanges,B.visibility=this._visibility,B.active=this._active,B.bounds=this._bounds.map(e=>({boxInitialized:e.boxInitialized,boxMin:e.box.min.toArray(),boxMax:e.box.max.toArray(),sphereInitialized:e.sphereInitialized,sphereRadius:e.sphere.radius,sphereCenter:e.sphere.center.toArray()})),B.maxGeometryCount=this._maxGeometryCount,B.maxVertexCount=this._maxVertexCount,B.maxIndexCount=this._maxIndexCount,B.geometryInitialized=this._geometryInitialized,B.geometryCount=this._geometryCount,B.matricesTexture=this._matricesTexture.toJSON(A),this.boundingSphere!==null&&(B.boundingSphere={center:B.boundingSphere.center.toArray(),radius:B.boundingSphere.radius}),this.boundingBox!==null&&(B.boundingBox={min:B.boundingBox.min.toArray(),max:B.boundingBox.max.toArray()}));function i(e,E){return e[E.uuid]===void 0&&(e[E.uuid]=E.toJSON(A)),E.uuid}if(this.isScene)this.background&&(this.background.isColor?B.background=this.background.toJSON():this.background.isTexture&&(B.background=this.background.toJSON(A).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(B.environment=this.environment.toJSON(A).uuid);else if(this.isMesh||this.isLine||this.isPoints){B.geometry=i(A.geometries,this.geometry);const e=this.geometry.parameters;if(e!==void 0&&e.shapes!==void 0){const E=e.shapes;if(Array.isArray(E))for(let t=0,n=E.length;t0){B.children=[];for(let e=0;e0){B.animations=[];for(let e=0;e0&&(C.geometries=e),E.length>0&&(C.materials=E),t.length>0&&(C.textures=t),n.length>0&&(C.images=n),a.length>0&&(C.shapes=a),r.length>0&&(C.skeletons=r),l.length>0&&(C.animations=l),D.length>0&&(C.nodes=D)}return C.object=B,C;function Q(e){const E=[];for(const t in e){const n=e[t];delete n.metadata,E.push(n)}return E}}clone(A){return new this.constructor().copy(this,A)}copy(A,I=!0){if(this.name=A.name,this.up.copy(A.up),this.position.copy(A.position),this.rotation.order=A.rotation.order,this.quaternion.copy(A.quaternion),this.scale.copy(A.scale),this.matrix.copy(A.matrix),this.matrixWorld.copy(A.matrixWorld),this.matrixAutoUpdate=A.matrixAutoUpdate,this.matrixWorldAutoUpdate=A.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=A.matrixWorldNeedsUpdate,this.layers.mask=A.layers.mask,this.visible=A.visible,this.castShadow=A.castShadow,this.receiveShadow=A.receiveShadow,this.frustumCulled=A.frustumCulled,this.renderOrder=A.renderOrder,this.animations=A.animations.slice(),this.userData=JSON.parse(JSON.stringify(A.userData)),I===!0)for(let C=0;C0?B.multiplyScalar(1/Math.sqrt(i)):B.set(0,0,0)}static getBarycoord(A,I,C,B,i){ji.subVectors(B,I),zQ.subVectors(C,I),iy.subVectors(A,I);const Q=ji.dot(ji),e=ji.dot(zQ),E=ji.dot(iy),t=zQ.dot(zQ),n=zQ.dot(iy),a=Q*t-e*e;if(a===0)return i.set(0,0,0),null;const r=1/a,l=(t*E-e*n)*r,D=(Q*n-e*E)*r;return i.set(1-l-D,D,l)}static containsPoint(A,I,C,B){return this.getBarycoord(A,I,C,B,$Q)===null?!1:$Q.x>=0&&$Q.y>=0&&$Q.x+$Q.y<=1}static getInterpolation(A,I,C,B,i,Q,e,E){return this.getBarycoord(A,I,C,B,$Q)===null?(E.x=0,E.y=0,"z"in E&&(E.z=0),"w"in E&&(E.w=0),null):(E.setScalar(0),E.addScaledVector(i,$Q.x),E.addScaledVector(Q,$Q.y),E.addScaledVector(e,$Q.z),E)}static isFrontFacing(A,I,C,B){return ji.subVectors(C,I),zQ.subVectors(A,I),ji.cross(zQ).dot(B)<0}set(A,I,C){return this.a.copy(A),this.b.copy(I),this.c.copy(C),this}setFromPointsAndIndices(A,I,C,B){return this.a.copy(A[I]),this.b.copy(A[C]),this.c.copy(A[B]),this}setFromAttributeAndIndices(A,I,C,B){return this.a.fromBufferAttribute(A,I),this.b.fromBufferAttribute(A,C),this.c.fromBufferAttribute(A,B),this}clone(){return new this.constructor().copy(this)}copy(A){return this.a.copy(A.a),this.b.copy(A.b),this.c.copy(A.c),this}getArea(){return ji.subVectors(this.c,this.b),zQ.subVectors(this.a,this.b),ji.cross(zQ).length()*.5}getMidpoint(A){return A.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(A){return _B.getNormal(this.a,this.b,this.c,A)}getPlane(A){return A.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(A,I){return _B.getBarycoord(A,this.a,this.b,this.c,I)}getInterpolation(A,I,C,B,i){return _B.getInterpolation(A,this.a,this.b,this.c,I,C,B,i)}containsPoint(A){return _B.containsPoint(A,this.a,this.b,this.c)}isFrontFacing(A){return _B.isFrontFacing(this.a,this.b,this.c,A)}intersectsBox(A){return A.intersectsTriangle(this)}closestPointToPoint(A,I){const C=this.a,B=this.b,i=this.c;let Q,e;_o.subVectors(B,C),Zo.subVectors(i,C),Qy.subVectors(A,C);const E=_o.dot(Qy),t=Zo.dot(Qy);if(E<=0&&t<=0)return I.copy(C);ey.subVectors(A,B);const n=_o.dot(ey),a=Zo.dot(ey);if(n>=0&&a<=n)return I.copy(B);const r=E*a-n*t;if(r<=0&&E>=0&&n<=0)return Q=E/(E-n),I.copy(C).addScaledVector(_o,Q);Ey.subVectors(A,i);const l=_o.dot(Ey),D=Zo.dot(Ey);if(D>=0&&l<=D)return I.copy(i);const G=l*t-E*D;if(G<=0&&t>=0&&D<=0)return e=t/(t-D),I.copy(C).addScaledVector(Zo,e);const h=n*D-l*a;if(h<=0&&a-n>=0&&l-D>=0)return sF.subVectors(i,B),e=(a-n)/(a-n+(l-D)),I.copy(B).addScaledVector(sF,e);const c=1/(h+G+r);return Q=G*c,e=r*c,I.copy(C).addScaledVector(_o,Q).addScaledVector(Zo,e)}equals(A){return A.a.equals(this.a)&&A.b.equals(this.b)&&A.c.equals(this.c)}}const Km={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},AE={h:0,s:0,l:0},Nc={h:0,s:0,l:0};function ty(g,A,I){return I<0&&(I+=1),I>1&&(I-=1),I<1/6?g+(A-g)*6*I:I<1/2?A:I<2/3?g+(A-g)*6*(2/3-I):g}class eI{constructor(A,I,C){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(A,I,C)}set(A,I,C){if(I===void 0&&C===void 0){const B=A;B&&B.isColor?this.copy(B):typeof B=="number"?this.setHex(B):typeof B=="string"&&this.setStyle(B)}else this.setRGB(A,I,C);return this}setScalar(A){return this.r=A,this.g=A,this.b=A,this}setHex(A,I=cC){return A=Math.floor(A),this.r=(A>>16&255)/255,this.g=(A>>8&255)/255,this.b=(A&255)/255,Rg.toWorkingColorSpace(this,I),this}setRGB(A,I,C,B=Rg.workingColorSpace){return this.r=A,this.g=I,this.b=C,Rg.toWorkingColorSpace(this,B),this}setHSL(A,I,C,B=Rg.workingColorSpace){if(A=Nd(A,1),I=nC(I,0,1),C=nC(C,0,1),I===0)this.r=this.g=this.b=C;else{const i=C<=.5?C*(1+I):C+I-C*I,Q=2*C-i;this.r=ty(Q,i,A+1/3),this.g=ty(Q,i,A),this.b=ty(Q,i,A-1/3)}return Rg.toWorkingColorSpace(this,B),this}setStyle(A,I=cC){function C(i){i!==void 0&&parseFloat(i)<1&&console.warn("THREE.Color: Alpha component of "+A+" will be ignored.")}let B;if(B=/^(\w+)\(([^\)]*)\)/.exec(A)){let i;const Q=B[1],e=B[2];switch(Q){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(e))return C(i[4]),this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,I);if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(e))return C(i[4]),this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,I);break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(e))return C(i[4]),this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,I);break;default:console.warn("THREE.Color: Unknown color model "+A)}}else if(B=/^\#([A-Fa-f\d]+)$/.exec(A)){const i=B[1],Q=i.length;if(Q===3)return this.setRGB(parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,I);if(Q===6)return this.setHex(parseInt(i,16),I);console.warn("THREE.Color: Invalid hex color "+A)}else if(A&&A.length>0)return this.setColorName(A,I);return this}setColorName(A,I=cC){const C=Km[A.toLowerCase()];return C!==void 0?this.setHex(C,I):console.warn("THREE.Color: Unknown color "+A),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(A){return this.r=A.r,this.g=A.g,this.b=A.b,this}copySRGBToLinear(A){return this.r=vn(A.r),this.g=vn(A.g),this.b=vn(A.b),this}copyLinearToSRGB(A){return this.r=XG(A.r),this.g=XG(A.g),this.b=XG(A.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(A=cC){return Rg.fromWorkingColorSpace(wB.copy(this),A),Math.round(nC(wB.r*255,0,255))*65536+Math.round(nC(wB.g*255,0,255))*256+Math.round(nC(wB.b*255,0,255))}getHexString(A=cC){return("000000"+this.getHex(A).toString(16)).slice(-6)}getHSL(A,I=Rg.workingColorSpace){Rg.fromWorkingColorSpace(wB.copy(this),I);const C=wB.r,B=wB.g,i=wB.b,Q=Math.max(C,B,i),e=Math.min(C,B,i);let E,t;const n=(e+Q)/2;if(e===Q)E=0,t=0;else{const a=Q-e;switch(t=n<=.5?a/(Q+e):a/(2-Q-e),Q){case C:E=(B-i)/a+(B0!=A>0&&this.version++,this._alphaTest=A}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(A){if(A!==void 0)for(const I in A){const C=A[I];if(C===void 0){console.warn(`THREE.Material: parameter '${I}' has value of undefined.`);continue}const B=this[I];if(B===void 0){console.warn(`THREE.Material: '${I}' is not a property of THREE.${this.type}.`);continue}B&&B.isColor?B.set(C):B&&B.isVector3&&C&&C.isVector3?B.copy(C):this[I]=C}}toJSON(A){const I=A===void 0||typeof A=="string";I&&(A={textures:{},images:{}});const C={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};C.uuid=this.uuid,C.type=this.type,this.name!==""&&(C.name=this.name),this.color&&this.color.isColor&&(C.color=this.color.getHex()),this.roughness!==void 0&&(C.roughness=this.roughness),this.metalness!==void 0&&(C.metalness=this.metalness),this.sheen!==void 0&&(C.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(C.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(C.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(C.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(C.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(C.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(C.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(C.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(C.shininess=this.shininess),this.clearcoat!==void 0&&(C.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(C.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(C.clearcoatMap=this.clearcoatMap.toJSON(A).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(C.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(A).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(C.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(A).uuid,C.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(C.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(C.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(C.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(C.iridescenceMap=this.iridescenceMap.toJSON(A).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(C.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(A).uuid),this.anisotropy!==void 0&&(C.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(C.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(C.anisotropyMap=this.anisotropyMap.toJSON(A).uuid),this.map&&this.map.isTexture&&(C.map=this.map.toJSON(A).uuid),this.matcap&&this.matcap.isTexture&&(C.matcap=this.matcap.toJSON(A).uuid),this.alphaMap&&this.alphaMap.isTexture&&(C.alphaMap=this.alphaMap.toJSON(A).uuid),this.lightMap&&this.lightMap.isTexture&&(C.lightMap=this.lightMap.toJSON(A).uuid,C.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(C.aoMap=this.aoMap.toJSON(A).uuid,C.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(C.bumpMap=this.bumpMap.toJSON(A).uuid,C.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(C.normalMap=this.normalMap.toJSON(A).uuid,C.normalMapType=this.normalMapType,C.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(C.displacementMap=this.displacementMap.toJSON(A).uuid,C.displacementScale=this.displacementScale,C.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(C.roughnessMap=this.roughnessMap.toJSON(A).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(C.metalnessMap=this.metalnessMap.toJSON(A).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(C.emissiveMap=this.emissiveMap.toJSON(A).uuid),this.specularMap&&this.specularMap.isTexture&&(C.specularMap=this.specularMap.toJSON(A).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(C.specularIntensityMap=this.specularIntensityMap.toJSON(A).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(C.specularColorMap=this.specularColorMap.toJSON(A).uuid),this.envMap&&this.envMap.isTexture&&(C.envMap=this.envMap.toJSON(A).uuid,this.combine!==void 0&&(C.combine=this.combine)),this.envMapIntensity!==void 0&&(C.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(C.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(C.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(C.gradientMap=this.gradientMap.toJSON(A).uuid),this.transmission!==void 0&&(C.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(C.transmissionMap=this.transmissionMap.toJSON(A).uuid),this.thickness!==void 0&&(C.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(C.thicknessMap=this.thicknessMap.toJSON(A).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(C.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(C.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(C.size=this.size),this.shadowSide!==null&&(C.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(C.sizeAttenuation=this.sizeAttenuation),this.blending!==Vt&&(C.blending=this.blending),this.side!==ri&&(C.side=this.side),this.vertexColors===!0&&(C.vertexColors=!0),this.opacity<1&&(C.opacity=this.opacity),this.transparent===!0&&(C.transparent=!0),this.blendSrc!==Nh&&(C.blendSrc=this.blendSrc),this.blendDst!==Fh&&(C.blendDst=this.blendDst),this.blendEquation!==lE&&(C.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(C.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(C.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(C.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(C.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(C.blendAlpha=this.blendAlpha),this.depthFunc!==lr&&(C.depthFunc=this.depthFunc),this.depthTest===!1&&(C.depthTest=this.depthTest),this.depthWrite===!1&&(C.depthWrite=this.depthWrite),this.colorWrite===!1&&(C.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(C.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==Hu&&(C.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(C.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(C.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==Jt&&(C.stencilFail=this.stencilFail),this.stencilZFail!==Jt&&(C.stencilZFail=this.stencilZFail),this.stencilZPass!==Jt&&(C.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(C.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(C.rotation=this.rotation),this.polygonOffset===!0&&(C.polygonOffset=!0),this.polygonOffsetFactor!==0&&(C.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(C.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(C.linewidth=this.linewidth),this.dashSize!==void 0&&(C.dashSize=this.dashSize),this.gapSize!==void 0&&(C.gapSize=this.gapSize),this.scale!==void 0&&(C.scale=this.scale),this.dithering===!0&&(C.dithering=!0),this.alphaTest>0&&(C.alphaTest=this.alphaTest),this.alphaHash===!0&&(C.alphaHash=!0),this.alphaToCoverage===!0&&(C.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(C.premultipliedAlpha=!0),this.forceSinglePass===!0&&(C.forceSinglePass=!0),this.wireframe===!0&&(C.wireframe=!0),this.wireframeLinewidth>1&&(C.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(C.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(C.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(C.flatShading=!0),this.visible===!1&&(C.visible=!1),this.toneMapped===!1&&(C.toneMapped=!1),this.fog===!1&&(C.fog=!1),Object.keys(this.userData).length>0&&(C.userData=this.userData);function B(i){const Q=[];for(const e in i){const E=i[e];delete E.metadata,Q.push(E)}return Q}if(I){const i=B(A.textures),Q=B(A.images);i.length>0&&(C.textures=i),Q.length>0&&(C.images=Q)}return C}clone(){return new this.constructor().copy(this)}copy(A){this.name=A.name,this.blending=A.blending,this.side=A.side,this.vertexColors=A.vertexColors,this.opacity=A.opacity,this.transparent=A.transparent,this.blendSrc=A.blendSrc,this.blendDst=A.blendDst,this.blendEquation=A.blendEquation,this.blendSrcAlpha=A.blendSrcAlpha,this.blendDstAlpha=A.blendDstAlpha,this.blendEquationAlpha=A.blendEquationAlpha,this.blendColor.copy(A.blendColor),this.blendAlpha=A.blendAlpha,this.depthFunc=A.depthFunc,this.depthTest=A.depthTest,this.depthWrite=A.depthWrite,this.stencilWriteMask=A.stencilWriteMask,this.stencilFunc=A.stencilFunc,this.stencilRef=A.stencilRef,this.stencilFuncMask=A.stencilFuncMask,this.stencilFail=A.stencilFail,this.stencilZFail=A.stencilZFail,this.stencilZPass=A.stencilZPass,this.stencilWrite=A.stencilWrite;const I=A.clippingPlanes;let C=null;if(I!==null){const B=I.length;C=new Array(B);for(let i=0;i!==B;++i)C[i]=I[i].clone()}return this.clippingPlanes=C,this.clipIntersection=A.clipIntersection,this.clipShadows=A.clipShadows,this.shadowSide=A.shadowSide,this.colorWrite=A.colorWrite,this.precision=A.precision,this.polygonOffset=A.polygonOffset,this.polygonOffsetFactor=A.polygonOffsetFactor,this.polygonOffsetUnits=A.polygonOffsetUnits,this.dithering=A.dithering,this.alphaTest=A.alphaTest,this.alphaHash=A.alphaHash,this.alphaToCoverage=A.alphaToCoverage,this.premultipliedAlpha=A.premultipliedAlpha,this.forceSinglePass=A.forceSinglePass,this.visible=A.visible,this.toneMapped=A.toneMapped,this.userData=JSON.parse(JSON.stringify(A.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(A){A===!0&&this.version++}}class NC extends hC{constructor(A){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new eI(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Or,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(A)}copy(A){return super.copy(A),this.color.copy(A.color),this.map=A.map,this.lightMap=A.lightMap,this.lightMapIntensity=A.lightMapIntensity,this.aoMap=A.aoMap,this.aoMapIntensity=A.aoMapIntensity,this.specularMap=A.specularMap,this.alphaMap=A.alphaMap,this.envMap=A.envMap,this.combine=A.combine,this.reflectivity=A.reflectivity,this.refractionRatio=A.refractionRatio,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this.wireframeLinecap=A.wireframeLinecap,this.wireframeLinejoin=A.wireframeLinejoin,this.fog=A.fog,this}}const Qe=sb();function sb(){const g=new ArrayBuffer(4),A=new Float32Array(g),I=new Uint32Array(g),C=new Uint32Array(512),B=new Uint32Array(512);for(let E=0;E<256;++E){const t=E-127;t<-27?(C[E]=0,C[E|256]=32768,B[E]=24,B[E|256]=24):t<-14?(C[E]=1024>>-t-14,C[E|256]=1024>>-t-14|32768,B[E]=-t-1,B[E|256]=-t-1):t<=15?(C[E]=t+15<<10,C[E|256]=t+15<<10|32768,B[E]=13,B[E|256]=13):t<128?(C[E]=31744,C[E|256]=64512,B[E]=24,B[E|256]=24):(C[E]=31744,C[E|256]=64512,B[E]=13,B[E|256]=13)}const i=new Uint32Array(2048),Q=new Uint32Array(64),e=new Uint32Array(64);for(let E=1;E<1024;++E){let t=E<<13,n=0;for(;!(t&8388608);)t<<=1,n-=8388608;t&=-8388609,n+=947912704,i[E]=t|n}for(let E=1024;E<2048;++E)i[E]=939524096+(E-1024<<13);for(let E=1;E<31;++E)Q[E]=E<<23;Q[31]=1199570944,Q[32]=2147483648;for(let E=33;E<63;++E)Q[E]=2147483648+(E-32<<23);Q[63]=3347054592;for(let E=1;E<64;++E)E!==32&&(e[E]=1024);return{floatView:A,uint32View:I,baseTable:C,shiftTable:B,mantissaTable:i,exponentTable:Q,offsetTable:e}}function bB(g){Math.abs(g)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),g=nC(g,-65504,65504),Qe.floatView[0]=g;const A=Qe.uint32View[0],I=A>>23&511;return Qe.baseTable[I]+((A&8388607)>>Qe.shiftTable[I])}function da(g){const A=g>>10;return Qe.uint32View[0]=Qe.mantissaTable[Qe.offsetTable[A]+(g&1023)]+Qe.exponentTable[A],Qe.floatView[0]}const _t={toHalfFloat:bB,fromHalfFloat:da},kC=new _,Fc=new qA;class Ag{constructor(A,I,C=!1){if(Array.isArray(A))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=A,this.itemSize=I,this.count=A!==void 0?A.length/I:0,this.normalized=C,this.usage=yr,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=sC,this.version=0}onUploadCallback(){}set needsUpdate(A){A===!0&&this.version++}get updateRange(){return zt("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(A){return this.usage=A,this}addUpdateRange(A,I){this.updateRanges.push({start:A,count:I})}clearUpdateRanges(){this.updateRanges.length=0}copy(A){return this.name=A.name,this.array=new A.array.constructor(A.array),this.itemSize=A.itemSize,this.count=A.count,this.normalized=A.normalized,this.usage=A.usage,this.gpuType=A.gpuType,this}copyAt(A,I,C){A*=this.itemSize,C*=I.itemSize;for(let B=0,i=this.itemSize;B0&&(A.userData=this.userData),this.parameters!==void 0){const E=this.parameters;for(const t in E)E[t]!==void 0&&(A[t]=E[t]);return A}A.data={attributes:{}};const I=this.index;I!==null&&(A.data.index={type:I.array.constructor.name,array:Array.prototype.slice.call(I.array)});const C=this.attributes;for(const E in C){const t=C[E];A.data.attributes[E]=t.toJSON(A.data)}const B={};let i=!1;for(const E in this.morphAttributes){const t=this.morphAttributes[E],n=[];for(let a=0,r=t.length;a0&&(B[E]=n,i=!0)}i&&(A.data.morphAttributes=B,A.data.morphTargetsRelative=this.morphTargetsRelative);const Q=this.groups;Q.length>0&&(A.data.groups=JSON.parse(JSON.stringify(Q)));const e=this.boundingSphere;return e!==null&&(A.data.boundingSphere={center:e.center.toArray(),radius:e.radius}),A}clone(){return new this.constructor().copy(this)}copy(A){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const I={};this.name=A.name;const C=A.index;C!==null&&this.setIndex(C.clone(I));const B=A.attributes;for(const t in B){const n=B[t];this.setAttribute(t,n.clone(I))}const i=A.morphAttributes;for(const t in i){const n=[],a=i[t];for(let r=0,l=a.length;r0){const B=I[C[0]];if(B!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,Q=B.length;i(A.far-A.near)**2))&&(aF.copy(i).invert(),ht.copy(A.ray).applyMatrix4(aF),!(C.boundingBox!==null&&ht.intersectsBox(C.boundingBox)===!1)&&this._computeIntersections(A,I,ht)))}_computeIntersections(A,I,C){let B;const i=this.geometry,Q=this.material,e=i.index,E=i.attributes.position,t=i.attributes.uv,n=i.attributes.uv1,a=i.attributes.normal,r=i.groups,l=i.drawRange;if(e!==null)if(Array.isArray(Q))for(let D=0,G=r.length;DI.far?null:{distance:t,point:Lc.clone(),object:g}}function Yc(g,A,I,C,B,i,Q,e,E,t){g.getVertexPosition(e,Wo),g.getVertexPosition(E,jo),g.getVertexPosition(t,Vo);const n=Gb(g,A,I,C,Wo,jo,Vo,mc);if(n){B&&(Kc.fromBufferAttribute(B,e),Jc.fromBufferAttribute(B,E),qc.fromBufferAttribute(B,t),n.uv=_B.getInterpolation(mc,Wo,jo,Vo,Kc,Jc,qc,new qA)),i&&(Kc.fromBufferAttribute(i,e),Jc.fromBufferAttribute(i,E),qc.fromBufferAttribute(i,t),n.uv1=_B.getInterpolation(mc,Wo,jo,Vo,Kc,Jc,qc,new qA),n.uv2=n.uv1),Q&&(lF.fromBufferAttribute(Q,e),cF.fromBufferAttribute(Q,E),DF.fromBufferAttribute(Q,t),n.normal=_B.getInterpolation(mc,Wo,jo,Vo,lF,cF,DF,new _),n.normal.dot(C.direction)>0&&n.normal.multiplyScalar(-1));const a={a:e,b:E,c:t,normal:new _,materialIndex:0};_B.getNormal(Wo,jo,Vo,a.normal),n.face=a}return n}class jE extends WI{constructor(A=1,I=1,C=1,B=1,i=1,Q=1){super(),this.type="BoxGeometry",this.parameters={width:A,height:I,depth:C,widthSegments:B,heightSegments:i,depthSegments:Q};const e=this;B=Math.floor(B),i=Math.floor(i),Q=Math.floor(Q);const E=[],t=[],n=[],a=[];let r=0,l=0;D("z","y","x",-1,-1,C,I,A,Q,i,0),D("z","y","x",1,-1,C,I,-A,Q,i,1),D("x","z","y",1,1,A,C,I,B,Q,2),D("x","z","y",1,-1,A,C,-I,B,Q,3),D("x","y","z",1,-1,A,I,C,B,i,4),D("x","y","z",-1,-1,A,I,-C,B,i,5),this.setIndex(E),this.setAttribute("position",new GI(t,3)),this.setAttribute("normal",new GI(n,3)),this.setAttribute("uv",new GI(a,2));function D(G,h,c,y,S,k,N,M,F,q,Z){const U=k/F,K=N/q,z=k/2,DA=N/2,X=M/2,eA=F+1,iA=q+1;let wA=0,v=0;const CA=new _;for(let gA=0;gA0?1:-1,n.push(CA.x,CA.y,CA.z),a.push(NA/F),a.push(1-gA/q),wA+=1}}for(let gA=0;gA0&&(I.defines=this.defines),I.vertexShader=this.vertexShader,I.fragmentShader=this.fragmentShader,I.lights=this.lights,I.clipping=this.clipping;const C={};for(const B in this.extensions)this.extensions[B]===!0&&(C[B]=!0);return Object.keys(C).length>0&&(I.extensions=C),I}}class Zr extends ng{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new MI,this.projectionMatrix=new MI,this.projectionMatrixInverse=new MI,this.coordinateSystem=FQ}copy(A,I){return super.copy(A,I),this.matrixWorldInverse.copy(A.matrixWorldInverse),this.projectionMatrix.copy(A.projectionMatrix),this.projectionMatrixInverse.copy(A.projectionMatrixInverse),this.coordinateSystem=A.coordinateSystem,this}getWorldDirection(A){return super.getWorldDirection(A).negate()}updateMatrixWorld(A){super.updateMatrixWorld(A),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(A,I){super.updateWorldMatrix(A,I),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const IE=new _,hF=new qA,wF=new qA;let pC=class extends Zr{constructor(A=50,I=1,C=.1,B=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=A,this.zoom=1,this.near=C,this.far=B,this.focus=10,this.aspect=I,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(A,I){return super.copy(A,I),this.fov=A.fov,this.zoom=A.zoom,this.near=A.near,this.far=A.far,this.focus=A.focus,this.aspect=A.aspect,this.view=A.view===null?null:Object.assign({},A.view),this.filmGauge=A.filmGauge,this.filmOffset=A.filmOffset,this}setFocalLength(A){const I=.5*this.getFilmHeight()/A;this.fov=Cs*2*Math.atan(I),this.updateProjectionMatrix()}getFocalLength(){const A=Math.tan(Xt*.5*this.fov);return .5*this.getFilmHeight()/A}getEffectiveFOV(){return Cs*2*Math.atan(Math.tan(Xt*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(A,I,C){IE.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),I.set(IE.x,IE.y).multiplyScalar(-A/IE.z),IE.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),C.set(IE.x,IE.y).multiplyScalar(-A/IE.z)}getViewSize(A,I){return this.getViewBounds(A,hF,wF),I.subVectors(wF,hF)}setViewOffset(A,I,C,B,i,Q){this.aspect=A/I,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=A,this.view.fullHeight=I,this.view.offsetX=C,this.view.offsetY=B,this.view.width=i,this.view.height=Q,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const A=this.near;let I=A*Math.tan(Xt*.5*this.fov)/this.zoom,C=2*I,B=this.aspect*C,i=-.5*B;const Q=this.view;if(this.view!==null&&this.view.enabled){const E=Q.fullWidth,t=Q.fullHeight;i+=Q.offsetX*B/E,I-=Q.offsetY*C/t,B*=Q.width/E,C*=Q.height/t}const e=this.filmOffset;e!==0&&(i+=A*e/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+B,I,I-C,A,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(A){const I=super.toJSON(A);return I.object.fov=this.fov,I.object.zoom=this.zoom,I.object.near=this.near,I.object.far=this.far,I.object.focus=this.focus,I.object.aspect=this.aspect,this.view!==null&&(I.object.view=Object.assign({},this.view)),I.object.filmGauge=this.filmGauge,I.object.filmOffset=this.filmOffset,I}};const Xo=-90,zo=1;class qm extends ng{constructor(A,I,C){super(),this.type="CubeCamera",this.renderTarget=C,this.coordinateSystem=null,this.activeMipmapLevel=0;const B=new pC(Xo,zo,A,I);B.layers=this.layers,this.add(B);const i=new pC(Xo,zo,A,I);i.layers=this.layers,this.add(i);const Q=new pC(Xo,zo,A,I);Q.layers=this.layers,this.add(Q);const e=new pC(Xo,zo,A,I);e.layers=this.layers,this.add(e);const E=new pC(Xo,zo,A,I);E.layers=this.layers,this.add(E);const t=new pC(Xo,zo,A,I);t.layers=this.layers,this.add(t)}updateCoordinateSystem(){const A=this.coordinateSystem,I=this.children.concat(),[C,B,i,Q,e,E]=I;for(const t of I)this.remove(t);if(A===FQ)C.up.set(0,1,0),C.lookAt(1,0,0),B.up.set(0,1,0),B.lookAt(-1,0,0),i.up.set(0,0,-1),i.lookAt(0,1,0),Q.up.set(0,0,1),Q.lookAt(0,-1,0),e.up.set(0,1,0),e.lookAt(0,0,1),E.up.set(0,1,0),E.lookAt(0,0,-1);else if(A===ur)C.up.set(0,-1,0),C.lookAt(-1,0,0),B.up.set(0,-1,0),B.lookAt(1,0,0),i.up.set(0,0,1),i.lookAt(0,1,0),Q.up.set(0,0,-1),Q.lookAt(0,-1,0),e.up.set(0,-1,0),e.lookAt(0,0,1),E.up.set(0,-1,0),E.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+A);for(const t of I)this.add(t),t.updateMatrixWorld()}update(A,I){this.parent===null&&this.updateMatrixWorld();const{renderTarget:C,activeMipmapLevel:B}=this;this.coordinateSystem!==A.coordinateSystem&&(this.coordinateSystem=A.coordinateSystem,this.updateCoordinateSystem());const[i,Q,e,E,t,n]=this.children,a=A.getRenderTarget(),r=A.getActiveCubeFace(),l=A.getActiveMipmapLevel(),D=A.xr.enabled;A.xr.enabled=!1;const G=C.texture.generateMipmaps;C.texture.generateMipmaps=!1,A.setRenderTarget(C,0,B),A.render(I,i),A.setRenderTarget(C,1,B),A.render(I,Q),A.setRenderTarget(C,2,B),A.render(I,e),A.setRenderTarget(C,3,B),A.render(I,E),A.setRenderTarget(C,4,B),A.render(I,t),C.texture.generateMipmaps=G,A.setRenderTarget(C,5,B),A.render(I,n),A.setRenderTarget(a,r,l),A.xr.enabled=D,C.texture.needsPMREMUpdate=!0}}class Pr extends Lg{constructor(A,I,C,B,i,Q,e,E,t,n){A=A!==void 0?A:[],I=I!==void 0?I:mQ,super(A,I,C,B,i,Q,e,E,t,n),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(A){this.image=A}}class qd extends MC{constructor(A=1,I={}){super(A,A,I),this.isWebGLCubeRenderTarget=!0;const C={width:A,height:A,depth:1},B=[C,C,C,C,C,C];I.encoding!==void 0&&(zt("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),I.colorSpace=I.encoding===fE?cC:ei),this.texture=new Pr(B,I.mapping,I.wrapS,I.wrapT,I.magFilter,I.minFilter,I.format,I.type,I.anisotropy,I.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=I.generateMipmaps!==void 0?I.generateMipmaps:!1,this.texture.minFilter=I.minFilter!==void 0?I.minFilter:Sg}fromEquirectangularTexture(A,I){this.texture.type=I.type,this.texture.colorSpace=I.colorSpace,this.texture.generateMipmaps=I.generateMipmaps,this.texture.minFilter=I.minFilter,this.texture.magFilter=I.magFilter;const C={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},B=new jE(5,5,5),i=new YC({name:"CubemapFromEquirect",uniforms:Bs(C.uniforms),vertexShader:C.vertexShader,fragmentShader:C.fragmentShader,side:LB,blending:le});i.uniforms.tEquirect.value=I;const Q=new cg(B,i),e=I.minFilter;return I.minFilter===ti&&(I.minFilter=Sg),new qm(1,10,this).update(A,Q),I.minFilter=e,Q.geometry.dispose(),Q.material.dispose(),this}clear(A,I,C,B){const i=A.getRenderTarget();for(let Q=0;Q<6;Q++)A.setRenderTarget(this,Q),A.clear(I,C,B);A.setRenderTarget(i)}}const sy=new _,db=new _,Mb=new PI;class Jg{constructor(A=new _(1,0,0),I=0){this.isPlane=!0,this.normal=A,this.constant=I}set(A,I){return this.normal.copy(A),this.constant=I,this}setComponents(A,I,C,B){return this.normal.set(A,I,C),this.constant=B,this}setFromNormalAndCoplanarPoint(A,I){return this.normal.copy(A),this.constant=-I.dot(this.normal),this}setFromCoplanarPoints(A,I,C){const B=sy.subVectors(C,I).cross(db.subVectors(A,I)).normalize();return this.setFromNormalAndCoplanarPoint(B,A),this}copy(A){return this.normal.copy(A.normal),this.constant=A.constant,this}normalize(){const A=1/this.normal.length();return this.normal.multiplyScalar(A),this.constant*=A,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(A){return this.normal.dot(A)+this.constant}distanceToSphere(A){return this.distanceToPoint(A.center)-A.radius}projectPoint(A,I){return I.copy(A).addScaledVector(this.normal,-this.distanceToPoint(A))}intersectLine(A,I){const C=A.delta(sy),B=this.normal.dot(C);if(B===0)return this.distanceToPoint(A.start)===0?I.copy(A.start):null;const i=-(A.start.dot(this.normal)+this.constant)/B;return i<0||i>1?null:I.copy(A.start).addScaledVector(C,i)}intersectsLine(A){const I=this.distanceToPoint(A.start),C=this.distanceToPoint(A.end);return I<0&&C>0||C<0&&I>0}intersectsBox(A){return A.intersectsPlane(this)}intersectsSphere(A){return A.intersectsPlane(this)}coplanarPoint(A){return A.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(A,I){const C=I||Mb.getNormalMatrix(A),B=this.coplanarPoint(sy).applyMatrix4(A),i=this.normal.applyMatrix3(C).normalize();return this.constant=-B.dot(i),this}translate(A){return this.constant-=A.dot(this.normal),this}equals(A){return A.normal.equals(this.normal)&&A.constant===this.constant}clone(){return new this.constructor().copy(this)}}const wt=new xC,Hc=new _;class Wr{constructor(A=new Jg,I=new Jg,C=new Jg,B=new Jg,i=new Jg,Q=new Jg){this.planes=[A,I,C,B,i,Q]}set(A,I,C,B,i,Q){const e=this.planes;return e[0].copy(A),e[1].copy(I),e[2].copy(C),e[3].copy(B),e[4].copy(i),e[5].copy(Q),this}copy(A){const I=this.planes;for(let C=0;C<6;C++)I[C].copy(A.planes[C]);return this}setFromProjectionMatrix(A,I=FQ){const C=this.planes,B=A.elements,i=B[0],Q=B[1],e=B[2],E=B[3],t=B[4],n=B[5],a=B[6],r=B[7],l=B[8],D=B[9],G=B[10],h=B[11],c=B[12],y=B[13],S=B[14],k=B[15];if(C[0].setComponents(E-i,r-t,h-l,k-c).normalize(),C[1].setComponents(E+i,r+t,h+l,k+c).normalize(),C[2].setComponents(E+Q,r+n,h+D,k+y).normalize(),C[3].setComponents(E-Q,r-n,h-D,k-y).normalize(),C[4].setComponents(E-e,r-a,h-G,k-S).normalize(),I===FQ)C[5].setComponents(E+e,r+a,h+G,k+S).normalize();else if(I===ur)C[5].setComponents(e,a,G,S).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+I);return this}intersectsObject(A){if(A.boundingSphere!==void 0)A.boundingSphere===null&&A.computeBoundingSphere(),wt.copy(A.boundingSphere).applyMatrix4(A.matrixWorld);else{const I=A.geometry;I.boundingSphere===null&&I.computeBoundingSphere(),wt.copy(I.boundingSphere).applyMatrix4(A.matrixWorld)}return this.intersectsSphere(wt)}intersectsSprite(A){return wt.center.set(0,0,0),wt.radius=.7071067811865476,wt.applyMatrix4(A.matrixWorld),this.intersectsSphere(wt)}intersectsSphere(A){const I=this.planes,C=A.center,B=-A.radius;for(let i=0;i<6;i++)if(I[i].distanceToPoint(C)0?A.max.x:A.min.x,Hc.y=B.normal.y>0?A.max.y:A.min.y,Hc.z=B.normal.z>0?A.max.z:A.min.z,B.distanceToPoint(Hc)<0)return!1}return!0}containsPoint(A){const I=this.planes;for(let C=0;C<6;C++)if(I[C].distanceToPoint(A)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function mm(){let g=null,A=!1,I=null,C=null;function B(i,Q){I(i,Q),C=g.requestAnimationFrame(B)}return{start:function(){A!==!0&&I!==null&&(C=g.requestAnimationFrame(B),A=!0)},stop:function(){g.cancelAnimationFrame(C),A=!1},setAnimationLoop:function(i){I=i},setContext:function(i){g=i}}}function pb(g,A){const I=A.isWebGL2,C=new WeakMap;function B(t,n){const a=t.array,r=t.usage,l=a.byteLength,D=g.createBuffer();g.bindBuffer(n,D),g.bufferData(n,a,r),t.onUploadCallback();let G;if(a instanceof Float32Array)G=g.FLOAT;else if(a instanceof Uint16Array)if(t.isFloat16BufferAttribute)if(I)G=g.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else G=g.UNSIGNED_SHORT;else if(a instanceof Int16Array)G=g.SHORT;else if(a instanceof Uint32Array)G=g.UNSIGNED_INT;else if(a instanceof Int32Array)G=g.INT;else if(a instanceof Int8Array)G=g.BYTE;else if(a instanceof Uint8Array)G=g.UNSIGNED_BYTE;else if(a instanceof Uint8ClampedArray)G=g.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+a);return{buffer:D,type:G,bytesPerElement:a.BYTES_PER_ELEMENT,version:t.version,size:l}}function i(t,n,a){const r=n.array,l=n._updateRange,D=n.updateRanges;if(g.bindBuffer(a,t),l.count===-1&&D.length===0&&g.bufferSubData(a,0,r),D.length!==0){for(let G=0,h=D.length;G 0 + vec4 plane; + #ifdef ALPHA_TO_COVERAGE + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + if ( clipOpacity == 0.0 ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + float unionClipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + } + #pragma unroll_loop_end + clipOpacity *= 1.0 - unionClipOpacity; + #endif + diffuseColor.a *= clipOpacity; + if ( diffuseColor.a == 0.0 ) discard; + #else + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif + #endif +#endif`,Ob=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,_b=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,Zb=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,Pb=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,Wb=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,jb=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,Vb=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,Xb=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +#ifdef USE_ALPHAHASH + varying vec3 vPosition; +#endif +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); + return dot( weights, rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +} +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} // validated`,zb=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,$b=`vec3 transformedNormal = objectNormal; +#ifdef USE_TANGENT + vec3 transformedTangent = objectTangent; +#endif +#ifdef USE_BATCHING + mat3 bm = mat3( batchingMatrix ); + transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); + transformedNormal = bm * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = bm * transformedTangent; + #endif +#endif +#ifdef USE_INSTANCING + mat3 im = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); + transformedNormal = im * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = im * transformedTangent; + #endif +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,AO=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,IO=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,gO=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,CO=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,BO="gl_FragColor = linearToOutputTexel( gl_FragColor );",iO=` +const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( + vec3( 0.8224621, 0.177538, 0.0 ), + vec3( 0.0331941, 0.9668058, 0.0 ), + vec3( 0.0170827, 0.0723974, 0.9105199 ) +); +const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( + vec3( 1.2249401, - 0.2249404, 0.0 ), + vec3( - 0.0420569, 1.0420571, 0.0 ), + vec3( - 0.0196376, - 0.0786361, 1.0982735 ) +); +vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { + return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); +} +vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { + return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); +} +vec4 LinearTransferOETF( in vec4 value ) { + return value; +} +vec4 sRGBTransferOETF( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +} +vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return sRGBTransferOETF( value ); +}`,QO=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,eO=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,EO=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,tO=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,oO=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,nO=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,sO=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,aO=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,rO=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,lO=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,cO=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif`,DO=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,hO=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,wO=`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,SO=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +#if defined( USE_LIGHT_PROBES ) + uniform vec3 lightProbe[ 9 ]; +#endif +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( LEGACY_LIGHTS ) + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #else + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometryPosition; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometryPosition; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,GO=`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #ifdef USE_ANISOTROPY + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); + return getIBLRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif +#endif`,yO=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,uO=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,kO=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,dO=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,MO=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef USE_SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULAR_COLORMAP + specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEEN_COLORMAP + material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEEN_ROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; + #endif +#endif +#ifdef USE_ANISOTROPY + #ifdef USE_ANISOTROPYMAP + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; + #else + vec2 anisotropyV = anisotropyVector; + #endif + material.anisotropy = length( anisotropyV ); + if( material.anisotropy == 0.0 ) { + anisotropyV = vec2( 1.0, 0.0 ); + } else { + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + } + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; + material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; +#endif`,pO=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaT; + vec3 anisotropyT; + vec3 anisotropyB; + #endif +}; +vec3 clearcoatSpecularDirect = vec3( 0.0 ); +vec3 clearcoatSpecularIndirect = vec3( 0.0 ); +vec3 sheenSpecularDirect = vec3( 0.0 ); +vec3 sheenSpecularIndirect = vec3(0.0 ); +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +#ifdef USE_ANISOTROPY + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( gv + gl ); + return saturate(v); + } + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + return RECIPROCAL_PI * a2 * pow2 ( w2 ); + } +#endif +#ifdef USE_CLEARCOAT + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); + } +#endif +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + #ifdef USE_IRIDESCENCE + F = mix( F, material.iridescenceFresnel, material.iridescence ); + #endif + #ifdef USE_ANISOTROPY + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); + #else + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + #endif + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometryNormal; + vec3 viewDir = geometryViewDir; + vec3 position = geometryPosition; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); + #endif + #ifdef USE_SHEEN + sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,UO=` +vec3 geometryPosition = - vViewPosition; +vec3 geometryNormal = normal; +vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +vec3 geometryClearcoatNormal = vec3( 0.0 ); +#ifdef USE_CLEARCOAT + geometryClearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometryViewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometryPosition, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometryPosition, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + #if defined( USE_LIGHT_PROBES ) + irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); + #endif + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,NO=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,FO=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif`,fO=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,RO=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,KO=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,JO=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,qO=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,mO=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,LO=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + #if defined( USE_POINTS_UV ) + vec2 uv = vUv; + #else + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; + #endif +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,YO=`#if defined( USE_POINTS_UV ) + varying vec2 vUv; +#else + #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; + #endif +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,HO=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,TO=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,xO=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,vO=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif`,bO=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif`,OO=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif`,_O=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal *= faceDirection; + #endif +#endif +#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #ifdef USE_TANGENT + mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn = getTangentFrame( - vViewPosition, normal, + #if defined( USE_NORMALMAP ) + vNormalMapUv + #elif defined( USE_CLEARCOAT_NORMALMAP ) + vClearcoatNormalMapUv + #else + vUv + #endif + ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn[0] *= faceDirection; + tbn[1] *= faceDirection; + #endif +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + #ifdef USE_TANGENT + mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,ZO=`#ifdef USE_NORMALMAP_OBJECTSPACE + normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( USE_NORMALMAP_TANGENTSPACE ) + vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,PO=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,WO=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,jO=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,VO=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef USE_NORMALMAP_OBJECTSPACE + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) + mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( uv.st ); + vec2 st1 = dFdy( uv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); + return mat3( T * scale, B * scale, N ); + } +#endif`,XO=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,zO=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,$O=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif`,A4=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,I4=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,g4=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec2 packDepthToRG( in highp float v ) { + return packDepthToRGBA( v ).yx; +} +float unpackRGToDepth( const in highp vec2 v ) { + return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { + return depth * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * depth - far ); +}`,C4=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,B4=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_BATCHING + mvPosition = batchingMatrix * mvPosition; +#endif +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,i4=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,Q4=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,e4=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,E4=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,t4=`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,o4=`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,n4=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,s4=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,a4=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,r4=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + mat4 getBoneMatrix( const in float i ) { + int size = textureSize( boneTexture, 0 ).x; + int j = int( i ) * 4; + int x = j % size; + int y = j / size; + vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); + vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); + vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); + vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); + return mat4( v1, v2, v3, v4 ); + } +#endif`,l4=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,c4=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,D4=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,h4=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,w4=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,S4=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return saturate( toneMappingExposure * color ); +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( + vec3( 1.6605, - 0.1246, - 0.0182 ), + vec3( - 0.5876, 1.1329, - 0.1006 ), + vec3( - 0.0728, - 0.0083, 1.1187 ) +); +const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( + vec3( 0.6274, 0.0691, 0.0164 ), + vec3( 0.3293, 0.9195, 0.0880 ), + vec3( 0.0433, 0.0113, 0.8956 ) +); +vec3 agxDefaultContrastApprox( vec3 x ) { + vec3 x2 = x * x; + vec3 x4 = x2 * x2; + return + 15.5 * x4 * x2 + - 40.14 * x4 * x + + 31.96 * x4 + - 6.868 * x2 * x + + 0.4298 * x2 + + 0.1191 * x + - 0.00232; +} +vec3 AgXToneMapping( vec3 color ) { + const mat3 AgXInsetMatrix = mat3( + vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), + vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), + vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) + ); + const mat3 AgXOutsetMatrix = mat3( + vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), + vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), + vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) + ); + const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; + color *= toneMappingExposure; + color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; + color = AgXInsetMatrix * color; + color = max( color, 1e-10 ); color = log2( color ); + color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); + color = clamp( color, 0.0, 1.0 ); + color = agxDefaultContrastApprox( color ); + color = AgXOutsetMatrix * color; + color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); + color = LINEAR_REC2020_TO_LINEAR_SRGB * color; + color = clamp( color, 0.0, 1.0 ); + return color; +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,G4=`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); +#endif`,y4=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + float w0( float a ) { + return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); + } + float w1( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); + } + float w2( float a ){ + return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); + } + float w3( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * a ); + } + float g0( float a ) { + return w0( a ) + w1( a ); + } + float g1( float a ) { + return w2( a ) + w3( a ); + } + float h0( float a ) { + return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); + } + float h1( float a ) { + return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); + } + vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { + uv = uv * texelSize.zw + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + float g0x = g0( fuv.x ); + float g1x = g1( fuv.x ); + float h0x = h0( fuv.x ); + float h1x = h1( fuv.x ); + float h0y = h0( fuv.y ); + float h1y = h1( fuv.y ); + vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); + } + vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { + vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); + vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); + vec2 fLodSizeInv = 1.0 / fLodSize; + vec2 cLodSizeInv = 1.0 / cLodSize; + vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); + vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); + return mix( fSample, cSample, fract( lod ) ); + } + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); + } + vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return vec3( 1.0 ); + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 attenuatedColor = transmittance * transmittedLight.rgb; + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; + return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); + } +#endif`,u4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + varying vec2 vNormalMapUv; +#endif +#ifdef USE_EMISSIVEMAP + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_SPECULARMAP + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,k4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + uniform mat3 mapTransform; + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + uniform mat3 alphaMapTransform; + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + uniform mat3 lightMapTransform; + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + uniform mat3 aoMapTransform; + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + uniform mat3 bumpMapTransform; + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + uniform mat3 normalMapTransform; + varying vec2 vNormalMapUv; +#endif +#ifdef USE_DISPLACEMENTMAP + uniform mat3 displacementMapTransform; + varying vec2 vDisplacementMapUv; +#endif +#ifdef USE_EMISSIVEMAP + uniform mat3 emissiveMapTransform; + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + uniform mat3 metalnessMapTransform; + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + uniform mat3 roughnessMapTransform; + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + uniform mat3 anisotropyMapTransform; + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + uniform mat3 clearcoatMapTransform; + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform mat3 clearcoatNormalMapTransform; + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform mat3 clearcoatRoughnessMapTransform; + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + uniform mat3 sheenColorMapTransform; + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + uniform mat3 sheenRoughnessMapTransform; + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + uniform mat3 iridescenceMapTransform; + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform mat3 iridescenceThicknessMapTransform; + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SPECULARMAP + uniform mat3 specularMapTransform; + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + uniform mat3 specularColorMapTransform; + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + uniform mat3 specularIntensityMapTransform; + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,d4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + vUv = vec3( uv, 1 ).xy; +#endif +#ifdef USE_MAP + vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ALPHAMAP + vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_LIGHTMAP + vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_AOMAP + vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_BUMPMAP + vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_NORMALMAP + vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_DISPLACEMENTMAP + vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_EMISSIVEMAP + vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_METALNESSMAP + vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ROUGHNESSMAP + vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ANISOTROPYMAP + vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOATMAP + vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCEMAP + vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_COLORMAP + vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULARMAP + vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_COLORMAP + vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_TRANSMISSIONMAP + vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_THICKNESSMAP + vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; +#endif`,M4=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_BATCHING + worldPosition = batchingMatrix * worldPosition; + #endif + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const p4=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,U4=`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,N4=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,F4=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,f4=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,R4=`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,K4=`#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,J4=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,q4=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,m4=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +#include +void main () { + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,L4=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,Y4=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,H4=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,T4=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,x4=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,v4=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,b4=`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,O4=`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,_4=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,Z4=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,P4=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + vViewPosition = - mvPosition.xyz; +#endif +}`,W4=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,j4=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,V4=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,X4=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,z4=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define USE_SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef USE_SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULAR_COLORMAP + uniform sampler2D specularColorMap; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEEN_COLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEEN_ROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropyVector; + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,$4=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,A3=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,I3=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +#ifdef USE_POINTS_UV + varying vec2 vUv; + uniform mat3 uvTransform; +#endif +void main() { + #ifdef USE_POINTS_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + #endif + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,g3=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,C3=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,B3=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,i3=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,Q3=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,Ig={alphahash_fragment:Ub,alphahash_pars_fragment:Nb,alphamap_fragment:Fb,alphamap_pars_fragment:fb,alphatest_fragment:Rb,alphatest_pars_fragment:Kb,aomap_fragment:Jb,aomap_pars_fragment:qb,batching_pars_vertex:mb,batching_vertex:Lb,begin_vertex:Yb,beginnormal_vertex:Hb,bsdfs:Tb,iridescence_fragment:xb,bumpmap_pars_fragment:vb,clipping_planes_fragment:bb,clipping_planes_pars_fragment:Ob,clipping_planes_pars_vertex:_b,clipping_planes_vertex:Zb,color_fragment:Pb,color_pars_fragment:Wb,color_pars_vertex:jb,color_vertex:Vb,common:Xb,cube_uv_reflection_fragment:zb,defaultnormal_vertex:$b,displacementmap_pars_vertex:AO,displacementmap_vertex:IO,emissivemap_fragment:gO,emissivemap_pars_fragment:CO,colorspace_fragment:BO,colorspace_pars_fragment:iO,envmap_fragment:QO,envmap_common_pars_fragment:eO,envmap_pars_fragment:EO,envmap_pars_vertex:tO,envmap_physical_pars_fragment:GO,envmap_vertex:oO,fog_vertex:nO,fog_pars_vertex:sO,fog_fragment:aO,fog_pars_fragment:rO,gradientmap_pars_fragment:lO,lightmap_fragment:cO,lightmap_pars_fragment:DO,lights_lambert_fragment:hO,lights_lambert_pars_fragment:wO,lights_pars_begin:SO,lights_toon_fragment:yO,lights_toon_pars_fragment:uO,lights_phong_fragment:kO,lights_phong_pars_fragment:dO,lights_physical_fragment:MO,lights_physical_pars_fragment:pO,lights_fragment_begin:UO,lights_fragment_maps:NO,lights_fragment_end:FO,logdepthbuf_fragment:fO,logdepthbuf_pars_fragment:RO,logdepthbuf_pars_vertex:KO,logdepthbuf_vertex:JO,map_fragment:qO,map_pars_fragment:mO,map_particle_fragment:LO,map_particle_pars_fragment:YO,metalnessmap_fragment:HO,metalnessmap_pars_fragment:TO,morphcolor_vertex:xO,morphnormal_vertex:vO,morphtarget_pars_vertex:bO,morphtarget_vertex:OO,normal_fragment_begin:_O,normal_fragment_maps:ZO,normal_pars_fragment:PO,normal_pars_vertex:WO,normal_vertex:jO,normalmap_pars_fragment:VO,clearcoat_normal_fragment_begin:XO,clearcoat_normal_fragment_maps:zO,clearcoat_pars_fragment:$O,iridescence_pars_fragment:A4,opaque_fragment:I4,packing:g4,premultiplied_alpha_fragment:C4,project_vertex:B4,dithering_fragment:i4,dithering_pars_fragment:Q4,roughnessmap_fragment:e4,roughnessmap_pars_fragment:E4,shadowmap_pars_fragment:t4,shadowmap_pars_vertex:o4,shadowmap_vertex:n4,shadowmask_pars_fragment:s4,skinbase_vertex:a4,skinning_pars_vertex:r4,skinning_vertex:l4,skinnormal_vertex:c4,specularmap_fragment:D4,specularmap_pars_fragment:h4,tonemapping_fragment:w4,tonemapping_pars_fragment:S4,transmission_fragment:G4,transmission_pars_fragment:y4,uv_pars_fragment:u4,uv_pars_vertex:k4,uv_vertex:d4,worldpos_vertex:M4,background_vert:p4,background_frag:U4,backgroundCube_vert:N4,backgroundCube_frag:F4,cube_vert:f4,cube_frag:R4,depth_vert:K4,depth_frag:J4,distanceRGBA_vert:q4,distanceRGBA_frag:m4,equirect_vert:L4,equirect_frag:Y4,linedashed_vert:H4,linedashed_frag:T4,meshbasic_vert:x4,meshbasic_frag:v4,meshlambert_vert:b4,meshlambert_frag:O4,meshmatcap_vert:_4,meshmatcap_frag:Z4,meshnormal_vert:P4,meshnormal_frag:W4,meshphong_vert:j4,meshphong_frag:V4,meshphysical_vert:X4,meshphysical_frag:z4,meshtoon_vert:$4,meshtoon_frag:A3,points_vert:I3,points_frag:g3,shadow_vert:C3,shadow_frag:B3,sprite_vert:i3,sprite_frag:Q3},oI={common:{diffuse:{value:new eI(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new PI},alphaMap:{value:null},alphaMapTransform:{value:new PI},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new PI}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new PI}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new PI}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new PI},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new PI},normalScale:{value:new qA(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new PI},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new PI}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new PI}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new PI}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new eI(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new eI(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new PI},alphaTest:{value:0},uvTransform:{value:new PI}},sprite:{diffuse:{value:new eI(16777215)},opacity:{value:1},center:{value:new qA(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new PI},alphaMap:{value:null},alphaMapTransform:{value:new PI},alphaTest:{value:0}}},CQ={basic:{uniforms:fB([oI.common,oI.specularmap,oI.envmap,oI.aomap,oI.lightmap,oI.fog]),vertexShader:Ig.meshbasic_vert,fragmentShader:Ig.meshbasic_frag},lambert:{uniforms:fB([oI.common,oI.specularmap,oI.envmap,oI.aomap,oI.lightmap,oI.emissivemap,oI.bumpmap,oI.normalmap,oI.displacementmap,oI.fog,oI.lights,{emissive:{value:new eI(0)}}]),vertexShader:Ig.meshlambert_vert,fragmentShader:Ig.meshlambert_frag},phong:{uniforms:fB([oI.common,oI.specularmap,oI.envmap,oI.aomap,oI.lightmap,oI.emissivemap,oI.bumpmap,oI.normalmap,oI.displacementmap,oI.fog,oI.lights,{emissive:{value:new eI(0)},specular:{value:new eI(1118481)},shininess:{value:30}}]),vertexShader:Ig.meshphong_vert,fragmentShader:Ig.meshphong_frag},standard:{uniforms:fB([oI.common,oI.envmap,oI.aomap,oI.lightmap,oI.emissivemap,oI.bumpmap,oI.normalmap,oI.displacementmap,oI.roughnessmap,oI.metalnessmap,oI.fog,oI.lights,{emissive:{value:new eI(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ig.meshphysical_vert,fragmentShader:Ig.meshphysical_frag},toon:{uniforms:fB([oI.common,oI.aomap,oI.lightmap,oI.emissivemap,oI.bumpmap,oI.normalmap,oI.displacementmap,oI.gradientmap,oI.fog,oI.lights,{emissive:{value:new eI(0)}}]),vertexShader:Ig.meshtoon_vert,fragmentShader:Ig.meshtoon_frag},matcap:{uniforms:fB([oI.common,oI.bumpmap,oI.normalmap,oI.displacementmap,oI.fog,{matcap:{value:null}}]),vertexShader:Ig.meshmatcap_vert,fragmentShader:Ig.meshmatcap_frag},points:{uniforms:fB([oI.points,oI.fog]),vertexShader:Ig.points_vert,fragmentShader:Ig.points_frag},dashed:{uniforms:fB([oI.common,oI.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ig.linedashed_vert,fragmentShader:Ig.linedashed_frag},depth:{uniforms:fB([oI.common,oI.displacementmap]),vertexShader:Ig.depth_vert,fragmentShader:Ig.depth_frag},normal:{uniforms:fB([oI.common,oI.bumpmap,oI.normalmap,oI.displacementmap,{opacity:{value:1}}]),vertexShader:Ig.meshnormal_vert,fragmentShader:Ig.meshnormal_frag},sprite:{uniforms:fB([oI.sprite,oI.fog]),vertexShader:Ig.sprite_vert,fragmentShader:Ig.sprite_frag},background:{uniforms:{uvTransform:{value:new PI},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ig.background_vert,fragmentShader:Ig.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Ig.backgroundCube_vert,fragmentShader:Ig.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ig.cube_vert,fragmentShader:Ig.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ig.equirect_vert,fragmentShader:Ig.equirect_frag},distanceRGBA:{uniforms:fB([oI.common,oI.displacementmap,{referencePosition:{value:new _},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ig.distanceRGBA_vert,fragmentShader:Ig.distanceRGBA_frag},shadow:{uniforms:fB([oI.lights,oI.fog,{color:{value:new eI(0)},opacity:{value:1}}]),vertexShader:Ig.shadow_vert,fragmentShader:Ig.shadow_frag}};CQ.physical={uniforms:fB([CQ.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new PI},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new PI},clearcoatNormalScale:{value:new qA(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new PI},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new PI},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new PI},sheen:{value:0},sheenColor:{value:new eI(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new PI},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new PI},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new PI},transmissionSamplerSize:{value:new qA},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new PI},attenuationDistance:{value:0},attenuationColor:{value:new eI(0)},specularColor:{value:new eI(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new PI},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new PI},anisotropyVector:{value:new qA},anisotropyMap:{value:null},anisotropyMapTransform:{value:new PI}}]),vertexShader:Ig.meshphysical_vert,fragmentShader:Ig.meshphysical_frag};const Tc={r:0,b:0,g:0};function e3(g,A,I,C,B,i,Q){const e=new eI(0);let E=i===!0?0:1,t,n,a=null,r=0,l=null;function D(h,c){let y=!1,S=c.isScene===!0?c.background:null;S&&S.isTexture&&(S=(c.backgroundBlurriness>0?I:A).get(S)),S===null?G(e,E):S&&S.isColor&&(G(S,1),y=!0);const k=g.xr.getEnvironmentBlendMode();k==="additive"?C.buffers.color.setClear(0,0,0,1,Q):k==="alpha-blend"&&C.buffers.color.setClear(0,0,0,0,Q),(g.autoClear||y)&&g.clear(g.autoClearColor,g.autoClearDepth,g.autoClearStencil),S&&(S.isCubeTexture||S.mapping===ls)?(n===void 0&&(n=new cg(new jE(1,1,1),new YC({name:"BackgroundCubeMaterial",uniforms:Bs(CQ.backgroundCube.uniforms),vertexShader:CQ.backgroundCube.vertexShader,fragmentShader:CQ.backgroundCube.fragmentShader,side:LB,depthTest:!1,depthWrite:!1,fog:!1})),n.geometry.deleteAttribute("normal"),n.geometry.deleteAttribute("uv"),n.onBeforeRender=function(N,M,F){this.matrixWorld.copyPosition(F.matrixWorld)},Object.defineProperty(n.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),B.update(n)),n.material.uniforms.envMap.value=S,n.material.uniforms.flipEnvMap.value=S.isCubeTexture&&S.isRenderTargetTexture===!1?-1:1,n.material.uniforms.backgroundBlurriness.value=c.backgroundBlurriness,n.material.uniforms.backgroundIntensity.value=c.backgroundIntensity,n.material.toneMapped=Rg.getTransfer(S.colorSpace)!==Hg,(a!==S||r!==S.version||l!==g.toneMapping)&&(n.material.needsUpdate=!0,a=S,r=S.version,l=g.toneMapping),n.layers.enableAll(),h.unshift(n,n.geometry,n.material,0,0,null)):S&&S.isTexture&&(t===void 0&&(t=new cg(new pe(2,2),new YC({name:"BackgroundMaterial",uniforms:Bs(CQ.background.uniforms),vertexShader:CQ.background.vertexShader,fragmentShader:CQ.background.fragmentShader,side:ri,depthTest:!1,depthWrite:!1,fog:!1})),t.geometry.deleteAttribute("normal"),Object.defineProperty(t.material,"map",{get:function(){return this.uniforms.t2D.value}}),B.update(t)),t.material.uniforms.t2D.value=S,t.material.uniforms.backgroundIntensity.value=c.backgroundIntensity,t.material.toneMapped=Rg.getTransfer(S.colorSpace)!==Hg,S.matrixAutoUpdate===!0&&S.updateMatrix(),t.material.uniforms.uvTransform.value.copy(S.matrix),(a!==S||r!==S.version||l!==g.toneMapping)&&(t.material.needsUpdate=!0,a=S,r=S.version,l=g.toneMapping),t.layers.enableAll(),h.unshift(t,t.geometry,t.material,0,0,null))}function G(h,c){h.getRGB(Tc,Jm(g)),C.buffers.color.setClear(Tc.r,Tc.g,Tc.b,c,Q)}return{getClearColor:function(){return e},setClearColor:function(h,c=1){e.set(h),E=c,G(e,E)},getClearAlpha:function(){return E},setClearAlpha:function(h){E=h,G(e,E)},render:D}}function E3(g,A,I,C){const B=g.getParameter(g.MAX_VERTEX_ATTRIBS),i=C.isWebGL2?null:A.get("OES_vertex_array_object"),Q=C.isWebGL2||i!==null,e={},E=h(null);let t=E,n=!1;function a(X,eA,iA,wA,v){let CA=!1;if(Q){const gA=G(wA,iA,eA);t!==gA&&(t=gA,l(t.object)),CA=c(X,wA,iA,v),CA&&y(X,wA,iA,v)}else{const gA=eA.wireframe===!0;(t.geometry!==wA.id||t.program!==iA.id||t.wireframe!==gA)&&(t.geometry=wA.id,t.program=iA.id,t.wireframe=gA,CA=!0)}v!==null&&I.update(v,g.ELEMENT_ARRAY_BUFFER),(CA||n)&&(n=!1,q(X,eA,iA,wA),v!==null&&g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,I.get(v).buffer))}function r(){return C.isWebGL2?g.createVertexArray():i.createVertexArrayOES()}function l(X){return C.isWebGL2?g.bindVertexArray(X):i.bindVertexArrayOES(X)}function D(X){return C.isWebGL2?g.deleteVertexArray(X):i.deleteVertexArrayOES(X)}function G(X,eA,iA){const wA=iA.wireframe===!0;let v=e[X.id];v===void 0&&(v={},e[X.id]=v);let CA=v[eA.id];CA===void 0&&(CA={},v[eA.id]=CA);let gA=CA[wA];return gA===void 0&&(gA=h(r()),CA[wA]=gA),gA}function h(X){const eA=[],iA=[],wA=[];for(let v=0;v=0){const j=v[NA];let b=CA[NA];if(b===void 0&&(NA==="instanceMatrix"&&X.instanceMatrix&&(b=X.instanceMatrix),NA==="instanceColor"&&X.instanceColor&&(b=X.instanceColor)),j===void 0||j.attribute!==b||b&&j.data!==b.data)return!0;gA++}return t.attributesNum!==gA||t.index!==wA}function y(X,eA,iA,wA){const v={},CA=eA.attributes;let gA=0;const SA=iA.getAttributes();for(const NA in SA)if(SA[NA].location>=0){let j=CA[NA];j===void 0&&(NA==="instanceMatrix"&&X.instanceMatrix&&(j=X.instanceMatrix),NA==="instanceColor"&&X.instanceColor&&(j=X.instanceColor));const b={};b.attribute=j,j&&j.data&&(b.data=j.data),v[NA]=b,gA++}t.attributes=v,t.attributesNum=gA,t.index=wA}function S(){const X=t.newAttributes;for(let eA=0,iA=X.length;eA=0){let WA=v[SA];if(WA===void 0&&(SA==="instanceMatrix"&&X.instanceMatrix&&(WA=X.instanceMatrix),SA==="instanceColor"&&X.instanceColor&&(WA=X.instanceColor)),WA!==void 0){const j=WA.normalized,b=WA.itemSize,Y=I.get(WA);if(Y===void 0)continue;const x=Y.buffer,nA=Y.type,MA=Y.bytesPerElement,oA=C.isWebGL2===!0&&(nA===g.INT||nA===g.UNSIGNED_INT||WA.gpuType===Dd);if(WA.isInterleavedBufferAttribute){const FA=WA.data,W=FA.stride,UA=WA.offset;if(FA.isInstancedInterleavedBuffer){for(let tA=0;tA0&&g.getShaderPrecisionFormat(g.FRAGMENT_SHADER,g.HIGH_FLOAT).precision>0)return"highp";F="mediump"}return F==="mediump"&&g.getShaderPrecisionFormat(g.VERTEX_SHADER,g.MEDIUM_FLOAT).precision>0&&g.getShaderPrecisionFormat(g.FRAGMENT_SHADER,g.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const Q=typeof WebGL2RenderingContext<"u"&&g.constructor.name==="WebGL2RenderingContext";let e=I.precision!==void 0?I.precision:"highp";const E=i(e);E!==e&&(console.warn("THREE.WebGLRenderer:",e,"not supported, using",E,"instead."),e=E);const t=Q||A.has("WEBGL_draw_buffers"),n=I.logarithmicDepthBuffer===!0,a=g.getParameter(g.MAX_TEXTURE_IMAGE_UNITS),r=g.getParameter(g.MAX_VERTEX_TEXTURE_IMAGE_UNITS),l=g.getParameter(g.MAX_TEXTURE_SIZE),D=g.getParameter(g.MAX_CUBE_MAP_TEXTURE_SIZE),G=g.getParameter(g.MAX_VERTEX_ATTRIBS),h=g.getParameter(g.MAX_VERTEX_UNIFORM_VECTORS),c=g.getParameter(g.MAX_VARYING_VECTORS),y=g.getParameter(g.MAX_FRAGMENT_UNIFORM_VECTORS),S=r>0,k=Q||A.has("OES_texture_float"),N=S&&k,M=Q?g.getParameter(g.MAX_SAMPLES):0;return{isWebGL2:Q,drawBuffers:t,getMaxAnisotropy:B,getMaxPrecision:i,precision:e,logarithmicDepthBuffer:n,maxTextures:a,maxVertexTextures:r,maxTextureSize:l,maxCubemapSize:D,maxAttributes:G,maxVertexUniforms:h,maxVaryings:c,maxFragmentUniforms:y,vertexTextures:S,floatFragmentTextures:k,floatVertexTextures:N,maxSamples:M}}function n3(g){const A=this;let I=null,C=0,B=!1,i=!1;const Q=new Jg,e=new PI,E={value:null,needsUpdate:!1};this.uniform=E,this.numPlanes=0,this.numIntersection=0,this.init=function(a,r){const l=a.length!==0||r||C!==0||B;return B=r,C=a.length,l},this.beginShadows=function(){i=!0,n(null)},this.endShadows=function(){i=!1},this.setGlobalState=function(a,r){I=n(a,r,0)},this.setState=function(a,r,l){const D=a.clippingPlanes,G=a.clipIntersection,h=a.clipShadows,c=g.get(a);if(!B||D===null||D.length===0||i&&!h)i?n(null):t();else{const y=i?0:C,S=y*4;let k=c.clippingState||null;E.value=k,k=n(D,r,S,l);for(let N=0;N!==S;++N)k[N]=I[N];c.clippingState=k,this.numIntersection=G?this.numPlanes:0,this.numPlanes+=y}};function t(){E.value!==I&&(E.value=I,E.needsUpdate=C>0),A.numPlanes=C,A.numIntersection=0}function n(a,r,l,D){const G=a!==null?a.length:0;let h=null;if(G!==0){if(h=E.value,D!==!0||h===null){const c=l+G*4,y=r.matrixWorldInverse;e.getNormalMatrix(y),(h===null||h.length0){const t=new qd(E.height);return t.fromEquirectangularTexture(g,Q),A.set(Q,t),Q.addEventListener("dispose",B),I(t.texture,Q.mapping)}else return null}}return Q}function B(Q){const e=Q.target;e.removeEventListener("dispose",B);const E=A.get(e);E!==void 0&&(A.delete(e),E.dispose())}function i(){A=new WeakMap}return{get:C,dispose:i}}class VE extends Zr{constructor(A=-1,I=1,C=1,B=-1,i=.1,Q=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=A,this.right=I,this.top=C,this.bottom=B,this.near=i,this.far=Q,this.updateProjectionMatrix()}copy(A,I){return super.copy(A,I),this.left=A.left,this.right=A.right,this.top=A.top,this.bottom=A.bottom,this.near=A.near,this.far=A.far,this.zoom=A.zoom,this.view=A.view===null?null:Object.assign({},A.view),this}setViewOffset(A,I,C,B,i,Q){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=A,this.view.fullHeight=I,this.view.offsetX=C,this.view.offsetY=B,this.view.width=i,this.view.height=Q,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const A=(this.right-this.left)/(2*this.zoom),I=(this.top-this.bottom)/(2*this.zoom),C=(this.right+this.left)/2,B=(this.top+this.bottom)/2;let i=C-A,Q=C+A,e=B+I,E=B-I;if(this.view!==null&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,n=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=t*this.view.offsetX,Q=i+t*this.view.width,e-=n*this.view.offsetY,E=e-n*this.view.height}this.projectionMatrix.makeOrthographic(i,Q,e,E,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(A){const I=super.toJSON(A);return I.object.zoom=this.zoom,I.object.left=this.left,I.object.right=this.right,I.object.top=this.top,I.object.bottom=this.bottom,I.object.near=this.near,I.object.far=this.far,this.view!==null&&(I.object.view=Object.assign({},this.view)),I}}const Fn=4,SF=[.125,.215,.35,.446,.526,.582],Yt=20,ay=new VE,GF=new eI;let ry=null,ly=0,cy=0;const qt=(1+Math.sqrt(5))/2,$o=1/qt,yF=[new _(1,1,1),new _(-1,1,1),new _(1,1,-1),new _(-1,1,-1),new _(0,qt,$o),new _(0,qt,-$o),new _($o,0,qt),new _(-$o,0,qt),new _(qt,$o,0),new _(-qt,$o,0)];class vu{constructor(A){this._renderer=A,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(A,I=0,C=.1,B=100){ry=this._renderer.getRenderTarget(),ly=this._renderer.getActiveCubeFace(),cy=this._renderer.getActiveMipmapLevel(),this._setSize(256);const i=this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(A,C,B,i),I>0&&this._blur(i,0,0,I),this._applyPMREM(i),this._cleanup(i),i}fromEquirectangular(A,I=null){return this._fromTexture(A,I)}fromCubemap(A,I=null){return this._fromTexture(A,I)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=dF(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=kF(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(A){this._lodMax=Math.floor(Math.log2(A)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let A=0;A2?S:0,S,S),n.setRenderTarget(B),G&&n.render(D,e),n.render(A,e)}D.geometry.dispose(),D.material.dispose(),n.toneMapping=r,n.autoClear=a,A.background=h}_textureToCubeUV(A,I){const C=this._renderer,B=A.mapping===mQ||A.mapping===TE;B?(this._cubemapMaterial===null&&(this._cubemapMaterial=dF()),this._cubemapMaterial.uniforms.flipEnvMap.value=A.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=kF());const i=B?this._cubemapMaterial:this._equirectMaterial,Q=new cg(this._lodPlanes[0],i),e=i.uniforms;e.envMap.value=A;const E=this._cubeSize;xc(I,0,0,3*E,2*E),C.setRenderTarget(I),C.render(Q,ay)}_applyPMREM(A){const I=this._renderer,C=I.autoClear;I.autoClear=!1;for(let B=1;BYt&&console.warn(`sigmaRadians, ${i}, is too large and will clip, as it requested ${h} samples when the maximum is set to ${Yt}`);const c=[];let y=0;for(let F=0;FS-Fn?B-S+Fn:0),M=4*(this._cubeSize-k);xc(I,N,M,3*k,2*k),E.setRenderTarget(I),E.render(a,ay)}}function a3(g){const A=[],I=[],C=[];let B=g;const i=g-Fn+1+SF.length;for(let Q=0;Qg-Fn?E=SF[Q-g+Fn-1]:Q===0&&(E=0),C.push(E);const t=1/(e-2),n=-t,a=1+t,r=[n,n,a,n,a,a,n,n,a,a,n,a],l=6,D=6,G=3,h=2,c=1,y=new Float32Array(G*D*l),S=new Float32Array(h*D*l),k=new Float32Array(c*D*l);for(let M=0;M2?0:-1,Z=[F,q,0,F+2/3,q,0,F+2/3,q+1,0,F,q,0,F+2/3,q+1,0,F,q+1,0];y.set(Z,G*D*M),S.set(r,h*D*M);const U=[M,M,M,M,M,M];k.set(U,c*D*M)}const N=new WI;N.setAttribute("position",new Ag(y,G)),N.setAttribute("uv",new Ag(S,h)),N.setAttribute("faceIndex",new Ag(k,c)),A.push(N),B>Fn&&B--}return{lodPlanes:A,sizeLods:I,sigmas:C}}function uF(g,A,I){const C=new MC(g,A,I);return C.texture.mapping=ls,C.texture.name="PMREM.cubeUv",C.scissorTest=!0,C}function xc(g,A,I,C,B){g.viewport.set(A,I,C,B),g.scissor.set(A,I,C,B)}function r3(g,A,I){const C=new Float32Array(Yt),B=new _(0,1,0);return new YC({name:"SphericalGaussianBlur",defines:{n:Yt,CUBEUV_TEXEL_WIDTH:1/A,CUBEUV_TEXEL_HEIGHT:1/I,CUBEUV_MAX_MIP:`${g}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:C},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:B}},vertexShader:md(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:le,depthTest:!1,depthWrite:!1})}function kF(){return new YC({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:md(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:le,depthTest:!1,depthWrite:!1})}function dF(){return new YC({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:md(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:le,depthTest:!1,depthWrite:!1})}function md(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function l3(g){let A=new WeakMap,I=null;function C(e){if(e&&e.isTexture){const E=e.mapping,t=E===As||E===cr,n=E===mQ||E===TE;if(t||n)if(e.isRenderTargetTexture&&e.needsPMREMUpdate===!0){e.needsPMREMUpdate=!1;let a=A.get(e);return I===null&&(I=new vu(g)),a=t?I.fromEquirectangular(e,a):I.fromCubemap(e,a),A.set(e,a),a.texture}else{if(A.has(e))return A.get(e).texture;{const a=e.image;if(t&&a&&a.height>0||n&&a&&B(a)){I===null&&(I=new vu(g));const r=t?I.fromEquirectangular(e):I.fromCubemap(e);return A.set(e,r),e.addEventListener("dispose",i),r.texture}else return null}}}return e}function B(e){let E=0;const t=6;for(let n=0;nA.maxTextureSize&&(K=Math.ceil(U/A.maxTextureSize),U=A.maxTextureSize);const z=new Float32Array(U*K*4*G),DA=new ww(z,U,K,G);DA.type=sC,DA.needsUpdate=!0;const X=Z*4;for(let iA=0;iA0)return g;const B=A*I;let i=MF[B];if(i===void 0&&(i=new Float32Array(B),MF[B]=i),A!==0){C.toArray(i,0);for(let Q=1,e=0;Q!==A;++Q)e+=I,g[Q].toArray(i,e)}return i}function vC(g,A){if(g.length!==A.length)return!1;for(let I=0,C=g.length;I":" "} ${e}: ${I[Q]}`)}return C.join(` +`)}function D_(g){const A=Rg.getPrimaries(Rg.workingColorSpace),I=Rg.getPrimaries(g);let C;switch(A===I?C="":A===Gr&&I===Sr?C="LinearDisplayP3ToLinearSRGB":A===Sr&&I===Gr&&(C="LinearSRGBToLinearDisplayP3"),g){case LQ:case _r:return[C,"LinearTransferOETF"];case cC:case hw:return[C,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",g),[C,"LinearTransferOETF"]}}function KF(g,A,I){const C=g.getShaderParameter(A,g.COMPILE_STATUS),B=g.getShaderInfoLog(A).trim();if(C&&B==="")return"";const i=/ERROR: 0:(\d+)/.exec(B);if(i){const Q=parseInt(i[1]);return I.toUpperCase()+` + +`+B+` + +`+c_(g.getShaderSource(A),Q)}else return B}function h_(g,A){const I=D_(A);return`vec4 ${g}( vec4 value ) { return ${I[0]}( ${I[1]}( value ) ); }`}function w_(g,A){let I;switch(A){case Bm:I="Linear";break;case im:I="Reinhard";break;case Qm:I="OptimizedCineon";break;case cd:I="ACESFilmic";break;case Em:I="AgX";break;case em:I="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",A),I="Linear"}return"vec3 "+g+"( vec3 color ) { return "+I+"ToneMapping( color ); }"}function S_(g){return[g.extensionDerivatives||g.envMapCubeUVHeight||g.bumpMap||g.normalMapTangentSpace||g.clearcoatNormalMap||g.flatShading||g.alphaToCoverage||g.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(g.extensionFragDepth||g.logarithmicDepthBuffer)&&g.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",g.extensionDrawBuffers&&g.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(g.extensionShaderTextureLOD||g.envMap||g.transmission)&&g.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(fn).join(` +`)}function G_(g){return[g.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",g.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(fn).join(` +`)}function y_(g){const A=[];for(const I in g){const C=g[I];C!==!1&&A.push("#define "+I+" "+C)}return A.join(` +`)}function u_(g,A){const I={},C=g.getProgramParameter(A,g.ACTIVE_ATTRIBUTES);for(let B=0;B/gm;function bu(g){return g.replace(k_,M_)}const d_=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function M_(g,A){let I=Ig[A];if(I===void 0){const C=d_.get(A);if(C!==void 0)I=Ig[C],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',A,C);else throw new Error("Can not resolve #include <"+A+">")}return bu(I)}const p_=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function mF(g){return g.replace(p_,U_)}function U_(g,A,I,C){let B="";for(let i=parseInt(A);i0&&(c+=` +`),y=[l,"#define SHADER_TYPE "+I.shaderType,"#define SHADER_NAME "+I.shaderName,G].filter(fn).join(` +`),y.length>0&&(y+=` +`)):(c=[LF(I),"#define SHADER_TYPE "+I.shaderType,"#define SHADER_NAME "+I.shaderName,G,I.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",I.batching?"#define USE_BATCHING":"",I.instancing?"#define USE_INSTANCING":"",I.instancingColor?"#define USE_INSTANCING_COLOR":"",I.useFog&&I.fog?"#define USE_FOG":"",I.useFog&&I.fogExp2?"#define FOG_EXP2":"",I.map?"#define USE_MAP":"",I.envMap?"#define USE_ENVMAP":"",I.envMap?"#define "+n:"",I.lightMap?"#define USE_LIGHTMAP":"",I.aoMap?"#define USE_AOMAP":"",I.bumpMap?"#define USE_BUMPMAP":"",I.normalMap?"#define USE_NORMALMAP":"",I.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",I.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",I.displacementMap?"#define USE_DISPLACEMENTMAP":"",I.emissiveMap?"#define USE_EMISSIVEMAP":"",I.anisotropy?"#define USE_ANISOTROPY":"",I.anisotropyMap?"#define USE_ANISOTROPYMAP":"",I.clearcoatMap?"#define USE_CLEARCOATMAP":"",I.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",I.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",I.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",I.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",I.specularMap?"#define USE_SPECULARMAP":"",I.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",I.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",I.roughnessMap?"#define USE_ROUGHNESSMAP":"",I.metalnessMap?"#define USE_METALNESSMAP":"",I.alphaMap?"#define USE_ALPHAMAP":"",I.alphaHash?"#define USE_ALPHAHASH":"",I.transmission?"#define USE_TRANSMISSION":"",I.transmissionMap?"#define USE_TRANSMISSIONMAP":"",I.thicknessMap?"#define USE_THICKNESSMAP":"",I.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",I.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",I.mapUv?"#define MAP_UV "+I.mapUv:"",I.alphaMapUv?"#define ALPHAMAP_UV "+I.alphaMapUv:"",I.lightMapUv?"#define LIGHTMAP_UV "+I.lightMapUv:"",I.aoMapUv?"#define AOMAP_UV "+I.aoMapUv:"",I.emissiveMapUv?"#define EMISSIVEMAP_UV "+I.emissiveMapUv:"",I.bumpMapUv?"#define BUMPMAP_UV "+I.bumpMapUv:"",I.normalMapUv?"#define NORMALMAP_UV "+I.normalMapUv:"",I.displacementMapUv?"#define DISPLACEMENTMAP_UV "+I.displacementMapUv:"",I.metalnessMapUv?"#define METALNESSMAP_UV "+I.metalnessMapUv:"",I.roughnessMapUv?"#define ROUGHNESSMAP_UV "+I.roughnessMapUv:"",I.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+I.anisotropyMapUv:"",I.clearcoatMapUv?"#define CLEARCOATMAP_UV "+I.clearcoatMapUv:"",I.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+I.clearcoatNormalMapUv:"",I.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+I.clearcoatRoughnessMapUv:"",I.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+I.iridescenceMapUv:"",I.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+I.iridescenceThicknessMapUv:"",I.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+I.sheenColorMapUv:"",I.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+I.sheenRoughnessMapUv:"",I.specularMapUv?"#define SPECULARMAP_UV "+I.specularMapUv:"",I.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+I.specularColorMapUv:"",I.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+I.specularIntensityMapUv:"",I.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+I.transmissionMapUv:"",I.thicknessMapUv?"#define THICKNESSMAP_UV "+I.thicknessMapUv:"",I.vertexTangents&&I.flatShading===!1?"#define USE_TANGENT":"",I.vertexColors?"#define USE_COLOR":"",I.vertexAlphas?"#define USE_COLOR_ALPHA":"",I.vertexUv1s?"#define USE_UV1":"",I.vertexUv2s?"#define USE_UV2":"",I.vertexUv3s?"#define USE_UV3":"",I.pointsUvs?"#define USE_POINTS_UV":"",I.flatShading?"#define FLAT_SHADED":"",I.skinning?"#define USE_SKINNING":"",I.morphTargets?"#define USE_MORPHTARGETS":"",I.morphNormals&&I.flatShading===!1?"#define USE_MORPHNORMALS":"",I.morphColors&&I.isWebGL2?"#define USE_MORPHCOLORS":"",I.morphTargetsCount>0&&I.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",I.morphTargetsCount>0&&I.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+I.morphTextureStride:"",I.morphTargetsCount>0&&I.isWebGL2?"#define MORPHTARGETS_COUNT "+I.morphTargetsCount:"",I.doubleSided?"#define DOUBLE_SIDED":"",I.flipSided?"#define FLIP_SIDED":"",I.shadowMapEnabled?"#define USE_SHADOWMAP":"",I.shadowMapEnabled?"#define "+E:"",I.sizeAttenuation?"#define USE_SIZEATTENUATION":"",I.numLightProbes>0?"#define USE_LIGHT_PROBES":"",I.useLegacyLights?"#define LEGACY_LIGHTS":"",I.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",I.logarithmicDepthBuffer&&I.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(fn).join(` +`),y=[l,LF(I),"#define SHADER_TYPE "+I.shaderType,"#define SHADER_NAME "+I.shaderName,G,I.useFog&&I.fog?"#define USE_FOG":"",I.useFog&&I.fogExp2?"#define FOG_EXP2":"",I.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",I.map?"#define USE_MAP":"",I.matcap?"#define USE_MATCAP":"",I.envMap?"#define USE_ENVMAP":"",I.envMap?"#define "+t:"",I.envMap?"#define "+n:"",I.envMap?"#define "+a:"",r?"#define CUBEUV_TEXEL_WIDTH "+r.texelWidth:"",r?"#define CUBEUV_TEXEL_HEIGHT "+r.texelHeight:"",r?"#define CUBEUV_MAX_MIP "+r.maxMip+".0":"",I.lightMap?"#define USE_LIGHTMAP":"",I.aoMap?"#define USE_AOMAP":"",I.bumpMap?"#define USE_BUMPMAP":"",I.normalMap?"#define USE_NORMALMAP":"",I.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",I.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",I.emissiveMap?"#define USE_EMISSIVEMAP":"",I.anisotropy?"#define USE_ANISOTROPY":"",I.anisotropyMap?"#define USE_ANISOTROPYMAP":"",I.clearcoat?"#define USE_CLEARCOAT":"",I.clearcoatMap?"#define USE_CLEARCOATMAP":"",I.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",I.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",I.iridescence?"#define USE_IRIDESCENCE":"",I.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",I.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",I.specularMap?"#define USE_SPECULARMAP":"",I.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",I.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",I.roughnessMap?"#define USE_ROUGHNESSMAP":"",I.metalnessMap?"#define USE_METALNESSMAP":"",I.alphaMap?"#define USE_ALPHAMAP":"",I.alphaTest?"#define USE_ALPHATEST":"",I.alphaHash?"#define USE_ALPHAHASH":"",I.sheen?"#define USE_SHEEN":"",I.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",I.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",I.transmission?"#define USE_TRANSMISSION":"",I.transmissionMap?"#define USE_TRANSMISSIONMAP":"",I.thicknessMap?"#define USE_THICKNESSMAP":"",I.vertexTangents&&I.flatShading===!1?"#define USE_TANGENT":"",I.vertexColors||I.instancingColor?"#define USE_COLOR":"",I.vertexAlphas?"#define USE_COLOR_ALPHA":"",I.vertexUv1s?"#define USE_UV1":"",I.vertexUv2s?"#define USE_UV2":"",I.vertexUv3s?"#define USE_UV3":"",I.pointsUvs?"#define USE_POINTS_UV":"",I.gradientMap?"#define USE_GRADIENTMAP":"",I.flatShading?"#define FLAT_SHADED":"",I.doubleSided?"#define DOUBLE_SIDED":"",I.flipSided?"#define FLIP_SIDED":"",I.shadowMapEnabled?"#define USE_SHADOWMAP":"",I.shadowMapEnabled?"#define "+E:"",I.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",I.numLightProbes>0?"#define USE_LIGHT_PROBES":"",I.useLegacyLights?"#define LEGACY_LIGHTS":"",I.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",I.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",I.logarithmicDepthBuffer&&I.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",I.toneMapping!==KQ?"#define TONE_MAPPING":"",I.toneMapping!==KQ?Ig.tonemapping_pars_fragment:"",I.toneMapping!==KQ?w_("toneMapping",I.toneMapping):"",I.dithering?"#define DITHERING":"",I.opaque?"#define OPAQUE":"",Ig.colorspace_pars_fragment,h_("linearToOutputTexel",I.outputColorSpace),I.useDepthPacking?"#define DEPTH_PACKING "+I.depthPacking:"",` +`].filter(fn).join(` +`)),Q=bu(Q),Q=JF(Q,I),Q=qF(Q,I),e=bu(e),e=JF(e,I),e=qF(e,I),Q=mF(Q),e=mF(e),I.isWebGL2&&I.isRawShaderMaterial!==!0&&(S=`#version 300 es +`,c=[D,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+c,y=["precision mediump sampler2DArray;","#define varying in",I.glslVersion===Tu?"":"layout(location = 0) out highp vec4 pc_fragColor;",I.glslVersion===Tu?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+y);const k=S+c+Q,N=S+y+e,M=RF(B,B.VERTEX_SHADER,k),F=RF(B,B.FRAGMENT_SHADER,N);B.attachShader(h,M),B.attachShader(h,F),I.index0AttributeName!==void 0?B.bindAttribLocation(h,0,I.index0AttributeName):I.morphTargets===!0&&B.bindAttribLocation(h,0,"position"),B.linkProgram(h);function q(z){if(g.debug.checkShaderErrors){const DA=B.getProgramInfoLog(h).trim(),X=B.getShaderInfoLog(M).trim(),eA=B.getShaderInfoLog(F).trim();let iA=!0,wA=!0;if(B.getProgramParameter(h,B.LINK_STATUS)===!1)if(iA=!1,typeof g.debug.onShaderError=="function")g.debug.onShaderError(B,h,M,F);else{const v=KF(B,M,"vertex"),CA=KF(B,F,"fragment");console.error("THREE.WebGLProgram: Shader Error "+B.getError()+" - VALIDATE_STATUS "+B.getProgramParameter(h,B.VALIDATE_STATUS)+` + +Material Name: `+z.name+` +Material Type: `+z.type+` + +Program Info Log: `+DA+` +`+v+` +`+CA)}else DA!==""?console.warn("THREE.WebGLProgram: Program Info Log:",DA):(X===""||eA==="")&&(wA=!1);wA&&(z.diagnostics={runnable:iA,programLog:DA,vertexShader:{log:X,prefix:c},fragmentShader:{log:eA,prefix:y}})}B.deleteShader(M),B.deleteShader(F),Z=new jD(B,h),U=u_(B,h)}let Z;this.getUniforms=function(){return Z===void 0&&q(this),Z};let U;this.getAttributes=function(){return U===void 0&&q(this),U};let K=I.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return K===!1&&(K=B.getProgramParameter(h,r_)),K},this.destroy=function(){C.releaseStatesOfProgram(this),B.deleteProgram(h),this.program=void 0},this.type=I.shaderType,this.name=I.shaderName,this.id=l_++,this.cacheKey=A,this.usedTimes=1,this.program=h,this.vertexShader=M,this.fragmentShader=F,this}let q_=0;class m_{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(A){const I=A.vertexShader,C=A.fragmentShader,B=this._getShaderStage(I),i=this._getShaderStage(C),Q=this._getShaderCacheForMaterial(A);return Q.has(B)===!1&&(Q.add(B),B.usedTimes++),Q.has(i)===!1&&(Q.add(i),i.usedTimes++),this}remove(A){const I=this.materialCache.get(A);for(const C of I)C.usedTimes--,C.usedTimes===0&&this.shaderCache.delete(C.code);return this.materialCache.delete(A),this}getVertexShaderID(A){return this._getShaderStage(A.vertexShader).id}getFragmentShaderID(A){return this._getShaderStage(A.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(A){const I=this.materialCache;let C=I.get(A);return C===void 0&&(C=new Set,I.set(A,C)),C}_getShaderStage(A){const I=this.shaderCache;let C=I.get(A);return C===void 0&&(C=new L_(A),I.set(A,C)),C}}class L_{constructor(A){this.id=q_++,this.code=A,this.usedTimes=0}}function Y_(g,A,I,C,B,i,Q){const e=new $t,E=new m_,t=new Set,n=[],a=B.isWebGL2,r=B.logarithmicDepthBuffer,l=B.vertexTextures;let D=B.precision;const G={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function h(U){return t.add(U),U===0?"uv":`uv${U}`}function c(U,K,z,DA,X){const eA=DA.fog,iA=X.geometry,wA=U.isMeshStandardMaterial?DA.environment:null,v=(U.isMeshStandardMaterial?I:A).get(U.envMap||wA),CA=v&&v.mapping===ls?v.image.height:null,gA=G[U.type];U.precision!==null&&(D=B.getMaxPrecision(U.precision),D!==U.precision&&console.warn("THREE.WebGLProgram.getParameters:",U.precision,"not supported, using",D,"instead."));const SA=iA.morphAttributes.position||iA.morphAttributes.normal||iA.morphAttributes.color,NA=SA!==void 0?SA.length:0;let WA=0;iA.morphAttributes.position!==void 0&&(WA=1),iA.morphAttributes.normal!==void 0&&(WA=2),iA.morphAttributes.color!==void 0&&(WA=3);let j,b,Y,x;if(gA){const rg=CQ[gA];j=rg.vertexShader,b=rg.fragmentShader}else j=U.vertexShader,b=U.fragmentShader,E.update(U),Y=E.getVertexShaderID(U),x=E.getFragmentShaderID(U);const nA=g.getRenderTarget(),MA=X.isInstancedMesh===!0,oA=X.isBatchedMesh===!0,FA=!!U.map,W=!!U.matcap,UA=!!v,tA=!!U.aoMap,hA=!!U.lightMap,GA=!!U.bumpMap,bA=!!U.normalMap,EA=!!U.displacementMap,f=!!U.emissiveMap,m=!!U.metalnessMap,cA=!!U.roughnessMap,ZA=U.anisotropy>0,OA=U.clearcoat>0,YA=U.iridescence>0,EI=U.sheen>0,CI=U.transmission>0,sI=ZA&&!!U.anisotropyMap,SI=OA&&!!U.clearcoatMap,fI=OA&&!!U.clearcoatNormalMap,PA=OA&&!!U.clearcoatRoughnessMap,bI=YA&&!!U.iridescenceMap,LI=YA&&!!U.iridescenceThicknessMap,kI=EI&&!!U.sheenColorMap,tI=EI&&!!U.sheenRoughnessMap,aI=!!U.specularMap,UI=!!U.specularColorMap,JI=!!U.specularIntensityMap,YI=CI&&!!U.transmissionMap,HI=CI&&!!U.thicknessMap,jA=!!U.gradientMap,IA=!!U.alphaMap,AI=U.alphaTest>0,$A=!!U.alphaHash,lI=!!U.extensions;let pI=KQ;U.toneMapped&&(nA===null||nA.isXRRenderTarget===!0)&&(pI=g.toneMapping);const ag={isWebGL2:a,shaderID:gA,shaderType:U.type,shaderName:U.name,vertexShader:j,fragmentShader:b,defines:U.defines,customVertexShaderID:Y,customFragmentShaderID:x,isRawShaderMaterial:U.isRawShaderMaterial===!0,glslVersion:U.glslVersion,precision:D,batching:oA,instancing:MA,instancingColor:MA&&X.instanceColor!==null,supportsVertexTextures:l,outputColorSpace:nA===null?g.outputColorSpace:nA.isXRRenderTarget===!0?nA.texture.colorSpace:LQ,alphaToCoverage:!!U.alphaToCoverage,map:FA,matcap:W,envMap:UA,envMapMode:UA&&v.mapping,envMapCubeUVHeight:CA,aoMap:tA,lightMap:hA,bumpMap:GA,normalMap:bA,displacementMap:l&&EA,emissiveMap:f,normalMapObjectSpace:bA&&U.normalMapType===ym,normalMapTangentSpace:bA&&U.normalMapType===WE,metalnessMap:m,roughnessMap:cA,anisotropy:ZA,anisotropyMap:sI,clearcoat:OA,clearcoatMap:SI,clearcoatNormalMap:fI,clearcoatRoughnessMap:PA,iridescence:YA,iridescenceMap:bI,iridescenceThicknessMap:LI,sheen:EI,sheenColorMap:kI,sheenRoughnessMap:tI,specularMap:aI,specularColorMap:UI,specularIntensityMap:JI,transmission:CI,transmissionMap:YI,thicknessMap:HI,gradientMap:jA,opaque:U.transparent===!1&&U.blending===Vt&&U.alphaToCoverage===!1,alphaMap:IA,alphaTest:AI,alphaHash:$A,combine:U.combine,mapUv:FA&&h(U.map.channel),aoMapUv:tA&&h(U.aoMap.channel),lightMapUv:hA&&h(U.lightMap.channel),bumpMapUv:GA&&h(U.bumpMap.channel),normalMapUv:bA&&h(U.normalMap.channel),displacementMapUv:EA&&h(U.displacementMap.channel),emissiveMapUv:f&&h(U.emissiveMap.channel),metalnessMapUv:m&&h(U.metalnessMap.channel),roughnessMapUv:cA&&h(U.roughnessMap.channel),anisotropyMapUv:sI&&h(U.anisotropyMap.channel),clearcoatMapUv:SI&&h(U.clearcoatMap.channel),clearcoatNormalMapUv:fI&&h(U.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:PA&&h(U.clearcoatRoughnessMap.channel),iridescenceMapUv:bI&&h(U.iridescenceMap.channel),iridescenceThicknessMapUv:LI&&h(U.iridescenceThicknessMap.channel),sheenColorMapUv:kI&&h(U.sheenColorMap.channel),sheenRoughnessMapUv:tI&&h(U.sheenRoughnessMap.channel),specularMapUv:aI&&h(U.specularMap.channel),specularColorMapUv:UI&&h(U.specularColorMap.channel),specularIntensityMapUv:JI&&h(U.specularIntensityMap.channel),transmissionMapUv:YI&&h(U.transmissionMap.channel),thicknessMapUv:HI&&h(U.thicknessMap.channel),alphaMapUv:IA&&h(U.alphaMap.channel),vertexTangents:!!iA.attributes.tangent&&(bA||ZA),vertexColors:U.vertexColors,vertexAlphas:U.vertexColors===!0&&!!iA.attributes.color&&iA.attributes.color.itemSize===4,pointsUvs:X.isPoints===!0&&!!iA.attributes.uv&&(FA||IA),fog:!!eA,useFog:U.fog===!0,fogExp2:!!eA&&eA.isFogExp2,flatShading:U.flatShading===!0,sizeAttenuation:U.sizeAttenuation===!0,logarithmicDepthBuffer:r,skinning:X.isSkinnedMesh===!0,morphTargets:iA.morphAttributes.position!==void 0,morphNormals:iA.morphAttributes.normal!==void 0,morphColors:iA.morphAttributes.color!==void 0,morphTargetsCount:NA,morphTextureStride:WA,numDirLights:K.directional.length,numPointLights:K.point.length,numSpotLights:K.spot.length,numSpotLightMaps:K.spotLightMap.length,numRectAreaLights:K.rectArea.length,numHemiLights:K.hemi.length,numDirLightShadows:K.directionalShadowMap.length,numPointLightShadows:K.pointShadowMap.length,numSpotLightShadows:K.spotShadowMap.length,numSpotLightShadowsWithMaps:K.numSpotLightShadowsWithMaps,numLightProbes:K.numLightProbes,numClippingPlanes:Q.numPlanes,numClipIntersection:Q.numIntersection,dithering:U.dithering,shadowMapEnabled:g.shadowMap.enabled&&z.length>0,shadowMapType:g.shadowMap.type,toneMapping:pI,useLegacyLights:g._useLegacyLights,decodeVideoTexture:FA&&U.map.isVideoTexture===!0&&Rg.getTransfer(U.map.colorSpace)===Hg,premultipliedAlpha:U.premultipliedAlpha,doubleSided:U.side===qi,flipSided:U.side===LB,useDepthPacking:U.depthPacking>=0,depthPacking:U.depthPacking||0,index0AttributeName:U.index0AttributeName,extensionDerivatives:lI&&U.extensions.derivatives===!0,extensionFragDepth:lI&&U.extensions.fragDepth===!0,extensionDrawBuffers:lI&&U.extensions.drawBuffers===!0,extensionShaderTextureLOD:lI&&U.extensions.shaderTextureLOD===!0,extensionClipCullDistance:lI&&U.extensions.clipCullDistance===!0&&C.has("WEBGL_clip_cull_distance"),extensionMultiDraw:lI&&U.extensions.multiDraw===!0&&C.has("WEBGL_multi_draw"),rendererExtensionFragDepth:a||C.has("EXT_frag_depth"),rendererExtensionDrawBuffers:a||C.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:a||C.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:C.has("KHR_parallel_shader_compile"),customProgramCacheKey:U.customProgramCacheKey()};return ag.vertexUv1s=t.has(1),ag.vertexUv2s=t.has(2),ag.vertexUv3s=t.has(3),t.clear(),ag}function y(U){const K=[];if(U.shaderID?K.push(U.shaderID):(K.push(U.customVertexShaderID),K.push(U.customFragmentShaderID)),U.defines!==void 0)for(const z in U.defines)K.push(z),K.push(U.defines[z]);return U.isRawShaderMaterial===!1&&(S(K,U),k(K,U),K.push(g.outputColorSpace)),K.push(U.customProgramCacheKey),K.join()}function S(U,K){U.push(K.precision),U.push(K.outputColorSpace),U.push(K.envMapMode),U.push(K.envMapCubeUVHeight),U.push(K.mapUv),U.push(K.alphaMapUv),U.push(K.lightMapUv),U.push(K.aoMapUv),U.push(K.bumpMapUv),U.push(K.normalMapUv),U.push(K.displacementMapUv),U.push(K.emissiveMapUv),U.push(K.metalnessMapUv),U.push(K.roughnessMapUv),U.push(K.anisotropyMapUv),U.push(K.clearcoatMapUv),U.push(K.clearcoatNormalMapUv),U.push(K.clearcoatRoughnessMapUv),U.push(K.iridescenceMapUv),U.push(K.iridescenceThicknessMapUv),U.push(K.sheenColorMapUv),U.push(K.sheenRoughnessMapUv),U.push(K.specularMapUv),U.push(K.specularColorMapUv),U.push(K.specularIntensityMapUv),U.push(K.transmissionMapUv),U.push(K.thicknessMapUv),U.push(K.combine),U.push(K.fogExp2),U.push(K.sizeAttenuation),U.push(K.morphTargetsCount),U.push(K.morphAttributeCount),U.push(K.numDirLights),U.push(K.numPointLights),U.push(K.numSpotLights),U.push(K.numSpotLightMaps),U.push(K.numHemiLights),U.push(K.numRectAreaLights),U.push(K.numDirLightShadows),U.push(K.numPointLightShadows),U.push(K.numSpotLightShadows),U.push(K.numSpotLightShadowsWithMaps),U.push(K.numLightProbes),U.push(K.shadowMapType),U.push(K.toneMapping),U.push(K.numClippingPlanes),U.push(K.numClipIntersection),U.push(K.depthPacking)}function k(U,K){e.disableAll(),K.isWebGL2&&e.enable(0),K.supportsVertexTextures&&e.enable(1),K.instancing&&e.enable(2),K.instancingColor&&e.enable(3),K.matcap&&e.enable(4),K.envMap&&e.enable(5),K.normalMapObjectSpace&&e.enable(6),K.normalMapTangentSpace&&e.enable(7),K.clearcoat&&e.enable(8),K.iridescence&&e.enable(9),K.alphaTest&&e.enable(10),K.vertexColors&&e.enable(11),K.vertexAlphas&&e.enable(12),K.vertexUv1s&&e.enable(13),K.vertexUv2s&&e.enable(14),K.vertexUv3s&&e.enable(15),K.vertexTangents&&e.enable(16),K.anisotropy&&e.enable(17),K.alphaHash&&e.enable(18),K.batching&&e.enable(19),U.push(e.mask),e.disableAll(),K.fog&&e.enable(0),K.useFog&&e.enable(1),K.flatShading&&e.enable(2),K.logarithmicDepthBuffer&&e.enable(3),K.skinning&&e.enable(4),K.morphTargets&&e.enable(5),K.morphNormals&&e.enable(6),K.morphColors&&e.enable(7),K.premultipliedAlpha&&e.enable(8),K.shadowMapEnabled&&e.enable(9),K.useLegacyLights&&e.enable(10),K.doubleSided&&e.enable(11),K.flipSided&&e.enable(12),K.useDepthPacking&&e.enable(13),K.dithering&&e.enable(14),K.transmission&&e.enable(15),K.sheen&&e.enable(16),K.opaque&&e.enable(17),K.pointsUvs&&e.enable(18),K.decodeVideoTexture&&e.enable(19),K.alphaToCoverage&&e.enable(20),U.push(e.mask)}function N(U){const K=G[U.type];let z;if(K){const DA=CQ[K];z=Jd.clone(DA.uniforms)}else z=U.uniforms;return z}function M(U,K){let z;for(let DA=0,X=n.length;DA0?C.push(c):l.transparent===!0?B.push(c):I.push(c)}function E(a,r,l,D,G,h){const c=Q(a,r,l,D,G,h);l.transmission>0?C.unshift(c):l.transparent===!0?B.unshift(c):I.unshift(c)}function t(a,r){I.length>1&&I.sort(a||T_),C.length>1&&C.sort(r||YF),B.length>1&&B.sort(r||YF)}function n(){for(let a=A,r=g.length;a=i.length?(Q=new HF,i.push(Q)):Q=i[B],Q}function I(){g=new WeakMap}return{get:A,dispose:I}}function v_(){const g={};return{get:function(A){if(g[A.id]!==void 0)return g[A.id];let I;switch(A.type){case"DirectionalLight":I={direction:new _,color:new eI};break;case"SpotLight":I={position:new _,direction:new _,color:new eI,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":I={position:new _,color:new eI,distance:0,decay:0};break;case"HemisphereLight":I={direction:new _,skyColor:new eI,groundColor:new eI};break;case"RectAreaLight":I={color:new eI,position:new _,halfWidth:new _,halfHeight:new _};break}return g[A.id]=I,I}}}function b_(){const g={};return{get:function(A){if(g[A.id]!==void 0)return g[A.id];let I;switch(A.type){case"DirectionalLight":I={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new qA};break;case"SpotLight":I={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new qA};break;case"PointLight":I={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new qA,shadowCameraNear:1,shadowCameraFar:1e3};break}return g[A.id]=I,I}}}let O_=0;function __(g,A){return(A.castShadow?2:0)-(g.castShadow?2:0)+(A.map?1:0)-(g.map?1:0)}function Z_(g,A){const I=new v_,C=b_(),B={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let n=0;n<9;n++)B.probe.push(new _);const i=new _,Q=new MI,e=new MI;function E(n,a){let r=0,l=0,D=0;for(let z=0;z<9;z++)B.probe[z].set(0,0,0);let G=0,h=0,c=0,y=0,S=0,k=0,N=0,M=0,F=0,q=0,Z=0;n.sort(__);const U=a===!0?Math.PI:1;for(let z=0,DA=n.length;z0&&(A.isWebGL2?g.has("OES_texture_float_linear")===!0?(B.rectAreaLTC1=oI.LTC_FLOAT_1,B.rectAreaLTC2=oI.LTC_FLOAT_2):(B.rectAreaLTC1=oI.LTC_HALF_1,B.rectAreaLTC2=oI.LTC_HALF_2):g.has("OES_texture_float_linear")===!0?(B.rectAreaLTC1=oI.LTC_FLOAT_1,B.rectAreaLTC2=oI.LTC_FLOAT_2):g.has("OES_texture_half_float_linear")===!0?(B.rectAreaLTC1=oI.LTC_HALF_1,B.rectAreaLTC2=oI.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),B.ambient[0]=r,B.ambient[1]=l,B.ambient[2]=D;const K=B.hash;(K.directionalLength!==G||K.pointLength!==h||K.spotLength!==c||K.rectAreaLength!==y||K.hemiLength!==S||K.numDirectionalShadows!==k||K.numPointShadows!==N||K.numSpotShadows!==M||K.numSpotMaps!==F||K.numLightProbes!==Z)&&(B.directional.length=G,B.spot.length=c,B.rectArea.length=y,B.point.length=h,B.hemi.length=S,B.directionalShadow.length=k,B.directionalShadowMap.length=k,B.pointShadow.length=N,B.pointShadowMap.length=N,B.spotShadow.length=M,B.spotShadowMap.length=M,B.directionalShadowMatrix.length=k,B.pointShadowMatrix.length=N,B.spotLightMatrix.length=M+F-q,B.spotLightMap.length=F,B.numSpotLightShadowsWithMaps=q,B.numLightProbes=Z,K.directionalLength=G,K.pointLength=h,K.spotLength=c,K.rectAreaLength=y,K.hemiLength=S,K.numDirectionalShadows=k,K.numPointShadows=N,K.numSpotShadows=M,K.numSpotMaps=F,K.numLightProbes=Z,B.version=O_++)}function t(n,a){let r=0,l=0,D=0,G=0,h=0;const c=a.matrixWorldInverse;for(let y=0,S=n.length;y=e.length?(E=new TF(g,A),e.push(E)):E=e[Q],E}function B(){I=new WeakMap}return{get:C,dispose:B}}class yw extends hC{constructor(A){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Gm,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(A)}copy(A){return super.copy(A),this.depthPacking=A.depthPacking,this.map=A.map,this.alphaMap=A.alphaMap,this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this}}class uw extends hC{constructor(A){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(A)}copy(A){return super.copy(A),this.map=A.map,this.alphaMap=A.alphaMap,this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this}}const W_=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,j_=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function V_(g,A,I){let C=new Wr;const B=new qA,i=new qA,Q=new yg,e=new yw({depthPacking:pd}),E=new uw,t={},n=I.maxTextureSize,a={[ri]:LB,[LB]:ri,[qi]:qi},r=new YC({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new qA},radius:{value:4}},vertexShader:W_,fragmentShader:j_}),l=r.clone();l.defines.HORIZONTAL_PASS=1;const D=new WI;D.setAttribute("position",new Ag(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const G=new cg(D,r),h=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=rw;let c=this.type;this.render=function(M,F,q){if(h.enabled===!1||h.autoUpdate===!1&&h.needsUpdate===!1||M.length===0)return;const Z=g.getRenderTarget(),U=g.getActiveCubeFace(),K=g.getActiveMipmapLevel(),z=g.state;z.setBlending(le),z.buffers.color.setClear(1,1,1,1),z.buffers.depth.setTest(!0),z.setScissorTest(!1);const DA=c!==$i&&this.type===$i,X=c===$i&&this.type!==$i;for(let eA=0,iA=M.length;eAn||B.y>n)&&(B.x>n&&(i.x=Math.floor(n/CA.x),B.x=i.x*CA.x,v.mapSize.x=i.x),B.y>n&&(i.y=Math.floor(n/CA.y),B.y=i.y*CA.y,v.mapSize.y=i.y)),v.map===null||DA===!0||X===!0){const SA=this.type!==$i?{minFilter:og,magFilter:og}:{};v.map!==null&&v.map.dispose(),v.map=new MC(B.x,B.y,SA),v.map.texture.name=wA.name+".shadowMap",v.camera.updateProjectionMatrix()}g.setRenderTarget(v.map),g.clear();const gA=v.getViewportCount();for(let SA=0;SA0||F.map&&F.alphaTest>0){const z=U.uuid,DA=F.uuid;let X=t[z];X===void 0&&(X={},t[z]=X);let eA=X[DA];eA===void 0&&(eA=U.clone(),X[DA]=eA,F.addEventListener("dispose",N)),U=eA}if(U.visible=F.visible,U.wireframe=F.wireframe,Z===$i?U.side=F.shadowSide!==null?F.shadowSide:F.side:U.side=F.shadowSide!==null?F.shadowSide:a[F.side],U.alphaMap=F.alphaMap,U.alphaTest=F.alphaTest,U.map=F.map,U.clipShadows=F.clipShadows,U.clippingPlanes=F.clippingPlanes,U.clipIntersection=F.clipIntersection,U.displacementMap=F.displacementMap,U.displacementScale=F.displacementScale,U.displacementBias=F.displacementBias,U.wireframeLinewidth=F.wireframeLinewidth,U.linewidth=F.linewidth,q.isPointLight===!0&&U.isMeshDistanceMaterial===!0){const z=g.properties.get(U);z.light=q}return U}function k(M,F,q,Z,U){if(M.visible===!1)return;if(M.layers.test(F.layers)&&(M.isMesh||M.isLine||M.isPoints)&&(M.castShadow||M.receiveShadow&&U===$i)&&(!M.frustumCulled||C.intersectsObject(M))){M.modelViewMatrix.multiplyMatrices(q.matrixWorldInverse,M.matrixWorld);const DA=A.update(M),X=M.material;if(Array.isArray(X)){const eA=DA.groups;for(let iA=0,wA=eA.length;iA=1):gA.indexOf("OpenGL ES")!==-1&&(CA=parseFloat(/^OpenGL ES (\d)/.exec(gA)[1]),v=CA>=2);let SA=null,NA={};const WA=g.getParameter(g.SCISSOR_BOX),j=g.getParameter(g.VIEWPORT),b=new yg().fromArray(WA),Y=new yg().fromArray(j);function x(IA,AI,$A,lI){const pI=new Uint8Array(4),ag=g.createTexture();g.bindTexture(IA,ag),g.texParameteri(IA,g.TEXTURE_MIN_FILTER,g.NEAREST),g.texParameteri(IA,g.TEXTURE_MAG_FILTER,g.NEAREST);for(let rg=0;rg<$A;rg++)C&&(IA===g.TEXTURE_3D||IA===g.TEXTURE_2D_ARRAY)?g.texImage3D(AI,0,g.RGBA,1,1,lI,0,g.RGBA,g.UNSIGNED_BYTE,pI):g.texImage2D(AI+rg,0,g.RGBA,1,1,0,g.RGBA,g.UNSIGNED_BYTE,pI);return ag}const nA={};nA[g.TEXTURE_2D]=x(g.TEXTURE_2D,g.TEXTURE_2D,1),nA[g.TEXTURE_CUBE_MAP]=x(g.TEXTURE_CUBE_MAP,g.TEXTURE_CUBE_MAP_POSITIVE_X,6),C&&(nA[g.TEXTURE_2D_ARRAY]=x(g.TEXTURE_2D_ARRAY,g.TEXTURE_2D_ARRAY,1,1),nA[g.TEXTURE_3D]=x(g.TEXTURE_3D,g.TEXTURE_3D,1,1)),e.setClear(0,0,0,1),E.setClear(1),t.setClear(0),MA(g.DEPTH_TEST),E.setFunc(lr),EA(!1),f(eu),MA(g.CULL_FACE),GA(le);function MA(IA){r[IA]!==!0&&(g.enable(IA),r[IA]=!0)}function oA(IA){r[IA]!==!1&&(g.disable(IA),r[IA]=!1)}function FA(IA,AI){return l[IA]!==AI?(g.bindFramebuffer(IA,AI),l[IA]=AI,C&&(IA===g.DRAW_FRAMEBUFFER&&(l[g.FRAMEBUFFER]=AI),IA===g.FRAMEBUFFER&&(l[g.DRAW_FRAMEBUFFER]=AI)),!0):!1}function W(IA,AI){let $A=G,lI=!1;if(IA)if($A=D.get(AI),$A===void 0&&($A=[],D.set(AI,$A)),IA.isWebGLMultipleRenderTargets){const pI=IA.texture;if($A.length!==pI.length||$A[0]!==g.COLOR_ATTACHMENT0){for(let ag=0,rg=pI.length;ag"u"?!1:/OculusBrowser/g.test(navigator.userAgent),n=new WeakMap;let a;const r=new WeakMap;let l=!1;try{l=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function D(f,m){return l?new OffscreenCanvas(f,m):kr("canvas")}function G(f,m,cA,ZA){let OA=1;if((f.width>ZA||f.height>ZA)&&(OA=ZA/Math.max(f.width,f.height)),OA<1||m===!0)if(typeof HTMLImageElement<"u"&&f instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&f instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&f instanceof ImageBitmap){const YA=m?Kh:Math.floor,EI=YA(OA*f.width),CI=YA(OA*f.height);a===void 0&&(a=D(EI,CI));const sI=cA?D(EI,CI):a;return sI.width=EI,sI.height=CI,sI.getContext("2d").drawImage(f,0,0,EI,CI),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+f.width+"x"+f.height+") to ("+EI+"x"+CI+")."),sI}else return"data"in f&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+f.width+"x"+f.height+")."),f;return f}function h(f){return xu(f.width)&&xu(f.height)}function c(f){return e?!1:f.wrapS!==BB||f.wrapT!==BB||f.minFilter!==og&&f.minFilter!==Sg}function y(f,m){return f.generateMipmaps&&m&&f.minFilter!==og&&f.minFilter!==Sg}function S(f){g.generateMipmap(f)}function k(f,m,cA,ZA,OA=!1){if(e===!1)return m;if(f!==null){if(g[f]!==void 0)return g[f];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+f+"'")}let YA=m;if(m===g.RED&&(cA===g.FLOAT&&(YA=g.R32F),cA===g.HALF_FLOAT&&(YA=g.R16F),cA===g.UNSIGNED_BYTE&&(YA=g.R8)),m===g.RED_INTEGER&&(cA===g.UNSIGNED_BYTE&&(YA=g.R8UI),cA===g.UNSIGNED_SHORT&&(YA=g.R16UI),cA===g.UNSIGNED_INT&&(YA=g.R32UI),cA===g.BYTE&&(YA=g.R8I),cA===g.SHORT&&(YA=g.R16I),cA===g.INT&&(YA=g.R32I)),m===g.RG&&(cA===g.FLOAT&&(YA=g.RG32F),cA===g.HALF_FLOAT&&(YA=g.RG16F),cA===g.UNSIGNED_BYTE&&(YA=g.RG8)),m===g.RGBA){const EI=OA?wr:Rg.getTransfer(ZA);cA===g.FLOAT&&(YA=g.RGBA32F),cA===g.HALF_FLOAT&&(YA=g.RGBA16F),cA===g.UNSIGNED_BYTE&&(YA=EI===Hg?g.SRGB8_ALPHA8:g.RGBA8),cA===g.UNSIGNED_SHORT_4_4_4_4&&(YA=g.RGBA4),cA===g.UNSIGNED_SHORT_5_5_5_1&&(YA=g.RGB5_A1)}return(YA===g.R16F||YA===g.R32F||YA===g.RG16F||YA===g.RG32F||YA===g.RGBA16F||YA===g.RGBA32F)&&A.get("EXT_color_buffer_float"),YA}function N(f,m,cA){return y(f,cA)===!0||f.isFramebufferTexture&&f.minFilter!==og&&f.minFilter!==Sg?Math.log2(Math.max(m.width,m.height))+1:f.mipmaps!==void 0&&f.mipmaps.length>0?f.mipmaps.length:f.isCompressedTexture&&Array.isArray(f.image)?m.mipmaps.length:1}function M(f){return f===og||f===Dr||f===cE?g.NEAREST:g.LINEAR}function F(f){const m=f.target;m.removeEventListener("dispose",F),Z(m),m.isVideoTexture&&n.delete(m)}function q(f){const m=f.target;m.removeEventListener("dispose",q),K(m)}function Z(f){const m=C.get(f);if(m.__webglInit===void 0)return;const cA=f.source,ZA=r.get(cA);if(ZA){const OA=ZA[m.__cacheKey];OA.usedTimes--,OA.usedTimes===0&&U(f),Object.keys(ZA).length===0&&r.delete(cA)}C.remove(f)}function U(f){const m=C.get(f);g.deleteTexture(m.__webglTexture);const cA=f.source,ZA=r.get(cA);delete ZA[m.__cacheKey],Q.memory.textures--}function K(f){const m=f.texture,cA=C.get(f),ZA=C.get(m);if(ZA.__webglTexture!==void 0&&(g.deleteTexture(ZA.__webglTexture),Q.memory.textures--),f.depthTexture&&f.depthTexture.dispose(),f.isWebGLCubeRenderTarget)for(let OA=0;OA<6;OA++){if(Array.isArray(cA.__webglFramebuffer[OA]))for(let YA=0;YA=B.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+f+" texture units while this GPU supports only "+B.maxTextures),z+=1,f}function eA(f){const m=[];return m.push(f.wrapS),m.push(f.wrapT),m.push(f.wrapR||0),m.push(f.magFilter),m.push(f.minFilter),m.push(f.anisotropy),m.push(f.internalFormat),m.push(f.format),m.push(f.type),m.push(f.generateMipmaps),m.push(f.premultiplyAlpha),m.push(f.flipY),m.push(f.unpackAlignment),m.push(f.colorSpace),m.join()}function iA(f,m){const cA=C.get(f);if(f.isVideoTexture&&bA(f),f.isRenderTargetTexture===!1&&f.version>0&&cA.__version!==f.version){const ZA=f.image;if(ZA===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(ZA.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{b(cA,f,m);return}}I.bindTexture(g.TEXTURE_2D,cA.__webglTexture,g.TEXTURE0+m)}function wA(f,m){const cA=C.get(f);if(f.version>0&&cA.__version!==f.version){b(cA,f,m);return}I.bindTexture(g.TEXTURE_2D_ARRAY,cA.__webglTexture,g.TEXTURE0+m)}function v(f,m){const cA=C.get(f);if(f.version>0&&cA.__version!==f.version){b(cA,f,m);return}I.bindTexture(g.TEXTURE_3D,cA.__webglTexture,g.TEXTURE0+m)}function CA(f,m){const cA=C.get(f);if(f.version>0&&cA.__version!==f.version){Y(cA,f,m);return}I.bindTexture(g.TEXTURE_CUBE_MAP,cA.__webglTexture,g.TEXTURE0+m)}const gA={[xE]:g.REPEAT,[BB]:g.CLAMP_TO_EDGE,[Is]:g.MIRRORED_REPEAT},SA={[og]:g.NEAREST,[Dr]:g.NEAREST_MIPMAP_NEAREST,[cE]:g.NEAREST_MIPMAP_LINEAR,[Sg]:g.LINEAR,[Tn]:g.LINEAR_MIPMAP_NEAREST,[ti]:g.LINEAR_MIPMAP_LINEAR},NA={[um]:g.NEVER,[Nm]:g.ALWAYS,[km]:g.LESS,[Ud]:g.LEQUAL,[dm]:g.EQUAL,[Um]:g.GEQUAL,[Mm]:g.GREATER,[pm]:g.NOTEQUAL};function WA(f,m,cA){if(m.type===sC&&A.has("OES_texture_float_linear")===!1&&(m.magFilter===Sg||m.magFilter===Tn||m.magFilter===cE||m.magFilter===ti||m.minFilter===Sg||m.minFilter===Tn||m.minFilter===cE||m.minFilter===ti)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),cA?(g.texParameteri(f,g.TEXTURE_WRAP_S,gA[m.wrapS]),g.texParameteri(f,g.TEXTURE_WRAP_T,gA[m.wrapT]),(f===g.TEXTURE_3D||f===g.TEXTURE_2D_ARRAY)&&g.texParameteri(f,g.TEXTURE_WRAP_R,gA[m.wrapR]),g.texParameteri(f,g.TEXTURE_MAG_FILTER,SA[m.magFilter]),g.texParameteri(f,g.TEXTURE_MIN_FILTER,SA[m.minFilter])):(g.texParameteri(f,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(f,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),(f===g.TEXTURE_3D||f===g.TEXTURE_2D_ARRAY)&&g.texParameteri(f,g.TEXTURE_WRAP_R,g.CLAMP_TO_EDGE),(m.wrapS!==BB||m.wrapT!==BB)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),g.texParameteri(f,g.TEXTURE_MAG_FILTER,M(m.magFilter)),g.texParameteri(f,g.TEXTURE_MIN_FILTER,M(m.minFilter)),m.minFilter!==og&&m.minFilter!==Sg&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),m.compareFunction&&(g.texParameteri(f,g.TEXTURE_COMPARE_MODE,g.COMPARE_REF_TO_TEXTURE),g.texParameteri(f,g.TEXTURE_COMPARE_FUNC,NA[m.compareFunction])),A.has("EXT_texture_filter_anisotropic")===!0){const ZA=A.get("EXT_texture_filter_anisotropic");if(m.magFilter===og||m.minFilter!==cE&&m.minFilter!==ti||m.type===sC&&A.has("OES_texture_float_linear")===!1||e===!1&&m.type===iB&&A.has("OES_texture_half_float_linear")===!1)return;(m.anisotropy>1||C.get(m).__currentAnisotropy)&&(g.texParameterf(f,ZA.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(m.anisotropy,B.getMaxAnisotropy())),C.get(m).__currentAnisotropy=m.anisotropy)}}function j(f,m){let cA=!1;f.__webglInit===void 0&&(f.__webglInit=!0,m.addEventListener("dispose",F));const ZA=m.source;let OA=r.get(ZA);OA===void 0&&(OA={},r.set(ZA,OA));const YA=eA(m);if(YA!==f.__cacheKey){OA[YA]===void 0&&(OA[YA]={texture:g.createTexture(),usedTimes:0},Q.memory.textures++,cA=!0),OA[YA].usedTimes++;const EI=OA[f.__cacheKey];EI!==void 0&&(OA[f.__cacheKey].usedTimes--,EI.usedTimes===0&&U(m)),f.__cacheKey=YA,f.__webglTexture=OA[YA].texture}return cA}function b(f,m,cA){let ZA=g.TEXTURE_2D;(m.isDataArrayTexture||m.isCompressedArrayTexture)&&(ZA=g.TEXTURE_2D_ARRAY),m.isData3DTexture&&(ZA=g.TEXTURE_3D);const OA=j(f,m),YA=m.source;I.bindTexture(ZA,f.__webglTexture,g.TEXTURE0+cA);const EI=C.get(YA);if(YA.version!==EI.__version||OA===!0){I.activeTexture(g.TEXTURE0+cA);const CI=Rg.getPrimaries(Rg.workingColorSpace),sI=m.colorSpace===ei?null:Rg.getPrimaries(m.colorSpace),SI=m.colorSpace===ei||CI===sI?g.NONE:g.BROWSER_DEFAULT_WEBGL;g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,m.flipY),g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m.premultiplyAlpha),g.pixelStorei(g.UNPACK_ALIGNMENT,m.unpackAlignment),g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,SI);const fI=c(m)&&h(m.image)===!1;let PA=G(m.image,fI,!1,B.maxTextureSize);PA=EA(m,PA);const bI=h(PA)||e,LI=i.convert(m.format,m.colorSpace);let kI=i.convert(m.type),tI=k(m.internalFormat,LI,kI,m.colorSpace,m.isVideoTexture);WA(ZA,m,bI);let aI;const UI=m.mipmaps,JI=e&&m.isVideoTexture!==!0&&tI!==ud,YI=EI.__version===void 0||OA===!0,HI=YA.dataReady,jA=N(m,PA,bI);if(m.isDepthTexture)tI=g.DEPTH_COMPONENT,e?m.type===sC?tI=g.DEPTH_COMPONENT32F:m.type===oe?tI=g.DEPTH_COMPONENT24:m.type===NE?tI=g.DEPTH24_STENCIL8:tI=g.DEPTH_COMPONENT16:m.type===sC&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),m.format===FE&&tI===g.DEPTH_COMPONENT&&m.type!==cw&&m.type!==oe&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),m.type=oe,kI=i.convert(m.type)),m.format===Qo&&tI===g.DEPTH_COMPONENT&&(tI=g.DEPTH_STENCIL,m.type!==NE&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),m.type=NE,kI=i.convert(m.type))),YI&&(JI?I.texStorage2D(g.TEXTURE_2D,1,tI,PA.width,PA.height):I.texImage2D(g.TEXTURE_2D,0,tI,PA.width,PA.height,0,LI,kI,null));else if(m.isDataTexture)if(UI.length>0&&bI){JI&&YI&&I.texStorage2D(g.TEXTURE_2D,jA,tI,UI[0].width,UI[0].height);for(let IA=0,AI=UI.length;IA>=1,AI>>=1}}else if(UI.length>0&&bI){JI&&YI&&I.texStorage2D(g.TEXTURE_2D,jA,tI,UI[0].width,UI[0].height);for(let IA=0,AI=UI.length;IA0&&HI++,I.texStorage2D(g.TEXTURE_CUBE_MAP,HI,aI,PA[0].width,PA[0].height));for(let IA=0;IA<6;IA++)if(fI){UI?YI&&I.texSubImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_X+IA,0,0,0,PA[IA].width,PA[IA].height,kI,tI,PA[IA].data):I.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_X+IA,0,aI,PA[IA].width,PA[IA].height,0,kI,tI,PA[IA].data);for(let AI=0;AI>YA),PA=Math.max(1,m.height>>YA);OA===g.TEXTURE_3D||OA===g.TEXTURE_2D_ARRAY?I.texImage3D(OA,YA,sI,fI,PA,m.depth,0,EI,CI,null):I.texImage2D(OA,YA,sI,fI,PA,0,EI,CI,null)}I.bindFramebuffer(g.FRAMEBUFFER,f),GA(m)?E.framebufferTexture2DMultisampleEXT(g.FRAMEBUFFER,ZA,OA,C.get(cA).__webglTexture,0,hA(m)):(OA===g.TEXTURE_2D||OA>=g.TEXTURE_CUBE_MAP_POSITIVE_X&&OA<=g.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&g.framebufferTexture2D(g.FRAMEBUFFER,ZA,OA,C.get(cA).__webglTexture,YA),I.bindFramebuffer(g.FRAMEBUFFER,null)}function nA(f,m,cA){if(g.bindRenderbuffer(g.RENDERBUFFER,f),m.depthBuffer&&!m.stencilBuffer){let ZA=e===!0?g.DEPTH_COMPONENT24:g.DEPTH_COMPONENT16;if(cA||GA(m)){const OA=m.depthTexture;OA&&OA.isDepthTexture&&(OA.type===sC?ZA=g.DEPTH_COMPONENT32F:OA.type===oe&&(ZA=g.DEPTH_COMPONENT24));const YA=hA(m);GA(m)?E.renderbufferStorageMultisampleEXT(g.RENDERBUFFER,YA,ZA,m.width,m.height):g.renderbufferStorageMultisample(g.RENDERBUFFER,YA,ZA,m.width,m.height)}else g.renderbufferStorage(g.RENDERBUFFER,ZA,m.width,m.height);g.framebufferRenderbuffer(g.FRAMEBUFFER,g.DEPTH_ATTACHMENT,g.RENDERBUFFER,f)}else if(m.depthBuffer&&m.stencilBuffer){const ZA=hA(m);cA&&GA(m)===!1?g.renderbufferStorageMultisample(g.RENDERBUFFER,ZA,g.DEPTH24_STENCIL8,m.width,m.height):GA(m)?E.renderbufferStorageMultisampleEXT(g.RENDERBUFFER,ZA,g.DEPTH24_STENCIL8,m.width,m.height):g.renderbufferStorage(g.RENDERBUFFER,g.DEPTH_STENCIL,m.width,m.height),g.framebufferRenderbuffer(g.FRAMEBUFFER,g.DEPTH_STENCIL_ATTACHMENT,g.RENDERBUFFER,f)}else{const ZA=m.isWebGLMultipleRenderTargets===!0?m.texture:[m.texture];for(let OA=0;OA0){cA.__webglFramebuffer[CI]=[];for(let sI=0;sI0){cA.__webglFramebuffer=[];for(let CI=0;CI0&&GA(f)===!1){const CI=YA?m:[m];cA.__webglMultisampledFramebuffer=g.createFramebuffer(),cA.__webglColorRenderbuffer=[],I.bindFramebuffer(g.FRAMEBUFFER,cA.__webglMultisampledFramebuffer);for(let sI=0;sI0)for(let sI=0;sI0)for(let sI=0;sI0&&GA(f)===!1){const m=f.isWebGLMultipleRenderTargets?f.texture:[f.texture],cA=f.width,ZA=f.height;let OA=g.COLOR_BUFFER_BIT;const YA=[],EI=f.stencilBuffer?g.DEPTH_STENCIL_ATTACHMENT:g.DEPTH_ATTACHMENT,CI=C.get(f),sI=f.isWebGLMultipleRenderTargets===!0;if(sI)for(let SI=0;SI0&&A.has("WEBGL_multisampled_render_to_texture")===!0&&m.__useRenderToTexture!==!1}function bA(f){const m=Q.render.frame;n.get(f)!==m&&(n.set(f,m),f.update())}function EA(f,m){const cA=f.colorSpace,ZA=f.format,OA=f.type;return f.isCompressedTexture===!0||f.isVideoTexture===!0||f.format===Rh||cA!==LQ&&cA!==ei&&(Rg.getTransfer(cA)===Hg?e===!1?A.has("EXT_sRGB")===!0&&ZA===yB?(f.format=Rh,f.minFilter=Sg,f.generateMipmaps=!1):m=Fd.sRGBToLinear(m):(ZA!==yB||OA!==JQ)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",cA)),m}this.allocateTextureUnit=X,this.resetTextureUnits=DA,this.setTexture2D=iA,this.setTexture2DArray=wA,this.setTexture3D=v,this.setTextureCube=CA,this.rebindTextures=FA,this.setupRenderTarget=W,this.updateRenderTargetMipmap=UA,this.updateMultisampleRenderTarget=tA,this.setupDepthRenderbuffer=oA,this.setupFrameBufferTexture=x,this.useMultisampledRTT=GA}function vm(g,A,I){const C=I.isWebGL2;function B(i,Q=ei){let e;const E=Rg.getTransfer(Q);if(i===JQ)return g.UNSIGNED_BYTE;if(i===hd)return g.UNSIGNED_SHORT_4_4_4_4;if(i===wd)return g.UNSIGNED_SHORT_5_5_5_1;if(i===om)return g.BYTE;if(i===nm)return g.SHORT;if(i===cw)return g.UNSIGNED_SHORT;if(i===Dd)return g.INT;if(i===oe)return g.UNSIGNED_INT;if(i===sC)return g.FLOAT;if(i===iB)return C?g.HALF_FLOAT:(e=A.get("OES_texture_half_float"),e!==null?e.HALF_FLOAT_OES:null);if(i===sm)return g.ALPHA;if(i===yB)return g.RGBA;if(i===am)return g.LUMINANCE;if(i===rm)return g.LUMINANCE_ALPHA;if(i===FE)return g.DEPTH_COMPONENT;if(i===Qo)return g.DEPTH_STENCIL;if(i===Rh)return e=A.get("EXT_sRGB"),e!==null?e.SRGB_ALPHA_EXT:null;if(i===xn)return g.RED;if(i===Sd)return g.RED_INTEGER;if(i===lm)return g.RG;if(i===Gd)return g.RG_INTEGER;if(i===yd)return g.RGBA_INTEGER;if(i===bD||i===OD||i===_D||i===ZD)if(E===Hg)if(e=A.get("WEBGL_compressed_texture_s3tc_srgb"),e!==null){if(i===bD)return e.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===OD)return e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===_D)return e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===ZD)return e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(e=A.get("WEBGL_compressed_texture_s3tc"),e!==null){if(i===bD)return e.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===OD)return e.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===_D)return e.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===ZD)return e.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===ru||i===lu||i===cu||i===Du)if(e=A.get("WEBGL_compressed_texture_pvrtc"),e!==null){if(i===ru)return e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===lu)return e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===cu)return e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===Du)return e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===ud)return e=A.get("WEBGL_compressed_texture_etc1"),e!==null?e.COMPRESSED_RGB_ETC1_WEBGL:null;if(i===hu||i===wu)if(e=A.get("WEBGL_compressed_texture_etc"),e!==null){if(i===hu)return E===Hg?e.COMPRESSED_SRGB8_ETC2:e.COMPRESSED_RGB8_ETC2;if(i===wu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:e.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===Su||i===Gu||i===yu||i===uu||i===ku||i===du||i===Mu||i===pu||i===Uu||i===Nu||i===Fu||i===fu||i===Ru||i===Ku)if(e=A.get("WEBGL_compressed_texture_astc"),e!==null){if(i===Su)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:e.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===Gu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:e.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===yu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:e.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===uu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:e.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===ku)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:e.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===du)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:e.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===Mu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:e.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===pu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:e.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===Uu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:e.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===Nu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:e.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===Fu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:e.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===fu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:e.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===Ru)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:e.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===Ku)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:e.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===PD||i===Ju||i===qu)if(e=A.get("EXT_texture_compression_bptc"),e!==null){if(i===PD)return E===Hg?e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:e.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(i===Ju)return e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(i===qu)return e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(i===cm||i===mu||i===Lu||i===Yu)if(e=A.get("EXT_texture_compression_rgtc"),e!==null){if(i===PD)return e.COMPRESSED_RED_RGTC1_EXT;if(i===mu)return e.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(i===Lu)return e.COMPRESSED_RED_GREEN_RGTC2_EXT;if(i===Yu)return e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return i===NE?C?g.UNSIGNED_INT_24_8:(e=A.get("WEBGL_depth_texture"),e!==null?e.UNSIGNED_INT_24_8_WEBGL:null):g[i]!==void 0?g[i]:null}return{convert:B}}class bm extends pC{constructor(A=[]){super(),this.isArrayCamera=!0,this.cameras=A}}class qB extends ng{constructor(){super(),this.isGroup=!0,this.type="Group"}}const $_={type:"move"};class hy{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new qB,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new qB,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new _,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new _),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new qB,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new _,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new _),this._grip}dispatchEvent(A){return this._targetRay!==null&&this._targetRay.dispatchEvent(A),this._grip!==null&&this._grip.dispatchEvent(A),this._hand!==null&&this._hand.dispatchEvent(A),this}connect(A){if(A&&A.hand){const I=this._hand;if(I)for(const C of A.hand.values())this._getHandJoint(I,C)}return this.dispatchEvent({type:"connected",data:A}),this}disconnect(A){return this.dispatchEvent({type:"disconnected",data:A}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(A,I,C){let B=null,i=null,Q=null;const e=this._targetRay,E=this._grip,t=this._hand;if(A&&I.session.visibilityState!=="visible-blurred"){if(t&&A.hand){Q=!0;for(const G of A.hand.values()){const h=I.getJointPose(G,C),c=this._getHandJoint(t,G);h!==null&&(c.matrix.fromArray(h.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,c.jointRadius=h.radius),c.visible=h!==null}const n=t.joints["index-finger-tip"],a=t.joints["thumb-tip"],r=n.position.distanceTo(a.position),l=.02,D=.005;t.inputState.pinching&&r>l+D?(t.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:A.handedness,target:this})):!t.inputState.pinching&&r<=l-D&&(t.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:A.handedness,target:this}))}else E!==null&&A.gripSpace&&(i=I.getPose(A.gripSpace,C),i!==null&&(E.matrix.fromArray(i.transform.matrix),E.matrix.decompose(E.position,E.rotation,E.scale),E.matrixWorldNeedsUpdate=!0,i.linearVelocity?(E.hasLinearVelocity=!0,E.linearVelocity.copy(i.linearVelocity)):E.hasLinearVelocity=!1,i.angularVelocity?(E.hasAngularVelocity=!0,E.angularVelocity.copy(i.angularVelocity)):E.hasAngularVelocity=!1));e!==null&&(B=I.getPose(A.targetRaySpace,C),B===null&&i!==null&&(B=i),B!==null&&(e.matrix.fromArray(B.transform.matrix),e.matrix.decompose(e.position,e.rotation,e.scale),e.matrixWorldNeedsUpdate=!0,B.linearVelocity?(e.hasLinearVelocity=!0,e.linearVelocity.copy(B.linearVelocity)):e.hasLinearVelocity=!1,B.angularVelocity?(e.hasAngularVelocity=!0,e.angularVelocity.copy(B.angularVelocity)):e.hasAngularVelocity=!1,this.dispatchEvent($_)))}return e!==null&&(e.visible=B!==null),E!==null&&(E.visible=i!==null),t!==null&&(t.visible=Q!==null),this}_getHandJoint(A,I){if(A.joints[I.jointName]===void 0){const C=new qB;C.matrixAutoUpdate=!1,C.visible=!1,A.joints[I.jointName]=C,A.add(C)}return A.joints[I.jointName]}}const A1=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,I1=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class g1{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(A,I,C){if(this.texture===null){const B=new Lg,i=A.properties.get(B);i.__webglTexture=I.texture,(I.depthNear!=C.depthNear||I.depthFar!=C.depthFar)&&(this.depthNear=I.depthNear,this.depthFar=I.depthFar),this.texture=B}}render(A,I){if(this.texture!==null){if(this.mesh===null){const C=I.cameras[0].viewport,B=new YC({extensions:{fragDepth:!0},vertexShader:A1,fragmentShader:I1,uniforms:{depthColor:{value:this.texture},depthWidth:{value:C.z},depthHeight:{value:C.w}}});this.mesh=new cg(new pe(20,20),B)}A.render(this.mesh,I)}}reset(){this.texture=null,this.mesh=null}}class C1 extends Me{constructor(A,I){super();const C=this;let B=null,i=1,Q=null,e="local-floor",E=1,t=null,n=null,a=null,r=null,l=null,D=null;const G=new g1,h=I.getContextAttributes();let c=null,y=null;const S=[],k=[],N=new qA;let M=null;const F=new pC;F.layers.enable(1),F.viewport=new yg;const q=new pC;q.layers.enable(2),q.viewport=new yg;const Z=[F,q],U=new bm;U.layers.enable(1),U.layers.enable(2);let K=null,z=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(j){let b=S[j];return b===void 0&&(b=new hy,S[j]=b),b.getTargetRaySpace()},this.getControllerGrip=function(j){let b=S[j];return b===void 0&&(b=new hy,S[j]=b),b.getGripSpace()},this.getHand=function(j){let b=S[j];return b===void 0&&(b=new hy,S[j]=b),b.getHandSpace()};function DA(j){const b=k.indexOf(j.inputSource);if(b===-1)return;const Y=S[b];Y!==void 0&&(Y.update(j.inputSource,j.frame,t||Q),Y.dispatchEvent({type:j.type,data:j.inputSource}))}function X(){B.removeEventListener("select",DA),B.removeEventListener("selectstart",DA),B.removeEventListener("selectend",DA),B.removeEventListener("squeeze",DA),B.removeEventListener("squeezestart",DA),B.removeEventListener("squeezeend",DA),B.removeEventListener("end",X),B.removeEventListener("inputsourceschange",eA);for(let j=0;j=0&&(k[x]=null,S[x].disconnect(Y))}for(let b=0;b=k.length){k.push(Y),x=MA;break}else if(k[MA]===null){k[MA]=Y,x=MA;break}if(x===-1)break}const nA=S[x];nA&&nA.connect(Y)}}const iA=new _,wA=new _;function v(j,b,Y){iA.setFromMatrixPosition(b.matrixWorld),wA.setFromMatrixPosition(Y.matrixWorld);const x=iA.distanceTo(wA),nA=b.projectionMatrix.elements,MA=Y.projectionMatrix.elements,oA=nA[14]/(nA[10]-1),FA=nA[14]/(nA[10]+1),W=(nA[9]+1)/nA[5],UA=(nA[9]-1)/nA[5],tA=(nA[8]-1)/nA[0],hA=(MA[8]+1)/MA[0],GA=oA*tA,bA=oA*hA,EA=x/(-tA+hA),f=EA*-tA;b.matrixWorld.decompose(j.position,j.quaternion,j.scale),j.translateX(f),j.translateZ(EA),j.matrixWorld.compose(j.position,j.quaternion,j.scale),j.matrixWorldInverse.copy(j.matrixWorld).invert();const m=oA+EA,cA=FA+EA,ZA=GA-f,OA=bA+(x-f),YA=W*FA/cA*m,EI=UA*FA/cA*m;j.projectionMatrix.makePerspective(ZA,OA,YA,EI,m,cA),j.projectionMatrixInverse.copy(j.projectionMatrix).invert()}function CA(j,b){b===null?j.matrixWorld.copy(j.matrix):j.matrixWorld.multiplyMatrices(b.matrixWorld,j.matrix),j.matrixWorldInverse.copy(j.matrixWorld).invert()}this.updateCamera=function(j){if(B===null)return;G.texture!==null&&(j.near=G.depthNear,j.far=G.depthFar),U.near=q.near=F.near=j.near,U.far=q.far=F.far=j.far,(K!==U.near||z!==U.far)&&(B.updateRenderState({depthNear:U.near,depthFar:U.far}),K=U.near,z=U.far,F.near=K,F.far=z,q.near=K,q.far=z,F.updateProjectionMatrix(),q.updateProjectionMatrix(),j.updateProjectionMatrix());const b=j.parent,Y=U.cameras;CA(U,b);for(let x=0;x0&&(h.alphaTest.value=c.alphaTest);const y=A.get(c).envMap;if(y&&(h.envMap.value=y,h.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,h.reflectivity.value=c.reflectivity,h.ior.value=c.ior,h.refractionRatio.value=c.refractionRatio),c.lightMap){h.lightMap.value=c.lightMap;const S=g._useLegacyLights===!0?Math.PI:1;h.lightMapIntensity.value=c.lightMapIntensity*S,I(c.lightMap,h.lightMapTransform)}c.aoMap&&(h.aoMap.value=c.aoMap,h.aoMapIntensity.value=c.aoMapIntensity,I(c.aoMap,h.aoMapTransform))}function Q(h,c){h.diffuse.value.copy(c.color),h.opacity.value=c.opacity,c.map&&(h.map.value=c.map,I(c.map,h.mapTransform))}function e(h,c){h.dashSize.value=c.dashSize,h.totalSize.value=c.dashSize+c.gapSize,h.scale.value=c.scale}function E(h,c,y,S){h.diffuse.value.copy(c.color),h.opacity.value=c.opacity,h.size.value=c.size*y,h.scale.value=S*.5,c.map&&(h.map.value=c.map,I(c.map,h.uvTransform)),c.alphaMap&&(h.alphaMap.value=c.alphaMap,I(c.alphaMap,h.alphaMapTransform)),c.alphaTest>0&&(h.alphaTest.value=c.alphaTest)}function t(h,c){h.diffuse.value.copy(c.color),h.opacity.value=c.opacity,h.rotation.value=c.rotation,c.map&&(h.map.value=c.map,I(c.map,h.mapTransform)),c.alphaMap&&(h.alphaMap.value=c.alphaMap,I(c.alphaMap,h.alphaMapTransform)),c.alphaTest>0&&(h.alphaTest.value=c.alphaTest)}function n(h,c){h.specular.value.copy(c.specular),h.shininess.value=Math.max(c.shininess,1e-4)}function a(h,c){c.gradientMap&&(h.gradientMap.value=c.gradientMap)}function r(h,c){h.metalness.value=c.metalness,c.metalnessMap&&(h.metalnessMap.value=c.metalnessMap,I(c.metalnessMap,h.metalnessMapTransform)),h.roughness.value=c.roughness,c.roughnessMap&&(h.roughnessMap.value=c.roughnessMap,I(c.roughnessMap,h.roughnessMapTransform)),A.get(c).envMap&&(h.envMapIntensity.value=c.envMapIntensity)}function l(h,c,y){h.ior.value=c.ior,c.sheen>0&&(h.sheenColor.value.copy(c.sheenColor).multiplyScalar(c.sheen),h.sheenRoughness.value=c.sheenRoughness,c.sheenColorMap&&(h.sheenColorMap.value=c.sheenColorMap,I(c.sheenColorMap,h.sheenColorMapTransform)),c.sheenRoughnessMap&&(h.sheenRoughnessMap.value=c.sheenRoughnessMap,I(c.sheenRoughnessMap,h.sheenRoughnessMapTransform))),c.clearcoat>0&&(h.clearcoat.value=c.clearcoat,h.clearcoatRoughness.value=c.clearcoatRoughness,c.clearcoatMap&&(h.clearcoatMap.value=c.clearcoatMap,I(c.clearcoatMap,h.clearcoatMapTransform)),c.clearcoatRoughnessMap&&(h.clearcoatRoughnessMap.value=c.clearcoatRoughnessMap,I(c.clearcoatRoughnessMap,h.clearcoatRoughnessMapTransform)),c.clearcoatNormalMap&&(h.clearcoatNormalMap.value=c.clearcoatNormalMap,I(c.clearcoatNormalMap,h.clearcoatNormalMapTransform),h.clearcoatNormalScale.value.copy(c.clearcoatNormalScale),c.side===LB&&h.clearcoatNormalScale.value.negate())),c.iridescence>0&&(h.iridescence.value=c.iridescence,h.iridescenceIOR.value=c.iridescenceIOR,h.iridescenceThicknessMinimum.value=c.iridescenceThicknessRange[0],h.iridescenceThicknessMaximum.value=c.iridescenceThicknessRange[1],c.iridescenceMap&&(h.iridescenceMap.value=c.iridescenceMap,I(c.iridescenceMap,h.iridescenceMapTransform)),c.iridescenceThicknessMap&&(h.iridescenceThicknessMap.value=c.iridescenceThicknessMap,I(c.iridescenceThicknessMap,h.iridescenceThicknessMapTransform))),c.transmission>0&&(h.transmission.value=c.transmission,h.transmissionSamplerMap.value=y.texture,h.transmissionSamplerSize.value.set(y.width,y.height),c.transmissionMap&&(h.transmissionMap.value=c.transmissionMap,I(c.transmissionMap,h.transmissionMapTransform)),h.thickness.value=c.thickness,c.thicknessMap&&(h.thicknessMap.value=c.thicknessMap,I(c.thicknessMap,h.thicknessMapTransform)),h.attenuationDistance.value=c.attenuationDistance,h.attenuationColor.value.copy(c.attenuationColor)),c.anisotropy>0&&(h.anisotropyVector.value.set(c.anisotropy*Math.cos(c.anisotropyRotation),c.anisotropy*Math.sin(c.anisotropyRotation)),c.anisotropyMap&&(h.anisotropyMap.value=c.anisotropyMap,I(c.anisotropyMap,h.anisotropyMapTransform))),h.specularIntensity.value=c.specularIntensity,h.specularColor.value.copy(c.specularColor),c.specularColorMap&&(h.specularColorMap.value=c.specularColorMap,I(c.specularColorMap,h.specularColorMapTransform)),c.specularIntensityMap&&(h.specularIntensityMap.value=c.specularIntensityMap,I(c.specularIntensityMap,h.specularIntensityMapTransform))}function D(h,c){c.matcap&&(h.matcap.value=c.matcap)}function G(h,c){const y=A.get(c).light;h.referencePosition.value.setFromMatrixPosition(y.matrixWorld),h.nearDistance.value=y.shadow.camera.near,h.farDistance.value=y.shadow.camera.far}return{refreshFogUniforms:C,refreshMaterialUniforms:B}}function i1(g,A,I,C){let B={},i={},Q=[];const e=I.isWebGL2?g.getParameter(g.MAX_UNIFORM_BUFFER_BINDINGS):0;function E(y,S){const k=S.program;C.uniformBlockBinding(y,k)}function t(y,S){let k=B[y.id];k===void 0&&(D(y),k=n(y),B[y.id]=k,y.addEventListener("dispose",h));const N=S.program;C.updateUBOMapping(y,N);const M=A.render.frame;i[y.id]!==M&&(r(y),i[y.id]=M)}function n(y){const S=a();y.__bindingPointIndex=S;const k=g.createBuffer(),N=y.__size,M=y.usage;return g.bindBuffer(g.UNIFORM_BUFFER,k),g.bufferData(g.UNIFORM_BUFFER,N,M),g.bindBuffer(g.UNIFORM_BUFFER,null),g.bindBufferBase(g.UNIFORM_BUFFER,S,k),k}function a(){for(let y=0;y0&&(k+=N-M),y.__size=k,y.__cache={},this}function G(y){const S={boundary:0,storage:0};return typeof y=="number"||typeof y=="boolean"?(S.boundary=4,S.storage=4):y.isVector2?(S.boundary=8,S.storage=8):y.isVector3||y.isColor?(S.boundary=16,S.storage=12):y.isVector4?(S.boundary=16,S.storage=16):y.isMatrix3?(S.boundary=48,S.storage=48):y.isMatrix4?(S.boundary=64,S.storage=64):y.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",y),S}function h(y){const S=y.target;S.removeEventListener("dispose",h);const k=Q.indexOf(S.__bindingPointIndex);Q.splice(k,1),g.deleteBuffer(B[S.id]),delete B[S.id],delete i[S.id]}function c(){for(const y in B)g.deleteBuffer(B[y]);Q=[],B={},i={}}return{bind:E,update:t,dispose:c}}class Ld{constructor(A={}){const{canvas:I=fm(),context:C=null,depth:B=!0,stencil:i=!0,alpha:Q=!1,antialias:e=!1,premultipliedAlpha:E=!0,preserveDrawingBuffer:t=!1,powerPreference:n="default",failIfMajorPerformanceCaveat:a=!1}=A;this.isWebGLRenderer=!0;let r;C!==null?r=C.getContextAttributes().alpha:r=Q;const l=new Uint32Array(4),D=new Int32Array(4);let G=null,h=null;const c=[],y=[];this.domElement=I,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=cC,this._useLegacyLights=!1,this.toneMapping=KQ,this.toneMappingExposure=1;const S=this;let k=!1,N=0,M=0,F=null,q=-1,Z=null;const U=new yg,K=new yg;let z=null;const DA=new eI(0);let X=0,eA=I.width,iA=I.height,wA=1,v=null,CA=null;const gA=new yg(0,0,eA,iA),SA=new yg(0,0,eA,iA);let NA=!1;const WA=new Wr;let j=!1,b=!1,Y=null;const x=new MI,nA=new qA,MA=new _,oA={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function FA(){return F===null?wA:1}let W=C;function UA(J,V){for(let $=0;${function KA(){if(sA.forEach(function(mA){EA.get(mA).currentProgram.isReady()&&sA.delete(mA)}),sA.size===0){QA(J);return}setTimeout(KA,10)}tA.get("KHR_parallel_shader_compile")!==null?KA():setTimeout(KA,10)})};let rg=null;function jg(J){rg&&rg(J)}function RC(){fg.stop()}function kg(){fg.start()}const fg=new mm;fg.setAnimationLoop(jg),typeof self<"u"&&fg.setContext(self),this.setAnimationLoop=function(J){rg=J,HI.setAnimationLoop(J),J===null?fg.stop():fg.start()},HI.addEventListener("sessionstart",RC),HI.addEventListener("sessionend",kg),this.render=function(J,V){if(V!==void 0&&V.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(k===!0)return;J.matrixWorldAutoUpdate===!0&&J.updateMatrixWorld(),V.parent===null&&V.matrixWorldAutoUpdate===!0&&V.updateMatrixWorld(),HI.enabled===!0&&HI.isPresenting===!0&&(HI.cameraAutoUpdate===!0&&HI.updateCamera(V),V=HI.getCamera()),J.isScene===!0&&J.onBeforeRender(S,J,V,F),h=SI.get(J,y.length),h.init(),y.push(h),x.multiplyMatrices(V.projectionMatrix,V.matrixWorldInverse),WA.setFromProjectionMatrix(x),b=this.localClippingEnabled,j=fI.init(this.clippingPlanes,b),G=sI.get(J,c.length),G.init(),c.push(G),nB(J,V,0,S.sortObjects),G.finish(),S.sortObjects===!0&&G.sort(v,CA),this.info.render.frame++,j===!0&&fI.beginShadows();const $=h.state.shadowsArray;if(PA.render($,J,V),j===!0&&fI.endShadows(),this.info.autoReset===!0&&this.info.reset(),(HI.enabled===!1||HI.isPresenting===!1||HI.hasDepthSensing()===!1)&&bI.render(G,J),h.setupLights(S._useLegacyLights),V.isArrayCamera){const sA=V.cameras;for(let QA=0,KA=sA.length;QA0?h=y[y.length-1]:h=null,c.pop(),c.length>0?G=c[c.length-1]:G=null};function nB(J,V,$,sA){if(J.visible===!1)return;if(J.layers.test(V.layers)){if(J.isGroup)$=J.renderOrder;else if(J.isLOD)J.autoUpdate===!0&&J.update(V);else if(J.isLight)h.pushLight(J),J.castShadow&&h.pushShadow(J);else if(J.isSprite){if(!J.frustumCulled||WA.intersectsSprite(J)){sA&&MA.setFromMatrixPosition(J.matrixWorld).applyMatrix4(x);const mA=YA.update(J),xA=J.material;xA.visible&&G.push(J,mA,xA,$,MA.z,null)}}else if((J.isMesh||J.isLine||J.isPoints)&&(!J.frustumCulled||WA.intersectsObject(J))){const mA=YA.update(J),xA=J.material;if(sA&&(J.boundingSphere!==void 0?(J.boundingSphere===null&&J.computeBoundingSphere(),MA.copy(J.boundingSphere.center)):(mA.boundingSphere===null&&mA.computeBoundingSphere(),MA.copy(mA.boundingSphere.center)),MA.applyMatrix4(J.matrixWorld).applyMatrix4(x)),Array.isArray(xA)){const LA=mA.groups;for(let DI=0,VA=LA.length;DI0&&KC(QA,KA,V,$),sA&&GA.viewport(U.copy(sA)),QA.length>0&&MB(QA,V,$),KA.length>0&&MB(KA,V,$),mA.length>0&&MB(mA,V,$),GA.buffers.depth.setTest(!0),GA.buffers.depth.setMask(!0),GA.buffers.color.setMask(!0),GA.setPolygonOffset(!1)}function KC(J,V,$,sA){if(($.isScene===!0?$.overrideMaterial:null)!==null)return;const KA=hA.isWebGL2;Y===null&&(Y=new MC(1,1,{generateMipmaps:!0,type:tA.has("EXT_color_buffer_half_float")?iB:JQ,minFilter:ti,samples:KA?4:0})),S.getDrawingBufferSize(nA),KA?Y.setSize(nA.x,nA.y):Y.setSize(Kh(nA.x),Kh(nA.y));const mA=S.getRenderTarget();S.setRenderTarget(Y),S.getClearColor(DA),X=S.getClearAlpha(),X<1&&S.setClearColor(16777215,.5),S.clear();const xA=S.toneMapping;S.toneMapping=KQ,MB(J,$,sA),f.updateMultisampleRenderTarget(Y),f.updateRenderTargetMipmap(Y);let LA=!1;for(let DI=0,VA=V.length;DI0),XA=!!$.morphAttributes.position,wI=!!$.morphAttributes.normal,FI=!!$.morphAttributes.color;let RI=KQ;sA.toneMapped&&(F===null||F.isXRRenderTarget===!0)&&(RI=S.toneMapping);const OI=$.morphAttributes.position||$.morphAttributes.normal||$.morphAttributes.color,hI=OI!==void 0?OI.length:0,QI=EA.get(sA),jI=h.state.lights;if(j===!0&&(b===!0||J!==Z)){const fA=J===Z&&sA.id===q;fI.setState(sA,J,fA)}let NI=!1;sA.version===QI.__version?(QI.needsLights&&QI.lightsStateVersion!==jI.state.version||QI.outputColorSpace!==xA||QA.isBatchedMesh&&QI.batching===!1||!QA.isBatchedMesh&&QI.batching===!0||QA.isInstancedMesh&&QI.instancing===!1||!QA.isInstancedMesh&&QI.instancing===!0||QA.isSkinnedMesh&&QI.skinning===!1||!QA.isSkinnedMesh&&QI.skinning===!0||QA.isInstancedMesh&&QI.instancingColor===!0&&QA.instanceColor===null||QA.isInstancedMesh&&QI.instancingColor===!1&&QA.instanceColor!==null||QI.envMap!==LA||sA.fog===!0&&QI.fog!==KA||QI.numClippingPlanes!==void 0&&(QI.numClippingPlanes!==fI.numPlanes||QI.numIntersection!==fI.numIntersection)||QI.vertexAlphas!==DI||QI.vertexTangents!==VA||QI.morphTargets!==XA||QI.morphNormals!==wI||QI.morphColors!==FI||QI.toneMapping!==RI||hA.isWebGL2===!0&&QI.morphTargetsCount!==hI)&&(NI=!0):(NI=!0,QI.__version=sA.version);let TI=QI.currentProgram;NI===!0&&(TI=_I(sA,V,QA));let dg=!1,H=!1,O=!1;const BA=TI.getUniforms(),aA=QI.uniforms;if(GA.useProgram(TI.program)&&(dg=!0,H=!0,O=!0),sA.id!==q&&(q=sA.id,H=!0),dg||Z!==J){BA.setValue(W,"projectionMatrix",J.projectionMatrix),BA.setValue(W,"viewMatrix",J.matrixWorldInverse);const fA=BA.map.cameraPosition;fA!==void 0&&fA.setValue(W,MA.setFromMatrixPosition(J.matrixWorld)),hA.logarithmicDepthBuffer&&BA.setValue(W,"logDepthBufFC",2/(Math.log(J.far+1)/Math.LN2)),(sA.isMeshPhongMaterial||sA.isMeshToonMaterial||sA.isMeshLambertMaterial||sA.isMeshBasicMaterial||sA.isMeshStandardMaterial||sA.isShaderMaterial)&&BA.setValue(W,"isOrthographic",J.isOrthographicCamera===!0),Z!==J&&(Z=J,H=!0,O=!0)}if(QA.isSkinnedMesh){BA.setOptional(W,QA,"bindMatrix"),BA.setOptional(W,QA,"bindMatrixInverse");const fA=QA.skeleton;fA&&(hA.floatVertexTextures?(fA.boneTexture===null&&fA.computeBoneTexture(),BA.setValue(W,"boneTexture",fA.boneTexture,f)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}QA.isBatchedMesh&&(BA.setOptional(W,QA,"batchingTexture"),BA.setValue(W,"batchingTexture",QA._matricesTexture,f));const dA=$.morphAttributes;if((dA.position!==void 0||dA.normal!==void 0||dA.color!==void 0&&hA.isWebGL2===!0)&&LI.update(QA,$,TI),(H||QI.receiveShadow!==QA.receiveShadow)&&(QI.receiveShadow=QA.receiveShadow,BA.setValue(W,"receiveShadow",QA.receiveShadow)),sA.isMeshGouraudMaterial&&sA.envMap!==null&&(aA.envMap.value=LA,aA.flipEnvMap.value=LA.isCubeTexture&&LA.isRenderTargetTexture===!1?-1:1),H&&(BA.setValue(W,"toneMappingExposure",S.toneMappingExposure),QI.needsLights&&P(aA,O),KA&&sA.fog===!0&&CI.refreshFogUniforms(aA,KA),CI.refreshMaterialUniforms(aA,sA,wA,iA,Y),jD.upload(W,bi(QI),aA,f)),sA.isShaderMaterial&&sA.uniformsNeedUpdate===!0&&(jD.upload(W,bi(QI),aA,f),sA.uniformsNeedUpdate=!1),sA.isSpriteMaterial&&BA.setValue(W,"center",QA.center),BA.setValue(W,"modelViewMatrix",QA.modelViewMatrix),BA.setValue(W,"normalMatrix",QA.normalMatrix),BA.setValue(W,"modelMatrix",QA.matrixWorld),sA.isShaderMaterial||sA.isRawShaderMaterial){const fA=sA.uniformsGroups;for(let TA=0,_A=fA.length;TA<_A;TA++)if(hA.isWebGL2){const II=fA[TA];JI.update(II,TI),JI.bind(II,TI)}else console.warn("THREE.WebGLRenderer: Uniform Buffer Objects can only be used with WebGL 2.")}return TI}function P(J,V){J.ambientLightColor.needsUpdate=V,J.lightProbe.needsUpdate=V,J.directionalLights.needsUpdate=V,J.directionalLightShadows.needsUpdate=V,J.pointLights.needsUpdate=V,J.pointLightShadows.needsUpdate=V,J.spotLights.needsUpdate=V,J.spotLightShadows.needsUpdate=V,J.rectAreaLights.needsUpdate=V,J.hemisphereLights.needsUpdate=V}function lA(J){return J.isMeshLambertMaterial||J.isMeshToonMaterial||J.isMeshPhongMaterial||J.isMeshStandardMaterial||J.isShadowMaterial||J.isShaderMaterial&&J.lights===!0}this.getActiveCubeFace=function(){return N},this.getActiveMipmapLevel=function(){return M},this.getRenderTarget=function(){return F},this.setRenderTargetTextures=function(J,V,$){EA.get(J.texture).__webglTexture=V,EA.get(J.depthTexture).__webglTexture=$;const sA=EA.get(J);sA.__hasExternalTextures=!0,sA.__hasExternalTextures&&(sA.__autoAllocateDepthBuffer=$===void 0,sA.__autoAllocateDepthBuffer||tA.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),sA.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(J,V){const $=EA.get(J);$.__webglFramebuffer=V,$.__useDefaultFramebuffer=V===void 0},this.setRenderTarget=function(J,V=0,$=0){F=J,N=V,M=$;let sA=!0,QA=null,KA=!1,mA=!1;if(J){const LA=EA.get(J);LA.__useDefaultFramebuffer!==void 0?(GA.bindFramebuffer(W.FRAMEBUFFER,null),sA=!1):LA.__webglFramebuffer===void 0?f.setupRenderTarget(J):LA.__hasExternalTextures&&f.rebindTextures(J,EA.get(J.texture).__webglTexture,EA.get(J.depthTexture).__webglTexture);const DI=J.texture;(DI.isData3DTexture||DI.isDataArrayTexture||DI.isCompressedArrayTexture)&&(mA=!0);const VA=EA.get(J).__webglFramebuffer;J.isWebGLCubeRenderTarget?(Array.isArray(VA[V])?QA=VA[V][$]:QA=VA[V],KA=!0):hA.isWebGL2&&J.samples>0&&f.useMultisampledRTT(J)===!1?QA=EA.get(J).__webglMultisampledFramebuffer:Array.isArray(VA)?QA=VA[$]:QA=VA,U.copy(J.viewport),K.copy(J.scissor),z=J.scissorTest}else U.copy(gA).multiplyScalar(wA).floor(),K.copy(SA).multiplyScalar(wA).floor(),z=NA;if(GA.bindFramebuffer(W.FRAMEBUFFER,QA)&&hA.drawBuffers&&sA&&GA.drawBuffers(J,QA),GA.viewport(U),GA.scissor(K),GA.setScissorTest(z),KA){const LA=EA.get(J.texture);W.framebufferTexture2D(W.FRAMEBUFFER,W.COLOR_ATTACHMENT0,W.TEXTURE_CUBE_MAP_POSITIVE_X+V,LA.__webglTexture,$)}else if(mA){const LA=EA.get(J.texture),DI=V||0;W.framebufferTextureLayer(W.FRAMEBUFFER,W.COLOR_ATTACHMENT0,LA.__webglTexture,$||0,DI)}q=-1},this.readRenderTargetPixels=function(J,V,$,sA,QA,KA,mA){if(!(J&&J.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let xA=EA.get(J).__webglFramebuffer;if(J.isWebGLCubeRenderTarget&&mA!==void 0&&(xA=xA[mA]),xA){GA.bindFramebuffer(W.FRAMEBUFFER,xA);try{const LA=J.texture,DI=LA.format,VA=LA.type;if(DI!==yB&&aI.convert(DI)!==W.getParameter(W.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const XA=VA===iB&&(tA.has("EXT_color_buffer_half_float")||hA.isWebGL2&&tA.has("EXT_color_buffer_float"));if(VA!==JQ&&aI.convert(VA)!==W.getParameter(W.IMPLEMENTATION_COLOR_READ_TYPE)&&!(VA===sC&&(hA.isWebGL2||tA.has("OES_texture_float")||tA.has("WEBGL_color_buffer_float")))&&!XA){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}V>=0&&V<=J.width-sA&&$>=0&&$<=J.height-QA&&W.readPixels(V,$,sA,QA,aI.convert(DI),aI.convert(VA),KA)}finally{const LA=F!==null?EA.get(F).__webglFramebuffer:null;GA.bindFramebuffer(W.FRAMEBUFFER,LA)}}},this.copyFramebufferToTexture=function(J,V,$=0){const sA=Math.pow(2,-$),QA=Math.floor(V.image.width*sA),KA=Math.floor(V.image.height*sA);f.setTexture2D(V,0),W.copyTexSubImage2D(W.TEXTURE_2D,$,0,0,J.x,J.y,QA,KA),GA.unbindTexture()},this.copyTextureToTexture=function(J,V,$,sA=0){const QA=V.image.width,KA=V.image.height,mA=aI.convert($.format),xA=aI.convert($.type);f.setTexture2D($,0),W.pixelStorei(W.UNPACK_FLIP_Y_WEBGL,$.flipY),W.pixelStorei(W.UNPACK_PREMULTIPLY_ALPHA_WEBGL,$.premultiplyAlpha),W.pixelStorei(W.UNPACK_ALIGNMENT,$.unpackAlignment),V.isDataTexture?W.texSubImage2D(W.TEXTURE_2D,sA,J.x,J.y,QA,KA,mA,xA,V.image.data):V.isCompressedTexture?W.compressedTexSubImage2D(W.TEXTURE_2D,sA,J.x,J.y,V.mipmaps[0].width,V.mipmaps[0].height,mA,V.mipmaps[0].data):W.texSubImage2D(W.TEXTURE_2D,sA,J.x,J.y,mA,xA,V.image),sA===0&&$.generateMipmaps&&W.generateMipmap(W.TEXTURE_2D),GA.unbindTexture()},this.copyTextureToTexture3D=function(J,V,$,sA,QA=0){if(S.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const KA=J.max.x-J.min.x+1,mA=J.max.y-J.min.y+1,xA=J.max.z-J.min.z+1,LA=aI.convert(sA.format),DI=aI.convert(sA.type);let VA;if(sA.isData3DTexture)f.setTexture3D(sA,0),VA=W.TEXTURE_3D;else if(sA.isDataArrayTexture||sA.isCompressedArrayTexture)f.setTexture2DArray(sA,0),VA=W.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}W.pixelStorei(W.UNPACK_FLIP_Y_WEBGL,sA.flipY),W.pixelStorei(W.UNPACK_PREMULTIPLY_ALPHA_WEBGL,sA.premultiplyAlpha),W.pixelStorei(W.UNPACK_ALIGNMENT,sA.unpackAlignment);const XA=W.getParameter(W.UNPACK_ROW_LENGTH),wI=W.getParameter(W.UNPACK_IMAGE_HEIGHT),FI=W.getParameter(W.UNPACK_SKIP_PIXELS),RI=W.getParameter(W.UNPACK_SKIP_ROWS),OI=W.getParameter(W.UNPACK_SKIP_IMAGES),hI=$.isCompressedTexture?$.mipmaps[QA]:$.image;W.pixelStorei(W.UNPACK_ROW_LENGTH,hI.width),W.pixelStorei(W.UNPACK_IMAGE_HEIGHT,hI.height),W.pixelStorei(W.UNPACK_SKIP_PIXELS,J.min.x),W.pixelStorei(W.UNPACK_SKIP_ROWS,J.min.y),W.pixelStorei(W.UNPACK_SKIP_IMAGES,J.min.z),$.isDataTexture||$.isData3DTexture?W.texSubImage3D(VA,QA,V.x,V.y,V.z,KA,mA,xA,LA,DI,hI.data):$.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),W.compressedTexSubImage3D(VA,QA,V.x,V.y,V.z,KA,mA,xA,LA,hI.data)):W.texSubImage3D(VA,QA,V.x,V.y,V.z,KA,mA,xA,LA,DI,hI),W.pixelStorei(W.UNPACK_ROW_LENGTH,XA),W.pixelStorei(W.UNPACK_IMAGE_HEIGHT,wI),W.pixelStorei(W.UNPACK_SKIP_PIXELS,FI),W.pixelStorei(W.UNPACK_SKIP_ROWS,RI),W.pixelStorei(W.UNPACK_SKIP_IMAGES,OI),QA===0&&sA.generateMipmaps&&W.generateMipmap(VA),GA.unbindTexture()},this.initTexture=function(J){J.isCubeTexture?f.setTextureCube(J,0):J.isData3DTexture?f.setTexture3D(J,0):J.isDataArrayTexture||J.isCompressedArrayTexture?f.setTexture2DArray(J,0):f.setTexture2D(J,0),GA.unbindTexture()},this.resetState=function(){N=0,M=0,F=null,GA.reset(),UI.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return FQ}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(A){this._outputColorSpace=A;const I=this.getContext();I.drawingBufferColorSpace=A===hw?"display-p3":"srgb",I.unpackColorSpace=Rg.workingColorSpace===_r?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===cC?fE:Md}set outputEncoding(A){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=A===fE?cC:LQ}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(A){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=A}}class Om extends Ld{}Om.prototype.isWebGL1Renderer=!0;class kw{constructor(A,I=25e-5){this.isFogExp2=!0,this.name="",this.color=new eI(A),this.density=I}clone(){return new kw(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class dw{constructor(A,I=1,C=1e3){this.isFog=!0,this.name="",this.color=new eI(A),this.near=I,this.far=C}clone(){return new dw(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Eo extends ng{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(A,I){return super.copy(A,I),A.background!==null&&(this.background=A.background.clone()),A.environment!==null&&(this.environment=A.environment.clone()),A.fog!==null&&(this.fog=A.fog.clone()),this.backgroundBlurriness=A.backgroundBlurriness,this.backgroundIntensity=A.backgroundIntensity,A.overrideMaterial!==null&&(this.overrideMaterial=A.overrideMaterial.clone()),this.matrixAutoUpdate=A.matrixAutoUpdate,this}toJSON(A){const I=super.toJSON(A);return this.fog!==null&&(I.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(I.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(I.object.backgroundIntensity=this.backgroundIntensity),I}}class jr{constructor(A,I){this.isInterleavedBuffer=!0,this.array=A,this.stride=I,this.count=A!==void 0?A.length/I:0,this.usage=yr,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=si()}onUploadCallback(){}set needsUpdate(A){A===!0&&this.version++}get updateRange(){return zt("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(A){return this.usage=A,this}addUpdateRange(A,I){this.updateRanges.push({start:A,count:I})}clearUpdateRanges(){this.updateRanges.length=0}copy(A){return this.array=new A.array.constructor(A.array),this.count=A.count,this.stride=A.stride,this.usage=A.usage,this}copyAt(A,I,C){A*=this.stride,C*=I.stride;for(let B=0,i=this.stride;BA.far||I.push({distance:E,point:Ca.clone(),uv:_B.getInterpolation(Ca,vc,ia,bc,xF,wy,vF,new qA),face:null,object:this})}copy(A,I){return super.copy(A,I),A.center!==void 0&&this.center.copy(A.center),this.material=A.material,this}}function Oc(g,A,I,C,B,i){Cn.subVectors(g,I).addScalar(.5).multiply(C),B!==void 0?(Ba.x=i*Cn.x-B*Cn.y,Ba.y=B*Cn.x+i*Cn.y):Ba.copy(Cn),g.copy(A),g.x+=Ba.x,g.y+=Ba.y,g.applyMatrix4(_m)}const _c=new _,bF=new _;class Pm extends ng{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(A){super.copy(A,!1);const I=A.levels;for(let C=0,B=I.length;C0){let C,B;for(C=1,B=I.length;C0){_c.setFromMatrixPosition(this.matrixWorld);const B=A.ray.origin.distanceTo(_c);this.getObjectForDistance(B).raycast(A,I)}}update(A){const I=this.levels;if(I.length>1){_c.setFromMatrixPosition(A.matrixWorld),bF.setFromMatrixPosition(this.matrixWorld);const C=_c.distanceTo(bF)/A.zoom;I[0].object.visible=!0;let B,i;for(B=1,i=I.length;B=Q)I[B-1].object.visible=!1,I[B].object.visible=!0;else break}for(this._currentLevel=B-1;B=C.length&&C.push({start:-1,count:-1,z:-1});const i=C[this.index];B.push(i),this.index++,i.start=A.start,i.count=A.count,i.z=I}reset(){this.list.length=0,this.index=0}}const Qn="batchId",gE=new MI,zF=new MI,s1=new MI,$F=new MI,yy=new Wr,Wc=new aC,St=new xC,Ea=new _,uy=new n1,SB=new cg,jc=[];function a1(g,A,I=0){const C=A.itemSize;if(g.isInterleavedBufferAttribute||g.array.constructor!==A.array.constructor){const B=g.count;for(let i=0;i65536?new Uint32Array(i):new Uint16Array(i);I.setIndex(new Ag(e,1))}const Q=B>65536?new Uint32Array(C):new Uint16Array(C);I.setAttribute(Qn,new Ag(Q,1)),this._geometryInitialized=!0}}_validateGeometry(A){if(A.getAttribute(Qn))throw new Error(`BatchedMesh: Geometry cannot use attribute "${Qn}"`);const I=this.geometry;if(!!A.getIndex()!=!!I.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const C in I.attributes){if(C===Qn)continue;if(!A.hasAttribute(C))throw new Error(`BatchedMesh: Added geometry missing "${C}". All geometries must have consistent attributes.`);const B=A.getAttribute(C),i=I.getAttribute(C);if(B.itemSize!==i.itemSize||B.normalized!==i.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(A){return this.customSort=A,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new aC);const A=this._geometryCount,I=this.boundingBox,C=this._active;I.makeEmpty();for(let B=0;B=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const B={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let i=null;const Q=this._reservedRanges,e=this._drawRanges,E=this._bounds;this._geometryCount!==0&&(i=Q[Q.length-1]),I===-1?B.vertexCount=A.getAttribute("position").count:B.vertexCount=I,i===null?B.vertexStart=0:B.vertexStart=i.vertexStart+i.vertexCount;const t=A.getIndex(),n=t!==null;if(n&&(C===-1?B.indexCount=t.count:B.indexCount=C,i===null?B.indexStart=0:B.indexStart=i.indexStart+i.indexCount),B.indexStart!==-1&&B.indexStart+B.indexCount>this._maxIndexCount||B.vertexStart+B.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const a=this._visibility,r=this._active,l=this._matricesTexture,D=this._matricesTexture.image.data;a.push(!0),r.push(!0);const G=this._geometryCount;this._geometryCount++,s1.toArray(D,G*16),l.needsUpdate=!0,Q.push(B),e.push({start:n?B.indexStart:B.vertexStart,count:-1}),E.push({boxInitialized:!1,box:new aC,sphereInitialized:!1,sphere:new xC});const h=this.geometry.getAttribute(Qn);for(let c=0;c=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(I);const C=this.geometry,B=C.getIndex()!==null,i=C.getIndex(),Q=I.getIndex(),e=this._reservedRanges[A];if(B&&Q.count>e.indexCount||I.attributes.position.count>e.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const E=e.vertexStart,t=e.vertexCount;for(const l in C.attributes){if(l===Qn)continue;const D=I.getAttribute(l),G=C.getAttribute(l);a1(D,G,E);const h=D.itemSize;for(let c=D.count,y=t;c=I.length||I[A]===!1?this:(I[A]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(A,I){if(this._active[A]===!1)return null;const B=this._bounds[A],i=B.box,Q=this.geometry;if(B.boxInitialized===!1){i.makeEmpty();const e=Q.index,E=Q.attributes.position,t=this._drawRanges[A];for(let n=t.start,a=t.start+t.count;n=Q||C[A]===!1?this:(I.toArray(i,A*16),B.needsUpdate=!0,this)}getMatrixAt(A,I){const C=this._active,B=this._matricesTexture.image.data,i=this._geometryCount;return A>=i||C[A]===!1?null:I.fromArray(B,A*16)}setVisibleAt(A,I){const C=this._visibility,B=this._active,i=this._geometryCount;return A>=i||B[A]===!1||C[A]===I?this:(C[A]=I,this._visibilityChanged=!0,this)}getVisibleAt(A){const I=this._visibility,C=this._active,B=this._geometryCount;return A>=B||C[A]===!1?!1:I[A]}raycast(A,I){const C=this._visibility,B=this._active,i=this._drawRanges,Q=this._geometryCount,e=this.matrixWorld,E=this.geometry;SB.material=this.material,SB.geometry.index=E.index,SB.geometry.attributes=E.attributes,SB.geometry.boundingBox===null&&(SB.geometry.boundingBox=new aC),SB.geometry.boundingSphere===null&&(SB.geometry.boundingSphere=new xC);for(let t=0;t({...I})),this._reservedRanges=A._reservedRanges.map(I=>({...I})),this._visibility=A._visibility.slice(),this._active=A._active.slice(),this._bounds=A._bounds.map(I=>({boxInitialized:I.boxInitialized,box:I.box.clone(),sphereInitialized:I.sphereInitialized,sphere:I.sphere.clone()})),this._maxGeometryCount=A._maxGeometryCount,this._maxVertexCount=A._maxVertexCount,this._maxIndexCount=A._maxIndexCount,this._geometryInitialized=A._geometryInitialized,this._geometryCount=A._geometryCount,this._multiDrawCounts=A._multiDrawCounts.slice(),this._multiDrawStarts=A._multiDrawStarts.slice(),this._matricesTexture=A._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(A,I,C,B,i){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const Q=B.getIndex(),e=Q===null?1:Q.array.BYTES_PER_ELEMENT,E=this._active,t=this._visibility,n=this._multiDrawStarts,a=this._multiDrawCounts,r=this._drawRanges,l=this.perObjectFrustumCulled;l&&($F.multiplyMatrices(C.projectionMatrix,C.matrixWorldInverse).multiply(this.matrixWorld),yy.setFromProjectionMatrix($F,A.coordinateSystem));let D=0;if(this.sortObjects){zF.copy(this.matrixWorld).invert(),Ea.setFromMatrixPosition(C.matrixWorld).applyMatrix4(zF);for(let c=0,y=t.length;cE)continue;r.applyMatrix4(this.matrixWorld);const q=A.ray.origin.distanceTo(r);qA.far||I.push({distance:q,point:a.clone().applyMatrix4(this.matrixWorld),index:S,face:null,faceIndex:null,object:this})}}else{const c=Math.max(0,Q.start),y=Math.min(h.count,Q.start+Q.count);for(let S=c,k=y-1;SE)continue;r.applyMatrix4(this.matrixWorld);const M=A.ray.origin.distanceTo(r);MA.far||I.push({distance:M,point:a.clone().applyMatrix4(this.matrixWorld),index:S,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const I=this.geometry.morphAttributes,C=Object.keys(I);if(C.length>0){const B=I[C[0]];if(B!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,Q=B.length;i0){const B=I[C[0]];if(B!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,Q=B.length;iB.far)return;i.push({distance:t,distanceToRay:Math.sqrt(e),point:E,index:A,face:null,object:Q})}}class r1 extends Lg{constructor(A,I,C,B,i,Q,e,E,t){super(A,I,C,B,i,Q,e,E,t),this.isVideoTexture=!0,this.minFilter=Q!==void 0?Q:Sg,this.magFilter=i!==void 0?i:Sg,this.generateMipmaps=!1;const n=this;function a(){n.needsUpdate=!0,A.requestVideoFrameCallback(a)}"requestVideoFrameCallback"in A&&A.requestVideoFrameCallback(a)}clone(){return new this.constructor(this.image).copy(this)}update(){const A=this.image;"requestVideoFrameCallback"in A===!1&&A.readyState>=A.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class l1 extends Lg{constructor(A,I){super({width:A,height:I}),this.isFramebufferTexture=!0,this.magFilter=og,this.minFilter=og,this.generateMipmaps=!1,this.needsUpdate=!0}}class Uw extends Lg{constructor(A,I,C,B,i,Q,e,E,t,n,a,r){super(null,Q,e,E,t,n,B,i,a,r),this.isCompressedTexture=!0,this.image={width:I,height:C},this.mipmaps=A,this.flipY=!1,this.generateMipmaps=!1}}class c1 extends Uw{constructor(A,I,C,B,i,Q){super(A,I,C,i,Q),this.isCompressedArrayTexture=!0,this.image.depth=B,this.wrapR=BB}}class D1 extends Uw{constructor(A,I,C){super(void 0,A[0].width,A[0].height,I,C,mQ),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=A}}class h1 extends Lg{constructor(A,I,C,B,i,Q,e,E,t){super(A,I,C,B,i,Q,e,E,t),this.isCanvasTexture=!0,this.needsUpdate=!0}}class sQ{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(A,I){const C=this.getUtoTmapping(A);return this.getPoint(C,I)}getPoints(A=5){const I=[];for(let C=0;C<=A;C++)I.push(this.getPoint(C/A));return I}getSpacedPoints(A=5){const I=[];for(let C=0;C<=A;C++)I.push(this.getPointAt(C/A));return I}getLength(){const A=this.getLengths();return A[A.length-1]}getLengths(A=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===A+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const I=[];let C,B=this.getPoint(0),i=0;I.push(0);for(let Q=1;Q<=A;Q++)C=this.getPoint(Q/A),i+=C.distanceTo(B),I.push(i),B=C;return this.cacheArcLengths=I,I}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(A,I){const C=this.getLengths();let B=0;const i=C.length;let Q;I?Q=I:Q=A*C[i-1];let e=0,E=i-1,t;for(;e<=E;)if(B=Math.floor(e+(E-e)/2),t=C[B]-Q,t<0)e=B+1;else if(t>0)E=B-1;else{E=B;break}if(B=E,C[B]===Q)return B/(i-1);const n=C[B],r=C[B+1]-n,l=(Q-n)/r;return(B+l)/(i-1)}getTangent(A,I){let B=A-1e-4,i=A+1e-4;B<0&&(B=0),i>1&&(i=1);const Q=this.getPoint(B),e=this.getPoint(i),E=I||(Q.isVector2?new qA:new _);return E.copy(e).sub(Q).normalize(),E}getTangentAt(A,I){const C=this.getUtoTmapping(A);return this.getTangent(C,I)}computeFrenetFrames(A,I){const C=new _,B=[],i=[],Q=[],e=new _,E=new MI;for(let l=0;l<=A;l++){const D=l/A;B[l]=this.getTangentAt(D,new _)}i[0]=new _,Q[0]=new _;let t=Number.MAX_VALUE;const n=Math.abs(B[0].x),a=Math.abs(B[0].y),r=Math.abs(B[0].z);n<=t&&(t=n,C.set(1,0,0)),a<=t&&(t=a,C.set(0,1,0)),r<=t&&C.set(0,0,1),e.crossVectors(B[0],C).normalize(),i[0].crossVectors(B[0],e),Q[0].crossVectors(B[0],i[0]);for(let l=1;l<=A;l++){if(i[l]=i[l-1].clone(),Q[l]=Q[l-1].clone(),e.crossVectors(B[l-1],B[l]),e.length()>Number.EPSILON){e.normalize();const D=Math.acos(nC(B[l-1].dot(B[l]),-1,1));i[l].applyMatrix4(E.makeRotationAxis(e,D))}Q[l].crossVectors(B[l],i[l])}if(I===!0){let l=Math.acos(nC(i[0].dot(i[A]),-1,1));l/=A,B[0].dot(e.crossVectors(i[0],i[A]))>0&&(l=-l);for(let D=1;D<=A;D++)i[D].applyMatrix4(E.makeRotationAxis(B[D],l*D)),Q[D].crossVectors(B[D],i[D])}return{tangents:B,normals:i,binormals:Q}}clone(){return new this.constructor().copy(this)}copy(A){return this.arcLengthDivisions=A.arcLengthDivisions,this}toJSON(){const A={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return A.arcLengthDivisions=this.arcLengthDivisions,A.type=this.type,A}fromJSON(A){return this.arcLengthDivisions=A.arcLengthDivisions,this}}class Nw extends sQ{constructor(A=0,I=0,C=1,B=1,i=0,Q=Math.PI*2,e=!1,E=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=A,this.aY=I,this.xRadius=C,this.yRadius=B,this.aStartAngle=i,this.aEndAngle=Q,this.aClockwise=e,this.aRotation=E}getPoint(A,I){const C=I||new qA,B=Math.PI*2;let i=this.aEndAngle-this.aStartAngle;const Q=Math.abs(i)B;)i-=B;i0?0:(Math.floor(Math.abs(e)/i)+1)*i:E===0&&e===i-1&&(e=i-2,E=1);let t,n;this.closed||e>0?t=B[(e-1)%i]:($c.subVectors(B[0],B[1]).add(B[0]),t=$c);const a=B[e%i],r=B[(e+1)%i];if(this.closed||e+2B.length-2?B.length-1:Q+1],a=B[Q>B.length-3?B.length-1:Q+2];return C.set(Ef(e,E.x,t.x,n.x,a.x),Ef(e,E.y,t.y,n.y,a.y)),C}copy(A){super.copy(A),this.points=[];for(let I=0,C=A.points.length;I=C){const Q=B[i]-C,e=this.curves[i],E=e.getLength(),t=E===0?0:1-Q/E;return e.getPointAt(t,I)}i++}return null}getLength(){const A=this.getCurveLengths();return A[A.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const A=[];let I=0;for(let C=0,B=this.curves.length;C1&&!I[I.length-1].equals(I[0])&&I.push(I[0]),I}copy(A){super.copy(A),this.curves=[];for(let I=0,C=A.curves.length;I0){const a=t.getPoint(0);a.equals(this.currentPoint)||this.lineTo(a.x,a.y)}this.curves.push(t);const n=t.getPoint(1);return this.currentPoint.copy(n),this}copy(A){return super.copy(A),this.currentPoint.copy(A.currentPoint),this}toJSON(){const A=super.toJSON();return A.currentPoint=this.currentPoint.toArray(),A}fromJSON(A){return super.fromJSON(A),this.currentPoint.fromArray(A.currentPoint),this}}class Xr extends WI{constructor(A=[new qA(0,-.5),new qA(.5,0),new qA(0,.5)],I=12,C=0,B=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:A,segments:I,phiStart:C,phiLength:B},I=Math.floor(I),B=nC(B,0,Math.PI*2);const i=[],Q=[],e=[],E=[],t=[],n=1/I,a=new _,r=new qA,l=new _,D=new _,G=new _;let h=0,c=0;for(let y=0;y<=A.length-1;y++)switch(y){case 0:h=A[y+1].x-A[y].x,c=A[y+1].y-A[y].y,l.x=c*1,l.y=-h,l.z=c*0,G.copy(l),l.normalize(),E.push(l.x,l.y,l.z);break;case A.length-1:E.push(G.x,G.y,G.z);break;default:h=A[y+1].x-A[y].x,c=A[y+1].y-A[y].y,l.x=c*1,l.y=-h,l.z=c*0,D.copy(l),l.x+=G.x,l.y+=G.y,l.z+=G.z,l.normalize(),E.push(l.x,l.y,l.z),G.copy(D)}for(let y=0;y<=I;y++){const S=C+y*n*B,k=Math.sin(S),N=Math.cos(S);for(let M=0;M<=A.length-1;M++){a.x=A[M].x*k,a.y=A[M].y,a.z=A[M].x*N,Q.push(a.x,a.y,a.z),r.x=y/I,r.y=M/(A.length-1),e.push(r.x,r.y);const F=E[3*M+0]*k,q=E[3*M+1],Z=E[3*M+0]*N;t.push(F,q,Z)}}for(let y=0;y0&&S(!0),I>0&&S(!1)),this.setIndex(n),this.setAttribute("position",new GI(a,3)),this.setAttribute("normal",new GI(r,3)),this.setAttribute("uv",new GI(l,2));function y(){const k=new _,N=new _;let M=0;const F=(I-A)/C;for(let q=0;q<=i;q++){const Z=[],U=q/i,K=U*(I-A)+A;for(let z=0;z<=B;z++){const DA=z/B,X=DA*E+e,eA=Math.sin(X),iA=Math.cos(X);N.x=K*eA,N.y=-U*C+h,N.z=K*iA,a.push(N.x,N.y,N.z),k.set(eA,F,iA).normalize(),r.push(k.x,k.y,k.z),l.push(DA,1-U),Z.push(D++)}G.push(Z)}for(let q=0;q.9&&F<.1&&(S<.2&&(Q[y+0]+=1),k<.2&&(Q[y+2]+=1),N<.2&&(Q[y+4]+=1))}}function r(y){i.push(y.x,y.y,y.z)}function l(y,S){const k=y*3;S.x=A[k+0],S.y=A[k+1],S.z=A[k+2]}function D(){const y=new _,S=new _,k=new _,N=new _,M=new qA,F=new qA,q=new qA;for(let Z=0,U=0;Z80*I){e=t=g[0],E=n=g[1];for(let D=I;Dt&&(t=a),r>n&&(n=r);l=Math.max(t-e,n-E),l=l!==0?32767/l:0}return dr(i,Q,I,e,E,l,0),Q}};function IL(g,A,I,C,B){let i,Q;if(B===v1(g,A,I,C)>0)for(i=A;i=A;i-=C)Q=tf(i,g[i],g[i+1],Q);return Q&&Jw(Q,Q.next)&&(pr(Q),Q=Q.next),Q}function to(g,A){if(!g)return g;A||(A=g);let I=g,C;do if(C=!1,!I.steiner&&(Jw(I,I.next)||CC(I.prev,I,I.next)===0)){if(pr(I),I=A=I.prev,I===I.next)break;C=!0}else I=I.next;while(C||I!==A);return A}function dr(g,A,I,C,B,i,Q){if(!g)return;!Q&&i&&m1(g,C,B,i);let e=g,E,t;for(;g.prev!==g.next;){if(E=g.prev,t=g.next,i?U1(g,C,B,i):p1(g)){A.push(E.i/I|0),A.push(g.i/I|0),A.push(t.i/I|0),pr(g),g=t.next,e=t.next;continue}if(g=t,g===e){Q?Q===1?(g=N1(to(g),A,I),dr(g,A,I,C,B,i,2)):Q===2&&F1(g,A,I,C,B,i):dr(to(g),A,I,C,B,i,1);break}}}function p1(g){const A=g.prev,I=g,C=g.next;if(CC(A,I,C)>=0)return!1;const B=A.x,i=I.x,Q=C.x,e=A.y,E=I.y,t=C.y,n=Bi?B>Q?B:Q:i>Q?i:Q,l=e>E?e>t?e:t:E>t?E:t;let D=C.next;for(;D!==A;){if(D.x>=n&&D.x<=r&&D.y>=a&&D.y<=l&&Rn(B,e,i,E,Q,t,D.x,D.y)&&CC(D.prev,D,D.next)>=0)return!1;D=D.next}return!0}function U1(g,A,I,C){const B=g.prev,i=g,Q=g.next;if(CC(B,i,Q)>=0)return!1;const e=B.x,E=i.x,t=Q.x,n=B.y,a=i.y,r=Q.y,l=eE?e>t?e:t:E>t?E:t,h=n>a?n>r?n:r:a>r?a:r,c=_u(l,D,A,I,C),y=_u(G,h,A,I,C);let S=g.prevZ,k=g.nextZ;for(;S&&S.z>=c&&k&&k.z<=y;){if(S.x>=l&&S.x<=G&&S.y>=D&&S.y<=h&&S!==B&&S!==Q&&Rn(e,n,E,a,t,r,S.x,S.y)&&CC(S.prev,S,S.next)>=0||(S=S.prevZ,k.x>=l&&k.x<=G&&k.y>=D&&k.y<=h&&k!==B&&k!==Q&&Rn(e,n,E,a,t,r,k.x,k.y)&&CC(k.prev,k,k.next)>=0))return!1;k=k.nextZ}for(;S&&S.z>=c;){if(S.x>=l&&S.x<=G&&S.y>=D&&S.y<=h&&S!==B&&S!==Q&&Rn(e,n,E,a,t,r,S.x,S.y)&&CC(S.prev,S,S.next)>=0)return!1;S=S.prevZ}for(;k&&k.z<=y;){if(k.x>=l&&k.x<=G&&k.y>=D&&k.y<=h&&k!==B&&k!==Q&&Rn(e,n,E,a,t,r,k.x,k.y)&&CC(k.prev,k,k.next)>=0)return!1;k=k.nextZ}return!0}function N1(g,A,I){let C=g;do{const B=C.prev,i=C.next.next;!Jw(B,i)&&gL(B,C,C.next,i)&&Mr(B,i)&&Mr(i,B)&&(A.push(B.i/I|0),A.push(C.i/I|0),A.push(i.i/I|0),pr(C),pr(C.next),C=g=i),C=C.next}while(C!==g);return to(C)}function F1(g,A,I,C,B,i){let Q=g;do{let e=Q.next.next;for(;e!==Q.prev;){if(Q.i!==e.i&&H1(Q,e)){let E=CL(Q,e);Q=to(Q,Q.next),E=to(E,E.next),dr(Q,A,I,C,B,i,0),dr(E,A,I,C,B,i,0);return}e=e.next}Q=Q.next}while(Q!==g)}function f1(g,A,I,C){const B=[];let i,Q,e,E,t;for(i=0,Q=A.length;i=I.next.y&&I.next.y!==I.y){const r=I.x+(Q-I.y)*(I.next.x-I.x)/(I.next.y-I.y);if(r<=i&&r>C&&(C=r,B=I.x=I.x&&I.x>=E&&i!==I.x&&Rn(QB.x||I.x===B.x&&q1(B,I)))&&(B=I,n=a)),I=I.next;while(I!==e);return B}function q1(g,A){return CC(g.prev,g,A.prev)<0&&CC(A.next,g,g.next)<0}function m1(g,A,I,C){let B=g;do B.z===0&&(B.z=_u(B.x,B.y,A,I,C)),B.prevZ=B.prev,B.nextZ=B.next,B=B.next;while(B!==g);B.prevZ.nextZ=null,B.prevZ=null,L1(B)}function L1(g){let A,I,C,B,i,Q,e,E,t=1;do{for(I=g,g=null,i=null,Q=0;I;){for(Q++,C=I,e=0,A=0;A0||E>0&&C;)e!==0&&(E===0||!C||I.z<=C.z)?(B=I,I=I.nextZ,e--):(B=C,C=C.nextZ,E--),i?i.nextZ=B:g=B,B.prevZ=i,i=B;I=C}i.nextZ=null,t*=2}while(Q>1);return g}function _u(g,A,I,C,B){return g=(g-I)*B|0,A=(A-C)*B|0,g=(g|g<<8)&16711935,g=(g|g<<4)&252645135,g=(g|g<<2)&858993459,g=(g|g<<1)&1431655765,A=(A|A<<8)&16711935,A=(A|A<<4)&252645135,A=(A|A<<2)&858993459,A=(A|A<<1)&1431655765,g|A<<1}function Y1(g){let A=g,I=g;do(A.x=(g-Q)*(i-e)&&(g-Q)*(C-e)>=(I-Q)*(A-e)&&(I-Q)*(i-e)>=(B-Q)*(C-e)}function H1(g,A){return g.next.i!==A.i&&g.prev.i!==A.i&&!T1(g,A)&&(Mr(g,A)&&Mr(A,g)&&x1(g,A)&&(CC(g.prev,g,A.prev)||CC(g,A.prev,A))||Jw(g,A)&&CC(g.prev,g,g.next)>0&&CC(A.prev,A,A.next)>0)}function CC(g,A,I){return(A.y-g.y)*(I.x-A.x)-(A.x-g.x)*(I.y-A.y)}function Jw(g,A){return g.x===A.x&&g.y===A.y}function gL(g,A,I,C){const B=BD(CC(g,A,I)),i=BD(CC(g,A,C)),Q=BD(CC(I,C,g)),e=BD(CC(I,C,A));return!!(B!==i&&Q!==e||B===0&&CD(g,I,A)||i===0&&CD(g,C,A)||Q===0&&CD(I,g,C)||e===0&&CD(I,A,C))}function CD(g,A,I){return A.x<=Math.max(g.x,I.x)&&A.x>=Math.min(g.x,I.x)&&A.y<=Math.max(g.y,I.y)&&A.y>=Math.min(g.y,I.y)}function BD(g){return g>0?1:g<0?-1:0}function T1(g,A){let I=g;do{if(I.i!==g.i&&I.next.i!==g.i&&I.i!==A.i&&I.next.i!==A.i&&gL(I,I.next,g,A))return!0;I=I.next}while(I!==g);return!1}function Mr(g,A){return CC(g.prev,g,g.next)<0?CC(g,A,g.next)>=0&&CC(g,g.prev,A)>=0:CC(g,A,g.prev)<0||CC(g,g.next,A)<0}function x1(g,A){let I=g,C=!1;const B=(g.x+A.x)/2,i=(g.y+A.y)/2;do I.y>i!=I.next.y>i&&I.next.y!==I.y&&B<(I.next.x-I.x)*(i-I.y)/(I.next.y-I.y)+I.x&&(C=!C),I=I.next;while(I!==g);return C}function CL(g,A){const I=new Zu(g.i,g.x,g.y),C=new Zu(A.i,A.x,A.y),B=g.next,i=A.prev;return g.next=A,A.prev=g,I.next=B,B.prev=I,C.next=I,I.prev=C,i.next=C,C.prev=i,C}function tf(g,A,I,C){const B=new Zu(g,A,I);return C?(B.next=C.next,B.prev=C,C.next.prev=B,C.next=B):(B.prev=B,B.next=B),B}function pr(g){g.next.prev=g.prev,g.prev.next=g.next,g.prevZ&&(g.prevZ.nextZ=g.nextZ),g.nextZ&&(g.nextZ.prevZ=g.prevZ)}function Zu(g,A,I){this.i=g,this.x=A,this.y=I,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function v1(g,A,I,C){let B=0;for(let i=A,Q=I-C;i2&&g[A-1].equals(g[0])&&g.pop()}function nf(g,A){for(let I=0;INumber.EPSILON){const YA=Math.sqrt(ZA),EI=Math.sqrt(m*m+cA*cA),CI=UA.x-f/YA,sI=UA.y+EA/YA,SI=tA.x-cA/EI,fI=tA.y+m/EI,PA=((SI-CI)*cA-(fI-sI)*m)/(EA*cA-f*m);hA=CI+EA*PA-W.x,GA=sI+f*PA-W.y;const bI=hA*hA+GA*GA;if(bI<=2)return new qA(hA,GA);bA=Math.sqrt(bI/2)}else{let YA=!1;EA>Number.EPSILON?m>Number.EPSILON&&(YA=!0):EA<-Number.EPSILON?m<-Number.EPSILON&&(YA=!0):Math.sign(f)===Math.sign(cA)&&(YA=!0),YA?(hA=-f,GA=EA,bA=Math.sqrt(ZA)):(hA=EA,GA=f,bA=Math.sqrt(ZA/2))}return new qA(hA/bA,GA/bA)}const CA=[];for(let W=0,UA=X.length,tA=UA-1,hA=W+1;W=0;W--){const UA=W/h,tA=l*Math.cos(UA*Math.PI/2),hA=D*Math.sin(UA*Math.PI/2)+G;for(let GA=0,bA=X.length;GA=0;){const hA=tA;let GA=tA-1;GA<0&&(GA=W.length-1);for(let bA=0,EA=n+h*2;bA0)&&l.push(S,k,M),(c!==C-1||E0!=A>0&&this.version++,this._anisotropy=A}get clearcoat(){return this._clearcoat}set clearcoat(A){this._clearcoat>0!=A>0&&this.version++,this._clearcoat=A}get iridescence(){return this._iridescence}set iridescence(A){this._iridescence>0!=A>0&&this.version++,this._iridescence=A}get sheen(){return this._sheen}set sheen(A){this._sheen>0!=A>0&&this.version++,this._sheen=A}get transmission(){return this._transmission}set transmission(A){this._transmission>0!=A>0&&this.version++,this._transmission=A}copy(A){return super.copy(A),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=A.anisotropy,this.anisotropyRotation=A.anisotropyRotation,this.anisotropyMap=A.anisotropyMap,this.clearcoat=A.clearcoat,this.clearcoatMap=A.clearcoatMap,this.clearcoatRoughness=A.clearcoatRoughness,this.clearcoatRoughnessMap=A.clearcoatRoughnessMap,this.clearcoatNormalMap=A.clearcoatNormalMap,this.clearcoatNormalScale.copy(A.clearcoatNormalScale),this.ior=A.ior,this.iridescence=A.iridescence,this.iridescenceMap=A.iridescenceMap,this.iridescenceIOR=A.iridescenceIOR,this.iridescenceThicknessRange=[...A.iridescenceThicknessRange],this.iridescenceThicknessMap=A.iridescenceThicknessMap,this.sheen=A.sheen,this.sheenColor.copy(A.sheenColor),this.sheenColorMap=A.sheenColorMap,this.sheenRoughness=A.sheenRoughness,this.sheenRoughnessMap=A.sheenRoughnessMap,this.transmission=A.transmission,this.transmissionMap=A.transmissionMap,this.thickness=A.thickness,this.thicknessMap=A.thicknessMap,this.attenuationDistance=A.attenuationDistance,this.attenuationColor.copy(A.attenuationColor),this.specularIntensity=A.specularIntensity,this.specularIntensityMap=A.specularIntensityMap,this.specularColor.copy(A.specularColor),this.specularColorMap=A.specularColorMap,this}}class eL extends hC{constructor(A){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new eI(16777215),this.specular=new eI(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new eI(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=WE,this.normalScale=new qA(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Or,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(A)}copy(A){return super.copy(A),this.color.copy(A.color),this.specular.copy(A.specular),this.shininess=A.shininess,this.map=A.map,this.lightMap=A.lightMap,this.lightMapIntensity=A.lightMapIntensity,this.aoMap=A.aoMap,this.aoMapIntensity=A.aoMapIntensity,this.emissive.copy(A.emissive),this.emissiveMap=A.emissiveMap,this.emissiveIntensity=A.emissiveIntensity,this.bumpMap=A.bumpMap,this.bumpScale=A.bumpScale,this.normalMap=A.normalMap,this.normalMapType=A.normalMapType,this.normalScale.copy(A.normalScale),this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.specularMap=A.specularMap,this.alphaMap=A.alphaMap,this.envMap=A.envMap,this.combine=A.combine,this.reflectivity=A.reflectivity,this.refractionRatio=A.refractionRatio,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this.wireframeLinecap=A.wireframeLinecap,this.wireframeLinejoin=A.wireframeLinejoin,this.flatShading=A.flatShading,this.fog=A.fog,this}}class EL extends hC{constructor(A){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new eI(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new eI(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=WE,this.normalScale=new qA(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(A)}copy(A){return super.copy(A),this.color.copy(A.color),this.map=A.map,this.gradientMap=A.gradientMap,this.lightMap=A.lightMap,this.lightMapIntensity=A.lightMapIntensity,this.aoMap=A.aoMap,this.aoMapIntensity=A.aoMapIntensity,this.emissive.copy(A.emissive),this.emissiveMap=A.emissiveMap,this.emissiveIntensity=A.emissiveIntensity,this.bumpMap=A.bumpMap,this.bumpScale=A.bumpScale,this.normalMap=A.normalMap,this.normalMapType=A.normalMapType,this.normalScale.copy(A.normalScale),this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.alphaMap=A.alphaMap,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this.wireframeLinecap=A.wireframeLinecap,this.wireframeLinejoin=A.wireframeLinejoin,this.fog=A.fog,this}}class tL extends hC{constructor(A){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=WE,this.normalScale=new qA(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(A)}copy(A){return super.copy(A),this.bumpMap=A.bumpMap,this.bumpScale=A.bumpScale,this.normalMap=A.normalMap,this.normalMapType=A.normalMapType,this.normalScale.copy(A.normalScale),this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this.flatShading=A.flatShading,this}}class oL extends hC{constructor(A){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new eI(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new eI(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=WE,this.normalScale=new qA(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Or,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(A)}copy(A){return super.copy(A),this.color.copy(A.color),this.map=A.map,this.lightMap=A.lightMap,this.lightMapIntensity=A.lightMapIntensity,this.aoMap=A.aoMap,this.aoMapIntensity=A.aoMapIntensity,this.emissive.copy(A.emissive),this.emissiveMap=A.emissiveMap,this.emissiveIntensity=A.emissiveIntensity,this.bumpMap=A.bumpMap,this.bumpScale=A.bumpScale,this.normalMap=A.normalMap,this.normalMapType=A.normalMapType,this.normalScale.copy(A.normalScale),this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.specularMap=A.specularMap,this.alphaMap=A.alphaMap,this.envMap=A.envMap,this.combine=A.combine,this.reflectivity=A.reflectivity,this.refractionRatio=A.refractionRatio,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this.wireframeLinecap=A.wireframeLinecap,this.wireframeLinejoin=A.wireframeLinejoin,this.flatShading=A.flatShading,this.fog=A.fog,this}}class nL extends hC{constructor(A){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new eI(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=WE,this.normalScale=new qA(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(A)}copy(A){return super.copy(A),this.defines={MATCAP:""},this.color.copy(A.color),this.matcap=A.matcap,this.map=A.map,this.bumpMap=A.bumpMap,this.bumpScale=A.bumpScale,this.normalMap=A.normalMap,this.normalMapType=A.normalMapType,this.normalScale.copy(A.normalScale),this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.alphaMap=A.alphaMap,this.flatShading=A.flatShading,this.fog=A.fog,this}}class sL extends dB{constructor(A){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(A)}copy(A){return super.copy(A),this.scale=A.scale,this.dashSize=A.dashSize,this.gapSize=A.gapSize,this}}function Zt(g,A,I){return!g||!I&&g.constructor===A?g:typeof A.BYTES_PER_ELEMENT=="number"?new A(g):Array.prototype.slice.call(g)}function aL(g){return ArrayBuffer.isView(g)&&!(g instanceof DataView)}function rL(g){function A(B,i){return g[B]-g[i]}const I=g.length,C=new Array(I);for(let B=0;B!==I;++B)C[B]=B;return C.sort(A),C}function Pu(g,A,I){const C=g.length,B=new g.constructor(C);for(let i=0,Q=0;Q!==C;++i){const e=I[i]*A;for(let E=0;E!==A;++E)B[Q++]=g[e+E]}return B}function jd(g,A,I,C){let B=1,i=g[0];for(;i!==void 0&&i[C]===void 0;)i=g[B++];if(i===void 0)return;let Q=i[C];if(Q!==void 0)if(Array.isArray(Q))do Q=i[C],Q!==void 0&&(A.push(i.time),I.push.apply(I,Q)),i=g[B++];while(i!==void 0);else if(Q.toArray!==void 0)do Q=i[C],Q!==void 0&&(A.push(i.time),Q.toArray(I,I.length)),i=g[B++];while(i!==void 0);else do Q=i[C],Q!==void 0&&(A.push(i.time),I.push(Q)),i=g[B++];while(i!==void 0)}function Z1(g,A,I,C,B=30){const i=g.clone();i.name=A;const Q=[];for(let E=0;E=C)){a.push(t.times[l]);for(let G=0;Gi.tracks[E].times[0]&&(e=i.tracks[E].times[0]);for(let E=0;E=e.times[D]){const c=D*a+n,y=c+a-n;G=e.values.slice(c,y)}else{const c=e.createInterpolant(),y=n,S=a-n;c.evaluate(i),G=c.resultBuffer.slice(y,S)}E==="quaternion"&&new Wg().fromArray(G).normalize().conjugate().toArray(G);const h=t.times.length;for(let c=0;c=i)){const e=I[1];A=i)break I}Q=C,C=0;break g}break A}for(;C>>1;AI;)--Q;if(++Q,i!==0||Q!==B){i>=Q&&(Q=Math.max(Q,1),i=Q-1);const e=this.getValueSize();this.times=C.slice(i,Q),this.values=this.values.slice(i*e,Q*e)}return this}validate(){let A=!0;const I=this.getValueSize();I-Math.floor(I)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),A=!1);const C=this.times,B=this.values,i=C.length;i===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),A=!1);let Q=null;for(let e=0;e!==i;e++){const E=C[e];if(typeof E=="number"&&isNaN(E)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,E),A=!1;break}if(Q!==null&&Q>E){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,E,Q),A=!1;break}Q=E}if(B!==void 0&&aL(B))for(let e=0,E=B.length;e!==E;++e){const t=B[e];if(isNaN(t)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,t),A=!1;break}}return A}optimize(){const A=this.times.slice(),I=this.values.slice(),C=this.getValueSize(),B=this.getInterpolation()===WD,i=A.length-1;let Q=1;for(let e=1;e0){A[Q]=A[i];for(let e=i*C,E=Q*C,t=0;t!==C;++t)I[E+t]=I[e+t];++Q}return Q!==A.length?(this.times=A.slice(0,Q),this.values=I.slice(0,Q*C)):(this.times=A,this.values=I),this}clone(){const A=this.times.slice(),I=this.values.slice(),C=this.constructor,B=new C(this.name,A,I);return B.createInterpolant=this.createInterpolant,B}}aQ.prototype.TimeBufferType=Float32Array;aQ.prototype.ValueBufferType=Float32Array;aQ.prototype.DefaultInterpolation=eo;class wo extends aQ{}wo.prototype.ValueTypeName="bool";wo.prototype.ValueBufferType=Array;wo.prototype.DefaultInterpolation=gs;wo.prototype.InterpolantFactoryMethodLinear=void 0;wo.prototype.InterpolantFactoryMethodSmooth=void 0;class Xd extends aQ{}Xd.prototype.ValueTypeName="color";class is extends aQ{}is.prototype.ValueTypeName="number";class DL extends Ss{constructor(A,I,C,B){super(A,I,C,B)}interpolate_(A,I,C,B){const i=this.resultBuffer,Q=this.sampleValues,e=this.valueSize,E=(C-I)/(B-I);let t=A*e;for(let n=t+e;t!==n;t+=4)Wg.slerpFlat(i,0,Q,t-e,Q,t,E);return i}}class bE extends aQ{InterpolantFactoryMethodLinear(A){return new DL(this.times,this.values,this.getValueSize(),A)}}bE.prototype.ValueTypeName="quaternion";bE.prototype.DefaultInterpolation=eo;bE.prototype.InterpolantFactoryMethodSmooth=void 0;class So extends aQ{}So.prototype.ValueTypeName="string";So.prototype.ValueBufferType=Array;So.prototype.DefaultInterpolation=gs;So.prototype.InterpolantFactoryMethodLinear=void 0;So.prototype.InterpolantFactoryMethodSmooth=void 0;class Qs extends aQ{}Qs.prototype.ValueTypeName="vector";class es{constructor(A,I=-1,C,B=Dw){this.name=A,this.tracks=C,this.duration=I,this.blendMode=B,this.uuid=si(),this.duration<0&&this.resetDuration()}static parse(A){const I=[],C=A.tracks,B=1/(A.fps||1);for(let Q=0,e=C.length;Q!==e;++Q)I.push(V1(C[Q]).scale(B));const i=new this(A.name,A.duration,I,A.blendMode);return i.uuid=A.uuid,i}static toJSON(A){const I=[],C=A.tracks,B={name:A.name,duration:A.duration,tracks:I,uuid:A.uuid,blendMode:A.blendMode};for(let i=0,Q=C.length;i!==Q;++i)I.push(aQ.toJSON(C[i]));return B}static CreateFromMorphTargetSequence(A,I,C,B){const i=I.length,Q=[];for(let e=0;e1){const a=n[1];let r=B[a];r||(B[a]=r=[]),r.push(t)}}const Q=[];for(const e in B)Q.push(this.CreateFromMorphTargetSequence(e,B[e],I,C));return Q}static parseAnimation(A,I){if(!A)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const C=function(a,r,l,D,G){if(l.length!==0){const h=[],c=[];jd(l,h,c,D),h.length!==0&&G.push(new a(r,h,c))}},B=[],i=A.name||"default",Q=A.fps||30,e=A.blendMode;let E=A.length||-1;const t=A.hierarchy||[];for(let a=0;a{I&&I(i),this.manager.itemEnd(A)},0),i;if(Ae[A]!==void 0){Ae[A].push({onLoad:I,onProgress:C,onError:B});return}Ae[A]=[],Ae[A].push({onLoad:I,onProgress:C,onError:B});const Q=new Request(A,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),e=this.mimeType,E=this.responseType;fetch(Q).then(t=>{if(t.status===200||t.status===0){if(t.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||t.body===void 0||t.body.getReader===void 0)return t;const n=Ae[A],a=t.body.getReader(),r=t.headers.get("Content-Length")||t.headers.get("X-File-Size"),l=r?parseInt(r):0,D=l!==0;let G=0;const h=new ReadableStream({start(c){y();function y(){a.read().then(({done:S,value:k})=>{if(S)c.close();else{G+=k.byteLength;const N=new ProgressEvent("progress",{lengthComputable:D,loaded:G,total:l});for(let M=0,F=n.length;M{switch(E){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then(n=>new DOMParser().parseFromString(n,e));case"json":return t.json();default:if(e===void 0)return t.text();{const a=/charset="?([^;"\s]*)"?/i.exec(e),r=a&&a[1]?a[1].toLowerCase():void 0,l=new TextDecoder(r);return t.arrayBuffer().then(D=>l.decode(D))}}}).then(t=>{se.add(A,t);const n=Ae[A];delete Ae[A];for(let a=0,r=n.length;a{const n=Ae[A];if(n===void 0)throw this.manager.itemError(A),t;delete Ae[A];for(let a=0,r=n.length;a{this.manager.itemEnd(A)}),this.manager.itemStart(A)}setResponseType(A){return this.responseType=A,this}setMimeType(A){return this.mimeType=A,this}}class z1 extends oB{constructor(A){super(A)}load(A,I,C,B){const i=this,Q=new VB(this.manager);Q.setPath(this.path),Q.setRequestHeader(this.requestHeader),Q.setWithCredentials(this.withCredentials),Q.load(A,function(e){try{I(i.parse(JSON.parse(e)))}catch(E){B?B(E):console.error(E),i.manager.itemError(A)}},C,B)}parse(A){const I=[];for(let C=0;C0:B.vertexColors=A.vertexColors),A.uniforms!==void 0)for(const i in A.uniforms){const Q=A.uniforms[i];switch(B.uniforms[i]={},Q.type){case"t":B.uniforms[i].value=C(Q.value);break;case"c":B.uniforms[i].value=new eI().setHex(Q.value);break;case"v2":B.uniforms[i].value=new qA().fromArray(Q.value);break;case"v3":B.uniforms[i].value=new _().fromArray(Q.value);break;case"v4":B.uniforms[i].value=new yg().fromArray(Q.value);break;case"m3":B.uniforms[i].value=new PI().fromArray(Q.value);break;case"m4":B.uniforms[i].value=new MI().fromArray(Q.value);break;default:B.uniforms[i].value=Q.value}}if(A.defines!==void 0&&(B.defines=A.defines),A.vertexShader!==void 0&&(B.vertexShader=A.vertexShader),A.fragmentShader!==void 0&&(B.fragmentShader=A.fragmentShader),A.glslVersion!==void 0&&(B.glslVersion=A.glslVersion),A.extensions!==void 0)for(const i in A.extensions)B.extensions[i]=A.extensions[i];if(A.lights!==void 0&&(B.lights=A.lights),A.clipping!==void 0&&(B.clipping=A.clipping),A.size!==void 0&&(B.size=A.size),A.sizeAttenuation!==void 0&&(B.sizeAttenuation=A.sizeAttenuation),A.map!==void 0&&(B.map=C(A.map)),A.matcap!==void 0&&(B.matcap=C(A.matcap)),A.alphaMap!==void 0&&(B.alphaMap=C(A.alphaMap)),A.bumpMap!==void 0&&(B.bumpMap=C(A.bumpMap)),A.bumpScale!==void 0&&(B.bumpScale=A.bumpScale),A.normalMap!==void 0&&(B.normalMap=C(A.normalMap)),A.normalMapType!==void 0&&(B.normalMapType=A.normalMapType),A.normalScale!==void 0){let i=A.normalScale;Array.isArray(i)===!1&&(i=[i,i]),B.normalScale=new qA().fromArray(i)}return A.displacementMap!==void 0&&(B.displacementMap=C(A.displacementMap)),A.displacementScale!==void 0&&(B.displacementScale=A.displacementScale),A.displacementBias!==void 0&&(B.displacementBias=A.displacementBias),A.roughnessMap!==void 0&&(B.roughnessMap=C(A.roughnessMap)),A.metalnessMap!==void 0&&(B.metalnessMap=C(A.metalnessMap)),A.emissiveMap!==void 0&&(B.emissiveMap=C(A.emissiveMap)),A.emissiveIntensity!==void 0&&(B.emissiveIntensity=A.emissiveIntensity),A.specularMap!==void 0&&(B.specularMap=C(A.specularMap)),A.specularIntensityMap!==void 0&&(B.specularIntensityMap=C(A.specularIntensityMap)),A.specularColorMap!==void 0&&(B.specularColorMap=C(A.specularColorMap)),A.envMap!==void 0&&(B.envMap=C(A.envMap)),A.envMapIntensity!==void 0&&(B.envMapIntensity=A.envMapIntensity),A.reflectivity!==void 0&&(B.reflectivity=A.reflectivity),A.refractionRatio!==void 0&&(B.refractionRatio=A.refractionRatio),A.lightMap!==void 0&&(B.lightMap=C(A.lightMap)),A.lightMapIntensity!==void 0&&(B.lightMapIntensity=A.lightMapIntensity),A.aoMap!==void 0&&(B.aoMap=C(A.aoMap)),A.aoMapIntensity!==void 0&&(B.aoMapIntensity=A.aoMapIntensity),A.gradientMap!==void 0&&(B.gradientMap=C(A.gradientMap)),A.clearcoatMap!==void 0&&(B.clearcoatMap=C(A.clearcoatMap)),A.clearcoatRoughnessMap!==void 0&&(B.clearcoatRoughnessMap=C(A.clearcoatRoughnessMap)),A.clearcoatNormalMap!==void 0&&(B.clearcoatNormalMap=C(A.clearcoatNormalMap)),A.clearcoatNormalScale!==void 0&&(B.clearcoatNormalScale=new qA().fromArray(A.clearcoatNormalScale)),A.iridescenceMap!==void 0&&(B.iridescenceMap=C(A.iridescenceMap)),A.iridescenceThicknessMap!==void 0&&(B.iridescenceThicknessMap=C(A.iridescenceThicknessMap)),A.transmissionMap!==void 0&&(B.transmissionMap=C(A.transmissionMap)),A.thicknessMap!==void 0&&(B.thicknessMap=C(A.thicknessMap)),A.anisotropyMap!==void 0&&(B.anisotropyMap=C(A.anisotropyMap)),A.sheenColorMap!==void 0&&(B.sheenColorMap=C(A.sheenColorMap)),A.sheenRoughnessMap!==void 0&&(B.sheenRoughnessMap=C(A.sheenRoughnessMap)),B}setTextures(A){return this.textures=A,this}static createMaterialFromType(A){const I={ShadowMaterial:iL,SpriteMaterial:Yd,RawShaderMaterial:QL,ShaderMaterial:YC,PointsMaterial:pw,MeshPhysicalMaterial:HQ,MeshStandardMaterial:Il,MeshPhongMaterial:eL,MeshToonMaterial:EL,MeshNormalMaterial:tL,MeshLambertMaterial:oL,MeshDepthMaterial:yw,MeshDistanceMaterial:uw,MeshBasicMaterial:NC,MeshMatcapMaterial:nL,LineDashedMaterial:sL,LineBasicMaterial:dB,Material:hC};return new I[A]}}class qQ{static decodeText(A){if(typeof TextDecoder<"u")return new TextDecoder().decode(A);let I="";for(let C=0,B=A.length;C0){const E=new zd(I);i=new Ur(E),i.setCrossOrigin(this.crossOrigin);for(let t=0,n=A.length;t0){B=new Ur(this.manager),B.setCrossOrigin(this.crossOrigin);for(let Q=0,e=A.length;Q{const h=new aC;h.min.fromArray(G.boxMin),h.max.fromArray(G.boxMax);const c=new xC;return c.radius=G.sphereRadius,c.center.fromArray(G.sphereCenter),{boxInitialized:G.boxInitialized,box:h,sphereInitialized:G.sphereInitialized,sphere:c}}),Q._maxGeometryCount=A.maxGeometryCount,Q._maxVertexCount=A.maxVertexCount,Q._maxIndexCount=A.maxIndexCount,Q._geometryInitialized=A.geometryInitialized,Q._geometryCount=A.geometryCount,Q._matricesTexture=t(A.matricesTexture.uuid);break;case"LOD":Q=new Pm;break;case"Line":Q=new Se(e(A.geometry),E(A.material));break;case"LineLoop":Q=new xd(e(A.geometry),E(A.material));break;case"LineSegments":Q=new nQ(e(A.geometry),E(A.material));break;case"PointCloud":case"Points":Q=new vd(e(A.geometry),E(A.material));break;case"Sprite":Q=new Zm(E(A.material));break;case"Group":Q=new qB;break;case"Bone":Q=new Mw;break;default:Q=new ng}if(Q.uuid=A.uuid,A.name!==void 0&&(Q.name=A.name),A.matrix!==void 0?(Q.matrix.fromArray(A.matrix),A.matrixAutoUpdate!==void 0&&(Q.matrixAutoUpdate=A.matrixAutoUpdate),Q.matrixAutoUpdate&&Q.matrix.decompose(Q.position,Q.quaternion,Q.scale)):(A.position!==void 0&&Q.position.fromArray(A.position),A.rotation!==void 0&&Q.rotation.fromArray(A.rotation),A.quaternion!==void 0&&Q.quaternion.fromArray(A.quaternion),A.scale!==void 0&&Q.scale.fromArray(A.scale)),A.up!==void 0&&Q.up.fromArray(A.up),A.castShadow!==void 0&&(Q.castShadow=A.castShadow),A.receiveShadow!==void 0&&(Q.receiveShadow=A.receiveShadow),A.shadow&&(A.shadow.bias!==void 0&&(Q.shadow.bias=A.shadow.bias),A.shadow.normalBias!==void 0&&(Q.shadow.normalBias=A.shadow.normalBias),A.shadow.radius!==void 0&&(Q.shadow.radius=A.shadow.radius),A.shadow.mapSize!==void 0&&Q.shadow.mapSize.fromArray(A.shadow.mapSize),A.shadow.camera!==void 0&&(Q.shadow.camera=this.parseObject(A.shadow.camera))),A.visible!==void 0&&(Q.visible=A.visible),A.frustumCulled!==void 0&&(Q.frustumCulled=A.frustumCulled),A.renderOrder!==void 0&&(Q.renderOrder=A.renderOrder),A.userData!==void 0&&(Q.userData=A.userData),A.layers!==void 0&&(Q.layers.mask=A.layers),A.children!==void 0){const r=A.children;for(let l=0;l"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(A){return this.options=A,this}load(A,I,C,B){A===void 0&&(A=""),this.path!==void 0&&(A=this.path+A),A=this.manager.resolveURL(A);const i=this,Q=se.get(A);if(Q!==void 0){if(i.manager.itemStart(A),Q.then){Q.then(t=>{I&&I(t),i.manager.itemEnd(A)}).catch(t=>{B&&B(t)});return}return setTimeout(function(){I&&I(Q),i.manager.itemEnd(A)},0),Q}const e={};e.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",e.headers=this.requestHeader;const E=fetch(A,e).then(function(t){return t.blob()}).then(function(t){return createImageBitmap(t,Object.assign(i.options,{colorSpaceConversion:"none"}))}).then(function(t){return se.add(A,t),I&&I(t),i.manager.itemEnd(A),t}).catch(function(t){B&&B(t),se.remove(A),i.manager.itemError(A),i.manager.itemEnd(A)});se.add(A,E),i.manager.itemStart(A)}}let iD;class BM{static getContext(){return iD===void 0&&(iD=new(window.AudioContext||window.webkitAudioContext)),iD}static setContext(A){iD=A}}class iZ extends oB{constructor(A){super(A)}load(A,I,C,B){const i=this,Q=new VB(this.manager);Q.setResponseType("arraybuffer"),Q.setPath(this.path),Q.setRequestHeader(this.requestHeader),Q.setWithCredentials(this.withCredentials),Q.load(A,function(E){try{const t=E.slice(0);BM.getContext().decodeAudioData(t,function(a){I(a)}).catch(e)}catch(t){e(t)}},C,B);function e(E){B?B(E):console.error(E),i.manager.itemError(A)}}}const wf=new MI,Sf=new MI,Gt=new MI;class QZ{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new pC,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new pC,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(A){const I=this._cache;if(I.focus!==A.focus||I.fov!==A.fov||I.aspect!==A.aspect*this.aspect||I.near!==A.near||I.far!==A.far||I.zoom!==A.zoom||I.eyeSep!==this.eyeSep){I.focus=A.focus,I.fov=A.fov,I.aspect=A.aspect*this.aspect,I.near=A.near,I.far=A.far,I.zoom=A.zoom,I.eyeSep=this.eyeSep,Gt.copy(A.projectionMatrix);const B=I.eyeSep/2,i=B*I.near/I.focus,Q=I.near*Math.tan(Xt*I.fov*.5)/I.zoom;let e,E;Sf.elements[12]=-B,wf.elements[12]=B,e=-Q*I.aspect+i,E=Q*I.aspect+i,Gt.elements[0]=2*I.near/(E-e),Gt.elements[8]=(E+e)/(E-e),this.cameraL.projectionMatrix.copy(Gt),e=-Q*I.aspect-i,E=Q*I.aspect-i,Gt.elements[0]=2*I.near/(E-e),Gt.elements[8]=(E+e)/(E-e),this.cameraR.projectionMatrix.copy(Gt)}this.cameraL.matrixWorld.copy(A.matrixWorld).multiply(Sf),this.cameraR.matrixWorld.copy(A.matrixWorld).multiply(wf)}}class iM{constructor(A=!0){this.autoStart=A,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Gf(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let A=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const I=Gf();A=(I-this.oldTime)/1e3,this.oldTime=I,this.elapsedTime+=A}return A}}function Gf(){return(typeof performance>"u"?Date:performance).now()}const yt=new _,yf=new Wg,eZ=new _,ut=new _;class EZ extends ng{constructor(){super(),this.type="AudioListener",this.context=BM.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new iM}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(A){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=A,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(A){return this.gain.gain.setTargetAtTime(A,this.context.currentTime,.01),this}updateMatrixWorld(A){super.updateMatrixWorld(A);const I=this.context.listener,C=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(yt,yf,eZ),ut.set(0,0,-1).applyQuaternion(yf),I.positionX){const B=this.context.currentTime+this.timeDelta;I.positionX.linearRampToValueAtTime(yt.x,B),I.positionY.linearRampToValueAtTime(yt.y,B),I.positionZ.linearRampToValueAtTime(yt.z,B),I.forwardX.linearRampToValueAtTime(ut.x,B),I.forwardY.linearRampToValueAtTime(ut.y,B),I.forwardZ.linearRampToValueAtTime(ut.z,B),I.upX.linearRampToValueAtTime(C.x,B),I.upY.linearRampToValueAtTime(C.y,B),I.upZ.linearRampToValueAtTime(C.z,B)}else I.setPosition(yt.x,yt.y,yt.z),I.setOrientation(ut.x,ut.y,ut.z,C.x,C.y,C.z)}}class UL extends ng{constructor(A){super(),this.type="Audio",this.listener=A,this.context=A.context,this.gain=this.context.createGain(),this.gain.connect(A.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(A){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=A,this.connect(),this}setMediaElementSource(A){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(A),this.connect(),this}setMediaStreamSource(A){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(A),this.connect(),this}setBuffer(A){return this.buffer=A,this.sourceType="buffer",this.autoplay&&this.play(),this}play(A=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+A;const I=this.context.createBufferSource();return I.buffer=this.buffer,I.loop=this.loop,I.loopStart=this.loopStart,I.loopEnd=this.loopEnd,I.onended=this.onEnded.bind(this),I.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=I,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let A=1,I=this.filters.length;A0){this.source.disconnect(this.filters[0]);for(let A=1,I=this.filters.length;A0&&this._mixBufferRegionAdditive(C,B,this._addIndex*I,1,I);for(let E=I,t=I+I;E!==t;++E)if(C[E]!==C[E+I]){e.setValue(C,B);break}}saveOriginalState(){const A=this.binding,I=this.buffer,C=this.valueSize,B=C*this._origIndex;A.getValue(I,B);for(let i=C,Q=B;i!==Q;++i)I[i]=I[B+i%C];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const A=this.valueSize*3;this.binding.setValue(this.buffer,A)}_setAdditiveIdentityNumeric(){const A=this._addIndex*this.valueSize,I=A+this.valueSize;for(let C=A;C=.5)for(let Q=0;Q!==i;++Q)A[I+Q]=A[C+Q]}_slerp(A,I,C,B){Wg.slerpFlat(A,I,A,I,A,C,B)}_slerpAdditive(A,I,C,B,i){const Q=this._workIndex*i;Wg.multiplyQuaternionsFlat(A,Q,A,I,A,C),Wg.slerpFlat(A,I,A,I,A,Q,B)}_lerp(A,I,C,B,i){const Q=1-B;for(let e=0;e!==i;++e){const E=I+e;A[E]=A[E]*Q+A[C+e]*B}}_lerpAdditive(A,I,C,B,i){for(let Q=0;Q!==i;++Q){const e=I+Q;A[e]=A[e]+A[C+Q]*B}}}const QM="\\[\\]\\.:\\/",sZ=new RegExp("["+QM+"]","g"),eM="[^"+QM+"]",aZ="[^"+QM.replace("\\.","")+"]",rZ=/((?:WC+[\/:])*)/.source.replace("WC",eM),lZ=/(WCOD+)?/.source.replace("WCOD",aZ),cZ=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",eM),DZ=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",eM),hZ=new RegExp("^"+rZ+lZ+cZ+DZ+"$"),wZ=["material","materials","bones","map"];class SZ{constructor(A,I,C){const B=C||hg.parseTrackName(I);this._targetGroup=A,this._bindings=A.subscribe_(I,B)}getValue(A,I){this.bind();const C=this._targetGroup.nCachedObjects_,B=this._bindings[C];B!==void 0&&B.getValue(A,I)}setValue(A,I){const C=this._bindings;for(let B=this._targetGroup.nCachedObjects_,i=C.length;B!==i;++B)C[B].setValue(A,I)}bind(){const A=this._bindings;for(let I=this._targetGroup.nCachedObjects_,C=A.length;I!==C;++I)A[I].bind()}unbind(){const A=this._bindings;for(let I=this._targetGroup.nCachedObjects_,C=A.length;I!==C;++I)A[I].unbind()}}class hg{constructor(A,I,C){this.path=I,this.parsedPath=C||hg.parseTrackName(I),this.node=hg.findNode(A,this.parsedPath.nodeName),this.rootNode=A,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(A,I,C){return A&&A.isAnimationObjectGroup?new hg.Composite(A,I,C):new hg(A,I,C)}static sanitizeNodeName(A){return A.replace(/\s/g,"_").replace(sZ,"")}static parseTrackName(A){const I=hZ.exec(A);if(I===null)throw new Error("PropertyBinding: Cannot parse trackName: "+A);const C={nodeName:I[2],objectName:I[3],objectIndex:I[4],propertyName:I[5],propertyIndex:I[6]},B=C.nodeName&&C.nodeName.lastIndexOf(".");if(B!==void 0&&B!==-1){const i=C.nodeName.substring(B+1);wZ.indexOf(i)!==-1&&(C.nodeName=C.nodeName.substring(0,B),C.objectName=i)}if(C.propertyName===null||C.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+A);return C}static findNode(A,I){if(I===void 0||I===""||I==="."||I===-1||I===A.name||I===A.uuid)return A;if(A.skeleton){const C=A.skeleton.getBoneByName(I);if(C!==void 0)return C}if(A.children){const C=function(i){for(let Q=0;Q=i){const a=i++,r=A[a];I[r.uuid]=n,A[n]=r,I[t]=a,A[a]=E;for(let l=0,D=B;l!==D;++l){const G=C[l],h=G[a],c=G[n];G[n]=h,G[a]=c}}}this.nCachedObjects_=i}uncache(){const A=this._objects,I=this._indicesByUUID,C=this._bindings,B=C.length;let i=this.nCachedObjects_,Q=A.length;for(let e=0,E=arguments.length;e!==E;++e){const t=arguments[e],n=t.uuid,a=I[n];if(a!==void 0)if(delete I[n],a0&&(I[l.uuid]=a),A[a]=l,A.pop();for(let D=0,G=B;D!==G;++D){const h=C[D];h[a]=h[r],h.pop()}}}this.nCachedObjects_=i}subscribe_(A,I){const C=this._bindingsIndicesByPath;let B=C[A];const i=this._bindings;if(B!==void 0)return i[B];const Q=this._paths,e=this._parsedPaths,E=this._objects,t=E.length,n=this.nCachedObjects_,a=new Array(t);B=i.length,C[A]=B,Q.push(A),e.push(I),i.push(a);for(let r=n,l=E.length;r!==l;++r){const D=E[r];a[r]=new hg(D,A,I)}return a}unsubscribe_(A){const I=this._bindingsIndicesByPath,C=I[A];if(C!==void 0){const B=this._paths,i=this._parsedPaths,Q=this._bindings,e=Q.length-1,E=Q[e],t=A[e];I[t]=C,Q[C]=E,Q.pop(),i[C]=i[e],i.pop(),B[C]=B[e],B.pop()}}}class FL{constructor(A,I,C=null,B=I.blendMode){this._mixer=A,this._clip=I,this._localRoot=C,this.blendMode=B;const i=I.tracks,Q=i.length,e=new Array(Q),E={endingStart:vt,endingEnd:vt};for(let t=0;t!==Q;++t){const n=i[t].createInterpolant(null);e[t]=n,n.settings=E}this._interpolantSettings=E,this._interpolants=e,this._propertyBindings=new Array(Q),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=hm,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(A){return this._startTime=A,this}setLoop(A,I){return this.loop=A,this.repetitions=I,this}setEffectiveWeight(A){return this.weight=A,this._effectiveWeight=this.enabled?A:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(A){return this._scheduleFading(A,0,1)}fadeOut(A){return this._scheduleFading(A,1,0)}crossFadeFrom(A,I,C){if(A.fadeOut(I),this.fadeIn(I),C){const B=this._clip.duration,i=A._clip.duration,Q=i/B,e=B/i;A.warp(1,Q,I),this.warp(e,1,I)}return this}crossFadeTo(A,I,C){return A.crossFadeFrom(this,I,C)}stopFading(){const A=this._weightInterpolant;return A!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(A)),this}setEffectiveTimeScale(A){return this.timeScale=A,this._effectiveTimeScale=this.paused?0:A,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(A){return this.timeScale=this._clip.duration/A,this.stopWarping()}syncWith(A){return this.time=A.time,this.timeScale=A.timeScale,this.stopWarping()}halt(A){return this.warp(this._effectiveTimeScale,0,A)}warp(A,I,C){const B=this._mixer,i=B.time,Q=this.timeScale;let e=this._timeScaleInterpolant;e===null&&(e=B._lendControlInterpolant(),this._timeScaleInterpolant=e);const E=e.parameterPositions,t=e.sampleValues;return E[0]=i,E[1]=i+C,t[0]=A/Q,t[1]=I/Q,this}stopWarping(){const A=this._timeScaleInterpolant;return A!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(A)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(A,I,C,B){if(!this.enabled){this._updateWeight(A);return}const i=this._startTime;if(i!==null){const E=(A-i)*C;E<0||C===0?I=0:(this._startTime=null,I=C*E)}I*=this._updateTimeScale(A);const Q=this._updateTime(I),e=this._updateWeight(A);if(e>0){const E=this._interpolants,t=this._propertyBindings;switch(this.blendMode){case kd:for(let n=0,a=E.length;n!==a;++n)E[n].evaluate(Q),t[n].accumulateAdditive(e);break;case Dw:default:for(let n=0,a=E.length;n!==a;++n)E[n].evaluate(Q),t[n].accumulate(B,e)}}}_updateWeight(A){let I=0;if(this.enabled){I=this.weight;const C=this._weightInterpolant;if(C!==null){const B=C.evaluate(A)[0];I*=B,A>C.parameterPositions[1]&&(this.stopFading(),B===0&&(this.enabled=!1))}}return this._effectiveWeight=I,I}_updateTimeScale(A){let I=0;if(!this.paused){I=this.timeScale;const C=this._timeScaleInterpolant;if(C!==null){const B=C.evaluate(A)[0];I*=B,A>C.parameterPositions[1]&&(this.stopWarping(),I===0?this.paused=!0:this.timeScale=I)}}return this._effectiveTimeScale=I,I}_updateTime(A){const I=this._clip.duration,C=this.loop;let B=this.time+A,i=this._loopCount;const Q=C===wm;if(A===0)return i===-1?B:Q&&(i&1)===1?I-B:B;if(C===Dm){i===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));A:{if(B>=I)B=I;else if(B<0)B=0;else{this.time=B;break A}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=B,this._mixer.dispatchEvent({type:"finished",action:this,direction:A<0?-1:1})}}else{if(i===-1&&(A>=0?(i=0,this._setEndings(!0,this.repetitions===0,Q)):this._setEndings(this.repetitions===0,!0,Q)),B>=I||B<0){const e=Math.floor(B/I);B-=I*e,i+=Math.abs(e);const E=this.repetitions-i;if(E<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,B=A>0?I:0,this.time=B,this._mixer.dispatchEvent({type:"finished",action:this,direction:A>0?1:-1});else{if(E===1){const t=A<0;this._setEndings(t,!t,Q)}else this._setEndings(!1,!1,Q);this._loopCount=i,this.time=B,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:e})}}else this.time=B;if(Q&&(i&1)===1)return I-B}return B}_setEndings(A,I,C){const B=this._interpolantSettings;C?(B.endingStart=bt,B.endingEnd=bt):(A?B.endingStart=this.zeroSlopeAtStart?bt:vt:B.endingStart=hr,I?B.endingEnd=this.zeroSlopeAtEnd?bt:vt:B.endingEnd=hr)}_scheduleFading(A,I,C){const B=this._mixer,i=B.time;let Q=this._weightInterpolant;Q===null&&(Q=B._lendControlInterpolant(),this._weightInterpolant=Q);const e=Q.parameterPositions,E=Q.sampleValues;return e[0]=i,E[0]=I,e[1]=i+A,E[1]=C,this}}const yZ=new Float32Array(1);class uZ extends Me{constructor(A){super(),this._root=A,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(A,I){const C=A._localRoot||this._root,B=A._clip.tracks,i=B.length,Q=A._propertyBindings,e=A._interpolants,E=C.uuid,t=this._bindingsByRootAndName;let n=t[E];n===void 0&&(n={},t[E]=n);for(let a=0;a!==i;++a){const r=B[a],l=r.name;let D=n[l];if(D!==void 0)++D.referenceCount,Q[a]=D;else{if(D=Q[a],D!==void 0){D._cacheIndex===null&&(++D.referenceCount,this._addInactiveBinding(D,E,l));continue}const G=I&&I._propertyBindings[a].binding.parsedPath;D=new NL(hg.create(C,l,G),r.ValueTypeName,r.getValueSize()),++D.referenceCount,this._addInactiveBinding(D,E,l),Q[a]=D}e[a].resultBuffer=D.buffer}}_activateAction(A){if(!this._isActiveAction(A)){if(A._cacheIndex===null){const C=(A._localRoot||this._root).uuid,B=A._clip.uuid,i=this._actionsByClip[B];this._bindAction(A,i&&i.knownActions[0]),this._addInactiveAction(A,B,C)}const I=A._propertyBindings;for(let C=0,B=I.length;C!==B;++C){const i=I[C];i.useCount++===0&&(this._lendBinding(i),i.saveOriginalState())}this._lendAction(A)}}_deactivateAction(A){if(this._isActiveAction(A)){const I=A._propertyBindings;for(let C=0,B=I.length;C!==B;++C){const i=I[C];--i.useCount===0&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(A)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const A=this;this.stats={actions:{get total(){return A._actions.length},get inUse(){return A._nActiveActions}},bindings:{get total(){return A._bindings.length},get inUse(){return A._nActiveBindings}},controlInterpolants:{get total(){return A._controlInterpolants.length},get inUse(){return A._nActiveControlInterpolants}}}}_isActiveAction(A){const I=A._cacheIndex;return I!==null&&I=0;--C)A[C].stop();return this}update(A){A*=this.timeScale;const I=this._actions,C=this._nActiveActions,B=this.time+=A,i=Math.sign(A),Q=this._accuIndex^=1;for(let t=0;t!==C;++t)I[t]._update(B,A,i,Q);const e=this._bindings,E=this._nActiveBindings;for(let t=0;t!==E;++t)e[t].apply(Q);return this}setTime(A){this.time=0;for(let I=0;Ithis.max.x||A.ythis.max.y)}containsBox(A){return this.min.x<=A.min.x&&A.max.x<=this.max.x&&this.min.y<=A.min.y&&A.max.y<=this.max.y}getParameter(A,I){return I.set((A.x-this.min.x)/(this.max.x-this.min.x),(A.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(A){return!(A.max.xthis.max.x||A.max.ythis.max.y)}clampPoint(A,I){return I.copy(A).clamp(this.min,this.max)}distanceToPoint(A){return this.clampPoint(A,df).distanceTo(A)}intersect(A){return this.min.max(A.min),this.max.min(A.max),this.isEmpty()&&this.makeEmpty(),this}union(A){return this.min.min(A.min),this.max.max(A.max),this}translate(A){return this.min.add(A),this.max.add(A),this}equals(A){return A.min.equals(this.min)&&A.max.equals(this.max)}}const Mf=new _,QD=new _;class NZ{constructor(A=new _,I=new _){this.start=A,this.end=I}set(A,I){return this.start.copy(A),this.end.copy(I),this}copy(A){return this.start.copy(A.start),this.end.copy(A.end),this}getCenter(A){return A.addVectors(this.start,this.end).multiplyScalar(.5)}delta(A){return A.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(A,I){return this.delta(I).multiplyScalar(A).add(this.start)}closestPointToPointParameter(A,I){Mf.subVectors(A,this.start),QD.subVectors(this.end,this.start);const C=QD.dot(QD);let i=QD.dot(Mf)/C;return I&&(i=nC(i,0,1)),i}closestPointToPoint(A,I,C){const B=this.closestPointToPointParameter(A,I);return this.delta(C).multiplyScalar(B).add(this.start)}applyMatrix4(A){return this.start.applyMatrix4(A),this.end.applyMatrix4(A),this}equals(A){return A.start.equals(this.start)&&A.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const pf=new _;class FZ extends ng{constructor(A,I){super(),this.light=A,this.matrix=A.matrixWorld,this.matrixAutoUpdate=!1,this.color=I,this.type="SpotLightHelper";const C=new WI,B=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let Q=0,e=1,E=32;Q1)for(let a=0;a.99999)this.quaternion.set(0,0,0,1);else if(A.y<-.99999)this.quaternion.set(1,0,0,0);else{Rf.set(A.z,0,-A.x).normalize();const I=Math.acos(A.y);this.quaternion.setFromAxisAngle(Rf,I)}}setLength(A,I=A*.2,C=I*.2){this.line.scale.set(1,Math.max(1e-4,A-I),1),this.line.updateMatrix(),this.cone.scale.set(C,I,C),this.cone.position.y=A,this.cone.updateMatrix()}setColor(A){this.line.material.color.set(A),this.cone.material.color.set(A)}copy(A){return super.copy(A,!1),this.line.copy(A.line),this.cone.copy(A.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class bZ extends nQ{constructor(A=1){const I=[0,0,0,A,0,0,0,0,0,0,A,0,0,0,0,0,0,A],C=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],B=new WI;B.setAttribute("position",new GI(I,3)),B.setAttribute("color",new GI(C,3));const i=new dB({vertexColors:!0,toneMapped:!1});super(B,i),this.type="AxesHelper"}setColors(A,I,C){const B=new eI,i=this.geometry.attributes.color.array;return B.set(A),B.toArray(i,0),B.toArray(i,3),B.set(I),B.toArray(i,6),B.toArray(i,9),B.set(C),B.toArray(i,12),B.toArray(i,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class tE{constructor(){this.type="ShapePath",this.color=new eI,this.subPaths=[],this.currentPath=null}moveTo(A,I){return this.currentPath=new KE,this.subPaths.push(this.currentPath),this.currentPath.moveTo(A,I),this}lineTo(A,I){return this.currentPath.lineTo(A,I),this}quadraticCurveTo(A,I,C,B){return this.currentPath.quadraticCurveTo(A,I,C,B),this}bezierCurveTo(A,I,C,B,i,Q){return this.currentPath.bezierCurveTo(A,I,C,B,i,Q),this}splineThru(A){return this.currentPath.splineThru(A),this}toShapes(A){function I(c){const y=[];for(let S=0,k=c.length;SNumber.EPSILON){if(U<0&&(F=y[M],Z=-Z,q=y[N],U=-U),c.yq.y)continue;if(c.y===F.y){if(c.x===F.x)return!0}else{const K=U*(c.x-F.x)-Z*(c.y-F.y);if(K===0)return!0;if(K<0)continue;k=!k}}else{if(c.y!==F.y)continue;if(q.x<=c.x&&c.x<=F.x||F.x<=c.x&&c.x<=q.x)return!0}}return k}const B=eQ.isClockWise,i=this.subPaths;if(i.length===0)return[];let Q,e,E;const t=[];if(i.length===1)return e=i[0],E=new JE,E.curves=e.curves,t.push(E),t;let n=!B(i[0].getPoints());n=A?!n:n;const a=[],r=[];let l=[],D=0,G;r[D]=void 0,l[D]=[];for(let c=0,y=i.length;c1){let c=!1,y=0;for(let S=0,k=r.length;S0&&c===!1&&(l=a)}let h;for(let c=0,y=r.length;c{const a=typeof t=="function"?t(A):t;if(a!==A){const r=A;A=n?a:Object.assign({},A,a),I.forEach(l=>l(A,r))}},B=()=>A,i=(t,n=B,a=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let r=n(A);function l(){const D=n(A);if(!a(r,D)){const G=r;t(r=D,G)}}return I.add(l),()=>I.delete(l)},E={setState:C,getState:B,subscribe:(t,n,a)=>n||a?i(t,n,a):(I.add(t),()=>I.delete(t)),destroy:()=>I.clear()};return A=g(C,B,E),E}const ZZ=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),Kf=ZZ?T.useEffect:T.useLayoutEffect;function qL(g){const A=typeof g=="function"?_Z(g):g,I=(C=A.getState,B=Object.is)=>{const[,i]=T.useReducer(h=>h+1,0),Q=A.getState(),e=T.useRef(Q),E=T.useRef(C),t=T.useRef(B),n=T.useRef(!1),a=T.useRef();a.current===void 0&&(a.current=C(Q));let r,l=!1;(e.current!==Q||E.current!==C||t.current!==B||n.current)&&(r=C(Q),l=!B(a.current,r)),Kf(()=>{l&&(a.current=r),e.current=Q,E.current=C,t.current=B,n.current=!1});const D=T.useRef(Q);Kf(()=>{const h=()=>{try{const y=A.getState(),S=E.current(y);t.current(a.current,S)||(e.current=y,a.current=S,i())}catch{n.current=!0,i()}},c=A.subscribe(h);return A.getState()!==D.current&&h(),c},[]);const G=l?r:a.current;return T.useDebugValue(G),G};return Object.assign(I,A),I[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const C=[I,A];return{next(){const B=C.length<=0;return{value:C.shift(),done:B}}}},I}var mL={exports:{}},LL={exports:{}},YL={};/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(g){function A(v,CA){var gA=v.length;v.push(CA);A:for(;0>>1,NA=v[SA];if(0>>1;SAB(b,gA))YB(x,b)?(v[SA]=x,v[Y]=gA,SA=Y):(v[SA]=b,v[j]=gA,SA=j);else if(YB(x,gA))v[SA]=x,v[Y]=gA,SA=Y;else break A}}return CA}function B(v,CA){var gA=v.sortIndex-CA.sortIndex;return gA!==0?gA:v.id-CA.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;g.unstable_now=function(){return i.now()}}else{var Q=Date,e=Q.now();g.unstable_now=function(){return Q.now()-e}}var E=[],t=[],n=1,a=null,r=3,l=!1,D=!1,G=!1,h=typeof setTimeout=="function"?setTimeout:null,c=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(v){for(var CA=I(t);CA!==null;){if(CA.callback===null)C(t);else if(CA.startTime<=v)C(t),CA.sortIndex=CA.expirationTime,A(E,CA);else break;CA=I(t)}}function k(v){if(G=!1,S(v),!D)if(I(E)!==null)D=!0,iA(N);else{var CA=I(t);CA!==null&&wA(k,CA.startTime-v)}}function N(v,CA){D=!1,G&&(G=!1,c(q),q=-1),l=!0;var gA=r;try{for(S(CA),a=I(E);a!==null&&(!(a.expirationTime>CA)||v&&!K());){var SA=a.callback;if(typeof SA=="function"){a.callback=null,r=a.priorityLevel;var NA=SA(a.expirationTime<=CA);CA=g.unstable_now(),typeof NA=="function"?a.callback=NA:a===I(E)&&C(E),S(CA)}else C(E);a=I(E)}if(a!==null)var WA=!0;else{var j=I(t);j!==null&&wA(k,j.startTime-CA),WA=!1}return WA}finally{a=null,r=gA,l=!1}}var M=!1,F=null,q=-1,Z=5,U=-1;function K(){return!(g.unstable_now()-Uv||125SA?(v.sortIndex=gA,A(t,v),I(E)===null&&v===I(t)&&(G?(c(q),q=-1):G=!0,wA(k,gA-SA))):(v.sortIndex=NA,A(E,v),D||l||(D=!0,iA(N))),v},g.unstable_shouldYield=K,g.unstable_wrapCallback=function(v){var CA=r;return function(){var gA=r;r=CA;try{return v.apply(this,arguments)}finally{r=gA}}}})(YL);LL.exports=YL;var ju=LL.exports;/** + * @license React + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var PZ=function(A){var I={},C=T,B=ju,i=Object.assign;function Q(o){for(var s="https://reactjs.org/docs/error-decoder.html?invariant="+o,w=1;wyA||d[AA]!==R[yA]){var vA=` +`+d[AA].replace(" at new "," at ");return o.displayName&&vA.includes("")&&(vA=vA.replace("",o.displayName)),vA}while(1<=AA&&0<=yA);break}}}finally{VA=!1,Error.prepareStackTrace=w}return(o=o?o.displayName||o.name:"")?DI(o):""}var wI=Object.prototype.hasOwnProperty,FI=[],RI=-1;function OI(o){return{current:o}}function hI(o){0>RI||(o.current=FI[RI],FI[RI]=null,RI--)}function QI(o,s){RI++,FI[RI]=o.current,o.current=s}var jI={},NI=OI(jI),TI=OI(!1),dg=jI;function H(o,s){var w=o.type.contextTypes;if(!w)return jI;var u=o.stateNode;if(u&&u.__reactInternalMemoizedUnmaskedChildContext===s)return u.__reactInternalMemoizedMaskedChildContext;var d={},R;for(R in w)d[R]=s[R];return u&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=s,o.__reactInternalMemoizedMaskedChildContext=d),d}function O(o){return o=o.childContextTypes,o!=null}function BA(){hI(TI),hI(NI)}function aA(o,s,w){if(NI.current!==jI)throw Error(Q(168));QI(NI,s),QI(TI,w)}function dA(o,s,w){var u=o.stateNode;if(s=s.childContextTypes,typeof u.getChildContext!="function")return w;u=u.getChildContext();for(var d in u)if(!(d in s))throw Error(Q(108,q(o)||"Unknown",d));return i({},w,u)}function fA(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||jI,dg=NI.current,QI(NI,o),QI(TI,TI.current),!0}function TA(o,s,w){var u=o.stateNode;if(!u)throw Error(Q(169));w?(o=dA(o,s,dg),u.__reactInternalMemoizedMergedChildContext=o,hI(TI),hI(NI),QI(NI,o)):hI(TI),QI(TI,w)}var _A=Math.clz32?Math.clz32:nI,II=Math.log,zA=Math.LN2;function nI(o){return o>>>=0,o===0?32:31-(II(o)/zA|0)|0}var mI=64,Eg=4194304;function Yg(o){switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return o&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return o&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return o}}function Dg(o,s){var w=o.pendingLanes;if(w===0)return 0;var u=0,d=o.suspendedLanes,R=o.pingedLanes,AA=w&268435455;if(AA!==0){var yA=AA&~d;yA!==0?u=Yg(yA):(R&=AA,R!==0&&(u=Yg(R)))}else AA=w&~d,AA!==0?u=Yg(AA):R!==0&&(u=Yg(R));if(u===0)return 0;if(s!==0&&s!==u&&!(s&d)&&(d=u&-u,R=s&-s,d>=R||d===16&&(R&4194240)!==0))return s;if(u&4&&(u|=w&16),s=o.entangledLanes,s!==0)for(o=o.entanglements,s&=u;0w;w++)s.push(o);return s}function Te(o,s,w){o.pendingLanes|=s,s!==536870912&&(o.suspendedLanes=0,o.pingedLanes=0),o=o.eventTimes,s=31-_A(s),o[s]=w}function rl(o,s){var w=o.pendingLanes&~s;o.pendingLanes=s,o.suspendedLanes=0,o.pingedLanes=0,o.expiredLanes&=s,o.mutableReadLanes&=s,o.entangledLanes&=s,s=o.entanglements;var u=o.eventTimes;for(o=o.expirationTimes;0>=AA,d-=AA,_Q=1<<32-_A(s)+d|w<pg?(ZC=XI,XI=null):ZC=XI.sibling;var Ug=xI(JA,XI,HA[pg],cI);if(Ug===null){XI===null&&(XI=ZC);break}o&&XI&&Ug.alternate===null&&s(JA,XI),pA=R(Ug,pA,pg),Bg===null?KI=Ug:Bg.sibling=Ug,Bg=Ug,XI=ZC}if(pg===HA.length)return w(JA,XI),Vg&&Et(JA,pg),KI;if(XI===null){for(;pgpg?(ZC=XI,XI=null):ZC=XI.sibling;var We=xI(JA,XI,Ug.value,cI);if(We===null){XI===null&&(XI=ZC);break}o&&XI&&We.alternate===null&&s(JA,XI),pA=R(We,pA,pg),Bg===null?KI=We:Bg.sibling=We,Bg=We,XI=ZC}if(Ug.done)return w(JA,XI),Vg&&Et(JA,pg),KI;if(XI===null){for(;!Ug.done;pg++,Ug=HA.next())Ug=VI(JA,Ug.value,cI),Ug!==null&&(pA=R(Ug,pA,pg),Bg===null?KI=Ug:Bg.sibling=Ug,Bg=Ug);return Vg&&Et(JA,pg),KI}for(XI=u(JA,XI);!Ug.done;pg++,Ug=HA.next())Ug=qg(XI,JA,pg,Ug.value,cI),Ug!==null&&(o&&Ug.alternate!==null&&XI.delete(Ug.key===null?pg:Ug.key),pA=R(Ug,pA,pg),Bg===null?KI=Ug:Bg.sibling=Ug,Bg=Ug);return o&&XI.forEach(function(K2){return s(JA,K2)}),Vg&&Et(JA,pg),KI}function Mi(JA,pA,HA,cI){if(typeof HA=="object"&&HA!==null&&HA.type===n&&HA.key===null&&(HA=HA.props.children),typeof HA=="object"&&HA!==null){switch(HA.$$typeof){case E:A:{for(var KI=HA.key,Bg=pA;Bg!==null;){if(Bg.key===KI){if(KI=HA.type,KI===n){if(Bg.tag===7){w(JA,Bg.sibling),pA=d(Bg,HA.props.children),pA.return=JA,JA=pA;break A}}else if(Bg.elementType===KI||typeof KI=="object"&&KI!==null&&KI.$$typeof===S&&Fp(KI)===Bg.type){w(JA,Bg.sibling),pA=d(Bg,HA.props),pA.ref=Fs(JA,Bg,HA),pA.return=JA,JA=pA;break A}w(JA,Bg);break}else s(JA,Bg);Bg=Bg.sibling}HA.type===n?(pA=lt(HA.props.children,JA.mode,cI,HA.key),pA.return=JA,JA=pA):(cI=gc(HA.type,HA.key,HA.props,null,JA.mode,cI),cI.ref=Fs(JA,pA,HA),cI.return=JA,JA=cI)}return AA(JA);case t:A:{for(Bg=HA.key;pA!==null;){if(pA.key===Bg)if(pA.tag===4&&pA.stateNode.containerInfo===HA.containerInfo&&pA.stateNode.implementation===HA.implementation){w(JA,pA.sibling),pA=d(pA,HA.children||[]),pA.return=JA,JA=pA;break A}else{w(JA,pA);break}else s(JA,pA);pA=pA.sibling}pA=yG(HA,JA.mode,cI),pA.return=JA,JA=pA}return AA(JA);case S:return Bg=HA._init,Mi(JA,pA,Bg(HA._payload),cI)}if(eA(HA))return qI(JA,pA,HA,cI);if(M(HA))return lB(JA,pA,HA,cI);dl(JA,HA)}return typeof HA=="string"&&HA!==""||typeof HA=="number"?(HA=""+HA,pA!==null&&pA.tag===6?(w(JA,pA.sibling),pA=d(pA,HA),pA.return=JA,JA=pA):(w(JA,pA),pA=GG(HA,JA.mode,cI),pA.return=JA,JA=pA),AA(JA)):w(JA,pA)}return Mi}var fo=fp(!0),Rp=fp(!1),fs={},yi=OI(fs),Rs=OI(fs),Ro=OI(fs);function wQ(o){if(o===fs)throw Error(Q(174));return o}function HS(o,s){QI(Ro,s),QI(Rs,o),QI(yi,fs),o=wA(s),hI(yi),QI(yi,o)}function Ko(){hI(yi),hI(Rs),hI(Ro)}function Kp(o){var s=wQ(Ro.current),w=wQ(yi.current);s=v(w,o.type,s),w!==s&&(QI(Rs,o),QI(yi,s))}function TS(o){Rs.current===o&&(hI(yi),hI(Rs))}var $g=OI(0);function Ml(o){for(var s=o;s!==null;){if(s.tag===13){var w=s.memoizedState;if(w!==null&&(w=w.dehydrated,w===null||hi(w)||KC(w)))return s}else if(s.tag===19&&s.memoizedProps.revealOrder!==void 0){if(s.flags&128)return s}else if(s.child!==null){s.child.return=s,s=s.child;continue}if(s===o)break;for(;s.sibling===null;){if(s.return===null||s.return===o)return null;s=s.return}s.sibling.return=s.return,s=s.sibling}return null}var xS=[];function vS(){for(var o=0;ow?w:4,o(!0);var u=ui.transition;ui.transition={};try{o(!1),s()}finally{Mg=w,ui.transition=u}}function Pp(){return SQ().memoizedState}function Q2(o,s,w){var u=_e(o);w={lane:u,action:w,hasEagerState:!1,eagerState:null,next:null},Wp(o)?jp(s,w):(Vp(o,s,w),w=NB(),o=ki(o,u,w),o!==null&&Xp(o,s,u))}function e2(o,s,w){var u=_e(o),d={lane:u,action:w,hasEagerState:!1,eagerState:null,next:null};if(Wp(o))jp(s,d);else{Vp(o,s,d);var R=o.alternate;if(o.lanes===0&&(R===null||R.lanes===0)&&(R=s.lastRenderedReducer,R!==null))try{var AA=s.lastRenderedState,yA=R(AA,w);if(d.hasEagerState=!0,d.eagerState=yA,cQ(yA,AA))return}catch{}finally{}w=NB(),o=ki(o,u,w),o!==null&&Xp(o,s,u)}}function Wp(o){var s=o.alternate;return o===QC||s!==null&&s===QC}function jp(o,s){Ks=Ul=!0;var w=o.pending;w===null?s.next=s:(s.next=w.next,w.next=s),o.pending=s}function Vp(o,s,w){yC!==null&&o.mode&1&&!(ig&2)?(o=s.interleaved,o===null?(w.next=w,hQ===null?hQ=[s]:hQ.push(s)):(w.next=o.next,o.next=w),s.interleaved=w):(o=s.pending,o===null?w.next=w:(w.next=o.next,o.next=w),s.pending=w)}function Xp(o,s,w){if(w&4194240){var u=s.lanes;u&=o.pendingLanes,w|=u,s.lanes=w,yS(o,w)}}var Kl={readContext:wi,useCallback:aB,useContext:aB,useEffect:aB,useImperativeHandle:aB,useInsertionEffect:aB,useLayoutEffect:aB,useMemo:aB,useReducer:aB,useRef:aB,useState:aB,useDebugValue:aB,useDeferredValue:aB,useTransition:aB,useMutableSource:aB,useSyncExternalStore:aB,useId:aB,unstable_isNewReconciler:!1},E2={readContext:wi,useCallback:function(o,s){return PQ().memoizedState=[o,s===void 0?null:s],o},useContext:wi,useEffect:PS,useImperativeHandle:function(o,s,w){return w=w!=null?w.concat([o]):null,fl(4194308,4,bp.bind(null,s,o),w)},useLayoutEffect:function(o,s){return fl(4194308,4,o,s)},useInsertionEffect:function(o,s){return fl(4,2,o,s)},useMemo:function(o,s){var w=PQ();return s=s===void 0?null:s,o=o(),w.memoizedState=[o,s],o},useReducer:function(o,s,w){var u=PQ();return s=w!==void 0?w(s):s,u.memoizedState=u.baseState=s,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:s},u.queue=o,o=o.dispatch=Q2.bind(null,QC,o),[u.memoizedState,o]},useRef:function(o){var s=PQ();return o={current:o},s.memoizedState=o},useState:ZS,useDebugValue:WS,useDeferredValue:function(o){var s=ZS(o),w=s[0],u=s[1];return PS(function(){var d=ui.transition;ui.transition={};try{u(o)}finally{ui.transition=d}},[o]),w},useTransition:function(){var o=ZS(!1),s=o[0];return o=i2.bind(null,o[1]),PQ().memoizedState=o,[s,o]},useMutableSource:function(){},useSyncExternalStore:function(o,s,w){var u=QC,d=PQ();if(Vg){if(w===void 0)throw Error(Q(407));w=w()}else{if(w=s(),yC===null)throw Error(Q(349));Jo&30||mp(u,s,w)}d.memoizedState=w;var R={value:w,getSnapshot:s};return d.queue=R,PS(Yp.bind(null,u,R,o),[o]),u.flags|=2048,qs(9,Lp.bind(null,u,R,w,s),void 0,null),w},useId:function(){var o=PQ(),s=yC.identifierPrefix;if(Vg){var w=ZQ,u=_Q;w=(u&~(1<<32-_A(u)-1)).toString(32)+w,s=":"+s+"R"+w,w=Js++,0aG&&(s.flags|=128,u=!0,Hs(d,!1),s.lanes=4194304)}else{if(!u)if(o=Ml(R),o!==null){if(s.flags|=128,u=!0,o=o.updateQueue,o!==null&&(s.updateQueue=o,s.flags|=4),Hs(d,!0),d.tail===null&&d.tailMode==="hidden"&&!R.alternate&&!Vg)return rB(s),null}else 2*OC()-d.renderingStartTime>aG&&w!==1073741824&&(s.flags|=128,u=!0,Hs(d,!1),s.lanes=4194304);d.isBackwards?(R.sibling=s.child,s.child=R):(o=d.last,o!==null?o.sibling=R:s.child=R,d.last=R)}return d.tail!==null?(s=d.tail,d.rendering=s,d.tail=s.sibling,d.renderingStartTime=OC(),s.sibling=null,o=$g.current,QI($g,u?o&1|2:o&1),s):(rB(s),null);case 22:case 23:return hG(),u=s.memoizedState!==null,o!==null&&o.memoizedState!==null!==u&&(s.flags|=8192),u&&s.mode&1?gi&1073741824&&(rB(s),FA&&s.subtreeFlags&6&&(s.flags|=8192)):rB(s),null;case 24:return null;case 25:return null}throw Error(Q(156,s.tag))}var a2=e.ReactCurrentOwner,Ii=!1;function UB(o,s,w,u){s.child=o===null?Rp(s,null,w,u):fo(s,o.child,w,u)}function iU(o,s,w,u,d){w=w.render;var R=s.ref;return po(s,d),u=OS(o,s,w,u,R,d),w=_S(),o!==null&&!Ii?(s.updateQueue=o.updateQueue,s.flags&=-2053,o.lanes&=~d,WQ(o,s,d)):(Vg&&w&&JS(s),s.flags|=1,UB(o,s,u,d),s.child)}function QU(o,s,w,u,d){if(o===null){var R=w.type;return typeof R=="function"&&!SG(R)&&R.defaultProps===void 0&&w.compare===null&&w.defaultProps===void 0?(s.tag=15,s.type=R,eU(o,s,R,u,d)):(o=gc(w.type,null,u,s,s.mode,d),o.ref=s.ref,o.return=s,s.child=o)}if(R=o.child,!(o.lanes&d)){var AA=R.memoizedProps;if(w=w.compare,w=w!==null?w:Dl,w(AA,u)&&o.ref===s.ref)return WQ(o,s,d)}return s.flags|=1,o=Pe(R,u),o.ref=s.ref,o.return=s,s.child=o}function eU(o,s,w,u,d){if(o!==null&&Dl(o.memoizedProps,u)&&o.ref===s.ref)if(Ii=!1,(o.lanes&d)!==0)o.flags&131072&&(Ii=!0);else return s.lanes=o.lanes,WQ(o,s,d);return XS(o,s,w,u,d)}function EU(o,s,w){var u=s.pendingProps,d=u.children,R=o!==null?o.memoizedState:null;if(u.mode==="hidden")if(!(s.mode&1))s.memoizedState={baseLanes:0,cachePool:null},QI(qo,gi),gi|=w;else if(w&1073741824)s.memoizedState={baseLanes:0,cachePool:null},u=R!==null?R.baseLanes:w,QI(qo,gi),gi|=u;else return o=R!==null?R.baseLanes|w:w,s.lanes=s.childLanes=1073741824,s.memoizedState={baseLanes:o,cachePool:null},s.updateQueue=null,QI(qo,gi),gi|=o,null;else R!==null?(u=R.baseLanes|w,s.memoizedState=null):u=w,QI(qo,gi),gi|=u;return UB(o,s,d,w),s.child}function tU(o,s){var w=s.ref;(o===null&&w!==null||o!==null&&o.ref!==w)&&(s.flags|=512,s.flags|=2097152)}function XS(o,s,w,u,d){var R=O(w)?dg:NI.current;return R=H(s,R),po(s,d),w=OS(o,s,w,u,R,d),u=_S(),o!==null&&!Ii?(s.updateQueue=o.updateQueue,s.flags&=-2053,o.lanes&=~d,WQ(o,s,d)):(Vg&&u&&JS(s),s.flags|=1,UB(o,s,w,d),s.child)}function oU(o,s,w,u,d){if(O(w)){var R=!0;fA(s)}else R=!1;if(po(s,d),s.stateNode===null)o!==null&&(o.alternate=null,s.alternate=null,s.flags|=2),kp(s,w,u),KS(s,w,u,d),u=!0;else if(o===null){var AA=s.stateNode,yA=s.memoizedProps;AA.props=yA;var vA=AA.context,BI=w.contextType;typeof BI=="object"&&BI!==null?BI=wi(BI):(BI=O(w)?dg:NI.current,BI=H(s,BI));var uI=w.getDerivedStateFromProps,VI=typeof uI=="function"||typeof AA.getSnapshotBeforeUpdate=="function";VI||typeof AA.UNSAFE_componentWillReceiveProps!="function"&&typeof AA.componentWillReceiveProps!="function"||(yA!==u||vA!==BI)&&dp(s,AA,u,BI),xe=!1;var xI=s.memoizedState;AA.state=xI,Gl(s,u,AA,d),vA=s.memoizedState,yA!==u||xI!==vA||TI.current||xe?(typeof uI=="function"&&(RS(s,w,uI,u),vA=s.memoizedState),(yA=xe||up(s,w,yA,u,xI,vA,BI))?(VI||typeof AA.UNSAFE_componentWillMount!="function"&&typeof AA.componentWillMount!="function"||(typeof AA.componentWillMount=="function"&&AA.componentWillMount(),typeof AA.UNSAFE_componentWillMount=="function"&&AA.UNSAFE_componentWillMount()),typeof AA.componentDidMount=="function"&&(s.flags|=4194308)):(typeof AA.componentDidMount=="function"&&(s.flags|=4194308),s.memoizedProps=u,s.memoizedState=vA),AA.props=u,AA.state=vA,AA.context=BI,u=yA):(typeof AA.componentDidMount=="function"&&(s.flags|=4194308),u=!1)}else{AA=s.stateNode,wp(o,s),yA=s.memoizedProps,BI=s.type===s.elementType?yA:Oi(s.type,yA),AA.props=BI,VI=s.pendingProps,xI=AA.context,vA=w.contextType,typeof vA=="object"&&vA!==null?vA=wi(vA):(vA=O(w)?dg:NI.current,vA=H(s,vA));var qg=w.getDerivedStateFromProps;(uI=typeof qg=="function"||typeof AA.getSnapshotBeforeUpdate=="function")||typeof AA.UNSAFE_componentWillReceiveProps!="function"&&typeof AA.componentWillReceiveProps!="function"||(yA!==VI||xI!==vA)&&dp(s,AA,u,vA),xe=!1,xI=s.memoizedState,AA.state=xI,Gl(s,u,AA,d);var qI=s.memoizedState;yA!==VI||xI!==qI||TI.current||xe?(typeof qg=="function"&&(RS(s,w,qg,u),qI=s.memoizedState),(BI=xe||up(s,w,BI,u,xI,qI,vA)||!1)?(uI||typeof AA.UNSAFE_componentWillUpdate!="function"&&typeof AA.componentWillUpdate!="function"||(typeof AA.componentWillUpdate=="function"&&AA.componentWillUpdate(u,qI,vA),typeof AA.UNSAFE_componentWillUpdate=="function"&&AA.UNSAFE_componentWillUpdate(u,qI,vA)),typeof AA.componentDidUpdate=="function"&&(s.flags|=4),typeof AA.getSnapshotBeforeUpdate=="function"&&(s.flags|=1024)):(typeof AA.componentDidUpdate!="function"||yA===o.memoizedProps&&xI===o.memoizedState||(s.flags|=4),typeof AA.getSnapshotBeforeUpdate!="function"||yA===o.memoizedProps&&xI===o.memoizedState||(s.flags|=1024),s.memoizedProps=u,s.memoizedState=qI),AA.props=u,AA.state=qI,AA.context=vA,u=BI):(typeof AA.componentDidUpdate!="function"||yA===o.memoizedProps&&xI===o.memoizedState||(s.flags|=4),typeof AA.getSnapshotBeforeUpdate!="function"||yA===o.memoizedProps&&xI===o.memoizedState||(s.flags|=1024),u=!1)}return zS(o,s,w,u,R,d)}function zS(o,s,w,u,d,R){tU(o,s);var AA=(s.flags&128)!==0;if(!u&&!AA)return d&&TA(s,w,!1),WQ(o,s,R);u=s.stateNode,a2.current=s;var yA=AA&&typeof w.getDerivedStateFromError!="function"?null:u.render();return s.flags|=1,o!==null&&AA?(s.child=fo(s,o.child,null,R),s.child=fo(s,null,yA,R)):UB(o,s,yA,R),s.memoizedState=u.state,d&&TA(s,w,!0),s.child}function nU(o){var s=o.stateNode;s.pendingContext?aA(o,s.pendingContext,s.pendingContext!==s.context):s.context&&aA(o,s.context,!1),HS(o,s.containerInfo)}function sU(o,s,w,u,d){return Fo(),YS(d),s.flags|=256,UB(o,s,w,u),s.child}var ml={dehydrated:null,treeContext:null,retryLane:0};function Ll(o){return{baseLanes:o,cachePool:null}}function aU(o,s,w){var u=s.pendingProps,d=$g.current,R=!1,AA=(s.flags&128)!==0,yA;if((yA=AA)||(yA=o!==null&&o.memoizedState===null?!1:(d&2)!==0),yA?(R=!0,s.flags&=-129):(o===null||o.memoizedState!==null)&&(d|=1),QI($g,d&1),o===null)return LS(s),o=s.memoizedState,o!==null&&(o=o.dehydrated,o!==null)?(s.mode&1?KC(o)?s.lanes=8:s.lanes=1073741824:s.lanes=1,null):(d=u.children,o=u.fallback,R?(u=s.mode,R=s.child,d={mode:"hidden",children:d},!(u&1)&&R!==null?(R.childLanes=0,R.pendingProps=d):R=Cc(d,u,0,null),o=lt(o,u,w,null),R.return=s,o.return=s,R.sibling=o,s.child=R,s.child.memoizedState=Ll(w),s.memoizedState=ml,o):$S(s,d));if(d=o.memoizedState,d!==null){if(yA=d.dehydrated,yA!==null){if(AA)return s.flags&256?(s.flags&=-257,Yl(o,s,w,Error(Q(422)))):s.memoizedState!==null?(s.child=o.child,s.flags|=128,null):(R=u.fallback,d=s.mode,u=Cc({mode:"visible",children:u.children},d,0,null),R=lt(R,d,w,null),R.flags|=2,u.return=s,R.return=s,u.sibling=R,s.child=u,s.mode&1&&fo(s,o.child,null,w),s.child.memoizedState=Ll(w),s.memoizedState=ml,R);if(!(s.mode&1))s=Yl(o,s,w,null);else if(KC(yA))s=Yl(o,s,w,Error(Q(419)));else if(u=(w&o.childLanes)!==0,Ii||u){if(u=yC,u!==null){switch(w&-w){case 4:R=2;break;case 16:R=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:R=32;break;case 536870912:R=268435456;break;default:R=0}u=R&(u.suspendedLanes|w)?0:R,u!==0&&u!==d.retryLane&&(d.retryLane=u,ki(o,u,-1))}wG(),s=Yl(o,s,w,Error(Q(421)))}else hi(yA)?(s.flags|=128,s.child=o.child,s=M2.bind(null,o),MB(yA,s),s=null):(w=d.treeContext,UA&&(Ai=rQ(yA),$B=s,Vg=!0,_i=null,Us=!1,w!==null&&(Si[Gi++]=_Q,Si[Gi++]=ZQ,Si[Gi++]=et,_Q=w.id,ZQ=w.overflow,et=s)),s=$S(s,s.pendingProps.children),s.flags|=4096);return s}return R?(u=lU(o,s,u.children,u.fallback,w),R=s.child,d=o.child.memoizedState,R.memoizedState=d===null?Ll(w):{baseLanes:d.baseLanes|w,cachePool:null},R.childLanes=o.childLanes&~w,s.memoizedState=ml,u):(w=rU(o,s,u.children,w),s.memoizedState=null,w)}return R?(u=lU(o,s,u.children,u.fallback,w),R=s.child,d=o.child.memoizedState,R.memoizedState=d===null?Ll(w):{baseLanes:d.baseLanes|w,cachePool:null},R.childLanes=o.childLanes&~w,s.memoizedState=ml,u):(w=rU(o,s,u.children,w),s.memoizedState=null,w)}function $S(o,s){return s=Cc({mode:"visible",children:s},o.mode,0,null),s.return=o,o.child=s}function rU(o,s,w,u){var d=o.child;return o=d.sibling,w=Pe(d,{mode:"visible",children:w}),!(s.mode&1)&&(w.lanes=u),w.return=s,w.sibling=null,o!==null&&(u=s.deletions,u===null?(s.deletions=[o],s.flags|=16):u.push(o)),s.child=w}function lU(o,s,w,u,d){var R=s.mode;o=o.child;var AA=o.sibling,yA={mode:"hidden",children:w};return!(R&1)&&s.child!==o?(w=s.child,w.childLanes=0,w.pendingProps=yA,s.deletions=null):(w=Pe(o,yA),w.subtreeFlags=o.subtreeFlags&14680064),AA!==null?u=Pe(AA,u):(u=lt(u,R,d,null),u.flags|=2),u.return=s,w.return=s,w.sibling=u,s.child=w,u}function Yl(o,s,w,u){return u!==null&&YS(u),fo(s,o.child,null,w),o=$S(s,s.pendingProps.children),o.flags|=2,s.memoizedState=null,o}function cU(o,s,w){o.lanes|=s;var u=o.alternate;u!==null&&(u.lanes|=s),FS(o.return,s,w)}function AG(o,s,w,u,d){var R=o.memoizedState;R===null?o.memoizedState={isBackwards:s,rendering:null,renderingStartTime:0,last:u,tail:w,tailMode:d}:(R.isBackwards=s,R.rendering=null,R.renderingStartTime=0,R.last=u,R.tail=w,R.tailMode=d)}function DU(o,s,w){var u=s.pendingProps,d=u.revealOrder,R=u.tail;if(UB(o,s,u.children,w),u=$g.current,u&2)u=u&1|2,s.flags|=128;else{if(o!==null&&o.flags&128)A:for(o=s.child;o!==null;){if(o.tag===13)o.memoizedState!==null&&cU(o,w,s);else if(o.tag===19)cU(o,w,s);else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===s)break A;for(;o.sibling===null;){if(o.return===null||o.return===s)break A;o=o.return}o.sibling.return=o.return,o=o.sibling}u&=1}if(QI($g,u),!(s.mode&1))s.memoizedState=null;else switch(d){case"forwards":for(w=s.child,d=null;w!==null;)o=w.alternate,o!==null&&Ml(o)===null&&(d=w),w=w.sibling;w=d,w===null?(d=s.child,s.child=null):(d=w.sibling,w.sibling=null),AG(s,!1,d,w,R);break;case"backwards":for(w=null,d=s.child,s.child=null;d!==null;){if(o=d.alternate,o!==null&&Ml(o)===null){s.child=d;break}o=d.sibling,d.sibling=w,w=d,d=o}AG(s,!0,w,null,R);break;case"together":AG(s,!1,null,null,void 0);break;default:s.memoizedState=null}return s.child}function WQ(o,s,w){if(o!==null&&(s.dependencies=o.dependencies),mo|=s.lanes,!(w&s.childLanes))return null;if(o!==null&&s.child!==o.child)throw Error(Q(153));if(s.child!==null){for(o=s.child,w=Pe(o,o.pendingProps),s.child=w,w.return=s;o.sibling!==null;)o=o.sibling,w=w.sibling=Pe(o,o.pendingProps),w.return=s;w.sibling=null}return s.child}function r2(o,s,w){switch(s.tag){case 3:nU(s),Fo();break;case 5:Kp(s);break;case 1:O(s.type)&&fA(s);break;case 4:HS(s,s.stateNode.containerInfo);break;case 10:hp(s,s.type._context,s.memoizedProps.value);break;case 13:var u=s.memoizedState;if(u!==null)return u.dehydrated!==null?(QI($g,$g.current&1),s.flags|=128,null):w&s.child.childLanes?aU(o,s,w):(QI($g,$g.current&1),o=WQ(o,s,w),o!==null?o.sibling:null);QI($g,$g.current&1);break;case 19:if(u=(w&s.childLanes)!==0,o.flags&128){if(u)return DU(o,s,w);s.flags|=128}var d=s.memoizedState;if(d!==null&&(d.rendering=null,d.tail=null,d.lastEffect=null),QI($g,$g.current),u)break;return null;case 22:case 23:return s.lanes=0,EU(o,s,w)}return WQ(o,s,w)}function l2(o,s){switch(qS(s),s.tag){case 1:return O(s.type)&&BA(),o=s.flags,o&65536?(s.flags=o&-65537|128,s):null;case 3:return Ko(),hI(TI),hI(NI),vS(),o=s.flags,o&65536&&!(o&128)?(s.flags=o&-65537|128,s):null;case 5:return TS(s),null;case 13:if(hI($g),o=s.memoizedState,o!==null&&o.dehydrated!==null){if(s.alternate===null)throw Error(Q(340));Fo()}return o=s.flags,o&65536?(s.flags=o&-65537|128,s):null;case 19:return hI($g),null;case 4:return Ko(),null;case 10:return NS(s.type._context),null;case 22:case 23:return hG(),null;case 24:return null;default:return null}}var Hl=!1,ot=!1,c2=typeof WeakSet=="function"?WeakSet:Set,rI=null;function Tl(o,s){var w=o.ref;if(w!==null)if(typeof w=="function")try{w(null)}catch(u){vB(o,s,u)}else w.current=null}function IG(o,s,w){try{w()}catch(u){vB(o,s,u)}}var hU=!1;function D2(o,s){for(CA(o.containerInfo),rI=s;rI!==null;)if(o=rI,s=o.child,(o.subtreeFlags&1028)!==0&&s!==null)s.return=o,rI=s;else for(;rI!==null;){o=rI;try{var w=o.alternate;if(o.flags&1024)switch(o.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var u=w.memoizedProps,d=w.memoizedState,R=o.stateNode,AA=R.getSnapshotBeforeUpdate(o.elementType===o.type?u:Oi(o.type,u),d);R.__reactInternalSnapshotBeforeUpdate=AA}break;case 3:FA&&AI(o.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(Q(163))}}catch(yA){vB(o,o.return,yA)}if(s=o.sibling,s!==null){s.return=o.return,rI=s;break}rI=o.return}return w=hU,hU=!1,w}function nt(o,s,w){var u=s.updateQueue;if(u=u!==null?u.lastEffect:null,u!==null){var d=u=u.next;do{if((d.tag&o)===o){var R=d.destroy;d.destroy=void 0,R!==void 0&&IG(s,w,R)}d=d.next}while(d!==u)}}function Ts(o,s){if(s=s.updateQueue,s=s!==null?s.lastEffect:null,s!==null){var w=s=s.next;do{if((w.tag&o)===o){var u=w.create;w.destroy=u()}w=w.next}while(w!==s)}}function gG(o){var s=o.ref;if(s!==null){var w=o.stateNode;switch(o.tag){case 5:o=iA(w);break;default:o=w}typeof s=="function"?s(o):s.current=o}}function wU(o,s,w){if(lQ&&typeof lQ.onCommitFiberUnmount=="function")try{lQ.onCommitFiberUnmount(ll,s)}catch{}switch(s.tag){case 0:case 11:case 14:case 15:if(o=s.updateQueue,o!==null&&(o=o.lastEffect,o!==null)){var u=o=o.next;do{var d=u,R=d.destroy;d=d.tag,R!==void 0&&(d&2||d&4)&&IG(s,w,R),u=u.next}while(u!==o)}break;case 1:if(Tl(s,w),o=s.stateNode,typeof o.componentWillUnmount=="function")try{o.props=s.memoizedProps,o.state=s.memoizedState,o.componentWillUnmount()}catch(AA){vB(s,w,AA)}break;case 5:Tl(s,w);break;case 4:FA?dU(o,s,w):W&&W&&(s=s.stateNode.containerInfo,w=lI(s),rg(s,w))}}function SU(o,s,w){for(var u=s;;)if(wU(o,u,w),u.child===null||FA&&u.tag===4){if(u===s)break;for(;u.sibling===null;){if(u.return===null||u.return===s)return;u=u.return}u.sibling.return=u.return,u=u.sibling}else u.child.return=u,u=u.child}function GU(o){var s=o.alternate;s!==null&&(o.alternate=null,GU(s)),o.child=null,o.deletions=null,o.sibling=null,o.tag===5&&(s=o.stateNode,s!==null&&bA(s)),o.stateNode=null,o.return=null,o.dependencies=null,o.memoizedProps=null,o.memoizedState=null,o.pendingProps=null,o.stateNode=null,o.updateQueue=null}function yU(o){return o.tag===5||o.tag===3||o.tag===4}function uU(o){A:for(;;){for(;o.sibling===null;){if(o.return===null||yU(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.flags&2||o.child===null||o.tag===4)continue A;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function kU(o){if(FA){A:{for(var s=o.return;s!==null;){if(yU(s))break A;s=s.return}throw Error(Q(160))}var w=s;switch(w.tag){case 5:s=w.stateNode,w.flags&32&&(JI(s),w.flags&=-33),w=uU(o),BG(o,w,s);break;case 3:case 4:s=w.stateNode.containerInfo,w=uU(o),CG(o,w,s);break;default:throw Error(Q(161))}}}function CG(o,s,w){var u=o.tag;if(u===5||u===6)o=o.stateNode,s?tI(w,o,s):fI(w,o);else if(u!==4&&(o=o.child,o!==null))for(CG(o,s,w),o=o.sibling;o!==null;)CG(o,s,w),o=o.sibling}function BG(o,s,w){var u=o.tag;if(u===5||u===6)o=o.stateNode,s?kI(w,o,s):SI(w,o);else if(u!==4&&(o=o.child,o!==null))for(BG(o,s,w),o=o.sibling;o!==null;)BG(o,s,w),o=o.sibling}function dU(o,s,w){for(var u=s,d=!1,R,AA;;){if(!d){d=u.return;A:for(;;){if(d===null)throw Error(Q(160));switch(R=d.stateNode,d.tag){case 5:AA=!1;break A;case 3:R=R.containerInfo,AA=!0;break A;case 4:R=R.containerInfo,AA=!0;break A}d=d.return}d=!0}if(u.tag===5||u.tag===6)SU(o,u,w),AA?UI(R,u.stateNode):aI(R,u.stateNode);else if(u.tag===18)AA?QA(R,u.stateNode):sA(R,u.stateNode);else if(u.tag===4){if(u.child!==null){R=u.stateNode.containerInfo,AA=!0,u.child.return=u,u=u.child;continue}}else if(wU(o,u,w),u.child!==null){u.child.return=u,u=u.child;continue}if(u===s)break;for(;u.sibling===null;){if(u.return===null||u.return===s)return;u=u.return,u.tag===4&&(d=!1)}u.sibling.return=u.return,u=u.sibling}}function iG(o,s){if(FA){switch(s.tag){case 0:case 11:case 14:case 15:nt(3,s,s.return),Ts(3,s),nt(5,s,s.return);return;case 1:return;case 5:var w=s.stateNode;if(w!=null){var u=s.memoizedProps;o=o!==null?o.memoizedProps:u;var d=s.type,R=s.updateQueue;s.updateQueue=null,R!==null&&LI(w,R,d,o,u,s)}return;case 6:if(s.stateNode===null)throw Error(Q(162));w=s.memoizedProps,PA(s.stateNode,o!==null?o.memoizedProps:w,w);return;case 3:UA&&o!==null&&o.memoizedState.isDehydrated&&V(s.stateNode.containerInfo);return;case 12:return;case 13:xl(s);return;case 19:xl(s);return;case 17:return}throw Error(Q(163))}switch(s.tag){case 0:case 11:case 14:case 15:nt(3,s,s.return),Ts(3,s),nt(5,s,s.return);return;case 12:return;case 13:xl(s);return;case 19:xl(s);return;case 3:UA&&o!==null&&o.memoizedState.isDehydrated&&V(s.stateNode.containerInfo);break;case 22:case 23:return}A:if(W){switch(s.tag){case 1:case 5:case 6:break A;case 3:case 4:s=s.stateNode,rg(s.containerInfo,s.pendingChildren);break A}throw Error(Q(163))}}function xl(o){var s=o.updateQueue;if(s!==null){o.updateQueue=null;var w=o.stateNode;w===null&&(w=o.stateNode=new c2),s.forEach(function(u){var d=p2.bind(null,o,u);w.has(u)||(w.add(u),u.then(d,d))})}}function h2(o,s){for(rI=s;rI!==null;){s=rI;var w=s.deletions;if(w!==null)for(var u=0;u";case bl:return":has("+(EG(o)||"")+")";case Ol:return'[role="'+o.value+'"]';case Zl:return'"'+o.value+'"';case _l:return'[data-testname="'+o.value+'"]';default:throw Error(Q(365))}}function FU(o,s){var w=[];o=[o,0];for(var u=0;ud&&(d=AA),u&=~R}if(u=d,u=OC()-u,u=(120>u?120:480>u?480:1080>u?1080:1920>u?1920:3e3>u?3e3:4320>u?4320:1960*S2(u/1960))-u,10o?16:o,Oe===null)var u=!1;else{if(o=Oe,Oe=null,Xl=0,ig&6)throw Error(Q(331));var d=ig;for(ig|=4,rI=o.current;rI!==null;){var R=rI,AA=R.child;if(rI.flags&16){var yA=R.deletions;if(yA!==null){for(var vA=0;vAOC()-sG?st(o,0):nG|=w),xB(o,s)}function HU(o,s){s===0&&(o.mode&1?(s=Eg,Eg<<=1,!(Eg&130023424)&&(Eg=4194304)):s=1);var w=NB();o=Ac(o,s),o!==null&&(Te(o,s,w),xB(o,w))}function M2(o){var s=o.memoizedState,w=0;s!==null&&(w=s.retryLane),HU(o,w)}function p2(o,s){var w=0;switch(o.tag){case 13:var u=o.stateNode,d=o.memoizedState;d!==null&&(w=d.retryLane);break;case 19:u=o.stateNode;break;default:throw Error(Q(314))}u!==null&&u.delete(s),HU(o,w)}var TU;TU=function(o,s,w){if(o!==null)if(o.memoizedProps!==s.pendingProps||TI.current)Ii=!0;else{if(!(o.lanes&w)&&!(s.flags&128))return Ii=!1,r2(o,s,w);Ii=!!(o.flags&131072)}else Ii=!1,Vg&&s.flags&1048576&&Mp(s,kl,s.index);switch(s.lanes=0,s.tag){case 2:var u=s.type;o!==null&&(o.alternate=null,s.alternate=null,s.flags|=2),o=s.pendingProps;var d=H(s,NI.current);po(s,w),d=OS(null,s,u,o,d,w);var R=_S();return s.flags|=1,typeof d=="object"&&d!==null&&typeof d.render=="function"&&d.$$typeof===void 0?(s.tag=1,s.memoizedState=null,s.updateQueue=null,O(u)?(R=!0,fA(s)):R=!1,s.memoizedState=d.state!==null&&d.state!==void 0?d.state:null,fS(s),d.updater=yl,s.stateNode=d,d._reactInternals=s,KS(s,u,o,w),s=zS(null,s,u,!0,R,w)):(s.tag=0,Vg&&R&&JS(s),UB(null,s,d,w),s=s.child),s;case 16:u=s.elementType;A:{switch(o!==null&&(o.alternate=null,s.alternate=null,s.flags|=2),o=s.pendingProps,d=u._init,u=d(u._payload),s.type=u,d=s.tag=N2(u),o=Oi(u,o),d){case 0:s=XS(null,s,u,o,w);break A;case 1:s=oU(null,s,u,o,w);break A;case 11:s=iU(null,s,u,o,w);break A;case 14:s=QU(null,s,u,Oi(u.type,o),w);break A}throw Error(Q(306,u,""))}return s;case 0:return u=s.type,d=s.pendingProps,d=s.elementType===u?d:Oi(u,d),XS(o,s,u,d,w);case 1:return u=s.type,d=s.pendingProps,d=s.elementType===u?d:Oi(u,d),oU(o,s,u,d,w);case 3:A:{if(nU(s),o===null)throw Error(Q(387));u=s.pendingProps,R=s.memoizedState,d=R.element,wp(o,s),Gl(s,u,null,w);var AA=s.memoizedState;if(u=AA.element,UA&&R.isDehydrated)if(R={element:u,isDehydrated:!1,cache:AA.cache,transitions:AA.transitions},s.updateQueue.baseState=R,s.memoizedState=R,s.flags&256){d=Error(Q(423)),s=sU(o,s,u,w,d);break A}else if(u!==d){d=Error(Q(424)),s=sU(o,s,u,w,d);break A}else for(UA&&(Ai=bi(s.stateNode.containerInfo),$B=s,Vg=!0,_i=null,Us=!1),w=Rp(s,null,u,w),s.child=w;w;)w.flags=w.flags&-3|4096,w=w.sibling;else{if(Fo(),u===d){s=WQ(o,s,w);break A}UB(o,s,u,w)}s=s.child}return s;case 5:return Kp(s),o===null&&LS(s),u=s.type,d=s.pendingProps,R=o!==null?o.memoizedProps:null,AA=d.children,b(u,d)?AA=null:R!==null&&b(u,R)&&(s.flags|=32),tU(o,s),UB(o,s,AA,w),s.child;case 6:return o===null&&LS(s),null;case 13:return aU(o,s,w);case 4:return HS(s,s.stateNode.containerInfo),u=s.pendingProps,o===null?s.child=fo(s,null,u,w):UB(o,s,u,w),s.child;case 11:return u=s.type,d=s.pendingProps,d=s.elementType===u?d:Oi(u,d),iU(o,s,u,d,w);case 7:return UB(o,s,s.pendingProps,w),s.child;case 8:return UB(o,s,s.pendingProps.children,w),s.child;case 12:return UB(o,s,s.pendingProps.children,w),s.child;case 10:A:{if(u=s.type._context,d=s.pendingProps,R=s.memoizedProps,AA=d.value,hp(s,u,AA),R!==null)if(cQ(R.value,AA)){if(R.children===d.children&&!TI.current){s=WQ(o,s,w);break A}}else for(R=s.child,R!==null&&(R.return=s);R!==null;){var yA=R.dependencies;if(yA!==null){AA=R.child;for(var vA=yA.firstContext;vA!==null;){if(vA.context===u){if(R.tag===1){vA=OQ(-1,w&-w),vA.tag=2;var BI=R.updateQueue;if(BI!==null){BI=BI.shared;var uI=BI.pending;uI===null?vA.next=vA:(vA.next=uI.next,uI.next=vA),BI.pending=vA}}R.lanes|=w,vA=R.alternate,vA!==null&&(vA.lanes|=w),FS(R.return,w,s),yA.lanes|=w;break}vA=vA.next}}else if(R.tag===10)AA=R.type===s.type?null:R.child;else if(R.tag===18){if(AA=R.return,AA===null)throw Error(Q(341));AA.lanes|=w,yA=AA.alternate,yA!==null&&(yA.lanes|=w),FS(AA,w,s),AA=R.sibling}else AA=R.child;if(AA!==null)AA.return=R;else for(AA=R;AA!==null;){if(AA===s){AA=null;break}if(R=AA.sibling,R!==null){R.return=AA.return,AA=R;break}AA=AA.return}R=AA}UB(o,s,d.children,w),s=s.child}return s;case 9:return d=s.type,u=s.pendingProps.children,po(s,w),d=wi(d),u=u(d),s.flags|=1,UB(o,s,u,w),s.child;case 14:return u=s.type,d=Oi(u,s.pendingProps),d=Oi(u.type,d),QU(o,s,u,d,w);case 15:return eU(o,s,s.type,s.pendingProps,w);case 17:return u=s.type,d=s.pendingProps,d=s.elementType===u?d:Oi(u,d),o!==null&&(o.alternate=null,s.alternate=null,s.flags|=2),s.tag=1,O(u)?(o=!0,fA(s)):o=!1,po(s,w),kp(s,u,d),KS(s,u,d,w),zS(null,s,u,!0,o,w);case 19:return DU(o,s,w);case 22:return EU(o,s,w)}throw Error(Q(156,s.tag))};function xU(o,s){return uS(o,s)}function U2(o,s,w,u){this.tag=o,this.key=w,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=s,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=u,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function di(o,s,w,u){return new U2(o,s,w,u)}function SG(o){return o=o.prototype,!(!o||!o.isReactComponent)}function N2(o){if(typeof o=="function")return SG(o)?1:0;if(o!=null){if(o=o.$$typeof,o===G)return 11;if(o===y)return 14}return 2}function Pe(o,s){var w=o.alternate;return w===null?(w=di(o.tag,s,o.key,o.mode),w.elementType=o.elementType,w.type=o.type,w.stateNode=o.stateNode,w.alternate=o,o.alternate=w):(w.pendingProps=s,w.type=o.type,w.flags=0,w.subtreeFlags=0,w.deletions=null),w.flags=o.flags&14680064,w.childLanes=o.childLanes,w.lanes=o.lanes,w.child=o.child,w.memoizedProps=o.memoizedProps,w.memoizedState=o.memoizedState,w.updateQueue=o.updateQueue,s=o.dependencies,w.dependencies=s===null?null:{lanes:s.lanes,firstContext:s.firstContext},w.sibling=o.sibling,w.index=o.index,w.ref=o.ref,w}function gc(o,s,w,u,d,R){var AA=2;if(u=o,typeof o=="function")SG(o)&&(AA=1);else if(typeof o=="string")AA=5;else A:switch(o){case n:return lt(w.children,d,R,s);case a:AA=8,d|=8;break;case r:return o=di(12,w,s,d|2),o.elementType=r,o.lanes=R,o;case h:return o=di(13,w,s,d),o.elementType=h,o.lanes=R,o;case c:return o=di(19,w,s,d),o.elementType=c,o.lanes=R,o;case k:return Cc(w,d,R,s);default:if(typeof o=="object"&&o!==null)switch(o.$$typeof){case l:AA=10;break A;case D:AA=9;break A;case G:AA=11;break A;case y:AA=14;break A;case S:AA=16,u=null;break A}throw Error(Q(130,o==null?o:typeof o,""))}return s=di(AA,w,s,d),s.elementType=o,s.type=u,s.lanes=R,s}function lt(o,s,w,u){return o=di(7,o,u,s),o.lanes=w,o}function Cc(o,s,w,u){return o=di(22,o,u,s),o.elementType=k,o.lanes=w,o.stateNode={},o}function GG(o,s,w){return o=di(6,o,null,s),o.lanes=w,o}function yG(o,s,w){return s=di(4,o.children!==null?o.children:[],o.key,s),s.lanes=w,s.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},s}function F2(o,s,w,u,d){this.tag=s,this.containerInfo=o,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=MA,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zB(0),this.expirationTimes=zB(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zB(0),this.identifierPrefix=u,this.onRecoverableError=d,UA&&(this.mutableSourceEagerHydrationData=null)}function vU(o,s,w,u,d,R,AA,yA,vA){return o=new F2(o,s,w,yA,vA),s===1?(s=1,R===!0&&(s|=8)):s=0,R=di(3,null,null,s),o.current=R,R.stateNode=o,R.memoizedState={element:u,isDehydrated:w,cache:null,transitions:null},fS(R),o}function bU(o){if(!o)return jI;o=o._reactInternals;A:{if(Z(o)!==o||o.tag!==1)throw Error(Q(170));var s=o;do{switch(s.tag){case 3:s=s.stateNode.context;break A;case 1:if(O(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break A}}s=s.return}while(s!==null);throw Error(Q(171))}if(o.tag===1){var w=o.type;if(O(w))return dA(o,w,s)}return s}function OU(o){var s=o._reactInternals;if(s===void 0)throw typeof o.render=="function"?Error(Q(188)):(o=Object.keys(o).join(","),Error(Q(268,o)));return o=z(s),o===null?null:o.stateNode}function _U(o,s){if(o=o.memoizedState,o!==null&&o.dehydrated!==null){var w=o.retryLane;o.retryLane=w!==0&&w=BI&&R>=VI&&d<=uI&&AA<=xI){o.splice(s,1);break}else if(u!==BI||w.width!==vA.width||xIAA){if(!(R!==VI||w.height!==vA.height||uId)){BI>u&&(vA.width+=BI-u,vA.x=u),uIR&&(vA.height+=VI-R,vA.y=R),xIw&&(w=AA)),AA ")+` + +No matching component was found for: + `)+o.join(" > ")}return null},I.getPublicRootInstance=function(o){if(o=o.current,!o.child)return null;switch(o.child.tag){case 5:return iA(o.child.stateNode);default:return o.child.stateNode}},I.injectIntoDevTools=function(o){if(o={bundleType:o.bundleType,version:o.version,rendererPackageName:o.rendererPackageName,rendererConfig:o.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:e.ReactCurrentDispatcher,findHostInstanceByFiber:f2,findFiberByHostInstance:o.findFiberByHostInstance||R2,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")o=!1;else{var s=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(s.isDisabled||!s.supportsFiber)o=!0;else{try{ll=s.inject(o),lQ=s}catch{}o=!!s.checkDCE}}return o},I.isAlreadyRendering=function(){return!1},I.observeVisibleRects=function(o,s,w,u){if(!m)throw Error(Q(363));o=tG(o,s);var d=sI(o,w,u).disconnect;return{disconnect:function(){d()}}},I.registerMutableSourceForHydration=function(o,s){var w=s._getVersion;w=w(s._source),o.mutableSourceEagerHydrationData==null?o.mutableSourceEagerHydrationData=[s,w]:o.mutableSourceEagerHydrationData.push(s,w)},I.runWithPriority=function(o,s){var w=Mg;try{return Mg=o,s()}finally{Mg=w}},I.shouldError=function(){return null},I.shouldSuspend=function(){return!1},I.updateContainer=function(o,s,w,u){var d=s.current,R=NB(),AA=_e(d);return w=bU(w),s.context===null?s.context=w:s.pendingContext=w,s=OQ(R,AA),s.payload={element:o},u=u===void 0?null:u,u!==null&&(s.callback=u),ve(d,s),o=ki(d,AA,R),o!==null&&Sl(o,d,AA),AA},I};mL.exports=PZ;var WZ=mL.exports;const jZ=Xh(WZ),VZ=g=>typeof g=="object"&&typeof g.then=="function",Pt=[];function HL(g,A,I=(C,B)=>C===B){if(g===A)return!0;if(!g||!A)return!1;const C=g.length;if(A.length!==C)return!1;for(let B=0;B0&&(i.timeout&&clearTimeout(i.timeout),i.timeout=setTimeout(i.remove,C.lifespan)),i.response;if(!I)throw i.promise}const B={keys:A,equal:C.equal,remove:()=>{const i=Pt.indexOf(B);i!==-1&&Pt.splice(i,1)},promise:(VZ(g)?g:g(...A)).then(i=>{B.response=i,C.lifespan&&C.lifespan>0&&(B.timeout=setTimeout(B.remove,C.lifespan))}).catch(i=>B.error=i)};if(Pt.push(B),!I)throw B.promise}const XZ=(g,A,I)=>TL(g,A,!1,I),zZ=(g,A,I)=>void TL(g,A,!0,I),$Z=g=>{if(g===void 0||g.length===0)Pt.splice(0,Pt.length);else{const A=Pt.find(I=>HL(g,I.keys,I.equal));A&&A.remove()}},oM={},bw=g=>void Object.assign(oM,g);function AP(g,A){function I(n,{args:a=[],attach:r,...l},D){let G=`${n[0].toUpperCase()}${n.slice(1)}`,h;if(n==="primitive"){if(l.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const c=l.object;h=an(c,{type:n,root:D,attach:r,primitive:!0})}else{const c=oM[G];if(!c)throw new Error(`R3F: ${G} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(a))throw new Error("R3F: The args prop must be an array!");h=an(new c(...a),{type:n,root:D,attach:r,memoizedProps:{args:a}})}return h.__r3f.attach===void 0&&(h instanceof WI?h.__r3f.attach="geometry":h instanceof hC&&(h.__r3f.attach="material")),G!=="inject"&&qy(h,l),h}function C(n,a){let r=!1;if(a){var l,D;(l=a.__r3f)!=null&&l.attach?Jy(n,a,a.__r3f.attach):a.isObject3D&&n.isObject3D&&(n.add(a),r=!0),r||(D=n.__r3f)==null||D.objects.push(a),a.__r3f||an(a,{}),a.__r3f.parent=n,Xu(a),rn(a)}}function B(n,a,r){let l=!1;if(a){var D,G;if((D=a.__r3f)!=null&&D.attach)Jy(n,a,a.__r3f.attach);else if(a.isObject3D&&n.isObject3D){a.parent=n,a.dispatchEvent({type:"added"});const h=n.children.filter(y=>y!==a),c=h.indexOf(r);n.children=[...h.slice(0,c),a,...h.slice(c)],l=!0}l||(G=n.__r3f)==null||G.objects.push(a),a.__r3f||an(a,{}),a.__r3f.parent=n,Xu(a),rn(a)}}function i(n,a,r=!1){n&&[...n].forEach(l=>Q(a,l,r))}function Q(n,a,r){if(a){var l,D,G;if(a.__r3f&&(a.__r3f.parent=null),(l=n.__r3f)!=null&&l.objects&&(n.__r3f.objects=n.__r3f.objects.filter(k=>k!==a)),(D=a.__r3f)!=null&&D.attach)Yf(n,a,a.__r3f.attach);else if(a.isObject3D&&n.isObject3D){var h;n.remove(a),(h=a.__r3f)!=null&&h.root&&EP(a.__r3f.root,a)}const y=(G=a.__r3f)==null?void 0:G.primitive,S=!y&&(r===void 0?a.dispose!==null:r);if(!y){var c;i((c=a.__r3f)==null?void 0:c.objects,a,S),i(a.children,a,S)}if(delete a.__r3f,S&&a.dispose&&a.type!=="Scene"){const k=()=>{try{a.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?ju.unstable_scheduleCallback(ju.unstable_IdlePriority,k):k()}rn(n)}}function e(n,a,r,l){var D;const G=(D=n.__r3f)==null?void 0:D.parent;if(!G)return;const h=I(a,r,n.__r3f.root);if(n.children){for(const c of n.children)c.__r3f&&C(h,c);n.children=n.children.filter(c=>!c.__r3f)}n.__r3f.objects.forEach(c=>C(h,c)),n.__r3f.objects=[],n.__r3f.autoRemovedBeforeAppend||Q(G,n),h.parent&&(h.__r3f.autoRemovedBeforeAppend=!0),C(G,h),h.raycast&&h.__r3f.eventCount&&h.__r3f.root.getState().internal.interaction.push(h),[l,l.alternate].forEach(c=>{c!==null&&(c.stateNode=h,c.ref&&(typeof c.ref=="function"?c.ref(h):c.ref.current=h))})}const E=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:jZ({createInstance:I,removeChild:Q,appendChild:C,appendInitialChild:C,insertBefore:B,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(n,a)=>{if(!a)return;const r=n.getState().scene;r.__r3f&&(r.__r3f.root=n,C(r,a))},removeChildFromContainer:(n,a)=>{a&&Q(n.getState().scene,a)},insertInContainerBefore:(n,a,r)=>{if(!a||!r)return;const l=n.getState().scene;l.__r3f&&B(l,a,r)},getRootHostContext:()=>null,getChildHostContext:n=>n,finalizeInitialChildren(n){var a;return!!((a=n==null?void 0:n.__r3f)!=null?a:{}).handlers},prepareUpdate(n,a,r,l){var D;if(((D=n==null?void 0:n.__r3f)!=null?D:{}).primitive&&l.object&&l.object!==n)return[!0];{const{args:h=[],children:c,...y}=l,{args:S=[],children:k,...N}=r;if(!Array.isArray(h))throw new Error("R3F: the args prop must be an array!");if(h.some((F,q)=>F!==S[q]))return[!0];const M=PL(n,y,N,!0);return M.changes.length?[!1,M]:null}},commitUpdate(n,[a,r],l,D,G,h){a?e(n,l,G,h):qy(n,r)},commitMount(n,a,r,l){var D;const G=(D=n.__r3f)!=null?D:{};n.raycast&&G.handlers&&G.eventCount&&n.__r3f.root.getState().internal.interaction.push(n)},getPublicInstance:n=>n,prepareForCommit:()=>null,preparePortalMount:n=>an(n.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(n){var a;const{attach:r,parent:l}=(a=n.__r3f)!=null?a:{};r&&l&&Yf(l,n,r),n.isObject3D&&(n.visible=!1),rn(n)},unhideInstance(n,a){var r;const{attach:l,parent:D}=(r=n.__r3f)!=null?r:{};l&&D&&Jy(D,n,l),(n.isObject3D&&a.visible==null||a.visible)&&(n.visible=!0),rn(n)},createTextInstance:E,hideTextInstance:E,unhideTextInstance:E,getCurrentEventPriority:()=>A?A():Kn.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&_g.fun(performance.now)?performance.now:_g.fun(Date.now)?Date.now:()=>0,scheduleTimeout:_g.fun(setTimeout)?setTimeout:void 0,cancelTimeout:_g.fun(clearTimeout)?clearTimeout:void 0}),applyProps:qy}}var Jf,qf;const Ky=g=>"colorSpace"in g||"outputColorSpace"in g,xL=()=>{var g;return(g=oM.ColorManagement)!=null?g:null},vL=g=>g&&g.isOrthographicCamera,IP=g=>g&&g.hasOwnProperty("current"),gl=typeof window<"u"&&((Jf=window.document)!=null&&Jf.createElement||((qf=window.navigator)==null?void 0:qf.product)==="ReactNative")?T.useLayoutEffect:T.useEffect;function bL(g){const A=T.useRef(g);return gl(()=>void(A.current=g),[g]),A}function gP({set:g}){return gl(()=>(g(new Promise(()=>null)),()=>g(!1)),[g]),null}class OL extends T.Component{constructor(...A){super(...A),this.state={error:!1}}componentDidCatch(A){this.props.set(A)}render(){return this.state.error?null:this.props.children}}OL.getDerivedStateFromError=()=>({error:!0});const _L="__default",mf=new Map,CP=g=>g&&!!g.memoized&&!!g.changes;function ZL(g){var A;const I=typeof window<"u"?(A=window.devicePixelRatio)!=null?A:2:1;return Array.isArray(g)?Math.min(Math.max(g[0],I),g[1]):g}const oa=g=>{var A;return(A=g.__r3f)==null?void 0:A.root.getState()},_g={obj:g=>g===Object(g)&&!_g.arr(g)&&typeof g!="function",fun:g=>typeof g=="function",str:g=>typeof g=="string",num:g=>typeof g=="number",boo:g=>typeof g=="boolean",und:g=>g===void 0,arr:g=>Array.isArray(g),equ(g,A,{arrays:I="shallow",objects:C="reference",strict:B=!0}={}){if(typeof g!=typeof A||!!g!=!!A)return!1;if(_g.str(g)||_g.num(g))return g===A;const i=_g.obj(g);if(i&&C==="reference")return g===A;const Q=_g.arr(g);if(Q&&I==="reference")return g===A;if((Q||i)&&g===A)return!0;let e;for(e in g)if(!(e in A))return!1;if(i&&I==="shallow"&&C==="shallow"){for(e in B?A:g)if(!_g.equ(g[e],A[e],{strict:B,objects:"reference"}))return!1}else for(e in B?A:g)if(g[e]!==A[e])return!1;if(_g.und(e)){if(Q&&g.length===0&&A.length===0||i&&Object.keys(g).length===0&&Object.keys(A).length===0)return!0;if(g!==A)return!1}return!0}};function BP(g){const A={nodes:{},materials:{}};return g&&g.traverse(I=>{I.name&&(A.nodes[I.name]=I),I.material&&!A.materials[I.material.name]&&(A.materials[I.material.name]=I.material)}),A}function iP(g){g.dispose&&g.type!=="Scene"&&g.dispose();for(const A in g)A.dispose==null||A.dispose(),delete g[A]}function an(g,A){const I=g;return I.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...A},g}function Vu(g,A){let I=g;if(A.includes("-")){const C=A.split("-"),B=C.pop();return I=C.reduce((i,Q)=>i[Q],g),{target:I,key:B}}else return{target:I,key:A}}const Lf=/-\d+$/;function Jy(g,A,I){if(_g.str(I)){if(Lf.test(I)){const i=I.replace(Lf,""),{target:Q,key:e}=Vu(g,i);Array.isArray(Q[e])||(Q[e]=[])}const{target:C,key:B}=Vu(g,I);A.__r3f.previousAttach=C[B],C[B]=A}else A.__r3f.previousAttach=I(g,A)}function Yf(g,A,I){var C,B;if(_g.str(I)){const{target:i,key:Q}=Vu(g,I),e=A.__r3f.previousAttach;e===void 0?delete i[Q]:i[Q]=e}else(C=A.__r3f)==null||C.previousAttach==null||C.previousAttach(g,A);(B=A.__r3f)==null||delete B.previousAttach}function PL(g,{children:A,key:I,ref:C,...B},{children:i,key:Q,ref:e,...E}={},t=!1){var n;const a=(n=g==null?void 0:g.__r3f)!=null?n:{},r=Object.entries(B),l=[];if(t){const G=Object.keys(E);for(let h=0;h{var c;if((c=g.__r3f)!=null&&c.primitive&&G==="object"||_g.equ(h,E[G]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(G))return l.push([G,h,!0,[]]);let y=[];G.includes("-")&&(y=G.split("-")),l.push([G,h,!1,y]);for(const S in B){const k=B[S];S.startsWith(`${G}-`)&&l.push([S,k,!1,S.split("-")])}});const D={...B};return a.memoizedProps&&a.memoizedProps.args&&(D.args=a.memoizedProps.args),a.memoizedProps&&a.memoizedProps.attach&&(D.attach=a.memoizedProps.attach),{memoized:D,changes:l}}const QP=typeof process<"u"&&!1;function qy(g,A){var I,C,B;const i=(I=g.__r3f)!=null?I:{},Q=i.root,e=(C=Q==null||Q.getState==null?void 0:Q.getState())!=null?C:{},{memoized:E,changes:t}=CP(A)?A:PL(g,A),n=i.eventCount;g.__r3f&&(g.__r3f.memoizedProps=E);for(let r=0;rS[k],g),!(y&&y.set))){const[S,...k]=h.reverse();c=k.reverse().reduce((N,M)=>N[M],g),l=S}if(D===_L+"remove")if(c.constructor){let S=mf.get(c.constructor);S||(S=new c.constructor,mf.set(c.constructor,S)),D=S[l]}else D=0;if(G)D?i.handlers[l]=D:delete i.handlers[l],i.eventCount=Object.keys(i.handlers).length;else if(y&&y.set&&(y.copy||y instanceof $t)){if(Array.isArray(D))y.fromArray?y.fromArray(D):y.set(...D);else if(y.copy&&D&&D.constructor&&(QP?y.constructor.name===D.constructor.name:y.constructor===D.constructor))y.copy(D);else if(D!==void 0){const S=y instanceof eI;!S&&y.setScalar?y.setScalar(D):y instanceof $t&&D instanceof $t?y.mask=D.mask:y.set(D),!xL()&&!e.linear&&S&&y.convertSRGBToLinear()}}else if(c[l]=D,c[l]instanceof Lg&&c[l].format===yB&&c[l].type===JQ){const S=c[l];Ky(S)&&Ky(e.gl)?S.colorSpace=e.gl.outputColorSpace:S.encoding=e.gl.outputEncoding}rn(g)}if(i.parent&&e.internal&&g.raycast&&n!==i.eventCount){const r=e.internal.interaction.indexOf(g);r>-1&&e.internal.interaction.splice(r,1),i.eventCount&&e.internal.interaction.push(g)}return!(t.length===1&&t[0][0]==="onUpdate")&&t.length&&(B=g.__r3f)!=null&&B.parent&&Xu(g),g}function rn(g){var A,I;const C=(A=g.__r3f)==null||(I=A.root)==null||I.getState==null?void 0:I.getState();C&&C.internal.frames===0&&C.invalidate()}function Xu(g){g.onUpdate==null||g.onUpdate(g)}function WL(g,A){g.manual||(vL(g)?(g.left=A.width/-2,g.right=A.width/2,g.top=A.height/2,g.bottom=A.height/-2):g.aspect=A.width/A.height,g.updateProjectionMatrix(),g.updateMatrixWorld())}function sD(g){return(g.eventObject||g.object).uuid+"/"+g.index+g.instanceId}function eP(){var g;const A=typeof self<"u"&&self||typeof window<"u"&&window;if(!A)return Kn.DefaultEventPriority;switch((g=A.event)==null?void 0:g.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return Kn.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return Kn.ContinuousEventPriority;default:return Kn.DefaultEventPriority}}function jL(g,A,I,C){const B=I.get(A);B&&(I.delete(A),I.size===0&&(g.delete(C),B.target.releasePointerCapture(C)))}function EP(g,A){const{internal:I}=g.getState();I.interaction=I.interaction.filter(C=>C!==A),I.initialHits=I.initialHits.filter(C=>C!==A),I.hovered.forEach((C,B)=>{(C.eventObject===A||C.object===A)&&I.hovered.delete(B)}),I.capturedMap.forEach((C,B)=>{jL(I.capturedMap,A,C,B)})}function tP(g){function A(E){const{internal:t}=g.getState(),n=E.offsetX-t.initialClick[0],a=E.offsetY-t.initialClick[1];return Math.round(Math.sqrt(n*n+a*a))}function I(E){return E.filter(t=>["Move","Over","Enter","Out","Leave"].some(n=>{var a;return(a=t.__r3f)==null?void 0:a.handlers["onPointer"+n]}))}function C(E,t){const n=g.getState(),a=new Set,r=[],l=t?t(n.internal.interaction):n.internal.interaction;for(let c=0;c{const S=oa(c.object),k=oa(y.object);return!S||!k?c.distance-y.distance:k.events.priority-S.events.priority||c.distance-y.distance}).filter(c=>{const y=sD(c);return a.has(y)?!1:(a.add(y),!0)});n.events.filter&&(G=n.events.filter(G,n));for(const c of G){let y=c.object;for(;y;){var h;(h=y.__r3f)!=null&&h.eventCount&&r.push({...c,eventObject:y}),y=y.parent}}if("pointerId"in E&&n.internal.capturedMap.has(E.pointerId))for(let c of n.internal.capturedMap.get(E.pointerId).values())a.has(sD(c.intersection))||r.push(c.intersection);return r}function B(E,t,n,a){const r=g.getState();if(E.length){const l={stopped:!1};for(const D of E){const G=oa(D.object)||r,{raycaster:h,pointer:c,camera:y,internal:S}=G,k=new _(c.x,c.y,0).unproject(y),N=U=>{var K,z;return(K=(z=S.capturedMap.get(U))==null?void 0:z.has(D.eventObject))!=null?K:!1},M=U=>{const K={intersection:D,target:t.target};S.capturedMap.has(U)?S.capturedMap.get(U).set(D.eventObject,K):S.capturedMap.set(U,new Map([[D.eventObject,K]])),t.target.setPointerCapture(U)},F=U=>{const K=S.capturedMap.get(U);K&&jL(S.capturedMap,D.eventObject,K,U)};let q={};for(let U in t){let K=t[U];typeof K!="function"&&(q[U]=K)}let Z={...D,...q,pointer:c,intersections:E,stopped:l.stopped,delta:n,unprojectedPoint:k,ray:h.ray,camera:y,stopPropagation(){const U="pointerId"in t&&S.capturedMap.get(t.pointerId);if((!U||U.has(D.eventObject))&&(Z.stopped=l.stopped=!0,S.hovered.size&&Array.from(S.hovered.values()).find(K=>K.eventObject===D.eventObject))){const K=E.slice(0,E.indexOf(D));i([...K,D])}},target:{hasPointerCapture:N,setPointerCapture:M,releasePointerCapture:F},currentTarget:{hasPointerCapture:N,setPointerCapture:M,releasePointerCapture:F},nativeEvent:t};if(a(Z),l.stopped===!0)break}}return E}function i(E){const{internal:t}=g.getState();for(const n of t.hovered.values())if(!E.length||!E.find(a=>a.object===n.object&&a.index===n.index&&a.instanceId===n.instanceId)){const r=n.eventObject.__r3f,l=r==null?void 0:r.handlers;if(t.hovered.delete(sD(n)),r!=null&&r.eventCount){const D={...n,intersections:E};l.onPointerOut==null||l.onPointerOut(D),l.onPointerLeave==null||l.onPointerLeave(D)}}}function Q(E,t){for(let n=0;ni([]);case"onLostPointerCapture":return t=>{const{internal:n}=g.getState();"pointerId"in t&&n.capturedMap.has(t.pointerId)&&requestAnimationFrame(()=>{n.capturedMap.has(t.pointerId)&&(n.capturedMap.delete(t.pointerId),i([]))})}}return function(n){const{onPointerMissed:a,internal:r}=g.getState();r.lastEvent.current=n;const l=E==="onPointerMove",D=E==="onClick"||E==="onContextMenu"||E==="onDoubleClick",h=C(n,l?I:void 0),c=D?A(n):0;E==="onPointerDown"&&(r.initialClick=[n.offsetX,n.offsetY],r.initialHits=h.map(S=>S.eventObject)),D&&!h.length&&c<=2&&(Q(n,r.interaction),a&&a(n)),l&&i(h);function y(S){const k=S.eventObject,N=k.__r3f,M=N==null?void 0:N.handlers;if(N!=null&&N.eventCount)if(l){if(M.onPointerOver||M.onPointerEnter||M.onPointerOut||M.onPointerLeave){const F=sD(S),q=r.hovered.get(F);q?q.stopped&&S.stopPropagation():(r.hovered.set(F,S),M.onPointerOver==null||M.onPointerOver(S),M.onPointerEnter==null||M.onPointerEnter(S))}M.onPointerMove==null||M.onPointerMove(S)}else{const F=M[E];F?(!D||r.initialHits.includes(k))&&(Q(n,r.interaction.filter(q=>!r.initialHits.includes(q))),F(S)):D&&r.initialHits.includes(k)&&Q(n,r.interaction.filter(q=>!r.initialHits.includes(q)))}}B(h,n,c,y)}}return{handlePointer:e}}const oP=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],VL=g=>!!(g!=null&&g.render),nM=T.createContext(null),nP=(g,A)=>{const I=qL((e,E)=>{const t=new _,n=new _,a=new _;function r(c=E().camera,y=n,S=E().size){const{width:k,height:N,top:M,left:F}=S,q=k/N;y instanceof _?a.copy(y):a.set(...y);const Z=c.getWorldPosition(t).distanceTo(a);if(vL(c))return{width:k/c.zoom,height:N/c.zoom,top:M,left:F,factor:1,distance:Z,aspect:q};{const U=c.fov*Math.PI/180,K=2*Math.tan(U/2)*Z,z=K*(k/N);return{width:z,height:K,top:M,left:F,factor:k/z,distance:Z,aspect:q}}}let l;const D=c=>e(y=>({performance:{...y.performance,current:c}})),G=new qA;return{set:e,get:E,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(c=1)=>g(E(),c),advance:(c,y)=>A(c,y,E()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new iM,pointer:G,mouse:G,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const c=E();l&&clearTimeout(l),c.performance.current!==c.performance.min&&D(c.performance.min),l=setTimeout(()=>D(E().performance.max),c.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:r},setEvents:c=>e(y=>({...y,events:{...y.events,...c}})),setSize:(c,y,S,k,N)=>{const M=E().camera,F={width:c,height:y,top:k||0,left:N||0,updateStyle:S};e(q=>({size:F,viewport:{...q.viewport,...r(M,n,F)}}))},setDpr:c=>e(y=>{const S=ZL(c);return{viewport:{...y.viewport,dpr:S,initialDpr:y.viewport.initialDpr||S}}}),setFrameloop:(c="always")=>{const y=E().clock;y.stop(),y.elapsedTime=0,c!=="never"&&(y.start(),y.elapsedTime=0),e(()=>({frameloop:c}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:T.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(c,y,S)=>{const k=E().internal;return k.priority=k.priority+(y>0?1:0),k.subscribers.push({ref:c,priority:y,store:S}),k.subscribers=k.subscribers.sort((N,M)=>N.priority-M.priority),()=>{const N=E().internal;N!=null&&N.subscribers&&(N.priority=N.priority-(y>0?1:0),N.subscribers=N.subscribers.filter(M=>M.ref!==c))}}}}}),C=I.getState();let B=C.size,i=C.viewport.dpr,Q=C.camera;return I.subscribe(()=>{const{camera:e,size:E,viewport:t,gl:n,set:a}=I.getState();if(E.width!==B.width||E.height!==B.height||t.dpr!==i){var r;B=E,i=t.dpr,WL(e,E),n.setPixelRatio(t.dpr);const l=(r=E.updateStyle)!=null?r:typeof HTMLCanvasElement<"u"&&n.domElement instanceof HTMLCanvasElement;n.setSize(E.width,E.height,l)}e!==Q&&(Q=e,a(l=>({viewport:{...l.viewport,...l.viewport.getCurrentViewport(e)}})))}),I.subscribe(e=>g(e)),I};function XL(g,A){const I={callback:g};return A.add(I),()=>void A.delete(I)}let aD,zL=new Set,$L=new Set,sP=new Set;const aP=g=>XL(g,zL),rP=g=>XL(g,$L);function my(g,A){if(g.size)for(const{callback:I}of g.values())I(A)}function na(g,A){switch(g){case"before":return my(zL,A);case"after":return my($L,A);case"tail":return my(sP,A)}}let Ly,Yy;function Hy(g,A,I){let C=A.clock.getDelta();for(A.frameloop==="never"&&typeof g=="number"&&(C=g-A.clock.elapsedTime,A.clock.oldTime=A.clock.elapsedTime,A.clock.elapsedTime=g),Ly=A.internal.subscribers,aD=0;aD0)&&!((t=B.gl.xr)!=null&&t.isPresenting)&&(I+=Hy(E,B))}if(na("after",E),I===0)return na("tail",E),A=!1,cancelAnimationFrame(C)}function Q(E,t=1){var n;if(!E)return g.forEach(a=>Q(a.store.getState()),t);(n=E.gl.xr)!=null&&n.isPresenting||!E.internal.active||E.frameloop==="never"||(E.internal.frames=Math.min(60,E.internal.frames+t),A||(A=!0,requestAnimationFrame(i)))}function e(E,t=!0,n,a){if(t&&na("before",E),n)Hy(E,n,a);else for(const r of g.values())Hy(E,r.store.getState());t&&na("after",E)}return{loop:i,invalidate:Q,advance:e}}function Cl(){const g=T.useContext(nM);if(!g)throw new Error("R3F: Hooks can only be used within the Canvas component!");return g}function EB(g=I=>I,A){return Cl()(g,A)}function FC(g,A=0){const I=Cl(),C=I.getState().internal.subscribe,B=bL(g);return gl(()=>C(B,A,I),[A,C,I]),null}const Hf=new WeakMap;function AY(g,A){return function(I,...C){let B=Hf.get(I);return B||(B=new I,Hf.set(I,B)),g&&g(B),Promise.all(C.map(i=>new Promise((Q,e)=>B.load(i,E=>{E.scene&&Object.assign(E,BP(E.scene)),Q(E)},A,E=>e(new Error(`Could not load ${i}: ${E==null?void 0:E.message}`)))))).finally(()=>B.dispose==null?void 0:B.dispose())}}function Gs(g,A,I,C){const B=Array.isArray(A)?A:[A],i=XZ(AY(I,C),[g,...B],{equal:_g.equ});return Array.isArray(A)?i:i[0]}Gs.preload=function(g,A,I){const C=Array.isArray(A)?A:[A];return zZ(AY(I),[g,...C])};Gs.clear=function(g,A){const I=Array.isArray(A)?A:[A];return $Z([g,...I])};const Es=new Map,{invalidate:Tf,advance:xf}=lP(Es),{reconciler:Nr,applyProps:en}=AP(Es,eP),En={objects:"shallow",strict:!1},cP=(g,A)=>{const I=typeof g=="function"?g(A):g;return VL(I)?I:new Ld({powerPreference:"high-performance",canvas:A,antialias:!0,alpha:!0,...g})};function DP(g,A){const I=typeof HTMLCanvasElement<"u"&&g instanceof HTMLCanvasElement;if(A){const{width:C,height:B,top:i,left:Q,updateStyle:e=I}=A;return{width:C,height:B,top:i,left:Q,updateStyle:e}}else if(typeof HTMLCanvasElement<"u"&&g instanceof HTMLCanvasElement&&g.parentElement){const{width:C,height:B,top:i,left:Q}=g.parentElement.getBoundingClientRect();return{width:C,height:B,top:i,left:Q,updateStyle:I}}else if(typeof OffscreenCanvas<"u"&&g instanceof OffscreenCanvas)return{width:g.width,height:g.height,top:0,left:0,updateStyle:I};return{width:0,height:0,top:0,left:0}}function hP(g){const A=Es.get(g),I=A==null?void 0:A.fiber,C=A==null?void 0:A.store;A&&console.warn("R3F.createRoot should only be called once!");const B=typeof reportError=="function"?reportError:console.error,i=C||nP(Tf,xf),Q=I||Nr.createContainer(i,Kn.ConcurrentRoot,null,!1,null,"",B,null);A||Es.set(g,{fiber:Q,store:i});let e,E=!1,t;return{configure(n={}){let{gl:a,size:r,scene:l,events:D,onCreated:G,shadows:h=!1,linear:c=!1,flat:y=!1,legacy:S=!1,orthographic:k=!1,frameloop:N="always",dpr:M=[1,2],performance:F,raycaster:q,camera:Z,onPointerMissed:U}=n,K=i.getState(),z=K.gl;K.gl||K.set({gl:z=cP(a,g)});let DA=K.raycaster;DA||K.set({raycaster:DA=new tM});const{params:X,...eA}=q||{};if(_g.equ(eA,DA,En)||en(DA,{...eA}),_g.equ(X,DA.params,En)||en(DA,{params:{...DA.params,...X}}),!K.camera||K.camera===t&&!_g.equ(t,Z,En)){t=Z;const NA=Z instanceof Zr,WA=NA?Z:k?new VE(0,0,0,0,.1,1e3):new pC(75,0,.1,1e3);NA||(WA.position.z=5,Z&&en(WA,Z),!K.camera&&!(Z!=null&&Z.rotation)&&WA.lookAt(0,0,0)),K.set({camera:WA}),DA.camera=WA}if(!K.scene){let NA;l instanceof Eo?NA=l:(NA=new Eo,l&&en(NA,l)),K.set({scene:an(NA)})}if(!K.xr){var iA;const NA=(b,Y)=>{const x=i.getState();x.frameloop!=="never"&&xf(b,!0,x,Y)},WA=()=>{const b=i.getState();b.gl.xr.enabled=b.gl.xr.isPresenting,b.gl.xr.setAnimationLoop(b.gl.xr.isPresenting?NA:null),b.gl.xr.isPresenting||Tf(b)},j={connect(){const b=i.getState().gl;b.xr.addEventListener("sessionstart",WA),b.xr.addEventListener("sessionend",WA)},disconnect(){const b=i.getState().gl;b.xr.removeEventListener("sessionstart",WA),b.xr.removeEventListener("sessionend",WA)}};typeof((iA=z.xr)==null?void 0:iA.addEventListener)=="function"&&j.connect(),K.set({xr:j})}if(z.shadowMap){const NA=z.shadowMap.enabled,WA=z.shadowMap.type;if(z.shadowMap.enabled=!!h,_g.boo(h))z.shadowMap.type=Oa;else if(_g.str(h)){var wA;const j={basic:Rq,percentage:rw,soft:Oa,variance:$i};z.shadowMap.type=(wA=j[h])!=null?wA:Oa}else _g.obj(h)&&Object.assign(z.shadowMap,h);(NA!==z.shadowMap.enabled||WA!==z.shadowMap.type)&&(z.shadowMap.needsUpdate=!0)}const v=xL();v&&("enabled"in v?v.enabled=!S:"legacyMode"in v&&(v.legacyMode=S)),en(z,{outputEncoding:c?3e3:3001,toneMapping:y?KQ:cd}),K.legacy!==S&&K.set(()=>({legacy:S})),K.linear!==c&&K.set(()=>({linear:c})),K.flat!==y&&K.set(()=>({flat:y})),a&&!_g.fun(a)&&!VL(a)&&!_g.equ(a,z,En)&&en(z,a),D&&!K.events.handlers&&K.set({events:D(i)});const SA=DP(g,r);return _g.equ(SA,K.size,En)||K.setSize(SA.width,SA.height,SA.updateStyle,SA.top,SA.left),M&&K.viewport.dpr!==ZL(M)&&K.setDpr(M),K.frameloop!==N&&K.setFrameloop(N),K.onPointerMissed||K.set({onPointerMissed:U}),F&&!_g.equ(F,K.performance,En)&&K.set(NA=>({performance:{...NA.performance,...F}})),e=G,E=!0,this},render(n){return E||this.configure(),Nr.updateContainer(T.createElement(wP,{store:i,children:n,onCreated:e,rootElement:g}),Q,null,()=>{}),i},unmount(){IY(g)}}}function wP({store:g,children:A,onCreated:I,rootElement:C}){return gl(()=>{const B=g.getState();B.set(i=>({internal:{...i.internal,active:!0}})),I&&I(B),g.getState().events.connected||B.events.connect==null||B.events.connect(C)},[]),T.createElement(nM.Provider,{value:g},A)}function IY(g,A){const I=Es.get(g),C=I==null?void 0:I.fiber;if(C){const B=I==null?void 0:I.store.getState();B&&(B.internal.active=!1),Nr.updateContainer(null,C,null,()=>{B&&setTimeout(()=>{try{var i,Q,e,E;B.events.disconnect==null||B.events.disconnect(),(i=B.gl)==null||(Q=i.renderLists)==null||Q.dispose==null||Q.dispose(),(e=B.gl)==null||e.forceContextLoss==null||e.forceContextLoss(),(E=B.gl)!=null&&E.xr&&B.xr.disconnect(),iP(B),Es.delete(g),A&&A(g)}catch{}},500)})}}function Ow(g,A,I){return T.createElement(SP,{key:A.uuid,children:g,container:A,state:I})}function SP({state:g={},children:A,container:I}){const{events:C,size:B,...i}=g,Q=Cl(),[e]=T.useState(()=>new tM),[E]=T.useState(()=>new qA),t=T.useCallback((a,r)=>{const l={...a};Object.keys(a).forEach(G=>{(oP.includes(G)||a[G]!==r[G]&&r[G])&&delete l[G]});let D;if(r&&B){const G=r.camera;D=a.viewport.getCurrentViewport(G,new _,B),G!==a.camera&&WL(G,B)}return{...l,scene:I,raycaster:e,pointer:E,mouse:E,previousRoot:Q,events:{...a.events,...r==null?void 0:r.events,...C},size:{...a.size,...B},viewport:{...a.viewport,...D},...i}},[g]),[n]=T.useState(()=>{const a=Q.getState();return qL((l,D)=>({...a,scene:I,raycaster:e,pointer:E,mouse:E,previousRoot:Q,events:{...a.events,...C},size:{...a.size,...B},...i,set:l,get:D,setEvents:G=>l(h=>({...h,events:{...h.events,...G}}))}))});return T.useEffect(()=>{const a=Q.subscribe(r=>n.setState(l=>t(r,l)));return()=>{a(),n.destroy()}},[]),T.useEffect(()=>{n.setState(a=>t(Q.getState(),a))},[t]),T.createElement(T.Fragment,null,Nr.createPortal(T.createElement(nM.Provider,{value:n},A),n,null))}Nr.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:T.version});function zu(g,A,I){var C,B,i,Q,e;A==null&&(A=100);function E(){var n=Date.now()-Q;n=0?C=setTimeout(E,A-n):(C=null,I||(e=g.apply(i,B),i=B=null))}var t=function(){i=this,B=arguments,Q=Date.now();var n=I&&!C;return C||(C=setTimeout(E,A)),n&&(e=g.apply(i,B),i=B=null),e};return t.clear=function(){C&&(clearTimeout(C),C=null)},t.flush=function(){C&&(e=g.apply(i,B),i=B=null,clearTimeout(C),C=null)},t}zu.debounce=zu;var GP=zu;const vf=Xh(GP);function yP(g){let{debounce:A,scroll:I,polyfill:C,offsetSize:B}=g===void 0?{debounce:0,scroll:!1,offsetSize:!1}:g;const i=C||(typeof window>"u"?class{}:window.ResizeObserver);if(!i)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[Q,e]=T.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),E=T.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:Q}),t=A?typeof A=="number"?A:A.scroll:null,n=A?typeof A=="number"?A:A.resize:null,a=T.useRef(!1);T.useEffect(()=>(a.current=!0,()=>void(a.current=!1)));const[r,l,D]=T.useMemo(()=>{const y=()=>{if(!E.current.element)return;const{left:S,top:k,width:N,height:M,bottom:F,right:q,x:Z,y:U}=E.current.element.getBoundingClientRect(),K={left:S,top:k,width:N,height:M,bottom:F,right:q,x:Z,y:U};E.current.element instanceof HTMLElement&&B&&(K.height=E.current.element.offsetHeight,K.width=E.current.element.offsetWidth),Object.freeze(K),a.current&&!MP(E.current.lastBounds,K)&&e(E.current.lastBounds=K)};return[y,n?vf(y,n):y,t?vf(y,t):y]},[e,B,t,n]);function G(){E.current.scrollContainers&&(E.current.scrollContainers.forEach(y=>y.removeEventListener("scroll",D,!0)),E.current.scrollContainers=null),E.current.resizeObserver&&(E.current.resizeObserver.disconnect(),E.current.resizeObserver=null)}function h(){E.current.element&&(E.current.resizeObserver=new i(D),E.current.resizeObserver.observe(E.current.element),I&&E.current.scrollContainers&&E.current.scrollContainers.forEach(y=>y.addEventListener("scroll",D,{capture:!0,passive:!0})))}const c=y=>{!y||y===E.current.element||(G(),E.current.element=y,E.current.scrollContainers=gY(y),h())};return kP(D,!!I),uP(l),T.useEffect(()=>{G(),h()},[I,D,l]),T.useEffect(()=>G,[]),[c,Q,r]}function uP(g){T.useEffect(()=>{const A=g;return window.addEventListener("resize",A),()=>void window.removeEventListener("resize",A)},[g])}function kP(g,A){T.useEffect(()=>{if(A){const I=g;return window.addEventListener("scroll",I,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",I,!0)}},[g,A])}function gY(g){const A=[];if(!g||g===document.body)return A;const{overflow:I,overflowX:C,overflowY:B}=window.getComputedStyle(g);return[I,C,B].some(i=>i==="auto"||i==="scroll")&&A.push(g),[...A,...gY(g.parentElement)]}const dP=["x","y","top","bottom","left","right","width","height"],MP=(g,A)=>dP.every(I=>g[I]===A[I]);var pP=Object.defineProperty,UP=Object.defineProperties,NP=Object.getOwnPropertyDescriptors,bf=Object.getOwnPropertySymbols,FP=Object.prototype.hasOwnProperty,fP=Object.prototype.propertyIsEnumerable,Of=(g,A,I)=>A in g?pP(g,A,{enumerable:!0,configurable:!0,writable:!0,value:I}):g[A]=I,_f=(g,A)=>{for(var I in A||(A={}))FP.call(A,I)&&Of(g,I,A[I]);if(bf)for(var I of bf(A))fP.call(A,I)&&Of(g,I,A[I]);return g},RP=(g,A)=>UP(g,NP(A));function CY(g,A,I){if(!g)return;if(I(g)===!0)return g;let C=A?g.return:g.child;for(;C;){const B=CY(C,A,I);if(B)return B;C=A?null:C.sibling}}function BY(g){try{return Object.defineProperties(g,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return g}}const sM=BY(T.createContext(null));class iY extends T.Component{render(){return T.createElement(sM.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:Zf,ReactCurrentDispatcher:Pf}=T.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function KP(){const g=T.useContext(sM);if(g===null)throw new Error("its-fine: useFiber must be called within a !");const A=T.useId();return T.useMemo(()=>{for(const C of[Zf==null?void 0:Zf.current,g,g==null?void 0:g.alternate]){if(!C)continue;const B=CY(C,!1,i=>{let Q=i.memoizedState;for(;Q;){if(Q.memoizedState===A)return!0;Q=Q.next}});if(B)return B}},[g,A])}function JP(){var g,A;const I=KP(),[C]=T.useState(()=>new Map);C.clear();let B=I;for(;B;){const i=(g=B.type)==null?void 0:g._context;i&&i!==sM&&!C.has(i)&&C.set(i,(A=Pf==null?void 0:Pf.current)==null?void 0:A.readContext(BY(i))),B=B.return}return C}function qP(){const g=JP();return T.useMemo(()=>Array.from(g.keys()).reduce((A,I)=>C=>T.createElement(A,null,T.createElement(I.Provider,RP(_f({},C),{value:g.get(I)}))),A=>T.createElement(iY,_f({},A))),[g])}const Ty={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function mP(g){const{handlePointer:A}=tP(g);return{priority:1,enabled:!0,compute(I,C,B){C.pointer.set(I.offsetX/C.size.width*2-1,-(I.offsetY/C.size.height)*2+1),C.raycaster.setFromCamera(C.pointer,C.camera)},connected:void 0,handlers:Object.keys(Ty).reduce((I,C)=>({...I,[C]:A(C)}),{}),update:()=>{var I;const{events:C,internal:B}=g.getState();(I=B.lastEvent)!=null&&I.current&&C.handlers&&C.handlers.onPointerMove(B.lastEvent.current)},connect:I=>{var C;const{set:B,events:i}=g.getState();i.disconnect==null||i.disconnect(),B(Q=>({events:{...Q.events,connected:I}})),Object.entries((C=i.handlers)!=null?C:[]).forEach(([Q,e])=>{const[E,t]=Ty[Q];I.addEventListener(E,e,{passive:t})})},disconnect:()=>{const{set:I,events:C}=g.getState();if(C.connected){var B;Object.entries((B=C.handlers)!=null?B:[]).forEach(([i,Q])=>{if(C&&C.connected instanceof HTMLElement){const[e]=Ty[i];C.connected.removeEventListener(e,Q)}}),I(i=>({events:{...i.events,connected:void 0}}))}}}}const LP=T.forwardRef(function({children:A,fallback:I,resize:C,style:B,gl:i,events:Q=mP,eventSource:e,eventPrefix:E,shadows:t,linear:n,flat:a,legacy:r,orthographic:l,frameloop:D,dpr:G,performance:h,raycaster:c,camera:y,scene:S,onPointerMissed:k,onCreated:N,...M},F){T.useMemo(()=>bw(OZ),[]);const q=qP(),[Z,U]=yP({scroll:!0,debounce:{scroll:50,resize:0},...C}),K=T.useRef(null),z=T.useRef(null);T.useImperativeHandle(F,()=>K.current);const DA=bL(k),[X,eA]=T.useState(!1),[iA,wA]=T.useState(!1);if(X)throw X;if(iA)throw iA;const v=T.useRef(null);gl(()=>{const gA=K.current;U.width>0&&U.height>0&&gA&&(v.current||(v.current=hP(gA)),v.current.configure({gl:i,events:Q,shadows:t,linear:n,flat:a,legacy:r,orthographic:l,frameloop:D,dpr:G,performance:h,raycaster:c,camera:y,scene:S,size:U,onPointerMissed:(...SA)=>DA.current==null?void 0:DA.current(...SA),onCreated:SA=>{SA.events.connect==null||SA.events.connect(e?IP(e)?e.current:e:z.current),E&&SA.setEvents({compute:(NA,WA)=>{const j=NA[E+"X"],b=NA[E+"Y"];WA.pointer.set(j/WA.size.width*2-1,-(b/WA.size.height)*2+1),WA.raycaster.setFromCamera(WA.pointer,WA.camera)}}),N==null||N(SA)}}),v.current.render(T.createElement(q,null,T.createElement(OL,{set:wA},T.createElement(T.Suspense,{fallback:T.createElement(gP,{set:eA})},A)))))}),T.useEffect(()=>{const gA=K.current;if(gA)return()=>IY(gA)},[]);const CA=e?"none":"auto";return T.createElement("div",HE({ref:z,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:CA,...B}},M),T.createElement("div",{ref:Z,style:{width:"100%",height:"100%"}},T.createElement("canvas",{ref:K,style:{display:"block"}},I)))}),YP=T.forwardRef(function(A,I){return T.createElement(iY,null,T.createElement(LP,HE({},A,{ref:I})))});function QY(g){return function(A){g.forEach(function(I){typeof I=="function"?I(A):I!=null&&(I.current=A)})}}function Wa(g,A,I){return A in g?Object.defineProperty(g,A,{value:I,enumerable:!0,configurable:!0,writable:!0}):g[A]=I,g}function $u(g,A){return $u=Object.setPrototypeOf||function(C,B){return C.__proto__=B,C},$u(g,A)}function HP(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ak(g,A){(A==null||A>g.length)&&(A=g.length);for(var I=0,C=new Array(A);IMath.PI&&(I-=Math.PI*2),I}function aM(g,A){if(!(g instanceof A))throw new TypeError("Cannot call a class as a function")}var Ui=function g(A,I,C){var B=this;aM(this,g),Wa(this,"dot2",function(i,Q){return B.x*i+B.y*Q}),Wa(this,"dot3",function(i,Q,e){return B.x*i+B.y*Q+B.z*e}),this.x=A,this.y=I,this.z=C},WP=[new Ui(1,1,0),new Ui(-1,1,0),new Ui(1,-1,0),new Ui(-1,-1,0),new Ui(1,0,1),new Ui(-1,0,1),new Ui(1,0,-1),new Ui(-1,0,-1),new Ui(0,1,1),new Ui(0,-1,1),new Ui(0,1,-1),new Ui(0,-1,-1)],Wf=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],jf=new Array(512),Vf=new Array(512),jP=function(A){A>0&&A<1&&(A*=65536),A=Math.floor(A),A<256&&(A|=A<<8);for(var I=0;I<256;I++){var C;I&1?C=Wf[I]^A&255:C=Wf[I]^A>>8&255,jf[I]=jf[I+256]=C,Vf[I]=Vf[I+256]=WP[C%12]}};jP(0);function VP(g){if(typeof g=="number")g=Math.abs(g);else if(typeof g=="string"){var A=g;g=0;for(var I=0;I1&&arguments[1]!==void 0?arguments[1]:.01,C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,B=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1/(2*Math.PI);return C/Math.atan(1/I)*Math.atan(Math.sin(2*Math.PI*A*B)/I)},eY=function(A){return 1/(1+A+.48*A*A+.235*A*A*A)},$P=function(A){return A},AW={in:function(A){return 1-Math.cos(A*Math.PI/2)},out:function(A){return Math.sin(A*Math.PI/2)},inOut:function(A){return-(Math.cos(Math.PI*A)-1)/2}},IW={in:function(A){return A*A*A},out:function(A){return 1-Math.pow(1-A,3)},inOut:function(A){return A<.5?4*A*A*A:1-Math.pow(-2*A+2,3)/2}},gW={in:function(A){return A*A*A*A*A},out:function(A){return 1-Math.pow(1-A,5)},inOut:function(A){return A<.5?16*A*A*A*A*A:1-Math.pow(-2*A+2,5)/2}},CW={in:function(A){return 1-Math.sqrt(1-Math.pow(A,2))},out:function(A){return Math.sqrt(1-Math.pow(A-1,2))},inOut:function(A){return A<.5?(1-Math.sqrt(1-Math.pow(2*A,2)))/2:(Math.sqrt(1-Math.pow(-2*A+2,2))+1)/2}},BW={in:function(A){return A*A*A*A},out:function(A){return 1- --A*A*A*A},inOut:function(A){return A<.5?8*A*A*A*A:1-8*--A*A*A*A}},iW={in:function(A){return A===0?0:Math.pow(2,10*A-10)},out:function(A){return A===1?1:1-Math.pow(2,-10*A)},inOut:function(A){return A===0?0:A===1?1:A<.5?Math.pow(2,20*A-10)/2:(2-Math.pow(2,-20*A+10))/2}};function TC(g,A,I){var C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:.25,B=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.01,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1/0,Q=arguments.length>6&&arguments[6]!==void 0?arguments[6]:eY,e=arguments.length>7&&arguments[7]!==void 0?arguments[7]:.001,E="velocity_"+A;if(g.__damp===void 0&&(g.__damp={}),g.__damp[E]===void 0&&(g.__damp[E]=0),Math.abs(g[A]-I)<=e)return g[A]=I,!1;C=Math.max(1e-4,C);var t=2/C,n=Q(t*B),a=g[A]-I,r=I,l=i*C;a=Math.min(Math.max(a,-l),l),I=g[A]-a;var D=(g.__damp[E]+t*a)*B;g.__damp[E]=(g.__damp[E]-t*D)*n;var G=I+(a+D)*n;return r-g[A]>0==G>r&&(G=r,g.__damp[E]=(G-r)/B),g[A]=G,!0}var QW=function(A){return A&&A.isCamera},eW=function(A){return A&&A.isLight},sa=new _,zf=new Wg,$f=new Wg,aa=new MI,xy=new _;function EW(g,A,I,C,B,i,Q){typeof A=="number"?sa.setScalar(A):Array.isArray(A)?sa.set(A[0],A[1],A[2]):sa.copy(A);var e=g.parent;g.updateWorldMatrix(!0,!1),xy.setFromMatrixPosition(g.matrixWorld),QW(g)||eW(g)?aa.lookAt(xy,sa,g.up):aa.lookAt(sa,xy,g.up),qh(g.quaternion,$f.setFromRotationMatrix(aa),I,C,B,i,Q),e&&(aa.extractRotation(e.matrixWorld),zf.setFromRotationMatrix(aa),qh(g.quaternion,$f.copy(g.quaternion).premultiply(zf.invert()),I,C,B,i,Q))}function bn(g,A,I,C,B,i,Q,e){return TC(g,A,g[A]+PP(g[A],I),C,B,i,Q,e)}var ra=new qA,AR,IR;function tW(g,A,I,C,B,i,Q){return typeof A=="number"?ra.setScalar(A):Array.isArray(A)?ra.set(A[0],A[1]):ra.copy(A),AR=TC(g,"x",ra.x,I,C,B,i,Q),IR=TC(g,"y",ra.y,I,C,B,i,Q),AR||IR}var tn=new _,gR,CR,BR;function Ik(g,A,I,C,B,i,Q){return typeof A=="number"?tn.setScalar(A):Array.isArray(A)?tn.set(A[0],A[1],A[2]):tn.copy(A),gR=TC(g,"x",tn.x,I,C,B,i,Q),CR=TC(g,"y",tn.y,I,C,B,i,Q),BR=TC(g,"z",tn.z,I,C,B,i,Q),gR||CR||BR}var Mt=new yg,iR,QR,eR,ER;function oW(g,A,I,C,B,i,Q){return typeof A=="number"?Mt.setScalar(A):Array.isArray(A)?Mt.set(A[0],A[1],A[2],A[3]):Mt.copy(A),iR=TC(g,"x",Mt.x,I,C,B,i,Q),QR=TC(g,"y",Mt.y,I,C,B,i,Q),eR=TC(g,"z",Mt.z,I,C,B,i,Q),ER=TC(g,"w",Mt.w,I,C,B,i,Q),iR||QR||eR||ER}var la=new YQ,tR,oR,nR;function nW(g,A,I,C,B,i,Q){return Array.isArray(A)?la.set(A[0],A[1],A[2],A[3]):la.copy(A),tR=bn(g,"x",la.x,I,C,B,i,Q),oR=bn(g,"y",la.y,I,C,B,i,Q),nR=bn(g,"z",la.z,I,C,B,i,Q),tR||oR||nR}var on=new eI,sR,aR,rR;function sW(g,A,I,C,B,i,Q){return A instanceof eI?on.copy(A):Array.isArray(A)?on.setRGB(A[0],A[1],A[2]):on.set(A),sR=TC(g,"r",on.r,I,C,B,i,Q),aR=TC(g,"g",on.g,I,C,B,i,Q),rR=TC(g,"b",on.b,I,C,B,i,Q),sR||aR||rR}var Vi=new Wg,Ie=new yg,lR=new yg,ca=new yg,cR,DR,hR,wR;function qh(g,A,I,C,B,i,Q){var e=g;Array.isArray(A)?Vi.set(A[0],A[1],A[2],A[3]):Vi.copy(A);var E=g.dot(Vi)>0?1:-1;return Vi.x*=E,Vi.y*=E,Vi.z*=E,Vi.w*=E,cR=TC(g,"x",Vi.x,I,C,B,i,Q),DR=TC(g,"y",Vi.y,I,C,B,i,Q),hR=TC(g,"z",Vi.z,I,C,B,i,Q),wR=TC(g,"w",Vi.w,I,C,B,i,Q),Ie.set(g.x,g.y,g.z,g.w).normalize(),lR.set(e.__damp.velocity_x,e.__damp.velocity_y,e.__damp.velocity_z,e.__damp.velocity_w),ca.copy(Ie).multiplyScalar(lR.dot(Ie)/Ie.dot(Ie)),e.__damp.velocity_x-=ca.x,e.__damp.velocity_y-=ca.y,e.__damp.velocity_z-=ca.z,e.__damp.velocity_w-=ca.w,g.set(Ie.x,Ie.y,Ie.z,Ie.w),cR||DR||hR||wR}var Da=new fL,SR,GR,yR;function aW(g,A,I,C,B,i,Q){return Array.isArray(A)?Da.set(A[0],A[1],A[2]):Da.copy(A),SR=TC(g,"radius",Da.radius,I,C,B,i,Q),GR=bn(g,"phi",Da.phi,I,C,B,i,Q),yR=bn(g,"theta",Da.theta,I,C,B,i,Q),SR||GR||yR}var rD=new MI,uR=new _,kR=new Wg,dR=new _,MR,pR,UR;function rW(g,A,I,C,B,i,Q){var e=g;return e.__damp===void 0&&(e.__damp={position:new _,rotation:new Wg,scale:new _},g.decompose(e.__damp.position,e.__damp.rotation,e.__damp.scale)),Array.isArray(A)?rD.set.apply(rD,OP(A)):rD.copy(A),rD.decompose(uR,kR,dR),MR=Ik(e.__damp.position,uR,I,C,B,i,Q),pR=qh(e.__damp.rotation,kR,I,C,B,i,Q),UR=Ik(e.__damp.scale,dR,I,C,B,i,Q),g.compose(e.__damp.position,e.__damp.rotation,e.__damp.scale),MR||pR||UR}var gk=Object.freeze({__proto__:null,rsqw:zP,exp:eY,linear:$P,sine:AW,cubic:IW,quint:gW,circ:CW,quart:BW,expo:iW,damp:TC,dampLookAt:EW,dampAngle:bn,damp2:tW,damp3:Ik,damp4:oW,dampE:nW,dampC:sW,dampQ:qh,dampS:aW,dampM:rW});function lW(g,A){if(typeof A!="function"&&A!==null)throw new TypeError("Super expression must either be null or a function");g.prototype=Object.create(A&&A.prototype,{constructor:{value:g,writable:!0,configurable:!0}}),A&&$u(g,A)}function mh(g){return mh=Object.setPrototypeOf?Object.getPrototypeOf:function(I){return I.__proto__||Object.getPrototypeOf(I)},mh(g)}function cW(g){if(g===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return g}function DW(g,A){if(A&&(typeof A=="object"||typeof A=="function"))return A;if(A!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return cW(g)}function hW(g){var A=HP();return function(){var C=mh(g),B;if(A){var i=mh(this).constructor;B=Reflect.construct(C,arguments,i)}else B=C.apply(this,arguments);return DW(this,B)}}var wW=function(g){lW(I,g);var A=hW(I);function I(){var C,B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:.2,e=arguments.length>3&&arguments[3]!==void 0?arguments[3]:16;aM(this,I),C=A.call(this),C.parameters={width:B,height:i,radius:Q,segments:e};for(var E=B/2-Q,t=i/2-Q,n=Q/B,a=(B-Q)/B,r=Q/i,l=(i-Q)/i,D=[E,t,0,-E,t,0,-E,-t,0,E,-t,0],G=[a,l,n,l,n,r,a,r],h=[3*(e+1)+3,3*(e+1)+4,e+4,e+5,2*(e+1)+4,2,1,2*(e+1)+3,3,4*(e+1)+3,4,0],c=[h[0],h[1],h[2],h[0],h[2],h[3],h[4],h[5],h[6],h[4],h[6],h[7],h[8],h[9],h[10],h[8],h[10],h[11]],y,S,k,N,M,F,q,Z,U=0;U<4;U++){N=U<1||U>2?E:-E,M=U<2?t:-t,F=U<1||U>2?a:n,q=U<2?l:r;for(var K=0;K<=e;K++)y=Math.PI/2*(U+K/e),S=Math.cos(y),k=Math.sin(y),D.push(N+Q*S,M+Q*k,0),G.push(F+n*S,q+r*k),KnA.x&&nA.y>nA.z?(MA.x=(b.x-I.min.x)/C,MA.y=(I.max.z-b.z)/C,oA.x=(Y.x-I.min.x)/C,oA.y=(I.max.z-Y.z)/C,FA.x=(x.x-I.min.x)/C,FA.y=(I.max.z-x.z)/C):nA.x>nA.y&&nA.x>nA.z?(MA.x=(b.z-I.min.z)/C,MA.y=(b.y-I.min.y)/C,oA.x=(Y.z-I.min.z)/C,oA.y=(Y.y-I.min.y)/C,FA.x=(x.z-I.min.z)/C,FA.y=(x.y-I.min.y)/C):nA.z>nA.y&&nA.z>nA.x&&(MA.x=(b.x-I.min.x)/C,MA.y=(b.y-I.min.y)/C,oA.x=(Y.x-I.min.x)/C,oA.y=(Y.y-I.min.y)/C,FA.x=(x.x-I.min.x)/C,FA.y=(x.y-I.min.y)/C),{uv0:MA,uv1:oA,uv2:FA}};if(g.index)for(var Q=0;Q>>1|(Zg&21845)<<1;BE=(BE&52428)>>>2|(BE&13107)<<2,BE=(BE&61680)>>>4|(BE&3855)<<4,Bk[Zg]=((BE&65280)>>>8|(BE&255)<<8)>>>1}var ja=function(g,A,I){for(var C=g.length,B=0,i=new wE(A);B>>E]=t}else for(e=new wE(C),B=0;B>>15-g[B]);return e},Bl=new mi(288);for(var Zg=0;Zg<144;++Zg)Bl[Zg]=8;for(var Zg=144;Zg<256;++Zg)Bl[Zg]=9;for(var Zg=256;Zg<280;++Zg)Bl[Zg]=7;for(var Zg=280;Zg<288;++Zg)Bl[Zg]=8;var aY=new mi(32);for(var Zg=0;Zg<32;++Zg)aY[Zg]=5;var fW=ja(Bl,9,1),RW=ja(aY,5,1),vy=function(g){for(var A=g[0],I=1;IA&&(A=g[I]);return A},Xi=function(g,A,I){var C=A/8|0;return(g[C]|g[C+1]<<8)>>(A&7)&I},by=function(g,A){var I=A/8|0;return(g[I]|g[I+1]<<8|g[I+2]<<16)>>(A&7)},KW=function(g){return(g/8|0)+(g&7&&1)},JW=function(g,A,I){(A==null||A<0)&&(A=0),(I==null||I>g.length)&&(I=g.length);var C=new(g instanceof wE?wE:g instanceof Ck?Ck:mi)(I-A);return C.set(g.subarray(A,I)),C},qW=function(g,A,I){var C=g.length;if(!C||I&&!I.l&&C<5)return A||new mi(0);var B=!A||I,i=!I||I.i;I||(I={}),A||(A=new mi(C*3));var Q=function(Y){var x=A.length;if(Y>x){var nA=new mi(Math.max(x*2,Y));nA.set(A),A=nA}},e=I.f||0,E=I.p||0,t=I.b||0,n=I.l,a=I.d,r=I.m,l=I.n,D=C*8;do{if(!n){I.f=e=Xi(g,E,1);var G=Xi(g,E+1,3);if(E+=3,G)if(G==1)n=fW,a=RW,r=9,l=5;else if(G==2){var S=Xi(g,E,31)+257,k=Xi(g,E+10,15)+4,N=S+Xi(g,E+5,31)+1;E+=14;for(var M=new mi(N),F=new mi(19),q=0;q>>4;if(h<16)M[q++]=h;else{var DA=0,X=0;for(h==16?(X=3+Xi(g,E,3),E+=2,DA=M[q-1]):h==17?(X=3+Xi(g,E,7),E+=3):h==18&&(X=11+Xi(g,E,127),E+=7);X--;)M[q++]=DA}}var eA=M.subarray(0,S),iA=M.subarray(S);r=vy(eA),l=vy(iA),n=ja(eA,r,1),a=ja(iA,l,1)}else throw"invalid block type";else{var h=KW(E)+4,c=g[h-4]|g[h-3]<<8,y=h+c;if(y>C){if(i)throw"unexpected EOF";break}B&&Q(t+c),A.set(g.subarray(h,y),t),I.b=t+=c,I.p=E=y*8;continue}if(E>D){if(i)throw"unexpected EOF";break}}B&&Q(t+131072);for(var wA=(1<>>4;if(E+=DA&15,E>D){if(i)throw"unexpected EOF";break}if(!DA)throw"invalid length/literal";if(gA<256)A[t++]=gA;else if(gA==256){CA=E,n=null;break}else{var SA=gA-254;if(gA>264){var q=gA-257,NA=EY[q];SA=Xi(g,E,(1<>>4;if(!WA)throw"invalid distance";E+=WA&15;var iA=FW[j];if(j>3){var NA=tY[j];iA+=by(g,E)&(1<D){if(i)throw"unexpected EOF";break}B&&Q(t+131072);for(var b=t+SA;t>>4>7||(g[0]<<8|g[1])%31)throw"invalid zlib data";if(g[1]&32)throw"invalid zlib data: preset dictionaries not supported"};function lD(g,A){return qW((LW(g),g.subarray(2,-4)),A)}var YW=typeof TextDecoder<"u"&&new TextDecoder,HW=0;try{YW.decode(mW,{stream:!0}),HW=1}catch{}const TW=g=>g&&g.isCubeTexture;class xW extends cg{constructor(A,I){var C,B;const i=TW(A),e=((B=i?(C=A.image[0])==null?void 0:C.width:A.image.width)!=null?B:1024)/4,E=Math.floor(Math.log2(e)),t=Math.pow(2,E),n=3*Math.max(t,16*7),a=4*t,r=[i?"#define ENVMAP_TYPE_CUBE":"",`#define CUBEUV_TEXEL_WIDTH ${1/n}`,`#define CUBEUV_TEXEL_HEIGHT ${1/a}`,`#define CUBEUV_MAX_MIP ${E}.0`],l=` + varying vec3 vWorldPosition; + void main() + { + vec4 worldPosition = ( modelMatrix * vec4( position, 1.0 ) ); + vWorldPosition = worldPosition.xyz; + + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + } + `,D=r.join(` +`)+` + #define ENVMAP_TYPE_CUBE_UV + varying vec3 vWorldPosition; + uniform float radius; + uniform float height; + uniform float angle; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube map; + #else + uniform sampler2D map; + #endif + // From: https://www.shadertoy.com/view/4tsBD7 + float diskIntersectWithBackFaceCulling( vec3 ro, vec3 rd, vec3 c, vec3 n, float r ) + { + float d = dot ( rd, n ); + + if( d > 0.0 ) { return 1e6; } + + vec3 o = ro - c; + float t = - dot( n, o ) / d; + vec3 q = o + rd * t; + + return ( dot( q, q ) < r * r ) ? t : 1e6; + } + // From: https://www.iquilezles.org/www/articles/intersectors/intersectors.htm + float sphereIntersect( vec3 ro, vec3 rd, vec3 ce, float ra ) + { + vec3 oc = ro - ce; + float b = dot( oc, rd ); + float c = dot( oc, oc ) - ra * ra; + float h = b * b - c; + + if( h < 0.0 ) { return -1.0; } + + h = sqrt( h ); + + return - b + h; + } + vec3 project() + { + vec3 p = normalize( vWorldPosition ); + vec3 camPos = cameraPosition; + camPos.y -= height; + float intersection = sphereIntersect( camPos, p, vec3( 0.0 ), radius ); + if( intersection > 0.0 ) { + + vec3 h = vec3( 0.0, - height, 0.0 ); + float intersection2 = diskIntersectWithBackFaceCulling( camPos, p, h, vec3( 0.0, 1.0, 0.0 ), radius ); + p = ( camPos + min( intersection, intersection2 ) * p ) / radius; + } else { + p = vec3( 0.0, 1.0, 0.0 ); + } + return p; + } + #include + #include + void main() + { + vec3 projectedWorldPosition = project(); + + #ifdef ENVMAP_TYPE_CUBE + vec3 outcolor = textureCube( map, projectedWorldPosition ).rgb; + #else + vec3 direction = normalize( projectedWorldPosition ); + vec2 uv = equirectUv( direction ); + vec3 outcolor = texture2D( map, uv ).rgb; + #endif + gl_FragColor = vec4( outcolor, 1.0 ); + #include + #include <${parseInt(ho.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}> + } + `,G={map:{value:A},height:{value:(I==null?void 0:I.height)||15},radius:{value:(I==null?void 0:I.radius)||100}},h=new zr(1,16),c=new YC({uniforms:G,fragmentShader:D,vertexShader:l,side:qi});super(h,c)}set radius(A){this.material.uniforms.radius.value=A}get radius(){return this.material.uniforms.radius.value}set height(A){this.material.uniforms.height.value=A}get height(){return this.material.uniforms.height.value}}var vW=Object.defineProperty,bW=(g,A,I)=>A in g?vW(g,A,{enumerable:!0,configurable:!0,writable:!0,value:I}):g[A]=I,Oy=(g,A,I)=>(bW(g,typeof A!="symbol"?A+"":A,I),I);class ln{constructor(A){Oy(this,"camera",new VE(-1,1,1,-1,0,1)),Oy(this,"geometry",new pe(2,2)),Oy(this,"mesh"),this.mesh=new cg(this.geometry,A)}get material(){return this.mesh.material}set material(A){this.mesh.material=A}dispose(){this.mesh.geometry.dispose()}render(A){A.render(this.mesh,this.camera)}}class rM extends oB{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(I){return new WW(I)}),this.register(function(I){return new g8(I)}),this.register(function(I){return new C8(I)}),this.register(function(I){return new B8(I)}),this.register(function(I){return new VW(I)}),this.register(function(I){return new XW(I)}),this.register(function(I){return new zW(I)}),this.register(function(I){return new $W(I)}),this.register(function(I){return new PW(I)}),this.register(function(I){return new A8(I)}),this.register(function(I){return new jW(I)}),this.register(function(I){return new I8(I)}),this.register(function(I){return new _W(I)}),this.register(function(I){return new i8(I)}),this.register(function(I){return new Q8(I)})}load(A,I,C,B){const i=this;let Q;this.resourcePath!==""?Q=this.resourcePath:this.path!==""?Q=this.path:Q=qQ.extractUrlBase(A),this.manager.itemStart(A);const e=function(t){B?B(t):console.error(t),i.manager.itemError(A),i.manager.itemEnd(A)},E=new VB(this.manager);E.setPath(this.path),E.setResponseType("arraybuffer"),E.setRequestHeader(this.requestHeader),E.setWithCredentials(this.withCredentials),E.load(A,function(t){try{i.parse(t,Q,function(n){I(n),i.manager.itemEnd(A)},e)}catch(n){e(n)}},C,e)}setDRACOLoader(A){return this.dracoLoader=A,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,I,C,B){let i;const Q={},e={};if(typeof A=="string")i=JSON.parse(A);else if(A instanceof ArrayBuffer)if(qQ.decodeText(new Uint8Array(A.slice(0,4)))===rY){try{Q[lg.KHR_BINARY_GLTF]=new e8(A)}catch(n){B&&B(n);return}i=JSON.parse(Q[lg.KHR_BINARY_GLTF].content)}else i=JSON.parse(qQ.decodeText(new Uint8Array(A)));else i=A;if(i.asset===void 0||i.asset.version[0]<2){B&&B(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const E=new S8(i,{path:I||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});E.fileLoader.setRequestHeader(this.requestHeader);for(let t=0;t=0&&e[n]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+n+'".')}}E.setExtensions(Q),E.setPlugins(e),E.parse(C,B)}parseAsync(A,I){const C=this;return new Promise(function(B,i){C.parse(A,I,B,i)})}}function OW(){let g={};return{get:function(A){return g[A]},add:function(A,I){g[A]=I},remove:function(A){delete g[A]},removeAll:function(){g={}}}}const lg={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class _W{constructor(A){this.parser=A,this.name=lg.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,I=this.parser.json.nodes||[];for(let C=0,B=I.length;C=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return I.loadTextureImage(A,i.source,Q)}}class C8{constructor(A){this.parser=A,this.name=lg.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(A){const I=this.name,C=this.parser,B=C.json,i=B.textures[A];if(!i.extensions||!i.extensions[I])return null;const Q=i.extensions[I],e=B.images[Q.source];let E=C.textureLoader;if(e.uri){const t=C.options.manager.getHandler(e.uri);t!==null&&(E=t)}return this.detectSupport().then(function(t){if(t)return C.loadTextureImage(A,Q.source,E);if(B.extensionsRequired&&B.extensionsRequired.indexOf(I)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return C.loadTexture(A)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(A){const I=new Image;I.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",I.onload=I.onerror=function(){A(I.height===1)}})),this.isSupported}}class B8{constructor(A){this.parser=A,this.name=lg.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(A){const I=this.name,C=this.parser,B=C.json,i=B.textures[A];if(!i.extensions||!i.extensions[I])return null;const Q=i.extensions[I],e=B.images[Q.source];let E=C.textureLoader;if(e.uri){const t=C.options.manager.getHandler(e.uri);t!==null&&(E=t)}return this.detectSupport().then(function(t){if(t)return C.loadTextureImage(A,Q.source,E);if(B.extensionsRequired&&B.extensionsRequired.indexOf(I)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return C.loadTexture(A)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(A){const I=new Image;I.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",I.onload=I.onerror=function(){A(I.height===1)}})),this.isSupported}}class i8{constructor(A){this.name=lg.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const I=this.parser.json,C=I.bufferViews[A];if(C.extensions&&C.extensions[this.name]){const B=C.extensions[this.name],i=this.parser.getDependency("buffer",B.buffer),Q=this.parser.options.meshoptDecoder;if(!Q||!Q.supported){if(I.extensionsRequired&&I.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(e){const E=B.byteOffset||0,t=B.byteLength||0,n=B.count,a=B.byteStride,r=new Uint8Array(e,E,t);return Q.decodeGltfBufferAsync?Q.decodeGltfBufferAsync(n,a,r,B.mode,B.filter).then(function(l){return l.buffer}):Q.ready.then(function(){const l=new ArrayBuffer(n*a);return Q.decodeGltfBuffer(new Uint8Array(l),n,a,r,B.mode,B.filter),l})})}else return null}}class Q8{constructor(A){this.name=lg.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const I=this.parser.json,C=I.nodes[A];if(!C.extensions||!C.extensions[this.name]||C.mesh===void 0)return null;const B=I.meshes[C.mesh];for(const t of B.primitives)if(t.mode!==Fi.TRIANGLES&&t.mode!==Fi.TRIANGLE_STRIP&&t.mode!==Fi.TRIANGLE_FAN&&t.mode!==void 0)return null;const Q=C.extensions[this.name].attributes,e=[],E={};for(const t in Q)e.push(this.parser.getDependency("accessor",Q[t]).then(n=>(E[t]=n,E[t])));return e.length<1?null:(e.push(this.parser.createNodeMesh(A)),Promise.all(e).then(t=>{const n=t.pop(),a=n.isGroup?n.children:[n],r=t[0].count,l=[];for(const D of a){const G=new MI,h=new _,c=new Wg,y=new _(1,1,1),S=new Td(D.geometry,D.material,r);for(let k=0;k=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},iE={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},a8={CUBICSPLINE:void 0,LINEAR:eo,STEP:gs},Zy={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function r8(g){return g.DefaultMaterial===void 0&&(g.DefaultMaterial=new Il({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:ri})),g.DefaultMaterial}function pt(g,A,I){for(const C in I.extensions)g[C]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[C]=I.extensions[C])}function sE(g,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(g.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function l8(g,A,I){let C=!1,B=!1,i=!1;for(let t=0,n=A.length;t0||g.search(/^data\:image\/jpeg/)===0?"image/jpeg":g.search(/\.webp($|\?)/i)>0||g.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const w8=new MI;class S8{constructor(A={},I={}){this.json=A,this.extensions={},this.plugins={},this.options=I,this.cache=new OW,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let C=!1,B=!1,i=-1;typeof navigator<"u"&&typeof navigator.userAgent<"u"&&(C=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,B=navigator.userAgent.indexOf("Firefox")>-1,i=B?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>"u"||C||B&&i<98?this.textureLoader=new xw(this.options.manager):this.textureLoader=new pL(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new VB(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,I){const C=this,B=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(Q){return Q._markDefs&&Q._markDefs()}),Promise.all(this._invokeAll(function(Q){return Q.beforeRoot&&Q.beforeRoot()})).then(function(){return Promise.all([C.getDependencies("scene"),C.getDependencies("animation"),C.getDependencies("camera")])}).then(function(Q){const e={scene:Q[0][B.scene||0],scenes:Q[0],animations:Q[1],cameras:Q[2],asset:B.asset,parser:C,userData:{}};pt(i,e,B),sE(e,B),Promise.all(C._invokeAll(function(E){return E.afterRoot&&E.afterRoot(e)})).then(function(){A(e)})}).catch(I)}_markDefs(){const A=this.json.nodes||[],I=this.json.skins||[],C=this.json.meshes||[];for(let B=0,i=I.length;B{const E=this.associations.get(Q);E!=null&&this.associations.set(e,E);for(const[t,n]of Q.children.entries())i(n,e.children[t])};return i(C,B),B.name+="_instance_"+A.uses[I]++,B}_invokeOne(A){const I=Object.values(this.plugins);I.push(this);for(let C=0;C=2&&h.setY(Z,M[F*E+1]),E>=3&&h.setZ(Z,M[F*E+2]),E>=4&&h.setW(Z,M[F*E+3]),E>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return h})}loadTexture(A){const I=this.json,C=this.options,i=I.textures[A].source,Q=I.images[i];let e=this.textureLoader;if(Q.uri){const E=C.manager.getHandler(Q.uri);E!==null&&(e=E)}return this.loadTextureImage(A,i,e)}loadTextureImage(A,I,C){const B=this,i=this.json,Q=i.textures[A],e=i.images[I],E=(e.uri||e.bufferView)+":"+Q.sampler;if(this.textureCache[E])return this.textureCache[E];const t=this.loadImageSource(I,C).then(function(n){n.flipY=!1,n.name=Q.name||e.name||"",n.name===""&&typeof e.uri=="string"&&e.uri.startsWith("data:image/")===!1&&(n.name=e.uri);const r=(i.samplers||{})[Q.sampler]||{};return n.magFilter=RR[r.magFilter]||Sg,n.minFilter=RR[r.minFilter]||ti,n.wrapS=KR[r.wrapS]||xE,n.wrapT=KR[r.wrapT]||xE,B.associations.set(n,{textures:A}),n}).catch(function(){return null});return this.textureCache[E]=t,t}loadImageSource(A,I){const C=this,B=this.json,i=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(a=>a.clone());const Q=B.images[A],e=self.URL||self.webkitURL;let E=Q.uri||"",t=!1;if(Q.bufferView!==void 0)E=C.getDependency("bufferView",Q.bufferView).then(function(a){t=!0;const r=new Blob([a],{type:Q.mimeType});return E=e.createObjectURL(r),E});else if(Q.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const n=Promise.resolve(E).then(function(a){return new Promise(function(r,l){let D=r;I.isImageBitmapLoader===!0&&(D=function(G){const h=new Lg(G);h.needsUpdate=!0,r(h)}),I.load(qQ.resolveURL(a,i.path),D,void 0,l)})}).then(function(a){return t===!0&&e.revokeObjectURL(E),a.userData.mimeType=Q.mimeType||h8(Q.uri),a}).catch(function(a){throw console.error("THREE.GLTFLoader: Couldn't load texture",E),a});return this.sourceCache[A]=n,n}assignTexture(A,I,C,B){const i=this;return this.getDependency("texture",C.index).then(function(Q){if(!Q)return null;if(C.texCoord!==void 0&&C.texCoord>0&&(Q=Q.clone(),Q.channel=C.texCoord),i.extensions[lg.KHR_TEXTURE_TRANSFORM]){const e=C.extensions!==void 0?C.extensions[lg.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const E=i.associations.get(Q);Q=i.extensions[lg.KHR_TEXTURE_TRANSFORM].extendTexture(Q,e),i.associations.set(Q,E)}}return B!==void 0&&("colorSpace"in Q?Q.colorSpace=B===3001?"srgb":"srgb-linear":Q.encoding=B),A[I]=Q,Q})}assignFinalMaterial(A){const I=A.geometry;let C=A.material;const B=I.attributes.tangent===void 0,i=I.attributes.color!==void 0,Q=I.attributes.normal===void 0;if(A.isPoints){const e="PointsMaterial:"+C.uuid;let E=this.cache.get(e);E||(E=new pw,hC.prototype.copy.call(E,C),E.color.copy(C.color),E.map=C.map,E.sizeAttenuation=!1,this.cache.add(e,E)),C=E}else if(A.isLine){const e="LineBasicMaterial:"+C.uuid;let E=this.cache.get(e);E||(E=new dB,hC.prototype.copy.call(E,C),E.color.copy(C.color),E.map=C.map,this.cache.add(e,E)),C=E}if(B||i||Q){let e="ClonedMaterial:"+C.uuid+":";B&&(e+="derivative-tangents:"),i&&(e+="vertex-colors:"),Q&&(e+="flat-shading:");let E=this.cache.get(e);E||(E=C.clone(),i&&(E.vertexColors=!0),Q&&(E.flatShading=!0),B&&(E.normalScale&&(E.normalScale.y*=-1),E.clearcoatNormalScale&&(E.clearcoatNormalScale.y*=-1)),this.cache.add(e,E),this.associations.set(E,this.associations.get(C))),C=E}A.material=C}getMaterialType(){return Il}loadMaterial(A){const I=this,C=this.json,B=this.extensions,i=C.materials[A];let Q;const e={},E=i.extensions||{},t=[];if(E[lg.KHR_MATERIALS_UNLIT]){const a=B[lg.KHR_MATERIALS_UNLIT];Q=a.getMaterialType(),t.push(a.extendParams(e,i,I))}else{const a=i.pbrMetallicRoughness||{};if(e.color=new eI(1,1,1),e.opacity=1,Array.isArray(a.baseColorFactor)){const r=a.baseColorFactor;e.color.fromArray(r),e.opacity=r[3]}a.baseColorTexture!==void 0&&t.push(I.assignTexture(e,"map",a.baseColorTexture,3001)),e.metalness=a.metallicFactor!==void 0?a.metallicFactor:1,e.roughness=a.roughnessFactor!==void 0?a.roughnessFactor:1,a.metallicRoughnessTexture!==void 0&&(t.push(I.assignTexture(e,"metalnessMap",a.metallicRoughnessTexture)),t.push(I.assignTexture(e,"roughnessMap",a.metallicRoughnessTexture))),Q=this._invokeOne(function(r){return r.getMaterialType&&r.getMaterialType(A)}),t.push(Promise.all(this._invokeAll(function(r){return r.extendMaterialParams&&r.extendMaterialParams(A,e)})))}i.doubleSided===!0&&(e.side=qi);const n=i.alphaMode||Zy.OPAQUE;if(n===Zy.BLEND?(e.transparent=!0,e.depthWrite=!1):(e.transparent=!1,n===Zy.MASK&&(e.alphaTest=i.alphaCutoff!==void 0?i.alphaCutoff:.5)),i.normalTexture!==void 0&&Q!==NC&&(t.push(I.assignTexture(e,"normalMap",i.normalTexture)),e.normalScale=new qA(1,1),i.normalTexture.scale!==void 0)){const a=i.normalTexture.scale;e.normalScale.set(a,a)}return i.occlusionTexture!==void 0&&Q!==NC&&(t.push(I.assignTexture(e,"aoMap",i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(e.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&Q!==NC&&(e.emissive=new eI().fromArray(i.emissiveFactor)),i.emissiveTexture!==void 0&&Q!==NC&&t.push(I.assignTexture(e,"emissiveMap",i.emissiveTexture,3001)),Promise.all(t).then(function(){const a=new Q(e);return i.name&&(a.name=i.name),sE(a,i),I.associations.set(a,{materials:A}),i.extensions&&pt(B,a,i),a})}createUniqueName(A){const I=hg.sanitizeNodeName(A||"");return I in this.nodeNamesUsed?I+"_"+ ++this.nodeNamesUsed[I]:(this.nodeNamesUsed[I]=0,I)}loadGeometries(A){const I=this,C=this.extensions,B=this.primitiveCache;function i(e){return C[lg.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,I).then(function(E){return JR(E,e,I)})}const Q=[];for(let e=0,E=A.length;e0&&c8(c,i),c.name=I.createUniqueName(i.name||"mesh_"+A),sE(c,i),h.extensions&&pt(B,c,h),I.assignFinalMaterial(c),a.push(c)}for(let l=0,D=a.length;l1?n=new qB:t.length===1?n=t[0]:n=new ng,n!==t[0])for(let a=0,r=t.length;a{const a=new Map;for(const[r,l]of B.associations)(r instanceof hC||r instanceof Lg)&&a.set(r,l);return n.traverse(r=>{const l=B.associations.get(r);l!=null&&a.set(r,l)}),a};return B.associations=t(i),i})}}function G8(g,A,I){const C=A.attributes,B=new aC;if(C.POSITION!==void 0){const e=I.json.accessors[C.POSITION],E=e.min,t=e.max;if(E!==void 0&&t!==void 0){if(B.set(new _(E[0],E[1],E[2]),new _(t[0],t[1],t[2])),e.normalized){const n=Qk(On[e.componentType]);B.min.multiplyScalar(n),B.max.multiplyScalar(n)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const i=A.targets;if(i!==void 0){const e=new _,E=new _;for(let t=0,n=i.length;t(q=K.indexOf(a))&&Z=S.byteLength||!(U=r(S)))return e(1,"no header found");if(!(K=U.match(k)))return e(3,"bad initial token");for(Z.valid|=1,Z.programtype=K[1],Z.string+=U+` +`;U=r(S),U!==!1;){if(Z.string+=U+` +`,U.charAt(0)==="#"){Z.comments+=U+` +`;continue}if((K=U.match(N))&&(Z.gamma=parseFloat(K[1])),(K=U.match(M))&&(Z.exposure=parseFloat(K[1])),(K=U.match(F))&&(Z.valid|=2,Z.format=K[1]),(K=U.match(q))&&(Z.valid|=4,Z.height=parseInt(K[1],10),Z.width=parseInt(K[2],10)),Z.valid&2&&Z.valid&4)break}return Z.valid&2?Z.valid&4?Z:e(3,"missing image size specifier"):e(3,"missing format specifier")},D=function(S,k,N){const M=k;if(M<8||M>32767||S[0]!==2||S[1]!==2||S[2]&128)return new Uint8Array(S);if(M!==(S[2]<<8|S[3]))return e(3,"wrong scanline width");const F=new Uint8Array(4*k*N);if(!F.length)return e(4,"unable to allocate buffer space");let q=0,Z=0;const U=4*M,K=new Uint8Array(4),z=new Uint8Array(U);let DA=N;for(;DA>0&&ZS.byteLength)return e(1);if(K[0]=S[Z++],K[1]=S[Z++],K[2]=S[Z++],K[3]=S[Z++],K[0]!=2||K[1]!=2||(K[2]<<8|K[3])!=M)return e(3,"bad rgbe scanline format");let X=0,eA;for(;X128;if(wA&&(eA-=128),eA===0||X+eA>U)return e(3,"bad scanline data");if(wA){const v=S[Z++];for(let CA=0;CA>3]&1<<(J&7))&&(P[lA++]=J);for(var V=lA-1;lA<65536;)P[lA++]=0;return V}function K(L){for(var P=0;P<16384;P++)L[P]={},L[P].len=0,L[P].lit=0,L[P].p=null}const z={l:0,c:0,lc:0};function DA(L,P,lA,J,V){for(;lA>lA&(1<0;--P){var J=lA+X[P]>>1;X[P]=lA,lA=J}for(var P=0;P<65537;++P){var V=L[P];V>0&&(L[P]=V|X[V]++<<6)}}function iA(L,P,lA,J,V,$,sA){for(var QA=lA,KA=0,mA=0;V<=$;V++){if(QA.value-lA.value>J)return!1;DA(6,KA,mA,L,QA);var xA=z.l;if(KA=z.c,mA=z.lc,sA[V]=xA,xA==63){if(QA.value-lA.value>J)throw"Something wrong with hufUnpackEncTable";DA(8,KA,mA,L,QA);var LA=z.l+6;if(KA=z.c,mA=z.lc,V+LA>$+1)throw"Something wrong with hufUnpackEncTable";for(;LA--;)sA[V++]=0;V--}else if(xA>=59){var LA=xA-59+2;if(V+LA>$+1)throw"Something wrong with hufUnpackEncTable";for(;LA--;)sA[V++]=0;V--}}eA(sA)}function wA(L){return L&63}function v(L){return L>>6}function CA(L,P,lA,J){for(;P<=lA;P++){var V=v(L[P]),$=wA(L[P]);if(V>>$)throw"Invalid table entry";if($>14){var sA=J[V>>$-14];if(sA.len)throw"Invalid table entry";if(sA.lit++,sA.p){var QA=sA.p;sA.p=new Array(sA.lit);for(var KA=0;KA0;KA--){var sA=J[(V<<14-$)+mA];if(sA.len||sA.p)throw"Invalid table entry";sA.len=$,sA.lit=P,mA++}}return!0}const gA={c:0,lc:0};function SA(L,P,lA,J){L=L<<8|aI(lA,J),P+=8,gA.c=L,gA.lc=P}const NA={c:0,lc:0};function WA(L,P,lA,J,V,$,sA,QA,KA,mA){if(L==P){J<8&&(SA(lA,J,V,sA),lA=gA.c,J=gA.lc),J-=8;var xA=lA>>J,xA=new Uint8Array([xA])[0];if(KA.value+xA>mA)return!1;for(var LA=QA[KA.value-1];xA-- >0;)QA[KA.value++]=LA}else if(KA.value32767?P-65536:P}const Y={a:0,b:0};function x(L,P){var lA=b(L),J=b(P),V=J,$=lA+(V&1)+(V>>1),sA=$,QA=$-V;Y.a=sA,Y.b=QA}function nA(L,P){var lA=j(L),J=j(P),V=lA-(J>>1)&65535,$=J+V-32768&65535;Y.a=$,Y.b=V}function MA(L,P,lA,J,V,$,sA){for(var QA=sA<16384,KA=lA>V?V:lA,mA=1,xA;mA<=KA;)mA<<=1;for(mA>>=1,xA=mA,mA>>=1;mA>=1;){for(var LA=0,DI=LA+$*(V-xA),VA=$*mA,XA=$*xA,wI=J*mA,FI=J*xA,RI,OI,hI,QI;LA<=DI;LA+=XA){for(var jI=LA,NI=LA+J*(lA-xA);jI<=NI;jI+=FI){var TI=jI+wI,dg=jI+VA,H=dg+wI;QA?(x(L[jI+P],L[dg+P]),RI=Y.a,hI=Y.b,x(L[TI+P],L[H+P]),OI=Y.a,QI=Y.b,x(RI,OI),L[jI+P]=Y.a,L[TI+P]=Y.b,x(hI,QI),L[dg+P]=Y.a,L[H+P]=Y.b):(nA(L[jI+P],L[dg+P]),RI=Y.a,hI=Y.b,nA(L[TI+P],L[H+P]),OI=Y.a,QI=Y.b,nA(RI,OI),L[jI+P]=Y.a,L[TI+P]=Y.b,nA(hI,QI),L[dg+P]=Y.a,L[H+P]=Y.b)}if(lA&mA){var dg=jI+VA;QA?x(L[jI+P],L[dg+P]):nA(L[jI+P],L[dg+P]),RI=Y.a,L[dg+P]=Y.b,L[jI+P]=RI}}if(V&mA)for(var jI=LA,NI=LA+J*(lA-xA);jI<=NI;jI+=FI){var TI=jI+wI;QA?x(L[jI+P],L[TI+P]):nA(L[jI+P],L[TI+P]),RI=Y.a,L[TI+P]=Y.b,L[jI+P]=RI}xA=mA,mA>>=1}return LA}function oA(L,P,lA,J,V,$,sA,QA,KA,mA){for(var xA=0,LA=0,DI=QA,VA=Math.trunc(V.value+($+7)/8);V.value=14;){var XA=xA>>LA-14&16383,wI=P[XA];if(wI.len)LA-=wI.len,WA(wI.lit,sA,xA,LA,lA,J,V,KA,mA,DI),xA=NA.c,LA=NA.lc;else{if(!wI.p)throw"hufDecode issues";var FI;for(FI=0;FI=RI&&v(L[wI.p[FI]])==(xA>>LA-RI&(1<>=OI,LA-=OI;LA>0;){var wI=P[xA<<14-LA&16383];if(wI.len)LA-=wI.len,WA(wI.lit,sA,xA,LA,lA,J,V,KA,mA,DI),xA=NA.c,LA=NA.lc;else throw"hufDecode issues"}return!0}function FA(L,P,lA,J,V,$){var sA={value:0},QA=lA.value,KA=tI(P,lA),mA=tI(P,lA);lA.value+=4;var xA=tI(P,lA);if(lA.value+=4,KA<0||KA>=65537||mA<0||mA>=65537)throw"Something wrong with HUF_ENCSIZE";var LA=new Array(65537),DI=new Array(16384);K(DI);var VA=J-(lA.value-QA);if(iA(L,P,lA,VA,KA,mA,LA),xA>8*(J-(lA.value-QA)))throw"Something wrong with hufUncompress";CA(LA,KA,mA,DI),oA(LA,DI,L,P,lA,xA,mA,$,V,sA)}function W(L,P,lA){for(var J=0;J$||(P[V++]=L[lA++],V>$));)P[V++]=L[J++]}function hA(L){for(var P=L.byteLength,lA=new Array,J=0,V=new DataView(L);P>0;){var $=V.getInt8(J++);if($<0){var sA=-$;P-=sA+1;for(var QA=0;QA>8==255?V+=J&255:(lA[V]=J,V++),L.value++}function EA(L,P){P[0]=jA(L[0]),P[1]=jA(L[1]),P[2]=jA(L[5]),P[3]=jA(L[6]),P[4]=jA(L[14]),P[5]=jA(L[15]),P[6]=jA(L[27]),P[7]=jA(L[28]),P[8]=jA(L[2]),P[9]=jA(L[4]),P[10]=jA(L[7]),P[11]=jA(L[13]),P[12]=jA(L[16]),P[13]=jA(L[26]),P[14]=jA(L[29]),P[15]=jA(L[42]),P[16]=jA(L[3]),P[17]=jA(L[8]),P[18]=jA(L[12]),P[19]=jA(L[17]),P[20]=jA(L[25]),P[21]=jA(L[30]),P[22]=jA(L[41]),P[23]=jA(L[43]),P[24]=jA(L[9]),P[25]=jA(L[11]),P[26]=jA(L[18]),P[27]=jA(L[24]),P[28]=jA(L[31]),P[29]=jA(L[40]),P[30]=jA(L[44]),P[31]=jA(L[53]),P[32]=jA(L[10]),P[33]=jA(L[19]),P[34]=jA(L[23]),P[35]=jA(L[32]),P[36]=jA(L[39]),P[37]=jA(L[45]),P[38]=jA(L[52]),P[39]=jA(L[54]),P[40]=jA(L[20]),P[41]=jA(L[22]),P[42]=jA(L[33]),P[43]=jA(L[38]),P[44]=jA(L[46]),P[45]=jA(L[51]),P[46]=jA(L[55]),P[47]=jA(L[60]),P[48]=jA(L[21]),P[49]=jA(L[34]),P[50]=jA(L[37]),P[51]=jA(L[47]),P[52]=jA(L[50]),P[53]=jA(L[56]),P[54]=jA(L[59]),P[55]=jA(L[61]),P[56]=jA(L[35]),P[57]=jA(L[36]),P[58]=jA(L[48]),P[59]=jA(L[49]),P[60]=jA(L[57]),P[61]=jA(L[58]),P[62]=jA(L[62]),P[63]=jA(L[63])}function f(L){const P=.5*Math.cos(.7853975),lA=.5*Math.cos(3.14159/16),J=.5*Math.cos(3.14159/8),V=.5*Math.cos(3*3.14159/16),$=.5*Math.cos(5*3.14159/16),sA=.5*Math.cos(3*3.14159/8),QA=.5*Math.cos(7*3.14159/16);for(var KA=new Array(4),mA=new Array(4),xA=new Array(4),LA=new Array(4),DI=0;DI<8;++DI){var VA=DI*8;KA[0]=J*L[VA+2],KA[1]=sA*L[VA+2],KA[2]=J*L[VA+6],KA[3]=sA*L[VA+6],mA[0]=lA*L[VA+1]+V*L[VA+3]+$*L[VA+5]+QA*L[VA+7],mA[1]=V*L[VA+1]-QA*L[VA+3]-lA*L[VA+5]-$*L[VA+7],mA[2]=$*L[VA+1]-lA*L[VA+3]+QA*L[VA+5]+V*L[VA+7],mA[3]=QA*L[VA+1]-$*L[VA+3]+V*L[VA+5]-lA*L[VA+7],xA[0]=P*(L[VA+0]+L[VA+4]),xA[3]=P*(L[VA+0]-L[VA+4]),xA[1]=KA[0]+KA[3],xA[2]=KA[1]-KA[2],LA[0]=xA[0]+xA[1],LA[1]=xA[3]+xA[2],LA[2]=xA[3]-xA[2],LA[3]=xA[0]-xA[1],L[VA+0]=LA[0]+mA[0],L[VA+1]=LA[1]+mA[1],L[VA+2]=LA[2]+mA[2],L[VA+3]=LA[3]+mA[3],L[VA+4]=LA[3]-mA[3],L[VA+5]=LA[2]-mA[2],L[VA+6]=LA[1]-mA[1],L[VA+7]=LA[0]-mA[0]}for(var XA=0;XA<8;++XA)KA[0]=J*L[16+XA],KA[1]=sA*L[16+XA],KA[2]=J*L[48+XA],KA[3]=sA*L[48+XA],mA[0]=lA*L[8+XA]+V*L[24+XA]+$*L[40+XA]+QA*L[56+XA],mA[1]=V*L[8+XA]-QA*L[24+XA]-lA*L[40+XA]-$*L[56+XA],mA[2]=$*L[8+XA]-lA*L[24+XA]+QA*L[40+XA]+V*L[56+XA],mA[3]=QA*L[8+XA]-$*L[24+XA]+V*L[40+XA]-lA*L[56+XA],xA[0]=P*(L[XA]+L[32+XA]),xA[3]=P*(L[XA]-L[32+XA]),xA[1]=KA[0]+KA[3],xA[2]=KA[1]-KA[2],LA[0]=xA[0]+xA[1],LA[1]=xA[3]+xA[2],LA[2]=xA[3]-xA[2],LA[3]=xA[0]-xA[1],L[0+XA]=LA[0]+mA[0],L[8+XA]=LA[1]+mA[1],L[16+XA]=LA[2]+mA[2],L[24+XA]=LA[3]+mA[3],L[32+XA]=LA[3]-mA[3],L[40+XA]=LA[2]-mA[2],L[48+XA]=LA[1]-mA[1],L[56+XA]=LA[0]-mA[0]}function m(L){for(var P=0;P<64;++P){var lA=L[0][P],J=L[1][P],V=L[2][P];L[0][P]=lA+1.5747*V,L[1][P]=lA-.1873*J-.4682*V,L[2][P]=lA+1.8556*J}}function cA(L,P,lA){for(var J=0;J<64;++J)P[lA+J]=_t.toHalfFloat(ZA(L[J]))}function ZA(L){return L<=1?Math.sign(L)*Math.pow(Math.abs(L),2.2):Math.sign(L)*Math.pow(Z,Math.abs(L)-1)}function OA(L){return new DataView(L.array.buffer,L.offset.value,L.size)}function YA(L){var P=L.viewer.buffer.slice(L.offset.value,L.offset.value+L.size),lA=new Uint8Array(hA(P)),J=new Uint8Array(lA.length);return UA(lA),tA(lA,J),new DataView(J.buffer)}function EI(L){var P=L.array.slice(L.offset.value,L.offset.value+L.size),lA=lD(P),J=new Uint8Array(lA.length);return UA(lA),tA(lA,J),new DataView(J.buffer)}function CI(L){for(var P=L.viewer,lA={value:L.offset.value},J=new Uint16Array(L.width*L.scanlineBlockSize*(L.channels*L.type)),V=new Uint8Array(8192),$=0,sA=new Array(L.channels),QA=0;QA=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(KA<=mA)for(var QA=0;QA0;){var QA=fI(P.buffer,lA),KA=UI(P,lA),mA=KA>>2&3,xA=(KA>>4)-1,LA=new Int8Array([xA])[0],DI=UI(P,lA);$.push({name:QA,index:LA,type:DI,compression:mA}),sA-=QA.length+3}for(var VA=JC.channels,XA=new Array(L.channels),wI=0;wI=0&&(OI.idx[QI.index]=hI),FI.offset=hI)}if(V.acCompressedSize>0)switch(V.acCompression){case 0:var TI=new Uint16Array(V.totalAcUncompressedCount);FA(L.array,P,lA,V.acCompressedSize,TI,V.totalAcUncompressedCount);break;case 1:var jI=L.array.slice(lA.value,lA.value+V.totalAcUncompressedCount),NI=lD(jI),TI=new Uint16Array(NI.buffer);lA.value+=V.totalAcUncompressedCount;break}if(V.dcCompressedSize>0){var dg={array:L.array,offset:lA,size:V.dcCompressedSize},H=new Uint16Array(EI(dg).buffer);lA.value+=V.dcCompressedSize}if(V.rleRawSize>0){var jI=L.array.slice(lA.value,lA.value+V.rleCompressedSize),NI=lD(jI),O=hA(NI.buffer);lA.value+=V.rleCompressedSize}for(var BA=0,aA=new Array(XA.length),wI=0;wI>10,lA=L&1023;return(L>>15?-1:1)*(P?P===31?lA?NaN:1/0:Math.pow(2,P-15)*(1+lA/1024):6103515625e-14*(lA/1024))}function IA(L,P){var lA=L.getUint16(P.value,!0);return P.value+=2,lA}function AI(L,P){return jA(IA(L,P))}function $A(L,P,lA,J){for(var V=lA.value,$=[];lA.value_I.height?_I.height-P:_I.scanlineBlockSize;const J=_I.size<_I.lines*_I.bytesPerLine?_I.uncompress(_I):OA(_I);MB.value+=_I.size;for(let V=0;V<_I.scanlineBlockSize;V++){const $=V+L*_I.scanlineBlockSize;if($>=_I.height)break;for(let sA=0;sA<_I.channels;sA++){const QA=rQ[JC.channels[sA].name];for(let KA=0;KA<_I.width;KA++){bi.value=(V*(_I.channels*_I.width)+sA*_I.width+KA)*_I.inputSize;const mA=(_I.height-1-$)*(_I.width*_I.outputChannels)+KA*_I.outputChannels+QA;_I.byteArray[mA]=_I.getter(J,bi)}}}}return{header:JC,width:_I.width,height:_I.height,data:_I.byteArray,format:_I.format,[wa?"colorSpace":"encoding"]:_I[wa?"colorSpace":"encoding"],type:this.type}}setDataType(A){return this.type=A,this}load(A,I,C,B){function i(Q,e){wa?Q.colorSpace=e.colorSpace:Q.encoding=e.encoding,Q.minFilter=Sg,Q.magFilter=Sg,Q.generateMipmaps=!1,Q.flipY=!1,I&&I(Q,e)}return super.load(A,i,C,B)}}const Wy=new WeakMap;class k8 extends oB{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,I,C,B){const i=new VB(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(A,Q=>{const e={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(Q,e).then(I).catch(B)},C,B)}decodeDracoFile(A,I,C,B){const i={attributeIDs:C||this.defaultAttributeIDs,attributeTypes:B||this.defaultAttributeTypes,useUniqueIDs:!!C};this.decodeGeometry(A,i).then(I)}decodeGeometry(A,I){for(const E in I.attributeTypes){const t=I.attributeTypes[E];t.BYTES_PER_ELEMENT!==void 0&&(I.attributeTypes[E]=t.name)}const C=JSON.stringify(I);if(Wy.has(A)){const E=Wy.get(A);if(E.key===C)return E.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let B;const i=this.workerNextTaskID++,Q=A.byteLength,e=this._getWorker(i,Q).then(E=>(B=E,new Promise((t,n)=>{B._callbacks[i]={resolve:t,reject:n},B.postMessage({type:"decode",id:i,taskConfig:I,buffer:A},[A])}))).then(E=>this._createGeometry(E.geometry));return e.catch(()=>!0).then(()=>{B&&i&&this._releaseTask(B,i)}),Wy.set(A,{key:C,promise:e}),e}_createGeometry(A){const I=new WI;A.index&&I.setIndex(new Ag(A.index.array,1));for(let C=0;C{C.load(A,B,void 0,i)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",I=[];return A?I.push(this._loadLibrary("draco_decoder.js","text")):(I.push(this._loadLibrary("draco_wasm_wrapper.js","text")),I.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(I).then(C=>{const B=C[0];A||(this.decoderConfig.wasmBinary=C[1]);const i=d8.toString(),Q=["/* draco decoder */",B,"","/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join(` +`);this.workerSourceURL=URL.createObjectURL(new Blob([Q]))}),this.decoderPending}_getWorker(A,I){return this._initDecoder().then(()=>{if(this.workerPool.lengthi._taskLoad?-1:1});const C=this.workerPool[this.workerPool.length-1];return C._taskCosts[A]=I,C._taskLoad+=I,C})}_releaseTask(A,I){A._taskLoad-=A._taskCosts[I],delete A._callbacks[I],delete A._taskCosts[I]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A{const a=n.draco,r=new a.Decoder,l=new a.DecoderBuffer;l.Init(new Int8Array(E),E.byteLength);try{const D=I(a,r,l,t),G=D.attributes.map(h=>h.array.buffer);D.index&&G.push(D.index.array.buffer),self.postMessage({type:"decode",id:e.id,geometry:D},G)}catch(D){console.error(D),self.postMessage({type:"error",id:e.id,error:D.message})}finally{a.destroy(l),a.destroy(r)}});break}};function I(Q,e,E,t){const n=t.attributeIDs,a=t.attributeTypes;let r,l;const D=e.GetEncodedGeometryType(E);if(D===Q.TRIANGULAR_MESH)r=new Q.Mesh,l=e.DecodeBufferToMesh(E,r);else if(D===Q.POINT_CLOUD)r=new Q.PointCloud,l=e.DecodeBufferToPointCloud(E,r);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!l.ok()||r.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const G={index:null,attributes:[]};for(const h in n){const c=self[a[h]];let y,S;if(t.useUniqueIDs)S=n[h],y=e.GetAttributeByUniqueId(r,S);else{if(S=e.GetAttributeId(r,Q[n[h]]),S===-1)continue;y=e.GetAttribute(r,S)}G.attributes.push(B(Q,e,r,h,c,y))}return D===Q.TRIANGULAR_MESH&&(G.index=C(Q,e,r)),Q.destroy(r),G}function C(Q,e,E){const n=E.num_faces()*3,a=n*4,r=Q._malloc(a);e.GetTrianglesUInt32Array(E,a,r);const l=new Uint32Array(Q.HEAPF32.buffer,r,n).slice();return Q._free(r),{array:l,itemSize:1}}function B(Q,e,E,t,n,a){const r=a.num_components(),D=E.num_points()*r,G=D*n.BYTES_PER_ELEMENT,h=i(Q,n),c=Q._malloc(G);e.GetAttributeDataArrayForAllPoints(E,a,h,G,c);const y=new n(Q.HEAPF32.buffer,c,D).slice();return Q._free(c),{name:t,array:y,itemSize:r}}function i(Q,e){switch(e){case Float32Array:return Q.DT_FLOAT32;case Int8Array:return Q.DT_INT8;case Int16Array:return Q.DT_INT16;case Int32Array:return Q.DT_INT32;case Uint8Array:return Q.DT_UINT8;case Uint16Array:return Q.DT_UINT16;case Uint32Array:return Q.DT_UINT32}}}let cD;const jy=()=>{if(cD)return cD;const g="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",A="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",I=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),C=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!="object")return{supported:!1};let B=g;WebAssembly.validate(I)&&(B=A);let i;const Q=WebAssembly.instantiate(e(B),{}).then(a=>{i=a.instance,i.exports.__wasm_call_ctors()});function e(a){const r=new Uint8Array(a.length);for(let D=0;D96?G-71:G>64?G-65:G>47?G+4:G>46?63:62}let l=0;for(let D=0;D{const a=Jd.clone({[t]:{value:n}});return{...E,...a}},{}),vertexShader:A,fragmentShader:I}),this.key="",e.forEach(([E])=>Object.defineProperty(this,E,{get:()=>this.uniforms[E].value,set:t=>this.uniforms[E].value=t})),Object.assign(this,Q),C&&C(this)}};return B.key=RE.generateUUID(),B}const p8=()=>parseInt(ho.replace(/\D+/g,"")),cY=p8();let DD=null,DY="https://www.gstatic.com/draco/versioned/decoders/1.5.5/";function hY(g,A,I){return C=>{I&&I(C),g&&(DD||(DD=new k8),DD.setDecoderPath(typeof g=="string"?g:DY),C.setDRACOLoader(DD)),A&&C.setMeshoptDecoder(typeof jy=="function"?jy():jy)}}function il(g,A=!0,I=!0,C){return Gs(rM,g,hY(A,I,C))}il.preload=(g,A=!0,I=!0,C)=>Gs.preload(rM,g,hY(A,I,C));il.clear=g=>Gs.clear(rM,g);il.setDecoderPath=g=>{DY=g};function Fr(g,A,I){const C=EB(r=>r.size),B=EB(r=>r.viewport),i=typeof g=="number"?g:C.width*B.dpr,Q=typeof A=="number"?A:C.height*B.dpr,e=(typeof g=="number"?I:g)||{},{samples:E=0,depth:t,...n}=e,a=T.useMemo(()=>{const r=new MC(i,Q,{minFilter:Sg,magFilter:Sg,type:iB,...n});return t&&(r.depthTexture=new Sw(i,Q,sC)),r.samples=E,r},[]);return T.useLayoutEffect(()=>{a.setSize(i,Q),E&&(a.samples=E)},[E,a,i,Q]),T.useEffect(()=>()=>a.dispose(),[]),a}const U8=g=>typeof g=="function",N8=T.forwardRef(({envMap:g,resolution:A=256,frames:I=1/0,makeDefault:C,children:B,...i},Q)=>{const e=EB(({set:h})=>h),E=EB(({camera:h})=>h),t=EB(({size:h})=>h),n=T.useRef(null),a=T.useRef(null),r=Fr(A);T.useLayoutEffect(()=>{i.manual||(n.current.aspect=t.width/t.height)},[t,i]),T.useLayoutEffect(()=>{n.current.updateProjectionMatrix()});let l=0,D=null;const G=U8(B);return FC(h=>{G&&(I===1/0||l{if(C){const h=E;return e(()=>({camera:n.current})),()=>e(()=>({camera:h}))}},[n,C,e]),T.createElement(T.Fragment,null,T.createElement("perspectiveCamera",HE({ref:QY([n,Q])},i),!G&&B),T.createElement("group",{ref:a},G&&B(r.texture)))});function F8(g){const A=T.useRef(null),I=T.useRef(!1),C=T.useRef(!1),B=T.useRef(g);return T.useLayoutEffect(()=>void(B.current=g),[g]),T.useEffect(()=>{const i=A.current;if(i){const Q=aP(()=>(I.current=!1,!0)),e=i.onBeforeRender;i.onBeforeRender=()=>I.current=!0;const E=rP(()=>(I.current!==C.current&&(B.current==null||B.current(C.current=I.current)),!0));return()=>{i.onBeforeRender=e,Q(),E()}}},[]),A}const Sa=T.forwardRef(({children:g,enabled:A=!0,speed:I=1,rotationIntensity:C=1,floatIntensity:B=1,floatingRange:i=[-.1,.1],...Q},e)=>{const E=T.useRef(null),t=T.useRef(Math.random()*1e4);return FC(n=>{var a,r;if(!A||I===0)return;const l=t.current+n.clock.getElapsedTime();E.current.rotation.x=Math.cos(l/4*I)/8*C,E.current.rotation.y=Math.sin(l/4*I)/8*C,E.current.rotation.z=Math.sin(l/4*I)/20*C;let D=Math.sin(l/4*I)/10;D=RE.mapLinear(D,-.1,.1,(a=i==null?void 0:i[0])!==null&&a!==void 0?a:-.1,(r=i==null?void 0:i[1])!==null&&r!==void 0?r:.1),E.current.position.y=D*B,E.current.updateMatrix()}),T.createElement("group",Q,T.createElement("group",{ref:QY([E,e]),matrixAutoUpdate:!1},g))}),Vy={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},f8="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",qR=g=>Array.isArray(g);function wY({files:g=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:A="",preset:I=void 0,encoding:C=void 0,extensions:B}={}){var i;let Q=null,e=!1,E;if(I){if(!(I in Vy))throw new Error("Preset must be one of: "+Object.keys(Vy).join(", "));g=Vy[I],A=f8}if(e=qR(g),E=qR(g)?"cube":g.startsWith("data:application/exr")?"exr":g.startsWith("data:application/hdr")?"hdr":(i=g.split(".").pop())==null||(i=i.split("?"))==null||(i=i.shift())==null?void 0:i.toLowerCase(),Q=e?wL:E==="hdr"?y8:E==="exr"?u8:null,!Q)throw new Error("useEnvironment: Unrecognized file extension: "+g);const t=Gs(Q,e?[g]:g,l=>{l.setPath==null||l.setPath(A),B&&B(l)}),n=e?t[0]:t;n.mapping=e?mQ:As;const a=3001,r=3e3;return"colorSpace"in n?n.colorSpace=C??e?"srgb":"srgb-linear":n.encoding=C??e?a:r,n}const R8=g=>g.current&&g.current.isScene,K8=g=>R8(g)?g.current:g;function lM(g,A,I,C,B=0){const i=K8(A||I),Q=i.background,e=i.environment,E=i.backgroundBlurriness||0;return g!=="only"&&(i.environment=C),g&&(i.background=C),g&&i.backgroundBlurriness!==void 0&&(i.backgroundBlurriness=B),()=>{g!=="only"&&(i.environment=e),g&&(i.background=Q),g&&i.backgroundBlurriness!==void 0&&(i.backgroundBlurriness=E)}}function cM({scene:g,background:A=!1,blur:I,map:C}){const B=EB(i=>i.scene);return T.useLayoutEffect(()=>{if(C)return lM(A,g,B,C,I)},[B,g,C,A,I]),null}function SY({background:g=!1,scene:A,blur:I,...C}){const B=wY(C),i=EB(Q=>Q.scene);return T.useLayoutEffect(()=>lM(g,A,i,B,I),[B,g,A,i,I]),null}function J8({children:g,near:A=1,far:I=1e3,resolution:C=256,frames:B=1,map:i,background:Q=!1,blur:e,scene:E,files:t,path:n,preset:a=void 0,extensions:r}){const l=EB(S=>S.gl),D=EB(S=>S.scene),G=T.useRef(null),[h]=T.useState(()=>new Eo),c=T.useMemo(()=>{const S=new qd(C);return S.texture.type=iB,S},[C]);T.useLayoutEffect(()=>(B===1&&G.current.update(l,h),lM(Q,E,D,c.texture,e)),[g,h,c.texture,E,D,Q,B,l]);let y=1;return FC(()=>{(B===1/0||ybw({GroundProjectedEnvImpl:xW}),[]);const e=T.useMemo(()=>[Q],[Q]),E=(A=g.ground)==null?void 0:A.height,t=(I=g.ground)==null?void 0:I.radius,n=(C=(B=g.ground)==null?void 0:B.scale)!==null&&C!==void 0?C:1e3;return T.createElement(T.Fragment,null,T.createElement(cM,HE({},g,{map:Q})),T.createElement("groundProjectedEnvImpl",{args:e,scale:n,height:E,radius:t}))}function GY(g){return g.ground?T.createElement(q8,g):g.map?T.createElement(cM,g):g.children?T.createElement(J8,g):T.createElement(SY,g)}const m8=T.forwardRef(({children:g,compute:A,width:I,height:C,samples:B=8,renderPriority:i=0,eventPriority:Q=0,frames:e=1/0,stencilBuffer:E=!1,depthBuffer:t=!0,generateMipmaps:n=!1,...a},r)=>{const{size:l,viewport:D}=EB(),G=Fr((I||l.width)*D.dpr,(C||l.height)*D.dpr,{samples:B,stencilBuffer:E,depthBuffer:t,generateMipmaps:n}),[h]=T.useState(()=>new Eo),c=T.useCallback((y,S,k)=>{var N,M;let F=(N=G.texture)==null?void 0:N.__r3f.parent;for(;F&&!(F instanceof ng);)F=F.__r3f.parent;if(!F)return!1;k.raycaster.camera||k.events.compute(y,k,(M=k.previousRoot)==null?void 0:M.getState());const[q]=k.raycaster.intersectObject(F);if(!q)return!1;const Z=q.uv;if(!Z)return!1;S.raycaster.setFromCamera(S.pointer.set(Z.x*2-1,Z.y*2-1),S.camera)},[]);return T.useImperativeHandle(r,()=>G.texture,[G]),T.createElement(T.Fragment,null,Ow(T.createElement(L8,{renderPriority:i,frames:e,fbo:G},g,T.createElement("group",{onPointerOver:()=>null})),h,{events:{compute:A||c,priority:Q}}),T.createElement("primitive",HE({object:G.texture},a)))});function L8({frames:g,renderPriority:A,children:I,fbo:C}){let B=0,i;return FC(Q=>{(g===1/0||B + void main() { + vec2 uv = gl_FragCoord.xy / resolution.xy; + vec4 t = texture2D(map, uv); + float k = blur; + float d = texture2D(sdf, vUv).r/size; + float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0)); + gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha); + #include + #include <${cY>=154?"colorspace_fragment":"encodings_fragment"}> + }`),H8=T.forwardRef(({children:g,events:A=void 0,blur:I=0,eventPriority:C=0,renderPriority:B=0,worldUnits:i=!1,resolution:Q=512,...e},E)=>{bw({PortalMaterialImpl:Y8});const t=T.useRef(null),{scene:n,gl:a,size:r,viewport:l,setEvents:D}=EB(),G=Fr(Q,Q),[h,c]=T.useState(0);FC(()=>{const M=t.current.blend>0?Math.max(1,B):0;h!==M&&c(M)}),T.useEffect(()=>{A!==void 0&&D({enabled:!A})},[A]);const[y,S]=T.useState(!0),k=F8(S);T.useLayoutEffect(()=>{var M;k.current=(M=t.current)==null?void 0:M.__r3f.parent},[]),T.useLayoutEffect(()=>{if(k.current&&I&&t.current.sdf===null){const M=new cg(k.current.geometry,new NC),F=new aC().setFromBufferAttribute(M.geometry.attributes.position),q=new VE(F.min.x*(1+2/Q),F.max.x*(1+2/Q),F.max.y*(1+2/Q),F.min.y*(1+2/Q),.1,1e3);q.position.set(0,0,1),q.lookAt(0,0,0),a.setRenderTarget(G),a.render(M,q);const U=x8(Q,Q,a)(G.texture),K=new Float32Array(Q*Q);a.readRenderTargetPixels(U,0,0,Q,Q,K);let z=1/0;for(let DA=0;DAt.current);const N=T.useCallback((M,F,q)=>{var Z;if(!k.current)return!1;if(F.pointer.set(M.offsetX/F.size.width*2-1,-(M.offsetY/F.size.height)*2+1),F.raycaster.setFromCamera(F.pointer,F.camera),((Z=t.current)==null?void 0:Z.blend)===0){const[U]=F.raycaster.intersectObject(k.current);if(!U)return F.raycaster.camera=void 0,!1}},[]);return T.createElement("portalMaterialImpl",HE({ref:t,blur:I,blend:0,resolution:[r.width*l.dpr,r.height*l.dpr],attach:"material"},e),T.createElement(m8,{attach:"map",frames:y?1/0:0,eventPriority:C,renderPriority:B,compute:N},g,T.createElement(T8,{events:A,rootScene:n,priority:h,material:t,worldUnits:i})))});function T8({events:g=void 0,rootScene:A,material:I,priority:C,worldUnits:B}){const i=EB(a=>a.scene),Q=EB(a=>a.setEvents),e=Fr(),E=Fr();T.useLayoutEffect(()=>{i.matrixAutoUpdate=!1},[]),T.useEffect(()=>{g!==void 0&&Q({enabled:g})},[g]);const[t,n]=T.useMemo(()=>{const a={value:0};return[new ln(new YC({uniforms:{a:{value:e.texture},b:{value:E.texture},blend:a},vertexShader:` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:` + uniform sampler2D a; + uniform sampler2D b; + uniform float blend; + varying vec2 vUv; + #include + void main() { + vec4 ta = texture2D(a, vUv); + vec4 tb = texture2D(b, vUv); + gl_FragColor = mix(tb, ta, blend); + #include + #include <${cY>=154?"colorspace_fragment":"encodings_fragment"}> + }`})),a]},[]);return FC(a=>{var r;let l=I==null||(r=I.current)==null?void 0:r.__r3f.parent;if(l){if(B)i.matrixWorld.identity();else{var D;C&&((D=I.current)==null?void 0:D.blend)===1&&l.updateWorldMatrix(!0,!1),i.matrixWorld.copy(l.matrixWorld)}if(C){var G,h,c;((G=I.current)==null?void 0:G.blend)>0&&((h=I.current)==null?void 0:h.blend)<1?(n.value=I.current.blend,a.gl.setRenderTarget(e),a.gl.render(i,a.camera),a.gl.setRenderTarget(E),a.gl.render(A,a.camera),a.gl.setRenderTarget(null),t.render(a.gl)):((c=I.current)==null?void 0:c.blend)===1&&a.gl.render(i,a.camera)}}},C),T.createElement(T.Fragment,null)}const x8=(g,A,I)=>{let C=new MC(g,A,{minFilter:ti,magFilter:Sg,type:sC,format:xn,generateMipmaps:!0}),B=new MC(g,A,{minFilter:og,magFilter:og}),i=new MC(g,A,{minFilter:og,magFilter:og}),Q=new MC(g,A,{minFilter:og,magFilter:og}),e=new MC(g,A,{minFilter:og,magFilter:og}),E=new MC(g,A,{minFilter:og,magFilter:og,type:sC,format:xn}),t=new MC(g,A,{minFilter:og,magFilter:og,type:sC,format:xn});const n=new ln(new YC({uniforms:{tex:{value:null}},vertexShader:` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:` + uniform sampler2D tex; + varying vec2 vUv; + #include + void main() { + gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x))); + }`})),a=new ln(new YC({uniforms:{tex:{value:null}},vertexShader:` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:` + uniform sampler2D tex; + varying vec2 vUv; + #include + void main() { + gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x))); + }`})),r=new ln(new YC({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:` + varying vec2 vUv; + uniform sampler2D tex; + uniform float offset; + uniform float level; + uniform float maxSteps; + #include + void main() { + float closestDist = 9999999.9; + vec2 closestPos = vec2(0.0); + for (float x = -1.0; x <= 1.0; x += 1.0) { + for (float y = -1.0; y <= 1.0; y += 1.0) { + vec2 voffset = vUv; + voffset += vec2(x, y) * vec2(${1/g}, ${1/A}) * offset; + vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset)); + float dist = distance(pos.xy, vUv); + if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) { + closestDist = dist; + closestPos = pos; + } + } + } + gl_FragColor = pack2HalfToRGBA(closestPos); + }`})),l=new ln(new YC({uniforms:{tex:{value:null},size:{value:new qA(g,A)}},vertexShader:` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:` + varying vec2 vUv; + uniform sampler2D tex; + uniform vec2 size; + #include + void main() { + gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0); + }`})),D=new ln(new YC({uniforms:{inside:{value:t.texture},outside:{value:E.texture},tex:{value:null}},vertexShader:` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:` + varying vec2 vUv; + uniform sampler2D inside; + uniform sampler2D outside; + uniform sampler2D tex; + #include + void main() { + float i = texture2D(inside, vUv).x; + float o =texture2D(outside, vUv).x; + if (texture2D(tex, vUv).x == 0.0) { + gl_FragColor = vec4(o, 0.0, 0.0, 0.0); + } else { + gl_FragColor = vec4(-i, 0.0, 0.0, 0.0); + } + }`}));return G=>{let h=C;G.minFilter=og,G.magFilter=og,n.material.uniforms.tex.value=G,I.setRenderTarget(B),n.render(I);const c=Math.ceil(Math.log(Math.max(g,A))/Math.log(2));let y=B,S=null;for(let k=0;k0){const i=document.getElementsByTagName("link");B=Promise.all(I.map(Q=>{if(Q=b8(Q),Q in mR)return;mR[Q]=!0;const e=Q.endsWith(".css"),E=e?'[rel="stylesheet"]':"";if(!!C)for(let a=i.length-1;a>=0;a--){const r=i[a];if(r.href===Q&&(!e||r.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${Q}"]${E}`))return;const n=document.createElement("link");if(n.rel=e?"stylesheet":v8,e||(n.as="script",n.crossOrigin=""),n.href=Q,document.head.appendChild(n),e)return new Promise((a,r)=>{n.addEventListener("load",a),n.addEventListener("error",()=>r(new Error(`Unable to preload CSS for ${Q}`)))})}))}return B.then(()=>A()).catch(i=>{const Q=new Event("vite:preloadError",{cancelable:!0});if(Q.payload=i,window.dispatchEvent(Q),!Q.defaultPrevented)throw i})};function _w(){throw new Error("Cycle detected")}var _8=Symbol.for("preact-signals");function Zw(){if(qE>1)qE--;else{for(var g,A=!1;Va!==void 0;){var I=Va;for(Va=void 0,ek++;I!==void 0;){var C=I.o;if(I.o=void 0,I.f&=-3,!(8&I.f)&&kY(I))try{I.c()}catch(B){A||(g=B,A=!0)}I=C}}if(ek=0,qE--,A)throw g}}function yY(g){if(qE>0)return g();qE++;try{return g()}finally{Zw()}}var Og=void 0,Xy=0;function zy(g){if(Xy>0)return g();var A=Og;Og=void 0,Xy++;try{return g()}finally{Xy--,Og=A}}var Va=void 0,qE=0,ek=0,Lh=0;function uY(g){if(Og!==void 0){var A=g.n;if(A===void 0||A.t!==Og)return A={i:0,S:g,p:Og.s,n:void 0,t:Og,e:void 0,x:void 0,r:A},Og.s!==void 0&&(Og.s.n=A),Og.s=A,g.n=A,32&Og.f&&g.S(A),A;if(A.i===-1)return A.i=0,A.n!==void 0&&(A.n.p=A.p,A.p!==void 0&&(A.p.n=A.n),A.p=Og.s,A.n=void 0,Og.s.n=A,Og.s=A),A}}function SC(g){this.v=g,this.i=0,this.n=void 0,this.t=void 0}SC.prototype.brand=_8;SC.prototype.h=function(){return!0};SC.prototype.S=function(g){this.t!==g&&g.e===void 0&&(g.x=this.t,this.t!==void 0&&(this.t.e=g),this.t=g)};SC.prototype.U=function(g){if(this.t!==void 0){var A=g.e,I=g.x;A!==void 0&&(A.x=I,g.e=void 0),I!==void 0&&(I.e=A,g.x=void 0),g===this.t&&(this.t=I)}};SC.prototype.subscribe=function(g){var A=this;return Gg(function(){var I=A.value,C=32&this.f;this.f&=-33;try{g(I)}finally{this.f|=C}})};SC.prototype.valueOf=function(){return this.value};SC.prototype.toString=function(){return this.value+""};SC.prototype.toJSON=function(){return this.value};SC.prototype.peek=function(){return this.v};Object.defineProperty(SC.prototype,"value",{get:function(){var g=uY(this);return g!==void 0&&(g.i=this.i),this.v},set:function(g){if(Og instanceof $E&&function(){throw new Error("Computed cannot have side-effects")}(),g!==this.v){ek>100&&_w(),this.v=g,this.i++,Lh++,qE++;try{for(var A=this.t;A!==void 0;A=A.x)A.t.N()}finally{Zw()}}}});function Qg(g){return new SC(g)}function kY(g){for(var A=g.s;A!==void 0;A=A.n)if(A.S.i!==A.i||!A.S.h()||A.S.i!==A.i)return!0;return!1}function dY(g){for(var A=g.s;A!==void 0;A=A.n){var I=A.S.n;if(I!==void 0&&(A.r=I),A.S.n=A,A.i=-1,A.n===void 0){g.s=A;break}}}function MY(g){for(var A=g.s,I=void 0;A!==void 0;){var C=A.p;A.i===-1?(A.S.U(A),C!==void 0&&(C.n=A.n),A.n!==void 0&&(A.n.p=C)):I=A,A.S.n=A.r,A.r!==void 0&&(A.r=void 0),A=C}g.s=I}function $E(g){SC.call(this,void 0),this.x=g,this.s=void 0,this.g=Lh-1,this.f=4}($E.prototype=new SC).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Lh))return!0;if(this.g=Lh,this.f|=1,this.i>0&&!kY(this))return this.f&=-2,!0;var g=Og;try{dY(this),Og=this;var A=this.x();(16&this.f||this.v!==A||this.i===0)&&(this.v=A,this.f&=-17,this.i++)}catch(I){this.v=I,this.f|=16,this.i++}return Og=g,MY(this),this.f&=-2,!0};$E.prototype.S=function(g){if(this.t===void 0){this.f|=36;for(var A=this.s;A!==void 0;A=A.n)A.S.S(A)}SC.prototype.S.call(this,g)};$E.prototype.U=function(g){if(this.t!==void 0&&(SC.prototype.U.call(this,g),this.t===void 0)){this.f&=-33;for(var A=this.s;A!==void 0;A=A.n)A.S.U(A)}};$E.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var g=this.t;g!==void 0;g=g.x)g.t.N()}};$E.prototype.peek=function(){if(this.h()||_w(),16&this.f)throw this.v;return this.v};Object.defineProperty($E.prototype,"value",{get:function(){1&this.f&&_w();var g=uY(this);if(this.h(),g!==void 0&&(g.i=this.i),16&this.f)throw this.v;return this.v}});function wC(g){return new $E(g)}function pY(g){var A=g.u;if(g.u=void 0,typeof A=="function"){qE++;var I=Og;Og=void 0;try{A()}catch(C){throw g.f&=-2,g.f|=8,DM(g),C}finally{Og=I,Zw()}}}function DM(g){for(var A=g.s;A!==void 0;A=A.n)A.S.U(A);g.x=void 0,g.s=void 0,pY(g)}function Z8(g){if(Og!==this)throw new Error("Out-of-order effect");MY(this),Og=g,this.f&=-2,8&this.f&&DM(this),Zw()}function Ql(g){this.x=g,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}Ql.prototype.c=function(){var g=this.S();try{if(8&this.f||this.x===void 0)return;var A=this.x();typeof A=="function"&&(this.u=A)}finally{g()}};Ql.prototype.S=function(){1&this.f&&_w(),this.f|=1,this.f&=-9,pY(this),dY(this),qE++;var g=Og;return Og=this,Z8.bind(this,g)};Ql.prototype.N=function(){2&this.f||(this.f|=2,this.o=Va,Va=this)};Ql.prototype.d=function(){this.f|=8,1&this.f||DM(this)};function Gg(g){var A=new Ql(g);try{A.c()}catch(I){throw A.d(),I}return A.d.bind(A)}function Pw(g,A,I){const C=T.useMemo(()=>A.hasBatchedProperty.bind(A),[A]),B=T.useMemo(()=>{let i={};return(Q,e)=>{let E=0,t=!1;for(const n in i){if(!NY(i[n],Q[n])){t=!0;break}++E}t||(t=E!=e),i=Q,!(!t&&A.getProperty.peek()!=null)&&(A.getProperty.value=n=>Ek(Q[n]))}},[A]);UY(g,C,B,I)}function P8(g,A){const I=g.length;for(const C in A)for(let B=0;B{let B={},i=0;const Q=(E,t)=>{if(t===void 0)return;const n=B[E];if(n===void 0&&++i,n==null||!(t instanceof SC)){B[E]=t;return}if(Array.isArray(n)){n.push(t);return}B[E]=[n,t]};return{add:(E,t)=>{if(t!==void 0){if(C!=null){C(E,t,A,Q);return}A(E)&&Q(E,t)}},finish:()=>{I(B,i),i=0,B={}}}},[A,I,C]))}function NY(g,A){if(!Array.isArray(g))return g===A;if(!Array.isArray(A))return!1;const I=g.length;if(I!=A.length)return!1;for(let C=0;CQg(void 0),[]),B=T.useMemo(()=>({hasBatchedProperty:i=>A.includes(i),getProperty:C}),[A]);return Pw(g,B,I),C}const tk=T.createContext(void 0);function ys(g,A){const I=T.useContext(tk);I!=null&&A(I);const{classes:C}=g;if(Array.isArray(C)){const B=C.length;for(let i=0;iP8(g,I))}function Ww(g){const I={...T.useContext(tk)};for(const C in g){if(C==="children")continue;const B=g[C];B!=null&&(I[C]=B)}return RA.jsx(tk.Provider,{value:I,children:g.children})}var RB={},hM={},gg={};Object.defineProperty(gg,"__esModule",{value:!0});gg.default=gg.Wrap=gg.Unit=gg.PrintOptions=gg.PositionType=gg.Overflow=gg.NodeType=gg.MeasureMode=gg.LogLevel=gg.Justify=gg.Gutter=gg.FlexDirection=gg.ExperimentalFeature=gg.Errata=gg.Edge=gg.Display=gg.Direction=gg.Dimension=gg.Align=void 0;let Ce=function(g){return g[g.Auto=0]="Auto",g[g.FlexStart=1]="FlexStart",g[g.Center=2]="Center",g[g.FlexEnd=3]="FlexEnd",g[g.Stretch=4]="Stretch",g[g.Baseline=5]="Baseline",g[g.SpaceBetween=6]="SpaceBetween",g[g.SpaceAround=7]="SpaceAround",g}({});gg.Align=Ce;let ok=function(g){return g[g.Width=0]="Width",g[g.Height=1]="Height",g}({});gg.Dimension=ok;let VD=function(g){return g[g.Inherit=0]="Inherit",g[g.LTR=1]="LTR",g[g.RTL=2]="RTL",g}({});gg.Direction=VD;let nk=function(g){return g[g.Flex=0]="Flex",g[g.None=1]="None",g}({});gg.Display=nk;let uQ=function(g){return g[g.Left=0]="Left",g[g.Top=1]="Top",g[g.Right=2]="Right",g[g.Bottom=3]="Bottom",g[g.Start=4]="Start",g[g.End=5]="End",g[g.Horizontal=6]="Horizontal",g[g.Vertical=7]="Vertical",g[g.All=8]="All",g}({});gg.Edge=uQ;let Ma=function(g){return g[g.None=0]="None",g[g.StretchFlexBasis=1]="StretchFlexBasis",g[g.All=2147483647]="All",g[g.Classic=2147483646]="Classic",g}({});gg.Errata=Ma;let XD=function(g){return g[g.WebFlexBasis=0]="WebFlexBasis",g[g.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",g[g.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",g}({});gg.ExperimentalFeature=XD;let pa=function(g){return g[g.Column=0]="Column",g[g.ColumnReverse=1]="ColumnReverse",g[g.Row=2]="Row",g[g.RowReverse=3]="RowReverse",g}({});gg.FlexDirection=pa;let zD=function(g){return g[g.Column=0]="Column",g[g.Row=1]="Row",g[g.All=2]="All",g}({});gg.Gutter=zD;let mt=function(g){return g[g.FlexStart=0]="FlexStart",g[g.Center=1]="Center",g[g.FlexEnd=2]="FlexEnd",g[g.SpaceBetween=3]="SpaceBetween",g[g.SpaceAround=4]="SpaceAround",g[g.SpaceEvenly=5]="SpaceEvenly",g}({});gg.Justify=mt;let Lt=function(g){return g[g.Error=0]="Error",g[g.Warn=1]="Warn",g[g.Info=2]="Info",g[g.Debug=3]="Debug",g[g.Verbose=4]="Verbose",g[g.Fatal=5]="Fatal",g}({});gg.LogLevel=Lt;let $D=function(g){return g[g.Undefined=0]="Undefined",g[g.Exactly=1]="Exactly",g[g.AtMost=2]="AtMost",g}({});gg.MeasureMode=$D;let sk=function(g){return g[g.Default=0]="Default",g[g.Text=1]="Text",g}({});gg.NodeType=sk;let Ah=function(g){return g[g.Visible=0]="Visible",g[g.Hidden=1]="Hidden",g[g.Scroll=2]="Scroll",g}({});gg.Overflow=Ah;let Ih=function(g){return g[g.Static=0]="Static",g[g.Relative=1]="Relative",g[g.Absolute=2]="Absolute",g}({});gg.PositionType=Ih;let gh=function(g){return g[g.Layout=1]="Layout",g[g.Style=2]="Style",g[g.Children=4]="Children",g}({});gg.PrintOptions=gh;let Ua=function(g){return g[g.Undefined=0]="Undefined",g[g.Point=1]="Point",g[g.Percent=2]="Percent",g[g.Auto=3]="Auto",g}({});gg.Unit=Ua;let Ch=function(g){return g[g.NoWrap=0]="NoWrap",g[g.Wrap=1]="Wrap",g[g.WrapReverse=2]="WrapReverse",g}({});gg.Wrap=Ch;const W8={ALIGN_AUTO:Ce.Auto,ALIGN_FLEX_START:Ce.FlexStart,ALIGN_CENTER:Ce.Center,ALIGN_FLEX_END:Ce.FlexEnd,ALIGN_STRETCH:Ce.Stretch,ALIGN_BASELINE:Ce.Baseline,ALIGN_SPACE_BETWEEN:Ce.SpaceBetween,ALIGN_SPACE_AROUND:Ce.SpaceAround,DIMENSION_WIDTH:ok.Width,DIMENSION_HEIGHT:ok.Height,DIRECTION_INHERIT:VD.Inherit,DIRECTION_LTR:VD.LTR,DIRECTION_RTL:VD.RTL,DISPLAY_FLEX:nk.Flex,DISPLAY_NONE:nk.None,EDGE_LEFT:uQ.Left,EDGE_TOP:uQ.Top,EDGE_RIGHT:uQ.Right,EDGE_BOTTOM:uQ.Bottom,EDGE_START:uQ.Start,EDGE_END:uQ.End,EDGE_HORIZONTAL:uQ.Horizontal,EDGE_VERTICAL:uQ.Vertical,EDGE_ALL:uQ.All,ERRATA_NONE:Ma.None,ERRATA_STRETCH_FLEX_BASIS:Ma.StretchFlexBasis,ERRATA_ALL:Ma.All,ERRATA_CLASSIC:Ma.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:XD.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:XD.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:XD.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:pa.Column,FLEX_DIRECTION_COLUMN_REVERSE:pa.ColumnReverse,FLEX_DIRECTION_ROW:pa.Row,FLEX_DIRECTION_ROW_REVERSE:pa.RowReverse,GUTTER_COLUMN:zD.Column,GUTTER_ROW:zD.Row,GUTTER_ALL:zD.All,JUSTIFY_FLEX_START:mt.FlexStart,JUSTIFY_CENTER:mt.Center,JUSTIFY_FLEX_END:mt.FlexEnd,JUSTIFY_SPACE_BETWEEN:mt.SpaceBetween,JUSTIFY_SPACE_AROUND:mt.SpaceAround,JUSTIFY_SPACE_EVENLY:mt.SpaceEvenly,LOG_LEVEL_ERROR:Lt.Error,LOG_LEVEL_WARN:Lt.Warn,LOG_LEVEL_INFO:Lt.Info,LOG_LEVEL_DEBUG:Lt.Debug,LOG_LEVEL_VERBOSE:Lt.Verbose,LOG_LEVEL_FATAL:Lt.Fatal,MEASURE_MODE_UNDEFINED:$D.Undefined,MEASURE_MODE_EXACTLY:$D.Exactly,MEASURE_MODE_AT_MOST:$D.AtMost,NODE_TYPE_DEFAULT:sk.Default,NODE_TYPE_TEXT:sk.Text,OVERFLOW_VISIBLE:Ah.Visible,OVERFLOW_HIDDEN:Ah.Hidden,OVERFLOW_SCROLL:Ah.Scroll,POSITION_TYPE_STATIC:Ih.Static,POSITION_TYPE_RELATIVE:Ih.Relative,POSITION_TYPE_ABSOLUTE:Ih.Absolute,PRINT_OPTIONS_LAYOUT:gh.Layout,PRINT_OPTIONS_STYLE:gh.Style,PRINT_OPTIONS_CHILDREN:gh.Children,UNIT_UNDEFINED:Ua.Undefined,UNIT_POINT:Ua.Point,UNIT_PERCENT:Ua.Percent,UNIT_AUTO:Ua.Auto,WRAP_NO_WRAP:Ch.NoWrap,WRAP_WRAP:Ch.Wrap,WRAP_WRAP_REVERSE:Ch.WrapReverse};var j8=W8;gg.default=j8;Object.defineProperty(hM,"__esModule",{value:!0});hM.default=X8;var QE=V8(gg);function FY(g){if(typeof WeakMap!="function")return null;var A=new WeakMap,I=new WeakMap;return(FY=function(C){return C?I:A})(g)}function V8(g,A){if(!A&&g&&g.__esModule)return g;if(g===null||typeof g!="object"&&typeof g!="function")return{default:g};var I=FY(A);if(I&&I.has(g))return I.get(g);var C={},B=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in g)if(i!=="default"&&Object.prototype.hasOwnProperty.call(g,i)){var Q=B?Object.getOwnPropertyDescriptor(g,i):null;Q&&(Q.get||Q.set)?Object.defineProperty(C,i,Q):C[i]=g[i]}return C.default=g,I&&I.set(g,C),C}function X8(g){function A(B,i,Q){const e=B[i];B[i]=function(){for(var E=arguments.length,t=new Array(E),n=0;n1?e-1:0),t=1;ti?g.Node.createWithConfig(i):g.Node.createDefault()),A(g.Node.prototype,"free",function(){g.Node.destroy(this)}),A(g.Node.prototype,"freeRecursive",function(){for(let B=0,i=this.getChildCount();B1&&arguments[1]!==void 0?arguments[1]:NaN,Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,e=arguments.length>3&&arguments[3]!==void 0?arguments[3]:QE.Direction.LTR;return B.call(this,i,Q,e)}),{Config:g.Config,Node:g.Node,...QE.default}}var fY={exports:{}};(function(g,A){var I=(()=>{var C=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(B){B=B||{};var i;i||(i=typeof B<"u"?B:{});var Q,e;i.ready=new Promise(function(H,O){Q=H,e=O});var E=Object.assign({},i),t="";typeof document<"u"&&document.currentScript&&(t=document.currentScript.src),C&&(t=C),t.indexOf("blob:")!==0?t=t.substr(0,t.replace(/[?#].*/,"").lastIndexOf("/")+1):t="";var n=i.print||console.log.bind(console),a=i.printErr||console.warn.bind(console);Object.assign(i,E),E=null;var r;i.wasmBinary&&(r=i.wasmBinary),i.noExitRuntime,typeof WebAssembly!="object"&&wA("no native wasm support detected");var l,D=!1;function G(H,O,BA){BA=O+BA;for(var aA="";!(O>=BA);){var dA=H[O++];if(!dA)break;if(dA&128){var fA=H[O++]&63;if((dA&224)==192)aA+=String.fromCharCode((dA&31)<<6|fA);else{var TA=H[O++]&63;dA=(dA&240)==224?(dA&15)<<12|fA<<6|TA:(dA&7)<<18|fA<<12|TA<<6|H[O++]&63,65536>dA?aA+=String.fromCharCode(dA):(dA-=65536,aA+=String.fromCharCode(55296|dA>>10,56320|dA&1023))}}else aA+=String.fromCharCode(dA)}return aA}var h,c,y,S,k,N,M,F,q;function Z(){var H=l.buffer;h=H,i.HEAP8=c=new Int8Array(H),i.HEAP16=S=new Int16Array(H),i.HEAP32=N=new Int32Array(H),i.HEAPU8=y=new Uint8Array(H),i.HEAPU16=k=new Uint16Array(H),i.HEAPU32=M=new Uint32Array(H),i.HEAPF32=F=new Float32Array(H),i.HEAPF64=q=new Float64Array(H)}var U,K=[],z=[],DA=[];function X(){var H=i.preRun.shift();K.unshift(H)}var eA=0,iA=null;function wA(H){throw i.onAbort&&i.onAbort(H),H="Aborted("+H+")",a(H),D=!0,H=new WebAssembly.RuntimeError(H+". Build with -sASSERTIONS for more info."),e(H),H}function v(H){return H.startsWith("data:application/octet-stream;base64,")}var CA;if(CA="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVp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",!v(CA)){var gA=CA;CA=i.locateFile?i.locateFile(gA,t):t+gA}function SA(){var H=CA;try{if(H==CA&&r)return new Uint8Array(r);if(v(H))try{var O=OI(H.slice(37)),BA=new Uint8Array(O.length);for(H=0;H=O?"_"+H:H}function b(H,O){return H=j(H),function(){return O.apply(this,arguments)}}var Y=[{},{value:void 0},{value:null},{value:!0},{value:!1}],x=[];function nA(H){var O=Error,BA=b(H,function(aA){this.name=H,this.message=aA,aA=Error(aA).stack,aA!==void 0&&(this.stack=this.toString()+` +`+aA.replace(/^Error(:[^\n]*)?\n/,""))});return BA.prototype=Object.create(O.prototype),BA.prototype.constructor=BA,BA.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},BA}var MA=void 0;function oA(H){throw new MA(H)}var FA=H=>(H||oA("Cannot use deleted val. handle = "+H),Y[H].value),W=H=>{switch(H){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var O=x.length?x.pop():Y.length;return Y[O]={fa:1,value:H},O}},UA=void 0,tA=void 0;function hA(H){for(var O="";y[H];)O+=tA[y[H++]];return O}var GA=[];function bA(){for(;GA.length;){var H=GA.pop();H.L.Z=!1,H.delete()}}var EA=void 0,f={};function m(H,O){for(O===void 0&&oA("ptr should not be undefined");H.P;)O=H.aa(O),H=H.P;return O}var cA={};function ZA(H){H=QI(H);var O=hA(H);return NI(H),O}function OA(H,O){var BA=cA[H];return BA===void 0&&oA(O+" has unknown type "+ZA(H)),BA}function YA(){}var EI=!1;function CI(H){--H.count.value,H.count.value===0&&(H.S?H.T.V(H.S):H.O.M.V(H.N))}function sI(H,O,BA){return O===BA?H:BA.P===void 0?null:(H=sI(H,O,BA.P),H===null?null:BA.ma(H))}var SI={};function fI(H,O){return O=m(H,O),f[O]}var PA=void 0;function bI(H){throw new PA(H)}function LI(H,O){return O.O&&O.N||bI("makeClassHandle requires ptr and ptrType"),!!O.T!=!!O.S&&bI("Both smartPtrType and smartPtr must be specified"),O.count={value:1},kI(Object.create(H,{L:{value:O}}))}function kI(H){return typeof FinalizationRegistry>"u"?(kI=O=>O,H):(EI=new FinalizationRegistry(O=>{CI(O.L)}),kI=O=>{var BA=O.L;return BA.S&&EI.register(O,{L:BA},O),O},YA=O=>{EI.unregister(O)},kI(H))}var tI={};function aI(H){for(;H.length;){var O=H.pop();H.pop()(O)}}function UI(H){return this.fromWireType(N[H>>2])}var JI={},YI={};function HI(H,O,BA){function aA(_A){_A=BA(_A),_A.length!==H.length&&bI("Mismatched type converter count");for(var II=0;II{cA.hasOwnProperty(_A)?dA[II]=cA[_A]:(fA.push(_A),JI.hasOwnProperty(_A)||(JI[_A]=[]),JI[_A].push(()=>{dA[II]=cA[_A],++TA,TA===fA.length&&aA(dA)}))}),fA.length===0&&aA(dA)}function jA(H){switch(H){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+H)}}function IA(H,O,BA={}){if(!("argPackAdvance"in O))throw new TypeError("registerType registeredInstance requires argPackAdvance");var aA=O.name;if(H||oA('type "'+aA+'" must have a positive integer typeid pointer'),cA.hasOwnProperty(H)){if(BA.ta)return;oA("Cannot register type '"+aA+"' twice")}cA[H]=O,delete YI[H],JI.hasOwnProperty(H)&&(O=JI[H],delete JI[H],O.forEach(dA=>dA()))}function AI(H){oA(H.L.O.M.name+" instance already deleted")}function $A(){}function lI(H,O,BA){if(H[O].R===void 0){var aA=H[O];H[O]=function(){return H[O].R.hasOwnProperty(arguments.length)||oA("Function '"+BA+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+H[O].R+")!"),H[O].R[arguments.length].apply(this,arguments)},H[O].R=[],H[O].R[aA.Y]=aA}}function pI(H,O){i.hasOwnProperty(H)?(oA("Cannot register public name '"+H+"' twice"),lI(i,H,H),i.hasOwnProperty(void 0)&&oA("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),i[H].R[void 0]=O):i[H]=O}function ag(H,O,BA,aA,dA,fA,TA,_A){this.name=H,this.constructor=O,this.W=BA,this.V=aA,this.P=dA,this.oa=fA,this.aa=TA,this.ma=_A,this.ia=[]}function rg(H,O,BA){for(;O!==BA;)O.aa||oA("Expected null or instance of "+BA.name+", got an instance of "+O.name),H=O.aa(H),O=O.P;return H}function jg(H,O){return O===null?(this.da&&oA("null is not a valid "+this.name),0):(O.L||oA('Cannot pass "'+L(O)+'" as a '+this.name),O.L.N||oA("Cannot pass deleted object as a pointer of type "+this.name),rg(O.L.N,O.L.O.M,this.M))}function RC(H,O){if(O===null){if(this.da&&oA("null is not a valid "+this.name),this.ca){var BA=this.ea();return H!==null&&H.push(this.V,BA),BA}return 0}if(O.L||oA('Cannot pass "'+L(O)+'" as a '+this.name),O.L.N||oA("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&O.L.O.ba&&oA("Cannot convert argument of type "+(O.L.T?O.L.T.name:O.L.O.name)+" to parameter type "+this.name),BA=rg(O.L.N,O.L.O.M,this.M),this.ca)switch(O.L.S===void 0&&oA("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:O.L.T===this?BA=O.L.S:oA("Cannot convert argument of type "+(O.L.T?O.L.T.name:O.L.O.name)+" to parameter type "+this.name);break;case 1:BA=O.L.S;break;case 2:if(O.L.T===this)BA=O.L.S;else{var aA=O.clone();BA=this.wa(BA,W(function(){aA.delete()})),H!==null&&H.push(this.V,BA)}break;default:oA("Unsupporting sharing policy")}return BA}function kg(H,O){return O===null?(this.da&&oA("null is not a valid "+this.name),0):(O.L||oA('Cannot pass "'+L(O)+'" as a '+this.name),O.L.N||oA("Cannot pass deleted object as a pointer of type "+this.name),O.L.O.ba&&oA("Cannot convert argument of type "+O.L.O.name+" to parameter type "+this.name),rg(O.L.N,O.L.O.M,this.M))}function fg(H,O,BA,aA){this.name=H,this.M=O,this.da=BA,this.ba=aA,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,O.P!==void 0?this.toWireType=RC:(this.toWireType=aA?jg:kg,this.U=null)}function nB(H,O){i.hasOwnProperty(H)||bI("Replacing nonexistant public symbol"),i[H]=O,i[H].Y=void 0}function hi(H,O){var BA=[];return function(){if(BA.length=0,Object.assign(BA,arguments),H.includes("j")){var aA=i["dynCall_"+H];aA=BA&&BA.length?aA.apply(null,[O].concat(BA)):aA.call(null,O)}else aA=U.get(O).apply(null,BA);return aA}}function KC(H,O){H=hA(H);var BA=H.includes("j")?hi(H,O):U.get(O);return typeof BA!="function"&&oA("unknown function pointer with signature "+H+": "+O),BA}var MB=void 0;function JC(H,O){function BA(fA){dA[fA]||cA[fA]||(YI[fA]?YI[fA].forEach(BA):(aA.push(fA),dA[fA]=!0))}var aA=[],dA={};throw O.forEach(BA),new MB(H+": "+aA.map(ZA).join([", "]))}function _I(H,O,BA,aA,dA){var fA=O.length;2>fA&&oA("argTypes array size mismatch! Must at least get return value and 'this' types!");var TA=O[1]!==null&&BA!==null,_A=!1;for(BA=1;BA>2]);return BA}function rQ(H){4>2])};case 3:return function(BA){return this.fromWireType(q[BA>>3])};default:throw new TypeError("Unknown float type: "+H)}}function lA(H,O,BA){switch(O){case 0:return BA?function(aA){return c[aA]}:function(aA){return y[aA]};case 1:return BA?function(aA){return S[aA>>1]}:function(aA){return k[aA>>1]};case 2:return BA?function(aA){return N[aA>>2]}:function(aA){return M[aA>>2]};default:throw new TypeError("Unknown integer type: "+H)}}function J(H,O){for(var BA="",aA=0;!(aA>=O/2);++aA){var dA=S[H+2*aA>>1];if(dA==0)break;BA+=String.fromCharCode(dA)}return BA}function V(H,O,BA){if(BA===void 0&&(BA=2147483647),2>BA)return 0;BA-=2;var aA=O;BA=BA<2*H.length?BA/2:H.length;for(var dA=0;dA>1]=H.charCodeAt(dA),O+=2;return S[O>>1]=0,O-aA}function $(H){return 2*H.length}function sA(H,O){for(var BA=0,aA="";!(BA>=O/4);){var dA=N[H+4*BA>>2];if(dA==0)break;++BA,65536<=dA?(dA-=65536,aA+=String.fromCharCode(55296|dA>>10,56320|dA&1023)):aA+=String.fromCharCode(dA)}return aA}function QA(H,O,BA){if(BA===void 0&&(BA=2147483647),4>BA)return 0;var aA=O;BA=aA+BA-4;for(var dA=0;dA=fA){var TA=H.charCodeAt(++dA);fA=65536+((fA&1023)<<10)|TA&1023}if(N[O>>2]=fA,O+=4,O+4>BA)break}return N[O>>2]=0,O-aA}function KA(H){for(var O=0,BA=0;BA=aA&&++BA,O+=4}return O}var mA={};function xA(H){var O=mA[H];return O===void 0?hA(H):O}var LA=[];function DI(H){var O=LA.length;return LA.push(H),O}function VA(H,O){for(var BA=Array(H),aA=0;aA>2],"parameter "+aA);return BA}var XA=[],wI=[null,[],[]];MA=i.BindingError=nA("BindingError"),i.count_emval_handles=function(){for(var H=0,O=5;ORI;++RI)FI[RI]=String.fromCharCode(RI);tA=FI,i.getInheritedInstanceCount=function(){return Object.keys(f).length},i.getLiveInheritedInstances=function(){var H=[],O;for(O in f)f.hasOwnProperty(O)&&H.push(f[O]);return H},i.flushPendingDeletes=bA,i.setDelayFunction=function(H){EA=H,GA.length&&EA&&EA(bA)},PA=i.InternalError=nA("InternalError"),$A.prototype.isAliasOf=function(H){if(!(this instanceof $A&&H instanceof $A))return!1;var O=this.L.O.M,BA=this.L.N,aA=H.L.O.M;for(H=H.L.N;O.P;)BA=O.aa(BA),O=O.P;for(;aA.P;)H=aA.aa(H),aA=aA.P;return O===aA&&BA===H},$A.prototype.clone=function(){if(this.L.N||AI(this),this.L.$)return this.L.count.value+=1,this;var H=kI,O=Object,BA=O.create,aA=Object.getPrototypeOf(this),dA=this.L;return H=H(BA.call(O,aA,{L:{value:{count:dA.count,Z:dA.Z,$:dA.$,N:dA.N,O:dA.O,S:dA.S,T:dA.T}}})),H.L.count.value+=1,H.L.Z=!1,H},$A.prototype.delete=function(){this.L.N||AI(this),this.L.Z&&!this.L.$&&oA("Object already scheduled for deletion"),YA(this),CI(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},$A.prototype.isDeleted=function(){return!this.L.N},$A.prototype.deleteLater=function(){return this.L.N||AI(this),this.L.Z&&!this.L.$&&oA("Object already scheduled for deletion"),GA.push(this),GA.length===1&&EA&&EA(bA),this.L.Z=!0,this},fg.prototype.pa=function(H){return this.ja&&(H=this.ja(H)),H},fg.prototype.ga=function(H){this.V&&this.V(H)},fg.prototype.argPackAdvance=8,fg.prototype.readValueFromPointer=UI,fg.prototype.deleteObject=function(H){H!==null&&H.delete()},fg.prototype.fromWireType=function(H){function O(){return this.ca?LI(this.M.W,{O:this.va,N:BA,T:this,S:H}):LI(this.M.W,{O:this,N:H})}var BA=this.pa(H);if(!BA)return this.ga(H),null;var aA=fI(this.M,BA);if(aA!==void 0)return aA.L.count.value===0?(aA.L.N=BA,aA.L.S=H,aA.clone()):(aA=aA.clone(),this.ga(H),aA);if(aA=this.M.oa(BA),aA=SI[aA],!aA)return O.call(this);aA=this.ba?aA.ka:aA.pointerType;var dA=sI(BA,this.M,aA.M);return dA===null?O.call(this):this.ca?LI(aA.M.W,{O:aA,N:dA,T:this,S:H}):LI(aA.M.W,{O:aA,N:dA})},MB=i.UnboundTypeError=nA("UnboundTypeError");var OI=typeof atob=="function"?atob:function(H){var O="",BA=0;H=H.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var aA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(H.charAt(BA++)),dA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(H.charAt(BA++)),fA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(H.charAt(BA++)),TA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(H.charAt(BA++));aA=aA<<2|dA>>4,dA=(dA&15)<<4|fA>>2;var _A=(fA&3)<<6|TA;O+=String.fromCharCode(aA),fA!==64&&(O+=String.fromCharCode(dA)),TA!==64&&(O+=String.fromCharCode(_A))}while(BATA.sa).concat(dA.map(TA=>TA.ya));HI([H],fA,TA=>{var _A={};return dA.forEach((II,zA)=>{var nI=TA[zA],mI=II.qa,Eg=II.ra,Yg=TA[zA+dA.length],Dg=II.xa,pB=II.za;_A[II.na]={read:XB=>nI.fromWireType(mI(Eg,XB)),write:(XB,vQ)=>{var zB=[];Dg(pB,XB,Yg.toWireType(zB,vQ)),aI(zB)}}}),[{name:O.name,fromWireType:function(II){var zA={},nI;for(nI in _A)zA[nI]=_A[nI].read(II);return aA(II),zA},toWireType:function(II,zA){for(var nI in _A)if(!(nI in zA))throw new TypeError('Missing field: "'+nI+'"');var mI=BA();for(nI in _A)_A[nI].write(mI,zA[nI]);return II!==null&&II.push(aA,mI),mI},argPackAdvance:8,readValueFromPointer:UI,U:aA}]})},v:function(){},B:function(H,O,BA,aA,dA){var fA=jA(BA);O=hA(O),IA(H,{name:O,fromWireType:function(TA){return!!TA},toWireType:function(TA,_A){return _A?aA:dA},argPackAdvance:8,readValueFromPointer:function(TA){if(BA===1)var _A=c;else if(BA===2)_A=S;else if(BA===4)_A=N;else throw new TypeError("Unknown boolean type size: "+O);return this.fromWireType(_A[TA>>fA])},U:null})},f:function(H,O,BA,aA,dA,fA,TA,_A,II,zA,nI,mI,Eg){nI=hA(nI),fA=KC(dA,fA),_A&&(_A=KC(TA,_A)),zA&&(zA=KC(II,zA)),Eg=KC(mI,Eg);var Yg=j(nI);pI(Yg,function(){JC("Cannot construct "+nI+" due to unbound types",[aA])}),HI([H,O,BA],aA?[aA]:[],function(Dg){if(Dg=Dg[0],aA)var pB=Dg.M,XB=pB.W;else XB=$A.prototype;Dg=b(Yg,function(){if(Object.getPrototypeOf(this)!==vQ)throw new MA("Use 'new' to construct "+nI);if(zB.X===void 0)throw new MA(nI+" has no accessible constructor");var rl=zB.X[arguments.length];if(rl===void 0)throw new MA("Tried to invoke ctor of "+nI+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(zB.X).toString()+") parameters instead!");return rl.apply(this,arguments)});var vQ=Object.create(XB,{constructor:{value:Dg}});Dg.prototype=vQ;var zB=new ag(nI,Dg,vQ,Eg,pB,fA,_A,zA);pB=new fg(nI,zB,!0,!1),XB=new fg(nI+"*",zB,!1,!1);var Te=new fg(nI+" const*",zB,!1,!0);return SI[H]={pointerType:XB,ka:Te},nB(Yg,Dg),[pB,XB,Te]})},c:function(H,O,BA,aA,dA,fA,TA){var _A=bi(BA,aA);O=hA(O),fA=KC(dA,fA),HI([],[H],function(II){function zA(){JC("Cannot call "+nI+" due to unbound types",_A)}II=II[0];var nI=II.name+"."+O;O.startsWith("@@")&&(O=Symbol[O.substring(2)]);var mI=II.M.constructor;return mI[O]===void 0?(zA.Y=BA-1,mI[O]=zA):(lI(mI,O,nI),mI[O].R[BA-1]=zA),HI([],_A,function(Eg){return Eg=_I(nI,[Eg[0],null].concat(Eg.slice(1)),null,fA,TA),mI[O].R===void 0?(Eg.Y=BA-1,mI[O]=Eg):mI[O].R[BA-1]=Eg,[]}),[]})},o:function(H,O,BA,aA,dA,fA){0{JC("Cannot construct "+_A.name+" due to unbound types",TA)},HI([],TA,function(zA){return zA.splice(1,0,null),_A.M.X[O-1]=_I(II,zA,null,dA,fA),[]}),[]})},a:function(H,O,BA,aA,dA,fA,TA,_A){var II=bi(BA,aA);O=hA(O),fA=KC(dA,fA),HI([],[H],function(zA){function nI(){JC("Cannot call "+mI+" due to unbound types",II)}zA=zA[0];var mI=zA.name+"."+O;O.startsWith("@@")&&(O=Symbol[O.substring(2)]),_A&&zA.M.ia.push(O);var Eg=zA.M.W,Yg=Eg[O];return Yg===void 0||Yg.R===void 0&&Yg.className!==zA.name&&Yg.Y===BA-2?(nI.Y=BA-2,nI.className=zA.name,Eg[O]=nI):(lI(Eg,O,mI),Eg[O].R[BA-2]=nI),HI([],II,function(Dg){return Dg=_I(mI,Dg,zA,fA,TA),Eg[O].R===void 0?(Dg.Y=BA-2,Eg[O]=Dg):Eg[O].R[BA-2]=Dg,[]}),[]})},A:function(H,O){O=hA(O),IA(H,{name:O,fromWireType:function(BA){var aA=FA(BA);return rQ(BA),aA},toWireType:function(BA,aA){return W(aA)},argPackAdvance:8,readValueFromPointer:UI,U:null})},m:function(H,O,BA){BA=jA(BA),O=hA(O),IA(H,{name:O,fromWireType:function(aA){return aA},toWireType:function(aA,dA){return dA},argPackAdvance:8,readValueFromPointer:P(O,BA),U:null})},d:function(H,O,BA,aA,dA){O=hA(O),dA===-1&&(dA=4294967295),dA=jA(BA);var fA=_A=>_A;if(aA===0){var TA=32-8*BA;fA=_A=>_A<>>TA}BA=O.includes("unsigned")?function(_A,II){return II>>>0}:function(_A,II){return II},IA(H,{name:O,fromWireType:fA,toWireType:BA,argPackAdvance:8,readValueFromPointer:lA(O,dA,aA!==0),U:null})},b:function(H,O,BA){function aA(fA){fA>>=2;var TA=M;return new dA(h,TA[fA+1],TA[fA])}var dA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][O];BA=hA(BA),IA(H,{name:BA,fromWireType:aA,argPackAdvance:8,readValueFromPointer:aA},{ta:!0})},n:function(H,O){O=hA(O);var BA=O==="std::string";IA(H,{name:O,fromWireType:function(aA){var dA=M[aA>>2],fA=aA+4;if(BA)for(var TA=fA,_A=0;_A<=dA;++_A){var II=fA+_A;if(_A==dA||y[II]==0){if(TA=TA?G(y,TA,II-TA):"",zA===void 0)var zA=TA;else zA+="\0",zA+=TA;TA=II+1}}else{for(zA=Array(dA),_A=0;_A=II?_A++:2047>=II?_A+=2:55296<=II&&57343>=II?(_A+=4,++fA):_A+=3}fA=_A}else fA=dA.length;if(_A=jI(4+fA+1),II=_A+4,M[_A>>2]=fA,BA&&TA){if(TA=II,II=fA+1,fA=y,0=nI){var mI=dA.charCodeAt(++zA);nI=65536+((nI&1023)<<10)|mI&1023}if(127>=nI){if(TA>=II)break;fA[TA++]=nI}else{if(2047>=nI){if(TA+1>=II)break;fA[TA++]=192|nI>>6}else{if(65535>=nI){if(TA+2>=II)break;fA[TA++]=224|nI>>12}else{if(TA+3>=II)break;fA[TA++]=240|nI>>18,fA[TA++]=128|nI>>12&63}fA[TA++]=128|nI>>6&63}fA[TA++]=128|nI&63}}fA[TA]=0}}else if(TA)for(TA=0;TAk,_A=1;else O===4&&(aA=sA,dA=QA,fA=KA,TA=()=>M,_A=2);IA(H,{name:BA,fromWireType:function(II){for(var zA=M[II>>2],nI=TA(),mI,Eg=II+4,Yg=0;Yg<=zA;++Yg){var Dg=II+4+Yg*O;(Yg==zA||nI[Dg>>_A]==0)&&(Eg=aA(Eg,Dg-Eg),mI===void 0?mI=Eg:(mI+="\0",mI+=Eg),Eg=Dg+O)}return NI(II),mI},toWireType:function(II,zA){typeof zA!="string"&&oA("Cannot pass non-string to C++ string type "+BA);var nI=fA(zA),mI=jI(4+nI+O);return M[mI>>2]=nI>>_A,dA(zA,mI+4,nI+O),II!==null&&II.push(NI,mI),mI},argPackAdvance:8,readValueFromPointer:UI,U:function(II){NI(II)}})},k:function(H,O,BA,aA,dA,fA){tI[H]={name:hA(O),ea:KC(BA,aA),V:KC(dA,fA),ha:[]}},h:function(H,O,BA,aA,dA,fA,TA,_A,II,zA){tI[H].ha.push({na:hA(O),sa:BA,qa:KC(aA,dA),ra:fA,ya:TA,xa:KC(_A,II),za:zA})},C:function(H,O){O=hA(O),IA(H,{ua:!0,name:O,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(H,O,BA,aA,dA){H=LA[H],O=FA(O),BA=xA(BA);var fA=[];return M[aA>>2]=W(fA),H(O,BA,fA,dA)},t:function(H,O,BA,aA){H=LA[H],O=FA(O),BA=xA(BA),H(O,BA,null,aA)},g:rQ,l:function(H,O){var BA=VA(H,O),aA=BA[0];O=aA.name+"_$"+BA.slice(1).map(function(TA){return TA.name}).join("_")+"$";var dA=XA[O];if(dA!==void 0)return dA;var fA=Array(H-1);return dA=DI((TA,_A,II,zA)=>{for(var nI=0,mI=0;mI>>=0,2147483648=BA;BA*=2){var aA=O*(1+.2/BA);aA=Math.min(aA,H+100663296);var dA=Math;aA=Math.max(H,aA),dA=dA.min.call(dA,2147483648,aA+(65536-aA%65536)%65536);A:{try{l.grow(dA-h.byteLength+65535>>>16),Z();var fA=1;break A}catch{}fA=void 0}if(fA)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(H,O,BA,aA){for(var dA=0,fA=0;fA>2],_A=M[O+4>>2];O+=8;for(var II=0;II<_A;II++){var zA=y[TA+II],nI=wI[H];zA===0||zA===10?((H===1?n:a)(G(nI,0)),nI.length=0):nI.push(zA)}dA+=_A}return M[aA>>2]=dA,0}};(function(){function H(dA){i.asm=dA.exports,l=i.asm.D,Z(),U=i.asm.I,z.unshift(i.asm.E),eA--,i.monitorRunDependencies&&i.monitorRunDependencies(eA),eA==0&&iA&&(dA=iA,iA=null,dA())}function O(dA){H(dA.instance)}function BA(dA){return NA().then(function(fA){return WebAssembly.instantiate(fA,aA)}).then(function(fA){return fA}).then(dA,function(fA){a("failed to asynchronously prepare wasm: "+fA),wA(fA)})}var aA={a:hI};if(eA++,i.monitorRunDependencies&&i.monitorRunDependencies(eA),i.instantiateWasm)try{return i.instantiateWasm(aA,H)}catch(dA){a("Module.instantiateWasm callback failed with error: "+dA),e(dA)}return function(){return r||typeof WebAssembly.instantiateStreaming!="function"||v(CA)||typeof fetch!="function"?BA(O):fetch(CA,{credentials:"same-origin"}).then(function(dA){return WebAssembly.instantiateStreaming(dA,aA).then(O,function(fA){return a("wasm streaming compile failed: "+fA),a("falling back to ArrayBuffer instantiation"),BA(O)})})}().catch(e),{}})(),i.___wasm_call_ctors=function(){return(i.___wasm_call_ctors=i.asm.E).apply(null,arguments)};var QI=i.___getTypeName=function(){return(QI=i.___getTypeName=i.asm.F).apply(null,arguments)};i.__embind_initialize_bindings=function(){return(i.__embind_initialize_bindings=i.asm.G).apply(null,arguments)};var jI=i._malloc=function(){return(jI=i._malloc=i.asm.H).apply(null,arguments)},NI=i._free=function(){return(NI=i._free=i.asm.J).apply(null,arguments)};i.dynCall_jiji=function(){return(i.dynCall_jiji=i.asm.K).apply(null,arguments)};var TI;iA=function H(){TI||dg(),TI||(iA=H)};function dg(){function H(){if(!TI&&(TI=!0,i.calledRun=!0,!D)){if(WA(z),Q(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),i.postRun)for(typeof i.postRun=="function"&&(i.postRun=[i.postRun]);i.postRun.length;){var O=i.postRun.shift();DA.unshift(O)}WA(DA)}}if(!(0Gg(g),A);T.useEffect(()=>I,[I])}let $y;function Aj(){if($y==null){const g=$y=Qg(void 0);RB.loadYoga().then(A=>g.value=A)}return $y}function JY(g,A,...I){const C=T.useMemo(()=>Qg(void 0),[]);return T.useEffect(()=>{if(!(A instanceof SC)){let B=!1;return g(A,...I).then(i=>B?void 0:C.value=i),()=>B=!0}return Gg(()=>{let B=!1;return g(A.value,...I).then(i=>B?void 0:C.value=i).catch(console.error),()=>B=!0})},[A,...I]),C}function qY(g,A,I,C,B){const[i,Q]=g.value,[e,E,t,n]=A.value,[a,r,l,D]=I.value,G=e+a,h=E+r,c=t+l,y=n+D,S=i-y-h,k=Q-G-c,N=S/k;let M=1;return N>B?M=k*C:M=S*C/B,[(y-h)*.5*C,(c-G)*.5*C,M]}const LR=new eI;function ak(g,A,I,C=0){const B=A*g.itemSize+C;g.addUpdateRange(B,3),Array.isArray(I)?g.set(I,B):(LR.set(I),LR.toArray(g.array,B)),g.needsUpdate=!0}function Yh(g){return g instanceof SC?g.value:g}const mY=T.createContext(void 0);function At(){const g=T.useContext(mY);if(g==null)throw new Error("Can only be used inside a component.");return g}const Ij=mY.Provider;function ee(g){const A=new Map;return(I,C)=>{const B=I.length;for(const i in C){const Q=C[i];if(Q===void 0)return;let e=A.get(Q);e==null&&A.set(Q,e=wC(()=>g()?Yh(Q):void 0));for(let E=0;E"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),LY=Qg((_n==null?void 0:_n.matches)??!1);_n==null||_n.addEventListener("change",g=>LY.value=g.matches);const YY=Qg("system"),HY=wC(()=>{switch(YY.value){case"system":return LY.value;case"dark":return!0;case"light":return!1}});function gj(g){YY.value=g}const Cj=ee(()=>HY.value);function fe(g,A){ys(A,I=>{const C=I.dark;C!=null&&Cj(g,C)})}function Bj({dark:g,light:A}){const I={};for(const C in g)I[C]=wC(()=>HY.value?g[C]:A[C]);return I}const ij=Math.cos(45/180*Math.PI),A0=[new Jg,new Jg,new Jg,new Jg],YR=new _;class Qj{constructor(A,I,C,B,i){iI(this,"planes");iI(this,"facePlane");iI(this,"originalCenter");this.originalCenter=new _(I,C,0).applyMatrix4(A),this.facePlane=new Jg(new _(0,0,1),0).applyMatrix4(A);const Q=B/2,e=i/2,E=C+e,t=I+Q,n=-C+e,a=-I+Q;this.planes=[new Jg(new _(0,-1,0),n).applyMatrix4(A),new Jg(new _(-1,0,0),a).applyMatrix4(A),new Jg(new _(0,1,0),E).applyMatrix4(A),new Jg(new _(1,0,0),t).applyMatrix4(A)]}min({planes:A}){for(let B=0;B<4;B++){const i=this.facePlane,Q=A[B],e=i.normal.dot(Q.normal);if(Math.abs(e)>.99)return this;const E=A0[B];if(Math.abs(e)<.01){E.copy(Q);continue}E.normal.crossVectors(i.normal,Q.normal).normalize().cross(i.normal).negate();const t=1-e*e,n=(i.constant-Q.constant*e)/t,a=(Q.constant-i.constant*e)/t;YR.copy(i.normal).multiplyScalar(n).addScaledVector(Q.normal,a),E.constant=-YR.dot(E.normal)}let I=0;const C=this.planes[0].normal;for(;A0[I].normal.dot(C)>ij;)break;for(let B=0;B<4;B++){const i=this.planes[B],Q=(B+I)%4;A0[Q].distanceToPoint(this.originalCenter)wC(()=>{const B=A.value,i=g==null?void 0:g.value;if(i==null||B==null)return!1;const[Q,e]=I.value;for(let n=0;n<4;n++){const[a,r]=tj[n];HR[n].set(a*C.pixelSize*Q,r*C.pixelSize*e,0).applyMatrix4(B)}const{planes:E}=i;let t;for(let n=0;n<4;n++){const a=E[n];t=!0;for(let r=0;r<4;r++){const l=HR[r];a.distanceToPoint(l)>=0&&(t=!1)}if(t)return!0}return!1}),[A,g,C,I])}function oj(g,A,I,C,B,i){return T.useMemo(()=>wC(()=>{const Q=g.value;if(Q==null||C.value===RB.Overflow.Visible)return i==null?void 0:i.value;const[e,E]=A.value,[t,n,a,r]=I.value,l=new Qj(Q,(n-r)*B.pixelSize/2,(t-a)*B.pixelSize/2,(e-r-n)*B.pixelSize,(E-t-a)*B.pixelSize);return(i==null?void 0:i.value)!=null&&l.min(i.value),l}),[g,A,I,B,C,i])}const rk=new Jg(new _(-1,0,0),Number.MAX_SAFE_INTEGER),Hh=new Float32Array(16);for(let g=0;g<4;g++)rk.normal.toArray(Hh,g*4),Hh[g*4+3]=rk.constant;function el(g,A){const I=T.useMemo(()=>[new Jg,new Jg,new Jg,new Jg],[]);return FC(()=>{var i;const C=A.current;if(C==null)return;const B=(i=g==null?void 0:g.value)==null?void 0:i.planes;if(B==null){for(let Q=0;Q<4;Q++)I[Q].copy(rk);return}for(let Q=0;Q<4;Q++)I[Q].copy(B[Q]).applyMatrix4(C.matrixWorld)}),I}class nj{constructor(A,I){iI(this,"glyphInfoMap",new Map);iI(this,"kerningMap",new Map);iI(this,"questionmarkGlyphInfo");iI(this,"pageWidth");iI(this,"pageHeight");iI(this,"distanceRange");this.page=I;const{scaleW:C,scaleH:B,lineHeight:i}=A.common;this.pageWidth=C,this.pageHeight=B,this.distanceRange=A.distanceField.distanceRange;const{size:Q}=A.info;for(const E of A.chars)E.uvX=E.x/C,E.uvY=E.y/B,E.uvWidth=E.width/C,E.uvHeight=E.height/B,E.width/=Q,E.height/=Q,E.xadvance/=Q,E.xoffset/=Q,E.yoffset-=i-Q,E.yoffset/=Q,this.glyphInfoMap.set(E.char,E);for(const{first:E,second:t,amount:n}of A.kernings)this.kerningMap.set(`${E}/${t}`,n/Q);const e=this.glyphInfoMap.get("?");if(e==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=e}getGlyphInfo(A){return this.glyphInfoMap.get(A)??(A==` +`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(A,I){return this.kerningMap.get(`${A}/${I}`)??0}}function sj(g,A,I){A[I+0]=g.uvX,A[I+1]=g.uvY+g.uvHeight,A[I+2]=g.uvWidth,A[I+3]=-g.uvHeight}const TR=new MI,aj=new MI;class rj{constructor(A,I,C,B,i){iI(this,"index");iI(this,"hidden",!0);iI(this,"glyphInfo");iI(this,"x",0);iI(this,"y",0);iI(this,"fontSize",0);iI(this,"pixelSize",0);this.group=A,this.baseMatrix=I,this.color=C,this.opacity=B,this.clippingRect=i}getX(A){return this.glyphInfo==null?this.x:this.x+A*this.glyphInfo.width*this.fontSize}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(A){this.index=A,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(A){this.index=A}updateClippingRect(A){if(this.clippingRect=A,this.index==null)return;const I=this.index*16,{instanceClipping:C}=this.group;this.clippingRect==null?C.set(Hh,I):this.clippingRect.toArray(C.array,I),C.addUpdateRange(I,16),C.needsUpdate=!0}updateColor(A){this.color=A,this.index!=null&&ak(this.group.instanceRGBA,this.index,A)}updateOpacity(A){if(this.opacity=A,this.index==null)return;const{instanceRGBA:I}=this.group,C=this.index*4+3;I.array[C]=A,I.addUpdateRange(C,1),I.needsUpdate=!0}updateGlyphAndTransformation(A,I,C,B,i){this.glyphInfo===A&&this.x===I&&this.y===C&&this.fontSize===B&&this.pixelSize===i||(this.glyphInfo!=A&&(this.glyphInfo=A,this.writeUV()),this.x=I,this.y=C,this.fontSize=B,this.pixelSize=i,this.writeUpdatedMatrix())}updateBaseMatrix(A){this.baseMatrix!==A&&(this.baseMatrix=A,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const A=this.index*4,{instanceUV:I}=this.group;sj(this.glyphInfo,I.array,A),I.addUpdateRange(A,4),I.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const A=this.index*16,{instanceMatrix:I}=this.group;I.addUpdateRange(A,16),TR.makeTranslation(this.x*this.pixelSize,this.y*this.pixelSize,0).multiply(aj.makeScale(this.fontSize*this.glyphInfo.width*this.pixelSize,this.fontSize*this.glyphInfo.height*this.pixelSize,1)).premultiply(this.baseMatrix),TR.toArray(I.array,A),I.needsUpdate=!0}}function xR(g,A,I,C){return((C==null?0:g.getKerning(C,I.id))+I.xoffset)*A}function I0(g,A,I){return(((I==null?void 0:I.yoffset)??0)+(A-1)/2)*g}function fr(g,A,I){return A.xadvance*g+I}function hD(g,A){return g*A}function lk(g,{lineHeight:A,fontSize:I}){return Math.max(g,1)*I*A}const lj=[];class cj{constructor(A,I,C,B,i,Q,e,E,t,n){iI(this,"glyphLines",[]);iI(this,"lastLayout");iI(this,"unsubscribeInitialList",[]);iI(this,"unsubscribeShowList",[]);iI(this,"opacity",1);iI(this,"color",16777215);this.group=A,this.getAlignmentProperties=I,this.getAppearanceProperties=C,this.layoutSignal=B,this.matrix=i,this.parentClippingRect=e,this.selectionRange=E,this.selectionBoxes=t,this.caretPosition=n,this.unsubscribeInitialList=[Gg(()=>{const a=C.value;if(a==null||(Q==null?void 0:Q.value)===!0||(a("opacity")??1)<.01){this.hide();return}this.show()}),Gg(()=>this.updateSelectionBoxes(this.lastLayout,E==null?void 0:E.value,zy(()=>{var a;return((a=I.value)==null?void 0:a.call(I,"verticalAlign"))??"top"}),zy(()=>{var a;return((a=I.value)==null?void 0:a.call(I,"horizontalAlign"))??"left"})))]}getCharIndex(A,I){const C=zy(()=>{var a,r;return((r=(a=this.getAlignmentProperties).value)==null?void 0:r.call(a,"verticalAlign"))??"top"}),B=this.lastLayout;if(B==null)return 0;I-=-wD(B,C);const i=Math.floor(I/-hD(B.lineHeight,B.fontSize)),Q=B.lines;if(i<0||Q.length===0)return 0;if(i>=Q.length){const a=Q[Q.length-1];return a.charIndexOffset+a.charLength+1}const e=Q[i],E=B.font.getGlyphInfo(" ").xadvance*B.fontSize,t=this.glyphLines[i];let n=t.length;for(let a=0;a=a.charIndexOffset+a.charLength)continue;const r=this.glyphLines[n][Math.max(C-a.charIndexOffset,0)];return{lineIndex:n,x:this.getGlyphX(r,B?0:1,i)}}const E=A[e-1];if(E.charLength===0)return{lineIndex:e-1,x:vR(I,E.nonWhitespaceWidth,Q)-I/2};const t=this.glyphLines[e-1][E.charLength-1];return{lineIndex:e-1,x:this.getGlyphX(t,1,i)}}getGlyphX(A,I,C){return typeof A=="number"?A+I*C:A.getX(I)}show(){this.unsubscribeShowList.length>0||(Ut(this.glyphLines,A=>A.show()),this.unsubscribeShowList.push(Gg(()=>{const A=this.matrix.value;A!=null&&Ut(this.glyphLines,I=>I.updateBaseMatrix(A))}),Gg(()=>{var I;const A=(I=this.parentClippingRect)==null?void 0:I.value;Ut(this.glyphLines,C=>C.updateClippingRect(A))}),Gg(()=>{const A=this.getAppearanceProperties.value;if(A==null)return;const I=this.color=A("color")??16777215;Ut(this.glyphLines,C=>C.updateColor(I))}),Gg(()=>{const A=this.getAppearanceProperties.value;if(A==null)return;const I=this.opacity=A("opacity")??1;Ut(this.glyphLines,C=>C.updateOpacity(I))}),Gg(()=>{var G,h;const A=this.layoutSignal.value,I=this.getAlignmentProperties.value;if(A==null||I==null)return;const{text:C,font:B,lines:i,letterSpacing:Q=0,fontSize:e=16,lineHeight:E=1.2,availableWidth:t}=A,n=I("verticalAlign")??"top",a=I("horizontalAlign")??"left";let r=wD(A,n)-A.availableHeight/2;const l=i.length,D=this.group.pixelSize;for(let c=0;cN+k){Z=iA.id;const CA=q+xR(B,e,iA,Z);typeof U[X]=="number"?U[X]=q:U.splice(X,0,CA),q+=F+fr(e,iA,Q);continue}let wA=U[X];for(;Xc.hide(),l),this.glyphLines.length=l,this.lastLayout=A,this.updateSelectionBoxes(A,(h=this.selectionRange)==null?void 0:h.peek(),n,a)})))}hide(){const A=this.unsubscribeShowList.length;if(A!==0){for(let I=0;II.hide())}}destroy(){this.hide(),this.glyphLines.length=0;const A=this.unsubscribeInitialList.length;for(let I=0;I{I.uniforms.fontPage={value:A.page},I.uniforms.pageSize={value:[A.pageWidth,A.pageHeight]},I.uniforms.distanceRange={value:A.distanceRange},I.uniforms.v_weight={value:.3},I.vertexShader=`attribute vec4 instanceUVOffset; + varying vec2 fontUv; + attribute vec4 instanceRGBA; + varying vec4 rgba; + attribute mat4 instanceClipping; + varying mat4 clipping; + varying vec3 localPosition; + `+I.vertexShader,I.vertexShader=I.vertexShader.replace("#include ",`#include + fontUv = instanceUVOffset.xy + uv * instanceUVOffset.zw; + rgba = instanceRGBA; + clipping = instanceClipping; + localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`),I.fragmentShader=`uniform sampler2D fontPage; + uniform vec2 pageSize; + uniform int distanceRange; + uniform float v_weight; + varying vec2 fontUv; + varying vec4 rgba; + varying mat4 clipping; + varying vec3 localPosition; + float median(float r, float g, float b) { + return max(min(r, g), min(max(r, g), b)); + } + float getDistance() { + vec3 msdf = texture(fontPage, fontUv).rgb; + return median(msdf.r, msdf.g, msdf.b); + } + `+I.fragmentShader,I.fragmentShader=I.fragmentShader.replace("#include ",` #include + vec4 plane; + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + for(int i = 0; i < 4; i++) { + plane = clipping[ i ]; + distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + + if ( clipOpacity == 0.0 ) discard; + } + vec2 dxdy = fwidth(fontUv) * pageSize; + float dist = getDistance() + min(float(v_weight), 0.5 - 1.0 / float(distanceRange)) - 0.5; + float multiplier = clamp(dist * float(distanceRange) / length(dxdy) + 0.5, 0.0, 1.0); + if(multiplier <= 0.5) { + discard; + } + diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); + diffuseColor *= rgba; + `)}}}const ck=Symbol("camera-distance-key"),Dk=Symbol("order-info-key");function wj(g,A){if(g.groupOrder!==A.groupOrder)return g.groupOrder-A.groupOrder;if(g.renderOrder!==A.renderOrder)return g.renderOrder-A.renderOrder;const I=g.object[ck],C=A.object[ck];return I==null||C==null?g.z!==A.z?A.z-g.z:g.id-A.id:I===C?Gj(g.object[Dk],A.object[Dk]):C.current-I.current}function Sj(g){g.setTransparentSort(wj)}const $C={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function Gj(g,A){let I=g.majorIndex-A.majorIndex;return I!=0||(I=g.elementType-A.elementType,I!=0)?I:g.minorIndex-A.minorIndex}const xY=T.createContext(void 0),yj=xY.Provider;function kB(g,A,I,C){const B=C??T.useContext(xY),i=typeof A=="number"?A:(A==null?void 0:A.major)??0,Q=typeof A=="number"?0:(A==null?void 0:A.minor)??0;return T.useMemo(()=>{let e,E;return B==null?(e=0,E=0):g>B.elementType?(e=B.majorIndex,E=0):g!=B.elementType||!uj(I,B.instancedGroupDependencies)?(e=B.majorIndex+1,E=0):(e=B.majorIndex,E=B.minorIndex+1),i>0&&(e+=i,E=0),E+=Q,{instancedGroupDependencies:I,elementType:g,majorIndex:e,minorIndex:E}},[i,Q,B,g,I])}function uj(g,A){if(g===A)return!0;if(g==null||A==null)return!1;let I=0;for(const C in g){if(g[C]!=A[C])return!1;++I}return I===Object.keys(A).length}function yo(g,A,I){return g[ck]=A,g[Dk]=I,g}class kj extends qB{constructor(I,C,B,i){super();iI(this,"instanceMatrix");iI(this,"instanceUV");iI(this,"instanceRGBA");iI(this,"instanceClipping");iI(this,"glyphs",[]);iI(this,"requestedGlyphs",[]);iI(this,"holeIndicies",[]);iI(this,"mesh");iI(this,"material");iI(this,"timeTillDecimate");this.pixelSize=C,this.cameraDistance=B,this.orderInfo=i,this.material=new hj(I)}requestActivate(I){const C=this.holeIndicies.shift();if(C!=null){this.glyphs[C]=I,I.activate(C);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(I);return}const B=this.mesh.count;this.glyphs[B]=I,I.activate(B),this.mesh.count+=1}delete(I){if(I.index==null){const i=this.requestedGlyphs.indexOf(I);if(i===-1)return;this.requestedGlyphs.splice(i,1);return}const C=this.requestedGlyphs.shift();if(C!=null){C.activate(I.index),this.glyphs[I.index]=C,I.index=void 0;return}if(I.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,I.index=void 0;return}const B=I.index*16;this.instanceMatrix.array.fill(0,B,B+16),this.instanceMatrix.addUpdateRange(B,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(I.index),this.glyphs[I.index]=void 0,I.index=void 0}onFrame(I){var e;const C=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(C===0){this.visible=!1;return}this.visible=!0;const B=((e=this.instanceMatrix)==null?void 0:e.count)??0;if(C0)&&C<=B)return;this.timeTillDecimate=void 0,this.resize(C);const i=this.mesh.count,Q=this.requestedGlyphs.length;for(let E=0;Er-l);const t=this.holeIndicies.length;let n=0,a=0;for(;a0)for(let r=this.holeIndicies[0];r{for(const Q of B)Q(i);g0.set(g,i)}).catch(console.error)}async function pj(g,A){const I=await(await fetch(g)).json();if(I.pages.length!==1)throw new Error("only supporting exactly 1 page");const C=await dj.loadAsync(new URL(I.pages[0],g).href);return C.anisotropy=A.capabilities.getMaxAnisotropy(),C.flipY=!1,new nj(I,C)}const Uj=({text:g,fontSize:A,font:I,letterSpacing:C},B,i,Q)=>{i=wM(g,i);const e=i;Q.charIndexOffset=e,Q.nonWhitespaceCharLength=0,Q.charLength=0,Q.nonWhitespaceWidth=0,Q.whitespacesBetween=0;let E=0,t=0;for(;iB)break;Q.nonWhitespaceCharLength=i-e+1,Q.nonWhitespaceWidth=E,Q.whitespacesBetween=t}Q.charLength=i-e},Nj=({text:g,fontSize:A,font:I,letterSpacing:C},B,i,Q)=>{i=wM(g,i);const e=i;Q.charIndexOffset=e,Q.nonWhitespaceCharLength=0,Q.charLength=0,Q.nonWhitespaceWidth=0,Q.whitespacesBetween=0;let E=0,t=0;for(;i{i=wM(g,i);const e=i;Q.charIndexOffset=e,Q.nonWhitespaceCharLength=0,Q.charLength=0,Q.nonWhitespaceWidth=0,Q.whitespacesBetween=0;let E=0,t=0;for(;i0&&B!=null&&E>B)break;const a=g[i+1];(a===" "||a===` +`||a==null)&&(Q.charLength=i-e+1,Q.nonWhitespaceCharLength=Q.charLength,Q.nonWhitespaceWidth=E,Q.whitespacesBetween=t)}};function wM(g,A){const I=g.length;for(;g[A]===" "&&Anew Map,[]),B=T.useCallback((i,Q)=>{let e=C.get(Q);e==null&&C.set(Q,e=new Map);let E=e==null?void 0:e.get(i);return E==null&&(e.set(i,E=new kj(Q,g,A,{majorIndex:i,elementType:$C.Text,minorIndex:0})),I.add(E)),E},[g,A,I]);return FC((i,Q)=>{for(const e of C.values())for(const E of e.values())E.onFrame(Q)}),B}const qj=T.createContext(null),mj={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},hk={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},Lj=["horizontalAlign","verticalAlign"],Yj=["color","opacity"],Hj=["fontSize","letterSpacing","lineHeight","wordBreak"];function OY(g,A,I,C,B,i,Q,e,E,t,n){const a=kB($C.Text,void 0,void 0,Q),r=T.useContext(bY);if(r==null)throw new Error("Can only be used inside a component.");const l=xj(g),D=T.useMemo(()=>Qg(A),[]);D.value=A;const G=T.useRef(void 0),h=Oj(g,l,D,G),c=oQ(g,Lj),y=oQ(g,Yj),S=T.useMemo(()=>Qg(void 0),[]);return T.useEffect(()=>C.addLayoutChangeListener(()=>{const k=G.current;if(k==null)return;const{size:N,paddingInset:M,borderInset:F}=C,[q,Z]=N.value,[U,K,z,DA]=M.value,[X,eA,iA,wA]=F.value,v=q-K-DA-eA-wA,CA=Z-U-z-X-iA;S.value=Rj(k,v,CA)}),[C]),QB(()=>{const k=l.value;if(k==null)return;const N=new cj(r(a.majorIndex,k),c,y,S,I,B,i,e,E,t);return n!=null&&(n.current=N),()=>N.destroy()},[r,I,C,B,i,a.majorIndex,E,n]),h}const Tj=["fontFamily","fontWeight"];function xj(g){const A=T.useMemo(()=>Qg(void 0),[]),I=T.useContext(qj)??mj,C=oQ(g,Tj),B=EB(({gl:i})=>i);return QB(()=>{const i=C.value;if(i==null)return;let Q=i("fontWeight")??"normal";typeof Q=="string"&&(Q=hk[Q]);let e=i("fontFamily");e==null&&(e=Object.keys(I)[0]);const E=vj(I[e],Q);let t=!1;return Mj(E,B,n=>t?void 0:A.value=n),()=>t=!0},[I,B]),A}function vj(g,A){let I=1/0,C;for(const B in g){const i=Math.abs(A-bj(B));if(i===0)return g[B];iwC(()=>{const Q=A.value,e=B.value;if(Q==null||e==null)return;const E=I.value,t={font:Q,fontSize:e("fontSize")??16,letterSpacing:e("letterSpacing")??0,lineHeight:e("lineHeight")??1.2,text:Array.isArray(E)?E.map(n=>Yh(n)).join(""):Yh(E),wordBreak:e("wordBreak")??"break-word"};return C.current=t,(n,a)=>fj(t,a===RB.MeasureMode.Undefined?void 0:n)}),[A,B,C,I])}const cn={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},_Y=Object.keys(cn),_j=_Y.length,ZY=T.createContext(void 0),Zj=ZY.Provider;function Re(g,A,I){const C=I??T.useContext(ZY);if(C==null)throw new Error("Can only be used inside a component.");const B=T.useMemo(()=>({sm:ee(()=>C.value[0]>cn.sm),md:ee(()=>C.value[0]>cn.md),lg:ee(()=>C.value[0]>cn.lg),xl:ee(()=>C.value[0]>cn.xl),"2xl":ee(()=>C.value[0]>cn["2xl"])}),[C]);ys(A,i=>{for(let Q=0;Q<_j;Q++){const e=_Y[Q],E=i[e];E!=null&&B[e](g,E)}})}const PY=T.createContext(null);function Pj(){return T.useContext(PY)}function gt(g){const A=Pj(),I=T.useMemo(()=>A.createChild(g),[g,A]);return T.useEffect(()=>(A.addChild(I),()=>{A.removeChild(I),I.destroy()}),[A,I]),I}function Wj(){let g=T.useRef(void 0);return FC(()=>{if(g.current==null)return;const A=g.current;g.current=void 0,A.calculateLayout()}),T.useCallback(A=>{g.current!=null||A.yogaNode==null||(g.current=A)},[])}const SM=PY.Provider,MQ=new Jg,yD=new _,jj=[new Jg().setFromNormalAndCoplanarPoint(new _(1,0,0),new _(-.5,0,0)),new Jg().setFromNormalAndCoplanarPoint(new _(-1,0,0),new _(.5,0,0)),new Jg().setFromNormalAndCoplanarPoint(new _(0,1,0),new _(0,-.5,0)),new Jg().setFromNormalAndCoplanarPoint(new _(0,-1,0),new _(0,.5,0))],Nt=[0,0,0,0];function WY(g){return(A,I)=>{const C=g.matrixWorld;if(MQ.constant=0,MQ.normal.set(0,0,1),MQ.applyMatrix4(C),MQ.distanceToPoint(A.ray.origin)<=0||A.ray.intersectPlane(MQ,yD)==null)return;const B=MQ.normal.clone();for(let i=0;i<4;i++){const Q=jj[i];if(MQ.copy(Q).applyMatrix4(C),(Nt[i]=MQ.distanceToPoint(yD))<0)return}I.push({distance:yD.distanceTo(A.ray.origin),object:g,point:yD.clone(),uv:new qA(Nt[0]/(Nt[0]+Nt[1]),Nt[3]/(Nt[2]+Nt[3])),normal:B})}}function us(g,A,I,C,B){return(i,Q)=>{var a;const e=I.current;if(e==null)return;const E=Q.length;A.call(g,i,Q);const t=(a=C==null?void 0:C.value)==null?void 0:a.planes,n=e.matrixWorld;A:for(let r=Q.length-1;r>=E;r--){const l=Q[r];if(l.distance-=B.majorIndex*.01+B.elementType*.001+B.minorIndex*1e-5,t!=null){for(let D=0;D<4;D++)if(MQ.copy(t[D]).applyMatrix4(n),MQ.distanceToPoint(l.point)<0){Q.splice(r,1);continue A}}}}}function jY(g,A){for(;A>=g.length;){let I=0,C=0;if(g.length>0){const B=g[g.length-1];I+=B.offset+B.elements.length,C=Math.min(0,B.missingSpace),B.missingSpace-=C}g.push({add:[],missingSpace:C,offset:I,elements:[]})}}function Vj(g,A,I){jY(g,0);const C=g[g.length-1];C.missingSpace+=A-I}function Xj(g,A,I,C){jY(g,A);const B=g[A];return B.missingSpace+=1,B.missingSpace<=0?(C(I,B,B.elements.length),B.elements.push(I),!1):(B.add.push(I),!0)}function zj(g,A,I,C,B,i,Q,e){if(A>=g.length)throw new Error(`no bucket at index ${A}`);const E=g[A];E.missingSpace-=1;const t=E.add.indexOf(I);if(t!=-1)return E.add.splice(t,1),!1;if(C==null||C>=E.elements.length)throw new Error(`no element at index ${C}`);if(E.add.length>0){const l=E.add.shift();return E.elements[C]=l,B(l,E,C),!1}const n=E.offset,a=E.elements.length-1;if(a!=C){const l=n+a,D=n+C;e(D,l,l+1);const G=E.elements[a];E.elements[C]=G,Q(G,C)}if(i(n+a),E.elements.length-=1,A0;){const l=g[A-1];l.missingSpace+=r.missingSpace,r=g[--A]}return g.length=A+1,!1}function $j(g,A,I){let C=g.length,B=-1;for(let Q=0;Q0&&(B=Q);const E=Q===C-1;if(!E&&e.missingSpace===0)continue;const t=e.missingSpace<0;for(let n=Q-1;n>=0;n--){const a=g[n];if(a.missingSpace===0)continue;const r=a.missingSpace<0;if(r&&(E||t)){OR(g,I,n,Q,Math.abs(a.missingSpace));continue}if(!t&&!r)continue;const l=Math.min(Math.abs(a.missingSpace),Math.abs(e.missingSpace));t?A5(g,I,n,Q,l):OR(g,I,n,Q,l)}}const i=g[B];for(let Q=B+1;Qn>0)&&(C==null||C>0),[e,E]=A.value;return!(e>0&&E>0&&(B==null||B>0)&&i!=null)&&!Q?!1:I==null?!0:!I.value}function Na(g,A,I,C,B){g[A]=I5(g[A],I,GM(Math.ceil((C??0)/B*100),0,49))}const uD=new eI,zY=new eI(-1,-1,-1),_R={backgroundColor:(g,A)=>(Array.isArray(A)?uD.setRGB(...A):uD.set(A??zY)).toArray(g,4),borderBottomLeftRadius:(g,A,I)=>Na(g,7,0,A,I.value[1]),borderBottomRightRadius:(g,A,I)=>Na(g,7,1,A,I.value[1]),borderTopRightRadius:(g,A,I)=>Na(g,7,2,A,I.value[1]),borderTopLeftRadius:(g,A,I)=>Na(g,7,3,A,I.value[1]),borderColor:(g,A)=>(Array.isArray(A)?uD.setRGB(...A):uD.set(A??16777215)).toArray(g,8),borderBend:(g,A)=>g[11]=A??0,borderOpacity:(g,A)=>g[12]=A??1,backgroundOpacity:(g,A)=>g[15]=A??-1},$Y=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],g5=["borderOpacity","backgroundColor","backgroundOpacity"];class C5{constructor(A,I,C){iI(this,"data",new Float32Array(16));iI(this,"unsubscribeList",[]);iI(this,"unsubscribe");iI(this,"visible",!1);iI(this,"materials",[]);iI(this,"active",Qg(!1));iI(this,"getProperty",Qg(void 0));this.size=A,this.size=A,this.unsubscribe=Gg(()=>{const B=this.getProperty.value,i=B!=null&&XY(I,A,C,B("borderOpacity"),B("backgroundOpacity"),B("backgroundColor"));if(this.active.value=i,!i){this.deactivate();return}this.activate(A,I)})}addMaterial(A){A.visible=this.visible,this.materials.push(A)}hasBatchedProperty(A){return g5.includes(A)}hasImmediateProperty(A){return A in _R}setProperty(A,I){const C=_R[A];C(this.data,I,this.size)}activate(A,I){this.visible||(this.visible=!0,this.syncVisible(),this.data.set($Y),this.unsubscribeList.push(Gg(()=>this.data.set(A.value,13)),Gg(()=>this.data.set(I.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const A=this.unsubscribeList.length;for(let I=0;I{C.call(I,B,i),A.type==="normal"&&(B.uniforms.data={value:A.data}),Q5(B,A.type==="instanced")},I}class IH extends uw{constructor(A){super(),this.info=A,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(A,I){super.onBeforeCompile(A,I),this.info.type==="normal"&&(A.uniforms.data={value:this.info.data}),CH(A,this.info.type==="instanced")}}class gH extends yw{constructor(A){super({depthPacking:pd}),this.info=A,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(A,I){super.onBeforeCompile(A,I),this.info.type==="normal"&&(A.uniforms.data={value:this.info.data}),CH(A,this.info.type==="instanced")}}const B5=new gH({type:"instanced"}),i5=new IH({type:"instanced"});function CH(g,A){BH(g,A),g.fragmentShader=g.fragmentShader.replace("#include ",`#include + ${iH(A,void 0)} + `)}function BH(g,A){g.vertexShader=g.vertexShader.replace("#include ",` #include + out vec4 borderRadius; + ${A?"":"uniform highp mat4 data;"}`),g.vertexShader=g.vertexShader.replace("#include ",` #include + highp int packedBorderRadius = int(data[1].w); + borderRadius = vec4( + packedBorderRadius / 125000 % 50, + packedBorderRadius / 2500 % 50, + packedBorderRadius / 50 % 50, + packedBorderRadius % 50 + ) * vec4(0.5 / 50.0);`),A&&(g.vertexShader=g.vertexShader.replace("#include ",` #include + attribute highp mat4 aData; + attribute mat4 aClipping; + out mat4 data; + out mat4 clipping; + out vec3 localPosition;`),g.vertexShader=g.vertexShader.replace("#include ",` #include + data = aData; + clipping = aClipping; + localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`)),g.fragmentShader=`${A?"in":"uniform"} highp mat4 data; + in vec4 borderRadius; + ${A?` + in vec3 localPosition; + in mat4 clipping; + `:""} + + float min4 (vec4 v) { + return min(min(min(v.x,v.y),v.z),v.w); + } + float max4 (vec4 v) { + return max(max(max(v.x,v.y),v.z),v.w); + } + vec2 radiusDistance(float radius, vec2 outside, vec2 border, vec2 borderSize) { + vec2 outerRadiusXX = vec2(radius, radius); + vec2 innerRadiusXX = outerRadiusXX - borderSize; + vec2 radiusWeightUnnormalized = abs(innerRadiusXX - border); + vec2 radiusWeight = radiusWeightUnnormalized / vec2(radiusWeightUnnormalized.x + radiusWeightUnnormalized.y); + return vec2( + radius - distance(outside, outerRadiusXX), + dot(radiusWeight, innerRadiusXX) - distance(border, innerRadiusXX) + ); + } + `+g.fragmentShader,g.fragmentShader=g.fragmentShader.replace("#include ",` ${A?` + vec4 plane; + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + + for(int i = 0; i < 4; i++) { + plane = clipping[ i ]; + distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + + if ( clipOpacity < 0.01 ) discard; + } + `:""} + vec4 absoluteBorderSize = data[0]; + vec3 backgroundColor = data[1].xyz; + vec3 borderColor = data[2].xyz; + float borderBend = data[2].w; + float borderOpacity = data[3].x; + float width = data[3].y; + float height = data[3].z; + float backgroundOpacity = data[3].w; + float ratio = width / height; + vec4 relative = vec4(height, height, height, height); + vec4 borderSize = absoluteBorderSize / relative; + vec4 v_outsideDistance = vec4(1.0 - vUv.y, (1.0 - vUv.x) * ratio, vUv.y, vUv.x * ratio); + vec4 v_borderDistance = v_outsideDistance - borderSize; + + vec2 distance = vec2(min4(v_outsideDistance), min4(v_borderDistance)); + vec4 negateBorderDistance = vec4(1.0) - v_borderDistance; + float maxWeight = max4(negateBorderDistance); + vec4 borderWeight = step(maxWeight, negateBorderDistance); + + vec4 insideBorder; + + if(all(lessThan(v_outsideDistance.xw, borderRadius.xx))) { + distance = radiusDistance(borderRadius.x, v_outsideDistance.xw, v_borderDistance.xw, borderSize.xw); + + float tmp = borderRadius.x - borderSize.w; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.x - borderSize.x; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.yz = vec2(0.0); + insideBorder.xw = max(vec2(0.0), lineIntersection - v_borderDistance.xw); + + } else if(all(lessThan(v_outsideDistance.xy, borderRadius.yy))) { + distance = radiusDistance(borderRadius.y, v_outsideDistance.xy, v_borderDistance.xy, borderSize.xy); + + float tmp = borderRadius.y - borderSize.y; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.y - borderSize.x; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.zw = vec2(0.0); + insideBorder.xy = max(vec2(0.0), lineIntersection - v_borderDistance.xy); + + } else if(all(lessThan(v_outsideDistance.zy, borderRadius.zz))) { + distance = radiusDistance(borderRadius.z, v_outsideDistance.zy, v_borderDistance.zy, borderSize.zy); + + float tmp = borderRadius.z - borderSize.y; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.z - borderSize.z; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.xw = vec2(0.0); + insideBorder.zy =max(vec2(0.0), lineIntersection - v_borderDistance.zy); + + } else if(all(lessThan(v_outsideDistance.zw, borderRadius.ww))) { + distance = radiusDistance(borderRadius.w, v_outsideDistance.zw, v_borderDistance.zw, borderSize.zw); + + float tmp = borderRadius.w - borderSize.w; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.w - borderSize.z; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.xy = vec2(0.0); + insideBorder.zw = max(vec2(0.0), lineIntersection - v_borderDistance.zw); + + } + + if(insideBorder.x + insideBorder.y + insideBorder.z + insideBorder.w > 0.0) { + borderWeight = normalize(insideBorder); + } + + #include `)}function iH(g,A){return`float ddx = fwidth(distance.x); + float outer = smoothstep(-ddx, ddx, distance.x); + + float ddy = fwidth(distance.y); + float inner = smoothstep(-ddy, ddy, distance.y); + + float transition = 1.0 - step(0.1, outer - inner) * (1.0 - inner); + + if(backgroundColor.r < 0.0 && backgroundOpacity >= 0.0) { + backgroundColor = vec3(1.0); + } + if(backgroundOpacity < 0.0) { + backgroundOpacity = backgroundColor.r >= 0.0 ? 1.0 : 0.0; + } + + if(backgroundOpacity < 0.0) { + backgroundOpacity = 0.0; + } + + float outOpacity = ${g?"clipOpacity * ":""} outer * mix(borderOpacity, ${A==null?"":`${A} *`} backgroundOpacity, transition); + + if(outOpacity < 0.01) { + discard; + }`}function Q5(g,A){BH(g,A),g.fragmentShader=g.fragmentShader.replace("#include ",` #include + ${iH(A,"diffuseColor.a")} + diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); + diffuseColor.a = outOpacity; + `),g.fragmentShader=g.fragmentShader.replace("#include ",` #include + vec3 b = normalize(vBitangent); + vec3 t = normalize(vTangent); + mat4 directions = mat4(vec4(b, 1.0), vec4(t, 1.0), vec4(-b, 1.0), vec4(-t, 1.0)); + float currentBorderSize = distance.x - distance.y; + float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; + vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; + normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); + `)}class e5 extends cg{constructor(I,C,B){const i=VY();super(i);iI(this,"count",0);iI(this,"isInstancedMesh",!0);iI(this,"instanceColor",null);iI(this,"morphTexture",null);iI(this,"boundingBox",new aC);iI(this,"boundingSphere",new xC);this.instanceMatrix=I,this.frustumCulled=!1,i.attributes.aData=C,i.attributes.aClipping=B,this.customDepthMaterial=B5,this.customDistanceMaterial=i5}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class E5 extends qB{constructor(I,C,B,i,Q,e){super();iI(this,"mesh");iI(this,"instanceMatrix");iI(this,"instanceData");iI(this,"instanceClipping");iI(this,"buckets",[]);iI(this,"elementCount",0);iI(this,"bufferElementSize",0);iI(this,"timeToNextUpdate");iI(this,"activateElement",(I,C,B)=>{const i=C.offset+B;this.instanceData.set($Y,16*i),this.instanceData.addUpdateRange(16*i,16),this.instanceData.needsUpdate=!0,I.activate(C,B)});iI(this,"setElementIndex",(I,C)=>{I.setIndexInBucket(C)});iI(this,"bufferCopyWithin",(I,C,B)=>{C0(this.instanceMatrix,I,C,B),C0(this.instanceData,I,C,B),C0(this.instanceClipping,I,C,B)});iI(this,"clearBufferAt",I=>{const C=I*16;this.instanceMatrix.array.fill(0,C,C+16),this.instanceMatrix.addUpdateRange(C,16),this.instanceMatrix.needsUpdate=!0});this.material=I,this.pixelSize=C,this.cameraDistance=B,this.orderInfo=i,this.meshReceiveShadow=Q,this.meshCastShadow=e}updateCount(){const I=this.buckets[this.buckets.length-1],C=I.offset+I.elements.length;this.mesh!=null&&(this.mesh.count=C),this.visible=C>0}insert(I,C){if(this.elementCount+=1,!Xj(this.buckets,I,C,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(I,C,B){if(this.elementCount-=1,!zj(this.buckets,I,B,C,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(I){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=I,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(I){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,I)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),$j(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const I=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),Vj(this.buckets,I,this.bufferElementSize);const C=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&C.set(this.instanceMatrix.array.subarray(0,C.length)),this.instanceMatrix=new oi(C,16,!1),this.instanceMatrix.setUsage(ne);const B=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&B.set(this.instanceData.array.subarray(0,B.length)),this.instanceData=new oi(B,16,!1),this.instanceData.setUsage(ne);const i=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&i.set(this.instanceClipping.array.subarray(0,i.length)),this.instanceClipping=new oi(i,16,!1),this.instanceClipping.setUsage(ne),this.mesh=new e5(this.instanceMatrix,this.instanceData,this.instanceClipping),yo(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function C0(g,A,I,C){const B=g.itemSize,i=I*B,Q=C*B,e=A*B;g.array.copyWithin(e,i,Q);const E=Q-i;g.addUpdateRange(i,E),g.addUpdateRange(e,E),g.needsUpdate=!0}const ZR={backgroundColor:(g,A,I)=>ak(g.instanceData,A,I??zY,4),borderBottomLeftRadius:(g,A,I,{value:C})=>dD(g.instanceData,A,7,0,I,C[1]),borderBottomRightRadius:(g,A,I,{value:C})=>dD(g.instanceData,A,7,1,I,C[1]),borderTopRightRadius:(g,A,I,{value:C})=>dD(g.instanceData,A,7,2,I,C[1]),borderTopLeftRadius:(g,A,I,{value:C})=>dD(g.instanceData,A,7,3,I,C[1]),borderColor:(g,A,I)=>ak(g.instanceData,A,I??16777215,8),borderBend:(g,A,I)=>B0(g.instanceData,A,11,I??0),borderOpacity:(g,A,I)=>B0(g.instanceData,A,12,I??1),backgroundOpacity:(g,A,I)=>B0(g.instanceData,A,15,I??-1)},t5=["borderOpacity","backgroundColor","backgroundOpacity"],kD=new MI,o5=new MI;class uM{constructor(A,I,C,B,i,Q,e,E){iI(this,"indexInBucket");iI(this,"bucket");iI(this,"unsubscribeList",[]);iI(this,"unsubscribeVisible");iI(this,"destroyed",!1);iI(this,"insertedIntoGroup",!1);iI(this,"active",Qg(!1));iI(this,"getProperty",Qg(void 0));this.group=A,this.matrix=I,this.size=C,this.offset=B,this.borderInset=i,this.clippingRect=Q,this.minorIndex=E,this.unsubscribeVisible=Gg(()=>{const t=this.getProperty.value;if(t!=null&&XY(i,C,e,t("borderOpacity"),t("backgroundOpacity"),t("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(A){return t5.includes(A)}hasImmediateProperty(A){return A in ZR}setProperty(A,I){const C=this.getIndexInBuffer();C!=null&&ZR[A](this.group,C,I,this.size)}setIndexInBucket(A){this.indexInBucket=A}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(A,I){this.bucket=A,this.indexInBucket=I,this.active.value=!0,this.unsubscribeList.push(Gg(()=>{const C=this.matrix.value;if(C==null)return;const{instanceMatrix:B,pixelSize:i}=this.group,Q=this.getIndexInBuffer();if(Q==null)return;const e=Q*16,[E,t]=this.size.value;if(kD.makeScale(E*i,t*i,1),this.offset!=null){const[n,a]=this.offset.value;kD.premultiply(o5.makeTranslation(n*i,a*i,0))}kD.premultiply(C),kD.toArray(B.array,e),B.addUpdateRange(e,16),B.needsUpdate=!0}),Gg(()=>{const[C,B]=this.size.value,{instanceData:i}=this.group,{array:Q}=i,e=this.getIndexInBuffer();if(e==null)return;const E=e*16+13;Q[E]=C,Q[E+1]=B,i.addUpdateRange(E,2),i.needsUpdate=!0}),Gg(()=>{const{instanceData:C}=this.group,B=this.getIndexInBuffer();if(B==null)return;const i=B*16+0;C.array.set(this.borderInset.value,i),C.addUpdateRange(i,4),C.needsUpdate=!0}),Gg(()=>{var e;const{instanceClipping:C}=this.group,B=this.getIndexInBuffer();if(B==null)return;const i=B*16,Q=(e=this.clippingRect)==null?void 0:e.value;Q!=null?Q.toArray(C.array,i):C.array.set(Hh,i),C.addUpdateRange(i,16),C.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const A=this.unsubscribeList.length;for(let I=0;IA.hasImmediateProperty.bind(A),[A]),e=T.useCallback(E=>{if(!C.current){B.current=E;return}PR(E,B.current,i.current,A),B.current=E},[A]);QB(()=>{if(C.current=A.active.value,!C.current){WR(i.current),i.current={};return}return PR(B.current,n5,i.current,A),()=>{WR(i.current),i.current={}}},[A]),UY(g,Q,e,I)}function PR(g,A,I,C){var B,i;for(const Q in g){const e=g[Q];if(Q in A){const E=A[Q];if(delete A[Q],NY(e,E))continue;(B=I[Q])==null||B.call(I)}I[Q]=Gg(()=>{const E=Ek(e);C.setProperty(Q,E)})}for(const Q in A)(i=I[Q])==null||i.call(I),delete I[Q],Ek(A[Q])!==void 0&&C.setProperty(Q,void 0)}function WR(g){for(const A in g)g[A]()}function Ke({handlers:g,hoverHandlers:A,activeHandlers:I,inputHandlers:C,matrix:B,children:i,groupRef:Q}){return T.useEffect(()=>{const e=Q.current;if(e!=null)return Gg(()=>B.value!=null&&e.matrix.copy(B.value))},[Q,B]),RA.jsx("group",{ref:Q,onPointerOut:eE(g.onPointerOut,A==null?void 0:A.onPointerOut),onPointerOver:eE(g.onPointerOver,A==null?void 0:A.onPointerOver),onPointerUp:eE(g.onPointerUp,eE(I==null?void 0:I.onPointerUp,C==null?void 0:C.onPointerUp)),onPointerDown:eE(g.onPointerDown,eE(I==null?void 0:I.onPointerDown,C==null?void 0:C.onPointerDown)),onPointerLeave:eE(g.onPointerLeave,I==null?void 0:I.onPointerLeave),onPointerMove:eE(g.onPointerMove,C==null?void 0:C.onPointerMove),onWheel:g.onWheel,onClick:g.onClick,onContextMenu:g.onContextMenu,onDoubleClick:g.onDoubleClick,onPointerCancel:g.onPointerCancel,onPointerEnter:g.onPointerEnter,onPointerMissed:g.onPointerMissed,matrixAutoUpdate:!1,children:i})}function eE(g,A){return g==null?A:A==null?g:I=>{A(I),!I.stopped&&g(I)}}function uo(g,A,I,C){const B=TQ(),i=T.useMemo(()=>{const Q=new cg(yM);return Q.matrixAutoUpdate=!1,Q.raycast=us(Q,WY(Q),C,B,I),Q.visible=!1,Q},[B,I,C]);return QB(()=>{const[Q,e]=g.value;i.scale.set(Q*A.pixelSize,e*A.pixelSize,1),i.updateMatrix()},[g,A]),i}const QH=T.createContext(void 0);function kM(){const g=T.useContext(QH);if(g==null)throw new Error("Can only be used inside a component.");return g}function s5(g,A,I,C,B,i,Q){const{materials:e,setter:E}=T.useMemo(()=>{const t=new C5(A,I,C),n={data:t.data,type:"normal"},a=AH(B??NC,n),r=new gH(n),l=new IH(n);return a.clippingPlanes=i,r.clippingPlanes=i,l.clippingPlanes=i,{materials:[a,r,l],setter:t}},[A,I,C,B,i]);return vi(g,E,Q),Pw(g,E,Q),T.useEffect(()=>()=>E.destroy(),[E]),e}function xQ(g=NC,{castShadow:A=!1,receiveShadow:I=!1}){return T.useMemo(()=>({materialClass:g,castShadow:A,receiveShadow:I}),[g,A,I])}function Ct(g,A,I,C,B,i,Q,e,E,t,n){const a=n??kM(),r=T.useMemo(()=>new uM(a(Q.majorIndex,E),A,I,C,B,e,i,Q.minorIndex),[a,A,I,B,e,i,Q,C,E]);T.useEffect(()=>()=>r.destroy(),[r]),vi(g,r,t),Pw(g,r,t)}function a5(g,A,I){const C=T.useMemo(()=>new Map,[]),B=T.useCallback((i,{materialClass:Q,receiveShadow:e,castShadow:E})=>{let t=C.get(Q);t==null&&C.set(Q,t=new Map);const n=(i<<2)+((e?1:0)<<1)+(E?1:0);let a=t.get(n);if(a==null){const r=AH(Q,{type:"instanced"});t.set(n,a=new E5(r,g,A,{elementType:$C.Panel,majorIndex:i,minorIndex:0},e,E)),I.add(a)}return a},[g,C,A,I]);return FC((i,Q)=>{for(const e of C.values())for(const E of e.values())E.onFrame(Q)}),B}const r5=QH.Provider,wk=[],Bh=[];function l5(g,A){wk.push(g),Bh.push(A),document.body.style.cursor=A}function jR(g){const A=wk.indexOf(g);A!=-1&&(wk.splice(A,1),Bh.splice(A,1),document.body.style.cursor=Bh[Bh.length-1]??"default")}function Je(g,A,I){const C=T.useMemo(()=>Qg([]),[]),B=T.useMemo(()=>ee(()=>C.value.length>0),[]);let i=!1;ys(A,e=>{e.hover!=null&&(i=!0,B(g,e.hover))}),T.useEffect(()=>()=>jR(C),[]);const Q=A.cursor??I;if(!i&&A.onHoverChange==null&&Q==null){C.value.length=0;return}return{onPointerOver:e=>{C.value=[e.pointerId,...C.value],A.onHoverChange!=null&&C.value.length===1&&A.onHoverChange(!0),Q!=null&&l5(C,Q)},onPointerOut:e=>{C.value=C.value.filter(E=>E!=e.pointerId),A.onHoverChange!=null&&C.value.length===0&&A.onHoverChange(!1),jR(C)}}}function jw(g){return(A,I,C,B)=>{if(C(A)){B(A,I);return}const i=g[A];if(i==null)return;const Q=i.length;if(C(i[0]))for(let e=0;eQg([0,0]),[])}function G5(g,A,I){return T.useMemo(()=>wC(()=>{const C=I.value;if(C==null)return;const[B,i]=g.value,{pixelSize:Q}=A;return new MI().makeTranslation(-B*Q,i*Q,0).premultiply(C)}),[g,A,I])}function y5({node:g,scrollPosition:A,children:I}){const C=T.useRef(null);return T.useEffect(()=>Gg(()=>{var e,E;const[B,i]=A.value,{pixelSize:Q}=g;(e=C.current)==null||e.position.set(-B*Q,i*Q,0),(E=C.current)==null||E.updateMatrix()}),[g,A]),RA.jsx("group",{ref:C,children:I})}function tl({listeners:g,node:A,scrollPosition:I,children:C}){const[B,i]=T.useState(()=>A.scrollable.value.some(a=>a));QB(()=>i(A.scrollable.value.some(a=>a)),[A]);const Q=T.useRef(g.onScroll);Q.current=g.onScroll;const e=T.useMemo(()=>new Map,[]),E=T.useMemo(()=>new qA,[]),t=T.useCallback((a,r,l,D,G)=>{var K,z;const[h,c]=a==null?[!1,!1]:u5(a.nativeEvent);h&&(r=0),c&&(l=0);const[y,S]=I.value,[k,N]=A.maxScrollPosition.value;let[M,F]=I.value;const[q,Z]=((K=A.anyAncestorScrollable)==null?void 0:K.value)??[!1,!1];M=VR(y,k,r,G&&!q),F=VR(S,N,l,G&&!Z),D!=null&&D>0&&E.set(r,l).divideScalar(D),a!=null&&k5(a.nativeEvent,h||Math.min(y,(k??0)-y)>5,c||Math.min(S,(N??0)-S)>5),!(((z=Q.current)==null?void 0:z.call(Q,M,F,I,a))===!1||y===M&&S===F)&&(I.value=[M,F])},[A,I,E]);FC((a,r)=>{if(e.size>0)return;let l=0,D=0;const[G,h]=I.value,[c,y]=A.maxScrollPosition.value;l+=Sk(G,0,c??0)*-.3,D+=Sk(h,0,y??0)*-.3,l+=E.x*r,D+=E.y*r,E.multiplyScalar(.9),Math.abs(E.x)<.01&&(E.x=0),Math.abs(E.y)<.01&&(E.y=0),!(l===0&&D===0)&&t(void 0,l,D,void 0,!0)});const n=T.useRef(null);return B?RA.jsx("group",{ref:n,matrixAutoUpdate:!1,onPointerDown:a=>{let r=e.get(a.pointerId);r==null&&e.set(a.pointerId,r={timestamp:0,point:new _}),r.timestamp=performance.now()/1e3,n.current.worldToLocal(r.point.copy(a.point))},onPointerUp:a=>{e.delete(a.pointerId)},onPointerLeave:a=>{e.delete(a.pointerId)},onPointerCancel:a=>{e.delete(a.pointerId)},onContextMenu:a=>a.nativeEvent.preventDefault(),onPointerMove:a=>{const r=e.get(a.pointerId);if(r==null)return;n.current.worldToLocal(Q0.copy(a.point)),i0.copy(Q0).sub(r.point).divideScalar(A.pixelSize);const l=performance.now()/1e3,D=l-r.timestamp;r.point.copy(Q0),r.timestamp=l,!a.defaultPrevented&&t(a,-i0.x,i0.y,D,!0)},onWheel:a=>{a.defaultPrevented||t(a,a.deltaX,a.deltaY,void 0,!1)},children:C}):RA.jsx("group",{matrixAutoUpdate:!1,children:C})}const EH=Symbol("was-scrolled");function u5(g){return g[EH]??[!1,!1]}function k5(g,A,I){g[EH]=[A,I]}function VR(g,A,I,C){if(I===0)return g;const B=Sk(g,0,A??0);XR(I)===XR(B)&&(I*=Math.max(0,1-Math.abs(B)/100));let i=g+I;return C&&A!=null?i:GM(i,0,A??0)}function XR(g){return g>=0}function Sk(g,A,I){return gI?g-I:0}const zR=9;function tH(g){return g[zR].toLowerCase()+g.slice(zR+1)}const d5=(g,A,I,C)=>{if(g.startsWith("scrollbarBorder")){if(g=tH(g),I(g)){C(g,A);return}c5(g,A,I,C)}},M5=(g,A,I,C)=>{if(g.startsWith("scrollbar")){if(g==="scrollbarOpacity"){C("backgroundOpacity",A);return}if(g==="scrollbarColor"){C("backgroundColor",A);return}if(g=tH(g),I(g)){C(g,A);return}me(g,A,I,C)}};function ol(g,A,I,C,B,i,Q,e,E){const t=xQ(i,{castShadow:!1,receiveShadow:!1}),n=kB($C.Panel,void 0,t,e),a=oQ(g,p5),r=oQ(g,U5,d5),l=T.useMemo(()=>wC(()=>{const h=r.value;return[(h==null?void 0:h("scrollbarBorderTop"))??0,(h==null?void 0:h("scrollbarBorderRight"))??0,(h==null?void 0:h("scrollbarBorderBottom"))??0,(h==null?void 0:h("scrollbarBorderLeft"))??0]}),[r]),D=g.length;$R(g,0,A,I,C,B,i,Q,n,E,a,l),$R(g,1,A,I,C,B,i,Q,n,E,a,l);const G=g.length;for(let h=D;h{const G=wC(()=>{const h=n.value;if(h!=null)return N5(A,h("scrollbarWidth")??10,C.size.value,C.maxScrollPosition.value,C.borderInset.value,I.value)});return[wC(()=>{var h;return((h=G.value)==null?void 0:h.slice(0,2))??[0,0]}),wC(()=>{var h;return((h=G.value)==null?void 0:h.slice(2,4))??[0,0]})]},[A,C,I,n]),D=T.useMemo(()=>({materialClass:Q??NC,receiveShadow:!1,castShadow:!1}),[Q]);Ct(g,B,l,r,a,i,E,e,D,M5,t)}function N5(g,A,I,C,B,i){const Q=[0,0,0,0],e=C[g];if(e==null)return Q;const E=1-g,t=I[g]-B[E]-B[E+2],n=Math.max(A,t*t/(e+t)),a=t-n,r=i[g];return Q[g]=I[g]*.5-n*.5-B[(g+3)%4]-a*GM(r/e,0,1),Q[E]=I[E]*.5-A*.5-B[E+1],g===0&&(Q[0]*=-1,Q[1]*=-1),Q[g+2]=n,Q[E+2]=A,Q}function Bt(g,A,I,C){T.useImperativeHandle(g,()=>({borderInset:A.borderInset,paddingInset:A.paddingInset,pixelSize:A.pixelSize,center:A.relativeCenter,size:A.size,interactionPanel:I instanceof cg?I:I.current,scrollPosition:C}),[I,A,C])}function Le({onSizeChange:g},A){const I=T.useMemo(()=>{if(g==null)return;let C=!0;return Gg(()=>{const B=A.value;if(C){C=!1;return}g(...B)})},[g,A]);T.useEffect(()=>I,[I])}function it({onIsInViewportChange:g},A){const I=T.useMemo(()=>{if(g==null)return;let C=!0;return Gg(()=>{const B=!A.value;if(C){C=!1;return}g(B)})},[A,g]);T.useEffect(()=>I,[I])}function Qt(g){const A=T.useContext(oH);if(A==null)throw new Error("Can only be used inside a uikit component.");return T.useMemo(()=>wC(()=>{const I=g.value,C=A.value;if(!(I==null||C==null))return C.clone().multiply(I)}),[g,A])}const oH=T.createContext(void 0),F5=oH.Provider;function nl({globalMatrix:g,node:A,scrollPosition:I,children:C,orderInfo:B}){const i=TQ(),Q=oj(g,A.size,A.borderInset,A.overflow,A,i),e=G5(I,A,g);return RA.jsx(y5,{node:A,scrollPosition:I,children:RA.jsx(F5,{value:e,children:RA.jsx(SM,{value:A,children:RA.jsx(Ej,{value:Q,children:RA.jsx(yj,{value:B,children:C})})})})})}const nH="transformTranslateX",sH="transformTranslateY",aH="transformTranslateZ",rH="transformRotateX",lH="transformRotateY",cH="transformRotateZ",DH="transformScaleX",hH="transformScaleY",wH="transformScaleZ",f5=[nH,sH,aH,rH,lH,cH,DH,hH,wH],R5=new _,K5=new _,MD=new _,e0=new MI,J5=new YQ,q5=new Wg,E0=Math.PI/180;function m5([g,A,I]){return q5.setFromEuler(J5.set(g*E0,A*E0,I*E0))}function Ye(g,A){const I=oQ(g,f5,S5);return T.useMemo(()=>wC(()=>{const C=I.value;if(C==null)return;const{pixelSize:B,relativeCenter:i}=A,[Q,e]=i.value,E=new MI().makeTranslation(Q*B,e*B,0),t=C("transformOriginX")??"center",n=C("transformOriginY")??"center";let a=!0;if(t!="center"||n!="center"){const[G,h]=A.size.value;a=!1,MD.set(-RY[t]*G*B,-KY[n]*h*B,0),E.multiply(e0.makeTranslation(MD)),MD.negate()}const r=[C(rH)??0,C(lH)??0,C(cH)??0],l=[C(nH)??0,-(C(sH)??0),C(aH)??0],D=[C(DH)??1,C(hH)??1,C(wH)??1];return(l.some(G=>G!=0)||r.some(G=>G!=0)||D.some(G=>G!=1))&&E.multiply(e0.compose(R5.fromArray(l).multiplyScalar(B),m5(r),K5.fromArray(D))),a||E.multiply(e0.makeTranslation(MD)),E}),[I,A])}function He(g,A){const I=T.useMemo(()=>Qg([]),[]),C=T.useMemo(()=>ee(()=>I.value.length>0),[]);let B=!1;if(ys(A,Q=>{Q.active!=null&&(B=!0,C(g,Q.active))}),!B&&A.onActiveChange==null){I.value.length=0;return}const i=Q=>{I.value=I.value.filter(e=>e!=Q.pointerId),!(A.onActiveChange==null||I.value.length>0)&&A.onActiveChange(!1)};return{onPointerDown:Q=>{I.value=[Q.pointerId,...I.value],!(A.onActiveChange==null||I.value.length!=1)&&A.onActiveChange(!0)},onPointerUp:i,onPointerLeave:i}}const L5=T.forwardRef((g,A)=>{const I=Ue(),C=T.useRef(null),B=gt(C);vi(I,B,qe);const i=Ye(I,B),Q=Qt(i),e=TQ(),E=It(e,Q,B.size,B);Le(g,B.size),it(g,E);const t=xQ(g.panelMaterialClass,g),n=kB($C.Panel,g.zIndexOffset,t);Ct(I,Q,B.size,void 0,B.borderInset,E,n,e,t,me);const a=T.useRef(null),r=At(),l=kB($C.Object,void 0,void 0,n),D=T5(I,a,r,B.cameraDistance,e,l);Fe(I,g),fe(I,g),Re(I,g);const G=Je(I,g),h=He(I,g),c=T.useMemo(()=>wC(()=>{const[k,N]=D.value;return k/N}),[D]);(g.keepAspectRatio??!0)&&EQ(I,"aspectRatio",c),Ne(I);const y=T.useRef(null);T.useEffect(()=>Gg(()=>{const[k,N]=B.size.value,[M,F,q,Z]=B.paddingInset.value,[U,K,z,DA]=B.borderInset.value,X=M+U,eA=F+K,iA=q+z,wA=Z+DA,v=k-wA-eA,CA=N-X-iA,{pixelSize:gA}=B,{current:SA}=y;SA==null||SA.position.set((wA-eA)*.5*gA,(iA-X)*.5*gA,0);const[,NA,WA]=D.value;SA==null||SA.scale.set(v*gA,CA*gA,g.keepAspectRatio?CA*gA*WA/NA:WA),SA==null||SA.updateMatrix()}),[B,g.keepAspectRatio,D]);const S=uo(B.size,B,n,r);return Bt(A,B,S),RA.jsxs(Ke,{groupRef:C,matrix:i,handlers:g,hoverHandlers:G,activeHandlers:h,children:[RA.jsx("primitive",{object:S}),RA.jsx("group",{matrixAutoUpdate:!1,ref:y,children:RA.jsx("group",{ref:a,matrixAutoUpdate:!1,children:RA.jsx(SM,{value:void 0,children:g.children})})})]})}),t0=new aC,Y5=new _().setScalar(.001),H5=["depthAlign"];function T5(g,A,I,C,B,i){const Q=T.useMemo(()=>Qg(new _(1,1,1)),[]),e=el(B,I),E=oQ(g,H5);return T.useEffect(()=>{const t=A.current;if(t==null)return;t.traverse(l=>{l instanceof cg&&(yo(l,C,i),l.material.clippingPlanes=e,l.material.needsUpdate=!0,l.raycast=us(l,l.raycast,I,B,i))});const n=t.parent;n==null||n.remove(t),t0.setFromObject(t);const a=new _,r=new _;return t0.getSize(a).max(Y5),Q.value=a,t.scale.set(1,1,1).divide(a),n!=null&&n.add(t),t0.getCenter(r),Gg(()=>{const l=E.value;l!=null&&(t.position.copy(r).negate(),t.position.z-=$8[l("depthAlign")??"back"]*a.z,t.position.divide(a),t.updateMatrix())})},[E,C,e,I]),Q}const mC=T.forwardRef((g,A)=>{const I=Ue(),C=T.useRef(null),B=gt(C);vi(I,B,qe);const i=Ye(I,B),Q=TQ(),e=Qt(i),E=It(Q,e,B.size,B),t=xQ(g.panelMaterialClass,g),n=kB($C.Panel,g.zIndexOffset,t);Ct(I,e,B.size,void 0,B.borderInset,E,n,Q,t,me);const a=El();ol(I,a,B,e,E,g.scrollbarPanelMaterialClass,Q,n),Fe(I,g),fe(I,g),Re(I,g);const r=Je(I,g),l=He(I,g);Ne(I),Le(g,B.size),it(g,E);const D=At(),G=uo(B.size,B,n,D);return Bt(A,B,G,a),RA.jsxs(Ke,{groupRef:C,matrix:i,handlers:g,hoverHandlers:r,activeHandlers:l,children:[RA.jsx(tl,{listeners:g,node:B,scrollPosition:a,children:RA.jsx("primitive",{object:G})}),RA.jsx(nl,{globalMatrix:e,node:B,orderInfo:n,scrollPosition:a,children:g.children})]})});T.forwardRef((g,A)=>{const I=Ue(),C=T.useRef(null),B=gt(C);vi(I,B,qe);const i=Ye(I,B),Q=TQ(),e=At(),E=el(Q,e),t=kB($C.Custom,g.zIndexOffset,void 0),n=T.useRef(null),a=Qt(i),r=It(Q,a,B.size,B);T.useEffect(()=>{const G=n.current;if(G==null)return;G.raycast=us(G,G.raycast,e,Q,t),yo(G,B.cameraDistance,t),G.material instanceof hC&&(G.material.clippingPlanes=E,G.material.needsUpdate=!0,G.material.shadowSide=ri);const h=Gg(()=>{const[y,S]=B.size.value;G.scale.set(y*B.pixelSize,S*B.pixelSize,1),G.updateMatrix()}),c=Gg(()=>void(G.visible=!r.value));return()=>{h(),c()}},[E,B,r,Q,t,e]),Fe(I,g),fe(I,g),Re(I,g);const l=Je(I,g),D=He(I,g);return Ne(I),Le(g,B.size),it(g,r),Bt(A,B,n),RA.jsx(Ke,{groupRef:C,matrix:i,handlers:g,hoverHandlers:l,activeHandlers:D,children:RA.jsx("mesh",{receiveShadow:g.receiveShadow,castShadow:g.castShadow,customDepthMaterial:g.customDepthMaterial,customDistanceMaterial:g.customDistanceMaterial,ref:n,matrixAutoUpdate:!1,geometry:yM,children:RA.jsx(SM,{value:void 0,children:g.children})})})});const x5="fill",v5=(g,A,I,C)=>{if(g==="opacity"){C("backgroundOpacity",A);return}me(g,A,I,C)},SH=T.forwardRef((g,A)=>{const I=Ue(),C=JY(Z5,g.src),B=T.useMemo(()=>wC(()=>{const S=C.value;if(S==null)return;const k=S.source.data;return k.width/k.height}),[C]),i=T.useRef(null),Q=gt(i);vi(I,Q,qe),O5(I,C,Q.borderInset,Q.size);const e=Ye(I,Q),E=TQ(),t=At(),n=el(E,t),a=Qt(e),r=It(E,a,Q.size,Q),l=s5(I,Q.size,Q.borderInset,r,g.materialClass,n,v5),D=kB($C.Image,g.zIndexOffset,void 0),G=T.useMemo(()=>{const[S,k,N]=l,M=new cg(yM,S);return M.matrixAutoUpdate=!1,M.castShadow=g.castShadow??!1,M.receiveShadow=g.receiveShadow??!1,M.customDepthMaterial=k,M.customDistanceMaterial=N,M.raycast=us(M,WY(M),t,E,D),yo(M,Q.cameraDistance,D),M},[Q,l,t,E,D,g.receiveShadow,g.castShadow]),h=El();ol(I,h,Q,a,r,g.scrollbarPanelMaterialClass,E,D),Fe(I,g),fe(I,g),Re(I,g);const c=Je(I,g),y=He(I,g);return EQ(I,"backgroundColor",16777215),(g.keepAspectRatio??!0)&&EQ(I,"aspectRatio",B),Ne(I),Le(g,Q.size),it(g,r),QB(()=>{const S=C.value??null;G.material.map!==S&&(G.material.map=S,G.material.needsUpdate=!0)},[G,C]),QB(()=>{const[S,k]=Q.size.value;G.scale.set(S*Q.pixelSize,k*Q.pixelSize,1),G.updateMatrix()},[G]),QB(()=>void(G.visible=!r.value),[G,r]),Bt(A,Q,G,h),RA.jsxs(Ke,{groupRef:i,hoverHandlers:c,handlers:g,matrix:e,activeHandlers:y,children:[RA.jsx(tl,{listeners:g,node:Q,scrollPosition:h,children:RA.jsx("primitive",{object:G})}),RA.jsx(nl,{globalMatrix:a,node:Q,orderInfo:D,scrollPosition:h,children:g.children})]})}),b5=["fit"];function O5(g,A,I,C){const B=oQ(g,b5);QB(()=>{const i=B.value,Q=A.value;if(Q==null||i==null)return;const e=i("fit")??x5;if(Q.matrix.identity(),e==="fill"||Q==null){AK(I,C,Q);return}const{width:E,height:t}=Q.source.data,n=E/t,[a,r]=C.value,[l,D,G,h]=I.value,c=(a-h-D)/(r-l-G);n>c?Q.matrix.translate(-(.5*(c-n))/c,0).scale(c/n,1):Q.matrix.translate(0,-(.5*(n-c))/n).scale(1,n/c),AK(I,C,Q)},[A,I,C])}function AK(g,A,I){const[C,B]=A.value,[i,Q,e,E]=g.value,t=C-E-Q,n=B-i-e;I.matrix.translate(-1+(E+t)/C,-1+(i+n)/B).scale(C/t,B/n)}const _5=new xw;async function Z5(g){if(g==null)return Promise.resolve(void 0);if(g instanceof Lg)return Promise.resolve(g);try{const A=await _5.loadAsync(g);return A.colorSpace=cC,A.matrixAutoUpdate=!1,A}catch(A){console.error(A);return}}function ge(g,A,I){if(A==null)return I;const C=g[A];if(C==null)throw new Error(`unexpected value ${A}, expected ${Object.keys(g).join(", ")}`);return C}function xg(g,A,I){return typeof g=="number"?Math.round(g/A):g??I}const P5={static:0,relative:1,absolute:2},o0={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},W5={column:0,"column-reverse":1,row:2,"row-reverse":3},j5={"no-wrap":0,wrap:1,"wrap-reverse":2},V5={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},X5={visible:0,hidden:1,scroll:2},z5={flex:0,none:1},IK={positionType:(g,A,I)=>g.setPositionType(ge(P5,I,0)),positionTop:(g,A,I)=>g.setPosition(1,xg(I,A,NaN)),positionLeft:(g,A,I)=>g.setPosition(0,xg(I,A,NaN)),positionRight:(g,A,I)=>g.setPosition(2,xg(I,A,NaN)),positionBottom:(g,A,I)=>g.setPosition(3,xg(I,A,NaN)),alignContent:(g,A,I)=>g.setAlignContent(ge(o0,I,1)),alignItems:(g,A,I)=>g.setAlignItems(ge(o0,I,4)),alignSelf:(g,A,I)=>g.setAlignSelf(ge(o0,I,0)),flexDirection:(g,A,I)=>g.setFlexDirection(ge(W5,I,0)),flexWrap:(g,A,I)=>g.setFlexWrap(ge(j5,I,0)),justifyContent:(g,A,I)=>g.setJustifyContent(ge(V5,I,0)),marginTop:(g,A,I)=>g.setMargin(1,xg(I,A,NaN)),marginLeft:(g,A,I)=>g.setMargin(0,xg(I,A,NaN)),marginRight:(g,A,I)=>g.setMargin(2,xg(I,A,NaN)),marginBottom:(g,A,I)=>g.setMargin(3,xg(I,A,NaN)),flexBasis:(g,A,I)=>g.setFlexBasis(xg(I,A,NaN)),flexGrow:(g,A,I)=>g.setFlexGrow(I??0),flexShrink:(g,A,I)=>g.setFlexShrink(I??0),width:(g,A,I)=>g.setWidth(xg(I,A,NaN)),height:(g,A,I)=>g.setHeight(xg(I,A,NaN)),minWidth:(g,A,I)=>g.setMinWidth(xg(I,A,NaN)),minHeight:(g,A,I)=>g.setMinHeight(xg(I,A,NaN)),maxWidth:(g,A,I)=>g.setMaxWidth(xg(I,A,NaN)),maxHeight:(g,A,I)=>g.setMaxHeight(xg(I,A,NaN)),aspectRatio:(g,A,I)=>g.setAspectRatio(I??NaN),borderTop:(g,A,I)=>g.setBorder(1,xg(I,A,NaN)),borderLeft:(g,A,I)=>g.setBorder(0,xg(I,A,NaN)),borderRight:(g,A,I)=>g.setBorder(2,xg(I,A,NaN)),borderBottom:(g,A,I)=>g.setBorder(3,xg(I,A,NaN)),overflow:(g,A,I)=>g.setOverflow(ge(X5,I,0)),display:(g,A,I)=>g.setDisplay(ge(z5,I,0)),paddingTop:(g,A,I)=>g.setPadding(1,xg(I,A,NaN)),paddingLeft:(g,A,I)=>g.setPadding(0,xg(I,A,NaN)),paddingRight:(g,A,I)=>g.setPadding(2,xg(I,A,NaN)),paddingBottom:(g,A,I)=>g.setPadding(3,xg(I,A,NaN)),gapRow:(g,A,I)=>g.setGap(1,xg(I,A,NaN)),gapColumn:(g,A,I)=>g.setGap(0,xg(I,A,NaN))};function $5(g,A){return g.L===A.L}function AV(g,A,I){if(I==null){g.setMeasureFunc(null);return}g.setMeasureFunc((C,B,i,Q)=>{const e=I(C*A,B,i*A,Q);return{width:Math.ceil(Math.ceil(e.width)/A),height:Math.ceil(Math.ceil(e.height)/A)}}),g.markDirty()}class dM{constructor(A,I,C,B,i,Q,e){iI(this,"size",Qg([0,0]));iI(this,"relativeCenter",Qg([0,0]));iI(this,"borderInset",Qg([0,0,0,0]));iI(this,"paddingInset",Qg([0,0,0,0]));iI(this,"overflow",Qg(RB.Overflow.Visible));iI(this,"maxScrollPosition",Qg([void 0,void 0]));iI(this,"scrollable",Qg([!1,!1]));iI(this,"children",[]);iI(this,"yogaNode");iI(this,"unsubscribeYoga");iI(this,"layoutChangeListeners",new Set);iI(this,"requestCalculateLayout");iI(this,"active",Qg(!1));this.groupRef=A,this.cameraDistance=I,this.yoga=C,this.precision=B,this.pixelSize=i,this.anyAncestorScrollable=e,this.requestCalculateLayout=()=>Q(this),this.unsubscribeYoga=Gg(()=>{var E;C.value!=null&&((E=this.unsubscribeYoga)==null||E.call(this),this.unsubscribeYoga=void 0,this.yogaNode=C.value.Node.create(),this.active.value=!0)})}setProperty(A,I){A==="measureFunc"?AV(this.yogaNode,this.precision,I):IK[A](this.yogaNode,this.precision,I),this.requestCalculateLayout()}hasImmediateProperty(A){return A==="measureFunc"?!0:A in IK}destroy(){var A,I;(A=this.unsubscribeYoga)==null||A.call(this),(I=this.yogaNode)==null||I.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),yY(()=>this.updateMeasurements(void 0,void 0)))}createChild(A){return new dM(A,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,wC(()=>{var e;const[C,B]=((e=this.anyAncestorScrollable)==null?void 0:e.value)??[!1,!1],[i,Q]=this.scrollable.value;return[C||i,B||Q]}))}addChild(A){this.requestCalculateLayout(),this.children.push(A)}removeChild(A){const I=this.children.indexOf(A);I!==-1&&(this.children.splice(I,1),this.requestCalculateLayout())}commit(){var Q;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let A;this.children.sort((e,E)=>{var l,D;if(A??(A=(D=(l=e.groupRef.current)==null?void 0:l.parent)==null?void 0:D.children),A==null)return 0;const t=e.groupRef.current,n=E.groupRef.current;if(t==null||n==null)return 0;const a=A.indexOf(t);if(a===-1)throw new Error("parent mismatch");const r=A.indexOf(n);if(r===-1)throw new Error("parent mismatch");return a-r});let I=0,C=this.yogaNode.getChild(I),B=this.children[I];for(;B!=null||C!=null;){if(B!=null&&C!=null&&$5(C,CK(B.yogaNode))){B=this.children[++I],C=this.yogaNode.getChild(I);continue}if(C!=null&&this.yogaNode.removeChild(C),B!=null){const e=CK(B.yogaNode);(Q=e.getParent())==null||Q.removeChild(e),this.yogaNode.insertChild(e,I),B=this.children[++I]}C=this.yogaNode.getChild(I)}const i=this.children.length;for(let e=0;e0,q>0)}else nn(this.maxScrollPosition,void 0,void 0),nn(this.scrollable,!1,!1);const k=this.overflow.value===RB.Overflow.Visible;return[i+Math.max(C,k?y:0),Q+Math.max(B,k?S:0)]}addLayoutChangeListener(A){return this.layoutChangeListeners.add(A),()=>void this.layoutChangeListeners.delete(A)}}function nn(g,A,I){const[C,B]=g.value;C===A&&B===I||(g.value=[A,I])}function gK(g,A,I,C,B){const[i,Q,e,E]=g.value;i==A&&Q==I&&e==C&&E==B||(g.value=[A,I,C,B])}function CK(g){if(g==null)throw new Error("commit cannot be called with a children that miss a yoga node");return g}const IV=.1,GH=.002,pD=new Jg,BK=new _,MM=T.forwardRef((g,A)=>{const I=Ue(),C=EB(q=>q.gl);T.useEffect(()=>Sj(C),[C]);const{sizeX:B,sizeY:i}=g,[Q,e]=T.useMemo(()=>[g.precision??IV,g.pixelSize??GH],[]),E=Aj(),t=T.useMemo(()=>({current:0}),[]),n=T.useRef(null),a=Wj(),r=T.useMemo(()=>new dM(n,t,E,Q,e,a,void 0),[a,n,E]);vi(I,r,qe),T.useEffect(()=>()=>r.destroy(),[r]);const l=Ye(I,r),D=T.useMemo(()=>{const q=new qB;return q.matrixAutoUpdate=!1,q},[]),G=a5(e,r.cameraDistance,D),h=Jj(e,r.cameraDistance,D),c=xQ(g.panelMaterialClass,g),y=kB($C.Panel,void 0,c),S=CV(l,r.size,e,g),k=El();ol(I,k,r,S,void 0,g.scrollbarPanelMaterialClass,void 0,y,G),Ct(I,S,r.size,void 0,r.borderInset,void 0,y,void 0,c,me,G),Fe(I,g),fe(I,g),Re(I,g,r.size);const N=Je(I,g),M=He(I,g);EQ(I,"width",iK(B,e)),EQ(I,"height",iK(i,e)),Ne(I),Le(g,r.size);const F=uo(r.size,r,y,n);return Bt(A,r,F,k),FC(({camera:q})=>{pD.normal.set(0,0,1),pD.constant=0,pD.applyMatrix4(F.matrixWorld),BK.setFromMatrixPosition(q.matrixWorld),t.current=pD.distanceToPoint(BK)}),RA.jsxs(RA.Fragment,{children:[RA.jsx("primitive",{object:D}),RA.jsx(Ke,{groupRef:n,matrix:S,handlers:g,hoverHandlers:N,activeHandlers:M,children:RA.jsx(Ij,{value:n,children:RA.jsx(Kj,{value:h,children:RA.jsxs(r5,{value:G,children:[RA.jsx(tl,{node:r,scrollPosition:k,listeners:g,children:RA.jsx("primitive",{object:F})}),RA.jsx(Zj,{value:r.size,children:RA.jsx(nl,{globalMatrix:S,node:r,orderInfo:y,scrollPosition:k,children:g.children})})]})})})})]})});function iK(g,A){return T.useMemo(()=>g===void 0?void 0:g instanceof SC?wC(()=>{const I=g.value;if(I!=null)return I/A}):g/A,[g,A])}const gV=new MI;function CV(g,A,I,{anchorX:C="center",anchorY:B="center"}){return T.useMemo(()=>wC(()=>{var e;const[i,Q]=A.value;return(e=g.value)==null?void 0:e.clone().premultiply(gV.makeTranslation(RY[C]*i*I,KY[B]*Q*I,0))}),[g,A,C,B,I])}const BV=cC;class ks extends oB{constructor(A){super(A),this.defaultDPI=90,this.defaultUnit="px"}load(A,I,C,B){const i=this,Q=new VB(i.manager);Q.setPath(i.path),Q.setRequestHeader(i.requestHeader),Q.setWithCredentials(i.withCredentials),Q.load(A,function(e){try{I(i.parse(e))}catch(E){B?B(E):console.error(E),i.manager.itemError(A)}},C,B)}parse(A){const I=this;function C(j,b){if(j.nodeType!==1)return;const Y=k(j);let x=!1,nA=null;switch(j.nodeName){case"svg":b=D(j,b);break;case"style":i(j);break;case"g":b=D(j,b);break;case"path":b=D(j,b),j.hasAttribute("d")&&(nA=B(j));break;case"rect":b=D(j,b),nA=E(j);break;case"polygon":b=D(j,b),nA=t(j);break;case"polyline":b=D(j,b),nA=n(j);break;case"circle":b=D(j,b),nA=a(j);break;case"ellipse":b=D(j,b),nA=r(j);break;case"line":b=D(j,b),nA=l(j);break;case"defs":x=!0;break;case"use":b=D(j,b);const FA=(j.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),W=j.viewportElement.getElementById(FA);W?C(W,b):console.warn("SVGLoader: 'use node' references non-existent node id: "+FA);break}nA&&(b.fill!==void 0&&b.fill!=="none"&&nA.color.setStyle(b.fill,BV),M(nA,SA),z.push(nA),nA.userData={node:j,style:b});const MA=j.childNodes;for(let oA=0;oA0?SA.copy(X[X.length-1]):SA.identity())}function B(j){const b=new tE,Y=new qA,x=new qA,nA=new qA;let MA=!0,oA=!1;const FA=j.getAttribute("d");if(FA===""||FA==="none")return null;const W=FA.match(/[a-df-z][^a-df-z]*/ig);for(let UA=0,tA=W.length;UA0&&(Y.copy(nA),b.currentPath.currentPoint.copy(Y),MA=!0);break;default:console.warn(hA)}oA=!1}return b}function i(j){if(!(!j.sheet||!j.sheet.cssRules||!j.sheet.cssRules.length))for(let b=0;bnA.trim());for(let nA=0;nAoA!==""));DA[x[nA]]=Object.assign(DA[x[nA]]||{},MA)}}}function Q(j,b,Y,x,nA,MA,oA,FA){if(b==0||Y==0){j.lineTo(FA.x,FA.y);return}x=x*Math.PI/180,b=Math.abs(b),Y=Math.abs(Y);const W=(oA.x-FA.x)/2,UA=(oA.y-FA.y)/2,tA=Math.cos(x)*W+Math.sin(x)*UA,hA=-Math.sin(x)*W+Math.cos(x)*UA;let GA=b*b,bA=Y*Y;const EA=tA*tA,f=hA*hA,m=EA/GA+f/bA;if(m>1){const PA=Math.sqrt(m);b=PA*b,Y=PA*Y,GA=b*b,bA=Y*Y}const cA=GA*f+bA*EA,ZA=(GA*bA-cA)/cA;let OA=Math.sqrt(Math.max(0,ZA));nA===MA&&(OA=-OA);const YA=OA*b*hA/Y,EI=-OA*Y*tA/b,CI=Math.cos(x)*YA-Math.sin(x)*EI+(oA.x+FA.x)/2,sI=Math.sin(x)*YA+Math.cos(x)*EI+(oA.y+FA.y)/2,SI=e(1,0,(tA-YA)/b,(hA-EI)/Y),fI=e((tA-YA)/b,(hA-EI)/Y,(-tA-YA)/b,(-hA-EI)/Y)%(Math.PI*2);j.currentPath.absellipse(CI,sI,b,Y,SI,SI+fI,MA===0,x)}function e(j,b,Y,x){const nA=j*Y+b*x,MA=Math.sqrt(j*j+b*b)*Math.sqrt(Y*Y+x*x);let oA=Math.acos(Math.max(-1,Math.min(1,nA/MA)));return j*x-b*Y<0&&(oA=-oA),oA}function E(j){const b=S(j.getAttribute("x")||0),Y=S(j.getAttribute("y")||0),x=S(j.getAttribute("rx")||j.getAttribute("ry")||0),nA=S(j.getAttribute("ry")||j.getAttribute("rx")||0),MA=S(j.getAttribute("width")),oA=S(j.getAttribute("height")),FA=1-.551915024494,W=new tE;return W.moveTo(b+x,Y),W.lineTo(b+MA-x,Y),(x!==0||nA!==0)&&W.bezierCurveTo(b+MA-x*FA,Y,b+MA,Y+nA*FA,b+MA,Y+nA),W.lineTo(b+MA,Y+oA-nA),(x!==0||nA!==0)&&W.bezierCurveTo(b+MA,Y+oA-nA*FA,b+MA-x*FA,Y+oA,b+MA-x,Y+oA),W.lineTo(b+x,Y+oA),(x!==0||nA!==0)&&W.bezierCurveTo(b+x*FA,Y+oA,b,Y+oA-nA*FA,b,Y+oA-nA),W.lineTo(b,Y+nA),(x!==0||nA!==0)&&W.bezierCurveTo(b,Y+nA*FA,b+x*FA,Y,b+x,Y),W}function t(j){function b(MA,oA,FA){const W=S(oA),UA=S(FA);nA===0?x.moveTo(W,UA):x.lineTo(W,UA),nA++}const Y=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,x=new tE;let nA=0;return j.getAttribute("points").replace(Y,b),x.currentPath.autoClose=!0,x}function n(j){function b(MA,oA,FA){const W=S(oA),UA=S(FA);nA===0?x.moveTo(W,UA):x.lineTo(W,UA),nA++}const Y=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,x=new tE;let nA=0;return j.getAttribute("points").replace(Y,b),x.currentPath.autoClose=!1,x}function a(j){const b=S(j.getAttribute("cx")||0),Y=S(j.getAttribute("cy")||0),x=S(j.getAttribute("r")||0),nA=new KE;nA.absarc(b,Y,x,0,Math.PI*2);const MA=new tE;return MA.subPaths.push(nA),MA}function r(j){const b=S(j.getAttribute("cx")||0),Y=S(j.getAttribute("cy")||0),x=S(j.getAttribute("rx")||0),nA=S(j.getAttribute("ry")||0),MA=new KE;MA.absellipse(b,Y,x,nA,0,Math.PI*2);const oA=new tE;return oA.subPaths.push(MA),oA}function l(j){const b=S(j.getAttribute("x1")||0),Y=S(j.getAttribute("y1")||0),x=S(j.getAttribute("x2")||0),nA=S(j.getAttribute("y2")||0),MA=new tE;return MA.moveTo(b,Y),MA.lineTo(x,nA),MA.currentPath.autoClose=!1,MA}function D(j,b){b=Object.assign({},b);let Y={};if(j.hasAttribute("class")){const oA=j.getAttribute("class").split(/\s/).filter(Boolean).map(FA=>FA.trim());for(let FA=0;FA0&&b.premultiply(X[X.length-1]),SA.copy(b),X.push(b),b}function N(j){const b=new PI,Y=eA;if(j.nodeName==="use"&&(j.hasAttribute("x")||j.hasAttribute("y"))){const x=S(j.getAttribute("x")),nA=S(j.getAttribute("y"));b.translate(x,nA)}if(j.hasAttribute("transform")){const x=j.getAttribute("transform").split(")");for(let nA=x.length-1;nA>=0;nA--){const MA=x[nA].trim();if(MA==="")continue;const oA=MA.indexOf("("),FA=MA.length;if(oA>0&&oA=1){const tA=UA[0];let hA=0;UA.length>=2&&(hA=UA[1]),Y.translate(tA,hA)}break;case"rotate":if(UA.length>=1){let tA=0,hA=0,GA=0;tA=UA[0]*Math.PI/180,UA.length>=3&&(hA=UA[1],GA=UA[2]),iA.makeTranslation(-hA,-GA),wA.makeRotation(tA),v.multiplyMatrices(wA,iA),iA.makeTranslation(hA,GA),Y.multiplyMatrices(iA,v)}break;case"scale":if(UA.length>=1){const tA=UA[0];let hA=tA;UA.length>=2&&(hA=UA[1]),Y.scale(tA,hA)}break;case"skewX":UA.length===1&&Y.set(1,Math.tan(UA[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":UA.length===1&&Y.set(1,0,0,Math.tan(UA[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":UA.length===6&&Y.set(UA[0],UA[2],UA[4],UA[1],UA[3],UA[5],0,0,1);break}}b.premultiply(Y)}}return b}function M(j,b){function Y(oA){gA.set(oA.x,oA.y,1).applyMatrix3(b),oA.set(gA.x,gA.y)}function x(oA){const FA=oA.xRadius,W=oA.yRadius,UA=Math.cos(oA.aRotation),tA=Math.sin(oA.aRotation),hA=new _(FA*UA,FA*tA,0),GA=new _(-W*tA,W*UA,0),bA=hA.applyMatrix3(b),EA=GA.applyMatrix3(b),f=eA.set(bA.x,EA.x,0,bA.y,EA.y,0,0,0,1),m=iA.copy(f).invert(),OA=wA.copy(m).transpose().multiply(m).elements,YA=K(OA[0],OA[1],OA[4]),EI=Math.sqrt(YA.rt1),CI=Math.sqrt(YA.rt2);if(oA.xRadius=1/EI,oA.yRadius=1/CI,oA.aRotation=Math.atan2(YA.sn,YA.cs),!((oA.aEndAngle-oA.aStartAngle)%(2*Math.PI){const{x:kI,y:tI}=new _(Math.cos(LI),Math.sin(LI),0).applyMatrix3(PA);return Math.atan2(tI,kI)};oA.aStartAngle=bI(oA.aStartAngle),oA.aEndAngle=bI(oA.aEndAngle),F(b)&&(oA.aClockwise=!oA.aClockwise)}}function nA(oA){const FA=Z(b),W=U(b);oA.xRadius*=FA,oA.yRadius*=W;const UA=FA>Number.EPSILON?Math.atan2(b.elements[1],b.elements[0]):Math.atan2(-b.elements[3],b.elements[4]);oA.aRotation+=UA,F(b)&&(oA.aStartAngle*=-1,oA.aEndAngle*=-1,oA.aClockwise=!oA.aClockwise)}const MA=j.subPaths;for(let oA=0,FA=MA.length;oANumber.EPSILON}function Z(j){const b=j.elements;return Math.sqrt(b[0]*b[0]+b[1]*b[1])}function U(j){const b=j.elements;return Math.sqrt(b[3]*b[3]+b[4]*b[4])}function K(j,b,Y){let x,nA,MA,oA,FA;const W=j+Y,UA=j-Y,tA=Math.sqrt(UA*UA+4*b*b);return W>0?(x=.5*(W+tA),FA=1/x,nA=j*FA*Y-b*FA*b):W<0?nA=.5*(W-tA):(x=.5*tA,nA=-.5*tA),UA>0?MA=UA+tA:MA=UA-tA,Math.abs(MA)>2*Math.abs(b)?(FA=-2*b/MA,oA=1/Math.sqrt(1+FA*FA),MA=FA*oA):Math.abs(b)===0?(MA=1,oA=0):(FA=-.5*MA/b,MA=1/Math.sqrt(1+FA*FA),oA=FA*MA),UA>0&&(FA=MA,MA=-oA,oA=FA),{rt1:x,rt2:nA,cs:MA,sn:oA}}const z=[],DA={},X=[],eA=new PI,iA=new PI,wA=new PI,v=new PI,CA=new qA,gA=new _,SA=new PI,NA=new DOMParser().parseFromString(A,"image/svg+xml");return C(NA.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:z,xml:NA.documentElement}}static createShapes(A){const C={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},B={loc:C.ORIGIN,t:0};function i(G,h,c,y){const S=G.x,k=h.x,N=c.x,M=y.x,F=G.y,q=h.y,Z=c.y,U=y.y,K=(M-N)*(F-Z)-(U-Z)*(S-N),z=(k-S)*(F-Z)-(q-F)*(S-N),DA=(U-Z)*(k-S)-(M-N)*(q-F),X=K/DA,eA=z/DA;if(DA===0&&K!==0||X<=0||X>=1||eA<0||eA>1)return null;if(K===0&&DA===0){for(let iA=0;iA<2;iA++)if(Q(iA===0?c:y,G,h),B.loc==C.ORIGIN){const wA=iA===0?c:y;return{x:wA.x,y:wA.y,t:B.t}}else if(B.loc==C.BETWEEN){const wA=+(S+B.t*(k-S)).toPrecision(10),v=+(F+B.t*(q-F)).toPrecision(10);return{x:wA,y:v,t:B.t}}return null}else{for(let v=0;v<2;v++)if(Q(v===0?c:y,G,h),B.loc==C.ORIGIN){const CA=v===0?c:y;return{x:CA.x,y:CA.y,t:B.t}}const iA=+(S+X*(k-S)).toPrecision(10),wA=+(F+X*(q-F)).toPrecision(10);return{x:iA,y:wA,t:X}}}function Q(G,h,c){const y=c.x-h.x,S=c.y-h.y,k=G.x-h.x,N=G.y-h.y,M=y*N-k*S;if(G.x===h.x&&G.y===h.y){B.loc=C.ORIGIN,B.t=0;return}if(G.x===c.x&&G.y===c.y){B.loc=C.DESTINATION,B.t=1;return}if(M<-Number.EPSILON){B.loc=C.LEFT;return}if(M>Number.EPSILON){B.loc=C.RIGHT;return}if(y*k<0||S*N<0){B.loc=C.BEHIND;return}if(Math.sqrt(y*y+S*S)U.t<=Z.t+Number.EPSILON&&U.t>=Z.t-Number.EPSILON)===void 0&&(c.push(Z),y.push(new qA(Z.x,Z.y)))}}return y}function E(G,h,c){const y=new qA;h.getCenter(y);const S=[];return c.forEach(k=>{k.boundingBox.containsPoint(y)&&e(G,k.points).forEach(M=>{S.push({identifier:k.identifier,isCW:k.isCW,point:M})})}),S.sort((k,N)=>k.point.x-N.point.x),S}function t(G,h,c,y,S){(S==null||S==="")&&(S="nonzero");const k=new qA;G.boundingBox.getCenter(k);const N=[new qA(c,k.y),new qA(y,k.y)],M=E(N,G.boundingBox,h);M.sort((z,DA)=>z.point.x-DA.point.x);const F=[],q=[];M.forEach(z=>{z.identifier===G.identifier?F.push(z):q.push(z)});const Z=F[0].point.x,U=[];let K=0;for(;K0&&U[U.length-1]===q[K].identifier?U.pop():U.push(q[K].identifier),K++;if(U.push(G.identifier),S==="evenodd"){const z=U.length%2===0,DA=U[U.length-2];return{identifier:G.identifier,isHole:z,for:DA}}else if(S==="nonzero"){let z=!0,DA=null,X=null;for(let eA=0;eA{const h=G.getPoints();let c=-999999999,y=999999999,S=-999999999,k=999999999;for(let N=0;Nc&&(c=M.y),M.yS&&(S=M.x),M.x=k&&(n=k-1),{curves:G.curves,points:h,isCW:eQ.isClockWise(h),identifier:-1,boundingBox:new RL(new qA(k,y),new qA(S,c))}});r=r.filter(G=>G.points.length>1);for(let G=0;Gt(G,r,n,a,A.userData?A.userData.style.fillRule:void 0)),D=[];return r.forEach(G=>{if(!l[G.identifier].isHole){const c=new JE;c.curves=G.curves,l.filter(S=>S.isHole&&S.for===G.identifier).forEach(S=>{const k=r[S.identifier],N=new KE;N.curves=k.curves,c.holes.push(N)}),D.push(c)}}),D}static getStrokeStyle(A,I,C,B,i){return A=A!==void 0?A:1,I=I!==void 0?I:"#000",C=C!==void 0?C:"miter",B=B!==void 0?B:"butt",i=i!==void 0?i:4,{strokeColor:I,strokeWidth:A,strokeLineJoin:C,strokeLineCap:B,strokeMiterLimit:i}}static pointsToStroke(A,I,C,B){const i=[],Q=[],e=[];if(ks.pointsToStrokeWithBuffers(A,I,C,B,i,Q,e)===0)return null;const E=new WI;return E.setAttribute("position",new GI(i,3)),E.setAttribute("normal",new GI(Q,3)),E.setAttribute("uv",new GI(e,2)),E}static pointsToStrokeWithBuffers(A,I,C,B,i,Q,e,E){const t=new qA,n=new qA,a=new qA,r=new qA,l=new qA,D=new qA,G=new qA,h=new qA,c=new qA,y=new qA,S=new qA,k=new qA,N=new qA,M=new qA,F=new qA,q=new qA,Z=new qA;C=C!==void 0?C:12,B=B!==void 0?B:.001,E=E!==void 0?E:0,A=UA(A);const U=A.length;if(U<2)return 0;const K=A[0].equals(A[U-1]);let z,DA=A[0],X;const eA=I.strokeWidth/2,iA=1/(U-1);let wA=0,v,CA,gA,SA,NA=!1,WA=0,j=E*3,b=E*2;Y(A[0],A[1],t).multiplyScalar(eA),h.copy(A[0]).sub(t),c.copy(A[0]).add(t),y.copy(h),S.copy(c);for(let tA=1;tANumber.EPSILON){const bA=eA/GA;a.multiplyScalar(-bA),r.subVectors(z,DA),l.copy(r).setLength(bA).add(a),q.copy(l).negate();const EA=l.length(),f=r.length();r.divideScalar(f),D.subVectors(X,z);const m=D.length();switch(D.divideScalar(m),r.dot(q)=B&&GA.push(tA[bA]);return GA.push(tA[tA.length-1]),GA}}}const iV=new ks,UD=new aC,Ft=new _;async function QV(g,A,I=NC,C,B,i,Q){const e=new qB;e.matrixAutoUpdate=!1;const E=await iV.loadAsync(g);UD.makeEmpty();for(const a of E.paths){const r=ks.createShapes(a),l=new I;l.transparent=!0,l.depthWrite=!1,l.toneMapped=!1,l.clippingPlanes=C;for(const D of r){const G=new ws(D);G.computeBoundingBox(),UD.union(G.boundingBox);const h=new cg(G,l);h.matrixAutoUpdate=!1,h.raycast=us(h,h.raycast,i,B,Q),yo(h,A,Q),h.userData.color=a.color,h.scale.y=-1,h.updateMatrix(),e.add(h)}}UD.getSize(Ft);const t=Ft.x/Ft.y,n=1/Ft.y;return e.scale.set(1,1,1).multiplyScalar(n),UD.getCenter(Ft),Ft.y*=-1,e.position.copy(Ft).negate().multiplyScalar(n),e.updateMatrix(),Object.assign(e,{aspectRatio:t})}const QK=new eI,eV=["color","opacity"];T.forwardRef((g,A)=>{const I=Ue(),C=T.useRef(null),B=gt(C);vi(I,B,qe);const i=Ye(I,B),Q=Qt(i),e=TQ(),E=It(e,Q,B.size,B),t=xQ(g.panelMaterialClass,g),n=kB($C.Panel,g.zIndexOffset,t);Ct(I,Q,B.size,void 0,B.borderInset,E,n,e,t,me);const a=At(),r=el(e,a),l=kB($C.Svg,void 0,void 0,n),D=JY(QV,g.src,B.cameraDistance,g.materialClass,r,e,a,l),G=oQ(I,eV);QB(()=>{var U;const M=G.value;if(M==null)return;const F=M("color"),q=M("opacity");let Z;Array.isArray(F)?Z=QK.setRGB(...F):F!=null&&(Z=QK.set(F)),(U=D.value)==null||U.traverse(K=>{if(!(K instanceof cg))return;K.receiveShadow=g.receiveShadow??!1,K.castShadow=g.castShadow??!1;const z=K.material;z.color.copy(Z??K.userData.color),z.opacity=q??1})},[D,g.color,g.receiveShadow,g.castShadow]);const h=T.useMemo(()=>wC(()=>{var M;return(M=D.value)==null?void 0:M.aspectRatio}),[D]),c=El();ol(I,c,B,Q,E,g.scrollbarPanelMaterialClass,e,l),Fe(I,g),fe(I,g),Re(I,g);const y=Je(I,g),S=He(I,g);EQ(I,"aspectRatio",h),Ne(I),Le(g,B.size),it(g,E);const k=T.useMemo(()=>{const M=new qB;return M.matrixAutoUpdate=!1,M},[]);QB(()=>{var Z;const[M,F,q]=qY(B.size,B.paddingInset,B.borderInset,B.pixelSize,((Z=D.value)==null?void 0:Z.aspectRatio)??1);k.position.set(M,F,0),k.scale.setScalar(q),k.updateMatrix()},[B,D]),QB(()=>{const M=D.value;if(M!=null)return k.add(M),()=>k.remove(M)},[D,k]),QB(()=>void(k.visible=!E.value),[]);const N=uo(B.size,B,n,a);return Bt(A,B,N,c),RA.jsxs(Ke,{groupRef:C,matrix:i,handlers:g,hoverHandlers:y,activeHandlers:S,children:[RA.jsxs(tl,{listeners:g,node:B,scrollPosition:c,children:[RA.jsx("primitive",{object:N}),RA.jsx("primitive",{object:k})]}),RA.jsx(nl,{globalMatrix:Q,node:B,orderInfo:l,scrollPosition:c,children:g.children})]})});const kQ=T.forwardRef((g,A)=>{const I=Ue(),C=T.useRef(null),B=gt(C);vi(I,B,qe);const i=Ye(I,B),Q=At(),e=Qt(i),E=TQ(),t=It(E,e,B.size,B);Le(g,B.size),it(g,t);const n=xQ(g.panelMaterialClass,g),a=kB($C.Panel,g.zIndexOffset,n);Ct(I,e,B.size,void 0,B.borderInset,t,a,E,n,me);const r=OY(I,g.children,e,B,t,E,a);Fe(I,g),fe(I,g),Re(I,g);const l=Je(I,g),D=He(I,g);EQ(I,"measureFunc",r),Ne(I);const G=uo(B.size,B,a,Q);return Bt(A,B,G),RA.jsx(Ke,{groupRef:C,matrix:i,handlers:g,hoverHandlers:l,activeHandlers:D,children:RA.jsx("primitive",{object:G})})});function EV(g,A,I){const C=T.useMemo(()=>ee(()=>I.value),[I]);ys(A,B=>{B.focus!=null&&C(g,B.focus)})}const tV=Qg([0,0,0,0]),eK=1.5,EK=(g,A,I,C)=>{g=="color"&&C("backgroundColor",A)};function oV(g,A,I,C,B,i,Q){const e=Q??kM(),E=xQ(void 0,{castShadow:!1,receiveShadow:!1}),t=kB($C.Panel,void 0,E,B),n=T.useMemo(()=>Qg(void 0),[]),a=T.useMemo(()=>Gg(()=>{const G=I.value;G==null&&(n.value=void 0),n.value=G;const h=setInterval(()=>n.value=n.peek()==null?G:void 0,500);return()=>clearInterval(h)}),[n,I]);T.useEffect(()=>a,[a]);const r=T.useMemo(()=>new uM(e(t.majorIndex,E),A,wC(()=>{const G=n.value;return G==null?[0,0]:[eK,G[2]]}),wC(()=>{const G=n.value;return G==null?[0,0]:[G[0]-eK/2,G[1]]}),tV,i,C,t.minorIndex),[e,t,E,A,i,C,n]),l=g.length;vi(g,r,EK),Pw(g,r,EK);const D=g.length;for(let G=l;G()=>r.destroy(),[r])}const nV=Qg([0,0,0,0]);function sV(g,A,I,C,B,i){const Q=i??kM(),e=T.useMemo(()=>[],[]),E=xQ(void 0,{castShadow:!1,receiveShadow:!1}),t=kB($C.Panel,void 0,E,C),n=T.useMemo(()=>Gg(()=>{const a=A.value,r=a.length;for(let D=0;D{if(N==="backgroundColor")return 11851775;if(N==="backgroundOpacity")return 1};const k=Gg(()=>{S.active.value&&(S.setProperty("backgroundColor",11851775),S.setProperty("backgroundOpacity",1))});e[D]=G={unsubscribe:k,panel:S,offset:y,size:c}}const h=a[D];G.size.value=h.size,G.offset.value=h.position}const l=e.length;for(let D=r;D()=>{n();const a=e.length;for(let r=0;r{const I=T.useMemo(()=>Qg(g.defaultValue??""),[]),C=T.useMemo(()=>g.value??I,[g.value,I]),B=T.useRef(g.onValueChange);B.current=g.onValueChange;const i=T.useRef(void 0),Q=g.value!=null,e=T.useCallback(eA=>{var iA;Q||(I.value=eA),(iA=B.current)==null||iA.call(B,eA)},[I,Q]),E=T.useMemo(()=>Qg(void 0),[]),t=lV(C,E,e,g.multiline);t.tabIndex=g.tabIndex??0,t.disabled=g.disabled??!1;const n=T.useMemo(()=>Qg(document.activeElement===t),[]);T.useEffect(()=>{const eA=()=>n.value=document.activeElement===t;return t.addEventListener("focus",eA),t.addEventListener("blur",eA),()=>{t.removeEventListener("focus",eA),t.removeEventListener("blur",eA)}},[t,n]);const a=T.useCallback(eA=>{n.peek()!==eA&&(eA?t.focus():t.blur())},[n,t]),r=Ue(),l=T.useRef(null),D=gt(l);vi(r,D,qe);const G=Ye(r,D),h=At(),c=Qt(G),y=TQ(),S=It(y,c,D.size,D);Le(g,D.size),it(g,S);const k=xQ(g.panelMaterialClass,g),N=kB($C.Panel,g.zIndexOffset,k);Ct(r,c,D.size,void 0,D.borderInset,S,N,y,k,me);const M=T.useMemo(()=>Qg([]),[]),F=T.useMemo(()=>Qg(void 0),[]),q=sV(c,M,S,N,y);oV(r,c,F,S,N,y);const Z=uo(D.size,D,N,h),U=T.useRef(),K=OY(r,C,c,D,S,y,q,E,M,F,U),z=g.disabled??!1;Fe(r,g),fe(r,g),Re(r,g);const DA=Je(r,g,z?void 0:"text"),X=He(r,g);return EV(r,g,n),EQ(r,"measureFunc",K),Ne(r),T.useImperativeHandle(A,()=>({focus:()=>a(!0),value:C,borderInset:D.borderInset,paddingInset:D.paddingInset,pixelSize:D.pixelSize,center:D.relativeCenter,size:D.size,interactionPanel:Z}),[Z,D,C,a]),RA.jsx(Ke,{groupRef:l,matrix:G,handlers:g,inputHandlers:z?void 0:{onPointerDown:eA=>{var wA;if((wA=g.onPointerDown)==null||wA.call(g,eA),eA.defaultPrevented||eA.uv==null||U.current==null)return;rV(eA.nativeEvent),eA.stopPropagation();const iA=tK(D,eA.uv,U.current);i.current=iA,setTimeout(()=>{a(!0),E.value=[iA,iA],t.setSelectionRange(iA,iA)})},onPointerUp:eA=>{var iA;(iA=g.onPointerUp)==null||iA.call(g,eA),i.current=void 0},onPointerMove:eA=>{var gA;if((gA=g.onPointerMove)==null||gA.call(g,eA),i.current==null||eA.uv==null||U.current==null)return;eA.stopPropagation();const iA=tK(D,eA.uv,U.current),wA=Math.min(i.current,iA),v=Math.max(i.current,iA),CA=i.current{a(!0),E.value=[wA,v],t.setSelectionRange(wA,v,CA)})}},hoverHandlers:DA,activeHandlers:X,children:RA.jsx("primitive",{object:Z})})});function lV(g,A,I,C=!1){const B=T.useMemo(()=>{const i=document.createElement(C?"textarea":"input"),Q=i.style;Q.setProperty("position","absolute"),Q.setProperty("left","-1000vw"),Q.setProperty("pointerEvents","none"),Q.setProperty("opacity","0"),i.addEventListener("input",()=>{I==null||I(i.value),e()});const e=()=>{const{selectionStart:E,selectionEnd:t}=i;if(E==null||t==null){A.value=void 0;return}const n=A.peek();n!=null&&n[0]===E&&n[1]===t||(A.value=[E,t])};return i.addEventListener("keydown",e),i.addEventListener("keyup",e),i.addEventListener("blur",()=>A.value=void 0),document.body.appendChild(i),i},[I,A,C]);return QB(()=>{B.value=Yh(g)},[g]),T.useEffect(()=>()=>B.remove(),[B]),B}function tK({size:g,borderInset:A,paddingInset:I},C,B){const[i,Q]=g.peek(),[e,,,E]=A.peek(),[t,,,n]=I.peek(),a=C.x*i-E-n,r=-C.y*Q+e+t;return B.getCharIndex(a,r)}const cV=T.forwardRef((g,A)=>{const I=Cl(),C=g.pixelSize??GH,[B,i]=T.useMemo(()=>{const{width:t,height:n}=I.getState().size;return[Qg(t*C),Qg(n*C)]},[C,I]);T.useEffect(()=>{const t=n=>{yY(()=>{B.value=n.size.width*C,i.value=n.size.height*C})};return t(I.getState()),I.subscribe(t)},[C,B,i,I]);const Q=EB(t=>t.camera),e=T.useRef(null);FC(()=>{if(e.current==null)return;let t=1;Q instanceof pC&&(t=i.peek()/(2*Math.tan(Q.fov/360*Math.PI))),e.current.position.z=-t,e.current.updateMatrix()});const E=g.attachCamera??!0;return RA.jsxs(RA.Fragment,{children:[E&&RA.jsx("primitive",{object:Q}),Ow(RA.jsx("group",{ref:e,matrixAutoUpdate:!1,children:RA.jsx(MM,{ref:A,...g,sizeX:B,sizeY:i,children:g.children})}),Q)]})}),oK=new eI,DV=["color","opacity"],hV=new ks,yH=T.forwardRef((g,A)=>{const I=Ue(),C=T.useRef(null),B=gt(C);vi(I,B,qe);const i=Ye(I,B),Q=Qt(i),e=TQ(),E=It(e,Q,B.size,B),t=xQ(g.panelMaterialClass,g),n=kB($C.Panel,g.zIndexOffset,t);Ct(I,Q,B.size,void 0,B.borderInset,E,n,e,t,me);const a=At(),r=el(e,a),l=kB($C.Svg,void 0,void 0,n),D=T.useMemo(()=>{const k=new qB;k.matrixAutoUpdate=!1;const N=hV.parse(g.text);for(const M of N.paths){const F=ks.createShapes(M),q=new(g.materialClass??NC);q.transparent=!0,q.depthWrite=!1,q.toneMapped=!1,q.clippingPlanes=r;for(const Z of F){const U=new ws(Z);U.computeBoundingBox();const K=new cg(U,q);K.matrixAutoUpdate=!1,K.raycast=us(K,K.raycast,a,e,l),yo(K,B.cameraDistance,l),K.userData.color=M.color,K.scale.y=-1,K.updateMatrix(),k.add(K)}}return k},[g.text,g.materialClass,r,a,e,B,l]),G=oQ(I,DV);QB(()=>{const k=G.value;if(k==null)return;const N=k("color"),M=k("opacity");let F;Array.isArray(N)?F=oK.setRGB(...N):N!=null&&(F=oK.set(N)),D.traverse(q=>{if(!(q instanceof cg))return;q.receiveShadow=g.receiveShadow??!1,q.castShadow=g.castShadow??!1;const Z=q.material;Z.color.copy(F??q.userData.color),Z.opacity=M??1})},[D,g.color,g.receiveShadow,g.castShadow]);const h=El();ol(I,h,B,Q,E,g.scrollbarPanelMaterialClass,e,l),EQ(I,"width",g.svgWidth),EQ(I,"height",g.svgHeight),Fe(I,g),fe(I,g),Re(I,g);const c=Je(I,g),y=He(I,g);EQ(I,"aspectRatio",g.svgWidth/g.svgHeight),Ne(I),Le(g,B.size),it(g,E),QB(()=>{const k=g.svgWidth/g.svgHeight,[N,M,F]=qY(B.size,B.paddingInset,B.borderInset,B.pixelSize,g.svgWidth/g.svgHeight);D.position.set(N-F*k/2,M+F/2,0),D.scale.setScalar(F/g.svgHeight),D.updateMatrix()},[B,D,g.svgWidth,g.svgHeight]),QB(()=>void(D.visible=!E.value),[]);const S=uo(B.size,B,n,a);return Bt(A,B,S,h),RA.jsxs(Ke,{groupRef:C,matrix:i,handlers:g,hoverHandlers:c,activeHandlers:y,children:[RA.jsxs(tl,{listeners:g,node:B,scrollPosition:h,children:[RA.jsx("primitive",{object:S}),RA.jsx("primitive",{object:D})]}),RA.jsx(nl,{globalMatrix:Q,node:B,orderInfo:l,scrollPosition:h,children:g.children})]})});T.forwardRef(({children:g,resolution:A=1,frames:I=1/0,renderPriority:C=0,eventPriority:B=0,...i},Q)=>{const e=T.useMemo(()=>new MC(1,1,{minFilter:Sg,magFilter:Sg,type:iB}),[]),E=T.useRef(null),t=T.useMemo(()=>({events:{compute:wV.bind(null,E),priority:B},size:{width:1,height:1,left:0,top:0}}),[B]);T.useEffect(()=>{if(E.current==null)return;const{size:a}=E.current,r=Gg(()=>{const[l,D]=a.value;e.setSize(l,D),t.size.width=l,t.size.height=D});return()=>{r(),e.dispose()}},[e,t]),T.useImperativeHandle(Q,()=>E.current,[]);const n=T.useMemo(()=>new Eo,[]);return RA.jsxs(RA.Fragment,{children:[Ow(RA.jsxs(SV,{imageRef:E,renderPriority:C,frames:I,fbo:e,children:[g,RA.jsx("group",{onPointerOver:()=>null})]}),n,t),RA.jsx(SH,{...i,src:e.texture,fit:"fill",keepAspectRatio:!1,ref:E})]})});function wV({current:g},A,I,C){var Q,e,E;if(g==null||C==null)return!1;C.raycaster.camera||(E=(e=C.events).compute)==null||E.call(e,A,C,(Q=C.previousRoot)==null?void 0:Q.getState());const[B]=C.raycaster.intersectObject(g.interactionPanel);if(!B)return!1;const i=B.uv;if(!i)return!1;I.raycaster.setFromCamera(I.pointer.set(i.x*2-1,i.y*2-1),I.camera)}function SV({frames:g,renderPriority:A,children:I,fbo:C,imageRef:B}){const i=Cl();T.useEffect(()=>{if(B.current==null)return;const{size:t}=B.current;return Gg(()=>{const[n,a]=t.value;i.setState({size:{width:n,height:a,top:0,left:0}})})});let Q=0,e,E;return FC(t=>{(g===1/0||QRA.jsx(yH,{...g,ref:A,text:GV,svgWidth:24,svgHeight:24})),uV='',kV=T.forwardRef((g,A)=>RA.jsx(yH,{...g,ref:A,text:uV,svgWidth:24,svgHeight:24}));function eg(g,A,I){return new eI().setHSL(g/360,A/100,I/100,"srgb")}const AC=Bj({light:{background:eg(0,0,100),foreground:eg(222.2,84,4.9),card:eg(0,0,100),cardForeground:eg(222.2,84,4.9),popover:eg(0,0,100),popoverForeground:eg(222.2,84,4.9),primary:eg(222.2,47.4,11.2),primaryForeground:eg(210,40,98),secondary:eg(210,40,96.1),secondaryForeground:eg(222.2,47.4,11.2),muted:eg(210,40,96.1),mutedForeground:eg(215.4,16.3,46.9),accent:eg(210,40,96.1),accentForeground:eg(222.2,47.4,11.2),destructive:eg(0,72.22,50.59),destructiveForeground:eg(210,40,98),border:eg(214.3,31.8,91.4),input:eg(214.3,31.8,91.4),ring:eg(222.2,84,4.9)},dark:{background:eg(222.2,84,4.9),foreground:eg(210,40,98),card:eg(222.2,84,4.9),cardForeground:eg(210,40,98),popover:eg(222.2,84,4.9),popoverForeground:eg(210,40,98),primary:eg(210,40,98),primaryForeground:eg(222.2,47.4,11.2),secondary:eg(217.2,32.6,17.5),secondaryForeground:eg(210,40,98),muted:eg(217.2,32.6,17.5),mutedForeground:eg(215,20.2,65.1),accent:eg(217.2,32.6,17.5),accentForeground:eg(210,40,98),destructive:eg(0,62.8,30.6),destructiveForeground:eg(210,40,98),border:eg(217.2,32.6,17.5),input:eg(217.2,32.6,17.5),ring:eg(212.7,26.8,83.9)}});function uH(g){return RA.jsx(Ww,{scrollbarColor:AC.foreground,scrollbarBorderRadius:4,scrollbarOpacity:.3,borderColor:AC.border,color:AC.foreground,...g})}function n0(g){return RA.jsx(SH,{width:40,height:40,flexShrink:0,aspectRatio:1,fit:"cover",borderRadius:20,...g})}const dV={default:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:AC.primary},defaultProps:{color:AC.primaryForeground}},destructive:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:AC.destructive},defaultProps:{color:AC.destructiveForeground}},outline:{containerHoverProps:{backgroundColor:AC.accent},containerProps:{border:1,borderColor:AC.input,backgroundColor:AC.background}},secondary:{containerHoverProps:{backgroundOpacity:.8},containerProps:{backgroundColor:AC.secondary},defaultProps:{color:AC.secondaryForeground}},ghost:{containerHoverProps:{backgroundColor:AC.accent},defaultProps:{}},link:{containerProps:{},defaultProps:{color:AC.primary}}},MV={default:{height:40,paddingX:16,paddingY:8},sm:{height:36,paddingX:12},lg:{height:42,paddingX:32},icon:{height:40,width:40}};function kH({children:g,variant:A="default",size:I="default",disabled:C=!1,hover:B,...i}){const{containerProps:Q,defaultProps:e,containerHoverProps:E}=dV[A],t=MV[I];return RA.jsx(mC,{borderRadius:6,alignItems:"center",justifyContent:"center",...Q,...t,borderOpacity:C?.5:void 0,backgroundOpacity:C?.5:void 0,cursor:C?void 0:"pointer",flexDirection:"row",hover:{...E,...B},...i,children:RA.jsx(Ww,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",...e,opacity:C?.5:void 0,children:g})})}function pV(g){return RA.jsx(mC,{padding:24,flexDirection:"column",gap:6,...g})}function UV({children:g}){return RA.jsx(Ww,{fontWeight:"semi-bold",letterSpacing:-.4,fontSize:24,lineHeight:1,children:g})}function NV({children:g}){return RA.jsx(Ww,{fontSize:14,lineHeight:1.43,color:AC.mutedForeground,children:g})}function FV(g){return RA.jsx(mC,{padding:24,paddingTop:0,...g})}function fV(g){return RA.jsx(mC,{flexDirection:"row",alignItems:"center",padding:24,paddingTop:0,...g})}function RV({defaultChecked:g,checked:A,disabled:I=!1,onCheckedChange:C,...B}){const[i,Q]=T.useState(g??!1),e=A??i;return RA.jsx(mC,{height:24,width:44,flexShrink:0,flexDirection:"row",padding:2,alignItems:"center",backgroundOpacity:I?.5:void 0,borderRadius:1e3,backgroundColor:e?AC.primary:AC.input,cursor:I?void 0:"pointer",onClick:I?void 0:()=>{A==null&&Q(!e),C==null||C(!e)},...B,children:RA.jsx(mC,{width:20,height:20,borderRadius:1e3,transformTranslateX:e?20:0,backgroundColor:AC.background})})}let p;const wg=new Array(128).fill(void 0);wg.push(void 0,null,!0,!1);let Xa=wg.length;function dC(g){Xa===wg.length&&wg.push(wg.length+1);const A=Xa;return Xa=wg[A],wg[A]=g,A}function Ng(g){return wg[g]}function Rr(g){const A=Ng(g);return function(I){I<132||(wg[I]=Xa,Xa=I)}(g),A}function dI(g){return g==null}let Fa=null;function Kr(){return Fa!==null&&Fa.byteLength!==0||(Fa=new Float64Array(p.memory.buffer)),Fa}let fa=null;function ZI(){return fa!==null&&fa.byteLength!==0||(fa=new Int32Array(p.memory.buffer)),fa}const dH=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&dH.decode();let Ra=null;function MH(g,A){return g>>>=0,dH.decode((Ra!==null&&Ra.byteLength!==0||(Ra=new Uint8Array(p.memory.buffer)),Ra).subarray(g,g+A))}function rA(g,A){if(!(g instanceof A))throw new Error(`expected instance of ${A.name}`);return g.ptr}let Ka=null;function bg(){return Ka!==null&&Ka.byteLength!==0||(Ka=new Float32Array(p.memory.buffer)),Ka}let mg=128;function Xg(g){if(mg==1)throw new Error("out of js stack");return wg[--mg]=g,mg}function nK(g,A){return g>>>=0,bg().subarray(g/4,g/4+A)}let Ja=null;function pH(){return Ja!==null&&Ja.byteLength!==0||(Ja=new Uint32Array(p.memory.buffer)),Ja}let ii=0;function ft(g,A){const I=A(4*g.length,4)>>>0;return bg().set(g,I/4),ii=g.length,I}function ND(g,A){const I=A(4*g.length,4)>>>0;return pH().set(g,I/4),ii=g.length,I}function s0(g,A){try{return g.apply(this,A)}catch(I){p.__wbindgen_exn_store(dC(I))}}const IB=Object.freeze({Ball:0,0:"Ball",Cuboid:1,1:"Cuboid",Capsule:2,2:"Capsule",Segment:3,3:"Segment",Polyline:4,4:"Polyline",Triangle:5,5:"Triangle",TriMesh:6,6:"TriMesh",HeightField:7,7:"HeightField",Compound:8,8:"Compound",ConvexPolyhedron:9,9:"ConvexPolyhedron",Cylinder:10,10:"Cylinder",Cone:11,11:"Cone",RoundCuboid:12,12:"RoundCuboid",RoundTriangle:13,13:"RoundTriangle",RoundCylinder:14,14:"RoundCylinder",RoundCone:15,15:"RoundCone",RoundConvexPolyhedron:16,16:"RoundConvexPolyhedron",HalfSpace:17,17:"HalfSpace"}),Vw=Object.freeze({X:0,0:"X",Y:1,1:"Y",Z:2,2:"Z",AngX:3,3:"AngX",AngY:4,4:"AngY",AngZ:5,5:"AngZ"}),IQ=Object.freeze({Revolute:0,0:"Revolute",Fixed:1,1:"Fixed",Prismatic:2,2:"Prismatic",Rope:3,3:"Rope",Spring:4,4:"Spring",Spherical:5,5:"Spherical",Generic:6,6:"Generic"});class oo{static __wrap(A){A>>>=0;const I=Object.create(oo.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawbroadphase_free(A)}constructor(){const A=p.rawbroadphase_new();return this.__wbg_ptr=A>>>0,this}}class Gk{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawccdsolver_free(A)}constructor(){const A=p.rawccdsolver_new();return this.__wbg_ptr=A>>>0,this}}class UH{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawcharactercollision_free(A)}constructor(){const A=p.rawcharactercollision_new();return this.__wbg_ptr=A>>>0,this}handle(){return p.rawcharactercollision_handle(this.__wbg_ptr)}translationDeltaApplied(){const A=p.rawcharactercollision_translationDeltaApplied(this.__wbg_ptr);return kA.__wrap(A)}translationDeltaRemaining(){const A=p.rawcharactercollision_translationDeltaRemaining(this.__wbg_ptr);return kA.__wrap(A)}toi(){return p.rawcharactercollision_toi(this.__wbg_ptr)}worldWitness1(){const A=p.rawcharactercollision_worldWitness1(this.__wbg_ptr);return kA.__wrap(A)}worldWitness2(){const A=p.rawcharactercollision_worldWitness2(this.__wbg_ptr);return kA.__wrap(A)}worldNormal1(){const A=p.rawcharactercollision_worldNormal1(this.__wbg_ptr);return kA.__wrap(A)}worldNormal2(){const A=p.rawcharactercollision_worldNormal2(this.__wbg_ptr);return kA.__wrap(A)}}class IC{static __wrap(A){A>>>=0;const I=Object.create(IC.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawcolliderset_free(A)}coTranslation(A){const I=p.rawcolliderset_coTranslation(this.__wbg_ptr,A);return kA.__wrap(I)}coRotation(A){const I=p.rawcolliderset_coRotation(this.__wbg_ptr,A);return tg.__wrap(I)}coSetTranslation(A,I,C,B){p.rawcolliderset_coSetTranslation(this.__wbg_ptr,A,I,C,B)}coSetTranslationWrtParent(A,I,C,B){p.rawcolliderset_coSetTranslationWrtParent(this.__wbg_ptr,A,I,C,B)}coSetRotation(A,I,C,B,i){p.rawcolliderset_coSetRotation(this.__wbg_ptr,A,I,C,B,i)}coSetRotationWrtParent(A,I,C,B,i){p.rawcolliderset_coSetRotationWrtParent(this.__wbg_ptr,A,I,C,B,i)}coIsSensor(A){return p.rawcolliderset_coIsSensor(this.__wbg_ptr,A)!==0}coShapeType(A){return p.rawcolliderset_coShapeType(this.__wbg_ptr,A)}coHalfspaceNormal(A){const I=p.rawcolliderset_coHalfspaceNormal(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}coHalfExtents(A){const I=p.rawcolliderset_coHalfExtents(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}coSetHalfExtents(A,I){rA(I,kA),p.rawcolliderset_coSetHalfExtents(this.__wbg_ptr,A,I.__wbg_ptr)}coRadius(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coRadius(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}coSetRadius(A,I){p.rawcolliderset_coSetRadius(this.__wbg_ptr,A,I)}coHalfHeight(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coHalfHeight(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}coSetHalfHeight(A,I){p.rawcolliderset_coSetHalfHeight(this.__wbg_ptr,A,I)}coRoundRadius(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coRoundRadius(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}coSetRoundRadius(A,I){p.rawcolliderset_coSetRoundRadius(this.__wbg_ptr,A,I)}coVertices(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coVertices(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=ZI()[B/4+1];let i;return I!==0&&(i=nK(I,C).slice(),p.__wbindgen_free(I,4*C,4)),i}finally{p.__wbindgen_add_to_stack_pointer(16)}}coIndices(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coIndices(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=ZI()[B/4+1];let i;return I!==0&&(i=function(Q,e){return Q>>>=0,pH().subarray(Q/4,Q/4+e)}(I,C).slice(),p.__wbindgen_free(I,4*C,4)),i}finally{p.__wbindgen_add_to_stack_pointer(16)}}coHeightfieldHeights(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coHeightfieldHeights(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=ZI()[B/4+1];let i;return I!==0&&(i=nK(I,C).slice(),p.__wbindgen_free(I,4*C,4)),i}finally{p.__wbindgen_add_to_stack_pointer(16)}}coHeightfieldScale(A){const I=p.rawcolliderset_coHeightfieldScale(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}coHeightfieldNRows(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coHeightfieldNRows(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=ZI()[B/4+1];return I===0?void 0:C>>>0}finally{p.__wbindgen_add_to_stack_pointer(16)}}coHeightfieldNCols(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coHeightfieldNCols(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=ZI()[B/4+1];return I===0?void 0:C>>>0}finally{p.__wbindgen_add_to_stack_pointer(16)}}coParent(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coParent(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=Kr()[B/8+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}coSetEnabled(A,I){p.rawcolliderset_coSetEnabled(this.__wbg_ptr,A,I)}coIsEnabled(A){return p.rawcolliderset_coIsEnabled(this.__wbg_ptr,A)!==0}coFriction(A){return p.rawcolliderset_coFriction(this.__wbg_ptr,A)}coRestitution(A){return p.rawcolliderset_coRestitution(this.__wbg_ptr,A)}coDensity(A){return p.rawcolliderset_coDensity(this.__wbg_ptr,A)}coMass(A){return p.rawcolliderset_coMass(this.__wbg_ptr,A)}coVolume(A){return p.rawcolliderset_coVolume(this.__wbg_ptr,A)}coCollisionGroups(A){return p.rawcolliderset_coCollisionGroups(this.__wbg_ptr,A)>>>0}coSolverGroups(A){return p.rawcolliderset_coSolverGroups(this.__wbg_ptr,A)>>>0}coActiveHooks(A){return p.rawcolliderset_coActiveHooks(this.__wbg_ptr,A)>>>0}coActiveCollisionTypes(A){return p.rawcolliderset_coActiveCollisionTypes(this.__wbg_ptr,A)}coActiveEvents(A){return p.rawcolliderset_coActiveEvents(this.__wbg_ptr,A)>>>0}coContactForceEventThreshold(A){return p.rawcolliderset_coContactForceEventThreshold(this.__wbg_ptr,A)}coContainsPoint(A,I){return rA(I,kA),p.rawcolliderset_coContainsPoint(this.__wbg_ptr,A,I.__wbg_ptr)!==0}coCastShape(A,I,C,B,i,Q,e,E){rA(I,kA),rA(C,vI),rA(B,kA),rA(i,tg),rA(Q,kA);const t=p.rawcolliderset_coCastShape(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e,E);return t===0?void 0:IS.__wrap(t)}coCastCollider(A,I,C,B,i,Q){rA(I,kA),rA(B,kA);const e=p.rawcolliderset_coCastCollider(this.__wbg_ptr,A,I.__wbg_ptr,C,B.__wbg_ptr,i,Q);return e===0?void 0:AS.__wrap(e)}coIntersectsShape(A,I,C,B){return rA(I,vI),rA(C,kA),rA(B,tg),p.rawcolliderset_coIntersectsShape(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr)!==0}coContactShape(A,I,C,B,i){rA(I,vI),rA(C,kA),rA(B,tg);const Q=p.rawcolliderset_coContactShape(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i);return Q===0?void 0:Jr.__wrap(Q)}coContactCollider(A,I,C){const B=p.rawcolliderset_coContactCollider(this.__wbg_ptr,A,I,C);return B===0?void 0:Jr.__wrap(B)}coProjectPoint(A,I,C){rA(I,kA);const B=p.rawcolliderset_coProjectPoint(this.__wbg_ptr,A,I.__wbg_ptr,C);return Xw.__wrap(B)}coIntersectsRay(A,I,C,B){return rA(I,kA),rA(C,kA),p.rawcolliderset_coIntersectsRay(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B)!==0}coCastRay(A,I,C,B,i){return rA(I,kA),rA(C,kA),p.rawcolliderset_coCastRay(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B,i)}coCastRayAndGetNormal(A,I,C,B,i){rA(I,kA),rA(C,kA);const Q=p.rawcolliderset_coCastRayAndGetNormal(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B,i);return Q===0?void 0:$w.__wrap(Q)}coSetSensor(A,I){p.rawcolliderset_coSetSensor(this.__wbg_ptr,A,I)}coSetRestitution(A,I){p.rawcolliderset_coSetRestitution(this.__wbg_ptr,A,I)}coSetFriction(A,I){p.rawcolliderset_coSetFriction(this.__wbg_ptr,A,I)}coFrictionCombineRule(A){return p.rawcolliderset_coFrictionCombineRule(this.__wbg_ptr,A)>>>0}coSetFrictionCombineRule(A,I){p.rawcolliderset_coSetFrictionCombineRule(this.__wbg_ptr,A,I)}coRestitutionCombineRule(A){return p.rawcolliderset_coRestitutionCombineRule(this.__wbg_ptr,A)>>>0}coSetRestitutionCombineRule(A,I){p.rawcolliderset_coSetRestitutionCombineRule(this.__wbg_ptr,A,I)}coSetCollisionGroups(A,I){p.rawcolliderset_coSetCollisionGroups(this.__wbg_ptr,A,I)}coSetSolverGroups(A,I){p.rawcolliderset_coSetSolverGroups(this.__wbg_ptr,A,I)}coSetActiveHooks(A,I){p.rawcolliderset_coSetActiveHooks(this.__wbg_ptr,A,I)}coSetActiveEvents(A,I){p.rawcolliderset_coSetActiveEvents(this.__wbg_ptr,A,I)}coSetActiveCollisionTypes(A,I){p.rawcolliderset_coSetActiveCollisionTypes(this.__wbg_ptr,A,I)}coSetShape(A,I){rA(I,vI),p.rawcolliderset_coSetShape(this.__wbg_ptr,A,I.__wbg_ptr)}coSetContactForceEventThreshold(A,I){p.rawcolliderset_coSetContactForceEventThreshold(this.__wbg_ptr,A,I)}coSetDensity(A,I){p.rawcolliderset_coSetDensity(this.__wbg_ptr,A,I)}coSetMass(A,I){p.rawcolliderset_coSetMass(this.__wbg_ptr,A,I)}coSetMassProperties(A,I,C,B,i){rA(C,kA),rA(B,kA),rA(i,tg),p.rawcolliderset_coSetMassProperties(this.__wbg_ptr,A,I,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr)}constructor(){const A=p.rawcolliderset_new();return this.__wbg_ptr=A>>>0,this}len(){return p.rawcolliderset_len(this.__wbg_ptr)>>>0}contains(A){return p.rawcolliderset_contains(this.__wbg_ptr,A)!==0}createCollider(A,I,C,B,i,Q,e,E,t,n,a,r,l,D,G,h,c,y,S,k,N,M,F,q){try{const K=p.__wbindgen_add_to_stack_pointer(-16);rA(I,vI),rA(C,kA),rA(B,tg),rA(e,kA),rA(E,kA),rA(t,tg),rA(q,tC),p.rawcolliderset_createCollider(K,this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q,e.__wbg_ptr,E.__wbg_ptr,t.__wbg_ptr,n,a,r,l,D,G,h,c,y,S,k,N,M,F,q.__wbg_ptr);var Z=ZI()[K/4+0],U=Kr()[K/8+1];return Z===0?void 0:U}finally{p.__wbindgen_add_to_stack_pointer(16)}}remove(A,I,C,B){rA(I,ye),rA(C,tC),p.rawcolliderset_remove(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B)}isHandleValid(A){return p.rawcolliderset_contains(this.__wbg_ptr,A)!==0}forEachColliderHandle(A){try{p.rawcolliderset_forEachColliderHandle(this.__wbg_ptr,Xg(A))}finally{wg[mg++]=void 0}}}class pM{static __wrap(A){A>>>=0;const I=Object.create(pM.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawcontactforceevent_free(A)}collider1(){return p.rawcharactercollision_handle(this.__wbg_ptr)}collider2(){return p.rawcontactforceevent_collider2(this.__wbg_ptr)}total_force(){const A=p.rawcontactforceevent_total_force(this.__wbg_ptr);return kA.__wrap(A)}total_force_magnitude(){return p.rawcontactforceevent_total_force_magnitude(this.__wbg_ptr)}max_force_direction(){const A=p.rawcontactforceevent_max_force_direction(this.__wbg_ptr);return kA.__wrap(A)}max_force_magnitude(){return p.rawcontactforceevent_max_force_magnitude(this.__wbg_ptr)}}class UM{static __wrap(A){A>>>=0;const I=Object.create(UM.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawcontactmanifold_free(A)}normal(){const A=p.rawcontactmanifold_normal(this.__wbg_ptr);return kA.__wrap(A)}local_n1(){const A=p.rawcontactmanifold_local_n1(this.__wbg_ptr);return kA.__wrap(A)}local_n2(){const A=p.rawcontactmanifold_local_n2(this.__wbg_ptr);return kA.__wrap(A)}subshape1(){return p.rawcontactmanifold_subshape1(this.__wbg_ptr)>>>0}subshape2(){return p.rawcontactmanifold_subshape2(this.__wbg_ptr)>>>0}num_contacts(){return p.rawcontactmanifold_num_contacts(this.__wbg_ptr)>>>0}contact_local_p1(A){const I=p.rawcontactmanifold_contact_local_p1(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}contact_local_p2(A){const I=p.rawcontactmanifold_contact_local_p2(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}contact_dist(A){return p.rawcontactmanifold_contact_dist(this.__wbg_ptr,A)}contact_fid1(A){return p.rawcontactmanifold_contact_fid1(this.__wbg_ptr,A)>>>0}contact_fid2(A){return p.rawcontactmanifold_contact_fid2(this.__wbg_ptr,A)>>>0}contact_impulse(A){return p.rawcontactmanifold_contact_impulse(this.__wbg_ptr,A)}contact_tangent_impulse_x(A){return p.rawcontactmanifold_contact_tangent_impulse_x(this.__wbg_ptr,A)}contact_tangent_impulse_y(A){return p.rawcontactmanifold_contact_tangent_impulse_y(this.__wbg_ptr,A)}num_solver_contacts(){return p.rawcontactmanifold_num_solver_contacts(this.__wbg_ptr)>>>0}solver_contact_point(A){const I=p.rawcontactmanifold_solver_contact_point(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}solver_contact_dist(A){return p.rawcontactmanifold_solver_contact_dist(this.__wbg_ptr,A)}solver_contact_friction(A){return p.rawcontactmanifold_solver_contact_friction(this.__wbg_ptr,A)}solver_contact_restitution(A){return p.rawcontactmanifold_solver_contact_restitution(this.__wbg_ptr,A)}solver_contact_tangent_velocity(A){const I=p.rawcontactmanifold_solver_contact_tangent_velocity(this.__wbg_ptr,A);return kA.__wrap(I)}}class NM{static __wrap(A){A>>>=0;const I=Object.create(NM.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawcontactpair_free(A)}collider1(){return p.rawcontactpair_collider1(this.__wbg_ptr)}collider2(){return p.rawcontactpair_collider2(this.__wbg_ptr)}numContactManifolds(){return p.rawcontactpair_numContactManifolds(this.__wbg_ptr)>>>0}contactManifold(A){const I=p.rawcontactpair_contactManifold(this.__wbg_ptr,A);return I===0?void 0:UM.__wrap(I)}}class KV{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawdebugrenderpipeline_free(A)}constructor(){const A=p.rawdebugrenderpipeline_new();return this.__wbg_ptr=A>>>0,this}vertices(){return Rr(p.rawdebugrenderpipeline_vertices(this.__wbg_ptr))}colors(){return Rr(p.rawdebugrenderpipeline_colors(this.__wbg_ptr))}render(A,I,C,B,i){rA(A,tC),rA(I,IC),rA(C,Ge),rA(B,ue),rA(i,OE),p.rawdebugrenderpipeline_render(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr)}}class FM{static __wrap(A){A>>>=0;const I=Object.create(FM.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawdeserializedworld_free(A)}takeGravity(){const A=p.rawdeserializedworld_takeGravity(this.__wbg_ptr);return A===0?void 0:kA.__wrap(A)}takeIntegrationParameters(){const A=p.rawdeserializedworld_takeIntegrationParameters(this.__wbg_ptr);return A===0?void 0:no.__wrap(A)}takeIslandManager(){const A=p.rawdeserializedworld_takeIslandManager(this.__wbg_ptr);return A===0?void 0:ye.__wrap(A)}takeBroadPhase(){const A=p.rawdeserializedworld_takeBroadPhase(this.__wbg_ptr);return A===0?void 0:oo.__wrap(A)}takeNarrowPhase(){const A=p.rawdeserializedworld_takeNarrowPhase(this.__wbg_ptr);return A===0?void 0:OE.__wrap(A)}takeBodies(){const A=p.rawdeserializedworld_takeBodies(this.__wbg_ptr);return A===0?void 0:tC.__wrap(A)}takeColliders(){const A=p.rawdeserializedworld_takeColliders(this.__wbg_ptr);return A===0?void 0:IC.__wrap(A)}takeImpulseJoints(){const A=p.rawdeserializedworld_takeImpulseJoints(this.__wbg_ptr);return A===0?void 0:Ge.__wrap(A)}takeMultibodyJoints(){const A=p.rawdeserializedworld_takeMultibodyJoints(this.__wbg_ptr);return A===0?void 0:ue.__wrap(A)}}class JV{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawdynamicraycastvehiclecontroller_free(A)}constructor(A){const I=p.rawdynamicraycastvehiclecontroller_new(A);return this.__wbg_ptr=I>>>0,this}current_vehicle_speed(){return p.rawdynamicraycastvehiclecontroller_current_vehicle_speed(this.__wbg_ptr)}chassis(){return p.rawdynamicraycastvehiclecontroller_chassis(this.__wbg_ptr)}index_up_axis(){return p.rawdynamicraycastvehiclecontroller_index_up_axis(this.__wbg_ptr)>>>0}set_index_up_axis(A){p.rawdynamicraycastvehiclecontroller_set_index_up_axis(this.__wbg_ptr,A)}index_forward_axis(){return p.rawdynamicraycastvehiclecontroller_index_forward_axis(this.__wbg_ptr)>>>0}set_index_forward_axis(A){p.rawdynamicraycastvehiclecontroller_set_index_forward_axis(this.__wbg_ptr,A)}add_wheel(A,I,C,B,i){rA(A,kA),rA(I,kA),rA(C,kA),p.rawdynamicraycastvehiclecontroller_add_wheel(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B,i)}num_wheels(){return p.rawdynamicraycastvehiclecontroller_num_wheels(this.__wbg_ptr)>>>0}update_vehicle(A,I,C,B,i,Q,e){try{rA(I,tC),rA(C,IC),rA(B,fM),p.rawdynamicraycastvehiclecontroller_update_vehicle(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,!dI(Q),dI(Q)?0:Q,Xg(e))}finally{wg[mg++]=void 0}}wheel_chassis_connection_point_cs(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_chassis_connection_point_cs(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}set_wheel_chassis_connection_point_cs(A,I){rA(I,kA),p.rawdynamicraycastvehiclecontroller_set_wheel_chassis_connection_point_cs(this.__wbg_ptr,A,I.__wbg_ptr)}wheel_suspension_rest_length(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_rest_length(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_suspension_rest_length(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_suspension_rest_length(this.__wbg_ptr,A,I)}wheel_max_suspension_travel(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_max_suspension_travel(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_max_suspension_travel(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_max_suspension_travel(this.__wbg_ptr,A,I)}wheel_radius(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_radius(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_radius(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_radius(this.__wbg_ptr,A,I)}wheel_suspension_stiffness(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_stiffness(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_suspension_stiffness(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_suspension_stiffness(this.__wbg_ptr,A,I)}wheel_suspension_compression(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_compression(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_suspension_compression(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_suspension_compression(this.__wbg_ptr,A,I)}wheel_suspension_relaxation(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_relaxation(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_suspension_relaxation(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_suspension_relaxation(this.__wbg_ptr,A,I)}wheel_max_suspension_force(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_max_suspension_force(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_max_suspension_force(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_max_suspension_force(this.__wbg_ptr,A,I)}wheel_brake(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_brake(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_brake(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_brake(this.__wbg_ptr,A,I)}wheel_steering(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_steering(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_steering(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_steering(this.__wbg_ptr,A,I)}wheel_engine_force(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_engine_force(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_engine_force(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_engine_force(this.__wbg_ptr,A,I)}wheel_direction_cs(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_direction_cs(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}set_wheel_direction_cs(A,I){rA(I,kA),p.rawdynamicraycastvehiclecontroller_set_wheel_direction_cs(this.__wbg_ptr,A,I.__wbg_ptr)}wheel_axle_cs(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_axle_cs(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}set_wheel_axle_cs(A,I){rA(I,kA),p.rawdynamicraycastvehiclecontroller_set_wheel_axle_cs(this.__wbg_ptr,A,I.__wbg_ptr)}wheel_friction_slip(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_friction_slip(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_friction_slip(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_friction_slip(this.__wbg_ptr,A,I)}wheel_side_friction_stiffness(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_side_friction_stiffness(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_side_friction_stiffness(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_side_friction_stiffness(this.__wbg_ptr,A,I)}wheel_rotation(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_rotation(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}wheel_forward_impulse(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_forward_impulse(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}wheel_side_impulse(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_side_impulse(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}wheel_suspension_force(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_force(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}wheel_contact_normal_ws(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_contact_normal_ws(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}wheel_contact_point_ws(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_contact_point_ws(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}wheel_suspension_length(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_length(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}wheel_hard_point_ws(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_hard_point_ws(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}wheel_is_in_contact(A){return p.rawdynamicraycastvehiclecontroller_wheel_is_in_contact(this.__wbg_ptr,A)!==0}wheel_ground_object(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_ground_object(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=Kr()[B/8+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}}class NH{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_raweventqueue_free(A)}constructor(A){const I=p.raweventqueue_new(A);return this.__wbg_ptr=I>>>0,this}drainCollisionEvents(A){try{p.raweventqueue_drainCollisionEvents(this.__wbg_ptr,Xg(A))}finally{wg[mg++]=void 0}}drainContactForceEvents(A){try{p.raweventqueue_drainContactForceEvents(this.__wbg_ptr,Xg(A))}finally{wg[mg++]=void 0}}clear(){p.raweventqueue_clear(this.__wbg_ptr)}}class VC{static __wrap(A){A>>>=0;const I=Object.create(VC.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawgenericjoint_free(A)}static generic(A,I,C,B){rA(A,kA),rA(I,kA),rA(C,kA);const i=p.rawgenericjoint_generic(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B);return i===0?void 0:VC.__wrap(i)}static spring(A,I,C,B,i){rA(B,kA),rA(i,kA);const Q=p.rawgenericjoint_spring(A,I,C,B.__wbg_ptr,i.__wbg_ptr);return VC.__wrap(Q)}static rope(A,I,C){rA(I,kA),rA(C,kA);const B=p.rawgenericjoint_rope(A,I.__wbg_ptr,C.__wbg_ptr);return VC.__wrap(B)}static spherical(A,I){rA(A,kA),rA(I,kA);const C=p.rawgenericjoint_spherical(A.__wbg_ptr,I.__wbg_ptr);return VC.__wrap(C)}static prismatic(A,I,C,B,i,Q){rA(A,kA),rA(I,kA),rA(C,kA);const e=p.rawgenericjoint_prismatic(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B,i,Q);return e===0?void 0:VC.__wrap(e)}static fixed(A,I,C,B){rA(A,kA),rA(I,tg),rA(C,kA),rA(B,tg);const i=p.rawgenericjoint_fixed(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr);return VC.__wrap(i)}static revolute(A,I,C){rA(A,kA),rA(I,kA),rA(C,kA);const B=p.rawgenericjoint_revolute(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr);return B===0?void 0:VC.__wrap(B)}}class Ge{static __wrap(A){A>>>=0;const I=Object.create(Ge.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawimpulsejointset_free(A)}jointType(A){return p.rawimpulsejointset_jointType(this.__wbg_ptr,A)}jointBodyHandle1(A){return p.rawimpulsejointset_jointBodyHandle1(this.__wbg_ptr,A)}jointBodyHandle2(A){return p.rawimpulsejointset_jointBodyHandle2(this.__wbg_ptr,A)}jointFrameX1(A){const I=p.rawimpulsejointset_jointFrameX1(this.__wbg_ptr,A);return tg.__wrap(I)}jointFrameX2(A){const I=p.rawimpulsejointset_jointFrameX2(this.__wbg_ptr,A);return tg.__wrap(I)}jointAnchor1(A){const I=p.rawimpulsejointset_jointAnchor1(this.__wbg_ptr,A);return kA.__wrap(I)}jointAnchor2(A){const I=p.rawimpulsejointset_jointAnchor2(this.__wbg_ptr,A);return kA.__wrap(I)}jointSetAnchor1(A,I){rA(I,kA),p.rawimpulsejointset_jointSetAnchor1(this.__wbg_ptr,A,I.__wbg_ptr)}jointSetAnchor2(A,I){rA(I,kA),p.rawimpulsejointset_jointSetAnchor2(this.__wbg_ptr,A,I.__wbg_ptr)}jointContactsEnabled(A){return p.rawimpulsejointset_jointContactsEnabled(this.__wbg_ptr,A)!==0}jointSetContactsEnabled(A,I){p.rawimpulsejointset_jointSetContactsEnabled(this.__wbg_ptr,A,I)}jointLimitsEnabled(A,I){return p.rawimpulsejointset_jointLimitsEnabled(this.__wbg_ptr,A,I)!==0}jointLimitsMin(A,I){return p.rawimpulsejointset_jointLimitsMin(this.__wbg_ptr,A,I)}jointLimitsMax(A,I){return p.rawimpulsejointset_jointLimitsMax(this.__wbg_ptr,A,I)}jointSetLimits(A,I,C,B){p.rawimpulsejointset_jointSetLimits(this.__wbg_ptr,A,I,C,B)}jointConfigureMotorModel(A,I,C){p.rawimpulsejointset_jointConfigureMotorModel(this.__wbg_ptr,A,I,C)}jointConfigureMotorVelocity(A,I,C,B){p.rawimpulsejointset_jointConfigureMotorVelocity(this.__wbg_ptr,A,I,C,B)}jointConfigureMotorPosition(A,I,C,B,i){p.rawimpulsejointset_jointConfigureMotorPosition(this.__wbg_ptr,A,I,C,B,i)}jointConfigureMotor(A,I,C,B,i,Q){p.rawimpulsejointset_jointConfigureMotor(this.__wbg_ptr,A,I,C,B,i,Q)}constructor(){const A=p.rawimpulsejointset_new();return this.__wbg_ptr=A>>>0,this}createJoint(A,I,C,B){return rA(A,VC),p.rawimpulsejointset_createJoint(this.__wbg_ptr,A.__wbg_ptr,I,C,B)}remove(A,I){p.rawimpulsejointset_remove(this.__wbg_ptr,A,I)}len(){return p.rawimpulsejointset_len(this.__wbg_ptr)>>>0}contains(A){return p.rawimpulsejointset_contains(this.__wbg_ptr,A)!==0}forEachJointHandle(A){try{p.rawimpulsejointset_forEachJointHandle(this.__wbg_ptr,Xg(A))}finally{wg[mg++]=void 0}}forEachJointAttachedToRigidBody(A,I){try{p.rawimpulsejointset_forEachJointAttachedToRigidBody(this.__wbg_ptr,A,Xg(I))}finally{wg[mg++]=void 0}}}class no{static __wrap(A){A>>>=0;const I=Object.create(no.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawintegrationparameters_free(A)}constructor(){const A=p.rawintegrationparameters_new();return this.__wbg_ptr=A>>>0,this}get dt(){return p.rawintegrationparameters_dt(this.__wbg_ptr)}get erp(){return p.rawintegrationparameters_erp(this.__wbg_ptr)}get allowedLinearError(){return p.rawcontactforceevent_total_force_magnitude(this.__wbg_ptr)}get predictionDistance(){return p.rawdynamicraycastvehiclecontroller_current_vehicle_speed(this.__wbg_ptr)}get numSolverIterations(){return p.rawintegrationparameters_numSolverIterations(this.__wbg_ptr)>>>0}get numAdditionalFrictionIterations(){return p.rawintegrationparameters_numAdditionalFrictionIterations(this.__wbg_ptr)>>>0}get numInternalPgsIterations(){return p.rawintegrationparameters_numInternalPgsIterations(this.__wbg_ptr)>>>0}get minIslandSize(){return p.rawdynamicraycastvehiclecontroller_index_up_axis(this.__wbg_ptr)>>>0}get maxCcdSubsteps(){return p.rawdynamicraycastvehiclecontroller_index_forward_axis(this.__wbg_ptr)>>>0}set dt(A){p.rawintegrationparameters_set_dt(this.__wbg_ptr,A)}set erp(A){p.rawintegrationparameters_set_erp(this.__wbg_ptr,A)}set allowedLinearError(A){p.rawintegrationparameters_set_allowedLinearError(this.__wbg_ptr,A)}set predictionDistance(A){p.rawintegrationparameters_set_predictionDistance(this.__wbg_ptr,A)}set numSolverIterations(A){p.rawintegrationparameters_set_numSolverIterations(this.__wbg_ptr,A)}set numAdditionalFrictionIterations(A){p.rawintegrationparameters_set_numAdditionalFrictionIterations(this.__wbg_ptr,A)}set numInternalPgsIterations(A){p.rawintegrationparameters_set_numInternalPgsIterations(this.__wbg_ptr,A)}set minIslandSize(A){p.rawdynamicraycastvehiclecontroller_set_index_up_axis(this.__wbg_ptr,A)}set maxCcdSubsteps(A){p.rawdynamicraycastvehiclecontroller_set_index_forward_axis(this.__wbg_ptr,A)}switchToStandardPgsSolver(){p.rawintegrationparameters_switchToStandardPgsSolver(this.__wbg_ptr)}switchToSmallStepsPgsSolver(){p.rawintegrationparameters_switchToSmallStepsPgsSolver(this.__wbg_ptr)}}class ye{static __wrap(A){A>>>=0;const I=Object.create(ye.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawislandmanager_free(A)}constructor(){const A=p.rawislandmanager_new();return this.__wbg_ptr=A>>>0,this}forEachActiveRigidBodyHandle(A){try{p.rawislandmanager_forEachActiveRigidBodyHandle(this.__wbg_ptr,Xg(A))}finally{wg[mg++]=void 0}}}class qV{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawkinematiccharactercontroller_free(A)}constructor(A){const I=p.rawkinematiccharactercontroller_new(A);return this.__wbg_ptr=I>>>0,this}up(){const A=p.rawcharactercollision_translationDeltaApplied(this.__wbg_ptr);return kA.__wrap(A)}setUp(A){rA(A,kA),p.rawkinematiccharactercontroller_setUp(this.__wbg_ptr,A.__wbg_ptr)}offset(){return p.rawintegrationparameters_dt(this.__wbg_ptr)}setOffset(A){p.rawkinematiccharactercontroller_setOffset(this.__wbg_ptr,A)}slideEnabled(){return p.rawkinematiccharactercontroller_slideEnabled(this.__wbg_ptr)!==0}setSlideEnabled(A){p.rawkinematiccharactercontroller_setSlideEnabled(this.__wbg_ptr,A)}autostepMaxHeight(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawkinematiccharactercontroller_autostepMaxHeight(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=bg()[C/4+1];return A===0?void 0:I}finally{p.__wbindgen_add_to_stack_pointer(16)}}autostepMinWidth(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawkinematiccharactercontroller_autostepMinWidth(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=bg()[C/4+1];return A===0?void 0:I}finally{p.__wbindgen_add_to_stack_pointer(16)}}autostepIncludesDynamicBodies(){const A=p.rawkinematiccharactercontroller_autostepIncludesDynamicBodies(this.__wbg_ptr);return A===16777215?void 0:A!==0}autostepEnabled(){return p.rawkinematiccharactercontroller_autostepEnabled(this.__wbg_ptr)!==0}enableAutostep(A,I,C){p.rawkinematiccharactercontroller_enableAutostep(this.__wbg_ptr,A,I,C)}disableAutostep(){p.rawkinematiccharactercontroller_disableAutostep(this.__wbg_ptr)}maxSlopeClimbAngle(){return p.rawkinematiccharactercontroller_maxSlopeClimbAngle(this.__wbg_ptr)}setMaxSlopeClimbAngle(A){p.rawkinematiccharactercontroller_setMaxSlopeClimbAngle(this.__wbg_ptr,A)}minSlopeSlideAngle(){return p.rawkinematiccharactercontroller_minSlopeSlideAngle(this.__wbg_ptr)}setMinSlopeSlideAngle(A){p.rawkinematiccharactercontroller_setMinSlopeSlideAngle(this.__wbg_ptr,A)}snapToGroundDistance(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawkinematiccharactercontroller_snapToGroundDistance(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=bg()[C/4+1];return A===0?void 0:I}finally{p.__wbindgen_add_to_stack_pointer(16)}}enableSnapToGround(A){p.rawkinematiccharactercontroller_enableSnapToGround(this.__wbg_ptr,A)}disableSnapToGround(){p.rawkinematiccharactercontroller_disableSnapToGround(this.__wbg_ptr)}snapToGroundEnabled(){return p.rawkinematiccharactercontroller_snapToGroundEnabled(this.__wbg_ptr)!==0}computeColliderMovement(A,I,C,B,i,Q,e,E,t,n,a){try{rA(I,tC),rA(C,IC),rA(B,fM),rA(Q,kA),p.rawkinematiccharactercontroller_computeColliderMovement(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q.__wbg_ptr,e,!dI(E),dI(E)?0:E,t,!dI(n),dI(n)?0:n,Xg(a))}finally{wg[mg++]=void 0}}computedMovement(){const A=p.rawkinematiccharactercontroller_computedMovement(this.__wbg_ptr);return kA.__wrap(A)}computedGrounded(){return p.rawkinematiccharactercontroller_computedGrounded(this.__wbg_ptr)!==0}numComputedCollisions(){return p.rawkinematiccharactercontroller_numComputedCollisions(this.__wbg_ptr)>>>0}computedCollision(A,I){return rA(I,UH),p.rawkinematiccharactercontroller_computedCollision(this.__wbg_ptr,A,I.__wbg_ptr)!==0}}class ue{static __wrap(A){A>>>=0;const I=Object.create(ue.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawmultibodyjointset_free(A)}jointType(A){return p.rawmultibodyjointset_jointType(this.__wbg_ptr,A)}jointFrameX1(A){const I=p.rawmultibodyjointset_jointFrameX1(this.__wbg_ptr,A);return tg.__wrap(I)}jointFrameX2(A){const I=p.rawmultibodyjointset_jointFrameX2(this.__wbg_ptr,A);return tg.__wrap(I)}jointAnchor1(A){const I=p.rawmultibodyjointset_jointAnchor1(this.__wbg_ptr,A);return kA.__wrap(I)}jointAnchor2(A){const I=p.rawmultibodyjointset_jointAnchor2(this.__wbg_ptr,A);return kA.__wrap(I)}jointContactsEnabled(A){return p.rawmultibodyjointset_jointContactsEnabled(this.__wbg_ptr,A)!==0}jointSetContactsEnabled(A,I){p.rawmultibodyjointset_jointSetContactsEnabled(this.__wbg_ptr,A,I)}jointLimitsEnabled(A,I){return p.rawmultibodyjointset_jointLimitsEnabled(this.__wbg_ptr,A,I)!==0}jointLimitsMin(A,I){return p.rawmultibodyjointset_jointLimitsMin(this.__wbg_ptr,A,I)}jointLimitsMax(A,I){return p.rawmultibodyjointset_jointLimitsMax(this.__wbg_ptr,A,I)}constructor(){const A=p.rawmultibodyjointset_new();return this.__wbg_ptr=A>>>0,this}createJoint(A,I,C,B){return rA(A,VC),p.rawmultibodyjointset_createJoint(this.__wbg_ptr,A.__wbg_ptr,I,C,B)}remove(A,I){p.rawmultibodyjointset_remove(this.__wbg_ptr,A,I)}contains(A){return p.rawmultibodyjointset_contains(this.__wbg_ptr,A)!==0}forEachJointHandle(A){try{p.rawmultibodyjointset_forEachJointHandle(this.__wbg_ptr,Xg(A))}finally{wg[mg++]=void 0}}forEachJointAttachedToRigidBody(A,I){try{p.rawmultibodyjointset_forEachJointAttachedToRigidBody(this.__wbg_ptr,A,Xg(I))}finally{wg[mg++]=void 0}}}class OE{static __wrap(A){A>>>=0;const I=Object.create(OE.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawnarrowphase_free(A)}constructor(){const A=p.rawnarrowphase_new();return this.__wbg_ptr=A>>>0,this}contact_pairs_with(A,I){p.rawnarrowphase_contact_pairs_with(this.__wbg_ptr,A,dC(I))}contact_pair(A,I){const C=p.rawnarrowphase_contact_pair(this.__wbg_ptr,A,I);return C===0?void 0:NM.__wrap(C)}intersection_pairs_with(A,I){p.rawnarrowphase_intersection_pairs_with(this.__wbg_ptr,A,dC(I))}intersection_pair(A,I){return p.rawnarrowphase_intersection_pair(this.__wbg_ptr,A,I)!==0}}class mV{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawphysicspipeline_free(A)}constructor(){const A=p.rawphysicspipeline_new();return this.__wbg_ptr=A>>>0,this}step(A,I,C,B,i,Q,e,E,t,n){rA(A,kA),rA(I,no),rA(C,ye),rA(B,oo),rA(i,OE),rA(Q,tC),rA(e,IC),rA(E,Ge),rA(t,ue),rA(n,Gk),p.rawphysicspipeline_step(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e.__wbg_ptr,E.__wbg_ptr,t.__wbg_ptr,n.__wbg_ptr)}stepWithEvents(A,I,C,B,i,Q,e,E,t,n,a,r,l,D){rA(A,kA),rA(I,no),rA(C,ye),rA(B,oo),rA(i,OE),rA(Q,tC),rA(e,IC),rA(E,Ge),rA(t,ue),rA(n,Gk),rA(a,NH),p.rawphysicspipeline_stepWithEvents(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e.__wbg_ptr,E.__wbg_ptr,t.__wbg_ptr,n.__wbg_ptr,a.__wbg_ptr,dC(r),dC(l),dC(D))}}class Th{static __wrap(A){A>>>=0;const I=Object.create(Th.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawpointcolliderprojection_free(A)}colliderHandle(){return p.rawpointcolliderprojection_colliderHandle(this.__wbg_ptr)}point(){const A=p.rawpointcolliderprojection_point(this.__wbg_ptr);return kA.__wrap(A)}isInside(){return p.rawpointcolliderprojection_isInside(this.__wbg_ptr)!==0}featureType(){return p.rawpointcolliderprojection_featureType(this.__wbg_ptr)}featureId(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawpointcolliderprojection_featureId(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=ZI()[C/4+1];return A===0?void 0:I>>>0}finally{p.__wbindgen_add_to_stack_pointer(16)}}}class Xw{static __wrap(A){A>>>=0;const I=Object.create(Xw.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawpointprojection_free(A)}point(){const A=p.rawpointprojection_point(this.__wbg_ptr);return kA.__wrap(A)}isInside(){return p.rawpointprojection_isInside(this.__wbg_ptr)!==0}}class fM{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawquerypipeline_free(A)}constructor(){const A=p.rawquerypipeline_new();return this.__wbg_ptr=A>>>0,this}update(A,I){rA(A,tC),rA(I,IC),p.rawquerypipeline_update(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr)}castRay(A,I,C,B,i,Q,e,E,t,n,a){try{rA(A,tC),rA(I,IC),rA(C,kA),rA(B,kA);const r=p.rawquerypipeline_castRay(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q,e,!dI(E),dI(E)?0:E,!dI(t),dI(t)?0:t,!dI(n),dI(n)?0:n,Xg(a));return r===0?void 0:RM.__wrap(r)}finally{wg[mg++]=void 0}}castRayAndGetNormal(A,I,C,B,i,Q,e,E,t,n,a){try{rA(A,tC),rA(I,IC),rA(C,kA),rA(B,kA);const r=p.rawquerypipeline_castRayAndGetNormal(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q,e,!dI(E),dI(E)?0:E,!dI(t),dI(t)?0:t,!dI(n),dI(n)?0:n,Xg(a));return r===0?void 0:zw.__wrap(r)}finally{wg[mg++]=void 0}}intersectionsWithRay(A,I,C,B,i,Q,e,E,t,n,a,r){try{rA(A,tC),rA(I,IC),rA(C,kA),rA(B,kA),p.rawquerypipeline_intersectionsWithRay(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q,Xg(e),E,!dI(t),dI(t)?0:t,!dI(n),dI(n)?0:n,!dI(a),dI(a)?0:a,Xg(r))}finally{wg[mg++]=void 0,wg[mg++]=void 0}}intersectionWithShape(A,I,C,B,i,Q,e,E,t,n){try{const l=p.__wbindgen_add_to_stack_pointer(-16);rA(A,tC),rA(I,IC),rA(C,kA),rA(B,tg),rA(i,vI),p.rawquerypipeline_intersectionWithShape(l,this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q,!dI(e),dI(e)?0:e,!dI(E),dI(E)?0:E,!dI(t),dI(t)?0:t,Xg(n));var a=ZI()[l/4+0],r=Kr()[l/8+1];return a===0?void 0:r}finally{p.__wbindgen_add_to_stack_pointer(16),wg[mg++]=void 0}}projectPoint(A,I,C,B,i,Q,e,E,t){try{rA(A,tC),rA(I,IC),rA(C,kA);const n=p.rawquerypipeline_projectPoint(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B,i,!dI(Q),dI(Q)?0:Q,!dI(e),dI(e)?0:e,!dI(E),dI(E)?0:E,Xg(t));return n===0?void 0:Th.__wrap(n)}finally{wg[mg++]=void 0}}projectPointAndGetFeature(A,I,C,B,i,Q,e,E){try{rA(A,tC),rA(I,IC),rA(C,kA);const t=p.rawquerypipeline_projectPointAndGetFeature(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B,!dI(i),dI(i)?0:i,!dI(Q),dI(Q)?0:Q,!dI(e),dI(e)?0:e,Xg(E));return t===0?void 0:Th.__wrap(t)}finally{wg[mg++]=void 0}}intersectionsWithPoint(A,I,C,B,i,Q,e,E,t){try{rA(A,tC),rA(I,IC),rA(C,kA),p.rawquerypipeline_intersectionsWithPoint(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,Xg(B),i,!dI(Q),dI(Q)?0:Q,!dI(e),dI(e)?0:e,!dI(E),dI(E)?0:E,Xg(t))}finally{wg[mg++]=void 0,wg[mg++]=void 0}}castShape(A,I,C,B,i,Q,e,E,t,n,a,r,l){try{rA(A,tC),rA(I,IC),rA(C,kA),rA(B,tg),rA(i,kA),rA(Q,vI);const D=p.rawquerypipeline_castShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e,E,t,!dI(n),dI(n)?0:n,!dI(a),dI(a)?0:a,!dI(r),dI(r)?0:r,Xg(l));return D===0?void 0:AS.__wrap(D)}finally{wg[mg++]=void 0}}intersectionsWithShape(A,I,C,B,i,Q,e,E,t,n,a){try{rA(A,tC),rA(I,IC),rA(C,kA),rA(B,tg),rA(i,vI),p.rawquerypipeline_intersectionsWithShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Xg(Q),e,!dI(E),dI(E)?0:E,!dI(t),dI(t)?0:t,!dI(n),dI(n)?0:n,Xg(a))}finally{wg[mg++]=void 0,wg[mg++]=void 0}}collidersWithAabbIntersectingAabb(A,I,C){try{rA(A,kA),rA(I,kA),p.rawquerypipeline_collidersWithAabbIntersectingAabb(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,Xg(C))}finally{wg[mg++]=void 0}}}class zw{static __wrap(A){A>>>=0;const I=Object.create(zw.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawraycolliderintersection_free(A)}colliderHandle(){return p.rawpointcolliderprojection_colliderHandle(this.__wbg_ptr)}normal(){const A=p.rawraycolliderintersection_normal(this.__wbg_ptr);return kA.__wrap(A)}toi(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}featureType(){return p.rawpointcolliderprojection_featureType(this.__wbg_ptr)}featureId(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawpointcolliderprojection_featureId(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=ZI()[C/4+1];return A===0?void 0:I>>>0}finally{p.__wbindgen_add_to_stack_pointer(16)}}}class RM{static __wrap(A){A>>>=0;const I=Object.create(RM.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawraycollidertoi_free(A)}colliderHandle(){return p.rawcharactercollision_handle(this.__wbg_ptr)}toi(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}}class $w{static __wrap(A){A>>>=0;const I=Object.create($w.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawrayintersection_free(A)}normal(){const A=p.rawraycolliderintersection_normal(this.__wbg_ptr);return kA.__wrap(A)}toi(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}featureType(){return p.rawpointcolliderprojection_featureType(this.__wbg_ptr)}featureId(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawpointcolliderprojection_featureId(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=ZI()[C/4+1];return A===0?void 0:I>>>0}finally{p.__wbindgen_add_to_stack_pointer(16)}}}class tC{static __wrap(A){A>>>=0;const I=Object.create(tC.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawrigidbodyset_free(A)}rbTranslation(A){const I=p.rawrigidbodyset_rbTranslation(this.__wbg_ptr,A);return kA.__wrap(I)}rbRotation(A){const I=p.rawrigidbodyset_rbRotation(this.__wbg_ptr,A);return tg.__wrap(I)}rbSleep(A){p.rawrigidbodyset_rbSleep(this.__wbg_ptr,A)}rbIsSleeping(A){return p.rawrigidbodyset_rbIsSleeping(this.__wbg_ptr,A)!==0}rbIsMoving(A){return p.rawrigidbodyset_rbIsMoving(this.__wbg_ptr,A)!==0}rbNextTranslation(A){const I=p.rawrigidbodyset_rbNextTranslation(this.__wbg_ptr,A);return kA.__wrap(I)}rbNextRotation(A){const I=p.rawrigidbodyset_rbNextRotation(this.__wbg_ptr,A);return tg.__wrap(I)}rbSetTranslation(A,I,C,B,i){p.rawrigidbodyset_rbSetTranslation(this.__wbg_ptr,A,I,C,B,i)}rbSetRotation(A,I,C,B,i,Q){p.rawrigidbodyset_rbSetRotation(this.__wbg_ptr,A,I,C,B,i,Q)}rbSetLinvel(A,I,C){rA(I,kA),p.rawrigidbodyset_rbSetLinvel(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbSetAngvel(A,I,C){rA(I,kA),p.rawrigidbodyset_rbSetAngvel(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbSetNextKinematicTranslation(A,I,C,B){p.rawrigidbodyset_rbSetNextKinematicTranslation(this.__wbg_ptr,A,I,C,B)}rbSetNextKinematicRotation(A,I,C,B,i){p.rawrigidbodyset_rbSetNextKinematicRotation(this.__wbg_ptr,A,I,C,B,i)}rbRecomputeMassPropertiesFromColliders(A,I){rA(I,IC),p.rawrigidbodyset_rbRecomputeMassPropertiesFromColliders(this.__wbg_ptr,A,I.__wbg_ptr)}rbSetAdditionalMass(A,I,C){p.rawrigidbodyset_rbSetAdditionalMass(this.__wbg_ptr,A,I,C)}rbSetAdditionalMassProperties(A,I,C,B,i,Q){rA(C,kA),rA(B,kA),rA(i,tg),p.rawrigidbodyset_rbSetAdditionalMassProperties(this.__wbg_ptr,A,I,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q)}rbLinvel(A){const I=p.rawrigidbodyset_rbLinvel(this.__wbg_ptr,A);return kA.__wrap(I)}rbAngvel(A){const I=p.rawrigidbodyset_rbAngvel(this.__wbg_ptr,A);return kA.__wrap(I)}rbLockTranslations(A,I,C){p.rawrigidbodyset_rbLockTranslations(this.__wbg_ptr,A,I,C)}rbSetEnabledTranslations(A,I,C,B,i){p.rawrigidbodyset_rbSetEnabledTranslations(this.__wbg_ptr,A,I,C,B,i)}rbLockRotations(A,I,C){p.rawrigidbodyset_rbLockRotations(this.__wbg_ptr,A,I,C)}rbSetEnabledRotations(A,I,C,B,i){p.rawrigidbodyset_rbSetEnabledRotations(this.__wbg_ptr,A,I,C,B,i)}rbDominanceGroup(A){return p.rawrigidbodyset_rbDominanceGroup(this.__wbg_ptr,A)}rbSetDominanceGroup(A,I){p.rawrigidbodyset_rbSetDominanceGroup(this.__wbg_ptr,A,I)}rbEnableCcd(A,I){p.rawrigidbodyset_rbEnableCcd(this.__wbg_ptr,A,I)}rbMass(A){return p.rawrigidbodyset_rbMass(this.__wbg_ptr,A)}rbInvMass(A){return p.rawrigidbodyset_rbInvMass(this.__wbg_ptr,A)}rbEffectiveInvMass(A){const I=p.rawrigidbodyset_rbEffectiveInvMass(this.__wbg_ptr,A);return kA.__wrap(I)}rbLocalCom(A){const I=p.rawrigidbodyset_rbLocalCom(this.__wbg_ptr,A);return kA.__wrap(I)}rbWorldCom(A){const I=p.rawrigidbodyset_rbWorldCom(this.__wbg_ptr,A);return kA.__wrap(I)}rbInvPrincipalInertiaSqrt(A){const I=p.rawrigidbodyset_rbInvPrincipalInertiaSqrt(this.__wbg_ptr,A);return kA.__wrap(I)}rbPrincipalInertiaLocalFrame(A){const I=p.rawrigidbodyset_rbPrincipalInertiaLocalFrame(this.__wbg_ptr,A);return tg.__wrap(I)}rbPrincipalInertia(A){const I=p.rawrigidbodyset_rbPrincipalInertia(this.__wbg_ptr,A);return kA.__wrap(I)}rbEffectiveWorldInvInertiaSqrt(A){const I=p.rawrigidbodyset_rbEffectiveWorldInvInertiaSqrt(this.__wbg_ptr,A);return xh.__wrap(I)}rbEffectiveAngularInertia(A){const I=p.rawrigidbodyset_rbEffectiveAngularInertia(this.__wbg_ptr,A);return xh.__wrap(I)}rbWakeUp(A){p.rawrigidbodyset_rbWakeUp(this.__wbg_ptr,A)}rbIsCcdEnabled(A){return p.rawrigidbodyset_rbIsCcdEnabled(this.__wbg_ptr,A)!==0}rbNumColliders(A){return p.rawrigidbodyset_rbNumColliders(this.__wbg_ptr,A)>>>0}rbCollider(A,I){return p.rawrigidbodyset_rbCollider(this.__wbg_ptr,A,I)}rbBodyType(A){return p.rawrigidbodyset_rbBodyType(this.__wbg_ptr,A)}rbSetBodyType(A,I,C){p.rawrigidbodyset_rbSetBodyType(this.__wbg_ptr,A,I,C)}rbIsFixed(A){return p.rawrigidbodyset_rbIsFixed(this.__wbg_ptr,A)!==0}rbIsKinematic(A){return p.rawrigidbodyset_rbIsKinematic(this.__wbg_ptr,A)!==0}rbIsDynamic(A){return p.rawrigidbodyset_rbIsDynamic(this.__wbg_ptr,A)!==0}rbLinearDamping(A){return p.rawrigidbodyset_rbLinearDamping(this.__wbg_ptr,A)}rbAngularDamping(A){return p.rawrigidbodyset_rbAngularDamping(this.__wbg_ptr,A)}rbSetLinearDamping(A,I){p.rawrigidbodyset_rbSetLinearDamping(this.__wbg_ptr,A,I)}rbSetAngularDamping(A,I){p.rawrigidbodyset_rbSetAngularDamping(this.__wbg_ptr,A,I)}rbSetEnabled(A,I){p.rawrigidbodyset_rbSetEnabled(this.__wbg_ptr,A,I)}rbIsEnabled(A){return p.rawrigidbodyset_rbIsEnabled(this.__wbg_ptr,A)!==0}rbGravityScale(A){return p.rawrigidbodyset_rbGravityScale(this.__wbg_ptr,A)}rbSetGravityScale(A,I,C){p.rawrigidbodyset_rbSetGravityScale(this.__wbg_ptr,A,I,C)}rbResetForces(A,I){p.rawrigidbodyset_rbResetForces(this.__wbg_ptr,A,I)}rbResetTorques(A,I){p.rawrigidbodyset_rbResetTorques(this.__wbg_ptr,A,I)}rbAddForce(A,I,C){rA(I,kA),p.rawrigidbodyset_rbAddForce(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbApplyImpulse(A,I,C){rA(I,kA),p.rawrigidbodyset_rbApplyImpulse(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbAddTorque(A,I,C){rA(I,kA),p.rawrigidbodyset_rbAddTorque(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbApplyTorqueImpulse(A,I,C){rA(I,kA),p.rawrigidbodyset_rbApplyTorqueImpulse(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbAddForceAtPoint(A,I,C,B){rA(I,kA),rA(C,kA),p.rawrigidbodyset_rbAddForceAtPoint(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B)}rbApplyImpulseAtPoint(A,I,C,B){rA(I,kA),rA(C,kA),p.rawrigidbodyset_rbApplyImpulseAtPoint(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B)}rbAdditionalSolverIterations(A){return p.rawrigidbodyset_rbAdditionalSolverIterations(this.__wbg_ptr,A)>>>0}rbSetAdditionalSolverIterations(A,I){p.rawrigidbodyset_rbSetAdditionalSolverIterations(this.__wbg_ptr,A,I)}rbUserData(A){return p.rawrigidbodyset_rbUserData(this.__wbg_ptr,A)>>>0}rbSetUserData(A,I){p.rawrigidbodyset_rbSetUserData(this.__wbg_ptr,A,I)}constructor(){const A=p.rawrigidbodyset_new();return this.__wbg_ptr=A>>>0,this}createRigidBody(A,I,C,B,i,Q,e,E,t,n,a,r,l,D,G,h,c,y,S,k,N,M,F,q,Z){return rA(I,kA),rA(C,tg),rA(e,kA),rA(E,kA),rA(t,kA),rA(n,kA),rA(a,tg),p.rawrigidbodyset_createRigidBody(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B,i,Q,e.__wbg_ptr,E.__wbg_ptr,t.__wbg_ptr,n.__wbg_ptr,a.__wbg_ptr,r,l,D,G,h,c,y,S,k,N,M,F,q,Z)}remove(A,I,C,B,i){rA(I,ye),rA(C,IC),rA(B,Ge),rA(i,ue),p.rawrigidbodyset_remove(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr)}len(){return p.rawcolliderset_len(this.__wbg_ptr)>>>0}contains(A){return p.rawrigidbodyset_contains(this.__wbg_ptr,A)!==0}forEachRigidBodyHandle(A){try{p.rawrigidbodyset_forEachRigidBodyHandle(this.__wbg_ptr,Xg(A))}finally{wg[mg++]=void 0}}propagateModifiedBodyPositionsToColliders(A){rA(A,IC),p.rawrigidbodyset_propagateModifiedBodyPositionsToColliders(this.__wbg_ptr,A.__wbg_ptr)}}class tg{static __wrap(A){A>>>=0;const I=Object.create(tg.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawrotation_free(A)}constructor(A,I,C,B){const i=p.rawrotation_new(A,I,C,B);return this.__wbg_ptr=i>>>0,this}static identity(){const A=p.rawrotation_identity();return tg.__wrap(A)}get x(){return p.rawrotation_x(this.__wbg_ptr)}get y(){return p.rawintegrationparameters_dt(this.__wbg_ptr)}get z(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}get w(){return p.rawintegrationparameters_erp(this.__wbg_ptr)}}class xh{static __wrap(A){A>>>=0;const I=Object.create(xh.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawsdpmatrix3_free(A)}elements(){return Rr(p.rawsdpmatrix3_elements(this.__wbg_ptr))}}class LV{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawserializationpipeline_free(A)}constructor(){const A=p.rawserializationpipeline_new();return this.__wbg_ptr=A>>>0,this}serializeAll(A,I,C,B,i,Q,e,E,t){return rA(A,kA),rA(I,no),rA(C,ye),rA(B,oo),rA(i,OE),rA(Q,tC),rA(e,IC),rA(E,Ge),rA(t,ue),Rr(p.rawserializationpipeline_serializeAll(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e.__wbg_ptr,E.__wbg_ptr,t.__wbg_ptr))}deserializeAll(A){const I=p.rawserializationpipeline_deserializeAll(this.__wbg_ptr,dC(A));return I===0?void 0:FM.__wrap(I)}}class vI{static __wrap(A){A>>>=0;const I=Object.create(vI.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawshape_free(A)}static cuboid(A,I,C){const B=p.rawshape_cuboid(A,I,C);return vI.__wrap(B)}static roundCuboid(A,I,C,B){const i=p.rawshape_roundCuboid(A,I,C,B);return vI.__wrap(i)}static ball(A){const I=p.rawshape_ball(A);return vI.__wrap(I)}static halfspace(A){rA(A,kA);const I=p.rawshape_halfspace(A.__wbg_ptr);return vI.__wrap(I)}static capsule(A,I){const C=p.rawshape_capsule(A,I);return vI.__wrap(C)}static cylinder(A,I){const C=p.rawshape_cylinder(A,I);return vI.__wrap(C)}static roundCylinder(A,I,C){const B=p.rawshape_roundCylinder(A,I,C);return vI.__wrap(B)}static cone(A,I){const C=p.rawshape_cone(A,I);return vI.__wrap(C)}static roundCone(A,I,C){const B=p.rawshape_roundCone(A,I,C);return vI.__wrap(B)}static polyline(A,I){const C=ft(A,p.__wbindgen_malloc),B=ii,i=ND(I,p.__wbindgen_malloc),Q=ii,e=p.rawshape_polyline(C,B,i,Q);return vI.__wrap(e)}static trimesh(A,I){const C=ft(A,p.__wbindgen_malloc),B=ii,i=ND(I,p.__wbindgen_malloc),Q=ii,e=p.rawshape_trimesh(C,B,i,Q);return vI.__wrap(e)}static heightfield(A,I,C,B){const i=ft(C,p.__wbindgen_malloc),Q=ii;rA(B,kA);const e=p.rawshape_heightfield(A,I,i,Q,B.__wbg_ptr);return vI.__wrap(e)}static segment(A,I){rA(A,kA),rA(I,kA);const C=p.rawshape_segment(A.__wbg_ptr,I.__wbg_ptr);return vI.__wrap(C)}static triangle(A,I,C){rA(A,kA),rA(I,kA),rA(C,kA);const B=p.rawshape_triangle(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr);return vI.__wrap(B)}static roundTriangle(A,I,C,B){rA(A,kA),rA(I,kA),rA(C,kA);const i=p.rawshape_roundTriangle(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B);return vI.__wrap(i)}static convexHull(A){const I=ft(A,p.__wbindgen_malloc),C=ii,B=p.rawshape_convexHull(I,C);return B===0?void 0:vI.__wrap(B)}static roundConvexHull(A,I){const C=ft(A,p.__wbindgen_malloc),B=ii,i=p.rawshape_roundConvexHull(C,B,I);return i===0?void 0:vI.__wrap(i)}static convexMesh(A,I){const C=ft(A,p.__wbindgen_malloc),B=ii,i=ND(I,p.__wbindgen_malloc),Q=ii,e=p.rawshape_convexMesh(C,B,i,Q);return e===0?void 0:vI.__wrap(e)}static roundConvexMesh(A,I,C){const B=ft(A,p.__wbindgen_malloc),i=ii,Q=ND(I,p.__wbindgen_malloc),e=ii,E=p.rawshape_roundConvexMesh(B,i,Q,e,C);return E===0?void 0:vI.__wrap(E)}castShape(A,I,C,B,i,Q,e,E,t){rA(A,kA),rA(I,tg),rA(C,kA),rA(B,vI),rA(i,kA),rA(Q,tg),rA(e,kA);const n=p.rawshape_castShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e.__wbg_ptr,E,t);return n===0?void 0:IS.__wrap(n)}intersectsShape(A,I,C,B,i){return rA(A,kA),rA(I,tg),rA(C,vI),rA(B,kA),rA(i,tg),p.rawshape_intersectsShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr)!==0}contactShape(A,I,C,B,i,Q){rA(A,kA),rA(I,tg),rA(C,vI),rA(B,kA),rA(i,tg);const e=p.rawshape_contactShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q);return e===0?void 0:Jr.__wrap(e)}containsPoint(A,I,C){return rA(A,kA),rA(I,tg),rA(C,kA),p.rawshape_containsPoint(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr)!==0}projectPoint(A,I,C,B){rA(A,kA),rA(I,tg),rA(C,kA);const i=p.rawshape_projectPoint(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B);return Xw.__wrap(i)}intersectsRay(A,I,C,B,i){return rA(A,kA),rA(I,tg),rA(C,kA),rA(B,kA),p.rawshape_intersectsRay(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i)!==0}castRay(A,I,C,B,i,Q){return rA(A,kA),rA(I,tg),rA(C,kA),rA(B,kA),p.rawshape_castRay(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q)}castRayAndGetNormal(A,I,C,B,i,Q){rA(A,kA),rA(I,tg),rA(C,kA),rA(B,kA);const e=p.rawshape_castRayAndGetNormal(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q);return e===0?void 0:$w.__wrap(e)}}class AS{static __wrap(A){A>>>=0;const I=Object.create(AS.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawshapecollidertoi_free(A)}colliderHandle(){return p.rawcharactercollision_handle(this.__wbg_ptr)}toi(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}witness1(){const A=p.rawraycolliderintersection_normal(this.__wbg_ptr);return kA.__wrap(A)}witness2(){const A=p.rawshapecollidertoi_witness2(this.__wbg_ptr);return kA.__wrap(A)}normal1(){const A=p.rawcharactercollision_translationDeltaApplied(this.__wbg_ptr);return kA.__wrap(A)}normal2(){const A=p.rawcharactercollision_translationDeltaRemaining(this.__wbg_ptr);return kA.__wrap(A)}}class Jr{static __wrap(A){A>>>=0;const I=Object.create(Jr.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawshapecontact_free(A)}distance(){return p.rawkinematiccharactercontroller_maxSlopeClimbAngle(this.__wbg_ptr)}point1(){const A=p.rawpointprojection_point(this.__wbg_ptr);return kA.__wrap(A)}point2(){const A=p.rawraycolliderintersection_normal(this.__wbg_ptr);return kA.__wrap(A)}normal1(){const A=p.rawshapecollidertoi_witness2(this.__wbg_ptr);return kA.__wrap(A)}normal2(){const A=p.rawcharactercollision_translationDeltaApplied(this.__wbg_ptr);return kA.__wrap(A)}}class IS{static __wrap(A){A>>>=0;const I=Object.create(IS.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawshapetoi_free(A)}toi(){return p.rawrotation_x(this.__wbg_ptr)}witness1(){const A=p.rawshapetoi_witness1(this.__wbg_ptr);return kA.__wrap(A)}witness2(){const A=p.rawcontactforceevent_total_force(this.__wbg_ptr);return kA.__wrap(A)}normal1(){const A=p.rawshapetoi_normal1(this.__wbg_ptr);return kA.__wrap(A)}normal2(){const A=p.rawshapetoi_normal2(this.__wbg_ptr);return kA.__wrap(A)}}class kA{static __wrap(A){A>>>=0;const I=Object.create(kA.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawvector_free(A)}static zero(){const A=p.rawvector_zero();return kA.__wrap(A)}constructor(A,I,C){const B=p.rawvector_new(A,I,C);return this.__wbg_ptr=B>>>0,this}get x(){return p.rawrotation_x(this.__wbg_ptr)}set x(A){p.rawvector_set_x(this.__wbg_ptr,A)}get y(){return p.rawintegrationparameters_dt(this.__wbg_ptr)}set y(A){p.rawintegrationparameters_set_dt(this.__wbg_ptr,A)}get z(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}set z(A){p.rawvector_set_z(this.__wbg_ptr,A)}xyz(){const A=p.rawvector_xyz(this.__wbg_ptr);return kA.__wrap(A)}yxz(){const A=p.rawvector_yxz(this.__wbg_ptr);return kA.__wrap(A)}zxy(){const A=p.rawvector_zxy(this.__wbg_ptr);return kA.__wrap(A)}xzy(){const A=p.rawvector_xzy(this.__wbg_ptr);return kA.__wrap(A)}yzx(){const A=p.rawvector_yzx(this.__wbg_ptr);return kA.__wrap(A)}zyx(){const A=p.rawvector_zyx(this.__wbg_ptr);return kA.__wrap(A)}}async function FH(g){if(p!==void 0)return p;g===void 0&&(g=new URL("rapier_wasm3d_bg.wasm",""));const A=function(){const B={wbg:{}};return B.wbg.__wbindgen_number_new=function(i){return dC(i)},B.wbg.__wbindgen_boolean_get=function(i){const Q=Ng(i);return typeof Q=="boolean"?Q?1:0:2},B.wbg.__wbindgen_object_drop_ref=function(i){Rr(i)},B.wbg.__wbindgen_number_get=function(i,Q){const e=Ng(Q),E=typeof e=="number"?e:void 0;Kr()[i/8+1]=dI(E)?0:E,ZI()[i/4+0]=!dI(E)},B.wbg.__wbindgen_is_function=function(i){return typeof Ng(i)=="function"},B.wbg.__wbg_rawraycolliderintersection_new=function(i){return dC(zw.__wrap(i))},B.wbg.__wbg_rawcontactforceevent_new=function(i){return dC(pM.__wrap(i))},B.wbg.__wbg_call_01734de55d61e11d=function(){return s0(function(i,Q,e){return dC(Ng(i).call(Ng(Q),Ng(e)))},arguments)},B.wbg.__wbg_call_4c92f6aec1e1d6e6=function(){return s0(function(i,Q,e,E){return dC(Ng(i).call(Ng(Q),Ng(e),Ng(E)))},arguments)},B.wbg.__wbg_call_776890ca77946e2f=function(){return s0(function(i,Q,e,E,t){return dC(Ng(i).call(Ng(Q),Ng(e),Ng(E),Ng(t)))},arguments)},B.wbg.__wbg_bind_60a9a80cada2f33c=function(i,Q,e,E){return dC(Ng(i).bind(Ng(Q),Ng(e),Ng(E)))},B.wbg.__wbg_buffer_085ec1f694018c4f=function(i){return dC(Ng(i).buffer)},B.wbg.__wbg_newwithbyteoffsetandlength_6da8e527659b86aa=function(i,Q,e){return dC(new Uint8Array(Ng(i),Q>>>0,e>>>0))},B.wbg.__wbg_new_8125e318e6245eed=function(i){return dC(new Uint8Array(Ng(i)))},B.wbg.__wbg_set_5cf90238115182c3=function(i,Q,e){Ng(i).set(Ng(Q),e>>>0)},B.wbg.__wbg_length_72e2208bbc0efc61=function(i){return Ng(i).length},B.wbg.__wbg_newwithbyteoffsetandlength_69193e31c844b792=function(i,Q,e){return dC(new Float32Array(Ng(i),Q>>>0,e>>>0))},B.wbg.__wbg_set_6146c51d49a2c0df=function(i,Q,e){Ng(i).set(Ng(Q),e>>>0)},B.wbg.__wbg_length_d7327c75a759af37=function(i){return Ng(i).length},B.wbg.__wbg_newwithlength_68d29ab115d0099c=function(i){return dC(new Float32Array(i>>>0))},B.wbg.__wbindgen_throw=function(i,Q){throw new Error(MH(i,Q))},B.wbg.__wbindgen_memory=function(){return dC(p.memory)},B}();(typeof g=="string"||typeof Request=="function"&&g instanceof Request||typeof URL=="function"&&g instanceof URL)&&(g=fetch(g));const{instance:I,module:C}=await async function(B,i){if(typeof Response=="function"&&B instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(B,i)}catch(e){if(B.headers.get("Content-Type")=="application/wasm")throw e;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",e)}const Q=await B.arrayBuffer();return await WebAssembly.instantiate(Q,i)}{const Q=await WebAssembly.instantiate(B,i);return Q instanceof WebAssembly.Instance?{instance:Q,module:B}:Q}}(await g,A);return function(B,i){return p=B.exports,FH.__wbindgen_wasm_module=i,Ka=null,Fa=null,fa=null,Ja=null,Ra=null,p}(I,C)}class Zn{constructor(A,I,C){this.x=A,this.y=I,this.z=C}}class uA{static new(A,I,C){return new Zn(A,I,C)}static intoRaw(A){return new kA(A.x,A.y,A.z)}static zeros(){return uA.new(0,0,0)}static fromRaw(A){if(!A)return null;let I=uA.new(A.x,A.y,A.z);return A.free(),I}static copy(A,I){A.x=I.x,A.y=I.y,A.z=I.z}}class vh{constructor(A,I,C,B){this.x=A,this.y=I,this.z=C,this.w=B}}class Cg{static identity(){return new vh(0,0,0,1)}static fromRaw(A){if(!A)return null;let I=new vh(A.x,A.y,A.z,A.w);return A.free(),I}static intoRaw(A){return new tg(A.x,A.y,A.z,A.w)}static copy(A,I){A.x=I.x,A.y=I.y,A.z=I.z,A.w=I.w}}class KM{constructor(A){this.elements=A}get m11(){return this.elements[0]}get m12(){return this.elements[1]}get m21(){return this.m12}get m13(){return this.elements[2]}get m31(){return this.m13}get m22(){return this.elements[3]}get m23(){return this.elements[4]}get m32(){return this.m23}get m33(){return this.elements[5]}}class bh{static fromRaw(A){const I=new KM(A.elements());return A.free(),I}}var fi,WC,Oh,_h,ts,so,GC,Zh,ae,qr,Ph,mr,SE;(function(g){g[g.Dynamic=0]="Dynamic",g[g.Fixed=1]="Fixed",g[g.KinematicPositionBased=2]="KinematicPositionBased",g[g.KinematicVelocityBased=3]="KinematicVelocityBased"})(fi||(fi={}));class Wh{constructor(A,I,C){this.rawSet=A,this.colliderSet=I,this.handle=C}finalizeDeserialization(A){this.colliderSet=A}isValid(){return this.rawSet.contains(this.handle)}lockTranslations(A,I){return this.rawSet.rbLockTranslations(this.handle,A,I)}lockRotations(A,I){return this.rawSet.rbLockRotations(this.handle,A,I)}setEnabledTranslations(A,I,C,B){return this.rawSet.rbSetEnabledTranslations(this.handle,A,I,C,B)}restrictTranslations(A,I,C,B){this.setEnabledTranslations(A,I,C,B)}setEnabledRotations(A,I,C,B){return this.rawSet.rbSetEnabledRotations(this.handle,A,I,C,B)}restrictRotations(A,I,C,B){this.setEnabledRotations(A,I,C,B)}dominanceGroup(){return this.rawSet.rbDominanceGroup(this.handle)}setDominanceGroup(A){this.rawSet.rbSetDominanceGroup(this.handle,A)}additionalSolverIterations(){return this.rawSet.rbAdditionalSolverIterations(this.handle)}setAdditionalSolverIterations(A){this.rawSet.rbSetAdditionalSolverIterations(this.handle,A)}enableCcd(A){this.rawSet.rbEnableCcd(this.handle,A)}translation(){let A=this.rawSet.rbTranslation(this.handle);return uA.fromRaw(A)}rotation(){let A=this.rawSet.rbRotation(this.handle);return Cg.fromRaw(A)}nextTranslation(){let A=this.rawSet.rbNextTranslation(this.handle);return uA.fromRaw(A)}nextRotation(){let A=this.rawSet.rbNextRotation(this.handle);return Cg.fromRaw(A)}setTranslation(A,I){this.rawSet.rbSetTranslation(this.handle,A.x,A.y,A.z,I)}setLinvel(A,I){let C=uA.intoRaw(A);this.rawSet.rbSetLinvel(this.handle,C,I),C.free()}gravityScale(){return this.rawSet.rbGravityScale(this.handle)}setGravityScale(A,I){this.rawSet.rbSetGravityScale(this.handle,A,I)}setRotation(A,I){this.rawSet.rbSetRotation(this.handle,A.x,A.y,A.z,A.w,I)}setAngvel(A,I){let C=uA.intoRaw(A);this.rawSet.rbSetAngvel(this.handle,C,I),C.free()}setNextKinematicTranslation(A){this.rawSet.rbSetNextKinematicTranslation(this.handle,A.x,A.y,A.z)}setNextKinematicRotation(A){this.rawSet.rbSetNextKinematicRotation(this.handle,A.x,A.y,A.z,A.w)}linvel(){return uA.fromRaw(this.rawSet.rbLinvel(this.handle))}angvel(){return uA.fromRaw(this.rawSet.rbAngvel(this.handle))}mass(){return this.rawSet.rbMass(this.handle)}effectiveInvMass(){return uA.fromRaw(this.rawSet.rbEffectiveInvMass(this.handle))}invMass(){return this.rawSet.rbInvMass(this.handle)}localCom(){return uA.fromRaw(this.rawSet.rbLocalCom(this.handle))}worldCom(){return uA.fromRaw(this.rawSet.rbWorldCom(this.handle))}invPrincipalInertiaSqrt(){return uA.fromRaw(this.rawSet.rbInvPrincipalInertiaSqrt(this.handle))}principalInertia(){return uA.fromRaw(this.rawSet.rbPrincipalInertia(this.handle))}principalInertiaLocalFrame(){return Cg.fromRaw(this.rawSet.rbPrincipalInertiaLocalFrame(this.handle))}effectiveWorldInvInertiaSqrt(){return bh.fromRaw(this.rawSet.rbEffectiveWorldInvInertiaSqrt(this.handle))}effectiveAngularInertia(){return bh.fromRaw(this.rawSet.rbEffectiveAngularInertia(this.handle))}sleep(){this.rawSet.rbSleep(this.handle)}wakeUp(){this.rawSet.rbWakeUp(this.handle)}isCcdEnabled(){return this.rawSet.rbIsCcdEnabled(this.handle)}numColliders(){return this.rawSet.rbNumColliders(this.handle)}collider(A){return this.colliderSet.get(this.rawSet.rbCollider(this.handle,A))}setEnabled(A){this.rawSet.rbSetEnabled(this.handle,A)}isEnabled(){return this.rawSet.rbIsEnabled(this.handle)}bodyType(){return this.rawSet.rbBodyType(this.handle)}setBodyType(A,I){return this.rawSet.rbSetBodyType(this.handle,A,I)}isSleeping(){return this.rawSet.rbIsSleeping(this.handle)}isMoving(){return this.rawSet.rbIsMoving(this.handle)}isFixed(){return this.rawSet.rbIsFixed(this.handle)}isKinematic(){return this.rawSet.rbIsKinematic(this.handle)}isDynamic(){return this.rawSet.rbIsDynamic(this.handle)}linearDamping(){return this.rawSet.rbLinearDamping(this.handle)}angularDamping(){return this.rawSet.rbAngularDamping(this.handle)}setLinearDamping(A){this.rawSet.rbSetLinearDamping(this.handle,A)}recomputeMassPropertiesFromColliders(){this.rawSet.rbRecomputeMassPropertiesFromColliders(this.handle,this.colliderSet.raw)}setAdditionalMass(A,I){this.rawSet.rbSetAdditionalMass(this.handle,A,I)}setAdditionalMassProperties(A,I,C,B,i){let Q=uA.intoRaw(I),e=uA.intoRaw(C),E=Cg.intoRaw(B);this.rawSet.rbSetAdditionalMassProperties(this.handle,A,Q,e,E,i),Q.free(),e.free(),E.free()}setAngularDamping(A){this.rawSet.rbSetAngularDamping(this.handle,A)}resetForces(A){this.rawSet.rbResetForces(this.handle,A)}resetTorques(A){this.rawSet.rbResetTorques(this.handle,A)}addForce(A,I){const C=uA.intoRaw(A);this.rawSet.rbAddForce(this.handle,C,I),C.free()}applyImpulse(A,I){const C=uA.intoRaw(A);this.rawSet.rbApplyImpulse(this.handle,C,I),C.free()}addTorque(A,I){const C=uA.intoRaw(A);this.rawSet.rbAddTorque(this.handle,C,I),C.free()}applyTorqueImpulse(A,I){const C=uA.intoRaw(A);this.rawSet.rbApplyTorqueImpulse(this.handle,C,I),C.free()}addForceAtPoint(A,I,C){const B=uA.intoRaw(A),i=uA.intoRaw(I);this.rawSet.rbAddForceAtPoint(this.handle,B,i,C),B.free(),i.free()}applyImpulseAtPoint(A,I,C){const B=uA.intoRaw(A),i=uA.intoRaw(I);this.rawSet.rbApplyImpulseAtPoint(this.handle,B,i,C),B.free(),i.free()}}class Ri{constructor(A){this.enabled=!0,this.status=A,this.translation=uA.zeros(),this.rotation=Cg.identity(),this.gravityScale=1,this.linvel=uA.zeros(),this.mass=0,this.massOnly=!1,this.centerOfMass=uA.zeros(),this.translationsEnabledX=!0,this.translationsEnabledY=!0,this.angvel=uA.zeros(),this.principalAngularInertia=uA.zeros(),this.angularInertiaLocalFrame=Cg.identity(),this.translationsEnabledZ=!0,this.rotationsEnabledX=!0,this.rotationsEnabledY=!0,this.rotationsEnabledZ=!0,this.linearDamping=0,this.angularDamping=0,this.canSleep=!0,this.sleeping=!1,this.ccdEnabled=!1,this.dominanceGroup=0,this.additionalSolverIterations=0}static dynamic(){return new Ri(fi.Dynamic)}static kinematicPositionBased(){return new Ri(fi.KinematicPositionBased)}static kinematicVelocityBased(){return new Ri(fi.KinematicVelocityBased)}static fixed(){return new Ri(fi.Fixed)}static newDynamic(){return new Ri(fi.Dynamic)}static newKinematicPositionBased(){return new Ri(fi.KinematicPositionBased)}static newKinematicVelocityBased(){return new Ri(fi.KinematicVelocityBased)}static newStatic(){return new Ri(fi.Fixed)}setDominanceGroup(A){return this.dominanceGroup=A,this}setAdditionalSolverIterations(A){return this.additionalSolverIterations=A,this}setEnabled(A){return this.enabled=A,this}setTranslation(A,I,C){if(typeof A!="number"||typeof I!="number"||typeof C!="number")throw TypeError("The translation components must be numbers.");return this.translation={x:A,y:I,z:C},this}setRotation(A){return Cg.copy(this.rotation,A),this}setGravityScale(A){return this.gravityScale=A,this}setAdditionalMass(A){return this.mass=A,this.massOnly=!0,this}setLinvel(A,I,C){if(typeof A!="number"||typeof I!="number"||typeof C!="number")throw TypeError("The linvel components must be numbers.");return this.linvel={x:A,y:I,z:C},this}setAngvel(A){return uA.copy(this.angvel,A),this}setAdditionalMassProperties(A,I,C,B){return this.mass=A,uA.copy(this.centerOfMass,I),uA.copy(this.principalAngularInertia,C),Cg.copy(this.angularInertiaLocalFrame,B),this.massOnly=!1,this}enabledTranslations(A,I,C){return this.translationsEnabledX=A,this.translationsEnabledY=I,this.translationsEnabledZ=C,this}restrictTranslations(A,I,C){return this.enabledTranslations(A,I,C)}lockTranslations(){return this.enabledTranslations(!1,!1,!1)}enabledRotations(A,I,C){return this.rotationsEnabledX=A,this.rotationsEnabledY=I,this.rotationsEnabledZ=C,this}restrictRotations(A,I,C){return this.enabledRotations(A,I,C)}lockRotations(){return this.restrictRotations(!1,!1,!1)}setLinearDamping(A){return this.linearDamping=A,this}setAngularDamping(A){return this.angularDamping=A,this}setCanSleep(A){return this.canSleep=A,this}setSleeping(A){return this.sleeping=A,this}setCcdEnabled(A){return this.ccdEnabled=A,this}setUserData(A){return this.userData=A,this}}class gS{constructor(){this.fconv=new Float64Array(1),this.uconv=new Uint32Array(this.fconv.buffer),this.data=new Array,this.size=0}set(A,I){let C=this.index(A);for(;this.data.length<=C;)this.data.push(null);this.data[C]==null&&(this.size+=1),this.data[C]=I}len(){return this.size}delete(A){let I=this.index(A);IA!=null)}index(A){return this.fconv[0]=A,this.uconv[0]}}class JM{constructor(A){this.raw=A||new tC,this.map=new gS,A&&A.forEachRigidBodyHandle(I=>{this.map.set(I,new Wh(A,null,I))})}free(){this.raw&&this.raw.free(),this.raw=void 0,this.map&&this.map.clear(),this.map=void 0}finalizeDeserialization(A){this.map.forEach(I=>I.finalizeDeserialization(A))}createRigidBody(A,I){let C=uA.intoRaw(I.translation),B=Cg.intoRaw(I.rotation),i=uA.intoRaw(I.linvel),Q=uA.intoRaw(I.centerOfMass),e=uA.intoRaw(I.angvel),E=uA.intoRaw(I.principalAngularInertia),t=Cg.intoRaw(I.angularInertiaLocalFrame),n=this.raw.createRigidBody(I.enabled,C,B,I.gravityScale,I.mass,I.massOnly,Q,i,e,E,t,I.translationsEnabledX,I.translationsEnabledY,I.translationsEnabledZ,I.rotationsEnabledX,I.rotationsEnabledY,I.rotationsEnabledZ,I.linearDamping,I.angularDamping,I.status,I.canSleep,I.sleeping,I.ccdEnabled,I.dominanceGroup,I.additionalSolverIterations);C.free(),B.free(),i.free(),Q.free(),e.free(),E.free(),t.free();const a=new Wh(this.raw,A,n);return a.userData=I.userData,this.map.set(n,a),a}remove(A,I,C,B,i){for(let Q=0;QB.unmap(Q)),i.forEachJointHandleAttachedToRigidBody(A,Q=>i.unmap(Q)),this.raw.remove(A,I.raw,C.raw,B.raw,i.raw),this.map.delete(A)}len(){return this.map.len()}contains(A){return this.get(A)!=null}get(A){return this.map.get(A)}forEach(A){this.map.forEach(A)}forEachActiveRigidBody(A,I){A.forEachActiveRigidBodyHandle(C=>{I(this.get(C))})}getAll(){return this.map.getAll()}}class qM{constructor(A){this.raw=A||new no}free(){this.raw&&this.raw.free(),this.raw=void 0}get dt(){return this.raw.dt}get erp(){return this.raw.erp}get allowedLinearError(){return this.raw.allowedLinearError}get predictionDistance(){return this.raw.predictionDistance}get numSolverIterations(){return this.raw.numSolverIterations}get numAdditionalFrictionIterations(){return this.raw.numAdditionalFrictionIterations}get numInternalPgsIterations(){return this.raw.numInternalPgsIterations}get minIslandSize(){return this.raw.minIslandSize}get maxCcdSubsteps(){return this.raw.maxCcdSubsteps}set dt(A){this.raw.dt=A}set erp(A){this.raw.erp=A}set allowedLinearError(A){this.raw.allowedLinearError=A}set predictionDistance(A){this.raw.predictionDistance=A}set numSolverIterations(A){this.raw.numSolverIterations=A}set numAdditionalFrictionIterations(A){this.raw.numAdditionalFrictionIterations=A}set numInternalPgsIterations(A){this.raw.numInternalPgsIterations=A}set minIslandSize(A){this.raw.minIslandSize=A}set maxCcdSubsteps(A){this.raw.maxCcdSubsteps=A}switchToStandardPgsSolver(){this.raw.switchToStandardPgsSolver()}switchToSmallStepsPgsSolver(){this.raw.switchToSmallStepsPgsSolver()}}(function(g){g[g.Revolute=0]="Revolute",g[g.Fixed=1]="Fixed",g[g.Prismatic=2]="Prismatic",g[g.Rope=3]="Rope",g[g.Spring=4]="Spring",g[g.Spherical=5]="Spherical",g[g.Generic=6]="Generic"})(WC||(WC={})),function(g){g[g.AccelerationBased=0]="AccelerationBased",g[g.ForceBased=1]="ForceBased"}(Oh||(Oh={})),function(g){g[g.X=1]="X",g[g.Y=2]="Y",g[g.Z=4]="Z",g[g.AngX=8]="AngX",g[g.AngY=16]="AngY",g[g.AngZ=32]="AngZ"}(_h||(_h={}));class xi{constructor(A,I,C){this.rawSet=A,this.bodySet=I,this.handle=C}static newTyped(A,I,C){switch(A.jointType(C)){case IQ.Revolute:return new TM(A,I,C);case IQ.Prismatic:return new HM(A,I,C);case IQ.Fixed:return new mM(A,I,C);case IQ.Spring:return new YM(A,I,C);case IQ.Rope:return new LM(A,I,C);case IQ.Spherical:return new vM(A,I,C);case IQ.Generic:return new xM(A,I,C);default:return new xi(A,I,C)}}finalizeDeserialization(A){this.bodySet=A}isValid(){return this.rawSet.contains(this.handle)}body1(){return this.bodySet.get(this.rawSet.jointBodyHandle1(this.handle))}body2(){return this.bodySet.get(this.rawSet.jointBodyHandle2(this.handle))}type(){return this.rawSet.jointType(this.handle)}frameX1(){return Cg.fromRaw(this.rawSet.jointFrameX1(this.handle))}frameX2(){return Cg.fromRaw(this.rawSet.jointFrameX2(this.handle))}anchor1(){return uA.fromRaw(this.rawSet.jointAnchor1(this.handle))}anchor2(){return uA.fromRaw(this.rawSet.jointAnchor2(this.handle))}setAnchor1(A){const I=uA.intoRaw(A);this.rawSet.jointSetAnchor1(this.handle,I),I.free()}setAnchor2(A){const I=uA.intoRaw(A);this.rawSet.jointSetAnchor2(this.handle,I),I.free()}setContactsEnabled(A){this.rawSet.jointSetContactsEnabled(this.handle,A)}contactsEnabled(){return this.rawSet.jointContactsEnabled(this.handle)}}class CS extends xi{limitsEnabled(){return this.rawSet.jointLimitsEnabled(this.handle,this.rawAxis())}limitsMin(){return this.rawSet.jointLimitsMin(this.handle,this.rawAxis())}limitsMax(){return this.rawSet.jointLimitsMax(this.handle,this.rawAxis())}setLimits(A,I){this.rawSet.jointSetLimits(this.handle,this.rawAxis(),A,I)}configureMotorModel(A){this.rawSet.jointConfigureMotorModel(this.handle,this.rawAxis(),A)}configureMotorVelocity(A,I){this.rawSet.jointConfigureMotorVelocity(this.handle,this.rawAxis(),A,I)}configureMotorPosition(A,I,C){this.rawSet.jointConfigureMotorPosition(this.handle,this.rawAxis(),A,I,C)}configureMotor(A,I,C,B){this.rawSet.jointConfigureMotor(this.handle,this.rawAxis(),A,I,C,B)}}class mM extends xi{}class LM extends xi{}class YM extends xi{}class HM extends CS{rawAxis(){return Vw.X}}class TM extends CS{rawAxis(){return Vw.AngX}}class xM extends xi{}class vM extends xi{}class pQ{constructor(){}static fixed(A,I,C,B){let i=new pQ;return i.anchor1=A,i.anchor2=C,i.frame1=I,i.frame2=B,i.jointType=WC.Fixed,i}static spring(A,I,C,B,i){let Q=new pQ;return Q.anchor1=B,Q.anchor2=i,Q.length=A,Q.stiffness=I,Q.damping=C,Q.jointType=WC.Spring,Q}static rope(A,I,C){let B=new pQ;return B.anchor1=I,B.anchor2=C,B.length=A,B.jointType=WC.Rope,B}static generic(A,I,C,B){let i=new pQ;return i.anchor1=A,i.anchor2=I,i.axis=C,i.axesMask=B,i.jointType=WC.Generic,i}static spherical(A,I){let C=new pQ;return C.anchor1=A,C.anchor2=I,C.jointType=WC.Spherical,C}static prismatic(A,I,C){let B=new pQ;return B.anchor1=A,B.anchor2=I,B.axis=C,B.jointType=WC.Prismatic,B}static revolute(A,I,C){let B=new pQ;return B.anchor1=A,B.anchor2=I,B.axis=C,B.jointType=WC.Revolute,B}intoRaw(){let A,I,C=uA.intoRaw(this.anchor1),B=uA.intoRaw(this.anchor2),i=!1,Q=0,e=0;switch(this.jointType){case WC.Fixed:let E=Cg.intoRaw(this.frame1),t=Cg.intoRaw(this.frame2);I=VC.fixed(C,E,B,t),E.free(),t.free();break;case WC.Spring:I=VC.spring(this.length,this.stiffness,this.damping,C,B);break;case WC.Rope:I=VC.rope(this.length,C,B);break;case WC.Prismatic:A=uA.intoRaw(this.axis),this.limitsEnabled&&(i=!0,Q=this.limits[0],e=this.limits[1]),I=VC.prismatic(C,B,A,i,Q,e),A.free();break;case WC.Generic:A=uA.intoRaw(this.axis);let n=this.axesMask;I=VC.generic(C,B,A,n);break;case WC.Spherical:I=VC.spherical(C,B);break;case WC.Revolute:A=uA.intoRaw(this.axis),I=VC.revolute(C,B,A),A.free()}return C.free(),B.free(),I}}class bM{constructor(A){this.raw=A||new Ge,this.map=new gS,A&&A.forEachJointHandle(I=>{this.map.set(I,xi.newTyped(A,null,I))})}free(){this.raw&&this.raw.free(),this.raw=void 0,this.map&&this.map.clear(),this.map=void 0}finalizeDeserialization(A){this.map.forEach(I=>I.finalizeDeserialization(A))}createJoint(A,I,C,B,i){const Q=I.intoRaw(),e=this.raw.createJoint(Q,C,B,i);Q.free();let E=xi.newTyped(this.raw,A,e);return this.map.set(e,E),E}remove(A,I){this.raw.remove(A,I),this.unmap(A)}forEachJointHandleAttachedToRigidBody(A,I){this.raw.forEachJointAttachedToRigidBody(A,I)}unmap(A){this.map.delete(A)}len(){return this.map.len()}contains(A){return this.get(A)!=null}get(A){return this.map.get(A)}forEach(A){this.map.forEach(A)}getAll(){return this.map.getAll()}}class ke{constructor(A,I){this.rawSet=A,this.handle=I}static newTyped(A,I){switch(A.jointType(I)){case IQ.Revolute:return new ZM(A,I);case IQ.Prismatic:return new _M(A,I);case IQ.Fixed:return new OM(A,I);case IQ.Spherical:return new PM(A,I);default:return new ke(A,I)}}isValid(){return this.rawSet.contains(this.handle)}setContactsEnabled(A){this.rawSet.jointSetContactsEnabled(this.handle,A)}contactsEnabled(){return this.rawSet.jointContactsEnabled(this.handle)}}class BS extends ke{}class OM extends ke{}class _M extends BS{rawAxis(){return Vw.X}}class ZM extends BS{rawAxis(){return Vw.AngX}}class PM extends ke{}class WM{constructor(A){this.raw=A||new ue,this.map=new gS,A&&A.forEachJointHandle(I=>{this.map.set(I,ke.newTyped(this.raw,I))})}free(){this.raw&&this.raw.free(),this.raw=void 0,this.map&&this.map.clear(),this.map=void 0}createJoint(A,I,C,B){const i=A.intoRaw(),Q=this.raw.createJoint(i,I,C,B);i.free();let e=ke.newTyped(this.raw,Q);return this.map.set(Q,e),e}remove(A,I){this.raw.remove(A,I),this.map.delete(A)}unmap(A){this.map.delete(A)}len(){return this.map.len()}contains(A){return this.get(A)!=null}get(A){return this.map.get(A)}forEach(A){this.map.forEach(A)}forEachJointHandleAttachedToRigidBody(A,I){this.raw.forEachJointAttachedToRigidBody(A,I)}getAll(){return this.map.getAll()}}(function(g){g[g.Average=0]="Average",g[g.Min=1]="Min",g[g.Multiply=2]="Multiply",g[g.Max=3]="Max"})(ts||(ts={}));class jM{constructor(A){this.raw=A||new Gk}free(){this.raw&&this.raw.free(),this.raw=void 0}}class VM{constructor(A){this.raw=A||new ye}free(){this.raw&&this.raw.free(),this.raw=void 0}forEachActiveRigidBodyHandle(A){this.raw.forEachActiveRigidBodyHandle(A)}}class XM{constructor(A){this.raw=A||new oo}free(){this.raw&&this.raw.free(),this.raw=void 0}}class zM{constructor(A){this.raw=A||new OE,this.tempManifold=new $M(null)}free(){this.raw&&this.raw.free(),this.raw=void 0}contactPairsWith(A,I){this.raw.contact_pairs_with(A,I)}intersectionPairsWith(A,I){this.raw.intersection_pairs_with(A,I)}contactPair(A,I,C){const B=this.raw.contact_pair(A,I);if(B){const i=B.collider1()!=A;let Q;for(Q=0;QQ(ns.fromRaw(I,D)),e,E,t,n,a),r.free(),l.free()}intersectionWithShape(A,I,C,B,i,Q,e,E,t,n){let a=uA.intoRaw(C),r=Cg.intoRaw(B),l=i.intoRaw(),D=this.raw.intersectionWithShape(A.raw,I.raw,a,r,l,Q,e,E,t,n);return a.free(),r.free(),l.free(),D}projectPoint(A,I,C,B,i,Q,e,E,t){let n=uA.intoRaw(C),a=os.fromRaw(I,this.raw.projectPoint(A.raw,I.raw,n,B,i,Q,e,E,t));return n.free(),a}projectPointAndGetFeature(A,I,C,B,i,Q,e,E){let t=uA.intoRaw(C),n=os.fromRaw(I,this.raw.projectPointAndGetFeature(A.raw,I.raw,t,B,i,Q,e,E));return t.free(),n}intersectionsWithPoint(A,I,C,B,i,Q,e,E,t){let n=uA.intoRaw(C);this.raw.intersectionsWithPoint(A.raw,I.raw,n,B,i,Q,e,E,t),n.free()}castShape(A,I,C,B,i,Q,e,E,t,n,a,r,l){let D=uA.intoRaw(C),G=Cg.intoRaw(B),h=uA.intoRaw(i),c=Q.intoRaw(),y=ps.fromRaw(I,this.raw.castShape(A.raw,I.raw,D,G,h,c,e,E,t,n,a,r,l));return D.free(),G.free(),h.free(),c.free(),y}intersectionsWithShape(A,I,C,B,i,Q,e,E,t,n,a){let r=uA.intoRaw(C),l=Cg.intoRaw(B),D=i.intoRaw();this.raw.intersectionsWithShape(A.raw,I.raw,r,l,D,Q,e,E,t,n,a),r.free(),l.free(),D.free()}collidersWithAabbIntersectingAabb(A,I,C){let B=uA.intoRaw(A),i=uA.intoRaw(I);this.raw.collidersWithAabbIntersectingAabb(B,i,C),B.free(),i.free()}}class jh{constructor(A){this.raw=A||new LV}free(){this.raw&&this.raw.free(),this.raw=void 0}serializeAll(A,I,C,B,i,Q,e,E,t){let n=uA.intoRaw(A);const a=this.raw.serializeAll(n,I.raw,C.raw,B.raw,i.raw,Q.raw,e.raw,E.raw,t.raw);return n.free(),a}deserializeAll(A){return al.fromRaw(this.raw.deserializeAll(A))}}class Cp{constructor(A,I){this.vertices=A,this.colors=I}}class Bp{constructor(A){this.raw=A||new KV}free(){this.raw&&this.raw.free(),this.raw=void 0,this.vertices=void 0,this.colors=void 0}render(A,I,C,B,i){this.raw.render(A.raw,I.raw,C.raw,B.raw,i.raw),this.vertices=this.raw.vertices(),this.colors=this.raw.colors()}}class ip{}class Qp{constructor(A,I,C,B,i){this.params=I,this.bodies=C,this.colliders=B,this.queries=i,this.raw=new qV(A),this.rawCharacterCollision=new UH,this._applyImpulsesToDynamicBodies=!1,this._characterMass=null}free(){this.raw&&(this.raw.free(),this.rawCharacterCollision.free()),this.raw=void 0,this.rawCharacterCollision=void 0}up(){return this.raw.up()}setUp(A){let I=uA.intoRaw(A);return this.raw.setUp(I)}applyImpulsesToDynamicBodies(){return this._applyImpulsesToDynamicBodies}setApplyImpulsesToDynamicBodies(A){this._applyImpulsesToDynamicBodies=A}characterMass(){return this._characterMass}setCharacterMass(A){this._characterMass=A}offset(){return this.raw.offset()}setOffset(A){this.raw.setOffset(A)}slideEnabled(){return this.raw.slideEnabled()}setSlideEnabled(A){this.raw.setSlideEnabled(A)}autostepMaxHeight(){return this.raw.autostepMaxHeight()}autostepMinWidth(){return this.raw.autostepMinWidth()}autostepIncludesDynamicBodies(){return this.raw.autostepIncludesDynamicBodies()}autostepEnabled(){return this.raw.autostepEnabled()}enableAutostep(A,I,C){this.raw.enableAutostep(A,I,C)}disableAutostep(){return this.raw.disableAutostep()}maxSlopeClimbAngle(){return this.raw.maxSlopeClimbAngle()}setMaxSlopeClimbAngle(A){this.raw.setMaxSlopeClimbAngle(A)}minSlopeSlideAngle(){return this.raw.minSlopeSlideAngle()}setMinSlopeSlideAngle(A){this.raw.setMinSlopeSlideAngle(A)}snapToGroundDistance(){return this.raw.snapToGroundDistance()}enableSnapToGround(A){this.raw.enableSnapToGround(A)}disableSnapToGround(){this.raw.disableSnapToGround()}snapToGroundEnabled(){return this.raw.snapToGroundEnabled()}computeColliderMovement(A,I,C,B,i){let Q=uA.intoRaw(I);this.raw.computeColliderMovement(this.params.dt,this.bodies.raw,this.colliders.raw,this.queries.raw,A.handle,Q,this._applyImpulsesToDynamicBodies,this._characterMass,C,B,this.colliders.castClosure(i)),Q.free()}computedMovement(){return uA.fromRaw(this.raw.computedMovement())}computedGrounded(){return this.raw.computedGrounded()}numComputedCollisions(){return this.raw.numComputedCollisions()}computedCollision(A,I){if(this.raw.computedCollision(A,this.rawCharacterCollision)){let C=this.rawCharacterCollision;return(I=I??new ip).translationDeltaApplied=uA.fromRaw(C.translationDeltaApplied()),I.translationDeltaRemaining=uA.fromRaw(C.translationDeltaRemaining()),I.toi=C.toi(),I.witness1=uA.fromRaw(C.worldWitness1()),I.witness2=uA.fromRaw(C.worldWitness2()),I.normal1=uA.fromRaw(C.worldNormal1()),I.normal2=uA.fromRaw(C.worldNormal2()),I.collider=this.colliders.get(C.handle()),I}return null}}class ep{constructor(A,I,C,B){this.raw=new JV(A.handle),this.bodies=I,this.colliders=C,this.queries=B,this._chassis=A}free(){this.raw&&this.raw.free(),this.raw=void 0}updateVehicle(A,I,C,B){this.raw.update_vehicle(A,this.bodies.raw,this.colliders.raw,this.queries.raw,I,C,this.colliders.castClosure(B))}currentVehicleSpeed(){return this.raw.current_vehicle_speed()}chassis(){return this._chassis}get indexUpAxis(){return this.raw.index_up_axis()}set indexUpAxis(A){this.raw.set_index_up_axis(A)}get indexForwardAxis(){return this.raw.index_forward_axis()}set setIndexForwardAxis(A){this.raw.set_index_forward_axis(A)}addWheel(A,I,C,B,i){let Q=uA.intoRaw(A),e=uA.intoRaw(I),E=uA.intoRaw(C);this.raw.add_wheel(Q,e,E,B,i),Q.free(),e.free(),E.free()}numWheels(){return this.raw.num_wheels()}wheelChassisConnectionPointCs(A){return uA.fromRaw(this.raw.wheel_chassis_connection_point_cs(A))}setWheelChassisConnectionPointCs(A,I){let C=uA.intoRaw(I);this.raw.set_wheel_chassis_connection_point_cs(A,C),C.free()}wheelSuspensionRestLength(A){return this.raw.wheel_suspension_rest_length(A)}setWheelSuspensionRestLength(A,I){this.raw.set_wheel_suspension_rest_length(A,I)}wheelMaxSuspensionTravel(A){return this.raw.wheel_max_suspension_travel(A)}setWheelMaxSuspensionTravel(A,I){this.raw.set_wheel_max_suspension_travel(A,I)}wheelRadius(A){return this.raw.wheel_radius(A)}setWheelRadius(A,I){this.raw.set_wheel_radius(A,I)}wheelSuspensionStiffness(A){return this.raw.wheel_suspension_stiffness(A)}setWheelSuspensionStiffness(A,I){this.raw.set_wheel_suspension_stiffness(A,I)}wheelSuspensionCompression(A){return this.raw.wheel_suspension_compression(A)}setWheelSuspensionCompression(A,I){this.raw.set_wheel_suspension_compression(A,I)}wheelSuspensionRelaxation(A){return this.raw.wheel_suspension_relaxation(A)}setWheelSuspensionRelaxation(A,I){this.raw.set_wheel_suspension_relaxation(A,I)}wheelMaxSuspensionForce(A){return this.raw.wheel_max_suspension_force(A)}setWheelMaxSuspensionForce(A,I){this.raw.set_wheel_max_suspension_force(A,I)}wheelBrake(A){return this.raw.wheel_brake(A)}setWheelBrake(A,I){this.raw.set_wheel_brake(A,I)}wheelSteering(A){return this.raw.wheel_steering(A)}setWheelSteering(A,I){this.raw.set_wheel_steering(A,I)}wheelEngineForce(A){return this.raw.wheel_engine_force(A)}setWheelEngineForce(A,I){this.raw.set_wheel_engine_force(A,I)}wheelDirectionCs(A){return uA.fromRaw(this.raw.wheel_direction_cs(A))}setWheelDirectionCs(A,I){let C=uA.intoRaw(I);this.raw.set_wheel_direction_cs(A,C),C.free()}wheelAxleCs(A){return uA.fromRaw(this.raw.wheel_axle_cs(A))}setWheelAxleCs(A,I){let C=uA.intoRaw(I);this.raw.set_wheel_axle_cs(A,C),C.free()}wheelFrictionSlip(A){return this.raw.wheel_friction_slip(A)}setWheelFrictionSlip(A,I){this.raw.set_wheel_friction_slip(A,I)}wheelSideFrictionStiffness(A){return this.raw.wheel_side_friction_stiffness(A)}setWheelSideFrictionStiffness(A,I){this.raw.set_wheel_side_friction_stiffness(A,I)}wheelRotation(A){return this.raw.wheel_rotation(A)}wheelForwardImpulse(A){return this.raw.wheel_forward_impulse(A)}wheelSideImpulse(A){return this.raw.wheel_side_impulse(A)}wheelSuspensionForce(A){return this.raw.wheel_suspension_force(A)}wheelContactNormal(A){return uA.fromRaw(this.raw.wheel_contact_normal_ws(A))}wheelContactPoint(A){return uA.fromRaw(this.raw.wheel_contact_point_ws(A))}wheelSuspensionLength(A){return this.raw.wheel_suspension_length(A)}wheelHardPoint(A){return uA.fromRaw(this.raw.wheel_hard_point_ws(A))}wheelIsInContact(A){return this.raw.wheel_is_in_contact(A)}wheelGroundObject(A){return this.colliders.get(this.raw.wheel_ground_object(A))}}class al{constructor(A,I,C,B,i,Q,e,E,t,n,a,r,l,D){this.gravity=A,this.integrationParameters=new qM(I),this.islands=new VM(C),this.broadPhase=new XM(B),this.narrowPhase=new zM(i),this.bodies=new JM(Q),this.colliders=new op(e),this.impulseJoints=new bM(E),this.multibodyJoints=new WM(t),this.ccdSolver=new jM(n),this.queryPipeline=new gp(a),this.physicsPipeline=new Ip(r),this.serializationPipeline=new jh(l),this.debugRenderPipeline=new Bp(D),this.characterControllers=new Set,this.vehicleControllers=new Set,this.impulseJoints.finalizeDeserialization(this.bodies),this.bodies.finalizeDeserialization(this.colliders),this.colliders.finalizeDeserialization(this.bodies)}free(){this.integrationParameters.free(),this.islands.free(),this.broadPhase.free(),this.narrowPhase.free(),this.bodies.free(),this.colliders.free(),this.impulseJoints.free(),this.multibodyJoints.free(),this.ccdSolver.free(),this.queryPipeline.free(),this.physicsPipeline.free(),this.serializationPipeline.free(),this.debugRenderPipeline.free(),this.characterControllers.forEach(A=>A.free()),this.vehicleControllers.forEach(A=>A.free()),this.integrationParameters=void 0,this.islands=void 0,this.broadPhase=void 0,this.narrowPhase=void 0,this.bodies=void 0,this.colliders=void 0,this.ccdSolver=void 0,this.impulseJoints=void 0,this.multibodyJoints=void 0,this.queryPipeline=void 0,this.physicsPipeline=void 0,this.serializationPipeline=void 0,this.debugRenderPipeline=void 0,this.characterControllers=void 0,this.vehicleControllers=void 0}static fromRaw(A){return A?new al(uA.fromRaw(A.takeGravity()),A.takeIntegrationParameters(),A.takeIslandManager(),A.takeBroadPhase(),A.takeNarrowPhase(),A.takeBodies(),A.takeColliders(),A.takeImpulseJoints(),A.takeMultibodyJoints()):null}takeSnapshot(){return this.serializationPipeline.serializeAll(this.gravity,this.integrationParameters,this.islands,this.broadPhase,this.narrowPhase,this.bodies,this.colliders,this.impulseJoints,this.multibodyJoints)}static restoreSnapshot(A){return new jh().deserializeAll(A)}debugRender(){return this.debugRenderPipeline.render(this.bodies,this.colliders,this.impulseJoints,this.multibodyJoints,this.narrowPhase),new Cp(this.debugRenderPipeline.vertices,this.debugRenderPipeline.colors)}step(A,I){this.physicsPipeline.step(this.gravity,this.integrationParameters,this.islands,this.broadPhase,this.narrowPhase,this.bodies,this.colliders,this.impulseJoints,this.multibodyJoints,this.ccdSolver,A,I),this.queryPipeline.update(this.bodies,this.colliders)}propagateModifiedBodyPositionsToColliders(){this.bodies.raw.propagateModifiedBodyPositionsToColliders(this.colliders.raw)}updateSceneQueries(){this.propagateModifiedBodyPositionsToColliders(),this.queryPipeline.update(this.bodies,this.colliders)}get timestep(){return this.integrationParameters.dt}set timestep(A){this.integrationParameters.dt=A}get numSolverIterations(){return this.integrationParameters.numSolverIterations}set numSolverIterations(A){this.integrationParameters.numSolverIterations=A}get numAdditionalFrictionIterations(){return this.integrationParameters.numAdditionalFrictionIterations}set numAdditionalFrictionIterations(A){this.integrationParameters.numAdditionalFrictionIterations=A}get numInternalPgsIterations(){return this.integrationParameters.numInternalPgsIterations}set numInternalPgsIterations(A){this.integrationParameters.numInternalPgsIterations=A}switchToStandardPgsSolver(){this.integrationParameters.switchToStandardPgsSolver()}switchToSmallStepsPgsSolver(){this.integrationParameters.switchToSmallStepsPgsSolver()}createRigidBody(A){return this.bodies.createRigidBody(this.colliders,A)}createCharacterController(A){let I=new Qp(A,this.integrationParameters,this.bodies,this.colliders,this.queryPipeline);return this.characterControllers.add(I),I}removeCharacterController(A){this.characterControllers.delete(A),A.free()}createVehicleController(A){let I=new ep(A,this.bodies,this.colliders,this.queryPipeline);return this.vehicleControllers.add(I),I}removeVehicleController(A){this.vehicleControllers.delete(A),A.free()}createCollider(A,I){let C=I?I.handle:void 0;return this.colliders.createCollider(this.bodies,A,C)}createImpulseJoint(A,I,C,B){return this.impulseJoints.createJoint(this.bodies,A,I.handle,C.handle,B)}createMultibodyJoint(A,I,C,B){return this.multibodyJoints.createJoint(A,I.handle,C.handle,B)}getRigidBody(A){return this.bodies.get(A)}getCollider(A){return this.colliders.get(A)}getImpulseJoint(A){return this.impulseJoints.get(A)}getMultibodyJoint(A){return this.multibodyJoints.get(A)}removeRigidBody(A){this.bodies&&this.bodies.remove(A.handle,this.islands,this.colliders,this.impulseJoints,this.multibodyJoints)}removeCollider(A,I){this.colliders&&this.colliders.remove(A.handle,this.islands,this.bodies,I)}removeImpulseJoint(A,I){this.impulseJoints&&this.impulseJoints.remove(A.handle,I)}removeMultibodyJoint(A,I){this.impulseJoints&&this.multibodyJoints.remove(A.handle,I)}forEachCollider(A){this.colliders.forEach(A)}forEachRigidBody(A){this.bodies.forEach(A)}forEachActiveRigidBody(A){this.bodies.forEachActiveRigidBody(this.islands,A)}castRay(A,I,C,B,i,Q,e,E){return this.queryPipeline.castRay(this.bodies,this.colliders,A,I,C,B,i,Q?Q.handle:null,e?e.handle:null,this.colliders.castClosure(E))}castRayAndGetNormal(A,I,C,B,i,Q,e,E){return this.queryPipeline.castRayAndGetNormal(this.bodies,this.colliders,A,I,C,B,i,Q?Q.handle:null,e?e.handle:null,this.colliders.castClosure(E))}intersectionsWithRay(A,I,C,B,i,Q,e,E,t){this.queryPipeline.intersectionsWithRay(this.bodies,this.colliders,A,I,C,B,i,Q,e?e.handle:null,E?E.handle:null,this.colliders.castClosure(t))}intersectionWithShape(A,I,C,B,i,Q,e,E){let t=this.queryPipeline.intersectionWithShape(this.bodies,this.colliders,A,I,C,B,i,Q?Q.handle:null,e?e.handle:null,this.colliders.castClosure(E));return t!=null?this.colliders.get(t):null}projectPoint(A,I,C,B,i,Q,e){return this.queryPipeline.projectPoint(this.bodies,this.colliders,A,I,C,B,i?i.handle:null,Q?Q.handle:null,this.colliders.castClosure(e))}projectPointAndGetFeature(A,I,C,B,i,Q){return this.queryPipeline.projectPointAndGetFeature(this.bodies,this.colliders,A,I,C,B?B.handle:null,i?i.handle:null,this.colliders.castClosure(Q))}intersectionsWithPoint(A,I,C,B,i,Q,e){this.queryPipeline.intersectionsWithPoint(this.bodies,this.colliders,A,this.colliders.castClosure(I),C,B,i?i.handle:null,Q?Q.handle:null,this.colliders.castClosure(e))}castShape(A,I,C,B,i,Q,e,E,t,n,a){return this.queryPipeline.castShape(this.bodies,this.colliders,A,I,C,B,i,Q,e,E,t?t.handle:null,n?n.handle:null,this.colliders.castClosure(a))}intersectionsWithShape(A,I,C,B,i,Q,e,E,t){this.queryPipeline.intersectionsWithShape(this.bodies,this.colliders,A,I,C,this.colliders.castClosure(B),i,Q,e?e.handle:null,E?E.handle:null,this.colliders.castClosure(t))}collidersWithAabbIntersectingAabb(A,I,C){this.queryPipeline.collidersWithAabbIntersectingAabb(A,I,this.colliders.castClosure(C))}contactPairsWith(A,I){this.narrowPhase.contactPairsWith(A.handle,this.colliders.castClosure(I))}intersectionPairsWith(A,I){this.narrowPhase.intersectionPairsWith(A.handle,this.colliders.castClosure(I))}contactPair(A,I,C){this.narrowPhase.contactPair(A.handle,I.handle,C)}intersectionPair(A,I){return this.narrowPhase.intersectionPair(A.handle,I.handle)}}(function(g){g[g.NONE=0]="NONE",g[g.COLLISION_EVENTS=1]="COLLISION_EVENTS",g[g.CONTACT_FORCE_EVENTS=2]="CONTACT_FORCE_EVENTS"})(ae||(ae={}));class Ep{free(){this.raw&&this.raw.free(),this.raw=void 0}collider1(){return this.raw.collider1()}collider2(){return this.raw.collider2()}totalForce(){return uA.fromRaw(this.raw.total_force())}totalForceMagnitude(){return this.raw.total_force_magnitude()}maxForceDirection(){return uA.fromRaw(this.raw.max_force_direction())}maxForceMagnitude(){return this.raw.max_force_magnitude()}}class tp{constructor(A,I){this.raw=I||new NH(A)}free(){this.raw&&this.raw.free(),this.raw=void 0}drainCollisionEvents(A){this.raw.drainCollisionEvents(A)}drainContactForceEvents(A){let I=new Ep;this.raw.drainContactForceEvents(C=>{I.raw=C,A(I),I.free()})}clear(){this.raw.clear()}}(function(g){g[g.NONE=0]="NONE",g[g.FILTER_CONTACT_PAIRS=1]="FILTER_CONTACT_PAIRS",g[g.FILTER_INTERSECTION_PAIRS=2]="FILTER_INTERSECTION_PAIRS"})(qr||(qr={})),function(g){g[g.EMPTY=0]="EMPTY",g[g.COMPUTE_IMPULSE=1]="COMPUTE_IMPULSE"}(Ph||(Ph={})),function(g){g[g.DYNAMIC_DYNAMIC=1]="DYNAMIC_DYNAMIC",g[g.DYNAMIC_KINEMATIC=12]="DYNAMIC_KINEMATIC",g[g.DYNAMIC_FIXED=2]="DYNAMIC_FIXED",g[g.KINEMATIC_KINEMATIC=52224]="KINEMATIC_KINEMATIC",g[g.KINEMATIC_FIXED=8704]="KINEMATIC_FIXED",g[g.FIXED_FIXED=32]="FIXED_FIXED",g[g.DEFAULT=15]="DEFAULT",g[g.ALL=60943]="ALL"}(mr||(mr={}));class Vh{constructor(A,I,C,B){this.colliderSet=A,this.handle=I,this._parent=C,this._shape=B}finalizeDeserialization(A){this.handle!=null&&(this._parent=A.get(this.colliderSet.raw.coParent(this.handle)))}ensureShapeIsCached(){this._shape||(this._shape=fC.fromRaw(this.colliderSet.raw,this.handle))}get shape(){return this.ensureShapeIsCached(),this._shape}isValid(){return this.colliderSet.raw.contains(this.handle)}translation(){return uA.fromRaw(this.colliderSet.raw.coTranslation(this.handle))}rotation(){return Cg.fromRaw(this.colliderSet.raw.coRotation(this.handle))}isSensor(){return this.colliderSet.raw.coIsSensor(this.handle)}setSensor(A){this.colliderSet.raw.coSetSensor(this.handle,A)}setShape(A){let I=A.intoRaw();this.colliderSet.raw.coSetShape(this.handle,I),I.free(),this._shape=A}setEnabled(A){this.colliderSet.raw.coSetEnabled(this.handle,A)}isEnabled(){return this.colliderSet.raw.coIsEnabled(this.handle)}setRestitution(A){this.colliderSet.raw.coSetRestitution(this.handle,A)}setFriction(A){this.colliderSet.raw.coSetFriction(this.handle,A)}frictionCombineRule(){return this.colliderSet.raw.coFrictionCombineRule(this.handle)}setFrictionCombineRule(A){this.colliderSet.raw.coSetFrictionCombineRule(this.handle,A)}restitutionCombineRule(){return this.colliderSet.raw.coRestitutionCombineRule(this.handle)}setRestitutionCombineRule(A){this.colliderSet.raw.coSetRestitutionCombineRule(this.handle,A)}setCollisionGroups(A){this.colliderSet.raw.coSetCollisionGroups(this.handle,A)}setSolverGroups(A){this.colliderSet.raw.coSetSolverGroups(this.handle,A)}activeHooks(){return this.colliderSet.raw.coActiveHooks(this.handle)}setActiveHooks(A){this.colliderSet.raw.coSetActiveHooks(this.handle,A)}activeEvents(){return this.colliderSet.raw.coActiveEvents(this.handle)}setActiveEvents(A){this.colliderSet.raw.coSetActiveEvents(this.handle,A)}activeCollisionTypes(){return this.colliderSet.raw.coActiveCollisionTypes(this.handle)}setContactForceEventThreshold(A){return this.colliderSet.raw.coSetContactForceEventThreshold(this.handle,A)}contactForceEventThreshold(){return this.colliderSet.raw.coContactForceEventThreshold(this.handle)}setActiveCollisionTypes(A){this.colliderSet.raw.coSetActiveCollisionTypes(this.handle,A)}setDensity(A){this.colliderSet.raw.coSetDensity(this.handle,A)}setMass(A){this.colliderSet.raw.coSetMass(this.handle,A)}setMassProperties(A,I,C,B){let i=uA.intoRaw(I),Q=uA.intoRaw(C),e=Cg.intoRaw(B);this.colliderSet.raw.coSetMassProperties(this.handle,A,i,Q,e),i.free(),Q.free(),e.free()}setTranslation(A){this.colliderSet.raw.coSetTranslation(this.handle,A.x,A.y,A.z)}setTranslationWrtParent(A){this.colliderSet.raw.coSetTranslationWrtParent(this.handle,A.x,A.y,A.z)}setRotation(A){this.colliderSet.raw.coSetRotation(this.handle,A.x,A.y,A.z,A.w)}setRotationWrtParent(A){this.colliderSet.raw.coSetRotationWrtParent(this.handle,A.x,A.y,A.z,A.w)}shapeType(){return this.colliderSet.raw.coShapeType(this.handle)}halfExtents(){return uA.fromRaw(this.colliderSet.raw.coHalfExtents(this.handle))}setHalfExtents(A){const I=uA.intoRaw(A);this.colliderSet.raw.coSetHalfExtents(this.handle,I)}radius(){return this.colliderSet.raw.coRadius(this.handle)}setRadius(A){this.colliderSet.raw.coSetRadius(this.handle,A)}roundRadius(){return this.colliderSet.raw.coRoundRadius(this.handle)}setRoundRadius(A){this.colliderSet.raw.coSetRoundRadius(this.handle,A)}halfHeight(){return this.colliderSet.raw.coHalfHeight(this.handle)}setHalfHeight(A){this.colliderSet.raw.coSetHalfHeight(this.handle,A)}vertices(){return this.colliderSet.raw.coVertices(this.handle)}indices(){return this.colliderSet.raw.coIndices(this.handle)}heightfieldHeights(){return this.colliderSet.raw.coHeightfieldHeights(this.handle)}heightfieldScale(){let A=this.colliderSet.raw.coHeightfieldScale(this.handle);return uA.fromRaw(A)}heightfieldNRows(){return this.colliderSet.raw.coHeightfieldNRows(this.handle)}heightfieldNCols(){return this.colliderSet.raw.coHeightfieldNCols(this.handle)}parent(){return this._parent}friction(){return this.colliderSet.raw.coFriction(this.handle)}restitution(){return this.colliderSet.raw.coRestitution(this.handle)}density(){return this.colliderSet.raw.coDensity(this.handle)}mass(){return this.colliderSet.raw.coMass(this.handle)}volume(){return this.colliderSet.raw.coVolume(this.handle)}collisionGroups(){return this.colliderSet.raw.coCollisionGroups(this.handle)}solverGroups(){return this.colliderSet.raw.coSolverGroups(this.handle)}containsPoint(A){let I=uA.intoRaw(A),C=this.colliderSet.raw.coContainsPoint(this.handle,I);return I.free(),C}projectPoint(A,I){let C=uA.intoRaw(A),B=ds.fromRaw(this.colliderSet.raw.coProjectPoint(this.handle,C,I));return C.free(),B}intersectsRay(A,I){let C=uA.intoRaw(A.origin),B=uA.intoRaw(A.dir),i=this.colliderSet.raw.coIntersectsRay(this.handle,C,B,I);return C.free(),B.free(),i}castShape(A,I,C,B,i,Q,e){let E=uA.intoRaw(A),t=uA.intoRaw(C),n=Cg.intoRaw(B),a=uA.intoRaw(i),r=I.intoRaw(),l=ko.fromRaw(this.colliderSet,this.colliderSet.raw.coCastShape(this.handle,E,r,t,n,a,Q,e));return E.free(),t.free(),n.free(),a.free(),r.free(),l}castCollider(A,I,C,B,i){let Q=uA.intoRaw(A),e=uA.intoRaw(C),E=ps.fromRaw(this.colliderSet,this.colliderSet.raw.coCastCollider(this.handle,Q,I.handle,e,B,i));return Q.free(),e.free(),E}intersectsShape(A,I,C){let B=uA.intoRaw(I),i=Cg.intoRaw(C),Q=A.intoRaw(),e=this.colliderSet.raw.coIntersectsShape(this.handle,Q,B,i);return B.free(),i.free(),Q.free(),e}contactShape(A,I,C,B){let i=uA.intoRaw(I),Q=Cg.intoRaw(C),e=A.intoRaw(),E=ao.fromRaw(this.colliderSet.raw.coContactShape(this.handle,e,i,Q,B));return i.free(),Q.free(),e.free(),E}contactCollider(A,I){return ao.fromRaw(this.colliderSet.raw.coContactCollider(this.handle,A.handle,I))}castRay(A,I,C){let B=uA.intoRaw(A.origin),i=uA.intoRaw(A.dir),Q=this.colliderSet.raw.coCastRay(this.handle,B,i,I,C);return B.free(),i.free(),Q}castRayAndGetNormal(A,I,C){let B=uA.intoRaw(A.origin),i=uA.intoRaw(A.dir),Q=Ms.fromRaw(this.colliderSet.raw.coCastRayAndGetNormal(this.handle,B,i,I,C));return B.free(),i.free(),Q}}(function(g){g[g.Density=0]="Density",g[g.Mass=1]="Mass",g[g.MassProps=2]="MassProps"})(SE||(SE={}));class EC{constructor(A){this.enabled=!0,this.shape=A,this.massPropsMode=SE.Density,this.density=1,this.friction=.5,this.restitution=0,this.rotation=Cg.identity(),this.translation=uA.zeros(),this.isSensor=!1,this.collisionGroups=4294967295,this.solverGroups=4294967295,this.frictionCombineRule=ts.Average,this.restitutionCombineRule=ts.Average,this.activeCollisionTypes=mr.DEFAULT,this.activeEvents=ae.NONE,this.activeHooks=qr.NONE,this.mass=0,this.centerOfMass=uA.zeros(),this.contactForceEventThreshold=0,this.principalAngularInertia=uA.zeros(),this.angularInertiaLocalFrame=Cg.identity()}static ball(A){const I=new iS(A);return new EC(I)}static capsule(A,I){const C=new ES(A,I);return new EC(C)}static segment(A,I){const C=new tS(A,I);return new EC(C)}static triangle(A,I,C){const B=new oS(A,I,C);return new EC(B)}static roundTriangle(A,I,C,B){const i=new nS(A,I,C,B);return new EC(i)}static polyline(A,I){const C=new sS(A,I);return new EC(C)}static trimesh(A,I){const C=new aS(A,I);return new EC(C)}static cuboid(A,I,C){const B=new QS(A,I,C);return new EC(B)}static roundCuboid(A,I,C,B){const i=new eS(A,I,C,B);return new EC(i)}static heightfield(A,I,C,B){const i=new rS(A,I,C,B);return new EC(i)}static cylinder(A,I){const C=new lS(A,I);return new EC(C)}static roundCylinder(A,I,C){const B=new cS(A,I,C);return new EC(B)}static cone(A,I){const C=new DS(A,I);return new EC(C)}static roundCone(A,I,C){const B=new hS(A,I,C);return new EC(B)}static convexHull(A){const I=new Lr(A,null);return new EC(I)}static convexMesh(A,I){const C=new Lr(A,I);return new EC(C)}static roundConvexHull(A,I){const C=new Yr(A,null,I);return new EC(C)}static roundConvexMesh(A,I,C){const B=new Yr(A,I,C);return new EC(B)}setTranslation(A,I,C){if(typeof A!="number"||typeof I!="number"||typeof C!="number")throw TypeError("The translation components must be numbers.");return this.translation={x:A,y:I,z:C},this}setRotation(A){return Cg.copy(this.rotation,A),this}setSensor(A){return this.isSensor=A,this}setEnabled(A){return this.enabled=A,this}setDensity(A){return this.massPropsMode=SE.Density,this.density=A,this}setMass(A){return this.massPropsMode=SE.Mass,this.mass=A,this}setMassProperties(A,I,C,B){return this.massPropsMode=SE.MassProps,this.mass=A,uA.copy(this.centerOfMass,I),uA.copy(this.principalAngularInertia,C),Cg.copy(this.angularInertiaLocalFrame,B),this}setRestitution(A){return this.restitution=A,this}setFriction(A){return this.friction=A,this}setFrictionCombineRule(A){return this.frictionCombineRule=A,this}setRestitutionCombineRule(A){return this.restitutionCombineRule=A,this}setCollisionGroups(A){return this.collisionGroups=A,this}setSolverGroups(A){return this.solverGroups=A,this}setActiveHooks(A){return this.activeHooks=A,this}setActiveEvents(A){return this.activeEvents=A,this}setActiveCollisionTypes(A){return this.activeCollisionTypes=A,this}setContactForceEventThreshold(A){return this.contactForceEventThreshold=A,this}}class op{constructor(A){this.raw=A||new IC,this.map=new gS,A&&A.forEachColliderHandle(I=>{this.map.set(I,new Vh(this,I,null))})}free(){this.raw&&this.raw.free(),this.raw=void 0,this.map&&this.map.clear(),this.map=void 0}castClosure(A){return I=>A?A(this.get(I)):void 0}finalizeDeserialization(A){this.map.forEach(I=>I.finalizeDeserialization(A))}createCollider(A,I,C){let B=C!=null&&C!=null;if(B&&isNaN(C))throw Error("Cannot create a collider with a parent rigid-body handle that is not a number.");let i=I.shape.intoRaw(),Q=uA.intoRaw(I.translation),e=Cg.intoRaw(I.rotation),E=uA.intoRaw(I.centerOfMass),t=uA.intoRaw(I.principalAngularInertia),n=Cg.intoRaw(I.angularInertiaLocalFrame),a=this.raw.createCollider(I.enabled,i,Q,e,I.massPropsMode,I.mass,E,t,n,I.density,I.friction,I.restitution,I.frictionCombineRule,I.restitutionCombineRule,I.isSensor,I.collisionGroups,I.solverGroups,I.activeCollisionTypes,I.activeHooks,I.activeEvents,I.contactForceEventThreshold,B,B?C:0,A.raw);i.free(),Q.free(),e.free(),E.free(),t.free(),n.free();let r=B?A.get(C):null,l=new Vh(this,a,r,I.shape);return this.map.set(a,l),l}remove(A,I,C,B){this.raw.remove(A,I.raw,C.raw,B),this.unmap(A)}unmap(A){this.map.delete(A)}get(A){return this.map.get(A)}len(){return this.map.len()}contains(A){return this.get(A)!=null}forEach(A){this.map.forEach(A)}getAll(){return this.map.getAll()}}function YV(g,A,I,C){return new(I||(I=Promise))(function(B,i){function Q(t){try{E(C.next(t))}catch(n){i(n)}}function e(t){try{E(C.throw(t))}catch(n){i(n)}}function E(t){var n;t.done?B(t.value):(n=t.value,n instanceof I?n:new I(function(a){a(n)})).then(Q,e)}E((C=C.apply(g,A||[])).next())})}for(var HV={byteLength:function(g){var A=sK(g),I=A[0],C=A[1];return 3*(I+C)/4-C},toByteArray:function(g){var A,I,C=sK(g),B=C[0],i=C[1],Q=new TV(function(t,n,a){return 3*(n+a)/4-a}(0,B,i)),e=0,E=i>0?B-4:B;for(I=0;I>16&255,Q[e++]=A>>8&255,Q[e++]=255&A;return i===2&&(A=Ni[g.charCodeAt(I)]<<2|Ni[g.charCodeAt(I+1)]>>4,Q[e++]=255&A),i===1&&(A=Ni[g.charCodeAt(I)]<<10|Ni[g.charCodeAt(I+1)]<<4|Ni[g.charCodeAt(I+2)]>>2,Q[e++]=A>>8&255,Q[e++]=255&A),Q},fromByteArray:function(g){for(var A,I=g.length,C=I%3,B=[],i=16383,Q=0,e=I-C;Qe?e:Q+i));return C===1?(A=g[I-1],B.push(UQ[A>>2]+UQ[A<<4&63]+"==")):C===2&&(A=(g[I-2]<<8)+g[I-1],B.push(UQ[A>>10]+UQ[A>>4&63]+UQ[A<<2&63]+"=")),B.join("")}},UQ=[],Ni=[],TV=typeof Uint8Array<"u"?Uint8Array:Array,a0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",sn=0,xV=a0.length;sn0)throw new Error("Invalid string. Length must be a multiple of 4");var I=g.indexOf("=");return I===-1&&(I=A),[I,I===A?0:4-I%4]}function vV(g,A,I){for(var C,B,i=[],Q=A;Q>18&63]+UQ[B>>12&63]+UQ[B>>6&63]+UQ[63&B]);return i.join("")}function RH(){return YV(this,void 0,void 0,function*(){yield FH(HV.toByteArray("AGFzbQEAAAAB+wuZAWACf38AYAN/f38AYAR/f39/AGACf38Bf2ABfwF/YAN/f38Bf2ABfwBgBX9/f39/AGAGf39/f31/AGACf3wBf2ABfwF9YAV/f399fwBgBX9/f399AGADf399AGADf3x/AGAGf39/f399AGAEf39/fQF/YAABf2AEf39/fwF9YAR/f39/AX9gA39/fwF9YAN/f30Bf2ACf30AYAZ/f39/f38Bf2AGf39/f39/AGABfQF9YAR/fH9/AGACf3wBfWADf3x9AGAIf39/f39/fX8Bf2ADf398AGAHf39/f39/fwBgAn9/AX1gBX9/f39/AX9gCH9/f39/f39/AGAAAGABfwF8YAh/f39/f39/fQBgA398fwF9YAN9fX0Bf2APf39/f39/f39/f39/f39/AGAGf31/f399AGAKf39/f39/f399fwBgC39/f39/f39/fX1/AGAFf399f38AYAZ/fH9/f38AYAN/fH8Bf2AFf3x/f38AYAZ/fH19fX0AYAJ9fQF/YAV/fH19fQBgAXwBf2AKf39/f39/fX9/fwBgCX9/f39/f39/fwBgB39/f399f38AYAl/f39/f399f38Bf2AGf319f399AGALf39/f39/f39/f38AYAR/fX9/AX9gBn9/f399fQBgD39/f39/f39/f39/fH98fwBgA35+fwF+YAN/fX0AYA9/f39/f31/f39/f3x/fH8Bf2ABfQF/YAN/fHwBf2AFf3x/fX0AYAR/fH1/AGACf3wAYAJ/fAF8YAV/f3x8fwF8YAR9fX19AX9gDn9/f39/f39/f39/f39/AGADf31/AGAIf39/f31/f38AYAl/f39/f31/f38AYAd/f39/f399AGALf39/f39/f399f38AYAx/fX9/f39/f39/f38Bf2APf39/f39/f39/f39/fX1/AGALf39/fX9/fX99fX8AYAl/f39/f39/fX8AYAl/f39/f39/f30AYAh/f39/f31/fwBgBn9/f39/fwF9YBJ/f39/f39/f39/f399f319fX0AYAd/f39/f39/AX1gCH9/f399fX9/AGAJf39/f39/fX9/AGAGf399f31/AGAHf399f399fwBgCn9/f39/f39/fX8Bf2AIf31/f39/f38AYAp/fX9/f39/f39/AGAMf39/f31/f39/f39/AGAHf39/f39/fQF/YAd/f399fX9/AGAGf31/f39/AGARf39/f39/f31/f39/f3x/fH8Bf2AIf39/f39/fX8AYAZ/fH9/f30Bf2AIf31/fX99f38AYAt/f39/fX9/f39/fwBgBH9/fX8AYAN/fn4Bf2AFf39+fn8AYAt/f39/f39/f399fwBgB39/f39/fX8Bf2AGf39/f319AX9gEH9/f39/fX9/f39/f3x/fH8AYAp/f39/f39/f39/AX9gBn98f399fwF/YAl/fH9/f39/fX8Bf2ANf39/f39/f319fX19fQBgGn9/f399fX9/f39/f39/f39/f319f39/f39/AXxgDX9/f39/f39/f3x/fH8AYBp/f39/f39/fX9/f319fX9/f39/f39/fX98fwBgB39/f39/fX8BfWAJf39/f39/fn5+AGAGf39/f399AX9gDX9/f39/f39/f3x/fH8Bf2AMf39/f39/f398f3x/AX9gBX98f39/AX9gB39/f39/f38Bf2AHf3x/fH99fwF/YAN/fn8Bf2AGf3x/f31/AX1gA35/fwF/YAJ9fQF9YAV/fH9/fQF/YAR/fH9/AX9gBX19fX9/AX9gA31/fwF/YA5/fX9/f3x/f399f39/fwBgBH98fH0Bf2AHf3x9f39/fwBgBn98fX9/fwBgBH9/f30AYAJ/fgBgEn99f39/f39/f39/f39/f39/fwBgCX99f39/f39/fwBgA398fwF8YAV/f39/fQF/YAZ/fH99fX0AYAd/fH99fX19AGAEf319fwBgBn9/fX19fQBgB398fX19fX8AYAZ/fH19fX8AYAR/fX9/AGAFf39+f38AYAR/fn9/AGAFf398f38AAoUGFgN3YmcVX193YmluZGdlbl9udW1iZXJfbmV3ADMDd2JnFl9fd2JpbmRnZW5fYm9vbGVhbl9nZXQABAN3YmcaX193YmluZGdlbl9vYmplY3RfZHJvcF9yZWYABgN3YmcVX193YmluZGdlbl9udW1iZXJfZ2V0AAADd2JnFl9fd2JpbmRnZW5faXNfZnVuY3Rpb24ABAN3YmckX193YmdfcmF3cmF5Y29sbGlkZXJpbnRlcnNlY3Rpb25fbmV3AAQDd2JnHl9fd2JnX3Jhd2NvbnRhY3Rmb3JjZWV2ZW50X25ldwAEA3diZxtfX3diZ19jYWxsXzAxNzM0ZGU1NWQ2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X2F1dG9zdGVwSW5jbHVkZXNEeW5hbWljQm9kaWVzAJMKL3Jhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfYXV0b3N0ZXBFbmFibGVkAIcLLnJhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfZW5hYmxlQXV0b3N0ZXAAywkvcmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9kaXNhYmxlQXV0b3N0ZXAAiAsycmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9tYXhTbG9wZUNsaW1iQW5nbGUAows1cmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9zZXRNYXhTbG9wZUNsaW1iQW5nbGUAiQsycmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9taW5TbG9wZVNsaWRlQW5nbGUApAs1cmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9zZXRNaW5TbG9wZVNsaWRlQW5nbGUAigs0cmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9zbmFwVG9Hcm91bmREaXN0YW5jZQCOCjJyYXdraW5lbWF0aWNjaGFyYWN0ZXJjb250cm9sbGVyX2VuYWJsZVNuYXBUb0dyb3VuZADMCjNyYXdraW5lbWF0aWNjaGFyYWN0ZXJjb250cm9sbGVyX2Rpc2FibGVTbmFwVG9Hcm91bmQAiwszcmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9zbmFwVG9Hcm91bmRFbmFibGVkAIwLN3Jhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfY29tcHV0ZUNvbGxpZGVyTW92ZW1lbnQAmgUwcmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9jb21wdXRlZE1vdmVtZW50AMkHMHJhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfY29tcHV0ZWRHcm91bmRlZAClCzVyYXdraW5lbWF0aWNjaGFyYWN0ZXJjb250cm9sbGVyX251bUNvbXB1dGVkQ29sbGlzaW9ucwCmCzFyYXdraW5lbWF0aWNjaGFyYWN0ZXJjb250cm9sbGVyX2NvbXB1dGVkQ29sbGlzaW9uALcHIF9fd2JnX3Jhd2NoYXJhY3RlcmNvbGxpc2lvbl9mcmVlAMALGXJhd2NoYXJhY3RlcmNvbGxpc2lvbl9uZXcAuAkccmF3Y2hhcmFjdGVyY29sbGlzaW9uX2hhbmRsZQDBCy1yYXdjaGFyYWN0ZXJjb2xsaXNpb25fdHJhbnNsYXRpb25EZWx0YUFwcGxpZWQAygcvcmF3Y2hhcmFjdGVyY29sbGlzaW9uX3RyYW5zbGF0aW9uRGVsdGFSZW1haW5pbmcAywcZcmF3Y2hhcmFjdGVyY29sbGlzaW9uX3RvaQCnCyNyYXdjaGFyYWN0ZXJjb2xsaXNpb25fd29ybGRXaXRuZXNzMQDMByNyYXdjaGFyYWN0ZXJjb2xsaXNpb25fd29ybGRXaXRuZXNzMgDXBCJyYXdjaGFyYWN0ZXJjb2xsaXNpb25fd29ybGROb3JtYWwxAM0HInJhd2NoYXJhY3RlcmNvbGxpc2lvbl93b3JsZE5vcm1hbDIAiAUtX193YmdfcmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9mcmVlAJIHJnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfbmV3ALkJOHJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfY3VycmVudF92ZWhpY2xlX3NwZWVkAKgLKnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfY2hhc3NpcwCpCzByYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX2luZGV4X3VwX2F4aXMAqgs0cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfaW5kZXhfdXBfYXhpcwCNCzVyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX2luZGV4X2ZvcndhcmRfYXhpcwCrCzlyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF9pbmRleF9mb3J3YXJkX2F4aXMAjgsscmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9hZGRfd2hlZWwAwAUtcmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9udW1fd2hlZWxzAKwLMXJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfdXBkYXRlX3ZlaGljbGUAgAZEcmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9jaGFzc2lzX2Nvbm5lY3Rpb25fcG9pbnRfY3MAgQZIcmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfY2hhc3Npc19jb25uZWN0aW9uX3BvaW50X2NzAJ0HP3Jhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfc3VzcGVuc2lvbl9yZXN0X2xlbmd0aACICENyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF93aGVlbF9zdXNwZW5zaW9uX3Jlc3RfbGVuZ3RoAPIJPnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfbWF4X3N1c3BlbnNpb25fdHJhdmVsAIkIQnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfc2V0X3doZWVsX21heF9zdXNwZW5zaW9uX3RyYXZlbADzCS9yYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX3JhZGl1cwCKCDNyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF93aGVlbF9yYWRpdXMA9Ak9cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9zdXNwZW5zaW9uX3N0aWZmbmVzcwCLCEFyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF93aGVlbF9zdXNwZW5zaW9uX3N0aWZmbmVzcwD1CT9yYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX3N1c3BlbnNpb25fY29tcHJlc3Npb24AjAhDcmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfc3VzcGVuc2lvbl9jb21wcmVzc2lvbgD2CT5yYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX3N1c3BlbnNpb25fcmVsYXhhdGlvbgCNCEJyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF93aGVlbF9zdXNwZW5zaW9uX3JlbGF4YXRpb24A9wk9cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9tYXhfc3VzcGVuc2lvbl9mb3JjZQCOCEFyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF93aGVlbF9tYXhfc3VzcGVuc2lvbl9mb3JjZQD4CS5yYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX2JyYWtlAI8IMnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfc2V0X3doZWVsX2JyYWtlAPkJMXJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfc3RlZXJpbmcAkAg1cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfc3RlZXJpbmcA+gk1cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9lbmdpbmVfZm9yY2UAkQg5cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfZW5naW5lX2ZvcmNlAPsJNXJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfZGlyZWN0aW9uX2NzAIIGOXJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfc2V0X3doZWVsX2RpcmVjdGlvbl9jcwCeBzByYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX2F4bGVfY3MAgwY0cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfYXhsZV9jcwCfBzZyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX2ZyaWN0aW9uX3NsaXAAkgg6cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfZnJpY3Rpb25fc2xpcAD8CUByYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX3NpZGVfZnJpY3Rpb25fc3RpZmZuZXNzAJMIRHJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfc2V0X3doZWVsX3NpZGVfZnJpY3Rpb25fc3RpZmZuZXNzAP0JMXJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfcm90YXRpb24AlAg4cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9mb3J3YXJkX2ltcHVsc2UAlQg1cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9zaWRlX2ltcHVsc2UAlgg5cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9zdXNwZW5zaW9uX2ZvcmNlAJcIOnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfY29udGFjdF9ub3JtYWxfd3MAhAY5cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9jb250YWN0X3BvaW50X3dzAIUGOnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfc3VzcGVuc2lvbl9sZW5ndGgAmAg2cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9oYXJkX3BvaW50X3dzAIYGNnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfaXNfaW5fY29udGFjdACECTZyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX2dyb3VuZF9vYmplY3QAqQcXX193YmdfcmF3Y2Nkc29sdmVyX2ZyZWUA4gkQcmF3Y2Nkc29sdmVyX25ldwDjCRxyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRUeXBlAKoHI3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEJvZHlIYW5kbGUxAOcII3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEJvZHlIYW5kbGUyALgIH3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEZyYW1lWDEAjgYfcmF3aW1wdWxzZWpvaW50c2V0X2pvaW50RnJhbWVYMgCPBh9yYXdpbXB1bHNlam9pbnRzZXRfam9pbnRBbmNob3IxAJAGH3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEFuY2hvcjIAkQYicmF3aW1wdWxzZWpvaW50c2V0X2pvaW50U2V0QW5jaG9yMQCYByJyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRTZXRBbmNob3IyAJkHJ3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludENvbnRhY3RzRW5hYmxlZAC5CCpyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRTZXRDb250YWN0c0VuYWJsZWQAjQklcmF3aW1wdWxzZWpvaW50c2V0X2pvaW50TGltaXRzRW5hYmxlZACgByFyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRMaW1pdHNNaW4AzgchcmF3aW1wdWxzZWpvaW50c2V0X2pvaW50TGltaXRzTWF4AM8HIXJhd2ltcHVsc2Vqb2ludHNldF9qb2ludFNldExpbWl0cwChBytyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRDb25maWd1cmVNb3Rvck1vZGVsAKwHLnJhd2ltcHVsc2Vqb2ludHNldF9qb2ludENvbmZpZ3VyZU1vdG9yVmVsb2NpdHkAhAgucmF3aW1wdWxzZWpvaW50c2V0X2pvaW50Q29uZmlndXJlTW90b3JQb3NpdGlvbgCFCCZyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRDb25maWd1cmVNb3RvcgCGCB1fX3diZ19yYXdpbXB1bHNlam9pbnRzZXRfZnJlZQDkCRZyYXdpbXB1bHNlam9pbnRzZXRfbmV3AOUJHnJhd2ltcHVsc2Vqb2ludHNldF9jcmVhdGVKb2ludADSCBlyYXdpbXB1bHNlam9pbnRzZXRfcmVtb3ZlAMYJFnJhd2ltcHVsc2Vqb2ludHNldF9sZW4ArQsbcmF3aW1wdWxzZWpvaW50c2V0X2NvbnRhaW5zAMwJJXJhd2ltcHVsc2Vqb2ludHNldF9mb3JFYWNoSm9pbnRIYW5kbGUA1QUycmF3aW1wdWxzZWpvaW50c2V0X2ZvckVhY2hKb2ludEF0dGFjaGVkVG9SaWdpZEJvZHkAjgkjX193YmdfcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX2ZyZWUAwAsccmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX25ldwD7BhtyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfZHQArgsccmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX2VycACvCyxyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfbnVtU29sdmVySXRlcmF0aW9ucwDCCzhyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfbnVtQWRkaXRpb25hbEZyaWN0aW9uSXRlcmF0aW9ucwCwCzFyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfbnVtSW50ZXJuYWxQZ3NJdGVyYXRpb25zALELH3Jhd2ludGVncmF0aW9ucGFyYW1ldGVyc19zZXRfZHQAjwsgcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9lcnAAkAsvcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9hbGxvd2VkTGluZWFyRXJyb3IAkQsvcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9wcmVkaWN0aW9uRGlzdGFuY2UAkgswcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9udW1Tb2x2ZXJJdGVyYXRpb25zAN4KPHJhd2ludGVncmF0aW9ucGFyYW1ldGVyc19zZXRfbnVtQWRkaXRpb25hbEZyaWN0aW9uSXRlcmF0aW9ucwCTCzVyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfc2V0X251bUludGVybmFsUGdzSXRlcmF0aW9ucwCUCzJyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfc3dpdGNoVG9TdGFuZGFyZFBnc1NvbHZlcgDoCjRyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfc3dpdGNoVG9TbWFsbFN0ZXBzUGdzU29sdmVyAOkKG19fd2JnX3Jhd2lzbGFuZG1hbmFnZXJfZnJlZQDmCRRyYXdpc2xhbmRtYW5hZ2VyX25ldwDHCS1yYXdpc2xhbmRtYW5hZ2VyX2ZvckVhY2hBY3RpdmVSaWdpZEJvZHlIYW5kbGUA4gUaX193YmdfcmF3Z2VuZXJpY2pvaW50X2ZyZWUAwAsXcmF3Z2VuZXJpY2pvaW50X2dlbmVyaWMAmwUWcmF3Z2VuZXJpY2pvaW50X3NwcmluZwCBBRRyYXdnZW5lcmljam9pbnRfcm9wZQCEBRlyYXdnZW5lcmljam9pbnRfc3BoZXJpY2FsAIUFGXJhd2dlbmVyaWNqb2ludF9wcmlzbWF0aWMA5QIVcmF3Z2VuZXJpY2pvaW50X2ZpeGVkAOYCGHJhd2dlbmVyaWNqb2ludF9yZXZvbHV0ZQCoAx5yYXdtdWx0aWJvZHlqb2ludHNldF9qb2ludFR5cGUA5QUhcmF3bXVsdGlib2R5am9pbnRzZXRfam9pbnRGcmFtZVgxAJ4FIXJhd211bHRpYm9keWpvaW50c2V0X2pvaW50RnJhbWVYMgCfBSFyYXdtdWx0aWJvZHlqb2ludHNldF9qb2ludEFuY2hvcjEAoAUhcmF3bXVsdGlib2R5am9pbnRzZXRfam9pbnRBbmNob3IyAKEFKXJhd211bHRpYm9keWpvaW50c2V0X2pvaW50Q29udGFjdHNFbmFibGVkAOAGLHJhd211bHRpYm9keWpvaW50c2V0X2pvaW50U2V0Q29udGFjdHNFbmFibGVkAPUGJ3Jhd211bHRpYm9keWpvaW50c2V0X2pvaW50TGltaXRzRW5hYmxlZADjBSNyYXdtdWx0aWJvZHlqb2ludHNldF9qb2ludExpbWl0c01pbgCHBiNyYXdtdWx0aWJvZHlqb2ludHNldF9qb2ludExpbWl0c01heACIBh9fX3diZ19yYXdtdWx0aWJvZHlqb2ludHNldF9mcmVlAOcJGHJhd211bHRpYm9keWpvaW50c2V0X25ldwDoCSByYXdtdWx0aWJvZHlqb2ludHNldF9jcmVhdGVKb2ludADTCBtyYXdtdWx0aWJvZHlqb2ludHNldF9yZW1vdmUAkQodcmF3bXVsdGlib2R5am9pbnRzZXRfY29udGFpbnMAnAgncmF3bXVsdGlib2R5am9pbnRzZXRfZm9yRWFjaEpvaW50SGFuZGxlALEJNHJhd211bHRpYm9keWpvaW50c2V0X2ZvckVhY2hKb2ludEF0dGFjaGVkVG9SaWdpZEJvZHkAjwkdcmF3cmlnaWRib2R5c2V0X3JiVHJhbnNsYXRpb24AkgYacmF3cmlnaWRib2R5c2V0X3JiUm90YXRpb24AuwYXcmF3cmlnaWRib2R5c2V0X3JiU2xlZXAA2QkccmF3cmlnaWRib2R5c2V0X3JiSXNTbGVlcGluZwC6CBpyYXdyaWdpZGJvZHlzZXRfcmJJc01vdmluZwDoCCFyYXdyaWdpZGJvZHlzZXRfcmJOZXh0VHJhbnNsYXRpb24AkwYecmF3cmlnaWRib2R5c2V0X3JiTmV4dFJvdGF0aW9uAJQGIHJhd3JpZ2lkYm9keXNldF9yYlNldFRyYW5zbGF0aW9uAKwKHXJhd3JpZ2lkYm9keXNldF9yYlNldFJvdGF0aW9uAJ8KG3Jhd3JpZ2lkYm9keXNldF9yYlNldExpbnZlbADABxtyYXdyaWdpZGJvZHlzZXRfcmJTZXRBbmd2ZWwAwQctcmF3cmlnaWRib2R5c2V0X3JiU2V0TmV4dEtpbmVtYXRpY1RyYW5zbGF0aW9uAPcHKnJhd3JpZ2lkYm9keXNldF9yYlNldE5leHRLaW5lbWF0aWNSb3RhdGlvbgDMBjZyYXdyaWdpZGJvZHlzZXRfcmJSZWNvbXB1dGVNYXNzUHJvcGVydGllc0Zyb21Db2xsaWRlcnMA4QcjcmF3cmlnaWRib2R5c2V0X3JiU2V0QWRkaXRpb25hbE1hc3MA+ActcmF3cmlnaWRib2R5c2V0X3JiU2V0QWRkaXRpb25hbE1hc3NQcm9wZXJ0aWVzAKYFGHJhd3JpZ2lkYm9keXNldF9yYkxpbnZlbAC8BhhyYXdyaWdpZGJvZHlzZXRfcmJBbmd2ZWwAlQYicmF3cmlnaWRib2R5c2V0X3JiTG9ja1RyYW5zbGF0aW9ucwDNBihyYXdyaWdpZGJvZHlzZXRfcmJTZXRFbmFibGVkVHJhbnNsYXRpb25zAIcKH3Jhd3JpZ2lkYm9keXNldF9yYkxvY2tSb3RhdGlvbnMAzgYlcmF3cmlnaWRib2R5c2V0X3JiU2V0RW5hYmxlZFJvdGF0aW9ucwCuBSByYXdyaWdpZGJvZHlzZXRfcmJEb21pbmFuY2VHcm91cAC7CCNyYXdyaWdpZGJvZHlzZXRfcmJTZXREb21pbmFuY2VHcm91cACdCBtyYXdyaWdpZGJvZHlzZXRfcmJFbmFibGVDY2QAkAkWcmF3cmlnaWRib2R5c2V0X3JiTWFzcwD5BxlyYXdyaWdpZGJvZHlzZXRfcmJJbnZNYXNzALwIInJhd3JpZ2lkYm9keXNldF9yYkVmZmVjdGl2ZUludk1hc3MAlgYacmF3cmlnaWRib2R5c2V0X3JiTG9jYWxDb20AlwYacmF3cmlnaWRib2R5c2V0X3JiV29ybGRDb20AmAYpcmF3cmlnaWRib2R5c2V0X3JiSW52UHJpbmNpcGFsSW5lcnRpYVNxcnQAmQYscmF3cmlnaWRib2R5c2V0X3JiUHJpbmNpcGFsSW5lcnRpYUxvY2FsRnJhbWUAmgYicmF3cmlnaWRib2R5c2V0X3JiUHJpbmNpcGFsSW5lcnRpYQDdBi5yYXdyaWdpZGJvZHlzZXRfcmJFZmZlY3RpdmVXb3JsZEludkluZXJ0aWFTcXJ0AMEFKXJhd3JpZ2lkYm9keXNldF9yYkVmZmVjdGl2ZUFuZ3VsYXJJbmVydGlhAL0GGHJhd3JpZ2lkYm9keXNldF9yYldha2VVcAD6Bx5yYXdyaWdpZGJvZHlzZXRfcmJJc0NjZEVuYWJsZWQAvQgecmF3cmlnaWRib2R5c2V0X3JiTnVtQ29sbGlkZXJzAL4IGnJhd3JpZ2lkYm9keXNldF9yYkNvbGxpZGVyAKIHGnJhd3JpZ2lkYm9keXNldF9yYkJvZHlUeXBlAL8IHXJhd3JpZ2lkYm9keXNldF9yYlNldEJvZHlUeXBlAKsIGXJhd3JpZ2lkYm9keXNldF9yYklzRml4ZWQAoggdcmF3cmlnaWRib2R5c2V0X3JiSXNLaW5lbWF0aWMAowgbcmF3cmlnaWRib2R5c2V0X3JiSXNEeW5hbWljAKwIH3Jhd3JpZ2lkYm9keXNldF9yYkxpbmVhckRhbXBpbmcAwAggcmF3cmlnaWRib2R5c2V0X3JiQW5ndWxhckRhbXBpbmcAwQgicmF3cmlnaWRib2R5c2V0X3JiU2V0TGluZWFyRGFtcGluZwDNCSNyYXdyaWdpZGJvZHlzZXRfcmJTZXRBbmd1bGFyRGFtcGluZwC6CRxyYXdyaWdpZGJvZHlzZXRfcmJTZXRFbmFibGVkAOgHG3Jhd3JpZ2lkYm9keXNldF9yYklzRW5hYmxlZADCCB5yYXdyaWdpZGJvZHlzZXRfcmJHcmF2aXR5U2NhbGUAwwghcmF3cmlnaWRib2R5c2V0X3JiU2V0R3Jhdml0eVNjYWxlALAHHXJhd3JpZ2lkYm9keXNldF9yYlJlc2V0Rm9yY2VzALsJHnJhd3JpZ2lkYm9keXNldF9yYlJlc2V0VG9ycXVlcwC8CRpyYXdyaWdpZGJvZHlzZXRfcmJBZGRGb3JjZQDCBx5yYXdyaWdpZGJvZHlzZXRfcmJBcHBseUltcHVsc2UAwwcbcmF3cmlnaWRib2R5c2V0X3JiQWRkVG9ycXVlAMQHJHJhd3JpZ2lkYm9keXNldF9yYkFwcGx5VG9ycXVlSW1wdWxzZQDFByFyYXdyaWdpZGJvZHlzZXRfcmJBZGRGb3JjZUF0UG9pbnQA5AYlcmF3cmlnaWRib2R5c2V0X3JiQXBwbHlJbXB1bHNlQXRQb2ludADmBSxyYXdyaWdpZGJvZHlzZXRfcmJBZGRpdGlvbmFsU29sdmVySXRlcmF0aW9ucwDECC9yYXdyaWdpZGJvZHlzZXRfcmJTZXRBZGRpdGlvbmFsU29sdmVySXRlcmF0aW9ucwDOCRpyYXdyaWdpZGJvZHlzZXRfcmJVc2VyRGF0YQDFCB1yYXdyaWdpZGJvZHlzZXRfcmJTZXRVc2VyRGF0YQCFCRpfX3diZ19yYXdyaWdpZGJvZHlzZXRfZnJlZQDaBxNyYXdyaWdpZGJvZHlzZXRfbmV3ANsHH3Jhd3JpZ2lkYm9keXNldF9jcmVhdGVSaWdpZEJvZHkAswMWcmF3cmlnaWRib2R5c2V0X3JlbW92ZQCiBRhyYXdyaWdpZGJvZHlzZXRfY29udGFpbnMAzwkmcmF3cmlnaWRib2R5c2V0X2ZvckVhY2hSaWdpZEJvZHlIYW5kbGUAsgk5cmF3cmlnaWRib2R5c2V0X3Byb3BhZ2F0ZU1vZGlmaWVkQm9keVBvc2l0aW9uc1RvQ29sbGlkZXJzAP4JGF9fd2JnX3Jhd2Jyb2FkcGhhc2VfZnJlZQDpCRFyYXdicm9hZHBoYXNlX25ldwDqCRxyYXdjb2xsaWRlcnNldF9jb1RyYW5zbGF0aW9uAJsGGXJhd2NvbGxpZGVyc2V0X2NvUm90YXRpb24AvgYfcmF3Y29sbGlkZXJzZXRfY29TZXRUcmFuc2xhdGlvbgD7ByhyYXdjb2xsaWRlcnNldF9jb1NldFRyYW5zbGF0aW9uV3J0UGFyZW50ANwHHHJhd2NvbGxpZGVyc2V0X2NvU2V0Um90YXRpb24A1gYlcmF3Y29sbGlkZXJzZXRfY29TZXRSb3RhdGlvbldydFBhcmVudADFChlyYXdjb2xsaWRlcnNldF9jb0lzU2Vuc29yAMYIGnJhd2NvbGxpZGVyc2V0X2NvU2hhcGVUeXBlAIgKIHJhd2NvbGxpZGVyc2V0X2NvSGFsZnNwYWNlTm9ybWFsAJ0FHHJhd2NvbGxpZGVyc2V0X2NvSGFsZkV4dGVudHMAkAUfcmF3Y29sbGlkZXJzZXRfY29TZXRIYWxmRXh0ZW50cwCRCRdyYXdjb2xsaWRlcnNldF9jb1JhZGl1cwD8BxpyYXdjb2xsaWRlcnNldF9jb1NldFJhZGl1cwDVChtyYXdjb2xsaWRlcnNldF9jb0hhbGZIZWlnaHQA/QcecmF3Y29sbGlkZXJzZXRfY29TZXRIYWxmSGVpZ2h0ANYKHHJhd2NvbGxpZGVyc2V0X2NvUm91bmRSYWRpdXMA/gcfcmF3Y29sbGlkZXJzZXRfY29TZXRSb3VuZFJhZGl1cwDXChlyYXdjb2xsaWRlcnNldF9jb1ZlcnRpY2VzALIGGHJhd2NvbGxpZGVyc2V0X2NvSW5kaWNlcwCzBiNyYXdjb2xsaWRlcnNldF9jb0hlaWdodGZpZWxkSGVpZ2h0cwC0BiFyYXdjb2xsaWRlcnNldF9jb0hlaWdodGZpZWxkU2NhbGUAhgUhcmF3Y29sbGlkZXJzZXRfY29IZWlnaHRmaWVsZE5Sb3dzAOcFIXJhd2NvbGxpZGVyc2V0X2NvSGVpZ2h0ZmllbGROQ29scwDoBRdyYXdjb2xsaWRlcnNldF9jb1BhcmVudADiBxtyYXdjb2xsaWRlcnNldF9jb1NldEVuYWJsZWQAuAcacmF3Y29sbGlkZXJzZXRfY29Jc0VuYWJsZWQArQgZcmF3Y29sbGlkZXJzZXRfY29GcmljdGlvbgDHCBxyYXdjb2xsaWRlcnNldF9jb1Jlc3RpdHV0aW9uAMgIGHJhd2NvbGxpZGVyc2V0X2NvRGVuc2l0eQDpCBVyYXdjb2xsaWRlcnNldF9jb01hc3MA6ggXcmF3Y29sbGlkZXJzZXRfY29Wb2x1bWUA6wggcmF3Y29sbGlkZXJzZXRfY29Db2xsaXNpb25Hcm91cHMA6QcdcmF3Y29sbGlkZXJzZXRfY29Tb2x2ZXJHcm91cHMA6gcccmF3Y29sbGlkZXJzZXRfY29BY3RpdmVIb29rcwDJCCVyYXdjb2xsaWRlcnNldF9jb0FjdGl2ZUNvbGxpc2lvblR5cGVzAMoIHXJhd2NvbGxpZGVyc2V0X2NvQWN0aXZlRXZlbnRzAMsIK3Jhd2NvbGxpZGVyc2V0X2NvQ29udGFjdEZvcmNlRXZlbnRUaHJlc2hvbGQAzAgecmF3Y29sbGlkZXJzZXRfY29Db250YWluc1BvaW50ANoFGnJhd2NvbGxpZGVyc2V0X2NvQ2FzdFNoYXBlAKUDHXJhd2NvbGxpZGVyc2V0X2NvQ2FzdENvbGxpZGVyAMEEIHJhd2NvbGxpZGVyc2V0X2NvSW50ZXJzZWN0c1NoYXBlALYEHXJhd2NvbGxpZGVyc2V0X2NvQ29udGFjdFNoYXBlAPUBIHJhd2NvbGxpZGVyc2V0X2NvQ29udGFjdENvbGxpZGVyAJwFHXJhd2NvbGxpZGVyc2V0X2NvUHJvamVjdFBvaW50AP8EHnJhd2NvbGxpZGVyc2V0X2NvSW50ZXJzZWN0c1JheQD4BBhyYXdjb2xsaWRlcnNldF9jb0Nhc3RSYXkA1AQkcmF3Y29sbGlkZXJzZXRfY29DYXN0UmF5QW5kR2V0Tm9ybWFsAJ8DGnJhd2NvbGxpZGVyc2V0X2NvU2V0U2Vuc29yAIEIH3Jhd2NvbGxpZGVyc2V0X2NvU2V0UmVzdGl0dXRpb24AvQkccmF3Y29sbGlkZXJzZXRfY29TZXRGcmljdGlvbgDQCSRyYXdjb2xsaWRlcnNldF9jb0ZyaWN0aW9uQ29tYmluZVJ1bGUAzQgncmF3Y29sbGlkZXJzZXRfY29TZXRGcmljdGlvbkNvbWJpbmVSdWxlAPYIJ3Jhd2NvbGxpZGVyc2V0X2NvUmVzdGl0dXRpb25Db21iaW5lUnVsZQDOCCpyYXdjb2xsaWRlcnNldF9jb1NldFJlc3RpdHV0aW9uQ29tYmluZVJ1bGUA9wgjcmF3Y29sbGlkZXJzZXRfY29TZXRDb2xsaXNpb25Hcm91cHMAowcgcmF3Y29sbGlkZXJzZXRfY29TZXRTb2x2ZXJHcm91cHMAkwcfcmF3Y29sbGlkZXJzZXRfY29TZXRBY3RpdmVIb29rcwD4CCByYXdjb2xsaWRlcnNldF9jb1NldEFjdGl2ZUV2ZW50cwD5CChyYXdjb2xsaWRlcnNldF9jb1NldEFjdGl2ZUNvbGxpc2lvblR5cGVzAPoIGXJhd2NvbGxpZGVyc2V0X2NvU2V0U2hhcGUA9wYucmF3Y29sbGlkZXJzZXRfY29TZXRDb250YWN0Rm9yY2VFdmVudFRocmVzaG9sZADRCRtyYXdjb2xsaWRlcnNldF9jb1NldERlbnNpdHkA0gkYcmF3Y29sbGlkZXJzZXRfY29TZXRNYXNzANMJInJhd2NvbGxpZGVyc2V0X2NvU2V0TWFzc1Byb3BlcnRpZXMAqgUZX193YmdfcmF3Y29sbGlkZXJzZXRfZnJlZQD8BhJyYXdjb2xsaWRlcnNldF9uZXcA/QYScmF3Y29sbGlkZXJzZXRfbGVuALILF3Jhd2NvbGxpZGVyc2V0X2NvbnRhaW5zANQJHXJhd2NvbGxpZGVyc2V0X2NyZWF0ZUNvbGxpZGVyAOMDFXJhd2NvbGxpZGVyc2V0X3JlbW92ZQDpBSRyYXdjb2xsaWRlcnNldF9mb3JFYWNoQ29sbGlkZXJIYW5kbGUAswkaX193YmdfcmF3c2hhcGVjb250YWN0X2ZyZWUAwAsZX193YmdfcmF3bmFycm93cGhhc2VfZnJlZQDrCRJyYXduYXJyb3dwaGFzZV9uZXcA7AkhcmF3bmFycm93cGhhc2VfY29udGFjdF9wYWlyc193aXRoAJQKG3Jhd25hcnJvd3BoYXNlX2NvbnRhY3RfcGFpcgCaByZyYXduYXJyb3dwaGFzZV9pbnRlcnNlY3Rpb25fcGFpcnNfd2l0aACVCiByYXduYXJyb3dwaGFzZV9pbnRlcnNlY3Rpb25fcGFpcgDuCB1fX3diZ19yYXdjb250YWN0bWFuaWZvbGRfZnJlZQDACxhyYXdjb250YWN0cGFpcl9jb2xsaWRlcjEAsgoYcmF3Y29udGFjdHBhaXJfY29sbGlkZXIyALMKInJhd2NvbnRhY3RwYWlyX251bUNvbnRhY3RNYW5pZm9sZHMAoAoecmF3Y29udGFjdHBhaXJfY29udGFjdE1hbmlmb2xkANAHGXJhd2NvbnRhY3RtYW5pZm9sZF9ub3JtYWwA/gYbcmF3Y29udGFjdG1hbmlmb2xkX2xvY2FsX24xAIMHG3Jhd2NvbnRhY3RtYW5pZm9sZF9sb2NhbF9uMgCEBxxyYXdjb250YWN0bWFuaWZvbGRfc3Vic2hhcGUxALQKHHJhd2NvbnRhY3RtYW5pZm9sZF9zdWJzaGFwZTIAtQofcmF3Y29udGFjdG1hbmlmb2xkX251bV9jb250YWN0cwChCiNyYXdjb250YWN0bWFuaWZvbGRfY29udGFjdF9sb2NhbF9wMQDCBiNyYXdjb250YWN0bWFuaWZvbGRfY29udGFjdF9sb2NhbF9wMgDDBh9yYXdjb250YWN0bWFuaWZvbGRfY29udGFjdF9kaXN0AL4JH3Jhd2NvbnRhY3RtYW5pZm9sZF9jb250YWN0X2ZpZDEAvwkfcmF3Y29udGFjdG1hbmlmb2xkX2NvbnRhY3RfZmlkMgDACSJyYXdjb250YWN0bWFuaWZvbGRfY29udGFjdF9pbXB1bHNlAJIJLHJhd2NvbnRhY3RtYW5pZm9sZF9jb250YWN0X3RhbmdlbnRfaW1wdWxzZV94AMEJLHJhd2NvbnRhY3RtYW5pZm9sZF9jb250YWN0X3RhbmdlbnRfaW1wdWxzZV95AJMJJnJhd2NvbnRhY3RtYW5pZm9sZF9udW1fc29sdmVyX2NvbnRhY3RzAKIKJ3Jhd2NvbnRhY3RtYW5pZm9sZF9zb2x2ZXJfY29udGFjdF9wb2ludAC1BiZyYXdjb250YWN0bWFuaWZvbGRfc29sdmVyX2NvbnRhY3RfZGlzdACUCSpyYXdjb250YWN0bWFuaWZvbGRfc29sdmVyX2NvbnRhY3RfZnJpY3Rpb24A7wgtcmF3Y29udGFjdG1hbmlmb2xkX3NvbHZlcl9jb250YWN0X3Jlc3RpdHV0aW9uAPAIMnJhd2NvbnRhY3RtYW5pZm9sZF9zb2x2ZXJfY29udGFjdF90YW5nZW50X3ZlbG9jaXR5AL8GHV9fd2JnX3Jhd3BvaW50cHJvamVjdGlvbl9mcmVlAMALGHJhd3BvaW50cHJvamVjdGlvbl9wb2ludADjBxtyYXdwb2ludHByb2plY3Rpb25faXNJbnNpZGUAswslX193YmdfcmF3cG9pbnRjb2xsaWRlcnByb2plY3Rpb25fZnJlZQDACylyYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9jb2xsaWRlckhhbmRsZQC0CyByYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9wb2ludADRByNyYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9pc0luc2lkZQC1CyZyYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9mZWF0dXJlVHlwZQDCCyRyYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9mZWF0dXJlSWQA/wkdX193YmdfcmF3cmF5aW50ZXJzZWN0aW9uX2ZyZWUAwAshcmF3cmF5Y29sbGlkZXJpbnRlcnNlY3Rpb25fbm9ybWFsANIHHnJhd3JheWNvbGxpZGVyaW50ZXJzZWN0aW9uX3RvaQC2CxxfX3diZ19yYXdyYXljb2xsaWRlcnRvaV9mcmVlAMALE19fd2JnX3Jhd3NoYXBlX2ZyZWUApAgPcmF3c2hhcGVfY3Vib2lkAMIJFHJhd3NoYXBlX3JvdW5kQ3Vib2lkALQJDXJhd3NoYXBlX2JhbGwA1QkScmF3c2hhcGVfaGFsZnNwYWNlAOQFEHJhd3NoYXBlX2NhcHN1bGUArQcRcmF3c2hhcGVfY3lsaW5kZXIAyAkWcmF3c2hhcGVfcm91bmRDeWxpbmRlcgDDCQ1yYXdzaGFwZV9jb25lAMkJEnJhd3NoYXBlX3JvdW5kQ29uZQDECRFyYXdzaGFwZV9wb2x5bGluZQDlBxByYXdzaGFwZV90cmltZXNoAOYHFHJhd3NoYXBlX2hlaWdodGZpZWxkAMIFEHJhd3NoYXBlX3NlZ21lbnQA1wYRcmF3c2hhcGVfdHJpYW5nbGUAwwUWcmF3c2hhcGVfcm91bmRUcmlhbmdsZQC4BRNyYXdzaGFwZV9jb252ZXhIdWxsAPAHGHJhd3NoYXBlX3JvdW5kQ29udmV4SHVsbADrBxNyYXdzaGFwZV9jb252ZXhNZXNoAKsHGHJhd3NoYXBlX3JvdW5kQ29udmV4TWVzaACkBxJyYXdzaGFwZV9jYXN0U2hhcGUAuAEYcmF3c2hhcGVfaW50ZXJzZWN0c1NoYXBlALoDFXJhd3NoYXBlX2NvbnRhY3RTaGFwZQDbARZyYXdzaGFwZV9jb250YWluc1BvaW50AOkEFXJhd3NoYXBlX3Byb2plY3RQb2ludACUBBZyYXdzaGFwZV9pbnRlcnNlY3RzUmF5AJcEEHJhd3NoYXBlX2Nhc3RSYXkAiAQccmF3c2hhcGVfY2FzdFJheUFuZEdldE5vcm1hbADQAhRyYXdzaGFwZXRvaV93aXRuZXNzMQDTBxNyYXdzaGFwZXRvaV9ub3JtYWwxANQHE3Jhd3NoYXBldG9pX25vcm1hbDIA1QceX193YmdfcmF3c2hhcGVjb2xsaWRlcnRvaV9mcmVlAMALHHJhd3NoYXBlY29sbGlkZXJ0b2lfd2l0bmVzczIA1gcPcmF3cm90YXRpb25fbmV3ALYKFHJhd3JvdGF0aW9uX2lkZW50aXR5ANgKDXJhd3JvdGF0aW9uX3gAwwsOcmF3dmVjdG9yX3plcm8A/goNcmF3dmVjdG9yX25ldwDNCg9yYXd2ZWN0b3Jfc2V0X3gAtwsPcmF3dmVjdG9yX3NldF96AJULDXJhd3ZlY3Rvcl94eXoArggNcmF3dmVjdG9yX3l4egCvCA1yYXd2ZWN0b3Jfenh5ALAIDXJhd3ZlY3Rvcl94enkAsQgNcmF3dmVjdG9yX3l6eACyCA1yYXd2ZWN0b3Jfenl4ALMIFnJhd3NkcG1hdHJpeDNfZWxlbWVudHMAmwchX193YmdfcmF3ZGVidWdyZW5kZXJwaXBlbGluZV9mcmVlAI8KGnJhd2RlYnVncmVuZGVycGlwZWxpbmVfbmV3AOwHH3Jhd2RlYnVncmVuZGVycGlwZWxpbmVfdmVydGljZXMAnggdcmF3ZGVidWdyZW5kZXJwaXBlbGluZV9jb2xvcnMAnwgdcmF3ZGVidWdyZW5kZXJwaXBlbGluZV9yZW5kZXIAlAUYX193YmdfcmF3ZXZlbnRxdWV1ZV9mcmVlAN0HH19fd2JnX3Jhd2NvbnRhY3Rmb3JjZWV2ZW50X2ZyZWUAwAsecmF3Y29udGFjdGZvcmNlZXZlbnRfY29sbGlkZXIyALgLIHJhd2NvbnRhY3Rmb3JjZWV2ZW50X3RvdGFsX2ZvcmNlANcHKnJhd2NvbnRhY3Rmb3JjZWV2ZW50X3RvdGFsX2ZvcmNlX21hZ25pdHVkZQC5CyhyYXdjb250YWN0Zm9yY2VldmVudF9tYXhfZm9yY2VfZGlyZWN0aW9uANgHKHJhd2NvbnRhY3Rmb3JjZWV2ZW50X21heF9mb3JjZV9tYWduaXR1ZGUAugsRcmF3ZXZlbnRxdWV1ZV9uZXcAuQcicmF3ZXZlbnRxdWV1ZV9kcmFpbkNvbGxpc2lvbkV2ZW50cwCACiVyYXdldmVudHF1ZXVlX2RyYWluQ29udGFjdEZvcmNlRXZlbnRzAIEKE3Jhd2V2ZW50cXVldWVfY2xlYXIAxgcdX193YmdfcmF3cGh5c2ljc3BpcGVsaW5lX2ZyZWUA7QkWcmF3cGh5c2ljc3BpcGVsaW5lX25ldwD7CBdyYXdwaHlzaWNzcGlwZWxpbmVfc3RlcAChBCFyYXdwaHlzaWNzcGlwZWxpbmVfc3RlcFdpdGhFdmVudHMAjQQbX193YmdfcmF3cXVlcnlwaXBlbGluZV9mcmVlAOIJFHJhd3F1ZXJ5cGlwZWxpbmVfbmV3AO4JF3Jhd3F1ZXJ5cGlwZWxpbmVfdXBkYXRlALoHGHJhd3F1ZXJ5cGlwZWxpbmVfY2FzdFJheQCYBCRyYXdxdWVyeXBpcGVsaW5lX2Nhc3RSYXlBbmRHZXROb3JtYWwA9QMlcmF3cXVlcnlwaXBlbGluZV9pbnRlcnNlY3Rpb25zV2l0aFJheQDsAiZyYXdxdWVyeXBpcGVsaW5lX2ludGVyc2VjdGlvbldpdGhTaGFwZQCbBB1yYXdxdWVyeXBpcGVsaW5lX3Byb2plY3RQb2ludACtBCpyYXdxdWVyeXBpcGVsaW5lX3Byb2plY3RQb2ludEFuZEdldEZlYXR1cmUAsQQncmF3cXVlcnlwaXBlbGluZV9pbnRlcnNlY3Rpb25zV2l0aFBvaW50AMgDGnJhd3F1ZXJ5cGlwZWxpbmVfY2FzdFNoYXBlAPEBJ3Jhd3F1ZXJ5cGlwZWxpbmVfaW50ZXJzZWN0aW9uc1dpdGhTaGFwZQDiAjJyYXdxdWVyeXBpcGVsaW5lX2NvbGxpZGVyc1dpdGhBYWJiSW50ZXJzZWN0aW5nQWFiYgDhBh9fX3diZ19yYXdkZXNlcmlhbGl6ZWR3b3JsZF9mcmVlAJAKIHJhd2Rlc2VyaWFsaXplZHdvcmxkX3Rha2VHcmF2aXR5AIwHLnJhd2Rlc2VyaWFsaXplZHdvcmxkX3Rha2VJbnRlZ3JhdGlvblBhcmFtZXRlcnMA0AQmcmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZUlzbGFuZE1hbmFnZXIAiQcjcmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZUJyb2FkUGhhc2UAlAckcmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZU5hcnJvd1BoYXNlAMcEH3Jhd2Rlc2VyaWFsaXplZHdvcmxkX3Rha2VCb2RpZXMAlQUicmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZUNvbGxpZGVycwCCBSZyYXdkZXNlcmlhbGl6ZWR3b3JsZF90YWtlSW1wdWxzZUpvaW50cwCFByhyYXdkZXNlcmlhbGl6ZWR3b3JsZF90YWtlTXVsdGlib2R5Sm9pbnRzAIYHHHJhd3NlcmlhbGl6YXRpb25waXBlbGluZV9uZXcAxAslcmF3c2VyaWFsaXphdGlvbnBpcGVsaW5lX3NlcmlhbGl6ZUFsbACCAydyYXdzZXJpYWxpemF0aW9ucGlwZWxpbmVfZGVzZXJpYWxpemVBbGwApQcqcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9taW5Jc2xhbmRTaXplAI0LK3Jhd2ludGVncmF0aW9ucGFyYW1ldGVyc19zZXRfbWF4Q2NkU3Vic3RlcHMAjgsPcmF3dmVjdG9yX3NldF95AI8LInJhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfdXAAygcXcmF3c2hhcGVjb250YWN0X25vcm1hbDIAygcWcmF3c2hhcGVjb250YWN0X3BvaW50MQDjBxZyYXdzaGFwZWNvbnRhY3RfcG9pbnQyANIHGXJhd3JheWludGVyc2VjdGlvbl9ub3JtYWwA0gcccmF3c2hhcGVjb2xsaWRlcnRvaV93aXRuZXNzMQDSBxdyYXdzaGFwZWNvbnRhY3Rfbm9ybWFsMQDWBxtyYXdzaGFwZWNvbGxpZGVydG9pX25vcm1hbDEAygcbcmF3c2hhcGVjb2xsaWRlcnRvaV9ub3JtYWwyAMsHFHJhd3NoYXBldG9pX3dpdG5lc3MyANcHJnJhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfb2Zmc2V0AK4LK3Jhd2ludGVncmF0aW9ucGFyYW1ldGVyc19wcmVkaWN0aW9uRGlzdGFuY2UAqAsmcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX21pbklzbGFuZFNpemUAqgsncmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX21heENjZFN1YnN0ZXBzAKsLE3Jhd3JpZ2lkYm9keXNldF9sZW4AsgsYcmF3c2hhcGVjb250YWN0X2Rpc3RhbmNlAKMLHnJhd3JheWludGVyc2VjdGlvbl9mZWF0dXJlVHlwZQDCCylyYXdyYXljb2xsaWRlcmludGVyc2VjdGlvbl9jb2xsaWRlckhhbmRsZQC0CxZyYXdyYXlpbnRlcnNlY3Rpb25fdG9pALYLJnJhd3JheWNvbGxpZGVyaW50ZXJzZWN0aW9uX2ZlYXR1cmVUeXBlAMILIHJhd3JheWNvbGxpZGVydG9pX2NvbGxpZGVySGFuZGxlAMELFXJhd3JheWNvbGxpZGVydG9pX3RvaQC2CyJyYXdzaGFwZWNvbGxpZGVydG9pX2NvbGxpZGVySGFuZGxlAMELF3Jhd3NoYXBlY29sbGlkZXJ0b2lfdG9pALYLD3Jhd3NoYXBldG9pX3RvaQDDCw1yYXdyb3RhdGlvbl95AK4LDXJhd3JvdGF0aW9uX3oAtgsNcmF3cm90YXRpb25fdwCvCwtyYXd2ZWN0b3JfeADDCwtyYXd2ZWN0b3JfeQCuCwtyYXd2ZWN0b3JfegC2Cx5yYXdjb250YWN0Zm9yY2VldmVudF9jb2xsaWRlcjEAwQsrcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX2FsbG93ZWRMaW5lYXJFcnJvcgC5CxxyYXdjb2xsaWRlcnNldF9pc0hhbmRsZVZhbGlkANQJI19fd2JnX3Jhd3NlcmlhbGl6YXRpb25waXBlbGluZV9mcmVlAMALHHJhd3JheWludGVyc2VjdGlvbl9mZWF0dXJlSWQA/wkkcmF3cmF5Y29sbGlkZXJpbnRlcnNlY3Rpb25fZmVhdHVyZUlkAP8JGV9fd2JnX3Jhd2NvbnRhY3RwYWlyX2ZyZWUAwAslX193YmdfcmF3cmF5Y29sbGlkZXJpbnRlcnNlY3Rpb25fZnJlZQDACxZfX3diZ19yYXdzaGFwZXRvaV9mcmVlAMALFl9fd2JnX3Jhd3JvdGF0aW9uX2ZyZWUAwAsUX193YmdfcmF3dmVjdG9yX2ZyZWUAwAsYX193YmdfcmF3c2RwbWF0cml4M19mcmVlAMALH19fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIA8AwPX193YmluZGdlbl9mcmVlAO4LEV9fd2JpbmRnZW5fbWFsbG9jALgKFF9fd2JpbmRnZW5fZXhuX3N0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/ABqQQBBxAAQiQ0aIANBxAFqQgA3AgAgA0HAAWpBgICA/AM2AgAgA0HMAWpCADcCACADQdQBakIANwIAIANB3AFqQgA3AgAgA0HkAWpCADcCACADQewBakIANwIAIANB9AFqQQA2AgAgA0H4AWpBAEHEABCJDRogA0HAAmpCADcCACADQbwCakGAgID8AzYCACADQcgCakIANwIAIANB0AJqQgA3AgAgA0HYAmpCADcCACADQeACakIANwIAIANB6AJqQgA3AgAgA0HwAmpBADYCACADQfQCakEAQcQAEIkNGiADQbwDakIANwIAIANBuANqQYCAgPwDNgIAIANBxANqQgA3AgAgA0HMA2pCADcCACADQdQDakIANwIAIANB3ANqQgA3AgAgA0HkA2pCADcCACADQewDakEANgIAIANB8ANqIQMgY0EEayJjDQALCyABBEADQCADQQBBxAAQiQ0iA0IANwJIIANBgICA/AM2AkQgA0HQAGpCADcCACADQdgAakIANwIAIANB4ABqQgA3AgAgA0HoAGpCADcCACADQfAAakIANwIAIANB+ABqQQA2AgAgA0H8AGohAyABQQFrIgENAAsLIGYgZ2pBAWshZgsgA0EAQcQAEIkNIgFCADcCSCABQYCAgPwDNgJEIAFB0ABqQgA3AgAgAUHYAGpCADcCACABQeAAakIANwIAIAFB6ABqQgA3AgAgAUHwAGpCADcCACABQfgAakEANgIAIABBkANqQQA2AgAgACBmQQFqNgL4AiCcASgCACIBIJsBKAIAIgNLDQELIAMgigFNBEACQAJAIAEgA0YEQCAAQQA2ApADIABBhANqImlBADYCACABIQMMAQtBACFmIAMgAWsiYiAAQYwDaigCAEsEQCAAQYgDakEAIGIQnQYgACgCkAMhZgsgACgCiAMiZyBmQRhsaiFjIGJBAk8EQCBjQQAgAyABQX9zakEYbBCJDRogYiBmaiIBQQFrIWYgAUEYbCBnakEYayFjCyBjQgA3AgAgY0EQakIANwIAIGNBCGpCADcCACAAIGZBAWo2ApADIABBhANqImlBADYCACCcASgCACIBIJsBKAIAIgNLDQELIAMgigFNBEACQCABIANGBEAgaUEANgIAIAMhAQwBC0EAIWYgAyABayJiIABBgANqKAIASwRAIABB/AJqQQAgYhCd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QewAaioCACEPIGNB6ABqKgIAIRAgY0HUAGooAgAhDSBjQdAAaigCACEDIGNBzABqKAIAIQUgY0HIAGooAgAhASBjQcQAaigCACEIIGMoAkAhYgJ9IGNB+ABqLgEAQQBIBEAgASEHIAghBiBiIWdDAACAvwwBCyAOjCEOIA+MIQ8gEIwhECANIQcgAyEGIAUhZyABIQ0gCCEDIGIhBUMAAIA/CyETIGkoAgAhaSBqKAKgASFiIGooAnAhCAJAAkAgBQRAAkAgdUUNACADIHJPDQAgdSADQegCbGoiASgCAEUNACABKAIEIA1GDQILQeybwQBBE0G0zcEAEOEJAAsgZEGIBWoiAUEIakIANwMAIAFBEGpCADcDACABQRhqQgA3AwAgZUIANwMAIH5CADcDACBkQZAKaiIBQQhqQgA3AwAgAUEQakIANwMAIGRBwApqQQA2AgAgZEIANwOIBSBkQgA3A5AKIGRCADcDuApDAACAPyEVQwAAAAAhKEMAAAAAISNDAAAAACExQwAAAAAhIkMAAAAAIR1DAAAAACEkQwAAAAAhFkMAAAAAIRpDAAAAACEXQwAAAAAhLUMAAAAAISxDAAAAACE1QwAAAAAhLkMAAAAAIRJDAAAAACERQwAAAAAhFEMAAAAAISlDAAAAACE6DAELIAFB6AFqIgUqAgAhFyABQeQBaioCACEaIAFB4AFqIg0qAgAhFiABQYwBaioCACEkIAFBiAFqKgIAIR0gAUGEAWoqAgAhIiABQYABaioCACExIAFB/ABqKgIAISMgAUH4AGoqAgAhKCABQUBrKgIAIS4gAUE8aioCACE1IAFBOGoqAgAhLCABQTRqKgIAIRUgAUEwaioCACESIAFBLGoqAgAhESABQShqKgIAIRQgZEEIaiIDQRBqImxCADcDACADQQhqImhCADcDACBkQgA3AwggZEHICmoic0EIaiJ0IAFB9AFqKAIANgIAIGQgAUHsAWopAgA3A8gKIHFBEGogAUGoAWopAwA3AwAgcUEIaiABQaABaikDADcDACBxIAFBmAFqKQMANwMAIHkgDSkCADcCACB5QQhqIAUoAgA2AgAgAUHYAmoqAgAhLSABQZABaioCACE6IAFBlAFqKgIAISkgZEHACmogAUHIAWooAgA2AgAgZCABQcABaikCADcDuAogfiADQShqKQMANwMA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IGooArQBIgEgB08EfyAHBSAHIAEiBWsiBiBqQbABaigCACABa0sEQCMAQSBrImIkACABIAZqIgUgAUkNGUEEIGpBrAFqIgMoAgQiCEEBdCINIAUgBSANSRsiBSAFQQRNGyINQdgCbCEFIA1B/oL9AklBAnQhYwJAIAhFBEAgYkEANgIYDAELIGJBBDYCGCBiIAhB2AJsNgIcIGIgAygCADYCFAsgYkEIaiBjIAUgYkEUahDaBiBiKAIMIQUCQCBiKAIIRQRAIAMgDTYCBCADIAU2AgAMAQsgBUGBgICAeEYNACAFRQ0aDBwLIGJBIGokACBqKAK0ASEFCyBqKAKsASAFQdgCbGohAyAGQQJPBEAgByABQX9zaiIBQQNxIQcgBkECa0EDTwRAIAFBfHEhbQNAIANBfzYCCCADQn83AgAgA0EMakEAQZQCEIkNGiADQgA3AqQCIANBgICA/AM2AqACIANBrAJqQgA3AgAgA0G0AmpCADcCACADQbwCakIANwIAIANBxAJqQgA3AgAgA0HMAmpCADcCACADQdQCakEANgIAIANB4AJqQX82AgAgA0HYAmpCfzcCACADQeQCakEAQZQCEIkNGiADQfwEakIANwIAIANB+ARqQYCAgPwDNgIAIANBhAVqQgA3AgAgA0GMBWpCADcCACADQZQFakIANwIAIANBnAVqQgA3AgAgA0GkBWpCADcCACADQawFakEANgIAIANBuAVqQX82AgAgA0GwBWpCfzcCACADQbwFakEAQZQCEIkNGiADQdQHakIANwIAIANB0AdqQYCAgPwDNgIAIANB3AdqQgA3AgAgA0HkB2pCADcCACADQewHakIANwIAIANB9AdqQgA3AgAgA0H8B2pCADcCACADQYQIakEANgIAIANBkAhqQX82AgAgA0GICGpCfzcCACADQZQIakEAQZQCEIkNGiADQawKakIANwIAIANBqApqQYCAgPwDNgIAIANBtApqQgA3AgAgA0G8CmpCADcCACADQcQKakIANwIAIANBzApqQgA3AgAgA0HUCmpCADcCACADQdwKakEANgIAIANB4ApqIQMgbUEEayJtDQALCyAHBEADQCADQX82AgggA0J/NwIAIANBDGpBAEGUAhCJDRogA0IANwKkAiADQYCAgPwDNgKgAiADQawCakIANwIAIANBtAJqQgA3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A0EQakIANwMAIANBGGpCADcDACBzQgA3AwAgdEIANwMAIGRBkApqIgNBCGpCADcDACADQRBqQgA3AwAgZEGICmpBADYCACBkQgA3A4gFIGRCADcDkAogZEIANwOACkMAAIA/ISFDAAAAACEZQwAAAAAhH0MAAAAAISVDAAAAACEiQwAAAAAhHUMAAAAAISRDAAAAACE8QwAAAAAhM0MAAAAAIRZDAAAAACEwQwAAAAAhKkMAAAAAIStDAAAAACEnQwAAAAAhEkMAAAAAIRFDAAAAACEUQwAAAAAhGkMAAAAAIRcMAQsgA0HoAWoiYioCACEWIANB5AFqKgIAITMgA0HgAWoiYyoCACE8IANBjAFqKgIAISQgA0GIAWoqAgAhHSADQYQBaioCACEiIANBgAFqKgIAISUgA0H8AGoqAgAhHyADQfgAaioCACEZIANBQGsqAgAhJyADQTxqKgIAISsgA0E4aioCACEqIANBNGoqAgAhISADQTBqKgIAIRIgA0EsaioCACERIANBKGoqAgAhFCBkQQhqIgZBEGoicEIANwMAIAZBCGoibkIANwMAIGRCADcDCCBkQcgKaiJvQQhqIncgA0H0AWooAgA2AgAgZCADQewBaikCADcDyAogeEEQaiADQagBaikDADcDACB4QQhqIANBoAFqKQMANwMAIHggA0GYAWopAwA3AwAggwEgYykCADcCACCDAUEIaiBiKAIANgIAIANB2AJqKgIAITAgA0GQAWoqAgAhFyADQZQBaioCACEaIGRBiApqIANByAFqKAIANgIAIGQgA0HAAWopAgA3A4AKIHQgBkEoaikDADcDACBzIAZBIGopAwA3AwAgZEGIBWoiA0EYaiB4KQMANwMAIANBEGogcCkDADcDACADQQhqIG4pAwA3AwAgZCBkKQMINwOIBSBkQZAKaiIDQRBqIG9BEGopAwA3AwAgA0EIaiB3KQMANwMAIGQgZCkDyAo3A5AKCyAHRQ0EIHVFDQUgBSByTw0FIHUgBUHoAmxqIm4oAgBFDQUgbigCBCANRw0FIAUglQFPDQYghAFFDQYghAEgBUEUbGoiAygCACANRw0GIAMoAgQieyCJAU8NByCAAUUNByCAASB7QZQCbGoiZS0AkAJBAkYNByADQQhqKAIAIoYBIGUoAgBHDQcgA0EQaigCACFxIANBDGoo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ayBrKQDrATcDOCBrQdACaiIDQShqQgA3AwAgA0EgakIANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIGtCADcD0AIgACJqKALUAiIAIAFPBH8gAQUgASAAImJrIgUgakHQAmooAgAgAGtLBEAjAEEgayIDJAAgACAFaiIHIABJDQhBBCBqQcwCaiIIKAIEIgtBAXQiDCAHIAcgDEkbIgcgB0EETRsiDEHgA2whByAMQcWIkQJJQQN0IQ0CQCALRQRAIANBADYCGAwBCyADQQg2AhggAyALQeADbDYCHCADIAgoAgA2AhQLIANBCGogDSAHIANBFGoQ2gYgAygCDCEHAkAgAygCCEUEQCAIIAw2AgQgCCAHNgIADAELIAdBgYCAgHhGDQAgB0UNCSAHIANBEGooAgBB0IHEACgCACIAQZcHIAAbEQAAAAsgA0EgaiQAIGooAtQCIWILIGooAswCIGJB4ANsaiEDIAVBAk8EQCAAQX9zIAFqIQEga0GTAmohBwNAIANCADcDCCADQgA3AwAgA0H////7BzYCUCADQoCAgIDw//+/fzcDSCADQv////v///+//wA3A0AgA0L////7BzcDOCADQoCAgIDw//+/fzcDMCADQv////v///+//wA3AyggA0L////7BzcDICADQoCAgIDw//+/fzcDGCADQv////v///+//wA3AxAgAyBrKQPYATcCVCADQYCAgPwDNgJkIAMgaykDwAE3A2ggA0HcAGoga0HgAWopAwA3AgAgA0HwAGoga0HAAWoiAEEIaikDADcDACADQfgAaiAAQRBqKQMANwMAIANCADcDiAEgA0KAgID8AzcDgAEgA0L////7BzcDoAEgA0EAOgCoASADQv////sHNwK8ASADQQA6AMQBIAMgaykDsAE3A5ABIANBmAFqIGtBuAFqKQMANwMAIAMgaykDmAE3AKkBIANBsQFqIGtBmAFqIgBBCGopAwA3AAAgA0G4AWogAEEPaigAADYAACADIGspA4ABNwDFASADQc0BaiBrQYABaiIAQQhqKQMANwAAIANB1AFqIABBD2ooAAA2AAAgA0EAOgDgASADQv////sHNwPYASADQQA6APwBIANC////+wc3AvQBIANBADoAmAIgA0L////7BzcDkAIgA0HwAWoga0HoAGoiAEEPaigAADYAACADQekBaiAAQQhqKQMANwAAIAMgaykDaDcA4QEgA0GMAmoga0HQAGoiAEEPaigAADYAACADQYUCaiAAQQhqKQMANwAAIAMgaykDUDcA/QEgA0GoAmoga0E4aiIAQQ9qKAAANgAAIANBoQJqIABBCGopAwA3AAAgAyBrKQM4NwCZAiADQQA6ALQCIANC////+wc3AqwCIANBtwJqIActAAA6AAAgAyBrLwCRAjsAtQIgA0J/NwPAAiADQYACOwG8AiADQQA2ArgCIANB8AJqIGtBgANqIgBBKGopAwA3AwAgA0HoAmogAEEgaikDADcDACADQeACaiAAQRhqKQMANwMAIANB2AJqIABBEGopAwA3AwAgA0HQAmogAEEIaikDADcDACADIGspA4ADNwPIAiADQX82AvgCIANBpANqIGtB0AJqIgBBKGopAwA3AgAgA0GcA2ogAEEgaikDADcCACADQZQDaiAAQRhqKQMANwIAIANBjANqIABBEGopAwA3AgAgA0GEA2ogAEEIaikDADcCACADIGspA9ACNwL8AiADQX82ArwDIANC/////x83ArQDIANCfzcCrAMgA0HIA2oga0HAAmooAgA2AgAgAyBrKQO4AjcDwAMgA0KBgICAcDcCzAMgA0HcA2oga0GsAmooAgA2AgAgAyBrKQKkAjcC1AMgA0HgA2ohAyABQQFrIgENAAsgBSBiakEBayFiCyADQv////v///+//wA3AxAgA0IANwMIIANCADcDACADQf////sHNgJQIANCgICAgPD//79/NwNIIANC////+////7//ADcDQCADQv////sHNwM4IANCgICAgPD//79/NwMwIANC////+////7//ADcDKCADQv////sHNwMgIANCgICAgPD//79/NwMYIAMgaykD2AE3AlQgA0GAgID8AzYCZCADIGspA8ABNwNoIANB3ABqIGtB4AFqKQMANwIAIANB8ABqIGtBwAFqIgBBCGopAwA3AwAgA0H4AGogAEEQaikDADcDACADQgA3A4gBIANCgICA/AM3A4ABIANC////+wc3A6ABIANBADoAqAEgA0L////7BzcCvAEgA0EAOgDEASADIGspA7ABNwOQASADQZgBaiBrQbgBaikDADcDACADIGspA5gBNwCpASADQbEBaiBrQZgBaiIAQQhqKQMANwAAIANBuAFqIABBD2ooAAA2AAAgAyBrKQOAATcAxQEgA0HNAWoga0GAAWoiAEEIaikDADcAACADQdQBaiAAQQ9qKAAANgAAIANBADoA4AEgA0L////7BzcD2AEgA0EAOgD8ASADQv////sHNwL0ASADQQA6AJgCIANC////+wc3A5ACIANB8AFqIGtB6ABqIgBBD2ooAAA2AAAgA0HpAWogAEEIaikDADcAACADIGspA2g3AOEBIANBjAJqIGtB0ABqIgBBD2ooAAA2AAAgA0GFAmogAEEIaikDADcAACADIGspA1A3AP0BIANBqAJqIGtBOGoiAEEPaigAADYAACADQaECaiAAQQhqKQMANwAAIAMgaykDODcAmQIgA0EAOgC0AiADQv////sHNwKsAiADQbcCaiBrQZMCai0AADoAACADIGsvAJECOwC1AiADQn83A8ACIANBgAI7AbwCIANBADYCuAIgA0HwAmoga0GAA2oiAEEoaikDADcDACADQegCaiAAQSBqKQMANwMAIANB4AJqIABBGGopAwA3AwAgA0HYAmogAEEQaikDADcDACADQdACaiAAQQhqKQMANwMAIAMgaykDgAM3A8gCIANBfzYC+AIgA0GkA2oga0HQAmoiAEEoaikDADcCACADQZwDaiAAQSBqKQMANwIAIANBlANqIABBGGopAwA3AgAgA0GMA2ogAEEQaikDADcCACADQYQDaiAAQQhqKQMANwIAIAMgaykD0AI3AvwCIANBfzYCvAMgA0L/////HzcCtAMgA0J/NwKsAyADQcgDaiBrQcACaigCADYCACADIGspA7gCNwPAAyADQoGAgIBwNwLMAyADQdwDaiBrQawCaigCADYCACADIGspAqQCNwLUAyAGKAIAIQEgYkEBagshACBqIAA2AtQCQQAhBUEAIW4CQAJAAkACQCABIAAgACABSxsiZ0UNACBqKALgASEHIHVFDQEgaigCzAIhYiB6KAIQIW0geigCCCFsIHooAiQhcSB6KAIcIXAga0GAA2oiAEEkaiFkIABBGGohdyBrQdACaiIAQSRqIWUgAEEYaiFoQQAhCwJAAkACQANAIAogBygCACIITQ0GIAkgCEGAA2xqImMoAhAiDSByTw0HIHUgDUHoAmxqIgAoAgBFDQcgY0EUaigCACJ+IAAoAgRHDQcCQCBjQRhqKAIAImkgck8NACB1IGlB6AJsaiIBKAIARQ0AIGNBHGooAgAieCABKAIERw0AIGhBCGogAEH0AWooAgA2AgAgaCAAQewBaikCADcCACBrQdACaiIDQRBqInMgAEGoAWopAwA3AwAgA0EIaiJ0IABBoAFqKQMANwMAIGsgAEGYAWopAwA3A9ACIGVBCGogAEHIAWooAgA2AgAgZSAAQcABaikCADcCACAAQRBqKAIAIXkgd0EIaiABQfQBaigCADYCACB3IAFB7AFqKQIANwIAIGtBgANqIgBBCGoidiABQaABaikDADcDACAAQRBqInwgAUGoAWopAwA3AwAgayABQZgBaikDADcDgAMgZCABQcABaikCADcCACBkQQhqIAFByAFqKAIANgIAIAFBEGooAgAhAUEBIQxBBiEDAkAgDSBxTwRAIAEhBgwBCyBwRQRAIAEhBgwBCyABIQYgcCANQRRsaiIAKAIAIH5HDQAgbSAAKAIEIgZNDQMgbEUNAyBsIAZBlAJsaiIDLQCQAkECRg0DIAMoAgAgAEEIaiIAKAIARw0DIGtBwAJqIABBCGooAgA2AgAgayAAKQIANwO4AiADQYgCaigCACEDQQAhDAsCfwJAAkAgaSBxTw0AIHBFDQAgcCBpQRRsaiINKAIAIHhGDQELIANBBmohaSABIQBBAQwBCyBtIA0oAgQiAE0NBCBsRQ0EIGwgAEGUAmxqImktAJACQQJGDQQgaSgCACANQQhqIg0oAgBHDQQga0HIAWogDUEIaigCADYCACBrIA0pAgA3A8ABIGlBiAJqKAIAIANqIWlBAAshAwJAIGlFBEAgYkGwA2pBADYCAAwBCyBpQQxsIAtqIgUgaigCxAFLBEAgbyAFEPQCCyBiQcADaiBrKQO4AjcCACBiQcgDaiBrQcACaigCADYCACBiIGNBQGtBwAIQiA0iDUH4AmogeTYCACANQcQCaiALNgIAIA1BwAJqIAg2AgAgDUHwAmoga0HQAmoiCEEoaikDADcDACANQegCaiAIQSBqKQMANwMAIA1B4AJqIGgpAwA3AwAgDUHYAmogcykDADcDACANQdACaiB0KQMANwMAIA1ByAJqIGspA9ACNwMAIA1B/AJqIGspA4ADNwIAIA1BhANqIHYpAwA3AgAgDUGMA2ogfCkDADcCACANQZQDaiB3KQMANwIAIA1BnANqIGtBgANqIghBIGopAwA3AgAgDUGkA2ogCEEoaikDADcCACANQdADaiAANgIAIA1BzANqIAM2AgAgDUG8A2ogBjYCACANQbgDaiAMNgIAIA1BtANqIG42AgAgDUGwA2ogaTYCACANQawDaiABNgIAIA1B1ANqIGspA8ABNwIAIA1B3ANqIGtByAFqKAIANgIAIG4gY0H7AmotAAAiACBjQfgCai0AACIBQX9zIgMgY0H6AmotAABxIgZxIghBOHFBAEdqIAhBB3FBAEdqIGNB+QJqLQAAIANxIgMgAHEiCEE4cUEAR2ogCEEHcUEAR2ogAEF/cyIAIANxaSAAIAZxaSABaWpqaiFuIAUhCwsgB0EEaiEHIGJB4ANqIWIgZ0EBayJnRQ0EDAELC0Hsm8EAQRNB0N3BABDhCQALQeybwQBBE0Hg3cEAEOEJAAtB7JvBAEETQfDdwQAQ4QkACyBqKAKkAiIAIG5PDQAgbiAAImNrIgYgakGgAmooAgAgAGtLBEAgakGcAmogACAGEJ4GIGooAqQCIWMLIGooApwCIGNByABsaiEDIAZBAk8EQCBuIABBf3NqIgBBAXEhByAGQQJHBEAgAEF+cSEBA0AgA0J/NwIIIANCADcCACADQQA7AUQgA0L////79///v/8ANwI8IANC////+/f//7//ADcCNCADQv////v3//+//wA3AiwgA0KAgICA8P//v383AiQgA0EQakJ/NwIAIANBGGpCfzcCACADQSBqQX82AgAgA0HIAGpCADcCACADQdAAakJ/NwIAIANB2ABqQn83AgAgA0HgAGpCfzcCACADQegAakF/NgIAIANBhAFqQv////v3//+//wA3AgAgA0H8AGpC////+/f//7//ADcCACADQfQAakL////79///v/8ANwIAIANB7ABqQoCAgIDw//+/fzcCACADQYwBakEAOwEAIANBkAFqIQMgAUECayIBDQALCyAGIGNqQQFrIWMgBwRAIANCfzcCCCADQgA3AgAgA0EAOwFEIANC////+/f//7//ADcCPCADQv////v3//+//wA3AjQgA0L////79///v/8ANwIsIANCgICAgPD//79/NwIkIANBEGpCfzcCACADQRhqQn83AgAgA0EgakF/NgIAIANByABqIQMLCyADQn83AgggA0IANwIA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//8PNwIQIANC/////w83AgggA0IANwIAIANBLGpCADcCACADQTRqQQA2AgAgA0HYAGpB////+wc2AgAgA0HQAGpCgICAgPD//79/NwIAIANByABqQv////8PNwIAIANBQGtC/////w83AgAgA0E4akIANwIAIANB3ABqQgA3AgAgA0HkAGpCADcCACADQewAakEANgIAIANB8ABqIQMgAUECayIBDQALCyAFIGNqQQFrIWMgBwRAIANCADcCJCADQf////sHNgIgIANCgICAgPD//79/NwIYIANC/////w83AhAgA0L/////DzcCCCADQgA3AgAgA0EsakIANwIAIANBNGpBADYCACADQThqIQMLCyADQgA3AiQgA0H////7BzYCICADQoCAgIDw//+/fzcCGCADQv////8PNwIQIANC/////w83AgggA0IANwIAIANBLGpCADcCACADQTRqQQA2AgAgY0EBaiEGCyBqIAY2ArwCIJ4BBEAgngFBAWshhgEgBCgCECGLASAEKAIIIYwBIHooAiQhkAEgeigCHCGCASB6KAIQIXcgeigCCCFwIGsoAighkQEgaygCLCGSASBrKgIEISRBACFtA0AgaigC/AIhASBqKAKEAyJkIGooApADIgAgACBkSxsiYgRAIGooAogDIQVBACFnA0AgBSBnaiIDQQhqKgIAIQ8gA0EEaioCACEOIAEgZ2oiACADKgIAIAAqAgCSOAIAIABBBGoiBiAOIAYqAgCSOAIAIABBCGoiBiAPIAYqAgCSOAIAIANBFGoqAgAhDyADQRBqKgIAIQ4gAEEMaiIGIANBDGoqAgAgBioCAJI4AgAgAEEQaiIDIA4gAyoCAJI4AgAgAEEUaiIAIA8gACoCAJI4AgAgZ0EYaiFnIGJBAWsiYg0ACwsga0EBNgLEASBrIGooAqADIng2AsABIGtBATYC1AIgayBqKAKwAyIANgLQAgJAAkACQAJAAkACQCAAIHhGBEAgaigClAMhfgJAIGooAqwDIgBFDQAgaigCpAMhBSAAQQNxIWJBACFpIABBBE8EQCAAQXxxIQZBACFmA0AgZiB+aiIAIAUgZmoiAyoCACAAKgIAkjgCACAAQQRqIgcgA0EEaioCACAHKgIAkjgCACAAQQhqIgcgA0EIaioCACAHKgIAkjgCACAAQQxqIgAgA0EMaioCACAAKgIAkjgCACBmQRBqIWYgBiBpQQRqImlHDQALCyBiRQ0AIGlBAnQiACB+aiEDIAAgBWohZgNAIAMgZioCACADKgIAkjgCACADQQRqIQMgZkEEaiFmIGJBAWsiYg0ACwsgaigC8AIhaCBqKAL4AiF1QQAhDEEAIWdDAAAAACEqQwAAAAAhK0MAAAAAISJDAAAAACEdQwAAAAAhLEMAAAAAITUjAEGwBGsiDSQAAkAgb0GcAWooAgAiA0UNACBvKAKUASIAIANB4ANsaiF7IGsqAhRDAAAAAEMAAIA/IGsqAgQiFZUgFUMAAAAAWxuUIQ8gb0HsAGooAgAhciANQfgCaiELIG8oAgwhcyBvKAIAIXQgbygCZCF9IA1B8ABqIgNBJGohgAEgA0EYaiF5IA1BOGoiA0EkaiGEASADQRhqIXYgFSAVlCEhAkACQANAAkAgACgCsAMEQCAAQbwDaigCACEDAn8CQAJAAkAgACgCuANFBEAgAyB3Tw0BIHBFDQEgcCADQZQCbGoiAy0AkAJBAkYNASADKAIAIABBwANqKAIARw0BIABByANqKAIAImcgA0EMaigCAE8NAiADQQRqImYoAgAiA0UNAiADIGdB6ANsakGUA2oMBAsgAyB1SQ0CIAMgdUGg3sEAEOMIAAtB7JvBAEETQYDewQAQ4QkAC0H0wsAAQStBkN7BABCqCgALQQAhZiBoIANB/ABsakE4agshAyAAQdADaigCACEFAn8CQAJAIAAoAswDRQRAAkACQCAFIHdPDQAgcEUNACBwIAVBlAJsaiIFLQCQAkECRg0AIAUoAgAgAEHUA2ooAgBGDQELQeybwQBBE0Gw3sEAEOEJAAsgAEHcA2ooAgAiDCAFQQxqKAIATw0BIAVBBGoiYigCACIFRQ0BIAUgDEHoA2xqQZQDagwDCyAFIHVJDQEgBSB1QdDewQAQ4wgAC0H0wsAAQStBwN7BABCqCgALQQAhYiBoIAVB/ABsakE4agshBSANIABB5ABqKgIAIhEgAyoCDCIWlCAAKgJYIhQgAyoCACIOlJMgAEHcAGoqAgAiEyADKgIEIhCUkyAAQeAAaioCACIaIAMqAggiEpSTOAIMIA0gESASlCATIA6UIBogFpSSIBQgEJSTkjgCCCANIBQgEpQgESAQlCATIBaUIBogDpSTkpI4AgQgDSAaIBCUIBEgDpQgFCAWlJKSIBMgEpSTOAIAIA4gAEHsAGoqAgAiE5QgECAAQegAaioCACIalJMiESARkiERIBogEpQgAEHwAGoqAgAiFyAOlJMiFCAUkiEUIA0gA0EYaioCACIgIBcgFiARlCAOIBSUIBAgFyAQlCATIBKUkyIXIBeSIheUk5KSkjgCGCANIANBFGoqAgAiGyATIBYgFJQgEiAXlCAOIBGUk5KSkjgCFCANIAMqAhAiHyAaIBYgF5QgECARlCASIBSUk5KSkjgCECANIABBgAFqKgIAIhcgBSIDKgIMIhqUIAAqAnQiGSADKgIAIhGUkyAAQfgAaioCACIYIAMqAgQiFJSTIABB/ABqKgIAIh4gAyoCCCITlJM4AiggDSAXIBOUIBggEZQgHiAalJIgGSAUlJOSOAIkIA0gGSATlCAXIBSUIBggGpQgHiARlJOSkjgCICANIB4gFJQgFyARlCAZIBqUkpIgGCATlJM4AhwgESAAQYgBaioCACIYlCAUIABBhAFqKgIAIh6UkyIXIBeSIRcgHiATlCAAQYwBaioCACIcIBGUkyIZIBmSIRkgDSADQRhqKgIAIiUgHCAaIBeUIBEgGZQgFCAcIBSUIBggE5STIhwgHJIiHJSTkpKSOAI0IA0gA0EUaioCACIoIBggGiAZlCATIByUIBEgF5STkpKSOAIwIA0gAyoCECIjIB4gGiAclCAUIBeUIBMgGZSTkpKSOAIsIHYgAEHgAmopAgA3AgAgdkEIaiAAQegCaigCADYCACANQThqIgNBCGogAEHQAmopAgA3AwAgA0EQaiAAQdgCaikCADcDACANIAApAsgCNwM4IA0gAEH4AmooAgA2AmggDiAAQfACaioCACIYlCAQIABB7AJqKgIAIh6UkyIXIBeSIRcgEiAelCAOIABB9AJqKgIAIhyUkyIZIBmSIRkgDSAgIBwgFiAXlCAOIBmUIBAgECAclCASIBiUkyIcIBySIhyUk5KSkjgCZCANIBsgGCAWIBmUIBIgHJQgDiAXlJOSkpI4AmAgDSAfIB4gFiAclCAQIBeUIBIgGZSTkpKSOAJcIHkgAEGUA2opAgA3AgAgeUEIaiAAQZwDaigCADYCACANQfAAaiIDQQhqIABBhANqKQIANwMAIANBEGogAEGMA2opAgA3AwAgDSAAKQL8AjcDcCANIABBrANqKAIANgKgASARIABBpANqKgIAIhKUIBQgAEGgA2oqAgAiFpSTIg4gDpIhDiATIBaUIBEgAEGoA2oqAgAiF5STIhAgEJIhECANICUgFyAaIA6UIBEgEJQgFCAUIBeUIBMgEpSTIhcgF5IiF5STkpKSOAKcASANICggEiAaIBCUIBMgF5QgESAOlJOSkpI4ApgBIA0gIyAWIBogF5QgFCAOlCATIBCUk5KSkjgClAEgDSAAKALEAjYCpAECQAJAAkACQAJAAkACQAJAAkACQAJAIAAoArQDIgMgck0EQCAAKALAAiFsIAAtALkCIW4gAC0AugIhfCANQeACaiANIA1BHGoghAEggAEgAC0AuAIicRB2IHIgA2shYyB9IANByABsaiFpQQMhA0EAIQVBrH8hBiANQagBaiEHIAshCAJAA0AgfCADdkEBcQRAIAAgBmoiZUG4AmoqAgAhFCBlQbwCaioCACETIGVByAJqKgIAIRYgZUHQAmotAAAhfyBlQcACaioCACEOIGVBxAJqKgIAIRAgDSAIKgIAOALcAiANIAhBCGspAgA3AtQCIA1BADYCsAEgDUIANwKoASANQYgCaiBvIA1BpAFqIGwgDUE4aiANQfAAaiBmIGcgYiAMQQIgAyANQagBaiANQdQCaiJlIGUQ1gJDAAAAACESQwAAAABDAACAPyAhIA6UIBUgEJSSIhGVIhogEUMI5TweXxsgGiARQwjlPJ5gGyIRQwAAAAAgfxshGkMAAAAAIBEgfxshFyAVIBaUIREgDkMAAAAAQwAAgD8gECAVIA6UkiIOlSIQIA5DCOU8Hl8bIBAgDkMI5TyeYBuUIhZDAAAAAFwEQCANIA0qAugCOAKwASANIA0pAuACNwKoAUMAAIA/IAcqAgAgE0MAAAC/lBC+AZIiDpghECAWIA4gDkMAAMB/IBAgEJIgDiAOXBuTIhAgDosgEItdG5RDAAAAAJIhEgsgDSAaOALIAiANIBc4AsQCIA0gEiAUkyIOOAK8AiANIA44AsACIA0gETgCtAIgDSARjDgCsAIgDUGoAWogDUGIAmpByAAQiA0aIAUgY08NAiBpIAVByABsaiANQagBakHIABCIDRogBUEBaiEFCyADQQFqIQMgCEEMaiEIIAdBBGohByAGQRxqIgYNAAtBACEIQVwhBiAAIQMCQANAIHwgCHZBAXEEQCADQZABaioCACEWIANBlAFqKgIAIRogA0GgAWoqAgAhFyADQagBai0AACFlIANBmAFqKgIAIQ4gA0GcAWoqAgAhECANIA1B4AJqIAZqIgdBqAFqKgIAOALcAiANIAdBoAFqKQIANwLUAiANIAdBhAFqKgIAOAKEAiANIAdB/ABqKQIANwL8ASAHQTRqKgIAIRIgB0E4aioCACERIA0gB0E8aioCACIZOAKwASANIBE4AqwBIA0gEjgCqAEgDUGIAmogbyANQaQBaiBsIA1BOGogDUHwAGogZiBnIGIgDEECIAggDUGoAWogDUH8AWogDUHUAmoQ1gJDAAAAACETQwAAAABDAACAPyAhIA6UIBUgEJSSIhSVIhggFEMI5TweXxsgGCAUQwjlPJ5gGyIUQwAAAAAgZRshGEMAAAAAIBQgZRshHiAVIBeUIRQgDkMAAAAAQwAAgD8gECAVIA6UkiIOlSIQIA5DCOU8Hl8bIBAgDkMI5TyeYBuUIg5DAAAAAFwEQCAOIBIgDSoCpASUIBEgDSoCqASUkiAZIA0qAqwElJIgGpOUQwAAAACSIRMLIA0gGDgCyAIgDSAeOALEAiANIBMgFpMiDjgCwAIgDSAOOAK8AiANIBQ4ArQCIA0gFIw4ArACIA1BqAFqIA1BiAJqQcgAEIgNGiAFIGNPDQIgaSAFQcgAbGogDUGoAWpByAAQiA0aIAVBAWohBQsgCEEBaiEIIANBHGohAyAGQQxqIgYNAAsgBSBjSw0DIHQgcyBpIAUQeCAFIQMgcUEIcQRAIA0gDSoCiAQ4AoQCIA0gDSkCgAQ3AvwBIA1BADYC3AIgDUIANwLUAiANQYgCaiIDIG8gDUGkAWogbCANQThqIA1B8ABqIGYgZyBiIAxBAEEDIA1B1AJqIA1B/AFqIgYgBhDWAiANIA8gDSoC4AKUIA0qArwCkjgCvAIgDUGoAWogA0HIABCIDRogBSBjTw0TIGkgBUHIAGxqIA1BqAFqQcgAEIgNGiAFQQFqIQMLIHFBEHEEQCANIA0qApQEOAKEAiANIA0pAowENwL8ASANQQA2AtwCIA1CADcC1AIgDUGIAmoiBiBvIA1BpAFqIGwgDUE4aiANQfAAaiBmIGcgYiAMQQBBBCANQdQCaiANQfwBaiIHIAcQ1gIgDSAPIA0qAuQClCANKgK8ApI4ArwCIA1BqAFqIAZByAAQiA0aIAMgY08NEiBpIANByABsaiANQagBakHIABCIDRogA0EBaiEDCyBxQSBxBEAgDSANKgKgBDgChAIgDSANKQKYBDcC/AEgDUEANgLcAiANQgA3AtQCIA1BiAJqIgYgbyANQaQBaiBsIA1BOGogDUHwAGogZiBnIGIgDEEAQQUgDUHUAmogDUH8AWoiByAHENYCIA0gDyANKgLoApQgDSoCvAKSOAK8AiANQagBaiAGQcgAEIgNGiADIGNPDRIgaSADQcgAbGogDUGoAWpByAAQiA0aIANBAWohAwsgcUEBcQ0EDAULIAUgY0Hg2MEAEOMIAAsgBSBjQfDYwQAQ4wgACyADIHJB4N7BABDiCAALIAUgY0GA2MEAEOQIAAsgDSANKgLkAzgChAIgDSANKQLcAzcC/AEgDSANKgLAAzgC+AEgDSANKQK4AzcC8AEgDSoC8AIhDiANKgL0AiEQIA0gDSoC+AIiEjgC3AIgDSAQOALYAiANIA44AtQCIA1BiAJqIgYgbyANQaQBaiBsIA1BOGogDUHwAGogZiBnIGIgDEEAQQAgDUHUAmogDUHwAWogDUH8AWoQ1gIgDSANKgK8AiAPIA4gDSoCpASUIBAgDSoCqASUkiASIA0qAqwElJKUkjgCvAIgDUGoAWogBkHIABCIDRogAyBjTw0BIGkgA0HIAGxqIA1BqAFqQcgAEIgNGiADQQFqIQMLIHFBAnEEQCANIA0qAvADOAKEAiANIA0pAugDNwL8ASANIA0qAswDOAL4ASANIA0pAsQDNwLwASANKgL8AiEOIA0qAoADIRAgDSANKgKEAyISOALcAiANIBA4AtgCIA0gDjgC1AIgDUGIAmoiBiBvIA1BpAFqIGwgDUE4aiANQfAAaiBmIGcgYiAMQQBBASANQdQCaiANQfABaiANQfwBahDWAiANIA0qArwCIA8gDiANKgKkBJQgECANKgKoBJSSIBIgDSoCrASUkpSSOAK8AiANQagBaiAGQcgAEIgNGiADIGNPDQEgaSADQcgAbGogDUGoAWpByAAQiA0aIANBAWohAwsgcUEEcQRAIA0gDSoC/AM4AoQCIA0gDSkC9AM3AvwBIA0gDSoC2AM4AvgBIA0gDSkC0AM3AvABIA0qAogDIQ4gDSoCjAMhECANIA0qApADIhI4AtwCIA0gEDgC2AIgDSAOOALUAiANQYgCaiIGIG8gDUGkAWogbCANQThqIA1B8ABqIGYgZyBiIAxBAEECIA1B1AJqIA1B8AFqIA1B/AFqENYCIA0gDSoCvAIgDyAOIA0qAqQElCAQIA0qAqgElJIgEiANKgKsBJSSlJI4ArwCIA1BqAFqIAZByAAQiA0aIAMgY08NASBpIANByABsaiANQagBakHIABCIDRogA0EBaiEDCyBuQQhxDQEMAgsgAyBjQcDYwQAQ4wgACyAAQTRqKgIAIRAgAEE4aioCACESIA0gDSoCiAQ4AoQCIA0gDSkCgAQ3AvwBIA1BADYC3AIgDUIANwLUAiANQYgCaiIGIG8gDUGkAWogbCANQThqIA1B8ABqIGYgZyBiIAxBAUEDIA1B1AJqIA1B/AFqIgcgBxDWAiANQ///f39DAAAAACANKgLgAiIOIBJDAAAAP5QQvgEiEmAbOAK0AiANQ///f/9DAAAAgCAQQwAAAD+UEL4BIhEgDmAbOAKwAiANIA0qArwCIA9DAAAAAEMAAAAAIA4gEpMiECAQQwAAAABdGyAQIBBcG0MAAAAAQwAAAAAgESAOkyIOIA5DAAAAAF0bIA4gDlwbk5SSOAK8AiANQagBaiAGQcgAEIgNGiADIGNPDQEgaSADQcgAbGogDUGoAWpByAAQiA0aIANBAWohAwsgbkEQcQRAIABBQGsqAgAhECAAQcQAaioCACESIA0gDSoClAQ4AoQCIA0gDSkCjAQ3AvwBIA1BADYC3AIgDUIANwLUAiANQYgCaiIGIG8gDUGkAWogbCANQThqIA1B8ABqIGYgZyBiIAxBAUEEIA1B1AJqIA1B/AFqIgcgBxDWAiANQ///f39DAAAAACANKgLkAiIOIBJDAAAAP5QQvgEiEmAbOAK0AiANQ///f/9DAAAAgCAQQwAAAD+UEL4BIhEgDmAbOAKwAiANIA0qArwCIA9DAAAAAEMAAAAAIA4gEpMiECAQQwAAAABdGyAQIBBcG0MAAAAAQwAAAAAgESAOkyIOIA5DAAAAAF0bIA4gDlwbk5SSOAK8AiANQagBaiAGQcgAEIgNGiADIGNPDQEgaSADQcgAbGogDUGoAWpByAAQiA0aIANBAWohAwsgbkEgcQRAIABBzABqKgIAIRAgAEHQAGoqAgAhEiANIA0qAqAEOAKEAiANIA0pApgENwL8ASANQQA2AtwCIA1CADcC1AIgDUGIAmoiBiBvIA1BpAFqIGwgDUE4aiANQfAAaiBmIGcgYiAMQQFBBSANQdQCaiANQfwBaiIHIAcQ1gIgDUP//39/QwAAAAAgDSoC6AIiDiASQwAAAD+UEL4BIhJgGzgCtAIgDUP//3//QwAAAIAgEEMAAAA/lBC+ASIRIA5gGzgCsAIgDSANKgK8AiAPQwAAAABDAAAAACAOIBKTIhAgEEMAAAAAXRsgECAQXBtDAAAAAEMAAAAAIBEgDpMiDiAOQwAAAABdGyAOIA5cG5OUkjgCvAIgDUGoAWogBkHIABCIDRogAyBjTw0BIGkgA0HIAGxqIA1BqAFqQcgAEIgNGiADQQFqIQMLIG5BAXENAQwCCyADIGNBsNjBABDjCAALIABBFGoqAgAhECAAKgIQIRIgDSANKgLkAzgChAIgDSANKQLcAzcC/AEgDSANKgLAAzgC+AEgDSANKQK4AzcC8AEgDSoC8AIhDiANKgL0AiERIA0gDSoC+AIiFDgC3AIgDSAROALYAiANIA44AtQCIA1BiAJqIgYgbyANQaQBaiBsIA1BOGogDUHwAGogZiBnIGIgDEEBQQAgDUHUAmogDUHwAWogDUH8AWoQ1gIgDUP//39/QwAAAAAgDiANKgKkBJQgESANKgKoBJSSIBQgDSoCrASUkiIOIBBgGzgCtAIgDUP//3//QwAAAIAgDiASXxs4ArACIA0gDSoCvAIgD0MAAAAAQwAAAAAgDiAQkyIQIBBDAAAAAF0bIBAgEFwbQwAAAABDAAAAACASIA6TIg4gDkMAAAAAXRsgDiAOXBuTlJI4ArwCIA1BqAFqIAZByAAQiA0aIAMgY08NASBpIANByABsaiANQagBakHIABCIDRogA0EBaiEDCyBuQQJxBEAgAEEcaioCACESIABBIGoqAgAhECANIA0qAvADOAKEAiANIA0pAugDNwL8ASANIA0qAswDOAL4ASANIA0pAsQDNwLwASANKgL8AiEOIA0qAoADIREgDSANKgKEAyIUOALcAiANIBE4AtgCIA0gDjgC1AIgDUGIAmoiBiBvIA1BpAFqIGwgDUE4aiANQfAAaiBmIGcgYiAMQQFBASANQdQCaiANQfABaiANQfwBahDWAiANQ///f39DAAAAACAOIA0qAqQElCARIA0qAqgElJIgFCANKgKsBJSSIg4gEGAbOAK0AiANQ///f/9DAAAAgCAOIBJfGzgCsAIgDSANKgK8AiAPQwAAAABDAAAAACAOIBCTIhAgEEMAAAAAXRsgECAQXBtDAAAAAEMAAAAAIBIgDpMiDiAOQwAAAABdGyAOIA5cG5OUkjgCvAIgDUGoAWogBkHIABCIDRogAyBjTw0BIGkgA0HIAGxqIA1BqAFqQcgAEIgNGiADQQFqIQMLIG5BBHEEQCAAQShqKgIAIRIgAEEsaioCACEQIA0gDSoC/AM4AoQCIA0gDSkC9AM3AvwBIA0gDSoC2AM4AvgBIA0gDSkC0AM3AvABIA0qAogDIQ4gDSoCjAMhESANIA0qApADIhQ4AtwCIA0gETgC2AIgDSAOOALUAiANQYgCaiIGIG8gDUGkAWogbCANQThqIA1B8ABqIGYgZyBiIAxBAUECIA1B1AJqIA1B8AFqIA1B/AFqENYCIA1D//9/f0MAAAAAIA4gDSoCpASUIBEgDSoCqASUkiAUIA0qAqwElJIiDiAQYBs4ArQCIA1D//9//0MAAACAIA4gEl8bOAKwAiANIA0qArwCIA9DAAAAAEMAAAAAIA4gEJMiECAQQwAAAABdGyAQIBBcG0MAAAAAQwAAAAAgEiAOkyIOIA5DAAAAAF0bIA4gDlwbk5SSOAK8AiANQagBaiAGQcgAEIgNGiADIGNPDQEgaSADQcgAbGogDUGoAWpByAAQiA0aIANBAWohAwsgAyAFSQ0DIAMgY00NASADIGNBkNjBABDkCAALIAMgY0Gg2MEAEOMIAAsgdCBzIGkgBUHIAGxqIAMgBWsQeAsgeyAAQeADaiIARw0BDAQLCyAFIANBkNjBABDlCAALIAMhBQsgBSBjQdDYwQAQ4wgACwJAIG9BtAFqKAIAIgBFDQAgAEHYA2whgwEgb0GEAWooAgAhdCANQfgCaiF7IG8oAnwhfUEAIQMgbygCrAEihQEhBQJAAkACQAJAAkADQAJAAkACQAJAQQEgAyCFAWoiAEHQA2otAAAiB0ECayIGIAZB/wFxQQNPG0H/AXFBAWsOAgECAAsgACgCACIGIHdPDQIgcEUNAiBwIAZBlAJsaiIGLQCQAkECRg0CIAYoAgAgAEEEaigCAEcNAiAAQQxqKAIAIgggBkEMaigCAE8NBCAGQQRqImMoAgAiC0UNBCAAQRRqKAIAIgYgdEsNBSAAQRBqKAIAIQAgfSAGQThsaiFnIHQgBmshZkEAIQxBACFiIwBBIGsiByQAIAcgADYCDCALIAhB6ANsaiJpQSBqIgtB4QJqLQAAIWwgC0HiAmotAAAhbiALQeACai0AACFxQQAhACAHQQA2AhACQCBxQQFxDQAgbEEBcSEGIAtBOGooAgAhDCALQTxqKAIAIWIgbkEBcQRAIAsqAhAhDyAHIAY2AhQgByAMrSBirUIghoQ3AhggayBjIGkgC0G4AWogDyAHQRRqQQAgB0EMaiBvIGcgZiAHQRBqEMkBC0EBIQAgBkUNACAHIAtBOGopAwA3AhQgayBjIGkgB0EUaiALKgIQQQAgB0EMaiBvIGcgZiAHQRBqEIoCCyBxQQJxRQRAIAtBxABqKAIAIAwgbEECcSIGGyEMIAtByABqKAIAIGIgBhshYiBuQQJxBEAgC0EUaioCACEPIAcgDK0gYq1CIIaENwIYIAcgBkEBdjYCFCBrIGMgaSALQdQBaiAPIAdBFGogACAHQQxqIG8gZyBmIAdBEGoQyQELIAYEQCAHIAtBxABqKQIANwIUIGsgYyBpIAdBFGogC0EUaioCACAAIAdBDGogbyBnIGYgB0EQahCKAgsgAEEBaiEACwJ/An8gcUEEcUUEQCBsQQRxIQYgbkEEcQRAIAtBGGoqAgAhDyALQdAAaigCACEIIAtB1ABqKAIAIWUgByAGQQJ2NgIUIAcgCCAMIAYbrSBlIGIgBhutQiCGhDcCGCBrIGMgaSALQfABaiAPIAdBFGogACAHQQxqIG8gZyBmIAdBEGoQyQELIAYEQCAHIAtB0ABqKQMANwIUIGsgYyBpIAdBFGogC0EYaioCACAAIAdBDGogbyBnIGYgB0EQahCKAgsgAEEBaiEACyAAIHFBCHENARpBACBsQQhxRQ0AGiALQRxqKgIAIQ4gC0HcAGoqAgAhDyAHIAtB4ABqKgIAIhA4AhggByAPOAIUIGsgYyBpIAdBFGogDiAAIAdBDGogbyBnIGYgB0EQahCKAiAQvCEMIA+8IWJBAQshBiBuQQhxBEAgC0EcaioCACEPIAcgYq0gDK1CIIaENwIYIAcgBjYCFCBrIGMgaSALQYwCaiAPIAdBFGogACAHQQxqIG8gZyBmIAdBEGoQyQELIABBAWoLIQAgcUEQcUUEQEEAIQggbEEQcQRAIAtBIGoqAgAhDiALQegAaioCACEPIAcgC0HsAGoqAgAiEDgCGCAHIA84AhQgayBjIGkgB0EUaiAOIAAgB0EMaiBvIGcgZiAHQRBqEIoCIA+8IWIgELwhDEEBIQgLIG5BEHEEQCALQSBqKgIAIQ8gByBirSAMrUIghoQ3AhggByAINgIUIGsgYyBpIAtBqAJqIA8gB0EUaiAAIAdBDGogbyBnIGYgB0EQahDJAQsgAEEBaiEACwJAIHFBIHENAEEAIQggbEEgcQRAIAtBJGoqAgAhDiALQfQAaioCACEPIAcgC0H4AGoqAgAiEDgCGCAHIA84AhQgayBjIGkgB0EUaiAOIAAgB0EMaiBvIGcgZiAHQRBqEIoCIA+8IWIgELwhDEEBIQgLIG5BIHFFDQAgC0EkaioCACEPIAcgYq0gDK1CIIaENwIYIAcgCDYCFCBrIGMgaSALQcQCaiAPIAdBFGogACAHQQxqIG8gZyBmIAdBEGoQyQELIAcoAhAaIAdBIGokAAwBCyAAKAIAIgYgd08NBSBwRQ0FIHAgBkGUAmxqIgYtAJACQQJGDQUgBigCACAAQQRqKAIARw0FIABBDGooAgAiaSAGQQxqKAIATw0GIAZBBGoiYygCACIGRQ0GAn8gB0UEQCAAQZgBaiFnIABBlAFqIQwgAEGQAWohZiAAQYwBaiFiIABBnAFqIQggAEGEAWohCyAAQYgBagwBCyAFQfwAaiFnIAVB+ABqIQwgBUH0AGohZiAFQfAAaiFiIAVBgAFqIQggBUHoAGohCyAFQewAagshByANIGYqAgAiESAGIGlB6ANsaiIGQaADaioCACISlCALKgIAIhQgBioClAMiD5STIAcqAgAiEyAGQZgDaioCACIOlJMgYioCACIVIAZBnANqKgIAIhCUkzgClAIgDSARIBCUIBMgD5QgFSASlJIgFCAOlJOSOAKQAiANIBQgEJQgESAOlCATIBKUIBUgD5STkpI4AowCIA0gFSAOlCARIA+UIBQgEpSSkiATIBCUkzgCiAIgDyBnKgIAIhOUIA4gDCoCACIVlJMiESARkiERIBUgEJQgCCoCACIWIA+UkyIUIBSSIRQgDSAGQawDaioCACIaIBYgEiARlCAPIBSUIA4gFiAOlCATIBCUkyIWIBaSIhaUk5KSkjgCoAIgDSAGQagDaioCACIXIBMgEiAUlCAQIBaUIA8gEZSTkpKSOAKcAiANIAZBpANqKgIAIhkgFSASIBaUIA4gEZQgECAUlJOSkpI4ApgCIHsgAEG0A2opAgA3AgAge0EIaiAAQbwDaigCADYCACANQeACaiIGQQhqIABBpANqKQIANwMAIAZBEGogAEGsA2opAgA3AwAgDSAAQZwDaikCADcD4AIgDSAAQcwDaigCADYCkAMgDyAAQcQDaioCACITlCAOIABBwANqKgIAIhWUkyIRIBGSIREgECAVlCAPIABByANqKgIAIhaUkyIUIBSSIRQgDSAaIBYgEiARlCAPIBSUIA4gDiAWlCAQIBOUkyIWIBaSIhaUk5KSkjgCjAMgDSAXIBMgEiAUlCAQIBaUIA8gEZSTkpKSOAKIAyANIBkgFSASIBaUIA4gEZQgECAUlJOSkpI4AoQDIA0gAEGUA2ooAgA2AqgBIABBmANqKAIAIgYgdEsNByAAQZADaigCACFsIA1BqAFqIQsgfSAGQThsaiFiIHQgBmshDEEAIXMjAEHwAWsiCCQAIABBEGoiBy0AuQIheSAHLQC6AiGAASAIQQhqIgYgAEH0AmogDUGIAmogAEHQAmoidkEYaiANQYQDaiAHLQC4AiJ8EHYgdkEUaioCACEPIHZBEGoqAgAhECAGQRhqIQAgYygCiAIhbiB2KgIMIRIgYygChAIhcSBvKAIMIWcgbygCACFmIGsqAgQiESARlCEZQQMhciAIQeQBaiF/QQAhBgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AggAEgcnZBAXEEQCAHIHNqImVB5AFqKgIAIRggZUHoAWoqAgAhHiBlQfQBaioCACEhIGVB/AFqLQAAIYQBIGVB7AFqKgIAIRQgZUHwAWoqAgAhEyAAQQhrKgIAIRUgAEEEayoCACEWIAAqAgAhGiAIQQA2AuABIAhCADcC2AEgCCAaOALsASAIIBY4AugBIAggFTgC5AEgCygCACGIASBjIGkgCEHYAWogCEHkAWogCyBmIGcQfRpDAAAAACEOIBRDAAAAAEMAAIA/IBMgESAUlJIiF5UiHCAXQwjlPB5fGyAcIBdDCOU8nmAblCIcQwAAAABcBEAgCCAIKgIQOALsASAIIAgpAgg3AuQBQwAAgD8gfyoCACAeQwAAAL+UEJYNkiIOmCEXIBwgDiAOQwAAwH8gFyAXkiAOIA5cG5MiFyAOiyAXi10blEMAAAAAkiEOCyAGIAxPDQIgYiAGQThsaiJlQwAAAABDAACAPyAZIBSUIBEgE5SSIhSVIhMgFEMI5TweXxsgEyAUQwjlPJ5gGyIUQwAAAAAghAEbOAI0IGVDAAAAACAUIIQBGzgCMCBlQQA2AiQgZSARICGUIhQ4AiAgZSAUjDgCHCBlQQA2AhggZSBsNgIUIGUgiAE2AhAgZSBxNgIMIGUgbjYCCCBlIHI2AgQgZUECNgIAIGUgDiAVIBKUIBYgEJSSIBogD5SSjCAYk5IiDjgCLCBlIA44AiggBkEBaiEGCyByQQFqIXIgAEEMaiEAIH9BBGohfyBzQRxqInNB1ABHDQALIHYqAgghFCB2KgIEIRMgdioCACEVIAchAEEAIXNBACFyAkADQCCAASBydkEBcQRAIABBkAFqKgIAIRwgAEGUAWoqAgAhICAAQaABaioCACEbIABBqAFqLQAAIXYgAEGYAWoqAgAhFiAAQZwBaioCACEYIAggCEEIaiBzaiJlQYQBaioCADgC4AEgCCBlQfwAaikCADcC2AEgZUHcAGoqAgAhHyBlQeAAaioCACElIGVB2ABqKgIAISggZUEQaioCACEaIGVBFGoqAgAhFyAIIGVBGGoqAgAiHjgC7AEgCCAXOALoASAIIBo4AuQBIAsoAgAhfyBjIGkgCEHkAWogCEHYAWogCyBmIGcQfRpDAAAAACEOIBZDAAAAAEMAAIA/IBggESAWlJIiIZUiIyAhQwjlPB5fGyAjICFDCOU8nmAblCIhQwAAAABcBEAgISAaIAgqAswBlCAXIAgqAtABlJIgHiAIKgLUAZSSICCTlEMAAAAAkiEOCyAGIAxPDQIgYiAGQThsaiJlQwAAAABDAACAPyAZIBaUIBEgGJSSIhaVIhggFkMI5TweXxsgGCAWQwjlPJ5gGyIWQwAAAAAgdhs4AjQgZUMAAAAAIBYgdhs4AjAgZUEANgIkIGUgESAblCIWOAIgIGUgFow4AhwgZUEANgIYIGUgbDYCFCBlIH82AhAgZSBxNgIMIGUgbjYCCCBlIHI2AgQgZUECNgIAIGUgDiAaIBWUIBcgE5SSIB4gFJSSjCAoIBKUIB8gEJSSICUgD5SSkyAck5IiDjgCLCBlIA44AiggBkEBaiEGCyByQQFqIXIgAEEcaiEAIHNBDGoic0EkRw0ACyAGIAxLDQIgZiBnIGIgBhCrASAVQwAAAACUIBNDAAAAAJSSIBRDAAAAAJSSIRYgayoCFEMAAAAAQwAAgD8gEZUgEUMAAAAAWxuUIQ4gBiEAIHxBCHEEQCAIIAgqAqgBIhE4AtgBIAggCEGwAWoqAgAiGjgC4AEgCCAIQawBaioCACIXOALcASAIQQA2AuwBIAhCADcC5AEgCygCACFlIGMgaSAIQeQBaiAIQdgBaiALIGYgZxB9GiAGIAxPDRAgCCoCCCEZIGIgBkE4bGoiAEIANwIwIABC////+wc3AiAgAEKAgICA8P//v383AhggACBsNgIUIAAgZTYCECAAIHE2AgwgACBuNgIIIABCgICAgDA3AgAgACAWIBEgEpQgFyAQlJIgGiAPlJKSIhGMOAIsIAAgDiAZlCARkzgCKCAGQQFqIQALIHxBEHEEQCAIIAhBvAFqKgIAIhE4AuABIAggCEG4AWoqAgAiGjgC3AEgCCAIQbQBaioCACIXOALYASAIQQA2AuwBIAhCADcC5AEgCygCACFyIGMgaSAIQeQBaiAIQdgBaiALIGYgZxB9GiAAIAxPDQ8gCCoCDCEZIGIgAEE4bGoiZUIANwIwIGVC////+wc3AiAgZUKAgICA8P//v383AhggZSBsNgIUIGUgcjYCECBlIHE2AgwgZSBuNgIIIGVCgICAgMAANwIAIGUgFiAXIBKUIBogEJSSIBEgD5SSkiIRjDgCLCBlIA4gGZQgEZM4AiggAEEBaiEACyB8QSBxBEAgCCAIQcgBaioCACIROALgASAIIAhBxAFqKgIAIho4AtwBIAggCEHAAWoqAgAiFzgC2AEgCEEANgLsASAIQgA3AuQBIAsoAgAhciBjIGkgCEHkAWogCEHYAWogCyBmIGcQfRogACAMTw0PIAgqAhAhGSBiIABBOGxqImVCADcCMCBlQv////sHNwIgIGVCgICAgPD//79/NwIYIGUgbDYCFCBlIHI2AhAgZSBxNgIMIGUgbjYCCCBlQoCAgIDQADcCACBlIBYgFyASlCAaIBCUkiARIA+UkpIiEYw4AiwgZSAOIBmUIBGTOAIoIABBAWohAAsgfEEBcQ0DDAQLIAYgDEGg28EAEOMIAAsgBiAMQbDbwQAQ4wgACyAGIAxBwNrBABDkCAALIAggCCkChAE3AtgBIAggCEGMAWoqAgA4AuABIAhB6ABqKgIAIRkgCEHkAGoqAgAhGCAIQRxqKgIAIREgCCoCYCEeIAgqAhghGiAIIAhBIGoqAgAiFzgC7AEgCCAROALoASAIIBo4AuQBIAsoAgAhciBjIGkgCEHkAWogCEHYAWogCyBmIGcQfRogACAMTw0BIAgqAswBISEgCCoC0AEhHCAIKgLUASEgIGIgAEE4bGoiZUIANwIwIGVC////+wc3AiAgZUKAgICA8P//v383AhggZSBsNgIUIGUgcjYCECBlIHE2AgwgZSBuNgIIIGVCADcCACBlIBogFZQgESATlJIgFyAUlJIgHiASlCAYIBCUkiAZIA+UkpIiGYw4AiwgZSAOIBogIZQgESAclJIgFyAglJKUIBmTOAIoIABBAWohAAsgfEECcQRAIAggCEGYAWoqAgA4AuABIAggCEGQAWopAgA3AtgBIAhB9ABqKgIAIRkgCEHwAGoqAgAhGCAIQewAaioCACEeIAhBJGoqAgAhESAIQShqKgIAIRogCCAIQSxqKgIAIhc4AuwBIAggGjgC6AEgCCAROALkASALKAIAIXIgYyBpIAhB5AFqIAhB2AFqIAsgZiBnEH0aIAAgDE8NASAIKgLMASEhIAgqAtABIRwgCCoC1AEhICBiIABBOGxqImVCADcCMCBlQv////sHNwIgIGVCgICAgPD//79/NwIYIGUgbDYCFCBlIHI2AhAgZSBxNgIMIGUgbjYCCCBlQoCAgIAQNwIAIGUgESAVlCAaIBOUkiAXIBSUkiAeIBKUIBggEJSSIBkgD5SSkiIZjDgCLCBlIA4gESAhlCAaIByUkiAXICCUkpQgGZM4AiggAEEBaiEACyB8QQRxBEAgCCAIQaQBaioCADgC4AEgCCAIQZwBaikCADcC2AEgCEGAAWoqAgAhGSAIQfwAaioCACEYIAhB+ABqKgIAIR4gCEEwaioCACERIAhBNGoqAgAhGiAIIAhBOGoqAgAiFzgC7AEgCCAaOALoASAIIBE4AuQBIAsoAgAhciBjIGkgCEHkAWogCEHYAWogCyBmIGcQfRogACAMTw0BIAgqAswBISEgCCoC0AEhHCAIKgLUASEgIGIgAEE4bGoiZUIANwIwIGVC////+wc3AiAgZUKAgICA8P//v383AhggZSBsNgIUIGUgcjYCECBlIHE2AgwgZSBuNgIIIGVCgICAgCA3AgAgZSARIBWUIBogE5SSIBcgFJSSIB4gEpQgGCAQlJIgGSAPlJKSIhmMOAIsIGUgDiARICGUIBogHJSSIBcgIJSSlCAZkzgCKCAAQQFqIQALIHlBCHENAQwCCyAAIAxBgNvBABDjCAALIAdBOGoqAgAhGiAHQTRqKgIAIRcgCCAIQbABaioCACIZOALgASAIIAhBrAFqKgIAIhg4AtwBIAggCCoCqAEiHjgC2AEgCEEANgLsASAIQgA3AuQBIAsoAgAhciBjIGkgCEHkAWogCEHYAWogCyBmIGcQfRogACAMTw0BIAgqAgghESBiIABBOGxqImVCADcCMCBlQQA2AiQgZUEANgIYIGUgbDYCFCBlIHI2AhAgZSBxNgIMIGUgbjYCCCBlQoGAgIAwNwIAIGVD//9/f0MAAAAAIBpDAAAAP5QQlg0iGiARXxs4AiAgZUP//3//QwAAAIAgF0MAAAA/lBCWDSIXIBFgGzgCHCBlIBYgHiASlCAYIBCUkiAZIA+UkpIiGYw4AiwgZSAOQwAAAABDAAAAACARIBqTIhogGkMAAAAAXRsgGiAaXBtDAAAAAEMAAAAAIBcgEZMiESARQwAAAABdGyARIBFcG5OUIBmTOAIoIABBAWohAAsgeUEQcQRAIAdBxABqKgIAIRogB0FAayoCACEXIAggCEG8AWoqAgAiGTgC4AEgCCAIQbgBaioCACIYOALcASAIIAhBtAFqKgIAIh44AtgBIAhBADYC7AEgCEIANwLkASALKAIAIXIgYyBpIAhB5AFqIAhB2AFqIAsgZiBnEH0aIAAgDE8NASAIKgIMIREgYiAAQThsaiJlQgA3AjAgZUEANgIkIGVBADYCGCBlIGw2AhQgZSByNgIQIGUgcTYCDCBlIG42AgggZUKBgICAwAA3AgAgZUP//39/QwAAAAAgGkMAAAA/lBCWDSIaIBFfGzgCICBlQ///f/9DAAAAgCAXQwAAAD+UEJYNIhcgEWAbOAIcIGUgFiAeIBKUIBggEJSSIBkgD5SSkiIZjDgCLCBlIA5DAAAAAEMAAAAAIBEgGpMiGiAaQwAAAABdGyAaIBpcG0MAAAAAQwAAAAAgFyARkyIRIBFDAAAAAF0bIBEgEVwbk5QgGZM4AiggAEEBaiEACyB5QSBxBEAgB0HQAGoqAgAhGiAHQcwAaioCACEXIAggCEHIAWoqAgAiGTgC4AEgCCAIQcQBaioCACIYOALcASAIIAhBwAFqKgIAIh44AtgBIAhBADYC7AEgCEIANwLkASALKAIAIXIgYyBpIAhB5AFqIAhB2AFqIAsgZiBnEH0aIAAgDE8NASAIKgIQIREgYiAAQThsaiJlQgA3AjAgZUEANgIkIGVBADYCGCBlIGw2AhQgZSByNgIQIGUgcTYCDCBlIG42AgggZUKBgICA0AA3AgAgZUP//39/QwAAAAAgGkMAAAA/lBCWDSIaIBFfGzgCICBlQ///f/9DAAAAgCAXQwAAAD+UEJYNIhcgEWAbOAIcIGUgFiAeIBKUIBggEJSSIBkgD5SSkiIZjDgCLCBlIA5DAAAAAEMAAAAAIBEgGpMiFiAWQwAAAABdGyAWIBZcG0MAAAAAQwAAAAAgFyARkyIRIBFDAAAAAF0bIBEgEVwbk5QgGZM4AiggAEEBaiEACyB5QQFxDQEMAgsgACAMQfDawQAQ4wgACyAHQRRqKgIAIRogByoCECEXIAggCEGMAWoqAgA4AuABIAggCCkChAE3AtgBIAhB6ABqKgIAIRggCEHkAGoqAgAhHiAIQRxqKgIAIREgCCoCYCEhIAgqAhghFiAIIAhBIGoqAgAiGTgC7AEgCCAROALoASAIIBY4AuQBIAsoAgAhciBjIGkgCEHkAWogCEHYAWogCyBmIGcQfRogACAMTw0BIAgqAswBIRwgCCoC0AEhICAIKgLUASEbIGIgAEE4bGoiZUIANwIwIGVBADYCJCBlQQA2AhggZSBsNgIUIGUgcjYCECBlIHE2AgwgZSBuNgIIIGVCATcCACBlIBYgFZQgESATlJIgGSAUlJIgISASlCAeIBCUkiAYIA+UkpIiGIw4AiwgZUP//39/QwAAAAAgFiAclCARICCUkiAZIBuUkiIRIBpgGzgCICBlQ///f/9DAAAAgCARIBdfGzgCHCBlIA5DAAAAAEMAAAAAIBEgGpMiFiAWQwAAAABdGyAWIBZcG0MAAAAAQwAAAAAgFyARkyIRIBFDAAAAAF0bIBEgEVwbk5QgGJM4AiggAEEBaiEACyB5QQJxBEAgB0EgaioCACEaIAdBHGoqAgAhFyAIIAhBmAFqKgIAOALgASAIIAhBkAFqKQIANwLYASAIQfQAaioCACEYIAhB8ABqKgIAIR4gCEHsAGoqAgAhISAIQQhqImVBHGoqAgAhESBlQSBqKgIAIRYgCCAIQSxqKgIAIhk4AuwBIAggFjgC6AEgCCAROALkASALKAIAIXIgYyBpIAhB5AFqIAhB2AFqIAsgZiBnEH0aIAAgDE8NASAIKgLMASEcIAgqAtABISAgCCoC1AEhGyBiIABBOGxqImVCADcCMCBlQQA2AiQgZUEANgIYIGUgbDYCFCBlIHI2AhAgZSBxNgIMIGUgbjYCCCBlQoGAgIAQNwIAIGUgESAVlCAWIBOUkiAZIBSUkiAhIBKUIB4gEJSSIBggD5SSkiIYjDgCLCBlQ///f39DAAAAACARIByUIBYgIJSSIBkgG5SSIhEgGmAbOAIgIGVD//9//0MAAACAIBEgF18bOAIcIGUgDkMAAAAAQwAAAAAgESAakyIWIBZDAAAAAF0bIBYgFlwbQwAAAABDAAAAACAXIBGTIhEgEUMAAAAAXRsgESARXBuTlCAYkzgCKCAAQQFqIQALIHlBBHEEQCAHQSxqKgIAIRogB0EoaioCACEXIAggCEGkAWoqAgA4AuABIAggCEGcAWopAgA3AtgBIAhBgAFqKgIAIRggCEH8AGoqAgAhHiAIQfgAaioCACEhIAhBCGoiB0EoaioCACERIAdBLGoqAgAhFiAIIAhBOGoqAgAiGTgC7AEgCCAWOALoASAIIBE4AuQBIAsoAgAhZSBjIGkgCEHkAWogCEHYAWogCyBmIGcQfRogACAMTw0BIAgqAswBIRwgCCoC0AEhICAIKgLUASEbIGIgAEE4bGoiB0IANwIwIAdBADYCJCAHQQA2AhggByBsNgIUIAcgZTYCECAHIHE2AgwgByBuNgIIIAdCgYCAgCA3AgAgByARIBWUIBYgE5SSIBkgFJSSICEgEpQgHiAQlJIgGCAPlJKSIhCMOAIsIAdD//9/f0MAAAAAIBEgHJQgFiAglJIgGSAblJIiDyAaYBs4AiAgB0P//3//QwAAAIAgDyAXXxs4AhwgByAOQwAAAABDAAAAACAPIBqTIg4gDkMAAAAAXRsgDiAOXBtDAAAAAEMAAAAAIBcgD5MiDyAPQwAAAABdGyAPIA9cG5OUIBCTOAIoIABBAWohAAsgACAGSQ0CIAAgDE0NASAAIAxB0NrBABDkCAALIAAgDEHg2sEAEOMIAAsgZiBnIGIgBkE4bGogACAGaxCrASAIQfABaiQADAMLIAYgAEHQ2sEAEOUIAAsgACEGCyAGIAxBkNvBABDjCAALCyAFQdgDaiEFIIMBIANB2ANqIgNHDQEMBwsLQeybwQBBE0Gw38EAEOEJAAtB9MLAAEErQcDfwQAQqgoACyAGIHRB0N/BABDiCAALQeybwQBBE0Gw4MEAEOEJAAtB9MLAAEErQcDgwQAQqgoACyAGIHRB0ODBABDiCAALAkACQAJAIG9BkAFqKAIAIgBFDQAgbygCiAEiByAAQdACbGohkwFDAAAAAEMAAIA/IGsqAgQiMZUgMUMAAAAAWxsiPCBrKgIUIg+UIR5DAACAPyAPlUMAAIC/kiIPIA+UIGsqAhgiDiAOIA9DAACAP5JDAACAQJSUlJUhISBvQeAAaigCACGAASANQeACaiIAQRhqIQsgbygCWCGJASAAQTRqIZUBIABBEGohjQEgDUGIAmoiAEEkaiGEASAAQRhqIW4gDUGoAWoiAEEkaiGDASAAQRhqIXEgMSAxlCEpAkACQAJAA0ACQAJAAkACQAJAAkAgBygCwAIiZiB1SQRAIAcoAsQCImkgdU8NASANIGggZkH8AGxqIgBBxABqKgIAIhIgB0HkAGoqAgAiEZQgACoCOCIPIAcqAlgiFJSTIABBPGoqAgAiDiAHQdwAaioCACITlJMgAEFAayoCACIQIAdB4ABqKgIAIhWUkzgCRCANIBAgEZQgDyATlCASIBWUkiAOIBSUk5I4AkAgDSAQIBSUIA4gEZQgEiATlCAPIBWUk5KSOAI8IA0gDiAVlCASIBSUIA8gEZSSkiAQIBOUkzgCOCAPIAdB7ABqKgIAIhOUIA4gB0HoAGoqAgAiFZSTIhEgEZIhESAQIBWUIA8gB0HwAGoqAgAiFpSTIhQgFJIhFCANIABB0ABqKgIAIBYgEiARlCAPIBSUIA4gDiAWlCAQIBOUkyIWIBaSIhaUk5KSkjgCUCANIABBzABqKgIAIBMgEiAUlCAQIBaUIA8gEZSTkpKSOAJMIA0gAEHIAGoqAgAgFSASIBaUIA4gEZQgECAUlJOSkpI4AkggDSBoIGlB/ABsaiIDQcQAaioCACISIAdBgAFqKgIAIhGUIAMqAjgiDyAHKgJ0IhSUkyADQTxqKgIAIg4gB0H4AGoqAgAiE5STIANBQGsqAgAiECAHQfwAaioCACIVlJM4AnwgDSAQIBGUIA8gE5QgEiAVlJIgDiAUlJOSOAJ4IA0gECAUlCAOIBGUIBIgE5QgDyAVlJOSkjgCdCANIA4gFZQgEiAUlCAPIBGUkpIgECATlJM4AnAgDyAHQYgBaioCACITlCAOIAdBhAFqKgIAIhWUkyIRIBGSIREgECAVlCAPIAdBjAFqKgIAIhaUkyIUIBSSIRQgDSADQdAAaioCACAWIBIgEZQgDyAUlCAOIA4gFpQgECATlJMiFiAWkiIWlJOSkpI4AogBIA0gA0HMAGoqAgAgEyASIBSUIBAgFpQgDyARlJOSkpI4AoQBIA0gA0HIAGoqAgAgFSASIBaUIA4gEZQgECAUlJOSkpI4AoABIHFBCGoiZSAAQdwAaigCADYCACBxIAApAlQ3AgAgDUGoAWoiBUEIaiAAQSBqKQIANwMAIAVBEGogAEEoaikCADcDACCDASAAKQJgNwIAIIMBQQhqIABB6ABqKAIANgIAIA0gZjYC2AEgDSAAKQIYNwOoASBuQQhqInIgA0HcAGooAgA2AgAgbiADKQJUNwIAIA1BiAJqIgVBCGogA0EgaikCADcDACAFQRBqIANBKGopAgA3AwAghAEgAykCYDcCACCEAUEIaiADQegAaigCADYCACANIGk2ArgCIA0gAykCGDcDiAIgBygCzAIiBSCAAU0EQCAHQdACaiEMIANB1ABqIXkgAEHUAGohdiAHKALIAiFsIActALoCIQAgBy0AuQIhAyAHLQC7AiFzIA1B4AJqIA1BOGogDUHwAGoggwEghAEgBy0AuAIidBB2IIABIAVrIWIgc0F/cyF9IIkBIAVB8ABsaiFnIAMgdEF/cyIDcSF8IAAgA3EhhQEgc0E4cSKOAUGAAnJoIX8gc0EHcSKPAUGAAnJoIXtBAyEIQQAhBUGsfyEGIA1BHGohACANKgLoAiEjIA0qAuQCIScgDSoC4AIhLiANKgKcAiEcIA0qApgCIRIgDSoClAIhICANKgKQAiERIA0qAowCIRQgDSoCiAIhGyANKgK8ASEfIA0qArgBIRUgDSoCtAEhJSANKgKwASEXIA0qAqwBIRkgDSoCqAEhKCALIQMDQEEBIAh0IH1xIIUBcUH/AXEEQCAGIAdqImNB0AJqLQAAIYgBIGNByAJqKgIAITMgA0EEayoCACEPIANBCGsqAgAhDiBjQbgCaioCACEwIAMqAgAhEAJ9QwAAgD8gMSBjQcACaioCACIWlCBjQcQCaioCACItkiITlSEaQwAAAAAgFkMAAAAAIBogE0MI5TweXxsgGiATQwjlPJ5gG5QiOkMAAAAAWw0AGiBjQbwCaioCACETIA0gIzgCJCANICc4AiAgDSAuOAIcIAAqAgAQ4AUiGiAakiATkyITQwAAwH9DAACAPyATmEPbD8lAlCATIBNcG5MhGiA6IBMgGiATiyAai10blEMAAAAAkgshGCAFIGJPDQUgZyAFQfAAbGoiY0MAAAAAQwAAAABDAACAPyApIBaUIDEgLZSSIhOVIhYgE0MI5TweXxsgFiATQwjlPJ5gGyITIIgBGzgCVCBjIBNDAAAAACCIARs4AlAgYyAYIDCTIhM4AkwgYyATOAJIIGNBADYCRCBjQQA2AiggY0IANwIgIGMgMSAzlCITOAIcIGMgE4w4AhggY0EANgIUIGMgbDYCECBjIGk2AgwgYyBmNgIIIGMgCDYCBCBjQQI2AgAgYyARIA6UIBIgD5SSIBwgEJSSOAJAIGMgFCAOlCAgIA+UkiASIBCUkjgCPCBjIBsgDpQgFCAPlJIgESAQlJI4AjggYyAXIA6UIBUgD5SSIB8gEJSSOAI0IGMgGSAOlCAlIA+UkiAVIBCUkjgCMCBjICggDpQgGSAPlJIgFyAQlJI4AiwgY0HgAGogdkEIaigCADYCACBjIHYpAgA3AlggY0HsAGogeUEIaigCADYCACBjIHkpAgA3AmQgBUEBaiEFCyAIQQFqIQggA0EMaiEDIABBBGohACAGQRxqIgYNAAsgfSCFAXEhhQFBXCEGQQAhAEEAIQgCQAJAA0BBASAIdCIDIIUBcUH/AXEEQCADIHxxQf8BcSKIAQRAIAYgB2oiA0E4aioCACEqIANBNGoqAgAhKwsgDUHgAmogBmoiA0E0aioCACIuIA0qAqQElCADQThqKgIAIjMgDSoCqASUkiADQTxqKgIAIjAgDSoCrASUkiEPIAAgB2oiY0GQAWoqAgAhGCCIAQRAIDwgKyAPk5QiDiA8ICogD5OUIhAgGCAQIBhdGyAOIBheGyEYCyAFIGJPDQIgY0GUAWoqAgAhLSADQaQBaioCACEOIANBoAFqKgIAIRAgA0H8AGoqAgAhEyADQYABaioCACEWIANBqAFqKgIAIRogA0GEAWoqAgAhIyBjQaABaioCACEiIGcgBUHwAGxqIgNDAAAAAEMAAAAAQwAAgD8gKSBjQZgBaioCACIdlCAxIGNBnAFqKgIAIjqUkiInlSI+ICdDCOU8Hl8bID4gJ0MI5TyeYBsiJyBjQagBai0AACJjGzgCVCADICdDAAAAACBjGzgCUCADIB1DAAAAAEMAAIA/IDogMSAdlJIiJ5UiHSAnQwjlPB5fGyAdICdDCOU8nmAblCInIA8gLZOUQwAAAACSQwAAAAAgJ0MAAAAAXBsgGJMiDzgCTCADIA84AkggA0EANgJEIAMgESAQlCASIA6UkiAcIBqUkjgCQCADIBQgEJQgICAOlJIgEiAalJI4AjwgAyAbIBCUIBQgDpSSIBEgGpSSOAI4IAMgHyAjlCAVIBaUIBcgE5SSkjgCNCADIBUgI5QgJSAWlCAZIBOUkpI4AjAgAyAXICOUIBkgFpQgKCATlJKSOAIsIAMgMDgCKCADIDM4AiQgAyAuOAIgIAMgMSAilCIPOAIcIAMgD4w4AhggA0EANgIUIAMgbDYCECADIGk2AgwgAyBmNgIIIAMgCDYCBCADQQI2AgAgA0HgAGogdkEIaigCADYCACADIHYpAgA3AlggA0HsAGogeUEIaigCADYCACADIHkpAgA3AmQgBUEBaiEFCyAIQQFqIQggAEEcaiEAIAZBDGoiBg0ACyAFIGJLDQEgZyAFEM8BIA0qAugCIRMgDSoC5AIhFiANKgLgAiEaIAUhBiB0QQhxBEAgBSBiTw0OIGcgBUHwAGxqIgAgITgCVCAAQgA3AkwgACAeIBqUQwAAAACSOAJIIABBADYCRCAAQgA3AiQgAEL////7BzcCHCAAQoCAgIDw//+/fzcCFCAAIGw2AhAgACBpNgIMIAAgZjYCCCAAQoCAgIAwNwIAIAAgHCANKgKIBCIPlCASIA0qAoQEIg6UIBEgDSoCgAQiEJSSkjgCQCAAIBIgD5QgICAOlCAUIBCUkpI4AjwgACARIA+UIBQgDpQgGyAQlJKSOAI4IAAgHyAPlCAVIA6UIBcgEJSSkjgCNCAAIBUgD5QgJSAOlCAZIBCUkpI4AjAgACAXIA+UIBkgDpQgKCAQlJKSOAIsIABB4ABqIHZBCGooAgA2AgAgACB2KQIANwJYIABB7ABqIHlBCGooAgA2AgAgACB5KQIANwJkIAVBAWohBgsgdEEQcQRAIAYgYk8NDSBnIAZB8ABsaiIAICE4AlQgAEIANwJMIAAgHiAWlEMAAAAAkjgCSCAAQQA2AkQgAEIANwIkIABC////+wc3AhwgAEKAgICA8P//v383AhQgACBsNgIQIAAgaTYCDCAAIGY2AgggAEKAgICAwAA3AgAgACAcIA0qApQEIg+UIBIgDSoCkAQiDpQgESANKgKMBCIQlJKSOAJAIAAgEiAPlCAgIA6UIBQgEJSSkjgCPCAAIBEgD5QgFCAOlCAbIBCUkpI4AjggACAfIA+UIBUgDpQgFyAQlJKSOAI0IAAgFSAPlCAlIA6UIBkgEJSSkjgCMCAAIBcgD5QgGSAOlCAoIBCUkpI4AiwgAEHgAGogZSgCADYCACAAIHEpAgA3AlggAEHsAGogcigCADYCACAAIG4pAgA3AmQgBkEBaiEGCyB0QSBxBEAgBiBiTw0NIGcgBkHwAGxqIgAgITgCVCAAQgA3AkwgACAeIBOUQwAAAACSOAJIIABBADYCRCAAQgA3AiQgAEL////7BzcCHCAAQoCAgIDw//+/fzcCFCAAIGw2AhAgACBpNgIMIAAgZjYCCCAAQoCAgIDQADcCACAAIBwgDSoCoAQiD5QgEiANKgKcBCIOlCARIA0qApgEIhCUkpI4AkAgACASIA+UICAgDpQgFCAQlJKSOAI8IAAgESAPlCAUIA6UIBsgEJSSkjgCOCAAIB8gD5QgFSAOlCAXIBCUkpI4AjQgACAVIA+UICUgDpQgGSAQlJKSOAIwIAAgFyAPlCAZIA6UICggEJSSkjgCLCAAQeAAaiBlKAIANgIAIAAgcSkCADcCWCAAQewAaiByKAIANgIAIAAgbikCADcCZCAGQQFqIQYLIHRBAXENBgwHCyAFIGJBmOPBABDjCAALIAUgYkH44cEAEOQIAAsgBSCAAUGU1MEAEOIIAAsgZiB1QfTTwQAQ4wgACyBpIHVBhNTBABDjCAALIAUgYkGo48EAEOMIAAsgBiBiTw0BIGcgBkHwAGxqIgAgITgCVCAAQgA3AkwgAEEANgJEIAAgDSoC+AIiGDgCKCAAIA0qAvQCIiM4AiQgACANKgLwAiInOAIgIABB////+wc2AhwgAEKAgICA8P//v383AhQgACBsNgIQIAAgaTYCDCAAIGY2AgggAEIANwIAIAAgHCANKgLkAyIPlCASIA0qAuADIg6UIBEgDSoC3AMiEJSSkjgCQCAAIBIgD5QgICAOlCAUIBCUkpI4AjwgACARIA+UIBQgDpQgGyAQlJKSOAI4IAAgFyANKgK4AyIPlCAVIA0qArwDIg6UkiAfIA0qAsADIhCUkjgCNCAAIBkgD5QgJSAOlJIgFSAQlJI4AjAgACAoIA+UIBkgDpSSIBcgEJSSOAIsIAAgHiAYIA0qAqwElCAjIA0qAqgElCAnIA0qAqQElJKSlEMAAAAAkjgCSCAAQeAAaiBlKAIANgIAIAAgcSkCADcCWCAAQewAaiByKAIANgIAIAAgbikCADcCZCAGQQFqIQYLIHRBAnEEQCAGIGJPDQEgZyAGQfAAbGoiACAhOAJUIABCADcCTCAAQQA2AkQgACANKgKEAyIYOAIoIAAgDSoCgAMiIzgCJCAAIA0qAvwCIic4AiAgAEH////7BzYCHCAAQoCAgIDw//+/fzcCFCAAIGw2AhAgACBpNgIMIAAgZjYCCCAAQoCAgIAQNwIAIAAgHCANKgLwAyIPlCASIA0qAuwDIg6UIBEgDSoC6AMiEJSSkjgCQCAAIBIgD5QgICAOlCAUIBCUkpI4AjwgACARIA+UIBQgDpQgGyAQlJKSOAI4IAAgFyANKgLEAyIPlCAVIA0qAsgDIg6UkiAfIA0qAswDIhCUkjgCNCAAIBkgD5QgJSAOlJIgFSAQlJI4AjAgACAoIA+UIBkgDpSSIBcgEJSSOAIsIAAgHiAYIA0qAqwElCAjIA0qAqgElCAnIA0qAqQElJKSlEMAAAAAkjgCSCAAQeAAaiBlKAIANgIAIAAgcSkCADcCWCAAQewAaiByKAIANgIAIAAgbikCADcCZCAGQQFqIQYLIHRBBHFFDQEgBiBiTw0AIGcgBkHwAGxqIgAgITgCVCAAQgA3AkwgAEEANgJEIAAgDSoCkAMiGDgCKCAAIA0qAowDIiM4AiQgACANKgKIAyInOAIgIABB////+wc2AhwgAEKAgICA8P//v383AhQgACBsNgIQIAAgaTYCDCAAIGY2AgggAEKAgICAIDcCACAAIBwgDSoC/AMiD5QgEiANKgL4AyIOlCARIA0qAvQDIhCUkpI4AkAgACASIA+UICAgDpQgFCAQlJKSOAI8IAAgESAPlCAUIA6UIBsgEJSSkjgCOCAAIBcgDSoC0AMiD5QgFSANKgLUAyIOlJIgHyANKgLYAyIQlJI4AjQgACAZIA+UICUgDpSSIBUgEJSSOAIwIAAgKCAPlCAZIA6UkiAXIBCUkjgCLCAAIB4gGCANKgKsBJQgIyANKgKoBJQgJyANKgKkBJSSkpRDAAAAAJI4AkggAEHgAGogZSgCADYCACAAIHEpAgA3AlggAEHsAGogcigCADYCACAAIG4pAgA3AmQgBkEBaiEGDAELIAYgYkH44sEAEOMIAAtBAyEDQVwhCCANQRxqIQACQANAAkBBASADdCB9cSB8cUH/AXEEQCAHIAhqImNB3ABqKgIAIQ8gY0HYAGoqAgBDAAAAP5QQwAEhDiAPQwAAAD+UEMABIRAgDSATOAIkIA0gFjgCICANIBo4AhwgBiBiTw0BIAAqAgAhDyBnIAZB8ABsaiJjICE4AlQgY0IANwJMIGNBADYCRCBjQQA2AiggY0IANwIgIGNDAACAf0MAAAAAIA8gEGAbOAIcIGNDAACA/0MAAAAAIA4gD2AbOAIYIGNBADYCFCBjIGw2AhAgYyBpNgIMIGMgZjYCCCBjIAM2AgQgY0EBNgIAIGMgHiAPIBCTIhBDAAAAACAQQwAAAABgGyAOIA+TIg9DAAAAACAPQwAAAABgG5OUQwAAAACSOAJIIGMgHCANQeACaiAIaiJ0QcwBaioCACIPlCASIHRByAFqKgIAIg6UIBEgdEHEAWoqAgAiEJSSkjgCQCBjIBIgD5QgICAOlCAUIBCUkpI4AjwgYyARIA+UIBQgDpQgGyAQlJKSOAI4IGMgHyAPlCAVIA6UIBcgEJSSkjgCNCBjIBUgD5QgJSAOlCAZIBCUkpI4AjAgYyAXIA+UIBkgDpQgKCAQlJKSOAIsIGNB4ABqIGUoAgA2AgAgYyBxKQIANwJYIGMgbikCADcCZCBjQewAaiByKAIANgIAIAZBAWohBgsgA0EBaiEDIABBBGohACAIQQxqIggNAQwCCwsgBiBiQejiwQAQ4wgACwJAAkACQAJAIHwgfXEiA0EBcQRAIAYgYk8NASAHQRRqKgIAIRggByoCECEjIA0qAqwEISsgDSoCqAQhKiANKgKkBCEyIA0qAqgBITQgDSoCrAEhJyANKgK0ASE3IA0qAsADIQ8gDSoCvAEhLCANKgK4AyEOIA0qArABIS4gDSoCvAMhECANKgK4ASEzIA0qAogCITUgDSoClAIhOCANKgKMAiEwIA0qAuQDIRMgDSoCnAIhJiANKgLgAyEWIA0qApgCIS0gDSoC3AMhGiANKgKQAiE6IA0oAtgBIQggDSgCuAIhYyANKgLwAiEiIA0qAvQCIR0gDSoC+AIhPiBnIAZB8ABsaiIAICE4AlQgAEIANwJMIABBADYCRCAAID44AiggACAdOAIkIAAgIjgCICAAQQA2AhQgACBsNgIQIAAgYzYCDCAAIAg2AgggAEIBNwIAIAAgJiATlCAtIBaUIDogGpSSkjgCQCAAIC0gE5QgOCAWlCAwIBqUkpI4AjwgACA6IBOUIDAgFpQgNSAalJKSOAI4IAAgLiAOlCAzIBCUkiAsIA+UkjgCNCAAICcgDpQgNyAQlJIgMyAPlJI4AjAgACA0IA6UICcgEJSSIC4gD5SSOAIsIABDAACAf0MAAAAAICsgPpQgKiAdlCAyICKUkpIiDyAYYBs4AhwgAEMAAID/QwAAAAAgDyAjXxs4AhggACAeIA8gGJMiDkMAAAAAIA5DAAAAAGAbICMgD5MiD0MAAAAAIA9DAAAAAGAbk5RDAAAAAJI4AkggAEHgAGogZSgCADYCACAAIHEpAgA3AlggACBuKQIANwJkIABB7ABqIHIoAgA2AgAgBkEBaiEGCyADQQJxBEAgBiBiTw0BIAdBIGoqAgAhGCAHQRxqKgIAISMgDSoCrAQhKyANKgKoBCEqIA0qAqQEITIgDSoCqAEhNCANKgKsASEnIA0qArQBITcgDSoCzAMhDyANKgK8ASEsIA0qAsQDIQ4gDSoCsAEhLiANKgLIAyEQIA0qArgBITMgDSoCiAIhNSANKgKUAiE4IA0qAowCITAgDSoC8AMhEyANKgKcAiEmIA0qAuwDIRYgDSoCmAIhLSANKgLoAyEaIA0qApACITogDSgC2AEhCCANKAK4AiFjIA0qAvwCISIgDSoCgAMhHSANKgKEAyE+IGcgBkHwAGxqIgAgITgCVCAAQgA3AkwgAEEANgJEIAAgPjgCKCAAIB04AiQgACAiOAIgIABBADYCFCAAIGw2AhAgACBjNgIMIAAgCDYCCCAAQoGAgIAQNwIAIAAgJiATlCAtIBaUIDogGpSSkjgCQCAAIC0gE5QgOCAWlCAwIBqUkpI4AjwgACA6IBOUIDAgFpQgNSAalJKSOAI4IAAgLiAOlCAzIBCUkiAsIA+UkjgCNCAAICcgDpQgNyAQlJIgMyAPlJI4AjAgACA0IA6UICcgEJSSIC4gD5SSOAIsIABDAACAf0MAAAAAICsgPpQgKiAdlCAyICKUkpIiDyAYYBs4AhwgAEMAAID/QwAAAAAgDyAjXxs4AhggACAeIA8gGJMiDkMAAAAAIA5DAAAAAGAbICMgD5MiD0MAAAAAIA9DAAAAAGAbk5RDAAAAAJI4AkggAEHgAGogZSgCADYCACAAIHEpAgA3AlggACBuKQIANwJkIABB7ABqIHIoAgA2AgAgBkEBaiEGCyADQQRxBEAgBiBiTw0BIAdBLGoqAgAhGCAHQShqKgIAISMgDSoCrAQhKyANKgKoBCEqIA0qAqQEITIgDSoCqAEhNCANKgKsASEnIA0qArQBITcgDSoC2AMhDyANKgK8ASEsIA0qAtADIQ4gDSoCsAEhLiANKgLUAyEQIA0qArgBITMgDSoCiAIhNSANKgKUAiE4IA0qAowCITAgDSoC/AMhEyANKgKcAiEmIA0qAvgDIRYgDSoCmAIhLSANKgL0AyEaIA0qApACITogDSgC2AEhAyANKAK4AiEIIA0qAogDISIgDSoCjAMhHSANKgKQAyE+IGcgBkHwAGxqIgAgITgCVCAAQgA3AkwgAEEANgJEIAAgPjgCKCAAIB04AiQgACAiOAIgIABBADYCFCAAIGw2AhAgACAINgIMIAAgAzYCCCAAQoGAgIAgNwIAIAAgJiATlCAtIBaUIDogGpSSkjgCQCAAIC0gE5QgOCAWlCAwIBqUkpI4AjwgACA6IBOUIDAgFpQgNSAalJKSOAI4IAAgLiAOlCAzIBCUkiAsIA+UkjgCNCAAICcgDpQgNyAQlJIgMyAPlJI4AjAgACA0IA6UICcgEJSSIC4gD5SSOAIsIABDAACAf0MAAAAAICsgPpQgKiAdlCAyICKUkpIiDyAYYBs4AhwgAEMAAID/QwAAAAAgDyAjXxs4AhggACAeIA8gGJMiDkMAAAAAIA5DAAAAAGAbICMgD5MiD0MAAAAAIA9DAAAAAGAbk5RDAAAAAJI4AkggAEHgAGogZSgCADYCACAAIHEpAgA3AlggACBuKQIANwJkIABB7ABqIHIoAgA2AgAgBkEBaiEGCyCOAUUNAyB8Qf8BcSB/QQdxdkEBcUUNAyB/QQVLDQIgByB/QQxsaiIAQRRqKgIAISMgAEEQaioCACEnIA0gc0EDdiIAaSIDNgIAAn0CfQJAIANBAkYEQCAAQX9zaCIAQQNPDQUgAEEMbCIDII0BaiIARQ0NIA0gACoCCCIOOALcAiANIAAqAgQiMDgC2AIgDSAAKgIAIhA4AtQCIAMglQFqIgBFDQ0gDSAAKgIIOAIIIA0gACkCADcCACANQRxqIA1B1AJqIA0QogMgDSgCHA0BQwAAgD8hGkMAAAAAIRZDAAAAACETQwAAAAAMAgsgDUEANgIcQQAgDUHEk8EAIA1BHGpB9NTBABDhCgALIA0qAiwhGiANKgIkIRYgDSoCICETIA0qAigLIg8gD4wgGkMAAAAAYCIAGyIYIBiUIBYgFowgABsiLiAulCATIBOMIAAbIjMgM5SSkiItQwAAAABeRQRAIBAgMJRDAACAvyAOIA68QYCAgIB4cUGAgID8A3K+Ig+SlSIOlCAPlCEYIBAgECAPlJQgDpRDAACAP5IhDiAQIA+MlCEQQwAAAAAMAQsgGCAtEJsBIg6VIRAgLiAOlSEYIDMgDpUhDiAPIA+UIBYgFpQgEyATlJKSEJsBIBqLEPQEIg8gD5ILIQ8gBiBiSQRAIGcgBkHwAGxqIgAgITgCVCAAQgA3AkwgAEEANgJEIABBADYCKCAAQgA3AiAgAEMAAIB/QwAAAAAgDyAjYBs4AhwgAEMAAID/QwAAAAAgDyAnXxs4AhggAEEANgIUIAAgbDYCECAAIGk2AgwgACBmNgIIIAAgfzYCBCAAQQE2AgAgACARIA6UIBIgGJSSIBwgEJSSOAJAIAAgFCAOlCAgIBiUkiASIBCUkjgCPCAAIBsgDpQgFCAYlJIgESAQlJI4AjggACAXIA6UIBUgGJSSIB8gEJSSOAI0IAAgGSAOlCAlIBiUkiAVIBCUkjgCMCAAICggDpQgGSAYlJIgFyAQlJI4AiwgACAeQwAAAABDAAAAACAPICOTIg4gDkMAAAAAXRsgDiAOXBtDAAAAAEMAAAAAICcgD5MiDyAPQwAAAABdGyAPIA9cG5OUQwAAAACSOAJIIABB4ABqIGUoAgA2AgAgACBxKQIANwJYIAAgbikCADcCZCAAQewAaiByKAIANgIAIAZBAWohBgwECyAGIGJBmOLBABDjCAALIAYgYkHY4sEAEOMIAAtBpv7AAEEdQcD/wAAQuwsACyB/QQZBiOLBABDjCAALAkAgjwFFDQAgfEH/AXEge0EHcXZBAXFFDQAge0EFTQRAIHtBDGwhAEMAAAAAIRYgDSoCrAQhMyANKgKoBCEwIA0qAqQEIS1DAAAAACETQwAAAAAhJ0MAAAAAIS5DAAAAACEaQwAAAAAhI0MAAAAAIQ5DAAAAACEQQwAAAAAhDyBzQQFxBEAgLSANKgLwAiIYlCAwIA0qAvQCIhCUkiAzIA0qAvgCIg6UkiIPIA0qAuQDlEMAAAAAkiEWIA8gDSoC4AOUQwAAAACSIRMgDyANKgLcA5RDAAAAAJIhJyAPIA0qArgDlEMAAAAAkiEjIA8gDSoCvAOUQwAAAACSIRogDSoCwAMgD5RDAAAAAJIhLiAOIA+UQwAAAACSIQ4gECAPlEMAAAAAkiEQIBggD5RDAAAAAJIhDwsgACAHaiEAIHNBAnEEQCAWIC0gDSoC/AIiOpQgMCANKgKAAyIilJIgMyANKgKEAyIdlJIiGCANKgLwA5SSIRYgEyAYIA0qAuwDlJIhEyAnIBggDSoC6AOUkiEnICMgGCANKgLEA5SSISMgGiAYIA0qAsgDlJIhGiAuIA0qAswDIBiUkiEuIA4gHSAYlJIhDiAQICIgGJSSIRAgDyA6IBiUkiEPCyAAQRRqIQAgc0EEcQRAIBYgLSANKgKIAyItlCAwIA0qAowDIjCUkiAzIA0qApADIjOUkiIYIA0qAvwDlJIhFiATIBggDSoC+AOUkiETICcgGCANKgL0A5SSIScgIyAYIA0qAtADlJIhIyAaIBggDSoC1AOUkiEaIC4gDSoC2AMgGJSSIS4gDiAzIBiUkiEOIBAgMCAYlJIhECAPIC0gGJSSIQ8LIAAqAgAhMyAOIA6UIBAgEJQgDyAPlJKSEJsBIRggBiBiSQRAIGcgBkHwAGxqIgAgITgCVCAAQQA2AlAgAEEANgJEIABBgICA/Ac2AhwgAEIANwIUIAAgbDYCECAAIGk2AgwgACBmNgIIIAAgezYCBCAAQQE2AgAgACA8IBggM5MiM0MAAAAAIDNDAAAAAF8blCIwOAJMIAAgDkMAAAAAQwAAgD8gGJUiDiAYQwjlPB5dGyAOIBhDCOU8nl4bIg6UOAIoIAAgECAOlDgCJCAAIA8gDpQ4AiAgACAwIB4gM0MAAAAAIDNDAAAAAGAblJI4AkggACAcIBYgDpQiD5QgESAnIA6UIhCUIBIgEyAOlCITlJKSOAJAIAAgEiAPlCAUIBCUICAgE5SSkjgCPCAAIBEgD5QgGyAQlCAUIBOUkpI4AjggACAfIC4gDpQiD5QgFyAjIA6UIhCUIBUgGiAOlCIOlJKSOAI0IAAgFSAPlCAZIBCUICUgDpSSkjgCMCAAIBcgD5QgKCAQlCAZIA6UkpI4AiwgAEHgAGogZSgCADYCACAAIHEpAgA3AlggACBuKQIANwJkIABB7ABqIHIoAgA2AgAgBkEBaiEGDAILIAYgYkG44sEAEOMIAAsge0EGQajiwQAQ4wgACyAFIAZLDQEgBiBiTQRAIGcgBUHwAGxqIAYgBWsQzwEgkwEgDCIHRg0FDAELCyAGIGJByOLBABDkCAALIAUgBkHI4sEAEOUIAAsgBiEFCyAFIGJBiOPBABDjCAALAkACQAJAIG9BqAFqKAIAIgAEQCAAQZADbCBvKAKgASIAaiGEAUMAAAAAQwAAgD8gayoCBCIxlSAxQwAAAABbGyI+IGsqAhQiD5QhJUMAAIA/IA+VQwAAgL+SIg8gD5QgayoCGCIOIA4gD0MAAIA/kkMAAIBAlJSUlSEoIG9B+ABqKAIAIXYgDUHgAmoiA0EYaiELIG8oAnAhgwEgA0E0aiGFASADQRBqIYgBIA1BrAJqIXwgDUGgAmohbCAxIDGUITIDQAJAAkACQCAAKAKAAyJjIHVJBEAgDSBoIGNB/ABsaiIDQcQAaioCACISIABBgAFqKgIAIhGUIAMqAjgiDyAAKgJ0IhSUkyADQTxqKgIAIg4gAEH4AGoqAgAiE5STIANBQGsqAgAiECAAQfwAaioCACIVlJM4ArQBIA0gECARlCAPIBOUIBIgFZSSIA4gFJSTkjgCsAEgDSAQIBSUIA4gEZQgEiATlCAPIBWUk5KSOAKsASANIA4gFZQgEiAUlCAPIBGUkpIgECATlJM4AqgBIA8gAEGIAWoqAgAiE5QgDiAAQYQBaioCACIVlJMiESARkiERIBAgFZQgDyAAQYwBaioCACIWlJMiFCAUkiEUIA0gA0HQAGoqAgAgFiASIBGUIA8gFJQgDiAOIBaUIBAgE5STIhYgFpIiFpSTkpKSOALAASANIANBzABqKgIAIBMgEiAUlCAQIBaUIA8gEZSTkpKSOAK8ASANIANByABqKgIAIBUgEiAWlCAOIBGUIBAgFJSTkpKSOAK4ASBsQQhqIm4gA0HcAGooAgA2AgAgbCADKQJUNwIAIA1BiAJqIgVBCGogA0EgaikCADcDACAFQRBqIANBKGopAgA3AwAgfCADKQJgNwIAIHxBCGogA0HoAGooAgA2AgAgDSBjNgK4AiANIAMpAhg3A4gCIAAoAogDIgUgdk0EQCAAQZADaiEMIANB1ABqIXIgACgChAMhaSAALQC6AiEDIAAtALkCIQYgAC0AuwIhZSANQeACaiAAQeQCaiANQagBaiAAQdgCaiB8IAAtALgCInMQdiB2IAVrIWIgZUF/cyF/IIMBIAVB1ABsaiFnIHNBf3MiBSAGcSF0IAMgBXEheyAAQdQCaioCACEYIABB0AJqKgIAIR4gAEHMAmoqAgAhISBlQThxIpMBQYACcmgheSBlQQdxIn1BgAJyaCFxQQMhCEEAIQVBrH8hBiANQfAAaiEHIA0qAugCITAgDSoC5AIhLSANKgLgAiEpIA0qApwCIRwgDSoCmAIhEiANKgKUAiEgIA0qApACIREgDSoCjAIhFCANKgKIAiEbIAshAwNAQQEgCHQgf3Ege3FB/wFxBEAgACAGaiJmQdACai0AACGAASBmQcgCaioCACEXIANBBGsqAgAhDiADQQhrKgIAIRAgZkG4AmoqAgAhGSADKgIAIRMCfUMAAIA/IDEgZkHAAmoqAgAiFZQgZkHEAmoqAgAiH5IiD5UhFkMAAAAAIBVDAAAAACAWIA9DCOU8Hl8bIBYgD0MI5TyeYBuUIiNDAAAAAFsNABogZkG8AmoqAgAhDyANIDA4AnggDSAtOAJ0IA0gKTgCcCAHKgIAEOAFIhYgFpIgD5MiD0MAAMB/QwAAgD8gD5hD2w/JQJQgDyAPXBuTIRYgIyAPIBYgD4sgFotdG5RDAAAAAJILIRogBSBiTw0EIGcgBUHUAGxqImZDAAAAAEMAAIA/IDIgFZQgMSAflJIiD5UiFSAPQwjlPB5fGyAVIA9DCOU8nmAbIg9DAAAAACCAARs4AjwgZkMAAAAAIA8ggAEbOAI4IGZBADYCNCBmQQA2AiQgZkIANwIcIGYgMSAXlCIPOAIYIGYgD4w4AhQgZkEANgIQIGYgaTYCDCBmIGM2AgggZiAINgIEIGZBAjYCACBmIHIpAgA3AkggZiARIBCUIBIgDpSSIBwgE5SSOAIwIGYgFCAQlCAgIA6UkiASIBOUkjgCLCBmIBsgEJQgFCAOlJIgESATlJI4AiggZkHQAGogckEIaigCADYCACBmICEgEJQgHiAOlJIgGCATlJKMIBmTIBqSIg84AkQgZiAPOAJAIAVBAWohBQsgCEEBaiEIIANBDGohAyAHQQRqIQcgBkEcaiIGDQALIHsgf3EhgAEgAEHIAmoqAgAhLiAAQcQCaioCACE8IAAqAsACITNBACEHQVwhBiANKgKsBCEqIA0qAqgEISsgDSoCpAQhJ0EAIQMCQAJAAkADQEEBIAN0IggggAFxQf8BcQRAIAggdHFB/wFxIokBBEAgACAGaiIIQThqKgIAIR0gCEE0aioCACEiCyANQeACaiAGaiIIQTxqKgIAIQ8gCEE4aioCACEQIAhBNGoqAgAhEyAAIAdqImZBkAFqIZUBAn1DAACAPyAxIGZBmAFqKgIAIheUIGZBnAFqKgIAIh+SIg6VIRVDAAAAACAXQwAAAAAgFSAOQwjlPB5fGyAVIA5DCOU8nmAblCIOQwAAAABbDQAaIA4gJyATlCArIBCUkiAqIA+UkiBmQZQBaioCAJOUQwAAAACSCyEZIJUBKgIAIQ4giQEEQCA+ICIgJyATlCArIBCUkiAqIA+UkiIVk5QiFiA+IB0gFZOUIhUgDiAOIBVeGyAOIBZdGyEOCyAFIGJPDQIgZkGgAWoqAgAhIyAIQagBaioCACEVIAhBpAFqKgIAIRYgCEGgAWoqAgAhGiAIQYQBaioCACE6IAhBgAFqKgIAITQgCEH8AGoqAgAhNyBnIAVB1ABsaiIIQwAAAABDAACAPyAyIBeUIDEgH5SSIheVIh8gF0MI5TweXxsgHyAXQwjlPJ5gGyIXQwAAAAAgZkGoAWotAAAiZhs4AjwgCEMAAAAAIBcgZhs4AjggCEEANgI0IAggDzgCJCAIIBA4AiAgCCATOAIcIAggMSAjlCIXOAIYIAggF4w4AhQgCEEANgIQIAggaTYCDCAIIGM2AgggCCADNgIEIAhBAjYCACAIIHIpAgA3AkggCCARIBqUIBIgFpSSIBwgFZSSOAIwIAggFCAalCAgIBaUkiASIBWUkjgCLCAIIBsgGpQgFCAWlJIgESAVlJI4AiggCEHQAGogckEIaigCADYCACAIIBkgMyATlCA8IBCUkiAuIA+UkowgISA3lCAeIDSUkiAYIDqUkpMgDpOSIg84AkQgCCAPOAJAIAVBAWohBQsgA0EBaiEDIAdBHGohByAGQQxqIgYNAAsgfUUNB0EBIHFBB3F0IgMge3FFDQcCQCADIHRxIgcEQCBxQQZJBEAgACBxQQxsaiIDQRRqKgIAISwgA0EQaioCACE1DAILIHFBBkGY5MEAEOMIAAsgcUEGTw0DCyBxQRxsIQNDAAAAACEPQwAAAAAhFkMAAAAAIRNDAAAAACEfQwAAAAAhGkMAAAAAISNDAAAAACEQQwAAAAAhF0MAAAAAIRUgZUEBcQRAICcgDSoC8AIiEJQgKyANKgL0AiIVlJIgKiANKgL4AiIZlJIiDiANKgLkA5RDAAAAAJIhDyAOIA0qAuADlEMAAAAAkiEWIA4gDSoC3AOUQwAAAACSIRMgDiANKgK4A5RDAAAAAJIhIyAOIA0qArwDlEMAAAAAkiEaIA0qAsADIA6UQwAAAACSIR8gFSAOlEMAAAAAkiEXIBAgDpRDAAAAAJIhFSAZIA6UQwAAAACSIRALIAAgA2ohAyBlQQJxBEAgDyAnIA0qAvwCIhmUICsgDSoCgAMiIpSSICogDSoChAMiHZSSIg4gDSoC8AOUkiEPIBYgDiANKgLsA5SSIRYgEyAOIA0qAugDlJIhEyAjIA4gDSoCxAOUkiEjIBogDiANKgLIA5SSIRogHyANKgLMAyAOlJIhHyAXICIgDpSSIRcgFSAZIA6UkiEVIBAgHSAOlJIhEAsgA0GcAWohBiADQZgBaiEIIANBqAFqIWYgA0GgAWoheyADQZABaiGAASADQZQBaiEDIGVBBHEEQCAPICcgDSoCiAMiGZQgKyANKgKMAyIilJIgKiANKgKQAyIdlJIiDiANKgL8A5SSIQ8gFiAOIA0qAvgDlJIhFiATIA4gDSoC9AOUkiETICMgDiANKgLQA5SSISMgGiAOIA0qAtQDlJIhGiAfIA0qAtgDIA6UkiEfIBcgIiAOlJIhFyAVIBkgDpSSIRUgECAdIA6UkiEQCyAGKgIAITcgCCoCACE0IGYtAAAhBiB7KgIAISIggAEqAgAhGSADKgIAIR0gECAQlCAXIBeUIBUgFZSSkhCbASE6IAcNAQwGCyAFIGJB6OXBABDjCAALID4gNSA6k5QiDiA+ICwgOpOUIiwgGSAZICxeGyAOIBleGyEZDAQLIHFBBkGo5MEAEOMIAAsgBSB2QeTUwQAQ4ggACyBjIHVB1NTBABDjCAALIAUgYkH45cEAEOMIAAsgBSBiSQRAIGcgBUHUAGxqIgNDAAAAAEMAAIA/IDIgNJQgMSA3lJIiDpUiLCAOQwjlPB5fGyAsIA5DCOU8nmAbIg5DAAAAACAGGzgCPCADQwAAAAAgDiAGGzgCOCADQQA2AjQgAyAxICKUIg44AhggAyAOjDgCFCADQQA2AhAgAyBpNgIMIAMgYzYCCCADIHE2AgQgA0ECNgIAIAMgcikCADcCSCADQdAAaiByQQhqKAIANgIAIAMgEEMAAAAAQwAAgD8gOpUiDiA6QwjlPB5dGyAOIDpDCOU8nl4bIg6UIiI4AiQgAyAXIA6UIiw4AiAgAyAVIA6UIjU4AhwgAyAcIA8gDpQiD5QgESATIA6UIhCUIBIgFiAOlCITlJKSOAIwIAMgEiAPlCAUIBCUICAgE5SSkjgCLCADIBEgD5QgGyAQlCAUIBOUkpI4AiggAyA0QwAAAABDAACAPyAxIDSUIDeSIg+VIhAgD0MI5TweXxsgECAPQwjlPJ5gG5QiDyA6IB2TlEMAAAAAkkMAAAAAIA9DAAAAAFwbIC4gIpQgMyA1lCA8ICyUkpKMIBggHyAOlJQgISAjIA6UlCAeIBogDpSUkpKTIBmTkiIPOAJEIAMgDzgCQCAFQQFqIQUMAQsgBSBiQbjkwQAQ4wgACwJAAkACQAJAAkACQAJAAkACQAJAAkAgBSBiTQRAIGcgBRD8ASAFIQMgc0EIcQRAIAUgYk8NESBnIAVB1ABsaiIDQQA2AjwgAyAoOAI4IANBADYCNCADQgA3AiAgA0L////7BzcCGCADQoCAgIDw//+/fzcCECADIGk2AgwgAyBjNgIIIANCgICAgDA3AgAgAyAcIA0qAogEIg+UIBIgDSoChAQiDpQgESANKgKABCIQlJKSOAIwIAMgEiAPlCAgIA6UIBQgEJSSkjgCLCADIBEgD5QgFCAOlCAbIBCUkpI4AiggAyAYIA+UIB4gDpQgISAQlJKSIg+MOAJEIAMgKSAllCAPkzgCQCADQdAAaiByQQhqKAIANgIAIAMgcikCADcCSCAFQQFqIQMLIHNBEHEEQCADIGJPDRAgZyADQdQAbGoiBkEANgI8IAYgKDgCOCAGQQA2AjQgBkIANwIgIAZC////+wc3AhggBkKAgICA8P//v383AhAgBiBpNgIMIAYgYzYCCCAGQoCAgIDAADcCACAGIBwgDSoClAQiD5QgEiANKgKQBCIOlCARIA0qAowEIhCUkpI4AjAgBiASIA+UICAgDpQgFCAQlJKSOAIsIAYgESAPlCAUIA6UIBsgEJSSkjgCKCAGIBggD5QgHiAOlCAhIBCUkpIiD4w4AkQgBiAtICWUIA+TOAJAIAZB0ABqIG4oAgA2AgAgBiBsKQIANwJIIANBAWohAwsgc0EgcQRAIAMgYk8NECBnIANB1ABsaiIGQQA2AjwgBiAoOAI4IAZBADYCNCAGQgA3AiAgBkL////7BzcCGCAGQoCAgIDw//+/fzcCECAGIGk2AgwgBiBjNgIIIAZCgICAgNAANwIAIAYgHCANKgKgBCIPlCASIA0qApwEIg6UIBEgDSoCmAQiEJSSkjgCMCAGIBIgD5QgICAOlCAUIBCUkpI4AiwgBiARIA+UIBQgDpQgGyAQlJKSOAIoIAYgGCAPlCAeIA6UICEgEJSSkiIPjDgCRCAGIDAgJZQgD5M4AkAgBkHQAGogbigCADYCACAGIGwpAgA3AkggA0EBaiEDCyBzQQFxDQEMAgsgBSBiQcjkwQAQ5AgACyADIGJPDQEgZyADQdQAbGoiBkEANgI8IAYgKDgCOCAGQQA2AjQgBiANKgL4AiIPOAIkIAYgDSoC9AIiDjgCICAGIA0qAvACIhA4AhwgBkH////7BzYCGCAGQoCAgIDw//+/fzcCECAGIGk2AgwgBiBjNgIIIAZCADcCACAGIBwgDSoC5AMiE5QgEiANKgLgAyIVlCARIA0qAtwDIhaUkpI4AjAgBiASIBOUICAgFZQgFCAWlJKSOAIsIAYgESATlCAUIBWUIBsgFpSSkjgCKCAGIC4gD5QgPCAOlCAzIBCUkpKMICEgDSoCuAOUIB4gDSoCvAOUkiAYIA0qAsADlJKTIhM4AkQgBiATICUgKiAPlCArIA6UICcgEJSSkpSSOAJAIAZB0ABqIG4oAgA2AgAgBiBsKQIANwJIIANBAWohAwsgc0ECcQRAIAMgYk8NASBnIANB1ABsaiIGQQA2AjwgBiAoOAI4IAZBADYCNCAGIA0qAoQDIg84AiQgBiANKgKAAyIOOAIgIAYgDSoC/AIiEDgCHCAGQf////sHNgIYIAZCgICAgPD//79/NwIQIAYgaTYCDCAGIGM2AgggBkKAgICAEDcCACAGIBwgDSoC8AMiE5QgEiANKgLsAyIVlCARIA0qAugDIhaUkpI4AjAgBiASIBOUICAgFZQgFCAWlJKSOAIsIAYgESATlCAUIBWUIBsgFpSSkjgCKCAGIC4gD5QgPCAOlCAzIBCUkpKMICEgDSoCxAOUIB4gDSoCyAOUkiAYIA0qAswDlJKTIhM4AkQgBiATICUgKiAPlCArIA6UICcgEJSSkpSSOAJAIAZB0ABqIG4oAgA2AgAgBiBsKQIANwJIIANBAWohAwsgc0EEcQRAIAMgYk8NASBnIANB1ABsaiIGQQA2AjwgBiAoOAI4IAZBADYCNCAGIA0qApADIg84AiQgBiANKgKMAyIOOAIgIAYgDSoCiAMiEDgCHCAGQf////sHNgIYIAZCgICAgPD//79/NwIQIAYgaTYCDCAGIGM2AgggBkKAgICAIDcCACAGIBwgDSoC/AMiE5QgEiANKgL4AyIVlCARIA0qAvQDIhaUkpI4AjAgBiASIBOUICAgFZQgFCAWlJKSOAIsIAYgESATlCAUIBWUIBsgFpSSkjgCKCAGIC4gD5QgPCAOlCAzIBCUkpKMICEgDSoC0AOUIB4gDSoC1AOUkiAYIA0qAtgDlJKTIhM4AkQgBiATICUgKiAPlCArIA6UICcgEJSSkpSSOAJAIAZB0ABqIG4oAgA2AgAgBiBsKQIANwJIIANBAWohAwsgdCB/cSIHQQhxDQEMAgsgAyBiQcjlwQAQ4wgACyAAQThqKgIAIQ8gAEE0aioCAEMAAAA/lBDAASETIA9DAAAAP5QQwAEhFSADIGJPDQEgZyADQdQAbGoiBkEANgI8IAYgKDgCOCAGQQA2AjQgBkEANgIkIAZCADcCHCAGQwAAgH9DAAAAACAVIClfGzgCGCAGQwAAgP9DAAAAACATIClgGzgCFCAGQQA2AhAgBiBpNgIMIAYgYzYCCCAGQoGAgIAwNwIAIAYgHCANKgKIBCIPlCASIA0qAoQEIg6UIBEgDSoCgAQiEJSSkjgCMCAGIBIgD5QgICAOlCAUIBCUkpI4AiwgBiARIA+UIBQgDpQgGyAQlJKSOAIoIAYgGCAPlCAeIA6UICEgEJSSkiIPjDgCRCAGICUgKSAVkyIOQwAAAAAgDkMAAAAAYBsgEyApkyIOQwAAAAAgDkMAAAAAYBuTlCAPkzgCQCAGQdAAaiBuKAIANgIAIAYgbCkCADcCSCADQQFqIQMLIAdBEHEEQCAAQcQAaioCACEPIABBQGsqAgBDAAAAP5QQwAEhEyAPQwAAAD+UEMABIRUgAyBiTw0BIGcgA0HUAGxqIgZBADYCPCAGICg4AjggBkEANgI0IAZBADYCJCAGQgA3AhwgBkMAAIB/QwAAAAAgFSAtXxs4AhggBkMAAID/QwAAAAAgEyAtYBs4AhQgBkEANgIQIAYgaTYCDCAGIGM2AgggBkKBgICAwAA3AgAgBiAcIA0qApQEIg+UIBIgDSoCkAQiDpQgESANKgKMBCIQlJKSOAIwIAYgEiAPlCAgIA6UIBQgEJSSkjgCLCAGIBEgD5QgFCAOlCAbIBCUkpI4AiggBiAYIA+UIB4gDpQgISAQlJKSIg+MOAJEIAYgJSAtIBWTIg5DAAAAACAOQwAAAABgGyATIC2TIg5DAAAAACAOQwAAAABgG5OUIA+TOAJAIAZB0ABqIG4oAgA2AgAgBiBsKQIANwJIIANBAWohAwsgB0EgcQRAIABB0ABqKgIAIQ8gAEHMAGoqAgBDAAAAP5QQwAEhEyAPQwAAAD+UEMABIRUgAyBiTw0BIGcgA0HUAGxqIgZBADYCPCAGICg4AjggBkEANgI0IAZBADYCJCAGQgA3AhwgBkMAAIB/QwAAAAAgFSAwXxs4AhggBkMAAID/QwAAAAAgEyAwYBs4AhQgBkEANgIQIAYgaTYCDCAGIGM2AgggBkKBgICA0AA3AgAgBiAcIA0qAqAEIg+UIBIgDSoCnAQiDpQgESANKgKYBCIQlJKSOAIwIAYgEiAPlCAgIA6UIBQgEJSSkjgCLCAGIBEgD5QgFCAOlCAbIBCUkpI4AiggBiAYIA+UIB4gDpQgISAQlJKSIg+MOAJEIAYgJSAwIBWTIg5DAAAAACAOQwAAAABgGyATIDCTIg5DAAAAACAOQwAAAABgG5OUIA+TOAJAIAZB0ABqIG4oAgA2AgAgBiBsKQIANwJIIANBAWohAwsgB0EBcQ0BDAILIAMgYkG45cEAEOMIAAsgAyBiTw0BIGcgA0HUAGxqIgZBADYCPCAGICg4AjggBkEANgI0IAYgDSoC+AIiDzgCJCAGIA0qAvQCIg44AiAgBiANKgLwAiIQOAIcIAZBADYCECAGIGk2AgwgBiBjNgIIIAZCATcCACAGIBwgDSoC5AMiE5QgEiANKgLgAyIVlCARIA0qAtwDIhaUkpI4AjAgBiASIBOUICAgFZQgFCAWlJKSOAIsIAYgESATlCAUIBWUIBsgFpSSkjgCKCAGIC4gD5QgPCAOlCAzIBCUkpKMICEgDSoCuAOUIB4gDSoCvAOUkiAYIA0qAsADlJKTIhM4AkQgBkMAAIB/QwAAAAAgKiAPlCArIA6UICcgEJSSkiIPIABBFGoqAgAiDmAbOAIYIAZDAACA/0MAAAAAIAAqAhAiECAPYBs4AhQgBiATICUgDyAOkyIOQwAAAAAgDkMAAAAAYBsgECAPkyIPQwAAAAAgD0MAAAAAYBuTlJI4AkAgBkHQAGogbigCADYCACAGIGwpAgA3AkggA0EBaiEDCyAHQQJxBEAgAyBiTw0BIGcgA0HUAGxqIgZBADYCPCAGICg4AjggBkEANgI0IAYgDSoChAMiDzgCJCAGIA0qAoADIg44AiAgBiANKgL8AiIQOAIcIAZBADYCECAGIGk2AgwgBiBjNgIIIAZCgYCAgBA3AgAgBiAcIA0qAvADIhOUIBIgDSoC7AMiFZQgESANKgLoAyIWlJKSOAIwIAYgEiATlCAgIBWUIBQgFpSSkjgCLCAGIBEgE5QgFCAVlCAbIBaUkpI4AiggBiAuIA+UIDwgDpQgMyAQlJKSjCAhIA0qAsQDlCAeIA0qAsgDlJIgGCANKgLMA5SSkyITOAJEIAZDAACAf0MAAAAAICogD5QgKyAOlCAnIBCUkpIiDyAAQSBqKgIAIg5gGzgCGCAGQwAAgP9DAAAAACAAQRxqKgIAIhAgD2AbOAIUIAYgEyAlIA8gDpMiDkMAAAAAIA5DAAAAAGAbIBAgD5MiD0MAAAAAIA9DAAAAAGAbk5SSOAJAIAZB0ABqIG4oAgA2AgAgBiBsKQIANwJIIANBAWohAwsgB0EEcQRAIAMgYk8NASBnIANB1ABsaiIGQQA2AjwgBiAoOAI4IAZBADYCNCAGIA0qApADIg84AiQgBiANKgKMAyIOOAIgIAYgDSoCiAMiEDgCHCAGQQA2AhAgBiBpNgIMIAYgYzYCCCAGQoGAgIAgNwIAIAYgHCANKgL8AyITlCASIA0qAvgDIhWUIBEgDSoC9AMiFpSSkjgCMCAGIBIgE5QgICAVlCAUIBaUkpI4AiwgBiARIBOUIBQgFZQgGyAWlJKSOAIoIAYgLiAPlCA8IA6UIDMgEJSSkowgISANKgLQA5QgHiANKgLUA5SSIBggDSoC2AOUkpMiEzgCRCAGQwAAgH9DAAAAACAqIA+UICsgDpQgJyAQlJKSIg8gAEEsaioCACIOYBs4AhggBkMAAID/QwAAAAAgAEEoaioCACIQIA9gGzgCFCAGIBMgJSAPIA6TIg5DAAAAACAOQwAAAABgGyAQIA+TIg9DAAAAACAPQwAAAABgG5OUkjgCQCAGQdAAaiBuKAIANgIAIAYgbCkCADcCSCADQQFqIQMLIJMBDQEMAgsgAyBiQajlwQAQ4wgACyB0Qf8BcSB5QQdxdkEBcUUNACB5QQVNBEAgACB5QQxsaiIGQRRqKgIAIRMgBkEQaioCACEWIA0gZUEDdiIGaSIHNgI4AkACQAJ9AkAgB0ECRgRAIAZBf3NoIgZBA08NAyAGQQxsIgcgiAFqIgZFDQwgDSAGKgIIIg44AiQgDSAGKgIEIhc4AiAgDSAGKgIAIhA4AhwgByCFAWoiBkUNBCANIAYqAgg4AkAgDSAGKQIANwI4IA1B8ABqIA1BHGogDUE4ahCiAyANKAJwDQFDAAAAACEVQwAAgD8hH0MAAAAAIRlDAAAAAAwCCyANQQA2AnBBACANQThqQcSTwQAgDUHwAGpBhNXBABDhCgALIA0qAoABIR8gDSoCfCEVIA0qAnQhGSANKgJ4CyEPAn0gFSAVjCAfQwAAAABgIgYbIhogGpQgDyAPjCAGGyIjICOUIBkgGYwgBhsiKiAqlJKSIitDAAAAAF5FBEAgECAXlEMAAIC/IA4gDrxBgICAgHhxQYCAgPwDcr4iD5KVIhqUIA+UIQ4gECAPjJQhF0MAAAAAIRUgECAQIA+UlCAalEMAAIA/kgwBCyAaICsQmwEiEJUhFyAjIBCVIQ4gFSAVlCAPIA+UIBkgGZSSkhCbASAfixD0BCIPIA+SIRUgKiAQlQshDyADIGJJBEAgZyADQdQAbGoiBkEANgI8IAYgKDgCOCAGQQA2AjQgBkEANgIkIAZCADcCHCAGQwAAgH9DAAAAACATIBVfGzgCGCAGQwAAgP9DAAAAACAVIBZfGzgCFCAGQQA2AhAgBiBpNgIMIAYgYzYCCCAGIHk2AgQgBkEBNgIAIAYgbCkCADcCSCAGIBEgD5QgEiAOlJIgHCAXlJI4AjAgBiAUIA+UICAgDpSSIBIgF5SSOAIsIAYgGyAPlCAUIA6UkiARIBeUkjgCKCAGQdAAaiBuKAIANgIAIAYgISAPlCAeIA6UkiAYIBeUkiIOjDgCRCAGICVDAAAAAEMAAAAAIBUgE5MiDyAPQwAAAABdGyAPIA9cG0MAAAAAQwAAAAAgFiAVkyIPIA9DAAAAAF0bIA8gD1wbk5QgDpM4AkAgA0EBaiEDDAQLIAMgYkHo5MEAEOMIAAtBpv7AAEEdQcD/wAAQuwsACwwHCyB5QQZB2OTBABDjCAALAkAgfUUNACB0Qf8BcSBxQQdxdkEBcUUNACBxQQVNBEAgcUEMbCEGQwAAAAAhGSANKgKsBCEjIA0qAqgEISogDSoCpAQhK0MAAAAAIQ9DAAAAACEWQwAAAAAhE0MAAAAAIR9DAAAAACEaQwAAAAAhEEMAAAAAIRdDAAAAACEVIGVBAXEEQCArIA0qAvACIg6UICogDSoC9AIiFZSSICMgDSoC+AIiEJSSIg8gDSoC5AOUQwAAAACSIRkgDyANKgLcA5RDAAAAAJIhFiAPIA0qArgDlEMAAAAAkiEaIA8gDSoCvAOUQwAAAACSIR8gDSoCwAMgD5RDAAAAAJIhEyAQIA+UQwAAAACSIRAgFSAPlEMAAAAAkiEXIA4gD5RDAAAAAJIhFSAPIA0qAuADlEMAAAAAkiEPCyAAIAZqIQAgZUECcQRAIBkgKyANKgL8AiInlCAqIA0qAoADIjCUkiAjIA0qAoQDIi2UkiIOIA0qAvADlJIhGSAWIA4gDSoC6AOUkiEWIBogDiANKgLEA5SSIRogHyAOIA0qAsgDlJIhHyATIA0qAswDIA6UkiETIBcgMCAOlJIhFyAVICcgDpSSIRUgECAtIA6UkiEQIA8gDiANKgLsA5SSIQ8LIABBFGohACBlQQRxBEAgGSArIA0qAogDIiuUICogDSoCjAMiKpSSICMgDSoCkAMiI5SSIg4gDSoC/AOUkiEZIBYgDiANKgL0A5SSIRYgGiAOIA0qAtADlJIhGiAfIA4gDSoC1AOUkiEfIBMgDSoC2AMgDpSSIRMgFyAqIA6UkiEXIBUgKyAOlJIhFSAQICMgDpSSIRAgDyAOIA0qAvgDlJIhDwsgACoCACEqIBAgEJQgFyAXlCAVIBWUkpIQmwEhIyADIGJJBEAgZyADQdQAbGoiAEEANgI8IAAgKDgCOCAAQQA2AjQgAEGAgID8BzYCGCAAQgA3AhAgACBpNgIMIAAgYzYCCCAAIHE2AgQgAEEBNgIAIAAgbCkCADcCSCAAQdAAaiBuKAIANgIAIAAgEEMAAAAAQwAAgD8gI5UiDiAjQwjlPB5dGyAOICNDCOU8nl4bIg6UIis4AiQgACAXIA6UIhc4AiAgACAVIA6UIic4AhwgACAcIBkgDpQiEJQgESAWIA6UIhWUIBIgDyAOlCIPlJKSOAIwIAAgEiAQlCAUIBWUICAgD5SSkjgCLCAAIBEgEJQgGyAVlCAUIA+UkpI4AiggACA+ICMgKpMiD0MAAAAAIA9DAAAAAF8blCAuICuUIDMgJ5QgPCAXlJKSjCAYIBMgDpSUICEgGiAOlJQgHiAfIA6UlJKSk5IiDjgCRCAAICUgD0MAAAAAIA9DAAAAAGAblCAOkjgCQCADQQFqIQMMAgsgAyBiQYjlwQAQ4wgACyBxQQZB+OTBABDjCAALIAMgBUkNAiADIGJLBEAgAyBiQZjlwQAQ5AgACyBnIAVB1ABsaiADIAVrEPwBIIQBIAwiAEcNAAsLIA1BsARqJAAMBAsgBSADQZjlwQAQ5QgACyADIQULIAUgYkHY5cEAEOMIAAtBoM3AAEE1QdjNwAAQuwsACyBqKAJkIQAgaigCnAEiAyBqKAJsImUgAyBlSRsiZ0UNBiBqKAKUASEDICQgbbOUIQ8gACFmA0ACfwJAIAMiBUGwAWooAgAiAyCQAU8NACCCAUUNACCCASADQRRsaiIDKAIAIAVBtAFqKAIARw0AAkACQCBwRQ0AIAMoAgQiBiB3Tw0AIHAgBkGUAmxqIgYtAJACQQJGDQAgBigCACADQQhqKAIARg0BC0Hsm8EAQRNBkMvBABDhCQALIANBEGooAgAiAyAGQQxqKAIATw0EIAZBBGooAgAiBkUNBCAGIANB6ANsakGUA2oMAQsgZkHYBGooAgAiAyB1Tw0EIGggA0H8AGxqQThqCyEDIAUgayAPIAMCfwJAIAVBuAFqKAIAIgYgkAFPDQAgggFFDQAgggEgBkEUbGoiBigCACAFQbwBaigCAEcNACBwRQ0GIAYoAgQiByB3Tw0GIHAgB0GUAmxqIgctAJACQQJGDQYgBygCACAGQQhqKAIARw0GIAZBEGooAgAiBiAHQQxqKAIATw0HIAdBBGooAgAiB0UNByAHIAZB6ANsakGUA2oMAQsgZkHcBGooAgAiBiB1Tw0HIGggBkH8AGxqQThqCyAFQcABaioCACBmEKwBIGZB/ARqIWYgBUHEAWohAyBnQQFrImcNAAsMBgsga0IANwKMAyBrQZi/wAA2AogDIGtBATYChAMga0GMhsEANgKAAyBrQcABaiBrQdACaiBrQYADakH8hsEAEOIKAAtB9MLAAEErQaDLwQAQqgoACyADIHVB8MrBABDjCAALQeybwQBBE0Gwy8EAEOEJAAtB9MLAAEErQcDLwQAQqgoACyAGIHVBgMvBABDjCAALIGooAlghBQJAAkACQAJAAkACQCBqKAKQASIDIGooAmAiciADIHJJGyJnBEAgaigCiAEhZiAkIG2zlCEPIAUhAwNAIANB2ARqKAIAIgYgdU8NAiADQdwEaigCACIHIHVPDQMgZiBrIA8gaCAGQfwAbGoiBkE4aiBoIAdB/ABsaiIHQThqIAYqAmwgByoCbJIgAxCsASBmQbABaiFmIANB7ARqIQMgZ0EBayJnDQALCyBqKAJ8IQwgaigCtAEiAyBqKAKEASJzIAMgc0kbImJFDQMgcEUNBCBqKAKsASEDICQgbbOUIQ8gDCFnA0AgAygCACIGIHdPDQUgcCAGQZQCbGoiBi0AkAJBAkYNBSAGKAIAIANBBGooAgBHDQUgA0EMaigCACIHIAZBDGooAgBPDQMgBkEEaigCACIGRQ0DIANBFGogayAPIAYgB0HoA2xqQZQDaiADQRBqKgIAIGcQqQEgZ0HUA2ohZyADQdgCaiEDIGJBAWsiYg0ACwwDCyAGIHVBjNHBABDjCAALIAcgdUGc0cEAEOMIAAtB9MLAAEErQbTIwQAQqgoACyBqKAJwIQ0CQAJAIGooAqgBIgMgaigCeCJ0IAMgdEkbImcEQCBqKAKgASFmICQgbbOUIQ8gDSEDA0AgA0GQA2ooAgAiBiB1Tw0CIGYgayAPIGggBkH8AGxqIgZBOGogBioCbCADEKkBIANBzANqIQMgZkHEAmohZiBnQQFrImcNAAsLIJIBBEAgDCBzQdQDbGoheSANIHRBzANsaiF2IAAgZUH8BGxqIXwgBSByQewEbGohfyBqKAK0AiIIIGooArwCQThsaiF9IGooAqgCIgsgaigCsAJB1ABsaiGAASBqKAKcAiJjIGooAqQCQcgAbGohhAEgaigCkAIiZiBqKAKYAkHwAGxqIYMBIGooAgwhbiBqKAIAIXFBACF7A0BBASEGIGYhAyBjIWkgCyFiIAghZwNAAkACfwJAAkACQCAGDgMBAAIACwJAIANFDQAgAyCDAUYNACADQfAAaiEHQQEMAwtBACEDIGlFDQAgaSCEAUYNAEEAIQcgaSIDQcgAaiFpQQMMAgsgYkUNACBiIIABRg0AQQAhBiADIQcgYiIDQdQAaiFiQQAMAQsgZ0EARyBnIH1HcUUEQEEBIWcgDSEHIAwhYiAAIWkgBSEDDAILQQIhBiADIQcgZyIDQThqIWdBAgshbCBrIAM2AoQDIGsgbDYCgAMga0GAA2ogbyABIGQgnQEQOCAHIQMMAQsLA0ACQAJAAkACQAJAAkACQCBnDgMBAAIACyADQQBHIAMgf0dxDQNBACEDIGkgfEcNBAsgByB2Rw0BCyBiIHlGDQMgYiBxIG4gfiB4QQFBABA0IGJB1ANqIWJBAiFnDAQLQQAhZyAHIAEgZEEBQQAQjgEgB0HMA2ohBwwDCyADIAEgZEEBQQAQZSADQewEaiEDDAILIGkgcSBuIAEgZCB+IHhBAUEAECYgaUH8BGohaQwBCwtBASFnIA0hByAMIWIgACFpIAUhAwNAAkACQAJAAkACQAJAAkAgZw4DAQACAAsgA0EARyADIH9HcQ0DQQAhAyBpIHxHDQQLIAcgdkcNAQsgYiB5Rg0DIGIgcSBuIH4geEEAQQEQNCBiQdQDaiFiQQIhZwwEC0EAIWcgByABIGRBAEEBEI4BIAdBzANqIQcMAwsgAyABIGRBAEEBEGUgA0HsBGohAwwCCyBpIHEgbiABIGQgfiB4QQBBARAmIGlB/ARqIWkMAQsLIJIBIHtBAWoie0cNAAsLIG0ghgFHImwNASCRAUUNASAMIHNB1ANsaiFjIA0gdEHMA2xqIWcgACBlQfwEbGohaSAFIHJB7ARsaiFxIGooAgwhBiBqKAIAIQdBACFuA0BBASFmIAUhAyAAIQsgDSEIIAwhYgNAAkACQAJAAkACQAJAAkAgZg4DAQACAAsgA0EARyADIHFHcQ0DQQAhAyALIGlHDQQLIAggZ0cNAQsgYiBjRg0DIGIgByAGIH4geEEAQQEQNCBiQdQDaiFiQQIhZgwEC0EAIWYgCCABIGRBAEEBEI4BIAhBzANqIQgMAwsgAyABIGRBAEEBEGUgA0HsBGohAwwCCyALIAcgBiABIGQgfiB4QQBBARAmIAtB/ARqIQsMAQsLIJEBIG5BAWoibkcNAAsMAQsgBiB1QYTOwQAQ4wgACyBkIHUgZCB1SRsiYwRAA0Aga0HQAmoiA0EIaiIAIAFBCGooAgA2AgAgACAAKgIAQwAAgD8gJCBoQTBqKgIAlEMAAIA/kpUiD5QiFDgCACBrIAEpAgA3A9ACIGsgAUEMaioCACIOIGhBIGoqAgAiE5QgAUEQaioCACIQIGhBKGoqAgAiFZSSIAFBFGoqAgAiEiBoQSxqKgIAlJJDAACAPyAkIGhBNGoqAgCUQwAAgD+SlSIRlCIWOALkAiBrIA4gaEEcaioCACIalCAQIGhBJGoqAgCUkiASIBWUkiARlCIVOALgAiBrIA4gaEEYaioCAJQgECAalJIgEiATlJIgEZQiDjgC3AIgayBrKgLUAiAPlCIQOALUAiBrIGsqAtACIA+UIg84AtACIGtBgANqIgAgAyAkIGhBOGoiAyBoQfAAaiIFENkBIAMgaykCgAM3AgAgaEFAayAAQQhqIgMpAgA3AgAgaEHIAGogAEEQaiIGKQIANwIAIGhB0ABqIABBGGoiACgCADYCACBoIA8gaCoCAJI4AgAgaEEEaiIHIBAgByoCAJI4AgAgaEEIaiIHIBQgByoCAJI4AgAgaEEMaiIHIA4gByoCAJI4AgAgaEEQaiIHIBUgByoCAJI4AgAgaEEUaiIHIBYgByoCAJI4AgAgBioCACEaIGsqApQDIRcgaEH0AGoqAgAiFCBrKgKAAyIPlCAFKgIAIhMgayoChAMiDpSTIhAgEJIhECATIAMqAgAiEpQgaEH4AGoqAgAiFSAPlJMiESARkiERIGhB6ABqIAAqAgAgFSBrKgKMAyIWIBCUIA8gEZQgDiAVIA6UIBQgEpSTIhUgFZIiFZSTkpKSOAIAIGhB5ABqIBcgFCAWIBGUIBIgFZQgDyAQlJOSkpI4AgAgaEHgAGogGiATIBYgFZQgDiAQlCASIBGUk5KSkjgCACABQRhqIQEgaEH8AGohaCBjQQFrImMNAAsLAkACQAJAIGooArwDIgAEQCBwRQ0BIGooArQDIgcgAEEEdGohbiBqKAKkAyFjIGooArADIWggaigClAMhaSBqKAKgAyFxA0AgBygCACIAIHdPDQIgcCAAQZQCbGoiBS0AkAJBAkYNAiAFKAIAIAcoAgRHDQIgBUGIAmooAgAiACAFQYwCaigCACIBaiBxSw0WIAAgBUEcaigCAEcNFQJAIABFDQAgAUECdCEGIAVBEGooAgAhCCAAQQNxIWZBACFiIABBBE8EQCAGIGlqIQsgAEF8cSEMQQAhAwNAIAMgCGoiACADIAtqIgEqAgA4AgAgAEEEaiABQQRqKgIAOAIAIABBCGogAUEIaioCADgCACAAQQxqIAFBDGoqAgA4AgAgA0EQaiEDIAwgYkEEaiJiRw0ACwsgZkUNACBpIGJBAnQiACAGamohAyAAIAhqIQEDQCABIAMqAgA4AgAgA0EEaiEDIAFBBGohASBmQQFrImYNAAsLIAVBDGooAgAiAARAIABB6ANsIWYgBSgCBEGMA2ohAyAFQRhqKAIAIQwDQCADKAIAIgAgDEsNBSAFKAIQIABBAnRqIQsgDCAAayEIQQAhAUMAAAAAIRNDAAAAACEPQwAAAAAhDiMAQSBrIgYkACADQewCayIAQRBqIQ0CQAJAIABB4AJqLQAAImJBAXFFBEAgCEUNASANIA0qAgAgCyoCACAklJI4AgBBASEBCyBiQQJxRQRAIAEgCE8NASAAQRRqImcgZyoCACALIAFBAnRqKgIAICSUkjgCACABQQFqIQELIGJBBHFFBEAgASAITw0BIABBGGoiZyBnKgIAIAsgAUECdGoqAgAgJJSSOAIAIAFBAWohAQsCQAJAAkACQAJAAkBBAyBiQQN2ImJpaw4EAgAEAQULIAEgCE8EQCABIAhBhLzBABDjCAALIGJBf3NoIghBA0kEQCAIQQJ0IgggDWpBDGoiDSoCACALIAFBAnRqKgIAICSUkiEPIA0gDzgCACAGQQA2AhwgBkIANwIUIAZBFGogCGpBgICA/AM2AgAgBioCFCEOIAYqAhghECAGKgIcIRIgBkEIaiAPQwAAAD+UEIcBIAYqAgghDyAAIAYqAgw4AgwgACASIA+UOAIIIAAgECAPlDgCBCAAIA4gD5Q4AgAMAgtBwIXBAEEbQZS8wQAQuwsACyABQQNqIg0gCEsNAUMAAIA/IRAgCyABQQJ0aiIBKgIEICSUIhVDAAAAP5QiEiASlCABKgIAICSUIhZDAAAAP5QiESARlJIgASoCCCAklCIaQwAAAD+UIhQgFJSSIhdDAAAAAF9FBEAjAEEQayIBQwAAAH84AgwgASoCDBogFxCbASIPEMABIQ4gDxDBAUMAAIA/lCEQIBQgDkMAAIA/lCAPlSIUlCEOIBEgFJQhEyASIBSUIQ8LIABBHGoiASAWIAEqAgCSOAIAIABBIGoiASABKgIAIBWSOAIAIABBJGoiASABKgIAIBqSOAIAIAAgECAAKgIMIhKUIBMgACoCACIRlJMgDyAAKgIEIhSUkyAOIAAqAggiFZSTOAIMIAAgDiASlCATIBSUIBAgFZSSIA8gEZSTkjgCCCAAIA4gEZQgDyASlCAQIBSUIBMgFZSTkpI4AgQgACAPIBWUIBAgEZQgEyASlJKSIA4gFJSTOAIACyAGQSBqJAAMBAsgDSAIQci8wQAQ5AgAC0GkvMEAQRNBuLzBABCqCgALQdTGwABBKEHYvMEAEKoKAAsgASAIQei8wQAQ4wgACyADQegDaiEDIGZB6ANrImYNAAsLIAVBBGoiACAEIGwQKgJAIG0ghgFGDQAgACAkIAQQGyAAIIwBIIsBEEkgBSgCiAIiACAFKAKMAiIBaiBoSw0XIGsgADYCuAIgayAFQTxqKAIAIgM2AsABIAAgA0cNBSAFQThqKAIAIgBFDQAgAUECdCEGIAVBMGooAgAhBSAAQQNxIWZBACFnIABBBE8EQCAGIGNqIQggAEF8cSELQQAhAwNAIAMgCGoiACAkIAMgBWoiASoCAJQ4AgAgAEEEaiAkIAFBBGoqAgCUOAIAIABBCGogJCABQQhqKgIAlDgCACAAQQxqICQgAUEMaioCAJQ4AgAgA0EQaiEDIAsgZ0EEaiJnRw0ACwsgZkUNACBjIGdBAnQiACAGamohAyAAIAVqIQEDQCADICQgASoCAJQ4AgAgA0EEaiEDIAFBBGohASBmQQFrImYNAAsLIG4gB0EQaiIHRw0ACwsgbUEBaiFtIGooArQCIgMgaigCvAJBOGxqIQUgaigCqAIiASBqKAKwAkHUAGxqIQYgaigCnAIiACBqKAKkAkHIAGxqIQcgaigCkAIiZiBqKAKYAkHwAGxqIQggaigChAMhCyBqKAL8AiEMQQEhYwNAAkACQAJAAkACQAJAAkACQCBjDgMBAAIACyBmQQBHIAggZkdxDQNBACFmIABFDQAgACAHRw0ECyABRQ0AIAEgBkcNAQsgA0UNBCADIAVGDQQgAyADKgIsOAIoIGsgAzYChANBAiFjIGtBAjYCgAMgA0E4aiEDDAMLIAEgASoCRDgCQCBrIAE2AoQDQQAhYyBrQQA2AoADIAFB1ABqIQEMAgsgZiBmKgJMOAJIIGsgZjYChAMga0EBNgKAAyBmQfAAaiFmDAELIAAgACoCODgCNCBrIAA2AoQDIGtBAzYCgAMgAEHIAGohAAsga0GAA2ogbyAMIAsgnQEQOAwBCwsgaigCfCIBIGooAoQBQdQDbGohDSBqKAJwIgggaigCeEHMA2xqIWIgaigCZCJpIGooAmxB/ARsaiFnIGooAlgiAyBqKAJgQewEbGohZiBqKAKgAyEGIGooApQDIQcgaigCDCELIGooAgAhDCBqKAKEAyEAIGooAvwCIQVBASFjA0ACQAJAAkACQAJAAkAgYw4DAQACAAsgA0EARyADIGZHcQ0DIGcgaUcNBEEAIQMLIAggYkcNAQsgASANRg0IIAFBgICA/AM2ArgDIAEgASoCEDgCDCABQThqIAFBQGspAgA3AgAgAUHwAGogAUH0AGoqAgA4AgAgAUGcAWogAUGkAWopAgA3AgAgAUHUAWogAUHYAWoqAgA4AgAgAUGAAmogAUGIAmopAgA3AgAgAUG4AmogAUG8AmoqAgA4AgAgAUHkAmogAUHsAmopAgA3AgAgASAMIAsgByAGQQFBABA0IAFB1ANqIQFBAiFjDAMLIAhBgICA/AM2ArgDIAggCCoCEDgCDCAIQThqIAhBQGspAgA3AgAgCEHwAGogCEH0AGoqAgA4AgAgCEGcAWogCEGkAWopAgA3AgAgCEHUAWogCEHYAWoqAgA4AgAgCEGAAmogCEGIAmopAgA3AgAgCEG4AmogCEG8AmoqAgA4AgAgCEHkAmogCEHsAmopAgA3AgBBACFjIAggBSAAQQFBABCOASAIQcwDaiEIDAILIANB0ARqQYCAgPwDNgIAIANBGGogA0EcaioCADgCACADQdwAaiADQeQAaikCADcCACADQaABaiADQaQBaioCADgCACADQeQBaiADQewBaikCADcCACADQagCaiADQawCaioCADgCACADQewCaiADQfQCaikCADcCACADQbADaiADQbQDaioCADgCACADQfQDaiADQfwDaikCADcCACADIAUgAEEBQQAQZSADQewEaiEDDAELIGlBgICA/AM2AtAEIGkgaSoCHDgCGCBpQdwAaiBpQeQAaikCADcCACBpQaABaiBpQaQBaioCADgCACBpQeQBaiBpQewBaikCADcCACBpQagCaiBpQawCaioCADgCACBpQewCaiBpQfQCaikCADcCACBpQbADaiBpQbQDaioCADgCACBpQfQDaiBpQfwDaikCADcCAEEAIQMgaSAMIAsgBSAAIAcgBkEBQQAQJiBpQfwEaiFpDAALAAtB9MLAAEErQbTowQAQqgoACyAAIAxB0LLBABDiCAALIGtCADcC3AIga0GYv8AANgLYAiBrQQE2AtQCIGtBwIjBADYC0AIga0G4Amoga0HAAWoga0HQAmpBsInBABDgCgALQeybwQBBE0GkyMEAEOEJAAsgbSCeAUcNAAsgaigCvAIhBgsgakGoAmooAgAiYyBqKAKwAkHUAGxqIQggakGcAmooAgAiZiBqKAKkAkHIAGxqIQsgakGQAmooAgAiAyBqKAKYAkHwAGxqIQwgaigCtAIiASAGQThsaiEGQQEhBwNAAkACfwJAAkACQCAHDgMBAAIACwJAIANFDQAgAyAMRg0AIANB8ABqIWJBAQwDC0EAIQMgZkUNACALIGZGDQBBACFiIGYiA0HIAGohZkEDDAILIGNFDQAgCCBjRg0AQQAhByADIWIgYyIDQdQAaiFjQQAMAQsgAUUNASABIAZGDQFBAiEHIAMhYiABIgNBOGohAUECCyFpIGsgAzYChAMgayBpNgKAAwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAga0GAA2oiACgCAEEBaw4DAQIDAAsCQAJAAkAgACgCBCIAKAIMIgMgCkkEQCAAKAIAQQFrDgICAwELIAMgCkGY5sEAEOMIAAsgACgCBCIFQQZPDQYgCSADQYADbGogBUECdGpBIGogACoCEDgCAAwOCyAAKAIEIgVBBkkNBCAFQQZBuObBABDjCAALIAAoAgQiBUEGSQ0LIAVBBkHI5sEAEOMIAAsCQAJAAkAgACgCBCIAKAIQIgMgCkkEQCAAKAIAQQFrDgICAwELIAMgCkHY48EAEOMIAAsgACgCBCIFQQZPDQYgCSADQYADbGogBUECdGpBIGogACoCFDgCAAwNCyAAKAIEIgVBBkkNCiAFQQZB+OPBABDjCAALIAAoAgQiBUEGSQ0IIAVBBkGI5MEAEOMIAAsCQAJAIAAoAgQiACgCFCIDQX9HBEACQAJAAkACQAJAIAMgCkkEQCAAKAIAQQFrDgICAwELIAMgCkHg28EAEOMIAAsgACgCBCIFQQZPDQIgCSADQYADbGogBUECdGpBIGogACoCGDgCAAwGCyAAKAIEIgVBBkkNBCAFQQZBgNzBABDjCAALIAAoAgQiBUEGSQ0BIAVBBkGQ3MEAEOMIAAtBwIXBAEEbQfDbwQAQuwsACyAJIANBgANsaiAFQRxsakHkAWogACoCGDgCAAsMAQsgCSADQYADbGogBUEMbGpB2ABqIAAqAhg4AgALDAoLAkACQAJAIAAoAgQiACgCICIDIApJBEAgACgCAEEBaw4CAgMBCyADIApBgNrBABDjCAALIAAoAgQiBUEGTw0FIAkgA0GAA2xqIAVBAnRqQSBqIAAqAiQ4AgAMCwsgACgCBCIFQQZJDQYgBUEGQaDawQAQ4wgACyAAKAIEIgVBBkkNBCAFQQZBsNrBABDjCAALIAkgA0GAA2xqIAVBDGxqQdgAaiAAKgIQOAIADAgLQcCFwQBBG0Go5sEAELsLAAtBwIXBAEEbQejjwQAQuwsAC0HAhcEAQRtBkNrBABC7CwALIAkgA0GAA2xqIAVBHGxqQeQBaiAAKgIkOAIADAQLIAkgA0GAA2xqIAVBDGxqQdgAaiAAKgIkOAIADAMLIAkgA0GAA2xqIAVBHGxqQeQBaiAAKgIUOAIADAILIAkgA0GAA2xqIAVBDGxqQdgAaiAAKgIUOAIADAELIAkgA0GAA2xqIAVBHGxqQeQBaiAAKgIQOAIACyBiIQMMAQsLIGooAnwiZiBqQYQBaigCAEHUA2xqIQAgaigCcCJpIGpB+ABqKAIAQcwDbGohBSBqKAJkImIgakHsAGooAgBB/ARsaiEGIGooAlgiAyBqQeAAaigCAEHsBGxqIQdBASEBA0ACQAJAAkACQAJAAkACQCABDgMBAAIACyADQQBHIAMgB0dxDQMgBiBiRw0EQQAhAwsgBSBpRw0BCyAAIGZGDQMgZiCHASCBARDOBCBmQdQDaiFmQQIhAQwECyBpIIcBIIEBEM4EIGlBzANqIWlBACEBDAMLIAMghwEggQEQzwQgA0HsBGohAwwCCyBiIIcBIIEBEM8EIGJB/ARqIWJBACEDDAELCwJAAkAgmwEoAgAiASCcASgCACIDTwRAIAEgigFLDQ0CQAJAIAEgA0cEQCAEKAIQIQsgBCgCCCEEIAIqAgQhEiCUASABQQN0aiEMIJQBIANBA3RqIWYgaigC8AIhDSBqKAL8AiFjIGooAoQDIQUgaigC+AIhBiBqKAKUAyEHIGooAqADIWkgeigCECFsIHooAgghCCB6KAIkIXAgeigCHCEJIGooArwDIWoDQCBmKAIEIQIgZigCACEAAkACQAJAIGpFDQAgACBwTw0AIAlFDQAgCSAAQRRsaiIBKAIAIAJHDQACQCABKAIEIgAgbE8NACAIRQ0AIAggAEGUAmxqIgAtAJACIgJBAkYNACAAKAIAIAFBCGooAgBGDQILQfTCwABBK0HE6MEAEKoKAAsgACALTw0HIARFDQcgBCAAQegCbGoiACgCAEUNByAAKAIEIAJHDQcgAEEQaigCACICIAZPDQQgAiAFTw0FIA0gAkH8AGxqIgEqAhghFiABQRxqKgIAIREgAUEkaioCACEaIAFBNGoqAgAhFyABQSxqKgIAIRkgYyACQRhsaiICQRRqKgIAIQ8gAioCDCEOIAFBIGoqAgAhFCABQShqKgIAIRMgAkEQaioCACEQIAIqAgAhJCACKgIEISIgAioCCCEVIAEqAjAhHSABKgIAIRggASoCBCEeIABB6ABqIAEqAgggUZU4AgAgAEHkAGogHiBRlTgCACAAQeAAaiAYIFGVOAIAIAEqAgwhGCABQRBqKgIAIR4gAUEUaioCACEhIABBgAFqIBVDAACAPyASIB2UQwAAgD+SlSIVlDgCACAAQfwAaiAiIBWUOAIAIABB+ABqICQgFZQ4AgAgAEH0AGogISBRlTgCACAAQfAAaiAeIFGVOAIAIABB7ABqIBggUZU4AgAgAEGMAWogDiAUlCAQIBOUkiAPIBmUkkMAAIA/IBIgF5RDAACAP5KVIhWUOAIAIABBiAFqIA4gEZQgECAalJIgDyATlJIgFZQ4AgAgAEGEAWogDiAWlCAQIBGUkiAPIBSUkiAVlDgCACABKQI4IaIBIAFBQGspAgAhowEgAUHIAGopAgAhpAEgAEHcAGogAUHQAGooAgA2AgAgAEHUAGogpAE3AgAgAEHMAGogowE3AgAgAEHEAGogogE3AgAMAQsCQAJAIAFBEGooAgAOAgEAAgsgAg0BCyAAQYgCaigCACIBIABBjAJqKAIAIgJqIGlLDRUgASAAQRxqKAIARw0HIAFFDQAgAkECdCECIABBEGooAgAhCiABQQNxIWdBACFiIAFBBE8EQCACIAdqIXogAUF8cSFuQQAhAwNAIAMgCmoiACADIHpqIgEqAgA4AgAgAEEEaiABQQRqKgIAOAIAIABBCGogAUEIaioCADgCACAAQQxqIAFBDGoqAgA4AgAgA0EQaiEDIG4gYkEEaiJiRw0ACwsgZ0UNACAHIGJBAnQiACACamohAyAAIApqIQEDQCABIAMqAgA4AgAgA0EEaiEDIAFBBGohASBnQQFrImcNAAsLIAwgZkEIaiJmRw0ACwsga0GwA2okAA8LIAIgBkHU6MEAEOMIAAsgAiAFQeTowQAQ4wgACwwNC0Hsm8EAQRNB6OnBABDhCQALDAwLIAAoAgAiYyAKSQ0BCyBjIApB2NbBABDjCAALQeybwQBBE0Hg38EAEOEJAAsgCiBiKAIAIgBLDQELIAAgCkGo1sEAEOMIAAtB7JvBAEETQaTUwQAQ4QkACyAKIAcoAgAiCEsNAQsgCCAKQcjWwQAQ4wgAC0Hsm8EAQRNBwN3BABDhCQALQeybwQBBE0HU08EAEOEJAAsgASCKAUG4qcEAEOQIAAsgAyABQbipwQAQ5QgAC0HYi8EAQTRBjIzBABC7CwALQab+wABBHUGw/8AAELsLAAsgAQRAIAEgAEEQaigCAEHQgcQAKAIAIgBBlwcgABsRAAAACwsQ2woACyAIIAFBEGooAgBB0IHEACgCACIAQZcHIAAbEQAAAAsgAyABQRBqKAIAQdCBxAAoAgAiAEGXByAAGxEAAAALQQQgAUHQgcQAKAIAIgBBlwcgABsRAAAAC5TUAgNKfyx9BX4jAEGAA2siFCQAIAAtAMgDBEAgAEIANwMQIABB2AFqQQA2AgAgAEGgAWpCADcDACAAQYgBakIANwMAIABB8ABqQgA3AwAgAEHYAGpCADcDACAAQUBrQgA3AwAgAEEoakIANwMAIABBwANqQQA2AgAgAEG4AmpCADcDACAAQaACakIANwMAIABBiAJqQgA3AwAgAEHwAWpCADcDACAAQdABakIANwMAIABBuAFqQgA3AwAgAEG4A2pCADcDACAAQaADakIANwMAIABBiANqQgA3AwAgAEHwAmpCADcDACAAQdgCakIANwMAIABB0AJqQgA3AwALIAhByABqIg8oAgAhESAPQQA2AgAgCUHIAGoiDygCACEVIA9BADYCACAJKAJAIhIgFUEDdGohKSAIKAJAIg8gEUEDdGohHSAGKAIQIR8gBigCCCEWAkACQAJAAkACQAJAA0ACQAJ/AkAgDwRAIA8gHUcNAUGYv8AAIR0LAkAgEkUNACASIClGDQAgEiIVQQhqIRJBAAwCCyAHKQIcIYUBIAdCBDcCHCAUQRBqIhpBCGoiKiAHQSRqIhIoAgAiDzYCACASQQA2AgAgFCCFATcDECAUQShqIAdBMGoiEigCADYCACASQQA2AgAgBykCKCGGASAHQgQ3AiggFCCGATcDICCFAachEQJAIA9FDQAgBygCCCIXRQ0AIBEgD0EDdGohFiAGQRxqISkgBygCECEYA0ACQCARKAIAIg8gGE8NACAXIA9BqAFsaiISKAIARQ0AIBIoAgQgEUEEaigCAEcNAAJAIBJB+ABqKAIAIhNBBHFFDQAgEigCCEUNAAJAAkAgEkEMaigCACIPIAYoAhBPDQAgBigCCCIZRQ0AIBkgD0HoAmxqIg8oAgBFDQAgDygCBCASQRBqKAIARg0BC0Hsm8EAQRNB/IfCABDhCQALIBJBLGoqAgAhXyASQShqKgIAIWEgEkEkaioCACFgIBJBIGoqAgAhXSASQRxqKgIAIVwgEkEYaioCACFeIBJBFGoqAgAhYiAPQThqKgIAIWMgD0E8aioCACFkIA9BQGsqAgAhZyAPQTBqKgIAIVkgD0EsaioCACFlIA9BNGoqAgAhWyAPQShqKgIAIVogEiATQQhyIhM2AnggEkGIAWogXSBblCBiIFqUkyBeIGWUkyBcIFmUkzgCACASQYQBaiBdIFmUIF4gWpQgXCBblJIgYiBllJOSOAIAIBJBgAFqIGIgWZQgXSBllCBeIFuUIFwgWpSTkpI4AgAgEkH8AGogXCBllCBdIFqUIGIgW5SSkiBeIFmUkzgCACASQZQBaiBnIF8gWyBhIFqUIGAgZZSTIl0gXZIiXZQgWiBgIFmUIF8gWpSTIlwgXJIiXJQgZSBfIGWUIGEgWZSTIl4gXpIiXpSTkpKSOAIAIBJBkAFqIGQgYSBbIFyUIFkgXpQgWiBdlJOSkpI4AgAgEkGMAWogYyBgIFsgXpQgZSBdlCBZIFyUk5KSkjgCAAsgE0GmAnFFDQAgEigCCEUNACASQQxqKAIAIhMgBigCEE8NACAGKAIIIg9FDQAgDyATQegCbGoiDygCAEUNACASQRBqKAIAIhkgDygCBEcNACAPIhJBsAJqKAIAIg9BAXFFBEAgEkEBNgKwAiAGKAIkIg8gBigCIEYEQCApIA8QqwYgBigCJCEPCyAGKAIcIA9BA3RqIiAgGTYCBCAgIBM2AgAgBiAPQQFqNgIkIBIoArACIQ8LIBIgD0HAAHI2ArACCyAWIBFBCGoiEUcNAAsLIAZBIGoiDygCACFUIAZBJGooAgAhJiAPQgA3AgAgBigCHCFBIAZBBDYCHCAIITEgQSEYQQAhFiMAQSBrIhAkAAJAAkACQAJAAkACQCAmRQ0AIANBDGohNCAYICZBA3RqISwgBigCECE5IDEoAjwhISAxKAIwIRwgMSgCJCEwIDEoAhwhKyAHKAIQIUAgMSgCNCEeIDEoAighJCAHKAIIISggBigCCCEnA0AgJ0UNAQNAAkACQCAYKAIAIiIgOU8NACAnICJB6AJsaiIZKAIARQ0AIBhBBGooAgAiLSAZKAIERg0BCyAsIBhBCGoiGEcNAQwDCwsgGUGwAmooAgAhIyAZQRBqKQMAIYUBIBlBDGooAgAhEyAZKAIIITUgEEEIaiIPQRBqIjMgGUHUAmoiCCgCADYCACAPQQhqIkcgGUHMAmopAgA3AwAgECAZQcQCaiIvKQIANwMIAkACQCADBEAgGUHmAmotAAANAQsgI0EKcSEPQQMhIAwBC0EDISACQCAjQRBxRQ0AAkACQAJAIBlB5QJqLQAAQQFrDgMDAQEACyADKAIUIhIgE00NAiA0KAIAIg8gE0EDdGoiESgCACAiRw0CIA8gE0EDdGooAgQgLUcNAiARIA8gEkEBayIXQQN0aikCADcCAEEAISAgEyEWDAELAn9BAyADKAIIIhIgE00NABpBAyADKAIAIg8gE0EDdGoiESgCACAiRw0AGkEDIA8gE0EDdGooAgQgLUcNABogAyASQQFrIhI2AgggESAPIBJBA3RqKQIANwIAIBMhFkEBCyEgAkAgAygCFCIPIBNNDQAgNCgCACATQQN0aiISKAIAICJHDQAgEigCBCAtRg0CCyAPIhcgAygCEEYEQCA0IA8QqwYgAygCFCEXCyA0KAIAIBdBA3RqIhIgLTYCBCASICI2AgAgF0EBaiEXIA8hEwsgAyAXNgIUCwJAICNBCnEiD0UNACAZQeUCai0AAEECSQ0AAkAgAygCFCIRIBNNDQAgNCgCACATQQN0aiISKAIAICJHDQAgEigCBCAtRg0BCyARIhIgAygCEEYEQCA0IBEQqwYgAygCFCESCyADIBJBAWo2AhQgAygCDCASQQN0aiISIC02AgQgEiAiNgIAIBEhEwsgI0EEcUUNACAZLQDmAkUNACAILQAAIBlB5QJqLQAAcg0AAkAgEyADKAIIIghPDQAgAygCACATQQN0aiISKAIAICJHDQAgEigCBCAtRg0BCyAIIRcgAygCBCAIRgRAIAMgCBCrBiADKAIIIRcLIAMgF0EBajYCCCADKAIAIBdBA3RqIhIgLTYCBCASICI2AgAgCCETCyAPBEAgGUG4AmogByAaIBlBKGoQlwILAkAgI0EwcUUNACAZQcACaigCACIPRQ0AIChFDQYgGUG4AmooAgAiCCAPQQN0aiEpA0AgCCgCACIXIEBPDQcgKCAXQagBbGoiDygCAEUNByAIQQRqKAIAIiUgDygCBEcNByAPIhFB+ABqKAIAIg9BAXFFBEAgGigCCCISIBooAgRGBEAgGiASEKsGIBooAgghEgsgGiASQQFqNgIIIBooAgAgEkEDdGoiDyAlNgIEIA8gFzYCACARKAJ4IQ8LIBEgD0GBAXI2AnggKSAIQQhqIghHDQALCyAjQYABcQRAIBlBwAJqKAIAIg8EQCAoRQ0GIBlBuAJqKAIAIgggD0EDdGohFwNAIAgoAgAiESBATw0HICggEUGoAWxqIg8oAgBFDQcgCEEEaigCACIpIA8oAgRHDQcgD0H4AGotAABBAXFFBEAgGigCCCISIBooAgRGBEAgGiASEKsGIBooAgghEgsgGiASQQFqNgIIIBooAgAgEkEDdGoiEiApNgIEIBIgETYCAAsgD0HqAGotAAAhEQJAAkAgGS0A5gIiKQRAQQAhEiARQQFGDQELQQEhEiARIClyDQELIA8gEjoAagsgDyAPKAJ4QYECcjYCeCAXIAhBCGoiCEcNAAsLAkAgIiAwTw0AICtFDQAgKyAiQQN0aiIPKAIAIC1HDQAgD0EEaiESAkAgHkUEQCAkRQ0CIBIoAgAiCCAcTw0CICQgCEEEdGoiCEEMaigCAEF/Rw0BIAgoAghBf0YNAgwHC0EAIRcCQCAkRQRAQQAhJQwBC0EAISUgEigCACISIBxPDQAgJCASQQR0aiIPKAIIIghBf0chJSAPQQxqKAIAIg9Bf0chFwsCQAJAAkAgGS0A5gJFBEADQAJAIBcEQCAPICFPDQcgHCAeIA9BgANsaiIRKAIIIhJNDQYgHCARQQxqKAIAIhJNDQwgESgCBCISQX9HIRcgCCERIA8hKSASIQ8MAQsgJUUNByAIICFPDQwgHCAeIAhBgANsaiIRKAIIIhJNDQMgHCARQQxqKAIAIhJNDQQgESgCACIRQX9HISVBACEXIA8hEiAIISkgESEICyAeIClBgANsakH8AmoiKS0AAA0AIClBAToAACARIQggEiEPDAALAAsDQAJAIBcEQCAPICFPDQYgHCAeIA9BgANsaiIRKAIIIhJNDQUgHCARQQxqKAIAIhJNDQsgESgCBCISQX9HIRcgCCERIA8hKSASIQ8MAQsgJUUNBiAIICFPDQsgHCAeIAhBgANsaiIRKAIIIhJNDQIgHCARQQxqKAIAIhJNDQMgESgCACIRQX9HISVBACEXIA8hEiAIISkgESEICyAeIClBgANsakH8AmoiKS0AAEEBRw0AIClBADoAACARIQggEiEPDAALAAsgEiAcQcj+wQAQ4wgACyASIBxB2P7BABDjCAALIBIgHEGY/sEAEOMIAAtB9MLAAEErQYj+wQAQqgoACyAgQQIgGS0A5gIbISALICNByABxBEAgGUGYAWogByAZQbgCaiAZQShqEJcBCyAZIIUBNwMQIBkgEzYCDCAZIDU2AgggLyAQKQMINwIAIC9BCGogRykDADcCACAvQRBqIDMoAgA2AgACQCADRQ0AICBBA0YNAAJAAkACQCAgQQFrDgICAAELIAMgIiAtIBMgBhC4AwwCCyAWIAMoAhRPDQEgNCgCACAWQQN0aiIPKAIAIgggOU8NEiAnRQ0SICcgCEHoAmxqIggoAgBFDRIgCCgCBCAPKAIERw0SIAhBDGogFjYCAAwBCyAWIAMoAghPDQACQCADKAIAIBZBA3RqIg8oAgAiCCA5Tw0AICdFDQAgJyAIQegCbGoiCCgCAEUNACAIKAIEIA8oAgRHDQAgCEEMaiAWNgIADAELDBELICwgGEEIaiIYRw0ACwsgEEEgaiQADAQLIBIgHEGo/sEAEOMIAAtB9MLAAEErQbj+wQAQqgoAC0Hsm8EAQRNBjITCABDhCQALQeybwQBBE0GMhMIAEOEJAAsCQCAqKAIAIghFDQAgFCgCECIPIAhBA3RqIQgDQAJAIAcoAggiEwRAIAcoAhAhFQNAAkAgDygCACISIBVPDQAgEyASQagBbGoiESgCAEUNACAPQQRqKAIAIhsgESgCBEcNACARQeoAai0AAA0DCyAIIA9BCGoiD0cNAAsMAwsDQCAIIA9BCGoiD0cNAAsMAgsgFCgCKCIVIBQoAiRGBEAgFEEgaiAVQQEQjAYLIBQoAiAgFUEDdGoiESAbNgIEIBEgEjYCACAUIBVBAWo2AiggCCAPQQhqIg9HDQALCyAJKAIIIhIgCUEQaigCAEGUAmxqISUgFEHIAmoiCEEMaiEWIBRB8gFqISkgFEGFAmohGCAUQZgCaiEZIBRBqwJqISAgFEEzaiEcIAhBEGohFwNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAICUgEiITRwRAIBNBlAJqIRIgEy0AkAIiFUECRg0QIBNBDGooAgBFDQcgE0EEaiIbKAIAIggoAgAiDyAGKAIQTw0PIAYoAggiH0UNDyAfIA9B6AJsaiIfKAIARQ0PIB8oAgQgCCgCBEcNDyAfQeUCai0AACIPRSAVQQBHRg0MAkAgDwRAIBNBHGooAgBBBUsNAUGQs8EAQTZByLPBABCqCgALIB9BKGopAwAhhQEgH0EwaikDACGGASAUQdACaiIVIB9BQGsoAgA2AgAgFCAfQThqKQMANwPIAiAcQQhqQgA3AAAgHEIANwAAICBCADcAACAgQQhqQgA3AAAgGUIANwAAIBlBCGpCADcAACAYQgA3AAAgGEEIakIANwAAIClCADcAACApQQhqQgA3AAAgFEHIAWoiEUEPaiIdIBRBMGoiD0EPaigAADYAACARQQhqIhogD0EIaiIRKQAANwMAIBQgFCkAMDcDyAEgFEGwAWoiLkEPaiIiIBRBqAJqIi1BD2ooAAA2AAAgLkEIaiI0IC1BCGopAAA3AwAgFCAUKQCoAjcDsAEgFEGYAWoiLkEPaiItIBRBlQJqIh5BD2ooAAA2AAAgLkEIaiIjIB5BCGopAAA3AwAgFCAUKQCVAjcDmAEgFEGAAWoiLkEPaiIeIBRBggJqIidBD2ooAAA2AAAgLkEIaiIQICdBCGopAAA3AwAgFCAUKQCCAjcDgAEgFEHoAGoiLkEPaiInIBRB7wFqIiFBD2ooAAA2AAAgLkEIaiIkICFBCGopAAA3AwAgFCAUKQDvATcDaCAWQQhqQQA2AgAgFkIANwIAIA9BEGoiLiAXKQMANwMAIBEgFSkDADcDACAUIBQpA8gCNwMwIAhBKGoghgE3AwAgCCCFATcDICAIQdAAakIANwMAIAhByABqQgA3AwAgCEGYAWpB////+wc2AgAgCEGQAWpCgICAgPD//79/NwMAIAhBiAFqQv////v///+//wA3AwAgCEGAAWpC////+wc3AwAgCEH4AGpCgICAgPD//79/NwMAIAhB8ABqQv////v///+//wA3AwAgCEHoAGpC////+wc3AwAgCEHgAGpCgICAgPD//79/NwMAIAhB2ABqQv////v///+//wA3AwAgCEGAA2oiDy0AACEhIAhBMGogFCkDMDcDACAIQThqIBEpAwA3AwAgCEFAayAuKQMANwMAIAhBpAFqQgA3AgAgCEGcAWpCADcCACAIQawBakGAgID8AzYCACAIQbABakIANwMAIAhBuAFqQgA3AwAgCEHAAWpCADcDACAIQcgBakGAgID8AzYCACAIQcwBakIANwIAIAhB1AFqQgA3AgAgCEHcAWpCADcCACAIQeQBakEANgIAIAhB8AFqQQA6AAAgCEHoAWpC////+wc3AwAgCEHxAWogFCkDyAE3AAAgCEH5AWogGikDADcAACAIQYACaiAdKAAANgAAIAhBjAJqQQA6AAAgCEGEAmpC////+wc3AgAgCEGoAmpBADoAACAIQaACakL////7BzcDACAIQcQCakEAOgAAIAhBvAJqQv////sHNwIAIAhBnAJqICIoAAA2AAAgCEGVAmogNCkDADcAACAIQY0CaiAUKQOwATcAACAIQbgCaiAtKAAANgAAIAhB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ECAnQQhqKQAANwMAIBQgFCkAlQI3A5gBIBRBgAFqIi5BD2oiJyAUQYICaiIhQQ9qKAAANgAAIC5BCGoiJCAhQQhqKQAANwMAIBQgFCkAggI3A4ABIBRB6ABqIiFBD2oiLiAUQe8BaiIoQQ9qKAAANgAAICFBCGoiISAoQQhqKQAANwMAIBQgFCkA7wE3A2ggFkEIakEANgIAIBZCADcCACAPQRBqIg8gFykDADcDACAVIBopAwA3AwAgFCAUKQPIAjcDMCAIQTBqQgA3AwAgCEEoakKAgICAgICAwD83AwAgCEIANwMgIAhBOGpCADcDACAIQUBrQgA3AwAgCEHIAGpCADcDACAIQdAAakIANwMAIAhBmAFqQv////sHNwMAIAhBkAFqQoCAgIDw//+/fzcDACAIQYgBakL////7////v/8ANwMAIAhBgAFqQv////sHNwMAIAhB+ABqQoCAgIDw//+/fzcDACAIQfAAakL////7////v/8ANwMAIAhB6ABqQv////sHNwMAIAhB4ABqQoCAgIDw//+/fzcDACAIQdgAakL////7////v/8ANwMAIAhBgANqIhotAAAhKCAIQawBaiBZOAIAIAhByAFqQYCAgPwDNgIAIAhBzAFqQgA3AgAgCEHUAWpCADcCACAIQdwBakIANwIAIAhB5AFqQQA2AgAgCEHwAWpBADoAACAIQegBakL////7BzcDACAIQagBaiAdKAIANgIAIAhBoAFqIBQpA+ABNwIAIAhBwAFqIA8pAwA3AwAgCEG4AWogFSkDADcDACAIQbABaiAUKQMwNwMAIAhBhAJqQv////sHNwIAIAhBjAJqQQA6AAAgCEGgAmpC////+wc3AwAgCEGoAmpBADoAACAIQYACaiAiKAAANgAAIAhB+QFqIC0pAwA3AAAgCEHxAWogFCkDyAE3AAAgCEGNAmogFCkDsAE3AAAgCEGVAmogHikDADcAACAIQZwCaiA0KAAANgAAIAhBqQJqIBQpA5gBNwAAIAhBsQJqIBApAwA3AAAgCEG4AmogIygAADYAACAIQcQCakEAOgAAIAhBvAJqQv////sHNwIAIAhB1AJqICcoAAA2AAAgCEHNAmogJCkDADcAACAIQcUCaiAUKQOAATcAACAIQeACakEAOgAAIAhB2AJqQv////sHNwMAIAhB/AJqQQA6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CDYCAAwCCyAIQYGAgIB4Rg0BIAhFDQAgCCACQRBqKAIAQdCBxAAoAgAiAEGXByAAGxEAAAALENsKAAsgAkEgaiQAIAAoApQEIRIMAQsgASESIBUNACABIRMMAQsgDyASaiABQX9zaiETIAEgD2tBAWohCCAAKAKMBCASQcADbGohDwNAIA9CBDcCACAPQbgDakIANwIAIA9BsANqQoCAgIDAADcCACAPQagDakIANwIAIA9BoANqQoCAgIDAADcCACAPQZgDakIANwIAIA9BkANqQoCAgIDAADcCACAPQYgDakIENwIAIA9BgANqQgA3AgAgD0H4AmpCgICAgMAANwIAIA9B8AJqQgQ3AgAgD0HoAmpCADcCACAPQeACakKAgICAgAE3AgAgD0HYAmpCCDcCACAPQdACakIANwIAIA9ByAJqQoCAgICAATcCACAPQcACakIINwIAIA9BuAJqQgA3AgAgD0GwAmpCgICAgMAANwIAIA9BqAJqQgQ3AgAgD0GgAmpCADcCACAPQZgCakKAgICAwAA3AgAgD0GQAmpCBDcCACAPQYgCakIANwIAIA9BgAJqQoCAgIDAADcCACAPQfgBakIENwIAIA9B8AFqQgA3AgAgD0HoAWpCgICAgMAANwIAIA9B4AFqQgQ3AgAgD0HYAWpCADcCACAPQdABakKAgICAwAA3AgAgD0HIAWpCBDcCACAPQcABakIANwIAIA9BuAFqQgQ3AgAgD0GwAWpCADcCACAPQagBakKAgICAwAA3AgAgD0GgAWpCBDcCACAPQZgBakIANwIAIA9BkAFqQoCAgIDAADcCACAPQYgBakIENwIAIA9BgAFqQgA3AgAgD0H4AGpCgICAgMAANwIAIA9B8ABqQgQ3AgAgD0HoAGpCADcCACAPQeAAakKAgICAwAA3AgAgD0HYAGpCBDcCACAPQdAAakIANwIAIA9ByABqQoCAgIDAADcCACAPQUBrQgQ3AgAgD0E4akIANwIAIA9BMGpCgICAgMAANwIAIA9BKGpCBDcCACAPQSBqQgA3AgAgD0EYakKAgICAwAA3AgAgD0EQakIENwIAIA9BCGpCADcCACAPQcADaiEPIAhBAWoiCA0ACyADKAIgQQFrIRELIAAgEzYClAQLAkACQAJAAkACQCARRQ0AIAAoAtwDIQ8gMSgCNCECIDEoAjwh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EUEQaikCADcCACACQQhqIBFBCGopAgA3AgAgASECICdBAUsNAAsLIB4gAUE0bGoiASAQKQPgATcCACABIFk4AhggASAQKQOIAzcCHCABQRBqICUpAwA3AgAgAUEIaiAhKQMANwIAIAFBJGogJikDADcCACABQSxqICMpAwA3AgAgFkECRg0GCyAQKgIMIGJgRQRAQcyiwQBBH0HsosEAEKoKAAtBACElAn9BACAWRQ0AGkEAIBMgPE8NABpBACAqRQ0AGkEAICogE0HoAmxqIgIoAgBFDQAaIAJBCGpBACACKAIEIA9GGwshAgJAIBhFDQAgHCA8Tw0AICpFDQAgKiAcQegCbGoiASgCAEUNACABQQhqQQAgASgCBCAXRhshJQtBACERIBBBADYC3AIgEEIENwLUAgJAAkACQAJAAkACQAJAAkACQAJAIAJFDQAgAkHYAmotAABFDQAgFkUNAUEBIREgECgCHEUNACAQKAIQIidBBGshJCATQbnz3fF5bEEFdyAPc0G5893xeWwiAUEZdq1CgYKEiJCgwIABfiGHAUEAISEgECgCFCEeIBAoAighIyAQKAIgISgDQCABIB5xIgEgJ2opAAAihgEghwGFIoUBQoGChIiQoMCAAX0ghQFCf4WDQoCBgoSIkKDAgH+DIYUBA0AghQFQBEAghgEghgFCAYaDQoCBgoSIkKDAgH+DQgBSDQMgASAhQQhqIiFqIQEMAgsgJCCFAXqnQQN2IAFqIB5xQQJ0aygCACImICNPDQQghQFCAX0ghQGDIYUBICggJkEEdGoiJigCACATRw0AICZBBGooAgAgD0cNAAsLQQAhEQsCQAJAICVFDQAgJUHYAmotAABFDQAgGEUNBEEBISEgECgCHEUNASAQKAIQIiRBBGshKCAcQbnz3fF5bEEFdyAXc0G5893xeWwiAUEZdq1CgYKEiJCgwIABfiGHAUEAIScgECgCFCEeIBAoAighIyAQKAIgISwDQCABIB5xIgEgJGopAAAihgEghwGFIoUBQoGChIiQoMCAAX0ghQFCf4WDQoCBgoSIkKDAgH+DIYUBA0AghQFQBEAghgEghgFCAYaDQoCBgoSIkKDAgH+DQgBSDQQgASAnQQhqIidqIQEMAgsgKCCFAXqnQQN2IAFqIB5xQQJ0aygCACImICNPDQcghQFCAX0ghQGDIYUB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GCAAICs4AhQgACAoOAIQIAAgJzgCDCAAICk4AgggACAqOAIEIAAgJDgCAAwZCyABKAIAIgBBgICAgHw2AiAgAEGAgICAfDYCHCAAICc4AgwgACApOAIIIAAgKjgCBCAAICQ4AgAgACA1OAIYIABBFGogKzgCACAAQRBqICg4AgAMGAsgAiADEJ0JIQwgBCAFEJ0JIQkgDEUNGCAJRQ0YIAcgARCgAg0YIAggASoCDCIpOALcByAIIAEqAggiK4w4AtgHIAggASoCBCIojDgC1AcgCCABKgIAIieMOALQByAIICkgJyABQRRqKgIAIiWUICggASoCECIklJMiISAhkiImlCAoICggAUEYaioCACIjlCArICWUkyIhICGSIiKUICcgKyAklCAnICOUkyIhICGSIiGUk5IgI5M4AugHIAggKSAhlCAnICaUICsgIpSTkiAlkzgC5AcgCCApICKUICsgIZQgKCAmlJOSICSTOALgByAIQYAFaiAMIAkgARDVASAIKgKABSIiIAZeDQogCEHoBWogCSAMIAhB0AdqENUBAkAgCCoC6AUiKiAGXg0AIAhBoAZqIAwgCSABEOgBIAgqAqAGIiEgBl4NACAIQeAGaiAIQYgFaikCADcDACAIIAgpAoAFNwPYBiAiICpdICEgKl1xDQwgISAiXkUNFSAIQeAGaiAIQagGaikCADcDACAIIAgpAqAGNwPYBgwVCyAHQYQBakEANgIADBgLIAIgAxCfCSEJIAQgBRCfCSEDIAlFDRcgA0UNFyAJKgIUITEgCSoCDCEyIAkqAhAhNSAJKgIIITkgCSoCACEuIAkqAgQhMyADKgIEIiogASoCACIvlCADKgIAIiQgASoCBCIwlJMiISAhkiEnICQgASoCCCItlCADKgIIIiIgL5STIiEgIZIhKSAIQSBqIgAgAUEYaioCACImICIgASoCDCIrICeUIC8gKZQgMCAiIDCUICogLZSTIiEgIZIiIZSTkpKSOAIIIAAgAUEUaioCACIjICogKyAplCAtICGUIC8gJ5STkpKSOAIEIAAgASoCECIiICQgKyAhlCAwICeUIC0gKZSTkpKSOAIAIC8gA0EQaioCACIplCAwIAMqAgwiKpSTIiEgIZIhKCAtICqUIC8gA0EUaioCACIklJMiISAhkiEnIABBFGogJiAkICsgKJQgLyAnlCAwIDAgJJQgLSAplJMiISAhkiIhlJOSkpI4AgAgAEEQaiAjICkgKyAnlCAtICGUIC8gKJSTkpKSOAIAIAAgIiAqICsgIZQgMCAolCAtICeUk5KSkjgCDCAIKgIsIiogCCoCICIrkyIsICyUIAhBMGoqAgAiJCAIKgIkIiiTIjQgNJSSIAhBNGoqAgAiJiAIKgIoIimTIi8gL5SSITpBACEFAn0CQCAyIC6TIjAgMJQgNSAzkyItIC2UkiAxIDmTIiMgI5SSIjZDAAAANF8iAEUNACA6QwAAADRfRQ0AQwAAAAAhI0EAIQRDAAAAAAwBCyAsIC4gK5MiJZQgNCAzICiTIiKUkiAvIDkgKZMiIZSSIScCQAJAAkACQAJAAkACQAJAAkAgAEUEQCAwICWUIC0gIpSSICMgIZSSITcgOkMAAAA0Xw0BQwAAAAAhJSA2IDqUIjggMCAslCAtIDSUkiAjIC+UkiItIC2UIiKTIiFDAAAANF5FDQQgIYtDAAAANF8NBEMAAMB/QwAAgD8gOJggOCA4XBtDAADAf0MAAIA/ICKYICIgIlwbXA0DIDi8IgIgIrwiAEsNAiAAIAJrQQVPDQMMBAtDAAAAACEjQQAhBEMAAAAAICcgOpUiLEMAAAAAXkUNCRogLEMAAIA/ICxDAACAP10bISwMCAtDAAAAACEsIDeMIDaVIiVDAAAAAF5FDQMgJUMAAIA/ICVDAACAP10bISUMBgsgAiAAa0EFSQ0BCyAtICeUIDcgOpSTICGVIiFDAACAPyAhQwAAgD9dG0MAAAAAICFDAAAAAF4bISULICcgLSAllJIgOpUiLEMAAAAAXUUEQCAsQwAAgD9eRQ0EQwAAAAAhIyAtIDeTIDaVIixDAAAAAF5FDQIgLEMAAIA/ICxDAACAP10bISVDAACAPyEsDAQLQwAAAAAhLCA3jCA2lSIlQwAAAABeDQILQQAhBEMAAAAAISNDAAAAAAwEC0EAIQRDAQAAAAwDCyAlQwAAgD8gJUMAAIA/XRshJQtDAAAAACEjQQAhBCAlQwAAAABbDQAgJUMAAIA/WwRAQwEAAAAhIwwBC0MAAIA/ICWTISNBASEEC0MAAAAAICxDAAAAAFsNABpDAQAAACAsQwAAgD9bDQAaQQEhBUMAAIA/ICyTCyEhIAggJTgC2AcgCCAjOALUByAIIAQ2AtAHIAggLDgC6AEgCCAhOALkASAIIAU2AuABIAhBoAZqIAhB0AdqENEIIAhB2AZqIAhB4AFqENEIAn0gKSAIKgLYBiIllCAmIAgqAtwGIiOUkiInIDkgCCoCoAYiIpQgMSAIKgKkBiIhlJIiKZMiMSAxlCArICWUICogI5SSIiYgLiAilCAyICGUkiIqkyIrICuUICggJZQgJCAjlJIiIyAzICKUIDUgIZSSIiWTIiggKJSSkiIhQwAAgCheRQRAQwAAgD8hJEMAAAAAISJDAAAAAAwBCyAxICEQmwEiIZUhIiAoICGVISQgKyAhlQshISArICGUICggJJSSIDEgIpSSIAkqAhgiLpMgAyoCGCIzkyIwIAZfRQRAIAdBhAFqQQA2AgAMGAsgASoCACE2IAEqAgghNyABKgIEITggASoCDCE5QQAhAyMAQSBrIgAkACAAQQA2AgQgAEEgaiQAIDggJiABKgIQkyItlCA2ICMgAUEUaioCAJMiK5STIgYgBpIhNCA3ICuUIDggJyABQRhqKgIAkyIjlJMiBiAGkiEvIDMgOSAkIDaUICEgOJSTIgYgBpIiMZQgOCAiIDiUICQgN5STIgYgBpIiMpQgNiAhIDeUICIgNpSTIgYgBpIiKJSTkiAikyImlCAjIDkgNJQgOCAvlCA2IDYgI5QgNyAtlJMiBiAGkiInlJOSkpIhNSAzIDkgKJQgNiAxlCA3IDKUk5IgJJMiI5QgKyA5ICeUIDYgNJQgNyAvlJOSkpIhKyAzIDkgMpQgNyAolCA4IDGUk5IgIZMiBpQgLSA5IC+UIDcgJ5QgOCA0lJOSkpIhKCAHQfwAaiEAICkgIiAulJIhJyAlICQgLpSSISkgKiAhIC6UkiElIAdBhAFqKAIARQRAIAdBgAFqKAIARQRAIABBABChBiAHKAKEASEDCyAHIANBAWo2AoQBIAcoAnwgA0EwbGoiAEEANgIsIABCADcCJCAAQYCAgIB8NgIgIABBgICAgHw2AhwgACAwOAIYIAAgNTgCFCAAICs4AhAgACAoOAIMIAAgJzgCCCAAICk4AgQgACAlOAIADBMLIAAoAgAiAEGAgICAfDYCICAAQYCAgIB8NgIcIAAgKDgCDCAAICc4AgggACApOAIEIAAgJTgCACAAIDA4AhggAEEUaiA1OAIAIABBEGogKzgCAAwSCyAJQf8BcQ0BCyACIAMQnAkiAARAIAggASoCDCIqOAIsIAggASoCCCIojDgCKCAIIAEqAgQiJ4w4AiQgCCABKgIAIimMOAIgIAggKiApIAFBFGoqAgAiJZQgJyABKgIQIiSUkyIhICGSIiaUICcgJyABQRhqKgIAIiOUICggJZSTIiEgIZIiIpQgKSAoICSUICkgI5STIiEgIZIiIZSTkiAjkzgCOCAIICogIZQgKSAmlCAoICKUk5IgJZM4AjQgCCAqICKUICggIZQgJyAmlJOSICSTOAIwIAhBIGogBCAFQTBqKAIAIAAqAgAgBiAHQQEQ4AEMFgsgBCAFEJwJIgBFDRUgASACIANBMGooAgAgACoCACAGIAdBABDgAQwVCwJAIABBBGsOBAADAwIDCyAJQf8BcUEBaw4HAAMDAwMDBAMLIAIgAxCdCSIJQQAgBCAFEKEJIgAbDQcgAiADEKEJIQIgBCAFEJ0JIQAgAkUNEyAARQ0TIAggASoCDCIqOAIsIAggASoCCCIojDgCKCAIIAEqAgQiJ4w4AiQgCCABKgIAIimMOAIgIAggKiApIAFBFGoqAgAiJZQgJyABKgIQIiSUkyIhICGSIiaUICcgJyABQRhqKgIAIiOUICggJZSTIiEgIZIiIpQgKSAoICSUICkgI5STIiEgIZIiIZSTkiAjkzgCOCAIICogIZQgKSAmlCAoICKUk5IgJZM4AjQgCCAqICKUICggIZQgJyAmlJOSICSTOAIwIAhBIGogASAAIAIgBiAHQQEQNgwTCyAIQSBqIAQgBSgCsAERAAAgCCgCICIFRQ0HIAgqAighISAIKAIkIQQgAiADEJ4JIgBFDQggASAAIAUgBCAhIAYgB0EAEJMBDBILIAlB/wFxQQdGDQELIAhBCGogAiADKAKwAREAACAIQRRqIAQgBSgCsAERAABBASEQIAgoAggiGUUNECAIKAIUIhpFDRBBACEQIAgqAhwhMSAIKAIYIR0gCCoCECEyIAgoAgwhHiAHIAEQoAINECAHKgKIASImICaUIAdBjAFqKgIAIiMgI5SSIAdBkAFqKgIAIiIgIpSSIiFDAACAKF5FDQEgIRCbASEhIAhBIGoQnQogCCAmICGVOAK8AiAiICGVISQgIyAhlQwKCyAIQeABaiACIAMoArABEQAAIAgoAuABIgNFDQYgCCoC6AEhIiAIKALkASECIAggASoCDCIpOAIsIAggASoCCCIrjDgCKCAIIAEqAgQiKIw4AiQgCCABKgIAIieMOAIgIAggKSAnIAFBFGoqAgAiKpQgKCABKgIQIiWUkyIhICGSIiSUICggKCABQRhqKgIAIiaUICsgKpSTIiEgIZIiI5QgJyArICWUICcgJpSTIiEgIZIiIZSTkiAmkzgCOCAIICkgIZQgJyAklCArICOUk5IgKpM4AjQgCCApICOUICsgIZQgKCAklJOSICWTOAIwIAQgBRCeCSIARQ0HIAhBIGogACADIAIgIiAGIAdBARCTAQwPCyAIQSBqEJ0KIAEqAhAiJiAmlCABQRRqKgIAIiMgI5SSIAFBGGoqAgAiIiAilJIiIUMAAIAoXg0HIAhBgICA/AM2ArwCQwAAAAAMCAsgB0GEAWpBADYCAAwNCyAIQdgGaiICQQxqICkgKCAIKgLsBSIllCAnIAhB6AVqIgBBCGoqAgAiJJSTIiEgIZIiJpQgJyAnIABBDGoqAgAiI5QgKyAllJMiISAhkiIilCAoICsgJJQgKCAjlJMiISAhkiIhlJOSICOTOAIAIAJBCGogKSAilCArICGUICcgJpSTkiAkkzgCACAIICo4AtgGIAggKSAhlCAoICaUICsgIpSTkiAlkzgC3AYMCAsgCCABKgIMIio4AiwgCCABKgIIIiiMOAIoIAggASoCBCInjDgCJCAIIAEqAgAiKYw4AiAgCCAqICkgAUEUaioCACIllCAnIAEqAhAiJJSTIiEgIZIiJpQgJyAnIAFBGGoqAgAiI5QgKCAllJMiISAhkiIilCApICggJJQgKSAjlJMiISAhkiIhlJOSICOTOAI4IAggKiAhlCApICaUICggIpSTkiAlkzgCNCAIICogIpQgKCAhlCAnICaUk5IgJJM4AjAgASAIQSBqIAkgACAGIAdBABA2DAsLQQEhEAwKC0H0wsAAQStBzMTAABCqCgALQQEhEAwIC0H0wsAAQStB3MTAABCqCgALIAggJiAhEJsBIiGVOAK8AiAiICGVISQgIyAhlQshISAIICQ4AsQCIAggITgCwAIgCEHYBmoiAiAZIAhBvAJqIB4oAgwiHxEBACAIIAgqAsQCjDgC6AEgCCAIKgLAAow4AuQBIAggCCoCvAKMOALgASAIQdAHaiIAIBogASAIQeABaiIDIB0oAhQiIBECACADIAIgABCVCSAIQSBqIgBBGGogCEHoAWopAgA3AgAgAEEgaiAIQfABaikCADcCACAIQcgAaiADQRhqKQIANwIAIAhB0ABqIANBIGooAgA2AgAgCEEANgLcASAIQQA2AswBIAggCCkC4AE3AjAgMiAGkiAxkiEqQwAAoDUQmwEhIyAIQYAFaiAAED8CQAJAAkACQAJAAn0CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAgqAoAFIiQgJJQgCCoChAUiJiAmlJIgCCoCiAUiBiAGlJIiJUMAAAAAXkUNACAlEJsBISwgJUMAAMgrXkUNACAkjCAslSEhICaMICyVIS4gBowgLJUhLEP//39/ISJBkM4AIQIDQCAIIAaMICUQmwEiBpU4AvAFIAggJowgBpU4AuwFIAggJIwgBpU4AugFIAYgImANAiAIQaAGaiIDIBkgCEHoBWogHxEBACAIIAgqAvAFjDgC2AcgCCAIKgLsBYw4AtQHIAggCCoC6AWMOALQByAIQdgGaiIAIBogASAIQdAHaiAgEQIAIAhB4AFqIAMgABCVCSAIKgLoBSImIAgqAuABlCAIKgLsBSIlIAgqAuQBlJIgCCoC8AUiIiAIKgLoAZSSIiQgJFwNA0EDIQMgJIwgKl4NFwJAIAYgJJIgIyAGlF9FBEAgCEEgaiAIQeABahCwAkUNGCAIKgLwBSEsIAgqAuwFIS4gCCoC6AUhISAIQYAFaiAIQSBqED8gCCgC3AFBA0cEQCACQQFrIgINAkMAAIA/ISZDAAAAACEiQwAAAAAhJQwaCyAkQwAAoLVfRQ0DQQEhAyAIQdAHaiAIQSBqQQEQ0wEgCEHkB2oqAgAhMyAIQeAHaioCACE0IAgqAtwHITUgCCoC2AchIiAIKgLUByElIAgqAtAHISYMGQsMFwsgBiEiIAgqAoAFIiQgJJQgCCoChAUiJiAmlJIgCCoCiAUiBiAGlJIiJUMAAMgrXg0ACwsgCEHwAmpCADcCACAIQcgCaiICQSBqIgBCgICAgMAANwIAIAJBEGpCADcCACAIQgQ3AuACIAhCgICAgMAANwLQAiAIQgQ3AsgCIAJBADYCCCACQSxqQQA2AgAgAkEUakEANgIAIABBADYCACACQSRqIRYgCEHUAmohFwJAAkACQCAIKALcASIKQX9HBEAgCkEBaiEMQQAhBQNAIAhB4AFqIgtBIGoiCSECIwBBIGsiAyQAAkAgBSAIQSBqIgAoArwBTQRAIAVBA00NASAFQQRBgLvCABDjCAALIANBFGpCADcCACADQQE2AgwgA0HYusIANgIIIANBtIrCADYCECADQQhqQfC6wgAQ3AoACyADQSBqJAAgAiAAIAVBJGxqQRBqIgJBIGooAgA2AgAgC0EYaiIEIAJBGGopAgA3AwAgC0EQaiIDIAJBEGopAgA3AwAgC0EIaiIAIAJBCGopAgA3AwAgCCACKQIANwPgASAIKALQAiICIAgoAswCRgRAIAhByAJqIAIQpwYgCCgC0AIhAgsgCCgCyAIgAkEkbGoiCyAIKQPgATcCACALQQhqIAApAwA3AgAgC0EQaiADKQMANwIAIAtBGGogBCkDADcCACALQSBqIAkoAgA2AgAgCCACQQFqIgM2AtACIAwgBUEBaiIFRw0AC0MAAIA/IS5DAAAAACEiQwAAAAAhJUMAAAAAISZDAAAAACEhQwAAAAAhLCAKDgQVAgMBAwsgCCgC0AIhAwwCCyADQQFNDQQgA0ECRg0FIANBA00NBiAIKALIAiINKgIEISQgDSoCSCANKgIAIgaTISYgDUEoaioCACAkkyIhIA1B0ABqKgIAIA0qAggiI5MiLpQgDUEsaioCACAjkyIsIA1BzABqKgIAICSTIiKUkyANKgJsIAaTlCAsICaUIA0qAiQgBpMiBiAulJMgDUHwAGoqAgAgJJOUkiAGICKUICEgJpSTIA1B9ABqKgIAICOTlJJDAAAAAF4EQCANQSRqIgQpAgAhOyAEIA1ByABqIhIpAgA3AgAgCEHgAWoiAEEgaiITIARBIGoiDigCADYCACAAQRhqIgsgBEEYaiIKKQIANwMAIABBEGoiDCAEQRBqIgIpAgA3AwAgAEEIaiIJIARBCGoiACkCADcDACAAIBJBCGoiBSkCADcCACACIBJBEGoiBCkCADcCACAKIBJBGGoiAikCADcCACAOIBJBIGoiACgCADYCACAIIDs3A+ABIBIgCCkD4AE3AgAgACATKAIANgIAIAIgCykDADcCACAEIAwpAwA3AgAgBSAJKQMANwIACyAIQQI2AoADIAhCgICAgBA3AvgCIAhBAjYCjAMgCEKBgICAMDcChAMgCEEDNgKYAyAIQoCAgIAgNwKQAyAIQQE2AqQDIAhCgICAgDA3ApwDIAhBAjYCsAMgCEKDgICAEDcCqAMgCEEANgK8AyAIQoOAgIAgNwK0AyAIQQM2AsgDIAhCgICAgBA3AsADIAhBADYC1AMgCEKCgICAEDcCzAMgCEHgAWoiDyANIAMgCEH4AmogCEGoA2oQvwQgCEHYA2oiAEEwaiINIA9BMGoiGCgCADYCACAAQShqIhIgD0EoaiIRKQIANwMAIABBIGoiEyAPQSBqIgwpAgA3AwAgAEEYaiIOIA9BGGoiBCkCADcDACAAQRBqIgUgD0EQaiIDKQIANwMAIABBCGoiACAPQQhqIgIpAgA3AwAgCCAIKQLgATcD2AMgCC0AlAIhCSAPIAgoAsgCIAgoAtACIAhBhANqIAhBtANqEL8EIAhBkARqIgpBMGogGCgCADYCACAKQShqIBEpAgA3AwAgCkEgaiAMKQIANwMAIApBGGogBCkCADcDACAKQRBqIAMpAgA3AwAgCkEIaiACKQIANwMAIAggCCkC4AE3A5AEIAgtAJQCIQsgDyAIKALIAiAIKALQAiAIQZADaiAIQcADahC/BCAIQcgEaiIKQTBqIBgoAgA2AgAgCkEoaiARKQIANwMAIApBIGogDCkCADcDACAKQRhqIAQpAgA3AwAgCkEQaiADKQIANwMAIApBCGogAikCADcDACAIIAgpAuABNwPIBCAILQCUAiEKIA8gCCgCyAIgCCgC0AIgCEGcA2ogCEHMA2oQvwQgCEGABWoiD0EwaiAYKAIANgIAIA9BKGogESkCADcDACAPQSBqIAwpAgA3AwAgD0EYaiAEKQIANwMAIA9BEGogAykCADcDACAPQQhqIAIpAgA3AwAgCCAIKQLgATcDgAUgCC0AlAIhDCAIKALYAiICIAgoAtwCIgRGBEAgFyAEELYGIAgoAtwCIQQgCCgC2AIhAgsgCCgC1AIiAyAEQTRsaiIRIAgpA9gDNwIAIBFBMGogDSgCADYCACARQShqIBIpAwA3AgAgEUEgaiATKQMANwIAIBFBGGogDikDADcCACARQRBqIAUpAwA3AgAgEUEIaiAAKQMANwIAIAggBEEBaiIENgLcAiACIARGBEAgFyACELYGIAgoAtQCIQMgCCgC3AIhBCAIKALYAiECCyADIARBNGxqIgUgCCkDkAQ3AgAgBUEwaiAIQZAEaiIAQTBqKAIANgIAIAVBKGogAEEoaikDADcCACAFQSBqIABBIGopAwA3AgAgBUEYaiAAQRhqKQMANwIAIAVBEGogAEEQaikDADcCACAFQQhqIABBCGopAwA3AgAgCCAEQQFqIgQ2AtwCIAIgBEYEQCAXIAIQtgYgCCgC1AIhAyAIKALcAiEEIAgoAtgCIQILIAMgBEE0bGoiBSAIKQPIBDcCACAFQTBqIAhByARqIgBBMGooAgA2AgAgBUEoaiAAQShqKQMANwIAIAVBIGogAEEgaikDADcCACAFQRhqIABBGGopAwA3AgAgBUEQaiAAQRBqKQMANwIAIAVBCGogAEEIaikDADcCACAIIARBAWoiBTYC3AIgAiAFRgRAIBcgAhC2BiAIKALcAiEFIAgoAtQCIQMLIAMgBUE0bGoiAiAIKQOABTcCACACQTBqIAhBgAVqIgBBMGooAgA2AgAgAkEoaiAAQShqKQMANwIAIAJBIGogAEEgaikDADcCACACQRhqIABBGGopAwA3AgAgAkEQaiAAQRBqKQMANwIAIAJBCGogAEEIaikDADcCACAIIAVBAWoiADYC3AIgCUUNCiAARQ0HIAgoAtACRQ0IIAMqAhggCCgCyAIiACoCAJQgA0EcaioCACAAKgIElJIgA0EgaioCACAAKgIIlJIiBkMAAKC1XQ0VIAaMIQYgCCgC9AIiAyEEIAgoAvACIANGBEAgFiADEKsGIAgoAvQCIQQLIAgoAuwCIg4gBEEDdGoiACAGOAIEQQAhBSAAQQA2AgAgCCAEQQFqNgL0AiAOIANBA3RqIgAqAgQhIiAAKAIAIQkCQCADRQ0AA0BBAEF/IA4gA0EBayIEQQF2IgVBA3RqIgJBBGoqAgAiBiAiXyIAG0EBQQIgABsgBiAiYBtBAWpBAkkEQCADIQUMAgsgDiADQQN0aiACKQIANwIAIAUhAyAEQQFLDQALCyAOIAVBA3RqIgAgIjgCBCAAIAk2AgAMCgsgA0EBTQ0IIAgoAsgCIgBBLGoqAgAgACoCCJMiJUMAAAAAIAAqAiQgACoCAJMiJIsgAEEoaioCACAAKgIEkyImi14iABsiBiAkjCAmIAAbIiMgI5RDAAAAACAljCAAGyIiICKUIAYgBpSSkhCbASIGlSEhIAggJiAhlCAkICIgBpUiLJSTOAKYCCAIICQgIyAGlSIGlCAlICGUkzgClAggCCAlICyUICYgBpSTOAKQCCAIQZAHaiIDIBkgCEGQCGogHxEBACAIIAgqApgIjDgC6AEgCCAIKgKUCIw4AuQBIAggCCoCkAiMOALgASAIQdgGaiICIBogASAIQeABaiIAICARAgAgACADIAIQlQkgCCgC0AIiAiAIKALMAkYEQCAIQcgCaiACEKcGIAgoAtACIQILIAgoAsgCIAJBJGxqIgMgCCkC4AE3AgAgA0EIaiAIQeABaiIAQQhqKQIANwIAIANBEGogAEEQaikCADcCACADQRhqIABBGGopAgA3AgAgA0EgaiAAQSBqKAIANgIAIAggAkEBaiIDNgLQAgsgCEECNgLABSAIQoCAgIAQNwK4BSAIQQE2AswFIAhCgICAgCA3AsQFIAhBATYC2AUgCEKBgICAEDcC0AUgCEEANgLkBSAIQgA3AtwFIAhB4AFqIg0gCCgCyAIgAyAIQbgFaiAIQdAFahC/BCAIQegFaiIAQTBqIhIgDUEwaiITKAIANgIAIABBKGoiDiANQShqIgspAgA3AwAgAEEgaiIKIA1BIGoiBSkCADcDACAAQRhqIgwgDUEYaiIEKQIANwMAIABBEGoiCSANQRBqIgIpAgA3AwAgAEEIaiIDIA1BCGoiACkCADcDACAIIAgpAuABNwPoBSANIAgoAsgCIAgoAtACIAhBxAVqIAhB3AVqEL8EIAhBoAZqIg1BMGogEygCADYCACANQShqIAspAgA3AwAgDUEgaiAFKQIANwMAIA1BGGogBCkCADcDACANQRBqIAIpAgA3AwAgDUEIaiAAKQIANwMAIAggCCkC4AE3A6AGIAgoAtwCIgIgCCgC2AIiBUYEQCAXIAIQtgYgCCgC2AIhBSAIKALcAiECCyAIKALUAiIEIAJBNGxqIgAgCCkD6AU3AgAgAEEwaiASKAIANgIAIABBKGogDikDADcCACAAQSBqIAopAwA3AgAgAEEYaiAMKQMANwIAIABBEGogCSkDADcCACAAQQhqIAMpAwA3AgAgCCACQQFqIgI2AtwCIAIgBUYEQCAXIAUQtgYgCCgC1AIhBCAIKALcAiECCyAEIAJBNGxqIgMgCCkDoAY3AgAgA0EoaiAIQaAGaiIAQShqKQMANwIAIANBIGogAEEgaikDADcCACADQRhqIABBGGopAwA3AgAgA0EQaiAAQRBqKQMANwIAIANBCGogAEEIaikDADcCACADQTBqIABBMGooAgA2AgAgCCACQQFqNgLcAiAIKAL0AiIDIQUgCCgC8AIgA0YEQCAWIAMQqwYgCCgC9AIhBQsgCCgC7AIiDCAFQQN0akIANwIAIAggBUEBajYC9AIgDCADQQN0aiIAKgIEISEgACgCACEJAkAgA0UEQEEAIQUMAQsDQEEAQX8gDCADQQFrIgRBAXYiBUEDdGoiAkEEaioCACIGICFfIgAbQQFBAiAAGyAGICFgG0EBakECSQRAIAMhBQwCCyAMIANBA3RqIAIpAgA3AgAgBSEDIARBAUsNAAsLIAwgBUEDdGoiACAhOAIEIAAgCTYCACAIKAL0AiIDIQUgCCgC8AIgA0YEQCAWIAMQqwYgCCgC9AIhBQsgCCgC7AIiACAFQQN0akIBNwIADAkLQQEhAyAIQeABaiAIQSBqQQEQ0wEgCEH0AWoqAgAhMyAIQfABaioCACE0IAgqAuwBITUgCCoC6AEhIiAIKgLkASElIAgqAuABISYMFAtBjPTAAEEoQaD1wAAQqgoAC0EBIANB/PDAABDjCAALQQJBAkGM8cAAEOMIAAtBAyADQZzxwAAQ4wgAC0EAQQBBrPHAABDjCAALQQBBAEG88cAAEOMIAAtBASADQazywAAQ4wgACwJAIAtFDQACQCAIKALcAiIAQQJPBEAgCCgC0AIiAEEBTQ0BIAgoAtQCIgJBzABqKgIAIAgoAsgCIgAqAiSUIAJB0ABqKgIAIABBKGoqAgCUkiACQdQAaioCACAAQSxqKgIAlJIiBkMAAKC1XQ0NIAaMIQYgCCgC9AIiAyEFIAgoAvACIANGBEAgFiADEKsGIAgoAvQCIQULIAgoAuwCIgsgBUEDdGoiACAGOAIEIABBATYCACAIIAVBAWo2AvQCIAsgA0EDdGoiACoCBCEiIAAoAgAhCQJAIANFBEBBACEFDAELA0BBAEF/IAsgA0EBayIEQQF2IgVBA3RqIgJBBGoqAgAiBiAiXyIAG0EBQQIgABsgBiAiYBtBAWpBAkkEQCADIQUMAgsgCyADQQN0aiACKQIANwIAIAUhAyAEQQFLDQALCyALIAVBA3RqIgAgIjgCBCAAIAk2AgAMAgtBASAAQczxwAAQ4wgAC0EBIABB3PHAABDjCAALAkAgCkUNAAJAIAgoAtwCIgBBA08EQCAIKALQAiIAQQJNDQEgCCgC1AIiAkGAAWoqAgAgCCgCyAIiACoCSJQgAkGEAWoqAgAgAEHMAGoqAgCUkiACQYgBaioCACAAQdAAaioCAJSSIgZDAACgtV0NDSAGjCEGIAgoAvQCIgMhBSAIKALwAiADRgRAIBYgAxCrBiAIKAL0AiEFCyAIKALsAiIKIAVBA3RqIgAgBjgCBCAAQQI2AgAgCCAFQQFqNgL0AiAKIANBA3RqIgAqAgQhIiAAKAIAIQkCQCADRQRAQQAhBQwBCwNAQQBBfyAKIANBAWsiBEEBdiIFQQN0aiICQQRqKgIAIgYgIl8iABtBAUECIAAbIAYgImAbQQFqQQJJBEAgAyEFDAILIAogA0EDdGogAikCADcCACAFIQMgBEEBSw0ACwsgCiAFQQN0aiIAICI4AgQgACAJNgIADAILQQIgAEHs8cAAEOMIAAtBAiAAQfzxwAAQ4wgACyAMRQ0BIAgoAtwCIgBBBEkNAyAIKALQAiIAQQNNDQIgCCgC1AIiAkG0AWoqAgAgCCgCyAIiACoCbJQgAkG4AWoqAgAgAEHwAGoqAgCUkiACQbwBaioCACAAQfQAaioCAJSSIgZDAACgtV0NCiAGjCEGIAgoAvQCIgMhBSAIKALwAiADRgRAIBYgAxCrBiAIKAL0AiEFCyAIKALsAiIAIAVBA3RqIgIgBjgCBCACQQM2AgALIAggBUEBajYC9AIgACADQQN0aiICKgIEISEgAigCACEMAkAgA0UEQEEAIQUMAQsDQEEAQX8gACADQQFrIglBAXYiBUEDdGoiBEEEaioCACIGICFfIgIbQQFBAiACGyAGICFgG0EBakECSQRAIAMhBQwCCyAAIANBA3RqIAQpAgA3AgAgBSEDIAlBAUsNAAsLIAAgBUEDdGoiACAMNgIAIAAgITgCBAsCQCAIKAL0AiIJBEAgCCgC7AIiAA0BC0H0wsAAQStBvPLAABCqCgALIAhB2AZqIgJBJGohDSACQRhqIRggAkEMaiESIAAoAgAhFEP//39/IS5BACERA0AgCCgC7AIhCwNAIAggCUEBayIMNgL0AiALIAxBA3RqIgAqAgQhBiAAKAIAIQACQCAMRQRAIAAhAyAGISEMAQsgCyoCBCEhIAsgBjgCBCALKAIAIQMgCyAANgIAAkACQAJAIAlBBE8EQCAMQQJrIgJBACACIAxNGyEKQQAhBEEBIQUDQCALIARBA3RqIAsgBUEAQX8gCyAFQQN0aiICQQRqKgIAIiMgAkEMaioCACIiYCICG0EBQQIgAhsgIiAjYBtBAWpBAklqIgJBA3RqIhApAgA3AgAgAiEEIAogAkEBdEEBciIFTw0ACyAFIAlBAmtHDQIMAQtBACECQQEhBSAMQQJHDQILIAsgAkEDdGogCyAFQQN0aiIQKQIANwIAIAUhAgsgECAGOAIEIBAgADYCACACIQUDQEEAQX8gCyAFQQFrIgpBAXYiAkEDdGoiCUEEaioCACIiIAZfIgQbQQFBAiAEGyAGICJfG0EBakECSQRAIAUhAgwCCyALIAVBA3RqIAkpAgA3AgAgAiEFIApBAUsNAAsLIAsgAkEDdGoiAiAGOAIEIAIgADYCAAsgCCgC3AIiBCADTQ0EIAhBmAhqIgAgA0E0bCIFIAgoAtQCaiIKQRRqKAIANgIAIAggCikCDDcDkAggCEGYB2oiCSAKQSBqKAIANgIAIAggCikCGDcDkAcgCEHoAWoiEyAKQSxqKAIANgIAIAotADAhAiAKKQIAITwgCikCJCE7IAhB4AZqIApBCGooAgA2AgAgCCA7NwPgASAIIDw3A9gGIBJBCGogACgCADYCACASIAgpA5AINwIAIBhBCGogCSgCADYCACAYIAgpA5AHNwIAIA1BCGogEygCADYCACANIAgpA+ABNwIAIAggAjoAiAcgAkUEQCAIQYQIaiICIBkgGCAfEQEAIAggCCoC+AaMOALoASAIIAgqAvQGjDgC5AEgCCAIKgLwBow4AuABIAhBkAhqIgAgGiABIAhB4AFqICARAgAgCEGQB2ogAiAAEJUJIAgoAtACIhwiAiAIKALMAkYEQCAIQcgCaiAcEKcGIAgoAtACIQILIAgoAsgCIAJBJGxqIgQgCCkCkAc3AgAgBEEgaiAIQZAHaiIAQSBqKAIANgIAIARBGGogAEEYaikCADcCACAEQRBqIABBEGopAgA3AgAgBEEIaiAJKQIANwIAIAggAkEBaiICNgLQAiADIBQgCCoCkAcgCCoC8AaUIAgqApQHIAgqAvQGlJIgCSoCACAIKgL4BpSSIgYgLl0iABshFCAIKALcAiEEAkACQAJAAkAgISAGIC4gABsiLpJDAABIN11FBEAgAyAETw0EIAgoAtQCIAVqQQE6ADAgCCgC5AYiAiAIKALcAiIATw0DIAgoAtQCIAJBNGxqIAgoAtgGEPwIIQMgCCgC6AYiAiAIKALcAiIATw0CIAgoAtQCIAJBNGxqIAgoAtwGEPwIIQIgCCgC7AYiBCAIKALcAiIATw0BIAgoAtQCIARBNGxqIAgoAuAGEPwIIQAgCEHIAmoiBCAcIAgoAuQGIAMQ3QEgBCAcIAgoAugGIAIQ3QEgBCAcIAgoAuwGIAAQ3QEgCCgC6AIiAEUNECAhjCEiIAgoAtwCIQ8gCCgC4AIiECAAQQN0aiEOA0ACQAJAIAgoAtwCIhUgECgCACIASwRAIAgoAtQCIABBNGxqIgItADANAiAIIBw2AsAHIAggFUEBazYCzAcgCCAVQQFqNgLIByAIIAA2AsQHIAggAiAQKAIEIgBBAWpBA3BBAnRqKAIANgK8ByAIIAIgAEECakEDcEECdGooAgA2ArgHIAhB4AFqIgMgCCgCyAIgCCgC0AIgCEG4B2ogCEHEB2oQvwQgCEHQB2oiAEEwaiILIANBMGooAgA2AgAgAEEoaiIKIANBKGopAgA3AwAgAEEgaiIMIANBIGopAgA3AwAgAEEYaiIJIANBGGopAgA3AwAgAEEQaiIFIANBEGopAgA3AwAgAEEIaiIEIBMpAgA3AwAgCCAIKQLgATcD0AcgCC0AlAIhAyACIBAoAgRBAWpBA3BBAnRqQQxqIBU2AgAgCCgC3AIiAiAIKALYAkYEQCAXIAIQtgYgCCgC3AIhAgsgCCgC1AIiACACQTRsaiIbIAgpA9AHNwIAIBtBMGogCygCADYCACAbQShqIAopAwA3AgAgG0EgaiAMKQMANwIAIBtBGGogCSkDADcCACAbQRBqIAUpAwA3AgAgG0EIaiAEKQMANwIAIAggAkEBaiICNgLcAiADDQEMAgsgACAVQbzzwAAQ4wgACwJAIAIgFUsEQCAAIBVBNGxqIgQoAgAiACAIKALQAiIDTw0BAkACQCAAQSRsIAgoAsgCIgBqIgIqAgAgBCoCGJQgAioCBCAEQRxqKgIAlJIgAioCCCAEQSBqKgIAlJIiBiAiXUUEQCAGQwAAoLVdDRcgBowhBiAIKAL0AiIDIQQgCCgC8AIgA0YEQCAWIAMQqwYgCCgC9AIhBAsgCCgC7AIiDCAEQQN0aiIAIAY4AgQgACAVNgIAIAggBEEBajYC9AIgDCADQQN0aiIAKgIEISMgACgCACEJIAMNAUEAIQUMAgsgCEHgAWogCEHYBmogACADEO8DIAhB9AFqKgIAITMgCEHwAWoqAgAhNCAIKgL4BiEsIAgqAvQGIS4gCCoC8AYMEwsDQEEAQX8gDCADQQFrIgRBAXYiBUEDdGoiAkEEaioCACIGICNfIgAbQQFBAiAAGyAGICNgG0EBakECSQRAIAMhBQwCCyAMIANBA3RqIAIpAgA3AgAgBSEDIARBAUsNAAsLIAwgBUEDdGoiACAjOAIEIAAgCTYCAAwCCyAVIAJBzPPAABDjCAALIAAgA0Hc88AAEOMIAAsgDiAQQQhqIhBHDQALIAgoAtwCIgAgD0YNEAJAIAAgD0sEQCAIKALUAiAPQTRsakEUaiAAQQFrNgIAIAgoAtwCIgBFDQEgCCgC1AIgAEE0bGpBJGsgDzYCACAIQQA2AugCIBFBkM4ARg0SIBFBAWohESAIKAL0AiIJRQ0NDAkLIA8gAEGc88AAEOMIAAtB9MLAAEErQazzwAAQqgoACyAEIBRNBEAgFCAEQezzwAAQ4wgACyAIQeABaiAIKALUAiAUQTRsaiIAIAgoAsgCIAIQ7wMgAEEgaioCACEsIABBHGoqAgAhLiAIQfQBaioCACEzIAhB8AFqKgIAITQgACoCGAwMCyAEIABBjPPAABDjCAALIAIgAEH88sAAEOMIAAsgAiAAQezywAAQ4wgACyADIARB3PLAABDjCAALIAwiCQ0ACwsMBAtBAyAAQZzywAAQ4wgAC0EDIABBjPLAABDjCAALIAMgBEHM8sAAEOMIAAsgCCgC3AIhBAsgBCAUTQ0CIAhB4AFqIAgoAtQCIBRBNGxqIgAgCCgCyAIgCCgC0AIQ7wMgAEEgaioCACEsIABBHGoqAgAhLiAIQfQBaioCACEzIAhB8AFqKgIAITQgACoCGAshISAIKgLsASE1IAgqAugBISIgCCoC5AEhJSAIKgLgASEmCyAIKALMAgRAIAgoAsgCEJoCCyAIKALYAgRAIAgoAtQCEJoCCyAIKALkAgRAIAgoAuACEJoCCyAIKALwAgRAIAgoAuwCEJoCC0EBIQMMAwsgFCAEQfzzwAAQ4wgACyAIKALMAgRAIAgoAsgCEJoCCyAIKALYAgRAIAgoAtQCEJoCCyAIKALkAgRAIAgoAuACEJoCCyAIKALwAgRAIAgoAuwCEJoCC0EDIQNDAACAPyEmQwAAAAAhIkMAAAAAISUMAQsgCEHQB2ogCEEgakEAENMBIAhB5AdqKgIAITMgCEHgB2oqAgAhNCAIKgLcByE1IAgqAtgHISIgCCoC1AchJSAIKgLQByEmQQEhAyAIKgLwBSEsIAgqAuwFIS4gCCoC6AUhIQsgBygCfCEFQQQhAgJAAkACQAJAAkACf0EAIAdBhAFqKAIAIgtFDQAaIAtBqtWqFUsNCCALQTBsIgRBAEgNCEEAIARFDQAaQZH7wwAtAAAaIARBBBCCDCICRQ0BIAQLIQAgAiAFIAAQiA0hAiAHQQA2AoQBQwAAAAAhBkMAAAAAISRDAAAAACEjAkACQAJAIANBAWsOAwACAQILIAggLjgC3AYgCCAhOALYBiAIICw4AuAGIAggASoCDCIrIC4gASoCACIvlCAhIAEqAgQiMJSTIgYgBpIiJJQgMCAsIDCUIC4gASoCCCItlJMiBiAGkiIjlCAvICEgLZQgLCAvlJMiBiAGkiIGlJOSICyTOALYByAIICsgBpQgLyAklCAtICOUk5IgLpM4AtQHIAggKyAjlCAtIAaUIDAgJJSTkiAhkzgC0AcgCEHgAWoiBBCHCSAIQSBqIgMQhwkgGSAIQdgGaiIAIAQgHigCHBEBACAaIAhB0AdqIAMgHSgCHBEBACABKgIQIQYgASAAIAQgAyAqIAdBABAoIBkgHigCIBEEAEUNAwwECyAmIQYgJSEkICIhIwsgByAjOAKQASAHICQ4AowBIAcgBjgCiAEMBAtBBCAEQdCBxAAoAgAiAEGXByAAGxEAAAALIBogHSgCIBEEAA0AIAcoAoQBIQQgBygCfCEFDAELIDAgNSAGkyIplCAvIDQgAUEUaioCAJMiJJSTIgYgBpIhKCAtICSUIDAgMyABQRhqKgIAkyIjlJMiBiAGkiEnICMgKyAolCAwICeUIC8gLyAjlCAtICmUkyIGIAaSIgaUk5KSISogJCArIAaUIC8gKJQgLSAnlJOSkiEkICkgKyAnlCAtIAaUIDAgKJSTkpIhIyAsIDMgIpOUIC4gNCAlk5QgISA1ICaTlJKSIQYgBygChAEiAyAHQYABaigCAEYEQCAHQfwAaiADEKEGIAcoAoQBIQMLIAcgA0EBaiIENgKEASAHKAJ8IgUgA0EwbGoiAEIANwIcIAAgBjgCGCAAICo4AhQgACAkOAIQIAAgIzgCDCAAICI4AgggACAlOAIEIAAgJjgCACAAQSRqQgA3AgAgAEEsakEANgIACyAHQYgBaiEJAkAgMkMAAAAAWyAxQwAAAABbcQ0AIARFDQAgBSAEQTBsaiEBIDIgMZIhIiAFIQMDQCAIKgLgBiEhIAgqAtwGIQYgAyAyIAgqAtgGlCADKgIAkjgCACADQQRqIgAgMiAGlCAAKgIAkjgCACADQQhqIgAgMiAhlCAAKgIAkjgCACAIKgLYByEhIAgqAtQHIQYgA0EMaiIAIDEgCCoC0AeUIAAqAgCSOAIAIANBEGoiACAxIAaUIAAqAgCSOAIAIANBFGoiACAxICGUIAAqAgCSOAIAIANBGGoiACAAKgIAICKTOAIAIAEgA0EwaiIDRw0ACwsgCSAIKQLYBjcCACAHIAgpAtAHNwKUASAJQQhqIAhB4AZqKAIANgIAIAdBnAFqIAhB2AdqKAIANgIAIARFDQAgC0UEQEEAIRAMBwsgBSAEQTBsaiEJIAtBMGwiASACaiEHIAJBJGohDCACQTBqIQAgAUEwayIEQTBuQQFxIQEDQCAFQSRqIQ4gBSgCHCEKAn8gAiABDQAaIAAgCiACKAIcRw0AGiAAIAUoAiAgAigCIEcNABogDiAMKQIANwIAIA5BCGogDEEIaigCADYCACAACyEDIARBME8EQANAAkAgCiADQRxqKAIARw0AIAUoAiAgA0EgaigCAEcNACAOQQhqIANBLGooAgA2AgAgDiADQSRqKQIANwIACwJAIAogA0HMAGooAgBHDQAgBSgCICADQdAAaigCAEcNACAOQQhqIANB3ABqKAIANgIAIA4gA0HUAGopAgA3AgALIAcgA0HgAGoiA0cNAAsLIAkgBUEwaiIFRw0ACwtBACEQIAtFDQUgAhCaAgwFCyAHIAY4ApQBIAcgITgCiAEgB0GcAWogJjgCACAHQZgBaiAjOAIAIAdBkAFqICI4AgAgB0GMAWogJDgCAAwECyAHKAJ8IQNBBCEFAn9BACAHQYQBaigCACILRQ0AGiALQarVqhVLDQEgC0EwbCICQQBIDQFBACACRQ0AGkGR+8MALQAAGiACQQQQggwiBUUNAiACCyEAIAUgAyAAEIgNIQIgB0EANgKEASAIQdgGaiIDQQhqKgIAISkgCEHkBmoiBCoCACEiIAgqAtwHISogCCoC0AchKyAIKgLcBiElIAgqAtgHISggCCoC1AchJyAIQSBqIgVBCGogBCgCADYCACAIIAgpAtwGNwMgIAhB4AFqIgAgDCAFEPwMIAggKiAlICeUICkgK5STIiEgIZIiJJQgKyAiICuUICUgKJSTIiEgIZIiJpQgJyApICiUICIgJ5STIiEgIZIiIZSTkiAikyIjOALQBCAIICogJpQgKCAhlCArICSUk5IgKZMiIjgCzAQgCCAqICGUICcgJJQgKCAmlJOSICWTIiE4AsgEIAUgCSAIQcgEahD8DCABIANBBHIgACAFIAYgB0EAECggB0GcAWogIzgCACAHQZgBaiAiOAIAIAcgITgClAEgB0GQAWogBCgCADYCACAHIAgpAtwGNwKIASAHKAKEASIABEAgC0UNBCAHKAJ8IgUgAEEwbGohCSALQTBsIgEgAmohByACQSRqIQwgAkEwaiEAIAFBMGsiBEEwbkEBcSEBA0AgBUEkaiEOIAUoAhwhCgJ/IAIgAQ0AGiAAIAogAigCHEcNABogACAFKAIgIAIoAiBHDQAaIA4gDCkCADcCACAOQQhqIAxBCGooAgA2AgAgAAshAyAEQTBPBEADQAJAIAogA0EcaigCAEcNACAFKAIgIANBIGooAgBHDQAgDkEIaiADQSxqKAIANgIAIA4gA0EkaikCADcCAAsCQCAKIANBzABqKAIARw0AIAUoAiAgA0HQAGooAgBHDQAgDkEIaiADQdwAaigCADYCACAOIANB1ABqKQIANwIACyAHIANB4ABqIgNHDQALCyAJIAVBMGoiBUcNAAsLIAtFDQMgAhCaAgwDCxDbCgALQQQgAkHQgcQAKAIAIgBBlwcgABsRAAAACyAHICE4ApQBIAcgBjgCiAEgB0GcAWogJjgCACAHQZgBaiAjOAIAIAdBkAFqICU4AgAgB0GMAWogIjgCAAsgCEGgCGokACAQC9eFAQMWfxF9A34jAEGwAmsiBCQAAkACQAJAAkACQAJAIAJFBEAgAEIANwIQIABCgICAgMAANwIIIABCBDcCAAwBCwJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACQarVqtUASw0AIAJBDGwiFUEASA0AAkACQAJAAkACQAJAAkACQAJAAkACQCAVRQRAQQQhBQwBC0GR+8MALQAAGiAVQQQQggwiBUUNIwsgBSABIBUQiA0iESACQQxsaiEPIBEqAgghHCARKgIEIRogESoCACEbAkAgAkEBRgRAIBwhHSAaIRkgGyEeDAELIBFBDGohBSAbIR4gGiEZIBwhHQNAIB0gBUEIaioCACIfIB0gH2AbIR0gGSAFQQRqKgIAIiAgGSAgYBshGSAcIB8gHCAfXxshHCAaICAgGiAgXxshGiAeIAUqAgAiHyAeIB9gGyEeIBsgHyAbIB9fGyEbIA8gBUEMaiIFRw0ACwsgHSAckkMAAAA/lCEfIBkgGpJDAAAAP5QhICAeIBuSQwAAAD+UISIgHSAckyIcIByUIBkgGpMiGSAZlCAeIBuTIhkgGZSSkhCbASEZIBEhBQNAIAUgBSoCACAikyAZlTgCACAFQQhqIgMgAyoCACAfkyAZlTgCACAFQQRqIgMgAyoCACAgkyAZlTgCACAPIAVBDGoiBUcNAAsgBEEANgIUIARCBDcCDCAEQQA2AiAgBEIENwIYIARBADYCLCAEQgQ3AiQgBEHoAWohCCARIQNDAAAAACEeQwAAAAAhH0MAAAAAISBDAAAAACEdIwBBIGsiDSQAAkAgAgRAIAJBDGwiBiADaiEMIAMqAghEAAAAAAAA8D8gArijtiIZlCEaIAMqAgQgGZQhGyADKgIAIBmUIRwCQCACQQFGDQAgA0EMaiEFAkAgBkEYayIGQQxuQQFxBEAgBSEHIAMhBQwBCyADQRhqIQcgHCADKgIMIBmUkiEcIBogA0EUaioCACAZlJIhGiAbIANBEGoqAgAgGZSSIRsLIAZBDEkNAANAIBwgByoCACAZlJIgB0EMaiIGKgIAIBmUkiEcIBogBUEUaioCACAZlJIgB0EUaioCACAZlJIhGiAbIAVBEGoqAgAgGZSSIAdBEGoqAgAgGZSSIRsgBiEFIAwgB0EYaiIHRw0ACwtDAACAPyACs5UhGQNAIBkgAyoCCCAakyIilCEhICUgIiAhlJIhJSAmIAMqAgQgG5MiIyAhlJIhJiAnIAMqAgAgHJMiJCAhlJIhJyAeICIgGSAjlCIhlJIhHiAfICMgIZSSIR8gICAkICGUkiEgIB0gGSAklCIhICKUkiEdICggIyAhlJIhKCApICQgIZSSISkgDCADQQxqIgNHDQALIAggKTgCDCAIIBo4AgggCCAbOAIEIAggHDgCACAIQSxqICU4AgAgCEEoaiAmOAIAIAhBJGogJzgCACAIQSBqIB44AgAgCEEcaiAfOAIAIAhBGGogIDgCACAIQRRqIB04AgAgCEEQaiAoOAIAIA1BIGokAAwBCyANQRRqQgA3AgAgDUEBNgIMIA1BuKrDADYCCCANQbSKwgA2AhAgDUEIakGoq8MAENwKAAsgBEGYAWogCEEsaigCADYCACAEQfgAaiIFQRhqIARBjAJqIgMpAgA3AwAgBUEQaiAIQRxqIgYpAgA3AwAgBEGAAWogBEH8AWopAgA3AwAgBCAEKQL0ATcDeCAIIAUQPAJAAkACQCAEKAL0AQ4DAAIBAgtBy4/CAEErQZiWwgAQqgoAC0HLj8IAQStBiJbCABCqCgALIARB6AFqIgVBEGopAgAhKiAFQRhqKgIAIRkgBikCACErIAVBKGopAgAhLCADKgIAIRogBEGYAmoqAgAhGyAEKgLoASEcIAQqAuwBIR4gBEE8aiIFQSxqIAQqAvABIh84AgAgBUEoaiAbOAIAIAVBHGoiAyAeOAIAIAVBGGogGjgCACAEICw3AlwgBCArNwJMIAQgHDgCSCAEIBk4AkQgBCAqNwI8IwBBEGshBiAFQQxqKgIAIhogAyoCACIZXQRAIAUpAgAhKiAFIAVBEGoiBykCADcCACAHICo3AgAgBUEIaiIHKQIAISogBSAZOAIMIAcgBUEYaiIHKAIANgIAIAcgKjcCACAZIRogAyoCACEZCyAZIAVBLGoqAgAiG10EQCAFKQIgISogBSAFKQIQNwIgIAZBCGoiByAFQShqIgMoAgA2AgAgAyAFQRhqKQIANwIAIAYgKjcDACAFQRBqIQMCQCAaIBtdRQRAIAMhBQwBCyADIAUpAgA3AgAgA0EIaiAFQQhqKQIANwIACyAFIAYpAwA3AgAgBSAbOAIMIAVBCGogBygCADYCAAsCQAJAAkAgBCoCSCIZQwAAAABbDQAgGYsiGUMAAIB/XARAIBlDlb/WM18NASAZIBlDAAAANJRfDQELIAQqAlgiGUMAAAAAWw0BIBmLIhlDAACAf1wEQCAZQ5W/1jNfDQIgGSAZQwAAADSUXw0CCyAEKgJoIhlDAAAAAFsNAiAZiyIZQwAAgH9cBEAgGUOVv9YzXw0DIBkgGUMAAAA0lF8NAwsgESoCCEQAAAAAAADwPyACuKO2IhmUIRogESoCBCAZlCEbIBEqAgAgGZQhHSACQQFGDQkgEUEMaiEDIAJBDGxBGGsiBkEMbkEBcUUNByADIQUgESEDDAgLQZH7wwAtAAAaQQxBBBCCDCIMRQ0CIAwgASkCADcCACAMQQhqIAFBCGooAgA2AgBBkfvDAC0AABpBGEEEEIIMIgZFDSIgBkIANwIAIAZBEGpCADcCACAGQQhqQgA3AgBBAQweC0EBIQMgAkEBRg0CIAQqAjwiGSABKgIAlCIdIAQqAkAiGyABKgIEIh6UkiAEKgJEIhogASoCCJQiH5IhHCACQQFrIgdBAXEhDQJAIAJBAmsiC0UEQEEAIQYMAQsgAUEQaiEFIAdBfnEhDEEAIQYDQCAZIAVBBGsqAgCUIBsgBSoCAJSSIBogBUEEaioCAJSSIiAgHF4hCCAZIAVBCGoqAgCUIBsgBUEMaioCAJSSIBogBUEQaioCAJSSIiIgICAcIAgbIhxeIQogIiAcIAobIRwgA0EBaiIJIAMgBiAIGyAKGyEGIANBAmohAyAFQRhqIQUgCSAMRw0ACwsgDQRAIAMgBiAZIAEgA0EMbGoiBSoCAJQgGyAFKgIElJIgGiAFKgIIlJIgHF4bIQYLIAIgBk0NAyAEQfABaiABIAZBDGxqIgVBCGooAgA2AgAgBCAFKQIANwPoAUEBIQMgB0EBcSEKIB4gG4wiG5QgHZMgH5MhHAJAIAtFBEBBACEGDAELIAFBEGohBSAHQX5xIQ1BACEGA0AgBSoCACAblCAZIAVBBGsqAgCUkyAaIAVBBGoqAgCUkyIdIBxeIQcgBUEMaioCACAblCAZIAVBCGoqAgCUkyAaIAVBEGoqAgCUkyIeIB0gHCAHGyIcXiEIIB4gHCAIGyEcIANBAWoiCyADIAYgBxsgCBshBiADQQJqIQMgBUEYaiEFIAsgDUcNAAsLIApFDRwgAyAGIAEgA0EMbGoiBSoCBCAblCAZIAUqAgCUkyAaIAUqAgiUkyAcXhshBgwcCyACQQN0IgVBAEgNCkEEIQwgBQRAQZH7wwAtAAAaIAVBBBCCDCIMRQ0kCyAEQQA2AnQgBCACNgJwIAQgDDYCbCAEKgJUIRkgBCoCUCEaIAQqAkwhGyAEKgJEIRwgBCoCQCEdIAQqAjwhHiARIQUDQCAbIAUqAgAiH5QgGiAFQQRqKgIAIiCUkiAZIAVBCGoqAgAiIpSSISEgHiAflCAdICCUkiAcICKUkiEfIAsgBCgCcEYEQCAEQewAaiALEKsGIAQoAmwhDCAEKAJ0IQsLIAsiCEEDdCAMaiIDICE4AgQgAyAfOAIAIAQgCEEBaiILNgJ0IA8gBUEMaiIFRw0ACwwDC0EEQQxB0IHEACgCACIAQZcHIAAbEQAAAAsgBEHwAWogAUEIaigCADYCACAEIAEpAgA3A+gBQQAhBgwZCyAGIAJBgPfCABDjCAALIAQoAmwhBSAEQQA2AswBIARCBDcCxAEgBEEANgLkASAEQgQ3AtwBAkACQAJAAkAgC0EBSwRAIAhB/////wFxIg5BAWoiDUEBcSEJAkAgDkUEQEP//3//IRkgBSEDQQAhBgwBCyANQf7///8DcSEPQ///f/8hGSAFIQNBACEGA0BBAUEBIAogAyoCACADQQRqKgIAQwAAAACUkiIaIBleIgwbIANBCGoqAgAgA0EMaioCAEMAAAAAlJIiGyAaIBkgDBsiGV4iBxshCiAbIBkgBxshGSAGQQFqIAYgECAMGyAHGyEQIANBEGohAyAPIAZBAmoiBkcNAAsLIAkEQEEBIAogAyoCACADQQRqKgIAQwAAAACUkiAZXiIDGyEKIAYgECADGyEQCyAKRQ0BAkACQAJAIAsgEE0EQCANQQFxIQMgDg0BQ///f/8hGUEAIQ5BACEADAILIA1BAXEhDwJAIA5FBEBD//9//yEZQQAhByAFIQNBACEGDAELIA1B/v///wNxIRJD//9//yEZQQAhByAFIQNBACEGA0BBAUEBIAcgA0EEaioCAEMAAACAlCADKgIAkyIaIBleIgobIANBDGoqAgBDAAAAgJQgA0EIaioCAJMiGyAaIBkgChsiGV4iCRshByAGQQFqIAYgDCAKGyAJGyEMIBsgGSAJGyEZIANBEGohAyASIAZBAmoiBkcNAAsLIA8EQEEBIAcgA0EEaioCAEMAAACAlCADKgIAkyAZXiIDGyEHIAYgDCADGyEMCyAHRQ0FIAsgDE0NBgJAIAUgDEEDdGopAgAiKqe+IhogBSAQQQN0aiIJKgIAkyIZIBmUICpCIIinviIbIAkqAgSTIh0gHZSSIhxDAAAAAFwNACANQQFxIRICQCAORQRAQ///f/8hGUEAIQcgBSEDQQAhBgwBCyANQf7///8DcSEUQ///f/8hGUEAIQcgBSEDQQAhBgNAIAMqAgBDAAAAgJQgA0EEaioCAJMiGiAZXiEKIANBCGoqAgBDAAAAgJQgA0EMaioCAJMiGyAaIBkgChsiGV4hDyAbIBkgDxshGUEBQQEgByAKGyAPGyEHIAZBAWogBiAMIAobIA8bIQwgA0EQaiEDIBQgBkECaiIGRw0ACwsgEgRAQQEgByADKgIAQwAAAICUIANBBGoqAgCTIBleIgMbIQcgBiAMIAMbIQwLIAdFDQYgCyAMTQ0HIAUgDEEDdGopAgAiKqe+IhogCSoCAJMiGSAZlCAqQiCIp74iGyAJKgIEkyIdIB2UkiIcQwAAAABcDQAgDUEBcSEPAkAgDkUEQEP//3//IRlBACEHIAUhA0EAIQYMAQsgDUH+////A3EhDkP//3//IRlBACEHIAUhA0EAIQYDQCADKgIAQwAAAACUIANBBGoqAgCSIhogGV4hCiADQQhqKgIAQwAAAACUIANBDGoqAgCSIhsgGiAZIAobIhleIQ0gGyAZIA0bIRlBAUEBIAcgChsgDRshByAGQQFqIAYgDCAKGyANGyEMIANBEGohAyAOIAZBAmoiBkcNAAsLIA8EQEEBIAcgAyoCAEMAAAAAlCADQQRqKgIAkiAZXiIDGyEHIAYgDCADGyEMCyAHRQ0GIAsgDE0NByAFIAxBA3RqKQIAIiqnviIaIAkqAgCTIhkgGZQgKkIgiKe+IhsgCSoCBJMiHSAdlJIhHAsgDCAQRw0CIARB9AFqQgA3AgAgBEEBNgLsASAEQZySwwA2AugBIARBtIrCADYC8AEgBEHoAWpBpJLDABDcCgALIA1B/v///wNxIRFD//9//yEZQQAhDkEAIQADQEEBQQEgDiAFQQRqKgIAQwAAAICUIAUqAgCTIhogGV4iARsgBUEMaioCAEMAAACAlCAFQQhqKgIAkyIbIBogGSABGyIZXiICGyEOIABBAWogACAMIAEbIAIbIQwgGyAZIAIbIRkgBUEQaiEFIBEgAEECaiIARw0ACwsgAwRAQQEgDiAFQQRqKgIAQwAAAICUIAUqAgCTIBleIgEbIQ4gACAMIAEbIQwLIA5FDQMgCyAMTQ0EIBAgC0HUkcMAEOMIAAsgHBCbASEcIARBmAFqIAw2AgAgBCAQNgKUASAEQoGAgIAQNwKMAUEAIQogBEEANgKAASAEQgQ3AnggBCAcQwAAAABcOgCcASAEIB0gHJW8rSAZjCAclbytQiCGhDcChAEgCSkCACIqp74gGpMiGiAalCAqQiCIp74gG5MiGyAblJIQmwEhGSAEQYgCaiAQNgIAIAQgDDYChAIgBEIANwL8ASAEQQA2AvABIARCBDcC6AEgBCAZQwAAAABcOgCMAiAEIBsgGZW8rSAajCAZlbytQiCGhDcC9AEgCEEBaiEOQQQhByAFIQZBACEDA0ACQCADIBBGDQAgAyAMRg0AIAsgBCgClAEiCE0NJAJAIAYpAgAiKqe+IhkgBSAIQQN0aiIIKgIAkyAEKgKEAZQgKkIgiKe+IhogCCoCBJMgBCoCiAGUkkMAAEg3XkUEQCALIAQoAoQCIghNDSYgGSAFIAhBA3RqIggqAgCTIAQqAvQBlCAaIAgqAgSTIAQqAvgBlJJDAABIN14NASAEKALMASIJIAQoAsgBRgRAIARBxAFqIAkQqAYgBCgCzAEhCQsgBCgCxAEgCUECdGogAzYCACAEIAlBAWo2AswBDAILIAQoAoABIgkgBCgCfEYEQCAEQfgAaiAJEKgGIAQoAoABIQkLIAQoAnggCUECdGogAzYCACAEIAlBAWo2AoABDAELIAQoAuwBIApGBEAgBEHoAWogChCoBiAEKALwASEKIAQoAugBIQcLIAcgCkECdGogAzYCACAEIApBAWoiCjYC8AELIAZBCGohBiAOIANBAWoiA0cNAAsMBAtB8JDDAEEjQZSRwwAQqgoAC0HLj8IAQStBpJHDABCqCgALQcuPwgBBK0G0kcMAEKoKAAsgDCALQcSRwwAQ4wgACyAEQdwBakEAEKIGIAQoAtwBIgYgBCgC5AEiCEEobGoiAyAEKQJ4NwIAIANBCGogBEH4AGoiB0EIaikCADcCACADQRBqIAdBEGopAgA3AgAgA0EYaiAHQRhqKQIANwIAIANBIGogB0EgaikCADcCACAEIAhBAWoiAzYC5AEgBCgC4AEgA0YEQCAEQdwBaiADEKIGIAQoAtwBIQYgBCgC5AEhAwsgBEHYAWogA0EBaiIHNgIAIAYgA0EobGoiAyAEKQLoATcCACADQSBqIARB6AFqIgZBIGopAgA3AgAgA0EYaiAGQRhqKQIANwIAIANBEGogBkEQaikCADcCACADQQhqIAZBCGopAgA3AgAgBCAEKQLcATcD0AECf0EAIAdFDQAaA0ACQAJAAkACQAJAAkACQAJAAkAgByATSwRAIAQoAtABIg8gE0EobGoiBi0AJEUNCSAGKAIIIghFDQkgBioCDCEaIAZBEGoqAgAhGyAGKAIAIQMgCEECdCEQQ///f/8hGUEAIQkDQCADKAIAIgggC08NBCAaIAUgCEEDdGoiCioCAJQgGyAKQQRqKgIAlJIiHCAZXiEKIBwgGSAKGyEZQQEgCSAKGyEJIAggDiAKGyEOIANBBGohAyAQQQRrIhANAAsgCUEBRw0JIAZBJGpBADoAACAGKAIYIgggB08NBCAGKAIUIgogB08NASALIA5NDQUgDyAIQShsaiIMQSBqKAIAIg0gC08NBiAPIApBKGxqIgkoAhwhAyAFIA5BA3RqKQIAIiqnviIcIAUgDUEDdGoiDyoCAJMiGiAalCAqQiCIp74iHSAPKgIEkyIbIBuUkhCbASEZIARBmAFqIhQgDjYCACAEIA02ApQBIAQgCDYCkAEgBCAHQQFqIhI2AowBIARBADYCgAEgBEIENwJ4IAQgGUMAAAAAXDoAnAEgBCAbIBmVvK0gGowgGZW8rUIghoQ3AoQBIAMgC0kNAiADIAtB5JLDABDjCAALIBMgB0HgkMMAEOMIAAsgCiAHQcSSwwAQ4wgACyAFIANBA3RqKQIAIiqnviAckyIaIBqUICpCIIinviAdkyIbIBuUkhCbASEZIARBiAJqIhYgAzYCACAMIAc2AhQgBCAKNgL8ASAJIBI2AhggBCAONgKEAiAEIAc2AoACQQAhCSAEQQA2AvABIARCBDcC6AEgBCAZQwAAAABcOgCMAiAEIBsgGZW8rSAajCAZlbytQiCGhDcC9AEgBigCCCIIRQ0FIAYoAgAhAyAIQQJ0IQxBBCEKA0ACQCADKAIAIgYgDkYNACALIAQoApQBIghNDSggBiALTw0GIAUgBkEDdGopAgAiKqe+IhkgBSAIQQN0aiIIKgIAkyAEKgKEAZQgKkIgiKe+IhogCCoCBJMgBCoCiAGUkkMAAEg3XkUEQCALIAQoAoQCIghNDSkgGSAFIAhBA3RqIggqAgCTIAQqAvQBlCAaIAgqAgSTIAQqAvgBlJJDAABIN15FDQEgBCgC7AEgCUYEQCAEQegBaiAJEKgGIAQoAvABIQkgBCgC6AEhCgsgCiAJQQJ0aiAGNgIAIAQgCUEBaiIJNgLwAQwBCyAEKAKAASIQIAQoAnxGBEAgBEH4AGogEBCoBiAEKAKAASEQCyAEKAJ4IBBBAnRqIAY2AgAgBCAQQQFqNgKAAQsgA0EEaiEDIAxBBGsiDA0ACwwFCyAIIAtB9KDDABDjCAALIAggB0G0ksMAEOMIAAsgDiALQeSSwwAQ4wgACyANIAtB9JLDABDjCAALIAYgC0GUk8MAEOMIAAsgBCgCzAEiAwRAQQAhBiAEKALEASEKA0ACQAJAIAMgBksEQAJAIAQoApQBIg0gC0kEQCAKIAZBAnRqIgwoAgAiCCALTw0BIAUgCEEDdGopAgAiKqe+IhkgBSANQQN0aiINKgIAkyAEKgKEAZQgKkIgiKe+IhogDSoCBJMgBCoCiAGUkkMAAEg3XkUEQCAEKAKEAiINIAtPDQQgGSAFIA1BA3RqIg4qAgCTIAQqAvQBlCAaIA4qAgSTIAQqAvgBlJJDAABIN15FBEAgBkEBaiEGDAYLIAQoAuwBIAlGBEAgBEHoAWogCRCoBiAEKALwASEJCyAEKALoASAJQQJ0aiAINgIAIAwgCiADQQFrIgNBAnRqKAIANgIAIAQgCUEBaiIJNgLwAQwFCyAEKAKAASIOIAQoAnxGBEAgBEH4AGogDhCoBiAEKAKAASEOCyAEKAJ4IA5BAnRqIAg2AgAgDCAKIANBAWsiA0ECdGooAgA2AgAgBCAOQQFqNgKAAQwECyANIAtBhJPDABDjCAALIAggC0GUk8MAEOMIAAsgBiADQdSSwwAQ4wgACyANIAtBhJPDABDjCAALIAMgBkcNAAsgBCADNgLMAQsgByAEKALUASIGRgRAIARB0AFqIAcQogYgBCgC2AEiB0EBaiESIAQoAtQBIQYLIAQoAtABIg8gB0EobGoiAyAEKQJ4NwIAIANBCGogBEH4AGoiB0EIaikCADcCACADQRBqIAdBEGopAgA3AgAgA0EYaiAHQRhqKQIANwIAIANBIGogFCkCADcCACAEIBI2AtgBIAYgEkYEQCAEQdABaiASEKIGIAQoAtgBIRIgBCgC0AEhDwsgDyASQShsaiIDIAQpAugBNwIAIANBIGogFikCADcCACADQRhqIARB6AFqIgZBGGopAgA3AgAgA0EQaiAGQRBqKQIANwIAIANBCGogBkEIaikCADcCACAEIBJBAWoiBzYC2AELIBNBAWoiEyAHRw0ACyAEQQA2AvABIARCBDcC6AFBACAHRQ0AGiAPQSRqIQVBACEGA0AgBS0AAARAQQAhBUEEIQsgBiEDA0ACQCADIAdJBEAgDyADQShsaiIDLQAkRQ0BIAMoAhwhCCAEKALsASAFRgRAIARB6AFqIAUQqAYgBCgC6AEhCyAEKALwASEFCyALIAVBAnRqIAg2AgAgBCAFQQFqIgU2AvABDAELIAMgB0HQkMMAEOMIAAsgBiADKAIUIgNHDQALIAQoAuwBIQogBCgC6AEhByAEKALYASIGBEAgDyEDA0AgA0EEaigCAARAIAMoAgAQmgILIANBKGohAyAGQQFrIgYNAAsLIAQoAtQBBEAgDxCaAgsgBCgCyAEEQCAEKALEARCaAgsCQAJAAkAgBUUEQEEAIQtBBCEMDAELIAVBqtWq1QBLDQwgBUEMbCIDQQBIDQxBBCEMIAMEQEGR+8MALQAAGiADQQQQggwiDEUNJwsgBUECdCEOQQAhCyAMIQMgByEGA0AgBigCACIIIAJPDQIgAyABIAhBDGxqIggpAgA3AgAgA0EIaiAIQQhqKAIANgIAIANBDGohAyALQQFqIQsgBkEEaiEGIA5BBGsiDg0ACwsgCgRAIAcQmgILQQQhCQJAIAVBAXRBBGsiBkUNACAGQarVqtUASw0MIAZBDGwiA0EASA0MIANFDQBBkfvDAC0AABogA0EEEIIMIglFDQILQQAhAyAEQQA2AvABIAQgBjYC7AEgBCAJNgLoAUECIQYgBUEBayIIQQJPBEADQCAEKALsASADRgRAIARB6AFqIAMQqgYgBCgC6AEhCSAEKALwASEDCyAJIANBDGxqIgcgBjYCCCAHIAZBAWs2AgQgB0EANgIAIAQgA0EBaiIDNgLwASAGQQFqIgYgBUcNAAsLAkAgBUECayIKBEBBACEOA0AgBCgC7AEgA0YEQCAEQegBaiADEKoGIAQoAvABIQMLIAQoAugBIgYgA0EMbGoiByAONgIIIAcgDkEBaiIONgIEIAcgCDYCACAEIANBAWoiAzYC8AEgCiAORw0ACwwBCyAEKALoASEGCyAEKQLsASEqIAQoAnAEQCAEKAJsEJoCCyAGDR4gBCALNgI4IAQgBTYCNCAEIAw2AjAgCw0IQQAhAyAEQQA2AkQgBEIENwI8DBsLIAggAkHUmsMAEOMIAAsMIwsgBUEoaiEFIAcgBkEBaiIGRw0ACyAHCyIDIANBwJDDABDjCAALIBFBGGohBSAdIBEqAgwgGZSSIR0gGiARQRRqKgIAIBmUkiEaIBsgEUEQaioCACAZlJIhGwsgBkEMSQ0AA0AgHSAFKgIAIBmUkiAFQQxqIgYqAgAgGZSSIR0gGiADQRRqKgIAIBmUkiAFQRRqKgIAIBmUkiEaIBsgA0EQaioCACAZlJIgBUEQaioCACAZlJIhGyAGIQMgDyAFQRhqIgVHDQALCyAciyIZIB6LIhwgGSAcYBsiGSAfiyIcIBkgHGAbIRkgESEFA0AgBSAFKgIAIB2TIBmVOAIAIAVBCGoiAyADKgIAIBqTIBmVOAIAIAVBBGoiAyADKgIAIBuTIBmVOAIAIA8gBUEMaiIFRw0ACyACQQxsQQxrIgpBDG5BAWoiBkEBcSENIAQqAkQhGSAEKgJAIRsgBCoCPCEaAkAgCkEMSQRAQ///f/8hHCARIQVBACEDDAELIAZB/v///wNxIQtD//9//yEcIBEhBUEAIQMDQCAaIAUqAgCUIBsgBUEEaioCAJSSIBkgBUEIaioCAJSSIh0gHF4hByAaIAVBDGoqAgCUIBsgBUEQaioCAJSSIBkgBUEUaioCAJSSIh4gHSAcIAcbIhxeIQggHiAcIAgbIRxBAUEBIAkgBxsgCBshCSADQQFqIAMgDiAHGyAIGyEOIAVBGGohBSALIANBAmoiA0cNAAsLIA0EQEEBIAkgGiAFKgIAlCAbIAUqAgSUkiAZIAUqAgiUkiAcXiIFGyEJIAMgDiAFGyEOCwJAAkACQCAAAn8CQCAJBEAgBkEBcSETIBuMIRsCQCAKQQxJBEBD//9//yEcQQAhCSARIQVBACEDDAELIAZB/v///wNxIQhD//9//yEcQQAhCSARIQVBACEDA0AgBUEEaioCACAblCAaIAUqAgCUkyAZIAVBCGoqAgCUkyIdIBxeIQYgBUEQaioCACAblCAaIAVBDGoqAgCUkyAZIAVBFGoqAgCUkyIeIB0gHCAGGyIcXiEHIB4gHCAHGyEcQQFBASAJIAYbIAcbIQkgA0EBaiADIAogBhsgBxshCiAFQRhqIQUgCCADQQJqIgNHDQALCyATBEBBASAJIAUqAgQgG5QgGiAFKgIAlJMgGSAFKgIIlJMgHF4iBRshCSADIAogBRshCgsgCQ0BIAohDgtBAQwBCyACIA5NDQIgAiAKTQ0BIBEgCkEMbGohDSARIA5BDGxqIQtBACEMQX8hCUMAAAAAIR0gESEFA0AgBSoCBCEaIAUqAgAhGyAFKgIIIRwgDSoCACIeIAsqAgAiH5MiGSAZlCANKgIEIiAgCyoCBCIikyIZIBmUkiANKgIIIiEgCyoCCCIjkyIZIBmUkhCbASEZIBsgHpMiHiAelCAaICCTIh4gHpSSIBwgIZMiHiAelJIQmwEhHiAfIBuTIhsgG5QgIiAakyIaIBqUkiAjIByTIhogGpSSEJsBIRwCQAJAAkAgGSAeXkUEQCAZIBxeRQ0BIB4hGiAZIRsgHCEZDAMLIBkgHF4NASAcIRogGSEbIB4hGQwCCyAeIBwgHCAeXSIDGyEaIBwgHiADGyEbDAELIB4gHCAcIB5dIgMbIRsgGSEaIBwgHiADGyEZC0MAAAAAQwAAAAAgGiAbIBmTkiAZIBogG5MiHJIgGSAckyAaIBsgGZKSlJSUIhkgGUMAAAAAXRsgGSAZXBsQmwFDAACAPpQiGSAdXiEDIBkgHSADGyEdIAwgCSADGyEJIAxBAWohDCAPIAVBDGoiBUcNAAsgCUF/Rw0DQZKawwAhDkEACzYCBCAAQQA2AgAgAEEMakESNgIAIABBCGogDjYCAAwaCyAKIAJBxJrDABDjCAALIA4gAkG0msMAEOMIAAsgBEH4AGoiBSAOIAogCSARIAIQngQgBEHoAWoiAyAKIA4gCSARIAIQngQgBUEcakKCgICAEDcCACAFQRRqQgE3AgAgA0EcakKCgICAEDcCACADQRRqQgA3AgAgBEKBgICAEDcChAEgBEIANwL0AUGR+8MALQAAGgJAAkBBkAFBBBCCDCIMBEAgDCAEQfgAakHIABCIDSIIQcgAaiAEQegBakHIABCIDRogAiAJTQ0BIBEgCUEMbGohCkEEIRNBACEJQQAhBgNAIBEgBkEMbGohBSALKgIAIRoDQAJAAkACQCAFKgIAIhkgGlwNACAFQQRqKgIAIAsqAgRcDQAgBUEIaioCACALKgIIWw0BCwJAIBkgDSoCAFwNACAFQQRqKgIAIA0qAgRcDQAgBUEIaioCACANKgIIWw0BCyAZIAoqAgBcDQEgBUEEaioCACAKKgIEXA0BIAVBCGoqAgAgCioCCFwNAQsgBUEMaiEFIAZBAWoiBiACSQ0BDAULCwJAAn8gCC0ARQRAQwAAAAAhHUF/DAELIAgoAiQiByACTw0BIBkgESAHQQxsaiIDKgIAkyAIKgIAlCAFQQRqKgIAIAMqAgSTIAgqAgSUkiAFQQhqKgIAIAMqAgiTIAgqAgiUkiIaQwAAAABeRSAaQwAASDddciEDQwAAAAAgGiADGyEdQQAgA2sLIQMCQAJAAkAgCC0AjQENACAIKAJsIgcgAk8NAyAZIBEgB0EMbGoiByoCAJMgCCoCSJQgBUEEaioCACAHKgIEkyAIKgJMlJIgBUEIaioCACAHKgIIkyAIKgJQlJIiGUMAAEg3XQ0AQQEhBSAZIB1eDQELQQAhBSADQX9HDQAgBCgCECAJRgRAIARBDGogCRCoBiAEKAIMIRMgBCgCFCEJCyATIAlBAnRqIAY2AgAgBCAJQQFqIgk2AhQMAQsgCCAFQcgAbGogBiARIAIQ1AULIAZBAWoiBiACSQ0BDAQLCyAHIAJBmJ3DABDjCAALQQRBkAFB0IHEACgCACIAQZcHIAAbEQAAAAsgCyoCACEZIAIhBiARIQUDQAJAAkAgBSoCACIaIBlcDQAgBUEEaioCACALKgIEXA0AIAVBCGoqAgAgCyoCCFsNAQsgGiANKgIAXA0EIAVBBGoqAgAgDSoCBFwNBCAFQQhqKgIAIA0qAghcDQQLIAVBDGohBSAGQQFrIgYNAAsLQQAgCBDkAUEBIAgQ5AEgBEKCgICAIDcCNCAEIAg2AjBBAiELCyACQQJ0IRZBACEDDAELIAkgAkGkmsMAEOMIAAsDQCALIAMgAyALSRshBiADQcgAbEGMAWohBSADIQ4CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQANAIAYgDkYNIQJAIAUgDGoiA0HIAGsiDS0AAEUNACADQccAay0AAA0AQQAhBiAEQQA2AiAgA0HMAGsoAgAiB0UNEyADQdQAaygCACEGIAdBAnQhDyADQYQBayoCACEaIANBiAFrKgIAIRsgA0GMAWsqAgAhHEP//3//IRlBACEHA0AgBigCACIIIAJPDQQgHCARIAhBDGxqIgoqAgCUIBsgCioCBJSSIBogCioCCJSSIh0gGV4hECAdIBkgEBshGUEBIAcgEBshByAIIBMgEBshEyAGQQRqIQYgD0EEayIPDQALQQAhBiAHQQFGDQIMEwsgBUHIAGohBSAOQQFqIg4gC0cNAAtBACEGDCILIA1BADoAACAEQQA2AiwgBCgCKEUEQCAEQSRqQQAQqAYgBCgCLCEGCyAEKAIkIAZBAnRqIA42AgAgBCAGQQFqNgIsIANBgAFrKAIAIANB9ABrKAIAIBMgBEEYaiIGIBEgAiAEQSRqIgcgDCALEOMCIANB/ABrKAIAIANB8ABrKAIAIBMgBiARIAIgByAMIAsQ4wIgA0H4AGsoAgAgA0HsAGsoAgAgEyAGIBEgAiAHIAwgCxDjAiAWQQBIDRMCQCAWRQRAQQQhDwwBCwJAIBYQOiIPRQ0AIA9BBGstAABBA3FFDQAgD0EAIBYQiQ0aCyAPRQ0CCyAEKAIgIhQEQCAEKAIYIg0gFEEDdGohB0EAIQYgDSEDA0ACQCADKAIAIgggC0kEQCAMIAhByABsaiADQQRqKAIAQQFqQQNwQQJ0akEkaigCACIIIAJJDQEgCCACQcSWwwAQ4wgACyAIIAtBtJbDABDjCAALIA8gCEECdGoiCigCAEEBaiEIIAogCDYCACAIQQFKIAZyIQYgByADQQhqIgNHDQALIA0hCCAGQQFxDQMMBAsgDxCaAgwECyAIIAJB9KDDABDjCAALQQQgFkHQgcQAKAIAIgBBlwcgABsRAAAACwJAAkACQAJAAkACQAJAAkACQAJAA0BBACESIAcgCEYEQEEAIRAMCwsgCCgCACIGIAtPDQIgDCAGQcgAbGoiCiAIKAIEIgNBAWpBA3BBAnRqQSRqKAIAIgYgAk8NAyADQQNPDQQgCiADQQJ0akEkaigCACIDIAJPDQcgCEEIaiEIIBEgA0EMbGoiAyoCCCARIAZBDGxqIgYqAgiTIRogAyoCBCAGKgIEkyEbIAMqAgAgBioCAJMhHEP//3//IRlBACEKIA0hA0EAIQYDQCADKAIAIgkgC08NBiAMIAlByABsaiADQQRqKAIAQQFqQQNwQQJ0akEkaigCACIJIAJPDQcgHCARIAlBDGxqIgkqAgCUIBsgCSoCBJSSIBogCSoCCJSSIh0gGV4hCSAdIBkgCRshGUEBIAogCRshCiAGIBAgCRshECAGQQFqIQYgByADQQhqIgNHDQALIApFDQEgECAUTw0IIA0gEEEDdGoiBigCACIDIAtPDQkgDCADQcgAbGogBigCBEEBakEDcEECdGpBJGooAgAiAyACSQRAIA8gA0ECdGooAgBBAUcNAQwLCwsgAyACQfSVwwAQ4wgACyAPEJoCIABBCGogEK03AgAgAEEBNgIEDBQLIAYgC0GklcMAEOMIAAsgBiACQbSVwwAQ4wgACyADQQNBiJ3DABDjCAALIAkgC0HUlsMAEOMIAAsgCSACQYShwwAQ4wgACyADIAJBxJXDABDjCAALIBAgFEHUlcMAEOMIAAsgAyALQeSVwwAQ4wgACyAEQQA2AiAgBCgCHCEYIARCBDcCGEEBIBQgFEEBTRshCkEEIRdBACEJA0AgDSAQIBRwQQN0aiIDKAIEIQYgAygCACEDAn8CQAJAAkAgCUEBRgRAIAMgC0kEQCAIIAwgA0HIAGxqIAZBAWpBA3BBAnRqQSRqKAIARg0EIAghBwwCCyADIAtBhJbDABDjCAALIAMgC08NASAMIANByABsaiAGQQFqQQNwQQJ0akEkaigCACIHIAJPBEAgByACQaSWwwAQ4wgACyAPIAdBAnRqKAIAQQFMDQILIAchCCAMIANByABsaiIGLQBEBEAgBkHEAGpBADoAACAEKAIsIgYgBCgCKEYEQCAEQSRqIAYQqAYgBCgCLCEGCyAEKAIkIAZBAnRqIAM2AgAgBCAGQQFqNgIsC0EBDAILIAMgC0GUlsMAEOMIAAsgBCgCHCASRgRAIARBGGogEhCrBiAEKAIYIRcgBCgCICESCyAXIBJBA3RqIgcgBjYCBCAHIAM2AgAgBCASQQFqIhI2AiBBAAshCSAQQQFqIRAgCkEBayIKDQALIBhFDQAgDRCaAgsgBCgCICEDIA8QmgIgA0UNACADQfG4nA5LDQ8gA0HIAGwiBUEASA0PIAQoAiwhEiAEKAIkIQwgBCgCGCEGIAUNAUEEIQoMAgsgDkEBaiIDIAQoAjgiB08NByAOQX9zIAdqIgZBAXEhCiAEKAIwIQggB0ECayAORw0CQQAhBgwGC0GR+8MALQAAGiAFQQQQggwiCkUNJgtBACEHIARBADYCgAEgBCADNgJ8IAQgCjYCeCAEKAIwIQ8gBCgCOCENIAMhCyAGIQUDQCAFKAIAIgkgDU8NAyAFQQRqKAIAIghBA08NAiAEQegBaiATIA8gCUHIAGxqIgkgCEEBakEDcEECdGpBJGooAgAgCSAIQQJ0akEkaigCACARIAIQngQgByAEKAJ8RgRAIARB+ABqIQojAEEgayIIJAACQAJAIAdBAWoiB0UNAEEEIAooAgQiCUEBdCIQIAcgByAQSRsiByAHQQRNGyIQQcgAbCEHIBBB8ricDklBAnQhFAJAIAlFBEAgCEEANgIYDAELIAhBBDYCGCAIIAlByABsNgIcIAggCigCADYCFAsgCEEIaiAUIAcgCEEUahDaBiAIKAIMIQcgCCgCCEUEQCAKIBA2AgQgCiAHNgIADAILIAdBgYCAgHhGDQEgB0UNACAHIAhBEGooAgBB0IHEACgCACIAQZcHIAAbEQAAAAsQ2woACyAIQSBqJAAgBCgCeCEKIAQoAoABIQcLIAciCEHIAGwgCmogBEHoAWpByAAQiA0aIAQgCEEBaiIHNgKAASAFQQhqIQUgC0EBayILDQALDAgLIAUgCGohA0EAIQxBACAGQX5xayENQQAhBgNAIAMtAAAEQCADQQFqLQAARSAGciEGCyADQcgAai0AAARAIANByQBqLQAARSAGciEGCyADQZABaiEDIA0gDEECayIMRw0ACwwCCyAIQQNBiJ3DABDjCAALIAkgDUHgmMMAEOMIAAsgDiAMa0EBaiEDCwJAIApFDQAgCCADQcgAbGoiAy0AREUNACADLQBFRSAGciEGCyAGQQFxDQELIAcgDksEQCAEKAIwIgwgBWpByABrQQE6AAAgBEEANgJEIARCBDcCPCAMIAdByABsagwWCyAOIAdB2JTDABDjCAALIABBADYCBCAAQQxqQSs2AgAgAEEIakHolMMANgIACyAAQQA2AgAgBEEwaiIAKAIAIQIgACgCCCIBBEAgAkE4aiEDA0AgA0EEaigCAARAIAMoAgAQmgILIANByABqIQMgAUEBayIBDQALCyAAKAIEBEAgAhCaAgsMGAsgB0UNByAGKAIEIQkgBigCACELIApBAjYCGCAKQSBqQQA2AgAgCkEcaiAJNgIAIApBEGogCzYCACAKQRRqIA0gA0EBR2o2AgAgCiADIA1qQQFrNgIMIAsgDU8NBiAJQQJLDQUgDSAPIAtByABsaiAJQQJ0aiIFQQxqIgkoAgAiC00NBCAPIAtByABsai0ARA0BIAkgDTYCACAFQRhqQQE2AgAgA0EBRwRAQQEgA2shFCAGQQxqIRBBACAIayEGQQIhBQNAIAUgBmpBAkYNCSAQQQRrKAIAIQsgECgCACEJIApB6ABqQQA2AgAgCkHkAGogCTYCACAKQeAAakECNgIAIApB2ABqIAs2AgAgCkHUAGogBSANaiIIQQJrNgIAIApB3ABqIAVBACADIAVHGyANajYCACALIA1PDQggCUEDTw0HIA0gDyALQcgAbGogCUECdGoiCUEMaiIXKAIAIgtNDQYgDyALQcgAbGotAEQNAyAXIAhBAWs2AgAgCUEYakEBNgIAIBBBCGohECAKQcgAaiEKIBQgBUEBaiIFakECRw0ACyAEKAJ4IQogBCgCgAEhBwsCQCASRQ0AIBJBAnQhAyAEKAIwIQsgBCgCOCESIAIgE0sEQCADIAxqIRcgESATQQxsaiETIAdByABsIQgDQCASIAwoAgAiBU0NDiALIAVByABsaiIFQUBrKAIAIgMEQCAFKAI4IhAgA0ECdGohGANAIBAoAgAiDyACTw0SAkACQCARIA9BDGxqIg0qAgAiGyATKgIAXA0AIA0qAgQgEyoCBFwNACANKgIIIBMqAghbDQELIAdFDQBBACEDQX8hCUMAAAAAIRkgCCEGIAohBQNAAkAgBUHFAGotAAANACAFQSRqKAIAIhQgAk8NECAbIBEgFEEMbGoiFCoCAJMgBSoCAJQgDSoCBCAUKgIEkyAFQQRqKgIAlJIgDSoCCCAUKgIIkyAFQQhqKgIAlJIiGiAZXkUNACADIQkgGiEZCyAFQcgAaiEFIANBAWohAyAGQcgAayIGDQALIAlBf0YNACAHIAlNDQ8gCiAJQcgAbGoiBS0ARQ0AIAUoAiQiAyACTw0QIBsgESADQQxsaiIDKgIAkyAFKgIAlCANKgIEIAMqAgSTIAUqAgSUkiANKgIIIAMqAgiTIAUqAgiUkkMAAEg3XQ0AIAUgDyARIAIQ1AULIBggEEEEaiIQRw0ACwsgFyAMQQRqIgxHDQALDAELA0AgEiAMKAIAIgVNDQ0gCyAFQcgAbGpBQGsoAgANDiAMQQRqIQwgA0EEayIDDQALCyAEKAIUIhMEQCAHQcgAbCEIIApBJGohDUEAIRAgBCgCDCESA0ACQAJAAkAgECATSQRAAkAgB0UNACAIIQMgDSEFIBIgEEECdGoiFCgCACIMIAJJBEAgESAMQQxsaiEPQQAhA0F/IQlDAAAAACEZIAghBiAKIQUDQCAFQcUAai0AAEUEQCAFQSRqKAIAIgsgAk8NBSADIAkgDyoCACARIAtBDGxqIgsqAgCTIAUqAgCUIA8qAgQgCyoCBJMgBUEEaioCAJSSIA8qAgggCyoCCJMgBUEIaioCAJSSIhpDAABIN11Bf3MgGSAaXXEiCxshCSAaIBkgCxshGQsgBUHIAGohBSADQQFqIQMgBkHIAGsiBg0ACyAJQX9GDQEgByAJTQ0EIAogCUHIAGxqIAwgESACENQFIBQgEiATQQFrIhNBAnRqKAIANgIAIAQgEzYCFAwFCwNAIAVBIWotAABFBEAgBSgCACILIAJPDQQgDCACQaidwwAQ4wgACyAFQcgAaiEFIANByABrIgMNAAsLIBBBAWohEAwDCyAQIBNB5JbDABDjCAALIAsgAkGYncMAEOMIAAsgCSAHQfSWwwAQ4wgACyAQIBNHDQALCyAHIAQoAjQgBCgCOCIFa0sEQCAEQTBqIAUgBxCeBiAEKAI4IQULIAQoAjAiDCAFQcgAbGogCiAHQcgAbBCIDRogBCAFIAdqIgs2AjggBCgCfARAIAoQmgILIAQoAiAhBgsgDkEBaiEDIAtBAWsgDkYNDwwBCwtBhJjDAEHKAEHQmMMAEKoKAAsQ2woACyALIA1B9JfDABDjCAALIAlBA0Hkl8MAEOMIAAsgCyANQdSXwwAQ4wgACyAHIAdBxJfDABDjCAALIBQgAkH4nMMAEOMIAAsgCSAHQbSXwwAQ4wgACyADIAJBmJ3DABDjCAALIAUgEkGEl8MAEOMIAAsgCyAFQcgAbGooAjgoAgAiDyACSQ0BCyAPIAJBlJfDABDjCAALIBMgAkGkl8MAEOMIAAsgBiALQciUwwAQ4wgACyAOQQFqIQsLIAQgBjYCIEEAIQMgBEEANgJEIARCBDcCPCALRQ0BIAwgC0HIAGxqCyEGQQAhA0EEIQogDCEFA0AgBUHEAGotAAAEQCAFQSxqKAIAIQggBUEoaigCACENIAVBJGooAgAhCyAEKAJAIANGBEAgBEE8aiADEKoGIAQoAjwhCiAEKAJEIQMLIAogA0EMbGoiByAINgIIIAcgDTYCBCAHIAs2AgAgBCADQQFqIgM2AkQLIAYgBUHIAGoiBUcNAAsLQZH7wwAtAAAaIBVBBBCCDCIFBEAgBSABIBUQiA0hASAEQfgAaiINQQhqIgkgAjYCACAEIAI2AnwgBCABNgJ4IAQoAjwhB0EAIQgCQAJAAkACQAJAAn8gDSgCCCICBEAgAkEASA0CQZH7wwAtAAAaIAJBARCCDCIKRQ0DIApBACACEIkNGiACQf////8BSw0CIAJBAnQiAUEASA0CAkAgAUUEQEEEIQYMAQtBkfvDAC0AABogAUEEEIIMIgZFDQULIAJBB3EhBSACQQFrQQdPBEAgAkF4cSELIAYhAQNAIAEgCDYCACABQRxqIAhBB2o2AgAgAUEYaiAIQQZqNgIAIAFBFGogCEEFajYCACABQRBqIAhBBGo2AgAgAUEMaiAIQQNqNgIAIAFBCGogCEECajYCACABQQRqIAhBAWo2AgAgAUEgaiEBIAsgCEEIaiIIRw0ACwsgBQRAIAYgCEECdGohAQNAIAEgCDYCACABQQRqIQEgCEEBaiEIIAVBAWsiBQ0ACwsgByADQQxsaiIFIAMNARpBASELIAJFDQYMBQsgA0UNBUEBIQpBBCEGIAcgA0EMbGoLIQUgByEIAkACQAJAA0AgCCgCACIBIAJPDQEgASAKakEBOgAAIAhBBGooAgAiASACTw0CIAEgCmpBAToAACAIQQhqKAIAIgEgAk8NAyABIApqQQE6AAAgCEEMaiIIIAVHDQALQQAhCwwGCyABIAJBhK3DABDjCAALIAEgAkGUrcMAEOMIAAsgASACQaStwwAQ4wgACxDbCgALQQEgAkHQgcQAKAIAIgBBlwcgABsRAAAAC0EEIAFB0IHEACgCACIAQZcHIAAbEQAAAAtBACEIIAIhAQJAAkACQANAAkACQAJAIAIgCEsEQCAIIApqIgMtAABFDQEgCEEBaiEIDAILIAggAkHUrMMAEOMIAAsgASAITQ0BIA0gAUEBayIBNgIIIA0oAgAiDiABQQxsaiIPQQhqKAIAIRAgDiAIQQxsaiIOIA8pAgA3AgAgDkEIaiAQNgIAIAEgAk8NAyAGIAFBAnRqIAg2AgAgAiANKAIIIgFNDQQgAyABIApqLQAAOgAACyABIAhHDQEMBAsLIAggAUHkkMIAEOAIAAsgASACQeSswwAQ4wgACyABIAJB9KzDABDjCAALAkACQAJAIAtFBEADQCAHKAIAIgEgAk8NAyAHIAYgAUECdGooAgA2AgAgB0EEaiIDKAIAIgEgAk8NBCADIAYgAUECdGooAgA2AgAgB0EIaiIDKAIAIgEgAk8NAiADIAYgAUECdGooAgA2AgAgB0EMaiIHIAVHDQALCyAGEJoCIAoQmgIMAwsgASACQcSswwAQ4wgACyABIAJBpKzDABDjCAALIAEgAkG0rMMAEOMIAAsgBEHoAWoiAUEIaiICIAkoAgA2AgAgBEH8AWogBEHEAGooAgA2AgAgACAEKQJ4NwIAIAQgBCkCPDcC9AEgAEEIaiACKQMANwIAIABBEGogAUEQaikDADcCACAEKAI4IgMEQCAMQThqIQUDQCAFQQRqKAIABEAgBSgCABCaAgsgBUHIAGohBSADQQFrIgMNAAsLIAQoAjQEQCAMEJoCCyAEKAIoBEAgBCgCJBCaAgsgBCgCHARAIAQoAhgQmgILIAQoAhAEQCAEKAIMEJoCCyAREJoCDAULDAcLAkAgAiAGSwRAQZH7wwAtAAAaQRhBBBCCDCIMRQ0GIAwgBCkD6AE3AgAgDEEIaiAEQfABaigCADYCACAMIAEgBkEMbGoiASkCADcCDCAMQRRqIAFBCGooAgA2AgBBkfvDAC0AABpBGEEEEIIMIgYNAQwGCyAGIAJBgPfCABDjCAALIAZCgICAgBA3AgggBkKAgICAEDcCACAGQRBqQgA3AgBBAgshBUKCgICAICEqIAUhCwsgACAqNwIQIAAgBjYCDCAAIAs2AgggACAFNgIEIAAgDDYCAAsgBCgCKARAIAQoAiQQmgILIAQoAhwEQCAEKAIYEJoCCyAEKAIQBEAgBCgCDBCaAgsgERCaAgsgBEGwAmokAA8LQQRBGEHQgcQAKAIAIgBBlwcgABsRAAAACyAIIAtBhJPDABDjCAALQQQgFUHQgcQAKAIAIgBBlwcgABsRAAAAC0EEIAVB0IHEACgCACIAQZcHIAAbEQAAAAtBBCADQdCBxAAoAgAiAEGXByAAGxEAAAAL3HUDJH8IfgF9IwBBoAVrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkAgASgCBCIGQQRPBEAgASAGQQRrIgQ2AgQgASABKAIAIgVBBGo2AgAgBSgAACIDDhMDBAUGBwgJCgsMDQ4PEBESExQVAQsgAkKByoCAwAA3A9gDIAJB2ANqEOoKDAELIAJBAToA2AMgAiADrTcD4AMgAkHYA2pB8IjAAEHcgsAAEKkICyEBIABBEzYCACAAIAE2AgQMMgsgBEEETwRAIAEgBkEIazYCBCABIAVBCGo2AgAgACAFKAAENgIEIABBADYCAAwyCyACQQA6ANsDIAJBJTsA2QMgAkEENgLcAyACQQE6ANgDIAJB2ANqEOoKIQEgAEETNgIAIAAgATYCBAwxCwJAIARBBEkNACABIAZBCGsiAzYCBCABIAVBCGo2AgAgA0EESQ0AIAUoAAQhBCABIAZBDGsiAzYCBCABIAVBDGo2AgAgA0EESQ0AIAU1AAghJyABIAZBEGs2AgQgASAFQRBqNgIAIAU1AAwhJiAAIAQ2AgQgACAnICZCIIaENwIIIABBATYCAAwxCyACQQA6ANsDIAJBJTsA2QMgAkEENgLcAyACQQE6ANgDIAAgAkHYA2oQ6go2AgQgAEETNgIADDALIAACfwJAIARBBEkNACABIAZBCGsiAzYCBCABIAVBCGo2AgAgA0EESQ0AIAUoAAQhCCABIAZBDGsiAzYCBCABIAVBDGo2AgAgA0EESQ0AIAU1AAghKSABIAZBEGsiAzYCBCABIAVBEGo2AgACQAJAIANBBEkNACAFNQAMISggASAGQRRrIgM2AgQgASAFQRRqNgIAIANBBEkNACAFKAAQIQQgASAGQRhrIgM2AgQgASAFQRhqNgIAIANBBE8NAQsgAkEAOgDbAyACQSU7ANkDIAJBBDYC3AMgAkEBOgDYAyACQdgDahDqCgwCCyAFNQAUIScgASAGQRxrIgM2AgQgASAFQRxqNgIAIANBA00EQCACQQA6ANsDIAJBJTsA2QMgAkEENgLcAyACQQE6ANgDIAJB2ANqEOoKDAILIAU1ABghJiABIAZBIGs2AgQgASAFQSBqNgIAIAAgBSgAHDYCHCAAIAQ2AhAgACAoQiCGICmENwIIIAAgCDYCBCAAICZCIIYgJ4Q3AhQgAEECNgIADDELIAJBADoA2wMgAkElOwDZAyACQQQ2AtwDIAJBAToA2AMgAkHYA2oQ6goLNgIEIABBEzYCAAwvCyAAAn8CQCAEQQRJDQAgASAGQQhrIgM2AgQgASAFQQhqNgIAIANBBEkNACAFKAAEIQggASAGQQxrIgM2AgQgASAFQQxqNgIAIANBBEkNACAFNQAIISkgASAGQRBrIgM2AgQgASAFQRBqNgIAAkACQCADQQRJDQAgBTUADCEoIAEgBkEUayIDNgIEIAEgBUEUajYCACADQQRJDQAgBSgAECEEIAEgBkEYayIDNgIEIAEgBUEYajYCACADQQRPDQELIAJBADoA2wMgAkElOwDZAyACQQQ2AtwDIAJBAToA2AMgAkHYA2oQ6goMAgsgBTUAFCEnIAEgBkEcazYCBCABIAVBHGo2AgAgBTUAGCEmIAAgBDYCECAAIChCIIYgKYQ3AgggACAINgIEIAAgJyAmQiCGhDcCFCAAQQM2AgAMMAsgAkEAOgDbAyACQSU7ANkDIAJBBDYC3AMgAkEBOgDYAyACQdgDahDqCgs2AgQgAEETNgIADC4LIAJB2ANqIAEQ3wIgAigC2ANFBEAgACACKQLcAzcCBCAAQSRqIAJB2ANqIgFBJGooAgA2AgAgAEEcaiABQRxqKQIANwIAIABBFGogAUEUaikCADcCACAAQQxqIAFBDGopAgA3AgAgAEEENgIADC4LIAAgAigC3AM2AgQgAEETNgIADC0LIAJBBzYC/AEgAiABNgL4ASACQdgDaiACQfgBahBOIAIoAtgDDQ0gAkGQAmoiA0EIaiIGIAJB2ANqIgFBEGopAgA3AwAgA0EQaiIEIAJB8ANqKAIANgIAIAIgAUEIaiIDKQIANwOQAiACQZgEaigCACIgRQRAQQBBpIvAAEHcgsAAEO8HIQEMLAsgAkH0A2ooAgAhISACQfgDaigCACEiIAJB/ANqKAIAIRAgAkGABGooAgAhIyACQYQEaigCACEkIAJBiARqKAIAIQwgAkGMBGooAgAhJSACQZAEaigCACEYIAJBlARqKAIAIQ8gAkGcBGopAgAhKyACKALcAyEUIAJBEGoiAUEQaiAEKAIANgIAIAFBCGogBikDADcDACACIAIpA5ACNwMQIAJB2ANqIAJB+AFqEN0CIAIoAtwDIQYgAigC2AMEQCAGIQEMKwsgBkUEQEEBQaSLwABB3ILAABDvByEBDCsLIAMpAgAhLAJAIAIoAvwBIgEEQCACIAFBAWs2AvwBIAIoAvgBIgkoAgQiAUEHTQRAIAJCgcqAgIABNwPYAyACQdgDahDqCiEBDCwLIAkgAUEIayIWNgIEIAkgCSgCACIBQQhqIgc2AgAgAkHwAGogASkAABDSBSACKAJ0IQEgAigCcA0rAkBB1aoFIAEgAUHVqgVPGyIFRQRAQQQhGwwBC0GR+8MALQAAGiAFQQxsIgNBBBCCDCIbRQ0RCyACQQA2AuADIAIgBTYC3AMgAiAbNgLYAyABBEADQAJAAn8gFkEDTQRAIAJCgcqAgMAANwNwIAJB8ABqEOoKDAELIAkgFkEEayIDNgIEIAkgB0EEaiILNgIAIANBA00EQCACQoHKgIDAADcDcCACQfAAahDqCgwBCyAHKAAAIQQgCSADQQRrIgU2AgQgCSALQQRqIgM2AgAgBUEDSw0BIAJCgcqAgMAANwNwIAJB8ABqEOoKCyEBIAIoAtwDRQ0uIAIoAtgDEJoCDC4LIAs1AAAhKCAJIAVBBGsiFjYCBCAJIANBBGoiBzYCACADNQAAISogAigC3AMgGUYEQCACQdgDaiAZEKoGIAIoAuADIRkgAigC2AMhGwsgGyAZQQxsaiIDICpCIIYgKIQ3AgQgAyAENgIAIAIgGUEBaiIZNgLgAyABQQFrIgENAAsgAigC2AMhGyACKALcAyEFCyAbDQEgBSEBDCsLQQJBpIvAAEHcgsAAEO8HIQEMKgsCQAJAIAIoAvwBIgEEQCACIAFBAWsiDjYC/AECQAJAIAIoAvgBIgkoAgQiAQRAIAkgAUEBazYCBCAJIAkoAgAiB0EBajYCACAHLQAAIgMOAgUCAQsgAkKByoCAEDcD2AMgAkHYA2oQ6gohAQwtC0GR+8MALQAAGkEQQQQQggwiAUUNMSABIAM2AgQgAUEEOgAADCwLIAFBCE0EQCACQoHKgICAATcD2AMgAkHYA2oQ6gohAQwsCyAJIAFBCWsiDjYCBCAJIAdBCWoiBDYCACACQfAAaiAHKQABENIFIAIoAnQhASACKAJwDSsCQEHVqgUgASABQdWqBU8bIhFFBEBBBCEVDAELQZH7wwAtAAAaIBFBDGwiC0EEEIIMIhVFDTILQQAhFiACQQA2AuADIAIgETYC3AMgAiAVNgLYAyABBEADQAJAAkAgDkEESQ0AIAkgDkEEayIDNgIEIAkgBEEEaiIHNgIAIANBBEkNACAEKAAAIREgCSADQQRrIgQ2AgQgCSAHQQRqIgM2AgAgBEEDSw0BCyACQQA6AHMgAkElOwBxIAJBBDYCdCACQQE6AHAgAkHwAGoQ6gohASACKALcA0UNLiACKALYAxCaAgwuCyAHNQAAISYgCSAEQQRrIg42AgQgCSADQQRqIgQ2AgAgAzUAACEqIAIoAtwDIBZGBEAgAkHYA2ogFhCqBiACKALYAyEVIAIoAuADIRYLIBUgFkEMbGoiAyAqQiCGICaENwIEIAMgETYCACACIBZBAWoiFjYC4AMgAUEBayIBDQALIAIoAtgDIRUgAigC3AMhEQsgFUUEQCARIQEMLAsCQCAJKAIEIgFBB00EQCACQoHKgICAATcD2AMgAkHYA2oQ6gohAQwBCyAJIAFBCGsiBDYCBCAJIAkoAgAiAUEIaiIXNgIAIAJB8ABqIAEpAAAQ0gUgAigCdCEBIAIoAnANAAJAQcfjASABIAFBx+MBTxsiB0UEQEEEIRwMAQtBkfvDAC0AABogB0EkbCILQQQQggwiHEUNMwtBACEOIAJBADYC4AMgAiAHNgLcAyACIBw2AtgDIAEEfgNAAkACfwJAAkAgBEEESQ0AIAkgBEEEayIDNgIEIAkgF0EEaiIHNgIAIANBBEkNACAXKAAAIQogCSADQQRrIgM2AgQgCSAHQQRqIgQ2AgAgA0EDSw0BCyACQQA6AHMgAkElOwBxIAJBBDYCdCACQQE6AHAgAkHwAGoQ6goMAQsgBzUAACEpIAkgA0EEayIDNgIEIAkgBEEEaiIHNgIAAkACQCADQQRJDQAgBDUAACEoIAkgA0EEayIDNgIEIAkgB0EEaiIENgIAIANBBEkNACAHKAAAIRogCSADQQRrIgM2AgQgCSAEQQRqIgc2AgAgA0EDSw0BCyACQQA6AHMgAkElOwBxIAJBBDYCdCACQQE6AHAgAkHwAGoQ6goMAQsgBDUAACEmIAkgA0EEayIENgIEIAkgB0EEaiIDNgIAAkAgBEEESQ0AIAc1AAAhJyAJIARBBGsiBDYCBCAJIANBBGoiCzYCACAEQQRJDQAgAygAACEDIAkgBEEEayIENgIEIAkgC0EEaiIHNgIAIARBA0sNAgsgAkEAOgBzIAJBJTsAcSACQQQ2AnQgAkEBOgBwIAJB8ABqEOoKCyEBIAIoAtwDRQ0DIAIoAtgDEJoCDAMLIChCIIYgKYQhKCAnQiCGICaEISogCzUAACEmIAkgBEEEayIENgIEIAkgB0EEaiIXNgIAICYgBzUAAEIghoQhKSACKALcAyAORgRAIAJB2ANqIA4QpwYgAigC4AMhDiACKALYAyEcCyAcIA5BJGxqIgcgKTcCHCAHIAM2AhggByAqNwIQIAcgGjYCDCAHICg3AgQgByAKNgIAIAIgDkEBaiIONgLgAyABQQFrIgENAAsgAigC3AMhByACKALYAyEcIA6tQiCGBUIACyEmIBwNAiAHIQELIBFFDSsgFRCaAgwrC0EDQaSLwABB3ILAABDvByEBDCoLICYgB62EISggAigC/AEhDgsgKKchHgJAAkAgDgRAIAIgDkEBayIDNgL8AQJAAkAgAigC+AEiEigCBCILBEAgEiALQQFrNgIEIBIgEigCACIBQQFqNgIAQQAhFyABLQAAIgQOAgUCAQsgAkKByoCAEDcD2AMgAkHYA2oQ6gohAQwsC0GR+8MALQAAGkEQQQQQggwiAUUNMSABIAQ2AgQgAUEEOgAADCsLIAtBCE0EQCACQoHKgICAATcD2AMgAkHYA2oQ6gohAQwrCyASIAtBCWs2AgQgEiABQQlqIgM2AgAgAkHwAGogASkAARDSBSACKAJ0IQEgAigCcA0qAkBBgIAQIAEgAUGAgBBPGyIKRQRAQQQhFwwBC0GR+8MALQAAGiAKQQJ0IgRBBBCCDCIXRQ0TC0EAIQcgAkEANgLgAyACIAo2AtwDIAIgFzYC2AMgAQRAIAtBDWshDgNAIA5BBGpBA00EQCACQoHKgIDAADcDcCACQfAAahDqCiEBIAIoAtwDRQ0tIAIoAtgDEJoCDC0LIBIgDjYCBCASIANBBGoiBDYCACADKAAAIQMgAigC3AMgB0YEQCACQdgDaiAHEKgGIAIoAtgDIRcgAigC4AMhBwsgFyAHQQJ0aiADNgIAIAIgB0EBaiIHNgLgAyAOQQRrIQ4gBCEDIAFBAWsiAQ0ACyACKALYAyEXIAIoAtwDIQoLIBdFBEAgCiEBDCsLIBIoAgQiA0EHTQRAIAJCgcqAgIABNwPYAyACQdgDahDqCiEBDCoLIBIgA0EIazYCBCASIBIoAgAiAUEIaiIENgIAIAJB8ABqIAEpAAAQ0gUgAigCdCEBIAIoAnANKQJAQYCAECABIAFBgIAQTxsiDUUEQEEEIRoMAQtBkfvDAC0AABogDUECdCILQQQQggwiGkUNMgtBACEOIAJBADYC4AMgAiANNgLcAyACIBo2AtgDIAEEfiADQQxrIQMDQCADQQRqQQNNBEAgAkKByoCAwAA3A3AgAkHwAGoQ6gohASACKALcA0UNLCACKALYAxCaAgwsCyASIAM2AgQgEiAEQQRqIgg2AgAgBCgAACEEIAIoAtwDIA5GBEAgAkHYA2ogDhCoBiACKALgAyEOIAIoAtgDIRoLIBogDkECdGogBDYCACACIA5BAWoiDjYC4AMgA0EEayEDIAghBCABQQFrIgENAAsgAigC3AMhDSACKALYAyEaIA6tQiCGBUIACyEmIBpFBEAgDSEBDCoLIBIoAgQiAUEHTQRAIAJCgcqAgIABNwPYAyACQdgDahDqCiEBDCkLIBIgAUEIayIENgIEIBIgEigCACIBQQhqIgg2AgAgAkHwAGogASkAABDSBSACKAJ0IQEgAigCcA0oAkBBgIAEIAEgAUGAgARPGyIDRQRAQQQhHQwBC0GR+8MALQAAGiADQQR0IgtBBBCCDCIdRQ0yC0EAIQ4gAkEANgLgAyACIAM2AtwDIAIgHTYC2AMgAQR+A0AgBEEESQ0pIBIgBEEEayIDNgIEIBIgCEEEaiILNgIAIANBBEkNKSAIKAAAIQkgEiADQQRrIgQ2AgQgEiALQQRqIgM2AgAgBEEESQ0pIAsoAAAhCyASIARBBGsiBDYCBCASIANBBGoiEzYCACAEQQRJDSkgAygAACEDIBIgBEEEayIENgIEIBIgE0EEaiIINgIAIBMoAAAhHyACKALcAyAORgRAIAJB2ANqIA4QpAYgAigC4AMhDiACKALYAyEdCyAdIA5BBHRqIhMgHzYCDCATIAM2AgggEyALNgIEIBMgCTYCACACIA5BAWoiDjYC4AMgAUEBayIBDQALIAIoAtwDIQMgAigC2AMhHSAOrUIghgVCAAshJyAdDQEgAyEBDCgLQQRBpIvAAEHcgsAAEO8HIQEMKQsgJiANrYQhKSAnIAOthCEqIAIoAvwBIQMLAkACQAJAAkAgAwRAAkACQCACKAL4ASITKAIEIgEEQCATIAFBAWs2AgQgEyATKAIAIgFBAWo2AgBBACELIAEtAAAiCQ4CBQIBCyACQoHKgIAQNwPYAyACQdgDahDqCiEBDAULQZH7wwAtAAAaQRBBBBCCDCIBRQ0zIAEgCTYCBCABQQQ6AAAMBAsgAkEDNgJ0IAIgEzYCcCACQdgDaiACQfAAahCrAyACKALcAyELIAIoAtgDBEAgCyEBDAQLIAtFBEBBAEGgjMAAQdyCwAAQ7wchAQwECyACQeADaiIBKQIAISYgAkHkA2ooAgAhHyABKAIAIQ0gAkHYA2ogAkHwAGoQqwMgAigC3AMhBAJAIAIoAtgDBEAgBCEBDAELIARFBEBBAUGgjMAAQdyCwAAQ7wchAQwBCyACQeADaikCACEnIAJB2ANqIAJB8ABqEIADIAIoAtwDIQggAigC2AMEfyAIBSAIDQNBAkGgjMAAQdyCwAAQ7wcLIQEgJ6dFDQAgBBCaAgsgJqdFDQMgCxCaAgwDC0EFQaSLwABB3ILAABDvByEBDAILIAJB4ANqKQIAIS0LAn8gA0EBRwRAIBMoAgQiAQ0DIAJCgcqAgBA3A9gDIAJB2ANqEOoKDAELQQZBpIvAAEHcgsAAEO8HCyEBIAtFDQAgJ6chAyANBEAgCxCaAgsgAwRAIAQQmgILIC2nRQ0AIAgQmgILIBdFDSggKachAyAKBEAgFxCaAgsgAwRAIBoQmgILICqnRQ0oIB0QmgIMKAsgEyABQQFrNgIEIBMgEygCACIBQQFqNgIAIAEtAAAhASAAQRhqIAJBIGooAgA2AgAgAEEQaiACQRhqKQMANwIAIAAgAikDEDcCCCAAIAE6AMQBIAAgLTcCvAEgACAINgK4ASAAICc3ArABIAAgBDYCrAEgACAfNgKoASAAIA02AqQBIAAgCzYCoAEgACAqNwKYASAAIB02ApQBIAAgKTcCjAEgACAaNgKIASAAIAc2AoQBIAAgCjYCgAEgACAXNgJ8IAAgKEIgiD4CeCAAIB42AnQgACAcNgJwIAAgFjYCbCAAIBE2AmggACAVNgJkIAAgBa0gGa1CIIaENwJcIAAgGzYCWCAAICw3AlAgACAGNgJMIAAgKzcCRCAAICA2AkAgACAPNgI8IAAgGDYCOCAAICU2AjQgACAMNgIwIAAgJDYCLCAAICM2AiggACAQNgIkIAAgIjYCICAAICE2AhwgACAUNgIEIABBxwFqIAJB4gFqLQAAOgAAIAAgAi8A4AE7AMUBIABBBTYCAAwsCyACQQM2AvwBIAIgATYC+AEgAkHYA2ogAkH4AWoQTiACKALYAw0PIAJBkAJqIgNBCGoiCCACQdgDaiIBQRBqKQIANwMAIANBEGoiBCACQfADaigCADYCACACIAFBCGoiAykCADcDkAIgAkGYBGooAgAiHkUEQEEAQeiDwABB3ILAABDvByEBDCMLIAJB9ANqKAIAIRMgAkH4A2ooAgAhECACQfwDaigCACELIAJBgARqKAIAIQwgAkGEBGooAgAhDyACQYgEaigCACENIAJBjARqKAIAIRQgAkGQBGooAgAhCSACQZQEaigCACEFIAJBnARqKQIAIScgAigC3AMhESACQRBqIgFBEGogBCgCADYCACABQQhqIAgpAwA3AwAgAiACKQOQAjcDECACQdgDaiACQfgBahDdAiACKALcAyEEAkACQCACKALYAwRAIAQhAQwBCyAERQRAQQFB6IPAAEHcgsAAEO8HIQEMAQsgAykCACEoAkAgAigC/AEEQCACKAL4ASIYKAIEIgFBB00EQCACQoHKgICAATcD2AMgAkHYA2oQ6gohAQwCCyAYIAFBCGsiFjYCBCAYIBgoAgAiAUEIaiIHNgIAIAJB8ABqIAEpAAAQ0gUgAigCdCEBIAIoAnANAQJAQYCACCABIAFBgIAITxsiA0UEQEEEIRUMAQtBkfvDAC0AABogA0EDdCIIQQQQggwiFUUNMwsgAkEANgLgAyACIAM2AtwDIAIgFTYC2AMgAQR+A0ACQAJ/IBZBA00EQCACQoHKgIDAADcDcCACQfAAahDqCgwBCyAYIBZBBGsiCDYCBCAYIAdBBGoiAzYCACAIQQNLDQEgAkKByoCAwAA3A3AgAkHwAGoQ6goLIQEgAigC3ANFDQQgAigC2AMQmgIMBAsgBygAACEGIBggCEEEayIWNgIEIBggA0EEaiIHNgIAIAMoAAAhCCACKALcAyAKRgRAIAJB2ANqIAoQqwYgAigC2AMhFSACKALgAyEKCyAVIApBA3RqIgMgCDYCBCADIAY2AgAgAiAKQQFqIgo2AuADIAFBAWsiAQ0ACyACKALcAyEDIAIoAtgDIRUgCq1CIIYFQgALISYgFQ0DIAMhAQwBC0ECQeiDwABB3ILAABDvByEBCyAop0UNACAEEJoCCyAQBEAgExCaAgsgDwRAIAwQmgILIAkEQCAUEJoCCyAnp0UNIyAeEJoCDCMLIAAgAikDEDcCICAAQTBqIAJBIGooAgA2AgAgAEEoaiACQRhqKQMANwIAIAAgJzcCXCAAIB42AlggACAFNgJUIAAgCTYCUCAAIBQ2AkwgACANNgJIIAAgDzYCRCAAIAw2AkAgACALNgI8IAAgEDYCOCAAIBM2AjQgACARNgIcIAAgJiADrYQ3AhQgACAVNgIQIAAgKEIgiD4CDCAAICg+AgggACAENgIEIABBBjYCAAwrCwJAIARBBEkNACABIAZBCGsiAzYCBCABIAVBCGo2AgAgA0EESQ0AIAUoAAQhBCABIAZBDGsiAzYCBCABIAVBDGo2AgAgA0EESQ0AIAU1AAghJyABIAZBEGs2AgQgASAFQRBqNgIAIAU1AAwhJiAAIAQ2AgQgACAnICZCIIaENwIIIABBBzYCAAwrCyACQQA6ANsDIAJBJTsA2QMgAkEENgLcAyACQQE6ANgDIAAgAkHYA2oQ6go2AgQgAEETNgIADCoLIAJBBTYC5AEgAiABNgLgASACQdgDaiACQeABahD+ASACKALYAw0OIAJB+ABqIgEgAkHsA2ooAgA2AgAgAiACQeQDaikCADcDcCACKALcAyIJRQRAQQBB1IzAAEHcgsAAEO8HIQEMIAsgAkHgA2ooAgAhByACQYACaiABKAIANgIAIAIgAikDcDcD+AECQCACKALkASIBBEAgAiABQQFrNgLkASACKALgASIGKAIEIghBB00EQCACQoHKgICAATcD2AMgAkHYA2oQ6gohAQwhCyAGIAhBCGs2AgQgBiAGKAIAIgFBCGoiBDYCACACQZACaiABKQAAENIFIAIoApQCIQEgAigCkAINIAJAQYCAwAAgASABQYCAwABPGyIDRQRAQQEhCgwBC0GR+8MALQAAGiADQQEQggwiCkUNEgsgAkEANgLgAyACIAM2AtwDIAIgCjYC2AMgAQRAIAhBCWshAwNAIANBf0YEQCACQoHKgIAQNwOQAiACQZACahDqCiEBIAIoAtwDRQ0jIAIoAtgDEJoCDCMLIAYgAzYCBCAGIARBAWoiCDYCACAELQAAIQQgAigC3AMgC0YEQCACQdgDaiALEMsGIAIoAtgDIQogAigC4AMhCwsgCiALaiAEOgAAIAIgC0EBaiILNgLgAyADQQFrIQMgCCEEIAFBAWsiAQ0ACyACKALYAyEKIAIoAtwDIQMLIApFBEAgAyEBDCELIAYoAgQiBEEISQ0SIAYgBEEIayIBNgIEIAYgBigCACIIQQhqNgIAIAgpAAAiJ0KAgICAEFoEQCACQQE6ANgDIAIgJzcD4AMgAkHYA2ogAkGQAmpBtIDAABCpCCEBDCALIAFBCEkNEyAGIARBEGs2AgQgBiAIQRBqNgIAIAgpAAgiJkKAgICAEFoEQCACQQE6ANgDIAIgJjcD4AMgAkHYA2ogAkGQAmpBtIDAABCpCCEBDCALICanIg0gJ6ciBWwiASALRg0BIAJBkAJqIghBDGpBAjYCACACQdgDaiIEQQxqQgI3AgAgAiABNgKoASACQQI2AtwDIAJBvLHAADYC2AMgAkECNgKUAiACIAs2AsgBIAIgCDYC4AMgAiACQcgBajYCmAIgAiACQagBajYCkAIgAkEQaiIBIAQQpwQgCCABEIsJIAJB4wNqIAhBCGooAgA2AAAgAiACKQKQAjcA2wNBkfvDAC0AABpBEEEEEIIMIgFFDSwgAUEIOgAAIAEgAikA2AM3AAEgAUEIaiACQd8DaikAADcAACACKAIUBEAgAigCEBCaAgsgA0UNICAKEJoCDCALQQFB1IzAAEHcgsAAEO8HIQEMHwsCQCACKALkASIUBEAgAiAUQQFrIgQ2AuQBAkAgAigC4AEiECgCBCIPQQRJDQAgECgCACEMIBAgD0EEayIBNgIEIBAgDEEEajYCACABQQRJDQAgDCgAACERIBAgD0EIayIBNgIEIBAgDEEIajYCACABQQNLDQILIAJBADoA2wMgAkElOwDZAyACQQQ2AtwDIAJBAToA2AMgAkHYA2oQ6gohAQweC0ECQdSMwABB3ILAABDvByEBDB0LIAw1AAQhLCAQIA9BDGsiATYCBCAQIAxBDGo2AgACQCAEBEAgDDUACCEtIAIgFEECayIGNgLkASABQQRJDRQgECAPQRBrIgE2AgQgECAMQRBqNgIAIAFBBEkNFCAMKAAMIQggECAPQRRrIgE2AgQgECAMQRRqNgIAIAFBBEkNFCAMNQAQISkgECAPQRhrIgE2AgQgECAMQRhqNgIAAkAgAUEESQ0AIAw1ABQhKCAQIA9BHGsiATYCBCAQIAxBHGo2AgAgAUEESQ0AIAwoABghBCAQIA9BIGsiATYCBCAQIAxBIGo2AgAgAUEETw0CCyACQQA6ANsDIAJBJTsA2QMgAkEENgLcAyACQQE6ANgDIAJB2ANqEOoKIQEMHgtBA0HUjMAAQdyCwAAQ7wchAQwdCyAMNQAcIScgECAPQSRrIgE2AgQgECAMQSRqNgIAAkAgBgRAIAw1ACAhJiACIBRBA2s2AuQBIAFBCEkNFSAQIA9BLGs2AgQgECAMQSxqNgIAIAwpACQiK0KAgICAEFQNASACQQE6ANgDIAIgKzcD4AMgAkHYA2ogAkGQAmpBtIDAABCpCCEBDB4LQQRB1IzAAEHcgsAAEO8HIQEMHQsgACACKQP4ATcCDCAAQRRqIAJBgAJqKAIANgIAIAAgKz4CUCAAICZCIIYgJ4Q3AkggACAENgJEIAAgKEIghiAphDcCPCAAIAg2AjggACAtQiCGICyENwIwIAAgETYCLCAAIA02AiggACAFNgIkIAAgCzYCICAAIAM2AhwgACAKNgIYIAAgBzYCCCAAIAk2AgQgAEEINgIADCkLIAIgATYCXCACQQM2AmAgBEEHTQRAIAJCgcqAgIABNwPYAyACQdgDahDqCiEDDBsLIAEgBkEMazYCBCABIAVBDGo2AgAgAkGQAmogBSkABBDSBSACKAKUAiEEIAIoApACBEAgBCEDDBsLAkBBx+MBIAQgBEHH4wFPGyIDRQRAQQQhGQwBC0GR+8MALQAAGiADQSRsIgtBBBCCDCIZRQ0rC0EAIQsgAkEANgLEASACIAM2AsABIAIgGTYCvAECQAJ/AkAgBARAIAJB4ANqIQkgAkGYAmohBwNAIAJB2ANqIAEQ4AMgAigC3AMhCCACKALYAw0CIAJB+AFqIgNBEGoiDSAJQRBqKQIANwMAIANBCGoiBSAJQQhqKQIANwMAIAIgCSkCADcD+AEgAkGQAmogARAaIAIoApQCIgMgAigCkAIiBkETRg0DGiAJIAdBwAEQiA0aIAIgAzYC3AMgAiAGNgLYAyACQQhqIAJB2ANqEKQBIAIoAgwhESACKAIIIQoQuQYiAyAKRQ0DGiADEOQHIAJByAFqIgNBEGogDSkDACInNwMAIANBCGogBSkDACImNwMAIAJB4AFqIgNBCGoiBiAmNwMAIANBEGoiAyAnNwMAIAIgAikD+AEiJjcDyAEgAiAmNwPgASACKALAASALRgRAIAJBvAFqIAsQpwYgAigCvAEhGSACKALEASELCyAZIAtBJGxqIgUgCDYCACAFIAIpA+ABNwIEIAVBDGogBikDADcCACAFQRRqIAMpAwA3AgAgBSARNgIgIAUgCjYCHCACIAtBAWoiCzYCxAEgBEEBayIEDQALCyACKALAASEDIAIoArwBIglFDR0gAiAJNgJkIAIgA60gC61CIIaENwJoIAJB2ANqIAJB3ABqEE4gAigC2AMNFiACQfAAaiIEQQhqIgogAkHYA2oiAUEQaikCADcDACAEQRBqIgcgAUEYaikCADcDACAEQRhqIg0gAUEgaikCADcDACAEQSBqIgUgAUEoaikCADcDACAEQShqIgYgAUEwaikCADcDACAEQTBqIgggAkGQBGopAgA3AwAgAiABQQhqIhEpAgA3A3AgAkGYBGooAgAiBA0CQQFBwIPAAEHcgsAAEO8HIQMMHAsgCAshAyALBEAgGUEcaiEBA0AgASgCACIEKAIAIQggBCAIQQFrNgIAIAhBAUYEQCABEJoICyABQSRqIQEgC0EBayILDQALCyACKALAAUUNGyACKAK8ARCaAgwbCyACQZwEaikCACEmIAIoAtwDIQEgAkHEAmogCCkDADcCACACQbwCaiAGKQMANwIAIAJBtAJqIAUpAwA3AgAgAkGsAmogDSkDADcCACACQaQCaiAHKQMANwIAIAJBnAJqIAopAwA3AgAgAiACKQNwNwKUAiACICY3AtACIAIgBDYCzAIgAiABNgKQAiMAQSBrIgwkACACQdgDaiIGAn8gAkHcAGoiBCgCBCIBRQRAIAZBADYCBEEADAELIAQgAUEBazYCBAJAIAQoAgAiDygCBCIBQQdNBEAgDEKByoCAgAE3AwggDEEIahDqCiEEDAELIA8gAUEIayIHNgIEIA8gDygCACIBQQhqIg02AgAgDEEYaiABKQAAENIFIAwoAhwhBCAMKAIYDQACQAJAAkBBqtUCIAQgBEGq1QJPGyIBRQRAQQQhCgwBC0GR+8MALQAAGiABQRhsIghBBBCCDCIKRQ0wCyAMQQA2AhAgDCABNgIMIAwgCjYCCCAEBEADQCAHQQRJDQMgDyAHQQRrIgE2AgQgDyANQQRqIgU2AgAgAUEESQ0DIA0oAAAhCCAPIAFBBGsiATYCBCAPIAVBBGoiDTYCACABQQRJDQMgBTUAACEnIA8gAUEEayIFNgIEIA8gDUEEaiIBNgIAIAVBBEkNAyANNQAAISYgDyAFQQRrIgU2AgQgDyABQQRqIgc2AgAgBUEESQ0DIAEoAAAhASAPIAVBBGsiDTYCBCAPIAdBBGoiBTYCACANQQRJDQMgJkIghiAnhCEnIAc1AAAhJiAPIA1BBGsiBzYCBCAPIAVBBGoiDTYCACAmIAU1AABCIIaEISYgDCgCDCAURgRAIAxBCGogFBCpBiAMKAIQIRQgDCgCCCEKCyAKIBRBGGxqIgUgJjcCECAFIAE2AgwgBSAnNwIEIAUgCDYCACAMIBRBAWoiFDYCECAEQQFrIgQNAAsgDCgCCCEKIAwoAgwhAQsgCg0AIAEhBAwCCyAGIAo2AgQgBkEMaiAUNgIAIAZBCGogATYCAEEADAILIAxBADoAGyAMQSU7ABkgDEEENgIcIAxBAToAGCAMQRhqEOoKIQQgDCgCDEUNACAMKAIIEJoCCyAGIAQ2AgRBAQs2AgAgDEEgaiQAIAIoAtwDIQEgAigC2AMEQCABIQMMGQsgAUUEQEECQcCDwABB3ILAABDvByEDDBkLIBEpAgAhKSACQdgDaiEFIwBBEGsiDSQAAkAgAkHcAGoiCCgCBCIERQRAIAVBADYCAAwBCyAIIARBAWs2AgQCfwJAIAgoAgAiCigCBCIRQQRJDQAgCigCACEHIAogEUEEayIENgIEIAogB0EEajYCACAEQQRJDQAgBygAACEGIAogEUEIayIENgIEIAogB0EIajYCACAEQQRJDQAgBzUABCEoIAogEUEMayIENgIEIAogB0EMajYCAAJAAkAgBEEESQ0AIAc1AAghJyAKIBFBEGsiBDYCBCAKIAdBEGo2AgAgBEEESQ0AIAcoAAwhCCAKIBFBFGsiBDYCBCAKIAdBFGo2AgAgBEEETw0BCyANQQA6AAsgDUElOwAJIA1BBDYCDCANQQE6AAggDUEIahDqCgwCCyAHNQAQISYgBSAINgIQIAUgJ0IghiAohDcCCCAFIAY2AgQgBUEBNgIAIAogEUEYazYCBCAKIAdBGGo2AgAgBSAmIAc1ABRCIIaENwIUDAILIA1BADoACyANQSU7AAkgDUEENgIMIA1BAToACCANQQhqEOoKCyEEIAVBAjYCACAFIAQ2AgQLIA1BEGokACACKALYAyIIQQJGDRQgAkGwAWoiBiACQegDaikCADcDACACQbgBaiIEIAJB8ANqKAIANgIAIAIgAikC4AM3A6gBIAgNFUEDQcCDwABB3ILAABDvByEDDBcLIAJB2ANqIAEQWyACKALYAwRAIABBBGogAkHYA2pB4AAQiA0aIABBCjYCAAwoCyAAIAIoAtwDNgIEIABBEzYCAAwnCyAAAn8gBEEETwRAIAEgBkEIayIDNgIEIAEgBUEIajYCACADQQRJBEAgAkEAOgDbAyACQSU7ANkDIAJBBDYC3AMgAkEBOgDYAyACQdgDahDqCgwCCyAFKgAEIS4gASAGQQxrNgIEIAEgBUEMajYCACAAIAUqAAg4AgggACAuOAIEIABBCzYCAAwoCyACQQA6ANsDIAJBJTsA2QMgAkEENgLcAyACQQE6ANgDIAJB2ANqEOoKCzYCBCAAQRM2AgAMJgsgAAJ/IARBBE8EQCABIAZBCGsiAzYCBCABIAVBCGo2AgAgA0EESQRAIAJBADoA2wMgAkElOwDZAyACQQQ2AtwDIAJBAToA2AMgAkHYA2oQ6goMAgsgBSoABCEuIAEgBkEMazYCBCABIAVBDGo2AgAgACAFKgAIOAIIIAAgLjgCBCAAQQw2AgAMJwsgAkEAOgDbAyACQSU7ANkDIAJBBDYC3AMgAkEBOgDYAyACQdgDahDqCgs2AgQgAEETNgIADCULIAACfwJAAkAgBEEESQ0AIAEgBkEIayIDNgIEIAEgBUEIajYCACADQQRJDQAgBSgABCEEIAEgBkEMayIDNgIEIAEgBUEMajYCACADQQNLDQELIAJBADoA2wMgAkElOwDZAyACQQQ2AtwDIAJBAToA2AMgAkHYA2oQ6goMAQsgBTUACCEnIAEgBkEQayIDNgIEIAEgBUEQajYCACADQQNLDRMgAkEAOgDbAyACQSU7ANkDIAJBBDYC3AMgAkEBOgDYAyACQdgDahDqCgs2AgQgAEETNgIADCQLIAJB2ANqIAEQ3wIgAAJ/IAIoAtgDRQRAIAJBkAJqIgNBCGoiESACQdgDaiIEQRBqKQIANwMAIANBEGoiBiAEQRhqKQIANwMAIANBGGoiCCAEQSBqKQIANwMAIAIgBEEIaikCADcDkAIgASgCBCIEQQRJBEAgAkEAOgDbAyACQSU7ANkDIAJBBDYC3AMgAkEBOgDYAyACQdgDahDqCgwCCyACKALcAyEDIAEgBEEEazYCBCABIAEoAgAiAUEEajYCACABKAAAIQEgACACKQOQAjcCCCAAQRBqIBEpAwA3AgAgAEEYaiAGKQMANwIAIABBIGogCCkDADcCACAAIAE2AiggACADNgIEIABBDjYCAAwlCyACKALcAws2AgQgAEETNgIADCMLIAACfyAEQQRPBEAgASAGQQhrIgM2AgQgASAFQQhqNgIAIANBBEkEQCACQQA6ANsDIAJBJTsA2QMgAkEENgLcAyACQQE6ANgDIAJB2ANqEOoKDAILIAUoAAQhBCABIAZBDGsiAzYCBCABIAVBDGo2AgAgA0EDTQRAIAJBADoA2wMgAkElOwDZAyACQQQ2AtwDIAJBAToA2AMgAkHYA2oQ6goMAgsgBSoACCEuIAEgBkEQazYCBCABIAVBEGo2AgAgACAFKAAMNgIMIAAgLjgCCCAAIAQ2AgQgAEEPNgIADCQLIAJBADoA2wMgAkElOwDZAyACQQQ2AtwDIAJBAToA2AMgAkHYA2oQ6goLNgIEIABBEzYCAAwiCyAAAn8gBEEETwRAIAEgBkEIayIDNgIEIAEgBUEIajYCACADQQRJBEAgAkEAOgDbAyACQSU7ANkDIAJBBDYC3AMgAkEBOgDYAyACQdgDahDqCgwCCyAFKAAEIQQgASAGQQxrIgM2AgQgASAFQQxqNgIAIANBA00EQCACQQA6ANsDIAJBJTsA2QMgAkEENgLcAyACQQE6ANgDIAJB2ANqEOoKDAILIAUqAAghLiABIAZBEGs2AgQgASAFQRBqNgIAIAAgBSgADDYCDCAAIC44AgggACAENgIEIABBEDYCAAwjCyACQQA6ANsDIAJBJTsA2QMgAkEENgLcAyACQQE6ANgDIAJB2ANqEOoKCzYCBCAAQRM2AgAMIQsgAkHYA2ogARBbAkAgAigC2AMiHwRAIAIoArAEISAgAigCrAQhISACKAKkBCEiIAIoAqAEISMgAigCmAQhJCACKAKUBCElIAIoAowEIRggAigCiAQhHiACKAKABCETIAIoAvwDIRAgAigC9AMhDCACKALwAyEPIAIoAugDIRQgAigC5AMhCSACKALcAyEKIAEoAgQiC0EESQRAIAJBADoA2wMgAkElOwDZAyACQQQ2AtwDIAJBAToA2AMgAkHYA2oQ6gohASAKBEAgHxCaAgsgFARAIAkQmgILIAwEQCAPEJoCCyATBEAgEBCaAgsgGARAIB4QmgILICQEQCAlEJoCCyAiBEAgIxCaAgsgIEUNAiAhEJoCDAILIAIoArQEIQcgAigCqAQhDSACKAKcBCEFIAIoApAEIREgAigChAQhBiACKAL4AyEIIAIoAuwDIQQgAigC4AMhAyABIAtBBGs2AgQgASABKAIAIgFBBGo2AgAgACABKAAANgJkIAAgBzYCYCAAICA2AlwgACAhNgJYIAAgDTYCVCAAICI2AlAgACAjNgJMIAAgBTYCSCAAICQ2AkQgACAlNgJAIAAgETYCPCAAIBg2AjggACAeNgI0IAAgBjYCMCAAIBM2AiwgACAQNgIoIAAgCDYCJCAAIAw2AiAgACAPNgIcIAAgBDYCGCAAIBQ2AhQgACAJNgIQIAAgAzYCDCAAIAo2AgggACAfNgIEIABBETYCAAwiCyACKALcAyEBCyAAIAE2AgQgAEETNgIADCALIARBBE8EQCABIAZBCGs2AgQgASAFQQhqNgIAIAAgBSgABDYCBCAAQRI2AgAMIAsgAkKByoCAwAA3A9gDIAJB2ANqEOoKIQEgAEETNgIAIAAgATYCBAwfCyACKALcAyEBDB0LQQQgA0HQgcQAKAIAIgBBlwcgABsRAAAAC0EEIARB0IHEACgCACIAQZcHIAAbEQAAAAsgAigC3AMhAQwSCyACKALcAyEBDBALQQEgA0HQgcQAKAIAIgBBlwcgABsRAAAACyACQoHKgICAATcD2AMgAkHYA2oQ6gohAQwMCyACQoHKgICAATcD2AMgAkHYA2oQ6gohAQwLCyACQQA6ANsDIAJBJTsA2QMgAkEENgLcAyACQQE6ANgDIAJB2ANqEOoKIQEMCQsgAkKByoCAgAE3A9gDIAJB2ANqEOoKIQEMCAsgAigC3AMhAwwFCyACKALcAyEDDAILIAIoAtwDIQggACACKQOoATcCaCAAQfgAaiAEKAIANgIAIABB8ABqIAYpAwA3AgAgAkEQaiIEIAJBkAJqQcgAEIgNGiAAICk3AhQgACABNgIQIAAgCzYCDCAAIAM2AgggACAJNgIEIABBHGogBEHIABCIDRogACAINgJkIABBCTYCAAwSCyAFNQAMISYgASAGQRRrNgIEIAEgBUEUajYCACAAIAUoABA2AhAgACAENgIEIAAgJkIghiAnhDcCCCAAQQ02AgAMEQsgKadFDQAgARCaAgsgAkGQAmoiAUEcaigCAARAIAEoAhgQmgILIAFBKGooAgAEQCABKAIkEJoCCyABQTRqKAIABEAgASgCMBCaAgsgAUFAaygCAARAIAEoAjwQmgILCyACQeQAaiIGKAIIIggEQCAGKAIAQRxqIQUDQCAFKAIAIgEoAgAhBCABIARBAWs2AgAgBEEBRgRAIAUQmggLIAVBJGohBSAIQQFrIggNAAsLIAYoAgQEQCAGKAIAEJoCCwsgACADNgIEIABBEzYCAAwNCyADRQ0BIAoQmgIMAQsgA0UNACAKEJoCCyAHRQ0AIAkQmgILIAAgATYCBCAAQRM2AgAMCQsgACABNgIEIABBEzYCAAwICyACQoHKgIDAADcDcCACQfAAahDqCiEBIAIoAtwDRQ0AIAIoAtgDEJoCCyANRQ0AIBoQmgILIApFDQAgFxCaAgsgFUUNACARBEAgFRCaAgsgHkUNACAcEJoCCyAFRQ0AIBsQmgILICynRQ0AIAYQmgILICIEQCAhEJoCCyAkBEAgIxCaAgsgGARAICUQmgILICunRQ0AICAQmgILIAAgATYCBCAAQRM2AgALIAJBoAVqJAAPC0EEQRBB0IHEACgCACIAQZcHIAAbEQAAAAtBBCALQdCBxAAoAgAiAEGXByAAGxEAAAALQQQgCEHQgcQAKAIAIgBBlwcgABsRAAAAC8dUAit/GX0jAEGABGsiBiQAAkACQAJAAkACQAJAAkACQAJAIAAoAggEQAJAAkACQAJAAkACQAJAAkACQCAAQRRqKAIAIgUgACgCACIEKAKMAyIDTwRAIAZBCGoiByAEQSBqIAAoAgwgA0ECdGogBSADaxCJAyAEQRhqIAdBEGopAgA3AgAgBEEQaiAGQRBqKQIANwIAIAQgBikCCDcCCCACKAIQIhUgBCgCACIDTQ0JIAIoAggiD0UNCSAPIANB6AJsaiIDKAIARQ0JIAMoAgQgBCgCBEcNCSADQfgAaiAGKQIINwIAIANBiAFqIAZBGGopAgA3AgAgA0GAAWogBkEQaikCADcCACAAKAIIIgpBAk8EQEEBIQUDQCAAKAIIIgMgBU0NCCAAKAIAIgkgDGoiBEH4BmooAgAiByAFRg0HIAMgB00NBiAEQegDaiINKAIAIgMgFU8NBSAPIANB6AJsaiIIKAIARQ0FIAgoAgQgBEHsA2oiCygCAEcNBSAJIAdB6ANsaiIHKAIAIgMgFU8NBCAPIANB6AJsaiIDKAIARQ0EIAMoAgQgBygCBEcNBCAAKAIUIhcgBEH0BmooAgAiCUkNDSAGQSBqIARBiARqIAAoAgwgCUECdGogFyAJaxCJAyAHQaADaioCACIvIARBlAVqKgIAIjKUIAcqApQDIjMgBEGIBWoqAgAiNpSTIAdBmANqKgIAIjggBEGMBWoqAgAiOZSTIAdBnANqKgIAIjsgBEGQBWoqAgAiN5STITEgOCA3lCAvIDaUIDMgMpSSkiA7IDmUkyIuIAYqAjAiPZQgOyA2lCA4IDKUIC8gOZQgMyA3lJOSkiIwIAYqAiwiPpSTIjQgNJIhNCA7IDKUIDMgOZQgLyA3lJIgOCA2lJOSIi8gPpQgLiAGKgI0IjOUkyIyIDKSITIgBEGEBGogMyAxIDSUIC4gMpQgMCAwIDOUIC8gPZSTIjMgM5IiOJSTkpIiMzgCACAEQYAEaiA9IDEgMpQgLyA4lCAuIDSUk5KSIjY4AgAgBEH8A2ogPiAxIDiUIDAgNJQgLyAylJOSkiIyOAIAIAYqAiQiOyAulCAGKgIgIjcgMJSTIjggOJIhOCA3IC+UIAYqAigiNCAulJMiOSA5kiE5IARB+ANqIDQgMSA4lCAuIDmUIDAgNCAwlCA7IC+UkyI0IDSSIjSUk5KSIj04AgAgBEH0A2ogOyAxIDmUIC8gNJQgLiA4lJOSkiI7OAIAIARB8ANqIDcgMSA0lCAwIDiUIC8gOZSTkpIiNzgCACANKAIAIgcgFU8NAyAPIAdB6AJsaiIHKAIARQ0DIAcoAgQgCygCAEcNAyAEQcAHaioCACEvIARBxAdqKgIAITEgA0GAAWoqAgAhNCADQeABaioCACE+IAhB4AFqKgIAIT8gA0GIAWoqAgAhLiADQeQBaioCACE1IAhB5AFqKgIAITogA0GEAWoqAgAhMCAEQcgHaioCACE4IANB/ABqKgIAIUMgA0HoAWoqAgAhRCAIQegBaioCACFFIANB+ABqKgIAITwgB0GMAWogMyADQYwBaioCACI5kjgCACAHQYgBaiA2IC6SOAIAIAdBhAFqIDIgMJI4AgAgB0GAAWogPSA0kiAwIDogNZMiNJQgLiA/ID6TIj2Uk5IgMSAylCAvIDaUk5I4AgAgB0H8AGogOyBDkiA9IDmUIDAgRSBEkyIwlJOSIC8gM5QgOCAylJOSOAIAIAdB+ABqIDcgPJIgLiAwlCA0IDmUk5IgOCA2lCAxIDOUk5I4AgAgDEHoA2ohDCAKIAVBAWoiBUcNAAsgAigCECEVIAIoAgghDwsgACgChAIiAkUNDSAAQcgAaiEYAkAgAiAAQdgAaigCAEYEQAJAIAIgAEHUAGooAgAiAmwiBEUNACAYKAIAIgMgAkECdCIFaiEHIAMhAgNAIAMgBWoiCSACIAIgB0YiDBsiCEUNASAIQQA2AgAgAiAFaiAHIAwbIQcgCSADIAwbIQMgCCAEQQFHQQJ0aiECIARBAWsiBA0ACwsgAEGQAWooAgAiAiAAQZQBaigCAGwiBEUNASAAKAKEASIDIAJBAnQiBWohByADIQIDQCADIAVqIgkgAiACIAdGIgwbIghFDQIgCEEANgIAIAIgBWogByAMGyEHIAkgAyAMGyEDIAggBEEBR0ECdGohAiAEQQFrIgQNAAsMAQsCQCACIAJsIgNFBEBBBCEEDAELIANB/////wFLDRAgA0ECdCIFQQBIDRACQCAFRQRAQQQhBAwBC0GR+8MALQAAGiAFQQQQggwiBEUNCwsgBEEAIAUQiQ0aCyAAQcwAaigCAARAIBgoAgAQmgILIAAgAjYCWCAAIAI2AlQgACADNgJMIAAgBDYCSCAAQdAAaiADNgIAAkAgACgChAIiBSAFbCICRQRAQQQhBAwBCyACQf////8BSw0QIAJBAnQiA0EASA0QAkAgA0UEQEEEIQQMAQtBkfvDAC0AABogA0EEEIIMIgRFDQoLIARBACADEIkNGgsgAEGIAWooAgAEQCAAKAKEARCaAgsgACACNgKIASAAIAQ2AoQBIABBlAFqIAU2AgAgAEGQAWogBTYCACAAQYwBaiACNgIACyAAQdwBaiEZIABB5AFqKAIAIhogACgCCCIMRwRAIAAoAoQCIgNBA2whBUEEIQdBBCEEIAMEQCAFQf////8BSw0QIANBDGwiAkEASA0QIAIEQEGR+8MALQAAGiACQQQQggwiBEUNFgsgBEEAIAIQiQ0aCyAGIAM2AuQCIAYgBTYC4AIgBiAFNgLcAiAGIAQ2AtgCIBkgDCAGQdgCahDeASAAKAIIIQUgACgChAIiBEEDbCEDIAQEQCADQf////8BSw0QIARBDGwiAkEASA0QIAIEQEGR+8MALQAAGiACQQQQggwiB0UNFgsgB0EAIAIQiQ0aCyAGIAQ2AuQCIAYgAzYC4AIgBiADNgLcAiAGIAc2AtgCIABB6AFqIAUgBkHYAmoQ3gECQCAAKAKEAiIFQQZsIgNFBEBBBCEEDAELIANB/////wFLDRAgBUEYbCICQQBIDRACQCACRQRAQQQhBAwBC0GR+8MALQAAGiACQQQQggwiBEUNFgsgBEEAIAIQiQ0aCyAAQfgBaigCAARAIAAoAvQBEJoCCyAAIAM2AvgBIAAgBDYC9AEgAEGAAmogBTYCACAAQfwBaiADNgIAIAAoAgghGgsgGkUNDCAPRQ0PIABBhAFqISIgBkHIAWoiAkH4AGohIyACQeAAaiEkIAJBPGohGyACQSBqIRwgAkEEaiEdIAZBOGoiAkH4AGohJSACQeAAaiEmIAJBPGohHiACQSBqIR8gAkEEaiEgIAZB7AJqIRdBACENAkACQAJAA0ACQCAAKAIIIgIgDUsEQCAAKAIAIA1B6ANsaiIKKAIAIgIgFU8NFSAPIAJB6AJsaiILKAIARQ0VIAsoAgQgCigCBEYNAQwVCyANIAJBgLHBABDjCAALIAtB7AFqKgIAITEgC0HwAWoqAgAhMiALQfQBaioCACEzIAZB2AJqIAtBmAFqEIkEAkACQAJAIAAoAkQiAiANSwRAIAYqAuwCIT0gBioC6AIhOCAGKgLkAiE+IAYqAuACITkgBioC3AIhOyAGKgLYAiE/IAtBjAFqKgIAIS4gC0GEAWoqAgAhMCALQYgBaioCACEvIAAoAjwhAiAgQRBqQgA3AgAgIEEIakIANwIAICBCADcCACAfQgA3AgAgH0EIakIANwIAIB9BEGpCADcCACAeQgA3AgAgHkEIakIANwIAIB5BEGpCADcCACAmQgA3AgAgJkEIakEANgIAICVCADcCACAlQQhqQQA2AgAgBiA4OALAASAGIDk4ArwBIAYgODgCrAEgBiA7OAKkASAGIDk4ApQBIAYgOzgCkAEgBkMAAAAAQwAAgD8gM5UiNiAzQwjlPB5fGyA2IDNDCOU8nmAbIkM4AnAgBkMAAAAAQwAAgD8gMpUiMyAyQwjlPB5fGyAzIDJDCOU8nmAbIkQ4AlQgBkMAAAAAQwAAgD8gMZUiMiAxQwjlPB5fGyAyIDFDCOU8nmAbIkU4AjggBiA/OAKMASAGID44AqgBIAYgPTgCxAEgHUEQakIANwIAIB1BCGpCADcCACAdQgA3AgAgHEIANwIAIBxBCGpCADcCACAcQRBqQgA3AgAgG0IANwIAIBtBCGpCADcCACAbQRBqQgA3AgAgJEIANwIAICRBCGpBADYCACAjQgA3AgAgI0EIakEANgIAIAYgQzgCgAIgBiBEOALkASAGIEU4AsgBIAYgPSA9QwAAAACUIDggMJQiMSA5IC+UIjKTkiABlJI4AtQCIAYgPiA+QwAAAACUIDsgLpQiM5IgMZMgAZSSOAK4AiAGID8gMiA/QwAAAACUIDOTkiABlJI4ApwCIAYgOCA/IDCUIDsgL5QiMpIgOSAulCIxkiIzIDhDAAAAAJQiNiAxkiA9IDCUk5IgAZSSOALQAiA7IDCUIjcgPiAvlJIgOCAulCI0kiExIAYgOSA9IC+UIDlDAAAAAJQiNSA0k5IgMZMgAZSSOALMAiAGIDggNiA+IDCUIDKTkiAzkyABlJI4ArwCIAYgOyA5IDCUIjAgOCAvlCIykiA9IC6UkiIzIDIgO0MAAAAAlCIyID4gLpSTkpIgAZSSOAK0AiAGIDkgNSA3ID8gL5STkiAxkiABlJI4AqQCIAYgOyAyID8gLpSSIDCTIDOTIAGUkjgCoAIgDUEEdCIQIAJqIgJBDGohBCAYIAZBOGogAigCACAEKAIAELABICIgBkHIAWogAigCACAEKAIAELABIAAoAkQiBCANTQ0BIAAoAjwiBSAQaiInKAIAISggJ0EMaiIsKAIAIQwCQAJAAkACQCANBEAgCigCkAMiAiAAKAIIIgNPDQECQCAAKAIAIAJB6ANsaiIRKAIAIgMgFU8NACAPIANB6AJsaiIDKAIARQ0AIAMoAgQgESgCBEYNAwtB7JvBAEETQfCxwQAQ4QkACyAAKALkAUUNAgJAIBkoAgAiAkEMaigCACIFRQ0AIAIoAgAiBCEDIAVBA2wiBSICQQFxBEAgBEEANgIAIAQgBUEBayICQQBHQQJ0aiEDCyAFQQFGDQAgBEEMaiEHA0AgBEEMaiIJIAMgAyAHRiIFGyIIQQA2AgAgCCACQQFHQQJ0aiIIIANBDGogByAFGyIHRiEDIAkgBCAFGyIEQQxqIgUgCCADGyIJQQA2AgAgCEEMaiAHIAMbIQcgBSAEIAMbIQQgCSACQQJHQQJ0aiEDIAJBAmsiAg0ACwsgACgC8AFFDQMgACgC6AEiAkEMaigCACIFRQ0HIAIoAgAiBCEDIAVBA2wiBSICQQFxBEAgBEEANgIAIAQgBUEBayICQQBHQQJ0aiEDCyAFQQFGDQcgBEEMaiEHA0AgBEEMaiIJIAMgAyAHRiIFGyIIQQA2AgAgCCACQQFHQQJ0aiIIIANBDGogByAFGyIHRiEDIAkgBCAFGyIEQQxqIgUgCCADGyIJQQA2AgAgCEEMaiAHIAMbIQcgBSAEIAMbIQQgCSACQQJHQQJ0aiEDIAJBAmsiAg0ACwwHCyACIANB4LHBABDjCAALIAIgBEkNBCACIARBgLLBABDjCAALQQBBAEHAscEAEOMIAAtBAEEAQdCxwQAQ4wgACyANIAJBoLHBABDjCAALIA0gBEGwscEAEOMIAAsCQCACIA1HBEAgACgC5AEiBCANTQ0YIAIgBE8NGCAAKALwASIEIA1NDRggAiAETw0YIBkoAgAiByAQaiIOQQxqIhIoAgAhBCAEIAJBBHQiAiAHaiIJQQxqKAIARw0XIApBgANqLQAAIS0gA0GMAWoqAgAhNyADQYgBaioCACE2IANBhAFqKgIAITQgAiAFaiIDKAIAIRYgA0EMaigCACEHIAIgACgC6AEiAmohCCACIBBqIRMgBARAIAkoAgAhAiAOKAIAIQMDQCADIAIqAgA4AgAgA0EEaiACQQRqKgIAOAIAIANBCGogAkEIaioCADgCACACQQxqIQIgA0EMaiEDIARBAWsiBA0ACwsCfwJAIBNBDGoiKSgCACIEIAhBDGoiCSgCAEYEQCAIKAIAIQNBACEFIAQNAUEADAILDBkLIBMoAgAhAgNAIAIgAyoCADgCACACQQRqIANBBGoqAgA4AgAgAkEIaiADQQhqKgIAOAIAIANBDGohAyACQQxqIQIgBEEBayIEDQALIAgoAgAhAyAJKAIACyEJIAoqAswDITIgCkHUA2oqAgAhMyAKQdADaioCACExIA4oAgAhAgJ9IBIoAgAiKkUEQCAzIS8gMSEwIDIMAQsgCkHMA2ohCANAIAlFDRsgAyAFaiIrKgIAIi5DAAAAAJQgAiAFaiIEKgIAkiEwIAQgMDgCACAEQQRqIhQqAgAgMyAulJMhLyAUIC84AgAgMSAulCAEQQhqIiEqAgCSIS4gISAuOAIAICEgLiAyICtBBGoqAgAiLpSTIjU4AgAgFCAvIC5DAAAAAJSSIi84AgAgBCAwIDMgLpSSIjA4AgAgISA1ICtBCGoqAgAiLkMAAAAAlJI4AgAgFCAvIDIgLpSSOAIAIAQgMCAxIC6UkzgCACAJQQFrIQkgBUEMaiEFICpBAWsiKg0ACyASKAIAIQUgDigCACECIAgqAgghLyAIKgIEITAgCCoCAAshLgJ/QQAgBUUNABogLyALKgKIASI6lCAwIAsqAowBIjyUkyAKKgIIIjUgNZKSITUgMCALKgKEASJAlCAuIDqUkyAKQRBqKgIAIjAgMJKSITAgLiA8lCAvIECUkyAKQQxqKgIAIi4gLpKSIS5BACEEIBZBFGoiCCEDA0AgBCAHRg0bIAIgA0EIayoCACIvQwAAAACUIAIqAgCSIjw4AgAgAkEEaiIJKgIAIDAgL5STITogCSA6OAIAIC4gL5QgAkEIaiIUKgIAkiEvIBQgLzgCACAUIC8gNSADQQRrKgIAIi+UkyJAOAIAIAkgOiAvQwAAAACUkiI6OAIAIAIgPCAwIC+UkiI8OAIAIBQgQCADKgIAIi9DAAAAAJSSOAIAIAkgOiA1IC+UkjgCACACIDwgLiAvlJM4AgAgAkEMaiECIANBGGohAyAFIARBAWoiBEcNAAsgDigCACECQQAgEigCACIERQ0AGiAKQQhqIgMqAgghLiADKgIEITAgAyoCACEvIAchBQNAIAVFDRsgAiAIQQhrKgIAIjVDAAAAAJQgAioCAJIiPDgCACACQQRqIgMqAgAgLiA1lJMhOiADIDo4AgAgMCA1lCACQQhqIgkqAgCSITUgCSA1OAIAIAkgNSAvIAhBBGsqAgAiNZSTIkA4AgAgAyA6IDVDAAAAAJSSIjo4AgAgAiA8IC4gNZSSIjw4AgAgCSBAIAgqAgAiNUMAAAAAlJI4AgAgAyA6IC8gNZSSOAIAIAIgPCAwIDWUkzgCACAFQQFrIQUgAkEMaiECIAhBGGohCCAEQQFrIgQNAAsgDigCACECIBIoAgALIgQEQCA0IDKUIi4gNiAxlCIwkkMAAAAAkiEvIDJDAAAAAJQiNSA3IDGUkyA0QwAAAACUIjqTITwgNkMAAAAAlCAxQwAAAICUIDcgMpSTkiFAIDogNiAzlJMgNZMhNSAuIDcgM5RDAAAAAJIiLpIhOiAzQwAAAACUIkEgN0MAAAAAlCJCkyA2IDKUkyEyIDFDAAAAAJQgNkMAAACAlCA0IDOUk5IhMyBCIEGTIDQgMZSTITEgMCAukiFBIBZBFGohAyAHIQgDQCAIRQ0bIAIgQSADQQhrKgIAIi6UIAIqAgCSIkI4AgAgMSAulCACQQRqIgUqAgCSITAgBSAwOAIAIDMgLpQgAkEIaiIJKgIAkiEuIAkgLjgCACAJIC4gNSADQQRrKgIAIi6UkiJGOAIAIAUgMCA6IC6UkiIwOAIAIAIgQiAyIC6UkiJCOAIAIAkgRiAvIAMqAgAiLpSSOAIAIAUgMCA8IC6UkjgCACACIEIgQCAulJI4AgAgCEEBayEIIAJBDGohAiADQRhqIQMgBEEBayIEDQALCyApKAIAIggEQCATKAIAIQIgFkEUaiEDIApBHGoqAgAhLiAKQRRqKgIAITAgCkEYaioCACEvA0AgB0UNGyACIAIqAgAgA0EIayoCACIxQwAAAACUkyIzOAIAIAJBBGoiBCoCACAuIDGUkyEyIAQgMjgCACAvIDGUIAJBCGoiBSoCAJIhMSAFIDE4AgAgBSAxIDAgA0EEayoCACIxlJMiNTgCACAEIDIgMUMAAAAAlJMiMjgCACACIDMgLiAxlJIiMzgCACAFIDUgAyoCACIxQwAAAACUkzgCACAEIDIgMCAxlJI4AgAgAiAzIC8gMZSTOAIAIAdBAWshByACQQxqIQIgA0EYaiEDIAhBAWsiCA0ACwsgEigCACAKKAKMAyICQQYgLWkiBGsiB2pJDRkgDigCACEDIAZB2AJqQQBBkAEQiQ0aIAdBB08NGSAGIAc2AvwDIAYgBkHYAmo2AvgDIAYgEUGgA2oqAgAiLiAKQawBaioCACIwlCARKgKUAyIvIApBoAFqKgIAIjGUkyARQZgDaioCACIyIApBpAFqKgIAIjOUkyARQZwDaioCACI1IApBqAFqKgIAIjqUkzgC9AMgBiA1IDCUIC8gM5QgLiA6lJIgMiAxlJOSOALwAyAGIDUgMZQgMiAwlCAuIDOUIC8gOpSTkpI4AuwDIAYgMiA6lCAuIDGUIC8gMJSSkiA1IDOUkzgC6AMgCkEgaiAGQegDaiAGQfgDahCxASAEQQZGIg5FBEAgAyACQQxsaiECIARBBmshBSA0IDSSIS4gNiA2kiEwIDcgN5IhLyAGQdgCaiEDA0AgBUUNGyACIAMqAgAiMUMAAAAAlCACKgIAkiIzOAIAIC8gMZQgAkEEaiIIKgIAkiEyIAggMjgCACACQQhqIgkqAgAgMCAxlJMhMSAJIDE4AgAgCSAxIC4gA0EEaioCACIxlJIiNTgCACAIIDIgMUMAAAAAlJIiMjgCACACIDMgLyAxlJMiMzgCACAJIDUgA0EIaioCACIxQwAAAACUkjgCACAIIDIgLiAxlJM4AgAgAiAzIDAgMZSSOAIAIAJBDGohAiADQRhqIQMgBUEBaiIFDQALCyApKAIAIApBjANqKAIAIgIgB2pJDRkgDg0CIBMoAgAgAkEMbGohAiAEQQZrIQUgFyEDA0AgBUUNAiACIANBCGsqAgAiLkMAAAAAlCACKgIAkiIvOAIAIDcgLpQgAkEEaiIEKgIAkiEwIAQgMDgCACACQQhqIgcqAgAgNiAulJMhLiAHIC44AgAgByAuIDQgA0EEayoCACIulJIiMTgCACAEIDAgLkMAAAAAlJIiMDgCACACIC8gNyAulJMiLzgCACAHIDEgAyoCACIuQwAAAACUkjgCACAEIDAgNCAulJM4AgAgAiAvIDYgLpSSOAIAIAJBDGohAiADQRhqIQMgBUEBaiIFDQALDAILIAZB5AJqQgA3AgAgBkEBNgLcAiAGQbSIwgA2AtgCIAZBmL/AADYC4AIgBkHYAmpBoInCABDcCgALDBcLAn0CQCAAKALkASICIA1LBEAgACgC8AEiAiANTQ0EIAAoAtwBIBBqIgcoAgAhAiAKKgLYAyEyIApB4ANqKgIAITMgCkHcA2oqAgAhMUEAIQkgB0EMaiISKAIAIgUNAUEAIQggMSE2IDIhMCAzDAILIA0gAkGQssEAEOMIAAsgCkHYA2ohCiAAKALoASAQaiIEKAIAIRYgBEEMaigCACEIQQAhBANAIAhFDRggBCAWaiITKgIAIi5DAAAAAJQgAiAEaiIDKgIAkiEwIAMgMDgCACADQQRqIg4qAgAgMyAulJMhLyAOIC84AgAgMSAulCADQQhqIhEqAgCSIS4gESAuOAIAIBEgLiAyIBNBBGoqAgAiLpSTIjY4AgAgDiAvIC5DAAAAAJSSIi84AgAgAyAwIDMgLpSSIjA4AgAgESA2IBNBCGoqAgAiLkMAAAAAlJI4AgAgDiAvIDIgLpSSOAIAIAMgMCAxIC6UkzgCACAIQQFrIQggBEEMaiEEIAVBAWsiBQ0ACyASKAIAIQggBygCACECIAoqAgQhNiAKKgIAITAgCioCCAshLiALKgKIASEvIAsqAoQBITcgCyoCjAEhNCAIBEAgNiA3lCAwIC+UkyE1IDAgNJQgLiA3lJMhMCAuIC+UIDYgNJSTIS4gKEEUaiEDIAwhBQNAIAVFDRggAiADQQhrKgIAIi9DAAAAAJQgAioCAJIiNzgCACACQQRqIgQqAgAgNSAvlJMhNiAEIDY4AgAgMCAvlCACQQhqIgkqAgCSIS8gCSAvOAIAIAkgLyAuIANBBGsqAgAiL5STIjQ4AgAgBCA2IC9DAAAAAJSSIjY4AgAgAiA3IDUgL5SSIjc4AgAgCSA0IAMqAgAiL0MAAAAAlJI4AgAgBCA2IC4gL5SSOAIAIAIgNyAwIC+UkzgCACAFQQFrIQUgAkEMaiECIANBGGohAyAIQQFrIggNAAsgEigCACEJIAsqAowBITQgCyoCiAEhLyALKgKEASE3IAcoAgAhAgsgCQRAIDEgL5QiLiAyIDeUIjCSQwAAAACSITYgMkMAAAAAlCI1IDEgNJSTIDdDAAAAAJQiOpMhPCAvQwAAAACUIDFDAAAAgJQgMiA0lJOSIUAgOiAzIC+UkyA1kyE1IDMgNJRDAAAAAJIiOiAwkiFBIDNDAAAAAJQiMCA0QwAAAACUIjSTIDIgL5STITIgMUMAAAAAlCAvQwAAAICUIDMgN5STkiEvIDQgMJMgMSA3lJMhMSAuIDqSITMgKEEUaiEDA0AgDEUNGCACIDMgA0EIayoCACIulCACKgIAkiI3OAIAIDEgLpQgAkEEaiIEKgIAkiEwIAQgMDgCACAvIC6UIAJBCGoiBSoCAJIhLiAFIC44AgAgBSAuIDUgA0EEayoCACIulJIiNDgCACAEIDAgQSAulJIiMDgCACACIDcgMiAulJIiNzgCACAFIDQgNiADKgIAIi6UkjgCACAEIDAgPCAulJI4AgAgAiA3IEAgLpSSOAIAIAxBAWshDCACQQxqIQIgA0EYaiEDIAlBAWsiCQ0ACwsgACgC5AEiAiANTQ0CIAAoAvABIgIgDUsEQAJ/AkAgACgCgAIiByAAKALcASAQaiICQQxqKAIARgRAIAAoAvQBIQUgBwRAIAAoAugBIBBqIQwgAigCACECIAUhAyAHIQQDQCADIAIqAgA4AgAgA0EEaiACQQRqKgIAOAIAIANBCGogAkEIaioCADgCACACQQxqIQIgA0EYaiEDIARBAWsiBA0ACyAHQQFxIQQgQyABlCEuIEQgAZQhMCBFIAGUIS9BACEDIAdBAUcEQCAHQX5xIQcgBSECA0AgAiAvIAIqAgCUOAIAIAJBBGoiCCAwIAgqAgCUOAIAIAJBCGoiCCAuIAgqAgCUOAIAIAJBGGoiCCAvIAgqAgCUOAIAIAJBHGoiCCAwIAgqAgCUOAIAIAJBIGoiCCAuIAgqAgCUOAIAIAJBMGohAiAHIANBAmoiA0cNAAsLIAQEQCAFIANBGGxqIgIgLyACKgIAlDgCACACQQRqIgQgMCAEKgIAlDgCACACQQhqIgIgLiACKgIAlDgCAAsgACgC9AEhBSAAKAKAAiIIDQILQQAMAgsMFwsgDEEMaigCACEDIAwoAgAhAiA9IAGUITIgOCABlCEuID4gAZQhMyA5IAGUITAgOyABlCEvID8gAZQhNgNAIANFDRkgBUEUaiIEIDAgAioCACIxlCI4OAIAIAVBEGoiByAvIDGUIjk4AgAgBUEMaiIMIDYgMZQiOzgCACAEIDggLiACQQRqKgIAIjGUkiI4OAIAIAcgOSAzIDGUkiI5OAIAIAwgOyAvIDGUkiI7OAIAIAQgOCAyIAJBCGoqAgAiMZSSOAIAIAcgOSAuIDGUkjgCACAMIDsgMCAxlJI4AgAgA0EBayEDIAVBGGohBSACQQxqIQIgCEEBayIIDQALIAAoAvQBIQUgACgCgAILIQkgLCgCACEDICcoAgAhCiAAKAKQASECIAYgACgClAEiBDYC/AMgBiACNgL4AyAGIAk2AuwDIAYgAzYC6AMgAiADRw0EIAQgCUcNBAJAIAlFDQAgA0UNACAiKAIAIQwgA0ECdCEQQQAhCANAIAUgCEEYbGohCyAMIQQgAyEHIAohAgNAIAQgBCoCACACKgIAIAsqAgCUQwAAAACSIAJBBGoqAgAgC0EEaioCAJSSIAJBCGoqAgAgC0EIaioCAJSSIAJBDGoqAgAgC0EMaioCAJSSIAJBEGoqAgAgC0EQaioCAJSSIAJBFGoqAgAgC0EUaioCAJSSkjgCACAEQQRqIQQgAkEYaiECIAdBAWsiBw0ACyAMIBBqIQwgCSAIQQFqIghHDQALCyAaIA1BAWoiDUcNAQwRCwsgDSACQcCywQAQ4wgACyANIAJBoLLBABDjCAALIA0gAkGwssEAEOMIAAsgBkIANwLkAiAGQZi/wAA2AuACIAZBATYC3AIgBkGE/sAANgLYAiAGQfgDaiAGQegDaiAGQdgCakGkisEAEOIKAAsgAyAFQZCwwQAQ4ggAC0Hsm8EAQRNB6OnBABDhCQALQeybwQBBE0Hwr8EAEOEJAAtB7JvBAEETQeCvwQAQ4QkACyAGQeQCakIANwIAIAZBATYC3AIgBkHgusEANgLYAiAGQZi/wAA2AuACIAZB2AJqQei6wQAQ3AoACyAGQeQCakIANwIAIAZBATYC3AIgBkGwusEANgLYAiAGQZi/wAA2AuACIAZB2AJqQbi6wQAQ3AoACyAFIANB8LnBABDjCAALQQQgA0HQgcQAKAIAIgBBlwcgABsRAAAAC0EEIAVB0IHEACgCACIAQZcHIAAbEQAAAAtB7JvBAEETQejpwQAQ4QkAC0EAQQBB0K/BABDjCAALIAkgF0GAsMEAEOIIAAsCQCAAKAKEAiIDRQ0AQQAhAgJAAkADQAJAIAJBAEciBSAAKAIoIgRBAUZxRQRAIAQgAkEAIARBAUcbIgRLDQELQcCFwQBBG0HAsMEAELsLAAsCQCAAKAKQASIHIAJNDQAgACgClAEgAk0NACAAKAKEASAHQQFqIAJsQQJ0aiIHIAAoAhwgBEECdGoqAgAgAZQgByoCAJI4AgAgBSAAKAIoIgRBAUZxDQIgBCACQQAgBEEBRxsiBE0NAiAAKAJUIgUgAk0NAyAAKAJYIAJNDQMgGCgCACAFQQFqIAJsQQJ0aiIFIAAoAhwgBEECdGoqAgAgAZQgBSoCAJI4AgAgAyACQQFqIgJHDQEMBAsLQcCFwQBBG0HQsMEAELsLAAtBwIXBAEEbQeCwwQAQuwsAC0HAhcEAQRtB8LDBABC7CwALIAAoAoQBIQdBBCEDQQAhBAJAIABBjAFqKAIAIgVFDQAgBUH/////AUsNAiAFQQJ0IgJBAEgNAiACRQ0AQZH7wwAtAAAaIAJBBBCCDCIDRQ0HIAIhBAsgAyAHIAQQiA0hAiAGIAU2AtABIAYgBTYCzAEgBiACNgLIASAGIABBkAFqKQIANwLUASAAQZgBaiECIAZB2AJqIAZByAFqEGMgAEGcAWooAgAEQCACKAIAEJoCCyAAQbABaigCAARAIABBrAFqKAIAEJoCCyACIAYpAtgCNwIAIAJBIGogBkHYAmoiBEEgaikCADcCACACQRhqIARBGGopAgA3AgAgAkEQaiAEQRBqKQIANwIAIAJBCGogBEEIaikCADcCACAAKAJIIQdBBCEDQQAhBAJAIABB0ABqKAIAIgVFDQAgBUH/////AUsNAiAFQQJ0IgJBAEgNAiACRQ0AQZH7wwAtAAAaIAJBBBCCDCIDRQ0HIAIhBAsgAyAHIAQQiA0hAiAGIAU2AtABIAYgBTYCzAEgBiACNgLIASAGIAApAlQ3AtQBIABB3ABqIQIgBkHYAmogBkHIAWoQYyAAQeAAaigCAARAIAIoAgAQmgILIABB9ABqKAIABEAgAEHwAGooAgAQmgILIAIgBikC2AI3AgAgAkEgaiAGQdgCaiIAQSBqKQIANwIAIAJBGGogAEEYaikCADcCACACQRBqIABBEGopAgA3AgAgAkEIaiAAQQhqKQIANwIACyAGQYAEaiQADwsQ2woAC0Hsm8EAQRNBkLHBABDhCQALQdiLwQBBNEGMjMEAELsLAAsgBkHkAmpCADcCACAGQQE2AtwCIAZBsInCADYC2AIgBkGYv8AANgLgAiAGQdgCakG4icIAENwKAAtBpv7AAEEdQcD/wAAQuwsAC0EEIAJB0IHEACgCACIAQZcHIAAbEQAAAAuAVgMnfwt9An4jAEGQAmsiCSQAIwBBIGsiCiQAAkACQAJAAkAgBigCACIMRQ0AIApBGGogDCAGKAIEKAIcEQAAIApBCGogCigCGCIIIAooAhxBDGooAgARAAAgCEUNACAKKQMIQvSkgrLsqMOpfYUgCkEQaikDAELy4qm04KmkxASFhFANAQtBkfvDAC0AABpB2ABBBBCCDCILRQ0BIAtC////+////79/NwJQIAtC////+/f//79/NwJIIAtC////+/f//7//ADcCQCALQgA3AjggC0KAgICAwAA3AjAgC0IANwIoIAtB+JDCADYCJCALQQA2AiAgC0IENwIYIAtCADcCECALQoCAgIDAADcCCCALQgQ3AgACQCAMRQ0AIAwgBigCBCII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KgIAIAQqAhhdGyEFIAAgCEHAAWoiCEcNAAsLIAVFDQACQCAFIA5qKAIAQf////97TQ0AAkACQAJAAkAgC0UEQCAKQZABaiADIAEoAqABEPIDIAooApABRQ0OIAxFDQIgCigCnAEhCSAKKAKYASEAIAooApQBIQUgASgCoAEiBCASSSEIIARBACASIAgbayIRIAxuIQQgESAEIAxsayERAn0gCEUEQCAKQZABaiADIBEgBBCoAiAKKgLcASEnIAoqAtgBISQgCioC1AEhIiAKKgLQASEhIAoqAswBISUgCioCyAEhKCAKKgLEASEjIAoqArwBISYgCigCuAEhCCAKKgLAAQwBCyAKQZABaiADIBEgBBCoAiAKKgK0ASEnIAoqArABISQgCioCrAEhIiAKKgKoASEhIAoqAqQBISUgCioCoAEhKCAKKgKcASEjIAoqApQBISYgCigCkAEhCCAKKgKYAQshBiAIDQFB9MLAAEErQaztwAAQqgoACyAKQZABaiADIAEoAqQBEPIDIAooApABRQ0NIAxFDQIgCigCnAEhCSAKKAKYASEAIAooApQBIQUgASgCpAEiBCASSSEIIARBACASIAgbayIRIAxuIQQgESAEIAxsayERAn0gCEUEQCAKQZABaiADIBEgBBCoAiAKKgLcASEnIAoqAtgBISQgCioC1AEhIiAKKgLQASEhIAoqAswBISUgCioCyAEhKCAKKgLEASEjIAoqArwBISYgCigCuAEhCCAKKgLAAQwBCyAKQZABaiADIBEgBBCoAiAKKgK0ASEnIAoqArABISQgCioCrAEhIiAKKgKoASEhIAoqAqQBISUgCioCoAEhKCAKKgKcASEjIAoqApQBISYgCigCkAEhCCAKKgKYAQshBiAIRQ0DCyAoICaTIiggJCAGkyIklCAlIAaTIiUgIiAmkyImlJMiBiAGlCAlICcgI5MiJ5QgISAjkyIiICSUkyIjICOUICIgJpQgKCAnlJMiJiAmlJKSIidDAACAKF5FDQMgAUGUAUGIASALG2oqAgAhJCABQZgBQYwBIAsbaioCACEiIAFBnAFBkAEgCxtqKgIAIAYgJxCbASIGlZQgJCAjIAaVlCAiICYgBpWUkpKLQ3L5fz9eRQ0DIA0gBRDfASANIAAQ3wEgDSAJEN8BDAQLQbDQwABBGUGg9sAAEKoKAAtB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CGoiGCAFQQhqIgwpAgA3AwAgByAHKQLYBjcDiAMgBy0AjAchEyAFIAcoAvgBIAcoAoACIAdBtAJqIAdB5AJqEL8EIAdBwANqIgNBMGogCCgCADYCACADQShqIAkpAgA3AwAgA0EgaiAKKQIANwMAIANBGGogDSkCADcDACADQRBqIAspAgA3AwAgA0EIaiAMKQIANwMAIAcgBykC2AY3A8ADIActAIwHIRUgBSAHKAL4ASAHKAKAAiAHQcACaiAHQfACahC/BCAHQfgDaiIDQTBqIAgoAgA2AgAgA0EoaiAJKQIANwMAIANBIGogCikCADcDACADQRhqIA0pAgA3AwAgA0EQaiALKQIANwMAIANBCGogDCkCADcDACAHIAcpAtgGNwP4AyAHLQCMByEWIAUgBygC+AEgBygCgAIgB0HMAmogB0H8AmoQvwQgB0GwBGoiA0EwaiAIKAIANgIAIANBKGogCSkCADcDACADQSBqIAopAgA3AwAgA0EYaiANKQIANwMAIANBEGogCykCADcDACADQQhqIAwpAgA3AwAgByAHKQLYBjcDsAQgBy0AjAchDSAHKAKIAiIDIAcoAowCIglGBEAgFCAJELYGIAcoAowCIQkgBygCiAIhAwsgBygChAIiBSAJQTRsaiIIIAcpA4gDNwIAIAhBMGogECgCADYCACAIQShqIBIpAwA3AgAgCEEgaiARKQMANwIAIAhBGGogDikDADcCACAIQRBqIBcpAwA3AgAgCEEIaiAYKQMANwIAIAcgCUEBaiIJNgKMAiADIAlGBEAgFCADELYGIAcoAoQCIQUgBygCjAIhCSAHKAKIAiEDCyAFIAlBNGxqIgggBykDwAM3AgAgCEEwaiAHQcADaiIKQTBqKAIANgIAIAhBKGogCkEoaikDADcCACAIQSBqIApBIGopAwA3AgAgCEEYaiAKQRhqKQMANwIAIAhBEGogCkEQaikDADcCACAIQQhqIApBCGopAwA3AgAgByAJQQFqIgk2AowCIAMgCUYEQCAUIAMQtgYgBygChAIhBSAHKAKMAiEJIAcoAogCIQMLIAUgCUE0bGoiCCAHKQP4AzcCACAIQTBqIAdB+ANqIgpBMGooAgA2AgAgCEEoaiAKQShqKQMANwIAIAhBIGogCkEgaikDADcCACAIQRhqIApBGGopAwA3AgAgCEEQ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QwAAAAAhiAFD//9/fyGHAUP//3//IYYBQwAAAAAhhQFD//9/fyGEAUP//3//IYMBQwAAAAAhggFD//9/fyGBAUP//3//IYABQwAAAAAhf0P//39/IX5D//9//yF9QwAAAAAhfEP//39/IXtD//9//yF6QwAAgD8heUMAAAAAIXhDAAAAACF3QwAAAAAhdkP//39/IZIBQwAAAAAhkwFBACE3Q///f38hlAFDAAAAACGVAUEAITpD//9/fyGWAUMAAAAAIZcBQQAhPUP//39/IZgBQwAAAAAhmQFBACFAQ///f38hmgFDAAAAACGbAUEAIUNBACEvQT8hB0EBIQULIAogCigChAIgB0H/AXFpa0EGajYChAIgCigCCCIDIAooAgRGBEAgCiADELEGIAooAgghAwsgCigCACADQegDbGoiASAEKQPoBjcDACABIHk4AiwgASB4OAIoIAEgdzgCJCABIHY4AiAgASAEKQPABjcDMCABQRhqIG4pAwA3AwAgAUEQaiBvKQMANwMAIAFBCGogcCkDADcDACABQThqIC4pAwA3AwAgAUFAayAtKQMANwMAIAFByABqICwpAwA3AwAgAUHQAGogHykDADcDACABIC82ApwBIAEgigE4ApgBIAEgiQE4ApQBIAEgiAE4ApABIAEghwE4AowBIAEghgE4AogBIAEghQE4AoQBIAEghAE4AoABIAEggwE4AnwgASCCATgCeCABIIEBOAJ0IAEggAE4AnAgASB/OAJsIAEgfjgCaCABIH04AmQgASB8OAJgIAEgezgCXCABIHo4AlggASCLATgCrAEgASCMATgCyAEgASCNATgCzAEgASCOATgC0AEgASCPATgC1AEgAUGoAWogMCgCADYCACABIAQpA7AGNwKgASABIAQpA5gGNwOwASABQbgBaiAyKQMANwMAIAFBwAFqIDEpAwA3AwAgASAEKQOIBjcD2AEgAUHgAWogMykDADcDACABIDQ6APABIAEgkQE4AuwBIAEgkAE4AugBIAEgNzoAjAIgASCTATgCiAIgASCSATgChAIgASAEKQPwBTcA8QEgAUH5AWogNikDADcAACABQYACaiA1KAAANgAAIAEgBCkD2AU3AI0CIAFBlQJqIDkpAwA3AAAgAUGcAmogOCgAADYAACABIDo6AKgCIAEglQE4AqQCIAEglAE4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iKe+ICSTlJMhGwJAIBxDAAAAAFsEQCAbIRwMAQsgHCAblEMAAAAAXQ0ECyAAQQhqIQAgHSEbIAFBAWsiAQ0ACwwBC0EEQQRBvPfAABDjCAALIAdByABqIAIgCEEMbGoiAEEIaiIBKAIANgIAIAcgACkCADcDQCA3ICwgACoCACIck5QgNSAwIAAqAgQiHZOUkiA0ICcgASoCACIkk5SSICOVIhsgBF9FDQAgISAcICsgG5SSIDaTIiKUIB8gHSAmIBuUkiAzkyIplJMiHCAckiEcICAgKZQgISAkICggG5SSICqTIiSUkyIdIB2SIR0gByAkICUgHJQgISAdlCAfIB8gJJQgICAilJMiJCAkkiIklJOSkjgCYCAHICkgJSAklCAfIByUICAgHZSTkpI4AlwgByAiICUgHZQgICAklCAhIByUk5KSOAJYIAdBiAFqIgEgC0EIaigCADYCACANIA4pAgA3AgAgDUEIaiAOQQhqKAIANgIAIAcgCykCADcDgAEgAiAIQQJ0akEwaigCACIAIBEgBhshCCARIAAgBhshFCAFKAKEASIAIAUoAoABRgRAIBMgABChBiAFKAKEASEACyAFIABBAWo2AoQBIAUoAnwgAEEwbGoiACAHKQOAATcCACAAQQA2AiwgAEIANwIkIAAgCDYCICAAIBQ2AhwgACAbOAIYIABBCGogASkDADcCACAAQRBqIAdBkAFqKQMANwIACyAJIAxHDQALDAILIAEqAggiKbxBgICAgHhxQYCAgPwDcr4hGyADKgIIIiEgACoCBCIllCADKgIEIiAgACoCCCImlJMiHCAckiEcICAgACoCACIrlCADKgIAIh8gJZSTIh4gHpIhHSABKgIAIjYgASoCBCIzlEMAAIC/ICkgG5KVIiiUIh4gACoCECIkIB8gACoCDCIjIByUICUgHZQgJiAfICaUICEgK5STIh8gH5IiKpSTkpKSIiKUIDMgM5QgKJQgG5IiHyAAQRRqKgIAIicgICAjICqUICYgHJQgKyAdlJOSkpIiLJSSIDMgAEEYaioCACIwICEgIyAdlCArICqUICUgHJSTkpKSIjGUkyEcIDYgG4yUIh0gMZQgNiA2IBuUlCAolEMAAIA/kiIhICKUIB4gG5QiGyAslJKSISogJSADQRRqKgIAIi6UICYgA0EQaioCACIvlJMiICAg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IAcgLDgChAEgByAxOAKAASAlICIgJJMiLZQgKyAoICeTIi+UkyIEIASSIQQgJiAvlCAlICogMJMiLpSTIhsgG5IhGyAHIC4gIyAElCAlIBuUICsgKyAulCAmIC2UkyIuIC6SIi6Uk5KSOAIIIAcgLyAjIC6UICsgBJQgJiAblJOSkjgCBCAHIC0gIyAblCAmIC6UICUgBJSTkpI4AgACfwJAAkACQCABDgMAAQILCyACQTBqDAILIAJBQGsMAQsgAkE0agsoAgAhAQJ/AkACQAJAIAgOAwABAgsLIANBMGoMAgsgA0FAawwBCyADQTRqCyEAIAVB/ABqIQ8gB0EoaiINIAcgB0GAAWoiCSAGGyIIQQhqKAIANgIAIAdBNGogCSAHIAYbIglBCGooAgA2AgAgByAIKQIANwMgIAcgCSkCADcCLCABIAAoAgAiACAGGyEOIAAgASAGGyELIDYgIiAxk5QgMyAoICyTlJIgKSAqIDKTlJIhBCAFQYQBaigCACIAIAVBgAFqKAIARgRAIA8gABChBiAFKAKEASEACyAFIABBAWoiATYChAEgBSgCfCIKIABBMGxqIgAgBykDIDcCACAAQQA2AiwgAEIANwIkIAAgDjYCICAAIAs2AhwgACAEOAIYIABBCGogDSkDADcCACAAQRBqIAdBMGopAwA3AgAgByAfOAKIASAHICE4AoQBIAcgIDgCgAEgJSAdICSTIiiUICsgHiAnkyIqlJMiBCAEkiEEICYgKpQgJSAcIDCTIiKUkyIbIBuSIRsgByAiICMgBJQgJSAblCArICsgIpQgJiAolJMiIiAikiIilJOSkjgCCCAHICogIyAilCArIASUICYgG5STkpI4AgQgByAoICMgG5QgJiAilCAlIASUk5KSOAIAAn8CQAJAAkAgEA4DAAECCwsgAkEwagwCCyACQUBrDAELIAJBNGoLKAIAIQICfwJAAkACQCAMDgMAAQILCyADQTBqDAILIANBQGsMAQsgA0E0agshACAHQShqIgMgCEEIaigCADYCACAHQTRqIAlBCGooAgA2AgAgByAIKQIANwMgIAcgCSkCADcCLCACIAAoAgAiACAGGyEIIAAgAiAGGyECIDYgHSAgk5QgMyAeICGTlJIgKSAcIB+TlJIhBCAFKAKAASABRgRAIA8gARChBiAFKAJ8IQogBSgC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NwMAIAtB4ghqIgcgIUECai0AADoAACALIBMpAgA3A4AKIAsgIS8AADsB4AggCy0A/AkiDUEERg0AIAsqAsgJIS4gC0HgBmogAWoiBCAPNgIAIARBCGogLjgCACAEQQRqICM2AgAgBEEMaiALKQOACjcCACAEQRRqIBgpAwA3AgAgBEEcaiAXKQMANwIAIARBJGogFikDADcCACAEQSxqIBIpAwA3AgAgBEE0aiAQKQMANwIAIARBPGogDToAACAEQT1qIAsvAeAIOwAAIARBP2ogBy0AADoAACALQcgGaiAKaiAuOAIAIAUgCCAuXjoAAAsgAUFAayEBIAVBAWohBSAKQQRqIQogXUIBfCJdQgRSDQALIA4gCykC4AY3AgAgDkEIaiALQeAGaiIBQQhqKQIANwIAIA5BEGogAUEQaikCADcCACAOQRhqIAFBGGopAgA3AgAgDkEgaiABQSBqKQIANwIAIA5BKGogAUEoaikCADcCACALKALcBiEKIAsqAtQGITIgCyoC0AYhMCALKgLMBiEvIAsqAsgGIS4gC0HeBGogGkECai0AADoAACALQZgEaiIBQTdqIAxBN2opAAA3AAAgAUEwaiAMQTBqKQAANwMAIAFBKGogDEEoaikAADcDACABQSBqIAxBIGopAAA3AwAgAUEYaiAMQRhqKQAANwMAIAFBEGogDEEQaikAADcDACABQQhqIAxBCGopAAA3AwAgCyAaLwAAOwHcBCALIAwpAAA3A5gEIAstAJAHIQ0gCy0AnAchASALKQKUByFeIAstANwHIQUgC0HYA2oiBEE3aiAJQTdqKQAANwAAIARBMGogCUEwaikAADcDACAEQShqIAlBKGopAAA3AwAgBEEgaiAJQSBqKQAANwMAIARBGGogCUEYaikAADcDACAEQRBqIAlBEGopAAA3AwAgBEEIaiAJQQhqKQAANwMAIAsgCSkAADcD2AMgCy0AnAghByALQZgDaiIEQTdqIAZBN2opAAA3AAAgBEEwaiAGQTBqKQAANwMAIARBKGogBkEoaikAADcDACAEQSBqIAZBIGopAAA3AwAgBEEYaiAGQRhqKQAANwMAIARBEGogBkEQaikAADcDACAEQQhqIAZBCGopAAA3AwAgCyAGKQAANwOYAyALLQDcCCEEIAtBlgNqIBlBAmotAAA6AAAgCyAZLwAAOwGUAwwCCyABIBxBuODAABDjCAALIAtB6ARqICBBCGooAgA2AgAgCyAgKQIANwPgBEEEIQQgCygCkAYhCkEEIQdBBCEFQQQhAQsgCkH/AXFBAkcEQCADQfgAaiEQIAsgMjgCrAUgCyAwOAKoBSALIC84AqQFIAsgLjgCoAUgC0HgBmoiD0EoaiAOQShqKQIANwMAIA9BIGogDkEgaikCADcDACAPQRhqIA5BGGopAgA3AwAgD0EQaiAOQRBqKQIANwMAIA9BCGogDkEIaikCADcDACALIA06AJAHIAsgDikCADcD4AYgGiALLwHcBDsAACAaQQJqIAtB3gRqLQAAOgAAIAsgAToAnAcgCyBeNwKUByAMQTdqIAtBmARqIgFBN2opAAA3AAAgDEEwaiABQTBqKQMANwAAIAxBKGogAUEoaikDADcAACAMQSBqIAFBIGopAwA3AAAgDEEYaiABQRhqKQMANwAAIAxBEGogAUEQaikDADcAACAMQQhqIAFBCGopAwA3AAAgDCALKQOYBDcAACALIAU6ANwHIAlBN2ogC0HYA2oiAUE3aikAADcAACAJQTBqIAFBMGopAwA3AAAgCUEoaiABQShqKQMANwAAIAlBIGogAUEgaikDADcAACAJQRhqIAFBGGopAwA3AAAgCUEQaiABQRBqKQMANwAAIAlBCGogAUEIaikDADcAACAJIAspA9gDNwAAIAsgBzoAnAggBkE3aiALQZgDaiIBQTdqKQAANwAAIAZBMGogAUEwaikDADcAACAGQShqIAFBKGopAwA3AAAgBkEgaiABQSBqKQMANwAAIAZBGGogAUEYaikDADcAACAGQRBqIAFBEGopAwA3AAAgBkEIaiABQQhqKQMANwAAIAYgCykDmAM3AAAgCyAEOgDcCCAZQQJqIAtBlgNqLQAAOgAAIBkgCy8BlAM7AAAgCkEVdkEIcSAKQQ52QQRxIApBB3ZBAnEgCkEBcXJycq0hX0IAIV0DQAJAIF8gXYhCAYNQDQAgXachASAQLQAAQQFxBEAgAUECdCIFIAtBoAVqaioCACIuIAhdRQ0BIAtB4AZqIAFBBnRqIgQtADwiAUEERg0BIBQgAyAFakHgAGooAgBNDQEgFUUNASARIAQpAAA3AAAgEUE4aiAEQThqKAAANgAAIBFBMGogBEEwaikAADcAACARQShqIARBKGopAAA3AAAgEUEgaiAEQSBqKQAANwAAIBFBGGogBEEYaikAADcAACARQRBqIARBEGopAAA3AAAgEUEIaiAEQQhqKQAANwAAIAtBxgJqIARBP2otAAA6AAAgCyAELwA9OwHEAiALQcgCaiICQTdqIAtBsAVqIgRBN2opAAA3AAAgAkEwaiAEQTBqKQAANwMAIAJBKGogBEEoaikAADcDACACQSBqIARBIGopAAA3AwAgAkEYaiAEQRhqKQAANwMAIAJBEGogBEEQaikAADcDACACQQhqIARBCGopAAA3AwAgCyALKQCwBTcDyAIgASECIC4hCAwBCyABQQJ0IgEgA2pB4ABqKAIAIgQgHE8NACALQaAFaiABaioCAIwhLiALKALAAiIKIQUgCygCvAIgCkYEQCALQbgCaiAKEKsGIAsoAsACIQULIAsoArgCIgEgBUEDdGoiByAuOAIEIAcgBDYCACALIAVBAWo2AsACIAEgCkEDdGoiBCoCBCEuIAQoAgAhBAJAIApFBEBBACEFDAELA0BBAEF/IAEgCkEBayIHQQF2IgVBA3RqIg9BBGoqAgAiLyAuXyISG0EBQQIgEhsgLiAvXxtBAWpBAkkEQCAKIQUMAgsgASAKQQN0aiAPKQIANwIAIAUhCiAHQQFLDQALCyABIAVBA3RqIgEgLjgCBCABIAQ2AgALIF1CAXwiXUIEUg0ACyALQYgDaiALQbgCahChAyALKAKIAw0BDAILCwJAIA1BBEcEQCALQYIKaiALQd4Eai0AADoAACALIAsvAdwEOwGACiALQZsHaiALQZgFaigCADYAACALQZMHaiALQeAEaiIBQTBqKQMANwAAIAtBiwdqIAFBKGopAwA3AAAgC0GDB2ogAUEgaikDADcAACALQfsGaiABQRhqKQMANwAAIAtB8wZqIAFBEGopAwA3AAAgC0HrBmogAUEIaikDADcAACALIAspA+AENwDjBiALQbAFaiIBQTdqIAtB4AZqIgJBN2opAAA3AAAgAUEwaiACQTBqKQAANwMAIAFBKGogAkEoaikAADcDACABQSBqIAJBIGopAAA3AwAgAUEYaiACQRhqKQAANwMAIAFBEGogAkEQaikAADcDACABQQhqIAJBCGopAAA3AwAgCyALKQDgBjcDsAUgDSECDAELIAtBsAVqIgFBN2ogC0HIAmoiA0E3aikAADcAACABQTBqIANBMGopAwA3AwAgAUEoaiADQShqKQMANwMAIAFBIGogA0EgaikDADcDACABQRhqIANBGGopAwA3AwAgAUEQaiADQRBqKQMANwMAIAFBCGogA0EIaikDADcDACALQYIKaiALQcYCai0AADoAACALIAspA8gCNwOwBSALIAsvAcQCOwGACgsgCygCvAJFDQEgCygCuAIQmgIMAQsgC0GwBWoiAUEIaiALQcgCaiIDQQhqKQMANwMAIAFBEGogA0EQaikDADcDACABQRhqIANBGGopAwA3AwAgAUEgaiADQSBqKQMANwMAIAFBKGogA0EoaikDADcDACABQTBqIANBMGopAwA3AwAgAUE3aiADQTdqKQAANwAAIAtBggpqIAtBxgJqLQAAOgAAIAsgCykDyAI3A7AFIAsgCy8BxAI7AYAKIAsoArwCRQ0AIAsoArgCEJoCCyACQf8BcUEERw0BCyAAQQQ6ADwMAQsgACALKQCzBTcAACAAIAsvAYAKOwA9IABBOGogC0HrBWooAAA2AAAgAEEwaiALQeMFaikAADcAACAAQShqIAtB2wVqKQAANwAAIABBIGogC0HTBWopAAA3AAAgAEEYaiALQcsFaikAADcAACAAQRBqIAtBwwVqKQAANwAAIABBCGogC0G7BWopAAA3AAAgAEE/aiALQYIKai0AADoAACAAIAI6ADwLIAtBwApqJAAL9y8DFH8bfQN+IwBBsAFrIgQkAAJAIAAoAggiDgRAIARBCGogACgCACIJQSBqEMoBIAlByANqIgYgBEEgaigCADYCACAJQcADaiIDIARBGGopAgA3AgAgCUG4A2oiDyAEQRBqKQIANwIAIAkgBCkCCDcCsAMgCUGsA2ogBigCADYCACAJQaQDaiADKQIANwIAIAlBnANqIA8pAgA3AgAgCSAJKQKwAzcClAMgASgCCCELIAEoAhAiESAJKAIAIgFNDQEgC0UNASALIAFB6AJsaiIBKAIARQ0BIAEoAgQgCSgCBEcNASAJQbADaiIGQQhqKQIAITIgBkEQaikCACEzIAYpAgAhNCABQdwAaiAGQRhqKAIANgIAIAFB1ABqIDM3AgAgAUHMAGogMjcCACABQcQAaiA0NwIAIAJFDQEgBEEIaiIGIAFBsAFqIgMgCUGUA2oiDxD9BSAB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AiAAQQRqNgIIIAIoAgAgAGpBDjYAACADIAEQ3AYiAA0GIANBDGogARDcBiIADQYgA0EYaiABENwGIgANBiADKgIkIQogAigCBCACKAIIIgFrQQNNBEAgAiABQQQQyAYgAigCCCEBCyACIAFBBGo2AgggAigCACABaiAKOAAADAULIAkoAgwhAyABKAIAIgEoAgghACABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABKAIAIABqQQ82AAAgASAAQQRqIgA2AgggAyoCBCELIAMqAgAhCiABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABKAIAIABqIAo4AAAgASAAQQRqIgA2AgggASgCBCAAa0EDTQRAIAEgAEEEEMgGIAEoAgghAAsgASgCACAAaiALOAAAIAEgAEEEaiIANgIIIAMqAgghCiABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABIABBBGo2AgggASgCACAAaiAKOAAADAQLIAkoAgwhAyABKAIAIgEoAgghACABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABKAIAIABqQRA2AAAgASAAQQRqIgA2AgggAyoCBCELIAMqAgAhCiABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABKAIAIABqIAo4AAAgASAAQQRqIgA2AgggASgCBCAAa0EDTQRAIAEgAEEEEMgGIAEoAgghAAsgASgCACAAaiALOAAAIAEgAEEEaiIANgIIIAMqAgghCiABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABIABBBGo2AgggASgCACAAaiAKOAAADAMLIAkoAgwhAyABKAIAIgAoAgghAiAAKAIEIAJrQQNNBEAgACACQQQQyAYgACgCCCECCyAAIAJBBGo2AgggACgCACACakERNgAAIAMgARC2ASIADQMgAyoCYCEKIAEoAgAiASgCCCEAIAEoAgQgAGtBA00EQCABIABBBBDIBiABKAIIIQALIAEgAEEEajYCCCABKAIAIABqIAo4AAAMAgsgCSgCDCEDIAEoAgAiASgCCCEAIAEoAgQgAGtBA00EQCABIABBBBDIBiABKAIIIQALIAEoAgAgAGpBEjYAACABIABBBGoiADYCCCABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABIABBBGo2AgggASgCACAAaiADNgAADAELIAEoAgAhBQJAIAcoAngiBEUEQCAFKAIIIgIgBSgCBEYEQCAFIAJBARDIBiAFKAIIIQILIAUgAkEBajYCCCAFKAIAIAJqQQA6AAAMAQsgBSgCCCICIAUoAgRGBEAgBSACQQEQyAYgBSgCCCECCyAFKAIAIAJqQQE6AAAgBSACQQFqIgM2AgggB0GAAWooAgAhACAFKAIEIANrQQdNBEAgBSADQQgQyAYgBSgCCCEDCyAFIANBCGoiAjYCCCAFKAIAIANqIACtNwAAIAAEQCAAQQJ0IQgDQCAEKAIAIQAgBEEEaiEEIAUgBSgCBCACa0EDSwR/IAIFIAUgAkEEEMgGIAUoAggLIgNBBGoiAjYCCCAFKAIAIANqIAA2AAAgCEEEayIIDQALCyAHQYwBaigCACEAIAdBhAFqKAIAIQQgBSgCBCACa0EHTQRAIAUgAkEIEMgGIAUoAgghAgsgBSACQQhqIgM2AgggBSgCACACaiAArTcAACAABEAgAEECdCEIA0AgBCgCACEAIARBBGohBCAFIAUoAgQgA2tBA0sEfyADBSAFIANBBBDIBiAFKAIICyICQQRqIgM2AgggBSgCACACaiAANgAAIAhBBGsiCA0ACwsgB0GYAWooAgAhACAHQZABaigCACECIAUoAgQgA2tBB00EQCAFIANBCBDIBiAFKAIIIQMLIAUgA0EIaiIENgIIIAUoAgAgA2ogAK03AAAgAEUNACACIABBBHRqIQYDQCACKAIAIQAgBSgCBCAEa0EDTQRAIAUgBEEEEMgGIAUoAgghBAsgBSgCACAEaiAANgAAIAUgBEEEaiIENgIIIAJBBGooAgAhACAFKAIEIARrQQNNBEAgBSAEQQQQyAYgBSgCCCEECyAFKAIAIARqIAA2AAAgBSAEQQRqIgQ2AgggAkEIaigCACEAIAUoAgQgBGtBA00EQCAFIARBBBDIBiAFKAIIIQQLIAUoAgAgBGogADYAACAFIARBBGoiAzYCCCACQQxqKAIAIQAgBSgCBCADa0EDTQRAIAUgA0EEEMgGIAUoAgghAwsgBSADQQRqIgQ2AgggBSgCACADaiAANgAAIAYgAkEQaiICRw0ACwsgASgCACEGAkAgBygCnAEiBEUEQCAGKAIIIgIgBigCBEYEQCAGIAJBARDIBiAGKAIIIQILIAYgAkEBajYCCCAGKAIAIAJqQQA6AAAMAQsgBigCCCICIAYoAgRGBEAgBiACQQEQyAYgBigCCCECCyAGKAIAIAJqQQE6AAAgBiACQQFqIgM2AgggB0GkAWooAgAhACAGKAIEIANrQQdNBEAgBiADQQgQyAYgBigCCCEDCyAGIANBCGoiAjYCCCAGKAIAIANqIACtNwAAIAAEQCAAQQJ0IQgDQCAEKAIAIQAgBEEEaiEEIAYgBigCBCACa0EDSwR/IAIFIAYgAkEEEMgGIAYoAggLIgNBBGoiAjYCCCAGKAIAIANqIAA2AAAgCEEEayIIDQALCyAHQbABaigCACEAIAdBqAFqKAIAIQMgBigCBCACa0EHTQRAIAYgAkEIEMgGIAYoAgghAgsgBiACQQhqIgQ2AgggBigCACACaiAArTcAACAABEAgAEECdCEIA0AgAygCACEAIANBBGohAyAGIAYoAgQgBGtBA0sEfyAEBSAGIARBBBDIBiAGKAIICyICQQRqIgQ2AgggBigCACACaiAANgAAIAhBBGsiCA0ACwsgB0G8AWooAgAhACAHQbQBaigCACECIAYoAgQgBGtBB00EQCAGIARBCBDIBiAGKAIIIQQLIAYgBEEIaiIDNgIIIAYoAgAgBGogAK03AAAgAEUNACAAQQJ0IQgDQCACNQIAIQwgAkEEaiECIAYgBigCBCADa0EHSwR/IAMFIAYgA0EIEMgGIAYoAggLIgRBCGoiAzYCCCAGKAIAIARqIAw3AAAgCEEEayIIDQALCyAHLQDAASEDIAEoAgAiASgCCCIAIAEoAgRGBEAgASAAQQEQyAYgASgCCCEACyABIABBAWo2AgggASgCACAAaiADOgAAC0EAIQALIAlBEGokACAAC5UuAyN/NH0FfiMAQdAIayIKJAAgCkGQBGogBiACIAcoAogBEQEAIApB3ABqIApBpARqKgIAIi4gCioCmAQiL5NDAAAAP5QiLTgCACAKQdgAaiAtOAIAIApB1ABqIC04AgAgCkHQAGogLTgCACAKQcwAaiAKQaAEaioCACIwIAoqApQEIjGTQwAAAD+UIi04AgAgCkHIAGogLTgCACAKQcQAaiAtOAIAIApBQGsgLTgCACAKQTxqIAoqApwEIjIgCioCkAQiM5NDAAAAP5QiLTgCACAKQThqIC04AgAgCkE0aiAtOAIAIAogLTgCMCAKIC8gLpJDAAAAv5QiLTgCLCAKIC04AiggCiAtOAIkIAogLTgCICAKIDEgMJJDAAAAv5QiLTgCHCAKIC04AhggCiAtOAIUIAogLTgCECAKIDMgMpJDAAAAv5QiLTgCDCAKIC04AgggCiAtOAIEIAogLTgCACADKgIIIS0gAyoCBCEuIAMqAgAhLyAKQYgBakIANwMAIApBgAFqQgA3AwAgCkH4AGpCADcDACAKQfAAakIANwMAIApB6ABqQgA3AwAgCkGQAWogLzgCACAKQZQBaiAvOAIAIApBmAFqIC84AgAgCkGcAWogLzgCACAKQaABaiAuOAIAIApBpAFqIC44AgAgCkGoAWogLjgCACAKQawBaiAuOAIAIApBsAFqIC04AgAgCkG0AWogLTgCACAKQbgBaiAtOAIAIApBvAFqIC04AgAgCkIANwNgIAogATYC0AEgCiACNgLUASAKIAM2AtgBIApBzAFqIAc2AgAgCkHEAWogBTYCACAKIAk6AOABIAogCDgC3AEgCiAGNgLIASAKIAQ2AsABAkACQCAEIAUoAhARBAAiAUEgaigCACIaBEAgCkEANgL4ASAKQgQ3AvABIApB8AFqIgJBABCrBiAKKALwASAKKAL4ASIDQQN0akKAgICA8P///343AgAgCiADQQFqNgL4ASAKQagCaiACEKEDAkACQCAKKAKoAkUEQEEEIQEMAQsgCkHgAWohFiAKQdwBaiEXIApB1AFqIRggCkHgAGohKyABQcQAaigCACETIApB/QVqIR4gCkHMBWohECAKQcEFaiEfIApBkAVqIREgCkGFBWohICAKQZAEaiICQcQAaiESIApByQRqISEgCkG9BGohIiACQQhqIRQgCkG5CGohIyAKQcUIaiEPIApBlAhqIQ0gASgCPCEVIAEoAhghLEP//39/IS5BBCEBA0AgLiAKKgKwAoxfDQECQAJ9AkAgCigCrAIiAiAaSQRAICwgAkEHdGoiCy0AeEEBcSICBEAgFSALKAJgIgNBDGxqQQAgAyATSRsiA0EIakEAIAMbISQgFSALQewAaigCACIDQQxsakEAIAMgE0kbIgNBCGpBACADGyElIBUgC0HoAGooAgAiA0EMbGpBACADIBNJGyIDQQhqQQAgAxsh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aiAMQRhqKQMANwMAIA5BEGogDEEQaikDADcDACAKIAopA7AHNwOwAyAKIAovAawHOwGsAyAKIAxBCGopAwA3A/gCIAogCikD+AY3A/ACIApB7gJqIApB9gZqLQAAOgAAIAogCi8B9AY7AewCIApBuAJqIgxBKGogCkHABmoiDkEoaikDADcDACAMQSBqIA5BIGopAwA3AwAgDEEYaiAOQRhqKQMANwMAIAxBEGogDkEQaikDADcDACAMQQhqIA5BCGopAwA3AwAgCiAKKQPABjcDuAIgCkG2AmogCkG+BmotAAA6AAAgCiAKLwG8BjsBtAIgKEEYdCADQRB0ciAJQQh0ciAHciEDCyAHQf8BcUECRwRAIAtB+ABqIQwgCiAIOAKMBiAKIC04AogGIAogLzgChAYgCiAwOAKABiAUIAopA+gDNwIAIBRBCGogCkHoA2oiCUEIaikDADcCACAUQRBqIAlBEGopAwA3AgAgFEEYaiAJQRhqKQMANwIAIBRBIGogCUEgaigCADYCACAKIDQ4ApQEIAogHDYCkAQgCiAdOgC8BCAiIAovAeQDOwAAICJBAmogCkHmA2otAAA6AAAgCiAEOgDIBCAKIGQ3AsAEICFBAmogCkHiA2otAAA6AAAgISAKLwHgAzsAACAKIEQ4AtAEIAogJzYCzAQgEkEoaiAKQbADaiIEQShqKQMANwIAIBJBIGogBEEgaikDADcCACASQRhqIARBGGopAwA3AgAgEkEQaiAEQRBqKQMANwIAIBJBCGogBEEIaikDADcCACASIAopA7ADNwIAIAogBjoAhAUgIEECaiAKQa4Dai0AADoAACAgIAovAawDOwAAIAogRTgCjAUgCiApNgKIBSARQShqIApB8AJqIgRBKGopAwA3AgAgEUEgaiAEQSBqKQMANwIAIBFBGGogBEEYaikDADcCACARQRBqIARBEGopAwA3AgAgEUEIaiAKKQP4AjcCACARIAopA/ACNwIAIAogAjoAwAUgH0ECaiAKQe4Cai0AADoAACAfIAovAewCOwAAIAogRjgCyAUgCiAZNgLEBSAQQShqIApBuAJqIgJBKGopAwA3AgAgEEEgaiACQSBqKQMANwIAIBBBGGogAkEYaikDADcCACAQQRBqIAJBEGopAwA3AgAgEEEIaiACQQhqKQMANwIAIBAgCikDuAI3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XToAACALQbgDaiACQQJ0aiAIOAIACyAGQQRqIQYgBEEBaiIEQQRHDQALIBMgCykDuAM3AgAgCiALKQLQAzcCACATQQhqIgYgFykDADcCACAKQQhqIgcgC0HQA2oiAkEIaiIMKQIANwIAIApBEGoiDyACQRBqIhUpAgA3AgAgCkEYaiIhIAJBGGoiIikCADcCACAKQSBqIiMgAkEgaiIkKQIANwIAIApBKGoiJSACQShqIiYoAgA2AgAgCygCzAMhBCALQeYCaiInIBJBAmoiKC0AADoAACALIBIvAAA7AeQCIAstAPwDIQIgC0GQAWogFkHAARCIDRogBEH/AXFBAkYNBCALQagDaiAGKQIANwMAIAsgEykCADcDoAMgJiAlKAIANgIAICQgIykCADcDACAiICEpAgA3AwAgFSAPKQIANwMAIAwgBykCADcDACALIAI6APwDIAsgCikCADcD0AMgEiALLwHkAjsAACAoICctAAA6AAAgFiALQZABakHAARCIDRogBEEVdkEIcSAEQQ52QQRxIARBB3ZBAnEgBEEBcXJycq0hSUIAIUgDQAJAIEkgSIhCAYNQDQAgSKchAiAgLQAAQQFxBEAgAkECdCIGIAtBoANqaioCACIIIAldRQ0BIAtB0ANqIAJBPGxqIgQtADgiAkEERg0BIA0gAyAGakHgAGooAgBNDQEgDkUNASAFIAQpAAA3AAAgBUEwaiAEQTBqKQAANwAAIAVBKGogBEEoaikAADcAACAFQSBqIARBIGopAAA3AAAgBUEYaiAEQRhqKQAANwAAIAVBEGogBEEQaikAADcAACAFQQhqIARBCGopAAA3AAAgC0HGAGogBEE7ai0AADoAACALIAQvADk7AUQgC0HIAGoiAUE3aiALQaAGaiIEQTdqKAAANgAAIAFBMGogBEEwaikAADcDACABQShqIBApAAA3AwAgAUEgaiAEQSBqKQAANwMAIAFBGGogBEEYaikAADcDACABQRBqIARBEGopAAA3AwAgAUEIaiAEQQhqKQAANwMAIAsgCykAoAY3A0ggAiEBIAghCQwBCyACQQJ0IgIgA2pB4ABqKAIAIgYgEU8NACALQaADaiACaioCAIwhCCALKAJAIgchBCALKAI8IAdGBEAgC0E4aiAHEKsGIAsoAkAhBAsgCygCOCICIARBA3RqIgwgCDgCBCAMIAY2AgAgCyAEQQFqNgJAIAIgB0EDdGoiBCoCBCEIIAQoAgAhBgJAIAdFBEBBACEEDAELA0BBAEF/IAIgB0EBayIMQQF2IgRBA3RqIg9BBGoqAgAiKSAIXyIVG0EBQQIgFRsgCCApXxtBAWpBAkkEQCAHIQQMAgsgAiAHQQN0aiAPKQIANwIAIAQhByAMQQFLDQALCyACIARBA3RqIgIgCDgCBCACIAY2AgALIEhCAXwiSEIEUg0ACyALQYQBaiALQThqEKEDIAsoAoQBDQEMBQsLIAJBBEHUwcIAEOMIAAsgAkEEQcTBwgAQ4wgACyACIBFB+KDCABDjCAALAkAgAkEERwRAIAtB4gVqIAtB5gJqLQAAOgAAIAsgCy8B5AI7AeAFIAtBgwRqIAtB6AJqIgFBMGopAgA3AAAgC0H7A2ogAUEoaikCADcAACALQfMDaiABQSBqKQIANwAAIAtB6wNqIAFBGGopAgA3AAAgC0HjA2ogAUEQaikCADcAACALQdsDaiABQQhqKQIANwAAIAsgCykC6AI3ANMDIAtBoAZqIgFBN2ogC0HQA2oiA0E3aigAADYAACABQTBqIANBMGopAAA3AwAgAUEoaiADQShqKQAANwMAIAFBIGogA0EgaikAADcDACABQRhqIANBGGopAAA3AwAgAUEQaiADQRBqKQAANwMAIAFBCGogA0EIaikAADcDACALIAspANADNwOgBiACIQEMAQsgC0GgBmoiAkE3aiALQcgAaiIDQTdqKAAANgAAIAJBMGogA0EwaikDADcDACACQShqIANBKGopAwA3AwAgAkEgaiADQSBqKQMANwMAIAJBGGogA0EYaikDADcDACACQRBqIANBEGopAwA3AwAgAkEIaiADQQhqKQMANwMAIAtB4gVqIAtBxgBqLQAAOgAAIAsgCykDSDcDoAYgCyALLwFEOwHgBQsgCygCPEUNASALKAI4EJoCDAELIAtBoAZqIgJBCGogC0HIAGoiA0EIaikDADcDACACQRBqIANBEGopAwA3AwAgAkEYaiADQRhqKQMANwMAIAJBIGogA0EgaikDADcDACACQShqIANBKGopAwA3AwAgAkEwaiADQTBqKQMANwMAIAJBN2ogA0E3aigAADYAACALQeIFaiALQcYAai0AADoAACALIAspA0g3A6AGIAsgCy8B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IAZBFGoiBkcNAAsLAkACQCASBEAgEkEBa0H/////AXEiC0EBaiIJQQdxIQggC0EHSQRAQQAhByAFIQMMAgsgCUH4////A3EhBkEAIQcgBSEDA0AgAyAHNgIAIANBCGogA0EEaigCACAHaiICNgIAIANBEGogA0EMaigCACACaiICNgIAIANBGGogA0EUaigCACACaiICNgIAIANBIGogA0EcaigCACACaiICNgIAIANBKGogA0EkaigCACACaiICNgIAIANBMGogA0EsaigCACACaiICNgIAIANBOGogA0E0aigCACACaiICNgIAIANBPGooAgAgAmohByADQUBrIQMgBkEIayIGDQALDAELIARB0ABqQQAQjwUgBEHcAGpBABCPBQwBCyAIBEADQCADIAc2AgAgA0EEaigCACAHaiEHIANBCGohAyAIQQFrIggNAAsLIARB0ABqIAcQjwUgBEHcAGogBxCPBSASRQ0AIAUhAyAJQQdxIgcEQANAIANBBGpBADYCACADQQhqIQMgB0EBayIHDQALCyALQQdJDQAgBSASQQN0aiECA0AgA0E8akEANgIAIANBNGpBADYCACADQSxqQQA2AgAgA0EkakEANgIAIANBHGpBADYCACADQRRqQQA2AgAgA0EMakEANgIAIANBBGpBADYCACACIANBQGsiA0cNAAsLAkACQAJAAkACQAJAIBtFDQAgBCgCaCEOIAQoAlwhFiAEKAJkIREgBCgCUCEXIAQoAlghEyAEKAJ0IRogBCgCfCIZIAQoAnAiCksEQEEAIRUDQCAMIBVBFGxqIgIoAgAhAyADIAMgAigCBCIPakkEQCADQQJ0IgIgGmohBiACIA5qIQIgAyAZIAMgGUsbIhAgA2shCCADIAogAyAKSxsiCSADayENA0AgCEUNBSASIAYoAgAiA00NBiATIAUgA0EDdGoiBygCBCAHKAIAaiIDTQ0HIBcgA0ECdGogFTYCACANRQ0IIBEgB0EEaiILKAIAIAcoAgBqIgNNDQkgFiADQQJ0aiACKAIANgIAIAsgCygCAEEBajYCACAGQQRqIQYgAkEEaiECIAhBAWshCCANQQFrIQ0gD0EBayIPDQALCyAbIBVBAWoiFUcNAAsMAQtBACEPA0AgDCAPQRRsaiICKAIAIQMgAyADIAIoAgQiB2pJBEAgA0ECdCIC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AggiFUH/////B3G+IgMgAiADYBsiAiABKAIMIhBB/////wdxviIDIAIgA2AbIgIgASgCECIUQf////8Hcb4iAyACIANgGyICIAEoAhQiFkH/////B3G+IgMgAiADYBsiAiABKAIYIhdB/////wdxviIDIAIgA2AbIgIgASgCHCIZQf////8Hcb4iAyACIANgGyICIAEoAiAiGEH/////B3G+IgMgAiADYBsiCUMAAAAAXARAIAEgGL4gCZU4AiAgASAZviAJlTgCHCABIBe+IAmVOAIYIAEgFr4gCZU4AhQgASAUviAJlTgCECABIBC+IAmVOAIMIAEgFb4gCZU4AgggASATviAJlTgCBCABIBG+IAmVOAIACyASQUBrIhNBIGogAUEgaigCADYCACATQRhqIAFBGGopAgA3AwAgE0EQaiABQRBqKQIANwMAIBNBCGogAUEIaikCADcDACASIAEpAgA3A0AgEkHoAGohHEEAIRQjAEEQayIZJAAgGUIANwMIIBNBJGohHiATQRRqIR8gGUEQaiEaQQEhFQNAIBRBAnQiGyATakEEaiIRIBRBA2wiAUECdGoiFioCACICIAKUIQIgFEUEQCACIBZBBGoqAgAiAiAClJIhAgsgAhCbASIFIAWMIBYqAgAiA0MAAAAAYCIQGyEEIBYgAyAEkjgCAAJAAkACQCACIAUgAyADjCAQG5SSIgIgApIiAkMAAAAAXARAIBEgAUEDakECdGohFyACEJsBIQIgFiAWKgIAIAKVOAIAIBRFBEAgFkEEaiIBIAEqAgAgApU4AgALIBkgG2ogBIw4AgAgGUEIaiAbaiIRIBYqAgAiAiACkiICIBcqAgCUOAIAIBRFBEAgESACIBcqAgSUOAIECyAXQQRqIBRFIgEgFkEEaiIdIAEQ2gEhAiARIBEqAgAgAiACkpI4AgAgFQRAIBFBBGoiECAXQRBqIAEgHSABENoBIgIgApIgECoCAJI4AgALIBYqAgAgESoCAJRDAAAAAJIhAiAURQRAIAIgHSoCACARQQRqKgIAlJIhAgtBAiAUayIgQQFxISEgFioCACEDQQAhGCAURQRAICBBAnEhIiAfIBRBBHRqIRAgESEBA0AgEEEEayIjICMqAgAgAyABKgIAlJM4AgAgECAQKgIAIAMgAUEEaioCAJSTOAIAIAFBCGohASAQQQhqIRAgIiAYQQJqIhhHDQALCyAhBEAgGEECdCIBIBdqIhAgECoCACADIAEgEWoqAgCUkzgCAAsCQCAUDQAgHSoCACEDQQAhGCAVRQRAIBogG2ohASAeIBRBBHRqIRADQCAQIBAqAgAgAyABKgIAlJM4AgAgEEEEayIbIBsqAgAgAyABQQRrKgIAlJM4AgAgAUEIaiEBIBBBCGohECAYQQJqIhgNAAsLIBQNACAYQQJ0IgEgF0EQamoiECAQKgIAIAMgEUEEaiABaioCAJSTOAIACyARKgIAIQNBACEBIBRFDQEMAgsgGSAbaiAEOAIADAILICBBAnEhGCAfIBRBBHRqIRADQCAQQQRrIhsgGyoCACADIBBBEGsqAgCUkzgCACAQIBAqAgAgAyAQQQxrKgIAlJM4AgAgEEEIaiEQIBggAUECaiIBRw0ACwsgIQRAIAFBAnQiASAXaiIQIBAqAgAgAyABIBZqKgIAlJM4AgALAkAgFA0AIBFBBGoqAgAhA0EAIQEgFUUEQCAeIBRBBHRqIRADQCAQQQRrIhEgESoCACADIBBBHGsqAgCUkzgCACAQIBAqAgAgAyAQQRhrKgIAlJM4AgAgEEEIaiEQIAFBAmoiAQ0ACwsgFA0AIAFBAnQiASAXQRBqaiIRIBEqAgAgAyABIB1qKgIAlJM4AgALIAIgApIiAyAWKgIAlCECQQAhASAURQRAICBBAnEhESAfIBRBBHRqIRADQCAQQQRrIhggAiAQQRBrKgIAlCAYKgIAkjgCACAQIAIgEEEMayoCAJQgECoCAJI4AgAgEEEIaiEQIBEgAUECaiIBRw0ACwsgIQRAIAFBAnQiASAXaiIRIAIgASAWaioCAJQgESoCAJI4AgALIBQNACADIB0qAgCUIQJBACEBIBVFBEAgHiAUQQR0aiEQA0AgEEEEayIRIAIgEEEcayoCAJQgESoCAJI4AgAgECACIBBBGGsqAgCUIBAqAgCSOAIAIBBBCGohECABQQJqIgENAAsLIBQNACABQQJ0IgEgF0EQamoiESACIAEgHWoqAgCUIBEqAgCSOAIAC0EBIRQgFSEBQQAhFSABDQALIBwgGSkDADcCACAcIBMpAgA3AgggHEEQaiATQQhqKQIANwIAIBxBGGogE0EQaikCADcCACAcQSBqIBNBGGopAgA3AgAgHEEoaiATQSBqKAIANgIAIBlBEGokACASQYQBaioCACICQwAAwH9DAACAPyASKgJsIgqYIAogClwbIgNDAAAAwJQiBSACQwAAAACUQwAAAACSlJQhBAJ9IANDAAAAAFwEQCADQwAAAACUIASSIQQgAyACIAJDAAAAAJIgBZSUkgwBCyACIAJDAAAAAJIgBZSUCyECIBJBkAFqIQEgEkGAAWohE0MAAMB/QwAAgD8gEioCaCILmCALIAtcGyIHQwAAAMCUIgggEkH0AGoqAgAiBkMAAAAAlEMAAAAAkiINIBJB+ABqKgIAIgNDAAAAAJSSlCEFIAYgBZQhDAJ9IAdDAAAAAFwEQCAHQwAAAACUIg4gAyAFlJIhDyACIAeUIAMgCCANIAIgA5SSlCIClJIhBSAEIAeUIAMgCCAGQwAAAACSIAQgA5SSlCIDlJIhBCAOIAySIQwgByAGIAOUkiEDIA4gBiAClJIMAQsgAyAIIAZDAAAAAJIgBCADlJKUIgeUIQQgAyAFlCEPIAMgCCANIAIgA5SSlCIClCEFIAYgB5QhAyAGIAKUCyECIAEoAgAhESATKAIAIQEgEigCcCETIBIgBTgCKCASIAI4AiQgEkEANgIgIBIgBDgCHCASIAM4AhggEkEANgIUIBIgDzgCECASIAw4AgwgEkKBgICAgICAwD83AgQgEiATNgIsIBIgATYCMCASIBE2AjQgEiALvEH/////B3GtIAq8Qf////8Hca1CIIaEIiY3AzgCfwJAICZCIIinviARQf////8Hcb4gAUH/////B3G+IgKSQwAAADSUXiIQBEBBAiEVQQEhESABIRMMAQtBASEVQQAhFEEAIhEgJqdB/////wdxviACIBNB/////wdxvpJDAAAANJReRQ0BGgtBACEUAkAgEEUNAAJAIBFBAWsiEEECdCIWIBJBOGpqIgEqAgAiAkMAAAAAWw0AIAKLIBNB/////wdxviASQSxqIBZqKAIAQf////8Hcb6SQwAAADSUXw0AIBBFDQEgEkE4aiARQQJ0ckEIayEBCyABQQA2AgBBASEUCyAVCyERIBJBNGohHCASQShqIR0gEkEIaiEYAkACQAJAA0AgESAURgRAIBJBNGoiESAJIBEqAgCUOAIAIBIgCSASKgIslDgCLCASIAkgEioCMJQ4AjAgEkHoAGoiAUEIaiITIBEoAgA2AgAgEkH8AGogEkEEaiIRQQhqKQIANwIAIBJBhAFqIBFBEGopAgA3AgAgEkGMAWogEUEYaikCADcCACASQZQBaiARQSBqKQIANwIAIAAgEikCLDcCACASIBIpAgQ3AnQgAEEIaiATKQMANwIAIABBEGogAUEQaikDADcCACAAQRhqIAFBGGopAwA3AgAgAEEgaiABQSBqKQMANwIAIABBKGogAUEoaikDADcCACAAQTBqIAFBMGooAgA2AgAMBAsCQAJAIBEgFGtBAWoiAUECTQRAIAFBAkcNAiAUQQJ0IgEgEkE4amoqAgAiBCAElCIDIBJBLGogAWoiASoCACIFIAFBBGoiEyoCACICk0MAAAA/lCIGIAaUkiIGQwAAAABgDQFBy4/CAEErQbiVwgAQqgoACwJ/AkACQCARQQFrIhZBA0kEQCARQQNPDQEgFEECdCIXIBJBLGoiAWoiEyoCACEEIBZBAnQiFSABaiIbKgIAIQUgASARQQJ0aiIeKgIAIgMhAiASQThqIBVqIh8qAgAiBiAGlCIHQwAAAABcBEAgAyAHIAUgA5NDAAAAP5QiAkMAAMB/QwAAgD8gApggAiACXBsgByACIAKUkhCbAZSSlZMhAgsgESAUTQRAIAO8IRMgBrwhECAFvAwECyASQThqIBdqIhUqAgAiBUMAAAAAWw0CIAQgApMiAkMAAAAAYCEBIAUgBZQgAiACjCABGyIGIAaUkhCbASEDIBMgBiADlSIGIAaUIgggBJQgBYwgAyADjCABG5UiByAHlCIKIBRBAWoiE0ECdCIBIBJBLGpqIhAqAgAiC5SSIAYgB5QiDCAMkiAFlCIDkzgCACAQIAogBJQgCCALlJIgA5IiAzgCACAVIAwgBCALk5QgCCAKkyAFlJIiBDgCACAUIBZHBEAgFA0JIBJBOGogAWoiASoCACECIAEgBiAClDgCACACIAeMlCEFIAQhAgsgEigCBARAIBggFEEMbGoiAUEMaiIVIAcgASoCACIElCAGIBUqAgAiCJSSOAIAIAEgBiAElCAHIAiUkzgCACABQQRqIhUqAgAhBCAVIAYgBJQgByABQRBqIhUqAgAiCJSTOAIAIBUgByAElCAGIAiUkjgCACABQQhqIhUqAgAhBCAVIAYgBJQgByABQRRqIgEqAgAiCJSTOAIAIAEgByAElCAGIAiUkjgCAAsgESATRg0CIBFBAmshICAUQQxsIRkgEUEBayEhIBJBLGohFSASQThqIRMgFCEBA0AgBUMAAAAAWw0DIAWMIAUgBZQgAiACjCACQwAAAABgIhAbIgQgBJSSEJsBIgcgB4wgEBsiCJUhBiAEIAeVIQcgAUEBaiIQIBRLBEAgEyAXaiAIOAIACyAGIAaUIgggA5QgByAHlCIKIBUgF2oiGkEIaiIiKgIAIguUkiAHIAaUIgwgDJIgEyAXaiIjQQRqIiQqAgAiDZQiDpIhBCAiIAQ4AgAgGkEEaiAKIAOUIAggC5SSIA6TOAIAICQgDCADIAuTlCANIAogCJOUkiIDOAIAIAEgIEcEQCABQX9HDQogI0EIaiIBKgIAIQIgASAHIAKUOAIAIAIgBoyUIQUgAyECCyASKAIEBEAgEkEEaiAZaiIBQRxqIhogBiABQRBqIiIqAgAiA5QgByAaKgIAIgiUkjgCACAiIAcgA5QgBiAIlJM4AgAgAUEUaiIaKgIAIQMgGiAHIAOUIAYgAUEgaiIaKgIAIgiUkzgCACAaIAYgA5QgByAIlJI4AgAgAUEYaiIaKgIAIQMgGiAHIAOUIAYgAUEkaiIBKgIAIgiUkzgCACABIAYgA5QgByAIlJI4AgALIBlBDGohGSATQQRqIRMgFUEEaiEVIAQhAyAhIBAiAUcNAAsMAgtByJXCABC8CwALQdiVwgAQvAsACyAeKAIAIRMgHygCACEQIBsoAgALIQEgEEH/////B3G+IAFB/////wdxviATQf////8Hcb6SQwAAADSUX0UNASAWIREMAQsgEyAFIAKSQwAAAD+UIgUgBhCbASIGkzgCACABIAUgBpIiBTgCAAJAIBIoAgQEQCAFIAKTIgJDAAAAAGAhEyADIAIgAowgExsiAiAClJIQmwEiA0MAAAA0Xg0BCyARQQFrIREMAQsgGCAUQQxsaiIBQQxqIhUqAgAhBSAVIAIgA5UiAiAFlCAEIAMgA4wgExuVIgMgASoCACIElJM4AgAgASACIASUIAMgBZSSOAIAIAFBBGoiEyoCACEEIBMgAiAElCADIAFBEGoiEyoCACIFlJI4AgAgEyACIAWUIAMgBJSTOAIAIAFBCGoiEyoCACEEIBMgAiAElCADIAFBFGoiASoCACIFlJI4AgAgASACIAWUIAMgBJSTOAIAIBFBAWshEQsgEUECSw0BQQAhFAJAIBFFDQAgEUEBayITQQJ0IhUgEkEsaiIQaiIWKAIAIQECQCASQThqIBVqKAIAQf////8Hcb4gECARQQJ0aigCAEH/////B3G+IAFB/////wdxvpJDAAAANJReBEAgEyEQDAELIBNFBEAgEyERDAILIBFBAmsiFUECdCIQIBJBLGpqKAIAIQEgEkE4aiAQaigCAEH/////B3G+IBYoAgBB/////wdxviABQf////8Hcb6SQwAAADSUXgRAIBUhECATIREMAQsgFUUEQCAVIREMAgsgEkEsaiARQQNrIhBBAnRqKAIAIQEgFSERCyAQQQFqIRUgEEECdCITIBxqIRYgEyAdaiEQA0AgFiETIBVBAWsiFUUNASATKgIAIgJDAAAAAFwEQCATQQRrIRYgAUH/////B3EhFyAQKAIAIQEgEEEEayEQIAKLIBe+IAFB/////wdxvpJDAAAANJRfRQ0BCwsgE0EANgIAQQEhFAsgJUEBaiIlDQALIABBAjYCDAwCC0H4lcIAELwLAAtB6JXCABC8CwALIBJBoAFqJAAL+B8DGX8vfQJ+IwBBsAVrIggkACAIQfgDaiAFIAIgBigCiAERAQAgCEHcAGogCEGMBGoqAgAiIiAIKgKABCIjk0MAAAA/lCIhOAIAIAhB2ABqICE4AgAgCEHUAGogITgCACAIQdAAaiAhOAIAIAhBzABqIAhBiARqKgIAIiQgCCoC/AMiJZNDAAAAP5QiITgCACAIQcgAaiAhOAIAIAhBxABqICE4AgAgCEFAayAhOAIAIAhBPGogCCoChAQiJiAIKgL4AyInk0MAAAA/lCIhOAIAIAhBOGogITgCACAIQTRqICE4AgAgCCACNgJ4IAggATYCdCAIIAc4AmAgCCAhOAIwIAggIyAikkMAAAC/lCIHOAIsIAggBzgCKCAIIAc4AiQgCCAHOAIgIAggJSAkkkMAAAC/lCIHOAIcIAggBzgCGCAIIAc4AhQgCCAHOAIQIAggJyAmkkMAAAC/lCIHOAIMIAggBzgCCCAIIAc4AgQgCCAHOAIAIAhB8ABqIAY2AgAgCEHoAGogBDYCACAIIAU2AmwgCCADNgJkAkAgAyAEKAIQEQQAIgJBIGooAgAiFEUNACAIQQA2ApQBIAhCBDcCjAEgCEGMAWoiA0EAEKsGQQMhASAIKAKMASAIKAKUASIEQQN0akKAgICA8P///343AgAgCCAEQQFqNgKUASAIQbABaiADEKEDAkACQCAIKAKwAUUNACAIQfgAaiESIAhB4ABqIRMgAkHEAGooAgAhECAIQfgDaiIBQegAaiEMIAFByABqIQogCEGgBGohCyABQRBqIQ0gCEHIAWohDiACKAI8IREgAigCGCEbQ///f38hB0EDIQEDQCAHIAgqArgBjF8NAQJAAn8CQAJAAkACQAJAIAgoArQBIgIgFEkEQCAbIAJBB3RqIgMtAHhBAXEiAgRAIBEgAygCYCIEQQxsakEAIAQgEEkbIgRBCGpBACAEGyEXIBEgA0HsAGooAgAiBEEMbGpBACAEIBBJGyIEQQhqQQAgBBshGCARIANB6ABqKAIAIgRBDGxqQQAgBCAQSRsiBEEIakEAIAQbIRkgESADQeQAaigCACIEQQxsakEAIAQgEEkbIgRBCGpBACAEGyEVCyADQTRqKgIAITcgA0E4aioCACE4IANBPGoqAgAhOSADQUBrKgIAITogA0HEAGoqAgAhOyADQcgAaioCACE8IANBzABqKgIAIT0gA0HQAGoqAgAhPiADQdQAaioCACE/IANB2ABqKgIAIUAgAyoCACFBIAMqAgQhQiADKgIIIUMgAyoCDCFEIAMqAhAhRSADKgIUIUYgAyoCGCFHIAMqAhwhSCADKgIgIUkgAyoCJCFKIAMqAighSyADKgIsIUwgAyoCMCFNIAgqAjAhISAIKgIAISIgCCoCNCEjIAgqAgQhJCAIKgI4ISUgCCoCCCEmIAgqAjwhJyAIKgIMISggCCoCQCEpIAgqAhAhKiAIKgJEISsgCCoCFCEsIAgqAkghLSAIKgIYIS4gCCoCTCEvIAgqAhwhMCAIKgJQITEgCCoCICEyIAgqAlQhMyAIKgIkITQgCCoCWCE1IAgqAighNiAIIAgqAlwiTiAIKgIsIk8gA0HcAGoqAgCSkjgCzAMgCCA1IDYgQJKSOALIAyAIIDMgNCA/kpI4AsQDIAggMSAyID6SkjgCwAMgCCAvIDAgPZKSOAK8AyAIIC0gLiA8kpI4ArgDIAggKyAsIDuSkjgCtAMgCCApICogOpKSOAKwAyAIICcgKCA5kpI4AqwDIAggJSAmIDiSkjgCqAMgCCAjICQgN5KSOAKkAyAIICEgIiBNkpI4AqADIAggTCBPkiBOkzgCnAMgCCBLIDaSIDWTOAKYAyAIIEogNJIgM5M4ApQDIAggSSAykiAxkzgCkAMgCCBIIDCSIC+TOAKMAyAIIEcgLpIgLZM4AogDIAggRiAskiArkzgChAMgCCBFICqSICmTOAKAAyAIIEQgKJIgJ5M4AvwCIAggQyAmkiAlkzgC+AIgCCBCICSSICOTOAL0AiAIIEEgIpIgIZM4AvACIAhB0ANqIAhB8AJqEKYCIAgqAtwDISEgCCoC2AMhIiAIKgLUAyEjIAgqAtADISQgAkUNASAIQegDaiICQgA3AwAgCEIANwPgAyAIQQA2AvQDIAhBAzYC3AQgCEEDNgK8BCAIQQM2ApwEIAhBAzYC/AMgCEEAOgD7BCAIQQA2AvwEIAcgI15BAXQgByAkXnIgByAiXkECdHIgByAhXkEDdHIiBK0iUEIBg1ANAiAXRQ0CIAggFygCACIFNgKABSAIKAJkIQYgCCgCaCEJIAggCCkCbDcCkAUgCCASNgKMBSAIIAgoAnQ2AogFIAggEzYChAUgCCAIQfsEajYCrAUgCCAIQfQDajYCqAUgCCAIQYAFajYCpAUgCCAIQfgDajYCoAUgCCAIQfwEajYCnAUgCCAIQeADajYCmAUgBiAFIAhBhAVqQfjKwgAgCUEMaigCABECACAILQD7BEUNAgwDCyACIBRB+KDCABDjCAALIA4gCCkD0AM3AgAgDkEIaiAIKQPYAzcCACAHICNeQQh0IAcgJF5yIAcgIl5BEHRyIAcgIV5BGHRyIQZBAyECQQMhFkEDIQVBAyEEDAULIAhBATYC/AQCQCBQQgKDUA0AIBVFDQAgCCAVKAIAIgU2AoAFIAgoAmQhBiAIKAJoIQkgCCAIKQJsNwKQBSAIIBI2AowFIAggCCgCdDYCiAUgCCATNgKEBSAIIAhB+wRqNgKsBSAIIAhB9ANqNgKoBSAIIAhBgAVqNgKkBSAIIAhB+ANqNgKgBSAIIAhB/ARqNgKcBSAIIAhB4ANqNgKYBSAGIAUgCEGEBWpB+MrCACAJQQxqKAIAEQIAIAgtAPsEDQELIAhBAjYC/AQCQCBQQgSDUA0AIBlFDQAgCCAZKAIAIgU2AoAFIAgoAmQhBiAIKAJoIQkgCCAIKQJsNwKQBSAIIBI2AowFIAggCCgCdDYCiAUgCCATNgKEBSAIIAhB+wRqNgKsBSAIIAhB9ANqNgKoBSAIIAhBgAVqNgKkBSAIIAhB+ANqNgKgBSAIIAhB/ARqNgKcBSAIIAhB4ANqNgKYBSAGIAUgCEGEBWpB+MrCACAJQQxqKAIAEQIAIAgtAPsEDQELIAhBAzYC/AQCQCAEQQhJDQAgGEUNACAIIBgoAgAiBDYCgAUgCCgCZCEFIAgoAmghBiAIIAgpAmw3ApAFIAggEjYCjAUgCCAIKAJ0NgKIBSAIIBM2AoQFIAggCEH7BGo2AqwFIAggCEH0A2o2AqgFIAggCEGABWo2AqQFIAggCEH4A2o2AqAFIAggCEH8BGo2ApwFIAggCEHgA2o2ApgFIAUgBCAIQYQFakH4ysIAIAZBDGooAgARAgAgCC0A+wQNAQsgDiAIKQPgAzcCACAOQQhqIAIpAwA3AgAgCEHAAmogDUEQaigCADYCACAIQZACaiICQQhqIAtBCGopAgA3AwAgAkEQaiALQRBqKQIANwMAIAJBGGogC0EYaigCADYCACAIIA0pAgA3A7ACIAggCykCADcDkAIgCCANQQhqKQIANwO4AiAIKAL0AyEGIAgoAvgDIRwgCCgCgAQhHSAIKAKEBCEJIAgoApwEIRYgCCgC/AMhAiAIQfABaiIEQQhqIApBCGopAgA3AwAgBEEQaiAKQRBqKQIANwMAIARBGGogCkEYaigCADYCACAIQdgBaiIEQQhqIAxBCGopAgA3AwAgBEEQaiAMQRBqKQIANwMAIAggCikCADcD8AEgCCAMKQIANwPYASACQQRGDQEgCCgCvAQhBSAIKALcBCEEDAQLIAhB0AJqIAgpA7gCNwMAIAhB2AJqIAhBwAJqKAIANgIAIAggCCkDsAI3A8gCQQAhCQwBCyAIQdACaiAIKQO4AjcDACAIQdgCaiAIQcACaigCADYCACAIIAgpA7ACNwPIAiAIQZgBaiAJQQNGDQEaCyAWIRogCSEBIAhByAJqCyECIAhB+ANqIgNBEGogAkEQaigCADYCACADQQhqIAJBCGopAgA3AwAgCCACKQIANwP4AyAIKAKQAUUNAyAIKAKMARCaAgwDCyADQfgAaiEeIAhB6AJqIA5BCGopAgA3AwAgCCAOKQIANwPgAiANIAgpA7ACNwIAIA1BCGogCCkDuAI3AgAgDUEQaiAIQcACaigCADYCACALIAgpA5ACNwIAIAtBCGogCEGQAmoiD0EIaikDADcCACALQRBqIA9BEGopAwA3AgAgC0EYaiAPQRhqKAIANgIAIAggCTYChAQgCCAdNgKABCAIIAI2AvwDIAggHDYC+AMgCCAWNgKcBCAKQRhqIAhB8AFqIgJBGGooAgA2AgAgCkEQaiACQRBqKQMANwIAIApBCGogAkEIaikDADcCACAKIAgpA/ABNwIAIAxBEGogCEHYAWoiAkEQaikDADcCACAMQQhqIAJBCGopAwA3AgAgDCAIKQPYATcCACAIIAU2ArwEIAggBDYC3AQgBkEVdkEIcSAGQQ52QQRxIAZBB3ZBAnEgBkEBcXJycq0hUUIAIVADQAJAIFEgUIhCAYNQDQAgUKchAiAeLQAAQQFxRQRAIAJBAnQiAiADakHgAGooAgAiBCAUTw0BIAhB4AJqIAJqKgIAjCEhIAgoApQBIgYhBSAIKAKQASAGRgRAIAhBjAFqIAYQqwYgCCgClAEhBQsgCCgCjAEiAiAFQQN0aiIPICE4AgQgDyAENgIAIAggBUEBajYClAEgAiAGQQN0aiIEKgIEISEgBCgCACEEAkAgBkUEQEEAIQUMAQsDQEEAQX8gAiAGQQFrIg9BAXYiBUEDdGoiH0EEaioCACIiICFfIiAbQQFBAiAgGyAhICJfG0EBakECSQRAIAYhBQwCCyACIAZBA3RqIB8pAgA3AgAgBSEGIA9BAUsNAAsLIAIgBUEDdGoiAiAhOAIEIAIgBDYCAAwBCyACQQJ0IgUgCEHgAmpqKgIAIiEgB11FDQAgCEH4A2ogAkEFdGoiBCgCBCICQQNGDQAgECADIAVqQeAAaigCAE0NACARRQ0AIAhBmAFqIgFBEGogBEEYaigCADYCACABQQhqIARBEGopAgA3AwAgCCAEKQIINwOYASAEKAIcIRogAiEBICEhBwsgUEIBfCJQQgRSDQALIAhBsAFqIAhBjAFqEKEDIAgoArABDQALCyAIQfgDaiICQQhqIAhBmAFqIgNBCGopAwA3AwAgAkEQaiADQRBqKAIANgIAIAggCCkDmAE3A/gDIAgoApABRQ0AIAgoAowBEJoCCyABQQNGDQAgACABNgIAIAAgCCkD+AM3AgQgACAaNgIYIABBDGogCEGABGopAwA3AgAgAEEUaiAIQYgEaigCADYCACAIQbAFaiQADwtB9KPCAEEmQbClwgAQ4QkAC+0cAgt/L30jAEHAAmsiDyQAQwAAgD8hJEMAAIA/ISYgDCIfIRsCQAJ/AkACQANAIA9BPGogAiAfEIgCIA9B2ABqIAcgHxCIAiAPIA8qAkQiGiAPKgJgIh6UIA8qAkAiHCAPKgJcIiOUIA8qAjwiHSAPKgJYIiKUIA8qAkgiICAPKgJkIiWUkpKSOAKAASAPIBwgIpQgICAelCAdICOUk5IgGiAllJM4AnwgDyAgICOUIB0gHpSSIBwgJZSTIBogIpSTOAJ4IA8gGiAjlCAgICKUIB0gJZSTIBwgHpSTkjgCdCAcIA8qAmggDyoCTJMiIpQgHSAPKgJsIA8qAlCTIiWUkyIeIB6SIR4gGiAllCAcIA8qAnAgDyoCVJMiJ5STIiMgI5IhIyAPICcgICAelCAcICOUIB0gHSAnlCAaICKUkyInICeSIieUk5KSOAKMASAPICUgICAnlCAdIB6UIBogI5STkpI4AogBIA8gIiAgICOUIBogJ5QgHCAelJOSkjgChAEgD0HIAWogASAPQfQAaiAFIAYgCiALQ///f38QUQJAAkACQAJAIA8oAsgBIhBBA0cEQCAQQQFGDQEgEEEBaw4CBgIDCyAAQQQ6ADQMCAsgDyoC3AEiISAPKgJ0IhqUIA8qAtgBIiggDyoCeCIclJMiHSAdkiEdICggDyoCfCIglCAPKgLgASIrIBqUkyIeIB6SIR4gDyoCjAEgKyAPKgKAASIjIB2UIBogHpQgHCArIByUICEgIJSTIiIgIpIiIpSTkpKSIA8qAtQBIi6TIiUgJZQgDyoChAEgKCAjICKUIBwgHZQgICAelJOSkpIgDyoCzAEiL5MiHCAclCAPKgKIASAhICMgHpQgICAilCAaIB2Uk5KSkiAPKgLQASIwkyIdIB2UkpIiGkMAAIAoXg0CQQIMBgtB8KXCAEEoQcDDwgAQqgoAC0EDQQIgDCAfWxsMBAsgGhCbASEaIA8gDTgCICAPIB84AhwgDyAfOAIYIA8gJSAalSIpOAIUIA8gHSAalSIqOAIQIA8gHCAalSIkOAIMIA8qAoABISAgDyoCeCEfIA8qAnwhHCAPKgJ0IR0gD0HIAWogGiACIAMgBCAHIAggCSAPQQxqIA9BGGoQxwEgICAqIB2UICQgH5STIhogGpIiGpQgHyApIB+UICogHJSTIiYgJpIiJpQgHSAkIByUICkgHZSTIh4gHpIiHpSTkiApkyExICAgHpQgHSAalCAcICaUk5IgKpMhMiAgICaUIBwgHpQgHyAalJOSICSTISYgDyoCzAEhHyAPKgLIASIaIBuTQwAAoDVdRQRAIA8oAtQBRQ0DIBohGwwBCwsgDyoC0AEiGyANXA0BIA9BkAFqIhAgAiAbEIgCIA9BgAJqIhEgByAbEIgCIA8qApQBIhsgDyoCkAIgDyoCoAGTIjOUIA8qApABIhogEUEUaioCACAQQRRqKgIAkyIjlJMiHCAckiEgIA8qApgBIhwgI5QgGyARQRhqKgIAIBBBGGoqAgCTIiKUkyIdIB2SIR4gD0HIAWoiEEEYaiAiIA8qApwBIh0gIJQgGyAelCAaIBogIpQgHCAzlJMiIiAikiI0lJOSkjgCACAQQRRqICMgHSA0lCAaICCUIBwgHpSTkpI4AgAgDyAcIA8qAogCIiOUIBsgDyoChAIiIpQgGiAPKgKAAiIllCAdIA8qAowCIieUkpKSOALUASAPIBsgJZQgHSAjlCAaICKUk5IgHCAnlJM4AtABIA8gHSAilCAaICOUkiAbICeUkyAcICWUkzgCzAEgDyAcICKUIB0gJZQgGiAnlJMgGyAjlJOSOALIASAPIDMgHSAelCAcIDSUIBsgIJSTkpI4AtgBIA9BJGogAyAPQQxqIAQoAhARAQAgDyAPKgIUjDgCvAIgDyAPKgIQjDgCuAIgDyAPKgIMjDgCtAIgD0EwaiAIIBAgD0G0AmogCSgCGBECACAPKgIwIA8qAiSTIA8qAgyUIA8qAjQgDyoCKJMgDyoCEJSSIA8qAjggDyoCLJMgDyoCFJSSQwAAAABeRQ0BIABBBDoANAwDCwALQQELIRAgDigCAEUEQCAAIA8vAAk7ADUgACAQOgA0IAAgMTgCMCAAIDI4AiwgACAmOAIoIAAgKTgCJCAAICo4AiAgACAkOAIcIAAgKzgCGCAAICE4AhQgACAoOAIQIAAgLjgCDCAAIDA4AgggACAvOAIEIAAgHzgCACAAQTdqIA9BC2otAAA6AAAMAQsgHyAMk4tDrMUnN11FBEAgACAPLwAJOwA1IAAgEDoANCAAIDE4AjAgACAyOAIsIAAgJjgCKCAAICk4AiQgACAqOAIgIAAgJDgCHCAAICs4AhggACAhOAIUIAAgKDgCECAAIC44AgwgACAwOAIIIAAgLzgCBCAAIB84AgAgAEE3aiAPQQtqLQAAOgAADAELIA4qAgQhJUPbD0lAIA4qAgiTQwAAAABDAACAPyAHKgI0IicgAioCNCIukyIbIBuUIAdBOGoqAgAiLyACQThqKgIAIjCTIhsgG5SSIAdBPGoqAgAiMSACQTxqKgIAIjKTIhsgG5SSEJsBIhuVIBtDAAAAAFsbIjqUIhogGiAlQwAAAABDAACAPyAHKgIoIjsgAioCKCI8kyIbIBuUIAdBLGoqAgAiPSACQSxqKgIAIj6TIhsgG5SSIAdBMGoqAgAiPyACQTBqKgIAIkCTIhsgG5SSEJsBIhuVIBtDAAAAAFsblCIbIBogG10bIBsgG1wbIhogGiANIAyTQwAAIEGVIhsgGiAbXRsgGyAbXBshGwJAAkACQCAMIA1dBEAgDSAbIBtDAAAAAFsbIUEgB0EkaioCACFCIAdBIGoqAgAhQyACQSRqKgIAIUQgAkEgaioCACFFIA9BqAFqIRAgByoCHCFGIA9BnAFqIRIgAioCHCFHIA9BzAFqIQ4gDCEbA0AgD0E8aiACIBsQiAIgD0HYAGogByAbEIgCIA8gDyoCRCIaIA8qAmAiJJQgDyoCQCIfIA8qAlwiIJQgDyoCPCIcIA8qAlgiKZQgDyoCSCIdIA8qAmQiKpSSkpI4AoABIA8gHyAplCAdICSUIBwgIJSTkiAaICqUkzgCfCAPIB0gIJQgHCAklJIgHyAqlJMgGiAplJM4AnggDyAaICCUIB0gKZQgHCAqlJMgHyAklJOSOAJ0IB8gDyoCaCAPKgJMkyIrlCAcIA8qAmwgDyoCUJMiJpSTIiEgIZIhISAaICaUIB8gDyoCcCAPKgJUkyIelJMiKCAokiEoIA8gHiAdICGUIB8gKJQgHCAcIB6UIBogK5STIh4gHpIiHpSTkpI4AowBIA8gJiAdIB6UIBwgIZQgGiAolJOSkjgCiAEgDyArIB0gKJQgGiAelCAfICGUk5KSOAKEASAPQcgBaiABIA9B9ABqIAUgBiAKIAtD//9/fxBfIA8oAsgBIhNBAkYNBCAPQYACaiIRQTBqIhcgDkEwaigCADYCACARQShqIhggDkEoaikCADcDACARQSBqIhQgDkEgaikCADcDACARQRhqIhUgDkEYaikCADcDACARQRBqIhkgDkEQaikCADcDACARQQhqIhYgDkEIaikCADcDACAPIA4pAgA3A4ACIBNFDQQgD0GQAWoiEUEIaiITIBYpAwA3AwAgEUEQaiIWIBkpAwA3AwAgECAVKQMANwMAIBFBIGoiFSAUKQMANwMAIBFBMGoiFCAXKAIANgIAIBFBKGogGCkDADcDACAPIA8pA4ACNwOQASAcIA8qAqwBIjOUIB8gECoCACI0lJMiISAhkiEoIBogNJQgHCAVKgIAIiyUkyIhICGSISsgJCAPKgKcASBGkyI1lCApIA8qAqQBIEKTIjiUkyIhICGSISYgICA4lCAkIBYqAgAgQ5MiLZSTIiEgIZIhHiAaIA8qApABIEeTIjaUIBwgEyoCACBEkyI5lJMiISAhkiEjIB8gOZQgGiAPKgKUASBFkyI3lJMiISAhkiEiICVDAAAAgCAUKgIAIiEgIUMAAAAAXxuSIA0gG5MgLCAdICiUIBwgK5QgHyAfICyUIBogM5STIiwgLJIiLJSTkpIgPyAnIC0gKiAmlCAkIB6UICkgKSAtlCAgIDWUkyItIC2SIi2Uk5KSIkiUIC8gNSAqIB6UICAgLZQgJCAmlJOSkiI1lJOSIEAgLiA3IB0gI5QgGiAilCAcIBwgN5QgHyA2lJMiJCAkkiIklJOSkiI3lCAwIDYgHSAilCAfICSUIBogI5STkpIiNpSTkpOUIDQgHSAslCAfICiUIBogK5STkpIgOyAvIDggKiAtlCApICaUICAgHpSTkpIiIJQgMSBIlJOSIDwgMCA5IB0gJJQgHCAjlCAfICKUk5KSIh+UIDIgN5STkpOUIDMgHSArlCAaICyUIBwgKJSTkpIgPSAxIDWUICcgIJSTkiA+IDIgNpQgLiAflJOSk5SSkoyUXQ0DIDpDAAAAAFsNAiBBIBuSIhsgDV0NAAsLIABBBDoANAwDCyAAQQQ6ADQMAgsgD0G0AWohAQJAICFDAAAAAF5FBEAgDyAbOAK8AiAPIBs4ArgCIA8gDDgCtAIgD0HIAWogISACIA9BgAJqIAcgEiAQIA9BtAJqEMIBDAELIA8gDTgCvAIgDyAbOAK4AiAPIBs4ArQCIA9ByAFqICEgAiADIAQgByAIIAkgECAPQbQCahDHAQsgDyoCzAEhDCAAIA8pA4ACNwIEIABBAToANCAAIAw4AgAgACASKQIANwIQIAAgECkCADcCHCAAIAEpAgA3AiggAEEMaiAPQYgCaigCADYCACAAQRhqIBJBCGooAgA2AgAgAEEkaiAQQQhqKAIANgIAIABBMGogAUEIaigCADYCAAwBCyAAQQQ6ADQLIA9BwAJqJAAL9z0DE39GfQR+IwBBgAFrIgUkAAJAAkACQAJAAkACfwJAAkACQAJAAkACfwJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoArwBDgQAAQIDBAsgAUGAgID8AzYCsAEgACABKQIQNwIAIABBCGogAUEYaigCADYCAAwdCyAFQQhqIgNBCGoiAiABQRhqKAIANgIAIANBFGogAUE8aigCADYCACAFIAEpAhA3AwggBSABQTRqIgQpAgA3AhQgBUEANgJ4IAVCADcCcCAFQTBqIgYgAyAFQfAAahDyAiACIAZBCGooAgA2AgAgBSAFKQIwNwMIIAZBFGooAgAhAwJAAkACQAJAIAUoAkBFBEAgAw4CAgMBCyAFQcgAaioCACEVIAEgAzYCsAEgAUG0AWogFTgCAAwDC0HwpcIAQShBsLvCABCqCgALIAFBADYCvAEgAUGAgID8AzYCsAEMAQsgAUEQaiIDKQIAIVsgAyAEKQIANwIAIAVBMGoiBkEgaiICIANBIGoiBygCADYCACAGQRhqIgsgA0EYaiIIKQIANwMAIAZBEGoiCiADQRBqIgwpAgA3AwAgBkEIaiIGIANBCGoiAykCADcDACADIARBCGoiAykCADcCACAMIARBEGoiDCkCADcCACAIIARBGGoiCCkCADcCACAHIARBIGoiBygCADYCACAFIFs3AzAgBCAFKQMwNwIAIAcgAigCADYCACAIIAspAwA3AgAgDCAKKQMANwIAIAMgBikDADcCACABQQA2ArwBIAFBgICA/AM2ArABIAEgASkCAEIgiTcCAAsgACAFKQMINwIAIABBCGogBUEQaigCADYCAAwcCyAFQTBqIgRBCGogAUEYaigCADYCACAEQRRqIAFBPGooAgA2AgAgBEEgaiABQeAAaigCADYCACAFIAEpAhA3AzAgBSABQTRqIgYpAgA3AjwgBSABQdgAaiIDKQIANwNIIAVBADYCbCAFQgA3AmQgBUEIaiIHIAQgBUHkAGpBARBNIAVB+ABqIgsgB0EIaigC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FiAilJOSkiIwlJOSk5QgMyAgICiUIBsgJZQgFiAmlJOSkiA3ICsgNCAcICmUIBogI5QgGSAYlJOSkiIZlCAtIESUk5IgOCAsIDUgICAhlCAeICKUIBsgH5STkpIiG5QgLiAxlJOSk5QgMiAgICaUIBYgKJQgHiAllJOSkiA5IC0gL5QgJyAZlJOSIDogLiAwlCAqIBuUk5KTlJKSjJRdDQMgNkMAAAAAWw0CID0gF5IiFyAJXQ0ACwsgAEEEOgA0DAMLIABBBDoANAwCCyALQZQBaiEBAkAgHUMAAAAAXkUEQCALIBc4ApwCIAsgFzgCmAIgCyAIOAKUAiALQagBaiAdIAIgC0HgAWogBSAOIAwgC0GUAmoQwgEMAQsgCyAJOAKcAiALIBc4ApgCIAsgFzgClAIgC0GoAWogHSACIAMgBSAGIAwgC0GUAmoQ+QELIAsqAqwBIQMgACALKQPgATcCBCAAQQE6ADQgACADOAIAIAAgDikCADcCECAAIAwpAgA3AhwgACABKQIANwIoIABBDGogC0HoAWooAgA2AgAgAEEYaiAOQQhqKAIANgIAIABBJGogDEEIaigCADYCACAAQTBqIAFBCGooAgA2AgAMAQsgAEEEOgA0CyALQaACaiQAC4MdAwh/Gn0DfiMAQeACayIFJAAgACoCmAEhHiAAQYgBakEANgIAIABB8ABqQQA2AgAgBUEBOgAHAkACQAJAIAIoAhgiBwRAIAdB/////wFLDQEgB0ECdCIGQQBIDQECQCAGRQRAIAVBADYCECAFIAc2AgwgBUEENgIIDAELQZH7wwAtAAAaIAZBBBCCDCIIRQ0EIAVBADYCECAFIAc2AgwgBSAINgIICyAHQdWq1SpLDQEgB0EYbCIGQQBIDQECQAJAIAZFBEBBBCEIDAELQZH7wwAtAAAaIAZBBBCCDCIIRQ0BCyAIIQYCQCAHQQJJDQAgB0EBayIJQQNxIQogB0ECa0EDTwRAIAlBfHEhCQNAIAZC////+////79/NwIQIAZC////+/f//79/NwIIIAZC////+/f//7//ADcCACAGQdgAakL////7////v383AgAgBkHQAGpC////+/f//79/NwIAIAZByABqQv////v3//+//wA3AgAgBkFAa0L////7////v383AgAgBkE4akL////79///v383AgAgBkEwakL////79///v/8ANwIAIAZBKGpC////+////79/NwIAIAZBIGpC////+/f//79/NwIAIAZBGGpC////+/f//7//ADcCACAGQeAAaiEGIAlBBGsiCQ0ACwsgCkUNAANAIAZC////+////79/NwIQIAZC////+/f//79/NwIIIAZC////+/f//7//ADcCACAGQRhqIQYgCkEBayIKDQALCyAGQf////sHNgIIIAZC////+/f//7//ADcCACAGQf///3s2AhQgBkL////7////v383AgwgBSAHNgIcIAUgBzYCGCAFIAg2AhRBBCEIIAdBBHQiBkEASA0CIAYEQEGR+8MALQAAGiAGQQQQggwiCEUNBQsgCCEGAkAgB0ECSQ0AIAdBAWsiCUEDcSEKIAdBAmtBA08EQCAJQXxxIQkDQCAGQn83AgggBkEAOgAEIAZBfzYCACAGQThqQn83AgAgBkE0akEAOgAAIAZBMGpBfzYCACAGQShqQn83AgAgBkEkakEAOgAAIAZBIGpBfzYCACAGQRhqQn83AgAgBkEUakEAOgAAIAZBEGpBfzYCACAGQUBrIQYgCUEEayIJDQALCyAKRQ0AA0AgBkJ/NwIIIAZBADoABCAGQX82AgAgBkEQaiEGIApBAWsiCg0ACwsgBkJ/NwIIIAZBADoABCAGQX82AgAMAwsMAwsgBUEANgIQIAVCBDcCCCAFQQA2AhwgBUIENwIUQQQhCAwBCxDbCgALIABBjAFqIQYgAEGQAWooAgAEQCAGKAIAEJoCCyAAIAc2ApQBIAAgBzYCkAEgACAINgKMASAFIAY2AogBIAUgBUEIajYCkAEgBSAFQRRqNgKMAQJAAkACQAJAIANBAWsOAgIBAAsgAkEQaigCAEGoAWwhByAFQYgCaiEDIAIoAgghCkEAIQZBACECA0AgBiAHRg0DAkAgBiAKaiIBKAIARQ0AIAFB6gBqLQAADQAgAUEEaigCACEIIAMgAUE4aigCACABQTxqKAIAIgkoAghBAWtBeHFqQQhqIAFB/ABqIAkoAogBEQEAIAUgCDYChAIgBSACNgKAAiAFQYgBaiACIAggAxDhAQsgAkEBaiECIAZBqAFqIQYMAAsACyACQRBqKAIAQagBbCEHIAEoAhAhCyABKAIIIQggBUGIAmohAyACKAIIIQxBACEKQQAhCQNAIAcg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m8EAQRNB6IbCABDhCQALIAJBAWohAiAKQagBaiEKDAALAAsgAEHoAGohBiAAQdAAaiEBIAVBIGoQtQkgACgCcCICIABB7ABqKAIARgRAIAYgAhCvBiAAKAJwIQILIAAoAmggAkEHdGogBUEgakHgABCIDSIDQegAakJ/NwMAIANCgYCAgHA3A2AgA0EAOgB4IANBADoAdCADQX82AnAgACACQQFqNgJwIAVBgAJqIgIgASAFQQdqIAUoAgggBSgCECAFQRRqQQBBACAeEGAgBUGIAWoiA0EQaiAFQZQCaikCACInNwMAIANBCGogBUGMAmopAgAiKDcDACAFIAUpAoQCIik3A4gBIAFBEGogJzcCACABQQhqICg3AgAgASApNwIAIAJBEGogJzcDACACQQhqICg3AwAgBUHYAmpC////+////79/NwMAIAVB0AJqQv////v3//+/fzcDACAFQcACakL////7////v383AwAgBUG4AmpC////+/f//79/NwMAIAVBqAJqQv////v///+/fzcDACAFQaACakL////79///v383AwAgBSApNwOAAiAFQv////v3//+//wA3A8gCIAVC////+/f//7//ADcDsAIgBUL////79///v/8ANwOYAiAFQaABaiACEJoEIAAoAnAEQCAGKAIAIAVBoAFqQeAAEIgNGiAFKAIYBEAgBSgCFBCaAgsgBSgCDARAIAUoAggQmgILIAVB4AJqJAAPC0EAQQBBvNrAABDjCAALQQQgBkHQgcQAKAIAIgBBlwcgABsRAAAAC/sdAgx/KH0jAEGAAWsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQCAEQQVPBEAgBEECdCENQwAAgD8gBLOVIRQgBSgCACEMIAUoAgghCANAIAMgC2ooAgAiCiAITw0DIBcgFCAMIApBGGxqIgoqAgAgCioCDJJDAAAAP5SUkiEXIBggFCAKKgIIIApBFGoqAgCSQwAAAD+UlJIhGCAWIBQgCioCBCAKQRBqKgIAkkMAAAA/lJSSIRYgDSALQQRqIgtHDQALIARBAnQhDUMAAIA/IARBAWuzlSEaIAUoAgAhDCAFKAIIIQhDAAAAACEUQQAhCwNAIAMgC2ooAgAiCiAITw0CIBQgGiAMIApBGGxqIgoqAgAgCioCDJJDAAAAP5QgF5MiFCAUlJSSIRQgGSAaIAoqAgggCkEUaioCAJJDAAAAP5QgGJMiGSAZlJSSIRkgFSAaIAoqAgQgCkEQaioCAJJDAAAAP5QgFpMiFSAVlJSSIRUgDSALQQRqIgtHDQALQQIgFCAVXiIKIBkgFSAUIAobXRsiCkECaiIIIApBAWsgCEEDSRshDSAKQQFqIgggCkECayAIQQNJGyEOIAFBGGohDCABQSBqKAIAIgshCiABQRxqKAIAIAtGBEAgDCALEK8GIAEoAiAhCgsgASgCGCAKQQd0aiIIQgA3A2AgCEEAOgB4IAggBzoAdCAIIAY2AnAgCEL////7////v383A1ggCEL////7////v383A1AgCEL////7////v383A0ggCEL////7////v383A0AgCEL////7////v383AzggCEL////7////v383AzAgCEL////79///v/8ANwMoIAhC////+/f//7//ADcDICAIQv////v3//+//wA3AxggCEL////79///v/8ANwMQIAhC////+/f//7//ADcDCCAIQv////v3//+//wA3AwAgCEHoAGpCADcDACABIApBAWo2AiAgCSAYOAJMIAkgFjgCSCAJIBc4AkQgCUHgAGoiBiADIAQgBSgCACIEIAUoAggiByAJQcQAaiIDIA4gAi0AACIKEI4EIAlB7ABqIggoAgAhDiAJKAJoIQ8gBiAJKAJgIAkoAmQgBCAHIAMgDSAKEI4EIAgoAgAhECAJKAJoIREgCSgCZCESIAkoAmAhEyAGIA8gDiAEIAcgAyANIAoQjgQgCCgCACEEIAkoAmghByAJKAJkIQogCSgCYCEIIAlBDGogASACIBMgEiAFIAtBABBEIAlBKGogASACIBEgECAFIAtBARBEIAMgASACIAggCiAFIAtBAhBEIAYgASACIAcgBCAFIAtBAxBEIAEoAiAiAiALTQ0EIAkqAnghGCAJKgJ0IRYgCSoCcCEXIAkqAmwhFCAJKgJoIRUgCSoCZCEZIAkoAmAhAyAJKgJcIRogCSoCWCEbIAkqAlQhHCAJKgJQIR0gCSoCTCEeIAkqAkghHyAJKAJEIQQgCSoCQCEgIAkqAjwhISAJKgI4ISIgCSoCNCEjIAkqAjAhJCAJKgIsISUgCSgCKCEFIAkqAiQhJiAJKgIgIScgCSoCHCEoIAkqAhghKSAJKgIUISog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//v3/////wA3AgAgA0E4akL////79/////8ANwIAIANBMGpC////+/f/////ADcCACADQShqQv////v3/////wA3AgAgA0EgakL////79/////8ANwIAIANBGGpC////+/f/////ADcCACADQRBqQv////v3/////wA3AgAgA0EIakL////79/////8ANwIAIANBQGshAyAIQQhrIggNAAsLIAIEQANAIANC////+/f/////ADcCACADQQhqIQMgAkEBayICDQALCyAHIAtqQQFrIQcLIANC////+/f/////ADcCACAJKAIUIQsgB0EBaiECCyAJIAI2AgggCwRAIABBAmshByAKQQJrIQMgCSgCDCIOIAtBDGxqIQ0DQAJAAkAgCSgCCCIKIAdLBEAgDUEMayENIAdBA3QhAiADQQN0IQgDQCAJKAIAIgAgAmoiDyoCACIfIA0qAgAiIF8NAyADIApPDQIgD0EEaigCACEKIAAgCGoiACAfOAIAIABBBGogCjYCACACQQhrIQIgCEEIayEIIANBAWshAyAHQQFrIgcgCSgCCCIKSQ0ACwsgByAKQczvwQAQ4wgACyADIApB3O/BABDjCAALIAMgCk8EQCADIApB7O/BABDjCAALIAAgCGoiAEEEaiANQQRqKAIANgIAIAAgIDgCACANQQhqIAM2AgAgA0EBayEDIA0gDkcNAAsgCSgCCCECCyACQQFrIQ0gAkUNASAGRQ0AIAkoAgAhDiAJKAIUIQAgCUEANgIUIABBDGwhAyAJKAIMIQcCQAJAAkAgAUEDTwRAA0AgA0UNBSADQQxrIQMgBygCBCEAIAdBDGohByAAQQBODQALIABB/////wdxIgogBUkNAQwGCyAEIAFBAnRqIQkgAyAHaiEPIAJBA3RBEGshCwNAIAcgD0YNBCAHIgBBDGohByAAKAIEIgFBAE4NACABQf////8HcSIKIAVPDQYgACgCCCIDQQFqIgEgDUsNAiABIA1GDQAgACoCACEfIApBLGwiCCAEaiIAQQxqIQIgCCAJakEYaioCACEgIAsgA0EDdGshCCAOIAFBA3RqIQMgAEEgaiERIABBHGohEyAAQRhqIRADQAJAIANBBGooAgAiAUH/////B3EiACAKRg0AIAAgBU8NBQJAIAFBAEgEQCADKgIAICBdDQEMAgsgCSAAQSxs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AiAoAgAiBwRAIARBiAJqIgZBGGogB0EYaigCADYCACAGQRBqIAdBEGopAgA3AwAgBkEIaiAHQQhqKQIANwMAIAQgBykCADcDiAJBASEJCyAEQegBaiIHQRhqIARBiAJqIgZBGGoiCygCADYCACAHQRBqIAZBEGoiECkDADcDACAHQQhqIAZBCGoiBykDADcDACAEIAQpA4gCNwPoASABBEAgCyABQRhqKAIANgIAIBAgAUEQaikCADcDACAHIAFBCGopAgA3AwAgBCABKQIANwOIAkEBIQULIARByAFqIgFBGGogCygCADYCACABQRBqIBApAwA3AwALIAFBCGogBykDADcDACAEIAQpA4gCNwPIASANIgYgCigCBEYEQCAKIA0QowYgCigCCCEGCyAKKAIAIAZBqAFsaiIBIAk2AgAgASAEKQPoATcCBCABIAU2AiAgASAEKQPIATcCJCABQQxqIARB6AFqIgVBCGopAwA3AgAgAUEUaiAFQRBqKQMANwIAIAFBHGogBUEYaigCADYCACABQSxqIARByAFqIgVBCGopAwA3AgAgAUE0aiAFQRBqKQMANwIAIAFBPGogBUEYaigCADYCACABQgA3AlwgAUHkAGpCADcCACABQewAakIANwIAIAFB8gBqQgA3AQAgAUIANwKAASABQYgBakIANwIAIAFBkAFqQgA3AgAgAUGYAWpCADcCACABQQQ2AlggAUEANgJMIAFBADYCQCABQQQ2AnwgASAONgKgASABIAw2AqQBIAogBkEBajYCCCAIKAIAIgUgDyAIKAIEIglxIgZqKQAAQoCBgoSIkKDAgH+DIiRQBEBBCCEBA0AgASAGaiEHIAFBCGohASAHIAlxIgYgBWopAABCgIGChIiQoMCAf4MiJFANAAsLIAgoAhghByAkeqdBA3YgBmogCXEiBiAFaiwAACIBQQBOBEAgBSkDAEKAgYKEiJCgwIB/g3qnQQN2IgYgBWotAAAhAQsCQCABQQFxIgxFDQAgCCgCCA0AIAggCCgCECAHEIkBIA8gCCgCBCIJcSIBIAgoAgAiBWopAABCgIGChIiQoMCAf4MiJFAEQEEIIQYDQCABIAZqIQEgBkEIaiEGIAUgASAJcSIBaikAAEKAgYKEiJCgwIB/gyIkUA0ACwsgJHqnQQN2IAFqIAlxIgYgBWosAABBAEgN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BFINAAsMAQsgACANQfSYwAAQ4wgACyACLQCwAiIAQQJGDQEgCUH4AGohBgJAIAItALMCQQN0QQhxIAItALICQQJ0QQRxIAItALECQQF0QQJxIABBAXFycnIiA60iH0IBg1ANACAGLQAAQQFxDQAgCSgCYCIAIA1LDQAgECAANgIAIAIgETYCrAILAkAgH0ICg1ANACAGLQAAQQFxDQAgCUHkAGooAgAiACANSw0AIAsgAigCrAIiAUYEQCACQaQCaiALEKgGIAIoAqwCIQELIAIoAqQCIAFBAnRqIAA2AgAgAiABQQFqNgKsAgsCQCAfQgSDUA0AIAYtAABBAXENACAJQegAaigCACIAIA1LDQAgAigCrAIiASACKAKoAkYEQCACQaQCaiABEKgGIAIoAqwCIQELIAIoAqQCIAFBAnRqIAA2AgAgAiABQQFqNgKsAgsCQCADQQhJDQAgBi0AAEEBcQ0AIAlB7ABqKAIAIgEgDUsNACACKAKsAiIAIAIoAqgCRgRAIAJBpAJqIAAQqAYgAigCrAIhAAsgAigCpAIgAEECdGogATYCACACIABBAWoiETYCrAIgEQ0BDAILIAIoAqwCIhENAAsLIAIoAqgCBEAgAigCpAIQmgILIAJBgANqJAALtBUDKn8XfQJ+IwBBkAJrIgMkACADIAI2AjQgAyABNgIwIANBADoAOCADIAIqAggiMTgCLCADIDE4AiggAyAxOAIkIAMgMTgCICADIAIqAgQiMjgCHCADIDI4AhggAyAyOAIUIAMgMjgCECADIAIqAgAiMzgCDCADIDM4AgggAyAzOAIEIAMgMzgCAAJAIAFBOGooAgAiFQRAIANBADYCUCADQgQ3AkggA0HIAGoiBEEAEKsGIAMoAkggAygCUCILQQN0akKAgICA8P///343AgAgAyALQQFqNgJQIANB1ABqIAQQoQMCQAJAIAMoAlRFBEBBBCELDAELIAFBFGooAgAhDyABQdwAaigCACEQIAFB1ABqKAIAIREgASgCACEIIAEoAgghByABKAIMIRMgA0GEAmohCSABKAIwISRD//9/fyEvIANBwwFqISUgA0GnAWohJiADQe8AaiEUQQQhCwJAAkADQCAvIAMqAlyMXw0DAkACQAJAIAMoAlgiASAVSQRAICQgAUEHdGoiCi0AeEEBcSIEBEAgESAKKAJg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ICZBACAHIAlfG0EAIAdDAAAAAGAbISEgBCEBAkACQCAJQwAAAABgRQ0AIAcgCWBFDQAgBCAjaiEBQQAhAyAjDQELQQEhAyAhRQ0BCyAcICFqIh4gCCAhaiICICFBAEobIiRBAEggICAkTHIiJyABIARrIgQgBmoiHSAEIAVqIhsgBEEAShsiJUEASCAfICVMciIEcQ0AIAMgBHINASACIB5ODQEgHCAIayEDIAIhBANAIBpB3ABqICUgBBCaAUUEQCAEQQFqIQQgA0EBayIDDQEMAwsLIABBBToANAwHCyAAIBopAiQ3AgAgAEEwaiAaQSRqIgFBMGopAgA3AgAgAEEoaiABQShqKQIANwIAIABBIGogAUEgaikCADcCACAAQRhqIAFBGGopAgA3AgAgAEEQaiABQRBqKQIANwIAIABBCGogAUEIaikCADcCAAwGCyAhICJqISIgASEEIB4hHCACIQggIUUgJ3INACAbIB1ODQAgBiAFayEDIBshBANAIBpB3ABqIAQgJBCaAQRAIABBBToANAwHCyAEQQFqIQQgA0EBayIDDQALIAEhBAwACwALIAAgGikCJDcCACAAQTBqIBpBJGoiAUEwaikCADcCACAAQShqIAFBKGopAgA3AgAgAEEgaiABQSBqKQIANwIAIABBGGogAUEYaikCADcCACAAQRBqIAFBEGopAgA3AgAgAEEIaiABQQhqKQIANwIADAMLQbSOwgBBHEGYj8IAEKoKAAtBtI7CAEEcQZiPwgAQqgoACyAAQQQ6ADQLIBpBgAFqJAALrxUCCX8CfiMAQUBqIgUkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQFrDgUBAgMEBQALIAIoAgAhAQJAA0ACQCACKALMASIKIAIoAsgBQQFrIAFxIghBHGxqIgYoAhgiCSABQQFqRwRAIAEgCUcEQCADQQZNBEBBACEBA0AgASADdiEEIAFBAWohASAERQ0ACwsgAigCACEBIAMgA0ELSWohAwwDCyABIAIoAkAiBCACKALIASIGQX9zcUYNAUEGIAMgA0EGTxshBkEAIQEDQCABIAZ2IQQgAUEBaiEBIARFDQALIAIoAgAhASADIANBB0lqIQMMAgsgAigCwAEgCEEBak0EQCACKALEASIEIAFBACAEa3FqIQkLIAIoAgAiBCAB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AioCFCEZIAIqAhAhKSACKgIMIRMgAioCCCEVIAIqAgQhFiACKgIAISpBfyENIAEoAjwgCkEEdGoiAkEAOgAEIAIgDjYCACAEQQFGBEBBfyELQX8hDEP//3//IRRD//9//yEaQ///f38hG0P//39/IRxD//9//yEdQ///f/8hHkP//3//IR9D//9/fyEgQ///f38hIUP//39/ISJD//9//yEjQ///f/8hJEP//3//ISVD//9/fyEmQ///f38hJ0P//39/ISgMCAsgBSgCCCICIAMoAgQiC00EQCALIQoMBwsgASgCRCICIAtNBEAgCyEKDAELIAUoAgAgC0EYbGoiAioCFCEjIAIqAhAhJCACKgIMISUgAioCCCEmIAIqAgQhJyACKgIAISggASgCPCALQQR0aiICQQE6AAQgAiAONgIAIARBAkYEQEF/IQxD//9//yEUQ///f/8hGkP//39/IRtD//9/fyEcQ///f/8hHUP//3//IR5D//9//yEfQ///f38hIEP//39/ISFD//9/fyEiDAgLIAUoAggiAiADKAIIIgxNBEAgDCEKDAcLIAEoAkQiAiAMTQRAIAwhCgwBCyAFKAIAIAxBGGxqIgIqAhQhHSACKgIQIR4gAioCDCEfIAIqAgghICACKgIEISEgAioCACEiIAEoAjwgDEEEdGoiAkECOgAEIAIgDjYCACAEQQNGBEBD//9//yEUQ///f/8hGkP//39/IRtD//9/fyEcDAgLIAUoAggiAiADKAIMIg1NBEAgDSEKDAcLIA0gASgCRCICSQ0FIA0hCgsgCiACQazawAAQ4wgACyAKIAJBvNnAABDjCAALIAogAkHM2cAAEOMIAAsgCiADQdzZwAAQ4wgACyAKIAFB7NnAABDjCAALIAUoAgAgDUEYbGoiAioCACEcIAIqAgQhGyACKgIIIRcgAioCDCEaIAIqAhAhFCACKgIUIRggASgCPCANQQR0aiICQQM6AAQgAiAONgIADAELIAogAkGc2sAAEOMIAAsgCSAYOAL8ASAJIBQ4AvgBIAkgGjgC9AEgCSAXOALwASAJIBs4AuwBIAkgHDgC6AEgCSAdOALkASAJIB44AuABIAkgHzgC3AEgCSAgOALYASAJICE4AtQBIAkgIjgC0AEgCSAjOALMASAJICQ4AsgBIAkgJTgCxAEgCSAmOALAASAJ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AWsiBUEDcSEEIAZBAmtBA08EQCAFQXxxIQUDQCABQv////v///+/fzcCECABQv////v3//+/fzcCCCABQv////v3//+//wA3AgAgAUHYAGpC////+////79/NwIAIAFB0ABqQv////v3//+/fzcCACABQcgAakL////79///v/8ANwIAIAFBQGtC////+////79/NwIAIAFBOGpC////+/f//79/NwIAIAFBMGpC////+/f//7//ADcCACABQShqQv////v///+/fzcCACABQSBqQv////v3//+/fzcCACABQRhqQv////v3//+//wA3AgAgAUHgAGohASAFQQRrIgUNAAsLIARFDQADQCABQv////v///+/fzcCECABQv////v3//+/fzcCCCABQv////v3//+//wA3AgAgAUEYaiEBIARBAWsiBA0ACwsgAUH////7BzYCCCABQv////v3//+//wA3AgAgAUH///97NgIUIAFC////+////79/NwIMIAMgBjYCICADIAY2AhwgAyACNgIYQZH7wwAtAAAaIAhBBBCCDCICRQ0EIAIhAQJ/QQEgBkECSQ0AGiAGQQFrIgVBA3EhBCAGQQJrQQNPBEAgBUF8cSEFA0AgAUJ/NwIIIAFBADoABCABQX82AgAgAUEsakF/NgIAIAFBKGpBADoAACABQSBqQn83AgAgAUEcakEAOgAAIAFBFGpCfzcCACABQRBqQQA6AAAgAUEwaiEBIAVBBGsiBQ0ACwsgBiAERQ0AGgNAIAFBfzYCCCABQQA6AAQgAUF/NgIAIAFBDGohASAEQQFrIgQNAAsgBgshBSABQX82AgggAUEAOgAEIAFBfzYCAAsgAEFAaygCAARAIAAoAjwQmgILIAAgBTYCRCAAIAY2AkAgACACNgI8IAYEQCAIIAlqIQwgAEE8aiENQQAhBANAIAkoAgAiASAAKAJQIgJPDQYgCSgCBCIIIAJPDQcgCSgCCCIHIAJPDQggBEEBaiEGIAAoAkgiAiABQQxsaiIBKgIEIRQgAiAHQQxsaiIHKgIAIRIgAiAIQQxsaiICKgIAIRUgAioCCCEQIAEqAgghFiAHKgIIIQ8gAioCBCEXIAcqAgQhEyABKgIAIRggBCAFTwRAIAYgBSICayEIIAggACgCQCACa0sEQCANIAUgCBCLBiAAKAJEIQILIAAoAjwgAkEMbGohASAIQQJPBEAgBCAFayIHQQNxIQogBCAFQX9zakEDTwRAIAdBfHEhBwNAIAFCfzcCCCABQQA6AAQgAUF/NgIAIAFBLGpBfzYCACABQShqQQA6AAAgAUEgakJ/NwIAIAFBHGpBADoAACABQRRqQn83AgAgAUEQakEAOgAAIAFBMGohASAHQQRrIgcNAAsLIAoEQCALIAVrQQNxIQcDQCABQX82AgggAUEAOgAEIAFBfzYCACABQQxqIQEgB0EBayIHDQALCyACIAhqQQFrIQILIAFBfzYCCCABQQA6AAQgAUF/NgIAIAAgAkEBaiIFNgJEIAMgAygCICIIIARNBH8gBiAIIgJrIQogCiADKAIcIAJrSwRAIANBGGogCCAKEJ0GIAMoAiAhAgsgAygCGCACQRhsaiEBIApBAk8EQCAEIAhrIgdBA3EhDiAEIAhBf3NqQQNPBEAgB0F8cSEHA0AgAUL////7////v383AhAgAUL////79///v383AgggAUL////79///v/8ANwIAIAFB2ABqQv////v///+/fzcCACABQdAAakL////79///v383AgAgAUHIAGpC////+/f//7//ADcCACABQUBrQv////v///+/fzcCACABQThqQv////v3//+/fzcCACABQTBqQv////v3//+//wA3AgAgAUEoakL////7////v383AgAgAUEgakL////79///v383AgAgAUEYakL////79///v/8ANwIAIAFB4ABqIQEgB0EEayIHDQALCyAOBEAgCyAIa0EDcSEHA0AgAUL////7////v383AhAgAUL////79///v383AgggAUL////79///v/8ANwIAIAFBGGohASAHQQFrIgcNAAsLIAIgCmpBAWshAgsgAUL////7////v383AhAgAUL////79///v383AgggAUL////79///v/8ANwIAIAJBAWoFIAYLNgIgCyAEIAVPDQkgACgCPCAEQQxsaiAENgIIIAMoAiAiAiAETQ0KIAMoAhggBEEYbGoiAiAPIA8gECAQIBYgECAWXiIBGyAWIBZcGyIRIA8gEV4bIBEgEVwbOAIUIAIgEyATIBcgFyAUIBQgF10iCBsgFCAUXBsiESARIBNdGyARIBFcGzgCECACIBIgEiAVIBUgGCAVIBheIgcbIBggGFwbIhEgESASXRsgESARXBs4AgwgAiAWIBYgECABGyAQIBBcGyIQIBAgDyAPIBBeGyAPIA9cGzgCCCACIBQgFCAXIAgbIBcgF1wbIg8gDyATIA8gE10bIBMgE1wbOAIEIAIgGCAYIBUgBxsgFSAVXBsiDyAPIBIgDyASXRsgEiASXBs4AgAgAygCFCIBIAMoAhBGBEAgA0EMaiABEKgGIAMoAhQhAQsgAygCDCABQQJ0aiAENgIAIAMgAUEBajYCFCALQQFqIQsgBiEEIAwgCUEMaiIJRw0ACwsgAEEYaiEFIAAoAiAiBCAAQRxqKAIARgRAIAUgBBCvBiAAKAIgIQQLIAAoAhggBEEHdGoiAkKBgICAcDcDYCACQQA6AHggAkEAOgB0IAJBfzYCcCACQv////v///+/fzcDWCACQv////v///+/fzcDUCACQv////v///+/fzcDSCACQv////v///+/fzcDQCACQv////v///+/fzcDOCACQv////v///+/fzcDMCACQv////v3//+//wA3AyggAkL////79///v/8ANwMgIAJC////+/f//7//ADcDGCACQv////v3//+//wA3AxAgAkL////79///v/8ANwMIIAJC////+/f//7//ADcDACACQegAakJ/NwMAIAAgBEEBajYCICADQSRqIAAgA0ELaiADKAIMIgIgAygCFCADQRhqQQBBABBEIANBLGoqAgAhEiADQTBqKgIAIQ8gA0E0aioCACETIANBOGoqAgAhFCADKgIoIRUgACADQTxqKgIAIhA4AhQgACAUOAIQIAAgEzgCDCAAIA84AgggACASOAIEIAAgFTgCACAAKAIgRQ0JIAUoAgAiAEH///97NgJcIABC////+////79/NwJUIAAgEDgCUCAAQf///3s2AkwgAEL////7////v383AkQgACAUOAJAIABB////ezYCPCAAQv////v///+/fzcCNCAAIBM4AjAgAEH////7BzYCLCAAQv////v3//+//wA3AiQgACAPOAIgIABB////+wc2AhwgAEL////79///v/8ANwIUIAAgEjgCECAAQf////sHNgIMIABC////+/f//7//ADcCBCAAIBU4AgAgAygCHARAIAMoAhgQmgILIAMoAhAEQCACEJoCCyADQUBrJAAPC0EEIAJB0IHEACgCACIA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ACAFQZACaiQAC4MgAxJ/AX4GfSMAQdAAayIJJAAgCUEIaiAAQQRqIAEQhQQCQAJAAkACQAJAAkACQAJAAkAgCSgCCEUEQCAJQRBqKAIAQQRrKAIAIgAgCSgCDCIBQRhqKAIAIgJPDQEgASgCECAAQRRsaigCECEIDAcLIAlBKGogCUEIaiIGQRRqKAIANgIAIAkgCUEUaikCADcDICAAKgIAIhcgASgCCLKUIRggFyAYkiEZIBcgFyABKAIEspQiGpIhGyAXIBcgASgCALKUIheSIRwgBkEIaigCACEQIAkoAgwhBgJAIAMoAggiAQRAIAMgAUEBayIBNgIIIAMoAgAgAUECdGooAgAiAUEANgIIIAFBFGpBADYCACABKAIEIgVFBEAgAUEAEKsGIAEoAgQhBSABKAIIIQgLIAEgCEEBaiIDNgIIIAEoAgAiBCAIQQN0akL///97NwIAIAMgBUYEQCABIAUQqwYgASgCACEEIAEoAgghAwsgASAcOAIcIAEgFzgCGEEAIQggAUE0akEANgIAIAEgA0EBajYCCCABQShqQQA2AgAgBCADQQN0akL////79/////8ANwIAIAFBIGohByABQSRqKAIAIgVFBEAgB0EAEKsGIAEoAiQhBSABKAIoIQgLIAEgCEEBaiIDNgIoIAEoAiAiBCAIQQN0akL///97NwIAIAMgBUYEQCAHIAUQqwYgASgCICEEIAEoAighAwtBACEIIAFB1ABqQQA2AgAgAUE8aiAbOAIAIAFBOGogGjgCACABIANBAWo2AiggAUHIAGpBADYCACAEIANBA3RqQv////v3/////wA3AgAgAUFAayEHIAFBxABqKAIAIgVFBEAgB0EAEKsGIAEoAkQhBSABKAJIIQgLIAEgCEEBaiIDNgJIIAEoAkAiBCAIQQN0akL///97NwIAIAMgBUYEQCAHIAUQqwYgASgCQCEEIAEoAkghAwsgAUEAOgCQASABQdwAaiAZOAIAIAFB2ABqIBg4AgAgASADQQFqNgJIIAQgA0EDdGpC////+/f/////ADcCACABQeQAaigCAARAIAEoAmAQmgILIAFBADoAkQEgAUF/NgJwIAFCBDcCYCABQYwBakEANgIAIAFB6ABqQgA3AgAgASgCdA0DIAFBgAFqKAIARQ0BQcj5wQBBKkH4+sEAEKoKAAsgFyAcX0UNCEGR+8MALQAAGkEQQQQQggwiA0UNCSADQv////v3/////wA3AgggA0L///97NwIAIBogG19FDQhBkfvDAC0AABpBEEEEEIIMIgRFDQkgBEL////79/////8ANwIIIARC////ezcCACAYIBlfRQ0IQZH7wwAtAAAaQRBBBBCCDCIIRQ0JIAhC////+/f/////ADcCCCAIQv///3s3AgBBkfvDAC0AABpBlAFBBBCCDCIBRQ0DIAFCgICAgMAANwKAASABQgQ3AnggAUL/////DzcCcCABQgA3AmggAUIENwJgIAEgGTgCXCABIBg4AlggAUEANgJUIAFCBDcCTCABQoKAgIAgNwJEIAEgCDYCQCABIBs4AjwgASAaOAI4IAFBADYCNCABQgQ3AiwgAUKCgICAIDcCJCABIAQ2AiAgASAcOAIcIAEgFzgCGCABQQA2AhQgAUIENwIMIAFCgoCAgCA3AgQgASADNgIAIAFBkAFqQQA7AQAgAUIANwKIAQsgAC0AOCEDIAAtADkhBAJAIAIoAgwiCEF/RgRAIAIoAggiCCACKAIERgRAIAIgCBCtBiACKAIIIQgLIAIgCEEBajYCCCACKAIAIAhBLGxqIgIgAzoAKSACIAQ6ACggAkF/NgIkIAIgGTgCICACIBs4AhwgAiAcOAIYIAIgGDgCFCACIBo4AhAgAiAXOAIMIAIgATYCBCACQQE2AgAMAQsgAigCCCIFIAhNDQQgAiACKAIAIAhBLGxqIgIoAiQ2AgwgAkEEaiEFAkAgAigCAEUNACAFKAIAIgdFDQAgBxCOBQsgAiADOgApIAIgBDoAKCACQX82AiQgAiAZOAIgIAIgGzgCHCACIBw4AhggAiAYOAIUIAIgGjgCECACIBc4AgwgAkEBNgIAIAUgATYCAAsgAEE0aigCACIBIABBMGooAgBGBEAgAEEsaiABEKgGIAAoAjQhAQsgACABQQFqNgI0IAAoAiwgAUECdGogCDYCACAQIAYoAgQiAnEiACAGKAIAIgNqKQAAQoCBgoSIkKDAgH+DIhZQBEBBCCEBA0AgACABaiEAIAFBCGohASADIAAgAnEiAGopAABCgIGChIiQoMCAf4MiFlANAAsLIAZBGGohBCADIBZ6p0EDdiAAaiACcSIBaiwAACIFQQBOBEAgAyADKQMAQoCBgoSIkKDAgH+DeqdBA3YiAWotAAAhBQsgBCgCACEAAkAgBUEBcSISRQ0AIAYoAggNACAGKAIQIREjAEEwayILJAACQCAGKAIMIg9BAWoiAUUEQBCKCiALKAIIGgwBCyAGKAIEIgVBAWoiAkEDdiEEAkACQAJAAkACQAJAIAUgBEEHbCAFQQhJGyIKQQF2IAFJBEAgASAKQQFqIgIgASACSxsiAkEISQ0BAn8gAkGAgICAAkkEQEEBIQEgAkEDdCICQQ5JDQZBfyACQQduQQFrZ3ZBAWoMAQsQigogCygCKEGBgICAeEcNCCALKAIsCyIBQf////8DSw0FDAQLQQAhASAGKAIAIQMCQCAEIAJBB3FBAEdqIgRFDQAgBEEBcSEMIARBAUcEQCAEQf7///8DcSEEA0AgASADaiIHKQMAIRYgByAWQn+FQgeIQoGChIiQoMCAAYMgFkL//v379+/fv/8AhHw3AwAgB0EIaiIHKQMAIRYgByAWQn+FQgeIQoGChIiQoMCAAYMgFkL//v379+/fv/8AhHw3AwAgAUEQaiEBIARBAmsiBA0ACwsgDEUNACABIANqIgEpAwAhFiABIBZCf4VCB4hCgYKEiJCgwIABgyAWQv/+/fv379+//wCEfDcDAAsgAkEITwRAIAIgA2ogAykAADcAAAwCCyADQQhqIAMgAhCKDRogBUF/Rw0BQQAhCgwCC0EEQQggAkEESRshAQwCCyADQQRrIRNBACEBA0ACQCADIAEiAmoiDC0AAEGAAUcNAAJAAkAgACATIAJBAnQiBGsiFCgCACIBSwRAIAMgBGtBBGshBwNAIAMgESABQRRsaigCACINIAVxIg4iBGopAABCgIGChIiQoMCAf4MiFlAEQEEIIQEDQCABIARqIQQgAUEIaiEBIAMgBCAFcSIEaikAAEKAgYKEiJCgwIB/gyIWUA0ACwsgAyAWeqdBA3YgBGogBXEiBGosAABBAE4EQCADKQMAQoCBgoSIkKDAgH+DeqdBA3YhBAsgBCAOayACIA5rcyAFcUEISQ0CIAMgBEECdGtBBGshASADIARqIg4tAAAhFSAOIA1BGXYiDToAACAEQQhrIAVxIANqQQhqIA06AAAgFUH/AUYNAyAHLQAAIQQgByABLQAAOgAAIAEgBDoAACAHLQABIQQgByABLQABOgABIAEgBDoAASAHLQACIQQgByABLQACOgACIAEgBDoAAiAHLQADIQQgByABLQADOgADIAEgBDoAAyAAIBQoAgAiAUsNAAsLIAEgAEHM/cAAEOMIAAsgDCANQRl2IgE6AAAgAkEIayAFcSADakEIaiABOgAADAELIAxB/wE6AAAgAkEIayAFcSADakEIakH/AToAACABIAcoAAA2AAALIAJBAWohASACIAVHDQALCyAGIAogD2s2AggMAwsgAUECdCIDQQdqIQIgAiADSQ0AIAJBeHEiAyABQQhqIgRqIQIgAiADTw0BCxCKCiALKAIQGgwBCwJAIAJBAE4EQEGR+8MALQAAGiACQQgQggwiB0UEQEEIIAJB0IHEACgCACIAQZcHIAAbEQAAAAsgAyAHakH/ASAEEIkNIQIgAUEBayIDIAFBA3ZBB2wgA0EISRsgD2shDyAGKAIAIQoCQCAFQX9HBEAgCkEEayEMQQAhBwNAIAcgCmosAABBAE4EQCAMIAdBAnQiDWsoAgAiASAATw0FIAIgESABQRRsaigCACIOIANxIgRqKQAAQoCBgoSIkKDAgH+DIhZQBEBBCCEBA0AgASAEaiEEIAFBCGohASACIAMgBHEiBGopAABCgIGChIiQoMCAf4MiFlANAAsLIAIgFnqnQQN2IARqIANxIgFqLAAAQQBOBEAgAikDAEKAgYKEiJCgwIB/g3qnQQN2IQELIAEgAmogDkEZdiIEOgAAIAFBCGsgA3EgAmpBCGogBDoAACACIAFBAnRrQQRrIAogDWtBBGsoAAA2AgALIAUgB0YhASAHQQFqIQcgAUUNAAsgBiAPNgIIIAYgAzYCBCAGIAI2AgAgBQ0BDAQLIAYgDzYCCCAGIAM2AgQgBiACNgIACyAKIAVBAnRBC2pBeHFrEJoCDAILEIoKIAsoAhgaDAELIAEgAEHM/cAAEOMIAAsgC0EwaiQAIAYoAgAiAyAQIAYoAgQiAnEiBGopAABCgIGChIiQoMCAf4MiFlAEQEEIIQEDQCABIARqIQQgAUEIaiEBIAIgBHEiBCADaikAAEKAgYKEiJCgwIB/gyIWUA0ACwsgAyAWeqdBA3YgBGogAnEiAWosAABBAEgNACADKQMAQoCBgoSIkKDAgH+DeqdBA3YhAQsgBkEQaiEEIAEgA2ogEEEZdiIFOgAAIAFBCGsgAnEgA2pBCGogBToAACAGIAYoAgggEmsiAjYCCCAGIAYoAgxBAWoiBTYCDCADIAFBAnRrQQRrIAA2AgAgBigCGCEBIAAgBkEUaigCACIDRw0FIAIgBWogAWsiAiAAIgMgAWtNDQUgASACaiIDIAFJDQQgA0EUbCECIANB58yZM0lBAnQhBQJAIABFBEAgCUEANgIwDAELIAlBBDYCMCAJIABBFGw2AjQgCSAEKAIANgIsCyAJQcQAaiAFIAIgCUEsahDaBiAJKAJIIQIgCSgCREUEQCAGIAM2AhQgBiACNgIQDAYLIAAhAyACQYGAgIB4Rg0FIAJFDQQgAiAJQcwAaigCAEHQgcQAKAIAIgBBlwcgABsRAAAACyAAIAJBvP3AABDjCAALIAlBADYCLCABQfQAakG498AAIAlBLGpBiPvBABDgCgALQQRBlAFB0IHEACgCACIAQZcHIAAbEQAAAAsgCCAFQaj5wQAQ4wgACxDbCgALIAEgA0YEQCAEIAEQpQYgBigCGCEBCyAGKAIQIAFBFGxqIgIgCSkDIDcCBCACQQxqIAlBKGooAgA2AgAgAiAQNgIAIAIgCDYCECAGIAFBAWoiATYCGCAAIAFJDQAgACABQbz7wAAQ4wgACyAJQdAAaiQAIAgPC0HA7cEAQShB7O7BABCqCgALQQRBEEHQgcQAKAIAIgBBlwcgABsRAAAAC+kRAxx/An4BfSMAQeACayICJAAgACgCACgCACEIIAAoAgQiBigCAAR/IAYoAgQiBEH//wNxIQYgBEEQdiEKQQEFQQALIQcgCEFBcSEJIAAoAggiBCkDAFAEf0EABSAEKQMIIh5CIIinIQQgHqchC0EBCyEDQQAgCCAJGyEJIAAoAgwiCCkDAFAEf0EABSAIKQMIIh5CIIinIQwgHqchBUEBCyEIIAJBPGpBqLfAADYCACACQTBqIAw2AgAgAkEsaiAFNgIAIAJBEGoiBUEUaiAENgIAIAJBIGogCzYCACACIAE2AjggAiAINgIoIAIgAzYCHCACIAY2AhggAiAKNgIUIAIgBzYCECACIAk2AjQgACgCECgCACIBQQhqKAIAIQMgASkCACEeIAAoAhQoAgAiASkCACEfIAJBQGsiBEEUaiABQQhqKAIANgIAIARBCGogAzYCACACIB83AkwgAiAeNwNAIAAoAhwoAgAhASAAKAIkKAIAIQMgACgCICgCACEHIAAoAigqAgAhICAAKAIsLQAAIQYgAiAAKAIYNgJsIAIgBjoAayACICA4AmQgAiAHNgJ8IAIgAzYCdCACIAJB9ABqNgJwIAIgAkHsAGo2AowBIAIgAkHrAGo2AogBIAIgAkHkAGo2AoQBIAIgBDYCgAEgAiAFNgJ4IAJBkAFqIAQQ6wUgAkH8AWogIDgCACACQfgBaiAgOAIAIAJB9AFqICA4AgAgAiAgOALwASACIAJB8ABqNgKAAiACQQA2ApwCIAJCBDcClAICQCABQfAAaigCACIIRQ0AIAJBlAJqQQAQqAYgAigClAIiBiACKAKcAiIAQQJ0akEANgIAIABBAWoiBUUNACABQZQBaigCACELIAFBjAFqKAIAIQwgASgCaCEXIAJB8AFqIhhBCGohGQNAIAIgBUEBayIENgKcAgJAIARBAnQiGiAGaigCACIAIAhJBEAgFyAAQQd0aiIHLQB4QQFxIgAEQCAMIAcoAmAiAUEEdGpBACABIAtJGyIBQQhqQQAgARshGyAMIAdB7ABqKAIAIgFBBHRqQQAgASALSRsiAUEIakEAIAEbIRwgDCAHQegAaigCACIBQQR0akEAIAEgC0kbIgFBCGpBACABGyEdIAwgB0HkAGooAgAiAUEEdGpBACABIAtJGyIBQQhqQQAgARshEgsgAigCmAIhEyACIBkpAwA3A8gCIAIgGCkDADcDwAIgAkGgAmogByACQZABaiACQcACahDcASACLQCgAiEPIAItAKECIRQgAi0AogIhFSACLQCjAiEWIAAEQCACIBw2AswCIAIgHTYCyAIgAiASNgLEAiACIBs2AsACIBZBA3RBCHEgFUECdEEEcSAUQQF0QQJxIA9BAXFycnKtIR9CACEeIAJBwAJqIQADQAJAIB8gHoinQQFxRQ0AIAAoAgAiAUUNACACKAKAAigCACIKKAIAIAEoAgAiECABQQRqKAIAIhEQmAoiAUUNACAKKAIIIQ0CQCAKKAIEIgMoAgxFDQAgA0EQaigCACAQRw0AIANBFGooAgAgEUYNAQsCQCADKAIYRQ0AIAEoAgBBAUcNACADQRxqKAIAIAEoAgRHDQAgA0EgaigCACABKAIIRg0BCyADKAIABEAgASgCSCADKAIIcUUNASABQcwAaigCACADKAIEcUUNAQsCQCADKAIkIglFDQAgCUEQcUEAIAEtAJgBIg4bDQEgDkUgCUEgcUEAR3ENASAJQQJxIQ4gASgCAARAIA0gASgCBCABKAIIEJcKIg1FDQEgDS0A3QIiDUEBRiAOQQBHcQ0CIAlBBHFBAEcgDUEBS3ENAiAJQQhxRQ0BIA1FDQIMAQsgDg0BCyADKAIoIgkEQCAJIBAgESABIANBLGooAgAoAhQREwBFDQELIAJBoAJqIAEoAjAgAUE0aigCACIDKAIIQQFrQXhxakEIaiABQfQAaiAKKAIMIAooAhAqAgAgCigCFC0AACADKAIcEQgAIAIoAqACQQRGDQAgCigCGCgCACgCACEDIAJBgQE2AtgCQZH7wwAtAAAaAkACQEEkQQQQggwiAQRAIAFBADYCACABIAIpAqACNwIEIAEgETYCICABIBA2AhwgAUEMaiACQaACaiIKQQhqKQIANwIAIAFBFGogCkEQaikCADcCACACIAEQBTYC3AIgAkEIaiADIAJB2AJqIAJB3AJqELcKIAIoAgwhAyACKAIIRQRAIAMQAUEARyEBIANBhAFJDQMMAgtBASEBIANBgwFLDQEMAgtBBEEkQdCBxAAoAgAiAEGXByAAGxEAAAALIAMQAgsgAigC3AIiA0GEAU8EQCADEAILIAIoAtgCIgNBhAFPBEAgAxACCyABRQ0GCyAAQQRqIQAgHkIBfCIeQgRSDQALCyAPQQJGDQMgB0H4AGohACAWQQN0QQhxIBVBAnRBBHEgFEEBdEECcSAPQQFxcnJyIgGtIh5CAYNQDQEgAC0AAEEBcQ0BIAcoAmAiAyAISw0BIAYgGmogAzYCACACIAU2ApwCIAUhBAwBCyAAIAhB9JjAABDjCAALAkAgHkICg1ANACAALQAAQQFxDQAgB0HkAGooAgAiBSAISw0AIAQgE0YEQCACQZQCaiATEKgGIAIoApQCIQYgAigCnAIhBAsgBiAEQQJ0aiAFNgIAIAIgBEEBaiIENgKcAgsCQCAeQgSDUA0AIAAtAABBAXENACAHQegAaigCACIFIAhLDQAgAigCmAIgBEYEQCACQZQCaiAEEKgGIAIoApQCIQYgAigCnAIhBAsgBiAEQQJ0aiAFNgIAIAIgBEEBaiIENgKcAgsCQCABQQhJBEAgBCEFDAELIAAtAABBAXEEQCAEIQUMAQsgB0HsAGooAgAiACAISwRAIAQhBQwBCyACKAKYAiAERgRAIAJBlAJqIAQQqAYgAigClAIhBiACKAKcAiEECyAGIARBAnRqIAA2AgAgAiAEQQFqIgU2ApwCCyAFDQALCyACKAKYAgRAIAIoApQCEJoCCyACQeACaiQAC8kRARR/IwBBQGoiAyQAAkAgAEEYaigCACIQIAFB/wFxIhFLBEACQAJAAkACQAJAAkACQAJAAkAgACgCECISIBFBBnRqIhQtADxFDQAgFEE9ai0AACIIIBBPDQggEiAIQQZ0aiIIQRxqKAIAIg5FDQAgCEEUaigCACITIA5BFGxqIRUgA0EIaiIIQQhqIQ4gCEEEaiEIIAAoAgAhCyAAKAIIIQkDQAJAAkACQAJAAkACQCAJIBMoAhAiAksEQCALIAJBLGxqIgIoAgBFDQEgAigCBCEGIAJBADYCBCAGRQ0BQQAhAiADQRBqQQA2AgAgA0IANwMIIAZB7ABqIQ1BACEFIAYoAggiB0UNAiAGKAIAQQRqIQJBACEEA0ACQCACKAIAIgxB/////wdxIgUgCU8NACALIAVBLGxqKAIARQ0AIAMgBTYCFCANKAIAIAVNDRQgBUEFdiICIAYoAmgiCk8NBiAGKAJgIAJBAnRqIgIgAigCAEF+IAx3cTYCAEEBIQUgAyADKAIIQQFqNgIIIARBAWohAgwECyACQQhqIQIgByAEQQFqIgRHDQALQQAhBQwDCyACIAlByPTBABDjCAALQdj0wQBBGUH09MEAEOEJAAsgAiAHRg0AIAcgAmshCiAGKAIAIAJBA3RqIQIDQAJAAkAgAkEEaigCACIPQf////8HcSIEIAlPDQAgCyAEQSxsaigCAEUNACADIAQ2AhQgDSgCACAETQ0SIARBBXYiBCAGKAJoIgxPDQkgBigCYCAEQQJ0aiIEIAQoAgBBfiAPd3E2AgAgAyADKAIIQQFqNgIIIAVBAWohBQwBCyACIAVBA3RrIAIpAgA3AgALIAJBCGohAiAKQQFrIgoNAAsLIAYgByAFazYCCAJAAkAgBkEoaigCACIHRQRAQQAhAkEAIQUMAQsgBigCIEEEaiECQQAhBANAAkAgAigCACIMQf////8HcSIFIAlPDQAgCyAFQSxsaigCAEUNACADIAU2AhQgDSgCACAFTQ0SIAVBBXYiAiAGKAJoIgpPDQQgBigCYCACQQJ0aiICIAIoAgBBfiAMd3E2AgBBASEFIAMgAygCDEEBajYCDCAEQQFqIQIMAgsgAkEIaiECIAcgBEEBaiIERw0AC0EAIQUMAQsgAiAHRg0AIAcgAmshCiAGKAIgIAJBA3RqIQIDQAJAAkAgAkEEaigCACIPQf////8HcSIEIAlPDQAgCyAEQSxsaigCAEUNACADIAQ2AhQgDSgCACAETQ0SIARBBXYiBCAGKAJoIgxPDQkgBigCYCAEQQJ0aiIEIAQoAgBBfiAPd3E2AgAgAyADKAIMQQFqNgIMIAVBAWohBQwBCyACIAVBA3RrIAIpAgA3AgALIAJBCGohAiAKQQFrIgoNAAsLIAYgByAFazYCKCAGQcgAaigCACIHRQRAQQAhAkEAIQUMAgsgBigCQEEEaiECQQAhBANAAkAgAigCACIMQf////8HcSIFIAlPDQAgCyAFQSxsaigCAEUNACADIAU2AhQgDSgCACAFTQ0QIAVBBXYiAiAGKAJoIgpPDQIgBigCYCACQQJ0aiICIAIoAgBBfiAMd3E2AgBBASEFIAMgAygCEEEBajYCECAEQQFqIQIMAwsgAkEIaiECIAcgBEEBaiIERw0AC0EAIQUMAgsgAiAKQZjYwAAQ4wgACyACIAdGDQAgByACayEKIAYoAkAgAkEDdGohAgNAAkACQCACQQRqKAIAIg9B/////wdxIgQgCU8NACALIARBLGxqKAIARQ0AIAMgBDYCFCANKAIAIARNDQ8gBEEFdiIEIAYoAmgiDE8NBiAGKAJgIARBAnRqIgQgBCgCAEF+IA93cTYCACADIAMoAhBBAWo2AhAgBUEBaiEFDAELIAIgBUEDdGsgAikCADcCAAsgAkEIaiECIApBAWsiCg0ACwsgBiAHIAVrNgJIAkAgAygCCCICIAMoAgxGBEAgAygCECACRgRAIAMgAkEBcSIENgIYIARFDQIgA0EANgIoIANBGGpBuPfAACADQShqQZj7wQAQ4AoACyAOIQgLIANBADYCKCADQQhqIAggA0EoakGo+8EAEOAKAAsgBiAGKAJ0IAJBAXZrNgJ0IAZBjAFqIgIoAgAhBCACQQA2AgAgBARAIAYoAoQBIQIgBEECdCEEA0AgAigCACIFIAlPDQYgCyAFQSxsaiIFKAIARQ0HIAUoAgQiBUUNCCACQQRqIQIgBUF/NgJwIARBBGsiBA0ACwsgEygCECICIAlPDQMCQCALIAJBLGxqIgIoAgBFDQAgAigCBCIERQ0AIAQQjgULIAIgBjYCBCACQQE2AgAgFSATQRRqIhNHDQALCwJAIBQtADpFDQAgAUH/AXEgEiARQQZ0akE7ai0AACIBRg0GIAEgEE8NByASIAFBBnRqIgFBHGooAgAiCEUNACAAQThqIQ4gEiARQQZ0aiEGIAhBFGwhAiABQRRqKAIAQRBqIQEDQCAGIAEoAgAgACAOEKoBIAFBFGohASACQRRrIgINAAsLIANBQGskAA8LIAQgDEGY2MAAEOMIAAsgAiAJQYT1wQAQ4wgACyAFIAlBlPXBABDjCAALIANBNGpCADcCACADQQE2AiwgA0Hw+MEANgIoIANBmL/AADYCMCADQShqQZj5wQAQ3AoAC0H0wsAAQStBiPnBABCqCgALIANBNGpCADcCACADQQE2AiwgA0G0iMIANgIoIANBmL/AADYCMCADQShqQaCJwgAQ3AoACyADQTRqQgA3AgAgA0EBNgIsIANBsInCADYCKCADQZi/wAA2AjAgA0EoakG4icIAENwKAAsgCCAQQfTrwQAQ4wgACyARIBBB5OvBABDjCAALIANBGGoiAEEMakGKATYCACADQShqIgFBDGpCAjcCACADQQI2AiwgA0H418AANgIoIAMgDTYCICADQYoBNgIcIAMgADYCMCADIANBFGo2AhggAUGI2MAAENwKAAuOEgMUfwx9An4jAEHAAmsiBCQAIAQgATYCBCAAKAIAIQYCQCABBEAgAUEUaioCACIcIAYqAgAiGJQgBioCBCIbIAEqAhAiIpSTIhkgGZIhHiAGKgIIIhkgIpQgAUEYaioCACIdIBiUkyIaIBqSIR8gBEEIaiIFQRhqIAZBGGoqAgAgHSAGKgIMIhogHpQgGCAflCAbIBsgHZQgGSAclJMiHSAdkiIjlJOSkpI4AgAgBUEUaiAGQRRqKgIAIBwgGiAflCAZICOUIBggHpSTkpKSOAIAIAQgGiABKgIMIhyUIBggASoCACIdlJMgGyABKgIEIiCUkyAZIAEqAggiIZSTOAIUIAQgGSAclCAYICCUIBogIZSSIBsgHZSTkjgCECAEIBkgHZQgGyAclCAaICCUIBggIZSTkpI4AgwgBCAbICGUIBogHZQgGCAclJKSIBkgIJSTOAIIIAQgBioCECAiICMgGpQgGyAelCAZIB+Uk5KSkjgCGAwBCyAEQQhqIgFBGGogBkEYaigCADYCACABQRBqIAZBEGopAgA3AwAgAUEIaiAGQQhqKQIANwMAIAQgBikCADcDCAsgBEHQAWogAiAEQQhqIAMoAogBEQEAIAAoAgQiASoCACIYQwAAAABgBEAgBEHgAWoqAgAhGyAEQeQBaioCACEZIAQqAtABIRogBCoC1AEhHiAEKgLYASEfIAQqAtwBIRwgBEHYAGogAzYCACAEIAE2AlwgBCACNgJUIAQgACkCKDcCTCAEIAApAiA3AkAgBCAAKQIYNwI4IAQgACkCEDcCMCAEIAApAgg3AiQgBCAEQQRqNgJIIAQgBEEIajYCLCAEIBggGZI4AnQgBCAYIBuSOAJwIAQgGCAckjgCbCAEIB8gGJM4AmggBCAeIBiTOAJkIAQgGiAYkzgCYCAEQdABaiIBIARB4ABqIgIQ6wUgAiABQeAAEIgNGiAEIARBJGo2AsABIAAoAjQiAkEANgIIAkAgACgCMCIBQSBqKAIAIgpFDQACQCACKAIEBEAgAigCACIGQQA2AgBBASEADAELIAJBABCoBiACIAIoAggiA0EBaiIANgIIIAIoAgAiBiADQQJ0akEANgIAIABFDQELIAFBxABqKAIAIQwgASgCPCENIAEoAhghFANAIAIgAEEBayIBNgIIAkACQAJAIAogAUECdCIVIAZqKAIAIgNLBEAgFCADQQd0aiIDLQB4QQFxBEAgAygCYCEFIANB5ABqKAIAIQggA0HoAGooAgAhByADQewAaigCACEOIARBsAJqIAMgBEHgAGoQ4AIgBC0AsAIiECAELQCzAkEDdCIRIAQtALECQQF0IhIgBC0AsgJBAnQiE3JyciIWrSIlQv8BgyEkICVCAYNQDQMgDSAFQQxsakEAIAUgDEkbIgkNAgwDCyAEQbACaiADIARB4ABqEOACIAQtALACIhBBAkYNBSAELQCzAkEDdCERIAQtALICQQJ0IRMgBC0AsQJBAXQhEgwDCyADIApByODAABDjCAALIAkoAgghCyAEKALAASIFKAIAIQ8gBSgCBCEXIAQgCUEIajYC2AEgBCAFKAI4NgKEAiAEIAUpAjA3AvwBIAQgBSkCKDcC9AEgBCAFKQIgNwLsASAEIAUpAhg3AuQBIAQgBSkCEDcC3AEgBCAFKQIINwLQASAPIAsgBEHQAWpB3O/AACAXKAIMEQIACwJAICRCAoNQDQAgDSAIQQxsakEAIAggDEkbIgVFDQAgBUEIakEAIAUbIggoAgAhCSAEKALAASIFKAIAIQsgBSgCBCEPIAQgCDYC2AEgBCAFKAI4NgKEAiAEIAUpAjA3AvwBIAQgBSkCKDcC9AEgBCAFKQIgNwLsASAEIAUpAhg3AuQBIAQgBSkCEDcC3AEgBCAFKQIINwLQASALIAkgBEHQAWpB3O/AACAPKAIMEQIACwJAICRCBINQDQAgDSAHQQxsakEAIAcgDEkbIgVFDQAgBUEIakEAIAUbIggoAgAhByAEKALAASIFKAIAIQkgBSgCBCELIAQgCDYC2AEgBCAFKAI4NgKEAiAEIAUpAjA3AvwBIAQgBSkCKDcC9AEgBCAFKQIgNwLsASAEIAUpAhg3AuQBIAQgBSkCEDcC3AEgBCAFKQIINwLQASAJIAcgBEHQAWpB3O/AACALKAIMEQIACyAWQf8BcUEISQ0AIA0gDkEMbGpBACAMIA5LGyIFRQ0AIAVBCGpBACAFGyIIKAIAIQcgBCgCwAEiBSgCACEOIAUoAgQhCSAEIAg2AtgBIAQgBSgCODYChAIgBCAFKQIwNwL8ASAEIAUpAig3AvQBIAQgBSkCIDcC7AEgBCAFKQIYNwLkASAEIAUpAhA3AtwBIAQgBSkCCDcC0AEgDiAHIARB0AFqQdzvwAAgCSgCDBECAAsgA0H4AGohBQJAIBFBCHEgE0EEcSASQQJxIBBBAXFycnIiCK0iJEIBg1ANACAFLQAAQQFxDQAgAygCYCIHIApLDQAgAiAANgIIIAYgFWogBzYCACAAIQELAkAgJEICg1AEQCABIQAMAQsgBS0AAEEBcQRAIAEhAAwBCyAKIANB5ABqKAIAIgdJBEAgASEADAELIAIoAgQgAUYEQCACIAEQqAYgAigCACEGIAIoAgghAQsgAiABQQFqIgA2AgggBiABQQJ0aiAHNgIACwJAICRCBINQBEAgACEBDAELIAUtAABBAXEEQCAAIQEMAQsgCiADQegAaigCACIHSQRAIAAhAQwBCyACKAIEIABGBEAgAiAAEKgGIAIoAgAhBiACKAIIIQALIAIgAEEBaiIBNgIIIAYgAEECdGogBzYCAAsCQCAIQQhJBEAgASEADAELIAUtAABBAXEEQCABIQAMAQsgCiADQewAaigCACIDSQRAIAEhAAwBCyACKAIEIAFGBEAgAiABEKgGIAIoAgAhBiACKAIIIQELIAIgAUEBaiIANgIIIAYgAUECdGogAzYCAAsgAA0ACwsgBEHAAmokAA8LIARB7ABqQgA3AgAgBEEBNgJkIARBwL/AADYCYCAEQZi/wAA2AmggBEHgAGpBuMDAABDcCgAL1RcDB38LfQJ+IwBBgANrIgYkACAGQcgCaiACIAMoAmAiChEAACAGQbgCaiIHIAYoAsgCIgkgBigCzAJBDGooAgARAAAgB0EIaikDACEYIAYpA7gCIRkgBkGwAmogBCAFKAJgIgsRAAAgBkGgAmogBigCsAIiByAGKAK0AkEMaigCABEAAAJAAkACQAJAAkACQCAJQQAgGUK65aKq6Lvo2G+FIBhCw9+m8rD/iKAghYRQGyIJBEAgB0EAIAYpA6ACQrrloqrou+jYb4UgBkGoAmopAwBCw9+m8rD/iKAghYRQGyIHDQELIAZBmAJqIAIgChEAACAGQYgCaiIHIAYoApgCIgkgBigCnAJBDGooAgARAAAgB0EIaikDACEYIAYpA4gCIRkgBkGAAmogBCALEQAAIAZB8AFqIAYoAoACIgcgBigChAJBDGooAgARAAAgCUEAIBlCrPzNjNiE8KxRhSAYQp2076Wh6IWStn+FhFAbIgkEQCAHQQAgBikD8AFCrPzNjNiE8KxRhSAGQfgBaikDAEKdtO+loeiFkrZ/hYRQGyIHDQILIAZB6AFqIAIgChEAACAGQdgBaiIHIAYoAugBIgkgBigC7AFBDGooAgARAAAgB0EIaikDACEYIAYpA9gBIRkgBkHQAWogBCALEQAAIAZBwAFqIAYoAtABIgcgBigC1AFBDGooAgARAAAgCUEAIBlCpZLIrK3C05MEhSAYQr///bHCvMXDbIWEUBsiCQRAIAdBACAGKQPAAUKs/M2M2ITwrFGFIAZByAFqKQMAQp2076Wh6IWStn+FhFAbIgcNAwsgBkG4AWogAiAKEQAAIAZBqAFqIgcgBigCuAEiCSAGKAK8AUEMaigCABEAACAHQQhqKQMAIRggBikDqAEhGSAGQaABaiAEIAsRAAAgBkGQAWogBigCoAEiByAGKAKkAUEMaigCABEAACAJQQAgGUKs/M2M2ITwrFGFIBhCnbTvpaHohZK2f4WEUBsiCQRAIAdBACAGKQOQAUKlksisrcLTkwSFIAZBmAFqKQMAQr///bHCvMXDbIWEUBsiBw0ECyAGQYgBaiACIAoRAAAgBkH4AGogBigCiAEiByAGKAKMAUEMaigCABEAACAHRQ0EIAYpA3hCuuWiqui76NhvhSAGQYABaikDAELD36bysP+IoCCFhEIAUg0EIAVBLGooAgAhACAHKgIAIRQgBiABKgIMIg8gASoCACIXIAFBFGoqAgAiFpQgASoCBCIQIAEqAhAiFZSTIg0gDZIiEZQgECAQIAFBGGoqAgAiEpQgASoCCCITIBaUkyINIA2SIg6UIBcgEyAVlCAXIBKUkyINIA2SIg2Uk5IgEpM4AvgCIAYgDyANlCAXIBGUIBMgDpSTkiAWkzgC9AIgBiAPIA6UIBMgDZQgECARlJOSIBWTOALwAkEBIQIgBkHUAmogBCAGQfACakEBIAARAgAgBi0A4AINBSAGKgLwAiAGKgLUApMiDSANlCAGKgL0AiAGKgLYApMiDSANlJIgBioC+AIgBioC3AKTIg0gDZSSIBQgFJRfIQIMBQsgASoCECINIA2UIAFBFGoqAgAiDSANlJIgAUEYaioCACINIA2UkiAJKgIAIAcqAgCSIg0gDZRfIQIMBAsgBkHUAmogCSAHIAEQ1QFBACECIAYqAtQCQwAAAABeDQMgBiABKgIMIg84AuACIAYgASoCCCIQjDgC3AIgBiABKgIEIhOMOALYAiAGIAEqAgAiFIw4AtQCIAYgDyAUIAFBFGoqAgAiFpQgEyABKgIQIhWUkyINIA2SIhGUIBMgEyABQRhqKgIAIhKUIBAgFpSTIg0gDZIiDpQgFCAQIBWUIBQgEpSTIg0gDZIiDZSTkiASkzgC7AIgBiAPIA2UIBQgEZQgECAOlJOSIBaTOALoAiAGIA8gDpQgECANlCATIBGUk5IgFZM4AuQCIAZB8AJqIAcgCSAGQdQCahDVASAGKgLwAkMAAAAAXg0DIAZB8AJqIAkgByABEOgBIAYqAvACQwAAAABfIQIMAwsgBiABKgIMIg84AuACIAYgASoCCCIQjDgC3AIgBiABKgIEIhOMOALYAiAGIAEqAgAiFIw4AtQCIAYgDyAUIAFBFGoqAgAiFpQgEyABKgIQIhWUkyINIA2SIhGUIBMgEyABQRhqKgIAIhKUIBAgFpSTIg0gDZIiDpQgFCAQIBWUIBQgEpSTIg0gDZIiDZSTkiASkzgC7AIgBiAPIA2UIBQgEZQgECAOlJOSIBaTOALoAiAGIA8gDpQgECANlCATIBGUk5IgFZM4AuQCIAZB1AJqIAcgCRByIQIMAgsgASAJIAcQciECDAELIAZB8ABqIAQgCxEAACAGQeAAaiAGKAJwIgcgBigCdEEMaigCABEAAAJAIAdFDQAgBikDYEK65aKq6Lvo2G+FIAZB6ABqKQMAQsPfpvKw/4igIIWEQgBSDQAgA0EsaigCACEDIAcqAgAhDiMAQSBrIgQkACAEQQhqIAFBGGooAgA2AgAgBCABKQIQNwMAQQEhACAEQRBqIAIgBEEBIAMRAgAgBC0AHEUEQCAEKgIAIAQqAhCTIg0gDZQgBCoCBCAEKgIUkyINIA2UkiAEKgIIIAQqAhiTIg0gDZSSIA4gDpRfIQALIARBIGokACAAIQIMAQsgBkHYAGogAiAKEQAAIAZByABqIgkgBigCWCIHIAYoAlxBDGooAgARAAAgCUEIaikDACEYIAYpA0ghGSAGQUBrIAQgBSgCqAEiCBEAAAJAAkACQCAHQQAgGULvwsvty7aNvlqFIBhChNHSirvkjM7LAIWEUBsiCQRAIAYoAkAiBw0BCyAGQThqIAIgAygCqAEiChEAACAGKAI8IQkgBigCOCEMIAZBMGogBCALEQAAIAZBIGogBigCMCIHIAYoAjRBDGooAgARAAAgDARAIAdBACAGKQMgQu/Cy+3Lto2+WoUgBkEoaikDAEKE0dKKu+SMzssAhYRQGyIHDQILIAZBGGogAiAKEQAAIAYoAhwhCSAGKAIYIQogBkEQaiAEIAgRAAAgCgRAIAYoAhAiBw0DCyAGQQhqIAIgAygCrAERAAAgBigCCCIHBEAgACABIAcgBigCDCAEIAUQkgEhAgwECyAGIAQgBSgCrAERAAAgBigCACIHRQRAQQIhAgwECyAGKAIEIQUgBkHUAmoiBCABEPIFIAAgBCAHIAUgAiADEJIBIQIMAwsgASAJIAcgBigCREEYaigCABCHCCECDAILIAZB1AJqIgAgARDyBSAAIAcgDCAJQRhqKAIAEIcIIQIMAQsgCiEAIAYoAhQhCiMAQZACayIIJAAgCEGoAWpBADYCACAIQbgBakEANgIAIAhCgoCAgDA3AwggCEKAgICAEDcDACAIQgA3A6ABIAhCADcDsAEgCEEwakEAQfAAEIkNIQVDAACAPyEVIAEqAhAiESARlCABQRRqKgIAIhIgEpSSIAFBGGoqAgAiDiAOlJIiDUMAAIAoXgRAIA4gDRCbASINlSEWIBIgDZUhDyARIA2VIRULIAggFjgCzAEgCCAPOALIASAIIBU4AsQBIAhB+AFqIgMgACAIQcQBaiAJKAIMEQEAIAggCCoCzAGMOALYASAIIAgqAsgBjDgC1AEgCCAIKgLEAYw4AtABIAhBhAJqIgIgByABIAhB0AFqIgQgCigCFBECACAIQRxqIAgpAvgBNwIAIAhBJGogA0EIaiIDKAIANgIAIAhBKGogCCkChAI3AwAgBSACQQhqIgIoAgA2AgAgCEEANgK8ASAIQQA2AqwBIAgqAvgBIREgCCoChAIhEiAIKgL8ASEOIAgqAogCIQ0gCEEYaiADKgIAIAIqAgCTOAIAIAhBFGogDiANkzgCACAIIBEgEpM4AhAgBCABIAAgCSAHIApDAAAAAEEAIAgQowFBASECAkACQAJAIAgoAtABQQFrDgMAAQECC0HwpcIAQShBwL3CABCqCgALQQAhAgsgCEGQAmokAAsgBkGAA2okACACC5EQAxd/DH0BfiMAQeAAayICJAAgAkEANgIMIAJCBDcCBAJAIABBOGooAgAiCkUNACACQQRqQQAQqAYgAigCBCIHIAIoAgwiBUECdGpBADYCACAFQQFqIgVFDQAgAEHcAGooAgAhDCAAQdQAaigCACENIAAoAgghDiABKgIIISIgASoCBCEjIAEqAgAhJCAAKAIwIRcgACgCACELA0AgAiAFQQFrIgE2AgwCQAJAAkACQAJAIAFBAnQiGCAHaigCACIAIApJBEAgFyAAQQd0aiIALQB4QQFxIgMEQCANIAAoAmAiBEEMbGpBACAEIAxJGyIEQQhqQQAgBBshESANIABB7ABqKAIAIgRBDGxqQQAgBCAMSRsiBEEIakEAIAQbIRIgDSAAQegAaigCACIEQQxsakEAIAQgDEkbIgRBCGpBACAEGyETIA0gAEHkAGooAgAiBEEMbGpBACAEIAxJGyIEQQhqQQAgBBshEAsgAigCCCEUIAIgIjgCPCACICI4AjggAiAiOAI0IAIgIjgCMCACICM4AiwgAiAjOAIoIAIgIzgCJCACICM4AiAgAiAkOAIcIAIgJDgCGCACICQ4AhQgAiAkOAIQIAJBQGsgACACQRBqEP4CIAItAEMhDyACLQBCIRUgAi0AQSEWIAItAEAhBCADRQ0CIAtFDQIgFkEBdCAVQQJ0ciAPQQN0ciAEcq1C/wGDIiVCAYNQDQEgEUUNASARKAIAIgMgDk8NASALIANBJGxqIgMoAhwhBiADQSBqKAIAIggoAgghCSAkIAMqAhCTIh8gAyoCBCIclCAjIANBFGoqAgCTIiAgAyoCACIdlJMiGiAakiEaICAgAyoCCCIelCAiIANBGGoqAgCTIhkgHJSTIhsgG5IhGyACIBkgAyoCDCIhIBqUIBwgG5QgHSAZIB2UIB8gHpSTIhkgGZIiGZSTkpI4AlwgAiAgICEgGZQgHSAalCAeIBuUk5KSOAJYIAIgHyAhIBuUIB4gGZQgHCAalJOSkjgCVCAGIAlBAWtBeHFqQQhqIAJB1ABqIAgoAjgRAwBFDQEMAwsgACAKQeigwgAQ4wgACwJAICVCAoNQDQAgEEUNACAQKAIAIgMgDk8NACALIANBJGxqIgMoAhwhBiADQSBqKAIAIggoAgghCSAkIAMqAhCTIh8gAyoCBCIclCAjIANBFGoqAgCTIiAgAyoCACIdlJMiGiAakiEaICAgAyoCCCIelCAiIANBGGoqAgCTIhkgHJSTIhsgG5IhGyACIBkgAyoCDCIhIBqUIBwgG5QgHSAZIB2UIB8gHpSTIhkgGZIiGZSTkpI4AlwgAiAgICEgGZQgHSAalCAeIBuUk5KSOAJYIAIgHyAhIBuUIB4gGZQgHCAalJOSkjgCVCAGIAlBAWtBeHFqQQhqIAJB1ABqIAgoAjgRAwANAgsCQCAlQgSDUA0AIBNFDQAgEygCACIDIA5PDQAgCyADQSRsaiIDKAIcIQYgA0EgaigCACIIKAIIIQkgJCADKgIQkyIfIAMqAgQiHJQgIyADQRRqKgIAkyIgIAMqAgAiHZSTIhogGpIhGiAgIAMqAggiHpQgIiADQRhqKgIAkyIZIByUkyIbIBuSIRsgAiAZIAMqAgwiISAalCAcIBuUIB0gGSAdlCAfIB6UkyIZIBmSIhmUk5KSOAJcIAIgICAhIBmUIB0gGpQgHiAblJOSkjgCWCACIB8gISAblCAeIBmUIBwgGpSTkpI4AlQgBiAJQQFrQXhxakEIaiACQdQAaiAIKAI4EQMADQILICVCCINQDQAgEkUNACASKAIAIgMgDk8NACALIANBJGxqIgMoAhwhBiADQSBqKAIAIggoAgghCSAkIAMqAhCTIh8gAyoCBCIclCAjIANBFGoqAgCTIiAgAyoCACIdlJMiGiAakiEaICAgAyoCCCIelCAiIANBGGoqAgCTIhkgHJSTIhsgG5IhGyACIBkgAyoCDCIhIBqUIBwgG5QgHSAZIB2UIB8gHpSTIhkgGZIiGZSTkpI4AlwgAiAgICEgGZQgHSAalCAeIBuUk5KSOAJYIAIgHyAhIBuUIB4gGZQgHCAalJOSkjgCVCAGIAlBAWtBeHFqQQhqIAJB1ABqIAgoAjgRAwANAQtBACEGIARBAkYNBCAAQfgAaiEDIA9BA3RBCHEgFUECdEEEcSAWQQF0QQJxIARBAXFycnIiBK0iJUIBg1ANAiADLQAAQQFxRQ0BDAILQQEhBgwDCyAAKAJgIg8gCksNACAHIBhqIA82AgAgAiAFNgIMIAUhAQsCQCAlQgKDUA0AIAMtAABBAXENACAAQeQAaigCACIFIApLDQAgASAURgRAIAJBBGogFBCoBiACKAIEIQcgAigCDCEBCyAHIAFBAnRqIAU2AgAgAiABQQFqIgE2AgwLAkAgJUIEg1ANACADLQAAQQFxDQAgAEHoAGooAgAiBSAKSw0AIAIoAgggAUYEQCACQQRqIAEQqAYgAigCBCEHIAIoAgwhAQsgByABQQJ0aiAFNgIAIAIgAUEBaiIBNgIMCyAEQQhJBEAgASIFDQEMAgsgAy0AAEEBcQRAIAEiBQ0BDAILIABB7ABqKAIAIgAgCksEQCABIgUNAQwCCyACKAIIIAFGBEAgAkEEaiABEKgGIAIoAgQhByACKAIMIQELIAcgAUECdGogADYCACACIAFBAWoiBTYCDCAFDQALCyACKAIIBEAgAigCBBCaAgsgAkHgAGokACAGC6gQAgh/Dn0jAEGAA2siEiQAAkACQAJAIA8gEF8EQCAJIApyRQ0BIAkEQCAJQdwAaioCACEbIAkqAlghHyAJQeAAaioCACEaCyALQQFHIRMgDUEBRyEUIAoEQCAKQeAAaioCACEdIAoqAlghICAKQdwAaioCACEcCyAaQwAAgD9DAAAAACATGyIalCEeIBsgGpQhIiAfIBqUISMgHUMAAIA/QwAAAAAgFBsiG5QhJCAcIBuUISUgICAblCEmIAkEfSAJQegAaioCACEhIAlB5ABqKgIAIScgCUHsAGoqAgAFQwAAAAALIBqUIR8gISAalCEgICcgGpQhGkMAAAAAIR1DAAAAACEcIAoEfSAKQegAaioCACEdIApB5ABqKgIAIRwgCkHsAGoqAgAFQwAAAAALIBuUISEgHSAblCEdIBwgG5QhG0MAAAAAIRwgJCAekyIeIB6UICUgIpMiHiAelCAmICOTIh4gHpSSkhCbASAaIBqUICAgIJSSIB8gH5SSEJsBIAkEfSAJQdQCaioCAAVDAAAAAAuUkiEaICEgIZQgHSAdlCAbIBuUkpIQmwEhGyAKBEAgCkHUAmoqAgAhHAtDAAAAAEMAAAAAIBEgEUMAAAAAXRsgESARXBsgBygCMCAHQTRqKAIAIhUoAghBAWtBeHFqQQhqIhcgFSgCnAERCgAgCCgCMCAIQTRqKAIAIhYoAghBAWtBeHFqQQhqIhggFigCnAERCgCSkiERIBogGyAclJIhHEEBIRQgBy0AmAEgCC0AmAFyRQRAIAhB1ABqKAIAIAdB0ABqKAIAcUUgB0HUAGooAgAgCEHQAGooAgBxRXIhFAsgECAPkyAclCARXQ0CIBJBCGoiE0IANwIQIBNCgICAgICAgMA/NwIIIBNCADcCACATQRhqQgA3AgAgE0EgakIANwIAIBNBKGpCADcCACATQTBqQgA3AgAgE0E4akIANwIAAkACQAJAIAkEQCAJQdgCai0AAA0BIBJBwAJqIAlBPGoQ8ggMAgsgEkHIAGoiCUE4aiASQQhqIhNBOGopAgA3AwAgCUEwaiATQTBqKQIANwMAIAlBKGogE0EoaikCADcDACAJQSBqIBNBIGopAgA3AwAgCUEYaiATQRhqKQIANwMAIAlBEGogE0EQaikCADcDACAJQQhqIBNBCGopAgA3AwAgEiASKQIINwNIDAILIBJB2AJqIAlBOGooAgA2AgAgEkHQAmogCUEwaikCADcDACASQcgCaiAJQShqKQIANwMAIBJB5AJqIAlBwAFqKAIANgIAIBJB8AJqIAlB4ABqKAIANgIAIBJB/AJqIAlB7ABqKAIANgIAIBIgCSkCIDcDwAIgEiAJKQJYNwPoAiASIAlBuAFqKQIANwLcAiASIAlB5ABqKQIANwL0AgsgEkHIAGoiCUE4aiASQcACaiITQThqKQMANwMAIAlBMGogE0EwaikDADcDACAJQShqIBNBKGopAwA3AwAgCUEgaiATQSBqKQMANwMAIAlBGGogE0EYaikDADcDACAJQRBqIBNBEGopAwA3AwAgCUEIaiATQQhqKQMANwMAIBIgEikDwAI3A0gLAkACQAJAIAoEQCAKQdgCai0AAA0BIBJBwAJqIApBPGoQ8ggMAgsgEkGIAWoiCUE4aiASQQhqIgpBOGopAgA3AwAgCUEwaiAKQTBqKQIANwMAIAlBKGogCkEoaikCADcDACAJQSBqIApBIGopAgA3AwAgCUEYaiAKQRhqKQIANwMAIAlBEGogCkEQaikCADcDACAJQQhqIApBCGopAgA3AwAgEiASKQIINwOIAQwCCyASQdgCaiAKQThqKAIANgIAIBJB0AJqIApBMGopAgA3AwAgEkHIAmogCkEoaikCADcDACASQeQCaiAKQcABaigCADYCACASQfACaiAKQeAAaigCADYCACASQfwCaiAKQewAaigCADYCACASIAopAiA3A8ACIBIgCikCWDcD6AIgEiAKQbgBaikCADcC3AIgEiAKQeQAaikCADcC9AILIBJBiAFqIglBOGogEkHAAmoiCkE4aikDADcDACAJQTBqIApBMGopAwA3AwAgCUEoaiAKQShqKQMANwMAIAlBIGogCkEgaikDADcDACAJQRhqIApBGGopAwA3AwAgCUEQaiAKQRBqKQMANwMAIAlBCGogCkEIaikDADcDACASIBIpA8ACNwOIAQsgC0EBRgRAIBJByABqIAwQ8gcLIA1BAUYEQCASQYgBaiAOEPIHCyASQcACaiIJQQhqIAdBDEH0ACAHKAIAIg0baiIKQQhqKQIANwMAIAlBEGogCkEQaikCADcDACAJQRhqIApBGGooAgA2AgAgEiAKKQIANwPAAiASQcgBaiITIBJByABqIAkQggIgEkGIAmoiCkEIaiAIQQxB9AAgCCgCACIZG2oiC0EIaikCADcDACAKQRBqIAtBEGopAgA3AwAgCkEYaiALQRhqKAIANgIAIBIgCykCADcDiAIgCSASQYgBaiAKEIICIAogASATIBcgFSAJIBggFiAPIBAgFCACKAIgESsAIBItALwCQQZx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aiAAQSxqKAIANgIAIAYgAEEkaikCADcCAAsCQCAHIABBzABqKAIARw0AIAIoAiAgAEHQAGooAgBHDQAgBkEIaiAAQdwAaigCADYCACAGIABB1ABqKQIANwIACyALIABB4ABqIgBHDQALCyAJIAJBMGoiAkcNAAsLIBIEQCADEJoCCyAIQZABaiQAC+UNAgl/A34jAEHgBWsiAyQAIANBxAVqIgRBDGoiBUIANwIAIANCADcCyAUgA0EENgLEBSADQdwAaiAEEGMgBUIANwIAIANCADcCyAUgA0EENgLEBSADQZgBaiAEEGMgA0FAayIKQgA3AgAgA0E4akKAgICAwAA3AgAgA0EwakIANwIAIANBKGpCgICAgMAANwIAIANBIGpCADcCACADQRhqIgtCgICAgMAANwIAIANBEGpCADcCACADQcwAakIANwIAIANB1ABqQgA3AgAgA0GQAWpCADcCACADQYgBakIANwIAIANBgAJqQQA2AgAgA0HIAWpCgICAgMAANwIAIANB0AFqQgA3AgAgA0HYAWpCgICAgMAANwIAIANB4AFqQgA3AgAgA0HwAWpCgICAgMAANwIAIANB+AFqQgA3AgAgA0EENgJIIANCgICAgMAANwIIIANCCDcCACADQQQ2AoQBIANCADcChAIgA0EBOgCMAiADQgQ3AsABIANCBDcC6AEgBEELakIANwAAIANBkAJqIgVBmAFqQgA3AwAgA0GwA2pCADcDACAFQcABakIANwMAIANBsQVqIgdBC2pCADcAACADQZ4FaiIIQQtqQgA3AAAgA0GLBWoiBkELakIANwAAIANB+ARqIglBC2pCADcAACADQgA3A6ADIANCADcDyAMgA0IANwDHBSADQgA3ALQFIANCADcAoQUgA0IANwCOBSADQgA3APsEIAVB4AFqIARBD2ooAAA2AAAgA0HpA2ogBEEIaikAADcAACADIAMpAMQFNwDhAyADQYUEaiAHQQhqKQAANwAAIANBjARqIAdBD2ooAAA2AAAgAyADKQCxBTcA/QMgA0GoBGogCEEPaigAADYAACADQaEEaiAIQQhqKQAANwAAIAMgAykAngU3AJkEIANBxARqIAZBD2ooAAA2AAAgA0G9BGogBkEIaikAADcAACADIAMpAIsFNwC1BCADQeAEaiAJQQ9qKAAANgAAIANB2QRqIAlBCGopAAA3AAAgAyADKQD4BDcA0QQgA0G0AmpBADYCACADQgA3AqwCIAVBMGpCADcDACADQgA3A7gCIANB////+wc2AogDIANCgICAgPD//79/NwOAAyADQv////v///+//wA3A/gCIANC////+wc3A/ACIANCgICAgPD//79/NwPoAiADQv////v///+//wA3A+ACIANC////+wc3A9gCIANCgICAgPD//79/NwPQAiADQv////v///+//wA3A8gCIANBADYCqAIgA0IANwOgAiADQoCAgICAgIDAPzcDmAIgA0IANwOQAiADQZQDakIANwIAIANCADcCjAMgA0GAAjsB9AQgA0EANgLwBCADQQA6AOwEIANC////+wc3AuQEIANBADoA0AQgA0L////7BzcDyAQgA0EAOgC0BCADQv////sHNwKsBCADQQA6AJgEIANC////+wc3A5AEIANBADoA/AMgA0L////7BzcC9AMgA0EAOgDgAyADQv////sHNwPYAyADQgA3A8ADIANCgICA/AM3A7gDIANBgICA/AM2ApwDIAMoAgghByADQQxqIAsoAgAiCEEGaiIEEPQCIANBHGogBBD0AiADQSxqIAQQ9AIgA0HEAGooAgAiBSAKKAIARgRAIANBPGogBUEBEJwGIAMoAkQhBQsgAygCPCAFQQR0aiIGQgA3AgggBkIENwIAIAMgBUEBajYCRCADIAMoAoQCQQZqIgY2AoQCAkAgAygCKCAETwRAIANBwAFqIQkgAygCHCAIQQJ0aiIEQRRqQc2Zs+4DNgIAIARBDGpCzZmz7tOZs+Y9NwIAIANBxAVqIANBkAJqEMoBIAMoAggiBSADKAIERgRAIAMgBRCxBiADKAKEAiEGIAMoAgghBQsgAygCACAFQegDbGoiBEIANwMIIAQgAjYCBCAEIAE2AgAgBEEQakIANwMAIARBGGpCADcDACAEQSBqIANBkAJqQegCEIgNGiAEQQA2ApADIAQgCDYCjAMgBCAHNgKIAyAEQdwDakIANwIAIARB1ANqQgA3AgAgBEIANwLMAyAEIAMpAsQFIgw3ApQDIARBnANqIANBzAVqKQIAIg03AgAgBEGkA2ogA0HEBWoiAUEQaikCACIONwIAIARBrANqIAFBGGooAgAiATYCACAEIAw3ArADIARBuANqIA03AgAg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AgUgAyACQQQQyAYgAygCCAsiBEEEaiICNgIIIAMoAgAgBGogBjYAACAFQQRrIgUNAAsLIAFBxABqKAIAIQIgASgCPCEHIAAoAgAiAygCCCEEIAMoAgQgBGtBB00EQCADIARBCBDIBiADKAIIIQQLIAMgBEEIaiIANgIIIAMoAgAgBGogAq03AABBACEEIAJFDQAgByACQQxsaiEGA0AgBy0ABCECIAcoAgAhASADKAIEIABrQQNNBEAgAyAAQQQQyAYgAygCCCEACyADKAIAIABqIAE2AAAgAyAAQQRqIgA2AgggACADKAIERgRAIAMgAEEBEMgGIAMoAgghAAsgAygCACAAaiACOgAAIAMgAEEBaiICNgIIIAdBCGooAgAhASADKAIEIAJrQQNNBEAgAyACQQQQyAYgAygCCCECCyADIAJBBGoiADYCCCADKAIAIAJqIAE2AAAgBiAHQQxqIgdHDQALCyAIQeAAaiQAIAQL/AoCDX8FfSMAQYACayIEJAACfQJAIAAoAkQiBQRAIAUoAgAiCEECRw0BC0EAIQggBEEgakEANgIAIARBGGpCADcDACAEQRBqQgA3AwAgBEIANwMIQwAAgD8hFEMAAAAADAELIARBEGogBUEcaikCADcDACAEQRhqIAVBJGopAgA3AwAgBEEgaiAFQSxqKAIANgIAIAQgBSkCFDcDCCAFKgIIIRUgBSoCDCETIAUqAhAhFCAFKgIECyERIABCADcCGCAAQShqQgA3AgAgAEEgakKAgICAgICAwD83AgAgAEEwakIANwIAIABBOGpCADcCACAAQUBrQQA2AgAgAEEYaiEHAkAgAigCCCIGRQ0AIAIoAgAiBSAGQQN0aiEJIAEoAggiDARAIARBKGoiBkEIaiEKIARBiAFqIQIgASgCECENIAZBIGohDiAGQRhqIQ8gBkEQaiEQA0ACQCAFKAIAIgEgDU8NACAMIAFBqAFsaiIBKAIARQ0AIAEoAgQgBUEEaigCAEcNACABQeoAai0AAA0AIAEoAghFDQAgDiABQSxqKAIANgIAIA8gAUEkaikCADcDACAQIAFBHGopAgA3AwAgCiABQRRqKQIANwMAIAQgAUEMaikCADcDKCABQThqKAIAIAFBPGooAgAiBigCCEEBa0F4cWpBCGohCwJAAkACQAJAAkAgAUEwaigCAEEBaw4CAgABCyAEQfgAaiIGQQhqIAFBNGooAgAiAUEIaikCADcDACACIAFBEGopAgA3AwAgBkEYaiABQRhqKQIANwMAIAZBIGogAUEgaikCADcDACAGQShqIAFBKGooAgA2AgAgBCABKQIANwN4DAMLIAFBNGoqAgAiEkMAAAAAWwRADAILIARB+ABqIAsgEiAGKAKQARENAAwCCyABQTRqKgIAIhJDAAAAAFsEQAwBCyAEQdQBaiIBIAtDAACAPyAGKAKQARENACABIBIQzwggBEH4AGoiBkEoaiABQShqKAIANgIAIAZBIGogAUEgaikCADcDACAGQRhqIAFBGGopAgA3AwAgAiABQRBqKQIANwMAIAZBCGogAUEIaikCADcDACAEIAQpAtQBNwN4DAELIAJCADcCACACQQhqQgA3AgAgAkEQakIANwIAIAJBGGpBADYCACAEQgA3A3ggBEKAgICAgICAwD83A4ABCyAEQcwAaiIBIARB+ABqIAoQ4QMgByABELsHCyAJIAVBCGoiBUcNAAsMAQsgBkEBa0H/////AXEhASAGQQdxIgIEQANAIAVBCGohBSACQQFrIgINAAsLIAFBB0kNAANAIAkgBUFAayIFRw0ACwsCQCAIRQRAIARBqAFqIgFBGGogBEEQaikDADcCACAEQcgBaiAEQRhqKQMANwIAIARB0AFqIARBIGooAgA2AgAgBCAUOAK0ASAEIBM4ArABIAQgFTgCrAEgBCAROAKoASAEIAQpAwg3ArgBIAcgARC7BwwBCyAHIBFDAAAAAEMAAIA/IAAqAjQiEZUgEUMAAAAAWxuSEM8ICyAEQdQBaiIBIAcgAxD9BSAAQdAAaiABQQhqIgIoAgA2AgAgACAEKQLUATcCSCAAQdwAaiAAKgI0IhE4AgAgAEHYAGogETgCACAAIBE4AlQgASAHIAMQxQIgAEEQaiABQRBqKQIANwIAIABBCGogAikCADcCACAAIAQpAtQBNwIAIAAtAGAiAUEBcQRAIABBADYCVAsgAUECcQRAIABBADYCWAsgAUEEcQRAIABBADYCXAsgAUEIcQRAIABBADYCCCAAQgA3AgALIAFBEHEEQCAAQQA2AgQgAEIANwIMCyABQSBxBEAgAEEANgIIIABCADcCEAsgBEGAAmokAAvcCwIJfwF+IwBBIGsiBSQAIAAtAAAhAiAA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OAIgIB4gDzgCHCAeIAo4AhggHiAFOAIUIB4gCDgCECAeIAY4AgwgAiAeQQxqELACGiAeIAIQPyACKAK8AUEDRwRAIA4hBiABQQFrIgENAQwDCwsgB0MAAKC1Xw0BCyAAQRBqIA04AgAgAEEMaiAJOAIAIABBCGogDDgCACAAIBogEZU4AgRBASEDCyAAIAM2AgAMAgtB+LjCAEEoQbC5wgAQqgoACyAAQQA2AgALIB5BMGokAAvXCgIWfwJ9IwBBoAJrIgMkAAJAIAEgAnJBAEgNACADIAAoAgAgASACEKkCIANByAFqIgFBCGoiBCADQQxqKQIANwMAIAFBEGoiCSADQRRqKQIANwMAIAFBGGoiCiADQRxqKQIANwMAIAFBIGoiCyADQSRqKAIANgIAIANB0ABqIgFBCGoiAiADQTRqKQIANwMAIAFBEGoiBSADQTxqKQIANwMAIAFBGGoiBiADQcQAaikCADcDACABQSBqIgcgA0HMAGooAgA2AgAgAyADKQIENwPIASADIANBLGopAgA3A1AgAygCKCETIAMoAgAhFCADQaABaiIBQQhqIhUgBCkDADcDACABQRBqIhYgCSkDADcDACABQRhqIhcgCikDADcDACABQSBqIhggCygCADYCACADQfgAaiIBQQhqIAIpAwA3AwAgAUEQaiAFKQMANwMAIAFBGGogBikDADcDACABQSBqIAcoAgA2AgAgAyADKQPIATcDoAEgAyADKQNQNwN4IAAoAiAiBUE1aiEGIAVBBGohASAAQRRqKAIAIQwgA0E1aiEHIANBBGohAiAAKAIcIQ0gACgCGCEOIAAoAhAhDyAAKAIMIRAgACgCCCERIAAoAgQhEgJAAkACQCAUQQFrDgIAAwELIAsgGCgCADYCACAKIBcpAwA3AwAgCSAWKQMANwMAIAQgFSkDADcDACADIAMpA6ABNwPIASADIBIgESAQIANByAFqQajJwgAgDyAMIA4qAgAgDS0AABBGIAMtADQiBEEFRg0BIANB8AFqIgBBCGogAkEIaikCADcDACAAQRBqIAJBEGopAgA3AwAgAEEYaiACQRhqKQIANwMAIABBIGogAkEgaikCADcDACAAQShqIAJBKGopAgA3AwAgA0HuAWogB0ECai0AADoAACADIAIpAgA3A/ABIAMgBy8AADsB7AEgBEEERg0AIAMqAgAhGUP//39/IRogBS0ANEEERwR9IAUqAgAFQ///f38LIBleRQ0AIAUgGTgCACABIAMpA/ABNwIAIAUgBDoANCAGIAMvAewBOwAAIAFBCGogA0HwAWoiAEEIaikDADcCACABQRBqIABBEGopAwA3AgAgAUEYaiAAQRhqKQMANwIAIAFBIGogAEEgaikDADcCACABQShqIABBKGopAwA3AgAgBkECaiADQe4Bai0AADoAAAsgE0EBRw0BIANByAFqIgBBIGogA0H4AGoiBEEgaigCADYCACAAQRhqIARBGGopAwA3AwAgAEEQaiAEQRBqKQMANwMAIABBCGogBEEIaikDADcDACADIAMpA3g3A8gBIAMgEiARIBAgAEGoycIAIA8gDCAOKgIAIA0tAAAQRiADLQA0IgRBBUYNACADQfABaiIAQQhqIAJBCGopAgA3AwAgAEEQaiACQRBqKQIANwMAIABBGGogAkEYaikCADcDACAAQSBqIAJBIGopAgA3AwAgAEEoaiACQShqKQIANwMAIANB7gFqIAdBAmotAAA6AAAgAyACKQIANwPwASADIAcvAAA7AewBIARBBEYNASADKgIAIRlD//9/fyEaIAUtADRBBEcEfSAFKgIABUP//39/CyAZXkUNASAFIBk4AgAgASADKQPwATcCACAFIAQ6ADQgBiADLwHsATsAACABQQhqIANB8AFqIgBBCGopAwA3AgAgAUEQaiAAQRBqKQMANwIAIAFBGGogAEEYaikDADcCACABQSBqIABBIGopAwA3AgAgAUEoaiAAQShqKQMANwIAIAZBAmogA0HuAWotAAA6AAAMAQtBASEICyADQaACaiQAIAgL/QkBMH8gALwiAUGAgID8B3FBgICA/AdGBEAgACAAlCAAkg8LIAFBAEwEQCABQf////8HcQR9IAAgAJMiACAAlQUgAAsPC0EJIAFnIgNrIAFBF3YgAUGAgIAESSICG0H/AGshGEGAgIAQQYCAgBggASADQQhrQQAgAht0Qf///wNxQYCAgARyIBhBAXF0IgJBgICACUkiGxsiA0GAgIACciEBIAMgA0GAgIAEciACQQJ0QQBBgICAbCAbG2pBAXRBgICAIGsiHCABSCIEGyICQYCAgAFyIQMgAiACQYCAgAJyIBxBACABIAQba0EBdCIdIANIIgUbIgRB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/wFLDQMgBkECdCICQQBIDQNBACACRQ0AGkGR+8MALQAAGiACQQQQggwiFkUNBiACCyEEIBYgCyAEEIgNGiABQagBaigCACEHAkAgAUGwAWooAgAiBEUNACAEQf////8BSw0DIARBAnQiAkEASA0DIAJFDQBBkfvDAC0AABogAkEEEIIMIhVFDQYgAiEMCyAVIAcgDBCIDRogAUG0AWooAgAhGUEEIQxBACEHAkAgAUG8AWooAgAiC0UNACALQf////8BSw0DIAtBAnQiAkEASA0DIAJFDQBBkfvDAC0AABogAkEEEIIMIgxFDQYgAiEHCyAMIBkgBxCIDRoLIAEtAMABIQcgESARQcgAakHIABCIDSECQZH7wwAtAAAaQcQBQQQQggwiAUUNAiABIAJByAAQiA0iASAHOgDAASABIAs2ArwBIAEgCzYCuAEgASAMNgK0ASABIAQ2ArABIAEgBDYCrAEgASAVNgKoASABIAY2AqQBIAEgBjYCoAEgASAWNgKcASABIAo2ApgBIAEgCjYClAEgASAQNgKQASABIAU2AowBIAEgBTYCiAEgASAUNgKEASABIAM2AoABIAEgAzYCfCABIA82AnggASAINgJ0IAEgCDYCcCABIBI2AmwgASAJNgJoIAEgCTYCZCABIBM2AmAgASAONgJcIAEgDjYCWCABIBg2AlQgASANNgJQIAEgDTYCTCABIBc2AkggAEHQ38IANgIEIAAgATYCACACQZABaiQADwtBBCAEQdCBxAAoAgAiAEGXByAAGxEAAAALENsKAAtBBEHEAUHQgcQAKAIAIgBBlwcgABsRAAAAC0EEIANB0IHEACgCACIAQZcHIAAbEQAAAAtBBCACQdCBxAAoAgAiAEGXByAAGxEAAAAL3goCFn0FfyMAQTBrIhskAEMAAKA1EJsBIRoCQAJAIAMqAgwiByAHlCADQRBqKgIAIgggCJSSIANBFGoqAgAiCSAJlJIQmwEiEEMAAAAAWw0AIBCLIgVDAACAf1wEQCAFQwAAADRfDQEgBSAFQwAAADSUXw0BCyADKgIAIREgAyoCBCESIAMqAgghEyAJIBCVIhUgFZQgByAQlSIWIBaUIAggEJUiFyAXlJKSEJsBIQUgAkEANgK8ASACQQA2AqwBIAJBMGpBADYCACACQShqQgA3AgAgAkEkaiAVjCIJIAWV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ADcCACAAQRxqIApBIGopAwA3AgAgAEEkaiAKQShqKQMANwIAIABBLGogCkEwaikDADcCACAAQTRqIApBOGooAgA2AgAgAEE7aiAKQQZqLQAAOgAACyAKQfABaiQAIAAPCxD4DAALEPkMAAtBBEE8QdCBxAAoAgAiAEGXByAAGxEAAAALmgoCCX8JfSMAQdAAayIDJABDAACAPyACQQIgAioCBIsiDSACKgIAiyIQXiIEIAIqAgiLIA0gECAEG14bIgtBAnRqKgIAmCEMIAEqAgghDiABKgIEIQ8gASoCACENAn8CQAJAAkACQAJAAkACQCALDgMBAgMAC0HwpcIAQShB4MzCABCqCgALIANBGGpCjoCAgKABNwMAIANCiICAgMABNwMQIANChoCAgCA3AwggA0KAgICAwAA3AwAgDEMAAADDYCECQf8AAn8gDItDAAAAT10EQCAMqAwBC0GAgICAeAtBgH8gAhsgDEMAAP5CXhtBACAMIAxbG0EBasBBAm0iAcAhAiABQf8BcUECSQ0CIAJBAkGwzMIAEOMIAAsgA0EYakKOgICA4AA3AwAgA0KEgICAwAE3AxAgA0KKgICAIDcDCCADQoCAgICAATcDACAMQwAAAMNgIQJB/wACfyAMi0MAAABPXQRAIAyoDAELQYCAgIB4C0GAfyACGyAMQwAA/kJeG0EAIAwgDFsbQQFqwEECbSIBwCECIAFB/wFxQQJJDQIgAkECQcDMwgAQ4wgACyADQRhqQo6AgICgATcDACADQoKAgIDgADcDECADQoyAgICAATcDCCADQoCAgIDAADcDACAMQwAAAMNgIQJB/wACfyAMi0MAAABPXQRAIAyoDAELQYCAgIB4C0GAfyACGyAMQwAA/kJeG0EAIAwgDFsbQQFqwEECbSIBwCECIAFB/wFxQQJJDQIgAkECQdDMwgAQ4wgACyADIAJBBHRqIgEoAgwhBCABKAIIIQUgASgCBCEGIAEoAgAhByADQRhqQv2BgIDAHTcDACADQvSBgIDgHzcDECADQtmBgICAGTcDCCADQtCBgICgGzcDACABKAIMIQggASgCCCEJIAEoAgQhCiAPjCERIA6MIRIgDSAMlCINIRMgDSIQIRQgASgCAAwCCyADIAJBBHRqIgEoAgwhBCABKAIIIQUgASgCBCEGIAEoAgAhByADQRhqQvuB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ALwiDkH/////B3EiB0Hbn6T6A08EQCAHQdKn7YMETwRAIAdB1uOIhwRPBEACQAJAAkACQCAHQf////sHTQRAIAtCADcDCAJ8IAdB2p+k7gRNBEAgAUSDyMltMF/kP6JEAAAAAAAAOEOgRAAAAAAAADjDoCICRAAAAAAAAODBZiEGQf////8HAn8gAplEAAAAAAAA4EFjBEAgAqoMAQtBgICAgHgLQYCAgIB4IAYbIAJEAADA////30FkG0EAIAIgAmEbIQcgASACRAAAAFD7Ifm/oqAgAkRjYhphtBBRvqKgDAELIAsgByAHQRd2QZYBayIPQRd0a767OQMAIAtBCGohGSMAQbAEayIEJAAgBEIANwOYASAEQgA3A5ABIARCADcDiAEgBEIANwOAASAEQgA3A3ggBEIANwNwIARCADcDaCAEQgA3A2AgBEIANwNYIARCADcDUCAEQgA3A0ggBEIANwNAIARCADcDOCAEQgA3AzAgBEIANwMoIARCADcDICAEQgA3AxggBEIANwMQIARCADcDCCAEQgA3AwAgBEIANwO4AiAEQgA3A7ACIARCADcDqAIgBEIANwOgAiAEQgA3A5gCIARCADcDkAIgBEIANwOIAiAEQgA3A4ACIARCADcD+AEgBEIANwPwASAEQgA3A+gBIARCADcD4AEgBEIANwPYASAEQgA3A9ABIARCADcDyAEgBEIANwPAASAEQgA3A7gBIARCADcDsAEgBEIANwOoASAEQgA3A6ABIARCADcD2AMgBEIANwPQAyAEQgA3A8gDIARCADcDwAMgBEIANwO4AyAEQgA3A7ADIARCADcDqAMgBEIANwOgAyAEQgA3A5gDIARCADcDkAMgBEIANwOIAyAEQgA3A4ADIARCADcD+AIgBEIANwPwAiAEQgA3A+gCIARCADcD4AIgBEIANwPYAiAEQgA3A9ACIARCADcDyAIgBEIANwPAAiAEQeADakEAQdAAEIkNGkGA+MMAKAIAIgwhByAPQQNrQRhtIgZBACAGQQBKGyIUIgZBAnRBkPjDAGohCQNAIAQgBUEDdGogBkEASAR8RAAAAAAAAAAABSAJKAIAtws5AwAgBSAHSQRAIAlBBGohCSAGQQFqIQYgByAFIAUgB0lqIgVPDQELCyAPQRhrIQdBACEGA0AgBkEDdCIJIARBwAJqaiALKwMA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lJKSIBlBGGoqAgAiEyAaQThqIiUqAgAiFJQgGUEcaioCACIVIBpBPGoiJioCACIWlJIgGUEgaioCACIXIBpBQGsiJyoCACIYlJKSlCECICcgGCAXIAKUkzgCACAmIBYgFSAClJM4AgAgJSAUIBMgApSTOAIAICQgEiARIAKUkzgCACAjIBAgDyAClJM4AgAgIiAOIA0gApSTOAIAICEgDCALIAKUkzgCACAeIAogCSAClJM4AgAgHCAIIAQgApSTOAIAIBpBzABqIhwgHCoCACACIBlBLGoqAgCUkzgCACAaQcgAaiIcIBwqAgAgAiAZQShqKgIAlJM4AgAgGkHwAGohGiABIBsgAEEBaiIAaksNAAsMAAsACyAdQSBqJAAPCyAdQRRqQgA3AgAgHUEBNgIMIB1BtIjCADYCCCAdQZi/wAA2AhAgHUEIakHIicIAENwKAAv2BwIFfwN9IwBBwAFrIgskACALQRhqIAMgBCgCqAERAAAgCygCHCENIAsoAhghDCALQRBqIAYgBygCqAERAAACQAJAAkACQAJAIAwEQCALKAIQIg4NAQsgC0EIaiADIAQoAqwBEQAAIAsoAggiDEUNASAAIAEgAiAMIAsoAgwgBSAGIAcgCCAJIAoQLwwECyALKAIUIQ8gCgR/QQAFIAMgBCgCnAERCgAgBiAHKAKcAREKAJIhEiADIAQoAqABEQoAIRAgBiAHKAKgAREKACIRIBEgECAQIBFdGyAQIBBcGyEQQQELIQogCyAQOAJgIAsgEjgCXCALIAo2AlggC0HoAGogAyAEKAKAAREAACALQfgAaiAGIAcoAoABEQAAIAsqAnQgCyoChAFgDQEgC0GIAWogASAFIA4gDyAGIAcgAiAMIA0gAyAEIAggCSALQdgAahA+IAstALwBIgNBBEYEQCALQQQ6AFQMAwsgC0EgaiIBQRhqIAtBiAFqIgJBDGooAgA2AgAgAUEMaiACQRhqKAIANgIAIAFBMGogAkEkaigCADYCACABQSRqIAJBMGooAgA2AgAgCyALKQKMATcCMCALIAspApgBNwIkIAsgCykCpAE3AkggCyALKQKwATcCPCALIAM6AFQgCyALKgKIATgCIAwCCyALIAYgBygCrAERAAAgCygCACIGBEAgC0GIAWogASAFIAYgCygCBCACIAMgBCAIIAkgChAvIAstALwBIgFBBEcEQCALQYABaiALQZQBaigCADYCACALQShqIAtBoAFqKAIANgIAIAtB4ABqIAtBrAFqKAIANgIAIAtB8ABqIAtBuAFqKAIANgIAIAsgCykCjAE3A3ggCyALKQKYATcDICALIAspAqQBNwNYIAsgCykCsAE3A2ggCyoCiAEhCQsgACAJOAIAIAAgCykDIDcCBCAAIAspA3g3AhAgACALKQNoNwIcIAAgCykDWDcCKCAAIAE6ADQgAEEMaiALQShqKAIANgIAIABBGGogC0GAAWooAgA2AgAgAEEkaiALQfAAaigCADYCACAAQTBqIAtB4ABqKAIANgIAIABBN2ogC0GKAWotAAA6AAAgACALLwCIATsANQwDCyAAQQU6ADQMAgsgC0EgaiABIAIgDCANIAMgBCAFIA4gDyAGIAcgCCAJIAtB2ABqED4LIABBMGogC0EgaiIBQTBqKQIANwIAIABBKGogAUEoaikCADcCACAAQSBqIAFBIGopAgA3AgAgAEEYaiABQRhqKQIANwIAIABBEGogAUEQaikCADcCACAAQQhqIAFBCGopAgA3AgAgACALKQIgNwIACyALQcABaiQAC/YIAQF/IwBBMGsiAiQAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AAEEBaw4RAQIDBAUGBwgJCgsMDQ4PEBEACyACIAAtAAE6AAggAkEkakIBNwIAIAJBAjYCHCACQcS0wwA2AhggAkGSBzYCFCACIAJBEGo2AiAgAiACQQhqNgIQIAEgAkEYahD0CwwRCyACIAApAwg3AwggAkEkakIBNwIAIAJBAjYCHCACQeC0wwA2AhggAkH5ADYCFCACIAJBEGo2AiAgAiACQQhqNgIQIAEgAkEYahD0CwwQCyACIAApAwg3AwggAkEkakIBNwIAIAJBAjYCHCACQeC0wwA2AhggAkGTBzYCFCACIAJBEGo2AiAgAiACQQhqNgIQIAEgAkEYahD0CwwPCyACIAArAwg5AwggAkEkakIBNwIAIAJBAjYCHCACQYC1wwA2AhggAkGUBzYCFCACIAJBEGo2AiAgAiACQQhqNgIQIAEgAkEYahD0CwwOCyACIAAoAgQ2AgggAkEkakIBNwIAIAJBAjYCHCACQZy1wwA2AhggAkGVBzYCFCACIAJB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akJ/NwIAIARBFGpBADoAACAEQRBqQX82AgAgBEFAayEEIAVBBGsiBQ0ACwsgCARAA0AgBEJ/NwIIIARBADoABCAEQX82AgAgBEEQaiEEIAhBAWsiCA0ACwsgBiAKakEBayEGCyAEQn83AgggBEEAOgAEIARBfzYCACAGQQFqBSAECzYCCCAJIAAoAgQiBygCCCIFSwRAIAkgBSIGayIJIAcoAgQgBWtLBEAgByAFIAkQnQYgBygCCCEGCyAHKAIAIAZBGGxqIQQgCUECTwRAIAEgBWsiCkEDcSEIIAVBf3MgAWpBA08EQCAKQXxxIQUDQCAEQv////v///+/fzcCECAEQv////v3//+/fzcCCCAEQv////v3//+//wA3AgAgBEHYAGpC////+////79/NwIAIARB0ABqQv////v3//+/fzcCACAEQcgAakL////79///v/8ANwIAIARBQGtC////+////79/NwIAIARBOGpC////+/f//79/NwIAIARBMGpC////+/f//7//ADcCACAEQShqQv////v///+/fzcCACAEQSBqQv////v3//+/fzcCACAEQRhqQv////v3//+//wA3AgAgBEHgAGohBCAFQQRrIgUNAAsLIAgEQANAIARC////+////79/NwIQIARC////+/f//79/NwIIIARC////+/f//7//ADcCACAEQRhqIQQgCEEBayIIDQALCyAGIAlqQQFrIQYLIARC////+////79/NwIQIARC////+/f//79/NwIIIARC////+/f//7//ADcCACAGQQFqIQkLIAcgCTYCCCAAKAIAIgcoAgghBQsgASAFSQRAIAcoAgAgAUEEdGoiBiABNgIIIAZBDGogAjYCACABIAAoAgQiAigCCCIGSQRAIAIoAgAgAUEYbGoiAiADKQIANwIAIAJBEGogA0EQaikCADcCACACQQhqIANBCGopAgA3AgAgACgCCCIAKAIIIQggACgCBCAIRgRAIAAgCBCoBiAAKAIIIQgLIAAgCEEBajYCCCAAKAIAIAhBAnRqIAE2AgAPCyABIAZB3NrAABDjCAALIAEgBUHM2sAAEOMIAAvmBgIOfwF+IwBBIGsiAyQAQQEhDQJAAkAgAigCFCIMQSIgAkEYaigCACIPKAIQIg4RAwANAAJAIAFFBEBBACECQQAhAQwBCyAA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akEQaigCACIGQQFLBEAgBiEFDAELIAEgBkHIAGxqLQBERQ0CIAEgAEHIAGxqQRRqKAIAIgdBAU0NASAHIQULIAVBAkGsn8MAEOMIAAsgASAHQcgAbGotAEQNAQtBvJ/DAEEsQeifwwAQqgoACyACQQA2AgwCQCABIABByABsaigCGCIDQQJLDQACQAJAAkACQCABIAVByABsaiADQQJ0akEMaiIEKAIAIABHDQAgASAFQcgAbGogA0ECdGoiCEEYaiIEKAIADQEgAiAIQSRqKAIAIgg2AhAgAiABIABByABsakEoaigCACIENgIUIAQgCEcNAiACIAEgBUHIAGxqIANBfkEBIANBAUsbakECdGpBJGooAgAiBTYCECACIAEgAEHIAGxqIgMoAiQiBDYCFCAEIAVHDQMgAkEBNgIMIANBHGooAgAiA0ECSw0EIAEgBkHIAGxqIANBAnRqIglBDGoiBCgCACAARw0AIAlBGGoiBCgCAEEBRw0BIAIgASAGQcgAbGoiBCADQQJ0akEkaigCACIGNgIQIAIgASAAQcgAbGpBLGooAgAiCTYCFCAGIAlHDQIgAiAEIANBfkEBIANBAUsbakECdGpBJGooAgAiAzYCECACIAg2AhQgAyAIRw0DIAEgAEHIAGxqQSBqKAIAIQMgAkECNgIMIANBAksNBCABIAdByABsaiADQQJ0akEMaiIEKAIAIABHDQAgASAHQcgAbGogA0ECdGoiAEEYaiIEKAIAQQJHDQEgAiAAQSRqKAIAIgA2AhAgAiAFNgIUIAAgBUcNAiACIAEgB0HIAGxqIANBfkEBIANBAUsbakECdGpBJGooAgAiADYCECACIAY2AhQgACAGRw0DIAJBMGokAA8LIAJBADYCGCAEIAJBCGogAkEYakHsnsMAEOMKAAsgAkEANgIYIAQgAkEMaiACQRhqQfyewwAQ4woACyACQQA2AhggAkEQaiACQRRqIAJBGGpBjJ/DABDjCgALIAJBADYCGCACQRBqIAJBFGogAkEYakGcn8MAEOMKAAsgA0EDQdyewwAQ4wgAC/YGAQp/IwBBEGsiByQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAFQQFrDgMBCBAACyABQSBqKAIAIgsgAk0NCCABQSRqKAIAIANNDQggASgCDCIJIANsIAJq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IgUbQdbZwwBB+MHDACAFGyACGyEHQQEhBUEBIAZBH3YgAhshBgJAIAhBAmsOAgMAAgsgBEEgaiAEQeAAaiAEQQ9qEHECQCAEKAIgRQRAIARB0ABqIARB4ABqIARBD2oQKwwBCyAEQdgAaiAEQShqKAIANgIAIAQgBCkCIDcDUAsgBCAEKAJQIAQoAlQgBC8BWCADIARBIGoQoAQgBCgCBCEFIAQoAgAMAwsgBEEDNgIoIARB2NnDADYCJCAEQQI7ASBBASEFQQAhBkH4wcMAIQcgBEEgagwCCyAEQQM2AiggBEHb2cMANgIkIARBAjsBICAEQSBqDAELQQIhBSAEQQI7ASAgAwRAIARBMGpBATYCACAEQQA7ASwgBEECNgIoIARBrdnDADYCJCAEQSBqDAELQQEhBSAEQQE2AiggBEHe2cMANgIkIARBIGoLIQIgBEHcAGogBTYCACAEIAI2AlggBCAGNgJUIAQgBzYCUCAAIARB0ABqENECIQAgBEGAAWokACAAC5AFAQR/IAAoAggiBCABSQRAIAQhBSABIARrIgYgACgCBCAEa0sEQCAAIAQgBhCdBiAAKAIIIQULIAAoAgAgBUEYbGohAyAGQQJPBEAgBEF/cyABaiIEQQdxIQEgBkECa0EHTwRAIARBeHEhBANAIANCADcCACADQRBqQgA3AgAgA0EIakIANwIAIANBGGpCADcCACADQSBqQgA3AgAgA0EoakIANwIAIANBMGpCADcCACADQThqQgA3AgAgA0FAa0IANwIAIANByABqQgA3AgAgA0HQAGpCADcCACADQdgAakIANwIAIANB4ABqQgA3AgAgA0HoAGpCADcCACADQfAAakIANwIAIANBiAFqQgA3AgAgA0GAAWpCADcCACADQfgAakIANwIAIANBoAFqQgA3AgAgA0GYAWpCADcCACADQZABakIANwIAIANBqAFqQgA3AgAgA0GwAWpCADcCACADQbgBakIANwIAIANBwAFqIQMgBEEIayIEDQALCyABBEADQCADQgA3AgAgA0EQakIANwIAIANBCGpCADcCACADQRhqIQMgAUEBayIBDQALCyAFIAZqQQFrIQULIANCADcCACADQRBqQgA3AgAgA0EIakIANwIAIAVBAWohAQsgACABNgIIAkACQAJAIAJFBEBBBCEDDAELIAJB////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NgIAIAVBBEkNACACNQAEIQkgASAEQQxrIgU2AgQgASACQQxqNgIAIAVBBEkNASACNQAIIQogASAEQRBrIgU2AgQgASACQRBqNgIAIAVBBEkNASACKAAMIQUgASAEQRRrIgY2AgQgASACQRRqNgIAIAZBBEkNASACNQAQIQsgASAEQRhrIgY2AgQgASACQRhqNgIAAkAgBkEESQ0AIAI1ABQhDCABIARBHGsiBjYCBCABIAJBHGo2AgAgBkEESQ0AIAIoABghBiABIARBIGsiCDYCBCABIAJBIGo2AgAgCEEESQ0AIAI1ABwhDSAAIAc2AgQgASAEQSRrNgIEIAEgAkEkajYCACAAQRxqIAY2AgAgAEEUaiAMQiCGIAuENwIAIABBEGogBTYCACAAQQhqIApCIIYgCYQ3AgAgAEEgaiANIAI1ACBCIIaENwIAQQAMAwsgA0EAOgALIANBJTsACSADQQQ2AgwgA0EBOgAIIAAgA0EIahDqCjYCBEEBDAILIANBADoACyADQSU7AAkgA0EENgIMIANBAToACCAAIANBCGoQ6go2AgRBAQwBCyADQQA6AAsgA0ElOwAJIANBBDYCDCADQQE6AAggACADQQhqEOoKNgIEQQELNgIAIANBEGokAAu/BAEDfyMAQTBrIgMkACADIAEqAgwgAkE8aioCAF86ABMgAyABKgIIIAJBOGoqAgBfOgASIAMgASoCBCACQTRqKgIAXzoAESADIAEqAgAgAioCMF86ABAgAyACKgIMIAFBPGoqAgBfOgAjIAMgAioCCCABQThqKgIAXzoAIiADIAIqAgQgAUE0aioCAF86ACEgAyACKgIAIAEqAjBfOgAgIAMgA0EQaiIEIANBIGoiBRDKCSADIAFBHGoqAgAgAkHMAGoqAgBfOgAjIAMgAUEYaioCACACQcgAaioCAF86ACIgAyABQRRqKgIAIAJBxABqKgIAXzoAISADIAEqAhAgAkFAayoCAF86ACAgBCADIAUQygkgAyACQRxqKgIAIAFBzABqKgIAXzoAIyADIAJBGGoqAgAgAUHIAGoqAgBfOgAiIAMgAkEUaioCACABQcQAaioCAF86ACEgAyACKgIQIAFBQGsqAgBfOgAgIAMgBCAFEMoJIAMgAUEsaioCACACQdwAaioCAF86ACMgAyABQShqKgIAIAJB2ABqKgIA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IAZBvQVqIghBC2pCADcAACAGQaoFaiIJQQtqQgA3AAAgBkGXBWoiCkELakIANwAAIAZBhAVqIgtBC2pCADcAACAGQgA3A6gDIAZCADcD0AMgBkIANwADIAZCADcAwAUgBkIANwCtBSAGQgA3AJoFIAZCADcAhwUgBkGcA2pCADcCACAGQgA3ApQDIAZB8QNqIAZBCGopAAA3AAAgBkH4A2ogBkEPaigAADYAACAGIAYpAAA3AOkDIAZBlARqIAhBD2ooAAA2AAAgBkGNBGogCEEIaikAADcAACAGIAYpAL0FNwCFBCAGQbAEaiAJQQ9qKAAANgAAIAZBqQRqIAlBCGopAAA3AAAgBiAGKQCqBTcAoQQgBkHMBGogCkEPaigAADYAACAGQcUEaiAKQQhqKQAANwAAIAYgBikAlwU3AL0EIAZB6ARqIAtBD2ooAAA2AAAgBkHhBGogC0EIaikAADcAACAGIAYpAIQFNwDZBCAGQgA3A8gCIAZCADcDwAIgBkGAAjsB/AQgBkE+NgL4BCAGQQA6APQEIAZC////+wc3AuwEIAZBADoA2AQgBkL////7BzcD0AQgBkEAOgC8BCAGQv////sHNwK0BCAGQQA6AKAEIAZC////+wc3A5gEIAZBADoAhAQgBkL////7BzcC/AMgBkEAOgDoAyAGQv////sHNwPgAyAGQgA3A8gDIAZCgICA/AM3A8ADIAZBgICA/AM2AqQDIAZB////+wc2ApADIAZCgICAgPD//79/NwOIAyAGQv////v///+//wA3A4ADIAZC////+wc3A/gCIAZCgICAgPD//79/NwPwAiAGQv////v///+//wA3A+gCIAZC////+wc3A+ACIAZCgICAgPD//79/NwPYAiAGQv////v///+//wA3A9ACIAZBmANqIAdBzAJqIggQ0gMgBiAGQcACakHAAhCIDSIGQfQAaiAIENIDIAdB2AdqIgggBkHAAhCIDRogBkHQBWokACAHQcgIaiAAQQRqIgZBCGooAgA2AgAgB0HACGogBikCADcDACAHQZgFaiIGIAhBwAIQiA0aIAdBpAZqIAFBBGoiCEEIaigCADYCACAHIAgpAgA3ApwGIAdB2AJqIAZBwAIQiA0aIAMNAgwDCxD4DAALEPkMAAsgB0HYB2oiAyAHQdgCaiIGQcACEIgNGiAHIAU4ApwFIAcgBDgCmAUgAyAHQZgFaikCADcDECADIAMtALkCQQFyOgC5AiAGIANBwAIQiA0aCyAHQQhqIAdB2AJqQb0CEIgNGiAHLwGWBSEJIAIoAgBBAWshCCAHLQCVBQshBiACIAg2AgAgASABKAIAQQFrNgIAIAAgACgCAEEBazYCAEEAIQICQCAGQQJHBEAgB0HcB2ogB0EIakG9AhCIDRpBkfvDAC0AABpByAJBCBCCDCICRQ0BIAJBADYCACACQQRqIAdB2AdqQcECEIgNGiACIAk7AcYCIAIgBjoAxQILIAdBoApqJAAgAg8LQQhByAJB0IHEACgCACIAQZcHIAAbEQAAAAuWCgEOfyMAQZAIayIFJAACQAJAAkAgAEUNACAAKAIAIgRBf0YNASAAIARBAWo2AgAgAUUNACABKAIAIgRBf0YNASABIARBAWo2AgAgAkUNACACKAIAIgRBf0YNASACIARBAWo2AgAgA0UNACADKAIAIgRBf0YNASADIARBAWo2AgAgBUHIAmoiBEEIaiIMIAFBBGoiBkEIaikCADcDACAEQRBqIg0gAEEEaiIHKQIANwMAIARBGGoiDiAHQQhqKAIANgIAIAVB6AJqIgRBCGoiDyADQQxqKQIANwMAIARBEGoiECACQQRqIgcpAgA3AwAgBEEYaiIRIAdBCGooAgA2AgAgBSAGKQIANwPIAiAFIAMpAgQ3A+gCIwBB4ABrIgZBzQBqIgdBC2pCADcAACAGQTpqIghBC2pCADcAACAGQSdqIglBC2pCADcAACAGQRRqIgpBC2pCADcAACAFQcgFaiIEQfgAakIANwMAIARB8ABqQgA3AwAgBEIANwNoIARCADcDkAEgBEGYAWpCADcDACAGQQFqIgtBC2pCADcAACAEQdwAakIANwIAIARCADcCVCAGQgA3AFAgBEGxAWogB0EIaikAADcAACAGQgA3AD0gBkIANwAqIAZCADcAFyAGQgA3AAQgBCAGKQBNNwCpASAEQbgBaiAHQQ9qKAAANgAAIAQgBikAOjcAxQEgBEHNAWogCEEIaikAADcAACAEQdQBaiAIQQ9qKAAANgAAIAQgBikAJzcA4QEgBEHpAWogCUEIaikAADcAACAEQfABaiAJQQ9qKAAANgAAIARBjAJqIApBD2ooAAA2AAAgBEGFAmogCkEIaikAADcAACAEIAYpABQ3AP0BIARBqAJqIAtBD2ooAAA2AAAgBEGhAmogC0EIaikAADcAACAEIAYpAAE3AJkCIARCADcDCCAEQgA3AwAgBEGAAjsBvAIgBEE/NgK4AiAEQQA6ALQCIARC////+wc3AqwCIARBADoAmAIgBEL////7BzcDkAIgBEEAOgD8ASAEQv////sHNwL0ASAEQQA6AOABIARC////+wc3A9gBIARBADoAxAEgBEL////7BzcCvAEgBEEAOgCoASAEQv////sHNwOgASAEQgA3A4gBIARCgICA/AM3A4ABIARBgICA/AM2AmQgBEH////7BzYCUCAEQoCAgIDw//+/fzcDSCAEQv////v///+//wA3A0AgBEL////7BzcDOCAEQoCAgIDw//+/fzcDMCAEQv////v///+//wA3AyggBEL////7BzcDICAEQoCAgIDw//+/fzcDGCAEQv////v///+//wA3AxAgBUG4BmogDigCADYCACAFQbAGaiANKQMANwMAIAVBqAZqIAwpAwA3AwAgBSAFKQPIAjcDoAYgBUGIA2oiBiAEQcACEIgNGiAFQYQEaiAPKQMANwIAIAVBjARqIBApAwA3AgAgBUGUBGogESgCADYCACAFIAUpA+gCNwL8AyAFQQhqIgcgBkHAAhCIDRogAyADKAIAQQFrNgIAIAIgAigCAEEBazYCACABIAEoAgBBAWs2AgAgACAAKAIAQQFrNgIAIARBBGogB0HAAhCIDRpBkfvDAC0AABpByAJBCBCCDCIARQ0CIABBADYCACAAQQRqIAVByAVqQcQCEIgNGiAFQZAIaiQAIAAPCxD4DAALEPkMAAtBCEHIAkHQgcQAKAIAIgBBlwcgABsRAAAAC/YDAQ99IAIqAgAgASoCEJMiCiABKgIEIgSUIAIqAgQgAUEUaioCAJMiDSABKgIAIgWUkyIGIAaSIQggDSABKgIIIgaUIAIqAgggAUEYaioCAJMiByAElJMiCyALkiEJIAcgASoCDCILIAiUIAQgCZQgBSAHIAWUIAogBpSTIgcgB5IiB5STkpIiDiAOlCAKIAsgCZQgBiAHlCAEIAiUk5KSIg8gD5QgDSALIAeUIAUgCJQgBiAJlJOSkiINIA2UkpIgACoCACIIIAiUkyEIQwAAAAAhByAEIAIqAgwiEJQgBSACQRBqKgIA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ajYCCCAPQawBaioCACEeIBAoAgQiCygCCCEKIAsoAgQgCmtBA00EQCALIApBBBDIBiALKAIIIQoLIAsgCkEEajYCCCALKAIAIApqIB44AAAgD0HgAGogEEEEahDcBiIKDQMgD0HsAGogEEEEahDcBiIKDQMgD0H4AGogEEEEahDcBiIKDQMgD0GEAWogEEEEahDcBiIKDQMgD0GUAWoqAgAhHiAPQZABaioCACEfIBAoAgQiCygCCCEKIAsoAgQgCmtBA00EQCALIApBBBDIBiALKAIIIQoLIAsoAgAgCmogHzgAACALIApBBGoiCjYCCCALKAIEIAprQQNNBEAgCyAKQQQQyAYgCygCCCEKCyALIApBBGo2AgggCygCACAKaiAeOAAAIA9B/AFqIBBBBGoQ3AYiCg0DIA9BiAJqIBBBBGoQ3AYiCg0DIA9BlAJqKgIAIR4gECgCBCILKAIIIQogCygCBCAKa0EDTQRAIAsgCkEEEMgGIAsoAgghCgsgCyAKQQRqNgIIIAsoAgAgCmogHjgAACAPQZgCaiAQQQRqENwGIgoNAyAPQaQCaiAQQQRqENwGIgoNAyAPQdgCaioCACEeIBAoAgQiCygCCCEKIAsoAgQgCmtBA00EQCALIApBBBDIBiALKAIIIQoLIAsoAgAgCmogHjgAACALIApBBGoiCjYCCCAPQdwCaioCACEeIAsoAgQgCmtBA00EQCALIApBBBDIBiALKAIIIQoLIAsoAgAgCmogHjgAACALIApBBGoiCjYCCCAPQeACai0AACEMIAogCygCBEYEQCALIApBARDIBiALKAIIIQoLIAsoAgAgCmogDDoAACALIApBAWoiCjYCCCAPQeECai0AACEMIAogCygCBEYEQCALIApBARDIBiALKAIIIQoLIAsoAgAgCmogDDoAACALIApBAWo2AgggDzUCCCEcIBAoAgQiCygCCCEKIAsoAgQgCmtBB00EQCALIApBCBDIBiALKAIIIQoLIAsoAgAgCmogHDcAACALIApBCGoiCjYCCCAPQQxqNQIAIRwgCygCBCAKa0EHTQRAIAsgCkEIEMgGIAsoAgghCgsgCygCACAKaiAcNwAAIAsgCkEIaiIKNgIIIA9BEGo1AgAhHCALKAIEIAprQQdNBEAgCyAKQQgQyAYgCygCCCEKCyALKAIAIApqIBw3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QQRqIgo2AgggDCgCACALaiAPNgAAIA4gDUEIaiINRw0ACwsgFSgCGCIRQRBqKAIAIQwgESgCCCETIBAoAgQiCigCCCELIAooAgQgC2tBB00EQCAKIAtBCBDIBiAKKAIIIQsLIAogC0EIajYCCCAKKAIAIAtqIAytNwAAIAwEQCAMQagBbCEUQQAhCwNAAkACQAJAAkACQAJAAkACQCALIBNqIgwoAgBFBEAgECgCBCIKKAIIIQ0gCigCBCANa0EDTQRAIAogDUEEEMgGIAooAgghDQsgCigCACANakEANgAAIAogDUEEajYCCCAQKAIEIQogDEEEaigCAA0BIAooAggiDiAKKAIERgRAIAogDkEBEMgGIAooAgghDgsgCigCACAOakEAOgAAIAogDkEBajYCCAwICyAQKAIEIgooAgghDSAKKAIEIA1rQQNNBEAgCiANQQQQyAYgCigCCCENCyAKKAIAIA1qQQE2AAAgCiANQQRqNgIIIAxBBGooAgAhDiAQKAIEIgooAgghDSAKKAIEIA1rQQRJBEAgCiANQQQQyAYgCigCCCENCyAKKAIAIA1qIA42AAAgCiANQQRqNgIIIAxBoAFqLQAAIQ4gECgCBCIKKAIIIQ0gCigCBCANa0EDTQRAIAogDUEEEMgGIAooAgghDQsgCigCACANaiAONgAAIAogDUEEajYCCCAMQThqIBBBBGoQLCIKDQogDEEwaigCAEEBaw4CAgUBCyAMQQhqKAIAIQwgCigCCCIOIAooAgRGBEAgCiAOQQEQyAYgCigCCCEOCyAKKAIAIA5qQQE6AAAgCiAOQQFqIg42AgggCigCBCAOa0EDTQRAIAogDkEEEMgGIAooAgghDgsgCigCACAOaiAMNgAAIAogDkEEajYCCAwGCyAMQTRqKgIAIR4gECgCBCIKKAIIIQ0gCigCBCANa0EDTQRAIAogDUEEEMgGIAooAgghDQsgCigCACANakEANgAAIAogDUEEaiINNgIIIAooAgQgDWtBA00NAQwCCyAMQTRqKgIAIR4gECgCBCIKKAIIIQ0gCigCBCANa0EDTQRAIAogDUEEEMgGIAooAgghDQsgCigCACANakEBNgAAIAogDUEEaiINNgIIIAooAgQgDWtBA0sNAQsgCiANQQQQyAYgCigCCCENCyAKKAIAIA1qIB44AAAgCiAN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aiIHQQtqQgA3AAAgA0GEBWoiCEELakIANwAAIANCADcDqAMgA0IANwPQAyADQgA3AAMgA0IANwDABSADQgA3AK0FIANCADcAmgUgA0IANwCHBSADQZwDakIANwIAIANCADcClAMgA0HxA2ogA0EIaikAADcAACADQfgDaiADQQ9qKAAANgAAIAMgAykAADcA6QMgA0GUBGogBUEPaigAADYAACADQY0EaiAFQQhqKQAANwAAIAMgAykAvQU3AIUEIANBsARqIAZBD2ooAAA2AAAgA0GpBGogBkEIaikAADcAACADIAMpAKoFNwChBCADQcwEaiAHQQ9qKAAANgAAIANBxQRqIAdBCGopAAA3AAAgAyADKQCXBTcAvQQgA0HoBGogCEEPaigAADYAACADQeEEaiAIQQhqKQAANwAAIAMgAykAhAU3ANkEIANCADcDyAIgA0IANwPAAiADQYACOwH8BCADQTc2AvgEIANBADoA9AQgA0L////7BzcC7AQgA0EAOgDYBCADQv////sHNwPQBCADQQA6ALwEIANC////+wc3ArQEIANBADoAoAQgA0L////7BzcDmAQgA0EAOgCEBCADQv////sHNwL8AyADQQA6AOgDIANC////+wc3A+ADIANCADcDyAMgA0KAgID8AzcDwAMgA0GAgID8AzYCpAMgA0H////7BzYCkAMgA0KAgICA8P//v383A4gDIANC////+////7//ADcDgAMgA0L////7BzcD+AIgA0KAgICA8P//v383A/ACIANC////+////7//ADcD6AIgA0L////7BzcD4AIgA0KAgICA8P//v383A9gCIANC////+////7//ADcD0AIgA0GYA2ogBEHMAmoiBRDSAyADIANBwAJqQcACEIgNIgNB9ABqIAUQ0gMgBEGYBWoiBSADQcACEIgNGiADQdAFaiQAIARBiAZqIABBBGoiA0EIaigCADYCACAEQYAGaiADKQIANwMAIARB2AJqIgMgBUG9AhCIDRogBC8B1gchBiAELQDVByEFIARB5ANqIAFBBGoiB0EIaigCADYCACAEIAcpAgA3AtwDIARBCGogA0G9AhCIDRogAigCAEEBawUgAws2AgAgASABKAIAQQFrNgIAIAAgACgCAEEBazYCAEEAIQIgBUECRwRAIARBnAVqIARBCGpBvQIQ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IABBnLHAADYCDCAAIBBBHGo2AghBACAAQQhqQcCWwAAgAEEMakHAlsAAIBBBgARqQZi3wAAQqwQACwALIBBB4AJqIQIgEEFAayIGKAIIIhEoAgAhDiARIA5BAWo2AgACQCAOQQBOBEAgBkEMaigCACESIAZBLGooAgAhEyAGQSRqKAIAIRQgBi0AYiEVIAYtAGMhHSAGKAJYIR4gBigCVCEfIAYvAWAhICAGKAIoISEgBigCICEiIAYtAGUhGyAGLQBkISMgBioCNCEHIAYqAjAhCwJAIAYoAgAiJUECRwRAIAYoAgQhDgwBC0GR+8MALQAAGkEsQQQQggwiDkUNAyAOIAYoAgQiDykCADcCACAOQQhqIA9BCGopAgA3AgAgDkEQaiAPQRBqKQIANwIAIA5BGGogD0EYaikCADcCACAOQSBqIA9BIGopAgA3AgAgDkEoaiAPQShqKAIANgIACyACIBU6AJgBIAIgETYCMCACQf8DNgJwIAIgJTYCKCACQQA2AgAgAkE0aiASNgIAIAJBLGogDjYCACACIAYpAjg3AnQgAkH8AGogBkFAaykCADcCACACQYQBaiAGQcgAaikCADcCACACQYwBaiAGQdAAaigCADYCACAGKgJcIQwgBikDECEmIAJBQGsgBkEYaikDADcDACACICY3AzggAkHtAGogGzoAACACQewAaiAjOgAAIAJB6ABqIAc4AgAgAiALOAJkIAIgDDgClAEgAkF/NgKQASACQeAAaiAgOwEAIAJB3ABqIB42AgAgAkHYAGogHzYCACACQdQAaiATNgIAIAJB0ABqICE2AgAgAkHMAGogFDYCACACICI2AkggAkHiAGogHUVBAXQ6AAAMAQsACwJAAkACQAJAAkACQAJAAkACQCAXBEAgEEH4AWoiAkEIaiIOIBBB9AJqKQIANwMAIAJBEGoiEiAQQfwCaikCADcDACACQRhqIgIgEEGEA2ooAgA2AgAgECAQKQLsAjcD+AEgGL0iJkIgiKchDyAQQdQDaiERICanIQYgECgC4AIiE0UEQCACIBFBGGooAgA2AgAgEiARQRBqKQIANwMAIA4gEUEIaikCADcDACAQIBEpAgA3A/gBQQEhEwsgJCAGIA8QigciEkUNBSAQQfQDaiEUIBBBiANqIRUgGigCAEUNASAaKAIEIgIgGkEQaigCACIO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QRBNGyIAayABTQ0AQRAgAUELakF4cSABQQtJGyIEIABqQQxqEDoiAkUNACACQQhrIQECQCAAQQFrIgMgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIABBACACIANqQQAgAGtxQQhrIgAgAWtBEE0bIABqIgAgAWsiAmshAyAGQQNxBEAgACADIAAoAgRBAXFyQQJyNgIEIAAgA2oiAyADKAIEQQFyNgIEIAUgAiAFKAIAQQFxckECcjYCACABIAJqIgMgAygCBEEBcjYCBCABIAIQzAMMAQsgASgCACEBIAAgAzYCBCAAIAEgAmo2AgALAkAgACgCBCIBQQNxRQ0AIAFBeHEiAiAEQRBqTQ0AIAAgBCABQQFxckECcjYCBCAAIARqIgEgAiAEayIEQQNyNgIEIAAgAmoiAiACKAIEQQFyNgIEIAEgBBDMAwsgAEEIaiEDCyADC40DAQF/AkAgAgRAIAEtAABBME0NASAFQQI7AQACQAJAAkAgA8EiBkEASgRAIAUgATYCBCADQf//A3EiAyACTw0BIAVBAjsBGCAFQQI7AQwgBSADNgIIIAVBIGogAiADayICNgIAIAVBHGogASADajYCACAFQRRqQQE2AgAgBUEQakGs2cMANgIAQQMhASACIARPDQMgBCACayEEDAILIAVBAjsBGCAFQQA7AQwgBUECNgIIIAVBrdnDADYCBCAFQSBqIAI2AgAgBUEcaiABNgIAIAVBEGpBACAGayIDNgIAQQMhASACIARPDQIgBCACayICIANNDQIgAiAGaiEEDAELIAVBADsBDCAFIAI2AgggBUEQaiADIAJrNgIAIARFBEBBAiEBDAILIAVBAjsBGCAFQSBqQQE2AgAgBUEcakGs2cMANgIACyAFQQA7ASQgBUEoaiAENgIAQQQhAQsgACABNgIEIAAgBTYCAA8LQezVwwBBIUG42MMAEKoKAAtByNjDAEEfQejYwwAQqgoAC5oDAQF/AkACQCAARQ0AIAAoAgANASAAQX82AgAgAUUNACABKAIAIgtBf0YNASABIAtBAWo2AgAgAkUNACACKAIAIgtBf0YNASACIAtBAWo2AgAgA0UNACADKAIADQEgA0F/NgIAIARFDQAgBCgCAA0BIARBfzYCACAFRQ0AIAUoAgANASAFQX82AgAgBkUNACAGKAIADQEgBkF/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KAIAIghBf0YNASAAIAhBAWo2AgAgAkUNACACKAIAIghBf0YNASACIAhBAWo2AgAgBEUNACAEKAIAIghBf0YNASAEIAhBAWo2AgAgAkEEaiELIARBBGohDCAGQQBHIQ0jAEGAAWsiBiQAAkACQCAAQQRqIgkgA70iE6ciDiATQiCIpyIPEJgKIggEQCAJIAG9IhOnIBNCIIinEJgKIglFDQEgBkHEAGogCUH0AGogCyAJKAIwIAlBNGooAgAiCSgCCEEBa0F4cWpBCGogCSAIQfQAaiAMIAgoAjAgCEE0aigCACIIKAIIQQFrQXhxakEIaiAIIAUgDRDHAgJ/AkAgBi0AeCILQQVHBEAgBkEIaiIIQTBqIgwgBkHEAGoiCUEwaigCADYCACAIQShqIg0gCUEoaikCADcDACAIQSBqIhAgCUEgaikCADcDACAIQRhqIhEgCUEYaikCADcDACAIQRBqIhIgCUEQaikCADcDACAIQQhqIAlBCGopAgA3AwAgBkEGaiAGQfsAai0AADoAACAGIAYpAkQ3AwggBiAGLwB5OwEEIAtBBEcNAQsgByAGKQJENwIAIAdBOGogBkHEAGoiCEE4aigCADYCACAHQTBqIAhBMGopAgA3AgAgB0EoaiAIQShqKQIANwIAIAdBIGogCEEgaikCADcCACAHQRhqIAhBGGopAgA3AgAgB0EQaiAIQRBqKQIANwIAIAdBCGogCEEIaikCADcCAEEEIQsgBkHBAGoMAQsgByAPNgIEIAcgDjYCACAHIAYpAwg3AgggB0EQaiAGQRBqKQMANwIAIAdBGGogEikDADcCACAHQSBqIBEpAwA3AgAgB0EoaiAQKQMANwIAIAdBMGogDSkDADcCACAHQThqIAwoAgA2AgAgBkEEagshCCAHIAs6ADwgByAILwAAOwA9IAdBP2ogCEECai0AADoAACAGQYABaiQADAILQYS2wABBzABB4LjAABDhCQALQYS2wABBzABB+LbAABDhCQALIAQgBCgCAEEBazYCACACIAIoAgBBAWs2AgAgACAAKAIAQQFrNgIAIActADxBBEcEQEGR+8MALQAAGkHEAEEEEIIMIgpFDQMgCkEANgIAIAogBykCADcCBCAKQQxqIAdBCGopAgA3AgAgCkEUaiAHQRBqKQIANwIAIApBHGogB0EYaikCADcCACAK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A0UNACADKAIAIgVBf0YNASADIAVBAWo2AgAgBEUNACAEKAIAIgVBf0YNASAEIAVBAWo2AgAjAEHgAGsiBkHNAGoiCEELakIANwAAIAZBOmoiCUELakIANwAAIAZBJ2oiCkELakIANwAAIAZBFGoiC0ELakIANwAAIAdBiAVqIgVB+ABqQgA3AwAgBUHwAGpCADcDACAFQgA3A2ggBkEBaiIMQQtqQgA3AAAgBUIANwJUIAVB3ABqQgA3AgAgBUG4AWogCEEPaigAADYAACAGQgA3AFAgBUGxAWogCEEIaikAADcAACAFIAYpAE03AKkBIAZCADcAPSAGQgA3ACogBkIANwAXIAZCADcABCAFQdQBaiAJQQ9qKAAANgAAIAVBzQFqIAlBCGopAAA3AAAgBSAGKQA6NwDFASAFIAYpACc3AOEBIAVB6QFqIApBCGopAAA3AAAgBUHwAWogCkEPaigAADYAACAFIAYpABQ3AP0BIAVBhQJqIAtBCGopAAA3AAAgBUGMAmogC0EPaigAADYAACAFQagCaiAMQQ9qKAAANgAAIAVBoQJqIAxBCGopAAA3AAAgBSAGKQABNwCZAiAFQgA3AwggBUIANwMAIAVBjAFqQgA3AgAgBUIANwKEASAFQYGOgAg2AboCIAVBADsBuAIgBUEAOgC0AiAFQv////sHNwKsAiAFQQA6AJgCIAVC////+wc3A5ACIAVBADoA/AEgBUL////7BzcC9AEgBUEAOgDgASAFQv////sHNwPYASAFQQA6AMQBIAVC////+wc3ArwBIAVBAToAqAEgBUL////7BzcDoAEgBSACOAKcASAFIAE4ApgBIAUgADgClAEgBUGAgID8AzYCgAEgBUGAgID8AzYCZCAFQf////sHNgJQIAVCgICAgPD//79/NwNIIAVC////+////7//ADcDQCAFQv////sHNwM4IAVCgICAgPD//79/NwMwIAVC////+////7//ADcDKCAFQv////sHNwMgIAVCgICAgPD//79/NwMYIAVC////+////7//ADcDECAHQfgFaiADQQRqIgZBCGooAgA2AgAgB0HwBWogBikCADcDACAHQcgCaiIGIAVBwAIQiA0aIAdB1ANqIARBDGooAgA2AgAgByAEKQIENwLMAyAHQQhqIgggBkHAAhCIDRogBCAEKAIAQQFrNgIAIAMgAygCAEEBazYCACAFQQRqIAhBwAIQiA0aQZH7wwAtAAAaQcgCQQgQggwiA0UNAiADQQA2AgAgA0EEaiAHQYgFakHEAhCIDRogB0HQB2okACADDwsQ+AwACxD5DAALQQhByAJB0IHEACgCACIDQZcHIAMbEQAAAAvFAgEIfyMAQTBrIgIkAAJAAkAgAARAIAAoAgANASAAQQA2AgAgAEE8aiIDKAIAIQQgA0ECNgIAIARBAkcEQCACQShqIgMgAEHoAGopAgA3AwAgAkEgaiIFIABB4ABqKQIANwMAIAJBGGoiBiAAQdgAaikCADcDACACQRBqIgcgAEHQAGopAgA3AwAgAkEIaiIIIABByABqKQIANwMAQZH7wwAtAAAaIAIgAEFAaykCADcDAEE4QQQQggwiAUUNAyABIAQ2AgQgAUEANgIAIAEgAikDADcCCCABQRBqIAgpAwA3AgAgAUEYaiAHKQMANwIAIAFBIGogBikDADcCACABQShqIAUpAwA3AgAgAUEwaiADKQMANwIACyACQTBqJAAgAQ8LEPgMAAsQ+QwAC0EEQThB0IHEACgCACIAQZcHIAAbEQAAAAu0AgIIfQF/IwBBIGsiCyQAIAEqAgAiAyADlCABKgIEIgMgA5SSEJsBIQMgASoCCCIGQwAAAABgRQRAIAtBFGpCADcCACALQQE2AgwgC0Hkl8IANgIIIAtBtIrCADYCECALQQhqQcCuwwAQ3AoACyAAIAMgBpI4AgwgACACQRhqKgIAIAIqAgwiAyACKgIAIgZDAAAAAJQiBCACKgIEIghDAAAAAJQiBZMiByAHkiIHlCAGIAIqAggiCUMAAAAAlCIKIASTIgQgBJIiBJQgCCAFIAqTIgUgBZIiBZSTkkMAAAAAkpI4AgggACACQRRqKgIAIAMgBJQgCSAFlCAGIAeUk5JDAAAAAJKSOAIEIAAgAioCECADIAWUIAggB5QgCSAElJOSQwAAAACSkjgCACALQSBqJAALiggBCH8jAEHQB2siBSQAAkACQAJAIAFFDQAgASgCACIDQX9GDQEgASADQQFqNgIAIAJFDQAgAigCACIDQX9GDQEgAiADQQFqNgIAIwBB4ABrIgRBzQBqIgZBC2pCADcAACAEQTpqIgdBC2pCADcAACAEQSdqIghBC2pCADcAACAEQRRqIglBC2pCADcAACAFQYgFaiIDQfgAakIANwMAIANB8ABqQgA3AwAgA0IANwNoIANCADcDkAEgA0GYAWpCADcDACAEQQFqIgpBC2pCADcAACADQdwAakIANwIAIANCADcCVCAEQgA3AFAgA0GxAWogBkEIaikAADcAACAEQgA3AD0gBEIANwAqIARCADcAFyAEQgA3AAQgAyAEKQBNNwCpASADQbgBaiAGQQ9qKAAANgAAIAMgBCkAOjcAxQEgA0HNAWogB0EIaikAADcAACADQdQBaiAHQQ9qKAAANgAAIAMgBCkAJzcA4QEgA0HpAWogCEEIaikAADcAACADQfABaiAIQQ9qKAAANgAAIANBjAJqIAlBD2ooAAA2AAAgA0GFAmogCUEIaikAADcAACADIAQpABQ3AP0BIANBqAJqIApBD2ooAAA2AAAgA0GhAmogCkEIaikAADcAACADIAQpAAE3AJkCIANBEGpBADYCACADQQhqQgA3AwAgA0IANwMAIANBgAI7AbwCIANBgIKAODYCuAIgA0EAOgC0AiADQv////sHNwKsAiADQQA6AJgCIANC////+wc3A5ACIANBADoA/AEgA0L////7BzcC9AEgA0EAOgDgASADQv////sHNwPYASADQQA6AMQBIANC////+wc3ArwBIANBADoAqAEgA0L////7BzcDoAEgA0IANwOIASADQoCAgPwDNwOAASADQYCAgPwDNgJkIANB////+wc2AlAgA0KAgICA8P//v383A0ggA0L////7////v/8ANwNAIANC////+wc3AzggA0KAgICA8P//v383AzAgA0L////7////v/8ANwMoIANC////+wc3AyAgA0KAgICA8P//v383AxggAyAAOAIUIAVB+AVqIAFBBGoiBEEIaigCADYCACAFQfAFaiAEKQIANwMAIAVByAJqIgQgA0HAAhCIDRogBUHUA2ogAkEMaigCADYCACAFIAIpAgQ3AswDIAVBCGoiBiAEQcACEIgNGiACIAIoAgBBAWs2AgAgASABKAIAQQFrNgIAIANBBGogBkHAAhCIDRpBkfvDAC0AABpByAJBCBCCDCIBRQ0CIAFBADYCACABQQRqIAVBiAVqQcQCEIgNGiAFQdAHaiQAIAEPCxD4DAALEPkMAAtBCEHIAkHQgcQAKAIAIgFBlwcgARsRAAAAC4MIAQh/IwBB0AdrIgQkAAJAAkACQCAARQ0AIAAoAgAiAkF/Rg0BIAAgAkEBajYCACABRQ0AIAEoAgAiAkF/Rg0BIAEgAkEBajYCACMAQeAAayIDQc0AaiIFQQtqQgA3AAAgA0E6aiIGQQtqQgA3AAAgA0EnaiIHQQtqQgA3AAAgA0EUaiIIQQtqQgA3AAAgBEGIBWoiAkH4AGpCADcDACACQfAAakIANwMAIAJCADcDaCACQgA3A5ABIAJBmAFqQgA3AwAgA0EBaiIJQQtqQgA3AAAgAkHcAGpCADcCACACQgA3AlQgA0IANwBQIAJBsQFqIAVBCGopAAA3AAAgA0IANwA9IANCADcAKiADQgA3ABcgA0IANwAEIAIgAykATTcAqQEgAkG4AWogBUEPaigAADYAACACIAMpADo3AMUBIAJBzQFqIAZBCGopAAA3AAAgAkHUAWogBkEPaigAADYAACACIAMpACc3AOEBIAJB6QFqIAdBCGopAAA3AAAgAkHwAWogB0EPaigAADYAACACQYwCaiAIQQ9qKAAANgAAIAJBhQJqIAhBCGopAAA3AAAgAiADKQAUNwD9ASACQagCaiAJQQ9qKAAANgAAIAJBoQJqIAlBCGopAAA3AAAgAiADKQABNwCZAiACQgA3AwggAkIANwMAIAJBgAI7AbwCIAJBBzYCuAIgAkEAOgC0AiACQv////sHNwKsAiACQQA6AJgCIAJC////+wc3A5ACIAJBADoA/AEgAkL////7BzcC9AEgAkEAOgDgASACQv////sHNwPYASACQQA6AMQBIAJC////+wc3ArwBIAJBADoAqAEgAkL////7BzcDoAEgAkIANwOIASACQoCAgPwDNwOAASACQYCAgPwDNgJkIAJB////+wc2AlAgAkKAgICA8P//v383A0ggAkL////7////v/8ANwNAIAJC////+wc3AzggAkKAgICA8P//v383AzAgAkL////7////v/8ANwMoIAJC////+wc3AyAgAkKAgICA8P//v383AxggAkL////7////v/8ANwMQIARB+AVqIABBBGoiA0EIaigCADYCACAEQfAFaiADKQIANwMAIARByAJqIgMgAkHAAhCIDRogBEHUA2ogAUEMaigCADYCACAEIAEpAgQ3AswDIARBCGoiBSADQcACEIgNGiABIAEoAgBB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AyAMGyEDDAELIAogC11FDQAgBCEDIAEhAgsgACACKgIIIAkgASoCJCIElJI4AgggACACKgIEIAggBJSSOAIEIAAgAyAHIASUkjgCAAuZAgICfwh9IAAoAggiAgRAIAAoAgAiASoCCCEHIAEqAgQhCCABKgIAIQQCQCACQQFGBEAgByEJIAghBSAEIQMMAQsgASACQQxsaiECIAFBDGohASAEIQMgCCEFIAchCQNAIAkgAUEIaioCACIKIAkgCmAbIQkgBSABQQRqKgIAIgYgBSAGYBshBSAHIAogByAKXxshByAIIAYgBiAIYBshCCADIAEqAgAiBiADIAZgGyEDIAQgBiAEIAZfGyEEIAIgAUEMaiIBRw0ACwsgACoCYCADIASTQwAAAD+UIgQgBSAIk0MAAAA/lCIDIAMgBGAbIgUgCSAHk0MAAAA/lCIDIAMgBWAbkg8LQfKYwgBB0gBB1JnCABDhCQALlwIBAX8jAEEQayICJAAgACgCACEAAn8gASgCACABKAIIcgRAIAJBADYCDCABIAJBDGoCfwJAAkAgAEGAAU8EQCAAQYAQSQ0BIABBgIAETw0CIAIgAEE/cUGAAXI6AA4gAiAAQQx2QeABcjoADCACIABBBnZBP3FBgAFyOgANQQMMAwsgAiAAOgAMQQEMAgsgAiAAQT9xQYABcjoADSACIABBBnZBwAFyOgAMQQIMAQsgAiAAQT9xQYABcjoADyACIABBEnZB8AFyOgAMIAIgAEEGdkE/cUGAAXI6AA4gAiAAQQx2QT9xQYABcjoADUEECxDUAQwBCyABKAIUIAAgAUEYaigCACgCEBEDAAshASACQRBqJAAgAQu8AQAgACgCBARAIAAoAgAQmgILIABBEGooAgAEQCAAKAIMEJoCCyAAQSRqKAIABEAgACgCIBCaAgsgAEEwaigCAARAIABBLGooAgAQmgILIABBxABqKAIABEAgACgCQBCaAgsgAEHQAGooAgAEQCAAQcwAaigCABCaAgsgAEHkAGooAgAEQCAAKAJgEJoCCyAAQfwAaigCAARAIAAoAngQmgILIABBiAFqKAIABEAgACgChAEQmgILIAAQmgILjgIBBH8gACIEKAIIIgIgAUkEQCACIQMgASACayIFIAQoAgQgAmtLBEAgBCACIAUQiQYgBCgCCCEDCyAEKAIAIANBAnRq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BEL////7BzcCrAIgBEEAOgCYAiAEQv////sHNwOQAiAEQQA6APwBIARC////+wc3AvQBIARBADoA4AEgBEL////7BzcD2AEgBEEAOgDEASAEQv////sHNwK8ASAEQQA6AKgBIARC////+wc3A6ABIARCADcDiAEgBEKAgID8AzcDgAEgBEGAgID8AzYCZCAEQf////sHNgJQIARCgICAgPD//79/NwNIIARC////+////7//ADcDQCAEQv////sHNwM4IARCgICAgPD//79/NwMwIARC////+////7//ADcDKCAEQv////sHNwMgIARCgICAgPD//79/NwMYIARC////+////7//ADcDECAGQcADaiAJQQhqKAIANgIAIAZBuANqIAkpAgA3AwAgBkEQaiIDIARBwAIQiA0aIAZBnAFqIApBCGooAgA2AgAgBiAKKQIANwKUASAEIANBwAIQiA0aIAZBkAVqIgVBCGogESgCADYCACAGIAYpAgQ3A5AFIARB2ABqIAUQ0gMgAyAEQcACEIgNGiADQfQAaiAQENIDIAggA0HAAhCIDRoMAgsgCEECOgC9AgwBCyAIQQI6AL0CCyAGQaAFaiQAIAIgAigCAEEBazYCACABIAEoAgBBAWs2AgAgACAAKAIAQQFrNgIAQQAhACAHLQDFAkECRwRAIAdB0AJqIAdBCGpBwAIQiA0aQZH7wwAtAAAaQcgCQQgQggwiAEUNAyAAQQA2AgAgAEEEaiAHQcwCakHEAhCIDRoLIAdBkAVqJAAgAA8LEPgMAAsQ+QwAC0EIQcgCQdCBxAAoAgAiAEGXByAAGxEAAAALvwUCCn8BfiMAQUBqIggkAAJAAkAgAARAIAAoAgAiBEF/Rg0BIAAgBEEBajYCACAIQQhqIQQjAEHwAGsiBSQAAkACQCAAQQRqIgcgAr0iDqcgDkIgiKcQmAoiBgRAIAcgAb0iDqcgDkIgiKcQmAoiB0UNASAFQThqIAdB9ABqIAcoAjAgB0E0aigCACIHKAIIQQFrQXhxakEIaiAHIAZB9ABqIAYoAjAgBkE0aigCACIGKAIIQQFrQXhxakEIaiAGIAMQogEgBAJ/QQAgBSgCOCIHQQJGDQAaIAVBMGoiCSAFQThqIgZBNGooAgA2AgAgBUEoaiIKIAZBLGopAgA3AwAgBUEgaiILIAZBJGopAgA3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AAsgAyAqQdT2wQAQ4wgACyADICJBkPPBABDjCAALAkAgKQRAIBsgGygCdCArazYCdAJAAkACQAJAAkAgGygCCCIVRQRAQQAhA0EAIQYMAQsgGygCAEEEaiEDQQAhCkGwisIALQAAIRZBsYrCAC0AACESA0ACQCADKAIAIgxB/////wdxIgZB/////wdGDQAgBiAoTw0EIAZBBXYiBiAlTw0EIBYgEiAXIAZBAnRqKAIAIAx2QQFxG0H/AXENAEEBIQYgCkEBaiEDDAILIANBCGohAyAVIApBAWoiCkcNAAtBACEGDAELIAMgFUYNACAVIANrIQogGygCACADQQN0aiEDA0ACQAJAIANBBGooAgAiEkH/////B3EiDEH/////B0YNACAMIChPDQggDEEFdiIMICVPDQhBsIrCAEGxisIAIBcgDEECdGooAgAgEnZBAXEbLQAADQAgBkEBaiEGDAELIAMgBkEDdGsgAykCADcCAAsgA0EIaiEDIApBAWsiCg0ACwsgGyAVIAZrNgIIAkACQCAbQShqKAIAIhVFBEBBACEDQQAhBgwBCyAbKAIgQQRqIQNBACEKQbCKwgAtAAAhFkGxisIALQAAIRIDQAJAIAMoAgAiDEH/////B3EiBkH/////B0YNACAGIChPDQQgBkEFdiIGICVPDQQgFiASIBcgBkECdGooAgAgDHZBAXEbQf8BcQ0AQQEhBiAKQQFqIQMMAgsgA0EIaiEDIBUgCkEBaiIKRw0AC0EAIQYMAQsgAyAVRg0AIBUgA2shCiAbKAIgIANBA3RqIQMDQAJAAkAgA0EEaigCACISQf////8HcSIMQf////8HRg0AIAwgKE8NCCAMQQV2IgwgJU8NCEGwisIAQbGKwgAgFyAMQQJ0aigCACASdkEBcRstAAANACAGQQFqIQYMAQsgAyAGQQN0ayADKQIANwIACyADQQhqIQMgCkEBayIKDQALCyAbIBUgBms2AiggG0HIAGooAgAiFUUEQEEAIQNBACEGDAILIBsoAkBBBGohA0EAIQpBsIrCAC0AACEWQbGKwgAtAAAhEgNAAkAgAygCACIMQf////8HcSIGQf////8HRg0AIAYgKE8NAiAGQQV2IgYgJU8NAiAWIBIgFyAGQQJ0aigCACAMdkEBcRtB/wFxDQBBASEGIApBAWohAwwDCyADQQhq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CGoiAEL////7983EgTs3AiAgAEKAgID8883EwTo3AhggAEKAgID8g4CAwD83AhAgAEK/hrvJo7PmjD83AgggAEKEgICAkJGixDw3AgAgAEKAgYCAEDcCMCAAQoSAgIAQNwIoQZH7wwAtAAAaQTxBBBCCDCIARQRAQQRBPEHQgcQAKAIAIgFBlwcgARsRAAAACyAAQQA2AgAgACABKQIINwIEIABBDGogAUEQaikCADcCACAAQRRqIAFBGGopAgA3AgAgAEEcaiABQSBqKQIANwIAIABBJGogAUEoaikCADcCACAAQSxqIAFBMGopAgA3AgAgAEE0aiABQThqKQIANwIAIAFBQGskACAAC6MBAQF/IwBBQGoiASQAAkAgAARAIAAoAgANASABQThqIABBNGooAgA2AgAgAUEwaiAAQSxqKQIANwMAIAFBKGogAEEkaikCADcDACABQSBqIABBHGopAgA3AwAgAUEYaiAAQRRqKQIANwMAIAFBEGogAEEMaikCADcDACABIAApAgQ3AwggABCaAiABQQhqEP8FIAFBQGskAA8LEPgMAAsQ+QwAC80DAQV/IwBBQGoiASQAIAFBDGohAiMAQSBrIgMkACADQQA2AhggA0EIakEIQaAFIANBFGoQ2gYgAygCDCEAAkAgAygCCEUEQEEEIQQMAQsgAEGBgICAeEYEQEEIIQAMAQsgAARAIAAgA0EQaigCAEHQgcQAKAIAIgBBlwcgABsRAAAACxDbCgALIABCADcD+AMgAEKAgICAEDcD0AIgAEKAgICAEDcDqAEgAEEBNgIIIABCgICAgBA3AwAgAkIENwIoIAJCgICAgMAANwIYIAJCBDcCECACIAQ2AgwgAiAANgIIIAJCATcCACAAQYAEakEANgIAIABB2AJqQQM2AgAgAEGwAWpBAjYCACACQTBqQQA2AgAgAkEgakIANwIAIANBIGokAEGR+8MALQAAGkE4QQQQggwiAEUEQEEEQThB0IHEACgCACIAQZcHIAAbEQAAAAsgAEEANgIAIAAgASkCDDcCBCAAQQxqIAFBFGopAgA3AgAgAEEUaiABQRxqKQIANwIAIABBHGogAUEkaikCADcCACAAQSRqIAFBLGopAgA3AgAgAEEsaiABQTRqKQIANwIAIABBNGogAUE8aigCADYCACABQUBrJAAgAAvCAQID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ESAVIAIqAlCSIRUgCSALIAeUQwAAAACSlCIXIAIqAkiSIRogFiACKgJEkiEWIBcgAioCQJIhFyAGIAaUIhQgCyALlCIYIAcgB5QiB5KSIQYgCSAHIAaSlCACKgJMkiELIAkgGCAGkpQgAioCPJIhGCAJIBQgBpKUIAIqAlySCyEJIAJBPGogARCBAgJ9IApDAAAAAFsEQCACKgJcIQYgAioCWCEPIAIqAlQhECACKgJQIQwgAioCTCEHIAIqAkghEiACKgJEIQ0gAioCQCEOIAIqAjwMAQsgCCAOIBCTIgogDSAPkyIGlEMAAAAAkpQiDSACKgJYkiEPIAggDCASkyIHIAaUQwAAAACSlCIOIAIqAlSSIRAgDSACKgJQkiEMIAggByAKlEMAAAAAkpQiFCACKgJIkiESIA4gAioCRJIhDSAUIAIqAkCSIQ4gBiAGlCIGIAcgB5QiFCAKIAqUIgeSkiEKIAggBiAKkpQgAioCXJIhBiAIIAcgCpKUIAIqAkySIQcgCCAUIAqSlCACKgI8kgshCCACIAkgBpI4AjggAiATIA+SOAI0IAIgESAQkjgCMCACIBUgDJI4AiwgAiALIAeSOAIoIAIgGiASkjgCJCACIBYgDZI4AiAgAiAXIA6SOAIcIAIgGCAIkjgCGCADIAJBDGogGSACQRhqEI8CDAILIAMgACkCADcCACADQShqIABBKGooAgA2AgAgA0EgaiAAQSBqKQIANwIAIANBGGogAEEYaikCADcCACADQRBqIABBEGopAgA3AgAgA0EIaiAAQQhqKQIANwIADAELIAMgASkCADcCACADQShqIAFBKGooAgA2AgAgA0EgaiABQSBqKQIANwIAIANBGGogAUEYaikCADcCACADQRBqIAFBEGopAgA3AgAgA0EIaiABQQhqKQIANwIACyACQeAAaiQAIABBKGogA0EoaigCADYCACAAQSBqIANBIGopAgA3AgAgAEEYaiADQRhqKQIANwIAIABBEGogA0EQaikCADcCACAAQQhqIANBCGopAgA3AgAgACAEKQIENwIAIARBMGokAAuLAQEFfSACKgIAIgUgBZQgAioCBCIGIAaUkiACKgIIIgcgB5SSIgggASoCACIEIASUXyIBQQAgAxtFBEAgACAHIAQgCBCbAZUiBJQ4AgggACAGIASUOAIEIAAgBSAE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aiAAQRxqKQIANwMAIAFBGGogAEEUaikCADcDACABQRBqIABBDGopAgA3AwAgASAAKQIENwMIIAAQmgIgAUEIahDzBiABQTBqJAAPCxD4DAALEPkMAAucAwEFfyMAQTBrIgEkACABQQhqIQMjAEEgayICJAAgAkEANgIYIAJBCGpBCEGgCyACQRRqENoGIAIoAgwhAAJAIAIoAghFBEBBBCEEDAELIABBgYCAgHhGBEBBCCEADAELIAAEQCAAIAJBEGooAgBB0IHEACgCACIAQZcHIAAbEQAAAAsQ2woACyAAQgA3A7gIIABCgICAgBA3A9AFIABCgICAgBA3A+gCIABBATYCCCAAQoCAgIAQNwMAIANCgICAgMAANwIYIANCBDcCECADIAQ2AgwgAyAANgIIIANCATcCACAAQcAIakEANgIAIABB2AVqQQM2AgAgAEHwAmpBAjYCACADQSBqQgA3AgAgAkEgaiQAQZH7wwAtAAAaQSxBBBCCDCIARQRAQQRBLEHQgcQAKAIAIgBBlwcgABsRAAAACyAAQQA2AgAgACABKQIINwIEIABBDGogAUEQaikCADcCACAAQRRqIAFBGGopAgA3AgAgAEEcaiABQSBqKQIANwIAIABBJGogAUEoaikCADcCACABQTBqJAAgAAuMAQIBfwF+AkACQCAABEAgACgCAA0BIABBfzYCACAAQQRqIAG9IganIAZCIIinEIsHIgVFDQIgBSgCAARAIAVBJGogBDgCACAFQSBqIAM4AgAgBUEcaiACOAIAIAUgBSgCcEEEcjYCcAsgAEEANgIADwsQ+AwACxD5DAALQYS2wABBzABBiLfAABDhCQAL2Q8BCn8jAEEwayIHJAACQCAABEAgACgCAA0BIAdBKGogAEEkaigCADYCACAHQSBqIABBHGopAgA3AwAgB0EYaiAAQRRqKQIANwMAIAdBEGogAEEMaikCADcDACAHIAApAgQ3AwggABCaAiAHQQhqIgkQ7wEgCUEUaiIGKAIAIQECQAJAAkACQAJAAkACQAJAIAkoAhAiAkEBaw4FAQIHBwcACyABIAEoAoQCIgBBAWs2AoQCIABBAUcNBSABIAEoAkAiACABKALIASIDcjYCQCAAIANxRQRAIAFBgAFqEPABIAFBoAFqEPABCyABLQCIAiEAIAFBAToAiAIgAEUNBSAB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khCbASECIAEqAgwiA0MAAAAAYEUEQCAEQRRqQgA3AgAgBEEBNgIMIARB5JfCADYCCCAEQbSKwgA2AhAgBEEIakHArsMAENwKAAsgAEEANgIIIABCADcCACAAIAIgA5I4AgwgBEEgaiQAC48BAgR/AX4jAEEgayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBFGoiBEEIaiIFQQA2AgAgAkIBNwIUIARBvLnDACABELICGiACQRBqIAUoAgAiATYCACACIAIpAhQiBjcDCCADQQhqIAE2AgAgAyAGNwIACyAAQZi8wwA2AgQgACADNgIAIAJBIGokAAuFAQECfyMAQRBrIgQkAAJAIAFBB2pBACABa3EiA0EIayADSw0AIAIgA2oiAiADSQ0AIAJBgICAgHhBBCABIAFBBE0bIgFrSw0AIAAgATYCACAAIAEgAmpBAWtBACABa3E2AgQgBEEQaiQADwtBnMDDAEErIARBD2pByMDDAEH0wMMAEIAIAAudAQIBfwF+AkACQAJAIABFDQAgACgCAA0BIABBfzYCACACRQ0AIAIoAgAiA0F/Rg0BIAIgA0EBajYCACAAQQRqIAG9IgSnIARCIIinEIoHIgNFDQIgA0GQAWogAkEEaiADQbACaiADQSBqEJcBIAIgAigCAEEBazYCACAAQQA2AgAPCxD4DAALEPkMAAtB7LTAAEHNAEH0tcAAEOEJAAuSAQIBfwF+AkACQCABBEAgASgCACIDQX9GDQEgASADQQFqNgIAIAFBBGogAr0iBKcgBEIgiKcQmAoiA0UNAiADKwIEIQIgAygCACEDIAEgASgCAEEBazYCACAAIAJEAAAAAAAAAAAgAxs5AwggACADQQBHNgIADwsQ+AwACxD5DAALQYS2wABBzABB+LbAABDhCQALmwEBAn8jAEEQayIBJAACQAJAIAAEQCAAKAIAQX9GDQEgAUEIaiICIABBDGooAgA2AgBBkfvDAC0AABogASAAKQIENwMAQRBBBBCCDCIARQ0CIABBADYCACAAIAEpAwA3AgQgAEEMaiACKAIANgIAIAFBEGokACAADwsQ+AwACxD5DAALQQRBEEHQgcQAKAIAIgBBlwcgABsRAAAAC3YBA38CQCAALQAAIgFBAWtBB0kNACABBEAgAEEIaigCAEUNASAAKAIEEJoCDAELIAAt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C3cBBX0gAioCACIGIAaUIAIqAggiAyADlJIQmwEiB0MAAAAAXARAIAMgB5UgASoCBCIElCEFIAYgB5UgBJQhBAsgACAFIAMgASoCCCIDlJI4AgggACABKgIAIAIqAgQiBZggBSADlJI4AgQgACAEIAYgA5SSOAIAC4MBAQF/IwBBQGoiAyQAIAMgAjYCFCADIAE2AhAgAyAANgIMIANBGGoiAEEMakICNwIAIANBMGoiAUEMakEBNgIAIANBAjYCHCADQaCXwAA2AhggA0ECNgI0IAMgATYCICADIANBEGo2AjggAyADQQxqNgIwIAAQmQUhACADQUBrJAAgAAvqAwEKfyMAQSBrIgMkACADIAE2AhwgAyABNgIYIAMgADYCFCADQQhqIQdBACEBIwBBEGsiAiQAIANBFGoiCCgCACEJAkACQAJAAkACQCAIKAIIIgBFBEAgAkEEQQAQ1wUgAigCBCEBIAIoAgAhAAwBC0EEIQYCQCAAIABBA24iBUEDbEcgBWoiBUUNACAFQarVqtUASw0CIAVBDGwiBEEASA0CIARFDQBBkfvDAC0AABogBEEEEIIMIgZFDQMLQQAhBANAIABBAk0NBCABIAZqIgogASAJaiILKgIAOAIAIApBBGogC0EEaikCADcCACABQQxqIQEgBEEBaiEEIABBA2siAA0ACyACQQhqIAYgBBDXBSACKAIMIQEgAigCCCEAIAVFDQAgBhCaAgsgCCgCBARAIAkQmgILIAcgADYCACAHIAE2AgQgAkEQaiQADAMLENsKAAtBBCAEQdCBxAAoAgAiAEGXByAAGxEAAAALQeybwABBywBBqJ3AABChCwALAkACQCADKAIIIgBFBEBBACEBDAELIAMoAgwhAkGR+8MALQAAGkEMQQQQggwiAUUNASABIAI2AgggASAANgIEIAFBADYCAAsgA0EgaiQAIAEPC0EEQQxB0IHEACgCACIAQZcHIAAbEQAAAAubAQIEfwF+IwBBEGsiAiQAEJkIIQMgAhCZCCIBNgIMQZH7wwAtAAAaIAEpAwghBEEgQQgQggwiAARAIABCADcCFCAAIAM2AhAgACAENwMIIABCgYCAgBA3AwAgASABKAIAIgFBAWs2AgAgAUEBRgRAIAJBDGoQtwkLIAJBEGokACAADwtBCEEgQdCBxAAoAgAiAEGXByAAGxEA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IgQgBUEsaigCAEYEQCAFQShqIAkQpAYgBSgCMCEECyAFIARBAWo2AjAgBSgCKCAEQQR0aiIEQn83AgggBCAQNgIEIAQgDTYCACANIAUoAiQiB08EQCAHIQggDSAHayITQQFqIg4gBUEgaigCACAHa0sEQCAFQRxqIAcgDhCMBiAFKAIkIQgLIAUoAhwgCEEDdGohBCAOQQJPBEAgE0EHcSEKIAdBf3MgDWpBB08EQCATQXhxIQcDQCAEQv////8PNwIAIARBOGpC/////w83AgAgBEEwakL/////DzcCACAEQShqQv////8PNwIAIARBIGpC/////w83AgAgBEEYakL/////DzcCACAEQRBqQv////8PNwIAIARBCGpC/////w83AgAgBEFAayEEIAdBCGsiBw0ACwsgCgRAA0AgBEL/////DzcCACAEQQhqIQQgCkEBayIKDQALCyAIIA5qQQFrIQgLIARC/////w83AgAgBSAIQQFqIgc2AiQLIAcgDU0NBCAFKAIcIA1BA3RqIgQgCTYCBCAEIBA2AgALIAZBf0YEQCAFQTBqKAIAIgZBf0YNBSAGIgQgBUEsaigCAEYEQCAFQShqIAYQpAYgBSgCMCEECyAFIARBAWo2AjAgBSgCKCAEQQR0aiIEQn83AgggBCARNgIEIAQgCzYCAAJAIAUoAiQiByALSwRAIAchBAwBCyAHIAtBAWoiBEkEQCAHIQggBCAHayIOIAVBIGooAgAgB2tLBEAgBUEcaiAHIA4QjAYgBSgCJCEICyAFKAIcIAhBA3RqIQQgDkECTwRAIAsgB2siE0EHcSEKIAdBf3MgC2pBB08EQCATQXhxIQcDQCAEQv////8PNwIAIARBOGpC/////w83AgAgBEEwakL/////DzcCACAEQShqQv////8PNwIAIARBIGpC/////w83AgAgBEEYakL/////DzcCACAEQRBqQv////8PNwIAIARBCGpC/////w83AgAgBEFAayEEIAdBCGsiBw0ACwsgCgRAA0AgBEL/////DzcCACAEQQhqIQQgCkEBayIKDQALCyAIIA5qQQFrIQgLIARC/////w83AgAgCEEBaiEECyAFIAQ2AiQLIAQgC00NBiAFKAIcIAtBA3RqIgQgBjYCBCAEIBE2AgALIAVBPGooAgAiBEF/Rg0GIAVBMGooAgAg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AEHYAmogHCkDADcDACAAQdACaiAdKQMANwMAIAAgASkDUDcDyAIgAEH4AmogHikDADcDACAAQfACaiAfKQMANwMAIAAgASkDODcD6AIgAEGQA2ogICkDADcDACAAQYgDaiAhKQMANwMAIAAgASkDIDcDgAMgAEGoA2ogIikDADcDACAAQaADaiAjKQMANwMAIAAgASkDCDcDmAMgAEGQBGpCADcDACAAQYgEakKAgICAwAA3AwAgAEIENwOABCAAQfgDakIANwMAIABB8ANqQoCAgIDAADcDACAAQgQ3A+gDIABB4ANqQgA3AwAgAEHYA2pCgICAgMAANwMAIABCBDcD0AMgAEEBOgDIAyAAQQA2AsADIABCADcDuAMgAUGQA2okACACQagEaiAAQZgEEIgNGkGR+8MALQAAGkGgBEEIEIIMIgBFBEBBCEGgBEHQgcQAKAIAIgBBlwcgABsRAAAACyAAQQA2AgAgAEEEaiACQaQEakGcBBCIDRogAkHACGokACAAC2kBAn8jAEEgayICJAAgAiABNgIEQQEhAwJAIAAoAgAgAUYNAEECIQMgACgCBCABRg0AQQAhAyAAKAIIIAFGDQAgAkEANgIIIABBCGogAkEEaiACQQhqQcyzwgAQ4woACyACQSBqJAAgAwt7AQF/IwBBwAFrIgMkACADQagBakIANwMAIANBuAFqQQA2AgAgA0KCgICAMDcDCCADQoCAgIAQNwMAIANCADcDoAEgA0IANwOwASADQRBqQQBBkAEQiQ0aIANBADYCvAEgACABIAMgAkEAECAgAEEDNgIQIANBwAFqJAALewEBfyMAQcABayIDJAAgA0GoAWpCADcDACADQbgBakEANgIAIANCgoCAgDA3AwggA0KAgICAEDcDACADQgA3A6ABIANCADcDsAEgA0EQakEAQZABEIkNGiADQQA2ArwBIAAgASADIAJBABAhIABBAzYCECADQcABaiQAC3sBAX8jAEHAAWsiAyQAIANBqAFqQgA3AwAgA0G4AWpBADYCACADQoKAgIAwNwMIIANCgICAgBA3AwAgA0IANwOgASADQgA3A7ABIANBEGpBAEGQARCJDRogA0EANgK8ASAAIAEgAyACQQAQHyAAQQM2AhAgA0HAAWokAAt7AQF/IwBBwAFrIgMkACADQagBakIANwMAIANBuAFqQQA2AgAgA0KCgICAMDcDCCADQoCAgIAQNwMAIANCADcDoAEgA0IANwOwASADQRBqQQBBkAEQiQ0aIANBADYCvAEgACABIAMgAkEAEB4gAEEDNgIQIANBwAFqJAALewEBfyMAQcABayIDJAAgA0GoAWpCADcDACADQbgBakEANgIAIANCgoCAgDA3AwggA0KAgICAEDcDACADQgA3A6ABIANCADcDsAEgA0EQakEAQZABEIkNGiADQQA2ArwBIAAgASADIAJBABAiIABBAzYCECADQcABaiQAC3wBAX8jAEHAAWsiBCQAIARBqAFqQgA3AwAgBEG4AWpBADYCACAEQoKAgIAwNwMIIARCgICAgBA3AwAgBEIANwOgASAEQgA3A7ABIARBEGpBAEGQARCJDRogBEEANgK8ASAAIAEoAgAgASgCCCAEIAIgAxAdIARBwAFqJAALcAEBfyMAQSBrIgIkAAJ/QQEgACABEN0EDQAaIAJBFGpCADcCACACQQE2AgwgAkG82sMANgIIIAJB+MHDADYCEEEBIAEoAhQgAUEYaigCACACQQhqELICDQAaIABBBGogARDdBAshACACQSBqJAAgAAtfAQN/AkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCAAJAIABBDGooAgAgAU0NACAAQQRqKAIAIgRFDQAgBCABQdQBbGotADQhAwsgACACNgIAIAMPCxD4DAALEPkMAAtrAgF/AX4CQAJAIAAEQCAAKAIADQEgAEF/NgIAIABBBGogAb0iBKcgBEIgiKcQigciA0UNAiADQRhqQgA3AwAgAyACrTcDECAAQQA2AgAPCxD4DAALEPkMAAtB7LTAAEHNAEH0tcAAEOEJAAtlAgF/BH0jAEEQayIDJAAgAioCACIFIAWUIAIqAgQiBiAGlJIgAioCCCIHIAeUkhCbASEEIAMgByAElTgCDCADIAYgBJU4AgggAyAFIASVOAIEIAAgASADQQRqENMDIANBEGokAAtpACAAQgA3AgAgAEIANwIwIABCADcCQCAAQShqQgA3AgAgAEEgakIANwIAIABBGGpCADcCACAAQRBqQgA3AgAgAEEIakIANwIAIABBOGpCADcCACAAQcgAakIANwIAIABB0ABqQgA3AgALXwECfyMAQSBrIgIkACACQQxqIgMgAUGYv8AAEIQLIAIg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akEoaioCACECCyAAIAM2AgAgAg8LEPgMAAsQ+QwAC14CAX0CfwJAIAAEQCAAKAIAIgNBf0YNASAAIANBAWo2AgAgASAAKAIEIgRB4ABqKAIASQRAIARB2ABqKAIAIAFBKGxqKgIMIQILIAAgAzYCACACDwsQ+AwACxD5DAALagAgACABKQIANwIMIAAgAikCADcCGCAAIAEqAgQgAioCBJM4AgQgACABKgIAIAIqAgCTOAIAIABBFGogAUEIaiIBKAIANgIAIABBIGogAkEIaiICKAIANgIAIAAgASoCACACKgIAkzgCCAt0AQF/IwBBwAFrIgQkACAEQagBakIANwMAIARBuAFqQQA2AgAgBEKCgICAMDcDCCAEQoCAgIAQNwMAIARCADcDoAEgBEIANwOwASAEQRBqQQBBkAEQiQ0aIARBADYCvAEgACABIAQgAiADEB8gBEHAAWokAAt0AQF/IwBBwAFrIgQkACAEQagBakIANwMAIARBuAFqQQA2AgAgBEKCgICAMDcDCCAEQoCAgIAQNwMAIARCADcDoAEgBEIANwOwASAEQRBqQQBBkAEQiQ0aIARBADYCvAEgACABIAQgAiADECAgBEHAAWokAAt0AQF/IwBBwAFrIgQkACAEQagBakIANwMAIARBuAFqQQA2AgAgBEKCgICAMDcDCCAEQoCAgIAQNwMAIARCADcDoAEgBEIANwOwASAEQRBqQQBBkAEQiQ0aIARBADYCvAEgACABIAQgAiADECIgBEHAAWokAAt0AQF/IwBBwAFrIgQkACAEQagBakIANwMAIARBuAFqQQA2AgAgBEKCgICAMDcDCCAEQoCAgIAQNwMAIARCADcDoAEgBEIANwOwASAEQRBqQQBBkAEQiQ0aIARBADYCvAEgACABIAQgAiADECEgBEHAAWokAAt0AQF/IwBBwAFrIgQkACAEQagBakIANwMAIARBuAFqQQA2AgAgBEKCgICAMDcDCCAEQoCAgIAQNwMAIARCADcDoAEgBEIANwOwASAEQRBqQQBBkAEQiQ0aIARBADYCvAEgACABIAQgAiADEB4gBEHAAWokAAtdAQJ/IwBBIGsiAyQAIANBBGoiBCABIAIQ8gIgAEEIaiAEQQhqKQIANwIAIAAgAykCBDcCACAAQRRqQQAgBEEUaigCACADKAIUIgEbNgIAIAAgATYCECADQSBqJAALcQIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCuuWiqui76NhvhSADQsPfpvKw/4igIIWEUBsLcgIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCrPzNjNiE8KxRhSADQp2076Wh6IWStn+FhFAbC3ICAX8CfiMAQSBrIgIkACACQRhqIAAgASgCYBEAACACQQhqIAIoAhgiACACKAIcQQxqKAIAEQAAIAJBEGopAwAhAyACKQMIIQQgAkEgaiQAIABBACAEQu/Cy+3Lto2+WoUgA0KE0dKKu+SMzssAhYRQGwtyAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmARAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBEK1vYK6y7q96vsAhSADQsHN5/jm8IShGIWEUBsLcgIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJkEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCtb2Cusu6ver7AIUgA0LBzef45vCEoRiFhFAbC3ECAX8CfiMAQSBrIgIkACACQRhqIAAgASgCYBEAACACQQhqIAIoAhgiACACKAIcQQxqKAIAEQAAIAJBEGopAwAhAyACKQMIIQQgAkEgaiQAIABBACAEQqWSyKytwtOTBIUgA0K///2xwrzFw2yFhFAbC3ICAX8CfiMAQSBrIgIkACACQRhqIAAgASgCYBEAACACQQhqIAIoAhgiACACKAIcQQxqKAIAEQAAIAJBEGopAwAhAyACKQMIIQQgAkEgaiQAIABBACAEQsnr8I2An+6jfYUgA0LLv7z095PnuKt/hYRQGwtyAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmARAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBEL5yKaVsqD59wqFIANCwqao39+zztXGAIWEUBsLcQIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARChdqn8drxkeIYhSADQsaZlq7jzbvzOYWEUBsLcQIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJkEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARChdqn8drxkeIYhSADQsaZlq7jzbvzOYWEUBsLcwIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCj6CK4/aL2Jv4AIUgA0KLlZLKhbvNvP8AhYRQGwtyAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmARAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBELKid2Dm7bq+fAAhSADQpaDlJCrl76wUoWEUBsLcwIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCibzv2PuJ5Jiuf4UgA0LogtON4oXyl9kAhYRQGwtzAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmQRAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBEKJvO/Y+4nkmK5/hSADQuiC043ihfKX2QCFhFAbC3ICAX8CfiMAQSBrIgIkACACQRhqIAAgASgCYBEAACACQQhqIAIoAhgiACACKAIcQQxqKAIAEQAAIAJBEGopAwAhAyACKQMIIQQgAkEgaiQAIABBACAEQtS/j7WF8OCjzwCFIANC5uiP2+/1t7AchYRQGwtyAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmQRAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBELUv4+1hfDgo88AhSADQuboj9vv9bewHIWEUBsLcwIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCsK/2q77pqK+df4UgA0LGj8PK/pXCqIx/hYRQGwtzAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmQRAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBEKwr/arvumor51/hSADQsaPw8r+lcKojH+FhFAbC3ICAX8CfiMAQSBrIgIkACACQRhqIAAgASgCYBEAACACQQhqIAIoAhgiACACKAIcQQxqKAIAEQAAIAJBEGopAwAhAyACKQMIIQQgAkEgaiQAIABBACAEQovuxoLg/8GDhH+FIANCvePxpq/G7Ps9hYRQGwt9AQF/QZH7wwAtAAAaQRxBBBCCDCICRQRAQQRBHEHQgcQAKAIAIgBBlwcgABsRAAAACyACIAEpAgA3AgAgAkEYaiABQRhqKAIANgIAIAJBEGogAUEQaikCADcCACACQQhqIAFBCGopAgA3AgAgAEG01sIANgIEIAAgAjYCAAtoACMAQTBrIgAkAEGQ+8MALQAABEAgAEEYakIBNwIAIABBAjYCECAAQbS7wwA2AgwgAEECNgIoIAAgATYCLCAAIABBJGo2AhQgACAAQSxqNgIkIABBDGpB3LvDABDcCgALIABBMGokAAvDAwELfyMAQRBrIgUkAAJAIAAEQCAAKAIAIgNBf0YNASAAIANBAWo2AgAgBSABNgIMIAVBDGohCSMAQSBrIgIkACACQYEBNgIIIAJBDGogAEEEahCWCwJAIAIoAgwiASACKAIQIgdGDQAgAigCFCEGIAIoAhghCANAIAFBFGohAwJAAkAgASgCACIKQX9HBEAgAUEQaigCACILDQELIAMgB0YNAwwBCwJAIAFBBGooAgAiBCAIQRBqKAIATw0AIAhBCGooAgAiDEUNACAMIARBlAJsaiIELQCQAkECRg0AIAQoAgAgAUEIaigCAEcNAAJAIAsgBEEMaigCAEkEQCAEQQRqKAIADQELQdiHwABBK0GEpcAAEKoKAAsgAiAGrSAKrUIghoS/EAA2AhwgAiAJIAJBCGogAkEcahC3CiACKAIEIgFBhAFPBEAgARACCyACKAIcIgFBhAFPBEAgARACCyADIAdHDQEMAwtBgIDAAEETQfSkwAAQ4QkACyAGQQFqIQYgAyEBDAALAAsgAigCCCIBQYQBTwRAIAEQAgsgAkEgaiQAIAAgACgCAEEBazYCACAFQRBqJAAPCxD4DAALEPkMAAudAgEGfyMAQRBrIgMkAAJAIAAEQCAAKAIAIgJBf0YNASAAIAJBAWo2AgAgAyABNgIMIANBDGohBiMAQSBrIgEkACABQYEBNgIIIAFBDGogAEEEahCACyABKAIUIQQgASgCECEHIAEoAgwhAgNAAkACQAJAIAIgB0cEQCACKAIADQEMAgsgASgCCCICQYQBTwRAIAIQAgsgAUEgaiQADAILIAEgBK0gAkEEajUCAEIghoS/EAA2AhwgASAGIAFBCGogAUEcahC3CiABKAIEIgVBhAFPBEAgBRACCyABKAIcIgVBhAFJDQAgBRACCyACQegCaiECIARBAWohBAwBCwsgACAAKAIAQQFrNgIAIANBEGokAA8LEPgMAAsQ+QwAC50CAQZ/IwBBEGsiAyQAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACADIAE2AgwgA0EMaiEGIwBBIGsiASQAIAFBgQE2AgggAUEMaiAAQQRqEIELIAEoAhQhBCABKAIQIQcgASgCDCECA0ACQAJAAkAgAiAHRwRAIAIoAgANAQwCCyABKAIIIgJBhAFPBEAgAhACCyABQSBqJAAMAgsgASAErSACQQRqNQIAQiCGhL8QADYCHCABIAYgAUEIaiABQRxqELcKIAEoAgQiBUGEAU8EQCAFEAILIAEoAhwiBUGEAUkNACAFEAILIAJBqAFqIQIgBEEBaiEEDAELCyAAIAAoAgBBAWs2AgAgA0EQaiQADwsQ+AwACxD5DAAL1AEBBH8jAEEQayIFJAAgBUEIaiEGQZH7wwAtAAAaQRhBBBCCDCIERQRAQQRBGEHQgcQAKAIAIgRBlwcgBBsRAAAACyAEIAM4AhQgBCACOAIQIAQgATgCDCAEIAA4AgggBEKBgICAEDcCACAGQfiCwwA2AgQgBiAENgIAQZH7wwAtAAAaIAUoAgwhBiAFKAIIIQdBDEEEEIIMIgRFBEBBBEEMQdCBxAAoAgAiBEGXByAEGxEAAAALIAQgBjYCCCAEIAc2AgQgBEEANgIAIAVBEGokACAEC84BACAAQv////v///+/fzcDMCAAQv////v3//+//wA3AyggAEL////79///v/8ANwMgIABC////+/f//7//ADcDGCAAQv////v3//+//wA3AxAgAEL////79///v/8ANwMIIABC////+/f//7//ADcDACAAQdgAakL////7////v383AwAgAEHQAGpC////+////79/NwMAIABByABqQv////v///+/fzcDACAAQUBrQv////v///+/fzcDACAAQThqQv////v///+/fzcDAAtgAQN9IAAgAioCECIEIAEqAgAiA5I4AgwgACAEIAOTOAIAIABBFGogAyACQRhqKgIAIgSSOAIAIABBEGogAyACQRRqKgIAIgWSOAIAIAAgBCADkzgCCCAAIAUgA5M4AgQLWQECfwJAIAAoAgAiAEEQaigCACIBRQ0AIABBFGooAgAhAiABQQA6AAAgAkUNACABEJoCCwJAIABBf0YNACAAIAAoAgQiAUEBazYCBCABQQFHDQAgABCaAgsLlAEBAX9BkfvDAC0AABpB+ABBBBCCDCIARQRAQQRB+ABB0IHEACgCACIAQZcHIAAbEQAAAAsgAEKAgICAgICAwD83AhQgAEIANwIMIABBfzYCCCAAQoCAgIBwNwIAIABBHGpBAEHEABCJDRogAEECOgB0IABBADYCcCAAQoCAgICAgIDAPzcCaCAAQoCAgPwDNwJgIAALhQECAX8BfkGR+8MALQAAGkE8QQQQggwiAUUEQEEEQTxB0IHEACgCACIBQZcHIAEbEQAAAAsgAUIBNwI0IAFBADYCKCABQgA3AiAgAUKAgICAwAA3AhggAUIENwIQIAFCADcCCCABQoCAgIDAADcCACABIAC9IgI+AiwgASACQiCIPgIwIAELZAIBfgF/AkACQCAABEAgACgCAA0BIABBfzYCACAAQQRqIAG9IgOnIANCIIinEIoHIgRFDQIgBEGMAWogAjgCACAAQQA2AgAPCxD4DAALEPkMAAtB7LTAAEHNAEH0tcAAEOEJAAvfAQICfwF+AkACQCAABEAgACgCAA0BIABBfzYCACAAQQRqIAG9IgWnIAVCIIinEIoHIgNFDQIgAkEARyECIANBmAJqIQQCQAJAIANBkAJqKgIAQwAAAABcDQAgA0GUAmoqAgBDAAAAAFwNACAEKgIAQwAAAABbDQELIANCADcDkAIgBEEANgIAIAJFDQAgA0HMAmotAAAEQCADIAMoAqgCQQRyNgKoAgsgA0EAOgDMAiADQcgCakEANgIACyAAQQA2AgAPCxD4DAALEPkMAAtB7LTAAEHNAEH0tcAAEOEJAAvfAQICfwF+AkACQCAABEAgACgCAA0BIABBfzYCACAAQQRqIAG9IgWnIAVCIIinEIoHIgNFDQIgAkEARyECIANBpAJqIQQCQAJAIANBnAJqKgIAQwAAAABcDQAgA0GgAmoqAgBDAAAAAFwNACAEKgIAQwAAAABbDQELIANCADcCnAIgBEEANgIAIAJFDQAgA0HMAmotAAAEQCADIAMoAqgCQQRyNgKoAgsgA0EAOgDMAiADQcgCakEANgIACyAAQQA2AgAPCxD4DAALEPkMAAtB7LTAAEHNAEH0tcAAEOEJAAtkAgF+AX8CQAJAIAAEQCAAKAIADQEgAEF/NgIAIABBBGogAb0iA6cgA0IgiKcQiwciBEUNAiAEQegAaiACOAIAIABBADYCAA8LEPgMAAsQ+QwAC0GEtsAAQcwAQYi3wAAQ4QkAC1oCAX0CfwJAIAAEQCAAKAIAIgNBf0YNASAAIANBAWo2AgAgASAAKAIEIgRBhAFqKAIASQRAIAQoAnwgAUEwbGoqAhghAgsgACADNgIAIAIPCxD4DAALEPkMAAtYAQN/AkAgAARAIAAoAgAiA0F/Rg0BIAAgA0EBajYCACABIAAoAgQiBEGEAWooAgBJBEAgBCgCfCABQTBsaigCHCECCyAAIAM2AgAgAg8LEPgMAAsQ+QwAC1gBA38CQCAABEAgACgCACIDQX9GDQEgACADQQFqNgIAIAEgACgCBCIEQYQBaigCAEkEQCAEKAJ8IAFBMGxqKAIgIQILIAAgAzYCACACDwsQ+AwACxD5DAALWgIBfQJ/AkAgAARAIAAoAgAiA0F/Rg0BIAAgA0EBajYCACABIAAoAgQiBEGEAWooAgBJBEAgBCgCfCABQTBsaioCJCECCyAAIAM2AgAgAg8LEPgMAAsQ+QwAC80BAQR/IwBBEGsiBCQAIARBCGohBUGR+8MALQAAGkEUQQQQggwiA0UEQEEEQRRB0IHEACgCACIDQZcHIAMbEQAAAAsgAyACOAIQIAMgATgCDCADIAA4AgggA0KBgICAEDcCACAFQazTwgA2AgQgBSADNgIAQZH7wwAtAAAaIAQoAgwhBSAEKAIIIQZBDEEEEIIMIgNFBEBBBEEMQdCBxAAoAgAiA0GXByADGxEAAAALIAMgBTYCCCADIAY2AgQgA0EANgIAIARBEGokACADC/IBAQR/IwBBEGsiBCQAIARBCGohBQJAAkAgAbwgALxyQQBOBEBBkfvDAC0AABpBFEEEEIIMIgNFDQEgAyACOAIQIAMgATgCDCADIAA4AgggA0KBgICAEDcCACAFQfyHwwA2AgQgBSADNgIADAILQeD3wgBBzQBBmPnCABCqCgALQQRBFEHQgcQAKAIAIgNBlwcgAxsRAAAAC0GR+8MALQAAGiAEKAIMIQUgBCgCCCEGQQxBBBCCDCIDRQRAQQRBDEHQgcQAKAIAIgNBlwcgAxsRAAAACyADIAU2AgggAyAGNgIEIANBADYCACAEQRBqJAAgAwvNAQEEfyMAQRBrIgQkACAEQQhqIQVBkfvDAC0AABpBFEEEEIIMIgNFBEBBBEEUQdCBxAAoAgAiA0GXByADGxEAAAALIAMgAjgCECADIAE4AgwgAyAAOAIIIANCgYCAgBA3AgAgBUGMjcMANgIEIAUgAzYCAEGR+8MALQAAGiAEKAIMIQUgBCgCCCEGQQxBBBCCDCIDRQRAQQRBDEHQgcQAKAIAIgNBlwcgAxsRAAAACyADIAU2AgggAyAGNgIEIANBADYCACAEQRBqJAAgAwtZAQF9IwBBMGsiBCQAIARBDGogASABQQxqIAFBGGogAhCJAgJ/IAQoAgxBBEcEQEEBIAQqAhQiBSADXw0BGgtBAAshASAAIAU4AgQgACABNgIAIARBMGokAAu/BQIKfwF+IwBB8AJrIgckAAJAIAAEQCAAKAIADQEgAEF/NgIAIAG9Ig2nIQQgDUIgiKchBSACQQBHIQYjAEHwAmsiCCQAAkACQAJAAkAgAEEEaiICQRBqKAIAIARNDQAgAigCCCAEQQxsaiIDKAIARQ0AIAMoAgQgBUcNACADQQA2AgAgAygCCCEFIAMgAikCADcCBCACIAQ2AgQgAkEBNgIAIAIgAigCFEEBajYCFCACIAIoAhhBAWs2AhggAkE8aigCACAFTQ0BIAJBNGooAgAiA0UNASACQShqIQogBkUNAiADIAVBgANsaiIEQQxqKAIAIQYgAigCKCEDAkAgAkEwaigCACIJIAQoAggiBE0NACADRQ0AIAMgBEEEdGoiBCgCBCELIAQoAgAhDCACQcgAaigCACIEIAJBxABqKAIARgRAIAJBQGsgBBCrBiACKAIwIQkgAigCSCEEIAIoAighAwsgAiAEQQFqNgJIIAIoAkAgBEEDdGoiBCALNgIEIAQgDDYCAAsgBiAJTw0CIANFDQIgAyAGQQR0aiIDKAIEIQQgAygCACEGIAJByABqKAIAIgMgAkHEAGooAgBGBEAgAkFAayADEKsGIAIoAkghAwsgAiADQQFqNgJIIAIoAkAgA0EDdGoiAyAENgIEIAMgBjYCAAwCCyAHQQI6AO0CDAILIAdBAjoA7QIMAQsgCCAKIAUQ8AICQCACKAI8IAVNDQAgAigCNCIDRQ0AAkACQCADIAVBgANsaiIDQThqKAIAIgQgAigCEE8NACACKAIIIgJFDQAgAiAEQQxsaiICKAIARQ0AIAIoAgQgA0E8aigCAEYNAQtB7JvBAEETQaiswQAQ4QkACyACIAU2AggLIAcgCEHwAhCIDRoLIAhB8AJqJAAgAEEANgIAIAdB8AJqJAAPCxD4DAALEPkMAAuLAQEBf0GR+8MALQAAGkHQAEEEEIIMIgBFBEBBBEHQAEHQgcQAKAIAIgBBlwcgABsRAAAACyAAQgA3AkggAEIENwJAIABCADcCOCAAQoCAgIDAADcCMCAAQgQ3AiggAEIANwIgIABCgICAgMAANwIYIABCBDcCECAAQgA3AgggAEKAgICAwAA3AgAgAAvrAQEEfyMAQRBrIgMkACADQQhqIQQCQAJAIAG8IAC8ckEATgRAQZH7wwAtAAAaQRBBBBCCDCICRQ0BIAIgATgCDCACIAA4AgggAkKBgICAEDcCACAEQfDnwgA2AgQgBCACNgIADAILQeD3wgBBzQBBmPnCABCqCgALQQRBEEHQgcQAKAIAIgNBlwcgAxsRAAAAC0GR+8MALQAAGiADKAIMIQQgAygCCCEFQQxBBBCCDCICRQRAQQRBDEHQgcQAKAIAIgNBlwcgAxsRAAAACyACIAQ2AgggAiAFNgIEIAJBADYCACADQRBqJAAgAgvGAQEEfyMAQRBrIgMkACADQQhqIQRBkfvDAC0AABpBEEEEEIIMIgJFBEBBBEEQQdCBxAAoAgAiA0GXByADGxEAAAALIAIgATgCDCACIAA4AgggAkKBgICAEDcCACAEQfjqwgA2AgQgBCACNgIAQZH7wwAtAAAaIAMoAgwhBCADKAIIIQVBDEEEEIIMIgJFBEBBBEEMQdCBxAAoAgAiA0GXByADGxEAAAALIAIgBDYCCCACIAU2AgQgAkEANgIAIANBEGokACACC1oAIAAgAS0AA0EARyACLQADQQBHcToAAyAAIAEtAAJBAEcgAi0AAkEAR3E6AAIgACABLQABQQBHIAItAAFBAEdxOgABIAAgAS0AAEEARyACLQAAQQBHcToAAAtWAAJAIAAEQCAAKAIADQEgAEEANgIAIABBHGogA0EARzoAACAAQRhqIAI4AgAgAEEUakEBNgIAIABBEGogATgCACAAQQxqQQE2AgAPCxD4DAALEPkMAAtVAgF/AX4CQCAABEAgACgCACICQX9GDQEgACACQQFqNgIAIABBBGogAb0iA6cgA0IgiKcQ1AghAiAAIAAoAgBBAWs2AgAgAkEARw8LEPgMAAsQ+QwAC2ECAX4BfwJAAkAgAARAIAAoAgANASAAQX82AgAgAEEEaiABvSIDpyADQiCIpxCKByIERQ0CIAQgAjgCiAEgAEEANgIADwsQ+AwACxD5DAALQey0wABBzQBB9LXAABDhCQALYQIBfgF/AkACQCAABEAgACgCAA0BIABBfzYCACAAQQRqIAG9IgOnIANCIIinEIoHIgRFDQIgBCACNgKsAiAAQQA2AgAPCxD4DAALEPkMAAtB7LTAAEHNAEH0tcAAEOEJAAtVAgF/AX4CQCAABEAgACgCACICQX9GDQEgACACQQFqNgIAIABBBGogAb0iA6cgA0IgiKcQlwohAiAAIAAoAgBBAWs2AgAgAkEARw8LEPgMAAsQ+QwAC2ACAX4BfwJAAkAgAARAIAAoAgANASAAQX82AgAgAEEEaiABvSIDpyADQiCIpxCLByIERQ0CIAQgAjgCZCAAQQA2AgAPCxD4DAALEPkMAAtBhLbAAEHMAEGIt8AAEOEJAAthAgF+AX8CQAJAIAAEQCAAKAIADQEgAEF/NgIAIABBBGogAb0iA6cgA0IgiKcQiwciBEUNAiAEIAI4ApQBIABBADYCAA8LEPgMAAsQ+QwAC0GEtsAAQcwAQYi3wAAQ4QkAC4EBAgJ/AX4CQAJAIAAEQCAAKAIADQEgAEF/NgIAIABBBGogAb0iBacgBUIgiKcQiwciBEUNAiMAQRBrIgMkACADQQA2AgggAyACOAIMIAQgA0EIahDDBCADQRBqJAAgAEEANgIADwsQ+AwACxD5DAALQYS2wABBzABBiLfAABDhCQALgQECAn8BfgJAAkAgAARAIAAoAgANASAAQX82AgAgAEEEaiABvSIFpyAFQiCIpxCLByIERQ0CIwBBEGsiAyQAIANBATYCCCADIAI4AgwgBCADQQhqEMMEIANBEGokACAAQQA2AgAPCxD4DAALEPkMAAtBhLbAAEHMAEGIt8AAEOEJAAtVAgF/AX4CQCAABEAgACgCACICQX9GDQEgACACQQFqNgIAIABBBGogAb0iA6cgA0IgiKcQmAohAiAAIAAoAgBBAWs2AgAgAkEARw8LEPgMAAsQ+QwAC68BAQR/IwBBEGsiASQAIAFBCGohA0GR+8MALQAAGgJAQQxBBBCCDCICRQRADAELIAIgADgCCCACQoGAgIAQNwIAIANBiMDCADYCBCADIAI2AgBBkfvDAC0AABogASgCDCEDIAEoAgghBEEMQQQQggwiAkUEQAwBCyACIAM2AgggAiAENgIEIAJBADYCACABQRBqJAAgAg8LQQRBDEHQgcQAKAIAIgFBlwcgARsRAAAAC8oCAQJ/IwBBEGsiAyQAAkACQAJAAkAgACgCAEEBaw4CAQIACyADIABBBGo2AgwjAEEQayICJAAgAiABKAIUQdyvwwBBDSABQRhqKAIAKAIMEQUAOgAMIAIgATYCCCACQQA6AA0gAkEANgIEIAJBBGogA0EMakHsr8MAEIkFIQECfyACLQAMIgBBAEcgASgCACIBRQ0AGkEBIAANABogAigCCCEAAkAgAUEBRw0AIAItAA1FDQAgAC0AHEEEcQ0AQQEgACgCFEG83cMAQQEgAEEYaigCACgCDBEFAA0BGgsgACgCFEGc2sMAQQEgAEEYaigCACgCDBEFAAshACACQRBqJAAMAgsgASgCFEHwmMMAQRMgAUEYaigCACgCDBEFACEADAELIAEoAhRBg5nDAEELIAFBGGooAgAoAgwRBQAhAAsgA0EQaiQAIAALWQEDfyAAKAIAQRBqIgIoAgAiAygCACEBIAMgAUEBazYCACABQQFGBEAgAhC3CQsCQCAAKAIAIgBBf0YNACAAIAAoAgQiAUEBazYCBCABQQFHDQAgABCaAgsLbwECfyABKAIAIQIgAUEANgIAAkAgAgRAIAEoAgQhA0GR+8MALQAAGkEIQQQQggwiAUUNASABIAM2AgQgASACNgIAIABBjLHAADYCBCAAIAE2AgAPCwALQQRBCEHQgcQAKAIAIgBBlwcgABsRAAAAC5MBAgF/AX4CQAJAIAAEQCAAKAIADQEgAEF/NgIAIABBBGogAb0iA6cgA0IgiKcQigciAkUNAiACQgA3A3AgAkHMAmpBAToAACACQfgAakIANwMAIAJBgAFqQgA3AwAgAkHIAmogAkHEAmoqAgA4AgAgAEEANgIADwsQ+AwACxD5DAALQey0wABBzQBB9LXAABDhCQALbwECfyABKAIAIQIgAUEANgIAAkAgAgRAIAEoAgQhA0GR+8MALQAAGkEIQQQQggwiAUUNASABIAM2AgQgASACNgIAIABBtJPBADYCBCAAIAE2AgAPCwALQQRBCEHQgcQAKAIAIgBBlwcgABsRAAAAC28BAn8gASgCACECIAFBADYCAAJAIAIEQCABKAIEIQNBkfvDAC0AABpBCEEEEIIMIgFFDQEgASADNgIEIAEgAjYCACAAQbyWwgA2AgQgACABNgIADwsAC0EEQQhB0IHEACgCACIAQZcHIAAbEQAAAAtbAQF/IwBBMGsiBCQAIARBCGogASACIAND//9/fxBBIAQoAhxBBEYEQEHLj8IAQStB4MTCABCqCgALIAAgBCkCCDcCACAAQQhqIARBEGopAgA3AgAgBEEwaiQAC1QBAX8jAEEwayIFJAAgBUEIaiABIAIgAyAEEEECQCAFKAIcQQRGBEAgAEECOgAMDAELIAAgBSkCCDcCACAAQQhqIAVBEGopAgA3AgALIAVBMGokAAtVAQR9IAIqAgAiBSAFlCACKgIEIgYgBpSSIAIqAggiAyADlJIQmwEhBCAAIAMgBJUgASoCACIDlDgCCCAAIAMgBiAElZQ4AgQgACADIAUgBJWUOAIAC+wbAhN/Dn0jAEHgAGsiCiQAIAEhDSMAQYABayIDJAACQAJAAkACQAJAAkACQAJAAn8gAigCACILRQRAIA0oAggiBUEBayIHRQRAQQQhC0EAIQdBAAwCCyAHQf////8ASw0CIAdBA3QiAkEASA0CAkACQCACRQRAQQQhCwwBC0GR+8MALQAAGiACQQQQggwiC0UNAQsgB0EDcSEBIAVBAmtBA08EQCAHQXxxIQUgCyECA0AgAiAGNgIAIAJBHGogBkEEaiIENgIAIAJBGGogBkEDaiIINgIAIAJBFGogCDYCACACQRBqIAZBAmoiCDYCACACQQxqIAg2AgAgAkEIaiAGQQFqIgg2AgAgAiAINgIEIAJBIGohAiAEIQYgBCAFRw0ACwsgAQRAIAsgBEEDdGohAgNAIAIgBDYCACACIARBAWoiBDYCBCACQQhqIQIgAUEBayIBDQALCyAHDAILDAgLIAIoAgghByACKAIECyESIANBQGtBADYCACADQThqQoCAgIDAADcCACADQShqQgA3AgAgA0EgakKAgICAwAA3AgAgA0IENwIwIANCEDcCGCADQv////v///+/fzcCECADQv////v3//+/fzcCCCADQv////v3//+//wA3AgAgA0EBOgBLAkACQCAHRQRAIANBADYCVCADQgQ3AkwgA0EANgJEIANCBDcCPCADQQA2AmAgA0IENwJYDAELQZH7wwAtAAAaIAdBAnQiAkEEEIIMIgFFDQggA0EANgJUIAMgATYCTCADIAc2AlAgB0HVqtUqSw0CIAdBGGwiAkEASA0CAkAgAkUEQEEEIQEMAQtBkfvDAC0AABogAkEEEIIMIgFFDQILIAEhAgJAIAdBAkkNACAHQQFrIgVBA3EhBCAHQQJrQQNPBEAgBUF8cSEGA0AgAkL////7////v383AhAgAkL////79///v383AgggAkL////79///v/8ANwIAIAJB2ABqQv////v///+/fzcCACACQdAAakL////79///v383AgAgAkHIAGpC////+/f//7//ADcCACACQUBrQv////v///+/fzcCACACQThqQv////v3//+/fzcCACACQTBqQv////v3//+//wA3AgAgAkEoakL////7////v383AgAgAkEgakL////79///v383AgAgAkEYakL////79///v/8ANwIAIAJB4ABqIQIgBkEEayIGDQALCyAERQ0AA0AgAkL////7////v383AhAgAkL////79///v383AgggAkL////79///v/8ANwIAIAJBGGohAiAEQQFrIgQNAAsLIAJB////+wc2AgggAkL////79///v/8ANwIAIAJB////ezYCFCACQv////v///+/fzcCDCADIAc2AmAgAyAHNgJcIAMgATYCWCAHQQxsIgJBAEgNAgJAIAJFBEBBBCEBDAELQZH7wwAtAAAaIAJBBBCCDCIBRQ0JCyABIQICQCAHQQJJDQAgB0EBayIFQQNxIQQgB0ECa0EDTwRAIAVBfHEhBgNAIAJCfzcCCCACQQA6AAQgAkF/NgIAIAJBLGpBfzYCACACQShqQQA6AAAgAkEgakJ/NwIAIAJBHGpBADoAACACQRRqQn83AgAgAkEQakEAOgAAIAJBMGohAiAGQQRrIgYNAAsLIARFDQADQCACQX82AgggAkEAOgAEIAJBfzYCACACQQxqIQIgBEEBayIEDQALCyACQX82AgggAkEAOgAEIAJBfzYCACADKAJABEAgAygCPBCaAgsgAyAHNgJEIAMgBzYCQCADIAE2AjwgB0UNACALIAdBA3RqIRMgDSgCACERIA0oAgghDyADQTxqIRQgByEBQQAhBCALIRADQCAQKAIAIgIgD08NBCAQQQRqKAIAIgUgD08NBSAEQQFqIQggESAFQQxsaiIFKgIEIRYgBSoCACEXIAUqAgghGCARIAJBDGxqIgIqAgAhGSACKgIEIRogAioCCCEbIAEgBE0EQCABIQUgCCABayIJIAMoAkAgAWtLBEAgFCABIAkQiwYgAygCRCEFCyADKAI8IAVBDGxqIQIgCUECTwRAIAQgAWsiBkEDcSEMIAQgAUF/c2pBA08EQCAGQXxxIQYDQCACQn83AgggAkEAOgAEIAJBfzYCACACQSxqQX82AgAgAkEoakEAOgAAIAJBIGpCfzcCACACQRxqQQA6AAAgAkEUakJ/NwIAIAJBEGpBADoAACACQTBqIQIgBkEEayIGDQALCyAMBEAgDiABa0EDcSEGA0AgAkF/NgIIIAJBADoABCACQX82AgAgAkEMaiECIAZBAWsiBg0ACwsgBSAJakEBayEFCyACQX82AgggAkEAOgAEIAJBfzYCACADIAVBAWoiATYCRCADIAMoAmAiCSAETQR/IAggCSIFayEMIAwgAygCXCAFa0sEQCADQdgAaiAJIAwQnQYgAygCYCEFCyADKAJYIAVBGGxqIQIgDEECTwRAIAQgCWsiBkEDcSEVIAQgCUF/c2pBA08EQCAGQXxxIQYDQCACQv////v///+/fzcCECACQv////v3//+/fzcCCCACQv////v3//+//wA3AgAgAkHYAGpC////+////79/NwIAIAJB0ABqQv////v3//+/fzcCACACQcgAakL////79///v/8ANwIAIAJBQGtC////+////79/NwIAIAJBOGpC////+/f//79/NwIAIAJBMGpC////+/f//7//ADcCACACQShqQv////v///+/fzcCACACQSBqQv////v3//+/fzcCACACQRhqQv////v3//+//wA3AgAgAkHgAGohAiAGQQRrIgYNAAsLIBUEQCAOIAlrQQNxIQYDQCACQv////v///+/fzcCECACQv////v3//+/fzcCCCACQv////v3//+//wA3AgAgAkEYaiECIAZBAWsiBg0ACwsgBSAMakEBayEFCyACQv////v///+/fzcCECACQv////v3//+/fzcCCCACQv////v3//+//wA3AgAgBUEBagUgCAs2AmALIAEgBE0NBiADKAI8IARBDGxqIAQ2AgggAygCYCICIARNDQcgAygCWCAEQRhsaiICIBsgGCAbIBpDAAAAAJQiHiAZQwAAAACUIh+SIiKSIBggF0MAAAAAlCIgIBZDAAAAAJQiIZIiI5JeGzgCFCACIBogFiAbQwAAAACUIhwgGiAfkpIgICAWkiAYQwAAAACUIh2SXhs4AhAgAiAZIBcgHCAZIB6SkiAXICGSIB2SXhs4AgwgAiAbIBggIiAbkyAjIBiTXhs4AgggAiAaIBYgHCAfIBqTkiAgIBaTIB2SXhs4AgQgAiAZIBcgHCAeIBmTkiAhIBeTIB2SXhs4AgAgAygCVCICIAMoAlBGBEAgA0HMAGogAhCoBiADKAJUIQILIAMoAkwgAkECdGogBDYCACADIAJBAWo2AlQgDkEBaiEOIAghBCATIBBBCGoiEEcNAAsLIAMoAiAiBCADKAIcRgRAIANBGGogBBCvBiADKAIgIQQLIAMoAhggBEEHdGoiAUKBgICAcDcDYCABQQA6AHggAUEAOgB0IAFBfzYCcCABQv////v///+/fzcDWCABQv////v///+/fzcDUCABQv////v///+/fzcDSCABQv////v///+/fzcDQCABQv////v///+/fzcDOCABQv////v///+/fzcDMCABQv////v3//+//wA3AyggAUL////79///v/8ANwMgIAFC////+/f//7//ADcDGCABQv////v3//+//wA3AxAgAUL////79///v/8ANwMIIAFC////+/f//7//ADcDACABQegAakJ/NwMAIAMgBEEBajYCICADQeQAaiADIANBywBqIAMoAkwiAiADKAJUIANB2ABqQQBBABBEIAMgA0H8AGoqAgAiFjgCFCADIANB+ABqKgIAIhc4AhAgAyADQfQAaioCACIYOAIMIAMgA0HwAGoqAgAiGTgCCCADIANB7ABqKgIAIho4AgQgAyADKgJoIhs4AgAgAygCIEUNBiADKAIYIgFB////ezYCXCABQv////v///+/fzcCVCABIBY4AlAgAUH///97NgJMIAFC////+////79/NwJEIAEgFzgCQCABQf///3s2AjwgAUL////7////v383AjQgASAYOAIwIAFB////+wc2AiwgAUL////79///v/8ANwIkIAEgGTgCICABQf////sHNgIcIAFC////+/f//7//ADcCFCABIBo4AhAgAUH////7BzYCDCABQv////v3//+//wA3AgQgASAbOAIAIAMoAlwEQCADKAJYEJoCCyADKAJQBEAgAhCaAgsgCkEYaiADQcgAEIgNGiAKQRRqIAc2AgAgCkEQaiASNgIAIAogCzYCDCAKQQhqIA1BCGooAgA2AgAgCiANKQIANwIAIANBgAFqJAAMCAsMBgsQ2woACyACIA9B7M3CABDjCAALIAUgD0H8zcIAEOMIAAsgBCABQdCewgAQ4wgACyAEIAJB4J7CABDjCAALQQBBAEHAnsIAEOMIAAtBBCACQdCBxAAoAgAiAEGXByAAGxEAAAALQZH7wwAtAAAaQegAQQQQggwiAUUEQEEEQegAQdCBxAAoAgAiAEGXByAAGxEAAAALIAFCgYCAgBA3AgAgAUEIaiAKQeAAEIgNGiAAQfTcwgA2AgQgACABNgIAIApB4ABqJAALeAIBfwF9IwBB4ABrIgIkACACIAEQxgFBkfvDAC0AABogASoCYCEDQeQAQQQQggwiAUUEQEEEQeQAQdCBxAAoAgAiAEGXByAAGxEAAAALIAEgAkHgABCIDSIBIAM4AmAgAEHAhcMANgIEIAAgATYCACACQeAAaiQAC10BAX8jAEEwayIDJAAgAyABNgIMIAMgADYCCCADQRxqQgE3AgAgA0EBNgIUIANB1NrDADYCECADQa8HNgIsIAMgA0EoajYCGCADIANBCGo2AiggA0EQaiACENwKAAvMAgEDfyMAQaABayICJAACQCAABEAgACgCAA0BIAJBBGoiASAAQQRqQZwBEIgNGiAAEJoCIAEoAgAiACgCACEDIAAgA0EBazYCACADQQFGBEAgARCaCAsgAUHsAGooAgAEQCABQegAaigCABCaAgsgAUH4AGooAgAEQCABQfQAaigCABCaAgsgAUGEAWooAgAEQCABQYABaigCABCaAgsgAUGQAWooAgAEQCABQYwBaigCABCaAgsgAUEMaigCAARAIAEoAggQmgILIAFBGGooAgAEQCABQRRqKAIAEJoCCyABQSRqKAIABEAgAUEgaigCABCaAgsgAUEwaigCAARAIAFBLGooAgAQmgILIAFBPGooAgAEQCABQThqKAIAEJoCCyABQcgAaigCAARAIAFBxABqKAIAEJoCCyACQaABaiQADwsQ+AwACxD5DAAL8AIBA38jAEGgAWsiASQAIAFBBGohAEGR+8MALQAAGkEIQQQQggwiAkUEQEEEQQhB0IHEACgCACIAQZcHIAAbEQAAAAsgAEGKro/hAzYCmAEgAEIANwKQASAAQoCAgIDAADcCiAEgAEIENwKAASAAQgA3AnggAEKAgICAwAA3AnAgAEIQNwJoIABC////+////79/NwJgIABC////+/f//79/NwJYIABC////+/f//7//ADcCUCAAQgA3AkggAEKAgICAwAA3AkAgAEIBNwI4IABCADcCMCAAQoCAgIDAADcCKCAAQgQ3AiAgAEIANwIYIABCgICAgMAANwIQIABCBDcCCCAAQYjqwQA2AgQgACACNgIAIAJCgYCAgBA3AgBBkfvDAC0AABpBoAFBBBCCDCIARQRAQQRBoAFB0IHEACgCACIAQZcHIAAbEQAAAAsgAEEANgIAIABBBGogAUEEakGcARCIDRogAUGgAWokACAAC0sBAn8jAEHQAGsiASQAAkAgAARAIAAoAgANASABQQRqIgIgAEEEakHMABCIDRogABCaAiACEJEHIAFB0ABqJAAPCxD4DAALEPkMAAvxAwEHfyMAQdAA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GxEAAAALQQRByAFB0IHEACgCACIAQZcHIAAbEQAAAAtBkfvDAC0AABpByABBBBCCDCIARQRAQQRByABB0IHEACgCACIAQZcHIAAbEQAAAAsgAEEANgIAIABBBGogAUEMakHEABCIDRogAUHQAGokACAADwtBBEGgAUHQgcQAKAIAIgBBlwcgABsRAAAAC7gJAQR/IwBBoARrIgQkAAJAIAAEQCAAKAIADQEgBEEIaiIBIABBCGpBmAQQiA0aIAAQmgIgAUHUA2ooAgAEQCABKALQAxCaAgsgASgC3AMhAiABQeQDaigCACIDBEAgAiEAA0AgAEEEaigCAARAIAAoAgAQmgILIABBDGohACADQQFrIgMNAAsLIAFB4ANqKAIABEAgAhCaAgsgASgC6AMhAiABQfADaigCACIDBEAgAiEAA0AgAEEEaigCAARAIAAoAgAQmgILIABBDGohACADQQFrIgMNAAsLIAFB7ANqKAIABEAgAhCaAgsgAUH4A2ooAgAEQCABKAL0AxCaAgsgAUGEBGooAgAEQCABKAKABBCaAgsgASgCjAQhAiABQZQEaigCACIDBEAgAiEAA0AgAEEEaigCAARAIAAoAgAQmgILIABBFGooAgAEQCAAQRBqKAIAEJoCCyAAQSBqKAIABEAgAEEcaigCABCaAgsgAEEsaigCAARAIABBKGooAgAQmgILIABBOGooAgAEQCAAQTRqKAIAEJoCCyAAQcQAaigCAARAIABBQGsoAgAQmgILIABB0ABqKAIABEAgAEHMAGooAgAQmgILIABB3ABqKAIABEAgAEHYAGooAgAQmgILIABB6ABqKAIABEAgAEHkAGooAgAQmgILIABB9ABqKAIABEAgAEHwAGooAgAQmgILIABBgAFqKAIABEAgAEH8AGooAgAQmgILIABBjAFqKAIABEAgAEGIAWooAgAQmgILIABBmAFqKAIABEAgAEGUAWooAgAQmgILIABBpAFqKAIABEAgAEGgAWooAgAQmgILIABBsAFqKAIABEAgAEGsAWooAgAQmgILIABBvAFqKAIABEAgAEG4AWooAgAQmgILIABBzAFqKAIABEAgAEHIAWooAgAQmgILIABB2AFqKAIABEAgAEHUAWooAgAQmgILIABB5AFqKAIABEAgAEHgAWooAgAQmgILIABB8AFqKAIABEAgAEHsAWooAgAQmgILIABB/AFqKAIABEAgAEH4AWooAgAQmgILIABBiAJqKAIABEAgAEGEAmooAgAQmgILIABBlAJqKAIABEAgAEGQAmooAgAQmgILIABBoAJqKAIABEAgAEGcAmooAgAQmgILIABBrAJqKAIABEAgAEGoAmooAgAQmgILIABBuAJqKAIABEAgAEG0AmooAgAQmgILIABBxAJqKAIABEAgAEHAAmooAgAQmgILIABB0AJqKAIABEAgAEHMAmooAgAQmgILIABB3AJqKAIABEAgAEHYAmooAgAQmgILIABB6AJqKAIABEAgAEHkAmooAgAQmgILIABB9AJqKAIABEAgAEHwAmooAgAQmgILIABBgANqKAIABEAgAEH8AmooAgAQmgILIABBjANqKAIABEAgAEGIA2ooAgAQmgILIABBmANqKAIABEAgAEGUA2ooAgAQmgILIABBqANqKAIABEAgAEGkA2ooAgAQmgILIABBuANqKAIABEAgAEG0A2ooAgAQmgILIABBwANqIQAgA0EBayIDDQALCyABQZAEaigCAARAIAIQmgILIARBoARqJAAPCxD4DAALEPkMAAumAwEDfyMAQaABayIBJAAgAUEEaiEAQZH7wwAtAAAaQQhBBBCCDCICRQRAQQRBCEHQgcQAKAIAIgBBlwcgABsRAAAACyAAQYquj+EDNgKYASAAQv////v3//+//wA3AlAgAEGI6sEANgIEIAAgAjYCACACQoGAgIAQNwIAIABCBDcCCCAAQZABakIANwIAIABBiAFqQoCAgIDAADcCACAAQYABakIENwIAIABB+ABqQgA3AgAgAEHwAGpCgICAgMAANwIAIABB6ABqQhA3AgAgAEHgAGpC////+////79/NwIAIABB2ABqQv////v3//+/fzcCACAAQRBqQoCAgIDAADcCACAAQRhqQgA3AgAgAEEgakIENwIAIABBKGpCgICAgMAANwIAIABBMGpCADcCACAAQThqQgE3AgAgAEFAa0KAgICAwAA3AgAgAEHIAGpCADcCAEGR+8MALQAAGkGgAUEEEIIMIgBFBEBBBEGgAUHQgcQAKAIAIgBBlwcgABsRAAAACyAAQQA2AgAgAEEEaiABQQRqQZwBEIgNGiABQaABaiQAIAALNQEBfyAAKAIEIgEEQCAAKAIAIAFBAnRB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QRBqJAAgA0EQaiQAIAALQgEBfUMAAAAAIAEqAgAiAyADlCABKgIEIgMgA5SSIAEqAggiAyADlJIQmwEgACoCAJMiAyACGyADIANDAAAAAF0bCz0BA30gASoCACICIAKUIAEqAggiAiAClJIQmwEhAiABKgIEIgMgACoCACIEXyACIAAqAgRfcSADIASMYHELPQECfyMAQTBrIgQkACAEQQxqIgUgASACIAMQTSAAQQhqIAVBCGopAgA3AgAgACAEKQIMNwIAIARBMGokAAtdAQF/QZH7wwAtAAAaQQZBARCCDCIBRQRAQQFBBkHQgcQAKAIAIgBBlwcgABsRAAAACyABQQRqQcS3wAAvAAA7AAAgAUHAt8AAKAAANgAAIAAgATYCACAAQQY2AgQLQAIBfwF8AkAgAARAIAAoAgAiAUF/Rg0BIAAgAUEBajYCACAAKAIEKwIAIQIgACABNgIAIAIPCxD4DAALEPkMAAtAAgF/AXwCQCAABEAgACgCACIBQX9GDQEgACABQQFqNgIAIAAoAgQrAgghAiAAIAE2AgAgAg8LEPgMAAsQ+QwACz8BAn8CQCAABEAgACgCACIBQX9GDQEgACABQQFqNgIAIAAoAgQoAqABIQIgACABNgIAIAIPCxD4DAALEPkMAAs/AQJ/AkAgAARAIAAoAgAiAUF/Rg0BIAAgAUEBajYCACAAKAIEKAKkASECIAAgATYCACACDwsQ+AwACxD5DAALVwEBf0GR+8MALQAAGkEUQQQQggwiBEUEQEEEQRRB0IHEACgCACIEQZcHIAQbEQAAAAsgBCADOAIQIAQgAjgCDCAEIAE4AgggBCAAOAIEIARBADYCACAEC0sAIAEoAgAgAigCACADKAIAEAchAUGY+8MAKAIAIQJBlPvDACgCACEDQZT7wwBCADcCACAAIAIgASADQQFGIgEbNgIEIAAgATYCAAs5AAJAIAFpQQFHDQBBgICAgHggAWsgAEkNACAABEBBkfvDAC0AABogACABEIIMIgFFDQELIAEPCwALPAEBfyMAQSBrIgMkACADQQRqIgQgASACEPICIABBCGogBEEIaikCADcCACAAIAMpAgQ3AgAgA0EgaiQACz8BAX8jAEEgayIFJAAgBUEIaiABIAIgAyAEEOcBIAUoAgghASAAIAUqAhA4AgQgACABQQRHNgIAIAVB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cSICIAJBA08bIggEQEHW2cMAQdfZwwBB+MHDACADGyAJQgBTGyEGQQEhAkEBIAlCP4inIAMbIQcgCEECaw4CAgMBCyAAQQM2ApgIIABB2NnDADYClAggAEECOwGQCEEBIQJBACEHQfjBwwAhBiAAQZAIagwECyAAQQM2ApgIIABB29nDADYClAggAEECOwGQCCAAQZAIagwDC0ECIQIgAEECOwGQCCAERQ0BIABBoAhqIAQ2AgAgAEEAOwGcCCAAQQI2ApgIIABBrdnDADYClAggAEGQCGoMAgtBdEEFIAXBIgNBAEgbIANsIgNBwP0ASQRAIABBkAhqIABB0AhqIABBEGogA0EEdkEVaiICQYCAfkEAIARrIARBgIACTxsiAxDEASADwSEDAkAgACgCkAhFBEAgAEHACGogAEHQCGogAEEQaiACIAMQLgwBCyAAQcgIaiAAQZgIaigCADYCACAAIAApApAINwPACAsgAyAALgHICCIDSARAIABBCGogACgCwAggACgCxAggAyAEIABBkAhqEKAEIAAoAgwhAiAAKAIIDAMLQQIhAiAAQQI7AZAIIARFBEBBASECIABBATYCmAggAEHe2cMANgKUCCAAQZAIagwDCyAAQaAIaiAENgIAIABBADsBnAggAEECNgKYCCAAQa3ZwwA2ApQIIABBkAhqDAILQeXZwwBBJUGM2sMAEKoKAAtBASECIABBATYCmAggAEHe2cMANgKUCCAAQZAIagshAyAAQcwIaiACNgIAIAAgAzYCyAggACAHNgLECCAAIAY2AsAIIAEgAEHACGoQ0QIhASAAQfAIaiQAIAEPCyMAQYABayIAJAAgD70hCQJAIA8gD2IEQEECIQIMAQsgCUL/////////B4MiDUKAgICAgICACIQgCUIBhkL+////////D4MgCUI0iKdB/w9xIgUbIgpCAYMhDEEDIQICQAJAAkBBAUECQQQgCUKAgICAgICA+P8AgyIOUCIGGyAOQoCAgICAgID4/wBRG0EDQQQgBhsgDVAbQQJrDgMAAQIDC0EEIQIMAgsgBUGzCGshBCAMUCECQgEhCwwBC0KAgICAgICAICAKQgGGIApCgICAgICAgAhRIgIbIQpCAkIBIAIbIQtBy3dBzHcgAhsgBWohBCAMUCECCyAAIAQ7AXggACALNwNwIABCATcDaCAA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QQA2AgAPCxD4DAALEPkMAAt2AQJ/AkAgAARAIAAoAgANASAAQX82AgAgAEEEaiIBKAIsIgJFBEBB9MLAAEErQZSowQAQqgoACyABQQE2AiwgASACNgIAIAFCgICA/IOAgMA/NwIUIAFCmrPm+IOAgMA/NwIMIABBADYCAA8LEPgMAAsQ+QwAC0kBAX5BkfvDAC0AABogACkCACEBQRBBBBCCDCIARQRAQQRBEEHQgcQAKAIAIgBBlwcgABsRAAAACyAAIAE3AgQgAEEAOgAAIAALMgEBfyABKAIcIgJBEHFFBEAgAkEgcUUEQCAAIAEQ7QwPCyAAIAEQlwcPCyAAIAEQlgcLLwEBfSABKgIAIgIgApQgASoCBCICIAKUkiABKgIIIgIgApSSIAAqAgAiAiAClF8LMAEBfyMAQSBrIgMkACADQQhqIAAgASACQQEQ1gEgAygCCCEAIANBIGokACAAQQRHCzABAX8jAEEgayIDJAAgA0EIaiAAIAEgAkEBEOcBIAMoAgghACADQSBqJAAgAEEERwswAQF/IwBBIGsiAyQAIANBCGogACABIAJBARDOASADKAIIIQAgA0EgaiQAIABBBEcLLwEBfyMAQRBrIgMkACADQQhqIAAgASACQQEQaCADKAIIIQAgA0EQaiQAIABBAUYLMAEBfyMAQSBrIgMkACADQQhqIAAgASACQQEQvQEgAygCCCEAIANBIGokACAAQQRHCy8BAX8jAEEQayIDJAAgA0EIaiAAIAEgAkEBEF4gAygCCCEAIANBEGokACAAQQFGCzABAX8jAEEgayIDJAAgA0EIaiAAIAEgAkEBEOMBIAMoAgghACADQSBqJAAgAEEERwswAQF/IwBBIGsiAyQAIANBCGogACABIAJBARCyASADKAIIIQAgA0EgaiQAIABBBEcLMAEBfyMAQSBrIgMkACADQQhqIAAgASACQQEQlQEgAygCCCEAIANBIGokACAAQQRHCzABAX8jAEEgayIDJAAgA0EIaiAAIAEgAkEBEOYBIAMoAgghACADQSBqJAAgAEEERwsvAQF/IwBBIGsiAyQAIANBCGogACABIAJBABB/IAMoAgghACADQSBqJAAgAEEERwsvAQF/IwBBEGsiAyQAIANBCGogACABIAJBARBzIAMoAgghACADQRBqJAAgAEEBRgswAQF/IwBBIGsiAyQAIANBCGogACABIAJBARDDASADKAIIIQAgA0EgaiQAIABBBEcLMAEBfyMAQSBrIgMkACADQQhqIAAgASACQQEQzAEgAygCCCEAIANBIGokACAAQQRHCy4BAX8CQCAAKAIAIgBBf0YNACAAIAAoAgQiAUEBazYCBCABQQFHDQAgABCaAgsLLgEBfyMAQRBrIgAkACAAQQhqIgIgAUGwl8AAEJ8LIAIQ+QYhASAAQRBqJAAgAQstAQF/IwBBMGsiAiQAIAJBDGogACABQQEQSCACLQAYIQAgAkEwaiQAIABBAEcLRQEBf0GR+8MALQAAGkEQQQQQggwiAEUEQEEEQRBB0IHEACgCACIAQZcHIAAbEQAAAAsgAEIANwIAIABBCGpCADcCACAACy4BAX8jAEEQayIAJAAgAEEIaiICIAFB4NbAABCfCyACEPkGIQEgAEEQaiQAIAELNQEBfyAAQQA2AgggACABKAIYNgIMIAAgASgCCCICNgIAIAAgAiABQRBqKAIAQegCbGo2AgQLNQEBfyAAQQA2AgggACABKAIYNgIMIAAgASgCCCICNgIAIAAgAiABQRBqKAIAQagBbGo2AgQLLQEBfyMAQTBrIgIkACACQQxqIAAgAUEBEE0gAi0AGCEAIAJBMGokACAAQQBHC8kDAgJ9A38CQCAAKgIAIgEgAVsgACoCBCICIAJbcUUEQCACIAGSIQEMAQsgAbwiA0GAgID8A0YEQCACEL4EIQEMAQsgA0EedkECcSIFIAK8IgRBH3ZyIQACQAJAAkACQAJAAkAgBEH/////B3EiBEUEQEPbD0nAIQEgAA4DAQECBgsgA0H/////B3EiA0UNAiADQYCAgPwHRw0DIARBgICA/AdHDQRD5MsWwCEBIABBA0YNBSAAQQJ0Qfj6wwBqKgIAIQEMBgsgAiEBDAULQ9sPSUAhAQwEC0PbD8k/IAKYIQEMAwsgBEGAgID8B0cgA0GAgIDoAGogBE9xRQRAQ9sPyT8gApghAQwDCwJ9IAUEQEMAAAAAIARBgICA6ABqIANJDQEaCyACIAGVixC+BAshAQJAAkACQCAADgMEAQIACyABQy69uzOSQ9sPScCSIQEMBAsgAYwhAQwDC0PbD0lAIAFDLr27M5KTIQEMAgtD2w9JwCEBIABBA0YNACAAQQJ0QYT7wwBqKgIAIQELCyABQwAAAABgRQRAQbTswgBBKEHE7cIAEKoKAAtD2w/JPyABkyICIAIgASABkiIBIAEgAl4bIAEgAVwbCzMAIAAgASgCFCACQQAgAUEYaigCACgCDBEFADoACCAAIAE2AgQgAEEBOgAJIABBADYCAAtAAQF/IAAoAgAhAQJAIAAtAAQNAEHkgcQAKAIAQf////8HcUUNAEG0hcQAKAIARQ0AIAFBAToAAQsgAUEAOgAACy8AAkAgAARAIAAoAgANASAAQoCAgIAQNwIAIABBCGogATgCAA8LEPgMAAsQ+QwACygAAkAgAARAIAAoAgBBf0YNASAAQQxqKAIAQQJHDwsQ+AwACxD5DAALKwACQCAABEAgACgCAA0BIABBADYCACAAQQxqQQI2AgAPCxD4DAALEPkMAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBNGogATgCAA8LEPgMAAsQ+QwACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEE4aiABOAIADwsQ+AwACxD5DAALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqQQI2AgAPCxD4DAALEPkMAAsoAAJAIAAEQCAAKAIAQX9GDQEgAEEgaigCAEECRw8LEPgMAAsQ+QwACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEE0aiABNgIADwsQ+AwACxD5DAALKwACQCAABEAgACgCAA0BIABBADYCACAAQThqIAE2AgAPCxD4DAALEPkMAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBCGogATgCAA8LEPgMAAsQ+QwACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEQaiABOAIADwsQ+AwACxD5DAALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqIAE4AgAPCxD4DAALEPkMAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBKGogATgCAA8LEPgMAAsQ+QwACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEsaiABNgIADwsQ+AwACxD5DAALKwACQCAABEAgACgCAA0BIABBADYCACAAQTBqIAE2AgAPCxD4DAALEPkMAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBDGogATgCAA8LEPgMAAsQ+QwACzEBAX8gACABNgIMIABBADYCCCAAIAEoAhwiAjYCACAAIAIgAUEkaigCAEEUbGo2AgQLLAEBfyMAQSBrIgIkACACQQRqIAAgARDyAiACLQAQIQAgAkEgaiQAIABBAEcLLQECfSAAKgIMIAAqAgAiASAAKgIEIgIgASACXxsiASAAKgIIIgIgASACXxuSCzABAX0gACACKgIIIAEqAgAiA5Q4AgggACADIAIqAgSUOAIEIAAgAyACKgIAlDgCAAsuACAAIAEpAmA3AgAgAEEQaiABQfAAaikCADcCACAAQQhqIAFB6ABqKQIANwIACywAIAAgASkCGDcCACAAQRBqIAFBKGopAgA3AgAgAEEIaiABQSBqKQIANwIACywAIAAgASkCADcCACAAQRBqIAFBEGopAgA3AgAgAEEIaiABQQhqKQIANwIACy0AIAAgASkCNDcCACAAQRBqIAFBxABqKQIANwIAIABBCGogAUE8aikCADcCAAsvAQF9IAAgASoCACICIAKUIAEqAgQiAiAClJIQmwE4AgwgAEEANgIIIABCADcCAAswACABKAIUIAJBCyABQRhqKAIAKAIMEQUAIQIgAEEAOgAFIAAgAjoABCAAIAE2AgALNQEBfyABKAIUQdzawwBBASABQRhqKAIAKAIMEQUAIQIgAEEAOgAFIAAgAjoABCAAIAE2AgALUwEBfyMAQRBrIgMkACADIAI2AgwgAyABNgIIIAMgADYCBCMAQRBrIgAkACAAIANBBGoiASkCADcCCCAAQQhqQZiUwABBACABKAIIQQFBABDBBgALJQACQCAABEAgACgCAEF/Rg0BIABBPGotAAAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEE0aioCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQThqKgIADwsQ+AwACxD5DAALJgACQCAABEAgACgCAEF/Rg0BIABBzABqLQAADwsQ+AwACxD5DAALJgACQCAABEAgACgCAEF/Rg0BIABB2ABqKAIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBQGsqAgAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEoaioCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQSxqKwIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBNGooAgAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEE4aigCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQQxqKAIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBQGsoAgAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEIaioCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQRBqKgIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBLGooAgAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEwaigCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQRxqKAIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBEGotAAAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEcaisCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQRhqLQAADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBDGoqAgAPCxD4DAALEPkMAAsoAAJAIAAEQCAAKAIADQEgAEEANgIAIAAgATgCBA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQQxqKwIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBIGoqAgAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEwaioCAA8LEPgMAAsQ+QwAC1MBAX8jAEEQayIDJAAgAyACNgIMIAMgATYCCCADIAA2AgQjAEEQayIAJAAgACADQQRqIgEpAgA3AgggAEEIakGA0MAAQQAgASgCCEEBQQAQwQYAC1YBAX8jAEEQayIBJAAgASAANgIMIAFBGzYCCCABQdCSwgA2AgQjAEEQayIAJAAgACABQQRqIgEpAgA3AgggAEEIakGwi8IAQQAgASgCCEEBQQAQwQYACysAIAAqAgAgASoCAJQgACoCBCABKgIElJIgACoCCCABKgIIlJJDAAAAAF8LKAEBfyMAQRBrIgIkACACIAAgAUEBEKsCIAItAAwhACACQRBqJAAgAAsnAQJ9IAAqAgAiASAAKgIEIgIgASACXxsiASAAKgIIIgIgASACXxsLHwACQCAABEAgACgCAA0BIAAQmgIPCxD4DAALEPkMAAsiAAJAIAAEQCAAKAIAQX9GDQEgACsCBA8LEPgMAAsQ+QwACyIAAkAgAARAIAAoAgBBf0YNASAAKAIEDwsQ+AwACxD5DAALIgACQCAABEAgACgCAEF/Rg0BIAAqAgQPCxD4DAALEPkMAAs7AQF/QZH7wwAtAAAaQQRBBBCCDCIARQRAQQRBBEHQgcQAKAIAIgBBlwcgABsRAAAACyAAQQA2AgAgAAshAQF/AkAgACgCBCIBRQ0AIABBCGooAgBFDQAgARCaAgsLJQAgAEUEQEHovMAAQTIQ9wwACyAAIAIgAyAEIAUgASgCEBEhAAs2ACABKAIUIAAoAgAtAABBAnQiAEGgisIAaigCACAAQZCKwgBqKAIAIAFBGGooAgAoAgwRBQALHwAgAUEDTwRAQcCFwQBBGyACELsLAAsgACABQQJ0agslACAAIAIgASgCSCABQdAAaigCACABKAJUIAFB3ABqKAIAEOwBCyIBAn4gACkDACICQj+HIQMgAiADhSADfSACQgBZIAEQ2QQLIwAgAEUEQEHovMAAQTIQ9wwACyAAIAIgAyAEIAEoAhARAgALIwAgAEUEQEHovMAAQTIQ9wwACyAAIAIgAyAEIAEoAhAREwALJAAgAEUEQEHovMAAQTIQ9wwACyAAIAIgAyAEIAEoAhARlQEACyQAIABFBEBB6LzAAEEyEPcMAAsgACACIAMgBCABKAIQEZcBAAsjACAARQRAQei8wABBMhD3DAALIAAgAiADIAQgASgCEBEaAAshACAARQRAQei8wABBMhD3DAALIAAgAiADIAEoAhARAQALJAAgAC0AAEUEQCABQYTgwwBBBRDUAQ8LIAFBieDDAEEEENQBCx0AIAEoAgBFBEAACyAAQYyxwAA2AgQgACABNgIACx8AIABFBEBB6LzAAEEyEPcMAAsgACACIAEoAhARAwALHQAgASgCAEUEQAALIABBtJPBADYCBCAAIAE2AgALHQAgASgCAEUEQAALIABBvJbCADYCBCAAIAE2AgALEgAgACgCBARAIAAoAgAQmgILCzQAIABC////9//////+ADcCCCAAQv////f/////fjcCACAAQRBqQv////f3/////gA3AgALNAAgAEL////3//////4ANwIIIABC////9/////9+NwIAIABBEGpC////9/f////+ADcCAAs0ACAAQv////f//////gA3AgggAEL////3/////343AgAgAEEQakL////39/////4ANwIACxkAIAAoAgAiACgCACAAQQRqKAIAIAEQ4gELGgAgAEEANgIIIABCADcCACAAIAEqAgA4AgwLHQAgAEGM2MIANgIEIAAgATYCACAAIAEqAhg4AggLHQAgAEGE1cIANgIEIAAgATYCACAAIAEqAgw4AggLHQAgAEHM2MIANgIEIAAgATYCACAAIAEqAiQ4AggLHQAgAEHI6cIANgIEIAAgATYCACAAIAEqAgg4AggLHQAgAEHw7cIANgIEIAAgATYCACAAIAEqAgg4AggLHQAgAEHM5sIANgIEIAAgATYCACAAIAEqAmA4AggLGgAgAEEANgIIIABB2JfAADYCBCAAIAE2AgALGgAgAEEANgIIIABBvJrAADYCBCAAIAE2AgALGAAgACgCACABKAIAIAIoAgAgAygCABAKCxoAIABBADYCCCAAQZj6wAA2AgQgACABNgIACxoAIABBADYCCCAAQYTVwgA2AgQgACABNgIAC74EAg19Bn8gASoCGCEEIwBBQGoiECQAIAFBDGoiESoCACIIIAEqAgAiCZMiAyADlCARKgIEIgogASoCBCILkyIDIAOUkiARQQhqIhMqAgAiDCABQQhqIhQqAgAiDZMiAyADlJIQmwEhAyAQQShqIhJBCGoiFSAUKAIANgIAIBJBFGogEygCADYCACAQIBEpAgA3AjQgEEEIaiIRQQhqIBUpAwA3AwAgEUEQaiASQRBqKQMANwMAIBAgASkCADcDCCAQIAQ4AiAgACAREIoEIANDAAAAP5QiAyAElCAElEPbD0lAlCIGIAaSIQYgBCAElCIFIAWSQwAAoECVIARD2w9JQJQgBJQgBJRDAACAQJRDAABAQJUiB5QiDiAFQwAAQECUIAMgA5RDAACAQJSSQwAAQEGVIAaUkiAClCAHIAMgA5IiAyADlEMAAIA+lCADIASUQwAAQECUQwAAAD6UkpQgApSSIg8QmwEhBCAOIAVDAAAAP5QgBpSSIAKUEJsBIQMgDxCbASEFIABDAAAAAEMAAIA/IASVIARDAAAA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8OHDADYCMCAFQQI2AkwgBSAANgI4IAUgBUEYajYCYCAFIAVBEGo2AlggBSAFQQxqNgJQIAUgBUEIajYCSCABIAQQ3AoACyADIAdBxOPDABDlCAALQY3WwwBBKyAEEKoKAAsgACABIAMgASAEEPgLAAsgACABQQAgBiAEEPgLAAsgACAAQuTex4WQ0IXefTcDCCAAQsH3+ejMk7LRQTcDAAsgACAAQr///bHCvMXDbDcDCCAAQqWSyKytwtOTBDcDAAshACAAQp2076Wh6IWStn83AwggAEKs/M2M2ITwrFE3AwALEwAgAEGslMAANgIEIAAgATYCAAsTACAAQbyUwAA2AgQgACABNgIACxMAIABBvJfAADYCBCAAIAE2AgALEAAgAEEBNgIAIAAgATYCBAsTACAAQaCawAA2AgQgACABNgIACxAAIABBBDYCACAAIAE2AgQLGgACfyABQQlPBEAgASAAEJ8EDAELIAAQOgsLFgBBmPvDACAANgIAQZT7wwBBATYCAAsTACAAQZTQwAA2AgQgACABNgIACxMAIABB/PnAADYCBCAAIAE2AgALIQAgAEKWg5SQq5e+sFI3AwggAELKid2Dm7bq+fAANwMACyIAIABCxo/Dyv6VwqiMfzcDCCAAQrCv9qu+6aivnX83AwALIQAgAELZhvfV0s6+sW03AwggAELMp5Cu0YD53dUANwMACyEAIABC7oj9gba/4841NwMIIABCgeWlwZjP9umsfzcDAAsiACAAQuiC043ihfKX2QA3AwggAEKJvO/Y+4nkmK5/NwMACyEAIABC5uiP2+/1t7AcNwMIIABC1L+PtYXw4KPPADcDAAshACAAQsu/vPT3k+e4q383AwggAELJ6/CNgJ/uo303AwALIQAgAEK94/Gmr8bs+z03AwggAEKL7saC4P/Bg4R/NwMACyIAIABCtO26q6unmfPLADcDCCAAQqObv7/Btp+HywA3AwALIQAgAELBzef45vCEoRg3AwggAEK1vYK6y7q96vsANwMACyEAIABChNHSirvkjM7LADcDCCAAQu/Cy+3Lto2+WjcDAAshACAAQsKmqN/fs87VxgA3AwggAEL5yKaVsqD59wo3AwALIAAgAELy4qm04KmkxAQ3AwggAEL0pIKy7KjDqX03AwALIgAgAEKLlZLKhbvNvP8ANwMIIABCj6CK4/aL2Jv4ADcDAAsgACAAQrOcxqm67svAXTcDCCAAQoGesbKYo7PtdjcDAAsiACAAQpX3zciLrPn5/QA3AwggAEK0xei60LqLxK5/NwMACyEAIABClsa87dLPvspBNwMIIABC07vD9LGD7pDTADcDAAsiACAAQriDyOLMibnWkH83AwggAELMqe2zqZDim+wANwMACyAAIABCxpmWruPNu/M5NwMIIABChdqn8drxkeIYNwMACyIAIABCqZv3yYLkhYbHADcDCCAAQpv9hczKhL3nywA3AwALIAAgAELD36bysP+IoCA3AwggAEK65aKq6Lvo2G83AwALEwAgAEHEi8IANgIEIAAgATYCAAsTACAAQdSLwgA2AgQgACABNgIACxMAIABB5IvCADYCBCAAIAE2AgALEwAgAEH0i8IANgIEIAAgATYCAAsTACAAQYSMwgA2AgQgACABNgIACxMAIABBlIzCADYCBCAAIAE2AgALEwAgAEGkjMIANgIEIAAgATYCAAsTACAAQbSMwgA2AgQgACABNgIACxMAIABBxIzCADYCBCAAIAE2AgALEwAgAEHUjMIANgIEIAAgATYCAAsTACAAQeSMwgA2AgQgACABNgIACxMAIABB9IzCADYCBCAAIAE2AgALEwAgAEGEjcIANgIEIAAgATYCAAsTACAAQZSNwgA2AgQgACABNgIACxMAIABBpI3CADYCBCAAIAE2AgALEwAgAEG0jcIANgIEIAAgATYCAAsTACAAQcSNwgA2AgQgACABNgIACxMAIABB1I3CADYCBCAAIAE2AgALEwAgAEHkjcIANgIEIAAgATYCAAsTACAAQfSNwgA2AgQgACABNgIACxMAIABBhI7CADYCBCAAIAE2AgALEwAgAEGUjsIANgIEIAAgATYCAAsTACAAQaSOwgA2AgQgACABNgIACxAAIABBAzYCACAAIAE2AgQLEAAgAEECNgIAIAAgATYCBAsQACAAQQA2AgAgACABNgIECw4AIAAgAUEYaiACENcCCxMAIABBkNLCADYCBCAAIAE2AgALEwAgAEHo1MIANgIEIAAgATYCAAsTACAAQfDXwgA2AgQgACABNgIACxMAIABBsNjCADYCBCAAIAE2AgALEwAgAEHw2MIANgIEIAAgATYCAAsPACAAIAFB4ABqIAIQ1wILEAAgAEEJNgIAIAAgATYCBAsTACAAQdTbwgA2AgQgACABNgIACxAAIABBBjYCACAAIAE2AgQLEwAgAEGw3sIANgIEIAAgATYCAAsQACAAQQU2AgAgACABNgIECxMAIABBjOHCADYCBCAAIAE2AgALDgAgACABQTRqIAIQ1wILEAAgAEEINgIAIAAgATYCBAsQACAAQQo2AgAgACABNgIECxMAIABBsObCADYCBCAAIAE2AgALEQAgACABKgIAIAEqAgQQ5QYLEAAgAEELNgIAIAAgATYCBAsTACAAQazpwgA2AgQgACABNgIACxEAIAAgASoCACABKgIEEMIDCxAAIABBDDYCACAAIAE2AgQLEwAgAEHU7cIANgIEIAAgATYCAAsZACAAQoCAgIDw//+//wA3AgggAEIANwIACxAAIABBBzYCACAAIAE2AgQLEAAgAEENNgIAIAAgATYCBAsTACAAQdCuwwA2AgQgACABNgIACxAAIABBDjYCACAAIAE2AgQLEwAgAEHsrsMANgIEIAAgATYCAAsQACAAQQ82AgAgACABNgIECxMAIABBiK/DADYCBCAAIAE2AgALEAAgAEEQNgIAIAAgATYCBAsTACAAQaSvwwA2AgQgACABNgIACxAAIABBETYCACAAIAE2AgQLEwAgAEHAr8MANgIEIAAgATYCAAsRACAAKAIAIAAoAgQgARDiAQsfACABKAIUIAAoAgAgACgCBCABQRhqKAIAKAIMEQUACyEAIABC2N797/ftoNaKfzcDCCAAQq/D14rE8PndNjcDAAsgACAAQsWAsKa9qOHJSzcDCCAAQpXM9oWR7LDtHzcDAAsTACAAQai8wwA2AgQgACABNgIACxEAIAEgACgCACAAKAIEENQBCwwAIAAgASACIAMQVQsMACAAIAEgAiADEGwLDAAgACABIAIgAxBSCwwAIAAgASACIAMQVgsNACAAIAEgAiADEIQBCw0AIAAgASACIAMQrwELDQAgACABIAIgAxCMAwsNACAAIAEgAiADEL8BCw0AIAAgASACIAMQvAELDQAgACABIAIgAxDtAgvKAwIEfQF/IwBBEGsiASQAAkACQAJAAkACQAJAAkAgAg4DAAECAwtDAABAQBCbASEFIABBATYCACAAQQxqQwAAgL9DAACAPyADQQRxGyAFlTgCACAAQQhqQwAAgL9DAACAPyAD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aiICQYABSw0CIAFBAUG/3cMAQQIgACADakGAAWpBACAAaxCNAgshACADQYABaiQADAILIAJBgAFB3N3DABDiCAALIAJBgAFB3N3DABDiCAALIAALCwAgACMAaiQAIwALHAAgASgCFEH8gsAAQREgAUEYaigCACgCDBEFAAscACABKAIUQcyxwABBFCABQRhqKAIAKAIMEQUACxwAIAEoAhRB8LHAAEEUIAFBGGooAgAoAgwRBQALDAAgACgCACABENELCw4AIABBzJTAACABELICCxwAIAEoAhRB4JbAAEEFIAFBGGooAgAoAgwRBQALCQAgACABEBQACw0AQZy+wABBGxD3DAALDgBBt77AAEHPABD3DAALDAAgACgCACABEOYICw4AIAFBpNDAAEECENQBCwsAIAAgASACELkBCwsAIAAgASACENcCC40CAgN/Bn0jAEEgayIDJAAgA0EANgIQIANCgICA/AM3AgggA0EUaiIEIAEgAiADQQhqIgUQjwQgA0GAgID8ezYCCCADKgIUIQYgBCABIAIgBRCPBCADQoCAgICAgIDAPzcCCCADKgIUIQcgBCABIAIgBRCPBCADQYCAgPx7NgIMIAMqAhghCCAEIAEgAiAFEI8EIANCgICAgICAgMA/NwIMIAMqAhghCSAEIAEgAiAFEI8EIANBgICA/Hs2AhAgAyoCHCEKIAQgASACIAUQjwQgAyoCHCELIABBFGogCjgCACAAQRBqIAg4AgAgACAGOAIMIAAgCzgCCCAAIAk4AgQgACAHOAIAIANBIGokAAuNAgIDfwZ9IwBBIGsiAyQAIANBADYCECADQoCAgPwDNwIIIANBFGoiBCABIAIgA0EIaiIFELQDIANBgICA/Hs2AgggAyoCFCEGIAQgASACIAUQtAMgA0KAgICAgICAwD83AgggAyoCFCEHIAQgASACIAUQtAMgA0GAgID8ezYCDCADKgIYIQggBCABIAIgBRC0AyADQoCAgICAgIDAPzcCDCADKgIYIQkgBCABIAIgBRC0AyADQYCAgPx7NgIQIAMqAhwhCiAEIAEgAiAFELQDIAMqAhwhCyAAQRRqIAo4AgAgAEEQaiAIOAIAIAAgBjgCDCAAIAs4AgggACAJOAIEIAAgBzgCACADQSBqJAALCwAgAiAAIAEQuQELDQAgACoCJEMAAAAAkgsO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cwDIARAAHwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuOC9zcmMvd2FrZXIucnMAAPABEABqAAAAaAAAACsAAABjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlAPABEABqAAAAAwEAACsAAADwARAAagAAAN4AAAAvAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Nyb3NzYmVhbS1jaGFubmVsLTAuNS44L3NyYy9jaGFubmVsLnJzuAIQAGwAAAD/AgAAFQAAALgCEABsAAAABwMAABUAAAALAAAACAAAAAQAAAAMAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Nyb3NzYmVhbS1jaGFubmVsLTAuNS44L3NyYy9mbGF2b3JzL3plcm8ucnMAAABUAxAAcQAAAGYBAAArAAAAY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZQBUAxAAcQAAAMAAAAA2AAAAVAMQAHEAAAC5AAAANgAAAFQDEABxAAAAFgEAACsAAAB2YXJpYW50IGluZGV4IDAgPD0gaSA8IDI0BBAAGAAAAHZhcmlhbnQgaW5kZXggMCA8PSBpIDwgMTkAAABUBBAAGQAAAHN0cnVjdCBHcmFwaCB3aXRoIDIgZWxlbWVudHN4BBAAHAAAAHN0cnVjdCBMVSB3aXRoIDIgZWxlbWVudHMAAACcBBAAGQAAAHN0cnVjdCBSaWdpZEJvZHlTZXQgd2l0aCAyIGVsZW1lbnRzAMAEEAAjAAAAc3RydWN0IElzbGFuZE1hbmFnZXIgd2l0aCA1IGVsZW1lbnRz7AQQACQAAABzdHJ1Y3QgQ29udmV4UG9seWhlZHJvbiB3aXRoIDggZWxlbWVudHMAGAUQACcAAABzdHJ1Y3QgQ29udGFjdE1hbmlmb2xkRGF0YSB3aXRoIDcgZWxlbWVudHMAAEgFEAAqAAAAc3RydWN0IEdlbmVyaWNUcmlNZXNoIHdpdGggNyBlbGVtZW50cwAAAHwFEAAlAAAAdmFyaWFudCBpbmRleCAwIDw9IGkgPCAzrAUQABgAAAB2YXJpYW50IGluZGV4IDAgPD0gaSA8IDTMBRAAGAAAAHN0cnVjdCBUcmlNZXNoQ29ubmVjdGVkQ29tcG9uZW50cyB3aXRoIDMgZWxlbWVudHMAAADsBRAAMQAAAHN0cnVjdCBHZW5lcmljSGVpZ2h0RmllbGQgd2l0aCA1IGVsZW1lbnRzAAAAKAYQACkAAABzdHJ1Y3QgTXVsdGlib2R5IHdpdGggMTYgZWxlbWVudHMAAABcBhAAIQAAAHN0cnVjdCBTQVBSZWdpb24gd2l0aCA3IGVsZW1lbnRziAYQACAAAABzdHJ1Y3QgSW1wdWxzZUpvaW50IHdpdGggNSBlbGVtZW50cwCwBhAAIwAAAHN0cnVjdCBJbnRlcm5hbEVkZ2VzRml4ZXIgd2l0aCAyIGVsZW1lbnRzAAAA3AYQACkAAABzdHJ1Y3QgR2VuZXJpY1Fidmggd2l0aCA1IGVsZW1lbnRzAAAQBxAAIgAAAHN0cnVjdCBNdWx0aWJvZHlKb2ludCB3aXRoIDMgZWxlbWVudHMAAAA8BxAAJQAAAHN0cnVjdCBJbXB1bHNlSm9pbnRTZXQgd2l0aCA0IGVsZW1lbnRzAABsBxAAJgAAAHN0cnVjdCBNdWx0aWJvZHlKb2ludFNldCB3aXRoIDQgZWxlbWVudHOcBxAAKAAAAHN0cnVjdCBNdWx0aWJvZHlXb3Jrc3BhY2Ugd2l0aCAyIGVsZW1lbnRzAAAAzAcQACkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3V0aWxzL2FycmF5LnJzAAAIEABnAAAASgAAAA0AAAB2YXJpYW50IGluZGV4IDAgPD0gaSA8IDZ4CBAAGAAAAHN0cnVjdCBUcmlNZXNoU2hhcGVDb250YWN0TWFuaWZvbGRzV29ya3NwYWNlIHdpdGggNCBlbGVtZW50c5gIEAA8AAAAc3RydWN0IEhlaWdodEZpZWxkU2hhcGVDb250YWN0TWFuaWZvbGRzV29ya3NwYWNlIHdpdGggMyBlbGVtZW50c9wIEABAAAAAc3RydWN0IEhlaWdodEZpZWxkQ29tcG9zaXRlU2hhcGVDb250YWN0TWFuaWZvbGRzV29ya3NwYWNlIHdpdGggMyBlbGVtZW50cwAAACQJEABJAAAAY2Fubm90IHJlY3Vyc2l2ZWx5IGFjcXVpcmUgbXV0ZXh4CRAAIAAAAC9ydXN0Yy84MmUxNjA4ZGZhNmUwYjU1NjkyMzI1NTllM2QzODVmZWE1YTkzMTEyL2xpYnJhcnkvc3RkL3NyYy9zeXMvd2FzbS8uLi91bnN1cHBvcnRlZC9sb2Nrcy9tdXRleC5ycwAAoAkQAGYAAAAUAAAACQAAAAcAAAAIAAAABAAAAA0AAAAOAAAABwAAACQAAAAEAAAADwAAAAcAAAAMAAAABAAAABAAAAARAAAADAAAAAQAAAASAAAAEwAAABQAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5AAQAAAAAAAAAAQAAABUAAAAvcnVzdGMvODJlMTYwOGRmYTZlMGI1NTY5MjMyNTU5ZTNkMzg1ZmVhNWE5MzExMi9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMArAoQAEsAAAAzCgAADgAAAGNhbm5vdCB0cmFuc211dGVfY29weSBpZiBEc3QgaXMgbGFyZ2VyIHRoYW4gU3JjAAgLEAAvAAAABwAAAAQAAAAEAAAAFgAAAAcAAAAEAAAABAAAABcAAABFcnJvcmludmFsaWQgdmFsdWU6ICwgZXhwZWN0ZWQgAGULEAAPAAAAdAsQAAsAAABpbnZhbGlkIGxlbmd0aCAAkAsQAA8AAAB0CxAACwAAAFBvaXNvbkVycm9yAAcAAAAMAAAABAAAABgAAAAZAAAAGgAAABsAAAAHAAAADAAAAAQAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3BhcnRpdGlvbmluZy9xYnZoL3RyYXZlcnNhbC5ycwD8CxAAdwAAAE0AAAAjAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9zaGFwZS90cmltZXNoLnJzAAAAhAwQAGkAAADvAwAAHgAAAIQMEABpAAAA8AMAAB4AAACEDBAAaQAAAPEDAAAeAAAABwAAACQAAAAEAAAAHgAAAB8AAAAgAAAAIQAAAAcAAAAkAAAABAAAAB4AAAAfAAAAIAAAACEAAAAiAAAAHQAAAP//////////L1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2luZGV4bWFwLTEuOS4zL3NyYy9tYXAvY29yZS5yc2gNEABkAAAAKgAAACMAAABoDRAAZAAAACIAAAAPAAAATWF0cml4IGluaXQuIGVycm9yOiB0aGUgc2xpY2UgZGlkIG5vdCBjb250YWluIHRoZSByaWdodCBudW1iZXIgb2YgZWxlbWVudHMuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9jb25zdHJ1Y3Rpb24ucnMAAAA3DhAAbgAAAGsAAAAJAAAATWF0cml4IGluZGV4IG91dCBvZiBib3VuZHMuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvZGF0YS9hcmVuYS5ycwAA0w4QAGcAAAAKAQAAKAAAAGNvcnJ1cHQgZnJlZSBsaXN0AAAATA8QABEAAADTDhAAZwAAAAsBAAArAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvZGF0YS9ncmFwaC5yc2Fzc2VydGlvbiBmYWlsZWQ6IHNlbGYuZWRnZXMubGVuKCkgIT0gY3JhdGU6OklOVkFMSURfVVNJWkUAAAB4DxAAZwAAANwAAAAJAAAAR3JhcGg6OmFkZF9lZGdlOiBub2RlIGluZGljZXMgb3V0IG9mIGJvdW5kcwAsEBAAKwAAAHgPEABnAAAA5AAAABsAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLm5vZGVzLmxlbigpICE9IGNyYXRlOjpJTlZBTElEX1VTSVpFAAB4DxAAZwAAALMAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvZGF0YS9jb2FyZW5hLnJzAAAAvBAQAGkAAABdAAAAIgAAALwQEABpAAAATgAAABIAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9qb2ludC9pbXB1bHNlX2pvaW50L2ltcHVsc2Vfam9pbnRfc2V0LnJzAEgREACLAAAADQEAABcAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9qb2ludC9tdWx0aWJvZHlfam9pbnQvbXVsdGlib2R5X2pvaW50X3NldC5ycwDkERAAjwAAAH0AAAArAAAA5BEQAI8AAAB+AAAARgAAAOQREACPAAAAqAAAAD4AAADkERAAjwAAAKkAAAAvAAAA5BEQAI8AAACsAAAAQgAAAFBhcmVudCByaWdpZCBib2R5IG5vdCBmb3VuZC4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9nZW9tZXRyeS9jb2xsaWRlcl9zZXQucnMAAOASEAByAAAAeQAAAA4AAADgEhAAcgAAAH0AAAA1AAAA4BIQAHIA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AAAGAAAABgAAAAYAAAACAAAAAQAAAEludmFsaWQgc2l6ZSA6IHNpemVzIG11c3QgZml0IGluIGEgdXNpemUgKDAgdG8gKRweEAANAAAAKR4QACIAAABLHhAAAQAAAP////9jbG9zdXJlIGludm9rZWQgcmVjdXJzaXZlbHkgb3IgYWZ0ZXIgYmVpbmcgZHJvcHBlZAAAhgAAAAQAAAAEAAAAhwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9qcy1zeXMtMC4zLjY0L3NyYy9saWIucnMAAKweEABeAAAAChgAAAEAAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0Y2FwYWNpdHkgb3ZlcmZsb3cAVGhlIGxvb3NlbmluZyBtYXJnaW4gbXVzdCBiZSBwb3NpdGl2ZS4AAJgfEAAmAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9ib3VuZGluZ192b2x1bWUvYWFiYi5yc8gfEABwAAAAJAIAAAkAAABJbmRleCBvdXQgb2YgYm91bmRzAEggEAATAAAAQWxsb2NhdGlvbiBmcm9tIGl0ZXJhdG9yIGVycm9yOiB0aGUgaXRlcmF0b3IgZGlkIG5vdCB5aWVsZCB0aGUgY29ycmVjdCBudW1iZXIgb2YgZWxlbWVudHMuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9kZWZhdWx0X2FsbG9jYXRvci5ycwAAAL4gEABzAAAAfAAAAAkAAAAAAAAAjQAAAAAAAAABAAAAjgAAAI8AAACQAAAAkQAAAJIAAACTAAAAlAAAAJUAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9kZWZhdWx0X3F1ZXJ5X2Rpc3BhdGNoZXIucnMAAACfIRAAegAAANcBAAAxAAAAnyEQAHoAAADqAQAAMQAAAJ8hEAB6AAAAEQIAACcAAACfIRAAegAAAEECAAAvAAAAnyEQAHoAAABQAgAALwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuOC9zcmMvd2FrZXIucnMAAGwiEABqAAAAaAAAACsAAABsIhAAagAAAEYAAAAoAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQBsIhAAagAAANEAAAArAAAAbCIQAGoAAADeAAAALwAAAGwiEABqAAAAxgAAACsAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Nyb3NzYmVhbS1jaGFubmVsLTAuNS44L3NyYy9jaGFubmVsLnJzfCMQAGwAAAC7AQAALQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuOC9zcmMvY29udGV4dC5yc/gjEABsAAAAMwAAAB4AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY3Jvc3NiZWFtLWNoYW5uZWwtMC41Ljgvc3JjL2ZsYXZvcnMvbGlzdC5ycwAAAHQkEABxAAAABQEAAEMAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY3Jvc3NiZWFtLWNoYW5uZWwtMC41Ljgvc3JjL2ZsYXZvcnMvemVyby5ycwAAAPgkEABxAAAA6AAAAC0AAACWAAAACAAAAAQAAACXAAAA+CQQAHEAAADhAAAAKwAAAPgkEABxAAAA/wAAACYAAAD4JBAAcQAAAAEBAABJAAAA+CQQAHEAAAACAQAARwAAAPgkEABxAAAAAQEAACcAAAD4JBAAcQAAAAYBAABJAAAA+CQQAHEAAAAHAQAARwAAAPgkEABxAAAABgEAACcAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY3Jvc3NiZWFtLWNoYW5uZWwtMC41Ljgvc3JjL2ZsYXZvcnMvYXJyYXkucnMAAAwmEAByAAAAdgEAACoAAAAMJhAAcgAAAHgBAAA3AAAATWF0cml4IGluaXQuIGZyb20gaXRlcmF0b3I6IGl0ZXJhdG9yIG5vdCBsb25nIGVub3VnaC4AAAC+IBAAcwAAAEoAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy91dGlscy9hcnJheS5ycwDoJhAAZwAAAEoAAAANAAAAY2Fubm90IHJlY3Vyc2l2ZWx5IGFjcXVpcmUgbXV0ZXhgJxAAIAAAAC9ydXN0Yy84MmUxNjA4ZGZhNmUwYjU1NjkyMzI1NTllM2QzODVmZWE1YTkzMTEyL2xpYnJhcnkvc3RkL3NyYy9zeXMvd2FzbS8uLi91bnN1cHBvcnRlZC9sb2Nrcy9tdXRleC5ycwAAiCcQAGYAAAAUAAAACQAAAJgAAAAIAAAABAAAAJkAAACaAAAAmAAAACQAAAAEAAAAmwAAACgpAEGw0MAAC5tDYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVyb21pbiA+IG1heCwgb3IgZWl0aGVyIHdhcyBOYU4uIG1pbiA9ICwgbWF4ID0gAAAASSgQACQAAABtKBAACAAAAC9ydXN0Yy84MmUx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ACcAAABsLRAAdAAAAIIBAAATAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9wYXJ0aXRpb25pbmcvcWJ2aC90cmF2ZXJzYWwucnMAsC8QAHcAAADaAAAAIwAAALAvEAB3AAAAmgAAACMAAACwLxAAdwAAAE0AAAAjAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jb250YWN0X21hbmlmb2xkcy9pbnRlcm5hbF9lZGdlc19maXhlci5yc1gwEACIAAAAcAAAACoAAABYMBAAiAAAAF8AAAAfAAAAWDAQAIgAAABgAAAAHwAAAFgwEACIAAAAiwAAAE0AAABYMBAAiAAAAIYAAAA4AAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jb250YWN0X21hbmlmb2xkcy9jb250YWN0X21hbmlmb2xkc19oYWxmc3BhY2VfcGZtLnJzADAxEACTAAAAQAAAABQAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2NvbnRhY3RfbWFuaWZvbGRzL2NvbnRhY3RfbWFuaWZvbGRzX3RyaW1lc2hfc2hhcGUucnMA1DEQAJMAAABhAAAAHAAAANQxEACTAAAAYQAAADYAAADUMRAAkwAAALAAAAApAAAA1DEQAJMAAAC2AAAAJgAAAJgAAAAkAAAABAAAAKYAAACnAAAAqAAAAKkAAACqAAAAqwAAAKwAAACtAAAArgAAAK8AAACYAAAAJAAAAAQAAACbAAAAsAAAALEAAACyAAAAswAAAJgAAAAkAAAABAAAAJgAAAAkAAAABAAAAJsAAACwAAAAsQAAALIAAACzAAAA/DIQAPwyEACxAAAAmAAAACQAAAAEAAAAtAAAALUAAAC2AAAAtwAAALgAAAC5AAAApgAAAKcAAACoAAAAqQAAAKoAAACrAAAArAAAAK0AAACuAAAArwAAAKgyEACbAAAAFCgQALAAAACxAAAAsgAAALMAAADcMhAA/DIQAPwyEACxAAAACDMQADcAAAA4AAAAOQAAADoAAAC6AAAAPAAAALsAAAC8AAAAvQAAAL4AAAC/AAAAwAAAAMEAAADCAAAARQAAAMMAAADUMRAAkwAAANAAAAAgAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jb250YWN0X21hbmlmb2xkcy9jb250YWN0X21hbmlmb2xkc19oZWlnaHRmaWVsZF9zaGFwZS5ycwAANBAAlwAAAHcAAAAcAAAAADQQAJcAAAB3AAAANgAAAAA0EACXAAAAiwAAAC0AAAAANBAAlwAAAKIAAAAmAAAAADQQAJcAAADAAAAAMgAAAAA0EACXAAAAwQAAADcAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2NvbnRhY3RfbWFuaWZvbGRzL2NvbnRhY3RfbWFuaWZvbGRzX2NvbXBvc2l0ZV9zaGFwZV9zaGFwZS5ycwD4NBAAmwAAAEoAAAAcAAAA+DQQAJsAAABKAAAANgAAAJgAAAA0AAAABAAAAMQAAADFAAAA+DQQAJsAAABeAAAAMQAAAPg0EACbAAAAewAAACoAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2NvbnRhY3RfbWFuaWZvbGRzL2NvbnRhY3RfbWFuaWZvbGRzX2hlaWdodGZpZWxkX2NvbXBvc2l0ZV9zaGFwZS5ycwAAAOg1EAChAAAAVAAAABwAAADoNRAAoQAAAFQAAAA2AAAA6DUQAKEAAACuAAAAMgAAAOg1EAChAAAArwAAADcAAACYAAAANAAAAAQAAADGAAAAxwAAAOg1EAChAAAAbAAAADUAAADoNRAAoQAAAIkAAAAuAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jb250YWN0X21hbmlmb2xkcy9jb250YWN0X21hbmlmb2xkc19jb21wb3NpdGVfc2hhcGVfY29tcG9zaXRlX3NoYXBlLnJzAAAAADcQAKUAAABJAAAAHAAAAAA3EAClAAAASQAAADYAAACYAAAAOAAAAAQAAADIAAAAyQAAAJgAAAA4AAAABAAAAMoAAADLAAAAADcQAKUAAAB3AAAAOQAAAAA3EAClAAAAlgAAADIAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2VwYS9lcGEzLnJzAAAQOBAAagAAAPAAAAAkAAAAEDgQAGoAAADxAAAAJAAAABA4EABqAAAA8gAAACQAAAAQOBAAagAAAA0BAAAnAAAAEDgQAGoAAAANAQAARAAAABA4EABqAAAAEgEAACcAAAAQOBAAagAAABIBAABEAAAAEDgQAGoAAAAXAQAAJwAAABA4EABqAAAAFwEAAEQAAAAQOBAAagAAABwBAAAnAAAAEDgQAGoAAAAcAQAARAAAABA4EABqAAAAIQEAACgAAAAQOBAAagAAAD0BAAAyAAAAEDgQAGoAAABEAQAAIgAAABA4EABqAAAAXQEAABcAAAAQOBAAagAAAF8BAAAsAAAAEDgQAGoAAABgAQAALAAAABA4EABqAAAAYQEAACwAAAAQOBAAagAAAJcBAAAXAAAAEDgQAGoAAACYAQAAIwAAABA4EABqAAAAbwEAAB8AAAAQOBAAagAAAIMBAAA6AAAAEDgQAGoAAACDAQAALwAAABA4EABqAAAAWAEAACwAAAAQOBAAagAAAKMBAAAkAAAAYXNzZXJ0aW9uIGZhaWxlZDogbWluX2JvdW5kID09IG1pbl9ib3VuZC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvZ2prL2dqay5ycwAAADQ6EABpAAAAjAAAAAkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3NoYXBlL2hlaWdodGZpZWxkMy5ycwAAsDoQAG4AAADZAAAAEQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvc2hhcGUvcG9seWdvbmFsX2ZlYXR1cmUzZC5ycwAAADA7EAB1AAAAvgAAABYAAAAAAAAAMDsQAHUAAAAZAQAAHgAAADA7EAB1AAAAGwEAADoAAAAwOxAAdQAAAEUBAAAeAAAAMDsQAHUAAABHAQAAOgAAADA7EAB1AAAAbgEAABEAAAAwOxAAdQAAAG8BAAARAAAAMDsQAHUAAAB0AQAAFQAAADA7EAB1AAAAdQEAABUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3NoYXBlL3RyaW1lc2gucnMAAAA8PBAAaQAAABwEAAAfAAAAPDwQAGkAAAAeBAAAGgAAADw8EABpAAAAHwQAABoAAAA8PBAAaQAAACAEAAAaAAAAaW5kZXggb3V0IG9mIGJvdW5kcwCYAAAAJAAAAAQAAADMAAAAzQAAAM4AAADPAAAAmAAAACQAAAAEAAAAzAAAAM0AAADOAAAAzwAAACIAAADQAAAAAAAAAP//////////L1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2luZGV4bWFwLTEuOS4zL3NyYy9tYXAvY29yZS5yc0g9EABkAAAAKgAAACMAAABIPRAAZAAAAKsCAAAeAAAASD0QAGQAAADQAQAAHgAAAGluZGV4IG5vdCBmb3VuZABIPRAAZAAAADcAAAAKAAAAYXNzZXJ0aW9uIGZhaWxlZDogaW5kaWNlcy5jYXBhY2l0eSgpIC0gaW5kaWNlcy5sZW4oKSA+PSBlbnRyaWVzLmxlbigpL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2luZGV4bWFwLTEuOS4zL3NyYy9tYXAvY29yZS9yYXcucnMAAABBPhAAaAAAABAAAAAFAAAAQT4QAGgAAACDAAAAGgAAAEg9EABkAAAAIgAAAA8AAABnZW1tOiBkaW1lbnNpb25zIG1pc21hdGNoIGZvciBhZGRpdGlvbi4A3D4QACcAAABHZW12OiBkaW1lbnNpb25zIG1pc21hdGNoLk1hdHJpeCBzbGljaW5nIG91dCBvZiBib3VuZHMuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9tYXRyaXhfdmlldy5yc0M/EABtAAAAFgEAAAkAAABDPxAAbQAAABoBAAAJAAAAUm93cyByYW5nZSBwYWlyOiB0aGUgcmFuZ2VzIG11c3Qgbm90IG92ZXJsYXAuAAAAQz8QAG0AAAASAwAABQAAAFJvd3MgcmFuZ2UgcGFpcjogaW5kZXggb3V0IG9mIHJhbmdlLkRhdGEgc3RvcmFnZSBidWZmZXIgZGltZW5zaW9uIG1pc21hdGNoLi9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9uYWxnZWJyYS0wLjMyLjMvc3JjL2Jhc2UvdmVjX3N0b3JhZ2UucnNbQBAAbQAAAFQAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9jb25zdHJ1Y3Rpb24ucnMAANhAEABuAAAAYAQAAAwAAABDb21wb25lbnR3aXNlIG11bC9kaXY6IG1pc21hdGNoZWQgbWF0cml4IGRpbWVuc2lvbnMuWEEQADQAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbmFsZ2VicmEtMC4zMi4zL3NyYy9iYXNlL2NvbXBvbmVudHdpc2UucnMAlEEQAG8AAACWAAAABQAAAE1hdHJpeCB2aWV3OiBpbnB1dCBkYXRhIGJ1ZmZlciB0b28gc21hbGwuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9jb25zdHJ1Y3Rpb25fdmlldy5ycz1CEABzAAAAMAAAAAkAAABNYXRyaXggaW5kZXggb3V0IG9mIGJvdW5kcy5NYXRyaXggYWRkaXRpb24vc3VidHJhY3Rpb24gZGltZW5zaW9ucyBtaXNtYXRjaC4A20IQADAAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbmFsZ2VicmEtMC4zMi4zL3NyYy9iYXNlL29wcy5ycwAAABRDEABlAAAAaAEAAAEAAAAgYW5kIDogbGVmdCByb3dzICE9IHJpZ2h0IHJvd3MuTWF0cml4IG11bHRpcGxpY2F0aW9uIG91dHB1dCBkaW1lbnNpb25zIG1pc21hdGNoIDogbGVmdCBjb2xzICE9IHJpZ2h0IHJvd3MuAACrQxAAMQAAAIxDEAAFAAAA3EMQABoAAAAUQxAAZQAAANUCAAAJAAAAQXhweTogbWlzbWF0Y2hlZCB2ZWN0b3Igc2hhcGVzLgAgRBAAHwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9uYWxnZWJyYS0wLjMyLjMvc3JjL2Jhc2UvYmxhcy5ycwAASEQQAGYAAABCAQAACQAAAEhEEABmAAAACAIAAAkAAABEb3QgcHJvZHVjdCBkaW1lbnNpb25zIG1pc21hdGNoIGZvciBzaGFwZXMgANBEEAArAAAAjEMQAAUAAACRQxAAGgAAAEhEEABmAAAAIAAAAAkAAABIRBAAZgAAABgDAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9tYXRyaXgucnNNYXRyaXggZWxlbWVudHMgc3dhcCBpbmRleCBvdXQgb2YgYm91bmRzLgAAADRFEABoAAAAvAQAAAkAAABVbmFibGUgdG8gY29weSBmcm9tIGEgbWF0cml4IHdpdGggYSBkaWZmZXJlbnQgc2hhcGUuNEUQAGgAAADlBAAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9uYWxnZWJyYS0wLjMyLjMvc3JjL2Jhc2UvZWRpdGlvbi5yc2Fzc2VydGlvbiBmYWlsZWQ6IGlyb3cxIDwgc2VsZi5ucm93cygpICYmIGlyb3cyIDwgc2VsZi5ucm93cygpABxGEABpAAAAOAEAAAkAAABUaGUgaW5wdXQgdmVjdG9yIG11c3Qgbm90IGJlIGVtcHR5Li9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9uYWxnZWJyYS0wLjMyLjMvc3JjL2Jhc2UvbWluX21heC5yc/dGEABpAAAA4QAAAAkAAABNYXhpbXVtIG51bWJlciBvZiBwZXJtdXRhdGlvbnMgZXhjZWVkZWQuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvbGluYWxnL3Blcm11dGF0aW9uX3NlcXVlbmNlLnJzmEcQAHgAAABVAAAADQAAAJhHEAB4AAAAWQAAABYAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbmFsZ2VicmEtMC4zMi4zL3NyYy9saW5hbGcvbHUucnNMVSBzb2x2ZSBtYXRyaXggZGltZW5zaW9uIG1pc21hdGNoLgAAAJZIEAAjAAAAMEgQAGYAAAD2AAAACQAAAExVIHNvbHZlOiB1bmFibGUgdG8gc29sdmUgYSBub24tc3F1YXJlIHN5c3RlbS4AADBIEABmAAAA+wAAAAkAAAAwSBAAZgAAAGgAAAAeAAAASW5kZXggb3V0IG9mIGJvdW5kcy4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbmFsZ2VicmEtMC4zMi4zL3NyYy9iYXNlL2luZGV4aW5nLnJzAAA4SRAAagAAAFIBAAAaAAAAmAAAAAgAAAAEAAAA0QAAAAIAAABAPRAAQdiTwQALq30vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9jb250cm9sL2NoYXJhY3Rlcl9jb250cm9sbGVyLnJzAAAA2EkQAHkAAADYAgAAOQAAANhJEAB5AAAA2QIAACMAAADYSRAAeQAAAMkCAAA4AAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvY29udHJvbC9yYXlfY2FzdF92ZWhpY2xlX2NvbnRyb2xsZXIucnOEShAAgAAAACIBAAAZAAAAhEoQAIAAAAA6AQAAJQAAAIRKEACAAAAATQEAACUAAACEShAAgAAAAFkBAAAqAAAAhEoQAIAAAACfAQAAHgAAAIRKEACAAAAAugEAAA4AAACEShAAgAAAANABAAAOAAAAhEoQAIAAAACoAgAAEgAAAIRKEACAAAAAqwIAACkAAACEShAAgAAAALACAAAoAAAAhEoQAIAAAAC2AgAAMQAAAIRKEACAAAAAYAIA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AD4AAABaUBAAdAAAADsBAAA+AAAAWlAQAHQAAACiAQAALQAAAGFzc2VydGlvbiBmYWlsZWQ6IHN0YXJ0X3RpbWUgPD0gZW5kX3RpbWUvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9jY2QvdG9pX2VudHJ5LnJzABRTEABzAAAANgAAAAkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9pbnRlZ3JhdGlvbl9wYXJhbWV0ZXJzLnJzmFMQAHwAAABgAAAAWgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2R5bmFtaWNzL2lzbGFuZF9tYW5hZ2VyLnJzJFQQAHQAAACAAAAALwAAACRUEAB0AAAAgAAAAE8AAAAkVBAAdAAAAIEAAAAhAAAAJFQQAHQAAACFAAAAOQAAAFRoZSBtaW5pbXVtIGlzbGFuZCBzaXplIG11c3QgYmUgYXQgbGVhc3QgMS4A2FQQACsAAAAkVBAAdAAAAKAAAAAJAAAAJFQQAHQAAAAMAQAAVAAAACRUEAB0AAAALQEAADsAAAAkVBAAdAAAAOIAAAAdAAAAJFQQAHQAAADVAAAAQAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2R5bmFtaWNzL2pvaW50L2ltcHVsc2Vfam9pbnQvaW1wdWxzZV9qb2ludF9zZXQucnMAXFUQAIsAAAAfAQAAIwAAAFxVEACLAAAAJgEAAB4AAABcVRAAiwAAACcBAAAeAAAAXFUQAIsAAAA0AQAAFAAAAFxVEACLAAAATQEAABsAAABcVRAAiwAAAG4BAABXAAAAXFUQAIsAAABzAQAAJwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2R5bmFtaWNzL2pvaW50L211bHRpYm9keV9qb2ludC9tdWx0aWJvZHkucnMAAABYVhAAhQAAAK8AAAA5AAAAWFYQAIUAAACLAAAAJQAAAFhWEACFAAAAiwAAABgAAABYVhAAhQAAAIgAAAAYAAAAWFYQAIUAAACOAAAALgAAAFhWEACFAAAAjgAAACYAAABYVhAAhQAAALgAAAAnAAAAWFYQAIUAAADJAAAAFgAAAFhWEACFAAAAYQEAABgAAABYVhAAhQAAAHcBAAAdAAAAWFYQAIUAAAB9AQAALgAAAFhWEACFAAAAfgEAACgAAABYVhAAhQAAAIABAAArAAAAWFYQAIUAAACTAQAAIAAAAFhWEACFAAAAqgEAACUAAABYVhAAhQAAAL0BAAAjAAAAWFYQAIUAAADHAQAAHQAAAFhWEACFAAAAyAEAACQAAABYVhAAhQAAAMwBAABGAAAAWFYQAIUAAADAAQAAQgAAAFhWEACFAAAA4gEAACMAAABYVhAAhQAAAOsBAAAuAAAAWFYQAIUAAADLAgAAPAAAAFhWEACFAAAAywIAACQAAABYVhAAhQAAAMwCAAA4AAAAWFYQAIUAAADMAgAAIAAAAFhWEACFAAAALAIAACMAAABYVhAAhQAAAC0CAAAdAAAAWFYQAIUAAAAxAgAANQAAAFhWEACFAAAATQIAACwAAABYVhAAhQAAAJACAAAgAAAAWFYQAIUAAACRAgAAIAAAAFhWEACFAAAAVAIAAC4AAABYVhAAhQAAAFUCAAAoAAAAWFYQAIUAAABWAgAANAAAAFhWEACFAAAAlAIAADIAAABYVhAAhQAAAJUCAAAyAAAAWFYQAIUAAACpAgAAMgAAAFhWEACFAAAAqgIAADIAAABYVhAAhQAAAPcCAAA7AAAAWFYQAIUAAAADAwAAMAAAAFhWEACFAAAACQMAAB8AAABYVhAAhQAAABEDAAAwAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi52ZWxvY2l0aWVzLmxlbigpID49IFNQQVRJQUxfRElNAABYVhAAhQAAABUDAAAVAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5kYW1waW5nLmxlbigpID49IFNQQVRJQUxfRElNAFhWEACFAAAAFgMAABUAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmFjY2VsZXJhdGlvbnMubGVuKCkgPj0gU1BBVElBTF9ESU0AAABYVhAAhQAAABcDAAAVAAAAWFYQAIUAAAAcAwAAHwAAAFhWEACFAAAALQMAADAAAABYVhAAhQAAADYDAAAaAAAAWFYQAIUAAABEAwAAJwAAAFhWEACFAAAAWAMAACgAAABYVhAAhQAAAFkDAAAmAAAAQSByaWdpZC1ib2R5IHRoYXQgaXMgbm90IGF0IHRoZSByb290IG9mIGEgbXVsdGlib2R5IG11c3QgYmUgZHluYW1pYy7IWhAARAAAAFhWEACFAAAAZgMAAA0AAABYVhAAhQAAAJQDAAAfAAAAWFYQAIUAAACWAwAAHAAAAFhWEACFAAAAmgMAAC0AAABYVhAAhQAAAJoDAAAWAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvZHluYW1pY3Mvam9pbnQvbXVsdGlib2R5X2pvaW50L211bHRpYm9keV9qb2ludF9zZXQucnMAZFsQAI8AAADBAAAASgAAAGRbEACPAAAAxAAAAEMAAABkWxAAjwAAAMUAAAA9AAAAZFsQAI8AAADHAAAAMQAAAGRbEACPAAAA2gAAADkAAABkWxAAjwAAAN4AAAA1AAAAZFsQAI8AAADfAAAATQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2R5bmFtaWNzL2pvaW50L211bHRpYm9keV9qb2ludC9tdWx0aWJvZHlfbGluay5ycwAAZFwQAIoAAABxAAAAHQAAAEludGVybmFsIGVycm9yOiBjaXJjdWxhciByaWdpZCBib2R5IGRlcGVuZGVuY3kuAABdEAAvAAAAZFwQAIoAAABzAAAACQAAAEludmFsaWQgcGFyZW50IGluZGV4LgAAAEhdEAAVAAAAZFwQAIoAAAB3AAAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2R5bmFtaWNzL2pvaW50L211bHRpYm9keV9qb2ludC9tdWx0aWJvZHlfam9pbnQucnMAeF0QAIsAAABhAAAALgAAAHhdEACLAAAAYQAAABwAAABub3QgeWV0IGltcGxlbWVudGVkAHhdEACLAAAAbwAAABEAAAB4XRAAiwAAAHMAAAA7AAAAeF0QAIsAAAB6AAAAEgAAAHhdEACLAAAAVgAAACMAAAB4XRAAiwAAAKQAAAARAAAAeF0QAIsAAACsAAAAEgAAAHhdEACLAAAAygAAAC4AAAB4XRAAiwAAAMoAAAAiAAAAeF0QAIsAAADOAAAAEQAAAHhdEACLAAAA0gAAADoAAAB4XRAAiwAAANUAAAASAAAAeF0QAIsAAAC5AAAAMQAAAHhdEACLAAAA4wAAABQAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9qb2ludC9tdWx0aWJvZHlfam9pbnQvdW5pdF9tdWx0aWJvZHlfam9pbnQucnMIXxAAkAAAACEAAAAOAAAACF8QAJAAAAAiAAAADgAAAAhfEACQAAAAPAAAAAUAAAAIXxAAkAAAAFcAAAAOAAAACF8QAJAAAABYAAAADgAAAAhfEACQAAAAfgAAAAUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9yaWdpZF9ib2R5X2NvbXBvbmVudHMucnMA+F8QAHsAAADPAwAAOwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4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cy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2dlb21ldHJ5L2Jyb2FkX3BoYXNlX211bHRpX3NhcC9zYXBfcmVnaW9uLnJz8nwQAIYAAABHAAAACQAAAPJ8EACGAAAARgAAAAkAAADyfBAAhgAAAIkAAAAJAAAA8nwQAIYAAACBAAAADQAAAPJ8EACGAAAAqQAAACIAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9nZW9tZXRyeS9icm9hZF9waGFzZV9tdWx0aV9zYXAvc2FwX3V0aWxzLnJzAAAAyH0QAIUAAAANAAAABQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2dlb21ldHJ5L2ludGVyYWN0aW9uX2dyYXBoLnJzAGB+EAB3AAAAggAAAD8AAABgfhAAdwAAAIMAAAAYAAAAYH4QAHcAAACDAAAAMQAAAGB+EAB3AAAA6AAAAD0AAABgfhAAdwAAAOkAAAApAAAAYH4QAHcAAADpAAAAQgAAAGB+EAB3AAAA8AAAADkAAABgfhAAdwAAAPEAAAAlAAAAYH4QAHcAAADxAAAAPgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2dlb21ldHJ5L25hcnJvd19waGFzZS5ycwAAaH8QAHIAAAC3AAAAKAAAAGh/EAByAAAAjQEAABEAAABofxAAcgAAAJkBAAARAAAAaH8QAHIAAADjAQAALwAAAGh/EAByAAAA4wEAAE4AAABofxAAcgAAAMQCAAAgAAAAaH8QAHIAAADFAgAAIAAAAGh/EAByAAAAxwIAACEAAABofxAAcgAAAMgCAAAhAAAAaH8QAHIAAADYAgAAJgAAAGh/EAByAAAA3AIAACYAAABofxAAcgAAACwDAAAhAAAAaH8QAHIAAAAtAwAAIQAAAGh/EAByAAAAPQMAACYAAABofxAAcgAAAEEDAAAmAAAAaH8QAHIAAACjAwAAJQAAAGh/EAByAAAApwMAACUAAABBIGNvbnRhY3QgbWFuaWZvbGQgY2Fubm90IGNvbnRhaW4gbW9yZSB0aGFuIDI1NSBjb250YWN0cyBjdXJyZW50bHkuAOyAEABDAAAAaH8QAHIAAAC5AwAAGQAAAGh/EAByAAAACgQAACMAAABofxAAcgAAABsEAAAuAAAAaH8QAHIAAAAnBAAALgAAAGh/EAByAAAAOwQAABwAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9nZW9tZXRyeS9jb2xsaWRlcl9zZXQucnMAAIiBEAByAAAArAAAADYAAACIgRAAcgAAABcBAAAcAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvcGlwZWxpbmUvcGh5c2ljc19waXBlbGluZS5ycwAAHIIQAHYAAAAwAQAAIQAAAByCEAB2AAAAMQEAACEAAAAcghAAdgAAAOYAAAAdAAAAHIIQAHYAAADtAAAAKwAAAByCEAB2AAAA7wAAADMAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9waXBlbGluZS9xdWVyeV9waXBlbGluZS5yc+SCEAB0AAAAXQEAABoAAADkghAAdAAAAIUBAAA/AAAA5IIQAHQAAACQAQAANgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL3BpcGVsaW5lL3VzZXJfY2hhbmdlcy5ycwAAiIMQAHIAAAAUAAAALAAAAFVuYWJsZSB0byBpbmRleCB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLgAMhBAAJwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL3V0aWxzLnJzAAA8hBAAYgAAABEDAAAJAAAAJEkQABQAAAA8hBAAYgAAABIDAAAJAAAAPIQQAGIAAAAfAwAACQAAAER5bmFtaWNGaXhlZEtpbmVtYXRpY1Bvc2l0aW9uQmFzZWRLaW5lbWF0aWNWZWxvY2l0eUJhc2VkBwAAAAUAAAAWAAAAFgAAANiEEADfhBAA5IQQAPqEEAABAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3NpbWJhLTAuOC4xL3NyYy9zaW1kL2F1dG9fc2ltZF9pbXBsLnJzNIUQAGwAAAC/BQAAAQAAANQAAAAIAAAABAAAANUAAADWAAAA1wAAAFAAAAAEAAAA2AAAANkAAADEAAAABAAAANoAAADbAAAASAAAAAQAAADcAAAA1AAAAAgAAAAEAAAA3QAAANQAAAAIAAAABAAAAN4AAADUAAAADAAAAAQAAADfAAAA1AAAACQAAAAEAAAA4AAAANQAAAAMAAAABAAAAOEAAADiAAAAIAAAAAQAAADjAAAA5AAAAHgAAAAEAAAA5QAAAOYAAABIAAAABAAAAOcAAADoAAAAYAAAAAQAAADpAAAA1AAAABgAAAAEAAAA6gAAAOsAAAAgAAAABAAAAOwAAADUAAAABAAAAAQAAADtAAAA7gAAAGAAAAAEAAAA7wAAANQAAAAQAAAABAAAAPAAAADUAAAAHAAAAAQAAADxAAAA8gAAAFgAAAAEAAAA8wAAANQAAAAMAAAABAAAAPQAAADUAAAAKAAAAAQAAAD1AAAA9gAAAGQAAAAEAAAA9wAAANQAAAAMAAAABAAAAPgAAABhc3NlcnRpb24gZmFpbGVkOiBtaW4gPD0gbWF4L3J1c3RjLzgyZTE2MDhkZmE2ZTBiNTU2OTIzMjU1OWUzZDM4NWZlYTVhOTMxMTIvbGlicmFyeS9jb3JlL3NyYy9jbXAucnMAUIcQAEcAAABsAwAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IG1pZCA8PSBzZWxmLmxlbigpY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZQAA1AAAAAQAAAAEAAAA+QAAANQAAAAEAAAABAAAAPoAAAAvcnVzdGMvODJlMTYwOGRmYTZlMGI1NTY5MjMyNTU5ZTNkMzg1ZmVhNWE5MzExMi9saWJyYXJ5L2FsbG9jL3NyYy92ZWMvbW9kLnJzGIgQAEwAAACyBQAADQAAAAAAAAD//////////3iIEABBkJHCAAuGsgFjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2luZGV4bWFwLTEuOS4zL3NyYy9tYXAvY29yZS5ycwC7iBAAZAAAACoAAAAjAAAAu4gQAGQAAACrAgAAHgAAALuIEABkAAAAIgAAAA8AAABNYXRyaXggaW5kZXggb3V0IG9mIGJvdW5kcy4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbmFsZ2VicmEtMC4zMi4zL3NyYy9iYXNlL2JsYXMucnNEb3QgcHJvZHVjdCBkaW1lbnNpb25zIG1pc21hdGNoIGZvciBzaGFwZXMgIGFuZCA6IGxlZnQgcm93cyAhPSByaWdodCByb3dzLgDRiRAAKwAAAPyJEAAFAAAAAYoQABoAAABriRAAZgAAACAAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvbGluYWxnL3N5bW1ldHJpY19laWdlbi5ycwBEihAAcwAAAMkAAAAvAAAARIoQAHMAAACQAAAAIQAAAESKEABzAAAAkQAAACEAAABEihAAcwAAALAAAAA4AAAARIoQAHMAAAD+AAAAGAAAAESKEABzAAAAQAAAAD4AAABEihAAcwAAAFQAAAAgAAAASW5kZXggb3V0IG9mIGJvdW5kcy7UAAAACAAAAAQAAAD7AAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9ib3VuZGluZ192b2x1bWUvYWFiYi5yc1RoZSBsb29zZW5pbmcgbWFyZ2luIG11c3QgYmUgcG9zaXRpdmUuAAC8ixAAJgAAAEyLEABwAAAAJAIAAAkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL2JvdW5kaW5nX3ZvbHVtZS9hYWJiX3V0aWxzLnJzUG9pbnQgY2xvdWQgQWFiYiBjb25zdHJ1Y3Rpb246IHRoZSBpbnB1dCBpdGVyYXRvciBzaG91bGQgeWllbGQgYXQgbGVhc3Qgb25lIHBvaW50LvyLEAB2AAAAQAAAABgAAAD8ixAAdgAAAFcAAAAYAAAAdHdvIGFycmF5cyBjb250YWluaW5nIGF0IGxlYXN0ICBmbG9hdHMAAOSMEAAfAAAAA40QAAcAAAAYAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9tYXNzX3Byb3BlcnRpZXMvbWFzc19wcm9wZXJ0aWVzX3RyaW1lc2gzZC5ycwAAACCNEACFAAAAFgAAABcAAAAgjRAAhQAAABcAAAAXAAAAII0QAIUAAAAYAAAAFwAAACCNEACFAAAApQAAABIAAAAgjRAAhQAAAKYAAAASAAAAII0QAIUAAACnAAAAEgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcGFydGl0aW9uaW5nL3FidmgvdXRpbHMucnMACI4QAHMAAAAlAAAAEQAAAAiOEABzAAAAEgAAABEAAAAIjhAAcwAAABMAAAAWAAAACI4QAHMAAAAVAAAAEgAAAAiOEABzAAAAFwAAABUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3BhcnRpdGlvbmluZy9xYnZoL2J1aWxkLnJzAMyOEABzAAAARAEAABMAAADMjhAAcwAAACwBAAAZAAAAzI4QAHMAAAAtAQAAEgAAAMyOEABzAAAAswEAABMAAADMjhAAcwAAALUBAAATAAAAzI4QAHMAAAC3AQAAEwAAAMyOEABzAAAAuwEAACEAAADMjhAAcwAAAIEBAAAqAAAAzI4QAHMAAAB5AQAAHwAAAMyOEABzAAAAWwEAACYAAADMjhAAcwAAAF0BAAAdAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9wYXJ0aXRpb25pbmcvcWJ2aC90cmF2ZXJzYWwucnMA8I8QAHcAAABNAAAAIwAAAPCPEAB3AAAAmgAAACMAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2NsaXAvY2xpcF9hYWJiX2xpbmUucnMAAACIkBAAdQAAAI0AAAATAAAAiJAQAHUAAACbAAAAEwAAAFRoZSBwcm94aW1pdHkgbWFyZ2luIG11c3QgYmUgcG9zaXRpdmUgb3IgbnVsbC4AACCREAAuAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jbG9zZXN0X3BvaW50cy9jbG9zZXN0X3BvaW50c19iYWxsX2JhbGwucnMAAABYkRAAiQAAAA8AAAAFAAAAVGhlIGNvbXBvc2l0ZSBzaGFwZSBtdXN0IG5vdCBiZSBlbXB0eS4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2Nsb3Nlc3RfcG9pbnRzL2Nsb3Nlc3RfcG9pbnRzX2NvbXBvc2l0ZV9zaGFwZV9zaGFwZS5ycwAakhAAlQAAABsAAAAKAAAAGpIQAJUAAACBAAAAIQAAABqSEACVAAAAggAAACEAAAAakhAAlQAAAIMAAAAhAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZS9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvY2xvc2VzdF9wb2ludHMvY2xvc2VzdF9wb2ludHNfY3Vib2lkX2N1Ym9pZC5ycwAAABiTEACNAAAAUgAAAAUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2Nsb3Nlc3RfcG9pbnRzL2Nsb3Nlc3RfcG9pbnRzX2N1Ym9pZF90cmlhbmdsZS5ycwC4kxAAjwAAAE0AAAAFAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jbG9zZXN0X3BvaW50cy9jbG9zZXN0X3BvaW50c19oYWxmc3BhY2Vfc3VwcG9ydF9tYXAucnMAAABYlBAAlQAAAA0AAAAFAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jbG9zZXN0X3BvaW50cy9jbG9zZXN0X3BvaW50c19zdXBwb3J0X21hcF9zdXBwb3J0X21hcC5ycwAAlRAAlwAAACAAAAAkAAAA1AAAABgAAAAEAAAA/AAAAP0AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2NvbnRhY3QvY29udGFjdF9zdXBwb3J0X21hcF9zdXBwb3J0X21hcC5ycwAAALyVEACJAAAAHgAAACQAAADrAAAAIAAAAAQAAADrAAAAIAAAAAQAAADsAAAA/gAAAP8AAAAAAQAAAQEAAFiWEABYlhAA/wAAAAIBAAADAQAA4gAAACAAAAAEAAAA4gAAACAAAAAEAAAA4wAAAAQBAAAFAQAABgEAAAcBAACYlhAAmJYQAAUBAAAIAQAACQEAANsAAABIAAAABAAAANsAAABIAAAABAAAANwAAAAKAQAACwEAAAwBAAANAQAA2JYQANiWEAALAQAADgEAAA8BAADmAAAASAAAAAQAAADmAAAASAAAAAQAAADnAAAAEAEAABEBAAASAQAAEwEAABiXEAAYlxAAEQEAABQBAAAVAQAA8gAAAFgAAAAEAAAA8gAAAFgAAAAEAAAA8wAAABYBAAAXAQAAGAEAABkBAABYlxAAWJcQABcBAAAaAQAAGwEAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvZGlzdGFuY2UvZGlzdGFuY2VfY29tcG9zaXRlX3NoYXBlX3NoYXBlLnJzAAAAmJcQAIkAAAAXAAAACgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvZGlzdGFuY2UvZGlzdGFuY2Vfc3VwcG9ydF9tYXBfc3VwcG9ydF9tYXAucnMANJgQAIsAAAA0AAAAJAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvZXBhL2VwYTMucnMAANCYEABqAAAARgAAAA4AAADQmBAAagAAAEcAAAAOAAAA0JgQAGoAAABIAAAADgAAANCYEABqAAAAXgAAAA0AAADQmBAAagAAAF8AAAANAAAA0JgQAGoAAABgAAAADQAAANCYEABqAAAAbgAAAA0AAADQmBAAagAAAG8AAAATAAAA0JgQAGoAAABwAAAAEwAAANCYEABqAAAAgQAAAA0AAADQmBAAagAAAIcAAAAcAAAA0JgQAGoAAACHAAAAEwAAANCYEABqAAAAiAAAABMAAADQmBAAagAAAIkAAAATAAAA0JgQAGoAAACKAAAAEwAAANCYEABqAAAA8AAAACQAAADQmBAAagAAAPEAAAAkAAAA0JgQAGoAAADyAAAAJAAAANCYEABqAAAADQEAACcAAADQmBAAagAAAA0BAABEAAAA0JgQAGoAAAASAQAAJwAAANCYEABqAAAAEgEAAEQAAADQmBAAagAAABcBAAAnAAAA0JgQAGoAAAAXAQAARAAAANCYEABqAAAAHAEAACcAAADQmBAAagAAABwBAABEAAAA0JgQAGoAAAAhAQAAKAAAANCYEABqAAAAPQEAADIAAADQmBAAagAAAEQBAAAiAAAA0JgQAGoAAABdAQAAFwAAANCYEABqAAAAXwEAACwAAADQmBAAagAAAGABAAAsAAAA0JgQAGoAAABhAQAALAAAANCYEABqAAAAlwEAABcAAADQmBAAagAAAJgBAAAjAAAA0JgQAGoAAABvAQAAHwAAANCYEABqAAAAgwEAADoAAADQmBAAagAAAIMBAAAvAAAA0JgQAGoAAABYAQAALAAAANCYEABqAAAAowEAACQAAADQmBAAagAAAKkBAAAXAAAA0JgQAGoAAACyAQAAJgAAANCYEABqAAAAtgEAAB8AAADQmBAAagAAALgBAAAfAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9namsvZ2prLnJzAAAA/JsQAGkAAABDAAAADgAAAGFzc2VydGlvbiBmYWlsZWQ6IG1pbl9ib3VuZCA9PSBtaW5fYm91bmT8mxAAaQAAAIwAAAAJAAAA/JsQAGkAAABPAQAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvZ2prL3Zvcm9ub2lfc2ltcGxleDMucnMAAMCcEAB2AAAAJwAAABcAAADAnBAAdgAAAFAAAAASAAAAKIsQABQAAADAnBAAdgAAAFsAAAAJAAAAwJwQAHYAAABgAAAACQAAAMCcEAB2AAAAYQAAAAoAAADAnBAAdgAAAGcAAAAJAAAAwJwQAHYAAABtAAAACgAAAMCcEAB2AAAAjgAAABYAAADAnBAAdgAAAOgAAAAeAAAAwJwQAHYAAAARAQAAHgAAAGFzc2VydGlvbiBmYWlsZWQ6IHNlbGYuZGltID09IDMAwJwQAHYAAAC8AAAADQAAAMCcEAB2AAAAXwEAABQAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2ludGVyc2VjdGlvbl90ZXN0L2ludGVyc2VjdGlvbl90ZXN0X3N1cHBvcnRfbWFwX3N1cHBvcnRfbWFwLnJzAAAAIJ4QAJ0AAAA5AAAAKQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvbm9ubGluZWFyX3RpbWVfb2ZfaW1wYWN0L25vbmxpbmVhcl90aW1lX29mX2ltcGFjdF9jb21wb3NpdGVfc2hhcGVfc2hhcGUucnMAAADUAAAABAAAAAQAAAAcAQAAHQEAAB4BAAAfAQAAIAEAACEBAAAiAQAAIwEAACQBAAAlAQAA1AAAAAQAAAAEAAAA7QAAACYBAAAnAQAAKAEAACkBAADUAAAABAAAAAQAAADUAAAABAAAAAQAAADtAAAAJgEAACcBAAAoAQAAKQEAANCfEADQnxAAJwEAANQAAAAEAAAABAAAACoBAAArAQAALAEAAC0BAAAuAQAALwEAABwBAAAdAQAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAJAEAACUBAAB8nxAA7QAAAKSGEAAmAQAAJwEAACgBAAApAQAAsJ8QANCfEADQnxAAJwEAANyfEAAwAQAAMQEAADIBAAAzAQAANAEAADUBAAA2AQAANwEAADgBAAA5AQAAOgEAADsBAAA8AQAAPQEAAD4BAAA/AQAA0J4QAKkAAACcAAAAKgAAANCeEACpAAAAxAAAABUAAADQnhAAqQAAAL0AAAAhAAAA0J4QAKkAAAC+AAAAIQAAANCeEACpAAAAvwAAACEAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L25vbmxpbmVhcl90aW1lX29mX2ltcGFjdC9ub25saW5lYXJfdGltZV9vZl9pbXBhY3Rfc3VwcG9ydF9tYXBfc3VwcG9ydF9tYXAucnMAFKEQAKsAAADJAAAAKAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvcG9pbnQvcG9pbnRfY29tcG9zaXRlX3NoYXBlLnJzAAAA0KEQAH0AAAAjAAAAUwAAANChEAB9AAAAngAAAA4AAADQoRAAfQAAAEgAAABUAAAA0KEQAH0AAABwAAAANwAAANChEAB9AAAAjwAAADcAAADQoRAAfQAAALsAAAAxAAAA0KEQAH0AAAC+AAAAJQAAANChEAB9AAAAuQAAACMAAABhc3NlcnRpb24gZmFpbGVkOiBzcW5hYiAhPSAwLjAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L3BvaW50L3BvaW50X3NlZ21lbnQucnMA7qIQAHUAAABIAAAADQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMu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bDMvdHJpYW5nbGVfZmFjZXQucnMAAGTNEACGAAAAFQAAABQAAABkzRAAhgAAABUAAAAhAAAAZM0QAIYAAAAWAAAAFAAAAGFzc2VydGlvbiBmYWlsZWQ6IGRpc3RhbmNlID4gY3JhdGU6Om1hdGg6OkRFRkFVTFRfRVBTSUxPTgAAAGTNEACGAAAAKgAAAAkAAABkzRAAhgAAADUAAAAbAAAAZM0QAIYAAAA1AAAAKwAAAGTNEACGAAAASwAAAAkAAABkzRAAhgAAAFgAAAASAAAAZM0QAIYAAABZAAAAEgAAAGTNEACGAAAAcAAAABYAAABkzRAAhgAAAHEAAAAWAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy90cmFuc2Zvcm1hdGlvbi9jb252ZXhfaHVsbDMvdmFsaWRhdGlvbi5ycwAA2M4QAIIAAAAPAAAAFAAAANjOEACCAAAADwAAAAkAAADYzhAAggAAABAAAAAJAAAA2M4QAIIAAAARAAAACQAAANjOEACCAAAAFQAAAAkAAADYzhAAggAAAAkAAAARAAAAYXNzZXJ0aW9uIGZhaWxlZDogZmFjZXRzW2ZhY2V0LmFkaltpXV0udmFsaWTYzhAAggAAAAkAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy90cmFuc2Zvcm1hdGlvbi9jb252ZXhfaHVsbF91dGlscy5yc/jPEAB8AAAAKQAAACIAAAD4zxAAfAAAAEIAAAAiAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy90cmFuc2Zvcm1hdGlvbi90b19vdXRsaW5lL2JhbGxfdG9fb3V0bGluZS5ycwAAAJTQEACFAAAAHgAAABQAAACU0BAAhQAAACIAAAAUAAAAlNAQAIUAAAA8AAAAEQAAAJTQEACFAAAAQAAAABEAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3RyYW5zZm9ybWF0aW9uL3RvX291dGxpbmUvY2Fwc3VsZV90b19vdXRsaW5lLnJzXNEQAIgAAAAcAAAACAAAAAAAAAABAAAAAAAAAAIAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3RyYW5zZm9ybWF0aW9uL3RvX291dGxpbmUvcm91bmRfY29udmV4X3BvbHloZWRyb25fdG9fb3V0bGluZS5ycwTSEACYAAAAMAAAABoAAAAE0hAAmAAAACIAAAA0AAAABNIQAJgAAAAjAAAAHgAAAATSEACYAAAADwAAABoAAAAE0hAAmAAAABIAAAA4AAAABNIQAJgAAAAVAAAAHAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvdHJhbnNmb3JtYXRpb24vdG9fdHJpbWVzaC9jb252ZXhfcG9seWhlZHJvbl90b190cmltZXNoLnJzAAD80hAAkgAAAA0AAAAcAAAA/NIQAJIAAAAPAAAAMwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvdHJhbnNmb3JtYXRpb24vdXRpbHMucnOw0xAAcAAAAMQAAAAQAAAAsNMQAHAAAADFAAAAEAAAAGFzc2VydGlvbiBmYWlsZWQ6IG5zdWJkaXZzID4gMAAAsNMQAHAAAADWAAAABQAAALDTEABwAAAARAEAAB0AAACw0xAAcAAAADMBAAAnAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy91dGlscy9hcnJheS5ycwCQ1BAAZwAAAEoAAAANAAAAQ2Fubm90IGNvbXB1dGUgdGhlIGNlbnRlciBvZiBsZXNzIHRoYW4gMSBwb2ludC4ACNUQAC8AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3V0aWxzL2NlbnRlci5yc0DVEABoAAAABwAAAAUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3V0aWxzL2NsZWFudXAucnMAAAC41RAAaQAAAB0AAAARAAAAuNUQAGkAAAAeAAAAEQAAALjVEABpAAAAHwAAABEAAAC41RAAaQAAABMAAAANAAAAuNUQAGkAAAAVAAAADQAAALjVEABpAAAAFgAAABcAAAC41RAAaQAAAAwAAAAJAAAAuNUQAGkAAAANAAAACQAAALjVEABpAAAADgAAAAkAAAAEuxAAewAAAAcAAAAYAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9ib3VuZGluZ192b2x1bWUvYm91bmRpbmdfc3BoZXJlLnJzAMTWEAB7AAAAfQAAAAkAAADUAAAAEAAAAAQAAAB9AwAAfgMAAH8DAACAAwAA1AAAACgAAAAEAAAAgQMAAIIDAACDAwAAhAMAANQAAAAMAAAABAAAAIUDAACGAwAAhwMAAIgDAADUAAAADAAAAAQAAACJAwAAigMAAIsDAACMAwAA9gAAAGQAAAAEAAAAjQMAAI4DAACPAwAAkAMAAEludGVybmFsRXJyb3IAAADUAAAABAAAAAQAAACRAwAASGFzaCB0YWJsZSBjYXBhY2l0eSBvdmVyZmxvd/zXEAAcAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2hhc2hicm93bi0wLjEyLjMvc3JjL3Jhdy9tb2QucnMAAAAg2BAAZQAAAFoAAAAoAAAAOGPtPtoPST9emHs/2g/JP2k3rDFoISIztA8UM2ghojMAAAA/AAAAvwMAAAAEAAAABAAAAAYAAACD+aIARE5uAPwpFQDRVycA3TT1AGLbwAA8mZUAQZBDAGNR/gC73qsAt2HFADpuJADSTUIASQbgAAnqLgAcktEA6x3+ACmxHADoPqcA9TWCAES7LgCc6YQAtCZwAEF+XwDWkTkAU4M5AJz0OQCLX4QAKPm9APgfOwDe/5cAD5gFABEv7wAKWosAbR9tAM9+NgAJyycARk+3AJ5mPwAt6l8Auid1AOXrxwA9e/EA9zkHAJJSigD7a+oAH7FfAAhdjQAwA1YAe/xGAPCrawAgvM8ANvSaAOOpHQBeYZEACBvmAIWZZQCgFF8AjUBoAIDY/wAnc00ABgYxAMpWFQDJqHMAe+JgAGuMwAAAAABA+yH5PwAAAAAtRHQ+AAAAgJhG+DwAAABgUcx4OwAAAICDG/A5AAAAQCAlejgAAACAIoLjNgAAAAAd82k12w9JP9sPSb/kyxZAAAAAAAAAAIDbD0lAYnl0ZSBhcnJheWJvb2xlYW4gYGA62hAACQAAAEPaEAABAAAAaW50ZWdlciBgAAAAVNoQAAkAAABD2hAAAQAAAGZsb2F0aW5nIHBvaW50IGBw2hAAEAAAAEPaEAABAAAAY2hhcmFjdGVyIGAAkNoQAAsAAABD2hAAAQAAAHN0cmluZyAArNoQAAcAAAAw2hAACgAAAHVuaXQgdmFsdWUAAMTaEAAKAAAAT3B0aW9uIHZhbHVl2NoQAAwAAABuZXd0eXBlIHN0cnVjdAAA7NoQAA4AAABzZXF1ZW5jZQTbEAAIAAAAbWFwABTbEAADAAAAZW51bSDbEAAEAAAAdW5pdCB2YXJpYW50LNsQAAwAAABuZXd0eXBlIHZhcmlhbnQAQNsQAA8AAAB0dXBsZSB2YXJpYW50AAAAWNsQAA0AAABzdHJ1Y3QgdmFyaWFudAAAcNsQAA4AAABhIG5vbnplcm8gdXNpemV1c2l6ZXJlZW50cmFudCBpbml0AACc2xAADgAAAC9ydXN0Yy84MmUxNjA4ZGZhNmUwYjU1NjkyMzI1NTllM2QzODVmZWE1YTkzMTEyL2xpYnJhcnkvY29yZS9zcmMvY2VsbC9vbmNlLnJzAAAAtNsQAE0AAADZAAAAQgAAAG92ZXJmbG93IGluIER1cmF0aW9uOjpuZXcAAAAU3BAAGQAAAC9ydXN0Yy84MmUxNjA4ZGZhNmUwYjU1NjkyMzI1NTllM2QzODVmZWE1YTkzMTEyL2xpYnJhcnkvY29yZS9zcmMvdGltZS5yczjcEABIAAAAygAAABUAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlAJgDAAAMAAAABAAAAJkDAACaAwAAmwMAAGxpYnJhcnkvc3RkL3NyYy90aHJlYWQvbW9kLnJzZmFpbGVkIHRvIGdlbmVyYXRlIHVuaXF1ZSB0aHJlYWQgSUQ6IGJpdHNwYWNlIGV4aGF1c3RlZPHcEAA3AAAA1NwQAB0AAACcBAAADQAAAG92ZXJmbG93IHdoZW4gYWRkaW5nIGR1cmF0aW9uIHRvIGluc3RhbnRsaWJyYXJ5L3N0ZC9zcmMvdGltZS5ycwBo3RAAFwAAAKEBAAAhAAAAbWVtb3J5IGFsbG9jYXRpb24gb2YgIGJ5dGVzIGZhaWxlZAAAkN0QABUAAACl3RAADQAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc8TdEAAYAAAAYgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJz7N0QABwAAACEAgAAHgAAAJgDAAAMAAAABAAAAJwDAACdAwAACAAAAAQAAACeAwAAnQMAAAgAAAAEAAAAnwMAAKADAAChAwAAEAAAAAQAAACiAwAAowMAAKQDAAAAAAAAAQAAAKUDAAB0aW1lIG5vdCBpbXBsZW1lbnRlZCBvbiB0aGlzIHBsYXRmb3JtAAAAcN4QACUAAABsaWJyYXJ5L3N0ZC9zcmMvc3lzL3dhc20vLi4vdW5zdXBwb3J0ZWQvdGltZS5ycwCg3hAALwAAAA0AAAAJAAAASGFzaCB0YWJsZSBjYXBhY2l0eSBvdmVyZmxvd+DeEAAcAAAAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNC4yL3NyYy9yYXcvbW9kLnJzAAAE3xAAKgAAAFgAAAAoAAAARXJyb3JMYXlvdXRFcnJvcqYDAAAMAAAABAAAAKcDAACoAwAAqQMAAGxp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").buffer)})}function KH(){return function(){let g,A;try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.version(B);var I=ZI()[B/4+0],C=ZI()[B/4+1];return g=I,A=C,MH(I,C)}finally{p.__wbindgen_add_to_stack_pointer(16),p.__wbindgen_free(g,A,1)}}()}Ni[45]=62,Ni[95]=63;var bV=Object.freeze({__proto__:null,version:KH,Vector3:Zn,VectorOps:uA,Quaternion:vh,RotationOps:Cg,SdpMatrix3:KM,SdpMatrix3Ops:bh,get RigidBodyType(){return fi},RigidBody:Wh,RigidBodyDesc:Ri,RigidBodySet:JM,IntegrationParameters:qM,get JointType(){return WC},get MotorModel(){return Oh},get JointAxesMask(){return _h},ImpulseJoint:xi,UnitImpulseJoint:CS,FixedImpulseJoint:mM,RopeImpulseJoint:LM,SpringImpulseJoint:YM,PrismaticImpulseJoint:HM,RevoluteImpulseJoint:TM,GenericImpulseJoint:xM,SphericalImpulseJoint:vM,JointData:pQ,ImpulseJointSet:bM,MultibodyJoint:ke,UnitMultibodyJoint:BS,FixedMultibodyJoint:OM,PrismaticMultibodyJoint:_M,RevoluteMultibodyJoint:ZM,SphericalMultibodyJoint:PM,MultibodyJointSet:WM,get CoefficientCombineRule(){return ts},CCDSolver:jM,IslandManager:VM,BroadPhase:XM,NarrowPhase:zM,TempContactManifold:$M,Shape:fC,get ShapeType(){return GC},Ball:iS,HalfSpace:Ap,Cuboid:QS,RoundCuboid:eS,Capsule:ES,Segment:tS,Triangle:oS,RoundTriangle:nS,Polyline:sS,TriMesh:aS,ConvexPolyhedron:Lr,RoundConvexPolyhedron:Yr,Heightfield:rS,Cylinder:lS,RoundCylinder:cS,Cone:DS,RoundCone:hS,get ActiveCollisionTypes(){return mr},Collider:Vh,get MassPropsMode(){return SE},ColliderDesc:EC,ColliderSet:op,get FeatureType(){return so},Ray:fH,RayIntersection:Ms,RayColliderIntersection:ns,RayColliderToi:sl,PointProjection:ds,PointColliderProjection:os,ShapeTOI:ko,ShapeColliderTOI:ps,ShapeContact:ao,World:al,PhysicsPipeline:Ip,SerializationPipeline:jh,get ActiveEvents(){return ae},TempContactForceEvent:Ep,EventQueue:tp,get ActiveHooks(){return qr},get SolverFlags(){return Ph},DebugRenderBuffers:Cp,DebugRenderPipeline:Bp,get QueryFilterFlags(){return Zh},QueryPipeline:gp,init:RH,CharacterCollision:ip,KinematicCharacterController:Qp,DynamicRayCastVehicleController:ep});const OV=Object.freeze(Object.defineProperty({__proto__:null,get ActiveCollisionTypes(){return mr},get ActiveEvents(){return ae},get ActiveHooks(){return qr},Ball:iS,BroadPhase:XM,CCDSolver:jM,Capsule:ES,CharacterCollision:ip,get CoefficientCombineRule(){return ts},Collider:Vh,ColliderDesc:EC,ColliderSet:op,Cone:DS,ConvexPolyhedron:Lr,Cuboid:QS,Cylinder:lS,DebugRenderBuffers:Cp,DebugRenderPipeline:Bp,DynamicRayCastVehicleController:ep,EventQueue:tp,get FeatureType(){return so},FixedImpulseJoint:mM,FixedMultibodyJoint:OM,GenericImpulseJoint:xM,HalfSpace:Ap,Heightfield:rS,ImpulseJoint:xi,ImpulseJointSet:bM,IntegrationParameters:qM,IslandManager:VM,get JointAxesMask(){return _h},JointData:pQ,get JointType(){return WC},KinematicCharacterController:Qp,get MassPropsMode(){return SE},get MotorModel(){return Oh},MultibodyJoint:ke,MultibodyJointSet:WM,NarrowPhase:zM,PhysicsPipeline:Ip,PointColliderProjection:os,PointProjection:ds,Polyline:sS,PrismaticImpulseJoint:HM,PrismaticMultibodyJoint:_M,Quaternion:vh,get QueryFilterFlags(){return Zh},QueryPipeline:gp,Ray:fH,RayColliderIntersection:ns,RayColliderToi:sl,RayIntersection:Ms,RevoluteImpulseJoint:TM,RevoluteMultibodyJoint:ZM,RigidBody:Wh,RigidBodyDesc:Ri,RigidBodySet:JM,get RigidBodyType(){return fi},RopeImpulseJoint:LM,RotationOps:Cg,RoundCone:hS,RoundConvexPolyhedron:Yr,RoundCuboid:eS,RoundCylinder:cS,RoundTriangle:nS,SdpMatrix3:KM,SdpMatrix3Ops:bh,Segment:tS,SerializationPipeline:jh,Shape:fC,ShapeColliderTOI:ps,ShapeContact:ao,ShapeTOI:ko,get ShapeType(){return GC},get SolverFlags(){return Ph},SphericalImpulseJoint:vM,SphericalMultibodyJoint:PM,SpringImpulseJoint:YM,TempContactForceEvent:Ep,TempContactManifold:$M,TriMesh:aS,Triangle:oS,UnitImpulseJoint:CS,UnitMultibodyJoint:BS,Vector3:Zn,VectorOps:uA,World:al,default:bV,init:RH,version:KH},Symbol.toStringTag,{value:"Module"}));var _V=function g(A,I){if(A===I)return!0;if(A&&I&&typeof A=="object"&&typeof I=="object"){if(A.constructor!==I.constructor)return!1;var C,B,i;if(Array.isArray(A)){if(C=A.length,C!=I.length)return!1;for(B=C;B--!==0;)if(!g(A[B],I[B]))return!1;return!0}if(A.constructor===RegExp)return A.source===I.source&&A.flags===I.flags;if(A.valueOf!==Object.prototype.valueOf)return A.valueOf()===I.valueOf();if(A.toString!==Object.prototype.toString)return A.toString()===I.toString();if(i=Object.keys(A),C=i.length,C!==Object.keys(I).length)return!1;for(B=C;B--!==0;)if(!Object.prototype.hasOwnProperty.call(I,i[B]))return!1;for(B=C;B--!==0;){var Q=i[B];if(!g(A[Q],I[Q]))return!1}return!0}return A!==A&&I!==I};const np=Xh(_V),wS=[];function JH(g,A,I,C=0,B=!1){for(const Q of A)if(np(I,Q.args)){if(B)return;if(Q.error)throw Q.error;if(Q.response)return Q.response;throw Q.promise}const i={args:I,promise:g(...I).then(Q=>i.response=Q??!0).catch(Q=>i.error=Q??"unknown error").then(()=>{C>0&&setTimeout(()=>{const Q=A.indexOf(i);Q!==-1&&A.splice(Q,1)},C)})};if(A.push(i),!B)throw i.promise}function ZV(g,...A){if(A===void 0||A.length===0)g.splice(0,g.length);else{const I=g.find(C=>np(A,C.args));if(I){const C=g.indexOf(I);C!==-1&&g.splice(C,1)}}}function ro(g,...A){return JH(g,wS,A,ro.lifespan)}ro.lifespan=0;ro.clear=(...g)=>ZV(wS,...g);ro.preload=(g,...A)=>void JH(g,wS,A,ro.lifespan,!0);ro.peek=(...g)=>{var A;return(A=wS.find(I=>np(g,I.args)))==null?void 0:A.response};function PV(g,A=1e-4){A=Math.max(A,Number.EPSILON);const I={},C=g.getIndex(),B=g.getAttribute("position"),i=C?C.count:B.count;let Q=0;const e=Object.keys(g.attributes),E={},t={},n=[],a=["getX","getY","getZ","getW"];for(let G=0,h=e.length;G[]))}const r=Math.log10(1/A),l=Math.pow(10,r);for(let G=0;G{const[A,I,C]=g;return new _(A,I,C)},rK=({x:g,y:A,z:I,w:C})=>jV.set(g,A,I,C),zV=g=>{if(Array.isArray(g))return new Zn(g[0],g[1],g[2]);if(typeof g=="number")return new Zn(g,g,g);{const A=g;return new Zn(A.x,A.y,A.z)}},$V={fixed:1,dynamic:0,kinematicPosition:2,kinematicVelocity:3},qH=g=>$V[g],AX=(g,A)=>{const I=Array.from(g);for(let C=0;Cg?g instanceof Wg?[g.x,g.y,g.z,g.w]:g instanceof _||g instanceof YQ?[g.x,g.y,g.z]:Array.isArray(g)?g:[g]:[0];function EE(g){const A=T.useRef();return A.current===void 0&&(A.current={value:typeof g=="function"?g():g}),A.current.value}const IX=g=>{const A=T.useRef(g),I=T.useRef(0),C=T.useRef(0);T.useEffect(()=>{A.current=g},[g]),T.useEffect(()=>{const B=()=>{const i=performance.now(),Q=i-C.current;I.current=requestAnimationFrame(B),A.current(Q/1e3),C.current=i};return I.current=requestAnimationFrame(B),()=>cancelAnimationFrame(I.current)},[])},gX=({onStep:g,updatePriority:A})=>(FC((I,C)=>{g(C)},A),null),CX=({onStep:g})=>(IX(A=>{g(A)}),null),BX=({onStep:g,type:A,updatePriority:I})=>A==="independent"?$I.createElement(CX,{onStep:g}):$I.createElement(gX,{onStep:g,updatePriority:I});var iX=T.memo(BX);function QX(g,A){if(g==null)return{};var I={},C=Object.keys(g),B,i;for(i=0;i=0)&&(I[B]=g[B]);return I}function sp(g,A){if(g==null)return{};var I=QX(g,A),C,B;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(g);for(B=0;B=0)&&Object.prototype.propertyIsEnumerable.call(g,C)&&(I[C]=g[C])}return I}const eX=["mass","linearDamping","angularDamping","type","onCollisionEnter","onCollisionExit","onIntersectionEnter","onIntersectionExit","onContactForce","children","canSleep","ccd","gravityScale"],EX=(g,A,I)=>{const C=A.slice();if(g==="heightfield"){const i=C[3];return i.x*=I.x,i.x*=I.y,i.x*=I.z,C}if(g==="trimesh"||g==="convexHull")return C[0]=AX(C[0],I),C;const B=[I.x,I.y,I.z,I.x,I.x];return C.map((i,Q)=>B[Q]*i)},tX=(g,A,I,C)=>{const B=EX(g.shape,g.args,I),i=EC[g.shape](...B);return A.createCollider(i,C==null?void 0:C())},oX=["shape","args"],lK="Please pick ONLY ONE of the `density`, `mass` and `massProperties` options.",nX=(g,A)=>{if(A.density!==void 0){if(A.mass!==void 0||A.massProperties!==void 0)throw new Error(lK);g.setDensity(A.density);return}if(A.mass!==void 0){if(A.massProperties!==void 0)throw new Error(lK);g.setMass(A.mass);return}A.massProperties!==void 0&&g.setMassProperties(A.massProperties.mass,A.massProperties.centerOfMass,A.massProperties.principalAngularInertia,A.massProperties.angularInertiaLocalFrame)},LH={sensor:(g,A)=>{g.setSensor(A)},collisionGroups:(g,A)=>{g.setCollisionGroups(A)},solverGroups:(g,A)=>{g.setSolverGroups(A)},friction:(g,A)=>{g.setFriction(A)},frictionCombineRule:(g,A)=>{g.setFrictionCombineRule(A)},restitution:(g,A)=>{g.setRestitution(A)},restitutionCombineRule:(g,A)=>{g.setRestitutionCombineRule(A)},quaternion:()=>{},position:()=>{},rotation:()=>{},scale:()=>{}},YH=Object.keys(LH),sX=(g,A,I)=>{const C=I.get(g.handle);if(C){var B;const i=C.object.parent.getWorldScale(VV),Q=(B=C.worldParent)===null||B===void 0?void 0:B.matrixWorld.clone().invert();C.object.updateWorldMatrix(!0,!1),mE.copy(C.object.matrixWorld),Q&&mE.premultiply(Q),mE.decompose(CB,BQ,lo),g.parent()?(g.setTranslationWrtParent({x:CB.x*i.x,y:CB.y*i.y,z:CB.z*i.z}),g.setRotationWrtParent(BQ)):(g.setTranslation({x:CB.x*i.x,y:CB.y*i.y,z:CB.z*i.z}),g.setRotation(BQ)),YH.forEach(e=>{if(e in A){const E=A[e];LH[e](g,E,A)}}),nX(g,A)}},aX=(g,A,I)=>{const C=T.useMemo(()=>YH.flatMap(B=>mH(A[B])),[A]);T.useEffect(()=>{const B=g();sX(B,A,I)},[...C,g])},rX=g=>{let A=!1;return g.traverseAncestors(I=>{I.userData.r3RapierType==="MeshCollider"&&(A=!0)}),A},lX=(g,A,I)=>({collider:g,worldParent:I||void 0,object:A}),cX={cuboid:"cuboid",ball:"ball",hull:"convexHull",trimesh:"trimesh"},DX=({object:g,ignoreMeshColliders:A=!0,options:I})=>{const C=[];g.updateWorldMatrix(!0,!1);const B=g.matrixWorld.clone().invert(),i=Q=>{if("isMesh"in Q){if(A&&rX(Q))return;const e=Q.getWorldScale(lo),E=cX[I.colliders||"cuboid"];Q.updateWorldMatrix(!0,!1),mE.copy(Q.matrixWorld).premultiply(B).decompose(CB,BQ,lo);const t=new YQ().setFromQuaternion(BQ,"XYZ"),{geometry:n}=Q,{args:a,offset:r}=hX(n,I.colliders||"cuboid"),l=Fg(Fg({},TH(I)),{},{args:a,shape:E,rotation:[t.x,t.y,t.z],position:[CB.x+r.x*e.x,CB.y+r.y*e.y,CB.z+r.z*e.z],scale:[e.x,e.y,e.z]});C.push(l)}};return I.includeInvisible?g.traverse(i):g.traverseVisible(i),C},hX=(g,A)=>{switch(A){case"cuboid":{g.computeBoundingBox();const{boundingBox:C}=g,B=C.getSize(new _);return{args:[B.x/2,B.y/2,B.z/2],offset:C.getCenter(new _)}}case"ball":{g.computeBoundingSphere();const{boundingSphere:C}=g;return{args:[C.radius],offset:C.center}}case"trimesh":{var I;const C=g.index?g.clone():PV(g);return{args:[C.attributes.position.array,(I=C.index)===null||I===void 0?void 0:I.array],offset:new _}}case"hull":return{args:[g.clone().attributes.position.array],offset:new _}}return{args:[],offset:new _}},HH=g=>({collision:!!(g!=null&&g.onCollisionEnter||g!=null&&g.onCollisionExit||g!=null&&g.onIntersectionEnter||g!=null&&g.onIntersectionExit),contactForce:!!(g!=null&&g.onContactForce)}),wX=(g,A,I,C={})=>{const{onCollisionEnter:B,onCollisionExit:i,onIntersectionEnter:Q,onIntersectionExit:e,onContactForce:E}=A;T.useEffect(()=>{const t=g();if(t){const{collision:n,contactForce:a}=HH(A),r=n||C.collision,l=a||C.contactForce;r&&l?t.setActiveEvents(ae.COLLISION_EVENTS|ae.CONTACT_FORCE_EVENTS):r?t.setActiveEvents(ae.COLLISION_EVENTS):l&&t.setActiveEvents(ae.CONTACT_FORCE_EVENTS),I.set(t.handle,{onCollisionEnter:B,onCollisionExit:i,onIntersectionEnter:Q,onIntersectionExit:e,onContactForce:E})}return()=>{t&&I.delete(t.handle)}},[B,i,Q,e,E,C])},TH=(g={})=>sp(g,eX),SS=()=>{const g=T.useContext(xH);if(!g)throw new Error("react-three-rapier: useRapier must be used within !");return g},ap=(g,A,I=!0)=>{const[C,B]=T.useState([]);return T.useEffect(()=>{g.current&&A.colliders!==!1&&B(DX({object:g.current,options:A,ignoreMeshColliders:I}))},[A.colliders]),C},SX=T.memo(()=>{const{world:g}=SS(),A=T.useRef(null);return FC(()=>{const I=A.current;if(!I)return;const C=g.debugRender();I.geometry.setAttribute("position",new Ag(C.vertices,3)),I.geometry.setAttribute("color",new Ag(C.colors,4))}),$I.createElement("group",null,$I.createElement("lineSegments",{ref:A,frustumCulled:!1},$I.createElement("lineBasicMaterial",{color:16777215,vertexColors:!0}),$I.createElement("bufferGeometry",null)))}),GX=g=>{let A;const I={get(Q,e){return A||(A=g()),Reflect.get(A,e)},set(Q,e,E){return A||(A=g()),Reflect.set(A,e,E)}};return{proxy:new Proxy({},I),reset:()=>{A=void 0},set:Q=>{A=Q}}},xH=T.createContext(void 0),FD=(g,A)=>{var I,C,B,i,Q,e;return{target:{rigidBody:g.rigidBody.object,collider:g.collider.object,colliderObject:(I=g.collider.state)===null||I===void 0?void 0:I.object,rigidBodyObject:(C=g.rigidBody.state)===null||C===void 0?void 0:C.object},other:{rigidBody:A.rigidBody.object,collider:A.collider.object,colliderObject:(B=A.collider.state)===null||B===void 0?void 0:B.object,rigidBodyObject:(i=A.rigidBody.state)===null||i===void 0?void 0:i.object},rigidBody:A.rigidBody.object,collider:A.collider.object,colliderObject:(Q=A.collider.state)===null||Q===void 0?void 0:Q.object,rigidBodyObject:(e=A.rigidBody.state)===null||e===void 0?void 0:e.object}},yX=async()=>{let g=await O8(()=>Promise.resolve().then(()=>OV),void 0);return await g.init(),g},uX=g=>{const{colliders:A="cuboid",children:I,timeStep:C=1/60,paused:B=!1,interpolate:i=!0,updatePriority:Q,updateLoop:e="follow",debug:E=!1,gravity:t=[0,-9.81,0],allowedLinearError:n=.001,predictionDistance:a=.002,numSolverIterations:r=4,numAdditionalFrictionIterations:l=4,numInternalPgsIterations:D=1,minIslandSize:G=128,maxCcdSubsteps:h=1,erp:c=.8}=g,y=ro(yX),{invalidate:S}=EB(),k=EE(()=>new Map),N=EE(()=>new Map),M=EE(()=>new Map),F=EE(()=>new Map),q=EE(()=>new tp(!1)),Z=EE(()=>new Set),U=EE(()=>new Set),{proxy:K,reset:z,set:DA}=EE(()=>GX(()=>new y.World(XV(t))));T.useEffect(()=>()=>{K.free(),z()},[]),T.useEffect(()=>{K.gravity=zV(t),K.integrationParameters.numSolverIterations=r,K.integrationParameters.numAdditionalFrictionIterations=l,K.integrationParameters.numInternalPgsIterations=D,K.integrationParameters.allowedLinearError=n,K.integrationParameters.minIslandSize=G,K.integrationParameters.maxCcdSubsteps=h,K.integrationParameters.predictionDistance=a,K.integrationParameters.erp=c},[K,...t,r,l,D,n,G,h,a,c]);const X=T.useCallback(CA=>{var gA;const SA=K.getCollider(CA),NA=F.get(CA),WA=N.get(CA),j=SA==null||(gA=SA.parent())===null||gA===void 0?void 0:gA.handle,b=j!==void 0?K.getRigidBody(j):void 0,Y=b&&j!==void 0?M.get(j):void 0,x=j!==void 0?k.get(j):void 0;return{collider:{object:SA,events:NA,state:WA},rigidBody:{object:b,events:Y,state:x}}},[]),[eA]=T.useState({previousState:{},accumulator:0}),iA=T.useCallback(CA=>{const gA=K,SA=C==="vary",NA=RE.clamp(CA,0,.5),WA=b=>{Z.forEach(Y=>{Y.current(gA)}),gA.timestep=b,gA.step(q),U.forEach(Y=>{Y.current(gA)})};if(SA)WA(NA);else for(eA.accumulator+=NA;eA.accumulator>=C;)i&&(eA.previousState={},gA.forEachRigidBody(b=>{eA.previousState[b.handle]={position:b.translation(),rotation:b.rotation()}})),WA(C),eA.accumulator-=C;const j=SA||!i||B?1:eA.accumulator/C;k.forEach((b,Y)=>{const x=gA.getRigidBody(Y),nA=M.get(Y);if(nA!=null&&nA.onSleep||nA!=null&&nA.onWake){if(x.isSleeping()&&!b.isSleeping){var MA;nA==null||(MA=nA.onSleep)===null||MA===void 0||MA.call(nA)}if(!x.isSleeping()&&b.isSleeping){var oA;nA==null||(oA=nA.onWake)===null||oA===void 0||oA.call(nA)}b.isSleeping=x.isSleeping()}if(!x||x.isSleeping()&&!("isInstancedMesh"in b.object)||!b.setMatrix)return;let FA=x.translation(),W=x.rotation(),UA=eA.previousState[Y];UA&&(mE.compose(UA.position,rK(UA.rotation),b.scale).premultiply(b.invertedWorldMatrix).decompose(CB,BQ,lo),b.meshType=="mesh"&&(b.object.position.copy(CB),b.object.quaternion.copy(BQ))),mE.compose(FA,rK(W),b.scale).premultiply(b.invertedWorldMatrix).decompose(CB,BQ,lo),b.meshType=="instancedMesh"?b.setMatrix(mE):(b.object.position.lerp(CB,j),b.object.quaternion.slerp(BQ,j))}),q.drainCollisionEvents((b,Y,x)=>{const nA=X(b),MA=X(Y);if(!(nA!=null&&nA.collider.object)||!(MA!=null&&MA.collider.object))return;const oA=FD(nA,MA),FA=FD(MA,nA);if(x)gA.contactPair(nA.collider.object,MA.collider.object,(UI,JI)=>{var YI,HI,jA,IA,AI,$A,lI,pI;(YI=nA.rigidBody.events)===null||YI===void 0||(HI=YI.onCollisionEnter)===null||HI===void 0||HI.call(YI,Fg(Fg({},oA),{},{manifold:UI,flipped:JI})),(jA=MA.rigidBody.events)===null||jA===void 0||(IA=jA.onCollisionEnter)===null||IA===void 0||IA.call(jA,Fg(Fg({},FA),{},{manifold:UI,flipped:JI})),(AI=nA.collider.events)===null||AI===void 0||($A=AI.onCollisionEnter)===null||$A===void 0||$A.call(AI,Fg(Fg({},oA),{},{manifold:UI,flipped:JI})),(lI=MA.collider.events)===null||lI===void 0||(pI=lI.onCollisionEnter)===null||pI===void 0||pI.call(lI,Fg(Fg({},FA),{},{manifold:UI,flipped:JI}))});else{var W,UA,tA,hA,GA,bA,EA,f;(W=nA.rigidBody.events)===null||W===void 0||(UA=W.onCollisionExit)===null||UA===void 0||UA.call(W,oA),(tA=MA.rigidBody.events)===null||tA===void 0||(hA=tA.onCollisionExit)===null||hA===void 0||hA.call(tA,FA),(GA=nA.collider.events)===null||GA===void 0||(bA=GA.onCollisionExit)===null||bA===void 0||bA.call(GA,oA),(EA=MA.collider.events)===null||EA===void 0||(f=EA.onCollisionExit)===null||f===void 0||f.call(EA,FA)}if(x){if(gA.intersectionPair(nA.collider.object,MA.collider.object)){var m,cA,ZA,OA,YA,EI,CI,sI;(m=nA.rigidBody.events)===null||m===void 0||(cA=m.onIntersectionEnter)===null||cA===void 0||cA.call(m,oA),(ZA=MA.rigidBody.events)===null||ZA===void 0||(OA=ZA.onIntersectionEnter)===null||OA===void 0||OA.call(ZA,FA),(YA=nA.collider.events)===null||YA===void 0||(EI=YA.onIntersectionEnter)===null||EI===void 0||EI.call(YA,oA),(CI=MA.collider.events)===null||CI===void 0||(sI=CI.onIntersectionEnter)===null||sI===void 0||sI.call(CI,FA)}}else{var SI,fI,PA,bI,LI,kI,tI,aI;(SI=nA.rigidBody.events)===null||SI===void 0||(fI=SI.onIntersectionExit)===null||fI===void 0||fI.call(SI,oA),(PA=MA.rigidBody.events)===null||PA===void 0||(bI=PA.onIntersectionExit)===null||bI===void 0||bI.call(PA,FA),(LI=nA.collider.events)===null||LI===void 0||(kI=LI.onIntersectionExit)===null||kI===void 0||kI.call(LI,oA),(tI=MA.collider.events)===null||tI===void 0||(aI=tI.onIntersectionExit)===null||aI===void 0||aI.call(tI,FA)}}),q.drainContactForceEvents(b=>{var Y,x,nA,MA,oA,FA,W,UA;const tA=X(b.collider1()),hA=X(b.collider2());if(!(tA!=null&&tA.collider.object)||!(hA!=null&&hA.collider.object))return;const GA=FD(tA,hA),bA=FD(hA,tA);(Y=tA.rigidBody.events)===null||Y===void 0||(x=Y.onContactForce)===null||x===void 0||x.call(Y,Fg(Fg({},GA),{},{totalForce:b.totalForce(),totalForceMagnitude:b.totalForceMagnitude(),maxForceDirection:b.maxForceDirection(),maxForceMagnitude:b.maxForceMagnitude()})),(nA=hA.rigidBody.events)===null||nA===void 0||(MA=nA.onContactForce)===null||MA===void 0||MA.call(nA,Fg(Fg({},bA),{},{totalForce:b.totalForce(),totalForceMagnitude:b.totalForceMagnitude(),maxForceDirection:b.maxForceDirection(),maxForceMagnitude:b.maxForceMagnitude()})),(oA=tA.collider.events)===null||oA===void 0||(FA=oA.onContactForce)===null||FA===void 0||FA.call(oA,Fg(Fg({},GA),{},{totalForce:b.totalForce(),totalForceMagnitude:b.totalForceMagnitude(),maxForceDirection:b.maxForceDirection(),maxForceMagnitude:b.maxForceMagnitude()})),(W=hA.collider.events)===null||W===void 0||(UA=W.onContactForce)===null||UA===void 0||UA.call(W,Fg(Fg({},bA),{},{totalForce:b.totalForce(),totalForceMagnitude:b.totalForceMagnitude(),maxForceDirection:b.maxForceDirection(),maxForceMagnitude:b.maxForceMagnitude()}))}),gA.forEachActiveRigidBody(()=>{S()})},[B,C,i,K]),wA=T.useMemo(()=>({rapier:y,world:K,setWorld:CA=>{DA(CA)},physicsOptions:{colliders:A,gravity:t},rigidBodyStates:k,colliderStates:N,rigidBodyEvents:M,colliderEvents:F,beforeStepCallbacks:Z,afterStepCallbacks:U,isPaused:B,isDebug:E,step:iA}),[B,iA,E,A,t]),v=T.useCallback(CA=>{B||iA(CA)},[B,iA]);return $I.createElement(xH.Provider,{value:wA},$I.createElement(iX,{onStep:v,type:e,updatePriority:Q}),E&&$I.createElement(SX,null),I)};function zC(){return zC=Object.assign?Object.assign.bind():function(g){for(var A=1;A{const C=T.useRef(),B=T.useCallback(()=>(C.current||(C.current=g()),C.current),I);return T.useEffect(()=>{const i=B(),Q=()=>A(i);return()=>{Q(),C.current=void 0}},[B]),B},kX=({x:g,y:A,z:I}={x:0,y:0,z:0})=>new _(g,A,I),rp=(g,A=null)=>{const I=T.useRef(A);return g&&typeof g!="function"?(g.current||(g.current=I.current),g):I},Di=T.memo(T.forwardRef((g,A)=>{const{children:I,position:C,rotation:B,quaternion:i,scale:Q,name:e}=g,{world:E,colliderEvents:t,colliderStates:n}=SS(),a=WH(),r=rp(A),l=T.useRef(null),D=oX.flatMap(c=>Array.isArray(g[c])?[...g[c]]:g[c]),G=vH(()=>{const c=l.current.getWorldScale(kX()),y=tX(g,E,c,a==null?void 0:a.getRigidBody);return typeof A=="function"&&A(y),r.current=y,y},c=>{E.getCollider(c.handle)&&E.removeCollider(c,!0)},[...D,a]);T.useEffect(()=>{const c=G();return n.set(c.handle,lX(c,l.current,a==null?void 0:a.ref.current)),()=>{n.delete(c.handle)}},[G]);const h=T.useMemo(()=>Fg(Fg({},TH(a==null?void 0:a.options)),g),[g,a==null?void 0:a.options]);return aX(G,h,n),wX(G,h,t,HH(a==null?void 0:a.options)),$I.createElement("object3D",{position:C,rotation:B,quaternion:i,scale:Q,ref:l,name:e},I)})),dX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"cuboid",ref:A})));dX.displayName="CuboidCollider";const MX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"roundCuboid",ref:A})));MX.displayName="RoundCuboidCollider";const bH=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"ball",ref:A})));bH.displayName="BallCollider";const pX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"capsule",ref:A})));pX.displayName="CapsuleCollider";const UX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"heightfield",ref:A})));UX.displayName="HeightfieldCollider";const NX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"trimesh",ref:A})));NX.displayName="TrimeshCollider";const FX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"cone",ref:A})));FX.displayName="ConeCollider";const fX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"roundCone",ref:A})));fX.displayName="RoundConeCollider";const OH=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"cylinder",ref:A})));OH.displayName="CylinderCollider";OH.displayName="RoundCylinderCollider";const RX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"convexHull",ref:A})));RX.displayName="ConvexHullCollider";const KX=g=>{var A;const I=qH((g==null?void 0:g.type)||"dynamic"),C=new Ri(I);return C.canSleep=(A=g==null?void 0:g.canSleep)!==null&&A!==void 0?A:!0,C},JX=({rigidBody:g,object:A,setMatrix:I,getMatrix:C,worldScale:B,meshType:i="mesh"})=>{A.updateWorldMatrix(!0,!1);const Q=A.parent.matrixWorld.clone().invert();return{object:A,rigidBody:g,invertedWorldMatrix:Q,setMatrix:I||(e=>{A.matrix.copy(e)}),getMatrix:C||(e=>e.copy(A.matrix)),scale:B||A.getWorldScale(lo).clone(),isSleeping:!1,meshType:i}},qX=["args","colliders","canSleep"],_H={gravityScale:(g,A)=>{g.setGravityScale(A,!0)},additionalSolverIterations(g,A){g.setAdditionalSolverIterations(A)},linearDamping:(g,A)=>{g.setLinearDamping(A)},angularDamping:(g,A)=>{g.setAngularDamping(A)},dominanceGroup:(g,A)=>{g.setDominanceGroup(A)},enabledRotations:(g,[A,I,C])=>{g.setEnabledRotations(A,I,C,!0)},enabledTranslations:(g,[A,I,C])=>{g.setEnabledTranslations(A,I,C,!0)},lockRotations:(g,A)=>{g.lockRotations(A,!0)},lockTranslations:(g,A)=>{g.lockTranslations(A,!0)},angularVelocity:(g,[A,I,C])=>{g.setAngvel({x:A,y:I,z:C},!0)},linearVelocity:(g,[A,I,C])=>{g.setLinvel({x:A,y:I,z:C},!0)},ccd:(g,A)=>{g.enableCcd(A)},userData:(g,A)=>{g.userData=A},type(g,A){g.setBodyType(qH(A),!0)},position:()=>{},rotation:()=>{},quaternion:()=>{},scale:()=>{}},ZH=Object.keys(_H),mX=(g,A,I,C=!0)=>{if(!g)return;const B=I.get(g.handle);B&&(C&&(B.object.updateWorldMatrix(!0,!1),mE.copy(B.object.matrixWorld).decompose(CB,BQ,lo),g.setTranslation(CB,!1),g.setRotation(BQ,!1)),ZH.forEach(i=>{i in A&&_H[i](g,A[i])}))},LX=(g,A,I,C=!0)=>{const B=T.useMemo(()=>ZH.flatMap(i=>mH(A[i])),[A]);T.useEffect(()=>{const i=g();mX(i,A,I,C)},B)},YX=(g,A,I)=>{const{onWake:C,onSleep:B,onCollisionEnter:i,onCollisionExit:Q,onIntersectionEnter:e,onIntersectionExit:E,onContactForce:t}=A,n={onWake:C,onSleep:B,onCollisionEnter:i,onCollisionExit:Q,onIntersectionEnter:e,onIntersectionExit:E,onContactForce:t};T.useEffect(()=>{const a=g();return I.set(a.handle,n),()=>{I.delete(a.handle)}},[C,B,i,Q,e,E,t])},HX=["children","type","position","rotation","scale","quaternion","transformState"],PH=T.createContext(void 0),WH=()=>T.useContext(PH),GS=T.memo(T.forwardRef((g,A)=>{const{children:I,type:C,position:B,rotation:i,scale:Q,quaternion:e,transformState:E}=g,t=sp(g,HX),n=T.useRef(null),a=rp(A),{world:r,rigidBodyStates:l,physicsOptions:D,rigidBodyEvents:G}=SS(),h=T.useMemo(()=>Fg(Fg(Fg({},D),g),{},{children:void 0}),[D,g]),c=qX.flatMap(N=>Array.isArray(h[N])?[...h[N]]:h[N]),y=ap(n,h),S=vH(()=>{const N=KX(h),M=r.createRigidBody(N);return typeof A=="function"&&A(M),a.current=M,M},N=>{r.getRigidBody(N.handle)&&r.removeRigidBody(N)},c);T.useEffect(()=>{const N=S(),M=JX({rigidBody:N,object:n.current});return l.set(N.handle,g.transformState?g.transformState(M):M),()=>{l.delete(N.handle)}},[S]),LX(S,h,l),YX(S,h,G);const k=T.useMemo(()=>({ref:n,getRigidBody:S,options:h}),[S]);return $I.createElement(PH.Provider,{value:k},$I.createElement("object3D",zC({ref:n},t,{position:B,rotation:i,quaternion:e,scale:Q}),I,y.map((N,M)=>$I.createElement(Di,zC({key:M},N)))))}));GS.displayName="RigidBody";const TX=T.memo(g=>{const{children:A,type:I}=g,{physicsOptions:C}=SS(),B=T.useRef(null),{options:i}=WH(),Q=T.useMemo(()=>Fg(Fg(Fg({},C),i),{},{children:void 0,colliders:I}),[C,i]),e=ap(B,Q,!1);return $I.createElement("object3D",{ref:B,userData:{r3RapierType:"MeshCollider"}},A,e.map((E,t)=>$I.createElement(Di,zC({key:t},E))))});TX.displayName="MeshCollider";const xX=["children","instances","colliderNodes","position","rotation","quaternion","scale"],vX=T.memo(T.forwardRef((g,A)=>{const I=rp(A,[]),C=T.useRef(null),B=T.useRef(null),{children:i,instances:Q,colliderNodes:e=[],position:E,rotation:t,quaternion:n,scale:a}=g,r=sp(g,xX),l=ap(C,Fg(Fg({},g),{},{children:void 0})),D=()=>{const h=B.current.children[0];if(h&&"isInstancedMesh"in h)return h};T.useEffect(()=>{const h=D();h?h.instanceMatrix.setUsage(ne):console.warn("InstancedRigidBodies expects exactly one child, which must be an InstancedMesh")},[]);const G=(h,c)=>{const y=D();return y?Fg(Fg({},h),{},{getMatrix:S=>(y.getMatrixAt(c,S),S),setMatrix:S=>{y.setMatrixAt(c,S),y.instanceMatrix.needsUpdate=!0},meshType:"instancedMesh"}):h};return $I.createElement("object3D",zC({ref:C},r,{position:E,rotation:t,quaternion:n,scale:a}),$I.createElement("object3D",{ref:B},i),Q==null?void 0:Q.map((h,c)=>$I.createElement(GS,zC({},r,h,{ref:y=>I.current[c]=y,transformState:y=>G(y,c)}),$I.createElement($I.Fragment,null,e.map((y,S)=>$I.createElement(T.Fragment,{key:S},y)),l.map((y,S)=>$I.createElement(Di,zC({key:S},y)))))))}));vX.displayName="InstancedRigidBodies";function bX(g){const{nodes:A,materials:I}=il("/uikit/examples/card/smileys-transformed.glb");return RA.jsxs("group",{...g,dispose:null,children:[RA.jsx(Sa,{children:RA.jsx("mesh",{geometry:A.hash.geometry,material:I.PaletteMaterial001,position:[-4.095,1.891,-2.58],scale:.216})}),RA.jsx(Sa,{children:RA.jsx("mesh",{geometry:A.star001.geometry,material:I.PaletteMaterial001,position:[2.932,-2.747,-2.807],scale:.278})}),RA.jsx(Sa,{children:RA.jsx("mesh",{geometry:A.play.geometry,material:I.PaletteMaterial001,position:[3.722,.284,-1.553],scale:.245})}),RA.jsx(Sa,{children:RA.jsx("mesh",{geometry:A.points.geometry,material:I.PaletteMaterial001,position:[3,2.621,-1.858],scale:.239})}),RA.jsx(Sa,{children:RA.jsx("mesh",{geometry:A.Ellipse.geometry,material:I.PaletteMaterial001,position:[-3.275,-1,-3.389],scale:.317})})]})}function OX(){const{nodes:g,materials:A}=il("/uikit/examples/card/smileys-transformed.glb"),I=T.useMemo(()=>Object.values(g).filter(C=>C.isMesh),[g]);return RA.jsxs(uX,{gravity:[0,0,0],children:[I.map(C=>RA.jsx(_X,{mesh:C},C.uuid)),RA.jsx(ZX,{offset:0})]})}function _X({mesh:g,vec:A=new _}){const I=T.useRef();return FC((C,B)=>{var i;(i=I.current)==null||i.applyImpulse(A.copy(I.current.translation()).negate().add({x:0,y:2,z:0}).multiplyScalar(.2))}),RA.jsx(GS,{ref:I,scale:.2,position:[RE.randFloatSpread(10),RE.randFloatSpread(10),RE.randFloatSpread(10)],linearDamping:4,angularDamping:1,friction:.1,colliders:"ball",children:RA.jsx("mesh",{geometry:g.geometry,material:g.material})})}function ZX({vec:g=new _}){const A=T.useRef();return FC(({mouse:I,viewport:C})=>{var B;(B=A.current)==null||B.setNextKinematicTranslation(g.set(I.x*C.width/2,I.y*C.height/2,0))}),RA.jsx(GS,{position:[0,0,0],type:"kinematicPosition",colliders:!1,ref:A,children:RA.jsx(bH,{args:[2]})})}bw(dW);gj("light");const r0=[{title:"Your call has been confirmed.",description:"1 hour ago"}];function PX(){return RA.jsx(YP,{camera:{position:[0,0,18],fov:32.5},style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:RA.jsxs(uH,{children:[RA.jsx("ambientLight",{intensity:Math.PI}),RA.jsx("spotLight",{decay:0,position:[0,5,10],angle:.25,penumbra:1,intensity:2,castShadow:!0}),RA.jsx(MM,{pixelSize:.01,children:RA.jsx(jX,{})}),RA.jsx(cV,{justifyContent:"flex-end",alignItems:"center",paddingBottom:32,children:RA.jsx(kH,{onClick:()=>window.open("https://github.com/pmndrs/uikit/tree/main/examples/card","_blank"),children:RA.jsx(kQ,{children:"Source Code"})})}),RA.jsx(bX,{position:[0,0,7]}),RA.jsx(GY,{preset:"city"}),RA.jsx(WX,{})]})})}function WX(){FC((g,A)=>{gk.damp3(g.camera.position,[g.pointer.x*2,g.pointer.y*2,18],.35,A),g.camera.lookAt(0,0,-10)})}function jX(){const g=T.useRef(!1),A=T.useMemo(()=>Qg(-460),[]),I=T.useMemo(()=>Qg(0),[]);return FC((C,B)=>{gk.damp(A,"value",g.current?0:-460,.2,B),gk.damp(I,"value",g.current?200:0,.2,B)}),RA.jsx(MM,{pixelSize:.01,sizeX:4.4,children:RA.jsxs(uH,{children:[RA.jsxs(mC,{backgroundColor:16777215,dark:{backgroundColor:0},borderRadius:20,onClick:C=>(C.stopPropagation(),g.current=!g.current),cursor:"pointer",zIndexOffset:10,transformTranslateZ:I,children:[RA.jsx(L5,{transformTranslateZ:1,padding:14,keepAspectRatio:!1,width:"100%",height:400,children:RA.jsxs("mesh",{children:[RA.jsx("roundedPlaneGeometry",{args:[1,1,.025]}),RA.jsxs(H8,{children:[RA.jsx("color",{attach:"background",args:["white"]}),RA.jsx("ambientLight",{intensity:Math.PI}),RA.jsx(GY,{preset:"city"}),RA.jsx(OX,{}),RA.jsx(N8,{makeDefault:!0,position:[0,0,10],fov:50})]})]})}),RA.jsxs(mC,{backgroundColor:16777215,dark:{backgroundColor:0},flexDirection:"row",padding:28,paddingTop:32,alignItems:"center",justifyContent:"space-between",borderBottomRadius:20,castShadow:!0,children:[RA.jsxs(mC,{gap:8,children:[RA.jsx(kQ,{fontWeight:"normal",fontSize:24,lineHeight:1,children:"VanArsdel Marketing"}),RA.jsx(kQ,{fontSize:20,fontWeight:"medium",letterSpacing:-.4,color:AC.primary,children:"1 activities for you"})]}),RA.jsxs(mC,{flexDirection:"row",gap:-6,children:[RA.jsx(n0,{width:40,src:"https://avatar.iran.liara.run/public/boy?username=Scot"}),RA.jsx(n0,{width:40,src:"https://avatar.iran.liara.run/public/boy?username=Theo"}),RA.jsx(n0,{width:40,src:"https://avatar.iran.liara.run/public/boy?username=Paul"})]})]})]}),RA.jsx(mC,{transformTranslateY:-40,overflow:"hidden",children:RA.jsxs(mC,{paddingTop:40,transformTranslateY:A,backgroundColor:AC.secondary,borderRadius:20,children:[RA.jsxs(pV,{children:[RA.jsx(UV,{children:RA.jsx(kQ,{children:"Notifications"})}),RA.jsx(NV,{children:RA.jsx(kQ,{children:"You have 3 unread messages."})})]}),RA.jsxs(FV,{flexDirection:"column",gap:16,children:[RA.jsxs(mC,{flexDirection:"row",alignItems:"center",gap:16,borderRadius:6,border:1,padding:16,children:[RA.jsx(yV,{}),RA.jsxs(mC,{gap:4,children:[RA.jsx(kQ,{fontSize:14,lineHeight:1,children:"Push Notifications"}),RA.jsx(kQ,{fontSize:14,lineHeight:1.43,color:AC.mutedForeground,children:"Send notifications to device."})]}),RA.jsx(mC,{flexGrow:1}),RA.jsx(RV,{})]}),RA.jsx(mC,{children:r0.map((C,B)=>RA.jsxs(mC,{marginBottom:B===r0.length-1?0:16,paddingBottom:B===r0.length-1?0:16,alignItems:"flex-start",flexDirection:"row",gap:17,children:[RA.jsx(mC,{height:8,width:8,transformTranslateY:4,borderRadius:1e3,backgroundColor:AC.primary}),RA.jsxs(mC,{gap:4,children:[RA.jsx(kQ,{fontSize:14,lineHeight:1,children:C.title}),RA.jsx(kQ,{fontSize:14,lineHeight:1.43,color:AC.mutedForeground,children:C.description})]})]},B))})]}),RA.jsx(fV,{children:RA.jsxs(kH,{onClick:C=>(C.stopPropagation(),g.current=!g.current),flexDirection:"row",width:"100%",children:[RA.jsx(kV,{marginRight:8,height:16,width:16}),RA.jsx(kQ,{children:"Mark all as read"})]})})]})})]})})}Nq(document.getElementById("root")).render(RA.jsx(T.StrictMode,{children:RA.jsx(PX,{})})); +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = [] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/examples/card/assets/index-Fq_xMrV3.js b/examples/card/assets/index-Fq_xMrV3.js deleted file mode 100644 index 27379d16..00000000 --- a/examples/card/assets/index-Fq_xMrV3.js +++ /dev/null @@ -1,4268 +0,0 @@ -var w2=Object.defineProperty;var S2=(g,A,I)=>A in g?w2(g,A,{enumerable:!0,configurable:!0,writable:!0,value:I}):g[A]=I;var EI=(g,A,I)=>(S2(g,typeof A!="symbol"?A+"":A,I),I);(function(){const A=document.createElement("link").relList;if(A&&A.supports&&A.supports("modulepreload"))return;for(const B of document.querySelectorAll('link[rel="modulepreload"]'))C(B);new MutationObserver(B=>{for(const i of B)if(i.type==="childList")for(const Q of i.addedNodes)Q.tagName==="LINK"&&Q.rel==="modulepreload"&&C(Q)}).observe(document,{childList:!0,subtree:!0});function I(B){const i={};return B.integrity&&(i.integrity=B.integrity),B.referrerPolicy&&(i.referrerPolicy=B.referrerPolicy),B.crossOrigin==="use-credentials"?i.credentials="include":B.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function C(B){if(B.ep)return;B.ep=!0;const i=I(B);fetch(B.href,i)}})();function Zh(g){return g&&g.__esModule&&Object.prototype.hasOwnProperty.call(g,"default")?g.default:g}var gK={exports:{}},Ph={},CK={exports:{}},ng={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var mr=Symbol.for("react.element"),G2=Symbol.for("react.portal"),y2=Symbol.for("react.fragment"),u2=Symbol.for("react.strict_mode"),k2=Symbol.for("react.profiler"),M2=Symbol.for("react.provider"),d2=Symbol.for("react.context"),p2=Symbol.for("react.forward_ref"),U2=Symbol.for("react.suspense"),N2=Symbol.for("react.memo"),F2=Symbol.for("react.lazy"),LU=Symbol.iterator;function f2(g){return g===null||typeof g!="object"?null:(g=LU&&g[LU]||g["@@iterator"],typeof g=="function"?g:null)}var BK={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},iK=Object.assign,QK={};function ta(g,A,I){this.props=g,this.context=A,this.refs=QK,this.updater=I||BK}ta.prototype.isReactComponent={};ta.prototype.setState=function(g,A){if(typeof g!="object"&&typeof g!="function"&&g!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,g,A,"setState")};ta.prototype.forceUpdate=function(g){this.updater.enqueueForceUpdate(this,g,"forceUpdate")};function eK(){}eK.prototype=ta.prototype;function lk(g,A,I){this.props=g,this.context=A,this.refs=QK,this.updater=I||BK}var ck=lk.prototype=new eK;ck.constructor=lk;iK(ck,ta.prototype);ck.isPureReactComponent=!0;var YU=Array.isArray,EK=Object.prototype.hasOwnProperty,Dk={current:null},tK={key:!0,ref:!0,__self:!0,__source:!0};function oK(g,A,I){var C,B={},i=null,Q=null;if(A!=null)for(C in A.ref!==void 0&&(Q=A.ref),A.key!==void 0&&(i=""+A.key),A)EK.call(A,C)&&!tK.hasOwnProperty(C)&&(B[C]=A[C]);var e=arguments.length-2;if(e===1)B.children=I;else if(1>>1,NA=b[hA];if(0>>1;hAB(x,gA))YB(T,x)?(b[hA]=T,b[Y]=gA,hA=Y):(b[hA]=x,b[j]=gA,hA=j);else if(YB(T,gA))b[hA]=T,b[Y]=gA,hA=Y;else break A}}return BA}function B(b,BA){var gA=b.sortIndex-BA.sortIndex;return gA!==0?gA:b.id-BA.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;g.unstable_now=function(){return i.now()}}else{var Q=Date,e=Q.now();g.unstable_now=function(){return Q.now()-e}}var E=[],t=[],a=1,s=null,r=3,l=!1,D=!1,G=!1,h=typeof setTimeout=="function"?setTimeout:null,c=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(b){for(var BA=I(t);BA!==null;){if(BA.callback===null)C(t);else if(BA.startTime<=b)C(t),BA.sortIndex=BA.expirationTime,A(E,BA);else break;BA=I(t)}}function k(b){if(G=!1,S(b),!D)if(I(E)!==null)D=!0,aA(f);else{var BA=I(t);BA!==null&&SA(k,BA.startTime-b)}}function f(b,BA){D=!1,G&&(G=!1,c(q),q=-1),l=!0;var gA=r;try{for(S(BA),s=I(E);s!==null&&(!(s.expirationTime>BA)||b&&!K());){var hA=s.callback;if(typeof hA=="function"){s.callback=null,r=s.priorityLevel;var NA=hA(s.expirationTime<=BA);BA=g.unstable_now(),typeof NA=="function"?s.callback=NA:s===I(E)&&C(E),S(BA)}else C(E);s=I(E)}if(s!==null)var WA=!0;else{var j=I(t);j!==null&&SA(k,j.startTime-BA),WA=!1}return WA}finally{s=null,r=gA,l=!1}}var d=!1,N=null,q=-1,P=5,U=-1;function K(){return!(g.unstable_now()-Ub||125hA?(b.sortIndex=gA,A(t,b),I(E)===null&&b===I(t)&&(G?(c(q),q=-1):G=!0,SA(k,gA-hA))):(b.sortIndex=NA,A(E,b),D||l||(D=!0,aA(f))),b},g.unstable_shouldYield=K,g.unstable_wrapCallback=function(b){var BA=r;return function(){var gA=r;r=BA;try{return b.apply(this,arguments)}finally{r=gA}}}})(rK);sK.exports=rK;var v2=sK.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var lK=_,ai=v2;function gI(g){for(var A="https://reactjs.org/docs/error-decoder.html?invariant="+g,I=1;I"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),e0=Object.prototype.hasOwnProperty,b2=/^[: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]*$/,TU={},xU={};function O2(g){return e0.call(xU,g)?!0:e0.call(TU,g)?!1:b2.test(g)?xU[g]=!0:(TU[g]=!0,!1)}function _2(g,A,I,C){if(I!==null&&I.type===0)return!1;switch(typeof A){case"function":case"symbol":return!0;case"boolean":return C?!1:I!==null?!I.acceptsBooleans:(g=g.toLowerCase().slice(0,5),g!=="data-"&&g!=="aria-");default:return!1}}function Z2(g,A,I,C){if(A===null||typeof A>"u"||_2(g,A,I,C))return!0;if(C)return!1;if(I!==null)switch(I.type){case 3:return!A;case 4:return A===!1;case 5:return isNaN(A);case 6:return isNaN(A)||1>A}return!1}function YB(g,A,I,C,B,i,Q){this.acceptsBooleans=A===2||A===3||A===4,this.attributeName=C,this.attributeNamespace=B,this.mustUseProperty=I,this.propertyName=g,this.type=A,this.sanitizeURL=i,this.removeEmptyString=Q}var eB={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(g){eB[g]=new YB(g,0,!1,g,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(g){var A=g[0];eB[A]=new YB(A,1,!1,g[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(g){eB[g]=new YB(g,2,!1,g.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(g){eB[g]=new YB(g,2,!1,g,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(g){eB[g]=new YB(g,3,!1,g.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(g){eB[g]=new YB(g,3,!0,g,null,!1,!1)});["capture","download"].forEach(function(g){eB[g]=new YB(g,4,!1,g,null,!1,!1)});["cols","rows","size","span"].forEach(function(g){eB[g]=new YB(g,6,!1,g,null,!1,!1)});["rowSpan","start"].forEach(function(g){eB[g]=new YB(g,5,!1,g.toLowerCase(),null,!1,!1)});var wk=/[\-:]([a-z])/g;function Sk(g){return g[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(g){var A=g.replace(wk,Sk);eB[A]=new YB(A,1,!1,g,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(g){var A=g.replace(wk,Sk);eB[A]=new YB(A,1,!1,g,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(g){var A=g.replace(wk,Sk);eB[A]=new YB(A,1,!1,g,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(g){eB[g]=new YB(g,1,!1,g.toLowerCase(),null,!1,!1)});eB.xlinkHref=new YB("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(g){eB[g]=new YB(g,1,!1,g.toLowerCase(),null,!0,!0)});function Gk(g,A,I,C){var B=eB.hasOwnProperty(A)?eB[A]:null;(B!==null?B.type!==0:C||!(2e||B[Q]!==i[e]){var E=` -`+B[Q].replace(" at new "," at ");return g.displayName&&E.includes("")&&(E=E.replace("",g.displayName)),E}while(1<=Q&&0<=e);break}}}finally{GG=!1,Error.prepareStackTrace=I}return(g=g?g.displayName||g.name:"")?ws(g):""}function P2(g){switch(g.tag){case 5:return ws(g.type);case 16:return ws("Lazy");case 13:return ws("Suspense");case 19:return ws("SuspenseList");case 0:case 2:case 15:return g=yG(g.type,!1),g;case 11:return g=yG(g.type.render,!1),g;case 1:return g=yG(g.type,!0),g;default:return""}}function n0(g){if(g==null)return null;if(typeof g=="function")return g.displayName||g.name||null;if(typeof g=="string")return g;switch(g){case ln:return"Fragment";case rn:return"Portal";case E0:return"Profiler";case yk:return"StrictMode";case t0:return"Suspense";case o0:return"SuspenseList"}if(typeof g=="object")switch(g.$$typeof){case hK:return(g.displayName||"Context")+".Consumer";case DK:return(g._context.displayName||"Context")+".Provider";case uk:var A=g.render;return g=g.displayName,g||(g=A.displayName||A.name||"",g=g!==""?"ForwardRef("+g+")":"ForwardRef"),g;case kk:return A=g.displayName||null,A!==null?A:n0(g.type)||"Memo";case je:A=g._payload,g=g._init;try{return n0(g(A))}catch{}}return null}function W2(g){var A=g.type;switch(g.tag){case 24:return"Cache";case 9:return(A.displayName||"Context")+".Consumer";case 10:return(A._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return g=A.render,g=g.displayName||g.name||"",A.displayName||(g!==""?"ForwardRef("+g+")":"ForwardRef");case 7:return"Fragment";case 5:return A;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return n0(A);case 8:return A===yk?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof A=="function")return A.displayName||A.name||null;if(typeof A=="string")return A}return null}function uE(g){switch(typeof g){case"boolean":case"number":case"string":case"undefined":return g;case"object":return g;default:return""}}function SK(g){var A=g.type;return(g=g.nodeName)&&g.toLowerCase()==="input"&&(A==="checkbox"||A==="radio")}function j2(g){var A=SK(g)?"checked":"value",I=Object.getOwnPropertyDescriptor(g.constructor.prototype,A),C=""+g[A];if(!g.hasOwnProperty(A)&&typeof I<"u"&&typeof I.get=="function"&&typeof I.set=="function"){var B=I.get,i=I.set;return Object.defineProperty(g,A,{configurable:!0,get:function(){return B.call(this)},set:function(Q){C=""+Q,i.call(this,Q)}}),Object.defineProperty(g,A,{enumerable:I.enumerable}),{getValue:function(){return C},setValue:function(Q){C=""+Q},stopTracking:function(){g._valueTracker=null,delete g[A]}}}}function Bc(g){g._valueTracker||(g._valueTracker=j2(g))}function GK(g){if(!g)return!1;var A=g._valueTracker;if(!A)return!0;var I=A.getValue(),C="";return g&&(C=SK(g)?g.checked?"true":"false":g.value),g=C,g!==I?(A.setValue(g),!0):!1}function Ah(g){if(g=g||(typeof document<"u"?document:void 0),typeof g>"u")return null;try{return g.activeElement||g.body}catch{return g.body}}function a0(g,A){var I=A.checked;return BC({},A,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:I??g._wrapperState.initialChecked})}function bU(g,A){var I=A.defaultValue==null?"":A.defaultValue,C=A.checked!=null?A.checked:A.defaultChecked;I=uE(A.value!=null?A.value:I),g._wrapperState={initialChecked:C,initialValue:I,controlled:A.type==="checkbox"||A.type==="radio"?A.checked!=null:A.value!=null}}function yK(g,A){A=A.checked,A!=null&&Gk(g,"checked",A,!1)}function s0(g,A){yK(g,A);var I=uE(A.value),C=A.type;if(I!=null)C==="number"?(I===0&&g.value===""||g.value!=I)&&(g.value=""+I):g.value!==""+I&&(g.value=""+I);else if(C==="submit"||C==="reset"){g.removeAttribute("value");return}A.hasOwnProperty("value")?r0(g,A.type,I):A.hasOwnProperty("defaultValue")&&r0(g,A.type,uE(A.defaultValue)),A.checked==null&&A.defaultChecked!=null&&(g.defaultChecked=!!A.defaultChecked)}function OU(g,A,I){if(A.hasOwnProperty("value")||A.hasOwnProperty("defaultValue")){var C=A.type;if(!(C!=="submit"&&C!=="reset"||A.value!==void 0&&A.value!==null))return;A=""+g._wrapperState.initialValue,I||A===g.value||(g.value=A),g.defaultValue=A}I=g.name,I!==""&&(g.name=""),g.defaultChecked=!!g._wrapperState.initialChecked,I!==""&&(g.name=I)}function r0(g,A,I){(A!=="number"||Ah(g.ownerDocument)!==g)&&(I==null?g.defaultValue=""+g._wrapperState.initialValue:g.defaultValue!==""+I&&(g.defaultValue=""+I))}var Ss=Array.isArray;function fn(g,A,I,C){if(g=g.options,A){A={};for(var B=0;B"+A.valueOf().toString()+"",A=ic.firstChild;g.firstChild;)g.removeChild(g.firstChild);for(;A.firstChild;)g.appendChild(A.firstChild)}});function Xs(g,A){if(A){var I=g.firstChild;if(I&&I===g.lastChild&&I.nodeType===3){I.nodeValue=A;return}}g.textContent=A}var Ks={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},V2=["Webkit","ms","Moz","O"];Object.keys(Ks).forEach(function(g){V2.forEach(function(A){A=A+g.charAt(0).toUpperCase()+g.substring(1),Ks[A]=Ks[g]})});function dK(g,A,I){return A==null||typeof A=="boolean"||A===""?"":I||typeof A!="number"||A===0||Ks.hasOwnProperty(g)&&Ks[g]?(""+A).trim():A+"px"}function pK(g,A){g=g.style;for(var I in A)if(A.hasOwnProperty(I)){var C=I.indexOf("--")===0,B=dK(I,A[I],C);I==="float"&&(I="cssFloat"),C?g.setProperty(I,B):g[I]=B}}var X2=BC({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function D0(g,A){if(A){if(X2[g]&&(A.children!=null||A.dangerouslySetInnerHTML!=null))throw Error(gI(137,g));if(A.dangerouslySetInnerHTML!=null){if(A.children!=null)throw Error(gI(60));if(typeof A.dangerouslySetInnerHTML!="object"||!("__html"in A.dangerouslySetInnerHTML))throw Error(gI(61))}if(A.style!=null&&typeof A.style!="object")throw Error(gI(62))}}function h0(g,A){if(g.indexOf("-")===-1)return typeof A.is=="string";switch(g){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!1;default:return!0}}var w0=null;function Mk(g){return g=g.target||g.srcElement||window,g.correspondingUseElement&&(g=g.correspondingUseElement),g.nodeType===3?g.parentNode:g}var S0=null,Rn=null,Kn=null;function PU(g){if(g=Hr(g)){if(typeof S0!="function")throw Error(gI(280));var A=g.stateNode;A&&(A=zh(A),S0(g.stateNode,g.type,A))}}function UK(g){Rn?Kn?Kn.push(g):Kn=[g]:Rn=g}function NK(){if(Rn){var g=Rn,A=Kn;if(Kn=Rn=null,PU(g),A)for(g=0;g>>=0,g===0?32:31-(ET(g)/tT|0)|0}var Qc=64,ec=4194304;function Gs(g){switch(g&-g){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return g&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return g&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return g}}function Bh(g,A){var I=g.pendingLanes;if(I===0)return 0;var C=0,B=g.suspendedLanes,i=g.pingedLanes,Q=I&268435455;if(Q!==0){var e=Q&~B;e!==0?C=Gs(e):(i&=Q,i!==0&&(C=Gs(i)))}else Q=I&~B,Q!==0?C=Gs(Q):i!==0&&(C=Gs(i));if(C===0)return 0;if(A!==0&&A!==C&&!(A&B)&&(B=C&-C,i=A&-A,B>=i||B===16&&(i&4194240)!==0))return A;if(C&4&&(C|=I&16),A=g.entangledLanes,A!==0)for(g=g.entanglements,A&=C;0I;I++)A.push(g);return A}function Lr(g,A,I){g.pendingLanes|=A,A!==536870912&&(g.suspendedLanes=0,g.pingedLanes=0),g=g.eventTimes,A=31-BQ(A),g[A]=I}function sT(g,A){var I=g.pendingLanes&~A;g.pendingLanes=A,g.suspendedLanes=0,g.pingedLanes=0,g.expiredLanes&=A,g.mutableReadLanes&=A,g.entangledLanes&=A,A=g.entanglements;var C=g.eventTimes;for(g=g.expirationTimes;0=qs),gN=" ",CN=!1;function jK(g,A){switch(g){case"keyup":return xT.indexOf(A.keyCode)!==-1;case"keydown":return A.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function VK(g){return g=g.detail,typeof g=="object"&&"data"in g?g.data:null}var cn=!1;function bT(g,A){switch(g){case"compositionend":return VK(A);case"keypress":return A.which!==32?null:(CN=!0,gN);case"textInput":return g=A.data,g===gN&&CN?null:g;default:return null}}function OT(g,A){if(cn)return g==="compositionend"||!Kk&&jK(g,A)?(g=PK(),ND=Fk=CE=null,cn=!1,g):null;switch(g){case"paste":return null;case"keypress":if(!(A.ctrlKey||A.altKey||A.metaKey)||A.ctrlKey&&A.altKey){if(A.char&&1=A)return{node:I,offset:A-g};g=C}A:{for(;I;){if(I.nextSibling){I=I.nextSibling;break A}I=I.parentNode}I=void 0}I=eN(I)}}function AJ(g,A){return g&&A?g===A?!0:g&&g.nodeType===3?!1:A&&A.nodeType===3?AJ(g,A.parentNode):"contains"in g?g.contains(A):g.compareDocumentPosition?!!(g.compareDocumentPosition(A)&16):!1:!1}function IJ(){for(var g=window,A=Ah();A instanceof g.HTMLIFrameElement;){try{var I=typeof A.contentWindow.location.href=="string"}catch{I=!1}if(I)g=A.contentWindow;else break;A=Ah(g.document)}return A}function Jk(g){var A=g&&g.nodeName&&g.nodeName.toLowerCase();return A&&(A==="input"&&(g.type==="text"||g.type==="search"||g.type==="tel"||g.type==="url"||g.type==="password")||A==="textarea"||g.contentEditable==="true")}function $T(g){var A=IJ(),I=g.focusedElem,C=g.selectionRange;if(A!==I&&I&&I.ownerDocument&&AJ(I.ownerDocument.documentElement,I)){if(C!==null&&Jk(I)){if(A=C.start,g=C.end,g===void 0&&(g=A),"selectionStart"in I)I.selectionStart=A,I.selectionEnd=Math.min(g,I.value.length);else if(g=(A=I.ownerDocument||document)&&A.defaultView||window,g.getSelection){g=g.getSelection();var B=I.textContent.length,i=Math.min(C.start,B);C=C.end===void 0?i:Math.min(C.end,B),!g.extend&&i>C&&(B=C,C=i,i=B),B=EN(I,i);var Q=EN(I,C);B&&Q&&(g.rangeCount!==1||g.anchorNode!==B.node||g.anchorOffset!==B.offset||g.focusNode!==Q.node||g.focusOffset!==Q.offset)&&(A=A.createRange(),A.setStart(B.node,B.offset),g.removeAllRanges(),i>C?(g.addRange(A),g.extend(Q.node,Q.offset)):(A.setEnd(Q.node,Q.offset),g.addRange(A)))}}for(A=[],g=I;g=g.parentNode;)g.nodeType===1&&A.push({element:g,left:g.scrollLeft,top:g.scrollTop});for(typeof I.focus=="function"&&I.focus(),I=0;I=document.documentMode,Dn=null,d0=null,Ls=null,p0=!1;function tN(g,A,I){var C=I.window===I?I.document:I.nodeType===9?I:I.ownerDocument;p0||Dn==null||Dn!==Ah(C)||(C=Dn,"selectionStart"in C&&Jk(C)?C={start:C.selectionStart,end:C.selectionEnd}:(C=(C.ownerDocument&&C.ownerDocument.defaultView||window).getSelection(),C={anchorNode:C.anchorNode,anchorOffset:C.anchorOffset,focusNode:C.focusNode,focusOffset:C.focusOffset}),Ls&&Cr(Ls,C)||(Ls=C,C=eh(d0,"onSelect"),0Sn||(g.current=K0[Sn],K0[Sn]=null,Sn--)}function Tg(g,A){Sn++,K0[Sn]=g.current,g.current=A}var kE={},yB=RE(kE),ZB=RE(!1),Zt=kE;function _n(g,A){var I=g.type.contextTypes;if(!I)return kE;var C=g.stateNode;if(C&&C.__reactInternalMemoizedUnmaskedChildContext===A)return C.__reactInternalMemoizedMaskedChildContext;var B={},i;for(i in I)B[i]=A[i];return C&&(g=g.stateNode,g.__reactInternalMemoizedUnmaskedChildContext=A,g.__reactInternalMemoizedMaskedChildContext=B),B}function PB(g){return g=g.childContextTypes,g!=null}function th(){Zg(ZB),Zg(yB)}function cN(g,A,I){if(yB.current!==kE)throw Error(gI(168));Tg(yB,A),Tg(ZB,I)}function oJ(g,A,I){var C=g.stateNode;if(A=A.childContextTypes,typeof C.getChildContext!="function")return I;C=C.getChildContext();for(var B in C)if(!(B in A))throw Error(gI(108,W2(g)||"Unknown",B));return BC({},I,C)}function oh(g){return g=(g=g.stateNode)&&g.__reactInternalMemoizedMergedChildContext||kE,Zt=yB.current,Tg(yB,g),Tg(ZB,ZB.current),!0}function DN(g,A,I){var C=g.stateNode;if(!C)throw Error(gI(169));I?(g=oJ(g,A,Zt),C.__reactInternalMemoizedMergedChildContext=g,Zg(ZB),Zg(yB),Tg(yB,g)):Zg(ZB),Tg(ZB,I)}var Ce=null,$h=!1,mG=!1;function nJ(g){Ce===null?Ce=[g]:Ce.push(g)}function nx(g){$h=!0,nJ(g)}function KE(){if(!mG&&Ce!==null){mG=!0;var g=0,A=Kg;try{var I=Ce;for(Kg=1;g>=Q,B-=Q,ie=1<<32-BQ(A)+B|I<q?(P=N,N=null):P=N.sibling;var U=r(c,N,S[q],k);if(U===null){N===null&&(N=P);break}g&&N&&U.alternate===null&&A(c,N),y=i(U,y,q),d===null?f=U:d.sibling=U,d=U,N=P}if(q===S.length)return I(c,N),Xg&&ut(c,q),f;if(N===null){for(;qq?(P=N,N=null):P=N.sibling;var K=r(c,N,U.value,k);if(K===null){N===null&&(N=P);break}g&&N&&K.alternate===null&&A(c,N),y=i(K,y,q),d===null?f=K:d.sibling=K,d=K,N=P}if(U.done)return I(c,N),Xg&&ut(c,q),f;if(N===null){for(;!U.done;q++,U=S.next())U=s(c,U.value,k),U!==null&&(y=i(U,y,q),d===null?f=U:d.sibling=U,d=U);return Xg&&ut(c,q),f}for(N=C(c,N);!U.done;q++,U=S.next())U=l(N,c,q,U.value,k),U!==null&&(g&&U.alternate!==null&&N.delete(U.key===null?q:U.key),y=i(U,y,q),d===null?f=U:d.sibling=U,d=U);return g&&N.forEach(function(X){return A(c,X)}),Xg&&ut(c,q),f}function h(c,y,S,k){if(typeof S=="object"&&S!==null&&S.type===ln&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case Cc:A:{for(var f=S.key,d=y;d!==null;){if(d.key===f){if(f=S.type,f===ln){if(d.tag===7){I(c,d.sibling),y=B(d,S.props.children),y.return=c,c=y;break A}}else if(d.elementType===f||typeof f=="object"&&f!==null&&f.$$typeof===je&&kN(f)===d.type){I(c,d.sibling),y=B(d,S.props),y.ref=Pa(c,d,S),y.return=c,c=y;break A}I(c,d);break}else A(c,d);d=d.sibling}S.type===ln?(y=Tt(S.props.children,c.mode,k,S.key),y.return=c,c=y):(k=LD(S.type,S.key,S.props,null,c.mode,k),k.ref=Pa(c,y,S),k.return=c,c=k)}return Q(c);case rn:A:{for(d=S.key;y!==null;){if(y.key===d)if(y.tag===4&&y.stateNode.containerInfo===S.containerInfo&&y.stateNode.implementation===S.implementation){I(c,y.sibling),y=B(y,S.children||[]),y.return=c,c=y;break A}else{I(c,y);break}else A(c,y);y=y.sibling}y=OG(S,c.mode,k),y.return=c,c=y}return Q(c);case je:return d=S._init,h(c,y,d(S._payload),k)}if(Ss(S))return D(c,y,S,k);if(va(S))return G(c,y,S,k);rc(c,S)}return typeof S=="string"&&S!==""||typeof S=="number"?(S=""+S,y!==null&&y.tag===6?(I(c,y.sibling),y=B(y,S),y.return=c,c=y):(I(c,y),y=bG(S,c.mode,k),y.return=c,c=y),Q(c)):I(c,y)}return h}var Pn=wJ(!0),SJ=wJ(!1),Tr={},FQ=RE(Tr),er=RE(Tr),Er=RE(Tr);function Rt(g){if(g===Tr)throw Error(gI(174));return g}function bk(g,A){switch(Tg(Er,A),Tg(er,g),Tg(FQ,Tr),g=A.nodeType,g){case 9:case 11:A=(A=A.documentElement)?A.namespaceURI:c0(null,"");break;default:g=g===8?A.parentNode:A,A=g.namespaceURI||null,g=g.tagName,A=c0(A,g)}Zg(FQ),Tg(FQ,A)}function Wn(){Zg(FQ),Zg(er),Zg(Er)}function GJ(g){Rt(Er.current);var A=Rt(FQ.current),I=c0(A,g.type);A!==I&&(Tg(er,g),Tg(FQ,I))}function Ok(g){er.current===g&&(Zg(FQ),Zg(er))}var IC=RE(0);function ch(g){for(var A=g;A!==null;){if(A.tag===13){var I=A.memoizedState;if(I!==null&&(I=I.dehydrated,I===null||I.data==="$?"||I.data==="$!"))return A}else if(A.tag===19&&A.memoizedProps.revealOrder!==void 0){if(A.flags&128)return A}else if(A.child!==null){A.child.return=A,A=A.child;continue}if(A===g)break;for(;A.sibling===null;){if(A.return===null||A.return===g)return null;A=A.return}A.sibling.return=A.return,A=A.sibling}return null}var LG=[];function _k(){for(var g=0;gI?I:4,g(!0);var C=YG.transition;YG.transition={};try{g(!1),A()}finally{Kg=I,YG.transition=C}}function LJ(){return Ti().memoizedState}function lx(g,A,I){var C=sE(g);if(I={lane:C,action:I,hasEagerState:!1,eagerState:null,next:null},YJ(g))HJ(A,I);else if(I=lJ(g,A,I,C),I!==null){var B=JB();iQ(I,g,C,B),TJ(I,A,C)}}function cx(g,A,I){var C=sE(g),B={lane:C,action:I,hasEagerState:!1,eagerState:null,next:null};if(YJ(g))HJ(A,B);else{var i=g.alternate;if(g.lanes===0&&(i===null||i.lanes===0)&&(i=A.lastRenderedReducer,i!==null))try{var Q=A.lastRenderedState,e=i(Q,I);if(B.hasEagerState=!0,B.eagerState=e,eQ(e,Q)){var E=A.interleaved;E===null?(B.next=B,xk(A)):(B.next=E.next,E.next=B),A.interleaved=B;return}}catch{}finally{}I=lJ(g,A,B,C),I!==null&&(B=JB(),iQ(I,g,C,B),TJ(I,A,C))}}function YJ(g){var A=g.alternate;return g===CC||A!==null&&A===CC}function HJ(g,A){Ys=Dh=!0;var I=g.pending;I===null?A.next=A:(A.next=I.next,I.next=A),g.pending=A}function TJ(g,A,I){if(I&4194240){var C=A.lanes;C&=g.pendingLanes,I|=C,A.lanes=I,pk(g,I)}}var hh={readContext:Hi,useCallback:rB,useContext:rB,useEffect:rB,useImperativeHandle:rB,useInsertionEffect:rB,useLayoutEffect:rB,useMemo:rB,useReducer:rB,useRef:rB,useState:rB,useDebugValue:rB,useDeferredValue:rB,useTransition:rB,useMutableSource:rB,useSyncExternalStore:rB,useId:rB,unstable_isNewReconciler:!1},Dx={readContext:Hi,useCallback:function(g,A){return uQ().memoizedState=[g,A===void 0?null:A],g},useContext:Hi,useEffect:dN,useImperativeHandle:function(g,A,I){return I=I!=null?I.concat([g]):null,KD(4194308,4,RJ.bind(null,A,g),I)},useLayoutEffect:function(g,A){return KD(4194308,4,g,A)},useInsertionEffect:function(g,A){return KD(4,2,g,A)},useMemo:function(g,A){var I=uQ();return A=A===void 0?null:A,g=g(),I.memoizedState=[g,A],g},useReducer:function(g,A,I){var C=uQ();return A=I!==void 0?I(A):A,C.memoizedState=C.baseState=A,g={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:g,lastRenderedState:A},C.queue=g,g=g.dispatch=lx.bind(null,CC,g),[C.memoizedState,g]},useRef:function(g){var A=uQ();return g={current:g},A.memoizedState=g},useState:MN,useDebugValue:Vk,useDeferredValue:function(g){return uQ().memoizedState=g},useTransition:function(){var g=MN(!1),A=g[0];return g=rx.bind(null,g[1]),uQ().memoizedState=g,[A,g]},useMutableSource:function(){},useSyncExternalStore:function(g,A,I){var C=CC,B=uQ();if(Xg){if(I===void 0)throw Error(gI(407));I=I()}else{if(I=A(),XC===null)throw Error(gI(349));Wt&30||kJ(C,A,I)}B.memoizedState=I;var i={value:I,getSnapshot:A};return B.queue=i,dN(dJ.bind(null,C,i,g),[g]),C.flags|=2048,nr(9,MJ.bind(null,C,i,I,A),void 0,null),I},useId:function(){var g=uQ(),A=XC.identifierPrefix;if(Xg){var I=Qe,C=ie;I=(C&~(1<<32-BQ(C)-1)).toString(32)+I,A=":"+A+"R"+I,I=tr++,0<\/script>",g=g.removeChild(g.firstChild)):typeof C.is=="string"?g=Q.createElement(I,{is:C.is}):(g=Q.createElement(I),I==="select"&&(Q=g,C.multiple?Q.multiple=!0:C.size&&(Q.size=C.size))):g=Q.createElementNS(g,I),g[pQ]=A,g[Qr]=C,jJ(g,A,!1,!1),A.stateNode=g;A:{switch(Q=h0(I,C),I){case"dialog":vg("cancel",g),vg("close",g),B=C;break;case"iframe":case"object":case"embed":vg("load",g),B=C;break;case"video":case"audio":for(B=0;BVn&&(A.flags|=128,C=!0,Wa(i,!1),A.lanes=4194304)}else{if(!C)if(g=ch(Q),g!==null){if(A.flags|=128,C=!0,I=g.updateQueue,I!==null&&(A.updateQueue=I,A.flags|=4),Wa(i,!0),i.tail===null&&i.tailMode==="hidden"&&!Q.alternate&&!Xg)return lB(A),null}else 2*DC()-i.renderingStartTime>Vn&&I!==1073741824&&(A.flags|=128,C=!0,Wa(i,!1),A.lanes=4194304);i.isBackwards?(Q.sibling=A.child,A.child=Q):(I=i.last,I!==null?I.sibling=Q:A.child=Q,i.last=Q)}return i.tail!==null?(A=i.tail,i.rendering=A,i.tail=A.sibling,i.renderingStartTime=DC(),A.sibling=null,I=IC.current,Tg(IC,C?I&1|2:I&1),A):(lB(A),null);case 22:case 23:return gM(),C=A.memoizedState!==null,g!==null&&g.memoizedState!==null!==C&&(A.flags|=8192),C&&A.mode&1?ii&1073741824&&(lB(A),A.subtreeFlags&6&&(A.flags|=8192)):lB(A),null;case 24:return null;case 25:return null}throw Error(gI(156,A.tag))}function Mx(g,A){switch(mk(A),A.tag){case 1:return PB(A.type)&&th(),g=A.flags,g&65536?(A.flags=g&-65537|128,A):null;case 3:return Wn(),Zg(ZB),Zg(yB),_k(),g=A.flags,g&65536&&!(g&128)?(A.flags=g&-65537|128,A):null;case 5:return Ok(A),null;case 13:if(Zg(IC),g=A.memoizedState,g!==null&&g.dehydrated!==null){if(A.alternate===null)throw Error(gI(340));Zn()}return g=A.flags,g&65536?(A.flags=g&-65537|128,A):null;case 19:return Zg(IC),null;case 4:return Wn(),null;case 10:return Tk(A.type._context),null;case 22:case 23:return gM(),null;case 24:return null;default:return null}}var cc=!1,wB=!1,dx=typeof WeakSet=="function"?WeakSet:Set,yI=null;function kn(g,A){var I=g.ref;if(I!==null)if(typeof I=="function")try{I(null)}catch(C){oC(g,A,C)}else I.current=null}function _0(g,A,I){try{I()}catch(C){oC(g,A,C)}}var qN=!1;function px(g,A){if(U0=ih,g=IJ(),Jk(g)){if("selectionStart"in g)var I={start:g.selectionStart,end:g.selectionEnd};else A:{I=(I=g.ownerDocument)&&I.defaultView||window;var C=I.getSelection&&I.getSelection();if(C&&C.rangeCount!==0){I=C.anchorNode;var B=C.anchorOffset,i=C.focusNode;C=C.focusOffset;try{I.nodeType,i.nodeType}catch{I=null;break A}var Q=0,e=-1,E=-1,t=0,a=0,s=g,r=null;I:for(;;){for(var l;s!==I||B!==0&&s.nodeType!==3||(e=Q+B),s!==i||C!==0&&s.nodeType!==3||(E=Q+C),s.nodeType===3&&(Q+=s.nodeValue.length),(l=s.firstChild)!==null;)r=s,s=l;for(;;){if(s===g)break I;if(r===I&&++t===B&&(e=Q),r===i&&++a===C&&(E=Q),(l=s.nextSibling)!==null)break;s=r,r=s.parentNode}s=l}I=e===-1||E===-1?null:{start:e,end:E}}else I=null}I=I||{start:0,end:0}}else I=null;for(N0={focusedElem:g,selectionRange:I},ih=!1,yI=A;yI!==null;)if(A=yI,g=A.child,(A.subtreeFlags&1028)!==0&&g!==null)g.return=A,yI=g;else for(;yI!==null;){A=yI;try{var D=A.alternate;if(A.flags&1024)switch(A.tag){case 0:case 11:case 15:break;case 1:if(D!==null){var G=D.memoizedProps,h=D.memoizedState,c=A.stateNode,y=c.getSnapshotBeforeUpdate(A.elementType===A.type?G:Xi(A.type,G),h);c.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var S=A.stateNode.containerInfo;S.nodeType===1?S.textContent="":S.nodeType===9&&S.documentElement&&S.removeChild(S.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(gI(163))}}catch(k){oC(A,A.return,k)}if(g=A.sibling,g!==null){g.return=A.return,yI=g;break}yI=A.return}return D=qN,qN=!1,D}function Hs(g,A,I){var C=A.updateQueue;if(C=C!==null?C.lastEffect:null,C!==null){var B=C=C.next;do{if((B.tag&g)===g){var i=B.destroy;B.destroy=void 0,i!==void 0&&_0(A,I,i)}B=B.next}while(B!==C)}}function gw(g,A){if(A=A.updateQueue,A=A!==null?A.lastEffect:null,A!==null){var I=A=A.next;do{if((I.tag&g)===g){var C=I.create;I.destroy=C()}I=I.next}while(I!==A)}}function Z0(g){var A=g.ref;if(A!==null){var I=g.stateNode;switch(g.tag){case 5:g=I;break;default:g=I}typeof A=="function"?A(g):A.current=g}}function zJ(g){var A=g.alternate;A!==null&&(g.alternate=null,zJ(A)),g.child=null,g.deletions=null,g.sibling=null,g.tag===5&&(A=g.stateNode,A!==null&&(delete A[pQ],delete A[Qr],delete A[R0],delete A[tx],delete A[ox])),g.stateNode=null,g.return=null,g.dependencies=null,g.memoizedProps=null,g.memoizedState=null,g.pendingProps=null,g.stateNode=null,g.updateQueue=null}function $J(g){return g.tag===5||g.tag===3||g.tag===4}function mN(g){A:for(;;){for(;g.sibling===null;){if(g.return===null||$J(g.return))return null;g=g.return}for(g.sibling.return=g.return,g=g.sibling;g.tag!==5&&g.tag!==6&&g.tag!==18;){if(g.flags&2||g.child===null||g.tag===4)continue A;g.child.return=g,g=g.child}if(!(g.flags&2))return g.stateNode}}function P0(g,A,I){var C=g.tag;if(C===5||C===6)g=g.stateNode,A?I.nodeType===8?I.parentNode.insertBefore(g,A):I.insertBefore(g,A):(I.nodeType===8?(A=I.parentNode,A.insertBefore(g,I)):(A=I,A.appendChild(g)),I=I._reactRootContainer,I!=null||A.onclick!==null||(A.onclick=Eh));else if(C!==4&&(g=g.child,g!==null))for(P0(g,A,I),g=g.sibling;g!==null;)P0(g,A,I),g=g.sibling}function W0(g,A,I){var C=g.tag;if(C===5||C===6)g=g.stateNode,A?I.insertBefore(g,A):I.appendChild(g);else if(C!==4&&(g=g.child,g!==null))for(W0(g,A,I),g=g.sibling;g!==null;)W0(g,A,I),g=g.sibling}var IB=null,$i=!1;function qe(g,A,I){for(I=I.child;I!==null;)Aq(g,A,I),I=I.sibling}function Aq(g,A,I){if(NQ&&typeof NQ.onCommitFiberUnmount=="function")try{NQ.onCommitFiberUnmount(Wh,I)}catch{}switch(I.tag){case 5:wB||kn(I,A);case 6:var C=IB,B=$i;IB=null,qe(g,A,I),IB=C,$i=B,IB!==null&&($i?(g=IB,I=I.stateNode,g.nodeType===8?g.parentNode.removeChild(I):g.removeChild(I)):IB.removeChild(I.stateNode));break;case 18:IB!==null&&($i?(g=IB,I=I.stateNode,g.nodeType===8?qG(g.parentNode,I):g.nodeType===1&&qG(g,I),Ir(g)):qG(IB,I.stateNode));break;case 4:C=IB,B=$i,IB=I.stateNode.containerInfo,$i=!0,qe(g,A,I),IB=C,$i=B;break;case 0:case 11:case 14:case 15:if(!wB&&(C=I.updateQueue,C!==null&&(C=C.lastEffect,C!==null))){B=C=C.next;do{var i=B,Q=i.destroy;i=i.tag,Q!==void 0&&(i&2||i&4)&&_0(I,A,Q),B=B.next}while(B!==C)}qe(g,A,I);break;case 1:if(!wB&&(kn(I,A),C=I.stateNode,typeof C.componentWillUnmount=="function"))try{C.props=I.memoizedProps,C.state=I.memoizedState,C.componentWillUnmount()}catch(e){oC(I,A,e)}qe(g,A,I);break;case 21:qe(g,A,I);break;case 22:I.mode&1?(wB=(C=wB)||I.memoizedState!==null,qe(g,A,I),wB=C):qe(g,A,I);break;default:qe(g,A,I)}}function LN(g){var A=g.updateQueue;if(A!==null){g.updateQueue=null;var I=g.stateNode;I===null&&(I=g.stateNode=new dx),A.forEach(function(C){var B=mx.bind(null,g,C);I.has(C)||(I.add(C),C.then(B,B))})}}function _i(g,A){var I=A.deletions;if(I!==null)for(var C=0;CB&&(B=Q),C&=~i}if(C=B,C=DC()-C,C=(120>C?120:480>C?480:1080>C?1080:1920>C?1920:3e3>C?3e3:4320>C?4320:1960*Nx(C/1960))-C,10g?16:g,BE===null)var C=!1;else{if(g=BE,BE=null,Gh=0,Gg&6)throw Error(gI(331));var B=Gg;for(Gg|=4,yI=g.current;yI!==null;){var i=yI,Q=i.child;if(yI.flags&16){var e=i.deletions;if(e!==null){for(var E=0;EDC()-AM?Ht(g,0):$k|=I),WB(g,A)}function Eq(g,A){A===0&&(g.mode&1?(A=ec,ec<<=1,!(ec&130023424)&&(ec=4194304)):A=1);var I=JB();g=le(g,A),g!==null&&(Lr(g,A,I),WB(g,I))}function qx(g){var A=g.memoizedState,I=0;A!==null&&(I=A.retryLane),Eq(g,I)}function mx(g,A){var I=0;switch(g.tag){case 13:var C=g.stateNode,B=g.memoizedState;B!==null&&(I=B.retryLane);break;case 19:C=g.stateNode;break;default:throw Error(gI(314))}C!==null&&C.delete(A),Eq(g,I)}var tq;tq=function(g,A,I){if(g!==null)if(g.memoizedProps!==A.pendingProps||ZB.current)_B=!0;else{if(!(g.lanes&I)&&!(A.flags&128))return _B=!1,ux(g,A,I);_B=!!(g.flags&131072)}else _B=!1,Xg&&A.flags&1048576&&aJ(A,ah,A.index);switch(A.lanes=0,A.tag){case 2:var C=A.type;JD(g,A),g=A.pendingProps;var B=_n(A,yB.current);qn(A,I),B=Pk(null,A,C,g,B,I);var i=Wk();return A.flags|=1,typeof B=="object"&&B!==null&&typeof B.render=="function"&&B.$$typeof===void 0?(A.tag=1,A.memoizedState=null,A.updateQueue=null,PB(C)?(i=!0,oh(A)):i=!1,A.memoizedState=B.state!==null&&B.state!==void 0?B.state:null,vk(A),B.updater=Aw,A.stateNode=B,B._reactInternals=A,Y0(A,C,g,I),A=x0(null,A,C,!0,i,I)):(A.tag=0,Xg&&i&&qk(A),fB(null,A,B,I),A=A.child),A;case 16:C=A.elementType;A:{switch(JD(g,A),g=A.pendingProps,B=C._init,C=B(C._payload),A.type=C,B=A.tag=Yx(C),g=Xi(C,g),B){case 0:A=T0(null,A,C,g,I);break A;case 1:A=RN(null,A,C,g,I);break A;case 11:A=FN(null,A,C,g,I);break A;case 14:A=fN(null,A,C,Xi(C.type,g),I);break A}throw Error(gI(306,C,""))}return A;case 0:return C=A.type,B=A.pendingProps,B=A.elementType===C?B:Xi(C,B),T0(g,A,C,B,I);case 1:return C=A.type,B=A.pendingProps,B=A.elementType===C?B:Xi(C,B),RN(g,A,C,B,I);case 3:A:{if(ZJ(A),g===null)throw Error(gI(387));C=A.pendingProps,i=A.memoizedState,B=i.element,cJ(g,A),lh(A,C,null,I);var Q=A.memoizedState;if(C=Q.element,i.isDehydrated)if(i={element:C,isDehydrated:!1,cache:Q.cache,pendingSuspenseBoundaries:Q.pendingSuspenseBoundaries,transitions:Q.transitions},A.updateQueue.baseState=i,A.memoizedState=i,A.flags&256){B=jn(Error(gI(423)),A),A=KN(g,A,C,I,B);break A}else if(C!==B){B=jn(Error(gI(424)),A),A=KN(g,A,C,I,B);break A}else for(ei=oE(A.stateNode.containerInfo.firstChild),oi=A,Xg=!0,IQ=null,I=SJ(A,null,C,I),A.child=I;I;)I.flags=I.flags&-3|4096,I=I.sibling;else{if(Zn(),C===B){A=ce(g,A,I);break A}fB(g,A,C,I)}A=A.child}return A;case 5:return GJ(A),g===null&&q0(A),C=A.type,B=A.pendingProps,i=g!==null?g.memoizedProps:null,Q=B.children,F0(C,B)?Q=null:i!==null&&F0(C,i)&&(A.flags|=32),_J(g,A),fB(g,A,Q,I),A.child;case 6:return g===null&&q0(A),null;case 13:return PJ(g,A,I);case 4:return bk(A,A.stateNode.containerInfo),C=A.pendingProps,g===null?A.child=Pn(A,null,C,I):fB(g,A,C,I),A.child;case 11:return C=A.type,B=A.pendingProps,B=A.elementType===C?B:Xi(C,B),FN(g,A,C,B,I);case 7:return fB(g,A,A.pendingProps,I),A.child;case 8:return fB(g,A,A.pendingProps.children,I),A.child;case 12:return fB(g,A,A.pendingProps.children,I),A.child;case 10:A:{if(C=A.type._context,B=A.pendingProps,i=A.memoizedProps,Q=B.value,Tg(sh,C._currentValue),C._currentValue=Q,i!==null)if(eQ(i.value,Q)){if(i.children===B.children&&!ZB.current){A=ce(g,A,I);break A}}else for(i=A.child,i!==null&&(i.return=A);i!==null;){var e=i.dependencies;if(e!==null){Q=i.child;for(var E=e.firstContext;E!==null;){if(E.context===C){if(i.tag===1){E=ne(-1,I&-I),E.tag=2;var t=i.updateQueue;if(t!==null){t=t.shared;var a=t.pending;a===null?E.next=E:(E.next=a.next,a.next=E),t.pending=E}}i.lanes|=I,E=i.alternate,E!==null&&(E.lanes|=I),m0(i.return,I,A),e.lanes|=I;break}E=E.next}}else if(i.tag===10)Q=i.type===A.type?null:i.child;else if(i.tag===18){if(Q=i.return,Q===null)throw Error(gI(341));Q.lanes|=I,e=Q.alternate,e!==null&&(e.lanes|=I),m0(Q,I,A),Q=i.sibling}else Q=i.child;if(Q!==null)Q.return=i;else for(Q=i;Q!==null;){if(Q===A){Q=null;break}if(i=Q.sibling,i!==null){i.return=Q.return,Q=i;break}Q=Q.return}i=Q}fB(g,A,B.children,I),A=A.child}return A;case 9:return B=A.type,C=A.pendingProps.children,qn(A,I),B=Hi(B),C=C(B),A.flags|=1,fB(g,A,C,I),A.child;case 14:return C=A.type,B=Xi(C,A.pendingProps),B=Xi(C.type,B),fN(g,A,C,B,I);case 15:return bJ(g,A,A.type,A.pendingProps,I);case 17:return C=A.type,B=A.pendingProps,B=A.elementType===C?B:Xi(C,B),JD(g,A),A.tag=1,PB(C)?(g=!0,oh(A)):g=!1,qn(A,I),hJ(A,C,B),Y0(A,C,B,I),x0(null,A,C,!0,g,I);case 19:return WJ(g,A,I);case 22:return OJ(g,A,I)}throw Error(gI(156,A.tag))};function oq(g,A){return mK(g,A)}function Lx(g,A,I,C){this.tag=g,this.key=I,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=A,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=C,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Li(g,A,I,C){return new Lx(g,A,I,C)}function BM(g){return g=g.prototype,!(!g||!g.isReactComponent)}function Yx(g){if(typeof g=="function")return BM(g)?1:0;if(g!=null){if(g=g.$$typeof,g===uk)return 11;if(g===kk)return 14}return 2}function rE(g,A){var I=g.alternate;return I===null?(I=Li(g.tag,A,g.key,g.mode),I.elementType=g.elementType,I.type=g.type,I.stateNode=g.stateNode,I.alternate=g,g.alternate=I):(I.pendingProps=A,I.type=g.type,I.flags=0,I.subtreeFlags=0,I.deletions=null),I.flags=g.flags&14680064,I.childLanes=g.childLanes,I.lanes=g.lanes,I.child=g.child,I.memoizedProps=g.memoizedProps,I.memoizedState=g.memoizedState,I.updateQueue=g.updateQueue,A=g.dependencies,I.dependencies=A===null?null:{lanes:A.lanes,firstContext:A.firstContext},I.sibling=g.sibling,I.index=g.index,I.ref=g.ref,I}function LD(g,A,I,C,B,i){var Q=2;if(C=g,typeof g=="function")BM(g)&&(Q=1);else if(typeof g=="string")Q=5;else A:switch(g){case ln:return Tt(I.children,B,i,A);case yk:Q=8,B|=8;break;case E0:return g=Li(12,I,A,B|2),g.elementType=E0,g.lanes=i,g;case t0:return g=Li(13,I,A,B),g.elementType=t0,g.lanes=i,g;case o0:return g=Li(19,I,A,B),g.elementType=o0,g.lanes=i,g;case wK:return Bw(I,B,i,A);default:if(typeof g=="object"&&g!==null)switch(g.$$typeof){case DK:Q=10;break A;case hK:Q=9;break A;case uk:Q=11;break A;case kk:Q=14;break A;case je:Q=16,C=null;break A}throw Error(gI(130,g==null?g:typeof g,""))}return A=Li(Q,I,A,B),A.elementType=g,A.type=C,A.lanes=i,A}function Tt(g,A,I,C){return g=Li(7,g,C,A),g.lanes=I,g}function Bw(g,A,I,C){return g=Li(22,g,C,A),g.elementType=wK,g.lanes=I,g.stateNode={isHidden:!1},g}function bG(g,A,I){return g=Li(6,g,null,A),g.lanes=I,g}function OG(g,A,I){return A=Li(4,g.children!==null?g.children:[],g.key,A),A.lanes=I,A.stateNode={containerInfo:g.containerInfo,pendingChildren:null,implementation:g.implementation},A}function Hx(g,A,I,C,B){this.tag=A,this.containerInfo=g,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=kG(0),this.expirationTimes=kG(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=kG(0),this.identifierPrefix=C,this.onRecoverableError=B,this.mutableSourceEagerHydrationData=null}function iM(g,A,I,C,B,i,Q,e,E){return g=new Hx(g,A,I,e,E),A===1?(A=1,i===!0&&(A|=8)):A=0,i=Li(3,null,null,A),g.current=i,i.stateNode=g,i.memoizedState={element:C,isDehydrated:I,cache:null,transitions:null,pendingSuspenseBoundaries:null},vk(i),g}function Tx(g,A,I){var C=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(rq)}catch(g){console.error(g)}}rq(),aK.exports=li;var _x=aK.exports,lq,_N=_x;lq=_N.createRoot,_N.hydrateRoot;function ME(){return ME=Object.assign?Object.assign.bind():function(g){for(var A=1;A>8&255]+cB[g>>16&255]+cB[g>>24&255]+"-"+cB[A&255]+cB[A>>8&255]+"-"+cB[A>>16&15|64]+cB[A>>24&255]+"-"+cB[I&63|128]+cB[I>>8&255]+"-"+cB[I>>16&255]+cB[I>>24&255]+cB[C&255]+cB[C>>8&255]+cB[C>>16&255]+cB[C>>24&255]).toLowerCase()}function nC(g,A,I){return Math.max(A,Math.min(I,g))}function yM(g,A){return(g%A+A)%A}function Gv(g,A,I,C,B){return C+(g-A)*(B-C)/(I-A)}function yv(g,A,I){return g!==A?(I-g)/(A-g):0}function bs(g,A,I){return(1-I)*g+I*A}function uv(g,A,I,C){return bs(g,A,1-Math.exp(-I*C))}function kv(g,A=1){return A-Math.abs(yM(g,A*2)-A)}function Mv(g,A,I){return g<=A?0:g>=I?1:(g=(g-A)/(I-A),g*g*(3-2*g))}function dv(g,A,I){return g<=A?0:g>=I?1:(g=(g-A)/(I-A),g*g*g*(g*(g*6-15)+10))}function pv(g,A){return g+Math.floor(Math.random()*(A-g+1))}function Uv(g,A){return g+Math.random()*(A-g)}function Nv(g){return g*(.5-Math.random())}function Fv(g){g!==void 0&&(ZN=g);let A=ZN+=1831565813;return A=Math.imul(A^A>>>15,A|1),A^=A+Math.imul(A^A>>>7,A|61),((A^A>>>14)>>>0)/4294967296}function fv(g){return g*vt}function Rv(g){return g*Aa}function Ku(g){return(g&g-1)===0&&g!==0}function Kv(g){return Math.pow(2,Math.ceil(Math.log(g)/Math.LN2))}function Uh(g){return Math.pow(2,Math.floor(Math.log(g)/Math.LN2))}function Jv(g,A,I,C,B){const i=Math.cos,Q=Math.sin,e=i(I/2),E=Q(I/2),t=i((A+C)/2),a=Q((A+C)/2),s=i((A-C)/2),r=Q((A-C)/2),l=i((C-A)/2),D=Q((C-A)/2);switch(B){case"XYX":g.set(e*a,E*s,E*r,e*t);break;case"YZY":g.set(E*r,e*a,E*s,e*t);break;case"ZXZ":g.set(E*s,E*r,e*a,e*t);break;case"XZX":g.set(e*a,E*D,E*l,e*t);break;case"YXY":g.set(E*l,e*a,E*D,e*t);break;case"ZYZ":g.set(E*D,E*l,e*a,e*t);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+B)}}function RB(g,A){switch(A.constructor){case Float32Array:return g;case Uint32Array:return g/4294967295;case Uint16Array:return g/65535;case Uint8Array:return g/255;case Int32Array:return Math.max(g/2147483647,-1);case Int16Array:return Math.max(g/32767,-1);case Int8Array:return Math.max(g/127,-1);default:throw new Error("Invalid component type.")}}function zI(g,A){switch(A.constructor){case Float32Array:return g;case Uint32Array:return Math.round(g*4294967295);case Uint16Array:return Math.round(g*65535);case Uint8Array:return Math.round(g*255);case Int32Array:return Math.round(g*2147483647);case Int16Array:return Math.round(g*32767);case Int8Array:return Math.round(g*127);default:throw new Error("Invalid component type.")}}const hE={DEG2RAD:vt,RAD2DEG:Aa,generateUUID:ni,clamp:nC,euclideanModulo:yM,mapLinear:Gv,inverseLerp:yv,lerp:bs,damp:uv,pingpong:kv,smoothstep:Mv,smootherstep:dv,randInt:pv,randFloat:Uv,randFloatSpread:Nv,seededRandom:Fv,degToRad:fv,radToDeg:Rv,isPowerOfTwo:Ku,ceilPowerOfTwo:Kv,floorPowerOfTwo:Uh,setQuaternionFromProperEuler:Jv,normalize:zI,denormalize:RB};class qA{constructor(A=0,I=0){qA.prototype.isVector2=!0,this.x=A,this.y=I}get width(){return this.x}set width(A){this.x=A}get height(){return this.y}set height(A){this.y=A}set(A,I){return this.x=A,this.y=I,this}setScalar(A){return this.x=A,this.y=A,this}setX(A){return this.x=A,this}setY(A){return this.y=A,this}setComponent(A,I){switch(A){case 0:this.x=I;break;case 1:this.y=I;break;default:throw new Error("index is out of range: "+A)}return this}getComponent(A){switch(A){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+A)}}clone(){return new this.constructor(this.x,this.y)}copy(A){return this.x=A.x,this.y=A.y,this}add(A){return this.x+=A.x,this.y+=A.y,this}addScalar(A){return this.x+=A,this.y+=A,this}addVectors(A,I){return this.x=A.x+I.x,this.y=A.y+I.y,this}addScaledVector(A,I){return this.x+=A.x*I,this.y+=A.y*I,this}sub(A){return this.x-=A.x,this.y-=A.y,this}subScalar(A){return this.x-=A,this.y-=A,this}subVectors(A,I){return this.x=A.x-I.x,this.y=A.y-I.y,this}multiply(A){return this.x*=A.x,this.y*=A.y,this}multiplyScalar(A){return this.x*=A,this.y*=A,this}divide(A){return this.x/=A.x,this.y/=A.y,this}divideScalar(A){return this.multiplyScalar(1/A)}applyMatrix3(A){const I=this.x,C=this.y,B=A.elements;return this.x=B[0]*I+B[3]*C+B[6],this.y=B[1]*I+B[4]*C+B[7],this}min(A){return this.x=Math.min(this.x,A.x),this.y=Math.min(this.y,A.y),this}max(A){return this.x=Math.max(this.x,A.x),this.y=Math.max(this.y,A.y),this}clamp(A,I){return this.x=Math.max(A.x,Math.min(I.x,this.x)),this.y=Math.max(A.y,Math.min(I.y,this.y)),this}clampScalar(A,I){return this.x=Math.max(A,Math.min(I,this.x)),this.y=Math.max(A,Math.min(I,this.y)),this}clampLength(A,I){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(A,Math.min(I,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(A){return this.x*A.x+this.y*A.y}cross(A){return this.x*A.y-this.y*A.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(A){const I=Math.sqrt(this.lengthSq()*A.lengthSq());if(I===0)return Math.PI/2;const C=this.dot(A)/I;return Math.acos(nC(C,-1,1))}distanceTo(A){return Math.sqrt(this.distanceToSquared(A))}distanceToSquared(A){const I=this.x-A.x,C=this.y-A.y;return I*I+C*C}manhattanDistanceTo(A){return Math.abs(this.x-A.x)+Math.abs(this.y-A.y)}setLength(A){return this.normalize().multiplyScalar(A)}lerp(A,I){return this.x+=(A.x-this.x)*I,this.y+=(A.y-this.y)*I,this}lerpVectors(A,I,C){return this.x=A.x+(I.x-A.x)*C,this.y=A.y+(I.y-A.y)*C,this}equals(A){return A.x===this.x&&A.y===this.y}fromArray(A,I=0){return this.x=A[I],this.y=A[I+1],this}toArray(A=[],I=0){return A[I]=this.x,A[I+1]=this.y,A}fromBufferAttribute(A,I){return this.x=A.getX(I),this.y=A.getY(I),this}rotateAround(A,I){const C=Math.cos(I),B=Math.sin(I),i=this.x-A.x,Q=this.y-A.y;return this.x=i*C-Q*B+A.x,this.y=i*B+Q*C+A.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class PI{constructor(A,I,C,B,i,Q,e,E,t){PI.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],A!==void 0&&this.set(A,I,C,B,i,Q,e,E,t)}set(A,I,C,B,i,Q,e,E,t){const a=this.elements;return a[0]=A,a[1]=B,a[2]=e,a[3]=I,a[4]=i,a[5]=E,a[6]=C,a[7]=Q,a[8]=t,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(A){const I=this.elements,C=A.elements;return I[0]=C[0],I[1]=C[1],I[2]=C[2],I[3]=C[3],I[4]=C[4],I[5]=C[5],I[6]=C[6],I[7]=C[7],I[8]=C[8],this}extractBasis(A,I,C){return A.setFromMatrix3Column(this,0),I.setFromMatrix3Column(this,1),C.setFromMatrix3Column(this,2),this}setFromMatrix4(A){const I=A.elements;return this.set(I[0],I[4],I[8],I[1],I[5],I[9],I[2],I[6],I[10]),this}multiply(A){return this.multiplyMatrices(this,A)}premultiply(A){return this.multiplyMatrices(A,this)}multiplyMatrices(A,I){const C=A.elements,B=I.elements,i=this.elements,Q=C[0],e=C[3],E=C[6],t=C[1],a=C[4],s=C[7],r=C[2],l=C[5],D=C[8],G=B[0],h=B[3],c=B[6],y=B[1],S=B[4],k=B[7],f=B[2],d=B[5],N=B[8];return i[0]=Q*G+e*y+E*f,i[3]=Q*h+e*S+E*d,i[6]=Q*c+e*k+E*N,i[1]=t*G+a*y+s*f,i[4]=t*h+a*S+s*d,i[7]=t*c+a*k+s*N,i[2]=r*G+l*y+D*f,i[5]=r*h+l*S+D*d,i[8]=r*c+l*k+D*N,this}multiplyScalar(A){const I=this.elements;return I[0]*=A,I[3]*=A,I[6]*=A,I[1]*=A,I[4]*=A,I[7]*=A,I[2]*=A,I[5]*=A,I[8]*=A,this}determinant(){const A=this.elements,I=A[0],C=A[1],B=A[2],i=A[3],Q=A[4],e=A[5],E=A[6],t=A[7],a=A[8];return I*Q*a-I*e*t-C*i*a+C*e*E+B*i*t-B*Q*E}invert(){const A=this.elements,I=A[0],C=A[1],B=A[2],i=A[3],Q=A[4],e=A[5],E=A[6],t=A[7],a=A[8],s=a*Q-e*t,r=e*E-a*i,l=t*i-Q*E,D=I*s+C*r+B*l;if(D===0)return this.set(0,0,0,0,0,0,0,0,0);const G=1/D;return A[0]=s*G,A[1]=(B*t-a*C)*G,A[2]=(e*C-B*Q)*G,A[3]=r*G,A[4]=(a*I-B*E)*G,A[5]=(B*i-e*I)*G,A[6]=l*G,A[7]=(C*E-t*I)*G,A[8]=(Q*I-C*i)*G,this}transpose(){let A;const I=this.elements;return A=I[1],I[1]=I[3],I[3]=A,A=I[2],I[2]=I[6],I[6]=A,A=I[5],I[5]=I[7],I[7]=A,this}getNormalMatrix(A){return this.setFromMatrix4(A).invert().transpose()}transposeIntoArray(A){const I=this.elements;return A[0]=I[0],A[1]=I[3],A[2]=I[6],A[3]=I[1],A[4]=I[4],A[5]=I[7],A[6]=I[2],A[7]=I[5],A[8]=I[8],this}setUvTransform(A,I,C,B,i,Q,e){const E=Math.cos(i),t=Math.sin(i);return this.set(C*E,C*t,-C*(E*Q+t*e)+Q+A,-B*t,B*E,-B*(-t*Q+E*e)+e+I,0,0,1),this}scale(A,I){return this.premultiply(_G.makeScale(A,I)),this}rotate(A){return this.premultiply(_G.makeRotation(-A)),this}translate(A,I){return this.premultiply(_G.makeTranslation(A,I)),this}makeTranslation(A,I){return A.isVector2?this.set(1,0,A.x,0,1,A.y,0,0,1):this.set(1,0,A,0,1,I,0,0,1),this}makeRotation(A){const I=Math.cos(A),C=Math.sin(A);return this.set(I,-C,0,C,I,0,0,0,1),this}makeScale(A,I){return this.set(A,0,0,0,I,0,0,0,1),this}equals(A){const I=this.elements,C=A.elements;for(let B=0;B<9;B++)if(I[B]!==C[B])return!1;return!0}fromArray(A,I=0){for(let C=0;C<9;C++)this.elements[C]=A[C+I];return this}toArray(A=[],I=0){const C=this.elements;return A[I]=C[0],A[I+1]=C[1],A[I+2]=C[2],A[I+3]=C[3],A[I+4]=C[4],A[I+5]=C[5],A[I+6]=C[6],A[I+7]=C[7],A[I+8]=C[8],A}clone(){return new this.constructor().fromArray(this.elements)}}const _G=new PI;function cm(g){for(let A=g.length-1;A>=0;--A)if(g[A]>=65535)return!0;return!1}const qv={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function dn(g,A){return new qv[g](A)}function yr(g){return document.createElementNS("http://www.w3.org/1999/xhtml",g)}function Dm(){const g=yr("canvas");return g.style.display="block",g}const PN={};function bt(g){g in PN||(PN[g]=!0,console.warn(g))}const WN=new PI().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),jN=new PI().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),wc={[mQ]:{transfer:Dr,primaries:hr,toReference:g=>g,fromReference:g=>g},[cC]:{transfer:Hg,primaries:hr,toReference:g=>g.convertSRGBToLinear(),fromReference:g=>g.convertLinearToSRGB()},[vr]:{transfer:Dr,primaries:wr,toReference:g=>g.applyMatrix3(jN),fromReference:g=>g.applyMatrix3(WN)},[sw]:{transfer:Hg,primaries:wr,toReference:g=>g.convertSRGBToLinear().applyMatrix3(jN),fromReference:g=>g.applyMatrix3(WN).convertLinearToSRGB()}},mv=new Set([mQ,vr]),Fg={enabled:!0,_workingColorSpace:mQ,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(g){if(!mv.has(g))throw new Error(`Unsupported working color space, "${g}".`);this._workingColorSpace=g},convert:function(g,A,I){if(this.enabled===!1||A===I||!A||!I)return g;const C=wc[A].toReference,B=wc[I].fromReference;return B(C(g))},fromWorkingColorSpace:function(g,A){return this.convert(g,this._workingColorSpace,A)},toWorkingColorSpace:function(g,A){return this.convert(g,A,this._workingColorSpace)},getPrimaries:function(g){return wc[g].primaries},getTransfer:function(g){return g===Qi?Dr:wc[g].transfer}};function Hn(g){return g<.04045?g*.0773993808:Math.pow(g*.9478672986+.0521327014,2.4)}function ZG(g){return g<.0031308?g*12.92:1.055*Math.pow(g,.41666)-.055}let mo;class uM{static getDataURL(A){if(/^data:/i.test(A.src)||typeof HTMLCanvasElement>"u")return A.src;let I;if(A instanceof HTMLCanvasElement)I=A;else{mo===void 0&&(mo=yr("canvas")),mo.width=A.width,mo.height=A.height;const C=mo.getContext("2d");A instanceof ImageData?C.putImageData(A,0,0):C.drawImage(A,0,0,A.width,A.height),I=mo}return I.width>2048||I.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",A),I.toDataURL("image/jpeg",.6)):I.toDataURL("image/png")}static sRGBToLinear(A){if(typeof HTMLImageElement<"u"&&A instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&A instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&A instanceof ImageBitmap){const I=yr("canvas");I.width=A.width,I.height=A.height;const C=I.getContext("2d");C.drawImage(A,0,0,A.width,A.height);const B=C.getImageData(0,0,A.width,A.height),i=B.data;for(let Q=0;Q0&&(C.userData=this.userData),I||(A.textures[this.uuid]=C),C}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(A){if(this.mapping!==ow)return A;if(A.applyMatrix3(this.matrix),A.x<0||A.x>1)switch(this.wrapS){case pE:A.x=A.x-Math.floor(A.x);break;case CB:A.x=A.x<0?0:1;break;case zn:Math.abs(Math.floor(A.x)%2)===1?A.x=Math.ceil(A.x)-A.x:A.x=A.x-Math.floor(A.x);break}if(A.y<0||A.y>1)switch(this.wrapT){case pE:A.y=A.y-Math.floor(A.y);break;case CB:A.y=A.y<0?0:1;break;case zn:Math.abs(Math.floor(A.y)%2)===1?A.y=Math.ceil(A.y)-A.y:A.y=A.y-Math.floor(A.y);break}return this.flipY&&(A.y=1-A.y),A}set needsUpdate(A){A===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return bt("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===cC?DE:wM}set encoding(A){bt("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=A===DE?cC:Qi}}Lg.DEFAULT_IMAGE=null;Lg.DEFAULT_MAPPING=ow;Lg.DEFAULT_ANISOTROPY=1;class Sg{constructor(A=0,I=0,C=0,B=1){Sg.prototype.isVector4=!0,this.x=A,this.y=I,this.z=C,this.w=B}get width(){return this.z}set width(A){this.z=A}get height(){return this.w}set height(A){this.w=A}set(A,I,C,B){return this.x=A,this.y=I,this.z=C,this.w=B,this}setScalar(A){return this.x=A,this.y=A,this.z=A,this.w=A,this}setX(A){return this.x=A,this}setY(A){return this.y=A,this}setZ(A){return this.z=A,this}setW(A){return this.w=A,this}setComponent(A,I){switch(A){case 0:this.x=I;break;case 1:this.y=I;break;case 2:this.z=I;break;case 3:this.w=I;break;default:throw new Error("index is out of range: "+A)}return this}getComponent(A){switch(A){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+A)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(A){return this.x=A.x,this.y=A.y,this.z=A.z,this.w=A.w!==void 0?A.w:1,this}add(A){return this.x+=A.x,this.y+=A.y,this.z+=A.z,this.w+=A.w,this}addScalar(A){return this.x+=A,this.y+=A,this.z+=A,this.w+=A,this}addVectors(A,I){return this.x=A.x+I.x,this.y=A.y+I.y,this.z=A.z+I.z,this.w=A.w+I.w,this}addScaledVector(A,I){return this.x+=A.x*I,this.y+=A.y*I,this.z+=A.z*I,this.w+=A.w*I,this}sub(A){return this.x-=A.x,this.y-=A.y,this.z-=A.z,this.w-=A.w,this}subScalar(A){return this.x-=A,this.y-=A,this.z-=A,this.w-=A,this}subVectors(A,I){return this.x=A.x-I.x,this.y=A.y-I.y,this.z=A.z-I.z,this.w=A.w-I.w,this}multiply(A){return this.x*=A.x,this.y*=A.y,this.z*=A.z,this.w*=A.w,this}multiplyScalar(A){return this.x*=A,this.y*=A,this.z*=A,this.w*=A,this}applyMatrix4(A){const I=this.x,C=this.y,B=this.z,i=this.w,Q=A.elements;return this.x=Q[0]*I+Q[4]*C+Q[8]*B+Q[12]*i,this.y=Q[1]*I+Q[5]*C+Q[9]*B+Q[13]*i,this.z=Q[2]*I+Q[6]*C+Q[10]*B+Q[14]*i,this.w=Q[3]*I+Q[7]*C+Q[11]*B+Q[15]*i,this}divideScalar(A){return this.multiplyScalar(1/A)}setAxisAngleFromQuaternion(A){this.w=2*Math.acos(A.w);const I=Math.sqrt(1-A.w*A.w);return I<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=A.x/I,this.y=A.y/I,this.z=A.z/I),this}setAxisAngleFromRotationMatrix(A){let I,C,B,i;const E=A.elements,t=E[0],a=E[4],s=E[8],r=E[1],l=E[5],D=E[9],G=E[2],h=E[6],c=E[10];if(Math.abs(a-r)<.01&&Math.abs(s-G)<.01&&Math.abs(D-h)<.01){if(Math.abs(a+r)<.1&&Math.abs(s+G)<.1&&Math.abs(D+h)<.1&&Math.abs(t+l+c-3)<.1)return this.set(1,0,0,0),this;I=Math.PI;const S=(t+1)/2,k=(l+1)/2,f=(c+1)/2,d=(a+r)/4,N=(s+G)/4,q=(D+h)/4;return S>k&&S>f?S<.01?(C=0,B=.707106781,i=.707106781):(C=Math.sqrt(S),B=d/C,i=N/C):k>f?k<.01?(C=.707106781,B=0,i=.707106781):(B=Math.sqrt(k),C=d/B,i=q/B):f<.01?(C=.707106781,B=.707106781,i=0):(i=Math.sqrt(f),C=N/i,B=q/i),this.set(C,B,i,I),this}let y=Math.sqrt((h-D)*(h-D)+(s-G)*(s-G)+(r-a)*(r-a));return Math.abs(y)<.001&&(y=1),this.x=(h-D)/y,this.y=(s-G)/y,this.z=(r-a)/y,this.w=Math.acos((t+l+c-1)/2),this}min(A){return this.x=Math.min(this.x,A.x),this.y=Math.min(this.y,A.y),this.z=Math.min(this.z,A.z),this.w=Math.min(this.w,A.w),this}max(A){return this.x=Math.max(this.x,A.x),this.y=Math.max(this.y,A.y),this.z=Math.max(this.z,A.z),this.w=Math.max(this.w,A.w),this}clamp(A,I){return this.x=Math.max(A.x,Math.min(I.x,this.x)),this.y=Math.max(A.y,Math.min(I.y,this.y)),this.z=Math.max(A.z,Math.min(I.z,this.z)),this.w=Math.max(A.w,Math.min(I.w,this.w)),this}clampScalar(A,I){return this.x=Math.max(A,Math.min(I,this.x)),this.y=Math.max(A,Math.min(I,this.y)),this.z=Math.max(A,Math.min(I,this.z)),this.w=Math.max(A,Math.min(I,this.w)),this}clampLength(A,I){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(A,Math.min(I,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(A){return this.x*A.x+this.y*A.y+this.z*A.z+this.w*A.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(A){return this.normalize().multiplyScalar(A)}lerp(A,I){return this.x+=(A.x-this.x)*I,this.y+=(A.y-this.y)*I,this.z+=(A.z-this.z)*I,this.w+=(A.w-this.w)*I,this}lerpVectors(A,I,C){return this.x=A.x+(I.x-A.x)*C,this.y=A.y+(I.y-A.y)*C,this.z=A.z+(I.z-A.z)*C,this.w=A.w+(I.w-A.w)*C,this}equals(A){return A.x===this.x&&A.y===this.y&&A.z===this.z&&A.w===this.w}fromArray(A,I=0){return this.x=A[I],this.y=A[I+1],this.z=A[I+2],this.w=A[I+3],this}toArray(A=[],I=0){return A[I]=this.x,A[I+1]=this.y,A[I+2]=this.z,A[I+3]=this.w,A}fromBufferAttribute(A,I){return this.x=A.getX(I),this.y=A.getY(I),this.z=A.getZ(I),this.w=A.getW(I),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class hm extends ue{constructor(A=1,I=1,C={}){super(),this.isRenderTarget=!0,this.width=A,this.height=I,this.depth=1,this.scissor=new Sg(0,0,A,I),this.scissorTest=!1,this.viewport=new Sg(0,0,A,I);const B={width:A,height:I,depth:1};C.encoding!==void 0&&(bt("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),C.colorSpace=C.encoding===DE?cC:Qi),C=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:wg,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},C),this.texture=new Lg(B,C.mapping,C.wrapS,C.wrapT,C.magFilter,C.minFilter,C.format,C.type,C.anisotropy,C.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=C.generateMipmaps,this.texture.internalFormat=C.internalFormat,this.depthBuffer=C.depthBuffer,this.stencilBuffer=C.stencilBuffer,this.depthTexture=C.depthTexture,this.samples=C.samples}setSize(A,I,C=1){(this.width!==A||this.height!==I||this.depth!==C)&&(this.width=A,this.height=I,this.depth=C,this.texture.image.width=A,this.texture.image.height=I,this.texture.image.depth=C,this.dispose()),this.viewport.set(0,0,A,I),this.scissor.set(0,0,A,I)}clone(){return new this.constructor().copy(this)}copy(A){this.width=A.width,this.height=A.height,this.depth=A.depth,this.scissor.copy(A.scissor),this.scissorTest=A.scissorTest,this.viewport.copy(A.viewport),this.texture=A.texture.clone(),this.texture.isRenderTargetTexture=!0;const I=Object.assign({},A.texture.image);return this.texture.source=new qt(I),this.depthBuffer=A.depthBuffer,this.stencilBuffer=A.stencilBuffer,A.depthTexture!==null&&(this.depthTexture=A.depthTexture.clone()),this.samples=A.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class MC extends hm{constructor(A=1,I=1,C={}){super(A,I,C),this.isWebGLRenderTarget=!0}}class rw extends Lg{constructor(A=null,I=1,C=1,B=1){super(null),this.isDataArrayTexture=!0,this.image={data:A,width:I,height:C,depth:B},this.magFilter=tg,this.minFilter=tg,this.wrapR=CB,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Hv extends MC{constructor(A=1,I=1,C=1,B={}){super(A,I,B),this.isWebGLArrayRenderTarget=!0,this.depth=C,this.texture=new rw(null,A,I,C),this.texture.isRenderTargetTexture=!0}}class kM extends Lg{constructor(A=null,I=1,C=1,B=1){super(null),this.isData3DTexture=!0,this.image={data:A,width:I,height:C,depth:B},this.magFilter=tg,this.minFilter=tg,this.wrapR=CB,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Tv extends MC{constructor(A=1,I=1,C=1,B={}){super(A,I,B),this.isWebGL3DRenderTarget=!0,this.depth=C,this.texture=new kM(null,A,I,C),this.texture.isRenderTargetTexture=!0}}class xv extends MC{constructor(A=1,I=1,C=1,B={}){super(A,I,B),this.isWebGLMultipleRenderTargets=!0;const i=this.texture;this.texture=[];for(let Q=0;Q=0?1:-1,S=1-c*c;if(S>Number.EPSILON){const f=Math.sqrt(S),d=Math.atan2(f,c*y);h=Math.sin(h*d)/f,e=Math.sin(e*d)/f}const k=e*y;if(E=E*h+r*k,t=t*h+l*k,a=a*h+D*k,s=s*h+G*k,h===1-e){const f=1/Math.sqrt(E*E+t*t+a*a+s*s);E*=f,t*=f,a*=f,s*=f}}A[I]=E,A[I+1]=t,A[I+2]=a,A[I+3]=s}static multiplyQuaternionsFlat(A,I,C,B,i,Q){const e=C[B],E=C[B+1],t=C[B+2],a=C[B+3],s=i[Q],r=i[Q+1],l=i[Q+2],D=i[Q+3];return A[I]=e*D+a*s+E*l-t*r,A[I+1]=E*D+a*r+t*s-e*l,A[I+2]=t*D+a*l+e*r-E*s,A[I+3]=a*D-e*s-E*r-t*l,A}get x(){return this._x}set x(A){this._x=A,this._onChangeCallback()}get y(){return this._y}set y(A){this._y=A,this._onChangeCallback()}get z(){return this._z}set z(A){this._z=A,this._onChangeCallback()}get w(){return this._w}set w(A){this._w=A,this._onChangeCallback()}set(A,I,C,B){return this._x=A,this._y=I,this._z=C,this._w=B,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(A){return this._x=A.x,this._y=A.y,this._z=A.z,this._w=A.w,this._onChangeCallback(),this}setFromEuler(A,I=!0){const C=A._x,B=A._y,i=A._z,Q=A._order,e=Math.cos,E=Math.sin,t=e(C/2),a=e(B/2),s=e(i/2),r=E(C/2),l=E(B/2),D=E(i/2);switch(Q){case"XYZ":this._x=r*a*s+t*l*D,this._y=t*l*s-r*a*D,this._z=t*a*D+r*l*s,this._w=t*a*s-r*l*D;break;case"YXZ":this._x=r*a*s+t*l*D,this._y=t*l*s-r*a*D,this._z=t*a*D-r*l*s,this._w=t*a*s+r*l*D;break;case"ZXY":this._x=r*a*s-t*l*D,this._y=t*l*s+r*a*D,this._z=t*a*D+r*l*s,this._w=t*a*s-r*l*D;break;case"ZYX":this._x=r*a*s-t*l*D,this._y=t*l*s+r*a*D,this._z=t*a*D-r*l*s,this._w=t*a*s+r*l*D;break;case"YZX":this._x=r*a*s+t*l*D,this._y=t*l*s+r*a*D,this._z=t*a*D-r*l*s,this._w=t*a*s-r*l*D;break;case"XZY":this._x=r*a*s-t*l*D,this._y=t*l*s-r*a*D,this._z=t*a*D+r*l*s,this._w=t*a*s+r*l*D;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+Q)}return I===!0&&this._onChangeCallback(),this}setFromAxisAngle(A,I){const C=I/2,B=Math.sin(C);return this._x=A.x*B,this._y=A.y*B,this._z=A.z*B,this._w=Math.cos(C),this._onChangeCallback(),this}setFromRotationMatrix(A){const I=A.elements,C=I[0],B=I[4],i=I[8],Q=I[1],e=I[5],E=I[9],t=I[2],a=I[6],s=I[10],r=C+e+s;if(r>0){const l=.5/Math.sqrt(r+1);this._w=.25/l,this._x=(a-E)*l,this._y=(i-t)*l,this._z=(Q-B)*l}else if(C>e&&C>s){const l=2*Math.sqrt(1+C-e-s);this._w=(a-E)/l,this._x=.25*l,this._y=(B+Q)/l,this._z=(i+t)/l}else if(e>s){const l=2*Math.sqrt(1+e-C-s);this._w=(i-t)/l,this._x=(B+Q)/l,this._y=.25*l,this._z=(E+a)/l}else{const l=2*Math.sqrt(1+s-C-e);this._w=(Q-B)/l,this._x=(i+t)/l,this._y=(E+a)/l,this._z=.25*l}return this._onChangeCallback(),this}setFromUnitVectors(A,I){let C=A.dot(I)+1;return CMath.abs(A.z)?(this._x=-A.y,this._y=A.x,this._z=0,this._w=C):(this._x=0,this._y=-A.z,this._z=A.y,this._w=C)):(this._x=A.y*I.z-A.z*I.y,this._y=A.z*I.x-A.x*I.z,this._z=A.x*I.y-A.y*I.x,this._w=C),this.normalize()}angleTo(A){return 2*Math.acos(Math.abs(nC(this.dot(A),-1,1)))}rotateTowards(A,I){const C=this.angleTo(A);if(C===0)return this;const B=Math.min(1,I/C);return this.slerp(A,B),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(A){return this._x*A._x+this._y*A._y+this._z*A._z+this._w*A._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let A=this.length();return A===0?(this._x=0,this._y=0,this._z=0,this._w=1):(A=1/A,this._x=this._x*A,this._y=this._y*A,this._z=this._z*A,this._w=this._w*A),this._onChangeCallback(),this}multiply(A){return this.multiplyQuaternions(this,A)}premultiply(A){return this.multiplyQuaternions(A,this)}multiplyQuaternions(A,I){const C=A._x,B=A._y,i=A._z,Q=A._w,e=I._x,E=I._y,t=I._z,a=I._w;return this._x=C*a+Q*e+B*t-i*E,this._y=B*a+Q*E+i*e-C*t,this._z=i*a+Q*t+C*E-B*e,this._w=Q*a-C*e-B*E-i*t,this._onChangeCallback(),this}slerp(A,I){if(I===0)return this;if(I===1)return this.copy(A);const C=this._x,B=this._y,i=this._z,Q=this._w;let e=Q*A._w+C*A._x+B*A._y+i*A._z;if(e<0?(this._w=-A._w,this._x=-A._x,this._y=-A._y,this._z=-A._z,e=-e):this.copy(A),e>=1)return this._w=Q,this._x=C,this._y=B,this._z=i,this;const E=1-e*e;if(E<=Number.EPSILON){const l=1-I;return this._w=l*Q+I*this._w,this._x=l*C+I*this._x,this._y=l*B+I*this._y,this._z=l*i+I*this._z,this.normalize(),this}const t=Math.sqrt(E),a=Math.atan2(t,e),s=Math.sin((1-I)*a)/t,r=Math.sin(I*a)/t;return this._w=Q*s+this._w*r,this._x=C*s+this._x*r,this._y=B*s+this._y*r,this._z=i*s+this._z*r,this._onChangeCallback(),this}slerpQuaternions(A,I,C){return this.copy(A).slerp(I,C)}random(){const A=Math.random(),I=Math.sqrt(1-A),C=Math.sqrt(A),B=2*Math.PI*Math.random(),i=2*Math.PI*Math.random();return this.set(I*Math.cos(B),C*Math.sin(i),C*Math.cos(i),I*Math.sin(B))}equals(A){return A._x===this._x&&A._y===this._y&&A._z===this._z&&A._w===this._w}fromArray(A,I=0){return this._x=A[I],this._y=A[I+1],this._z=A[I+2],this._w=A[I+3],this._onChangeCallback(),this}toArray(A=[],I=0){return A[I]=this._x,A[I+1]=this._y,A[I+2]=this._z,A[I+3]=this._w,A}fromBufferAttribute(A,I){return this._x=A.getX(I),this._y=A.getY(I),this._z=A.getZ(I),this._w=A.getW(I),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(A){return this._onChangeCallback=A,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class O{constructor(A=0,I=0,C=0){O.prototype.isVector3=!0,this.x=A,this.y=I,this.z=C}set(A,I,C){return C===void 0&&(C=this.z),this.x=A,this.y=I,this.z=C,this}setScalar(A){return this.x=A,this.y=A,this.z=A,this}setX(A){return this.x=A,this}setY(A){return this.y=A,this}setZ(A){return this.z=A,this}setComponent(A,I){switch(A){case 0:this.x=I;break;case 1:this.y=I;break;case 2:this.z=I;break;default:throw new Error("index is out of range: "+A)}return this}getComponent(A){switch(A){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+A)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(A){return this.x=A.x,this.y=A.y,this.z=A.z,this}add(A){return this.x+=A.x,this.y+=A.y,this.z+=A.z,this}addScalar(A){return this.x+=A,this.y+=A,this.z+=A,this}addVectors(A,I){return this.x=A.x+I.x,this.y=A.y+I.y,this.z=A.z+I.z,this}addScaledVector(A,I){return this.x+=A.x*I,this.y+=A.y*I,this.z+=A.z*I,this}sub(A){return this.x-=A.x,this.y-=A.y,this.z-=A.z,this}subScalar(A){return this.x-=A,this.y-=A,this.z-=A,this}subVectors(A,I){return this.x=A.x-I.x,this.y=A.y-I.y,this.z=A.z-I.z,this}multiply(A){return this.x*=A.x,this.y*=A.y,this.z*=A.z,this}multiplyScalar(A){return this.x*=A,this.y*=A,this.z*=A,this}multiplyVectors(A,I){return this.x=A.x*I.x,this.y=A.y*I.y,this.z=A.z*I.z,this}applyEuler(A){return this.applyQuaternion(VN.setFromEuler(A))}applyAxisAngle(A,I){return this.applyQuaternion(VN.setFromAxisAngle(A,I))}applyMatrix3(A){const I=this.x,C=this.y,B=this.z,i=A.elements;return this.x=i[0]*I+i[3]*C+i[6]*B,this.y=i[1]*I+i[4]*C+i[7]*B,this.z=i[2]*I+i[5]*C+i[8]*B,this}applyNormalMatrix(A){return this.applyMatrix3(A).normalize()}applyMatrix4(A){const I=this.x,C=this.y,B=this.z,i=A.elements,Q=1/(i[3]*I+i[7]*C+i[11]*B+i[15]);return this.x=(i[0]*I+i[4]*C+i[8]*B+i[12])*Q,this.y=(i[1]*I+i[5]*C+i[9]*B+i[13])*Q,this.z=(i[2]*I+i[6]*C+i[10]*B+i[14])*Q,this}applyQuaternion(A){const I=this.x,C=this.y,B=this.z,i=A.x,Q=A.y,e=A.z,E=A.w,t=2*(Q*B-e*C),a=2*(e*I-i*B),s=2*(i*C-Q*I);return this.x=I+E*t+Q*s-e*a,this.y=C+E*a+e*t-i*s,this.z=B+E*s+i*a-Q*t,this}project(A){return this.applyMatrix4(A.matrixWorldInverse).applyMatrix4(A.projectionMatrix)}unproject(A){return this.applyMatrix4(A.projectionMatrixInverse).applyMatrix4(A.matrixWorld)}transformDirection(A){const I=this.x,C=this.y,B=this.z,i=A.elements;return this.x=i[0]*I+i[4]*C+i[8]*B,this.y=i[1]*I+i[5]*C+i[9]*B,this.z=i[2]*I+i[6]*C+i[10]*B,this.normalize()}divide(A){return this.x/=A.x,this.y/=A.y,this.z/=A.z,this}divideScalar(A){return this.multiplyScalar(1/A)}min(A){return this.x=Math.min(this.x,A.x),this.y=Math.min(this.y,A.y),this.z=Math.min(this.z,A.z),this}max(A){return this.x=Math.max(this.x,A.x),this.y=Math.max(this.y,A.y),this.z=Math.max(this.z,A.z),this}clamp(A,I){return this.x=Math.max(A.x,Math.min(I.x,this.x)),this.y=Math.max(A.y,Math.min(I.y,this.y)),this.z=Math.max(A.z,Math.min(I.z,this.z)),this}clampScalar(A,I){return this.x=Math.max(A,Math.min(I,this.x)),this.y=Math.max(A,Math.min(I,this.y)),this.z=Math.max(A,Math.min(I,this.z)),this}clampLength(A,I){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(A,Math.min(I,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(A){return this.x*A.x+this.y*A.y+this.z*A.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(A){return this.normalize().multiplyScalar(A)}lerp(A,I){return this.x+=(A.x-this.x)*I,this.y+=(A.y-this.y)*I,this.z+=(A.z-this.z)*I,this}lerpVectors(A,I,C){return this.x=A.x+(I.x-A.x)*C,this.y=A.y+(I.y-A.y)*C,this.z=A.z+(I.z-A.z)*C,this}cross(A){return this.crossVectors(this,A)}crossVectors(A,I){const C=A.x,B=A.y,i=A.z,Q=I.x,e=I.y,E=I.z;return this.x=B*E-i*e,this.y=i*Q-C*E,this.z=C*e-B*Q,this}projectOnVector(A){const I=A.lengthSq();if(I===0)return this.set(0,0,0);const C=A.dot(this)/I;return this.copy(A).multiplyScalar(C)}projectOnPlane(A){return WG.copy(this).projectOnVector(A),this.sub(WG)}reflect(A){return this.sub(WG.copy(A).multiplyScalar(2*this.dot(A)))}angleTo(A){const I=Math.sqrt(this.lengthSq()*A.lengthSq());if(I===0)return Math.PI/2;const C=this.dot(A)/I;return Math.acos(nC(C,-1,1))}distanceTo(A){return Math.sqrt(this.distanceToSquared(A))}distanceToSquared(A){const I=this.x-A.x,C=this.y-A.y,B=this.z-A.z;return I*I+C*C+B*B}manhattanDistanceTo(A){return Math.abs(this.x-A.x)+Math.abs(this.y-A.y)+Math.abs(this.z-A.z)}setFromSpherical(A){return this.setFromSphericalCoords(A.radius,A.phi,A.theta)}setFromSphericalCoords(A,I,C){const B=Math.sin(I)*A;return this.x=B*Math.sin(C),this.y=Math.cos(I)*A,this.z=B*Math.cos(C),this}setFromCylindrical(A){return this.setFromCylindricalCoords(A.radius,A.theta,A.y)}setFromCylindricalCoords(A,I,C){return this.x=A*Math.sin(I),this.y=C,this.z=A*Math.cos(I),this}setFromMatrixPosition(A){const I=A.elements;return this.x=I[12],this.y=I[13],this.z=I[14],this}setFromMatrixScale(A){const I=this.setFromMatrixColumn(A,0).length(),C=this.setFromMatrixColumn(A,1).length(),B=this.setFromMatrixColumn(A,2).length();return this.x=I,this.y=C,this.z=B,this}setFromMatrixColumn(A,I){return this.fromArray(A.elements,I*4)}setFromMatrix3Column(A,I){return this.fromArray(A.elements,I*3)}setFromEuler(A){return this.x=A._x,this.y=A._y,this.z=A._z,this}setFromColor(A){return this.x=A.r,this.y=A.g,this.z=A.b,this}equals(A){return A.x===this.x&&A.y===this.y&&A.z===this.z}fromArray(A,I=0){return this.x=A[I],this.y=A[I+1],this.z=A[I+2],this}toArray(A=[],I=0){return A[I]=this.x,A[I+1]=this.y,A[I+2]=this.z,A}fromBufferAttribute(A,I){return this.x=A.getX(I),this.y=A.getY(I),this.z=A.getZ(I),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const A=(Math.random()-.5)*2,I=Math.random()*Math.PI*2,C=Math.sqrt(1-A**2);return this.x=C*Math.cos(I),this.y=C*Math.sin(I),this.z=A,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const WG=new O,VN=new Pg;class sC{constructor(A=new O(1/0,1/0,1/0),I=new O(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=A,this.max=I}set(A,I){return this.min.copy(A),this.max.copy(I),this}setFromArray(A){this.makeEmpty();for(let I=0,C=A.length;Ithis.max.x||A.ythis.max.y||A.zthis.max.z)}containsBox(A){return this.min.x<=A.min.x&&A.max.x<=this.max.x&&this.min.y<=A.min.y&&A.max.y<=this.max.y&&this.min.z<=A.min.z&&A.max.z<=this.max.z}getParameter(A,I){return I.set((A.x-this.min.x)/(this.max.x-this.min.x),(A.y-this.min.y)/(this.max.y-this.min.y),(A.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(A){return!(A.max.xthis.max.x||A.max.ythis.max.y||A.max.zthis.max.z)}intersectsSphere(A){return this.clampPoint(A.center,Zi),Zi.distanceToSquared(A.center)<=A.radius*A.radius}intersectsPlane(A){let I,C;return A.normal.x>0?(I=A.normal.x*this.min.x,C=A.normal.x*this.max.x):(I=A.normal.x*this.max.x,C=A.normal.x*this.min.x),A.normal.y>0?(I+=A.normal.y*this.min.y,C+=A.normal.y*this.max.y):(I+=A.normal.y*this.max.y,C+=A.normal.y*this.min.y),A.normal.z>0?(I+=A.normal.z*this.min.z,C+=A.normal.z*this.max.z):(I+=A.normal.z*this.max.z,C+=A.normal.z*this.min.z),I<=-A.constant&&C>=-A.constant}intersectsTriangle(A){if(this.isEmpty())return!1;this.getCenter(Va),Gc.subVectors(this.max,Va),Lo.subVectors(A.a,Va),Yo.subVectors(A.b,Va),Ho.subVectors(A.c,Va),me.subVectors(Yo,Lo),Le.subVectors(Ho,Yo),Et.subVectors(Lo,Ho);let I=[0,-me.z,me.y,0,-Le.z,Le.y,0,-Et.z,Et.y,me.z,0,-me.x,Le.z,0,-Le.x,Et.z,0,-Et.x,-me.y,me.x,0,-Le.y,Le.x,0,-Et.y,Et.x,0];return!jG(I,Lo,Yo,Ho,Gc)||(I=[1,0,0,0,1,0,0,0,1],!jG(I,Lo,Yo,Ho,Gc))?!1:(yc.crossVectors(me,Le),I=[yc.x,yc.y,yc.z],jG(I,Lo,Yo,Ho,Gc))}clampPoint(A,I){return I.copy(A).clamp(this.min,this.max)}distanceToPoint(A){return this.clampPoint(A,Zi).distanceTo(A)}getBoundingSphere(A){return this.isEmpty()?A.makeEmpty():(this.getCenter(A.center),A.radius=this.getSize(Zi).length()*.5),A}intersect(A){return this.min.max(A.min),this.max.min(A.max),this.isEmpty()&&this.makeEmpty(),this}union(A){return this.min.min(A.min),this.max.max(A.max),this}applyMatrix4(A){return this.isEmpty()?this:(PQ[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(A),PQ[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(A),PQ[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(A),PQ[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(A),PQ[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(A),PQ[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(A),PQ[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(A),PQ[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(A),this.setFromPoints(PQ),this)}translate(A){return this.min.add(A),this.max.add(A),this}equals(A){return A.min.equals(this.min)&&A.max.equals(this.max)}}const PQ=[new O,new O,new O,new O,new O,new O,new O,new O],Zi=new O,Sc=new sC,Lo=new O,Yo=new O,Ho=new O,me=new O,Le=new O,Et=new O,Va=new O,Gc=new O,yc=new O,tt=new O;function jG(g,A,I,C,B){for(let i=0,Q=g.length-3;i<=Q;i+=3){tt.fromArray(g,i);const e=B.x*Math.abs(tt.x)+B.y*Math.abs(tt.y)+B.z*Math.abs(tt.z),E=A.dot(tt),t=I.dot(tt),a=C.dot(tt);if(Math.max(-Math.max(E,t,a),Math.min(E,t,a))>e)return!1}return!0}const vv=new sC,Xa=new O,VG=new O;class TC{constructor(A=new O,I=-1){this.isSphere=!0,this.center=A,this.radius=I}set(A,I){return this.center.copy(A),this.radius=I,this}setFromPoints(A,I){const C=this.center;I!==void 0?C.copy(I):vv.setFromPoints(A).getCenter(C);let B=0;for(let i=0,Q=A.length;ithis.radius*this.radius&&(I.sub(this.center).normalize(),I.multiplyScalar(this.radius).add(this.center)),I}getBoundingBox(A){return this.isEmpty()?(A.makeEmpty(),A):(A.set(this.center,this.center),A.expandByScalar(this.radius),A)}applyMatrix4(A){return this.center.applyMatrix4(A),this.radius=this.radius*A.getMaxScaleOnAxis(),this}translate(A){return this.center.add(A),this}expandByPoint(A){if(this.isEmpty())return this.center.copy(A),this.radius=0,this;Xa.subVectors(A,this.center);const I=Xa.lengthSq();if(I>this.radius*this.radius){const C=Math.sqrt(I),B=(C-this.radius)*.5;this.center.addScaledVector(Xa,B/C),this.radius+=B}return this}union(A){return A.isEmpty()?this:this.isEmpty()?(this.copy(A),this):(this.center.equals(A.center)===!0?this.radius=Math.max(this.radius,A.radius):(VG.subVectors(A.center,this.center).setLength(A.radius),this.expandByPoint(Xa.copy(A.center).add(VG)),this.expandByPoint(Xa.copy(A.center).sub(VG))),this)}equals(A){return A.center.equals(this.center)&&A.radius===this.radius}clone(){return new this.constructor().copy(this)}}const WQ=new O,XG=new O,uc=new O,Ye=new O,zG=new O,kc=new O,$G=new O;class sa{constructor(A=new O,I=new O(0,0,-1)){this.origin=A,this.direction=I}set(A,I){return this.origin.copy(A),this.direction.copy(I),this}copy(A){return this.origin.copy(A.origin),this.direction.copy(A.direction),this}at(A,I){return I.copy(this.origin).addScaledVector(this.direction,A)}lookAt(A){return this.direction.copy(A).sub(this.origin).normalize(),this}recast(A){return this.origin.copy(this.at(A,WQ)),this}closestPointToPoint(A,I){I.subVectors(A,this.origin);const C=I.dot(this.direction);return C<0?I.copy(this.origin):I.copy(this.origin).addScaledVector(this.direction,C)}distanceToPoint(A){return Math.sqrt(this.distanceSqToPoint(A))}distanceSqToPoint(A){const I=WQ.subVectors(A,this.origin).dot(this.direction);return I<0?this.origin.distanceToSquared(A):(WQ.copy(this.origin).addScaledVector(this.direction,I),WQ.distanceToSquared(A))}distanceSqToSegment(A,I,C,B){XG.copy(A).add(I).multiplyScalar(.5),uc.copy(I).sub(A).normalize(),Ye.copy(this.origin).sub(XG);const i=A.distanceTo(I)*.5,Q=-this.direction.dot(uc),e=Ye.dot(this.direction),E=-Ye.dot(uc),t=Ye.lengthSq(),a=Math.abs(1-Q*Q);let s,r,l,D;if(a>0)if(s=Q*E-e,r=Q*e-E,D=i*a,s>=0)if(r>=-D)if(r<=D){const G=1/a;s*=G,r*=G,l=s*(s+Q*r+2*e)+r*(Q*s+r+2*E)+t}else r=i,s=Math.max(0,-(Q*r+e)),l=-s*s+r*(r+2*E)+t;else r=-i,s=Math.max(0,-(Q*r+e)),l=-s*s+r*(r+2*E)+t;else r<=-D?(s=Math.max(0,-(-Q*i+e)),r=s>0?-i:Math.min(Math.max(-i,-E),i),l=-s*s+r*(r+2*E)+t):r<=D?(s=0,r=Math.min(Math.max(-i,-E),i),l=r*(r+2*E)+t):(s=Math.max(0,-(Q*i+e)),r=s>0?i:Math.min(Math.max(-i,-E),i),l=-s*s+r*(r+2*E)+t);else r=Q>0?-i:i,s=Math.max(0,-(Q*r+e)),l=-s*s+r*(r+2*E)+t;return C&&C.copy(this.origin).addScaledVector(this.direction,s),B&&B.copy(XG).addScaledVector(uc,r),l}intersectSphere(A,I){WQ.subVectors(A.center,this.origin);const C=WQ.dot(this.direction),B=WQ.dot(WQ)-C*C,i=A.radius*A.radius;if(B>i)return null;const Q=Math.sqrt(i-B),e=C-Q,E=C+Q;return E<0?null:e<0?this.at(E,I):this.at(e,I)}intersectsSphere(A){return this.distanceSqToPoint(A.center)<=A.radius*A.radius}distanceToPlane(A){const I=A.normal.dot(this.direction);if(I===0)return A.distanceToPoint(this.origin)===0?0:null;const C=-(this.origin.dot(A.normal)+A.constant)/I;return C>=0?C:null}intersectPlane(A,I){const C=this.distanceToPlane(A);return C===null?null:this.at(C,I)}intersectsPlane(A){const I=A.distanceToPoint(this.origin);return I===0||A.normal.dot(this.direction)*I<0}intersectBox(A,I){let C,B,i,Q,e,E;const t=1/this.direction.x,a=1/this.direction.y,s=1/this.direction.z,r=this.origin;return t>=0?(C=(A.min.x-r.x)*t,B=(A.max.x-r.x)*t):(C=(A.max.x-r.x)*t,B=(A.min.x-r.x)*t),a>=0?(i=(A.min.y-r.y)*a,Q=(A.max.y-r.y)*a):(i=(A.max.y-r.y)*a,Q=(A.min.y-r.y)*a),C>Q||i>B||((i>C||isNaN(C))&&(C=i),(Q=0?(e=(A.min.z-r.z)*s,E=(A.max.z-r.z)*s):(e=(A.max.z-r.z)*s,E=(A.min.z-r.z)*s),C>E||e>B)||((e>C||C!==C)&&(C=e),(E=0?C:B,I)}intersectsBox(A){return this.intersectBox(A,WQ)!==null}intersectTriangle(A,I,C,B,i){zG.subVectors(I,A),kc.subVectors(C,A),$G.crossVectors(zG,kc);let Q=this.direction.dot($G),e;if(Q>0){if(B)return null;e=1}else if(Q<0)e=-1,Q=-Q;else return null;Ye.subVectors(this.origin,A);const E=e*this.direction.dot(kc.crossVectors(Ye,kc));if(E<0)return null;const t=e*this.direction.dot(zG.cross(Ye));if(t<0||E+t>Q)return null;const a=-e*Ye.dot($G);return a<0?null:this.at(a/Q,i)}applyMatrix4(A){return this.origin.applyMatrix4(A),this.direction.transformDirection(A),this}equals(A){return A.origin.equals(this.origin)&&A.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class dI{constructor(A,I,C,B,i,Q,e,E,t,a,s,r,l,D,G,h){dI.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],A!==void 0&&this.set(A,I,C,B,i,Q,e,E,t,a,s,r,l,D,G,h)}set(A,I,C,B,i,Q,e,E,t,a,s,r,l,D,G,h){const c=this.elements;return c[0]=A,c[4]=I,c[8]=C,c[12]=B,c[1]=i,c[5]=Q,c[9]=e,c[13]=E,c[2]=t,c[6]=a,c[10]=s,c[14]=r,c[3]=l,c[7]=D,c[11]=G,c[15]=h,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new dI().fromArray(this.elements)}copy(A){const I=this.elements,C=A.elements;return I[0]=C[0],I[1]=C[1],I[2]=C[2],I[3]=C[3],I[4]=C[4],I[5]=C[5],I[6]=C[6],I[7]=C[7],I[8]=C[8],I[9]=C[9],I[10]=C[10],I[11]=C[11],I[12]=C[12],I[13]=C[13],I[14]=C[14],I[15]=C[15],this}copyPosition(A){const I=this.elements,C=A.elements;return I[12]=C[12],I[13]=C[13],I[14]=C[14],this}setFromMatrix3(A){const I=A.elements;return this.set(I[0],I[3],I[6],0,I[1],I[4],I[7],0,I[2],I[5],I[8],0,0,0,0,1),this}extractBasis(A,I,C){return A.setFromMatrixColumn(this,0),I.setFromMatrixColumn(this,1),C.setFromMatrixColumn(this,2),this}makeBasis(A,I,C){return this.set(A.x,I.x,C.x,0,A.y,I.y,C.y,0,A.z,I.z,C.z,0,0,0,0,1),this}extractRotation(A){const I=this.elements,C=A.elements,B=1/To.setFromMatrixColumn(A,0).length(),i=1/To.setFromMatrixColumn(A,1).length(),Q=1/To.setFromMatrixColumn(A,2).length();return I[0]=C[0]*B,I[1]=C[1]*B,I[2]=C[2]*B,I[3]=0,I[4]=C[4]*i,I[5]=C[5]*i,I[6]=C[6]*i,I[7]=0,I[8]=C[8]*Q,I[9]=C[9]*Q,I[10]=C[10]*Q,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,this}makeRotationFromEuler(A){const I=this.elements,C=A.x,B=A.y,i=A.z,Q=Math.cos(C),e=Math.sin(C),E=Math.cos(B),t=Math.sin(B),a=Math.cos(i),s=Math.sin(i);if(A.order==="XYZ"){const r=Q*a,l=Q*s,D=e*a,G=e*s;I[0]=E*a,I[4]=-E*s,I[8]=t,I[1]=l+D*t,I[5]=r-G*t,I[9]=-e*E,I[2]=G-r*t,I[6]=D+l*t,I[10]=Q*E}else if(A.order==="YXZ"){const r=E*a,l=E*s,D=t*a,G=t*s;I[0]=r+G*e,I[4]=D*e-l,I[8]=Q*t,I[1]=Q*s,I[5]=Q*a,I[9]=-e,I[2]=l*e-D,I[6]=G+r*e,I[10]=Q*E}else if(A.order==="ZXY"){const r=E*a,l=E*s,D=t*a,G=t*s;I[0]=r-G*e,I[4]=-Q*s,I[8]=D+l*e,I[1]=l+D*e,I[5]=Q*a,I[9]=G-r*e,I[2]=-Q*t,I[6]=e,I[10]=Q*E}else if(A.order==="ZYX"){const r=Q*a,l=Q*s,D=e*a,G=e*s;I[0]=E*a,I[4]=D*t-l,I[8]=r*t+G,I[1]=E*s,I[5]=G*t+r,I[9]=l*t-D,I[2]=-t,I[6]=e*E,I[10]=Q*E}else if(A.order==="YZX"){const r=Q*E,l=Q*t,D=e*E,G=e*t;I[0]=E*a,I[4]=G-r*s,I[8]=D*s+l,I[1]=s,I[5]=Q*a,I[9]=-e*a,I[2]=-t*a,I[6]=l*s+D,I[10]=r-G*s}else if(A.order==="XZY"){const r=Q*E,l=Q*t,D=e*E,G=e*t;I[0]=E*a,I[4]=-s,I[8]=t*a,I[1]=r*s+G,I[5]=Q*a,I[9]=l*s-D,I[2]=D*s-l,I[6]=e*a,I[10]=G*s+r}return I[3]=0,I[7]=0,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,this}makeRotationFromQuaternion(A){return this.compose(bv,A,Ov)}lookAt(A,I,C){const B=this.elements;return gi.subVectors(A,I),gi.lengthSq()===0&&(gi.z=1),gi.normalize(),He.crossVectors(C,gi),He.lengthSq()===0&&(Math.abs(C.z)===1?gi.x+=1e-4:gi.z+=1e-4,gi.normalize(),He.crossVectors(C,gi)),He.normalize(),Mc.crossVectors(gi,He),B[0]=He.x,B[4]=Mc.x,B[8]=gi.x,B[1]=He.y,B[5]=Mc.y,B[9]=gi.y,B[2]=He.z,B[6]=Mc.z,B[10]=gi.z,this}multiply(A){return this.multiplyMatrices(this,A)}premultiply(A){return this.multiplyMatrices(A,this)}multiplyMatrices(A,I){const C=A.elements,B=I.elements,i=this.elements,Q=C[0],e=C[4],E=C[8],t=C[12],a=C[1],s=C[5],r=C[9],l=C[13],D=C[2],G=C[6],h=C[10],c=C[14],y=C[3],S=C[7],k=C[11],f=C[15],d=B[0],N=B[4],q=B[8],P=B[12],U=B[1],K=B[5],X=B[9],wA=B[13],z=B[2],lA=B[6],aA=B[10],SA=B[14],b=B[3],BA=B[7],gA=B[11],hA=B[15];return i[0]=Q*d+e*U+E*z+t*b,i[4]=Q*N+e*K+E*lA+t*BA,i[8]=Q*q+e*X+E*aA+t*gA,i[12]=Q*P+e*wA+E*SA+t*hA,i[1]=a*d+s*U+r*z+l*b,i[5]=a*N+s*K+r*lA+l*BA,i[9]=a*q+s*X+r*aA+l*gA,i[13]=a*P+s*wA+r*SA+l*hA,i[2]=D*d+G*U+h*z+c*b,i[6]=D*N+G*K+h*lA+c*BA,i[10]=D*q+G*X+h*aA+c*gA,i[14]=D*P+G*wA+h*SA+c*hA,i[3]=y*d+S*U+k*z+f*b,i[7]=y*N+S*K+k*lA+f*BA,i[11]=y*q+S*X+k*aA+f*gA,i[15]=y*P+S*wA+k*SA+f*hA,this}multiplyScalar(A){const I=this.elements;return I[0]*=A,I[4]*=A,I[8]*=A,I[12]*=A,I[1]*=A,I[5]*=A,I[9]*=A,I[13]*=A,I[2]*=A,I[6]*=A,I[10]*=A,I[14]*=A,I[3]*=A,I[7]*=A,I[11]*=A,I[15]*=A,this}determinant(){const A=this.elements,I=A[0],C=A[4],B=A[8],i=A[12],Q=A[1],e=A[5],E=A[9],t=A[13],a=A[2],s=A[6],r=A[10],l=A[14],D=A[3],G=A[7],h=A[11],c=A[15];return D*(+i*E*s-B*t*s-i*e*r+C*t*r+B*e*l-C*E*l)+G*(+I*E*l-I*t*r+i*Q*r-B*Q*l+B*t*a-i*E*a)+h*(+I*t*s-I*e*l-i*Q*s+C*Q*l+i*e*a-C*t*a)+c*(-B*e*a-I*E*s+I*e*r+B*Q*s-C*Q*r+C*E*a)}transpose(){const A=this.elements;let I;return I=A[1],A[1]=A[4],A[4]=I,I=A[2],A[2]=A[8],A[8]=I,I=A[6],A[6]=A[9],A[9]=I,I=A[3],A[3]=A[12],A[12]=I,I=A[7],A[7]=A[13],A[13]=I,I=A[11],A[11]=A[14],A[14]=I,this}setPosition(A,I,C){const B=this.elements;return A.isVector3?(B[12]=A.x,B[13]=A.y,B[14]=A.z):(B[12]=A,B[13]=I,B[14]=C),this}invert(){const A=this.elements,I=A[0],C=A[1],B=A[2],i=A[3],Q=A[4],e=A[5],E=A[6],t=A[7],a=A[8],s=A[9],r=A[10],l=A[11],D=A[12],G=A[13],h=A[14],c=A[15],y=s*h*t-G*r*t+G*E*l-e*h*l-s*E*c+e*r*c,S=D*r*t-a*h*t-D*E*l+Q*h*l+a*E*c-Q*r*c,k=a*G*t-D*s*t+D*e*l-Q*G*l-a*e*c+Q*s*c,f=D*s*E-a*G*E-D*e*r+Q*G*r+a*e*h-Q*s*h,d=I*y+C*S+B*k+i*f;if(d===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const N=1/d;return A[0]=y*N,A[1]=(G*r*i-s*h*i-G*B*l+C*h*l+s*B*c-C*r*c)*N,A[2]=(e*h*i-G*E*i+G*B*t-C*h*t-e*B*c+C*E*c)*N,A[3]=(s*E*i-e*r*i-s*B*t+C*r*t+e*B*l-C*E*l)*N,A[4]=S*N,A[5]=(a*h*i-D*r*i+D*B*l-I*h*l-a*B*c+I*r*c)*N,A[6]=(D*E*i-Q*h*i-D*B*t+I*h*t+Q*B*c-I*E*c)*N,A[7]=(Q*r*i-a*E*i+a*B*t-I*r*t-Q*B*l+I*E*l)*N,A[8]=k*N,A[9]=(D*s*i-a*G*i-D*C*l+I*G*l+a*C*c-I*s*c)*N,A[10]=(Q*G*i-D*e*i+D*C*t-I*G*t-Q*C*c+I*e*c)*N,A[11]=(a*e*i-Q*s*i-a*C*t+I*s*t+Q*C*l-I*e*l)*N,A[12]=f*N,A[13]=(a*G*B-D*s*B+D*C*r-I*G*r-a*C*h+I*s*h)*N,A[14]=(D*e*B-Q*G*B-D*C*E+I*G*E+Q*C*h-I*e*h)*N,A[15]=(Q*s*B-a*e*B+a*C*E-I*s*E-Q*C*r+I*e*r)*N,this}scale(A){const I=this.elements,C=A.x,B=A.y,i=A.z;return I[0]*=C,I[4]*=B,I[8]*=i,I[1]*=C,I[5]*=B,I[9]*=i,I[2]*=C,I[6]*=B,I[10]*=i,I[3]*=C,I[7]*=B,I[11]*=i,this}getMaxScaleOnAxis(){const A=this.elements,I=A[0]*A[0]+A[1]*A[1]+A[2]*A[2],C=A[4]*A[4]+A[5]*A[5]+A[6]*A[6],B=A[8]*A[8]+A[9]*A[9]+A[10]*A[10];return Math.sqrt(Math.max(I,C,B))}makeTranslation(A,I,C){return A.isVector3?this.set(1,0,0,A.x,0,1,0,A.y,0,0,1,A.z,0,0,0,1):this.set(1,0,0,A,0,1,0,I,0,0,1,C,0,0,0,1),this}makeRotationX(A){const I=Math.cos(A),C=Math.sin(A);return this.set(1,0,0,0,0,I,-C,0,0,C,I,0,0,0,0,1),this}makeRotationY(A){const I=Math.cos(A),C=Math.sin(A);return this.set(I,0,C,0,0,1,0,0,-C,0,I,0,0,0,0,1),this}makeRotationZ(A){const I=Math.cos(A),C=Math.sin(A);return this.set(I,-C,0,0,C,I,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(A,I){const C=Math.cos(I),B=Math.sin(I),i=1-C,Q=A.x,e=A.y,E=A.z,t=i*Q,a=i*e;return this.set(t*Q+C,t*e-B*E,t*E+B*e,0,t*e+B*E,a*e+C,a*E-B*Q,0,t*E-B*e,a*E+B*Q,i*E*E+C,0,0,0,0,1),this}makeScale(A,I,C){return this.set(A,0,0,0,0,I,0,0,0,0,C,0,0,0,0,1),this}makeShear(A,I,C,B,i,Q){return this.set(1,C,i,0,A,1,Q,0,I,B,1,0,0,0,0,1),this}compose(A,I,C){const B=this.elements,i=I._x,Q=I._y,e=I._z,E=I._w,t=i+i,a=Q+Q,s=e+e,r=i*t,l=i*a,D=i*s,G=Q*a,h=Q*s,c=e*s,y=E*t,S=E*a,k=E*s,f=C.x,d=C.y,N=C.z;return B[0]=(1-(G+c))*f,B[1]=(l+k)*f,B[2]=(D-S)*f,B[3]=0,B[4]=(l-k)*d,B[5]=(1-(r+c))*d,B[6]=(h+y)*d,B[7]=0,B[8]=(D+S)*N,B[9]=(h-y)*N,B[10]=(1-(r+G))*N,B[11]=0,B[12]=A.x,B[13]=A.y,B[14]=A.z,B[15]=1,this}decompose(A,I,C){const B=this.elements;let i=To.set(B[0],B[1],B[2]).length();const Q=To.set(B[4],B[5],B[6]).length(),e=To.set(B[8],B[9],B[10]).length();this.determinant()<0&&(i=-i),A.x=B[12],A.y=B[13],A.z=B[14],Pi.copy(this);const t=1/i,a=1/Q,s=1/e;return Pi.elements[0]*=t,Pi.elements[1]*=t,Pi.elements[2]*=t,Pi.elements[4]*=a,Pi.elements[5]*=a,Pi.elements[6]*=a,Pi.elements[8]*=s,Pi.elements[9]*=s,Pi.elements[10]*=s,I.setFromRotationMatrix(Pi),C.x=i,C.y=Q,C.z=e,this}makePerspective(A,I,C,B,i,Q,e=UQ){const E=this.elements,t=2*i/(I-A),a=2*i/(C-B),s=(I+A)/(I-A),r=(C+B)/(C-B);let l,D;if(e===UQ)l=-(Q+i)/(Q-i),D=-2*Q*i/(Q-i);else if(e===Gr)l=-Q/(Q-i),D=-Q*i/(Q-i);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+e);return E[0]=t,E[4]=0,E[8]=s,E[12]=0,E[1]=0,E[5]=a,E[9]=r,E[13]=0,E[2]=0,E[6]=0,E[10]=l,E[14]=D,E[3]=0,E[7]=0,E[11]=-1,E[15]=0,this}makeOrthographic(A,I,C,B,i,Q,e=UQ){const E=this.elements,t=1/(I-A),a=1/(C-B),s=1/(Q-i),r=(I+A)*t,l=(C+B)*a;let D,G;if(e===UQ)D=(Q+i)*s,G=-2*s;else if(e===Gr)D=i*s,G=-1*s;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+e);return E[0]=2*t,E[4]=0,E[8]=0,E[12]=-r,E[1]=0,E[5]=2*a,E[9]=0,E[13]=-l,E[2]=0,E[6]=0,E[10]=G,E[14]=-D,E[3]=0,E[7]=0,E[11]=0,E[15]=1,this}equals(A){const I=this.elements,C=A.elements;for(let B=0;B<16;B++)if(I[B]!==C[B])return!1;return!0}fromArray(A,I=0){for(let C=0;C<16;C++)this.elements[C]=A[C+I];return this}toArray(A=[],I=0){const C=this.elements;return A[I]=C[0],A[I+1]=C[1],A[I+2]=C[2],A[I+3]=C[3],A[I+4]=C[4],A[I+5]=C[5],A[I+6]=C[6],A[I+7]=C[7],A[I+8]=C[8],A[I+9]=C[9],A[I+10]=C[10],A[I+11]=C[11],A[I+12]=C[12],A[I+13]=C[13],A[I+14]=C[14],A[I+15]=C[15],A}}const To=new O,Pi=new dI,bv=new O(0,0,0),Ov=new O(1,1,1),He=new O,Mc=new O,gi=new O,XN=new dI,zN=new Pg;class LQ{constructor(A=0,I=0,C=0,B=LQ.DEFAULT_ORDER){this.isEuler=!0,this._x=A,this._y=I,this._z=C,this._order=B}get x(){return this._x}set x(A){this._x=A,this._onChangeCallback()}get y(){return this._y}set y(A){this._y=A,this._onChangeCallback()}get z(){return this._z}set z(A){this._z=A,this._onChangeCallback()}get order(){return this._order}set order(A){this._order=A,this._onChangeCallback()}set(A,I,C,B=this._order){return this._x=A,this._y=I,this._z=C,this._order=B,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(A){return this._x=A._x,this._y=A._y,this._z=A._z,this._order=A._order,this._onChangeCallback(),this}setFromRotationMatrix(A,I=this._order,C=!0){const B=A.elements,i=B[0],Q=B[4],e=B[8],E=B[1],t=B[5],a=B[9],s=B[2],r=B[6],l=B[10];switch(I){case"XYZ":this._y=Math.asin(nC(e,-1,1)),Math.abs(e)<.9999999?(this._x=Math.atan2(-a,l),this._z=Math.atan2(-Q,i)):(this._x=Math.atan2(r,t),this._z=0);break;case"YXZ":this._x=Math.asin(-nC(a,-1,1)),Math.abs(a)<.9999999?(this._y=Math.atan2(e,l),this._z=Math.atan2(E,t)):(this._y=Math.atan2(-s,i),this._z=0);break;case"ZXY":this._x=Math.asin(nC(r,-1,1)),Math.abs(r)<.9999999?(this._y=Math.atan2(-s,l),this._z=Math.atan2(-Q,t)):(this._y=0,this._z=Math.atan2(E,i));break;case"ZYX":this._y=Math.asin(-nC(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(r,l),this._z=Math.atan2(E,i)):(this._x=0,this._z=Math.atan2(-Q,t));break;case"YZX":this._z=Math.asin(nC(E,-1,1)),Math.abs(E)<.9999999?(this._x=Math.atan2(-a,t),this._y=Math.atan2(-s,i)):(this._x=0,this._y=Math.atan2(e,l));break;case"XZY":this._z=Math.asin(-nC(Q,-1,1)),Math.abs(Q)<.9999999?(this._x=Math.atan2(r,t),this._y=Math.atan2(e,i)):(this._x=Math.atan2(-a,l),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+I)}return this._order=I,C===!0&&this._onChangeCallback(),this}setFromQuaternion(A,I,C){return XN.makeRotationFromQuaternion(A),this.setFromRotationMatrix(XN,I,C)}setFromVector3(A,I=this._order){return this.set(A.x,A.y,A.z,I)}reorder(A){return zN.setFromEuler(this),this.setFromQuaternion(zN,A)}equals(A){return A._x===this._x&&A._y===this._y&&A._z===this._z&&A._order===this._order}fromArray(A){return this._x=A[0],this._y=A[1],this._z=A[2],A[3]!==void 0&&(this._order=A[3]),this._onChangeCallback(),this}toArray(A=[],I=0){return A[I]=this._x,A[I+1]=this._y,A[I+2]=this._z,A[I+3]=this._order,A}_onChange(A){return this._onChangeCallback=A,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}LQ.DEFAULT_ORDER="XYZ";class Ot{constructor(){this.mask=1}set(A){this.mask=(1<>>0}enable(A){this.mask|=1<1){for(let I=0;I1){for(let C=0;C0&&(B.userData=this.userData),B.layers=this.layers.mask,B.matrix=this.matrix.toArray(),B.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(B.matrixAutoUpdate=!1),this.isInstancedMesh&&(B.type="InstancedMesh",B.count=this.count,B.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(B.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(B.type="BatchedMesh",B.perObjectFrustumCulled=this.perObjectFrustumCulled,B.sortObjects=this.sortObjects,B.drawRanges=this._drawRanges,B.reservedRanges=this._reservedRanges,B.visibility=this._visibility,B.active=this._active,B.bounds=this._bounds.map(e=>({boxInitialized:e.boxInitialized,boxMin:e.box.min.toArray(),boxMax:e.box.max.toArray(),sphereInitialized:e.sphereInitialized,sphereRadius:e.sphere.radius,sphereCenter:e.sphere.center.toArray()})),B.maxGeometryCount=this._maxGeometryCount,B.maxVertexCount=this._maxVertexCount,B.maxIndexCount=this._maxIndexCount,B.geometryInitialized=this._geometryInitialized,B.geometryCount=this._geometryCount,B.matricesTexture=this._matricesTexture.toJSON(A),this.boundingSphere!==null&&(B.boundingSphere={center:B.boundingSphere.center.toArray(),radius:B.boundingSphere.radius}),this.boundingBox!==null&&(B.boundingBox={min:B.boundingBox.min.toArray(),max:B.boundingBox.max.toArray()}));function i(e,E){return e[E.uuid]===void 0&&(e[E.uuid]=E.toJSON(A)),E.uuid}if(this.isScene)this.background&&(this.background.isColor?B.background=this.background.toJSON():this.background.isTexture&&(B.background=this.background.toJSON(A).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(B.environment=this.environment.toJSON(A).uuid);else if(this.isMesh||this.isLine||this.isPoints){B.geometry=i(A.geometries,this.geometry);const e=this.geometry.parameters;if(e!==void 0&&e.shapes!==void 0){const E=e.shapes;if(Array.isArray(E))for(let t=0,a=E.length;t0){B.children=[];for(let e=0;e0){B.animations=[];for(let e=0;e0&&(C.geometries=e),E.length>0&&(C.materials=E),t.length>0&&(C.textures=t),a.length>0&&(C.images=a),s.length>0&&(C.shapes=s),r.length>0&&(C.skeletons=r),l.length>0&&(C.animations=l),D.length>0&&(C.nodes=D)}return C.object=B,C;function Q(e){const E=[];for(const t in e){const a=e[t];delete a.metadata,E.push(a)}return E}}clone(A){return new this.constructor().copy(this,A)}copy(A,I=!0){if(this.name=A.name,this.up.copy(A.up),this.position.copy(A.position),this.rotation.order=A.rotation.order,this.quaternion.copy(A.quaternion),this.scale.copy(A.scale),this.matrix.copy(A.matrix),this.matrixWorld.copy(A.matrixWorld),this.matrixAutoUpdate=A.matrixAutoUpdate,this.matrixWorldAutoUpdate=A.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=A.matrixWorldNeedsUpdate,this.layers.mask=A.layers.mask,this.visible=A.visible,this.castShadow=A.castShadow,this.receiveShadow=A.receiveShadow,this.frustumCulled=A.frustumCulled,this.renderOrder=A.renderOrder,this.animations=A.animations.slice(),this.userData=JSON.parse(JSON.stringify(A.userData)),I===!0)for(let C=0;C0?B.multiplyScalar(1/Math.sqrt(i)):B.set(0,0,0)}static getBarycoord(A,I,C,B,i){Wi.subVectors(B,I),VQ.subVectors(C,I),Ay.subVectors(A,I);const Q=Wi.dot(Wi),e=Wi.dot(VQ),E=Wi.dot(Ay),t=VQ.dot(VQ),a=VQ.dot(Ay),s=Q*t-e*e;if(s===0)return i.set(0,0,0),null;const r=1/s,l=(t*E-e*a)*r,D=(Q*a-e*E)*r;return i.set(1-l-D,D,l)}static containsPoint(A,I,C,B){return this.getBarycoord(A,I,C,B,XQ)===null?!1:XQ.x>=0&&XQ.y>=0&&XQ.x+XQ.y<=1}static getInterpolation(A,I,C,B,i,Q,e,E){return this.getBarycoord(A,I,C,B,XQ)===null?(E.x=0,E.y=0,"z"in E&&(E.z=0),"w"in E&&(E.w=0),null):(E.setScalar(0),E.addScaledVector(i,XQ.x),E.addScaledVector(Q,XQ.y),E.addScaledVector(e,XQ.z),E)}static isFrontFacing(A,I,C,B){return Wi.subVectors(C,I),VQ.subVectors(A,I),Wi.cross(VQ).dot(B)<0}set(A,I,C){return this.a.copy(A),this.b.copy(I),this.c.copy(C),this}setFromPointsAndIndices(A,I,C,B){return this.a.copy(A[I]),this.b.copy(A[C]),this.c.copy(A[B]),this}setFromAttributeAndIndices(A,I,C,B){return this.a.fromBufferAttribute(A,I),this.b.fromBufferAttribute(A,C),this.c.fromBufferAttribute(A,B),this}clone(){return new this.constructor().copy(this)}copy(A){return this.a.copy(A.a),this.b.copy(A.b),this.c.copy(A.c),this}getArea(){return Wi.subVectors(this.c,this.b),VQ.subVectors(this.a,this.b),Wi.cross(VQ).length()*.5}getMidpoint(A){return A.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(A){return OB.getNormal(this.a,this.b,this.c,A)}getPlane(A){return A.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(A,I){return OB.getBarycoord(A,this.a,this.b,this.c,I)}getInterpolation(A,I,C,B,i){return OB.getInterpolation(A,this.a,this.b,this.c,I,C,B,i)}containsPoint(A){return OB.containsPoint(A,this.a,this.b,this.c)}isFrontFacing(A){return OB.isFrontFacing(this.a,this.b,this.c,A)}intersectsBox(A){return A.intersectsTriangle(this)}closestPointToPoint(A,I){const C=this.a,B=this.b,i=this.c;let Q,e;vo.subVectors(B,C),bo.subVectors(i,C),Iy.subVectors(A,C);const E=vo.dot(Iy),t=bo.dot(Iy);if(E<=0&&t<=0)return I.copy(C);gy.subVectors(A,B);const a=vo.dot(gy),s=bo.dot(gy);if(a>=0&&s<=a)return I.copy(B);const r=E*s-a*t;if(r<=0&&E>=0&&a<=0)return Q=E/(E-a),I.copy(C).addScaledVector(vo,Q);Cy.subVectors(A,i);const l=vo.dot(Cy),D=bo.dot(Cy);if(D>=0&&l<=D)return I.copy(i);const G=l*t-E*D;if(G<=0&&t>=0&&D<=0)return e=t/(t-D),I.copy(C).addScaledVector(bo,e);const h=a*D-l*s;if(h<=0&&s-a>=0&&l-D>=0)return CF.subVectors(i,B),e=(s-a)/(s-a+(l-D)),I.copy(B).addScaledVector(CF,e);const c=1/(h+G+r);return Q=G*c,e=r*c,I.copy(C).addScaledVector(vo,Q).addScaledVector(bo,e)}equals(A){return A.a.equals(this.a)&&A.b.equals(this.b)&&A.c.equals(this.c)}}const wm={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Te={h:0,s:0,l:0},pc={h:0,s:0,l:0};function By(g,A,I){return I<0&&(I+=1),I>1&&(I-=1),I<1/6?g+(A-g)*6*I:I<1/2?A:I<2/3?g+(A-g)*6*(2/3-I):g}class QI{constructor(A,I,C){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(A,I,C)}set(A,I,C){if(I===void 0&&C===void 0){const B=A;B&&B.isColor?this.copy(B):typeof B=="number"?this.setHex(B):typeof B=="string"&&this.setStyle(B)}else this.setRGB(A,I,C);return this}setScalar(A){return this.r=A,this.g=A,this.b=A,this}setHex(A,I=cC){return A=Math.floor(A),this.r=(A>>16&255)/255,this.g=(A>>8&255)/255,this.b=(A&255)/255,Fg.toWorkingColorSpace(this,I),this}setRGB(A,I,C,B=Fg.workingColorSpace){return this.r=A,this.g=I,this.b=C,Fg.toWorkingColorSpace(this,B),this}setHSL(A,I,C,B=Fg.workingColorSpace){if(A=yM(A,1),I=nC(I,0,1),C=nC(C,0,1),I===0)this.r=this.g=this.b=C;else{const i=C<=.5?C*(1+I):C+I-C*I,Q=2*C-i;this.r=By(Q,i,A+1/3),this.g=By(Q,i,A),this.b=By(Q,i,A-1/3)}return Fg.toWorkingColorSpace(this,B),this}setStyle(A,I=cC){function C(i){i!==void 0&&parseFloat(i)<1&&console.warn("THREE.Color: Alpha component of "+A+" will be ignored.")}let B;if(B=/^(\w+)\(([^\)]*)\)/.exec(A)){let i;const Q=B[1],e=B[2];switch(Q){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(e))return C(i[4]),this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,I);if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(e))return C(i[4]),this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,I);break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(e))return C(i[4]),this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,I);break;default:console.warn("THREE.Color: Unknown color model "+A)}}else if(B=/^\#([A-Fa-f\d]+)$/.exec(A)){const i=B[1],Q=i.length;if(Q===3)return this.setRGB(parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,I);if(Q===6)return this.setHex(parseInt(i,16),I);console.warn("THREE.Color: Invalid hex color "+A)}else if(A&&A.length>0)return this.setColorName(A,I);return this}setColorName(A,I=cC){const C=wm[A.toLowerCase()];return C!==void 0?this.setHex(C,I):console.warn("THREE.Color: Unknown color "+A),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(A){return this.r=A.r,this.g=A.g,this.b=A.b,this}copySRGBToLinear(A){return this.r=Hn(A.r),this.g=Hn(A.g),this.b=Hn(A.b),this}copyLinearToSRGB(A){return this.r=ZG(A.r),this.g=ZG(A.g),this.b=ZG(A.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(A=cC){return Fg.fromWorkingColorSpace(DB.copy(this),A),Math.round(nC(DB.r*255,0,255))*65536+Math.round(nC(DB.g*255,0,255))*256+Math.round(nC(DB.b*255,0,255))}getHexString(A=cC){return("000000"+this.getHex(A).toString(16)).slice(-6)}getHSL(A,I=Fg.workingColorSpace){Fg.fromWorkingColorSpace(DB.copy(this),I);const C=DB.r,B=DB.g,i=DB.b,Q=Math.max(C,B,i),e=Math.min(C,B,i);let E,t;const a=(e+Q)/2;if(e===Q)E=0,t=0;else{const s=Q-e;switch(t=a<=.5?s/(Q+e):s/(2-Q-e),Q){case C:E=(B-i)/s+(B0!=A>0&&this.version++,this._alphaTest=A}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(A){if(A!==void 0)for(const I in A){const C=A[I];if(C===void 0){console.warn(`THREE.Material: parameter '${I}' has value of undefined.`);continue}const B=this[I];if(B===void 0){console.warn(`THREE.Material: '${I}' is not a property of THREE.${this.type}.`);continue}B&&B.isColor?B.set(C):B&&B.isVector3&&C&&C.isVector3?B.copy(C):this[I]=C}}toJSON(A){const I=A===void 0||typeof A=="string";I&&(A={textures:{},images:{}});const C={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};C.uuid=this.uuid,C.type=this.type,this.name!==""&&(C.name=this.name),this.color&&this.color.isColor&&(C.color=this.color.getHex()),this.roughness!==void 0&&(C.roughness=this.roughness),this.metalness!==void 0&&(C.metalness=this.metalness),this.sheen!==void 0&&(C.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(C.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(C.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(C.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(C.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(C.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(C.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(C.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(C.shininess=this.shininess),this.clearcoat!==void 0&&(C.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(C.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(C.clearcoatMap=this.clearcoatMap.toJSON(A).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(C.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(A).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(C.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(A).uuid,C.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(C.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(C.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(C.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(C.iridescenceMap=this.iridescenceMap.toJSON(A).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(C.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(A).uuid),this.anisotropy!==void 0&&(C.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(C.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(C.anisotropyMap=this.anisotropyMap.toJSON(A).uuid),this.map&&this.map.isTexture&&(C.map=this.map.toJSON(A).uuid),this.matcap&&this.matcap.isTexture&&(C.matcap=this.matcap.toJSON(A).uuid),this.alphaMap&&this.alphaMap.isTexture&&(C.alphaMap=this.alphaMap.toJSON(A).uuid),this.lightMap&&this.lightMap.isTexture&&(C.lightMap=this.lightMap.toJSON(A).uuid,C.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(C.aoMap=this.aoMap.toJSON(A).uuid,C.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(C.bumpMap=this.bumpMap.toJSON(A).uuid,C.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(C.normalMap=this.normalMap.toJSON(A).uuid,C.normalMapType=this.normalMapType,C.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(C.displacementMap=this.displacementMap.toJSON(A).uuid,C.displacementScale=this.displacementScale,C.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(C.roughnessMap=this.roughnessMap.toJSON(A).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(C.metalnessMap=this.metalnessMap.toJSON(A).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(C.emissiveMap=this.emissiveMap.toJSON(A).uuid),this.specularMap&&this.specularMap.isTexture&&(C.specularMap=this.specularMap.toJSON(A).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(C.specularIntensityMap=this.specularIntensityMap.toJSON(A).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(C.specularColorMap=this.specularColorMap.toJSON(A).uuid),this.envMap&&this.envMap.isTexture&&(C.envMap=this.envMap.toJSON(A).uuid,this.combine!==void 0&&(C.combine=this.combine)),this.envMapIntensity!==void 0&&(C.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(C.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(C.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(C.gradientMap=this.gradientMap.toJSON(A).uuid),this.transmission!==void 0&&(C.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(C.transmissionMap=this.transmissionMap.toJSON(A).uuid),this.thickness!==void 0&&(C.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(C.thicknessMap=this.thicknessMap.toJSON(A).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(C.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(C.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(C.size=this.size),this.shadowSide!==null&&(C.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(C.sizeAttenuation=this.sizeAttenuation),this.blending!==xt&&(C.blending=this.blending),this.side!==si&&(C.side=this.side),this.vertexColors===!0&&(C.vertexColors=!0),this.opacity<1&&(C.opacity=this.opacity),this.transparent===!0&&(C.transparent=!0),this.blendSrc!==kh&&(C.blendSrc=this.blendSrc),this.blendDst!==Mh&&(C.blendDst=this.blendDst),this.blendEquation!==AE&&(C.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(C.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(C.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(C.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(C.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(C.blendAlpha=this.blendAlpha),this.depthFunc!==sr&&(C.depthFunc=this.depthFunc),this.depthTest===!1&&(C.depthTest=this.depthTest),this.depthWrite===!1&&(C.depthWrite=this.depthWrite),this.colorWrite===!1&&(C.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(C.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==fu&&(C.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(C.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(C.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==Mt&&(C.stencilFail=this.stencilFail),this.stencilZFail!==Mt&&(C.stencilZFail=this.stencilZFail),this.stencilZPass!==Mt&&(C.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(C.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(C.rotation=this.rotation),this.polygonOffset===!0&&(C.polygonOffset=!0),this.polygonOffsetFactor!==0&&(C.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(C.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(C.linewidth=this.linewidth),this.dashSize!==void 0&&(C.dashSize=this.dashSize),this.gapSize!==void 0&&(C.gapSize=this.gapSize),this.scale!==void 0&&(C.scale=this.scale),this.dithering===!0&&(C.dithering=!0),this.alphaTest>0&&(C.alphaTest=this.alphaTest),this.alphaHash===!0&&(C.alphaHash=!0),this.alphaToCoverage===!0&&(C.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(C.premultipliedAlpha=!0),this.forceSinglePass===!0&&(C.forceSinglePass=!0),this.wireframe===!0&&(C.wireframe=!0),this.wireframeLinewidth>1&&(C.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(C.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(C.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(C.flatShading=!0),this.visible===!1&&(C.visible=!1),this.toneMapped===!1&&(C.toneMapped=!1),this.fog===!1&&(C.fog=!1),Object.keys(this.userData).length>0&&(C.userData=this.userData);function B(i){const Q=[];for(const e in i){const E=i[e];delete E.metadata,Q.push(E)}return Q}if(I){const i=B(A.textures),Q=B(A.images);i.length>0&&(C.textures=i),Q.length>0&&(C.images=Q)}return C}clone(){return new this.constructor().copy(this)}copy(A){this.name=A.name,this.blending=A.blending,this.side=A.side,this.vertexColors=A.vertexColors,this.opacity=A.opacity,this.transparent=A.transparent,this.blendSrc=A.blendSrc,this.blendDst=A.blendDst,this.blendEquation=A.blendEquation,this.blendSrcAlpha=A.blendSrcAlpha,this.blendDstAlpha=A.blendDstAlpha,this.blendEquationAlpha=A.blendEquationAlpha,this.blendColor.copy(A.blendColor),this.blendAlpha=A.blendAlpha,this.depthFunc=A.depthFunc,this.depthTest=A.depthTest,this.depthWrite=A.depthWrite,this.stencilWriteMask=A.stencilWriteMask,this.stencilFunc=A.stencilFunc,this.stencilRef=A.stencilRef,this.stencilFuncMask=A.stencilFuncMask,this.stencilFail=A.stencilFail,this.stencilZFail=A.stencilZFail,this.stencilZPass=A.stencilZPass,this.stencilWrite=A.stencilWrite;const I=A.clippingPlanes;let C=null;if(I!==null){const B=I.length;C=new Array(B);for(let i=0;i!==B;++i)C[i]=I[i].clone()}return this.clippingPlanes=C,this.clipIntersection=A.clipIntersection,this.clipShadows=A.clipShadows,this.shadowSide=A.shadowSide,this.colorWrite=A.colorWrite,this.precision=A.precision,this.polygonOffset=A.polygonOffset,this.polygonOffsetFactor=A.polygonOffsetFactor,this.polygonOffsetUnits=A.polygonOffsetUnits,this.dithering=A.dithering,this.alphaTest=A.alphaTest,this.alphaHash=A.alphaHash,this.alphaToCoverage=A.alphaToCoverage,this.premultipliedAlpha=A.premultipliedAlpha,this.forceSinglePass=A.forceSinglePass,this.visible=A.visible,this.toneMapped=A.toneMapped,this.userData=JSON.parse(JSON.stringify(A.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(A){A===!0&&this.version++}}class UC extends hC{constructor(A){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new QI(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=xr,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(A)}copy(A){return super.copy(A),this.color.copy(A.color),this.map=A.map,this.lightMap=A.lightMap,this.lightMapIntensity=A.lightMapIntensity,this.aoMap=A.aoMap,this.aoMapIntensity=A.aoMapIntensity,this.specularMap=A.specularMap,this.alphaMap=A.alphaMap,this.envMap=A.envMap,this.combine=A.combine,this.reflectivity=A.reflectivity,this.refractionRatio=A.refractionRatio,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this.wireframeLinecap=A.wireframeLinecap,this.wireframeLinejoin=A.wireframeLinejoin,this.fog=A.fog,this}}const Be=Xv();function Xv(){const g=new ArrayBuffer(4),A=new Float32Array(g),I=new Uint32Array(g),C=new Uint32Array(512),B=new Uint32Array(512);for(let E=0;E<256;++E){const t=E-127;t<-27?(C[E]=0,C[E|256]=32768,B[E]=24,B[E|256]=24):t<-14?(C[E]=1024>>-t-14,C[E|256]=1024>>-t-14|32768,B[E]=-t-1,B[E|256]=-t-1):t<=15?(C[E]=t+15<<10,C[E|256]=t+15<<10|32768,B[E]=13,B[E|256]=13):t<128?(C[E]=31744,C[E|256]=64512,B[E]=24,B[E|256]=24):(C[E]=31744,C[E|256]=64512,B[E]=13,B[E|256]=13)}const i=new Uint32Array(2048),Q=new Uint32Array(64),e=new Uint32Array(64);for(let E=1;E<1024;++E){let t=E<<13,a=0;for(;!(t&8388608);)t<<=1,a-=8388608;t&=-8388609,a+=947912704,i[E]=t|a}for(let E=1024;E<2048;++E)i[E]=939524096+(E-1024<<13);for(let E=1;E<31;++E)Q[E]=E<<23;Q[31]=1199570944,Q[32]=2147483648;for(let E=33;E<63;++E)Q[E]=2147483648+(E-32<<23);Q[63]=3347054592;for(let E=1;E<64;++E)E!==32&&(e[E]=1024);return{floatView:A,uint32View:I,baseTable:C,shiftTable:B,mantissaTable:i,exponentTable:Q,offsetTable:e}}function vB(g){Math.abs(g)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),g=nC(g,-65504,65504),Be.floatView[0]=g;const A=Be.uint32View[0],I=A>>23&511;return Be.baseTable[I]+((A&8388607)>>Be.shiftTable[I])}function us(g){const A=g>>10;return Be.uint32View[0]=Be.mantissaTable[Be.offsetTable[A]+(g&1023)]+Be.exponentTable[A],Be.floatView[0]}const mt={toHalfFloat:vB,fromHalfFloat:us},uC=new O,Uc=new qA;class Ag{constructor(A,I,C=!1){if(Array.isArray(A))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=A,this.itemSize=I,this.count=A!==void 0?A.length/I:0,this.normalized=C,this.usage=Sr,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=aC,this.version=0}onUploadCallback(){}set needsUpdate(A){A===!0&&this.version++}get updateRange(){return bt("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(A){return this.usage=A,this}addUpdateRange(A,I){this.updateRanges.push({start:A,count:I})}clearUpdateRanges(){this.updateRanges.length=0}copy(A){return this.name=A.name,this.array=new A.array.constructor(A.array),this.itemSize=A.itemSize,this.count=A.count,this.normalized=A.normalized,this.usage=A.usage,this.gpuType=A.gpuType,this}copyAt(A,I,C){A*=this.itemSize,C*=I.itemSize;for(let B=0,i=this.itemSize;B0&&(A.userData=this.userData),this.parameters!==void 0){const E=this.parameters;for(const t in E)E[t]!==void 0&&(A[t]=E[t]);return A}A.data={attributes:{}};const I=this.index;I!==null&&(A.data.index={type:I.array.constructor.name,array:Array.prototype.slice.call(I.array)});const C=this.attributes;for(const E in C){const t=C[E];A.data.attributes[E]=t.toJSON(A.data)}const B={};let i=!1;for(const E in this.morphAttributes){const t=this.morphAttributes[E],a=[];for(let s=0,r=t.length;s0&&(B[E]=a,i=!0)}i&&(A.data.morphAttributes=B,A.data.morphTargetsRelative=this.morphTargetsRelative);const Q=this.groups;Q.length>0&&(A.data.groups=JSON.parse(JSON.stringify(Q)));const e=this.boundingSphere;return e!==null&&(A.data.boundingSphere={center:e.center.toArray(),radius:e.radius}),A}clone(){return new this.constructor().copy(this)}copy(A){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const I={};this.name=A.name;const C=A.index;C!==null&&this.setIndex(C.clone(I));const B=A.attributes;for(const t in B){const a=B[t];this.setAttribute(t,a.clone(I))}const i=A.morphAttributes;for(const t in i){const a=[],s=i[t];for(let r=0,l=s.length;r0){const B=I[C[0]];if(B!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,Q=B.length;i(A.far-A.near)**2))&&(BF.copy(i).invert(),ot.copy(A.ray).applyMatrix4(BF),!(C.boundingBox!==null&&ot.intersectsBox(C.boundingBox)===!1)&&this._computeIntersections(A,I,ot)))}_computeIntersections(A,I,C){let B;const i=this.geometry,Q=this.material,e=i.index,E=i.attributes.position,t=i.attributes.uv,a=i.attributes.uv1,s=i.attributes.normal,r=i.groups,l=i.drawRange;if(e!==null)if(Array.isArray(Q))for(let D=0,G=r.length;DI.far?null:{distance:t,point:qc.clone(),object:g}}function mc(g,A,I,C,B,i,Q,e,E,t){g.getVertexPosition(e,_o),g.getVertexPosition(E,Zo),g.getVertexPosition(t,Po);const a=Qb(g,A,I,C,_o,Zo,Po,Jc);if(a){B&&(fc.fromBufferAttribute(B,e),Rc.fromBufferAttribute(B,E),Kc.fromBufferAttribute(B,t),a.uv=OB.getInterpolation(Jc,_o,Zo,Po,fc,Rc,Kc,new qA)),i&&(fc.fromBufferAttribute(i,e),Rc.fromBufferAttribute(i,E),Kc.fromBufferAttribute(i,t),a.uv1=OB.getInterpolation(Jc,_o,Zo,Po,fc,Rc,Kc,new qA),a.uv2=a.uv1),Q&&(QF.fromBufferAttribute(Q,e),eF.fromBufferAttribute(Q,E),EF.fromBufferAttribute(Q,t),a.normal=OB.getInterpolation(Jc,_o,Zo,Po,QF,eF,EF,new O),a.normal.dot(C.direction)>0&&a.normal.multiplyScalar(-1));const s={a:e,b:E,c:t,normal:new O,materialIndex:0};OB.getNormal(_o,Zo,Po,s.normal),a.face=s}return a}class qE extends WI{constructor(A=1,I=1,C=1,B=1,i=1,Q=1){super(),this.type="BoxGeometry",this.parameters={width:A,height:I,depth:C,widthSegments:B,heightSegments:i,depthSegments:Q};const e=this;B=Math.floor(B),i=Math.floor(i),Q=Math.floor(Q);const E=[],t=[],a=[],s=[];let r=0,l=0;D("z","y","x",-1,-1,C,I,A,Q,i,0),D("z","y","x",1,-1,C,I,-A,Q,i,1),D("x","z","y",1,1,A,C,I,B,Q,2),D("x","z","y",1,-1,A,C,-I,B,Q,3),D("x","y","z",1,-1,A,I,C,B,i,4),D("x","y","z",-1,-1,A,I,-C,B,i,5),this.setIndex(E),this.setAttribute("position",new GI(t,3)),this.setAttribute("normal",new GI(a,3)),this.setAttribute("uv",new GI(s,2));function D(G,h,c,y,S,k,f,d,N,q,P){const U=k/N,K=f/q,X=k/2,wA=f/2,z=d/2,lA=N+1,aA=q+1;let SA=0,b=0;const BA=new O;for(let gA=0;gA0?1:-1,a.push(BA.x,BA.y,BA.z),s.push(NA/N),s.push(1-gA/q),SA+=1}}for(let gA=0;gA0&&(I.defines=this.defines),I.vertexShader=this.vertexShader,I.fragmentShader=this.fragmentShader,I.lights=this.lights,I.clipping=this.clipping;const C={};for(const B in this.extensions)this.extensions[B]===!0&&(C[B]=!0);return Object.keys(C).length>0&&(I.extensions=C),I}}class br extends og{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new dI,this.projectionMatrix=new dI,this.projectionMatrixInverse=new dI,this.coordinateSystem=UQ}copy(A,I){return super.copy(A,I),this.matrixWorldInverse.copy(A.matrixWorldInverse),this.projectionMatrix.copy(A.projectionMatrix),this.projectionMatrixInverse.copy(A.projectionMatrixInverse),this.coordinateSystem=A.coordinateSystem,this}getWorldDirection(A){return super.getWorldDirection(A).negate()}updateMatrixWorld(A){super.updateMatrixWorld(A),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(A,I){super.updateWorldMatrix(A,I),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const xe=new O,tF=new qA,oF=new qA;let dC=class extends br{constructor(A=50,I=1,C=.1,B=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=A,this.zoom=1,this.near=C,this.far=B,this.focus=10,this.aspect=I,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(A,I){return super.copy(A,I),this.fov=A.fov,this.zoom=A.zoom,this.near=A.near,this.far=A.far,this.focus=A.focus,this.aspect=A.aspect,this.view=A.view===null?null:Object.assign({},A.view),this.filmGauge=A.filmGauge,this.filmOffset=A.filmOffset,this}setFocalLength(A){const I=.5*this.getFilmHeight()/A;this.fov=Aa*2*Math.atan(I),this.updateProjectionMatrix()}getFocalLength(){const A=Math.tan(vt*.5*this.fov);return .5*this.getFilmHeight()/A}getEffectiveFOV(){return Aa*2*Math.atan(Math.tan(vt*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(A,I,C){xe.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),I.set(xe.x,xe.y).multiplyScalar(-A/xe.z),xe.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),C.set(xe.x,xe.y).multiplyScalar(-A/xe.z)}getViewSize(A,I){return this.getViewBounds(A,tF,oF),I.subVectors(oF,tF)}setViewOffset(A,I,C,B,i,Q){this.aspect=A/I,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=A,this.view.fullHeight=I,this.view.offsetX=C,this.view.offsetY=B,this.view.width=i,this.view.height=Q,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const A=this.near;let I=A*Math.tan(vt*.5*this.fov)/this.zoom,C=2*I,B=this.aspect*C,i=-.5*B;const Q=this.view;if(this.view!==null&&this.view.enabled){const E=Q.fullWidth,t=Q.fullHeight;i+=Q.offsetX*B/E,I-=Q.offsetY*C/t,B*=Q.width/E,C*=Q.height/t}const e=this.filmOffset;e!==0&&(i+=A*e/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+B,I,I-C,A,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(A){const I=super.toJSON(A);return I.object.fov=this.fov,I.object.zoom=this.zoom,I.object.near=this.near,I.object.far=this.far,I.object.focus=this.focus,I.object.aspect=this.aspect,this.view!==null&&(I.object.view=Object.assign({},this.view)),I.object.filmGauge=this.filmGauge,I.object.filmOffset=this.filmOffset,I}};const Wo=-90,jo=1;class Gm extends og{constructor(A,I,C){super(),this.type="CubeCamera",this.renderTarget=C,this.coordinateSystem=null,this.activeMipmapLevel=0;const B=new dC(Wo,jo,A,I);B.layers=this.layers,this.add(B);const i=new dC(Wo,jo,A,I);i.layers=this.layers,this.add(i);const Q=new dC(Wo,jo,A,I);Q.layers=this.layers,this.add(Q);const e=new dC(Wo,jo,A,I);e.layers=this.layers,this.add(e);const E=new dC(Wo,jo,A,I);E.layers=this.layers,this.add(E);const t=new dC(Wo,jo,A,I);t.layers=this.layers,this.add(t)}updateCoordinateSystem(){const A=this.coordinateSystem,I=this.children.concat(),[C,B,i,Q,e,E]=I;for(const t of I)this.remove(t);if(A===UQ)C.up.set(0,1,0),C.lookAt(1,0,0),B.up.set(0,1,0),B.lookAt(-1,0,0),i.up.set(0,0,-1),i.lookAt(0,1,0),Q.up.set(0,0,1),Q.lookAt(0,-1,0),e.up.set(0,1,0),e.lookAt(0,0,1),E.up.set(0,1,0),E.lookAt(0,0,-1);else if(A===Gr)C.up.set(0,-1,0),C.lookAt(-1,0,0),B.up.set(0,-1,0),B.lookAt(1,0,0),i.up.set(0,0,1),i.lookAt(0,1,0),Q.up.set(0,0,-1),Q.lookAt(0,-1,0),e.up.set(0,-1,0),e.lookAt(0,0,1),E.up.set(0,-1,0),E.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+A);for(const t of I)this.add(t),t.updateMatrixWorld()}update(A,I){this.parent===null&&this.updateMatrixWorld();const{renderTarget:C,activeMipmapLevel:B}=this;this.coordinateSystem!==A.coordinateSystem&&(this.coordinateSystem=A.coordinateSystem,this.updateCoordinateSystem());const[i,Q,e,E,t,a]=this.children,s=A.getRenderTarget(),r=A.getActiveCubeFace(),l=A.getActiveMipmapLevel(),D=A.xr.enabled;A.xr.enabled=!1;const G=C.texture.generateMipmaps;C.texture.generateMipmaps=!1,A.setRenderTarget(C,0,B),A.render(I,i),A.setRenderTarget(C,1,B),A.render(I,Q),A.setRenderTarget(C,2,B),A.render(I,e),A.setRenderTarget(C,3,B),A.render(I,E),A.setRenderTarget(C,4,B),A.render(I,t),C.texture.generateMipmaps=G,A.setRenderTarget(C,5,B),A.render(I,a),A.setRenderTarget(s,r,l),A.xr.enabled=D,C.texture.needsPMREMUpdate=!0}}class Or extends Lg{constructor(A,I,C,B,i,Q,e,E,t,a){A=A!==void 0?A:[],I=I!==void 0?I:qQ,super(A,I,C,B,i,Q,e,E,t,a),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(A){this.image=A}}class UM extends MC{constructor(A=1,I={}){super(A,A,I),this.isWebGLCubeRenderTarget=!0;const C={width:A,height:A,depth:1},B=[C,C,C,C,C,C];I.encoding!==void 0&&(bt("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),I.colorSpace=I.encoding===DE?cC:Qi),this.texture=new Or(B,I.mapping,I.wrapS,I.wrapT,I.magFilter,I.minFilter,I.format,I.type,I.anisotropy,I.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=I.generateMipmaps!==void 0?I.generateMipmaps:!1,this.texture.minFilter=I.minFilter!==void 0?I.minFilter:wg}fromEquirectangularTexture(A,I){this.texture.type=I.type,this.texture.colorSpace=I.colorSpace,this.texture.generateMipmaps=I.generateMipmaps,this.texture.minFilter=I.minFilter,this.texture.magFilter=I.magFilter;const C={uniforms:{tEquirect:{value:null}},vertexShader:` - - varying vec3 vWorldDirection; - - vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); - - } - - void main() { - - vWorldDirection = transformDirection( position, modelMatrix ); - - #include - #include - - } - `,fragmentShader:` - - uniform sampler2D tEquirect; - - varying vec3 vWorldDirection; - - #include - - void main() { - - vec3 direction = normalize( vWorldDirection ); - - vec2 sampleUV = equirectUv( direction ); - - gl_FragColor = texture2D( tEquirect, sampleUV ); - - } - `},B=new qE(5,5,5),i=new LC({name:"CubemapFromEquirect",uniforms:Ia(C.uniforms),vertexShader:C.vertexShader,fragmentShader:C.fragmentShader,side:qB,blending:ae});i.uniforms.tEquirect.value=I;const Q=new lg(B,i),e=I.minFilter;return I.minFilter===Ei&&(I.minFilter=wg),new Gm(1,10,this).update(A,Q),I.minFilter=e,Q.geometry.dispose(),Q.material.dispose(),this}clear(A,I,C,B){const i=A.getRenderTarget();for(let Q=0;Q<6;Q++)A.setRenderTarget(this,Q),A.clear(I,C,B);A.setRenderTarget(i)}}const ey=new O,ob=new O,nb=new PI;class Jg{constructor(A=new O(1,0,0),I=0){this.isPlane=!0,this.normal=A,this.constant=I}set(A,I){return this.normal.copy(A),this.constant=I,this}setComponents(A,I,C,B){return this.normal.set(A,I,C),this.constant=B,this}setFromNormalAndCoplanarPoint(A,I){return this.normal.copy(A),this.constant=-I.dot(this.normal),this}setFromCoplanarPoints(A,I,C){const B=ey.subVectors(C,I).cross(ob.subVectors(A,I)).normalize();return this.setFromNormalAndCoplanarPoint(B,A),this}copy(A){return this.normal.copy(A.normal),this.constant=A.constant,this}normalize(){const A=1/this.normal.length();return this.normal.multiplyScalar(A),this.constant*=A,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(A){return this.normal.dot(A)+this.constant}distanceToSphere(A){return this.distanceToPoint(A.center)-A.radius}projectPoint(A,I){return I.copy(A).addScaledVector(this.normal,-this.distanceToPoint(A))}intersectLine(A,I){const C=A.delta(ey),B=this.normal.dot(C);if(B===0)return this.distanceToPoint(A.start)===0?I.copy(A.start):null;const i=-(A.start.dot(this.normal)+this.constant)/B;return i<0||i>1?null:I.copy(A.start).addScaledVector(C,i)}intersectsLine(A){const I=this.distanceToPoint(A.start),C=this.distanceToPoint(A.end);return I<0&&C>0||C<0&&I>0}intersectsBox(A){return A.intersectsPlane(this)}intersectsSphere(A){return A.intersectsPlane(this)}coplanarPoint(A){return A.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(A,I){const C=I||nb.getNormalMatrix(A),B=this.coplanarPoint(ey).applyMatrix4(A),i=this.normal.applyMatrix3(C).normalize();return this.constant=-B.dot(i),this}translate(A){return this.constant-=A.dot(this.normal),this}equals(A){return A.normal.equals(this.normal)&&A.constant===this.constant}clone(){return new this.constructor().copy(this)}}const nt=new TC,Lc=new O;class _r{constructor(A=new Jg,I=new Jg,C=new Jg,B=new Jg,i=new Jg,Q=new Jg){this.planes=[A,I,C,B,i,Q]}set(A,I,C,B,i,Q){const e=this.planes;return e[0].copy(A),e[1].copy(I),e[2].copy(C),e[3].copy(B),e[4].copy(i),e[5].copy(Q),this}copy(A){const I=this.planes;for(let C=0;C<6;C++)I[C].copy(A.planes[C]);return this}setFromProjectionMatrix(A,I=UQ){const C=this.planes,B=A.elements,i=B[0],Q=B[1],e=B[2],E=B[3],t=B[4],a=B[5],s=B[6],r=B[7],l=B[8],D=B[9],G=B[10],h=B[11],c=B[12],y=B[13],S=B[14],k=B[15];if(C[0].setComponents(E-i,r-t,h-l,k-c).normalize(),C[1].setComponents(E+i,r+t,h+l,k+c).normalize(),C[2].setComponents(E+Q,r+a,h+D,k+y).normalize(),C[3].setComponents(E-Q,r-a,h-D,k-y).normalize(),C[4].setComponents(E-e,r-s,h-G,k-S).normalize(),I===UQ)C[5].setComponents(E+e,r+s,h+G,k+S).normalize();else if(I===Gr)C[5].setComponents(e,s,G,S).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+I);return this}intersectsObject(A){if(A.boundingSphere!==void 0)A.boundingSphere===null&&A.computeBoundingSphere(),nt.copy(A.boundingSphere).applyMatrix4(A.matrixWorld);else{const I=A.geometry;I.boundingSphere===null&&I.computeBoundingSphere(),nt.copy(I.boundingSphere).applyMatrix4(A.matrixWorld)}return this.intersectsSphere(nt)}intersectsSprite(A){return nt.center.set(0,0,0),nt.radius=.7071067811865476,nt.applyMatrix4(A.matrixWorld),this.intersectsSphere(nt)}intersectsSphere(A){const I=this.planes,C=A.center,B=-A.radius;for(let i=0;i<6;i++)if(I[i].distanceToPoint(C)0?A.max.x:A.min.x,Lc.y=B.normal.y>0?A.max.y:A.min.y,Lc.z=B.normal.z>0?A.max.z:A.min.z,B.distanceToPoint(Lc)<0)return!1}return!0}containsPoint(A){const I=this.planes;for(let C=0;C<6;C++)if(I[C].distanceToPoint(A)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function ym(){let g=null,A=!1,I=null,C=null;function B(i,Q){I(i,Q),C=g.requestAnimationFrame(B)}return{start:function(){A!==!0&&I!==null&&(C=g.requestAnimationFrame(B),A=!0)},stop:function(){g.cancelAnimationFrame(C),A=!1},setAnimationLoop:function(i){I=i},setContext:function(i){g=i}}}function ab(g,A){const I=A.isWebGL2,C=new WeakMap;function B(t,a){const s=t.array,r=t.usage,l=s.byteLength,D=g.createBuffer();g.bindBuffer(a,D),g.bufferData(a,s,r),t.onUploadCallback();let G;if(s instanceof Float32Array)G=g.FLOAT;else if(s instanceof Uint16Array)if(t.isFloat16BufferAttribute)if(I)G=g.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else G=g.UNSIGNED_SHORT;else if(s instanceof Int16Array)G=g.SHORT;else if(s instanceof Uint32Array)G=g.UNSIGNED_INT;else if(s instanceof Int32Array)G=g.INT;else if(s instanceof Int8Array)G=g.BYTE;else if(s instanceof Uint8Array)G=g.UNSIGNED_BYTE;else if(s instanceof Uint8ClampedArray)G=g.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+s);return{buffer:D,type:G,bytesPerElement:s.BYTES_PER_ELEMENT,version:t.version,size:l}}function i(t,a,s){const r=a.array,l=a._updateRange,D=a.updateRanges;if(g.bindBuffer(s,t),l.count===-1&&D.length===0&&g.bufferSubData(s,0,r),D.length!==0){for(let G=0,h=D.length;G 0 - vec4 plane; - #ifdef ALPHA_TO_COVERAGE - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - if ( clipOpacity == 0.0 ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - float unionClipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - } - #pragma unroll_loop_end - clipOpacity *= 1.0 - unionClipOpacity; - #endif - diffuseColor.a *= clipOpacity; - if ( diffuseColor.a == 0.0 ) discard; - #else - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - bool clipped = true; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; - } - #pragma unroll_loop_end - if ( clipped ) discard; - #endif - #endif -#endif`,Nb=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; - uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,Fb=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; -#endif`,fb=`#if NUM_CLIPPING_PLANES > 0 - vClipPosition = - mvPosition.xyz; -#endif`,Rb=`#if defined( USE_COLOR_ALPHA ) - diffuseColor *= vColor; -#elif defined( USE_COLOR ) - diffuseColor.rgb *= vColor; -#endif`,Kb=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) - varying vec3 vColor; -#endif`,Jb=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) - varying vec3 vColor; -#endif`,qb=`#if defined( USE_COLOR_ALPHA ) - vColor = vec4( 1.0 ); -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) - vColor = vec3( 1.0 ); -#endif -#ifdef USE_COLOR - vColor *= color; -#endif -#ifdef USE_INSTANCING_COLOR - vColor.xyz *= instanceColor.xyz; -#endif`,mb=`#define PI 3.141592653589793 -#define PI2 6.283185307179586 -#define PI_HALF 1.5707963267948966 -#define RECIPROCAL_PI 0.3183098861837907 -#define RECIPROCAL_PI2 0.15915494309189535 -#define EPSILON 1e-6 -#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -#define whiteComplement( a ) ( 1.0 - saturate( a ) ) -float pow2( const in float x ) { return x*x; } -vec3 pow2( const in vec3 x ) { return x*x; } -float pow3( const in float x ) { return x*x*x; } -float pow4( const in float x ) { float x2 = x*x; return x2*x2; } -float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } -float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } -highp float rand( const in vec2 uv ) { - const highp float a = 12.9898, b = 78.233, c = 43758.5453; - highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); - return fract( sin( sn ) * c ); -} -#ifdef HIGH_PRECISION - float precisionSafeLength( vec3 v ) { return length( v ); } -#else - float precisionSafeLength( vec3 v ) { - float maxComponent = max3( abs( v ) ); - return length( v / maxComponent ) * maxComponent; - } -#endif -struct IncidentLight { - vec3 color; - vec3 direction; - bool visible; -}; -struct ReflectedLight { - vec3 directDiffuse; - vec3 directSpecular; - vec3 indirectDiffuse; - vec3 indirectSpecular; -}; -#ifdef USE_ALPHAHASH - varying vec3 vPosition; -#endif -vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); -} -vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); -} -mat3 transposeMat3( const in mat3 m ) { - mat3 tmp; - tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); - tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); - tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); - return tmp; -} -float luminance( const in vec3 rgb ) { - const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); - return dot( weights, rgb ); -} -bool isPerspectiveMatrix( mat4 m ) { - return m[ 2 ][ 3 ] == - 1.0; -} -vec2 equirectUv( in vec3 dir ) { - float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; - float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; - return vec2( u, v ); -} -vec3 BRDF_Lambert( const in vec3 diffuseColor ) { - return RECIPROCAL_PI * diffuseColor; -} -vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} -float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} // validated`,Lb=`#ifdef ENVMAP_TYPE_CUBE_UV - #define cubeUV_minMipLevel 4.0 - #define cubeUV_minTileSize 16.0 - float getFace( vec3 direction ) { - vec3 absDirection = abs( direction ); - float face = - 1.0; - if ( absDirection.x > absDirection.z ) { - if ( absDirection.x > absDirection.y ) - face = direction.x > 0.0 ? 0.0 : 3.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } else { - if ( absDirection.z > absDirection.y ) - face = direction.z > 0.0 ? 2.0 : 5.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } - return face; - } - vec2 getUV( vec3 direction, float face ) { - vec2 uv; - if ( face == 0.0 ) { - uv = vec2( direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 1.0 ) { - uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); - } else if ( face == 2.0 ) { - uv = vec2( - direction.x, direction.y ) / abs( direction.z ); - } else if ( face == 3.0 ) { - uv = vec2( - direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 4.0 ) { - uv = vec2( - direction.x, direction.z ) / abs( direction.y ); - } else { - uv = vec2( direction.x, direction.y ) / abs( direction.z ); - } - return 0.5 * ( uv + 1.0 ); - } - vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { - float face = getFace( direction ); - float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); - mipInt = max( mipInt, cubeUV_minMipLevel ); - float faceSize = exp2( mipInt ); - highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; - if ( face > 2.0 ) { - uv.y += faceSize; - face -= 3.0; - } - uv.x += face * faceSize; - uv.x += filterInt * 3.0 * cubeUV_minTileSize; - uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); - uv.x *= CUBEUV_TEXEL_WIDTH; - uv.y *= CUBEUV_TEXEL_HEIGHT; - #ifdef texture2DGradEXT - return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; - #else - return texture2D( envMap, uv ).rgb; - #endif - } - #define cubeUV_r0 1.0 - #define cubeUV_m0 - 2.0 - #define cubeUV_r1 0.8 - #define cubeUV_m1 - 1.0 - #define cubeUV_r4 0.4 - #define cubeUV_m4 2.0 - #define cubeUV_r5 0.305 - #define cubeUV_m5 3.0 - #define cubeUV_r6 0.21 - #define cubeUV_m6 4.0 - float roughnessToMip( float roughness ) { - float mip = 0.0; - if ( roughness >= cubeUV_r1 ) { - mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; - } else if ( roughness >= cubeUV_r4 ) { - mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; - } else if ( roughness >= cubeUV_r5 ) { - mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; - } else if ( roughness >= cubeUV_r6 ) { - mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; - } else { - mip = - 2.0 * log2( 1.16 * roughness ); } - return mip; - } - vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { - float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); - float mipF = fract( mip ); - float mipInt = floor( mip ); - vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); - if ( mipF == 0.0 ) { - return vec4( color0, 1.0 ); - } else { - vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); - return vec4( mix( color0, color1, mipF ), 1.0 ); - } - } -#endif`,Yb=`vec3 transformedNormal = objectNormal; -#ifdef USE_TANGENT - vec3 transformedTangent = objectTangent; -#endif -#ifdef USE_BATCHING - mat3 bm = mat3( batchingMatrix ); - transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); - transformedNormal = bm * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = bm * transformedTangent; - #endif -#endif -#ifdef USE_INSTANCING - mat3 im = mat3( instanceMatrix ); - transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); - transformedNormal = im * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = im * transformedTangent; - #endif -#endif -transformedNormal = normalMatrix * transformedNormal; -#ifdef FLIP_SIDED - transformedNormal = - transformedNormal; -#endif -#ifdef USE_TANGENT - transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; - #ifdef FLIP_SIDED - transformedTangent = - transformedTangent; - #endif -#endif`,Hb=`#ifdef USE_DISPLACEMENTMAP - uniform sampler2D displacementMap; - uniform float displacementScale; - uniform float displacementBias; -#endif`,Tb=`#ifdef USE_DISPLACEMENTMAP - transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,xb=`#ifdef USE_EMISSIVEMAP - vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); - totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,vb=`#ifdef USE_EMISSIVEMAP - uniform sampler2D emissiveMap; -#endif`,bb="gl_FragColor = linearToOutputTexel( gl_FragColor );",Ob=` -const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( - vec3( 0.8224621, 0.177538, 0.0 ), - vec3( 0.0331941, 0.9668058, 0.0 ), - vec3( 0.0170827, 0.0723974, 0.9105199 ) -); -const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( - vec3( 1.2249401, - 0.2249404, 0.0 ), - vec3( - 0.0420569, 1.0420571, 0.0 ), - vec3( - 0.0196376, - 0.0786361, 1.0982735 ) -); -vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { - return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); -} -vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { - return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); -} -vec4 LinearTransferOETF( in vec4 value ) { - return value; -} -vec4 sRGBTransferOETF( in vec4 value ) { - return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); -} -vec4 LinearToLinear( in vec4 value ) { - return value; -} -vec4 LinearTosRGB( in vec4 value ) { - return sRGBTransferOETF( value ); -}`,_b=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vec3 cameraToFrag; - if ( isOrthographic ) { - cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToFrag = normalize( vWorldPosition - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vec3 reflectVec = reflect( cameraToFrag, worldNormal ); - #else - vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); - #endif - #else - vec3 reflectVec = vReflect; - #endif - #ifdef ENVMAP_TYPE_CUBE - vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); - #else - vec4 envColor = vec4( 0.0 ); - #endif - #ifdef ENVMAP_BLENDING_MULTIPLY - outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_MIX ) - outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_ADD ) - outgoingLight += envColor.xyz * specularStrength * reflectivity; - #endif -#endif`,Zb=`#ifdef USE_ENVMAP - uniform float envMapIntensity; - uniform float flipEnvMap; - #ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; - #else - uniform sampler2D envMap; - #endif - -#endif`,Pb=`#ifdef USE_ENVMAP - uniform float reflectivity; - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - varying vec3 vWorldPosition; - uniform float refractionRatio; - #else - varying vec3 vReflect; - #endif -#endif`,Wb=`#ifdef USE_ENVMAP - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - - varying vec3 vWorldPosition; - #else - varying vec3 vReflect; - uniform float refractionRatio; - #endif -#endif`,jb=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vWorldPosition = worldPosition.xyz; - #else - vec3 cameraToVertex; - if ( isOrthographic ) { - cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vReflect = reflect( cameraToVertex, worldNormal ); - #else - vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); - #endif - #endif -#endif`,Vb=`#ifdef USE_FOG - vFogDepth = - mvPosition.z; -#endif`,Xb=`#ifdef USE_FOG - varying float vFogDepth; -#endif`,zb=`#ifdef USE_FOG - #ifdef FOG_EXP2 - float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); - #else - float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); - #endif - gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); -#endif`,$b=`#ifdef USE_FOG - uniform vec3 fogColor; - varying float vFogDepth; - #ifdef FOG_EXP2 - uniform float fogDensity; - #else - uniform float fogNear; - uniform float fogFar; - #endif -#endif`,AO=`#ifdef USE_GRADIENTMAP - uniform sampler2D gradientMap; -#endif -vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { - float dotNL = dot( normal, lightDirection ); - vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); - #ifdef USE_GRADIENTMAP - return vec3( texture2D( gradientMap, coord ).r ); - #else - vec2 fw = fwidth( coord ) * 0.5; - return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); - #endif -}`,IO=`#ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - reflectedLight.indirectDiffuse += lightMapIrradiance; -#endif`,gO=`#ifdef USE_LIGHTMAP - uniform sampler2D lightMap; - uniform float lightMapIntensity; -#endif`,CO=`LambertMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,BO=`varying vec3 vViewPosition; -struct LambertMaterial { - vec3 diffuseColor; - float specularStrength; -}; -void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Lambert -#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,iO=`uniform bool receiveShadow; -uniform vec3 ambientLightColor; -#if defined( USE_LIGHT_PROBES ) - uniform vec3 lightProbe[ 9 ]; -#endif -vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { - float x = normal.x, y = normal.y, z = normal.z; - vec3 result = shCoefficients[ 0 ] * 0.886227; - result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; - result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; - result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; - result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; - result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; - result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); - result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; - result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); - return result; -} -vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); - return irradiance; -} -vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { - vec3 irradiance = ambientLightColor; - return irradiance; -} -float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { - #if defined ( LEGACY_LIGHTS ) - if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { - return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); - } - return 1.0; - #else - float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); - if ( cutoffDistance > 0.0 ) { - distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); - } - return distanceFalloff; - #endif -} -float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { - return smoothstep( coneCosine, penumbraCosine, angleCosine ); -} -#if NUM_DIR_LIGHTS > 0 - struct DirectionalLight { - vec3 direction; - vec3 color; - }; - uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; - void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { - light.color = directionalLight.color; - light.direction = directionalLight.direction; - light.visible = true; - } -#endif -#if NUM_POINT_LIGHTS > 0 - struct PointLight { - vec3 position; - vec3 color; - float distance; - float decay; - }; - uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; - void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = pointLight.position - geometryPosition; - light.direction = normalize( lVector ); - float lightDistance = length( lVector ); - light.color = pointLight.color; - light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } -#endif -#if NUM_SPOT_LIGHTS > 0 - struct SpotLight { - vec3 position; - vec3 direction; - vec3 color; - float distance; - float decay; - float coneCos; - float penumbraCos; - }; - uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; - void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = spotLight.position - geometryPosition; - light.direction = normalize( lVector ); - float angleCos = dot( light.direction, spotLight.direction ); - float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); - if ( spotAttenuation > 0.0 ) { - float lightDistance = length( lVector ); - light.color = spotLight.color * spotAttenuation; - light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } else { - light.color = vec3( 0.0 ); - light.visible = false; - } - } -#endif -#if NUM_RECT_AREA_LIGHTS > 0 - struct RectAreaLight { - vec3 color; - vec3 position; - vec3 halfWidth; - vec3 halfHeight; - }; - uniform sampler2D ltc_1; uniform sampler2D ltc_2; - uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; -#endif -#if NUM_HEMI_LIGHTS > 0 - struct HemisphereLight { - vec3 direction; - vec3 skyColor; - vec3 groundColor; - }; - uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; - vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { - float dotNL = dot( normal, hemiLight.direction ); - float hemiDiffuseWeight = 0.5 * dotNL + 0.5; - vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); - return irradiance; - } -#endif`,QO=`#ifdef USE_ENVMAP - vec3 getIBLIrradiance( const in vec3 normal ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); - return PI * envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 reflectVec = reflect( - viewDir, normal ); - reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); - reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); - return envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = normalize( cross( bentNormal, bitangent ) ); - bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); - return getIBLRadiance( viewDir, bentNormal, roughness ); - #else - return vec3( 0.0 ); - #endif - } - #endif -#endif`,eO=`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,EO=`varying vec3 vViewPosition; -struct ToonMaterial { - vec3 diffuseColor; -}; -void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Toon -#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,tO=`BlinnPhongMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularColor = specular; -material.specularShininess = shininess; -material.specularStrength = specularStrength;`,oO=`varying vec3 vViewPosition; -struct BlinnPhongMaterial { - vec3 diffuseColor; - vec3 specularColor; - float specularShininess; - float specularStrength; -}; -void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); - reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; -} -void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_BlinnPhong -#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,nO=`PhysicalMaterial material; -material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); -vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); -float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); -material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; -material.roughness = min( material.roughness, 1.0 ); -#ifdef IOR - material.ior = ior; - #ifdef USE_SPECULAR - float specularIntensityFactor = specularIntensity; - vec3 specularColorFactor = specularColor; - #ifdef USE_SPECULAR_COLORMAP - specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; - #endif - material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); - #else - float specularIntensityFactor = 1.0; - vec3 specularColorFactor = vec3( 1.0 ); - material.specularF90 = 1.0; - #endif - material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); -#else - material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); - material.specularF90 = 1.0; -#endif -#ifdef USE_CLEARCOAT - material.clearcoat = clearcoat; - material.clearcoatRoughness = clearcoatRoughness; - material.clearcoatF0 = vec3( 0.04 ); - material.clearcoatF90 = 1.0; - #ifdef USE_CLEARCOATMAP - material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; - #endif - #ifdef USE_CLEARCOAT_ROUGHNESSMAP - material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; - #endif - material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); - material.clearcoatRoughness += geometryRoughness; - material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); -#endif -#ifdef USE_IRIDESCENCE - material.iridescence = iridescence; - material.iridescenceIOR = iridescenceIOR; - #ifdef USE_IRIDESCENCEMAP - material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; - #endif - #ifdef USE_IRIDESCENCE_THICKNESSMAP - material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; - #else - material.iridescenceThickness = iridescenceThicknessMaximum; - #endif -#endif -#ifdef USE_SHEEN - material.sheenColor = sheenColor; - #ifdef USE_SHEEN_COLORMAP - material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; - #endif - material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); - #ifdef USE_SHEEN_ROUGHNESSMAP - material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; - #endif -#endif -#ifdef USE_ANISOTROPY - #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; - vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; - #else - vec2 anisotropyV = anisotropyVector; - #endif - material.anisotropy = length( anisotropyV ); - if( material.anisotropy == 0.0 ) { - anisotropyV = vec2( 1.0, 0.0 ); - } else { - anisotropyV /= material.anisotropy; - material.anisotropy = saturate( material.anisotropy ); - } - material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); - material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; - material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; -#endif`,aO=`struct PhysicalMaterial { - vec3 diffuseColor; - float roughness; - vec3 specularColor; - float specularF90; - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - #endif - #ifdef USE_SHEEN - vec3 sheenColor; - float sheenRoughness; - #endif - #ifdef IOR - float ior; - #endif - #ifdef USE_TRANSMISSION - float transmission; - float transmissionAlpha; - float thickness; - float attenuationDistance; - vec3 attenuationColor; - #endif - #ifdef USE_ANISOTROPY - float anisotropy; - float alphaT; - vec3 anisotropyT; - vec3 anisotropyB; - #endif -}; -vec3 clearcoatSpecularDirect = vec3( 0.0 ); -vec3 clearcoatSpecularIndirect = vec3( 0.0 ); -vec3 sheenSpecularDirect = vec3( 0.0 ); -vec3 sheenSpecularIndirect = vec3(0.0 ); -vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { - float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); - float x2 = x * x; - float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); - return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); -} -float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { - float a2 = pow2( alpha ); - float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); - float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); - return 0.5 / max( gv + gl, EPSILON ); -} -float D_GGX( const in float alpha, const in float dotNH ) { - float a2 = pow2( alpha ); - float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; - return RECIPROCAL_PI * a2 / pow2( denom ); -} -#ifdef USE_ANISOTROPY - float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { - float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); - float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); - float v = 0.5 / ( gv + gl ); - return saturate(v); - } - float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { - float a2 = alphaT * alphaB; - highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); - highp float v2 = dot( v, v ); - float w2 = a2 / v2; - return RECIPROCAL_PI * a2 * pow2 ( w2 ); - } -#endif -#ifdef USE_CLEARCOAT - vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { - vec3 f0 = material.clearcoatF0; - float f90 = material.clearcoatF90; - float roughness = material.clearcoatRoughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - return F * ( V * D ); - } -#endif -vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 f0 = material.specularColor; - float f90 = material.specularF90; - float roughness = material.roughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - #ifdef USE_IRIDESCENCE - F = mix( F, material.iridescenceFresnel, material.iridescence ); - #endif - #ifdef USE_ANISOTROPY - float dotTL = dot( material.anisotropyT, lightDir ); - float dotTV = dot( material.anisotropyT, viewDir ); - float dotTH = dot( material.anisotropyT, halfDir ); - float dotBL = dot( material.anisotropyB, lightDir ); - float dotBV = dot( material.anisotropyB, viewDir ); - float dotBH = dot( material.anisotropyB, halfDir ); - float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); - float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); - #else - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - #endif - return F * ( V * D ); -} -vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { - const float LUT_SIZE = 64.0; - const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; - const float LUT_BIAS = 0.5 / LUT_SIZE; - float dotNV = saturate( dot( N, V ) ); - vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); - uv = uv * LUT_SCALE + LUT_BIAS; - return uv; -} -float LTC_ClippedSphereFormFactor( const in vec3 f ) { - float l = length( f ); - return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); -} -vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { - float x = dot( v1, v2 ); - float y = abs( x ); - float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; - float b = 3.4175940 + ( 4.1616724 + y ) * y; - float v = a / b; - float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; - return cross( v1, v2 ) * theta_sintheta; -} -vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { - vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; - vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; - vec3 lightNormal = cross( v1, v2 ); - if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); - vec3 T1, T2; - T1 = normalize( V - N * dot( V, N ) ); - T2 = - cross( N, T1 ); - mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); - vec3 coords[ 4 ]; - coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); - coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); - coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); - coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); - coords[ 0 ] = normalize( coords[ 0 ] ); - coords[ 1 ] = normalize( coords[ 1 ] ); - coords[ 2 ] = normalize( coords[ 2 ] ); - coords[ 3 ] = normalize( coords[ 3 ] ); - vec3 vectorFormFactor = vec3( 0.0 ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); - float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); - return vec3( result ); -} -#if defined( USE_SHEEN ) -float D_Charlie( float roughness, float dotNH ) { - float alpha = pow2( roughness ); - float invAlpha = 1.0 / alpha; - float cos2h = dotNH * dotNH; - float sin2h = max( 1.0 - cos2h, 0.0078125 ); - return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); -} -float V_Neubelt( float dotNV, float dotNL ) { - return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); -} -vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float D = D_Charlie( sheenRoughness, dotNH ); - float V = V_Neubelt( dotNV, dotNL ); - return sheenColor * ( D * V ); -} -#endif -float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - float r2 = roughness * roughness; - float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; - float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; - float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); - return saturate( DG * RECIPROCAL_PI ); -} -vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); - const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); - vec4 r = roughness * c0 + c1; - float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; - vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; - return fab; -} -vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { - vec2 fab = DFGApprox( normal, viewDir, roughness ); - return specularColor * fab.x + specularF90 * fab.y; -} -#ifdef USE_IRIDESCENCE -void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#else -void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#endif - vec2 fab = DFGApprox( normal, viewDir, roughness ); - #ifdef USE_IRIDESCENCE - vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); - #else - vec3 Fr = specularColor; - #endif - vec3 FssEss = Fr * fab.x + specularF90 * fab.y; - float Ess = fab.x + fab.y; - float Ems = 1.0 - Ess; - vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); - singleScatter += FssEss; - multiScatter += Fms * Ems; -} -#if NUM_RECT_AREA_LIGHTS > 0 - void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - vec3 normal = geometryNormal; - vec3 viewDir = geometryViewDir; - vec3 position = geometryPosition; - vec3 lightPos = rectAreaLight.position; - vec3 halfWidth = rectAreaLight.halfWidth; - vec3 halfHeight = rectAreaLight.halfHeight; - vec3 lightColor = rectAreaLight.color; - float roughness = material.roughness; - vec3 rectCoords[ 4 ]; - rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; - rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; - rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; - vec2 uv = LTC_Uv( normal, viewDir, roughness ); - vec4 t1 = texture2D( ltc_1, uv ); - vec4 t2 = texture2D( ltc_2, uv ); - mat3 mInv = mat3( - vec3( t1.x, 0, t1.y ), - vec3( 0, 1, 0 ), - vec3( t1.z, 0, t1.w ) - ); - vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); - reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); - reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); - } -#endif -void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - #ifdef USE_CLEARCOAT - float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); - vec3 ccIrradiance = dotNLcc * directLight.color; - clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); - #endif - #ifdef USE_SHEEN - sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); - #endif - reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { - #ifdef USE_CLEARCOAT - clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); - #endif - #ifdef USE_SHEEN - sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - #endif - vec3 singleScattering = vec3( 0.0 ); - vec3 multiScattering = vec3( 0.0 ); - vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; - #ifdef USE_IRIDESCENCE - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); - #else - computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); - #endif - vec3 totalScattering = singleScattering + multiScattering; - vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); - reflectedLight.indirectSpecular += radiance * singleScattering; - reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; - reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; -} -#define RE_Direct RE_Direct_Physical -#define RE_Direct_RectArea RE_Direct_RectArea_Physical -#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical -#define RE_IndirectSpecular RE_IndirectSpecular_Physical -float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { - return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); -}`,sO=` -vec3 geometryPosition = - vViewPosition; -vec3 geometryNormal = normal; -vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); -vec3 geometryClearcoatNormal = vec3( 0.0 ); -#ifdef USE_CLEARCOAT - geometryClearcoatNormal = clearcoatNormal; -#endif -#ifdef USE_IRIDESCENCE - float dotNVi = saturate( dot( normal, geometryViewDir ) ); - if ( material.iridescenceThickness == 0.0 ) { - material.iridescence = 0.0; - } else { - material.iridescence = saturate( material.iridescence ); - } - if ( material.iridescence > 0.0 ) { - material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); - material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); - } -#endif -IncidentLight directLight; -#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) - PointLight pointLight; - #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { - pointLight = pointLights[ i ]; - getPointLightInfo( pointLight, geometryPosition, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) - pointLightShadow = pointLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) - SpotLight spotLight; - vec4 spotColor; - vec3 spotLightCoord; - bool inSpotLightMap; - #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { - spotLight = spotLights[ i ]; - getSpotLightInfo( spotLight, geometryPosition, directLight ); - #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX - #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS - #else - #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #endif - #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) - spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; - inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); - spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); - directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; - #endif - #undef SPOT_LIGHT_MAP_INDEX - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - spotLightShadow = spotLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) - DirectionalLight directionalLight; - #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { - directionalLight = directionalLights[ i ]; - getDirectionalLightInfo( directionalLight, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) - directionalLightShadow = directionalLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) - RectAreaLight rectAreaLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { - rectAreaLight = rectAreaLights[ i ]; - RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if defined( RE_IndirectDiffuse ) - vec3 iblIrradiance = vec3( 0.0 ); - vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); - #if defined( USE_LIGHT_PROBES ) - irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); - #endif - #if ( NUM_HEMI_LIGHTS > 0 ) - #pragma unroll_loop_start - for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { - irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); - } - #pragma unroll_loop_end - #endif -#endif -#if defined( RE_IndirectSpecular ) - vec3 radiance = vec3( 0.0 ); - vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,rO=`#if defined( RE_IndirectDiffuse ) - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - irradiance += lightMapIrradiance; - #endif - #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) - iblIrradiance += getIBLIrradiance( geometryNormal ); - #endif -#endif -#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); - #else - radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); - #endif - #ifdef USE_CLEARCOAT - clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); - #endif -#endif`,lO=`#if defined( RE_IndirectDiffuse ) - RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif -#if defined( RE_IndirectSpecular ) - RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif`,cO=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) - gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,DO=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) - uniform float logDepthBufFC; - varying float vFragDepth; - varying float vIsPerspective; -#endif`,hO=`#ifdef USE_LOGDEPTHBUF - #ifdef USE_LOGDEPTHBUF_EXT - varying float vFragDepth; - varying float vIsPerspective; - #else - uniform float logDepthBufFC; - #endif -#endif`,wO=`#ifdef USE_LOGDEPTHBUF - #ifdef USE_LOGDEPTHBUF_EXT - vFragDepth = 1.0 + gl_Position.w; - vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); - #else - if ( isPerspectiveMatrix( projectionMatrix ) ) { - gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; - gl_Position.z *= gl_Position.w; - } - #endif -#endif`,SO=`#ifdef USE_MAP - vec4 sampledDiffuseColor = texture2D( map, vMapUv ); - #ifdef DECODE_VIDEO_TEXTURE - sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); - - #endif - diffuseColor *= sampledDiffuseColor; -#endif`,GO=`#ifdef USE_MAP - uniform sampler2D map; -#endif`,yO=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - #if defined( USE_POINTS_UV ) - vec2 uv = vUv; - #else - vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; - #endif -#endif -#ifdef USE_MAP - diffuseColor *= texture2D( map, uv ); -#endif -#ifdef USE_ALPHAMAP - diffuseColor.a *= texture2D( alphaMap, uv ).g; -#endif`,uO=`#if defined( USE_POINTS_UV ) - varying vec2 vUv; -#else - #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - uniform mat3 uvTransform; - #endif -#endif -#ifdef USE_MAP - uniform sampler2D map; -#endif -#ifdef USE_ALPHAMAP - uniform sampler2D alphaMap; -#endif`,kO=`float metalnessFactor = metalness; -#ifdef USE_METALNESSMAP - vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); - metalnessFactor *= texelMetalness.b; -#endif`,MO=`#ifdef USE_METALNESSMAP - uniform sampler2D metalnessMap; -#endif`,dO=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) - vColor *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - #if defined( USE_COLOR_ALPHA ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; - #elif defined( USE_COLOR ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; - #endif - } -#endif`,pO=`#ifdef USE_MORPHNORMALS - objectNormal *= morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; - } - #else - objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; - objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; - objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; - objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; - #endif -#endif`,UO=`#ifdef USE_MORPHTARGETS - uniform float morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - uniform sampler2DArray morphTargetsTexture; - uniform ivec2 morphTargetsTextureSize; - vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { - int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; - int y = texelIndex / morphTargetsTextureSize.x; - int x = texelIndex - y * morphTargetsTextureSize.x; - ivec3 morphUV = ivec3( x, y, morphTargetIndex ); - return texelFetch( morphTargetsTexture, morphUV, 0 ); - } - #else - #ifndef USE_MORPHNORMALS - uniform float morphTargetInfluences[ 8 ]; - #else - uniform float morphTargetInfluences[ 4 ]; - #endif - #endif -#endif`,NO=`#ifdef USE_MORPHTARGETS - transformed *= morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; - } - #else - transformed += morphTarget0 * morphTargetInfluences[ 0 ]; - transformed += morphTarget1 * morphTargetInfluences[ 1 ]; - transformed += morphTarget2 * morphTargetInfluences[ 2 ]; - transformed += morphTarget3 * morphTargetInfluences[ 3 ]; - #ifndef USE_MORPHNORMALS - transformed += morphTarget4 * morphTargetInfluences[ 4 ]; - transformed += morphTarget5 * morphTargetInfluences[ 5 ]; - transformed += morphTarget6 * morphTargetInfluences[ 6 ]; - transformed += morphTarget7 * morphTargetInfluences[ 7 ]; - #endif - #endif -#endif`,FO=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; -#ifdef FLAT_SHADED - vec3 fdx = dFdx( vViewPosition ); - vec3 fdy = dFdy( vViewPosition ); - vec3 normal = normalize( cross( fdx, fdy ) ); -#else - vec3 normal = normalize( vNormal ); - #ifdef DOUBLE_SIDED - normal *= faceDirection; - #endif -#endif -#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) - #ifdef USE_TANGENT - mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn = getTangentFrame( - vViewPosition, normal, - #if defined( USE_NORMALMAP ) - vNormalMapUv - #elif defined( USE_CLEARCOAT_NORMALMAP ) - vClearcoatNormalMapUv - #else - vUv - #endif - ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn[0] *= faceDirection; - tbn[1] *= faceDirection; - #endif -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - #ifdef USE_TANGENT - mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn2[0] *= faceDirection; - tbn2[1] *= faceDirection; - #endif -#endif -vec3 nonPerturbedNormal = normal;`,fO=`#ifdef USE_NORMALMAP_OBJECTSPACE - normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - #ifdef FLIP_SIDED - normal = - normal; - #endif - #ifdef DOUBLE_SIDED - normal = normal * faceDirection; - #endif - normal = normalize( normalMatrix * normal ); -#elif defined( USE_NORMALMAP_TANGENTSPACE ) - vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - mapN.xy *= normalScale; - normal = normalize( tbn * mapN ); -#elif defined( USE_BUMPMAP ) - normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,RO=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,KO=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,JO=`#ifndef FLAT_SHADED - vNormal = normalize( transformedNormal ); - #ifdef USE_TANGENT - vTangent = normalize( transformedTangent ); - vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); - #endif -#endif`,qO=`#ifdef USE_NORMALMAP - uniform sampler2D normalMap; - uniform vec2 normalScale; -#endif -#ifdef USE_NORMALMAP_OBJECTSPACE - uniform mat3 normalMatrix; -#endif -#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) - mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { - vec3 q0 = dFdx( eye_pos.xyz ); - vec3 q1 = dFdy( eye_pos.xyz ); - vec2 st0 = dFdx( uv.st ); - vec2 st1 = dFdy( uv.st ); - vec3 N = surf_norm; - vec3 q1perp = cross( q1, N ); - vec3 q0perp = cross( N, q0 ); - vec3 T = q1perp * st0.x + q0perp * st1.x; - vec3 B = q1perp * st0.y + q0perp * st1.y; - float det = max( dot( T, T ), dot( B, B ) ); - float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); - return mat3( T * scale, B * scale, N ); - } -#endif`,mO=`#ifdef USE_CLEARCOAT - vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,LO=`#ifdef USE_CLEARCOAT_NORMALMAP - vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; - clearcoatMapN.xy *= clearcoatNormalScale; - clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,YO=`#ifdef USE_CLEARCOATMAP - uniform sampler2D clearcoatMap; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform sampler2D clearcoatNormalMap; - uniform vec2 clearcoatNormalScale; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform sampler2D clearcoatRoughnessMap; -#endif`,HO=`#ifdef USE_IRIDESCENCEMAP - uniform sampler2D iridescenceMap; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform sampler2D iridescenceThicknessMap; -#endif`,TO=`#ifdef OPAQUE -diffuseColor.a = 1.0; -#endif -#ifdef USE_TRANSMISSION -diffuseColor.a *= material.transmissionAlpha; -#endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,xO=`vec3 packNormalToRGB( const in vec3 normal ) { - return normalize( normal ) * 0.5 + 0.5; -} -vec3 unpackRGBToNormal( const in vec3 rgb ) { - return 2.0 * rgb.xyz - 1.0; -} -const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; -const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); -const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); -const float ShiftRight8 = 1. / 256.; -vec4 packDepthToRGBA( const in float v ) { - vec4 r = vec4( fract( v * PackFactors ), v ); - r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; -} -float unpackRGBAToDepth( const in vec4 v ) { - return dot( v, UnpackFactors ); -} -vec2 packDepthToRG( in highp float v ) { - return packDepthToRGBA( v ).yx; -} -float unpackRGToDepth( const in highp vec2 v ) { - return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); -} -vec4 pack2HalfToRGBA( vec2 v ) { - vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); - return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); -} -vec2 unpackRGBATo2Half( vec4 v ) { - return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); -} -float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { - return ( viewZ + near ) / ( near - far ); -} -float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { - return depth * ( near - far ) - near; -} -float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { - return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); -} -float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { - return ( near * far ) / ( ( far - near ) * depth - far ); -}`,vO=`#ifdef PREMULTIPLIED_ALPHA - gl_FragColor.rgb *= gl_FragColor.a; -#endif`,bO=`vec4 mvPosition = vec4( transformed, 1.0 ); -#ifdef USE_BATCHING - mvPosition = batchingMatrix * mvPosition; -#endif -#ifdef USE_INSTANCING - mvPosition = instanceMatrix * mvPosition; -#endif -mvPosition = modelViewMatrix * mvPosition; -gl_Position = projectionMatrix * mvPosition;`,OO=`#ifdef DITHERING - gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,_O=`#ifdef DITHERING - vec3 dithering( vec3 color ) { - float grid_position = rand( gl_FragCoord.xy ); - vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); - dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); - return color + dither_shift_RGB; - } -#endif`,ZO=`float roughnessFactor = roughness; -#ifdef USE_ROUGHNESSMAP - vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); - roughnessFactor *= texelRoughness.g; -#endif`,PO=`#ifdef USE_ROUGHNESSMAP - uniform sampler2D roughnessMap; -#endif`,WO=`#if NUM_SPOT_LIGHT_COORDS > 0 - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#if NUM_SPOT_LIGHT_MAPS > 0 - uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - struct SpotLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif - float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { - return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); - } - vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { - return unpackRGBATo2Half( texture2D( shadow, uv ) ); - } - float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ - float occlusion = 1.0; - vec2 distribution = texture2DDistribution( shadow, uv ); - float hard_shadow = step( compare , distribution.x ); - if (hard_shadow != 1.0 ) { - float distance = compare - distribution.x ; - float variance = max( 0.00000, distribution.y * distribution.y ); - float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); - } - return occlusion; - } - float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - shadowCoord.z += shadowBias; - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - #if defined( SHADOWMAP_TYPE_PCF ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx0 = - texelSize.x * shadowRadius; - float dy0 = - texelSize.y * shadowRadius; - float dx1 = + texelSize.x * shadowRadius; - float dy1 = + texelSize.y * shadowRadius; - float dx2 = dx0 / 2.0; - float dy2 = dy0 / 2.0; - float dx3 = dx1 / 2.0; - float dy3 = dy1 / 2.0; - shadow = ( - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) - ) * ( 1.0 / 17.0 ); - #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx = texelSize.x; - float dy = texelSize.y; - vec2 uv = shadowCoord.xy; - vec2 f = fract( uv * shadowMapSize + 0.5 ); - uv -= f * texelSize; - shadow = ( - texture2DCompare( shadowMap, uv, shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), - f.x ), - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), - f.x ), - f.y ) - ) * ( 1.0 / 9.0 ); - #elif defined( SHADOWMAP_TYPE_VSM ) - shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); - #else - shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); - #endif - } - return shadow; - } - vec2 cubeToUV( vec3 v, float texelSizeY ) { - vec3 absV = abs( v ); - float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); - absV *= scaleToCube; - v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); - vec2 planar = v.xy; - float almostATexel = 1.5 * texelSizeY; - float almostOne = 1.0 - almostATexel; - if ( absV.z >= almostOne ) { - if ( v.z > 0.0 ) - planar.x = 4.0 - v.x; - } else if ( absV.x >= almostOne ) { - float signX = sign( v.x ); - planar.x = v.z * signX + 2.0 * signX; - } else if ( absV.y >= almostOne ) { - float signY = sign( v.y ); - planar.x = v.x + 2.0 * signY + 2.0; - planar.y = v.z * signY - 2.0; - } - return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); - } - float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); - vec3 lightToPosition = shadowCoord.xyz; - float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; - vec3 bd3D = normalize( lightToPosition ); - #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) - vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; - return ( - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) - ) * ( 1.0 / 9.0 ); - #else - return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); - #endif - } -#endif`,jO=`#if NUM_SPOT_LIGHT_COORDS > 0 - uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - struct SpotLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif -#endif`,VO=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) - vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - vec4 shadowWorldPosition; -#endif -#if defined( USE_SHADOWMAP ) - #if NUM_DIR_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); - vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); - vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif -#endif -#if NUM_SPOT_LIGHT_COORDS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { - shadowWorldPosition = worldPosition; - #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; - #endif - vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end -#endif`,XO=`float getShadowMask() { - float shadow = 1.0; - #ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - directionalLight = directionalLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { - spotLight = spotLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - pointLight = pointLightShadows[ i ]; - shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; - } - #pragma unroll_loop_end - #endif - #endif - return shadow; -}`,zO=`#ifdef USE_SKINNING - mat4 boneMatX = getBoneMatrix( skinIndex.x ); - mat4 boneMatY = getBoneMatrix( skinIndex.y ); - mat4 boneMatZ = getBoneMatrix( skinIndex.z ); - mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,$O=`#ifdef USE_SKINNING - uniform mat4 bindMatrix; - uniform mat4 bindMatrixInverse; - uniform highp sampler2D boneTexture; - mat4 getBoneMatrix( const in float i ) { - int size = textureSize( boneTexture, 0 ).x; - int j = int( i ) * 4; - int x = j % size; - int y = j / size; - vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); - vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); - vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); - vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); - return mat4( v1, v2, v3, v4 ); - } -#endif`,A4=`#ifdef USE_SKINNING - vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); - vec4 skinned = vec4( 0.0 ); - skinned += boneMatX * skinVertex * skinWeight.x; - skinned += boneMatY * skinVertex * skinWeight.y; - skinned += boneMatZ * skinVertex * skinWeight.z; - skinned += boneMatW * skinVertex * skinWeight.w; - transformed = ( bindMatrixInverse * skinned ).xyz; -#endif`,I4=`#ifdef USE_SKINNING - mat4 skinMatrix = mat4( 0.0 ); - skinMatrix += skinWeight.x * boneMatX; - skinMatrix += skinWeight.y * boneMatY; - skinMatrix += skinWeight.z * boneMatZ; - skinMatrix += skinWeight.w * boneMatW; - skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; - objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; - #ifdef USE_TANGENT - objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; - #endif -#endif`,g4=`float specularStrength; -#ifdef USE_SPECULARMAP - vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); - specularStrength = texelSpecular.r; -#else - specularStrength = 1.0; -#endif`,C4=`#ifdef USE_SPECULARMAP - uniform sampler2D specularMap; -#endif`,B4=`#if defined( TONE_MAPPING ) - gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,i4=`#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -uniform float toneMappingExposure; -vec3 LinearToneMapping( vec3 color ) { - return saturate( toneMappingExposure * color ); -} -vec3 ReinhardToneMapping( vec3 color ) { - color *= toneMappingExposure; - return saturate( color / ( vec3( 1.0 ) + color ) ); -} -vec3 OptimizedCineonToneMapping( vec3 color ) { - color *= toneMappingExposure; - color = max( vec3( 0.0 ), color - 0.004 ); - return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); -} -vec3 RRTAndODTFit( vec3 v ) { - vec3 a = v * ( v + 0.0245786 ) - 0.000090537; - vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; - return a / b; -} -vec3 ACESFilmicToneMapping( vec3 color ) { - const mat3 ACESInputMat = mat3( - vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), - vec3( 0.04823, 0.01566, 0.83777 ) - ); - const mat3 ACESOutputMat = mat3( - vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), - vec3( -0.07367, -0.00605, 1.07602 ) - ); - color *= toneMappingExposure / 0.6; - color = ACESInputMat * color; - color = RRTAndODTFit( color ); - color = ACESOutputMat * color; - return saturate( color ); -} -const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( - vec3( 1.6605, - 0.1246, - 0.0182 ), - vec3( - 0.5876, 1.1329, - 0.1006 ), - vec3( - 0.0728, - 0.0083, 1.1187 ) -); -const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( - vec3( 0.6274, 0.0691, 0.0164 ), - vec3( 0.3293, 0.9195, 0.0880 ), - vec3( 0.0433, 0.0113, 0.8956 ) -); -vec3 agxDefaultContrastApprox( vec3 x ) { - vec3 x2 = x * x; - vec3 x4 = x2 * x2; - return + 15.5 * x4 * x2 - - 40.14 * x4 * x - + 31.96 * x4 - - 6.868 * x2 * x - + 0.4298 * x2 - + 0.1191 * x - - 0.00232; -} -vec3 AgXToneMapping( vec3 color ) { - const mat3 AgXInsetMatrix = mat3( - vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), - vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), - vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) - ); - const mat3 AgXOutsetMatrix = mat3( - vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), - vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), - vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) - ); - const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; - color *= toneMappingExposure; - color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; - color = AgXInsetMatrix * color; - color = max( color, 1e-10 ); color = log2( color ); - color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); - color = clamp( color, 0.0, 1.0 ); - color = agxDefaultContrastApprox( color ); - color = AgXOutsetMatrix * color; - color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); - color = LINEAR_REC2020_TO_LINEAR_SRGB * color; - color = clamp( color, 0.0, 1.0 ); - return color; -} -vec3 CustomToneMapping( vec3 color ) { return color; }`,Q4=`#ifdef USE_TRANSMISSION - material.transmission = transmission; - material.transmissionAlpha = 1.0; - material.thickness = thickness; - material.attenuationDistance = attenuationDistance; - material.attenuationColor = attenuationColor; - #ifdef USE_TRANSMISSIONMAP - material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; - #endif - #ifdef USE_THICKNESSMAP - material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; - #endif - vec3 pos = vWorldPosition; - vec3 v = normalize( cameraPosition - pos ); - vec3 n = inverseTransformDirection( normal, viewMatrix ); - vec4 transmitted = getIBLVolumeRefraction( - n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, - pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, - material.attenuationColor, material.attenuationDistance ); - material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); - totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); -#endif`,e4=`#ifdef USE_TRANSMISSION - uniform float transmission; - uniform float thickness; - uniform float attenuationDistance; - uniform vec3 attenuationColor; - #ifdef USE_TRANSMISSIONMAP - uniform sampler2D transmissionMap; - #endif - #ifdef USE_THICKNESSMAP - uniform sampler2D thicknessMap; - #endif - uniform vec2 transmissionSamplerSize; - uniform sampler2D transmissionSamplerMap; - uniform mat4 modelMatrix; - uniform mat4 projectionMatrix; - varying vec3 vWorldPosition; - float w0( float a ) { - return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); - } - float w1( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); - } - float w2( float a ){ - return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); - } - float w3( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * a ); - } - float g0( float a ) { - return w0( a ) + w1( a ); - } - float g1( float a ) { - return w2( a ) + w3( a ); - } - float h0( float a ) { - return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); - } - float h1( float a ) { - return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); - } - vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { - uv = uv * texelSize.zw + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - float g0x = g0( fuv.x ); - float g1x = g1( fuv.x ); - float h0x = h0( fuv.x ); - float h1x = h1( fuv.x ); - float h0y = h0( fuv.y ); - float h1y = h1( fuv.y ); - vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + - g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); - } - vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { - vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); - vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); - vec2 fLodSizeInv = 1.0 / fLodSize; - vec2 cLodSizeInv = 1.0 / cLodSize; - vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); - vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); - return mix( fSample, cSample, fract( lod ) ); - } - vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { - vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); - vec3 modelScale; - modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); - modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); - modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); - return normalize( refractionVector ) * thickness * modelScale; - } - float applyIorToRoughness( const in float roughness, const in float ior ) { - return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); - } - vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { - float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); - return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); - } - vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { - if ( isinf( attenuationDistance ) ) { - return vec3( 1.0 ); - } else { - vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; - vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; - } - } - vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, - const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, - const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, - const in vec3 attenuationColor, const in float attenuationDistance ) { - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); - vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); - vec3 attenuatedColor = transmittance * transmittedLight.rgb; - vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); - float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; - return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); - } -#endif`,E4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - varying vec2 vNormalMapUv; -#endif -#ifdef USE_EMISSIVEMAP - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_SPECULARMAP - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,t4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - uniform mat3 mapTransform; - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - uniform mat3 alphaMapTransform; - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - uniform mat3 lightMapTransform; - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - uniform mat3 aoMapTransform; - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - uniform mat3 bumpMapTransform; - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - uniform mat3 normalMapTransform; - varying vec2 vNormalMapUv; -#endif -#ifdef USE_DISPLACEMENTMAP - uniform mat3 displacementMapTransform; - varying vec2 vDisplacementMapUv; -#endif -#ifdef USE_EMISSIVEMAP - uniform mat3 emissiveMapTransform; - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - uniform mat3 metalnessMapTransform; - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - uniform mat3 roughnessMapTransform; - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - uniform mat3 anisotropyMapTransform; - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - uniform mat3 clearcoatMapTransform; - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform mat3 clearcoatNormalMapTransform; - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform mat3 clearcoatRoughnessMapTransform; - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - uniform mat3 sheenColorMapTransform; - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - uniform mat3 sheenRoughnessMapTransform; - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - uniform mat3 iridescenceMapTransform; - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform mat3 iridescenceThicknessMapTransform; - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SPECULARMAP - uniform mat3 specularMapTransform; - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - uniform mat3 specularColorMapTransform; - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - uniform mat3 specularIntensityMapTransform; - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,o4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - vUv = vec3( uv, 1 ).xy; -#endif -#ifdef USE_MAP - vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ALPHAMAP - vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_LIGHTMAP - vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_AOMAP - vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_BUMPMAP - vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_NORMALMAP - vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_DISPLACEMENTMAP - vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_EMISSIVEMAP - vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_METALNESSMAP - vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ROUGHNESSMAP - vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ANISOTROPYMAP - vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOATMAP - vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCEMAP - vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_COLORMAP - vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULARMAP - vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_COLORMAP - vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_TRANSMISSIONMAP - vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_THICKNESSMAP - vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; -#endif`,n4=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 - vec4 worldPosition = vec4( transformed, 1.0 ); - #ifdef USE_BATCHING - worldPosition = batchingMatrix * worldPosition; - #endif - #ifdef USE_INSTANCING - worldPosition = instanceMatrix * worldPosition; - #endif - worldPosition = modelMatrix * worldPosition; -#endif`;const a4=`varying vec2 vUv; -uniform mat3 uvTransform; -void main() { - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,s4=`uniform sampler2D t2D; -uniform float backgroundIntensity; -varying vec2 vUv; -void main() { - vec4 texColor = texture2D( t2D, vUv ); - #ifdef DECODE_VIDEO_TEXTURE - texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,r4=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,l4=`#ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; -#elif defined( ENVMAP_TYPE_CUBE_UV ) - uniform sampler2D envMap; -#endif -uniform float flipEnvMap; -uniform float backgroundBlurriness; -uniform float backgroundIntensity; -varying vec3 vWorldDirection; -#include -void main() { - #ifdef ENVMAP_TYPE_CUBE - vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); - #elif defined( ENVMAP_TYPE_CUBE_UV ) - vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); - #else - vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,c4=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,D4=`uniform samplerCube tCube; -uniform float tFlip; -uniform float opacity; -varying vec3 vWorldDirection; -void main() { - vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); - gl_FragColor = texColor; - gl_FragColor.a *= opacity; - #include - #include -}`,h4=`#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vHighPrecisionZW = gl_Position.zw; -}`,w4=`#if DEPTH_PACKING == 3200 - uniform float opacity; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - vec4 diffuseColor = vec4( 1.0 ); - #include - #if DEPTH_PACKING == 3200 - diffuseColor.a = opacity; - #endif - #include - #include - #include - #include - #include - float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; - #if DEPTH_PACKING == 3200 - gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); - #elif DEPTH_PACKING == 3201 - gl_FragColor = packDepthToRGBA( fragCoordZ ); - #endif -}`,S4=`#define DISTANCE -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vWorldPosition = worldPosition.xyz; -}`,G4=`#define DISTANCE -uniform vec3 referencePosition; -uniform float nearDistance; -uniform float farDistance; -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -#include -void main () { - vec4 diffuseColor = vec4( 1.0 ); - #include - #include - #include - #include - #include - float dist = length( vWorldPosition - referencePosition ); - dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); - dist = saturate( dist ); - gl_FragColor = packDepthToRGBA( dist ); -}`,y4=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include -}`,u4=`uniform sampler2D tEquirect; -varying vec3 vWorldDirection; -#include -void main() { - vec3 direction = normalize( vWorldDirection ); - vec2 sampleUV = equirectUv( direction ); - gl_FragColor = texture2D( tEquirect, sampleUV ); - #include - #include -}`,k4=`uniform float scale; -attribute float lineDistance; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vLineDistance = scale * lineDistance; - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,M4=`uniform vec3 diffuse; -uniform float opacity; -uniform float dashSize; -uniform float totalSize; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - if ( mod( vLineDistance, totalSize ) > dashSize ) { - discard; - } - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,d4=`#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) - #include - #include - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,p4=`uniform vec3 diffuse; -uniform float opacity; -#ifndef FLAT_SHADED - varying vec3 vNormal; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; - #else - reflectedLight.indirectDiffuse += vec3( 1.0 ); - #endif - #include - reflectedLight.indirectDiffuse *= diffuseColor.rgb; - vec3 outgoingLight = reflectedLight.indirectDiffuse; - #include - #include - #include - #include - #include - #include - #include -}`,U4=`#define LAMBERT -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,N4=`#define LAMBERT -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,F4=`#define MATCAP -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; -}`,f4=`#define MATCAP -uniform vec3 diffuse; -uniform float opacity; -uniform sampler2D matcap; -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 viewDir = normalize( vViewPosition ); - vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); - vec3 y = cross( viewDir, x ); - vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; - #ifdef USE_MATCAP - vec4 matcapColor = texture2D( matcap, uv ); - #else - vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); - #endif - vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; - #include - #include - #include - #include - #include - #include -}`,R4=`#define NORMAL -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - vViewPosition = - mvPosition.xyz; -#endif -}`,K4=`#define NORMAL -uniform float opacity; -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); - #include - #include - #include - #include - gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); - #ifdef OPAQUE - gl_FragColor.a = 1.0; - #endif -}`,J4=`#define PHONG -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,q4=`#define PHONG -uniform vec3 diffuse; -uniform vec3 emissive; -uniform vec3 specular; -uniform float shininess; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,m4=`#define STANDARD -varying vec3 vViewPosition; -#ifdef USE_TRANSMISSION - varying vec3 vWorldPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -#ifdef USE_TRANSMISSION - vWorldPosition = worldPosition.xyz; -#endif -}`,L4=`#define STANDARD -#ifdef PHYSICAL - #define IOR - #define USE_SPECULAR -#endif -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float roughness; -uniform float metalness; -uniform float opacity; -#ifdef IOR - uniform float ior; -#endif -#ifdef USE_SPECULAR - uniform float specularIntensity; - uniform vec3 specularColor; - #ifdef USE_SPECULAR_COLORMAP - uniform sampler2D specularColorMap; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - uniform sampler2D specularIntensityMap; - #endif -#endif -#ifdef USE_CLEARCOAT - uniform float clearcoat; - uniform float clearcoatRoughness; -#endif -#ifdef USE_IRIDESCENCE - uniform float iridescence; - uniform float iridescenceIOR; - uniform float iridescenceThicknessMinimum; - uniform float iridescenceThicknessMaximum; -#endif -#ifdef USE_SHEEN - uniform vec3 sheenColor; - uniform float sheenRoughness; - #ifdef USE_SHEEN_COLORMAP - uniform sampler2D sheenColorMap; - #endif - #ifdef USE_SHEEN_ROUGHNESSMAP - uniform sampler2D sheenRoughnessMap; - #endif -#endif -#ifdef USE_ANISOTROPY - uniform vec2 anisotropyVector; - #ifdef USE_ANISOTROPYMAP - uniform sampler2D anisotropyMap; - #endif -#endif -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; - vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; - #include - vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; - #ifdef USE_SHEEN - float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); - outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; - #endif - #ifdef USE_CLEARCOAT - float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); - vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); - outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; - #endif - #include - #include - #include - #include - #include - #include -}`,Y4=`#define TOON -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -}`,H4=`#define TOON -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include -}`,T4=`uniform float size; -uniform float scale; -#include -#include -#include -#include -#include -#include -#ifdef USE_POINTS_UV - varying vec2 vUv; - uniform mat3 uvTransform; -#endif -void main() { - #ifdef USE_POINTS_UV - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - #endif - #include - #include - #include - #include - #include - gl_PointSize = size; - #ifdef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); - #endif - #include - #include - #include - #include -}`,x4=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,v4=`#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,b4=`uniform vec3 color; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); - #include - #include - #include -}`,O4=`uniform float rotation; -uniform vec2 center; -#include -#include -#include -#include -#include -void main() { - #include - vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); - vec2 scale; - scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); - scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); - #ifndef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) scale *= - mvPosition.z; - #endif - vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; - vec2 rotatedPosition; - rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; - rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; - mvPosition.xy += rotatedPosition; - gl_Position = projectionMatrix * mvPosition; - #include - #include - #include -}`,_4=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include -}`,Ig={alphahash_fragment:sb,alphahash_pars_fragment:rb,alphamap_fragment:lb,alphamap_pars_fragment:cb,alphatest_fragment:Db,alphatest_pars_fragment:hb,aomap_fragment:wb,aomap_pars_fragment:Sb,batching_pars_vertex:Gb,batching_vertex:yb,begin_vertex:ub,beginnormal_vertex:kb,bsdfs:Mb,iridescence_fragment:db,bumpmap_pars_fragment:pb,clipping_planes_fragment:Ub,clipping_planes_pars_fragment:Nb,clipping_planes_pars_vertex:Fb,clipping_planes_vertex:fb,color_fragment:Rb,color_pars_fragment:Kb,color_pars_vertex:Jb,color_vertex:qb,common:mb,cube_uv_reflection_fragment:Lb,defaultnormal_vertex:Yb,displacementmap_pars_vertex:Hb,displacementmap_vertex:Tb,emissivemap_fragment:xb,emissivemap_pars_fragment:vb,colorspace_fragment:bb,colorspace_pars_fragment:Ob,envmap_fragment:_b,envmap_common_pars_fragment:Zb,envmap_pars_fragment:Pb,envmap_pars_vertex:Wb,envmap_physical_pars_fragment:QO,envmap_vertex:jb,fog_vertex:Vb,fog_pars_vertex:Xb,fog_fragment:zb,fog_pars_fragment:$b,gradientmap_pars_fragment:AO,lightmap_fragment:IO,lightmap_pars_fragment:gO,lights_lambert_fragment:CO,lights_lambert_pars_fragment:BO,lights_pars_begin:iO,lights_toon_fragment:eO,lights_toon_pars_fragment:EO,lights_phong_fragment:tO,lights_phong_pars_fragment:oO,lights_physical_fragment:nO,lights_physical_pars_fragment:aO,lights_fragment_begin:sO,lights_fragment_maps:rO,lights_fragment_end:lO,logdepthbuf_fragment:cO,logdepthbuf_pars_fragment:DO,logdepthbuf_pars_vertex:hO,logdepthbuf_vertex:wO,map_fragment:SO,map_pars_fragment:GO,map_particle_fragment:yO,map_particle_pars_fragment:uO,metalnessmap_fragment:kO,metalnessmap_pars_fragment:MO,morphcolor_vertex:dO,morphnormal_vertex:pO,morphtarget_pars_vertex:UO,morphtarget_vertex:NO,normal_fragment_begin:FO,normal_fragment_maps:fO,normal_pars_fragment:RO,normal_pars_vertex:KO,normal_vertex:JO,normalmap_pars_fragment:qO,clearcoat_normal_fragment_begin:mO,clearcoat_normal_fragment_maps:LO,clearcoat_pars_fragment:YO,iridescence_pars_fragment:HO,opaque_fragment:TO,packing:xO,premultiplied_alpha_fragment:vO,project_vertex:bO,dithering_fragment:OO,dithering_pars_fragment:_O,roughnessmap_fragment:ZO,roughnessmap_pars_fragment:PO,shadowmap_pars_fragment:WO,shadowmap_pars_vertex:jO,shadowmap_vertex:VO,shadowmask_pars_fragment:XO,skinbase_vertex:zO,skinning_pars_vertex:$O,skinning_vertex:A4,skinnormal_vertex:I4,specularmap_fragment:g4,specularmap_pars_fragment:C4,tonemapping_fragment:B4,tonemapping_pars_fragment:i4,transmission_fragment:Q4,transmission_pars_fragment:e4,uv_pars_fragment:E4,uv_pars_vertex:t4,uv_vertex:o4,worldpos_vertex:n4,background_vert:a4,background_frag:s4,backgroundCube_vert:r4,backgroundCube_frag:l4,cube_vert:c4,cube_frag:D4,depth_vert:h4,depth_frag:w4,distanceRGBA_vert:S4,distanceRGBA_frag:G4,equirect_vert:y4,equirect_frag:u4,linedashed_vert:k4,linedashed_frag:M4,meshbasic_vert:d4,meshbasic_frag:p4,meshlambert_vert:U4,meshlambert_frag:N4,meshmatcap_vert:F4,meshmatcap_frag:f4,meshnormal_vert:R4,meshnormal_frag:K4,meshphong_vert:J4,meshphong_frag:q4,meshphysical_vert:m4,meshphysical_frag:L4,meshtoon_vert:Y4,meshtoon_frag:H4,points_vert:T4,points_frag:x4,shadow_vert:v4,shadow_frag:b4,sprite_vert:O4,sprite_frag:_4},oI={common:{diffuse:{value:new QI(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new PI},alphaMap:{value:null},alphaMapTransform:{value:new PI},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new PI}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new PI}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new PI}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new PI},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new PI},normalScale:{value:new qA(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new PI},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new PI}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new PI}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new PI}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new QI(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new QI(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new PI},alphaTest:{value:0},uvTransform:{value:new PI}},sprite:{diffuse:{value:new QI(16777215)},opacity:{value:1},center:{value:new qA(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new PI},alphaMap:{value:null},alphaMapTransform:{value:new PI},alphaTest:{value:0}}},gQ={basic:{uniforms:NB([oI.common,oI.specularmap,oI.envmap,oI.aomap,oI.lightmap,oI.fog]),vertexShader:Ig.meshbasic_vert,fragmentShader:Ig.meshbasic_frag},lambert:{uniforms:NB([oI.common,oI.specularmap,oI.envmap,oI.aomap,oI.lightmap,oI.emissivemap,oI.bumpmap,oI.normalmap,oI.displacementmap,oI.fog,oI.lights,{emissive:{value:new QI(0)}}]),vertexShader:Ig.meshlambert_vert,fragmentShader:Ig.meshlambert_frag},phong:{uniforms:NB([oI.common,oI.specularmap,oI.envmap,oI.aomap,oI.lightmap,oI.emissivemap,oI.bumpmap,oI.normalmap,oI.displacementmap,oI.fog,oI.lights,{emissive:{value:new QI(0)},specular:{value:new QI(1118481)},shininess:{value:30}}]),vertexShader:Ig.meshphong_vert,fragmentShader:Ig.meshphong_frag},standard:{uniforms:NB([oI.common,oI.envmap,oI.aomap,oI.lightmap,oI.emissivemap,oI.bumpmap,oI.normalmap,oI.displacementmap,oI.roughnessmap,oI.metalnessmap,oI.fog,oI.lights,{emissive:{value:new QI(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ig.meshphysical_vert,fragmentShader:Ig.meshphysical_frag},toon:{uniforms:NB([oI.common,oI.aomap,oI.lightmap,oI.emissivemap,oI.bumpmap,oI.normalmap,oI.displacementmap,oI.gradientmap,oI.fog,oI.lights,{emissive:{value:new QI(0)}}]),vertexShader:Ig.meshtoon_vert,fragmentShader:Ig.meshtoon_frag},matcap:{uniforms:NB([oI.common,oI.bumpmap,oI.normalmap,oI.displacementmap,oI.fog,{matcap:{value:null}}]),vertexShader:Ig.meshmatcap_vert,fragmentShader:Ig.meshmatcap_frag},points:{uniforms:NB([oI.points,oI.fog]),vertexShader:Ig.points_vert,fragmentShader:Ig.points_frag},dashed:{uniforms:NB([oI.common,oI.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ig.linedashed_vert,fragmentShader:Ig.linedashed_frag},depth:{uniforms:NB([oI.common,oI.displacementmap]),vertexShader:Ig.depth_vert,fragmentShader:Ig.depth_frag},normal:{uniforms:NB([oI.common,oI.bumpmap,oI.normalmap,oI.displacementmap,{opacity:{value:1}}]),vertexShader:Ig.meshnormal_vert,fragmentShader:Ig.meshnormal_frag},sprite:{uniforms:NB([oI.sprite,oI.fog]),vertexShader:Ig.sprite_vert,fragmentShader:Ig.sprite_frag},background:{uniforms:{uvTransform:{value:new PI},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ig.background_vert,fragmentShader:Ig.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Ig.backgroundCube_vert,fragmentShader:Ig.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ig.cube_vert,fragmentShader:Ig.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ig.equirect_vert,fragmentShader:Ig.equirect_frag},distanceRGBA:{uniforms:NB([oI.common,oI.displacementmap,{referencePosition:{value:new O},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ig.distanceRGBA_vert,fragmentShader:Ig.distanceRGBA_frag},shadow:{uniforms:NB([oI.lights,oI.fog,{color:{value:new QI(0)},opacity:{value:1}}]),vertexShader:Ig.shadow_vert,fragmentShader:Ig.shadow_frag}};gQ.physical={uniforms:NB([gQ.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new PI},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new PI},clearcoatNormalScale:{value:new qA(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new PI},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new PI},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new PI},sheen:{value:0},sheenColor:{value:new QI(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new PI},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new PI},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new PI},transmissionSamplerSize:{value:new qA},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new PI},attenuationDistance:{value:0},attenuationColor:{value:new QI(0)},specularColor:{value:new QI(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new PI},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new PI},anisotropyVector:{value:new qA},anisotropyMap:{value:null},anisotropyMapTransform:{value:new PI}}]),vertexShader:Ig.meshphysical_vert,fragmentShader:Ig.meshphysical_frag};const Yc={r:0,b:0,g:0};function Z4(g,A,I,C,B,i,Q){const e=new QI(0);let E=i===!0?0:1,t,a,s=null,r=0,l=null;function D(h,c){let y=!1,S=c.isScene===!0?c.background:null;S&&S.isTexture&&(S=(c.backgroundBlurriness>0?I:A).get(S)),S===null?G(e,E):S&&S.isColor&&(G(S,1),y=!0);const k=g.xr.getEnvironmentBlendMode();k==="additive"?C.buffers.color.setClear(0,0,0,1,Q):k==="alpha-blend"&&C.buffers.color.setClear(0,0,0,0,Q),(g.autoClear||y)&&g.clear(g.autoClearColor,g.autoClearDepth,g.autoClearStencil),S&&(S.isCubeTexture||S.mapping===aa)?(a===void 0&&(a=new lg(new qE(1,1,1),new LC({name:"BackgroundCubeMaterial",uniforms:Ia(gQ.backgroundCube.uniforms),vertexShader:gQ.backgroundCube.vertexShader,fragmentShader:gQ.backgroundCube.fragmentShader,side:qB,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute("normal"),a.geometry.deleteAttribute("uv"),a.onBeforeRender=function(f,d,N){this.matrixWorld.copyPosition(N.matrixWorld)},Object.defineProperty(a.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),B.update(a)),a.material.uniforms.envMap.value=S,a.material.uniforms.flipEnvMap.value=S.isCubeTexture&&S.isRenderTargetTexture===!1?-1:1,a.material.uniforms.backgroundBlurriness.value=c.backgroundBlurriness,a.material.uniforms.backgroundIntensity.value=c.backgroundIntensity,a.material.toneMapped=Fg.getTransfer(S.colorSpace)!==Hg,(s!==S||r!==S.version||l!==g.toneMapping)&&(a.material.needsUpdate=!0,s=S,r=S.version,l=g.toneMapping),a.layers.enableAll(),h.unshift(a,a.geometry,a.material,0,0,null)):S&&S.isTexture&&(t===void 0&&(t=new lg(new ke(2,2),new LC({name:"BackgroundMaterial",uniforms:Ia(gQ.background.uniforms),vertexShader:gQ.background.vertexShader,fragmentShader:gQ.background.fragmentShader,side:si,depthTest:!1,depthWrite:!1,fog:!1})),t.geometry.deleteAttribute("normal"),Object.defineProperty(t.material,"map",{get:function(){return this.uniforms.t2D.value}}),B.update(t)),t.material.uniforms.t2D.value=S,t.material.uniforms.backgroundIntensity.value=c.backgroundIntensity,t.material.toneMapped=Fg.getTransfer(S.colorSpace)!==Hg,S.matrixAutoUpdate===!0&&S.updateMatrix(),t.material.uniforms.uvTransform.value.copy(S.matrix),(s!==S||r!==S.version||l!==g.toneMapping)&&(t.material.needsUpdate=!0,s=S,r=S.version,l=g.toneMapping),t.layers.enableAll(),h.unshift(t,t.geometry,t.material,0,0,null))}function G(h,c){h.getRGB(Yc,Sm(g)),C.buffers.color.setClear(Yc.r,Yc.g,Yc.b,c,Q)}return{getClearColor:function(){return e},setClearColor:function(h,c=1){e.set(h),E=c,G(e,E)},getClearAlpha:function(){return E},setClearAlpha:function(h){E=h,G(e,E)},render:D}}function P4(g,A,I,C){const B=g.getParameter(g.MAX_VERTEX_ATTRIBS),i=C.isWebGL2?null:A.get("OES_vertex_array_object"),Q=C.isWebGL2||i!==null,e={},E=h(null);let t=E,a=!1;function s(z,lA,aA,SA,b){let BA=!1;if(Q){const gA=G(SA,aA,lA);t!==gA&&(t=gA,l(t.object)),BA=c(z,SA,aA,b),BA&&y(z,SA,aA,b)}else{const gA=lA.wireframe===!0;(t.geometry!==SA.id||t.program!==aA.id||t.wireframe!==gA)&&(t.geometry=SA.id,t.program=aA.id,t.wireframe=gA,BA=!0)}b!==null&&I.update(b,g.ELEMENT_ARRAY_BUFFER),(BA||a)&&(a=!1,q(z,lA,aA,SA),b!==null&&g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,I.get(b).buffer))}function r(){return C.isWebGL2?g.createVertexArray():i.createVertexArrayOES()}function l(z){return C.isWebGL2?g.bindVertexArray(z):i.bindVertexArrayOES(z)}function D(z){return C.isWebGL2?g.deleteVertexArray(z):i.deleteVertexArrayOES(z)}function G(z,lA,aA){const SA=aA.wireframe===!0;let b=e[z.id];b===void 0&&(b={},e[z.id]=b);let BA=b[lA.id];BA===void 0&&(BA={},b[lA.id]=BA);let gA=BA[SA];return gA===void 0&&(gA=h(r()),BA[SA]=gA),gA}function h(z){const lA=[],aA=[],SA=[];for(let b=0;b=0){const j=b[NA];let x=BA[NA];if(x===void 0&&(NA==="instanceMatrix"&&z.instanceMatrix&&(x=z.instanceMatrix),NA==="instanceColor"&&z.instanceColor&&(x=z.instanceColor)),j===void 0||j.attribute!==x||x&&j.data!==x.data)return!0;gA++}return t.attributesNum!==gA||t.index!==SA}function y(z,lA,aA,SA){const b={},BA=lA.attributes;let gA=0;const hA=aA.getAttributes();for(const NA in hA)if(hA[NA].location>=0){let j=BA[NA];j===void 0&&(NA==="instanceMatrix"&&z.instanceMatrix&&(j=z.instanceMatrix),NA==="instanceColor"&&z.instanceColor&&(j=z.instanceColor));const x={};x.attribute=j,j&&j.data&&(x.data=j.data),b[NA]=x,gA++}t.attributes=b,t.attributesNum=gA,t.index=SA}function S(){const z=t.newAttributes;for(let lA=0,aA=z.length;lA=0){let WA=b[hA];if(WA===void 0&&(hA==="instanceMatrix"&&z.instanceMatrix&&(WA=z.instanceMatrix),hA==="instanceColor"&&z.instanceColor&&(WA=z.instanceColor)),WA!==void 0){const j=WA.normalized,x=WA.itemSize,Y=I.get(WA);if(Y===void 0)continue;const T=Y.buffer,tA=Y.type,dA=Y.bytesPerElement,EA=C.isWebGL2===!0&&(tA===g.INT||tA===g.UNSIGNED_INT||WA.gpuType===oM);if(WA.isInterleavedBufferAttribute){const FA=WA.data,W=FA.stride,UA=WA.offset;if(FA.isInstancedInterleavedBuffer){for(let eA=0;eA0&&g.getShaderPrecisionFormat(g.FRAGMENT_SHADER,g.HIGH_FLOAT).precision>0)return"highp";N="mediump"}return N==="mediump"&&g.getShaderPrecisionFormat(g.VERTEX_SHADER,g.MEDIUM_FLOAT).precision>0&&g.getShaderPrecisionFormat(g.FRAGMENT_SHADER,g.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const Q=typeof WebGL2RenderingContext<"u"&&g.constructor.name==="WebGL2RenderingContext";let e=I.precision!==void 0?I.precision:"highp";const E=i(e);E!==e&&(console.warn("THREE.WebGLRenderer:",e,"not supported, using",E,"instead."),e=E);const t=Q||A.has("WEBGL_draw_buffers"),a=I.logarithmicDepthBuffer===!0,s=g.getParameter(g.MAX_TEXTURE_IMAGE_UNITS),r=g.getParameter(g.MAX_VERTEX_TEXTURE_IMAGE_UNITS),l=g.getParameter(g.MAX_TEXTURE_SIZE),D=g.getParameter(g.MAX_CUBE_MAP_TEXTURE_SIZE),G=g.getParameter(g.MAX_VERTEX_ATTRIBS),h=g.getParameter(g.MAX_VERTEX_UNIFORM_VECTORS),c=g.getParameter(g.MAX_VARYING_VECTORS),y=g.getParameter(g.MAX_FRAGMENT_UNIFORM_VECTORS),S=r>0,k=Q||A.has("OES_texture_float"),f=S&&k,d=Q?g.getParameter(g.MAX_SAMPLES):0;return{isWebGL2:Q,drawBuffers:t,getMaxAnisotropy:B,getMaxPrecision:i,precision:e,logarithmicDepthBuffer:a,maxTextures:s,maxVertexTextures:r,maxTextureSize:l,maxCubemapSize:D,maxAttributes:G,maxVertexUniforms:h,maxVaryings:c,maxFragmentUniforms:y,vertexTextures:S,floatFragmentTextures:k,floatVertexTextures:f,maxSamples:d}}function V4(g){const A=this;let I=null,C=0,B=!1,i=!1;const Q=new Jg,e=new PI,E={value:null,needsUpdate:!1};this.uniform=E,this.numPlanes=0,this.numIntersection=0,this.init=function(s,r){const l=s.length!==0||r||C!==0||B;return B=r,C=s.length,l},this.beginShadows=function(){i=!0,a(null)},this.endShadows=function(){i=!1},this.setGlobalState=function(s,r){I=a(s,r,0)},this.setState=function(s,r,l){const D=s.clippingPlanes,G=s.clipIntersection,h=s.clipShadows,c=g.get(s);if(!B||D===null||D.length===0||i&&!h)i?a(null):t();else{const y=i?0:C,S=y*4;let k=c.clippingState||null;E.value=k,k=a(D,r,S,l);for(let f=0;f!==S;++f)k[f]=I[f];c.clippingState=k,this.numIntersection=G?this.numPlanes:0,this.numPlanes+=y}};function t(){E.value!==I&&(E.value=I,E.needsUpdate=C>0),A.numPlanes=C,A.numIntersection=0}function a(s,r,l,D){const G=s!==null?s.length:0;let h=null;if(G!==0){if(h=E.value,D!==!0||h===null){const c=l+G*4,y=r.matrixWorldInverse;e.getNormalMatrix(y),(h===null||h.length0){const t=new UM(E.height);return t.fromEquirectangularTexture(g,Q),A.set(Q,t),Q.addEventListener("dispose",B),I(t.texture,Q.mapping)}else return null}}return Q}function B(Q){const e=Q.target;e.removeEventListener("dispose",B);const E=A.get(e);E!==void 0&&(A.delete(e),E.dispose())}function i(){A=new WeakMap}return{get:C,dispose:i}}class mE extends br{constructor(A=-1,I=1,C=1,B=-1,i=.1,Q=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=A,this.right=I,this.top=C,this.bottom=B,this.near=i,this.far=Q,this.updateProjectionMatrix()}copy(A,I){return super.copy(A,I),this.left=A.left,this.right=A.right,this.top=A.top,this.bottom=A.bottom,this.near=A.near,this.far=A.far,this.zoom=A.zoom,this.view=A.view===null?null:Object.assign({},A.view),this}setViewOffset(A,I,C,B,i,Q){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=A,this.view.fullHeight=I,this.view.offsetX=C,this.view.offsetY=B,this.view.width=i,this.view.height=Q,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const A=(this.right-this.left)/(2*this.zoom),I=(this.top-this.bottom)/(2*this.zoom),C=(this.right+this.left)/2,B=(this.top+this.bottom)/2;let i=C-A,Q=C+A,e=B+I,E=B-I;if(this.view!==null&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,a=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=t*this.view.offsetX,Q=i+t*this.view.width,e-=a*this.view.offsetY,E=e-a*this.view.height}this.projectionMatrix.makeOrthographic(i,Q,e,E,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(A){const I=super.toJSON(A);return I.object.zoom=this.zoom,I.object.left=this.left,I.object.right=this.right,I.object.top=this.top,I.object.bottom=this.bottom,I.object.near=this.near,I.object.far=this.far,this.view!==null&&(I.object.view=Object.assign({},this.view)),I}}const pn=4,nF=[.125,.215,.35,.446,.526,.582],Nt=20,Ey=new mE,aF=new QI;let ty=null,oy=0,ny=0;const dt=(1+Math.sqrt(5))/2,Vo=1/dt,sF=[new O(1,1,1),new O(-1,1,1),new O(1,1,-1),new O(-1,1,-1),new O(0,dt,Vo),new O(0,dt,-Vo),new O(Vo,0,dt),new O(-Vo,0,dt),new O(dt,Vo,0),new O(-dt,Vo,0)];class Ju{constructor(A){this._renderer=A,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(A,I=0,C=.1,B=100){ty=this._renderer.getRenderTarget(),oy=this._renderer.getActiveCubeFace(),ny=this._renderer.getActiveMipmapLevel(),this._setSize(256);const i=this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(A,C,B,i),I>0&&this._blur(i,0,0,I),this._applyPMREM(i),this._cleanup(i),i}fromEquirectangular(A,I=null){return this._fromTexture(A,I)}fromCubemap(A,I=null){return this._fromTexture(A,I)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=cF(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=lF(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(A){this._lodMax=Math.floor(Math.log2(A)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let A=0;A2?S:0,S,S),a.setRenderTarget(B),G&&a.render(D,e),a.render(A,e)}D.geometry.dispose(),D.material.dispose(),a.toneMapping=r,a.autoClear=s,A.background=h}_textureToCubeUV(A,I){const C=this._renderer,B=A.mapping===qQ||A.mapping===dE;B?(this._cubemapMaterial===null&&(this._cubemapMaterial=cF()),this._cubemapMaterial.uniforms.flipEnvMap.value=A.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=lF());const i=B?this._cubemapMaterial:this._equirectMaterial,Q=new lg(this._lodPlanes[0],i),e=i.uniforms;e.envMap.value=A;const E=this._cubeSize;Hc(I,0,0,3*E,2*E),C.setRenderTarget(I),C.render(Q,Ey)}_applyPMREM(A){const I=this._renderer,C=I.autoClear;I.autoClear=!1;for(let B=1;BNt&&console.warn(`sigmaRadians, ${i}, is too large and will clip, as it requested ${h} samples when the maximum is set to ${Nt}`);const c=[];let y=0;for(let N=0;NS-pn?B-S+pn:0),d=4*(this._cubeSize-k);Hc(I,f,d,3*k,2*k),E.setRenderTarget(I),E.render(s,Ey)}}function z4(g){const A=[],I=[],C=[];let B=g;const i=g-pn+1+nF.length;for(let Q=0;Qg-pn?E=nF[Q-g+pn-1]:Q===0&&(E=0),C.push(E);const t=1/(e-2),a=-t,s=1+t,r=[a,a,s,a,s,s,a,a,s,s,a,s],l=6,D=6,G=3,h=2,c=1,y=new Float32Array(G*D*l),S=new Float32Array(h*D*l),k=new Float32Array(c*D*l);for(let d=0;d2?0:-1,P=[N,q,0,N+2/3,q,0,N+2/3,q+1,0,N,q,0,N+2/3,q+1,0,N,q+1,0];y.set(P,G*D*d),S.set(r,h*D*d);const U=[d,d,d,d,d,d];k.set(U,c*D*d)}const f=new WI;f.setAttribute("position",new Ag(y,G)),f.setAttribute("uv",new Ag(S,h)),f.setAttribute("faceIndex",new Ag(k,c)),A.push(f),B>pn&&B--}return{lodPlanes:A,sizeLods:I,sigmas:C}}function rF(g,A,I){const C=new MC(g,A,I);return C.texture.mapping=aa,C.texture.name="PMREM.cubeUv",C.scissorTest=!0,C}function Hc(g,A,I,C,B){g.viewport.set(A,I,C,B),g.scissor.set(A,I,C,B)}function $4(g,A,I){const C=new Float32Array(Nt),B=new O(0,1,0);return new LC({name:"SphericalGaussianBlur",defines:{n:Nt,CUBEUV_TEXEL_WIDTH:1/A,CUBEUV_TEXEL_HEIGHT:1/I,CUBEUV_MAX_MIP:`${g}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:C},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:B}},vertexShader:NM(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform int samples; - uniform float weights[ n ]; - uniform bool latitudinal; - uniform float dTheta; - uniform float mipInt; - uniform vec3 poleAxis; - - #define ENVMAP_TYPE_CUBE_UV - #include - - vec3 getSample( float theta, vec3 axis ) { - - float cosTheta = cos( theta ); - // Rodrigues' axis-angle rotation - vec3 sampleDirection = vOutputDirection * cosTheta - + cross( axis, vOutputDirection ) * sin( theta ) - + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); - - return bilinearCubeUV( envMap, sampleDirection, mipInt ); - - } - - void main() { - - vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); - - if ( all( equal( axis, vec3( 0.0 ) ) ) ) { - - axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); - - } - - axis = normalize( axis ); - - gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); - - for ( int i = 1; i < n; i++ ) { - - if ( i >= samples ) { - - break; - - } - - float theta = dTheta * float( i ); - gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); - gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); - - } - - } - `,blending:ae,depthTest:!1,depthWrite:!1})}function lF(){return new LC({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:NM(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - - #include - - void main() { - - vec3 outputDirection = normalize( vOutputDirection ); - vec2 uv = equirectUv( outputDirection ); - - gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); - - } - `,blending:ae,depthTest:!1,depthWrite:!1})}function cF(){return new LC({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:NM(),fragmentShader:` - - precision mediump float; - precision mediump int; - - uniform float flipEnvMap; - - varying vec3 vOutputDirection; - - uniform samplerCube envMap; - - void main() { - - gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); - - } - `,blending:ae,depthTest:!1,depthWrite:!1})}function NM(){return` - - precision mediump float; - precision mediump int; - - attribute float faceIndex; - - varying vec3 vOutputDirection; - - // RH coordinate system; PMREM face-indexing convention - vec3 getDirection( vec2 uv, float face ) { - - uv = 2.0 * uv - 1.0; - - vec3 direction = vec3( uv, 1.0 ); - - if ( face == 0.0 ) { - - direction = direction.zyx; // ( 1, v, u ) pos x - - } else if ( face == 1.0 ) { - - direction = direction.xzy; - direction.xz *= -1.0; // ( -u, 1, -v ) pos y - - } else if ( face == 2.0 ) { - - direction.x *= -1.0; // ( -u, v, 1 ) pos z - - } else if ( face == 3.0 ) { - - direction = direction.zyx; - direction.xz *= -1.0; // ( -1, v, -u ) neg x - - } else if ( face == 4.0 ) { - - direction = direction.xzy; - direction.xy *= -1.0; // ( -u, -1, v ) neg y - - } else if ( face == 5.0 ) { - - direction.z *= -1.0; // ( u, v, -1 ) neg z - - } - - return direction; - - } - - void main() { - - vOutputDirection = getDirection( uv, faceIndex ); - gl_Position = vec4( position, 1.0 ); - - } - `}function A3(g){let A=new WeakMap,I=null;function C(e){if(e&&e.isTexture){const E=e.mapping,t=E===Xn||E===rr,a=E===qQ||E===dE;if(t||a)if(e.isRenderTargetTexture&&e.needsPMREMUpdate===!0){e.needsPMREMUpdate=!1;let s=A.get(e);return I===null&&(I=new Ju(g)),s=t?I.fromEquirectangular(e,s):I.fromCubemap(e,s),A.set(e,s),s.texture}else{if(A.has(e))return A.get(e).texture;{const s=e.image;if(t&&s&&s.height>0||a&&s&&B(s)){I===null&&(I=new Ju(g));const r=t?I.fromEquirectangular(e):I.fromCubemap(e);return A.set(e,r),e.addEventListener("dispose",i),r.texture}else return null}}}return e}function B(e){let E=0;const t=6;for(let a=0;aA.maxTextureSize&&(K=Math.ceil(U/A.maxTextureSize),U=A.maxTextureSize);const X=new Float32Array(U*K*4*G),wA=new rw(X,U,K,G);wA.type=aC,wA.needsUpdate=!0;const z=P*4;for(let aA=0;aA0)return g;const B=A*I;let i=DF[B];if(i===void 0&&(i=new Float32Array(B),DF[B]=i),A!==0){C.toArray(i,0);for(let Q=1,e=0;Q!==A;++Q)e+=I,g[Q].toArray(i,e)}return i}function vC(g,A){if(g.length!==A.length)return!1;for(let I=0,C=g.length;I":" "} ${e}: ${I[Q]}`)}return C.join(` -`)}function g_(g){const A=Fg.getPrimaries(Fg.workingColorSpace),I=Fg.getPrimaries(g);let C;switch(A===I?C="":A===wr&&I===hr?C="LinearDisplayP3ToLinearSRGB":A===hr&&I===wr&&(C="LinearSRGBToLinearDisplayP3"),g){case mQ:case vr:return[C,"LinearTransferOETF"];case cC:case sw:return[C,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",g),[C,"LinearTransferOETF"]}}function kF(g,A,I){const C=g.getShaderParameter(A,g.COMPILE_STATUS),B=g.getShaderInfoLog(A).trim();if(C&&B==="")return"";const i=/ERROR: 0:(\d+)/.exec(B);if(i){const Q=parseInt(i[1]);return I.toUpperCase()+` - -`+B+` - -`+I_(g.getShaderSource(A),Q)}else return B}function C_(g,A){const I=g_(A);return`vec4 ${g}( vec4 value ) { return ${I[0]}( ${I[1]}( value ) ); }`}function B_(g,A){let I;switch(A){case Oq:I="Linear";break;case _q:I="Reinhard";break;case Zq:I="OptimizedCineon";break;case tM:I="ACESFilmic";break;case Wq:I="AgX";break;case Pq:I="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",A),I="Linear"}return"vec3 "+g+"( vec3 color ) { return "+I+"ToneMapping( color ); }"}function i_(g){return[g.extensionDerivatives||g.envMapCubeUVHeight||g.bumpMap||g.normalMapTangentSpace||g.clearcoatNormalMap||g.flatShading||g.alphaToCoverage||g.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(g.extensionFragDepth||g.logarithmicDepthBuffer)&&g.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",g.extensionDrawBuffers&&g.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(g.extensionShaderTextureLOD||g.envMap||g.transmission)&&g.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Un).join(` -`)}function Q_(g){return[g.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",g.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(Un).join(` -`)}function e_(g){const A=[];for(const I in g){const C=g[I];C!==!1&&A.push("#define "+I+" "+C)}return A.join(` -`)}function E_(g,A){const I={},C=g.getProgramParameter(A,g.ACTIVE_ATTRIBUTES);for(let B=0;B/gm;function qu(g){return g.replace(t_,n_)}const o_=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function n_(g,A){let I=Ig[A];if(I===void 0){const C=o_.get(A);if(C!==void 0)I=Ig[C],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',A,C);else throw new Error("Can not resolve #include <"+A+">")}return qu(I)}const a_=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function pF(g){return g.replace(a_,s_)}function s_(g,A,I,C){let B="";for(let i=parseInt(A);i0&&(c+=` -`),y=[l,"#define SHADER_TYPE "+I.shaderType,"#define SHADER_NAME "+I.shaderName,G].filter(Un).join(` -`),y.length>0&&(y+=` -`)):(c=[UF(I),"#define SHADER_TYPE "+I.shaderType,"#define SHADER_NAME "+I.shaderName,G,I.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",I.batching?"#define USE_BATCHING":"",I.instancing?"#define USE_INSTANCING":"",I.instancingColor?"#define USE_INSTANCING_COLOR":"",I.useFog&&I.fog?"#define USE_FOG":"",I.useFog&&I.fogExp2?"#define FOG_EXP2":"",I.map?"#define USE_MAP":"",I.envMap?"#define USE_ENVMAP":"",I.envMap?"#define "+a:"",I.lightMap?"#define USE_LIGHTMAP":"",I.aoMap?"#define USE_AOMAP":"",I.bumpMap?"#define USE_BUMPMAP":"",I.normalMap?"#define USE_NORMALMAP":"",I.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",I.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",I.displacementMap?"#define USE_DISPLACEMENTMAP":"",I.emissiveMap?"#define USE_EMISSIVEMAP":"",I.anisotropy?"#define USE_ANISOTROPY":"",I.anisotropyMap?"#define USE_ANISOTROPYMAP":"",I.clearcoatMap?"#define USE_CLEARCOATMAP":"",I.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",I.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",I.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",I.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",I.specularMap?"#define USE_SPECULARMAP":"",I.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",I.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",I.roughnessMap?"#define USE_ROUGHNESSMAP":"",I.metalnessMap?"#define USE_METALNESSMAP":"",I.alphaMap?"#define USE_ALPHAMAP":"",I.alphaHash?"#define USE_ALPHAHASH":"",I.transmission?"#define USE_TRANSMISSION":"",I.transmissionMap?"#define USE_TRANSMISSIONMAP":"",I.thicknessMap?"#define USE_THICKNESSMAP":"",I.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",I.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",I.mapUv?"#define MAP_UV "+I.mapUv:"",I.alphaMapUv?"#define ALPHAMAP_UV "+I.alphaMapUv:"",I.lightMapUv?"#define LIGHTMAP_UV "+I.lightMapUv:"",I.aoMapUv?"#define AOMAP_UV "+I.aoMapUv:"",I.emissiveMapUv?"#define EMISSIVEMAP_UV "+I.emissiveMapUv:"",I.bumpMapUv?"#define BUMPMAP_UV "+I.bumpMapUv:"",I.normalMapUv?"#define NORMALMAP_UV "+I.normalMapUv:"",I.displacementMapUv?"#define DISPLACEMENTMAP_UV "+I.displacementMapUv:"",I.metalnessMapUv?"#define METALNESSMAP_UV "+I.metalnessMapUv:"",I.roughnessMapUv?"#define ROUGHNESSMAP_UV "+I.roughnessMapUv:"",I.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+I.anisotropyMapUv:"",I.clearcoatMapUv?"#define CLEARCOATMAP_UV "+I.clearcoatMapUv:"",I.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+I.clearcoatNormalMapUv:"",I.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+I.clearcoatRoughnessMapUv:"",I.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+I.iridescenceMapUv:"",I.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+I.iridescenceThicknessMapUv:"",I.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+I.sheenColorMapUv:"",I.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+I.sheenRoughnessMapUv:"",I.specularMapUv?"#define SPECULARMAP_UV "+I.specularMapUv:"",I.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+I.specularColorMapUv:"",I.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+I.specularIntensityMapUv:"",I.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+I.transmissionMapUv:"",I.thicknessMapUv?"#define THICKNESSMAP_UV "+I.thicknessMapUv:"",I.vertexTangents&&I.flatShading===!1?"#define USE_TANGENT":"",I.vertexColors?"#define USE_COLOR":"",I.vertexAlphas?"#define USE_COLOR_ALPHA":"",I.vertexUv1s?"#define USE_UV1":"",I.vertexUv2s?"#define USE_UV2":"",I.vertexUv3s?"#define USE_UV3":"",I.pointsUvs?"#define USE_POINTS_UV":"",I.flatShading?"#define FLAT_SHADED":"",I.skinning?"#define USE_SKINNING":"",I.morphTargets?"#define USE_MORPHTARGETS":"",I.morphNormals&&I.flatShading===!1?"#define USE_MORPHNORMALS":"",I.morphColors&&I.isWebGL2?"#define USE_MORPHCOLORS":"",I.morphTargetsCount>0&&I.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",I.morphTargetsCount>0&&I.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+I.morphTextureStride:"",I.morphTargetsCount>0&&I.isWebGL2?"#define MORPHTARGETS_COUNT "+I.morphTargetsCount:"",I.doubleSided?"#define DOUBLE_SIDED":"",I.flipSided?"#define FLIP_SIDED":"",I.shadowMapEnabled?"#define USE_SHADOWMAP":"",I.shadowMapEnabled?"#define "+E:"",I.sizeAttenuation?"#define USE_SIZEATTENUATION":"",I.numLightProbes>0?"#define USE_LIGHT_PROBES":"",I.useLegacyLights?"#define LEGACY_LIGHTS":"",I.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",I.logarithmicDepthBuffer&&I.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` -`].filter(Un).join(` -`),y=[l,UF(I),"#define SHADER_TYPE "+I.shaderType,"#define SHADER_NAME "+I.shaderName,G,I.useFog&&I.fog?"#define USE_FOG":"",I.useFog&&I.fogExp2?"#define FOG_EXP2":"",I.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",I.map?"#define USE_MAP":"",I.matcap?"#define USE_MATCAP":"",I.envMap?"#define USE_ENVMAP":"",I.envMap?"#define "+t:"",I.envMap?"#define "+a:"",I.envMap?"#define "+s:"",r?"#define CUBEUV_TEXEL_WIDTH "+r.texelWidth:"",r?"#define CUBEUV_TEXEL_HEIGHT "+r.texelHeight:"",r?"#define CUBEUV_MAX_MIP "+r.maxMip+".0":"",I.lightMap?"#define USE_LIGHTMAP":"",I.aoMap?"#define USE_AOMAP":"",I.bumpMap?"#define USE_BUMPMAP":"",I.normalMap?"#define USE_NORMALMAP":"",I.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",I.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",I.emissiveMap?"#define USE_EMISSIVEMAP":"",I.anisotropy?"#define USE_ANISOTROPY":"",I.anisotropyMap?"#define USE_ANISOTROPYMAP":"",I.clearcoat?"#define USE_CLEARCOAT":"",I.clearcoatMap?"#define USE_CLEARCOATMAP":"",I.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",I.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",I.iridescence?"#define USE_IRIDESCENCE":"",I.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",I.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",I.specularMap?"#define USE_SPECULARMAP":"",I.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",I.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",I.roughnessMap?"#define USE_ROUGHNESSMAP":"",I.metalnessMap?"#define USE_METALNESSMAP":"",I.alphaMap?"#define USE_ALPHAMAP":"",I.alphaTest?"#define USE_ALPHATEST":"",I.alphaHash?"#define USE_ALPHAHASH":"",I.sheen?"#define USE_SHEEN":"",I.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",I.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",I.transmission?"#define USE_TRANSMISSION":"",I.transmissionMap?"#define USE_TRANSMISSIONMAP":"",I.thicknessMap?"#define USE_THICKNESSMAP":"",I.vertexTangents&&I.flatShading===!1?"#define USE_TANGENT":"",I.vertexColors||I.instancingColor?"#define USE_COLOR":"",I.vertexAlphas?"#define USE_COLOR_ALPHA":"",I.vertexUv1s?"#define USE_UV1":"",I.vertexUv2s?"#define USE_UV2":"",I.vertexUv3s?"#define USE_UV3":"",I.pointsUvs?"#define USE_POINTS_UV":"",I.gradientMap?"#define USE_GRADIENTMAP":"",I.flatShading?"#define FLAT_SHADED":"",I.doubleSided?"#define DOUBLE_SIDED":"",I.flipSided?"#define FLIP_SIDED":"",I.shadowMapEnabled?"#define USE_SHADOWMAP":"",I.shadowMapEnabled?"#define "+E:"",I.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",I.numLightProbes>0?"#define USE_LIGHT_PROBES":"",I.useLegacyLights?"#define LEGACY_LIGHTS":"",I.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",I.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",I.logarithmicDepthBuffer&&I.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",I.toneMapping!==fQ?"#define TONE_MAPPING":"",I.toneMapping!==fQ?Ig.tonemapping_pars_fragment:"",I.toneMapping!==fQ?B_("toneMapping",I.toneMapping):"",I.dithering?"#define DITHERING":"",I.opaque?"#define OPAQUE":"",Ig.colorspace_pars_fragment,C_("linearToOutputTexel",I.outputColorSpace),I.useDepthPacking?"#define DEPTH_PACKING "+I.depthPacking:"",` -`].filter(Un).join(` -`)),Q=qu(Q),Q=MF(Q,I),Q=dF(Q,I),e=qu(e),e=MF(e,I),e=dF(e,I),Q=pF(Q),e=pF(e),I.isWebGL2&&I.isRawShaderMaterial!==!0&&(S=`#version 300 es -`,c=[D,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` -`)+` -`+c,y=["precision mediump sampler2DArray;","#define varying in",I.glslVersion===Ru?"":"layout(location = 0) out highp vec4 pc_fragColor;",I.glslVersion===Ru?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` -`)+` -`+y);const k=S+c+Q,f=S+y+e,d=uF(B,B.VERTEX_SHADER,k),N=uF(B,B.FRAGMENT_SHADER,f);B.attachShader(h,d),B.attachShader(h,N),I.index0AttributeName!==void 0?B.bindAttribLocation(h,0,I.index0AttributeName):I.morphTargets===!0&&B.bindAttribLocation(h,0,"position"),B.linkProgram(h);function q(X){if(g.debug.checkShaderErrors){const wA=B.getProgramInfoLog(h).trim(),z=B.getShaderInfoLog(d).trim(),lA=B.getShaderInfoLog(N).trim();let aA=!0,SA=!0;if(B.getProgramParameter(h,B.LINK_STATUS)===!1)if(aA=!1,typeof g.debug.onShaderError=="function")g.debug.onShaderError(B,h,d,N);else{const b=kF(B,d,"vertex"),BA=kF(B,N,"fragment");console.error("THREE.WebGLProgram: Shader Error "+B.getError()+" - VALIDATE_STATUS "+B.getProgramParameter(h,B.VALIDATE_STATUS)+` - -Material Name: `+X.name+` -Material Type: `+X.type+` - -Program Info Log: `+wA+` -`+b+` -`+BA)}else wA!==""?console.warn("THREE.WebGLProgram: Program Info Log:",wA):(z===""||lA==="")&&(SA=!1);SA&&(X.diagnostics={runnable:aA,programLog:wA,vertexShader:{log:z,prefix:c},fragmentShader:{log:lA,prefix:y}})}B.deleteShader(d),B.deleteShader(N),P=new OD(B,h),U=E_(B,h)}let P;this.getUniforms=function(){return P===void 0&&q(this),P};let U;this.getAttributes=function(){return U===void 0&&q(this),U};let K=I.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return K===!1&&(K=B.getProgramParameter(h,$3)),K},this.destroy=function(){C.releaseStatesOfProgram(this),B.deleteProgram(h),this.program=void 0},this.type=I.shaderType,this.name=I.shaderName,this.id=A_++,this.cacheKey=A,this.usedTimes=1,this.program=h,this.vertexShader=d,this.fragmentShader=N,this}let S_=0;class G_{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(A){const I=A.vertexShader,C=A.fragmentShader,B=this._getShaderStage(I),i=this._getShaderStage(C),Q=this._getShaderCacheForMaterial(A);return Q.has(B)===!1&&(Q.add(B),B.usedTimes++),Q.has(i)===!1&&(Q.add(i),i.usedTimes++),this}remove(A){const I=this.materialCache.get(A);for(const C of I)C.usedTimes--,C.usedTimes===0&&this.shaderCache.delete(C.code);return this.materialCache.delete(A),this}getVertexShaderID(A){return this._getShaderStage(A.vertexShader).id}getFragmentShaderID(A){return this._getShaderStage(A.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(A){const I=this.materialCache;let C=I.get(A);return C===void 0&&(C=new Set,I.set(A,C)),C}_getShaderStage(A){const I=this.shaderCache;let C=I.get(A);return C===void 0&&(C=new y_(A),I.set(A,C)),C}}class y_{constructor(A){this.id=S_++,this.code=A,this.usedTimes=0}}function u_(g,A,I,C,B,i,Q){const e=new Ot,E=new G_,t=new Set,a=[],s=B.isWebGL2,r=B.logarithmicDepthBuffer,l=B.vertexTextures;let D=B.precision;const G={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function h(U){return t.add(U),U===0?"uv":`uv${U}`}function c(U,K,X,wA,z){const lA=wA.fog,aA=z.geometry,SA=U.isMeshStandardMaterial?wA.environment:null,b=(U.isMeshStandardMaterial?I:A).get(U.envMap||SA),BA=b&&b.mapping===aa?b.image.height:null,gA=G[U.type];U.precision!==null&&(D=B.getMaxPrecision(U.precision),D!==U.precision&&console.warn("THREE.WebGLProgram.getParameters:",U.precision,"not supported, using",D,"instead."));const hA=aA.morphAttributes.position||aA.morphAttributes.normal||aA.morphAttributes.color,NA=hA!==void 0?hA.length:0;let WA=0;aA.morphAttributes.position!==void 0&&(WA=1),aA.morphAttributes.normal!==void 0&&(WA=2),aA.morphAttributes.color!==void 0&&(WA=3);let j,x,Y,T;if(gA){const sg=gQ[gA];j=sg.vertexShader,x=sg.fragmentShader}else j=U.vertexShader,x=U.fragmentShader,E.update(U),Y=E.getVertexShaderID(U),T=E.getFragmentShaderID(U);const tA=g.getRenderTarget(),dA=z.isInstancedMesh===!0,EA=z.isBatchedMesh===!0,FA=!!U.map,W=!!U.matcap,UA=!!b,eA=!!U.aoMap,DA=!!U.lightMap,GA=!!U.bumpMap,bA=!!U.normalMap,QA=!!U.displacementMap,F=!!U.emissiveMap,m=!!U.metalnessMap,cA=!!U.roughnessMap,ZA=U.anisotropy>0,OA=U.clearcoat>0,YA=U.iridescence>0,eI=U.sheen>0,CI=U.transmission>0,aI=ZA&&!!U.anisotropyMap,SI=OA&&!!U.clearcoatMap,fI=OA&&!!U.clearcoatNormalMap,PA=OA&&!!U.clearcoatRoughnessMap,bI=YA&&!!U.iridescenceMap,LI=YA&&!!U.iridescenceThicknessMap,kI=eI&&!!U.sheenColorMap,tI=eI&&!!U.sheenRoughnessMap,sI=!!U.specularMap,UI=!!U.specularColorMap,JI=!!U.specularIntensityMap,YI=CI&&!!U.transmissionMap,HI=CI&&!!U.thicknessMap,jA=!!U.gradientMap,IA=!!U.alphaMap,AI=U.alphaTest>0,$A=!!U.alphaHash,lI=!!U.extensions;let pI=fQ;U.toneMapped&&(tA===null||tA.isXRRenderTarget===!0)&&(pI=g.toneMapping);const ag={isWebGL2:s,shaderID:gA,shaderType:U.type,shaderName:U.name,vertexShader:j,fragmentShader:x,defines:U.defines,customVertexShaderID:Y,customFragmentShaderID:T,isRawShaderMaterial:U.isRawShaderMaterial===!0,glslVersion:U.glslVersion,precision:D,batching:EA,instancing:dA,instancingColor:dA&&z.instanceColor!==null,supportsVertexTextures:l,outputColorSpace:tA===null?g.outputColorSpace:tA.isXRRenderTarget===!0?tA.texture.colorSpace:mQ,alphaToCoverage:!!U.alphaToCoverage,map:FA,matcap:W,envMap:UA,envMapMode:UA&&b.mapping,envMapCubeUVHeight:BA,aoMap:eA,lightMap:DA,bumpMap:GA,normalMap:bA,displacementMap:l&&QA,emissiveMap:F,normalMapObjectSpace:bA&&U.normalMapType===Em,normalMapTangentSpace:bA&&U.normalMapType===JE,metalnessMap:m,roughnessMap:cA,anisotropy:ZA,anisotropyMap:aI,clearcoat:OA,clearcoatMap:SI,clearcoatNormalMap:fI,clearcoatRoughnessMap:PA,iridescence:YA,iridescenceMap:bI,iridescenceThicknessMap:LI,sheen:eI,sheenColorMap:kI,sheenRoughnessMap:tI,specularMap:sI,specularColorMap:UI,specularIntensityMap:JI,transmission:CI,transmissionMap:YI,thicknessMap:HI,gradientMap:jA,opaque:U.transparent===!1&&U.blending===xt&&U.alphaToCoverage===!1,alphaMap:IA,alphaTest:AI,alphaHash:$A,combine:U.combine,mapUv:FA&&h(U.map.channel),aoMapUv:eA&&h(U.aoMap.channel),lightMapUv:DA&&h(U.lightMap.channel),bumpMapUv:GA&&h(U.bumpMap.channel),normalMapUv:bA&&h(U.normalMap.channel),displacementMapUv:QA&&h(U.displacementMap.channel),emissiveMapUv:F&&h(U.emissiveMap.channel),metalnessMapUv:m&&h(U.metalnessMap.channel),roughnessMapUv:cA&&h(U.roughnessMap.channel),anisotropyMapUv:aI&&h(U.anisotropyMap.channel),clearcoatMapUv:SI&&h(U.clearcoatMap.channel),clearcoatNormalMapUv:fI&&h(U.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:PA&&h(U.clearcoatRoughnessMap.channel),iridescenceMapUv:bI&&h(U.iridescenceMap.channel),iridescenceThicknessMapUv:LI&&h(U.iridescenceThicknessMap.channel),sheenColorMapUv:kI&&h(U.sheenColorMap.channel),sheenRoughnessMapUv:tI&&h(U.sheenRoughnessMap.channel),specularMapUv:sI&&h(U.specularMap.channel),specularColorMapUv:UI&&h(U.specularColorMap.channel),specularIntensityMapUv:JI&&h(U.specularIntensityMap.channel),transmissionMapUv:YI&&h(U.transmissionMap.channel),thicknessMapUv:HI&&h(U.thicknessMap.channel),alphaMapUv:IA&&h(U.alphaMap.channel),vertexTangents:!!aA.attributes.tangent&&(bA||ZA),vertexColors:U.vertexColors,vertexAlphas:U.vertexColors===!0&&!!aA.attributes.color&&aA.attributes.color.itemSize===4,pointsUvs:z.isPoints===!0&&!!aA.attributes.uv&&(FA||IA),fog:!!lA,useFog:U.fog===!0,fogExp2:!!lA&&lA.isFogExp2,flatShading:U.flatShading===!0,sizeAttenuation:U.sizeAttenuation===!0,logarithmicDepthBuffer:r,skinning:z.isSkinnedMesh===!0,morphTargets:aA.morphAttributes.position!==void 0,morphNormals:aA.morphAttributes.normal!==void 0,morphColors:aA.morphAttributes.color!==void 0,morphTargetsCount:NA,morphTextureStride:WA,numDirLights:K.directional.length,numPointLights:K.point.length,numSpotLights:K.spot.length,numSpotLightMaps:K.spotLightMap.length,numRectAreaLights:K.rectArea.length,numHemiLights:K.hemi.length,numDirLightShadows:K.directionalShadowMap.length,numPointLightShadows:K.pointShadowMap.length,numSpotLightShadows:K.spotShadowMap.length,numSpotLightShadowsWithMaps:K.numSpotLightShadowsWithMaps,numLightProbes:K.numLightProbes,numClippingPlanes:Q.numPlanes,numClipIntersection:Q.numIntersection,dithering:U.dithering,shadowMapEnabled:g.shadowMap.enabled&&X.length>0,shadowMapType:g.shadowMap.type,toneMapping:pI,useLegacyLights:g._useLegacyLights,decodeVideoTexture:FA&&U.map.isVideoTexture===!0&&Fg.getTransfer(U.map.colorSpace)===Hg,premultipliedAlpha:U.premultipliedAlpha,doubleSided:U.side===qi,flipSided:U.side===qB,useDepthPacking:U.depthPacking>=0,depthPacking:U.depthPacking||0,index0AttributeName:U.index0AttributeName,extensionDerivatives:lI&&U.extensions.derivatives===!0,extensionFragDepth:lI&&U.extensions.fragDepth===!0,extensionDrawBuffers:lI&&U.extensions.drawBuffers===!0,extensionShaderTextureLOD:lI&&U.extensions.shaderTextureLOD===!0,extensionClipCullDistance:lI&&U.extensions.clipCullDistance===!0&&C.has("WEBGL_clip_cull_distance"),extensionMultiDraw:lI&&U.extensions.multiDraw===!0&&C.has("WEBGL_multi_draw"),rendererExtensionFragDepth:s||C.has("EXT_frag_depth"),rendererExtensionDrawBuffers:s||C.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:s||C.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:C.has("KHR_parallel_shader_compile"),customProgramCacheKey:U.customProgramCacheKey()};return ag.vertexUv1s=t.has(1),ag.vertexUv2s=t.has(2),ag.vertexUv3s=t.has(3),t.clear(),ag}function y(U){const K=[];if(U.shaderID?K.push(U.shaderID):(K.push(U.customVertexShaderID),K.push(U.customFragmentShaderID)),U.defines!==void 0)for(const X in U.defines)K.push(X),K.push(U.defines[X]);return U.isRawShaderMaterial===!1&&(S(K,U),k(K,U),K.push(g.outputColorSpace)),K.push(U.customProgramCacheKey),K.join()}function S(U,K){U.push(K.precision),U.push(K.outputColorSpace),U.push(K.envMapMode),U.push(K.envMapCubeUVHeight),U.push(K.mapUv),U.push(K.alphaMapUv),U.push(K.lightMapUv),U.push(K.aoMapUv),U.push(K.bumpMapUv),U.push(K.normalMapUv),U.push(K.displacementMapUv),U.push(K.emissiveMapUv),U.push(K.metalnessMapUv),U.push(K.roughnessMapUv),U.push(K.anisotropyMapUv),U.push(K.clearcoatMapUv),U.push(K.clearcoatNormalMapUv),U.push(K.clearcoatRoughnessMapUv),U.push(K.iridescenceMapUv),U.push(K.iridescenceThicknessMapUv),U.push(K.sheenColorMapUv),U.push(K.sheenRoughnessMapUv),U.push(K.specularMapUv),U.push(K.specularColorMapUv),U.push(K.specularIntensityMapUv),U.push(K.transmissionMapUv),U.push(K.thicknessMapUv),U.push(K.combine),U.push(K.fogExp2),U.push(K.sizeAttenuation),U.push(K.morphTargetsCount),U.push(K.morphAttributeCount),U.push(K.numDirLights),U.push(K.numPointLights),U.push(K.numSpotLights),U.push(K.numSpotLightMaps),U.push(K.numHemiLights),U.push(K.numRectAreaLights),U.push(K.numDirLightShadows),U.push(K.numPointLightShadows),U.push(K.numSpotLightShadows),U.push(K.numSpotLightShadowsWithMaps),U.push(K.numLightProbes),U.push(K.shadowMapType),U.push(K.toneMapping),U.push(K.numClippingPlanes),U.push(K.numClipIntersection),U.push(K.depthPacking)}function k(U,K){e.disableAll(),K.isWebGL2&&e.enable(0),K.supportsVertexTextures&&e.enable(1),K.instancing&&e.enable(2),K.instancingColor&&e.enable(3),K.matcap&&e.enable(4),K.envMap&&e.enable(5),K.normalMapObjectSpace&&e.enable(6),K.normalMapTangentSpace&&e.enable(7),K.clearcoat&&e.enable(8),K.iridescence&&e.enable(9),K.alphaTest&&e.enable(10),K.vertexColors&&e.enable(11),K.vertexAlphas&&e.enable(12),K.vertexUv1s&&e.enable(13),K.vertexUv2s&&e.enable(14),K.vertexUv3s&&e.enable(15),K.vertexTangents&&e.enable(16),K.anisotropy&&e.enable(17),K.alphaHash&&e.enable(18),K.batching&&e.enable(19),U.push(e.mask),e.disableAll(),K.fog&&e.enable(0),K.useFog&&e.enable(1),K.flatShading&&e.enable(2),K.logarithmicDepthBuffer&&e.enable(3),K.skinning&&e.enable(4),K.morphTargets&&e.enable(5),K.morphNormals&&e.enable(6),K.morphColors&&e.enable(7),K.premultipliedAlpha&&e.enable(8),K.shadowMapEnabled&&e.enable(9),K.useLegacyLights&&e.enable(10),K.doubleSided&&e.enable(11),K.flipSided&&e.enable(12),K.useDepthPacking&&e.enable(13),K.dithering&&e.enable(14),K.transmission&&e.enable(15),K.sheen&&e.enable(16),K.opaque&&e.enable(17),K.pointsUvs&&e.enable(18),K.decodeVideoTexture&&e.enable(19),K.alphaToCoverage&&e.enable(20),U.push(e.mask)}function f(U){const K=G[U.type];let X;if(K){const wA=gQ[K];X=pM.clone(wA.uniforms)}else X=U.uniforms;return X}function d(U,K){let X;for(let wA=0,z=a.length;wA0?C.push(c):l.transparent===!0?B.push(c):I.push(c)}function E(s,r,l,D,G,h){const c=Q(s,r,l,D,G,h);l.transmission>0?C.unshift(c):l.transparent===!0?B.unshift(c):I.unshift(c)}function t(s,r){I.length>1&&I.sort(s||M_),C.length>1&&C.sort(r||NF),B.length>1&&B.sort(r||NF)}function a(){for(let s=A,r=g.length;s=i.length?(Q=new FF,i.push(Q)):Q=i[B],Q}function I(){g=new WeakMap}return{get:A,dispose:I}}function p_(){const g={};return{get:function(A){if(g[A.id]!==void 0)return g[A.id];let I;switch(A.type){case"DirectionalLight":I={direction:new O,color:new QI};break;case"SpotLight":I={position:new O,direction:new O,color:new QI,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":I={position:new O,color:new QI,distance:0,decay:0};break;case"HemisphereLight":I={direction:new O,skyColor:new QI,groundColor:new QI};break;case"RectAreaLight":I={color:new QI,position:new O,halfWidth:new O,halfHeight:new O};break}return g[A.id]=I,I}}}function U_(){const g={};return{get:function(A){if(g[A.id]!==void 0)return g[A.id];let I;switch(A.type){case"DirectionalLight":I={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new qA};break;case"SpotLight":I={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new qA};break;case"PointLight":I={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new qA,shadowCameraNear:1,shadowCameraFar:1e3};break}return g[A.id]=I,I}}}let N_=0;function F_(g,A){return(A.castShadow?2:0)-(g.castShadow?2:0)+(A.map?1:0)-(g.map?1:0)}function f_(g,A){const I=new p_,C=U_(),B={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let a=0;a<9;a++)B.probe.push(new O);const i=new O,Q=new dI,e=new dI;function E(a,s){let r=0,l=0,D=0;for(let X=0;X<9;X++)B.probe[X].set(0,0,0);let G=0,h=0,c=0,y=0,S=0,k=0,f=0,d=0,N=0,q=0,P=0;a.sort(F_);const U=s===!0?Math.PI:1;for(let X=0,wA=a.length;X0&&(A.isWebGL2?g.has("OES_texture_float_linear")===!0?(B.rectAreaLTC1=oI.LTC_FLOAT_1,B.rectAreaLTC2=oI.LTC_FLOAT_2):(B.rectAreaLTC1=oI.LTC_HALF_1,B.rectAreaLTC2=oI.LTC_HALF_2):g.has("OES_texture_float_linear")===!0?(B.rectAreaLTC1=oI.LTC_FLOAT_1,B.rectAreaLTC2=oI.LTC_FLOAT_2):g.has("OES_texture_half_float_linear")===!0?(B.rectAreaLTC1=oI.LTC_HALF_1,B.rectAreaLTC2=oI.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),B.ambient[0]=r,B.ambient[1]=l,B.ambient[2]=D;const K=B.hash;(K.directionalLength!==G||K.pointLength!==h||K.spotLength!==c||K.rectAreaLength!==y||K.hemiLength!==S||K.numDirectionalShadows!==k||K.numPointShadows!==f||K.numSpotShadows!==d||K.numSpotMaps!==N||K.numLightProbes!==P)&&(B.directional.length=G,B.spot.length=c,B.rectArea.length=y,B.point.length=h,B.hemi.length=S,B.directionalShadow.length=k,B.directionalShadowMap.length=k,B.pointShadow.length=f,B.pointShadowMap.length=f,B.spotShadow.length=d,B.spotShadowMap.length=d,B.directionalShadowMatrix.length=k,B.pointShadowMatrix.length=f,B.spotLightMatrix.length=d+N-q,B.spotLightMap.length=N,B.numSpotLightShadowsWithMaps=q,B.numLightProbes=P,K.directionalLength=G,K.pointLength=h,K.spotLength=c,K.rectAreaLength=y,K.hemiLength=S,K.numDirectionalShadows=k,K.numPointShadows=f,K.numSpotShadows=d,K.numSpotMaps=N,K.numLightProbes=P,B.version=N_++)}function t(a,s){let r=0,l=0,D=0,G=0,h=0;const c=s.matrixWorldInverse;for(let y=0,S=a.length;y=e.length?(E=new fF(g,A),e.push(E)):E=e[Q],E}function B(){I=new WeakMap}return{get:C,dispose:B}}class Dw extends hC{constructor(A){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=em,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(A)}copy(A){return super.copy(A),this.depthPacking=A.depthPacking,this.map=A.map,this.alphaMap=A.alphaMap,this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this}}class hw extends hC{constructor(A){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(A)}copy(A){return super.copy(A),this.map=A.map,this.alphaMap=A.alphaMap,this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this}}const K_=`void main() { - gl_Position = vec4( position, 1.0 ); -}`,J_=`uniform sampler2D shadow_pass; -uniform vec2 resolution; -uniform float radius; -#include -void main() { - const float samples = float( VSM_SAMPLES ); - float mean = 0.0; - float squared_mean = 0.0; - float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); - float uvStart = samples <= 1.0 ? 0.0 : - 1.0; - for ( float i = 0.0; i < samples; i ++ ) { - float uvOffset = uvStart + i * uvStride; - #ifdef HORIZONTAL_PASS - vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); - mean += distribution.x; - squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; - #else - float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); - mean += depth; - squared_mean += depth * depth; - #endif - } - mean = mean / samples; - squared_mean = squared_mean / samples; - float std_dev = sqrt( squared_mean - mean * mean ); - gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function q_(g,A,I){let C=new _r;const B=new qA,i=new qA,Q=new Sg,e=new Dw({depthPacking:SM}),E=new hw,t={},a=I.maxTextureSize,s={[si]:qB,[qB]:si,[qi]:qi},r=new LC({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new qA},radius:{value:4}},vertexShader:K_,fragmentShader:J_}),l=r.clone();l.defines.HORIZONTAL_PASS=1;const D=new WI;D.setAttribute("position",new Ag(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const G=new lg(D,r),h=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=tw;let c=this.type;this.render=function(d,N,q){if(h.enabled===!1||h.autoUpdate===!1&&h.needsUpdate===!1||d.length===0)return;const P=g.getRenderTarget(),U=g.getActiveCubeFace(),K=g.getActiveMipmapLevel(),X=g.state;X.setBlending(ae),X.buffers.color.setClear(1,1,1,1),X.buffers.depth.setTest(!0),X.setScissorTest(!1);const wA=c!==zi&&this.type===zi,z=c===zi&&this.type!==zi;for(let lA=0,aA=d.length;lAa||B.y>a)&&(B.x>a&&(i.x=Math.floor(a/BA.x),B.x=i.x*BA.x,b.mapSize.x=i.x),B.y>a&&(i.y=Math.floor(a/BA.y),B.y=i.y*BA.y,b.mapSize.y=i.y)),b.map===null||wA===!0||z===!0){const hA=this.type!==zi?{minFilter:tg,magFilter:tg}:{};b.map!==null&&b.map.dispose(),b.map=new MC(B.x,B.y,hA),b.map.texture.name=SA.name+".shadowMap",b.camera.updateProjectionMatrix()}g.setRenderTarget(b.map),g.clear();const gA=b.getViewportCount();for(let hA=0;hA0||N.map&&N.alphaTest>0){const X=U.uuid,wA=N.uuid;let z=t[X];z===void 0&&(z={},t[X]=z);let lA=z[wA];lA===void 0&&(lA=U.clone(),z[wA]=lA,N.addEventListener("dispose",f)),U=lA}if(U.visible=N.visible,U.wireframe=N.wireframe,P===zi?U.side=N.shadowSide!==null?N.shadowSide:N.side:U.side=N.shadowSide!==null?N.shadowSide:s[N.side],U.alphaMap=N.alphaMap,U.alphaTest=N.alphaTest,U.map=N.map,U.clipShadows=N.clipShadows,U.clippingPlanes=N.clippingPlanes,U.clipIntersection=N.clipIntersection,U.displacementMap=N.displacementMap,U.displacementScale=N.displacementScale,U.displacementBias=N.displacementBias,U.wireframeLinewidth=N.wireframeLinewidth,U.linewidth=N.linewidth,q.isPointLight===!0&&U.isMeshDistanceMaterial===!0){const X=g.properties.get(U);X.light=q}return U}function k(d,N,q,P,U){if(d.visible===!1)return;if(d.layers.test(N.layers)&&(d.isMesh||d.isLine||d.isPoints)&&(d.castShadow||d.receiveShadow&&U===zi)&&(!d.frustumCulled||C.intersectsObject(d))){d.modelViewMatrix.multiplyMatrices(q.matrixWorldInverse,d.matrixWorld);const wA=A.update(d),z=d.material;if(Array.isArray(z)){const lA=wA.groups;for(let aA=0,SA=lA.length;aA=1):gA.indexOf("OpenGL ES")!==-1&&(BA=parseFloat(/^OpenGL ES (\d)/.exec(gA)[1]),b=BA>=2);let hA=null,NA={};const WA=g.getParameter(g.SCISSOR_BOX),j=g.getParameter(g.VIEWPORT),x=new Sg().fromArray(WA),Y=new Sg().fromArray(j);function T(IA,AI,$A,lI){const pI=new Uint8Array(4),ag=g.createTexture();g.bindTexture(IA,ag),g.texParameteri(IA,g.TEXTURE_MIN_FILTER,g.NEAREST),g.texParameteri(IA,g.TEXTURE_MAG_FILTER,g.NEAREST);for(let sg=0;sg<$A;sg++)C&&(IA===g.TEXTURE_3D||IA===g.TEXTURE_2D_ARRAY)?g.texImage3D(AI,0,g.RGBA,1,1,lI,0,g.RGBA,g.UNSIGNED_BYTE,pI):g.texImage2D(AI+sg,0,g.RGBA,1,1,0,g.RGBA,g.UNSIGNED_BYTE,pI);return ag}const tA={};tA[g.TEXTURE_2D]=T(g.TEXTURE_2D,g.TEXTURE_2D,1),tA[g.TEXTURE_CUBE_MAP]=T(g.TEXTURE_CUBE_MAP,g.TEXTURE_CUBE_MAP_POSITIVE_X,6),C&&(tA[g.TEXTURE_2D_ARRAY]=T(g.TEXTURE_2D_ARRAY,g.TEXTURE_2D_ARRAY,1,1),tA[g.TEXTURE_3D]=T(g.TEXTURE_3D,g.TEXTURE_3D,1,1)),e.setClear(0,0,0,1),E.setClear(1),t.setClear(0),dA(g.DEPTH_TEST),E.setFunc(sr),QA(!1),F($0),dA(g.CULL_FACE),GA(ae);function dA(IA){r[IA]!==!0&&(g.enable(IA),r[IA]=!0)}function EA(IA){r[IA]!==!1&&(g.disable(IA),r[IA]=!1)}function FA(IA,AI){return l[IA]!==AI?(g.bindFramebuffer(IA,AI),l[IA]=AI,C&&(IA===g.DRAW_FRAMEBUFFER&&(l[g.FRAMEBUFFER]=AI),IA===g.FRAMEBUFFER&&(l[g.DRAW_FRAMEBUFFER]=AI)),!0):!1}function W(IA,AI){let $A=G,lI=!1;if(IA)if($A=D.get(AI),$A===void 0&&($A=[],D.set(AI,$A)),IA.isWebGLMultipleRenderTargets){const pI=IA.texture;if($A.length!==pI.length||$A[0]!==g.COLOR_ATTACHMENT0){for(let ag=0,sg=pI.length;ag"u"?!1:/OculusBrowser/g.test(navigator.userAgent),a=new WeakMap;let s;const r=new WeakMap;let l=!1;try{l=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function D(F,m){return l?new OffscreenCanvas(F,m):yr("canvas")}function G(F,m,cA,ZA){let OA=1;if((F.width>ZA||F.height>ZA)&&(OA=ZA/Math.max(F.width,F.height)),OA<1||m===!0)if(typeof HTMLImageElement<"u"&&F instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&F instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&F instanceof ImageBitmap){const YA=m?Uh:Math.floor,eI=YA(OA*F.width),CI=YA(OA*F.height);s===void 0&&(s=D(eI,CI));const aI=cA?D(eI,CI):s;return aI.width=eI,aI.height=CI,aI.getContext("2d").drawImage(F,0,0,eI,CI),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+F.width+"x"+F.height+") to ("+eI+"x"+CI+")."),aI}else return"data"in F&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+F.width+"x"+F.height+")."),F;return F}function h(F){return Ku(F.width)&&Ku(F.height)}function c(F){return e?!1:F.wrapS!==CB||F.wrapT!==CB||F.minFilter!==tg&&F.minFilter!==wg}function y(F,m){return F.generateMipmaps&&m&&F.minFilter!==tg&&F.minFilter!==wg}function S(F){g.generateMipmap(F)}function k(F,m,cA,ZA,OA=!1){if(e===!1)return m;if(F!==null){if(g[F]!==void 0)return g[F];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+F+"'")}let YA=m;if(m===g.RED&&(cA===g.FLOAT&&(YA=g.R32F),cA===g.HALF_FLOAT&&(YA=g.R16F),cA===g.UNSIGNED_BYTE&&(YA=g.R8)),m===g.RED_INTEGER&&(cA===g.UNSIGNED_BYTE&&(YA=g.R8UI),cA===g.UNSIGNED_SHORT&&(YA=g.R16UI),cA===g.UNSIGNED_INT&&(YA=g.R32UI),cA===g.BYTE&&(YA=g.R8I),cA===g.SHORT&&(YA=g.R16I),cA===g.INT&&(YA=g.R32I)),m===g.RG&&(cA===g.FLOAT&&(YA=g.RG32F),cA===g.HALF_FLOAT&&(YA=g.RG16F),cA===g.UNSIGNED_BYTE&&(YA=g.RG8)),m===g.RGBA){const eI=OA?Dr:Fg.getTransfer(ZA);cA===g.FLOAT&&(YA=g.RGBA32F),cA===g.HALF_FLOAT&&(YA=g.RGBA16F),cA===g.UNSIGNED_BYTE&&(YA=eI===Hg?g.SRGB8_ALPHA8:g.RGBA8),cA===g.UNSIGNED_SHORT_4_4_4_4&&(YA=g.RGBA4),cA===g.UNSIGNED_SHORT_5_5_5_1&&(YA=g.RGB5_A1)}return(YA===g.R16F||YA===g.R32F||YA===g.RG16F||YA===g.RG32F||YA===g.RGBA16F||YA===g.RGBA32F)&&A.get("EXT_color_buffer_float"),YA}function f(F,m,cA){return y(F,cA)===!0||F.isFramebufferTexture&&F.minFilter!==tg&&F.minFilter!==wg?Math.log2(Math.max(m.width,m.height))+1:F.mipmaps!==void 0&&F.mipmaps.length>0?F.mipmaps.length:F.isCompressedTexture&&Array.isArray(F.image)?m.mipmaps.length:1}function d(F){return F===tg||F===lr||F===IE?g.NEAREST:g.LINEAR}function N(F){const m=F.target;m.removeEventListener("dispose",N),P(m),m.isVideoTexture&&a.delete(m)}function q(F){const m=F.target;m.removeEventListener("dispose",q),K(m)}function P(F){const m=C.get(F);if(m.__webglInit===void 0)return;const cA=F.source,ZA=r.get(cA);if(ZA){const OA=ZA[m.__cacheKey];OA.usedTimes--,OA.usedTimes===0&&U(F),Object.keys(ZA).length===0&&r.delete(cA)}C.remove(F)}function U(F){const m=C.get(F);g.deleteTexture(m.__webglTexture);const cA=F.source,ZA=r.get(cA);delete ZA[m.__cacheKey],Q.memory.textures--}function K(F){const m=F.texture,cA=C.get(F),ZA=C.get(m);if(ZA.__webglTexture!==void 0&&(g.deleteTexture(ZA.__webglTexture),Q.memory.textures--),F.depthTexture&&F.depthTexture.dispose(),F.isWebGLCubeRenderTarget)for(let OA=0;OA<6;OA++){if(Array.isArray(cA.__webglFramebuffer[OA]))for(let YA=0;YA=B.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+F+" texture units while this GPU supports only "+B.maxTextures),X+=1,F}function lA(F){const m=[];return m.push(F.wrapS),m.push(F.wrapT),m.push(F.wrapR||0),m.push(F.magFilter),m.push(F.minFilter),m.push(F.anisotropy),m.push(F.internalFormat),m.push(F.format),m.push(F.type),m.push(F.generateMipmaps),m.push(F.premultiplyAlpha),m.push(F.flipY),m.push(F.unpackAlignment),m.push(F.colorSpace),m.join()}function aA(F,m){const cA=C.get(F);if(F.isVideoTexture&&bA(F),F.isRenderTargetTexture===!1&&F.version>0&&cA.__version!==F.version){const ZA=F.image;if(ZA===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(ZA.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{x(cA,F,m);return}}I.bindTexture(g.TEXTURE_2D,cA.__webglTexture,g.TEXTURE0+m)}function SA(F,m){const cA=C.get(F);if(F.version>0&&cA.__version!==F.version){x(cA,F,m);return}I.bindTexture(g.TEXTURE_2D_ARRAY,cA.__webglTexture,g.TEXTURE0+m)}function b(F,m){const cA=C.get(F);if(F.version>0&&cA.__version!==F.version){x(cA,F,m);return}I.bindTexture(g.TEXTURE_3D,cA.__webglTexture,g.TEXTURE0+m)}function BA(F,m){const cA=C.get(F);if(F.version>0&&cA.__version!==F.version){Y(cA,F,m);return}I.bindTexture(g.TEXTURE_CUBE_MAP,cA.__webglTexture,g.TEXTURE0+m)}const gA={[pE]:g.REPEAT,[CB]:g.CLAMP_TO_EDGE,[zn]:g.MIRRORED_REPEAT},hA={[tg]:g.NEAREST,[lr]:g.NEAREST_MIPMAP_NEAREST,[IE]:g.NEAREST_MIPMAP_LINEAR,[wg]:g.LINEAR,[Ln]:g.LINEAR_MIPMAP_NEAREST,[Ei]:g.LINEAR_MIPMAP_LINEAR},NA={[tm]:g.NEVER,[lm]:g.ALWAYS,[om]:g.LESS,[GM]:g.LEQUAL,[nm]:g.EQUAL,[rm]:g.GEQUAL,[am]:g.GREATER,[sm]:g.NOTEQUAL};function WA(F,m,cA){if(m.type===aC&&A.has("OES_texture_float_linear")===!1&&(m.magFilter===wg||m.magFilter===Ln||m.magFilter===IE||m.magFilter===Ei||m.minFilter===wg||m.minFilter===Ln||m.minFilter===IE||m.minFilter===Ei)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),cA?(g.texParameteri(F,g.TEXTURE_WRAP_S,gA[m.wrapS]),g.texParameteri(F,g.TEXTURE_WRAP_T,gA[m.wrapT]),(F===g.TEXTURE_3D||F===g.TEXTURE_2D_ARRAY)&&g.texParameteri(F,g.TEXTURE_WRAP_R,gA[m.wrapR]),g.texParameteri(F,g.TEXTURE_MAG_FILTER,hA[m.magFilter]),g.texParameteri(F,g.TEXTURE_MIN_FILTER,hA[m.minFilter])):(g.texParameteri(F,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(F,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),(F===g.TEXTURE_3D||F===g.TEXTURE_2D_ARRAY)&&g.texParameteri(F,g.TEXTURE_WRAP_R,g.CLAMP_TO_EDGE),(m.wrapS!==CB||m.wrapT!==CB)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),g.texParameteri(F,g.TEXTURE_MAG_FILTER,d(m.magFilter)),g.texParameteri(F,g.TEXTURE_MIN_FILTER,d(m.minFilter)),m.minFilter!==tg&&m.minFilter!==wg&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),m.compareFunction&&(g.texParameteri(F,g.TEXTURE_COMPARE_MODE,g.COMPARE_REF_TO_TEXTURE),g.texParameteri(F,g.TEXTURE_COMPARE_FUNC,NA[m.compareFunction])),A.has("EXT_texture_filter_anisotropic")===!0){const ZA=A.get("EXT_texture_filter_anisotropic");if(m.magFilter===tg||m.minFilter!==IE&&m.minFilter!==Ei||m.type===aC&&A.has("OES_texture_float_linear")===!1||e===!1&&m.type===BB&&A.has("OES_texture_half_float_linear")===!1)return;(m.anisotropy>1||C.get(m).__currentAnisotropy)&&(g.texParameterf(F,ZA.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(m.anisotropy,B.getMaxAnisotropy())),C.get(m).__currentAnisotropy=m.anisotropy)}}function j(F,m){let cA=!1;F.__webglInit===void 0&&(F.__webglInit=!0,m.addEventListener("dispose",N));const ZA=m.source;let OA=r.get(ZA);OA===void 0&&(OA={},r.set(ZA,OA));const YA=lA(m);if(YA!==F.__cacheKey){OA[YA]===void 0&&(OA[YA]={texture:g.createTexture(),usedTimes:0},Q.memory.textures++,cA=!0),OA[YA].usedTimes++;const eI=OA[F.__cacheKey];eI!==void 0&&(OA[F.__cacheKey].usedTimes--,eI.usedTimes===0&&U(m)),F.__cacheKey=YA,F.__webglTexture=OA[YA].texture}return cA}function x(F,m,cA){let ZA=g.TEXTURE_2D;(m.isDataArrayTexture||m.isCompressedArrayTexture)&&(ZA=g.TEXTURE_2D_ARRAY),m.isData3DTexture&&(ZA=g.TEXTURE_3D);const OA=j(F,m),YA=m.source;I.bindTexture(ZA,F.__webglTexture,g.TEXTURE0+cA);const eI=C.get(YA);if(YA.version!==eI.__version||OA===!0){I.activeTexture(g.TEXTURE0+cA);const CI=Fg.getPrimaries(Fg.workingColorSpace),aI=m.colorSpace===Qi?null:Fg.getPrimaries(m.colorSpace),SI=m.colorSpace===Qi||CI===aI?g.NONE:g.BROWSER_DEFAULT_WEBGL;g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,m.flipY),g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m.premultiplyAlpha),g.pixelStorei(g.UNPACK_ALIGNMENT,m.unpackAlignment),g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,SI);const fI=c(m)&&h(m.image)===!1;let PA=G(m.image,fI,!1,B.maxTextureSize);PA=QA(m,PA);const bI=h(PA)||e,LI=i.convert(m.format,m.colorSpace);let kI=i.convert(m.type),tI=k(m.internalFormat,LI,kI,m.colorSpace,m.isVideoTexture);WA(ZA,m,bI);let sI;const UI=m.mipmaps,JI=e&&m.isVideoTexture!==!0&&tI!==cM,YI=eI.__version===void 0||OA===!0,HI=YA.dataReady,jA=f(m,PA,bI);if(m.isDepthTexture)tI=g.DEPTH_COMPONENT,e?m.type===aC?tI=g.DEPTH_COMPONENT32F:m.type===ee?tI=g.DEPTH_COMPONENT24:m.type===lE?tI=g.DEPTH24_STENCIL8:tI=g.DEPTH_COMPONENT16:m.type===aC&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),m.format===cE&&tI===g.DEPTH_COMPONENT&&m.type!==nw&&m.type!==ee&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),m.type=ee,kI=i.convert(m.type)),m.format===Xt&&tI===g.DEPTH_COMPONENT&&(tI=g.DEPTH_STENCIL,m.type!==lE&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),m.type=lE,kI=i.convert(m.type))),YI&&(JI?I.texStorage2D(g.TEXTURE_2D,1,tI,PA.width,PA.height):I.texImage2D(g.TEXTURE_2D,0,tI,PA.width,PA.height,0,LI,kI,null));else if(m.isDataTexture)if(UI.length>0&&bI){JI&&YI&&I.texStorage2D(g.TEXTURE_2D,jA,tI,UI[0].width,UI[0].height);for(let IA=0,AI=UI.length;IA>=1,AI>>=1}}else if(UI.length>0&&bI){JI&&YI&&I.texStorage2D(g.TEXTURE_2D,jA,tI,UI[0].width,UI[0].height);for(let IA=0,AI=UI.length;IA0&&HI++,I.texStorage2D(g.TEXTURE_CUBE_MAP,HI,sI,PA[0].width,PA[0].height));for(let IA=0;IA<6;IA++)if(fI){UI?YI&&I.texSubImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_X+IA,0,0,0,PA[IA].width,PA[IA].height,kI,tI,PA[IA].data):I.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_X+IA,0,sI,PA[IA].width,PA[IA].height,0,kI,tI,PA[IA].data);for(let AI=0;AI>YA),PA=Math.max(1,m.height>>YA);OA===g.TEXTURE_3D||OA===g.TEXTURE_2D_ARRAY?I.texImage3D(OA,YA,aI,fI,PA,m.depth,0,eI,CI,null):I.texImage2D(OA,YA,aI,fI,PA,0,eI,CI,null)}I.bindFramebuffer(g.FRAMEBUFFER,F),GA(m)?E.framebufferTexture2DMultisampleEXT(g.FRAMEBUFFER,ZA,OA,C.get(cA).__webglTexture,0,DA(m)):(OA===g.TEXTURE_2D||OA>=g.TEXTURE_CUBE_MAP_POSITIVE_X&&OA<=g.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&g.framebufferTexture2D(g.FRAMEBUFFER,ZA,OA,C.get(cA).__webglTexture,YA),I.bindFramebuffer(g.FRAMEBUFFER,null)}function tA(F,m,cA){if(g.bindRenderbuffer(g.RENDERBUFFER,F),m.depthBuffer&&!m.stencilBuffer){let ZA=e===!0?g.DEPTH_COMPONENT24:g.DEPTH_COMPONENT16;if(cA||GA(m)){const OA=m.depthTexture;OA&&OA.isDepthTexture&&(OA.type===aC?ZA=g.DEPTH_COMPONENT32F:OA.type===ee&&(ZA=g.DEPTH_COMPONENT24));const YA=DA(m);GA(m)?E.renderbufferStorageMultisampleEXT(g.RENDERBUFFER,YA,ZA,m.width,m.height):g.renderbufferStorageMultisample(g.RENDERBUFFER,YA,ZA,m.width,m.height)}else g.renderbufferStorage(g.RENDERBUFFER,ZA,m.width,m.height);g.framebufferRenderbuffer(g.FRAMEBUFFER,g.DEPTH_ATTACHMENT,g.RENDERBUFFER,F)}else if(m.depthBuffer&&m.stencilBuffer){const ZA=DA(m);cA&&GA(m)===!1?g.renderbufferStorageMultisample(g.RENDERBUFFER,ZA,g.DEPTH24_STENCIL8,m.width,m.height):GA(m)?E.renderbufferStorageMultisampleEXT(g.RENDERBUFFER,ZA,g.DEPTH24_STENCIL8,m.width,m.height):g.renderbufferStorage(g.RENDERBUFFER,g.DEPTH_STENCIL,m.width,m.height),g.framebufferRenderbuffer(g.FRAMEBUFFER,g.DEPTH_STENCIL_ATTACHMENT,g.RENDERBUFFER,F)}else{const ZA=m.isWebGLMultipleRenderTargets===!0?m.texture:[m.texture];for(let OA=0;OA0){cA.__webglFramebuffer[CI]=[];for(let aI=0;aI0){cA.__webglFramebuffer=[];for(let CI=0;CI0&&GA(F)===!1){const CI=YA?m:[m];cA.__webglMultisampledFramebuffer=g.createFramebuffer(),cA.__webglColorRenderbuffer=[],I.bindFramebuffer(g.FRAMEBUFFER,cA.__webglMultisampledFramebuffer);for(let aI=0;aI0)for(let aI=0;aI0)for(let aI=0;aI0&&GA(F)===!1){const m=F.isWebGLMultipleRenderTargets?F.texture:[F.texture],cA=F.width,ZA=F.height;let OA=g.COLOR_BUFFER_BIT;const YA=[],eI=F.stencilBuffer?g.DEPTH_STENCIL_ATTACHMENT:g.DEPTH_ATTACHMENT,CI=C.get(F),aI=F.isWebGLMultipleRenderTargets===!0;if(aI)for(let SI=0;SI0&&A.has("WEBGL_multisampled_render_to_texture")===!0&&m.__useRenderToTexture!==!1}function bA(F){const m=Q.render.frame;a.get(F)!==m&&(a.set(F,m),F.update())}function QA(F,m){const cA=F.colorSpace,ZA=F.format,OA=F.type;return F.isCompressedTexture===!0||F.isVideoTexture===!0||F.format===ph||cA!==mQ&&cA!==Qi&&(Fg.getTransfer(cA)===Hg?e===!1?A.has("EXT_sRGB")===!0&&ZA===SB?(F.format=ph,F.minFilter=wg,F.generateMipmaps=!1):m=uM.sRGBToLinear(m):(ZA!==SB||OA!==RQ)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",cA)),m}this.allocateTextureUnit=z,this.resetTextureUnits=wA,this.setTexture2D=aA,this.setTexture2DArray=SA,this.setTexture3D=b,this.setTextureCube=BA,this.rebindTextures=FA,this.setupRenderTarget=W,this.updateRenderTargetMipmap=UA,this.updateMultisampleRenderTarget=eA,this.setupDepthRenderbuffer=EA,this.setupFrameBufferTexture=T,this.useMultisampledRTT=GA}function Um(g,A,I){const C=I.isWebGL2;function B(i,Q=Qi){let e;const E=Fg.getTransfer(Q);if(i===RQ)return g.UNSIGNED_BYTE;if(i===nM)return g.UNSIGNED_SHORT_4_4_4_4;if(i===aM)return g.UNSIGNED_SHORT_5_5_5_1;if(i===Vq)return g.BYTE;if(i===Xq)return g.SHORT;if(i===nw)return g.UNSIGNED_SHORT;if(i===oM)return g.INT;if(i===ee)return g.UNSIGNED_INT;if(i===aC)return g.FLOAT;if(i===BB)return C?g.HALF_FLOAT:(e=A.get("OES_texture_half_float"),e!==null?e.HALF_FLOAT_OES:null);if(i===zq)return g.ALPHA;if(i===SB)return g.RGBA;if(i===$q)return g.LUMINANCE;if(i===Am)return g.LUMINANCE_ALPHA;if(i===cE)return g.DEPTH_COMPONENT;if(i===Xt)return g.DEPTH_STENCIL;if(i===ph)return e=A.get("EXT_sRGB"),e!==null?e.SRGB_ALPHA_EXT:null;if(i===Yn)return g.RED;if(i===sM)return g.RED_INTEGER;if(i===Im)return g.RG;if(i===rM)return g.RG_INTEGER;if(i===lM)return g.RGBA_INTEGER;if(i===YD||i===HD||i===TD||i===xD)if(E===Hg)if(e=A.get("WEBGL_compressed_texture_s3tc_srgb"),e!==null){if(i===YD)return e.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===HD)return e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===TD)return e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===xD)return e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(e=A.get("WEBGL_compressed_texture_s3tc"),e!==null){if(i===YD)return e.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===HD)return e.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===TD)return e.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===xD)return e.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===Qu||i===eu||i===Eu||i===tu)if(e=A.get("WEBGL_compressed_texture_pvrtc"),e!==null){if(i===Qu)return e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===eu)return e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===Eu)return e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===tu)return e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===cM)return e=A.get("WEBGL_compressed_texture_etc1"),e!==null?e.COMPRESSED_RGB_ETC1_WEBGL:null;if(i===ou||i===nu)if(e=A.get("WEBGL_compressed_texture_etc"),e!==null){if(i===ou)return E===Hg?e.COMPRESSED_SRGB8_ETC2:e.COMPRESSED_RGB8_ETC2;if(i===nu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:e.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===au||i===su||i===ru||i===lu||i===cu||i===Du||i===hu||i===wu||i===Su||i===Gu||i===yu||i===uu||i===ku||i===Mu)if(e=A.get("WEBGL_compressed_texture_astc"),e!==null){if(i===au)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:e.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===su)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:e.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===ru)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:e.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===lu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:e.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===cu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:e.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===Du)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:e.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===hu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:e.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===wu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:e.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===Su)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:e.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===Gu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:e.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===yu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:e.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===uu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:e.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===ku)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:e.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===Mu)return E===Hg?e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:e.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===vD||i===du||i===pu)if(e=A.get("EXT_texture_compression_bptc"),e!==null){if(i===vD)return E===Hg?e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:e.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(i===du)return e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(i===pu)return e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(i===gm||i===Uu||i===Nu||i===Fu)if(e=A.get("EXT_texture_compression_rgtc"),e!==null){if(i===vD)return e.COMPRESSED_RED_RGTC1_EXT;if(i===Uu)return e.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(i===Nu)return e.COMPRESSED_RED_GREEN_RGTC2_EXT;if(i===Fu)return e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return i===lE?C?g.UNSIGNED_INT_24_8:(e=A.get("WEBGL_depth_texture"),e!==null?e.UNSIGNED_INT_24_8_WEBGL:null):g[i]!==void 0?g[i]:null}return{convert:B}}class Nm extends dC{constructor(A=[]){super(),this.isArrayCamera=!0,this.cameras=A}}class KB extends og{constructor(){super(),this.isGroup=!0,this.type="Group"}}const Y_={type:"move"};class sy{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new KB,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new KB,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new O,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new O),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new KB,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new O,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new O),this._grip}dispatchEvent(A){return this._targetRay!==null&&this._targetRay.dispatchEvent(A),this._grip!==null&&this._grip.dispatchEvent(A),this._hand!==null&&this._hand.dispatchEvent(A),this}connect(A){if(A&&A.hand){const I=this._hand;if(I)for(const C of A.hand.values())this._getHandJoint(I,C)}return this.dispatchEvent({type:"connected",data:A}),this}disconnect(A){return this.dispatchEvent({type:"disconnected",data:A}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(A,I,C){let B=null,i=null,Q=null;const e=this._targetRay,E=this._grip,t=this._hand;if(A&&I.session.visibilityState!=="visible-blurred"){if(t&&A.hand){Q=!0;for(const G of A.hand.values()){const h=I.getJointPose(G,C),c=this._getHandJoint(t,G);h!==null&&(c.matrix.fromArray(h.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,c.jointRadius=h.radius),c.visible=h!==null}const a=t.joints["index-finger-tip"],s=t.joints["thumb-tip"],r=a.position.distanceTo(s.position),l=.02,D=.005;t.inputState.pinching&&r>l+D?(t.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:A.handedness,target:this})):!t.inputState.pinching&&r<=l-D&&(t.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:A.handedness,target:this}))}else E!==null&&A.gripSpace&&(i=I.getPose(A.gripSpace,C),i!==null&&(E.matrix.fromArray(i.transform.matrix),E.matrix.decompose(E.position,E.rotation,E.scale),E.matrixWorldNeedsUpdate=!0,i.linearVelocity?(E.hasLinearVelocity=!0,E.linearVelocity.copy(i.linearVelocity)):E.hasLinearVelocity=!1,i.angularVelocity?(E.hasAngularVelocity=!0,E.angularVelocity.copy(i.angularVelocity)):E.hasAngularVelocity=!1));e!==null&&(B=I.getPose(A.targetRaySpace,C),B===null&&i!==null&&(B=i),B!==null&&(e.matrix.fromArray(B.transform.matrix),e.matrix.decompose(e.position,e.rotation,e.scale),e.matrixWorldNeedsUpdate=!0,B.linearVelocity?(e.hasLinearVelocity=!0,e.linearVelocity.copy(B.linearVelocity)):e.hasLinearVelocity=!1,B.angularVelocity?(e.hasAngularVelocity=!0,e.angularVelocity.copy(B.angularVelocity)):e.hasAngularVelocity=!1,this.dispatchEvent(Y_)))}return e!==null&&(e.visible=B!==null),E!==null&&(E.visible=i!==null),t!==null&&(t.visible=Q!==null),this}_getHandJoint(A,I){if(A.joints[I.jointName]===void 0){const C=new KB;C.matrixAutoUpdate=!1,C.visible=!1,A.joints[I.jointName]=C,A.add(C)}return A.joints[I.jointName]}}const H_=` -void main() { - - gl_Position = vec4( position, 1.0 ); - -}`,T_=` -uniform sampler2DArray depthColor; -uniform float depthWidth; -uniform float depthHeight; - -void main() { - - vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); - - if ( coord.x >= 1.0 ) { - - gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; - - } else { - - gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; - - } - -}`;class x_{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(A,I,C){if(this.texture===null){const B=new Lg,i=A.properties.get(B);i.__webglTexture=I.texture,(I.depthNear!=C.depthNear||I.depthFar!=C.depthFar)&&(this.depthNear=I.depthNear,this.depthFar=I.depthFar),this.texture=B}}render(A,I){if(this.texture!==null){if(this.mesh===null){const C=I.cameras[0].viewport,B=new LC({extensions:{fragDepth:!0},vertexShader:H_,fragmentShader:T_,uniforms:{depthColor:{value:this.texture},depthWidth:{value:C.z},depthHeight:{value:C.w}}});this.mesh=new lg(new ke(20,20),B)}A.render(this.mesh,I)}}reset(){this.texture=null,this.mesh=null}}class v_ extends ue{constructor(A,I){super();const C=this;let B=null,i=1,Q=null,e="local-floor",E=1,t=null,a=null,s=null,r=null,l=null,D=null;const G=new x_,h=I.getContextAttributes();let c=null,y=null;const S=[],k=[],f=new qA;let d=null;const N=new dC;N.layers.enable(1),N.viewport=new Sg;const q=new dC;q.layers.enable(2),q.viewport=new Sg;const P=[N,q],U=new Nm;U.layers.enable(1),U.layers.enable(2);let K=null,X=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(j){let x=S[j];return x===void 0&&(x=new sy,S[j]=x),x.getTargetRaySpace()},this.getControllerGrip=function(j){let x=S[j];return x===void 0&&(x=new sy,S[j]=x),x.getGripSpace()},this.getHand=function(j){let x=S[j];return x===void 0&&(x=new sy,S[j]=x),x.getHandSpace()};function wA(j){const x=k.indexOf(j.inputSource);if(x===-1)return;const Y=S[x];Y!==void 0&&(Y.update(j.inputSource,j.frame,t||Q),Y.dispatchEvent({type:j.type,data:j.inputSource}))}function z(){B.removeEventListener("select",wA),B.removeEventListener("selectstart",wA),B.removeEventListener("selectend",wA),B.removeEventListener("squeeze",wA),B.removeEventListener("squeezestart",wA),B.removeEventListener("squeezeend",wA),B.removeEventListener("end",z),B.removeEventListener("inputsourceschange",lA);for(let j=0;j=0&&(k[T]=null,S[T].disconnect(Y))}for(let x=0;x=k.length){k.push(Y),T=dA;break}else if(k[dA]===null){k[dA]=Y,T=dA;break}if(T===-1)break}const tA=S[T];tA&&tA.connect(Y)}}const aA=new O,SA=new O;function b(j,x,Y){aA.setFromMatrixPosition(x.matrixWorld),SA.setFromMatrixPosition(Y.matrixWorld);const T=aA.distanceTo(SA),tA=x.projectionMatrix.elements,dA=Y.projectionMatrix.elements,EA=tA[14]/(tA[10]-1),FA=tA[14]/(tA[10]+1),W=(tA[9]+1)/tA[5],UA=(tA[9]-1)/tA[5],eA=(tA[8]-1)/tA[0],DA=(dA[8]+1)/dA[0],GA=EA*eA,bA=EA*DA,QA=T/(-eA+DA),F=QA*-eA;x.matrixWorld.decompose(j.position,j.quaternion,j.scale),j.translateX(F),j.translateZ(QA),j.matrixWorld.compose(j.position,j.quaternion,j.scale),j.matrixWorldInverse.copy(j.matrixWorld).invert();const m=EA+QA,cA=FA+QA,ZA=GA-F,OA=bA+(T-F),YA=W*FA/cA*m,eI=UA*FA/cA*m;j.projectionMatrix.makePerspective(ZA,OA,YA,eI,m,cA),j.projectionMatrixInverse.copy(j.projectionMatrix).invert()}function BA(j,x){x===null?j.matrixWorld.copy(j.matrix):j.matrixWorld.multiplyMatrices(x.matrixWorld,j.matrix),j.matrixWorldInverse.copy(j.matrixWorld).invert()}this.updateCamera=function(j){if(B===null)return;G.texture!==null&&(j.near=G.depthNear,j.far=G.depthFar),U.near=q.near=N.near=j.near,U.far=q.far=N.far=j.far,(K!==U.near||X!==U.far)&&(B.updateRenderState({depthNear:U.near,depthFar:U.far}),K=U.near,X=U.far,N.near=K,N.far=X,q.near=K,q.far=X,N.updateProjectionMatrix(),q.updateProjectionMatrix(),j.updateProjectionMatrix());const x=j.parent,Y=U.cameras;BA(U,x);for(let T=0;T0&&(h.alphaTest.value=c.alphaTest);const y=A.get(c).envMap;if(y&&(h.envMap.value=y,h.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,h.reflectivity.value=c.reflectivity,h.ior.value=c.ior,h.refractionRatio.value=c.refractionRatio),c.lightMap){h.lightMap.value=c.lightMap;const S=g._useLegacyLights===!0?Math.PI:1;h.lightMapIntensity.value=c.lightMapIntensity*S,I(c.lightMap,h.lightMapTransform)}c.aoMap&&(h.aoMap.value=c.aoMap,h.aoMapIntensity.value=c.aoMapIntensity,I(c.aoMap,h.aoMapTransform))}function Q(h,c){h.diffuse.value.copy(c.color),h.opacity.value=c.opacity,c.map&&(h.map.value=c.map,I(c.map,h.mapTransform))}function e(h,c){h.dashSize.value=c.dashSize,h.totalSize.value=c.dashSize+c.gapSize,h.scale.value=c.scale}function E(h,c,y,S){h.diffuse.value.copy(c.color),h.opacity.value=c.opacity,h.size.value=c.size*y,h.scale.value=S*.5,c.map&&(h.map.value=c.map,I(c.map,h.uvTransform)),c.alphaMap&&(h.alphaMap.value=c.alphaMap,I(c.alphaMap,h.alphaMapTransform)),c.alphaTest>0&&(h.alphaTest.value=c.alphaTest)}function t(h,c){h.diffuse.value.copy(c.color),h.opacity.value=c.opacity,h.rotation.value=c.rotation,c.map&&(h.map.value=c.map,I(c.map,h.mapTransform)),c.alphaMap&&(h.alphaMap.value=c.alphaMap,I(c.alphaMap,h.alphaMapTransform)),c.alphaTest>0&&(h.alphaTest.value=c.alphaTest)}function a(h,c){h.specular.value.copy(c.specular),h.shininess.value=Math.max(c.shininess,1e-4)}function s(h,c){c.gradientMap&&(h.gradientMap.value=c.gradientMap)}function r(h,c){h.metalness.value=c.metalness,c.metalnessMap&&(h.metalnessMap.value=c.metalnessMap,I(c.metalnessMap,h.metalnessMapTransform)),h.roughness.value=c.roughness,c.roughnessMap&&(h.roughnessMap.value=c.roughnessMap,I(c.roughnessMap,h.roughnessMapTransform)),A.get(c).envMap&&(h.envMapIntensity.value=c.envMapIntensity)}function l(h,c,y){h.ior.value=c.ior,c.sheen>0&&(h.sheenColor.value.copy(c.sheenColor).multiplyScalar(c.sheen),h.sheenRoughness.value=c.sheenRoughness,c.sheenColorMap&&(h.sheenColorMap.value=c.sheenColorMap,I(c.sheenColorMap,h.sheenColorMapTransform)),c.sheenRoughnessMap&&(h.sheenRoughnessMap.value=c.sheenRoughnessMap,I(c.sheenRoughnessMap,h.sheenRoughnessMapTransform))),c.clearcoat>0&&(h.clearcoat.value=c.clearcoat,h.clearcoatRoughness.value=c.clearcoatRoughness,c.clearcoatMap&&(h.clearcoatMap.value=c.clearcoatMap,I(c.clearcoatMap,h.clearcoatMapTransform)),c.clearcoatRoughnessMap&&(h.clearcoatRoughnessMap.value=c.clearcoatRoughnessMap,I(c.clearcoatRoughnessMap,h.clearcoatRoughnessMapTransform)),c.clearcoatNormalMap&&(h.clearcoatNormalMap.value=c.clearcoatNormalMap,I(c.clearcoatNormalMap,h.clearcoatNormalMapTransform),h.clearcoatNormalScale.value.copy(c.clearcoatNormalScale),c.side===qB&&h.clearcoatNormalScale.value.negate())),c.iridescence>0&&(h.iridescence.value=c.iridescence,h.iridescenceIOR.value=c.iridescenceIOR,h.iridescenceThicknessMinimum.value=c.iridescenceThicknessRange[0],h.iridescenceThicknessMaximum.value=c.iridescenceThicknessRange[1],c.iridescenceMap&&(h.iridescenceMap.value=c.iridescenceMap,I(c.iridescenceMap,h.iridescenceMapTransform)),c.iridescenceThicknessMap&&(h.iridescenceThicknessMap.value=c.iridescenceThicknessMap,I(c.iridescenceThicknessMap,h.iridescenceThicknessMapTransform))),c.transmission>0&&(h.transmission.value=c.transmission,h.transmissionSamplerMap.value=y.texture,h.transmissionSamplerSize.value.set(y.width,y.height),c.transmissionMap&&(h.transmissionMap.value=c.transmissionMap,I(c.transmissionMap,h.transmissionMapTransform)),h.thickness.value=c.thickness,c.thicknessMap&&(h.thicknessMap.value=c.thicknessMap,I(c.thicknessMap,h.thicknessMapTransform)),h.attenuationDistance.value=c.attenuationDistance,h.attenuationColor.value.copy(c.attenuationColor)),c.anisotropy>0&&(h.anisotropyVector.value.set(c.anisotropy*Math.cos(c.anisotropyRotation),c.anisotropy*Math.sin(c.anisotropyRotation)),c.anisotropyMap&&(h.anisotropyMap.value=c.anisotropyMap,I(c.anisotropyMap,h.anisotropyMapTransform))),h.specularIntensity.value=c.specularIntensity,h.specularColor.value.copy(c.specularColor),c.specularColorMap&&(h.specularColorMap.value=c.specularColorMap,I(c.specularColorMap,h.specularColorMapTransform)),c.specularIntensityMap&&(h.specularIntensityMap.value=c.specularIntensityMap,I(c.specularIntensityMap,h.specularIntensityMapTransform))}function D(h,c){c.matcap&&(h.matcap.value=c.matcap)}function G(h,c){const y=A.get(c).light;h.referencePosition.value.setFromMatrixPosition(y.matrixWorld),h.nearDistance.value=y.shadow.camera.near,h.farDistance.value=y.shadow.camera.far}return{refreshFogUniforms:C,refreshMaterialUniforms:B}}function O_(g,A,I,C){let B={},i={},Q=[];const e=I.isWebGL2?g.getParameter(g.MAX_UNIFORM_BUFFER_BINDINGS):0;function E(y,S){const k=S.program;C.uniformBlockBinding(y,k)}function t(y,S){let k=B[y.id];k===void 0&&(D(y),k=a(y),B[y.id]=k,y.addEventListener("dispose",h));const f=S.program;C.updateUBOMapping(y,f);const d=A.render.frame;i[y.id]!==d&&(r(y),i[y.id]=d)}function a(y){const S=s();y.__bindingPointIndex=S;const k=g.createBuffer(),f=y.__size,d=y.usage;return g.bindBuffer(g.UNIFORM_BUFFER,k),g.bufferData(g.UNIFORM_BUFFER,f,d),g.bindBuffer(g.UNIFORM_BUFFER,null),g.bindBufferBase(g.UNIFORM_BUFFER,S,k),k}function s(){for(let y=0;y0&&(k+=f-d),y.__size=k,y.__cache={},this}function G(y){const S={boundary:0,storage:0};return typeof y=="number"||typeof y=="boolean"?(S.boundary=4,S.storage=4):y.isVector2?(S.boundary=8,S.storage=8):y.isVector3||y.isColor?(S.boundary=16,S.storage=12):y.isVector4?(S.boundary=16,S.storage=16):y.isMatrix3?(S.boundary=48,S.storage=48):y.isMatrix4?(S.boundary=64,S.storage=64):y.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",y),S}function h(y){const S=y.target;S.removeEventListener("dispose",h);const k=Q.indexOf(S.__bindingPointIndex);Q.splice(k,1),g.deleteBuffer(B[S.id]),delete B[S.id],delete i[S.id]}function c(){for(const y in B)g.deleteBuffer(B[y]);Q=[],B={},i={}}return{bind:E,update:t,dispose:c}}class FM{constructor(A={}){const{canvas:I=Dm(),context:C=null,depth:B=!0,stencil:i=!0,alpha:Q=!1,antialias:e=!1,premultipliedAlpha:E=!0,preserveDrawingBuffer:t=!1,powerPreference:a="default",failIfMajorPerformanceCaveat:s=!1}=A;this.isWebGLRenderer=!0;let r;C!==null?r=C.getContextAttributes().alpha:r=Q;const l=new Uint32Array(4),D=new Int32Array(4);let G=null,h=null;const c=[],y=[];this.domElement=I,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=cC,this._useLegacyLights=!1,this.toneMapping=fQ,this.toneMappingExposure=1;const S=this;let k=!1,f=0,d=0,N=null,q=-1,P=null;const U=new Sg,K=new Sg;let X=null;const wA=new QI(0);let z=0,lA=I.width,aA=I.height,SA=1,b=null,BA=null;const gA=new Sg(0,0,lA,aA),hA=new Sg(0,0,lA,aA);let NA=!1;const WA=new _r;let j=!1,x=!1,Y=null;const T=new dI,tA=new qA,dA=new O,EA={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function FA(){return N===null?SA:1}let W=C;function UA(J,V){for(let $=0;${function RA(){if(oA.forEach(function(mA){QA.get(mA).currentProgram.isReady()&&oA.delete(mA)}),oA.size===0){iA(J);return}setTimeout(RA,10)}eA.get("KHR_parallel_shader_compile")!==null?RA():setTimeout(RA,10)})};let sg=null;function Wg(J){sg&&sg(J)}function fC(){Ng.stop()}function yg(){Ng.start()}const Ng=new ym;Ng.setAnimationLoop(Wg),typeof self<"u"&&Ng.setContext(self),this.setAnimationLoop=function(J){sg=J,HI.setAnimationLoop(J),J===null?Ng.stop():Ng.start()},HI.addEventListener("sessionstart",fC),HI.addEventListener("sessionend",yg),this.render=function(J,V){if(V!==void 0&&V.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(k===!0)return;J.matrixWorldAutoUpdate===!0&&J.updateMatrixWorld(),V.parent===null&&V.matrixWorldAutoUpdate===!0&&V.updateMatrixWorld(),HI.enabled===!0&&HI.isPresenting===!0&&(HI.cameraAutoUpdate===!0&&HI.updateCamera(V),V=HI.getCamera()),J.isScene===!0&&J.onBeforeRender(S,J,V,N),h=SI.get(J,y.length),h.init(),y.push(h),T.multiplyMatrices(V.projectionMatrix,V.matrixWorldInverse),WA.setFromProjectionMatrix(T),x=this.localClippingEnabled,j=fI.init(this.clippingPlanes,x),G=aI.get(J,c.length),G.init(),c.push(G),tB(J,V,0,S.sortObjects),G.finish(),S.sortObjects===!0&&G.sort(b,BA),this.info.render.frame++,j===!0&&fI.beginShadows();const $=h.state.shadowsArray;if(PA.render($,J,V),j===!0&&fI.endShadows(),this.info.autoReset===!0&&this.info.reset(),(HI.enabled===!1||HI.isPresenting===!1||HI.hasDepthSensing()===!1)&&bI.render(G,J),h.setupLights(S._useLegacyLights),V.isArrayCamera){const oA=V.cameras;for(let iA=0,RA=oA.length;iA0?h=y[y.length-1]:h=null,c.pop(),c.length>0?G=c[c.length-1]:G=null};function tB(J,V,$,oA){if(J.visible===!1)return;if(J.layers.test(V.layers)){if(J.isGroup)$=J.renderOrder;else if(J.isLOD)J.autoUpdate===!0&&J.update(V);else if(J.isLight)h.pushLight(J),J.castShadow&&h.pushShadow(J);else if(J.isSprite){if(!J.frustumCulled||WA.intersectsSprite(J)){oA&&dA.setFromMatrixPosition(J.matrixWorld).applyMatrix4(T);const mA=YA.update(J),xA=J.material;xA.visible&&G.push(J,mA,xA,$,dA.z,null)}}else if((J.isMesh||J.isLine||J.isPoints)&&(!J.frustumCulled||WA.intersectsObject(J))){const mA=YA.update(J),xA=J.material;if(oA&&(J.boundingSphere!==void 0?(J.boundingSphere===null&&J.computeBoundingSphere(),dA.copy(J.boundingSphere.center)):(mA.boundingSphere===null&&mA.computeBoundingSphere(),dA.copy(mA.boundingSphere.center)),dA.applyMatrix4(J.matrixWorld).applyMatrix4(T)),Array.isArray(xA)){const LA=mA.groups;for(let DI=0,VA=LA.length;DI0&&RC(iA,RA,V,$),oA&&GA.viewport(U.copy(oA)),iA.length>0&&kB(iA,V,$),RA.length>0&&kB(RA,V,$),mA.length>0&&kB(mA,V,$),GA.buffers.depth.setTest(!0),GA.buffers.depth.setMask(!0),GA.buffers.color.setMask(!0),GA.setPolygonOffset(!1)}function RC(J,V,$,oA){if(($.isScene===!0?$.overrideMaterial:null)!==null)return;const RA=DA.isWebGL2;Y===null&&(Y=new MC(1,1,{generateMipmaps:!0,type:eA.has("EXT_color_buffer_half_float")?BB:RQ,minFilter:Ei,samples:RA?4:0})),S.getDrawingBufferSize(tA),RA?Y.setSize(tA.x,tA.y):Y.setSize(Uh(tA.x),Uh(tA.y));const mA=S.getRenderTarget();S.setRenderTarget(Y),S.getClearColor(wA),z=S.getClearAlpha(),z<1&&S.setClearColor(16777215,.5),S.clear();const xA=S.toneMapping;S.toneMapping=fQ,kB(J,$,oA),F.updateMultisampleRenderTarget(Y),F.updateRenderTargetMipmap(Y);let LA=!1;for(let DI=0,VA=V.length;DI0),XA=!!$.morphAttributes.position,wI=!!$.morphAttributes.normal,FI=!!$.morphAttributes.color;let RI=fQ;oA.toneMapped&&(N===null||N.isXRRenderTarget===!0)&&(RI=S.toneMapping);const OI=$.morphAttributes.position||$.morphAttributes.normal||$.morphAttributes.color,hI=OI!==void 0?OI.length:0,iI=QA.get(oA),jI=h.state.lights;if(j===!0&&(x===!0||J!==P)){const fA=J===P&&oA.id===q;fI.setState(oA,J,fA)}let NI=!1;oA.version===iI.__version?(iI.needsLights&&iI.lightsStateVersion!==jI.state.version||iI.outputColorSpace!==xA||iA.isBatchedMesh&&iI.batching===!1||!iA.isBatchedMesh&&iI.batching===!0||iA.isInstancedMesh&&iI.instancing===!1||!iA.isInstancedMesh&&iI.instancing===!0||iA.isSkinnedMesh&&iI.skinning===!1||!iA.isSkinnedMesh&&iI.skinning===!0||iA.isInstancedMesh&&iI.instancingColor===!0&&iA.instanceColor===null||iA.isInstancedMesh&&iI.instancingColor===!1&&iA.instanceColor!==null||iI.envMap!==LA||oA.fog===!0&&iI.fog!==RA||iI.numClippingPlanes!==void 0&&(iI.numClippingPlanes!==fI.numPlanes||iI.numIntersection!==fI.numIntersection)||iI.vertexAlphas!==DI||iI.vertexTangents!==VA||iI.morphTargets!==XA||iI.morphNormals!==wI||iI.morphColors!==FI||iI.toneMapping!==RI||DA.isWebGL2===!0&&iI.morphTargetsCount!==hI)&&(NI=!0):(NI=!0,iI.__version=oA.version);let TI=iI.currentProgram;NI===!0&&(TI=_I(oA,V,iA));let ug=!1,H=!1,v=!1;const CA=TI.getUniforms(),nA=iI.uniforms;if(GA.useProgram(TI.program)&&(ug=!0,H=!0,v=!0),oA.id!==q&&(q=oA.id,H=!0),ug||P!==J){CA.setValue(W,"projectionMatrix",J.projectionMatrix),CA.setValue(W,"viewMatrix",J.matrixWorldInverse);const fA=CA.map.cameraPosition;fA!==void 0&&fA.setValue(W,dA.setFromMatrixPosition(J.matrixWorld)),DA.logarithmicDepthBuffer&&CA.setValue(W,"logDepthBufFC",2/(Math.log(J.far+1)/Math.LN2)),(oA.isMeshPhongMaterial||oA.isMeshToonMaterial||oA.isMeshLambertMaterial||oA.isMeshBasicMaterial||oA.isMeshStandardMaterial||oA.isShaderMaterial)&&CA.setValue(W,"isOrthographic",J.isOrthographicCamera===!0),P!==J&&(P=J,H=!0,v=!0)}if(iA.isSkinnedMesh){CA.setOptional(W,iA,"bindMatrix"),CA.setOptional(W,iA,"bindMatrixInverse");const fA=iA.skeleton;fA&&(DA.floatVertexTextures?(fA.boneTexture===null&&fA.computeBoneTexture(),CA.setValue(W,"boneTexture",fA.boneTexture,F)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}iA.isBatchedMesh&&(CA.setOptional(W,iA,"batchingTexture"),CA.setValue(W,"batchingTexture",iA._matricesTexture,F));const MA=$.morphAttributes;if((MA.position!==void 0||MA.normal!==void 0||MA.color!==void 0&&DA.isWebGL2===!0)&&LI.update(iA,$,TI),(H||iI.receiveShadow!==iA.receiveShadow)&&(iI.receiveShadow=iA.receiveShadow,CA.setValue(W,"receiveShadow",iA.receiveShadow)),oA.isMeshGouraudMaterial&&oA.envMap!==null&&(nA.envMap.value=LA,nA.flipEnvMap.value=LA.isCubeTexture&&LA.isRenderTargetTexture===!1?-1:1),H&&(CA.setValue(W,"toneMappingExposure",S.toneMappingExposure),iI.needsLights&&Z(nA,v),RA&&oA.fog===!0&&CI.refreshFogUniforms(nA,RA),CI.refreshMaterialUniforms(nA,oA,SA,aA,Y),OD.upload(W,vi(iI),nA,F)),oA.isShaderMaterial&&oA.uniformsNeedUpdate===!0&&(OD.upload(W,vi(iI),nA,F),oA.uniformsNeedUpdate=!1),oA.isSpriteMaterial&&CA.setValue(W,"center",iA.center),CA.setValue(W,"modelViewMatrix",iA.modelViewMatrix),CA.setValue(W,"normalMatrix",iA.normalMatrix),CA.setValue(W,"modelMatrix",iA.matrixWorld),oA.isShaderMaterial||oA.isRawShaderMaterial){const fA=oA.uniformsGroups;for(let TA=0,_A=fA.length;TA<_A;TA++)if(DA.isWebGL2){const II=fA[TA];JI.update(II,TI),JI.bind(II,TI)}else console.warn("THREE.WebGLRenderer: Uniform Buffer Objects can only be used with WebGL 2.")}return TI}function Z(J,V){J.ambientLightColor.needsUpdate=V,J.lightProbe.needsUpdate=V,J.directionalLights.needsUpdate=V,J.directionalLightShadows.needsUpdate=V,J.pointLights.needsUpdate=V,J.pointLightShadows.needsUpdate=V,J.spotLights.needsUpdate=V,J.spotLightShadows.needsUpdate=V,J.rectAreaLights.needsUpdate=V,J.hemisphereLights.needsUpdate=V}function rA(J){return J.isMeshLambertMaterial||J.isMeshToonMaterial||J.isMeshPhongMaterial||J.isMeshStandardMaterial||J.isShadowMaterial||J.isShaderMaterial&&J.lights===!0}this.getActiveCubeFace=function(){return f},this.getActiveMipmapLevel=function(){return d},this.getRenderTarget=function(){return N},this.setRenderTargetTextures=function(J,V,$){QA.get(J.texture).__webglTexture=V,QA.get(J.depthTexture).__webglTexture=$;const oA=QA.get(J);oA.__hasExternalTextures=!0,oA.__hasExternalTextures&&(oA.__autoAllocateDepthBuffer=$===void 0,oA.__autoAllocateDepthBuffer||eA.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),oA.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(J,V){const $=QA.get(J);$.__webglFramebuffer=V,$.__useDefaultFramebuffer=V===void 0},this.setRenderTarget=function(J,V=0,$=0){N=J,f=V,d=$;let oA=!0,iA=null,RA=!1,mA=!1;if(J){const LA=QA.get(J);LA.__useDefaultFramebuffer!==void 0?(GA.bindFramebuffer(W.FRAMEBUFFER,null),oA=!1):LA.__webglFramebuffer===void 0?F.setupRenderTarget(J):LA.__hasExternalTextures&&F.rebindTextures(J,QA.get(J.texture).__webglTexture,QA.get(J.depthTexture).__webglTexture);const DI=J.texture;(DI.isData3DTexture||DI.isDataArrayTexture||DI.isCompressedArrayTexture)&&(mA=!0);const VA=QA.get(J).__webglFramebuffer;J.isWebGLCubeRenderTarget?(Array.isArray(VA[V])?iA=VA[V][$]:iA=VA[V],RA=!0):DA.isWebGL2&&J.samples>0&&F.useMultisampledRTT(J)===!1?iA=QA.get(J).__webglMultisampledFramebuffer:Array.isArray(VA)?iA=VA[$]:iA=VA,U.copy(J.viewport),K.copy(J.scissor),X=J.scissorTest}else U.copy(gA).multiplyScalar(SA).floor(),K.copy(hA).multiplyScalar(SA).floor(),X=NA;if(GA.bindFramebuffer(W.FRAMEBUFFER,iA)&&DA.drawBuffers&&oA&&GA.drawBuffers(J,iA),GA.viewport(U),GA.scissor(K),GA.setScissorTest(X),RA){const LA=QA.get(J.texture);W.framebufferTexture2D(W.FRAMEBUFFER,W.COLOR_ATTACHMENT0,W.TEXTURE_CUBE_MAP_POSITIVE_X+V,LA.__webglTexture,$)}else if(mA){const LA=QA.get(J.texture),DI=V||0;W.framebufferTextureLayer(W.FRAMEBUFFER,W.COLOR_ATTACHMENT0,LA.__webglTexture,$||0,DI)}q=-1},this.readRenderTargetPixels=function(J,V,$,oA,iA,RA,mA){if(!(J&&J.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let xA=QA.get(J).__webglFramebuffer;if(J.isWebGLCubeRenderTarget&&mA!==void 0&&(xA=xA[mA]),xA){GA.bindFramebuffer(W.FRAMEBUFFER,xA);try{const LA=J.texture,DI=LA.format,VA=LA.type;if(DI!==SB&&sI.convert(DI)!==W.getParameter(W.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const XA=VA===BB&&(eA.has("EXT_color_buffer_half_float")||DA.isWebGL2&&eA.has("EXT_color_buffer_float"));if(VA!==RQ&&sI.convert(VA)!==W.getParameter(W.IMPLEMENTATION_COLOR_READ_TYPE)&&!(VA===aC&&(DA.isWebGL2||eA.has("OES_texture_float")||eA.has("WEBGL_color_buffer_float")))&&!XA){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}V>=0&&V<=J.width-oA&&$>=0&&$<=J.height-iA&&W.readPixels(V,$,oA,iA,sI.convert(DI),sI.convert(VA),RA)}finally{const LA=N!==null?QA.get(N).__webglFramebuffer:null;GA.bindFramebuffer(W.FRAMEBUFFER,LA)}}},this.copyFramebufferToTexture=function(J,V,$=0){const oA=Math.pow(2,-$),iA=Math.floor(V.image.width*oA),RA=Math.floor(V.image.height*oA);F.setTexture2D(V,0),W.copyTexSubImage2D(W.TEXTURE_2D,$,0,0,J.x,J.y,iA,RA),GA.unbindTexture()},this.copyTextureToTexture=function(J,V,$,oA=0){const iA=V.image.width,RA=V.image.height,mA=sI.convert($.format),xA=sI.convert($.type);F.setTexture2D($,0),W.pixelStorei(W.UNPACK_FLIP_Y_WEBGL,$.flipY),W.pixelStorei(W.UNPACK_PREMULTIPLY_ALPHA_WEBGL,$.premultiplyAlpha),W.pixelStorei(W.UNPACK_ALIGNMENT,$.unpackAlignment),V.isDataTexture?W.texSubImage2D(W.TEXTURE_2D,oA,J.x,J.y,iA,RA,mA,xA,V.image.data):V.isCompressedTexture?W.compressedTexSubImage2D(W.TEXTURE_2D,oA,J.x,J.y,V.mipmaps[0].width,V.mipmaps[0].height,mA,V.mipmaps[0].data):W.texSubImage2D(W.TEXTURE_2D,oA,J.x,J.y,mA,xA,V.image),oA===0&&$.generateMipmaps&&W.generateMipmap(W.TEXTURE_2D),GA.unbindTexture()},this.copyTextureToTexture3D=function(J,V,$,oA,iA=0){if(S.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const RA=J.max.x-J.min.x+1,mA=J.max.y-J.min.y+1,xA=J.max.z-J.min.z+1,LA=sI.convert(oA.format),DI=sI.convert(oA.type);let VA;if(oA.isData3DTexture)F.setTexture3D(oA,0),VA=W.TEXTURE_3D;else if(oA.isDataArrayTexture||oA.isCompressedArrayTexture)F.setTexture2DArray(oA,0),VA=W.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}W.pixelStorei(W.UNPACK_FLIP_Y_WEBGL,oA.flipY),W.pixelStorei(W.UNPACK_PREMULTIPLY_ALPHA_WEBGL,oA.premultiplyAlpha),W.pixelStorei(W.UNPACK_ALIGNMENT,oA.unpackAlignment);const XA=W.getParameter(W.UNPACK_ROW_LENGTH),wI=W.getParameter(W.UNPACK_IMAGE_HEIGHT),FI=W.getParameter(W.UNPACK_SKIP_PIXELS),RI=W.getParameter(W.UNPACK_SKIP_ROWS),OI=W.getParameter(W.UNPACK_SKIP_IMAGES),hI=$.isCompressedTexture?$.mipmaps[iA]:$.image;W.pixelStorei(W.UNPACK_ROW_LENGTH,hI.width),W.pixelStorei(W.UNPACK_IMAGE_HEIGHT,hI.height),W.pixelStorei(W.UNPACK_SKIP_PIXELS,J.min.x),W.pixelStorei(W.UNPACK_SKIP_ROWS,J.min.y),W.pixelStorei(W.UNPACK_SKIP_IMAGES,J.min.z),$.isDataTexture||$.isData3DTexture?W.texSubImage3D(VA,iA,V.x,V.y,V.z,RA,mA,xA,LA,DI,hI.data):$.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),W.compressedTexSubImage3D(VA,iA,V.x,V.y,V.z,RA,mA,xA,LA,hI.data)):W.texSubImage3D(VA,iA,V.x,V.y,V.z,RA,mA,xA,LA,DI,hI),W.pixelStorei(W.UNPACK_ROW_LENGTH,XA),W.pixelStorei(W.UNPACK_IMAGE_HEIGHT,wI),W.pixelStorei(W.UNPACK_SKIP_PIXELS,FI),W.pixelStorei(W.UNPACK_SKIP_ROWS,RI),W.pixelStorei(W.UNPACK_SKIP_IMAGES,OI),iA===0&&oA.generateMipmaps&&W.generateMipmap(VA),GA.unbindTexture()},this.initTexture=function(J){J.isCubeTexture?F.setTextureCube(J,0):J.isData3DTexture?F.setTexture3D(J,0):J.isDataArrayTexture||J.isCompressedArrayTexture?F.setTexture2DArray(J,0):F.setTexture2D(J,0),GA.unbindTexture()},this.resetState=function(){f=0,d=0,N=null,GA.reset(),UI.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return UQ}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(A){this._outputColorSpace=A;const I=this.getContext();I.drawingBufferColorSpace=A===sw?"display-p3":"srgb",I.unpackColorSpace=Fg.workingColorSpace===vr?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===cC?DE:wM}set outputEncoding(A){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=A===DE?cC:mQ}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(A){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=A}}class Fm extends FM{}Fm.prototype.isWebGL1Renderer=!0;class ww{constructor(A,I=25e-5){this.isFogExp2=!0,this.name="",this.color=new QI(A),this.density=I}clone(){return new ww(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Sw{constructor(A,I=1,C=1e3){this.isFog=!0,this.name="",this.color=new QI(A),this.near=I,this.far=C}clone(){return new Sw(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class $t extends og{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(A,I){return super.copy(A,I),A.background!==null&&(this.background=A.background.clone()),A.environment!==null&&(this.environment=A.environment.clone()),A.fog!==null&&(this.fog=A.fog.clone()),this.backgroundBlurriness=A.backgroundBlurriness,this.backgroundIntensity=A.backgroundIntensity,A.overrideMaterial!==null&&(this.overrideMaterial=A.overrideMaterial.clone()),this.matrixAutoUpdate=A.matrixAutoUpdate,this}toJSON(A){const I=super.toJSON(A);return this.fog!==null&&(I.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(I.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(I.object.backgroundIntensity=this.backgroundIntensity),I}}class Zr{constructor(A,I){this.isInterleavedBuffer=!0,this.array=A,this.stride=I,this.count=A!==void 0?A.length/I:0,this.usage=Sr,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=ni()}onUploadCallback(){}set needsUpdate(A){A===!0&&this.version++}get updateRange(){return bt("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(A){return this.usage=A,this}addUpdateRange(A,I){this.updateRanges.push({start:A,count:I})}clearUpdateRanges(){this.updateRanges.length=0}copy(A){return this.array=new A.array.constructor(A.array),this.count=A.count,this.stride=A.stride,this.usage=A.usage,this}copyAt(A,I,C){A*=this.stride,C*=I.stride;for(let B=0,i=this.stride;BA.far||I.push({distance:E,point:As.clone(),uv:OB.getInterpolation(As,Tc,gs,xc,RF,ry,KF,new qA),face:null,object:this})}copy(A,I){return super.copy(A,I),A.center!==void 0&&this.center.copy(A.center),this.material=A.material,this}}function vc(g,A,I,C,B,i){An.subVectors(g,I).addScalar(.5).multiply(C),B!==void 0?(Is.x=i*An.x-B*An.y,Is.y=B*An.x+i*An.y):Is.copy(An),g.copy(A),g.x+=Is.x,g.y+=Is.y,g.applyMatrix4(fm)}const bc=new O,JF=new O;class Km extends og{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(A){super.copy(A,!1);const I=A.levels;for(let C=0,B=I.length;C0){let C,B;for(C=1,B=I.length;C0){bc.setFromMatrixPosition(this.matrixWorld);const B=A.ray.origin.distanceTo(bc);this.getObjectForDistance(B).raycast(A,I)}}update(A){const I=this.levels;if(I.length>1){bc.setFromMatrixPosition(A.matrixWorld),JF.setFromMatrixPosition(this.matrixWorld);const C=bc.distanceTo(JF)/A.zoom;I[0].object.visible=!0;let B,i;for(B=1,i=I.length;B=Q)I[B-1].object.visible=!1,I[B].object.visible=!0;else break}for(this._currentLevel=B-1;B=C.length&&C.push({start:-1,count:-1,z:-1});const i=C[this.index];B.push(i),this.index++,i.start=A.start,i.count=A.count,i.z=I}reset(){this.list.length=0,this.index=0}}const gn="batchId",ve=new dI,bF=new dI,X_=new dI,OF=new dI,Dy=new _r,Zc=new sC,at=new TC,is=new O,hy=new V_,hB=new lg,Pc=[];function z_(g,A,I=0){const C=A.itemSize;if(g.isInterleavedBufferAttribute||g.array.constructor!==A.array.constructor){const B=g.count;for(let i=0;i65536?new Uint32Array(i):new Uint16Array(i);I.setIndex(new Ag(e,1))}const Q=B>65536?new Uint32Array(C):new Uint16Array(C);I.setAttribute(gn,new Ag(Q,1)),this._geometryInitialized=!0}}_validateGeometry(A){if(A.getAttribute(gn))throw new Error(`BatchedMesh: Geometry cannot use attribute "${gn}"`);const I=this.geometry;if(!!A.getIndex()!=!!I.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const C in I.attributes){if(C===gn)continue;if(!A.hasAttribute(C))throw new Error(`BatchedMesh: Added geometry missing "${C}". All geometries must have consistent attributes.`);const B=A.getAttribute(C),i=I.getAttribute(C);if(B.itemSize!==i.itemSize||B.normalized!==i.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(A){return this.customSort=A,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new sC);const A=this._geometryCount,I=this.boundingBox,C=this._active;I.makeEmpty();for(let B=0;B=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const B={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let i=null;const Q=this._reservedRanges,e=this._drawRanges,E=this._bounds;this._geometryCount!==0&&(i=Q[Q.length-1]),I===-1?B.vertexCount=A.getAttribute("position").count:B.vertexCount=I,i===null?B.vertexStart=0:B.vertexStart=i.vertexStart+i.vertexCount;const t=A.getIndex(),a=t!==null;if(a&&(C===-1?B.indexCount=t.count:B.indexCount=C,i===null?B.indexStart=0:B.indexStart=i.indexStart+i.indexCount),B.indexStart!==-1&&B.indexStart+B.indexCount>this._maxIndexCount||B.vertexStart+B.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const s=this._visibility,r=this._active,l=this._matricesTexture,D=this._matricesTexture.image.data;s.push(!0),r.push(!0);const G=this._geometryCount;this._geometryCount++,X_.toArray(D,G*16),l.needsUpdate=!0,Q.push(B),e.push({start:a?B.indexStart:B.vertexStart,count:-1}),E.push({boxInitialized:!1,box:new sC,sphereInitialized:!1,sphere:new TC});const h=this.geometry.getAttribute(gn);for(let c=0;c=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(I);const C=this.geometry,B=C.getIndex()!==null,i=C.getIndex(),Q=I.getIndex(),e=this._reservedRanges[A];if(B&&Q.count>e.indexCount||I.attributes.position.count>e.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const E=e.vertexStart,t=e.vertexCount;for(const l in C.attributes){if(l===gn)continue;const D=I.getAttribute(l),G=C.getAttribute(l);z_(D,G,E);const h=D.itemSize;for(let c=D.count,y=t;c=I.length||I[A]===!1?this:(I[A]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(A,I){if(this._active[A]===!1)return null;const B=this._bounds[A],i=B.box,Q=this.geometry;if(B.boxInitialized===!1){i.makeEmpty();const e=Q.index,E=Q.attributes.position,t=this._drawRanges[A];for(let a=t.start,s=t.start+t.count;a=Q||C[A]===!1?this:(I.toArray(i,A*16),B.needsUpdate=!0,this)}getMatrixAt(A,I){const C=this._active,B=this._matricesTexture.image.data,i=this._geometryCount;return A>=i||C[A]===!1?null:I.fromArray(B,A*16)}setVisibleAt(A,I){const C=this._visibility,B=this._active,i=this._geometryCount;return A>=i||B[A]===!1||C[A]===I?this:(C[A]=I,this._visibilityChanged=!0,this)}getVisibleAt(A){const I=this._visibility,C=this._active,B=this._geometryCount;return A>=B||C[A]===!1?!1:I[A]}raycast(A,I){const C=this._visibility,B=this._active,i=this._drawRanges,Q=this._geometryCount,e=this.matrixWorld,E=this.geometry;hB.material=this.material,hB.geometry.index=E.index,hB.geometry.attributes=E.attributes,hB.geometry.boundingBox===null&&(hB.geometry.boundingBox=new sC),hB.geometry.boundingSphere===null&&(hB.geometry.boundingSphere=new TC);for(let t=0;t({...I})),this._reservedRanges=A._reservedRanges.map(I=>({...I})),this._visibility=A._visibility.slice(),this._active=A._active.slice(),this._bounds=A._bounds.map(I=>({boxInitialized:I.boxInitialized,box:I.box.clone(),sphereInitialized:I.sphereInitialized,sphere:I.sphere.clone()})),this._maxGeometryCount=A._maxGeometryCount,this._maxVertexCount=A._maxVertexCount,this._maxIndexCount=A._maxIndexCount,this._geometryInitialized=A._geometryInitialized,this._geometryCount=A._geometryCount,this._multiDrawCounts=A._multiDrawCounts.slice(),this._multiDrawStarts=A._multiDrawStarts.slice(),this._matricesTexture=A._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(A,I,C,B,i){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const Q=B.getIndex(),e=Q===null?1:Q.array.BYTES_PER_ELEMENT,E=this._active,t=this._visibility,a=this._multiDrawStarts,s=this._multiDrawCounts,r=this._drawRanges,l=this.perObjectFrustumCulled;l&&(OF.multiplyMatrices(C.projectionMatrix,C.matrixWorldInverse).multiply(this.matrixWorld),Dy.setFromProjectionMatrix(OF,A.coordinateSystem));let D=0;if(this.sortObjects){bF.copy(this.matrixWorld).invert(),is.setFromMatrixPosition(C.matrixWorld).applyMatrix4(bF);for(let c=0,y=t.length;cE)continue;r.applyMatrix4(this.matrixWorld);const q=A.ray.origin.distanceTo(r);qA.far||I.push({distance:q,point:s.clone().applyMatrix4(this.matrixWorld),index:S,face:null,faceIndex:null,object:this})}}else{const c=Math.max(0,Q.start),y=Math.min(h.count,Q.start+Q.count);for(let S=c,k=y-1;SE)continue;r.applyMatrix4(this.matrixWorld);const d=A.ray.origin.distanceTo(r);dA.far||I.push({distance:d,point:s.clone().applyMatrix4(this.matrixWorld),index:S,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const I=this.geometry.morphAttributes,C=Object.keys(I);if(C.length>0){const B=I[C[0]];if(B!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,Q=B.length;i0){const B=I[C[0]];if(B!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,Q=B.length;iB.far)return;i.push({distance:t,distanceToRay:Math.sqrt(e),point:E,index:A,face:null,object:Q})}}class $_ extends Lg{constructor(A,I,C,B,i,Q,e,E,t){super(A,I,C,B,i,Q,e,E,t),this.isVideoTexture=!0,this.minFilter=Q!==void 0?Q:wg,this.magFilter=i!==void 0?i:wg,this.generateMipmaps=!1;const a=this;function s(){a.needsUpdate=!0,A.requestVideoFrameCallback(s)}"requestVideoFrameCallback"in A&&A.requestVideoFrameCallback(s)}clone(){return new this.constructor(this.image).copy(this)}update(){const A=this.image;"requestVideoFrameCallback"in A===!1&&A.readyState>=A.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class A1 extends Lg{constructor(A,I){super({width:A,height:I}),this.isFramebufferTexture=!0,this.magFilter=tg,this.minFilter=tg,this.generateMipmaps=!1,this.needsUpdate=!0}}class uw extends Lg{constructor(A,I,C,B,i,Q,e,E,t,a,s,r){super(null,Q,e,E,t,a,B,i,s,r),this.isCompressedTexture=!0,this.image={width:I,height:C},this.mipmaps=A,this.flipY=!1,this.generateMipmaps=!1}}class I1 extends uw{constructor(A,I,C,B,i,Q){super(A,I,C,i,Q),this.isCompressedArrayTexture=!0,this.image.depth=B,this.wrapR=CB}}class g1 extends uw{constructor(A,I,C){super(void 0,A[0].width,A[0].height,I,C,qQ),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=A}}class C1 extends Lg{constructor(A,I,C,B,i,Q,e,E,t){super(A,I,C,B,i,Q,e,E,t),this.isCanvasTexture=!0,this.needsUpdate=!0}}class oQ{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(A,I){const C=this.getUtoTmapping(A);return this.getPoint(C,I)}getPoints(A=5){const I=[];for(let C=0;C<=A;C++)I.push(this.getPoint(C/A));return I}getSpacedPoints(A=5){const I=[];for(let C=0;C<=A;C++)I.push(this.getPointAt(C/A));return I}getLength(){const A=this.getLengths();return A[A.length-1]}getLengths(A=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===A+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const I=[];let C,B=this.getPoint(0),i=0;I.push(0);for(let Q=1;Q<=A;Q++)C=this.getPoint(Q/A),i+=C.distanceTo(B),I.push(i),B=C;return this.cacheArcLengths=I,I}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(A,I){const C=this.getLengths();let B=0;const i=C.length;let Q;I?Q=I:Q=A*C[i-1];let e=0,E=i-1,t;for(;e<=E;)if(B=Math.floor(e+(E-e)/2),t=C[B]-Q,t<0)e=B+1;else if(t>0)E=B-1;else{E=B;break}if(B=E,C[B]===Q)return B/(i-1);const a=C[B],r=C[B+1]-a,l=(Q-a)/r;return(B+l)/(i-1)}getTangent(A,I){let B=A-1e-4,i=A+1e-4;B<0&&(B=0),i>1&&(i=1);const Q=this.getPoint(B),e=this.getPoint(i),E=I||(Q.isVector2?new qA:new O);return E.copy(e).sub(Q).normalize(),E}getTangentAt(A,I){const C=this.getUtoTmapping(A);return this.getTangent(C,I)}computeFrenetFrames(A,I){const C=new O,B=[],i=[],Q=[],e=new O,E=new dI;for(let l=0;l<=A;l++){const D=l/A;B[l]=this.getTangentAt(D,new O)}i[0]=new O,Q[0]=new O;let t=Number.MAX_VALUE;const a=Math.abs(B[0].x),s=Math.abs(B[0].y),r=Math.abs(B[0].z);a<=t&&(t=a,C.set(1,0,0)),s<=t&&(t=s,C.set(0,1,0)),r<=t&&C.set(0,0,1),e.crossVectors(B[0],C).normalize(),i[0].crossVectors(B[0],e),Q[0].crossVectors(B[0],i[0]);for(let l=1;l<=A;l++){if(i[l]=i[l-1].clone(),Q[l]=Q[l-1].clone(),e.crossVectors(B[l-1],B[l]),e.length()>Number.EPSILON){e.normalize();const D=Math.acos(nC(B[l-1].dot(B[l]),-1,1));i[l].applyMatrix4(E.makeRotationAxis(e,D))}Q[l].crossVectors(B[l],i[l])}if(I===!0){let l=Math.acos(nC(i[0].dot(i[A]),-1,1));l/=A,B[0].dot(e.crossVectors(i[0],i[A]))>0&&(l=-l);for(let D=1;D<=A;D++)i[D].applyMatrix4(E.makeRotationAxis(B[D],l*D)),Q[D].crossVectors(B[D],i[D])}return{tangents:B,normals:i,binormals:Q}}clone(){return new this.constructor().copy(this)}copy(A){return this.arcLengthDivisions=A.arcLengthDivisions,this}toJSON(){const A={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return A.arcLengthDivisions=this.arcLengthDivisions,A.type=this.type,A}fromJSON(A){return this.arcLengthDivisions=A.arcLengthDivisions,this}}class kw extends oQ{constructor(A=0,I=0,C=1,B=1,i=0,Q=Math.PI*2,e=!1,E=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=A,this.aY=I,this.xRadius=C,this.yRadius=B,this.aStartAngle=i,this.aEndAngle=Q,this.aClockwise=e,this.aRotation=E}getPoint(A,I){const C=I||new qA,B=Math.PI*2;let i=this.aEndAngle-this.aStartAngle;const Q=Math.abs(i)B;)i-=B;i0?0:(Math.floor(Math.abs(e)/i)+1)*i:E===0&&e===i-1&&(e=i-2,E=1);let t,a;this.closed||e>0?t=B[(e-1)%i]:(Xc.subVectors(B[0],B[1]).add(B[0]),t=Xc);const s=B[e%i],r=B[(e+1)%i];if(this.closed||e+2B.length-2?B.length-1:Q+1],s=B[Q>B.length-3?B.length-1:Q+2];return C.set(zF(e,E.x,t.x,a.x,s.x),zF(e,E.y,t.y,a.y,s.y)),C}copy(A){super.copy(A),this.points=[];for(let I=0,C=A.points.length;I=C){const Q=B[i]-C,e=this.curves[i],E=e.getLength(),t=E===0?0:1-Q/E;return e.getPointAt(t,I)}i++}return null}getLength(){const A=this.getCurveLengths();return A[A.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const A=[];let I=0;for(let C=0,B=this.curves.length;C1&&!I[I.length-1].equals(I[0])&&I.push(I[0]),I}copy(A){super.copy(A),this.curves=[];for(let I=0,C=A.curves.length;I0){const s=t.getPoint(0);s.equals(this.currentPoint)||this.lineTo(s.x,s.y)}this.curves.push(t);const a=t.getPoint(1);return this.currentPoint.copy(a),this}copy(A){return super.copy(A),this.currentPoint.copy(A.currentPoint),this}toJSON(){const A=super.toJSON();return A.currentPoint=this.currentPoint.toArray(),A}fromJSON(A){return super.fromJSON(A),this.currentPoint.fromArray(A.currentPoint),this}}class Wr extends WI{constructor(A=[new qA(0,-.5),new qA(.5,0),new qA(0,.5)],I=12,C=0,B=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:A,segments:I,phiStart:C,phiLength:B},I=Math.floor(I),B=nC(B,0,Math.PI*2);const i=[],Q=[],e=[],E=[],t=[],a=1/I,s=new O,r=new qA,l=new O,D=new O,G=new O;let h=0,c=0;for(let y=0;y<=A.length-1;y++)switch(y){case 0:h=A[y+1].x-A[y].x,c=A[y+1].y-A[y].y,l.x=c*1,l.y=-h,l.z=c*0,G.copy(l),l.normalize(),E.push(l.x,l.y,l.z);break;case A.length-1:E.push(G.x,G.y,G.z);break;default:h=A[y+1].x-A[y].x,c=A[y+1].y-A[y].y,l.x=c*1,l.y=-h,l.z=c*0,D.copy(l),l.x+=G.x,l.y+=G.y,l.z+=G.z,l.normalize(),E.push(l.x,l.y,l.z),G.copy(D)}for(let y=0;y<=I;y++){const S=C+y*a*B,k=Math.sin(S),f=Math.cos(S);for(let d=0;d<=A.length-1;d++){s.x=A[d].x*k,s.y=A[d].y,s.z=A[d].x*f,Q.push(s.x,s.y,s.z),r.x=y/I,r.y=d/(A.length-1),e.push(r.x,r.y);const N=E[3*d+0]*k,q=E[3*d+1],P=E[3*d+0]*f;t.push(N,q,P)}}for(let y=0;y0&&S(!0),I>0&&S(!1)),this.setIndex(a),this.setAttribute("position",new GI(s,3)),this.setAttribute("normal",new GI(r,3)),this.setAttribute("uv",new GI(l,2));function y(){const k=new O,f=new O;let d=0;const N=(I-A)/C;for(let q=0;q<=i;q++){const P=[],U=q/i,K=U*(I-A)+A;for(let X=0;X<=B;X++){const wA=X/B,z=wA*E+e,lA=Math.sin(z),aA=Math.cos(z);f.x=K*lA,f.y=-U*C+h,f.z=K*aA,s.push(f.x,f.y,f.z),k.set(lA,N,aA).normalize(),r.push(k.x,k.y,k.z),l.push(wA,1-U),P.push(D++)}G.push(P)}for(let q=0;q.9&&N<.1&&(S<.2&&(Q[y+0]+=1),k<.2&&(Q[y+2]+=1),f<.2&&(Q[y+4]+=1))}}function r(y){i.push(y.x,y.y,y.z)}function l(y,S){const k=y*3;S.x=A[k+0],S.y=A[k+1],S.z=A[k+2]}function D(){const y=new O,S=new O,k=new O,f=new O,d=new qA,N=new qA,q=new qA;for(let P=0,U=0;P80*I){e=t=g[0],E=a=g[1];for(let D=I;Dt&&(t=s),r>a&&(a=r);l=Math.max(t-e,a-E),l=l!==0?32767/l:0}return ur(i,Q,I,e,E,l,0),Q}};function xm(g,A,I,C,B){let i,Q;if(B===p1(g,A,I,C)>0)for(i=A;i=A;i-=C)Q=$F(i,g[i],g[i+1],Q);return Q&&Nw(Q,Q.next)&&(Mr(Q),Q=Q.next),Q}function Ao(g,A){if(!g)return g;A||(A=g);let I=g,C;do if(C=!1,!I.steiner&&(Nw(I,I.next)||gC(I.prev,I,I.next)===0)){if(Mr(I),I=A=I.prev,I===I.next)break;C=!0}else I=I.next;while(C||I!==A);return A}function ur(g,A,I,C,B,i,Q){if(!g)return;!Q&&i&&G1(g,C,B,i);let e=g,E,t;for(;g.prev!==g.next;){if(E=g.prev,t=g.next,i?s1(g,C,B,i):a1(g)){A.push(E.i/I|0),A.push(g.i/I|0),A.push(t.i/I|0),Mr(g),g=t.next,e=t.next;continue}if(g=t,g===e){Q?Q===1?(g=r1(Ao(g),A,I),ur(g,A,I,C,B,i,2)):Q===2&&l1(g,A,I,C,B,i):ur(Ao(g),A,I,C,B,i,1);break}}}function a1(g){const A=g.prev,I=g,C=g.next;if(gC(A,I,C)>=0)return!1;const B=A.x,i=I.x,Q=C.x,e=A.y,E=I.y,t=C.y,a=Bi?B>Q?B:Q:i>Q?i:Q,l=e>E?e>t?e:t:E>t?E:t;let D=C.next;for(;D!==A;){if(D.x>=a&&D.x<=r&&D.y>=s&&D.y<=l&&Nn(B,e,i,E,Q,t,D.x,D.y)&&gC(D.prev,D,D.next)>=0)return!1;D=D.next}return!0}function s1(g,A,I,C){const B=g.prev,i=g,Q=g.next;if(gC(B,i,Q)>=0)return!1;const e=B.x,E=i.x,t=Q.x,a=B.y,s=i.y,r=Q.y,l=eE?e>t?e:t:E>t?E:t,h=a>s?a>r?a:r:s>r?s:r,c=Lu(l,D,A,I,C),y=Lu(G,h,A,I,C);let S=g.prevZ,k=g.nextZ;for(;S&&S.z>=c&&k&&k.z<=y;){if(S.x>=l&&S.x<=G&&S.y>=D&&S.y<=h&&S!==B&&S!==Q&&Nn(e,a,E,s,t,r,S.x,S.y)&&gC(S.prev,S,S.next)>=0||(S=S.prevZ,k.x>=l&&k.x<=G&&k.y>=D&&k.y<=h&&k!==B&&k!==Q&&Nn(e,a,E,s,t,r,k.x,k.y)&&gC(k.prev,k,k.next)>=0))return!1;k=k.nextZ}for(;S&&S.z>=c;){if(S.x>=l&&S.x<=G&&S.y>=D&&S.y<=h&&S!==B&&S!==Q&&Nn(e,a,E,s,t,r,S.x,S.y)&&gC(S.prev,S,S.next)>=0)return!1;S=S.prevZ}for(;k&&k.z<=y;){if(k.x>=l&&k.x<=G&&k.y>=D&&k.y<=h&&k!==B&&k!==Q&&Nn(e,a,E,s,t,r,k.x,k.y)&&gC(k.prev,k,k.next)>=0)return!1;k=k.nextZ}return!0}function r1(g,A,I){let C=g;do{const B=C.prev,i=C.next.next;!Nw(B,i)&&vm(B,C,C.next,i)&&kr(B,i)&&kr(i,B)&&(A.push(B.i/I|0),A.push(C.i/I|0),A.push(i.i/I|0),Mr(C),Mr(C.next),C=g=i),C=C.next}while(C!==g);return Ao(C)}function l1(g,A,I,C,B,i){let Q=g;do{let e=Q.next.next;for(;e!==Q.prev;){if(Q.i!==e.i&&k1(Q,e)){let E=bm(Q,e);Q=Ao(Q,Q.next),E=Ao(E,E.next),ur(Q,A,I,C,B,i,0),ur(E,A,I,C,B,i,0);return}e=e.next}Q=Q.next}while(Q!==g)}function c1(g,A,I,C){const B=[];let i,Q,e,E,t;for(i=0,Q=A.length;i=I.next.y&&I.next.y!==I.y){const r=I.x+(Q-I.y)*(I.next.x-I.x)/(I.next.y-I.y);if(r<=i&&r>C&&(C=r,B=I.x=I.x&&I.x>=E&&i!==I.x&&Nn(QB.x||I.x===B.x&&S1(B,I)))&&(B=I,a=s)),I=I.next;while(I!==e);return B}function S1(g,A){return gC(g.prev,g,A.prev)<0&&gC(A.next,g,g.next)<0}function G1(g,A,I,C){let B=g;do B.z===0&&(B.z=Lu(B.x,B.y,A,I,C)),B.prevZ=B.prev,B.nextZ=B.next,B=B.next;while(B!==g);B.prevZ.nextZ=null,B.prevZ=null,y1(B)}function y1(g){let A,I,C,B,i,Q,e,E,t=1;do{for(I=g,g=null,i=null,Q=0;I;){for(Q++,C=I,e=0,A=0;A0||E>0&&C;)e!==0&&(E===0||!C||I.z<=C.z)?(B=I,I=I.nextZ,e--):(B=C,C=C.nextZ,E--),i?i.nextZ=B:g=B,B.prevZ=i,i=B;I=C}i.nextZ=null,t*=2}while(Q>1);return g}function Lu(g,A,I,C,B){return g=(g-I)*B|0,A=(A-C)*B|0,g=(g|g<<8)&16711935,g=(g|g<<4)&252645135,g=(g|g<<2)&858993459,g=(g|g<<1)&1431655765,A=(A|A<<8)&16711935,A=(A|A<<4)&252645135,A=(A|A<<2)&858993459,A=(A|A<<1)&1431655765,g|A<<1}function u1(g){let A=g,I=g;do(A.x=(g-Q)*(i-e)&&(g-Q)*(C-e)>=(I-Q)*(A-e)&&(I-Q)*(i-e)>=(B-Q)*(C-e)}function k1(g,A){return g.next.i!==A.i&&g.prev.i!==A.i&&!M1(g,A)&&(kr(g,A)&&kr(A,g)&&d1(g,A)&&(gC(g.prev,g,A.prev)||gC(g,A.prev,A))||Nw(g,A)&&gC(g.prev,g,g.next)>0&&gC(A.prev,A,A.next)>0)}function gC(g,A,I){return(A.y-g.y)*(I.x-A.x)-(A.x-g.x)*(I.y-A.y)}function Nw(g,A){return g.x===A.x&&g.y===A.y}function vm(g,A,I,C){const B=gD(gC(g,A,I)),i=gD(gC(g,A,C)),Q=gD(gC(I,C,g)),e=gD(gC(I,C,A));return!!(B!==i&&Q!==e||B===0&&ID(g,I,A)||i===0&&ID(g,C,A)||Q===0&&ID(I,g,C)||e===0&&ID(I,A,C))}function ID(g,A,I){return A.x<=Math.max(g.x,I.x)&&A.x>=Math.min(g.x,I.x)&&A.y<=Math.max(g.y,I.y)&&A.y>=Math.min(g.y,I.y)}function gD(g){return g>0?1:g<0?-1:0}function M1(g,A){let I=g;do{if(I.i!==g.i&&I.next.i!==g.i&&I.i!==A.i&&I.next.i!==A.i&&vm(I,I.next,g,A))return!0;I=I.next}while(I!==g);return!1}function kr(g,A){return gC(g.prev,g,g.next)<0?gC(g,A,g.next)>=0&&gC(g,g.prev,A)>=0:gC(g,A,g.prev)<0||gC(g,g.next,A)<0}function d1(g,A){let I=g,C=!1;const B=(g.x+A.x)/2,i=(g.y+A.y)/2;do I.y>i!=I.next.y>i&&I.next.y!==I.y&&B<(I.next.x-I.x)*(i-I.y)/(I.next.y-I.y)+I.x&&(C=!C),I=I.next;while(I!==g);return C}function bm(g,A){const I=new Yu(g.i,g.x,g.y),C=new Yu(A.i,A.x,A.y),B=g.next,i=A.prev;return g.next=A,A.prev=g,I.next=B,B.prev=I,C.next=I,I.prev=C,i.next=C,C.prev=i,C}function $F(g,A,I,C){const B=new Yu(g,A,I);return C?(B.next=C.next,B.prev=C,C.next.prev=B,C.next=B):(B.prev=B,B.next=B),B}function Mr(g){g.next.prev=g.prev,g.prev.next=g.next,g.prevZ&&(g.prevZ.nextZ=g.nextZ),g.nextZ&&(g.nextZ.prevZ=g.prevZ)}function Yu(g,A,I){this.i=g,this.x=A,this.y=I,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function p1(g,A,I,C){let B=0;for(let i=A,Q=I-C;i2&&g[A-1].equals(g[0])&&g.pop()}function If(g,A){for(let I=0;INumber.EPSILON){const YA=Math.sqrt(ZA),eI=Math.sqrt(m*m+cA*cA),CI=UA.x-F/YA,aI=UA.y+QA/YA,SI=eA.x-cA/eI,fI=eA.y+m/eI,PA=((SI-CI)*cA-(fI-aI)*m)/(QA*cA-F*m);DA=CI+QA*PA-W.x,GA=aI+F*PA-W.y;const bI=DA*DA+GA*GA;if(bI<=2)return new qA(DA,GA);bA=Math.sqrt(bI/2)}else{let YA=!1;QA>Number.EPSILON?m>Number.EPSILON&&(YA=!0):QA<-Number.EPSILON?m<-Number.EPSILON&&(YA=!0):Math.sign(F)===Math.sign(cA)&&(YA=!0),YA?(DA=-F,GA=QA,bA=Math.sqrt(ZA)):(DA=QA,GA=F,bA=Math.sqrt(ZA/2))}return new qA(DA/bA,GA/bA)}const BA=[];for(let W=0,UA=z.length,eA=UA-1,DA=W+1;W=0;W--){const UA=W/h,eA=l*Math.cos(UA*Math.PI/2),DA=D*Math.sin(UA*Math.PI/2)+G;for(let GA=0,bA=z.length;GA=0;){const DA=eA;let GA=eA-1;GA<0&&(GA=W.length-1);for(let bA=0,QA=a+h*2;bA0)&&l.push(S,k,d),(c!==C-1||E0!=A>0&&this.version++,this._anisotropy=A}get clearcoat(){return this._clearcoat}set clearcoat(A){this._clearcoat>0!=A>0&&this.version++,this._clearcoat=A}get iridescence(){return this._iridescence}set iridescence(A){this._iridescence>0!=A>0&&this.version++,this._iridescence=A}get sheen(){return this._sheen}set sheen(A){this._sheen>0!=A>0&&this.version++,this._sheen=A}get transmission(){return this._transmission}set transmission(A){this._transmission>0!=A>0&&this.version++,this._transmission=A}copy(A){return super.copy(A),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=A.anisotropy,this.anisotropyRotation=A.anisotropyRotation,this.anisotropyMap=A.anisotropyMap,this.clearcoat=A.clearcoat,this.clearcoatMap=A.clearcoatMap,this.clearcoatRoughness=A.clearcoatRoughness,this.clearcoatRoughnessMap=A.clearcoatRoughnessMap,this.clearcoatNormalMap=A.clearcoatNormalMap,this.clearcoatNormalScale.copy(A.clearcoatNormalScale),this.ior=A.ior,this.iridescence=A.iridescence,this.iridescenceMap=A.iridescenceMap,this.iridescenceIOR=A.iridescenceIOR,this.iridescenceThicknessRange=[...A.iridescenceThicknessRange],this.iridescenceThicknessMap=A.iridescenceThicknessMap,this.sheen=A.sheen,this.sheenColor.copy(A.sheenColor),this.sheenColorMap=A.sheenColorMap,this.sheenRoughness=A.sheenRoughness,this.sheenRoughnessMap=A.sheenRoughnessMap,this.transmission=A.transmission,this.transmissionMap=A.transmissionMap,this.thickness=A.thickness,this.thicknessMap=A.thicknessMap,this.attenuationDistance=A.attenuationDistance,this.attenuationColor.copy(A.attenuationColor),this.specularIntensity=A.specularIntensity,this.specularIntensityMap=A.specularIntensityMap,this.specularColor.copy(A.specularColor),this.specularColorMap=A.specularColorMap,this}}class Pm extends hC{constructor(A){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new QI(16777215),this.specular=new QI(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new QI(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=JE,this.normalScale=new qA(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=xr,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(A)}copy(A){return super.copy(A),this.color.copy(A.color),this.specular.copy(A.specular),this.shininess=A.shininess,this.map=A.map,this.lightMap=A.lightMap,this.lightMapIntensity=A.lightMapIntensity,this.aoMap=A.aoMap,this.aoMapIntensity=A.aoMapIntensity,this.emissive.copy(A.emissive),this.emissiveMap=A.emissiveMap,this.emissiveIntensity=A.emissiveIntensity,this.bumpMap=A.bumpMap,this.bumpScale=A.bumpScale,this.normalMap=A.normalMap,this.normalMapType=A.normalMapType,this.normalScale.copy(A.normalScale),this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.specularMap=A.specularMap,this.alphaMap=A.alphaMap,this.envMap=A.envMap,this.combine=A.combine,this.reflectivity=A.reflectivity,this.refractionRatio=A.refractionRatio,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this.wireframeLinecap=A.wireframeLinecap,this.wireframeLinejoin=A.wireframeLinejoin,this.flatShading=A.flatShading,this.fog=A.fog,this}}class Wm extends hC{constructor(A){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new QI(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new QI(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=JE,this.normalScale=new qA(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(A)}copy(A){return super.copy(A),this.color.copy(A.color),this.map=A.map,this.gradientMap=A.gradientMap,this.lightMap=A.lightMap,this.lightMapIntensity=A.lightMapIntensity,this.aoMap=A.aoMap,this.aoMapIntensity=A.aoMapIntensity,this.emissive.copy(A.emissive),this.emissiveMap=A.emissiveMap,this.emissiveIntensity=A.emissiveIntensity,this.bumpMap=A.bumpMap,this.bumpScale=A.bumpScale,this.normalMap=A.normalMap,this.normalMapType=A.normalMapType,this.normalScale.copy(A.normalScale),this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.alphaMap=A.alphaMap,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this.wireframeLinecap=A.wireframeLinecap,this.wireframeLinejoin=A.wireframeLinejoin,this.fog=A.fog,this}}class jm extends hC{constructor(A){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=JE,this.normalScale=new qA(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(A)}copy(A){return super.copy(A),this.bumpMap=A.bumpMap,this.bumpScale=A.bumpScale,this.normalMap=A.normalMap,this.normalMapType=A.normalMapType,this.normalScale.copy(A.normalScale),this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this.flatShading=A.flatShading,this}}class Vm extends hC{constructor(A){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new QI(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new QI(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=JE,this.normalScale=new qA(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=xr,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(A)}copy(A){return super.copy(A),this.color.copy(A.color),this.map=A.map,this.lightMap=A.lightMap,this.lightMapIntensity=A.lightMapIntensity,this.aoMap=A.aoMap,this.aoMapIntensity=A.aoMapIntensity,this.emissive.copy(A.emissive),this.emissiveMap=A.emissiveMap,this.emissiveIntensity=A.emissiveIntensity,this.bumpMap=A.bumpMap,this.bumpScale=A.bumpScale,this.normalMap=A.normalMap,this.normalMapType=A.normalMapType,this.normalScale.copy(A.normalScale),this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.specularMap=A.specularMap,this.alphaMap=A.alphaMap,this.envMap=A.envMap,this.combine=A.combine,this.reflectivity=A.reflectivity,this.refractionRatio=A.refractionRatio,this.wireframe=A.wireframe,this.wireframeLinewidth=A.wireframeLinewidth,this.wireframeLinecap=A.wireframeLinecap,this.wireframeLinejoin=A.wireframeLinejoin,this.flatShading=A.flatShading,this.fog=A.fog,this}}class Xm extends hC{constructor(A){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new QI(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=JE,this.normalScale=new qA(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(A)}copy(A){return super.copy(A),this.defines={MATCAP:""},this.color.copy(A.color),this.matcap=A.matcap,this.map=A.map,this.bumpMap=A.bumpMap,this.bumpScale=A.bumpScale,this.normalMap=A.normalMap,this.normalMapType=A.normalMapType,this.normalScale.copy(A.normalScale),this.displacementMap=A.displacementMap,this.displacementScale=A.displacementScale,this.displacementBias=A.displacementBias,this.alphaMap=A.alphaMap,this.flatShading=A.flatShading,this.fog=A.fog,this}}class zm extends uB{constructor(A){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(A)}copy(A){return super.copy(A),this.scale=A.scale,this.dashSize=A.dashSize,this.gapSize=A.gapSize,this}}function Lt(g,A,I){return!g||!I&&g.constructor===A?g:typeof A.BYTES_PER_ELEMENT=="number"?new A(g):Array.prototype.slice.call(g)}function $m(g){return ArrayBuffer.isView(g)&&!(g instanceof DataView)}function AL(g){function A(B,i){return g[B]-g[i]}const I=g.length,C=new Array(I);for(let B=0;B!==I;++B)C[B]=B;return C.sort(A),C}function Hu(g,A,I){const C=g.length,B=new g.constructor(C);for(let i=0,Q=0;Q!==C;++i){const e=I[i]*A;for(let E=0;E!==A;++E)B[Q++]=g[e+E]}return B}function vM(g,A,I,C){let B=1,i=g[0];for(;i!==void 0&&i[C]===void 0;)i=g[B++];if(i===void 0)return;let Q=i[C];if(Q!==void 0)if(Array.isArray(Q))do Q=i[C],Q!==void 0&&(A.push(i.time),I.push.apply(I,Q)),i=g[B++];while(i!==void 0);else if(Q.toArray!==void 0)do Q=i[C],Q!==void 0&&(A.push(i.time),Q.toArray(I,I.length)),i=g[B++];while(i!==void 0);else do Q=i[C],Q!==void 0&&(A.push(i.time),I.push(Q)),i=g[B++];while(i!==void 0)}function f1(g,A,I,C,B=30){const i=g.clone();i.name=A;const Q=[];for(let E=0;E=C)){s.push(t.times[l]);for(let G=0;Gi.tracks[E].times[0]&&(e=i.tracks[E].times[0]);for(let E=0;E=e.times[D]){const c=D*s+a,y=c+s-a;G=e.values.slice(c,y)}else{const c=e.createInterpolant(),y=a,S=s-a;c.evaluate(i),G=c.resultBuffer.slice(y,S)}E==="quaternion"&&new Pg().fromArray(G).normalize().conjugate().toArray(G);const h=t.times.length;for(let c=0;c=i)){const e=I[1];A=i)break I}Q=C,C=0;break g}break A}for(;C>>1;AI;)--Q;if(++Q,i!==0||Q!==B){i>=Q&&(Q=Math.max(Q,1),i=Q-1);const e=this.getValueSize();this.times=C.slice(i,Q),this.values=this.values.slice(i*e,Q*e)}return this}validate(){let A=!0;const I=this.getValueSize();I-Math.floor(I)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),A=!1);const C=this.times,B=this.values,i=C.length;i===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),A=!1);let Q=null;for(let e=0;e!==i;e++){const E=C[e];if(typeof E=="number"&&isNaN(E)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,E),A=!1;break}if(Q!==null&&Q>E){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,E,Q),A=!1;break}Q=E}if(B!==void 0&&$m(B))for(let e=0,E=B.length;e!==E;++e){const t=B[e];if(isNaN(t)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,t),A=!1;break}}return A}optimize(){const A=this.times.slice(),I=this.values.slice(),C=this.getValueSize(),B=this.getInterpolation()===bD,i=A.length-1;let Q=1;for(let e=1;e0){A[Q]=A[i];for(let e=i*C,E=Q*C,t=0;t!==C;++t)I[E+t]=I[e+t];++Q}return Q!==A.length?(this.times=A.slice(0,Q),this.values=I.slice(0,Q*C)):(this.times=A,this.values=I),this}clone(){const A=this.times.slice(),I=this.values.slice(),C=this.constructor,B=new C(this.name,A,I);return B.createInterpolant=this.createInterpolant,B}}nQ.prototype.TimeBufferType=Float32Array;nQ.prototype.ValueBufferType=Float32Array;nQ.prototype.DefaultInterpolation=zt;class oo extends nQ{}oo.prototype.ValueTypeName="bool";oo.prototype.ValueBufferType=Array;oo.prototype.DefaultInterpolation=$n;oo.prototype.InterpolantFactoryMethodLinear=void 0;oo.prototype.InterpolantFactoryMethodSmooth=void 0;class OM extends nQ{}OM.prototype.ValueTypeName="color";class ga extends nQ{}ga.prototype.ValueTypeName="number";class CL extends Da{constructor(A,I,C,B){super(A,I,C,B)}interpolate_(A,I,C,B){const i=this.resultBuffer,Q=this.sampleValues,e=this.valueSize,E=(C-I)/(B-I);let t=A*e;for(let a=t+e;t!==a;t+=4)Pg.slerpFlat(i,0,Q,t-e,Q,t,E);return i}}class NE extends nQ{InterpolantFactoryMethodLinear(A){return new CL(this.times,this.values,this.getValueSize(),A)}}NE.prototype.ValueTypeName="quaternion";NE.prototype.DefaultInterpolation=zt;NE.prototype.InterpolantFactoryMethodSmooth=void 0;class no extends nQ{}no.prototype.ValueTypeName="string";no.prototype.ValueBufferType=Array;no.prototype.DefaultInterpolation=$n;no.prototype.InterpolantFactoryMethodLinear=void 0;no.prototype.InterpolantFactoryMethodSmooth=void 0;class Ca extends nQ{}Ca.prototype.ValueTypeName="vector";class Ba{constructor(A,I=-1,C,B=aw){this.name=A,this.tracks=C,this.duration=I,this.blendMode=B,this.uuid=ni(),this.duration<0&&this.resetDuration()}static parse(A){const I=[],C=A.tracks,B=1/(A.fps||1);for(let Q=0,e=C.length;Q!==e;++Q)I.push(q1(C[Q]).scale(B));const i=new this(A.name,A.duration,I,A.blendMode);return i.uuid=A.uuid,i}static toJSON(A){const I=[],C=A.tracks,B={name:A.name,duration:A.duration,tracks:I,uuid:A.uuid,blendMode:A.blendMode};for(let i=0,Q=C.length;i!==Q;++i)I.push(nQ.toJSON(C[i]));return B}static CreateFromMorphTargetSequence(A,I,C,B){const i=I.length,Q=[];for(let e=0;e1){const s=a[1];let r=B[s];r||(B[s]=r=[]),r.push(t)}}const Q=[];for(const e in B)Q.push(this.CreateFromMorphTargetSequence(e,B[e],I,C));return Q}static parseAnimation(A,I){if(!A)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const C=function(s,r,l,D,G){if(l.length!==0){const h=[],c=[];vM(l,h,c,D),h.length!==0&&G.push(new s(r,h,c))}},B=[],i=A.name||"default",Q=A.fps||30,e=A.blendMode;let E=A.length||-1;const t=A.hierarchy||[];for(let s=0;s{I&&I(i),this.manager.itemEnd(A)},0),i;if(zQ[A]!==void 0){zQ[A].push({onLoad:I,onProgress:C,onError:B});return}zQ[A]=[],zQ[A].push({onLoad:I,onProgress:C,onError:B});const Q=new Request(A,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),e=this.mimeType,E=this.responseType;fetch(Q).then(t=>{if(t.status===200||t.status===0){if(t.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||t.body===void 0||t.body.getReader===void 0)return t;const a=zQ[A],s=t.body.getReader(),r=t.headers.get("Content-Length")||t.headers.get("X-File-Size"),l=r?parseInt(r):0,D=l!==0;let G=0;const h=new ReadableStream({start(c){y();function y(){s.read().then(({done:S,value:k})=>{if(S)c.close();else{G+=k.byteLength;const f=new ProgressEvent("progress",{lengthComputable:D,loaded:G,total:l});for(let d=0,N=a.length;d{switch(E){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then(a=>new DOMParser().parseFromString(a,e));case"json":return t.json();default:if(e===void 0)return t.text();{const s=/charset="?([^;"\s]*)"?/i.exec(e),r=s&&s[1]?s[1].toLowerCase():void 0,l=new TextDecoder(r);return t.arrayBuffer().then(D=>l.decode(D))}}}).then(t=>{te.add(A,t);const a=zQ[A];delete zQ[A];for(let s=0,r=a.length;s{const a=zQ[A];if(a===void 0)throw this.manager.itemError(A),t;delete zQ[A];for(let s=0,r=a.length;s{this.manager.itemEnd(A)}),this.manager.itemStart(A)}setResponseType(A){return this.responseType=A,this}setMimeType(A){return this.mimeType=A,this}}class L1 extends EB{constructor(A){super(A)}load(A,I,C,B){const i=this,Q=new jB(this.manager);Q.setPath(this.path),Q.setRequestHeader(this.requestHeader),Q.setWithCredentials(this.withCredentials),Q.load(A,function(e){try{I(i.parse(JSON.parse(e)))}catch(E){B?B(E):console.error(E),i.manager.itemError(A)}},C,B)}parse(A){const I=[];for(let C=0;C0:B.vertexColors=A.vertexColors),A.uniforms!==void 0)for(const i in A.uniforms){const Q=A.uniforms[i];switch(B.uniforms[i]={},Q.type){case"t":B.uniforms[i].value=C(Q.value);break;case"c":B.uniforms[i].value=new QI().setHex(Q.value);break;case"v2":B.uniforms[i].value=new qA().fromArray(Q.value);break;case"v3":B.uniforms[i].value=new O().fromArray(Q.value);break;case"v4":B.uniforms[i].value=new Sg().fromArray(Q.value);break;case"m3":B.uniforms[i].value=new PI().fromArray(Q.value);break;case"m4":B.uniforms[i].value=new dI().fromArray(Q.value);break;default:B.uniforms[i].value=Q.value}}if(A.defines!==void 0&&(B.defines=A.defines),A.vertexShader!==void 0&&(B.vertexShader=A.vertexShader),A.fragmentShader!==void 0&&(B.fragmentShader=A.fragmentShader),A.glslVersion!==void 0&&(B.glslVersion=A.glslVersion),A.extensions!==void 0)for(const i in A.extensions)B.extensions[i]=A.extensions[i];if(A.lights!==void 0&&(B.lights=A.lights),A.clipping!==void 0&&(B.clipping=A.clipping),A.size!==void 0&&(B.size=A.size),A.sizeAttenuation!==void 0&&(B.sizeAttenuation=A.sizeAttenuation),A.map!==void 0&&(B.map=C(A.map)),A.matcap!==void 0&&(B.matcap=C(A.matcap)),A.alphaMap!==void 0&&(B.alphaMap=C(A.alphaMap)),A.bumpMap!==void 0&&(B.bumpMap=C(A.bumpMap)),A.bumpScale!==void 0&&(B.bumpScale=A.bumpScale),A.normalMap!==void 0&&(B.normalMap=C(A.normalMap)),A.normalMapType!==void 0&&(B.normalMapType=A.normalMapType),A.normalScale!==void 0){let i=A.normalScale;Array.isArray(i)===!1&&(i=[i,i]),B.normalScale=new qA().fromArray(i)}return A.displacementMap!==void 0&&(B.displacementMap=C(A.displacementMap)),A.displacementScale!==void 0&&(B.displacementScale=A.displacementScale),A.displacementBias!==void 0&&(B.displacementBias=A.displacementBias),A.roughnessMap!==void 0&&(B.roughnessMap=C(A.roughnessMap)),A.metalnessMap!==void 0&&(B.metalnessMap=C(A.metalnessMap)),A.emissiveMap!==void 0&&(B.emissiveMap=C(A.emissiveMap)),A.emissiveIntensity!==void 0&&(B.emissiveIntensity=A.emissiveIntensity),A.specularMap!==void 0&&(B.specularMap=C(A.specularMap)),A.specularIntensityMap!==void 0&&(B.specularIntensityMap=C(A.specularIntensityMap)),A.specularColorMap!==void 0&&(B.specularColorMap=C(A.specularColorMap)),A.envMap!==void 0&&(B.envMap=C(A.envMap)),A.envMapIntensity!==void 0&&(B.envMapIntensity=A.envMapIntensity),A.reflectivity!==void 0&&(B.reflectivity=A.reflectivity),A.refractionRatio!==void 0&&(B.refractionRatio=A.refractionRatio),A.lightMap!==void 0&&(B.lightMap=C(A.lightMap)),A.lightMapIntensity!==void 0&&(B.lightMapIntensity=A.lightMapIntensity),A.aoMap!==void 0&&(B.aoMap=C(A.aoMap)),A.aoMapIntensity!==void 0&&(B.aoMapIntensity=A.aoMapIntensity),A.gradientMap!==void 0&&(B.gradientMap=C(A.gradientMap)),A.clearcoatMap!==void 0&&(B.clearcoatMap=C(A.clearcoatMap)),A.clearcoatRoughnessMap!==void 0&&(B.clearcoatRoughnessMap=C(A.clearcoatRoughnessMap)),A.clearcoatNormalMap!==void 0&&(B.clearcoatNormalMap=C(A.clearcoatNormalMap)),A.clearcoatNormalScale!==void 0&&(B.clearcoatNormalScale=new qA().fromArray(A.clearcoatNormalScale)),A.iridescenceMap!==void 0&&(B.iridescenceMap=C(A.iridescenceMap)),A.iridescenceThicknessMap!==void 0&&(B.iridescenceThicknessMap=C(A.iridescenceThicknessMap)),A.transmissionMap!==void 0&&(B.transmissionMap=C(A.transmissionMap)),A.thicknessMap!==void 0&&(B.thicknessMap=C(A.thicknessMap)),A.anisotropyMap!==void 0&&(B.anisotropyMap=C(A.anisotropyMap)),A.sheenColorMap!==void 0&&(B.sheenColorMap=C(A.sheenColorMap)),A.sheenRoughnessMap!==void 0&&(B.sheenRoughnessMap=C(A.sheenRoughnessMap)),B}setTextures(A){return this.textures=A,this}static createMaterialFromType(A){const I={ShadowMaterial:_m,SpriteMaterial:fM,RawShaderMaterial:Zm,ShaderMaterial:LC,PointsMaterial:yw,MeshPhysicalMaterial:YQ,MeshStandardMaterial:zr,MeshPhongMaterial:Pm,MeshToonMaterial:Wm,MeshNormalMaterial:jm,MeshLambertMaterial:Vm,MeshDepthMaterial:Dw,MeshDistanceMaterial:hw,MeshBasicMaterial:UC,MeshMatcapMaterial:Xm,LineDashedMaterial:zm,LineBasicMaterial:uB,Material:hC};return new I[A]}}class KQ{static decodeText(A){if(typeof TextDecoder<"u")return new TextDecoder().decode(A);let I="";for(let C=0,B=A.length;C0){const E=new _M(I);i=new dr(E),i.setCrossOrigin(this.crossOrigin);for(let t=0,a=A.length;t0){B=new dr(this.manager),B.setCrossOrigin(this.crossOrigin);for(let Q=0,e=A.length;Q{const h=new sC;h.min.fromArray(G.boxMin),h.max.fromArray(G.boxMax);const c=new TC;return c.radius=G.sphereRadius,c.center.fromArray(G.sphereCenter),{boxInitialized:G.boxInitialized,box:h,sphereInitialized:G.sphereInitialized,sphere:c}}),Q._maxGeometryCount=A.maxGeometryCount,Q._maxVertexCount=A.maxVertexCount,Q._maxIndexCount=A.maxIndexCount,Q._geometryInitialized=A.geometryInitialized,Q._geometryCount=A.geometryCount,Q._matricesTexture=t(A.matricesTexture.uuid);break;case"LOD":Q=new Km;break;case"Line":Q=new De(e(A.geometry),E(A.material));break;case"LineLoop":Q=new JM(e(A.geometry),E(A.material));break;case"LineSegments":Q=new tQ(e(A.geometry),E(A.material));break;case"PointCloud":case"Points":Q=new qM(e(A.geometry),E(A.material));break;case"Sprite":Q=new Rm(E(A.material));break;case"Group":Q=new KB;break;case"Bone":Q=new Gw;break;default:Q=new og}if(Q.uuid=A.uuid,A.name!==void 0&&(Q.name=A.name),A.matrix!==void 0?(Q.matrix.fromArray(A.matrix),A.matrixAutoUpdate!==void 0&&(Q.matrixAutoUpdate=A.matrixAutoUpdate),Q.matrixAutoUpdate&&Q.matrix.decompose(Q.position,Q.quaternion,Q.scale)):(A.position!==void 0&&Q.position.fromArray(A.position),A.rotation!==void 0&&Q.rotation.fromArray(A.rotation),A.quaternion!==void 0&&Q.quaternion.fromArray(A.quaternion),A.scale!==void 0&&Q.scale.fromArray(A.scale)),A.up!==void 0&&Q.up.fromArray(A.up),A.castShadow!==void 0&&(Q.castShadow=A.castShadow),A.receiveShadow!==void 0&&(Q.receiveShadow=A.receiveShadow),A.shadow&&(A.shadow.bias!==void 0&&(Q.shadow.bias=A.shadow.bias),A.shadow.normalBias!==void 0&&(Q.shadow.normalBias=A.shadow.normalBias),A.shadow.radius!==void 0&&(Q.shadow.radius=A.shadow.radius),A.shadow.mapSize!==void 0&&Q.shadow.mapSize.fromArray(A.shadow.mapSize),A.shadow.camera!==void 0&&(Q.shadow.camera=this.parseObject(A.shadow.camera))),A.visible!==void 0&&(Q.visible=A.visible),A.frustumCulled!==void 0&&(Q.frustumCulled=A.frustumCulled),A.renderOrder!==void 0&&(Q.renderOrder=A.renderOrder),A.userData!==void 0&&(Q.userData=A.userData),A.layers!==void 0&&(Q.layers.mask=A.layers),A.children!==void 0){const r=A.children;for(let l=0;l"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(A){return this.options=A,this}load(A,I,C,B){A===void 0&&(A=""),this.path!==void 0&&(A=this.path+A),A=this.manager.resolveURL(A);const i=this,Q=te.get(A);if(Q!==void 0){if(i.manager.itemStart(A),Q.then){Q.then(t=>{I&&I(t),i.manager.itemEnd(A)}).catch(t=>{B&&B(t)});return}return setTimeout(function(){I&&I(Q),i.manager.itemEnd(A)},0),Q}const e={};e.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",e.headers=this.requestHeader;const E=fetch(A,e).then(function(t){return t.blob()}).then(function(t){return createImageBitmap(t,Object.assign(i.options,{colorSpaceConversion:"none"}))}).then(function(t){return te.add(A,t),I&&I(t),i.manager.itemEnd(A),t}).catch(function(t){B&&B(t),te.remove(A),i.manager.itemError(A),i.manager.itemEnd(A)});te.add(A,E),i.manager.itemStart(A)}}let CD;class XM{static getContext(){return CD===void 0&&(CD=new(window.AudioContext||window.webkitAudioContext)),CD}static setContext(A){CD=A}}class O1 extends EB{constructor(A){super(A)}load(A,I,C,B){const i=this,Q=new jB(this.manager);Q.setResponseType("arraybuffer"),Q.setPath(this.path),Q.setRequestHeader(this.requestHeader),Q.setWithCredentials(this.withCredentials),Q.load(A,function(E){try{const t=E.slice(0);XM.getContext().decodeAudioData(t,function(s){I(s)}).catch(e)}catch(t){e(t)}},C,B);function e(E){B?B(E):console.error(E),i.manager.itemError(A)}}}const of=new dI,nf=new dI,st=new dI;class _1{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new dC,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new dC,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(A){const I=this._cache;if(I.focus!==A.focus||I.fov!==A.fov||I.aspect!==A.aspect*this.aspect||I.near!==A.near||I.far!==A.far||I.zoom!==A.zoom||I.eyeSep!==this.eyeSep){I.focus=A.focus,I.fov=A.fov,I.aspect=A.aspect*this.aspect,I.near=A.near,I.far=A.far,I.zoom=A.zoom,I.eyeSep=this.eyeSep,st.copy(A.projectionMatrix);const B=I.eyeSep/2,i=B*I.near/I.focus,Q=I.near*Math.tan(vt*I.fov*.5)/I.zoom;let e,E;nf.elements[12]=-B,of.elements[12]=B,e=-Q*I.aspect+i,E=Q*I.aspect+i,st.elements[0]=2*I.near/(E-e),st.elements[8]=(E+e)/(E-e),this.cameraL.projectionMatrix.copy(st),e=-Q*I.aspect-i,E=Q*I.aspect-i,st.elements[0]=2*I.near/(E-e),st.elements[8]=(E+e)/(E-e),this.cameraR.projectionMatrix.copy(st)}this.cameraL.matrixWorld.copy(A.matrixWorld).multiply(nf),this.cameraR.matrixWorld.copy(A.matrixWorld).multiply(of)}}class zM{constructor(A=!0){this.autoStart=A,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=af(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let A=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const I=af();A=(I-this.oldTime)/1e3,this.oldTime=I,this.elapsedTime+=A}return A}}function af(){return(typeof performance>"u"?Date:performance).now()}const rt=new O,sf=new Pg,Z1=new O,lt=new O;class P1 extends og{constructor(){super(),this.type="AudioListener",this.context=XM.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new zM}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(A){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=A,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(A){return this.gain.gain.setTargetAtTime(A,this.context.currentTime,.01),this}updateMatrixWorld(A){super.updateMatrixWorld(A);const I=this.context.listener,C=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(rt,sf,Z1),lt.set(0,0,-1).applyQuaternion(sf),I.positionX){const B=this.context.currentTime+this.timeDelta;I.positionX.linearRampToValueAtTime(rt.x,B),I.positionY.linearRampToValueAtTime(rt.y,B),I.positionZ.linearRampToValueAtTime(rt.z,B),I.forwardX.linearRampToValueAtTime(lt.x,B),I.forwardY.linearRampToValueAtTime(lt.y,B),I.forwardZ.linearRampToValueAtTime(lt.z,B),I.upX.linearRampToValueAtTime(C.x,B),I.upY.linearRampToValueAtTime(C.y,B),I.upZ.linearRampToValueAtTime(C.z,B)}else I.setPosition(rt.x,rt.y,rt.z),I.setOrientation(lt.x,lt.y,lt.z,C.x,C.y,C.z)}}class rL extends og{constructor(A){super(),this.type="Audio",this.listener=A,this.context=A.context,this.gain=this.context.createGain(),this.gain.connect(A.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(A){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=A,this.connect(),this}setMediaElementSource(A){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(A),this.connect(),this}setMediaStreamSource(A){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(A),this.connect(),this}setBuffer(A){return this.buffer=A,this.sourceType="buffer",this.autoplay&&this.play(),this}play(A=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+A;const I=this.context.createBufferSource();return I.buffer=this.buffer,I.loop=this.loop,I.loopStart=this.loopStart,I.loopEnd=this.loopEnd,I.onended=this.onEnded.bind(this),I.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=I,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let A=1,I=this.filters.length;A0){this.source.disconnect(this.filters[0]);for(let A=1,I=this.filters.length;A0&&this._mixBufferRegionAdditive(C,B,this._addIndex*I,1,I);for(let E=I,t=I+I;E!==t;++E)if(C[E]!==C[E+I]){e.setValue(C,B);break}}saveOriginalState(){const A=this.binding,I=this.buffer,C=this.valueSize,B=C*this._origIndex;A.getValue(I,B);for(let i=C,Q=B;i!==Q;++i)I[i]=I[B+i%C];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const A=this.valueSize*3;this.binding.setValue(this.buffer,A)}_setAdditiveIdentityNumeric(){const A=this._addIndex*this.valueSize,I=A+this.valueSize;for(let C=A;C=.5)for(let Q=0;Q!==i;++Q)A[I+Q]=A[C+Q]}_slerp(A,I,C,B){Pg.slerpFlat(A,I,A,I,A,C,B)}_slerpAdditive(A,I,C,B,i){const Q=this._workIndex*i;Pg.multiplyQuaternionsFlat(A,Q,A,I,A,C),Pg.slerpFlat(A,I,A,I,A,Q,B)}_lerp(A,I,C,B,i){const Q=1-B;for(let e=0;e!==i;++e){const E=I+e;A[E]=A[E]*Q+A[C+e]*B}}_lerpAdditive(A,I,C,B,i){for(let Q=0;Q!==i;++Q){const e=I+Q;A[e]=A[e]+A[C+Q]*B}}}const $M="\\[\\]\\.:\\/",X1=new RegExp("["+$M+"]","g"),Ad="[^"+$M+"]",z1="[^"+$M.replace("\\.","")+"]",$1=/((?:WC+[\/:])*)/.source.replace("WC",Ad),AZ=/(WCOD+)?/.source.replace("WCOD",z1),IZ=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Ad),gZ=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Ad),CZ=new RegExp("^"+$1+AZ+IZ+gZ+"$"),BZ=["material","materials","bones","map"];class iZ{constructor(A,I,C){const B=C||Dg.parseTrackName(I);this._targetGroup=A,this._bindings=A.subscribe_(I,B)}getValue(A,I){this.bind();const C=this._targetGroup.nCachedObjects_,B=this._bindings[C];B!==void 0&&B.getValue(A,I)}setValue(A,I){const C=this._bindings;for(let B=this._targetGroup.nCachedObjects_,i=C.length;B!==i;++B)C[B].setValue(A,I)}bind(){const A=this._bindings;for(let I=this._targetGroup.nCachedObjects_,C=A.length;I!==C;++I)A[I].bind()}unbind(){const A=this._bindings;for(let I=this._targetGroup.nCachedObjects_,C=A.length;I!==C;++I)A[I].unbind()}}class Dg{constructor(A,I,C){this.path=I,this.parsedPath=C||Dg.parseTrackName(I),this.node=Dg.findNode(A,this.parsedPath.nodeName),this.rootNode=A,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(A,I,C){return A&&A.isAnimationObjectGroup?new Dg.Composite(A,I,C):new Dg(A,I,C)}static sanitizeNodeName(A){return A.replace(/\s/g,"_").replace(X1,"")}static parseTrackName(A){const I=CZ.exec(A);if(I===null)throw new Error("PropertyBinding: Cannot parse trackName: "+A);const C={nodeName:I[2],objectName:I[3],objectIndex:I[4],propertyName:I[5],propertyIndex:I[6]},B=C.nodeName&&C.nodeName.lastIndexOf(".");if(B!==void 0&&B!==-1){const i=C.nodeName.substring(B+1);BZ.indexOf(i)!==-1&&(C.nodeName=C.nodeName.substring(0,B),C.objectName=i)}if(C.propertyName===null||C.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+A);return C}static findNode(A,I){if(I===void 0||I===""||I==="."||I===-1||I===A.name||I===A.uuid)return A;if(A.skeleton){const C=A.skeleton.getBoneByName(I);if(C!==void 0)return C}if(A.children){const C=function(i){for(let Q=0;Q=i){const s=i++,r=A[s];I[r.uuid]=a,A[a]=r,I[t]=s,A[s]=E;for(let l=0,D=B;l!==D;++l){const G=C[l],h=G[s],c=G[a];G[a]=h,G[s]=c}}}this.nCachedObjects_=i}uncache(){const A=this._objects,I=this._indicesByUUID,C=this._bindings,B=C.length;let i=this.nCachedObjects_,Q=A.length;for(let e=0,E=arguments.length;e!==E;++e){const t=arguments[e],a=t.uuid,s=I[a];if(s!==void 0)if(delete I[a],s0&&(I[l.uuid]=s),A[s]=l,A.pop();for(let D=0,G=B;D!==G;++D){const h=C[D];h[s]=h[r],h.pop()}}}this.nCachedObjects_=i}subscribe_(A,I){const C=this._bindingsIndicesByPath;let B=C[A];const i=this._bindings;if(B!==void 0)return i[B];const Q=this._paths,e=this._parsedPaths,E=this._objects,t=E.length,a=this.nCachedObjects_,s=new Array(t);B=i.length,C[A]=B,Q.push(A),e.push(I),i.push(s);for(let r=a,l=E.length;r!==l;++r){const D=E[r];s[r]=new Dg(D,A,I)}return s}unsubscribe_(A){const I=this._bindingsIndicesByPath,C=I[A];if(C!==void 0){const B=this._paths,i=this._parsedPaths,Q=this._bindings,e=Q.length-1,E=Q[e],t=A[e];I[t]=C,Q[C]=E,Q.pop(),i[C]=i[e],i.pop(),B[C]=B[e],B.pop()}}}class cL{constructor(A,I,C=null,B=I.blendMode){this._mixer=A,this._clip=I,this._localRoot=C,this.blendMode=B;const i=I.tracks,Q=i.length,e=new Array(Q),E={endingStart:Kt,endingEnd:Kt};for(let t=0;t!==Q;++t){const a=i[t].createInterpolant(null);e[t]=a,a.settings=E}this._interpolantSettings=E,this._interpolants=e,this._propertyBindings=new Array(Q),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=Bm,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(A){return this._startTime=A,this}setLoop(A,I){return this.loop=A,this.repetitions=I,this}setEffectiveWeight(A){return this.weight=A,this._effectiveWeight=this.enabled?A:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(A){return this._scheduleFading(A,0,1)}fadeOut(A){return this._scheduleFading(A,1,0)}crossFadeFrom(A,I,C){if(A.fadeOut(I),this.fadeIn(I),C){const B=this._clip.duration,i=A._clip.duration,Q=i/B,e=B/i;A.warp(1,Q,I),this.warp(e,1,I)}return this}crossFadeTo(A,I,C){return A.crossFadeFrom(this,I,C)}stopFading(){const A=this._weightInterpolant;return A!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(A)),this}setEffectiveTimeScale(A){return this.timeScale=A,this._effectiveTimeScale=this.paused?0:A,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(A){return this.timeScale=this._clip.duration/A,this.stopWarping()}syncWith(A){return this.time=A.time,this.timeScale=A.timeScale,this.stopWarping()}halt(A){return this.warp(this._effectiveTimeScale,0,A)}warp(A,I,C){const B=this._mixer,i=B.time,Q=this.timeScale;let e=this._timeScaleInterpolant;e===null&&(e=B._lendControlInterpolant(),this._timeScaleInterpolant=e);const E=e.parameterPositions,t=e.sampleValues;return E[0]=i,E[1]=i+C,t[0]=A/Q,t[1]=I/Q,this}stopWarping(){const A=this._timeScaleInterpolant;return A!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(A)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(A,I,C,B){if(!this.enabled){this._updateWeight(A);return}const i=this._startTime;if(i!==null){const E=(A-i)*C;E<0||C===0?I=0:(this._startTime=null,I=C*E)}I*=this._updateTimeScale(A);const Q=this._updateTime(I),e=this._updateWeight(A);if(e>0){const E=this._interpolants,t=this._propertyBindings;switch(this.blendMode){case DM:for(let a=0,s=E.length;a!==s;++a)E[a].evaluate(Q),t[a].accumulateAdditive(e);break;case aw:default:for(let a=0,s=E.length;a!==s;++a)E[a].evaluate(Q),t[a].accumulate(B,e)}}}_updateWeight(A){let I=0;if(this.enabled){I=this.weight;const C=this._weightInterpolant;if(C!==null){const B=C.evaluate(A)[0];I*=B,A>C.parameterPositions[1]&&(this.stopFading(),B===0&&(this.enabled=!1))}}return this._effectiveWeight=I,I}_updateTimeScale(A){let I=0;if(!this.paused){I=this.timeScale;const C=this._timeScaleInterpolant;if(C!==null){const B=C.evaluate(A)[0];I*=B,A>C.parameterPositions[1]&&(this.stopWarping(),I===0?this.paused=!0:this.timeScale=I)}}return this._effectiveTimeScale=I,I}_updateTime(A){const I=this._clip.duration,C=this.loop;let B=this.time+A,i=this._loopCount;const Q=C===im;if(A===0)return i===-1?B:Q&&(i&1)===1?I-B:B;if(C===Cm){i===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));A:{if(B>=I)B=I;else if(B<0)B=0;else{this.time=B;break A}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=B,this._mixer.dispatchEvent({type:"finished",action:this,direction:A<0?-1:1})}}else{if(i===-1&&(A>=0?(i=0,this._setEndings(!0,this.repetitions===0,Q)):this._setEndings(this.repetitions===0,!0,Q)),B>=I||B<0){const e=Math.floor(B/I);B-=I*e,i+=Math.abs(e);const E=this.repetitions-i;if(E<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,B=A>0?I:0,this.time=B,this._mixer.dispatchEvent({type:"finished",action:this,direction:A>0?1:-1});else{if(E===1){const t=A<0;this._setEndings(t,!t,Q)}else this._setEndings(!1,!1,Q);this._loopCount=i,this.time=B,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:e})}}else this.time=B;if(Q&&(i&1)===1)return I-B}return B}_setEndings(A,I,C){const B=this._interpolantSettings;C?(B.endingStart=Jt,B.endingEnd=Jt):(A?B.endingStart=this.zeroSlopeAtStart?Jt:Kt:B.endingStart=cr,I?B.endingEnd=this.zeroSlopeAtEnd?Jt:Kt:B.endingEnd=cr)}_scheduleFading(A,I,C){const B=this._mixer,i=B.time;let Q=this._weightInterpolant;Q===null&&(Q=B._lendControlInterpolant(),this._weightInterpolant=Q);const e=Q.parameterPositions,E=Q.sampleValues;return e[0]=i,E[0]=I,e[1]=i+A,E[1]=C,this}}const eZ=new Float32Array(1);class EZ extends ue{constructor(A){super(),this._root=A,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(A,I){const C=A._localRoot||this._root,B=A._clip.tracks,i=B.length,Q=A._propertyBindings,e=A._interpolants,E=C.uuid,t=this._bindingsByRootAndName;let a=t[E];a===void 0&&(a={},t[E]=a);for(let s=0;s!==i;++s){const r=B[s],l=r.name;let D=a[l];if(D!==void 0)++D.referenceCount,Q[s]=D;else{if(D=Q[s],D!==void 0){D._cacheIndex===null&&(++D.referenceCount,this._addInactiveBinding(D,E,l));continue}const G=I&&I._propertyBindings[s].binding.parsedPath;D=new lL(Dg.create(C,l,G),r.ValueTypeName,r.getValueSize()),++D.referenceCount,this._addInactiveBinding(D,E,l),Q[s]=D}e[s].resultBuffer=D.buffer}}_activateAction(A){if(!this._isActiveAction(A)){if(A._cacheIndex===null){const C=(A._localRoot||this._root).uuid,B=A._clip.uuid,i=this._actionsByClip[B];this._bindAction(A,i&&i.knownActions[0]),this._addInactiveAction(A,B,C)}const I=A._propertyBindings;for(let C=0,B=I.length;C!==B;++C){const i=I[C];i.useCount++===0&&(this._lendBinding(i),i.saveOriginalState())}this._lendAction(A)}}_deactivateAction(A){if(this._isActiveAction(A)){const I=A._propertyBindings;for(let C=0,B=I.length;C!==B;++C){const i=I[C];--i.useCount===0&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(A)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const A=this;this.stats={actions:{get total(){return A._actions.length},get inUse(){return A._nActiveActions}},bindings:{get total(){return A._bindings.length},get inUse(){return A._nActiveBindings}},controlInterpolants:{get total(){return A._controlInterpolants.length},get inUse(){return A._nActiveControlInterpolants}}}}_isActiveAction(A){const I=A._cacheIndex;return I!==null&&I=0;--C)A[C].stop();return this}update(A){A*=this.timeScale;const I=this._actions,C=this._nActiveActions,B=this.time+=A,i=Math.sign(A),Q=this._accuIndex^=1;for(let t=0;t!==C;++t)I[t]._update(B,A,i,Q);const e=this._bindings,E=this._nActiveBindings;for(let t=0;t!==E;++t)e[t].apply(Q);return this}setTime(A){this.time=0;for(let I=0;Ithis.max.x||A.ythis.max.y)}containsBox(A){return this.min.x<=A.min.x&&A.max.x<=this.max.x&&this.min.y<=A.min.y&&A.max.y<=this.max.y}getParameter(A,I){return I.set((A.x-this.min.x)/(this.max.x-this.min.x),(A.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(A){return!(A.max.xthis.max.x||A.max.ythis.max.y)}clampPoint(A,I){return I.copy(A).clamp(this.min,this.max)}distanceToPoint(A){return this.clampPoint(A,cf).distanceTo(A)}intersect(A){return this.min.max(A.min),this.max.min(A.max),this.isEmpty()&&this.makeEmpty(),this}union(A){return this.min.min(A.min),this.max.max(A.max),this}translate(A){return this.min.add(A),this.max.add(A),this}equals(A){return A.min.equals(this.min)&&A.max.equals(this.max)}}const Df=new O,BD=new O;class rZ{constructor(A=new O,I=new O){this.start=A,this.end=I}set(A,I){return this.start.copy(A),this.end.copy(I),this}copy(A){return this.start.copy(A.start),this.end.copy(A.end),this}getCenter(A){return A.addVectors(this.start,this.end).multiplyScalar(.5)}delta(A){return A.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(A,I){return this.delta(I).multiplyScalar(A).add(this.start)}closestPointToPointParameter(A,I){Df.subVectors(A,this.start),BD.subVectors(this.end,this.start);const C=BD.dot(BD);let i=BD.dot(Df)/C;return I&&(i=nC(i,0,1)),i}closestPointToPoint(A,I,C){const B=this.closestPointToPointParameter(A,I);return this.delta(C).multiplyScalar(B).add(this.start)}applyMatrix4(A){return this.start.applyMatrix4(A),this.end.applyMatrix4(A),this}equals(A){return A.start.equals(this.start)&&A.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const hf=new O;class lZ extends og{constructor(A,I){super(),this.light=A,this.matrix=A.matrixWorld,this.matrixAutoUpdate=!1,this.color=I,this.type="SpotLightHelper";const C=new WI,B=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let Q=0,e=1,E=32;Q1)for(let s=0;s.99999)this.quaternion.set(0,0,0,1);else if(A.y<-.99999)this.quaternion.set(1,0,0,0);else{uf.set(A.z,0,-A.x).normalize();const I=Math.acos(A.y);this.quaternion.setFromAxisAngle(uf,I)}}setLength(A,I=A*.2,C=I*.2){this.line.scale.set(1,Math.max(1e-4,A-I),1),this.line.updateMatrix(),this.cone.scale.set(C,I,C),this.cone.position.y=A,this.cone.updateMatrix()}setColor(A){this.line.material.color.set(A),this.cone.material.color.set(A)}copy(A){return super.copy(A,!1),this.line.copy(A.line),this.cone.copy(A.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class UZ extends tQ{constructor(A=1){const I=[0,0,0,A,0,0,0,0,0,0,A,0,0,0,0,0,0,A],C=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],B=new WI;B.setAttribute("position",new GI(I,3)),B.setAttribute("color",new GI(C,3));const i=new uB({vertexColors:!0,toneMapped:!1});super(B,i),this.type="AxesHelper"}setColors(A,I,C){const B=new QI,i=this.geometry.attributes.color.array;return B.set(A),B.toArray(i,0),B.toArray(i,3),B.set(I),B.toArray(i,6),B.toArray(i,9),B.set(C),B.toArray(i,12),B.toArray(i,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class We{constructor(){this.type="ShapePath",this.color=new QI,this.subPaths=[],this.currentPath=null}moveTo(A,I){return this.currentPath=new wE,this.subPaths.push(this.currentPath),this.currentPath.moveTo(A,I),this}lineTo(A,I){return this.currentPath.lineTo(A,I),this}quadraticCurveTo(A,I,C,B){return this.currentPath.quadraticCurveTo(A,I,C,B),this}bezierCurveTo(A,I,C,B,i,Q){return this.currentPath.bezierCurveTo(A,I,C,B,i,Q),this}splineThru(A){return this.currentPath.splineThru(A),this}toShapes(A){function I(c){const y=[];for(let S=0,k=c.length;SNumber.EPSILON){if(U<0&&(N=y[d],P=-P,q=y[f],U=-U),c.yq.y)continue;if(c.y===N.y){if(c.x===N.x)return!0}else{const K=U*(c.x-N.x)-P*(c.y-N.y);if(K===0)return!0;if(K<0)continue;k=!k}}else{if(c.y!==N.y)continue;if(q.x<=c.x&&c.x<=N.x||N.x<=c.x&&c.x<=q.x)return!0}}return k}const B=QQ.isClockWise,i=this.subPaths;if(i.length===0)return[];let Q,e,E;const t=[];if(i.length===1)return e=i[0],E=new SE,E.curves=e.curves,t.push(E),t;let a=!B(i[0].getPoints());a=A?!a:a;const s=[],r=[];let l=[],D=0,G;r[D]=void 0,l[D]=[];for(let c=0,y=i.length;c1){let c=!1,y=0;for(let S=0,k=r.length;S0&&c===!1&&(l=s)}let h;for(let c=0,y=r.length;c{const s=typeof t=="function"?t(A):t;if(s!==A){const r=A;A=a?s:Object.assign({},A,s),I.forEach(l=>l(A,r))}},B=()=>A,i=(t,a=B,s=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let r=a(A);function l(){const D=a(A);if(!s(r,D)){const G=r;t(r=D,G)}}return I.add(l),()=>I.delete(l)},E={setState:C,getState:B,subscribe:(t,a,s)=>a||s?i(t,a,s):(I.add(t),()=>I.delete(t)),destroy:()=>I.clear()};return A=g(C,B,E),E}const fZ=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),kf=fZ?_.useEffect:_.useLayoutEffect;function GL(g){const A=typeof g=="function"?FZ(g):g,I=(C=A.getState,B=Object.is)=>{const[,i]=_.useReducer(h=>h+1,0),Q=A.getState(),e=_.useRef(Q),E=_.useRef(C),t=_.useRef(B),a=_.useRef(!1),s=_.useRef();s.current===void 0&&(s.current=C(Q));let r,l=!1;(e.current!==Q||E.current!==C||t.current!==B||a.current)&&(r=C(Q),l=!B(s.current,r)),kf(()=>{l&&(s.current=r),e.current=Q,E.current=C,t.current=B,a.current=!1});const D=_.useRef(Q);kf(()=>{const h=()=>{try{const y=A.getState(),S=E.current(y);t.current(s.current,S)||(e.current=y,s.current=S,i())}catch{a.current=!0,i()}},c=A.subscribe(h);return A.getState()!==D.current&&h(),c},[]);const G=l?r:s.current;return _.useDebugValue(G),G};return Object.assign(I,A),I[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const C=[I,A];return{next(){const B=C.length<=0;return{value:C.shift(),done:B}}}},I}var yL={exports:{}},uL={exports:{}},kL={};/** - * @license React - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */(function(g){function A(b,BA){var gA=b.length;b.push(BA);A:for(;0>>1,NA=b[hA];if(0>>1;hAB(x,gA))YB(T,x)?(b[hA]=T,b[Y]=gA,hA=Y):(b[hA]=x,b[j]=gA,hA=j);else if(YB(T,gA))b[hA]=T,b[Y]=gA,hA=Y;else break A}}return BA}function B(b,BA){var gA=b.sortIndex-BA.sortIndex;return gA!==0?gA:b.id-BA.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;g.unstable_now=function(){return i.now()}}else{var Q=Date,e=Q.now();g.unstable_now=function(){return Q.now()-e}}var E=[],t=[],a=1,s=null,r=3,l=!1,D=!1,G=!1,h=typeof setTimeout=="function"?setTimeout:null,c=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(b){for(var BA=I(t);BA!==null;){if(BA.callback===null)C(t);else if(BA.startTime<=b)C(t),BA.sortIndex=BA.expirationTime,A(E,BA);else break;BA=I(t)}}function k(b){if(G=!1,S(b),!D)if(I(E)!==null)D=!0,aA(f);else{var BA=I(t);BA!==null&&SA(k,BA.startTime-b)}}function f(b,BA){D=!1,G&&(G=!1,c(q),q=-1),l=!0;var gA=r;try{for(S(BA),s=I(E);s!==null&&(!(s.expirationTime>BA)||b&&!K());){var hA=s.callback;if(typeof hA=="function"){s.callback=null,r=s.priorityLevel;var NA=hA(s.expirationTime<=BA);BA=g.unstable_now(),typeof NA=="function"?s.callback=NA:s===I(E)&&C(E),S(BA)}else C(E);s=I(E)}if(s!==null)var WA=!0;else{var j=I(t);j!==null&&SA(k,j.startTime-BA),WA=!1}return WA}finally{s=null,r=gA,l=!1}}var d=!1,N=null,q=-1,P=5,U=-1;function K(){return!(g.unstable_now()-Ub||125hA?(b.sortIndex=gA,A(t,b),I(E)===null&&b===I(t)&&(G?(c(q),q=-1):G=!0,SA(k,gA-hA))):(b.sortIndex=NA,A(E,b),D||l||(D=!0,aA(f))),b},g.unstable_shouldYield=K,g.unstable_wrapCallback=function(b){var BA=r;return function(){var gA=r;r=BA;try{return b.apply(this,arguments)}finally{r=gA}}}})(kL);uL.exports=kL;var xu=uL.exports;/** - * @license React - * react-reconciler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var RZ=function(A){var I={},C=_,B=xu,i=Object.assign;function Q(o){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+o,w=1;wyA||M[AA]!==R[yA]){var vA=` -`+M[AA].replace(" at new "," at ");return o.displayName&&vA.includes("")&&(vA=vA.replace("",o.displayName)),vA}while(1<=AA&&0<=yA);break}}}finally{VA=!1,Error.prepareStackTrace=w}return(o=o?o.displayName||o.name:"")?DI(o):""}var wI=Object.prototype.hasOwnProperty,FI=[],RI=-1;function OI(o){return{current:o}}function hI(o){0>RI||(o.current=FI[RI],FI[RI]=null,RI--)}function iI(o,n){RI++,FI[RI]=o.current,o.current=n}var jI={},NI=OI(jI),TI=OI(!1),ug=jI;function H(o,n){var w=o.type.contextTypes;if(!w)return jI;var u=o.stateNode;if(u&&u.__reactInternalMemoizedUnmaskedChildContext===n)return u.__reactInternalMemoizedMaskedChildContext;var M={},R;for(R in w)M[R]=n[R];return u&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=n,o.__reactInternalMemoizedMaskedChildContext=M),M}function v(o){return o=o.childContextTypes,o!=null}function CA(){hI(TI),hI(NI)}function nA(o,n,w){if(NI.current!==jI)throw Error(Q(168));iI(NI,n),iI(TI,w)}function MA(o,n,w){var u=o.stateNode;if(n=n.childContextTypes,typeof u.getChildContext!="function")return w;u=u.getChildContext();for(var M in u)if(!(M in n))throw Error(Q(108,q(o)||"Unknown",M));return i({},w,u)}function fA(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||jI,ug=NI.current,iI(NI,o),iI(TI,TI.current),!0}function TA(o,n,w){var u=o.stateNode;if(!u)throw Error(Q(169));w?(o=MA(o,n,ug),u.__reactInternalMemoizedMergedChildContext=o,hI(TI),hI(NI),iI(NI,o)):hI(TI),iI(TI,w)}var _A=Math.clz32?Math.clz32:nI,II=Math.log,zA=Math.LN2;function nI(o){return o>>>=0,o===0?32:31-(II(o)/zA|0)|0}var mI=64,eg=4194304;function Yg(o){switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return o&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return o&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return o}}function cg(o,n){var w=o.pendingLanes;if(w===0)return 0;var u=0,M=o.suspendedLanes,R=o.pingedLanes,AA=w&268435455;if(AA!==0){var yA=AA&~M;yA!==0?u=Yg(yA):(R&=AA,R!==0&&(u=Yg(R)))}else AA=w&~M,AA!==0?u=Yg(AA):R!==0&&(u=Yg(R));if(u===0)return 0;if(n!==0&&n!==u&&!(n&M)&&(M=u&-u,R=n&-n,M>=R||M===16&&(R&4194240)!==0))return n;if(u&4&&(u|=w&16),n=o.entangledLanes,n!==0)for(o=o.entanglements,n&=u;0w;w++)n.push(o);return n}function de(o,n,w){o.pendingLanes|=n,n!==536870912&&(o.suspendedLanes=0,o.pingedLanes=0),o=o.eventTimes,n=31-_A(n),o[n]=w}function al(o,n){var w=o.pendingLanes&~n;o.pendingLanes=n,o.suspendedLanes=0,o.pingedLanes=0,o.expiredLanes&=n,o.mutableReadLanes&=n,o.entangledLanes&=n,n=o.entanglements;var u=o.eventTimes;for(o=o.expirationTimes;0>=AA,M-=AA,bQ=1<<32-_A(n)+M|w<Mg?(ZC=XI,XI=null):ZC=XI.sibling;var dg=xI(KA,XI,HA[Mg],cI);if(dg===null){XI===null&&(XI=ZC);break}o&&XI&&dg.alternate===null&&n(KA,XI),pA=R(dg,pA,Mg),Bg===null?KI=dg:Bg.sibling=dg,Bg=dg,XI=ZC}if(Mg===HA.length)return w(KA,XI),jg&&At(KA,Mg),KI;if(XI===null){for(;MgMg?(ZC=XI,XI=null):ZC=XI.sibling;var Je=xI(KA,XI,dg.value,cI);if(Je===null){XI===null&&(XI=ZC);break}o&&XI&&Je.alternate===null&&n(KA,XI),pA=R(Je,pA,Mg),Bg===null?KI=Je:Bg.sibling=Je,Bg=Je,XI=ZC}if(dg.done)return w(KA,XI),jg&&At(KA,Mg),KI;if(XI===null){for(;!dg.done;Mg++,dg=HA.next())dg=VI(KA,dg.value,cI),dg!==null&&(pA=R(dg,pA,Mg),Bg===null?KI=dg:Bg.sibling=dg,Bg=dg);return jg&&At(KA,Mg),KI}for(XI=u(KA,XI);!dg.done;Mg++,dg=HA.next())dg=qg(XI,KA,Mg,dg.value,cI),dg!==null&&(o&&dg.alternate!==null&&XI.delete(dg.key===null?Mg:dg.key),pA=R(dg,pA,Mg),Bg===null?KI=dg:Bg.sibling=dg,Bg=dg);return o&&XI.forEach(function(h2){return n(KA,h2)}),jg&&At(KA,Mg),KI}function di(KA,pA,HA,cI){if(typeof HA=="object"&&HA!==null&&HA.type===a&&HA.key===null&&(HA=HA.props.children),typeof HA=="object"&&HA!==null){switch(HA.$$typeof){case E:A:{for(var KI=HA.key,Bg=pA;Bg!==null;){if(Bg.key===KI){if(KI=HA.type,KI===a){if(Bg.tag===7){w(KA,Bg.sibling),pA=M(Bg,HA.props.children),pA.return=KA,KA=pA;break A}}else if(Bg.elementType===KI||typeof KI=="object"&&KI!==null&&KI.$$typeof===S&&Gp(KI)===Bg.type){w(KA,Bg.sibling),pA=M(Bg,HA.props),pA.ref=pa(KA,Bg,HA),pA.return=KA,KA=pA;break A}w(KA,Bg);break}else n(KA,Bg);Bg=Bg.sibling}HA.type===a?(pA=et(HA.props.children,KA.mode,cI,HA.key),pA.return=KA,KA=pA):(cI=Ac(HA.type,HA.key,HA.props,null,KA.mode,cI),cI.ref=pa(KA,pA,HA),cI.return=KA,KA=cI)}return AA(KA);case t:A:{for(Bg=HA.key;pA!==null;){if(pA.key===Bg)if(pA.tag===4&&pA.stateNode.containerInfo===HA.containerInfo&&pA.stateNode.implementation===HA.implementation){w(KA,pA.sibling),pA=M(pA,HA.children||[]),pA.return=KA,KA=pA;break A}else{w(KA,pA);break}else n(KA,pA);pA=pA.sibling}pA=DG(HA,KA.mode,cI),pA.return=KA,KA=pA}return AA(KA);case S:return Bg=HA._init,di(KA,pA,Bg(HA._payload),cI)}if(lA(HA))return qI(KA,pA,HA,cI);if(d(HA))return sB(KA,pA,HA,cI);ul(KA,HA)}return typeof HA=="string"&&HA!==""||typeof HA=="number"?(HA=""+HA,pA!==null&&pA.tag===6?(w(KA,pA.sibling),pA=M(pA,HA),pA.return=KA,KA=pA):(w(KA,pA),pA=cG(HA,KA.mode,cI),pA.return=KA,KA=pA),AA(KA)):w(KA,pA)}return di}var Uo=yp(!0),up=yp(!1),Ua={},yi=OI(Ua),Na=OI(Ua),No=OI(Ua);function DQ(o){if(o===Ua)throw Error(Q(174));return o}function JS(o,n){iI(No,n),iI(Na,o),iI(yi,Ua),o=SA(n),hI(yi),iI(yi,o)}function Fo(){hI(yi),hI(Na),hI(No)}function kp(o){var n=DQ(No.current),w=DQ(yi.current);n=b(w,o.type,n),w!==n&&(iI(Na,o),iI(yi,n))}function qS(o){Na.current===o&&(hI(yi),hI(Na))}var zg=OI(0);function kl(o){for(var n=o;n!==null;){if(n.tag===13){var w=n.memoizedState;if(w!==null&&(w=w.dehydrated,w===null||hi(w)||RC(w)))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if(n.flags&128)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===o)break;for(;n.sibling===null;){if(n.return===null||n.return===o)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var mS=[];function LS(){for(var o=0;ow?w:4,o(!0);var u=ui.transition;ui.transition={};try{o(!1),n()}finally{kg=w,ui.transition=u}}function Yp(){return hQ().memoizedState}function _H(o,n,w){var u=fe(o);w={lane:u,action:w,hasEagerState:!1,eagerState:null,next:null},Hp(o)?Tp(n,w):(xp(o,n,w),w=pB(),o=ki(o,u,w),o!==null&&vp(o,n,u))}function ZH(o,n,w){var u=fe(o),M={lane:u,action:w,hasEagerState:!1,eagerState:null,next:null};if(Hp(o))Tp(n,M);else{xp(o,n,M);var R=o.alternate;if(o.lanes===0&&(R===null||R.lanes===0)&&(R=n.lastRenderedReducer,R!==null))try{var AA=n.lastRenderedState,yA=R(AA,w);if(M.hasEagerState=!0,M.eagerState=yA,rQ(yA,AA))return}catch{}finally{}w=pB(),o=ki(o,u,w),o!==null&&vp(o,n,u)}}function Hp(o){var n=o.alternate;return o===iC||n!==null&&n===iC}function Tp(o,n){Fa=dl=!0;var w=o.pending;w===null?n.next=n:(n.next=w.next,w.next=n),o.pending=n}function xp(o,n,w){GC!==null&&o.mode&1&&!(ig&2)?(o=n.interleaved,o===null?(w.next=w,cQ===null?cQ=[n]:cQ.push(n)):(w.next=o.next,o.next=w),n.interleaved=w):(o=n.pending,o===null?w.next=w:(w.next=o.next,o.next=w),n.pending=w)}function vp(o,n,w){if(w&4194240){var u=n.lanes;u&=o.pendingLanes,w|=u,n.lanes=w,DS(o,w)}}var fl={readContext:wi,useCallback:nB,useContext:nB,useEffect:nB,useImperativeHandle:nB,useInsertionEffect:nB,useLayoutEffect:nB,useMemo:nB,useReducer:nB,useRef:nB,useState:nB,useDebugValue:nB,useDeferredValue:nB,useTransition:nB,useMutableSource:nB,useSyncExternalStore:nB,useId:nB,unstable_isNewReconciler:!1},PH={readContext:wi,useCallback:function(o,n){return _Q().memoizedState=[o,n===void 0?null:n],o},useContext:wi,useEffect:vS,useImperativeHandle:function(o,n,w){return w=w!=null?w.concat([o]):null,Nl(4194308,4,Jp.bind(null,n,o),w)},useLayoutEffect:function(o,n){return Nl(4194308,4,o,n)},useInsertionEffect:function(o,n){return Nl(4,2,o,n)},useMemo:function(o,n){var w=_Q();return n=n===void 0?null:n,o=o(),w.memoizedState=[o,n],o},useReducer:function(o,n,w){var u=_Q();return n=w!==void 0?w(n):n,u.memoizedState=u.baseState=n,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:n},u.queue=o,o=o.dispatch=_H.bind(null,iC,o),[u.memoizedState,o]},useRef:function(o){var n=_Q();return o={current:o},n.memoizedState=o},useState:xS,useDebugValue:bS,useDeferredValue:function(o){var n=xS(o),w=n[0],u=n[1];return vS(function(){var M=ui.transition;ui.transition={};try{u(o)}finally{ui.transition=M}},[o]),w},useTransition:function(){var o=xS(!1),n=o[0];return o=OH.bind(null,o[1]),_Q().memoizedState=o,[n,o]},useMutableSource:function(){},useSyncExternalStore:function(o,n,w){var u=iC,M=_Q();if(jg){if(w===void 0)throw Error(Q(407));w=w()}else{if(w=n(),GC===null)throw Error(Q(349));fo&30||pp(u,n,w)}M.memoizedState=w;var R={value:w,getSnapshot:n};return M.queue=R,vS(Np.bind(null,u,R,o),[o]),u.flags|=2048,Ra(9,Up.bind(null,u,R,w,n),void 0,null),w},useId:function(){var o=_Q(),n=GC.identifierPrefix;if(jg){var w=OQ,u=bQ;w=(u&~(1<<32-_A(u)-1)).toString(32)+w,n=":"+n+"R"+w,w=fa++,0EG&&(n.flags|=128,u=!0,ma(M,!1),n.lanes=4194304)}else{if(!u)if(o=kl(R),o!==null){if(n.flags|=128,u=!0,o=o.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),ma(M,!0),M.tail===null&&M.tailMode==="hidden"&&!R.alternate&&!jg)return aB(n),null}else 2*OC()-M.renderingStartTime>EG&&w!==1073741824&&(n.flags|=128,u=!0,ma(M,!1),n.lanes=4194304);M.isBackwards?(R.sibling=n.child,n.child=R):(o=M.last,o!==null?o.sibling=R:n.child=R,M.last=R)}return M.tail!==null?(n=M.tail,M.rendering=n,M.tail=n.sibling,M.renderingStartTime=OC(),n.sibling=null,o=zg.current,iI(zg,u?o&1|2:o&1),n):(aB(n),null);case 22:case 23:return sG(),u=n.memoizedState!==null,o!==null&&o.memoizedState!==null!==u&&(n.flags|=8192),u&&n.mode&1?Ii&1073741824&&(aB(n),FA&&n.subtreeFlags&6&&(n.flags|=8192)):aB(n),null;case 24:return null;case 25:return null}throw Error(Q(156,n.tag))}var zH=e.ReactCurrentOwner,Ai=!1;function dB(o,n,w,u){n.child=o===null?up(n,null,w,u):Uo(n,o.child,w,u)}function Vp(o,n,w,u,M){w=w.render;var R=n.ref;return uo(n,M),u=HS(o,n,w,u,R,M),w=TS(),o!==null&&!Ai?(n.updateQueue=o.updateQueue,n.flags&=-2053,o.lanes&=~M,ZQ(o,n,M)):(jg&&w&&NS(n),n.flags|=1,dB(o,n,u,M),n.child)}function Xp(o,n,w,u,M){if(o===null){var R=w.type;return typeof R=="function"&&!lG(R)&&R.defaultProps===void 0&&w.compare===null&&w.defaultProps===void 0?(n.tag=15,n.type=R,zp(o,n,R,u,M)):(o=Ac(w.type,null,u,n,n.mode,M),o.ref=n.ref,o.return=n,n.child=o)}if(R=o.child,!(o.lanes&M)){var AA=R.memoizedProps;if(w=w.compare,w=w!==null?w:ll,w(AA,u)&&o.ref===n.ref)return ZQ(o,n,M)}return n.flags|=1,o=Ke(R,u),o.ref=n.ref,o.return=n,n.child=o}function zp(o,n,w,u,M){if(o!==null&&ll(o.memoizedProps,u)&&o.ref===n.ref)if(Ai=!1,(o.lanes&M)!==0)o.flags&131072&&(Ai=!0);else return n.lanes=o.lanes,ZQ(o,n,M);return ZS(o,n,w,u,M)}function $p(o,n,w){var u=n.pendingProps,M=u.children,R=o!==null?o.memoizedState:null;if(u.mode==="hidden")if(!(n.mode&1))n.memoizedState={baseLanes:0,cachePool:null},iI(Ro,Ii),Ii|=w;else if(w&1073741824)n.memoizedState={baseLanes:0,cachePool:null},u=R!==null?R.baseLanes:w,iI(Ro,Ii),Ii|=u;else return o=R!==null?R.baseLanes|w:w,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:o,cachePool:null},n.updateQueue=null,iI(Ro,Ii),Ii|=o,null;else R!==null?(u=R.baseLanes|w,n.memoizedState=null):u=w,iI(Ro,Ii),Ii|=u;return dB(o,n,M,w),n.child}function AU(o,n){var w=n.ref;(o===null&&w!==null||o!==null&&o.ref!==w)&&(n.flags|=512,n.flags|=2097152)}function ZS(o,n,w,u,M){var R=v(w)?ug:NI.current;return R=H(n,R),uo(n,M),w=HS(o,n,w,u,R,M),u=TS(),o!==null&&!Ai?(n.updateQueue=o.updateQueue,n.flags&=-2053,o.lanes&=~M,ZQ(o,n,M)):(jg&&u&&NS(n),n.flags|=1,dB(o,n,w,M),n.child)}function IU(o,n,w,u,M){if(v(w)){var R=!0;fA(n)}else R=!1;if(uo(n,M),n.stateNode===null)o!==null&&(o.alternate=null,n.alternate=null,n.flags|=2),lp(n,w,u),US(n,w,u,M),u=!0;else if(o===null){var AA=n.stateNode,yA=n.memoizedProps;AA.props=yA;var vA=AA.context,BI=w.contextType;typeof BI=="object"&&BI!==null?BI=wi(BI):(BI=v(w)?ug:NI.current,BI=H(n,BI));var uI=w.getDerivedStateFromProps,VI=typeof uI=="function"||typeof AA.getSnapshotBeforeUpdate=="function";VI||typeof AA.UNSAFE_componentWillReceiveProps!="function"&&typeof AA.componentWillReceiveProps!="function"||(yA!==u||vA!==BI)&&cp(n,AA,u,BI),pe=!1;var xI=n.memoizedState;AA.state=xI,wl(n,u,AA,M),vA=n.memoizedState,yA!==u||xI!==vA||TI.current||pe?(typeof uI=="function"&&(pS(n,w,uI,u),vA=n.memoizedState),(yA=pe||rp(n,w,yA,u,xI,vA,BI))?(VI||typeof AA.UNSAFE_componentWillMount!="function"&&typeof AA.componentWillMount!="function"||(typeof AA.componentWillMount=="function"&&AA.componentWillMount(),typeof AA.UNSAFE_componentWillMount=="function"&&AA.UNSAFE_componentWillMount()),typeof AA.componentDidMount=="function"&&(n.flags|=4194308)):(typeof AA.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=u,n.memoizedState=vA),AA.props=u,AA.state=vA,AA.context=BI,u=yA):(typeof AA.componentDidMount=="function"&&(n.flags|=4194308),u=!1)}else{AA=n.stateNode,op(o,n),yA=n.memoizedProps,BI=n.type===n.elementType?yA:bi(n.type,yA),AA.props=BI,VI=n.pendingProps,xI=AA.context,vA=w.contextType,typeof vA=="object"&&vA!==null?vA=wi(vA):(vA=v(w)?ug:NI.current,vA=H(n,vA));var qg=w.getDerivedStateFromProps;(uI=typeof qg=="function"||typeof AA.getSnapshotBeforeUpdate=="function")||typeof AA.UNSAFE_componentWillReceiveProps!="function"&&typeof AA.componentWillReceiveProps!="function"||(yA!==VI||xI!==vA)&&cp(n,AA,u,vA),pe=!1,xI=n.memoizedState,AA.state=xI,wl(n,u,AA,M);var qI=n.memoizedState;yA!==VI||xI!==qI||TI.current||pe?(typeof qg=="function"&&(pS(n,w,qg,u),qI=n.memoizedState),(BI=pe||rp(n,w,BI,u,xI,qI,vA)||!1)?(uI||typeof AA.UNSAFE_componentWillUpdate!="function"&&typeof AA.componentWillUpdate!="function"||(typeof AA.componentWillUpdate=="function"&&AA.componentWillUpdate(u,qI,vA),typeof AA.UNSAFE_componentWillUpdate=="function"&&AA.UNSAFE_componentWillUpdate(u,qI,vA)),typeof AA.componentDidUpdate=="function"&&(n.flags|=4),typeof AA.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof AA.componentDidUpdate!="function"||yA===o.memoizedProps&&xI===o.memoizedState||(n.flags|=4),typeof AA.getSnapshotBeforeUpdate!="function"||yA===o.memoizedProps&&xI===o.memoizedState||(n.flags|=1024),n.memoizedProps=u,n.memoizedState=qI),AA.props=u,AA.state=qI,AA.context=vA,u=BI):(typeof AA.componentDidUpdate!="function"||yA===o.memoizedProps&&xI===o.memoizedState||(n.flags|=4),typeof AA.getSnapshotBeforeUpdate!="function"||yA===o.memoizedProps&&xI===o.memoizedState||(n.flags|=1024),u=!1)}return PS(o,n,w,u,R,M)}function PS(o,n,w,u,M,R){AU(o,n);var AA=(n.flags&128)!==0;if(!u&&!AA)return M&&TA(n,w,!1),ZQ(o,n,R);u=n.stateNode,zH.current=n;var yA=AA&&typeof w.getDerivedStateFromError!="function"?null:u.render();return n.flags|=1,o!==null&&AA?(n.child=Uo(n,o.child,null,R),n.child=Uo(n,null,yA,R)):dB(o,n,yA,R),n.memoizedState=u.state,M&&TA(n,w,!0),n.child}function gU(o){var n=o.stateNode;n.pendingContext?nA(o,n.pendingContext,n.pendingContext!==n.context):n.context&&nA(o,n.context,!1),JS(o,n.containerInfo)}function CU(o,n,w,u,M){return po(),KS(M),n.flags|=256,dB(o,n,w,u),n.child}var Jl={dehydrated:null,treeContext:null,retryLane:0};function ql(o){return{baseLanes:o,cachePool:null}}function BU(o,n,w){var u=n.pendingProps,M=zg.current,R=!1,AA=(n.flags&128)!==0,yA;if((yA=AA)||(yA=o!==null&&o.memoizedState===null?!1:(M&2)!==0),yA?(R=!0,n.flags&=-129):(o===null||o.memoizedState!==null)&&(M|=1),iI(zg,M&1),o===null)return RS(n),o=n.memoizedState,o!==null&&(o=o.dehydrated,o!==null)?(n.mode&1?RC(o)?n.lanes=8:n.lanes=1073741824:n.lanes=1,null):(M=u.children,o=u.fallback,R?(u=n.mode,R=n.child,M={mode:"hidden",children:M},!(u&1)&&R!==null?(R.childLanes=0,R.pendingProps=M):R=Ic(M,u,0,null),o=et(o,u,w,null),R.return=n,o.return=n,R.sibling=o,n.child=R,n.child.memoizedState=ql(w),n.memoizedState=Jl,o):WS(n,M));if(M=o.memoizedState,M!==null){if(yA=M.dehydrated,yA!==null){if(AA)return n.flags&256?(n.flags&=-257,ml(o,n,w,Error(Q(422)))):n.memoizedState!==null?(n.child=o.child,n.flags|=128,null):(R=u.fallback,M=n.mode,u=Ic({mode:"visible",children:u.children},M,0,null),R=et(R,M,w,null),R.flags|=2,u.return=n,R.return=n,u.sibling=R,n.child=u,n.mode&1&&Uo(n,o.child,null,w),n.child.memoizedState=ql(w),n.memoizedState=Jl,R);if(!(n.mode&1))n=ml(o,n,w,null);else if(RC(yA))n=ml(o,n,w,Error(Q(419)));else if(u=(w&o.childLanes)!==0,Ai||u){if(u=GC,u!==null){switch(w&-w){case 4:R=2;break;case 16:R=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:R=32;break;case 536870912:R=268435456;break;default:R=0}u=R&(u.suspendedLanes|w)?0:R,u!==0&&u!==M.retryLane&&(M.retryLane=u,ki(o,u,-1))}rG(),n=ml(o,n,w,Error(Q(421)))}else hi(yA)?(n.flags|=128,n.child=o.child,n=n2.bind(null,o),kB(yA,n),n=null):(w=M.treeContext,UA&&($B=aQ(yA),zB=n,jg=!0,Oi=null,Ma=!1,w!==null&&(Si[Gi++]=bQ,Si[Gi++]=OQ,Si[Gi++]=$E,bQ=w.id,OQ=w.overflow,$E=n)),n=WS(n,n.pendingProps.children),n.flags|=4096);return n}return R?(u=QU(o,n,u.children,u.fallback,w),R=n.child,M=o.child.memoizedState,R.memoizedState=M===null?ql(w):{baseLanes:M.baseLanes|w,cachePool:null},R.childLanes=o.childLanes&~w,n.memoizedState=Jl,u):(w=iU(o,n,u.children,w),n.memoizedState=null,w)}return R?(u=QU(o,n,u.children,u.fallback,w),R=n.child,M=o.child.memoizedState,R.memoizedState=M===null?ql(w):{baseLanes:M.baseLanes|w,cachePool:null},R.childLanes=o.childLanes&~w,n.memoizedState=Jl,u):(w=iU(o,n,u.children,w),n.memoizedState=null,w)}function WS(o,n){return n=Ic({mode:"visible",children:n},o.mode,0,null),n.return=o,o.child=n}function iU(o,n,w,u){var M=o.child;return o=M.sibling,w=Ke(M,{mode:"visible",children:w}),!(n.mode&1)&&(w.lanes=u),w.return=n,w.sibling=null,o!==null&&(u=n.deletions,u===null?(n.deletions=[o],n.flags|=16):u.push(o)),n.child=w}function QU(o,n,w,u,M){var R=n.mode;o=o.child;var AA=o.sibling,yA={mode:"hidden",children:w};return!(R&1)&&n.child!==o?(w=n.child,w.childLanes=0,w.pendingProps=yA,n.deletions=null):(w=Ke(o,yA),w.subtreeFlags=o.subtreeFlags&14680064),AA!==null?u=Ke(AA,u):(u=et(u,R,M,null),u.flags|=2),u.return=n,w.return=n,w.sibling=u,n.child=w,u}function ml(o,n,w,u){return u!==null&&KS(u),Uo(n,o.child,null,w),o=WS(n,n.pendingProps.children),o.flags|=2,n.memoizedState=null,o}function eU(o,n,w){o.lanes|=n;var u=o.alternate;u!==null&&(u.lanes|=n),MS(o.return,n,w)}function jS(o,n,w,u,M){var R=o.memoizedState;R===null?o.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:u,tail:w,tailMode:M}:(R.isBackwards=n,R.rendering=null,R.renderingStartTime=0,R.last=u,R.tail=w,R.tailMode=M)}function EU(o,n,w){var u=n.pendingProps,M=u.revealOrder,R=u.tail;if(dB(o,n,u.children,w),u=zg.current,u&2)u=u&1|2,n.flags|=128;else{if(o!==null&&o.flags&128)A:for(o=n.child;o!==null;){if(o.tag===13)o.memoizedState!==null&&eU(o,w,n);else if(o.tag===19)eU(o,w,n);else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===n)break A;for(;o.sibling===null;){if(o.return===null||o.return===n)break A;o=o.return}o.sibling.return=o.return,o=o.sibling}u&=1}if(iI(zg,u),!(n.mode&1))n.memoizedState=null;else switch(M){case"forwards":for(w=n.child,M=null;w!==null;)o=w.alternate,o!==null&&kl(o)===null&&(M=w),w=w.sibling;w=M,w===null?(M=n.child,n.child=null):(M=w.sibling,w.sibling=null),jS(n,!1,M,w,R);break;case"backwards":for(w=null,M=n.child,n.child=null;M!==null;){if(o=M.alternate,o!==null&&kl(o)===null){n.child=M;break}o=M.sibling,M.sibling=w,w=M,M=o}jS(n,!0,w,null,R);break;case"together":jS(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function ZQ(o,n,w){if(o!==null&&(n.dependencies=o.dependencies),Ko|=n.lanes,!(w&n.childLanes))return null;if(o!==null&&n.child!==o.child)throw Error(Q(153));if(n.child!==null){for(o=n.child,w=Ke(o,o.pendingProps),n.child=w,w.return=n;o.sibling!==null;)o=o.sibling,w=w.sibling=Ke(o,o.pendingProps),w.return=n;w.sibling=null}return n.child}function $H(o,n,w){switch(n.tag){case 3:gU(n),po();break;case 5:kp(n);break;case 1:v(n.type)&&fA(n);break;case 4:JS(n,n.stateNode.containerInfo);break;case 10:tp(n,n.type._context,n.memoizedProps.value);break;case 13:var u=n.memoizedState;if(u!==null)return u.dehydrated!==null?(iI(zg,zg.current&1),n.flags|=128,null):w&n.child.childLanes?BU(o,n,w):(iI(zg,zg.current&1),o=ZQ(o,n,w),o!==null?o.sibling:null);iI(zg,zg.current&1);break;case 19:if(u=(w&n.childLanes)!==0,o.flags&128){if(u)return EU(o,n,w);n.flags|=128}var M=n.memoizedState;if(M!==null&&(M.rendering=null,M.tail=null,M.lastEffect=null),iI(zg,zg.current),u)break;return null;case 22:case 23:return n.lanes=0,$p(o,n,w)}return ZQ(o,n,w)}function A2(o,n){switch(FS(n),n.tag){case 1:return v(n.type)&&CA(),o=n.flags,o&65536?(n.flags=o&-65537|128,n):null;case 3:return Fo(),hI(TI),hI(NI),LS(),o=n.flags,o&65536&&!(o&128)?(n.flags=o&-65537|128,n):null;case 5:return qS(n),null;case 13:if(hI(zg),o=n.memoizedState,o!==null&&o.dehydrated!==null){if(n.alternate===null)throw Error(Q(340));po()}return o=n.flags,o&65536?(n.flags=o&-65537|128,n):null;case 19:return hI(zg),null;case 4:return Fo(),null;case 10:return kS(n.type._context),null;case 22:case 23:return sG(),null;case 24:return null;default:return null}}var Ll=!1,gt=!1,I2=typeof WeakSet=="function"?WeakSet:Set,rI=null;function Yl(o,n){var w=o.ref;if(w!==null)if(typeof w=="function")try{w(null)}catch(u){xB(o,n,u)}else w.current=null}function VS(o,n,w){try{w()}catch(u){xB(o,n,u)}}var tU=!1;function g2(o,n){for(BA(o.containerInfo),rI=n;rI!==null;)if(o=rI,n=o.child,(o.subtreeFlags&1028)!==0&&n!==null)n.return=o,rI=n;else for(;rI!==null;){o=rI;try{var w=o.alternate;if(o.flags&1024)switch(o.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var u=w.memoizedProps,M=w.memoizedState,R=o.stateNode,AA=R.getSnapshotBeforeUpdate(o.elementType===o.type?u:bi(o.type,u),M);R.__reactInternalSnapshotBeforeUpdate=AA}break;case 3:FA&&AI(o.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(Q(163))}}catch(yA){xB(o,o.return,yA)}if(n=o.sibling,n!==null){n.return=o.return,rI=n;break}rI=o.return}return w=tU,tU=!1,w}function Ct(o,n,w){var u=n.updateQueue;if(u=u!==null?u.lastEffect:null,u!==null){var M=u=u.next;do{if((M.tag&o)===o){var R=M.destroy;M.destroy=void 0,R!==void 0&&VS(n,w,R)}M=M.next}while(M!==u)}}function La(o,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var w=n=n.next;do{if((w.tag&o)===o){var u=w.create;w.destroy=u()}w=w.next}while(w!==n)}}function XS(o){var n=o.ref;if(n!==null){var w=o.stateNode;switch(o.tag){case 5:o=aA(w);break;default:o=w}typeof n=="function"?n(o):n.current=o}}function oU(o,n,w){if(sQ&&typeof sQ.onCommitFiberUnmount=="function")try{sQ.onCommitFiberUnmount(sl,n)}catch{}switch(n.tag){case 0:case 11:case 14:case 15:if(o=n.updateQueue,o!==null&&(o=o.lastEffect,o!==null)){var u=o=o.next;do{var M=u,R=M.destroy;M=M.tag,R!==void 0&&(M&2||M&4)&&VS(n,w,R),u=u.next}while(u!==o)}break;case 1:if(Yl(n,w),o=n.stateNode,typeof o.componentWillUnmount=="function")try{o.props=n.memoizedProps,o.state=n.memoizedState,o.componentWillUnmount()}catch(AA){xB(n,w,AA)}break;case 5:Yl(n,w);break;case 4:FA?cU(o,n,w):W&&W&&(n=n.stateNode.containerInfo,w=lI(n),sg(n,w))}}function nU(o,n,w){for(var u=n;;)if(oU(o,u,w),u.child===null||FA&&u.tag===4){if(u===n)break;for(;u.sibling===null;){if(u.return===null||u.return===n)return;u=u.return}u.sibling.return=u.return,u=u.sibling}else u.child.return=u,u=u.child}function aU(o){var n=o.alternate;n!==null&&(o.alternate=null,aU(n)),o.child=null,o.deletions=null,o.sibling=null,o.tag===5&&(n=o.stateNode,n!==null&&bA(n)),o.stateNode=null,o.return=null,o.dependencies=null,o.memoizedProps=null,o.memoizedState=null,o.pendingProps=null,o.stateNode=null,o.updateQueue=null}function sU(o){return o.tag===5||o.tag===3||o.tag===4}function rU(o){A:for(;;){for(;o.sibling===null;){if(o.return===null||sU(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.flags&2||o.child===null||o.tag===4)continue A;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function lU(o){if(FA){A:{for(var n=o.return;n!==null;){if(sU(n))break A;n=n.return}throw Error(Q(160))}var w=n;switch(w.tag){case 5:n=w.stateNode,w.flags&32&&(JI(n),w.flags&=-33),w=rU(o),$S(o,w,n);break;case 3:case 4:n=w.stateNode.containerInfo,w=rU(o),zS(o,w,n);break;default:throw Error(Q(161))}}}function zS(o,n,w){var u=o.tag;if(u===5||u===6)o=o.stateNode,n?tI(w,o,n):fI(w,o);else if(u!==4&&(o=o.child,o!==null))for(zS(o,n,w),o=o.sibling;o!==null;)zS(o,n,w),o=o.sibling}function $S(o,n,w){var u=o.tag;if(u===5||u===6)o=o.stateNode,n?kI(w,o,n):SI(w,o);else if(u!==4&&(o=o.child,o!==null))for($S(o,n,w),o=o.sibling;o!==null;)$S(o,n,w),o=o.sibling}function cU(o,n,w){for(var u=n,M=!1,R,AA;;){if(!M){M=u.return;A:for(;;){if(M===null)throw Error(Q(160));switch(R=M.stateNode,M.tag){case 5:AA=!1;break A;case 3:R=R.containerInfo,AA=!0;break A;case 4:R=R.containerInfo,AA=!0;break A}M=M.return}M=!0}if(u.tag===5||u.tag===6)nU(o,u,w),AA?UI(R,u.stateNode):sI(R,u.stateNode);else if(u.tag===18)AA?iA(R,u.stateNode):oA(R,u.stateNode);else if(u.tag===4){if(u.child!==null){R=u.stateNode.containerInfo,AA=!0,u.child.return=u,u=u.child;continue}}else if(oU(o,u,w),u.child!==null){u.child.return=u,u=u.child;continue}if(u===n)break;for(;u.sibling===null;){if(u.return===null||u.return===n)return;u=u.return,u.tag===4&&(M=!1)}u.sibling.return=u.return,u=u.sibling}}function AG(o,n){if(FA){switch(n.tag){case 0:case 11:case 14:case 15:Ct(3,n,n.return),La(3,n),Ct(5,n,n.return);return;case 1:return;case 5:var w=n.stateNode;if(w!=null){var u=n.memoizedProps;o=o!==null?o.memoizedProps:u;var M=n.type,R=n.updateQueue;n.updateQueue=null,R!==null&&LI(w,R,M,o,u,n)}return;case 6:if(n.stateNode===null)throw Error(Q(162));w=n.memoizedProps,PA(n.stateNode,o!==null?o.memoizedProps:w,w);return;case 3:UA&&o!==null&&o.memoizedState.isDehydrated&&V(n.stateNode.containerInfo);return;case 12:return;case 13:Hl(n);return;case 19:Hl(n);return;case 17:return}throw Error(Q(163))}switch(n.tag){case 0:case 11:case 14:case 15:Ct(3,n,n.return),La(3,n),Ct(5,n,n.return);return;case 12:return;case 13:Hl(n);return;case 19:Hl(n);return;case 3:UA&&o!==null&&o.memoizedState.isDehydrated&&V(n.stateNode.containerInfo);break;case 22:case 23:return}A:if(W){switch(n.tag){case 1:case 5:case 6:break A;case 3:case 4:n=n.stateNode,sg(n.containerInfo,n.pendingChildren);break A}throw Error(Q(163))}}function Hl(o){var n=o.updateQueue;if(n!==null){o.updateQueue=null;var w=o.stateNode;w===null&&(w=o.stateNode=new I2),n.forEach(function(u){var M=a2.bind(null,o,u);w.has(u)||(w.add(u),u.then(M,M))})}}function C2(o,n){for(rI=n;rI!==null;){n=rI;var w=n.deletions;if(w!==null)for(var u=0;u";case xl:return":has("+(CG(o)||"")+")";case vl:return'[role="'+o.value+'"]';case Ol:return'"'+o.value+'"';case bl:return'[data-testname="'+o.value+'"]';default:throw Error(Q(365))}}function GU(o,n){var w=[];o=[o,0];for(var u=0;uM&&(M=AA),u&=~R}if(u=M,u=OC()-u,u=(120>u?120:480>u?480:1080>u?1080:1920>u?1920:3e3>u?3e3:4320>u?4320:1960*i2(u/1960))-u,10o?16:o,Fe===null)var u=!1;else{if(o=Fe,Fe=null,jl=0,ig&6)throw Error(Q(331));var M=ig;for(ig|=4,rI=o.current;rI!==null;){var R=rI,AA=R.child;if(rI.flags&16){var yA=R.deletions;if(yA!==null){for(var vA=0;vAOC()-eG?Bt(o,0):QG|=w),TB(o,n)}function FU(o,n){n===0&&(o.mode&1?(n=eg,eg<<=1,!(eg&130023424)&&(eg=4194304)):n=1);var w=pB();o=zl(o,n),o!==null&&(de(o,n,w),TB(o,w))}function n2(o){var n=o.memoizedState,w=0;n!==null&&(w=n.retryLane),FU(o,w)}function a2(o,n){var w=0;switch(o.tag){case 13:var u=o.stateNode,M=o.memoizedState;M!==null&&(w=M.retryLane);break;case 19:u=o.stateNode;break;default:throw Error(Q(314))}u!==null&&u.delete(n),FU(o,w)}var fU;fU=function(o,n,w){if(o!==null)if(o.memoizedProps!==n.pendingProps||TI.current)Ai=!0;else{if(!(o.lanes&w)&&!(n.flags&128))return Ai=!1,$H(o,n,w);Ai=!!(o.flags&131072)}else Ai=!1,jg&&n.flags&1048576&&Dp(n,yl,n.index);switch(n.lanes=0,n.tag){case 2:var u=n.type;o!==null&&(o.alternate=null,n.alternate=null,n.flags|=2),o=n.pendingProps;var M=H(n,NI.current);uo(n,w),M=HS(null,n,u,o,M,w);var R=TS();return n.flags|=1,typeof M=="object"&&M!==null&&typeof M.render=="function"&&M.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,v(u)?(R=!0,fA(n)):R=!1,n.memoizedState=M.state!==null&&M.state!==void 0?M.state:null,dS(n),M.updater=Sl,n.stateNode=M,M._reactInternals=n,US(n,u,o,w),n=PS(null,n,u,!0,R,w)):(n.tag=0,jg&&R&&NS(n),dB(null,n,M,w),n=n.child),n;case 16:u=n.elementType;A:{switch(o!==null&&(o.alternate=null,n.alternate=null,n.flags|=2),o=n.pendingProps,M=u._init,u=M(u._payload),n.type=u,M=n.tag=r2(u),o=bi(u,o),M){case 0:n=ZS(null,n,u,o,w);break A;case 1:n=IU(null,n,u,o,w);break A;case 11:n=Vp(null,n,u,o,w);break A;case 14:n=Xp(null,n,u,bi(u.type,o),w);break A}throw Error(Q(306,u,""))}return n;case 0:return u=n.type,M=n.pendingProps,M=n.elementType===u?M:bi(u,M),ZS(o,n,u,M,w);case 1:return u=n.type,M=n.pendingProps,M=n.elementType===u?M:bi(u,M),IU(o,n,u,M,w);case 3:A:{if(gU(n),o===null)throw Error(Q(387));u=n.pendingProps,R=n.memoizedState,M=R.element,op(o,n),wl(n,u,null,w);var AA=n.memoizedState;if(u=AA.element,UA&&R.isDehydrated)if(R={element:u,isDehydrated:!1,cache:AA.cache,transitions:AA.transitions},n.updateQueue.baseState=R,n.memoizedState=R,n.flags&256){M=Error(Q(423)),n=CU(o,n,u,w,M);break A}else if(u!==M){M=Error(Q(424)),n=CU(o,n,u,w,M);break A}else for(UA&&($B=vi(n.stateNode.containerInfo),zB=n,jg=!0,Oi=null,Ma=!1),w=up(n,null,u,w),n.child=w;w;)w.flags=w.flags&-3|4096,w=w.sibling;else{if(po(),u===M){n=ZQ(o,n,w);break A}dB(o,n,u,w)}n=n.child}return n;case 5:return kp(n),o===null&&RS(n),u=n.type,M=n.pendingProps,R=o!==null?o.memoizedProps:null,AA=M.children,x(u,M)?AA=null:R!==null&&x(u,R)&&(n.flags|=32),AU(o,n),dB(o,n,AA,w),n.child;case 6:return o===null&&RS(n),null;case 13:return BU(o,n,w);case 4:return JS(n,n.stateNode.containerInfo),u=n.pendingProps,o===null?n.child=Uo(n,null,u,w):dB(o,n,u,w),n.child;case 11:return u=n.type,M=n.pendingProps,M=n.elementType===u?M:bi(u,M),Vp(o,n,u,M,w);case 7:return dB(o,n,n.pendingProps,w),n.child;case 8:return dB(o,n,n.pendingProps.children,w),n.child;case 12:return dB(o,n,n.pendingProps.children,w),n.child;case 10:A:{if(u=n.type._context,M=n.pendingProps,R=n.memoizedProps,AA=M.value,tp(n,u,AA),R!==null)if(rQ(R.value,AA)){if(R.children===M.children&&!TI.current){n=ZQ(o,n,w);break A}}else for(R=n.child,R!==null&&(R.return=n);R!==null;){var yA=R.dependencies;if(yA!==null){AA=R.child;for(var vA=yA.firstContext;vA!==null;){if(vA.context===u){if(R.tag===1){vA=vQ(-1,w&-w),vA.tag=2;var BI=R.updateQueue;if(BI!==null){BI=BI.shared;var uI=BI.pending;uI===null?vA.next=vA:(vA.next=uI.next,uI.next=vA),BI.pending=vA}}R.lanes|=w,vA=R.alternate,vA!==null&&(vA.lanes|=w),MS(R.return,w,n),yA.lanes|=w;break}vA=vA.next}}else if(R.tag===10)AA=R.type===n.type?null:R.child;else if(R.tag===18){if(AA=R.return,AA===null)throw Error(Q(341));AA.lanes|=w,yA=AA.alternate,yA!==null&&(yA.lanes|=w),MS(AA,w,n),AA=R.sibling}else AA=R.child;if(AA!==null)AA.return=R;else for(AA=R;AA!==null;){if(AA===n){AA=null;break}if(R=AA.sibling,R!==null){R.return=AA.return,AA=R;break}AA=AA.return}R=AA}dB(o,n,M.children,w),n=n.child}return n;case 9:return M=n.type,u=n.pendingProps.children,uo(n,w),M=wi(M),u=u(M),n.flags|=1,dB(o,n,u,w),n.child;case 14:return u=n.type,M=bi(u,n.pendingProps),M=bi(u.type,M),Xp(o,n,u,M,w);case 15:return zp(o,n,n.type,n.pendingProps,w);case 17:return u=n.type,M=n.pendingProps,M=n.elementType===u?M:bi(u,M),o!==null&&(o.alternate=null,n.alternate=null,n.flags|=2),n.tag=1,v(u)?(o=!0,fA(n)):o=!1,uo(n,w),lp(n,u,M),US(n,u,M,w),PS(null,n,u,!0,o,w);case 19:return EU(o,n,w);case 22:return $p(o,n,w)}throw Error(Q(156,n.tag))};function RU(o,n){return hS(o,n)}function s2(o,n,w,u){this.tag=o,this.key=w,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=u,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Mi(o,n,w,u){return new s2(o,n,w,u)}function lG(o){return o=o.prototype,!(!o||!o.isReactComponent)}function r2(o){if(typeof o=="function")return lG(o)?1:0;if(o!=null){if(o=o.$$typeof,o===G)return 11;if(o===y)return 14}return 2}function Ke(o,n){var w=o.alternate;return w===null?(w=Mi(o.tag,n,o.key,o.mode),w.elementType=o.elementType,w.type=o.type,w.stateNode=o.stateNode,w.alternate=o,o.alternate=w):(w.pendingProps=n,w.type=o.type,w.flags=0,w.subtreeFlags=0,w.deletions=null),w.flags=o.flags&14680064,w.childLanes=o.childLanes,w.lanes=o.lanes,w.child=o.child,w.memoizedProps=o.memoizedProps,w.memoizedState=o.memoizedState,w.updateQueue=o.updateQueue,n=o.dependencies,w.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},w.sibling=o.sibling,w.index=o.index,w.ref=o.ref,w}function Ac(o,n,w,u,M,R){var AA=2;if(u=o,typeof o=="function")lG(o)&&(AA=1);else if(typeof o=="string")AA=5;else A:switch(o){case a:return et(w.children,M,R,n);case s:AA=8,M|=8;break;case r:return o=Mi(12,w,n,M|2),o.elementType=r,o.lanes=R,o;case h:return o=Mi(13,w,n,M),o.elementType=h,o.lanes=R,o;case c:return o=Mi(19,w,n,M),o.elementType=c,o.lanes=R,o;case k:return Ic(w,M,R,n);default:if(typeof o=="object"&&o!==null)switch(o.$$typeof){case l:AA=10;break A;case D:AA=9;break A;case G:AA=11;break A;case y:AA=14;break A;case S:AA=16,u=null;break A}throw Error(Q(130,o==null?o:typeof o,""))}return n=Mi(AA,w,n,M),n.elementType=o,n.type=u,n.lanes=R,n}function et(o,n,w,u){return o=Mi(7,o,u,n),o.lanes=w,o}function Ic(o,n,w,u){return o=Mi(22,o,u,n),o.elementType=k,o.lanes=w,o.stateNode={},o}function cG(o,n,w){return o=Mi(6,o,null,n),o.lanes=w,o}function DG(o,n,w){return n=Mi(4,o.children!==null?o.children:[],o.key,n),n.lanes=w,n.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},n}function l2(o,n,w,u,M){this.tag=n,this.containerInfo=o,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=dA,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=XB(0),this.expirationTimes=XB(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=XB(0),this.identifierPrefix=u,this.onRecoverableError=M,UA&&(this.mutableSourceEagerHydrationData=null)}function KU(o,n,w,u,M,R,AA,yA,vA){return o=new l2(o,n,w,yA,vA),n===1?(n=1,R===!0&&(n|=8)):n=0,R=Mi(3,null,null,n),o.current=R,R.stateNode=o,R.memoizedState={element:u,isDehydrated:w,cache:null,transitions:null},dS(R),o}function JU(o){if(!o)return jI;o=o._reactInternals;A:{if(P(o)!==o||o.tag!==1)throw Error(Q(170));var n=o;do{switch(n.tag){case 3:n=n.stateNode.context;break A;case 1:if(v(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break A}}n=n.return}while(n!==null);throw Error(Q(171))}if(o.tag===1){var w=o.type;if(v(w))return MA(o,w,n)}return n}function qU(o){var n=o._reactInternals;if(n===void 0)throw typeof o.render=="function"?Error(Q(188)):(o=Object.keys(o).join(","),Error(Q(268,o)));return o=X(n),o===null?null:o.stateNode}function mU(o,n){if(o=o.memoizedState,o!==null&&o.dehydrated!==null){var w=o.retryLane;o.retryLane=w!==0&&w=BI&&R>=VI&&M<=uI&&AA<=xI){o.splice(n,1);break}else if(u!==BI||w.width!==vA.width||xIAA){if(!(R!==VI||w.height!==vA.height||uIM)){BI>u&&(vA.width+=BI-u,vA.x=u),uIR&&(vA.height+=VI-R,vA.y=R),xIw&&(w=AA)),AA ")+` - -No matching component was found for: - `)+o.join(" > ")}return null},I.getPublicRootInstance=function(o){if(o=o.current,!o.child)return null;switch(o.child.tag){case 5:return aA(o.child.stateNode);default:return o.child.stateNode}},I.injectIntoDevTools=function(o){if(o={bundleType:o.bundleType,version:o.version,rendererPackageName:o.rendererPackageName,rendererConfig:o.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:e.ReactCurrentDispatcher,findHostInstanceByFiber:c2,findFiberByHostInstance:o.findFiberByHostInstance||D2,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")o=!1;else{var n=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(n.isDisabled||!n.supportsFiber)o=!0;else{try{sl=n.inject(o),sQ=n}catch{}o=!!n.checkDCE}}return o},I.isAlreadyRendering=function(){return!1},I.observeVisibleRects=function(o,n,w,u){if(!m)throw Error(Q(363));o=BG(o,n);var M=aI(o,w,u).disconnect;return{disconnect:function(){M()}}},I.registerMutableSourceForHydration=function(o,n){var w=n._getVersion;w=w(n._source),o.mutableSourceEagerHydrationData==null?o.mutableSourceEagerHydrationData=[n,w]:o.mutableSourceEagerHydrationData.push(n,w)},I.runWithPriority=function(o,n){var w=kg;try{return kg=o,n()}finally{kg=w}},I.shouldError=function(){return null},I.shouldSuspend=function(){return!1},I.updateContainer=function(o,n,w,u){var M=n.current,R=pB(),AA=fe(M);return w=JU(w),n.context===null?n.context=w:n.pendingContext=w,n=vQ(R,AA),n.payload={element:o},u=u===void 0?null:u,u!==null&&(n.callback=u),Ue(M,n),o=ki(M,AA,R),o!==null&&hl(o,M,AA),AA},I};yL.exports=RZ;var KZ=yL.exports;const JZ=Zh(KZ),qZ=g=>typeof g=="object"&&typeof g.then=="function",Yt=[];function ML(g,A,I=(C,B)=>C===B){if(g===A)return!0;if(!g||!A)return!1;const C=g.length;if(A.length!==C)return!1;for(let B=0;B0&&(i.timeout&&clearTimeout(i.timeout),i.timeout=setTimeout(i.remove,C.lifespan)),i.response;if(!I)throw i.promise}const B={keys:A,equal:C.equal,remove:()=>{const i=Yt.indexOf(B);i!==-1&&Yt.splice(i,1)},promise:(qZ(g)?g:g(...A)).then(i=>{B.response=i,C.lifespan&&C.lifespan>0&&(B.timeout=setTimeout(B.remove,C.lifespan))}).catch(i=>B.error=i)};if(Yt.push(B),!I)throw B.promise}const mZ=(g,A,I)=>dL(g,A,!1,I),LZ=(g,A,I)=>void dL(g,A,!0,I),YZ=g=>{if(g===void 0||g.length===0)Yt.splice(0,Yt.length);else{const A=Yt.find(I=>ML(g,I.keys,I.equal));A&&A.remove()}},Cd={},Yw=g=>void Object.assign(Cd,g);function HZ(g,A){function I(a,{args:s=[],attach:r,...l},D){let G=`${a[0].toUpperCase()}${a.slice(1)}`,h;if(a==="primitive"){if(l.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const c=l.object;h=on(c,{type:a,root:D,attach:r,primitive:!0})}else{const c=Cd[G];if(!c)throw new Error(`R3F: ${G} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(s))throw new Error("R3F: The args prop must be an array!");h=on(new c(...s),{type:a,root:D,attach:r,memoizedProps:{args:s}})}return h.__r3f.attach===void 0&&(h instanceof WI?h.__r3f.attach="geometry":h instanceof hC&&(h.__r3f.attach="material")),G!=="inject"&&Fy(h,l),h}function C(a,s){let r=!1;if(s){var l,D;(l=s.__r3f)!=null&&l.attach?Ny(a,s,s.__r3f.attach):s.isObject3D&&a.isObject3D&&(a.add(s),r=!0),r||(D=a.__r3f)==null||D.objects.push(s),s.__r3f||on(s,{}),s.__r3f.parent=a,bu(s),nn(s)}}function B(a,s,r){let l=!1;if(s){var D,G;if((D=s.__r3f)!=null&&D.attach)Ny(a,s,s.__r3f.attach);else if(s.isObject3D&&a.isObject3D){s.parent=a,s.dispatchEvent({type:"added"});const h=a.children.filter(y=>y!==s),c=h.indexOf(r);a.children=[...h.slice(0,c),s,...h.slice(c)],l=!0}l||(G=a.__r3f)==null||G.objects.push(s),s.__r3f||on(s,{}),s.__r3f.parent=a,bu(s),nn(s)}}function i(a,s,r=!1){a&&[...a].forEach(l=>Q(s,l,r))}function Q(a,s,r){if(s){var l,D,G;if(s.__r3f&&(s.__r3f.parent=null),(l=a.__r3f)!=null&&l.objects&&(a.__r3f.objects=a.__r3f.objects.filter(k=>k!==s)),(D=s.__r3f)!=null&&D.attach)Nf(a,s,s.__r3f.attach);else if(s.isObject3D&&a.isObject3D){var h;a.remove(s),(h=s.__r3f)!=null&&h.root&&PZ(s.__r3f.root,s)}const y=(G=s.__r3f)==null?void 0:G.primitive,S=!y&&(r===void 0?s.dispose!==null:r);if(!y){var c;i((c=s.__r3f)==null?void 0:c.objects,s,S),i(s.children,s,S)}if(delete s.__r3f,S&&s.dispose&&s.type!=="Scene"){const k=()=>{try{s.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?xu.unstable_scheduleCallback(xu.unstable_IdlePriority,k):k()}nn(a)}}function e(a,s,r,l){var D;const G=(D=a.__r3f)==null?void 0:D.parent;if(!G)return;const h=I(s,r,a.__r3f.root);if(a.children){for(const c of a.children)c.__r3f&&C(h,c);a.children=a.children.filter(c=>!c.__r3f)}a.__r3f.objects.forEach(c=>C(h,c)),a.__r3f.objects=[],a.__r3f.autoRemovedBeforeAppend||Q(G,a),h.parent&&(h.__r3f.autoRemovedBeforeAppend=!0),C(G,h),h.raycast&&h.__r3f.eventCount&&h.__r3f.root.getState().internal.interaction.push(h),[l,l.alternate].forEach(c=>{c!==null&&(c.stateNode=h,c.ref&&(typeof c.ref=="function"?c.ref(h):c.ref.current=h))})}const E=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:JZ({createInstance:I,removeChild:Q,appendChild:C,appendInitialChild:C,insertBefore:B,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(a,s)=>{if(!s)return;const r=a.getState().scene;r.__r3f&&(r.__r3f.root=a,C(r,s))},removeChildFromContainer:(a,s)=>{s&&Q(a.getState().scene,s)},insertInContainerBefore:(a,s,r)=>{if(!s||!r)return;const l=a.getState().scene;l.__r3f&&B(l,s,r)},getRootHostContext:()=>null,getChildHostContext:a=>a,finalizeInitialChildren(a){var s;return!!((s=a==null?void 0:a.__r3f)!=null?s:{}).handlers},prepareUpdate(a,s,r,l){var D;if(((D=a==null?void 0:a.__r3f)!=null?D:{}).primitive&&l.object&&l.object!==a)return[!0];{const{args:h=[],children:c,...y}=l,{args:S=[],children:k,...f}=r;if(!Array.isArray(h))throw new Error("R3F: the args prop must be an array!");if(h.some((N,q)=>N!==S[q]))return[!0];const d=KL(a,y,f,!0);return d.changes.length?[!1,d]:null}},commitUpdate(a,[s,r],l,D,G,h){s?e(a,l,G,h):Fy(a,r)},commitMount(a,s,r,l){var D;const G=(D=a.__r3f)!=null?D:{};a.raycast&&G.handlers&&G.eventCount&&a.__r3f.root.getState().internal.interaction.push(a)},getPublicInstance:a=>a,prepareForCommit:()=>null,preparePortalMount:a=>on(a.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(a){var s;const{attach:r,parent:l}=(s=a.__r3f)!=null?s:{};r&&l&&Nf(l,a,r),a.isObject3D&&(a.visible=!1),nn(a)},unhideInstance(a,s){var r;const{attach:l,parent:D}=(r=a.__r3f)!=null?r:{};l&&D&&Ny(D,a,l),(a.isObject3D&&s.visible==null||s.visible)&&(a.visible=!0),nn(a)},createTextInstance:E,hideTextInstance:E,unhideTextInstance:E,getCurrentEventPriority:()=>A?A():Fn.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&Og.fun(performance.now)?performance.now:Og.fun(Date.now)?Date.now:()=>0,scheduleTimeout:Og.fun(setTimeout)?setTimeout:void 0,cancelTimeout:Og.fun(clearTimeout)?clearTimeout:void 0}),applyProps:Fy}}var Mf,df;const Uy=g=>"colorSpace"in g||"outputColorSpace"in g,pL=()=>{var g;return(g=Cd.ColorManagement)!=null?g:null},UL=g=>g&&g.isOrthographicCamera,TZ=g=>g&&g.hasOwnProperty("current"),$r=typeof window<"u"&&((Mf=window.document)!=null&&Mf.createElement||((df=window.navigator)==null?void 0:df.product)==="ReactNative")?_.useLayoutEffect:_.useEffect;function NL(g){const A=_.useRef(g);return $r(()=>void(A.current=g),[g]),A}function xZ({set:g}){return $r(()=>(g(new Promise(()=>null)),()=>g(!1)),[g]),null}class FL extends _.Component{constructor(...A){super(...A),this.state={error:!1}}componentDidCatch(A){this.props.set(A)}render(){return this.state.error?null:this.props.children}}FL.getDerivedStateFromError=()=>({error:!0});const fL="__default",pf=new Map,vZ=g=>g&&!!g.memoized&&!!g.changes;function RL(g){var A;const I=typeof window<"u"?(A=window.devicePixelRatio)!=null?A:2:1;return Array.isArray(g)?Math.min(Math.max(g[0],I),g[1]):g}const es=g=>{var A;return(A=g.__r3f)==null?void 0:A.root.getState()},Og={obj:g=>g===Object(g)&&!Og.arr(g)&&typeof g!="function",fun:g=>typeof g=="function",str:g=>typeof g=="string",num:g=>typeof g=="number",boo:g=>typeof g=="boolean",und:g=>g===void 0,arr:g=>Array.isArray(g),equ(g,A,{arrays:I="shallow",objects:C="reference",strict:B=!0}={}){if(typeof g!=typeof A||!!g!=!!A)return!1;if(Og.str(g)||Og.num(g))return g===A;const i=Og.obj(g);if(i&&C==="reference")return g===A;const Q=Og.arr(g);if(Q&&I==="reference")return g===A;if((Q||i)&&g===A)return!0;let e;for(e in g)if(!(e in A))return!1;if(i&&I==="shallow"&&C==="shallow"){for(e in B?A:g)if(!Og.equ(g[e],A[e],{strict:B,objects:"reference"}))return!1}else for(e in B?A:g)if(g[e]!==A[e])return!1;if(Og.und(e)){if(Q&&g.length===0&&A.length===0||i&&Object.keys(g).length===0&&Object.keys(A).length===0)return!0;if(g!==A)return!1}return!0}};function bZ(g){const A={nodes:{},materials:{}};return g&&g.traverse(I=>{I.name&&(A.nodes[I.name]=I),I.material&&!A.materials[I.material.name]&&(A.materials[I.material.name]=I.material)}),A}function OZ(g){g.dispose&&g.type!=="Scene"&&g.dispose();for(const A in g)A.dispose==null||A.dispose(),delete g[A]}function on(g,A){const I=g;return I.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...A},g}function vu(g,A){let I=g;if(A.includes("-")){const C=A.split("-"),B=C.pop();return I=C.reduce((i,Q)=>i[Q],g),{target:I,key:B}}else return{target:I,key:A}}const Uf=/-\d+$/;function Ny(g,A,I){if(Og.str(I)){if(Uf.test(I)){const i=I.replace(Uf,""),{target:Q,key:e}=vu(g,i);Array.isArray(Q[e])||(Q[e]=[])}const{target:C,key:B}=vu(g,I);A.__r3f.previousAttach=C[B],C[B]=A}else A.__r3f.previousAttach=I(g,A)}function Nf(g,A,I){var C,B;if(Og.str(I)){const{target:i,key:Q}=vu(g,I),e=A.__r3f.previousAttach;e===void 0?delete i[Q]:i[Q]=e}else(C=A.__r3f)==null||C.previousAttach==null||C.previousAttach(g,A);(B=A.__r3f)==null||delete B.previousAttach}function KL(g,{children:A,key:I,ref:C,...B},{children:i,key:Q,ref:e,...E}={},t=!1){var a;const s=(a=g==null?void 0:g.__r3f)!=null?a:{},r=Object.entries(B),l=[];if(t){const G=Object.keys(E);for(let h=0;h{var c;if((c=g.__r3f)!=null&&c.primitive&&G==="object"||Og.equ(h,E[G]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(G))return l.push([G,h,!0,[]]);let y=[];G.includes("-")&&(y=G.split("-")),l.push([G,h,!1,y]);for(const S in B){const k=B[S];S.startsWith(`${G}-`)&&l.push([S,k,!1,S.split("-")])}});const D={...B};return s.memoizedProps&&s.memoizedProps.args&&(D.args=s.memoizedProps.args),s.memoizedProps&&s.memoizedProps.attach&&(D.attach=s.memoizedProps.attach),{memoized:D,changes:l}}const _Z=typeof process<"u"&&!1;function Fy(g,A){var I,C,B;const i=(I=g.__r3f)!=null?I:{},Q=i.root,e=(C=Q==null||Q.getState==null?void 0:Q.getState())!=null?C:{},{memoized:E,changes:t}=vZ(A)?A:KL(g,A),a=i.eventCount;g.__r3f&&(g.__r3f.memoizedProps=E);for(let r=0;rS[k],g),!(y&&y.set))){const[S,...k]=h.reverse();c=k.reverse().reduce((f,d)=>f[d],g),l=S}if(D===fL+"remove")if(c.constructor){let S=pf.get(c.constructor);S||(S=new c.constructor,pf.set(c.constructor,S)),D=S[l]}else D=0;if(G)D?i.handlers[l]=D:delete i.handlers[l],i.eventCount=Object.keys(i.handlers).length;else if(y&&y.set&&(y.copy||y instanceof Ot)){if(Array.isArray(D))y.fromArray?y.fromArray(D):y.set(...D);else if(y.copy&&D&&D.constructor&&(_Z?y.constructor.name===D.constructor.name:y.constructor===D.constructor))y.copy(D);else if(D!==void 0){const S=y instanceof QI;!S&&y.setScalar?y.setScalar(D):y instanceof Ot&&D instanceof Ot?y.mask=D.mask:y.set(D),!pL()&&!e.linear&&S&&y.convertSRGBToLinear()}}else if(c[l]=D,c[l]instanceof Lg&&c[l].format===SB&&c[l].type===RQ){const S=c[l];Uy(S)&&Uy(e.gl)?S.colorSpace=e.gl.outputColorSpace:S.encoding=e.gl.outputEncoding}nn(g)}if(i.parent&&e.internal&&g.raycast&&a!==i.eventCount){const r=e.internal.interaction.indexOf(g);r>-1&&e.internal.interaction.splice(r,1),i.eventCount&&e.internal.interaction.push(g)}return!(t.length===1&&t[0][0]==="onUpdate")&&t.length&&(B=g.__r3f)!=null&&B.parent&&bu(g),g}function nn(g){var A,I;const C=(A=g.__r3f)==null||(I=A.root)==null||I.getState==null?void 0:I.getState();C&&C.internal.frames===0&&C.invalidate()}function bu(g){g.onUpdate==null||g.onUpdate(g)}function JL(g,A){g.manual||(UL(g)?(g.left=A.width/-2,g.right=A.width/2,g.top=A.height/2,g.bottom=A.height/-2):g.aspect=A.width/A.height,g.updateProjectionMatrix(),g.updateMatrixWorld())}function oD(g){return(g.eventObject||g.object).uuid+"/"+g.index+g.instanceId}function ZZ(){var g;const A=typeof self<"u"&&self||typeof window<"u"&&window;if(!A)return Fn.DefaultEventPriority;switch((g=A.event)==null?void 0:g.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return Fn.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return Fn.ContinuousEventPriority;default:return Fn.DefaultEventPriority}}function qL(g,A,I,C){const B=I.get(A);B&&(I.delete(A),I.size===0&&(g.delete(C),B.target.releasePointerCapture(C)))}function PZ(g,A){const{internal:I}=g.getState();I.interaction=I.interaction.filter(C=>C!==A),I.initialHits=I.initialHits.filter(C=>C!==A),I.hovered.forEach((C,B)=>{(C.eventObject===A||C.object===A)&&I.hovered.delete(B)}),I.capturedMap.forEach((C,B)=>{qL(I.capturedMap,A,C,B)})}function WZ(g){function A(E){const{internal:t}=g.getState(),a=E.offsetX-t.initialClick[0],s=E.offsetY-t.initialClick[1];return Math.round(Math.sqrt(a*a+s*s))}function I(E){return E.filter(t=>["Move","Over","Enter","Out","Leave"].some(a=>{var s;return(s=t.__r3f)==null?void 0:s.handlers["onPointer"+a]}))}function C(E,t){const a=g.getState(),s=new Set,r=[],l=t?t(a.internal.interaction):a.internal.interaction;for(let c=0;c{const S=es(c.object),k=es(y.object);return!S||!k?c.distance-y.distance:k.events.priority-S.events.priority||c.distance-y.distance}).filter(c=>{const y=oD(c);return s.has(y)?!1:(s.add(y),!0)});a.events.filter&&(G=a.events.filter(G,a));for(const c of G){let y=c.object;for(;y;){var h;(h=y.__r3f)!=null&&h.eventCount&&r.push({...c,eventObject:y}),y=y.parent}}if("pointerId"in E&&a.internal.capturedMap.has(E.pointerId))for(let c of a.internal.capturedMap.get(E.pointerId).values())s.has(oD(c.intersection))||r.push(c.intersection);return r}function B(E,t,a,s){const r=g.getState();if(E.length){const l={stopped:!1};for(const D of E){const G=es(D.object)||r,{raycaster:h,pointer:c,camera:y,internal:S}=G,k=new O(c.x,c.y,0).unproject(y),f=U=>{var K,X;return(K=(X=S.capturedMap.get(U))==null?void 0:X.has(D.eventObject))!=null?K:!1},d=U=>{const K={intersection:D,target:t.target};S.capturedMap.has(U)?S.capturedMap.get(U).set(D.eventObject,K):S.capturedMap.set(U,new Map([[D.eventObject,K]])),t.target.setPointerCapture(U)},N=U=>{const K=S.capturedMap.get(U);K&&qL(S.capturedMap,D.eventObject,K,U)};let q={};for(let U in t){let K=t[U];typeof K!="function"&&(q[U]=K)}let P={...D,...q,pointer:c,intersections:E,stopped:l.stopped,delta:a,unprojectedPoint:k,ray:h.ray,camera:y,stopPropagation(){const U="pointerId"in t&&S.capturedMap.get(t.pointerId);if((!U||U.has(D.eventObject))&&(P.stopped=l.stopped=!0,S.hovered.size&&Array.from(S.hovered.values()).find(K=>K.eventObject===D.eventObject))){const K=E.slice(0,E.indexOf(D));i([...K,D])}},target:{hasPointerCapture:f,setPointerCapture:d,releasePointerCapture:N},currentTarget:{hasPointerCapture:f,setPointerCapture:d,releasePointerCapture:N},nativeEvent:t};if(s(P),l.stopped===!0)break}}return E}function i(E){const{internal:t}=g.getState();for(const a of t.hovered.values())if(!E.length||!E.find(s=>s.object===a.object&&s.index===a.index&&s.instanceId===a.instanceId)){const r=a.eventObject.__r3f,l=r==null?void 0:r.handlers;if(t.hovered.delete(oD(a)),r!=null&&r.eventCount){const D={...a,intersections:E};l.onPointerOut==null||l.onPointerOut(D),l.onPointerLeave==null||l.onPointerLeave(D)}}}function Q(E,t){for(let a=0;ai([]);case"onLostPointerCapture":return t=>{const{internal:a}=g.getState();"pointerId"in t&&a.capturedMap.has(t.pointerId)&&requestAnimationFrame(()=>{a.capturedMap.has(t.pointerId)&&(a.capturedMap.delete(t.pointerId),i([]))})}}return function(a){const{onPointerMissed:s,internal:r}=g.getState();r.lastEvent.current=a;const l=E==="onPointerMove",D=E==="onClick"||E==="onContextMenu"||E==="onDoubleClick",h=C(a,l?I:void 0),c=D?A(a):0;E==="onPointerDown"&&(r.initialClick=[a.offsetX,a.offsetY],r.initialHits=h.map(S=>S.eventObject)),D&&!h.length&&c<=2&&(Q(a,r.interaction),s&&s(a)),l&&i(h);function y(S){const k=S.eventObject,f=k.__r3f,d=f==null?void 0:f.handlers;if(f!=null&&f.eventCount)if(l){if(d.onPointerOver||d.onPointerEnter||d.onPointerOut||d.onPointerLeave){const N=oD(S),q=r.hovered.get(N);q?q.stopped&&S.stopPropagation():(r.hovered.set(N,S),d.onPointerOver==null||d.onPointerOver(S),d.onPointerEnter==null||d.onPointerEnter(S))}d.onPointerMove==null||d.onPointerMove(S)}else{const N=d[E];N?(!D||r.initialHits.includes(k))&&(Q(a,r.interaction.filter(q=>!r.initialHits.includes(q))),N(S)):D&&r.initialHits.includes(k)&&Q(a,r.interaction.filter(q=>!r.initialHits.includes(q)))}}B(h,a,c,y)}}return{handlePointer:e}}const jZ=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],mL=g=>!!(g!=null&&g.render),Bd=_.createContext(null),VZ=(g,A)=>{const I=GL((e,E)=>{const t=new O,a=new O,s=new O;function r(c=E().camera,y=a,S=E().size){const{width:k,height:f,top:d,left:N}=S,q=k/f;y instanceof O?s.copy(y):s.set(...y);const P=c.getWorldPosition(t).distanceTo(s);if(UL(c))return{width:k/c.zoom,height:f/c.zoom,top:d,left:N,factor:1,distance:P,aspect:q};{const U=c.fov*Math.PI/180,K=2*Math.tan(U/2)*P,X=K*(k/f);return{width:X,height:K,top:d,left:N,factor:k/X,distance:P,aspect:q}}}let l;const D=c=>e(y=>({performance:{...y.performance,current:c}})),G=new qA;return{set:e,get:E,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(c=1)=>g(E(),c),advance:(c,y)=>A(c,y,E()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new zM,pointer:G,mouse:G,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const c=E();l&&clearTimeout(l),c.performance.current!==c.performance.min&&D(c.performance.min),l=setTimeout(()=>D(E().performance.max),c.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:r},setEvents:c=>e(y=>({...y,events:{...y.events,...c}})),setSize:(c,y,S,k,f)=>{const d=E().camera,N={width:c,height:y,top:k||0,left:f||0,updateStyle:S};e(q=>({size:N,viewport:{...q.viewport,...r(d,a,N)}}))},setDpr:c=>e(y=>{const S=RL(c);return{viewport:{...y.viewport,dpr:S,initialDpr:y.viewport.initialDpr||S}}}),setFrameloop:(c="always")=>{const y=E().clock;y.stop(),y.elapsedTime=0,c!=="never"&&(y.start(),y.elapsedTime=0),e(()=>({frameloop:c}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:_.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(c,y,S)=>{const k=E().internal;return k.priority=k.priority+(y>0?1:0),k.subscribers.push({ref:c,priority:y,store:S}),k.subscribers=k.subscribers.sort((f,d)=>f.priority-d.priority),()=>{const f=E().internal;f!=null&&f.subscribers&&(f.priority=f.priority-(y>0?1:0),f.subscribers=f.subscribers.filter(d=>d.ref!==c))}}}}}),C=I.getState();let B=C.size,i=C.viewport.dpr,Q=C.camera;return I.subscribe(()=>{const{camera:e,size:E,viewport:t,gl:a,set:s}=I.getState();if(E.width!==B.width||E.height!==B.height||t.dpr!==i){var r;B=E,i=t.dpr,JL(e,E),a.setPixelRatio(t.dpr);const l=(r=E.updateStyle)!=null?r:typeof HTMLCanvasElement<"u"&&a.domElement instanceof HTMLCanvasElement;a.setSize(E.width,E.height,l)}e!==Q&&(Q=e,s(l=>({viewport:{...l.viewport,...l.viewport.getCurrentViewport(e)}})))}),I.subscribe(e=>g(e)),I};function LL(g,A){const I={callback:g};return A.add(I),()=>void A.delete(I)}let nD,YL=new Set,HL=new Set,XZ=new Set;const zZ=g=>LL(g,YL),$Z=g=>LL(g,HL);function fy(g,A){if(g.size)for(const{callback:I}of g.values())I(A)}function Es(g,A){switch(g){case"before":return fy(YL,A);case"after":return fy(HL,A);case"tail":return fy(XZ,A)}}let Ry,Ky;function Jy(g,A,I){let C=A.clock.getDelta();for(A.frameloop==="never"&&typeof g=="number"&&(C=g-A.clock.elapsedTime,A.clock.oldTime=A.clock.elapsedTime,A.clock.elapsedTime=g),Ry=A.internal.subscribers,nD=0;nD0)&&!((t=B.gl.xr)!=null&&t.isPresenting)&&(I+=Jy(E,B))}if(Es("after",E),I===0)return Es("tail",E),A=!1,cancelAnimationFrame(C)}function Q(E,t=1){var a;if(!E)return g.forEach(s=>Q(s.store.getState()),t);(a=E.gl.xr)!=null&&a.isPresenting||!E.internal.active||E.frameloop==="never"||(E.internal.frames=Math.min(60,E.internal.frames+t),A||(A=!0,requestAnimationFrame(i)))}function e(E,t=!0,a,s){if(t&&Es("before",E),a)Jy(E,a,s);else for(const r of g.values())Jy(E,r.store.getState());t&&Es("after",E)}return{loop:i,invalidate:Q,advance:e}}function Al(){const g=_.useContext(Bd);if(!g)throw new Error("R3F: Hooks can only be used within the Canvas component!");return g}function QB(g=I=>I,A){return Al()(g,A)}function NC(g,A=0){const I=Al(),C=I.getState().internal.subscribe,B=NL(g);return $r(()=>C(B,A,I),[A,C,I]),null}const Ff=new WeakMap;function TL(g,A){return function(I,...C){let B=Ff.get(I);return B||(B=new I,Ff.set(I,B)),g&&g(B),Promise.all(C.map(i=>new Promise((Q,e)=>B.load(i,E=>{E.scene&&Object.assign(E,bZ(E.scene)),Q(E)},A,E=>e(new Error(`Could not load ${i}: ${E==null?void 0:E.message}`)))))).finally(()=>B.dispose==null?void 0:B.dispose())}}function ha(g,A,I,C){const B=Array.isArray(A)?A:[A],i=mZ(TL(I,C),[g,...B],{equal:Og.equ});return Array.isArray(A)?i:i[0]}ha.preload=function(g,A,I){const C=Array.isArray(A)?A:[A];return LZ(TL(I),[g,...C])};ha.clear=function(g,A){const I=Array.isArray(A)?A:[A];return YZ([g,...I])};const ia=new Map,{invalidate:ff,advance:Rf}=AP(ia),{reconciler:pr,applyProps:Cn}=HZ(ia,ZZ),Bn={objects:"shallow",strict:!1},IP=(g,A)=>{const I=typeof g=="function"?g(A):g;return mL(I)?I:new FM({powerPreference:"high-performance",canvas:A,antialias:!0,alpha:!0,...g})};function gP(g,A){const I=typeof HTMLCanvasElement<"u"&&g instanceof HTMLCanvasElement;if(A){const{width:C,height:B,top:i,left:Q,updateStyle:e=I}=A;return{width:C,height:B,top:i,left:Q,updateStyle:e}}else if(typeof HTMLCanvasElement<"u"&&g instanceof HTMLCanvasElement&&g.parentElement){const{width:C,height:B,top:i,left:Q}=g.parentElement.getBoundingClientRect();return{width:C,height:B,top:i,left:Q,updateStyle:I}}else if(typeof OffscreenCanvas<"u"&&g instanceof OffscreenCanvas)return{width:g.width,height:g.height,top:0,left:0,updateStyle:I};return{width:0,height:0,top:0,left:0}}function CP(g){const A=ia.get(g),I=A==null?void 0:A.fiber,C=A==null?void 0:A.store;A&&console.warn("R3F.createRoot should only be called once!");const B=typeof reportError=="function"?reportError:console.error,i=C||VZ(ff,Rf),Q=I||pr.createContainer(i,Fn.ConcurrentRoot,null,!1,null,"",B,null);A||ia.set(g,{fiber:Q,store:i});let e,E=!1,t;return{configure(a={}){let{gl:s,size:r,scene:l,events:D,onCreated:G,shadows:h=!1,linear:c=!1,flat:y=!1,legacy:S=!1,orthographic:k=!1,frameloop:f="always",dpr:d=[1,2],performance:N,raycaster:q,camera:P,onPointerMissed:U}=a,K=i.getState(),X=K.gl;K.gl||K.set({gl:X=IP(s,g)});let wA=K.raycaster;wA||K.set({raycaster:wA=new gd});const{params:z,...lA}=q||{};if(Og.equ(lA,wA,Bn)||Cn(wA,{...lA}),Og.equ(z,wA.params,Bn)||Cn(wA,{params:{...wA.params,...z}}),!K.camera||K.camera===t&&!Og.equ(t,P,Bn)){t=P;const NA=P instanceof br,WA=NA?P:k?new mE(0,0,0,0,.1,1e3):new dC(75,0,.1,1e3);NA||(WA.position.z=5,P&&Cn(WA,P),!K.camera&&!(P!=null&&P.rotation)&&WA.lookAt(0,0,0)),K.set({camera:WA}),wA.camera=WA}if(!K.scene){let NA;l instanceof $t?NA=l:(NA=new $t,l&&Cn(NA,l)),K.set({scene:on(NA)})}if(!K.xr){var aA;const NA=(x,Y)=>{const T=i.getState();T.frameloop!=="never"&&Rf(x,!0,T,Y)},WA=()=>{const x=i.getState();x.gl.xr.enabled=x.gl.xr.isPresenting,x.gl.xr.setAnimationLoop(x.gl.xr.isPresenting?NA:null),x.gl.xr.isPresenting||ff(x)},j={connect(){const x=i.getState().gl;x.xr.addEventListener("sessionstart",WA),x.xr.addEventListener("sessionend",WA)},disconnect(){const x=i.getState().gl;x.xr.removeEventListener("sessionstart",WA),x.xr.removeEventListener("sessionend",WA)}};typeof((aA=X.xr)==null?void 0:aA.addEventListener)=="function"&&j.connect(),K.set({xr:j})}if(X.shadowMap){const NA=X.shadowMap.enabled,WA=X.shadowMap.type;if(X.shadowMap.enabled=!!h,Og.boo(h))X.shadowMap.type=vs;else if(Og.str(h)){var SA;const j={basic:hq,percentage:tw,soft:vs,variance:zi};X.shadowMap.type=(SA=j[h])!=null?SA:vs}else Og.obj(h)&&Object.assign(X.shadowMap,h);(NA!==X.shadowMap.enabled||WA!==X.shadowMap.type)&&(X.shadowMap.needsUpdate=!0)}const b=pL();b&&("enabled"in b?b.enabled=!S:"legacyMode"in b&&(b.legacyMode=S)),Cn(X,{outputEncoding:c?3e3:3001,toneMapping:y?fQ:tM}),K.legacy!==S&&K.set(()=>({legacy:S})),K.linear!==c&&K.set(()=>({linear:c})),K.flat!==y&&K.set(()=>({flat:y})),s&&!Og.fun(s)&&!mL(s)&&!Og.equ(s,X,Bn)&&Cn(X,s),D&&!K.events.handlers&&K.set({events:D(i)});const hA=gP(g,r);return Og.equ(hA,K.size,Bn)||K.setSize(hA.width,hA.height,hA.updateStyle,hA.top,hA.left),d&&K.viewport.dpr!==RL(d)&&K.setDpr(d),K.frameloop!==f&&K.setFrameloop(f),K.onPointerMissed||K.set({onPointerMissed:U}),N&&!Og.equ(N,K.performance,Bn)&&K.set(NA=>({performance:{...NA.performance,...N}})),e=G,E=!0,this},render(a){return E||this.configure(),pr.updateContainer(_.createElement(BP,{store:i,children:a,onCreated:e,rootElement:g}),Q,null,()=>{}),i},unmount(){xL(g)}}}function BP({store:g,children:A,onCreated:I,rootElement:C}){return $r(()=>{const B=g.getState();B.set(i=>({internal:{...i.internal,active:!0}})),I&&I(B),g.getState().events.connected||B.events.connect==null||B.events.connect(C)},[]),_.createElement(Bd.Provider,{value:g},A)}function xL(g,A){const I=ia.get(g),C=I==null?void 0:I.fiber;if(C){const B=I==null?void 0:I.store.getState();B&&(B.internal.active=!1),pr.updateContainer(null,C,null,()=>{B&&setTimeout(()=>{try{var i,Q,e,E;B.events.disconnect==null||B.events.disconnect(),(i=B.gl)==null||(Q=i.renderLists)==null||Q.dispose==null||Q.dispose(),(e=B.gl)==null||e.forceContextLoss==null||e.forceContextLoss(),(E=B.gl)!=null&&E.xr&&B.xr.disconnect(),OZ(B),ia.delete(g),A&&A(g)}catch{}},500)})}}function Hw(g,A,I){return _.createElement(iP,{key:A.uuid,children:g,container:A,state:I})}function iP({state:g={},children:A,container:I}){const{events:C,size:B,...i}=g,Q=Al(),[e]=_.useState(()=>new gd),[E]=_.useState(()=>new qA),t=_.useCallback((s,r)=>{const l={...s};Object.keys(s).forEach(G=>{(jZ.includes(G)||s[G]!==r[G]&&r[G])&&delete l[G]});let D;if(r&&B){const G=r.camera;D=s.viewport.getCurrentViewport(G,new O,B),G!==s.camera&&JL(G,B)}return{...l,scene:I,raycaster:e,pointer:E,mouse:E,previousRoot:Q,events:{...s.events,...r==null?void 0:r.events,...C},size:{...s.size,...B},viewport:{...s.viewport,...D},...i}},[g]),[a]=_.useState(()=>{const s=Q.getState();return GL((l,D)=>({...s,scene:I,raycaster:e,pointer:E,mouse:E,previousRoot:Q,events:{...s.events,...C},size:{...s.size,...B},...i,set:l,get:D,setEvents:G=>l(h=>({...h,events:{...h.events,...G}}))}))});return _.useEffect(()=>{const s=Q.subscribe(r=>a.setState(l=>t(r,l)));return()=>{s(),a.destroy()}},[]),_.useEffect(()=>{a.setState(s=>t(Q.getState(),s))},[t]),_.createElement(_.Fragment,null,pr.createPortal(_.createElement(Bd.Provider,{value:a},A),a,null))}pr.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:_.version});function Ou(g,A,I){var C,B,i,Q,e;A==null&&(A=100);function E(){var a=Date.now()-Q;a=0?C=setTimeout(E,A-a):(C=null,I||(e=g.apply(i,B),i=B=null))}var t=function(){i=this,B=arguments,Q=Date.now();var a=I&&!C;return C||(C=setTimeout(E,A)),a&&(e=g.apply(i,B),i=B=null),e};return t.clear=function(){C&&(clearTimeout(C),C=null)},t.flush=function(){C&&(e=g.apply(i,B),i=B=null,clearTimeout(C),C=null)},t}Ou.debounce=Ou;var QP=Ou;const Kf=Zh(QP);function eP(g){let{debounce:A,scroll:I,polyfill:C,offsetSize:B}=g===void 0?{debounce:0,scroll:!1,offsetSize:!1}:g;const i=C||(typeof window>"u"?class{}:window.ResizeObserver);if(!i)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[Q,e]=_.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),E=_.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:Q}),t=A?typeof A=="number"?A:A.scroll:null,a=A?typeof A=="number"?A:A.resize:null,s=_.useRef(!1);_.useEffect(()=>(s.current=!0,()=>void(s.current=!1)));const[r,l,D]=_.useMemo(()=>{const y=()=>{if(!E.current.element)return;const{left:S,top:k,width:f,height:d,bottom:N,right:q,x:P,y:U}=E.current.element.getBoundingClientRect(),K={left:S,top:k,width:f,height:d,bottom:N,right:q,x:P,y:U};E.current.element instanceof HTMLElement&&B&&(K.height=E.current.element.offsetHeight,K.width=E.current.element.offsetWidth),Object.freeze(K),s.current&&!nP(E.current.lastBounds,K)&&e(E.current.lastBounds=K)};return[y,a?Kf(y,a):y,t?Kf(y,t):y]},[e,B,t,a]);function G(){E.current.scrollContainers&&(E.current.scrollContainers.forEach(y=>y.removeEventListener("scroll",D,!0)),E.current.scrollContainers=null),E.current.resizeObserver&&(E.current.resizeObserver.disconnect(),E.current.resizeObserver=null)}function h(){E.current.element&&(E.current.resizeObserver=new i(D),E.current.resizeObserver.observe(E.current.element),I&&E.current.scrollContainers&&E.current.scrollContainers.forEach(y=>y.addEventListener("scroll",D,{capture:!0,passive:!0})))}const c=y=>{!y||y===E.current.element||(G(),E.current.element=y,E.current.scrollContainers=vL(y),h())};return tP(D,!!I),EP(l),_.useEffect(()=>{G(),h()},[I,D,l]),_.useEffect(()=>G,[]),[c,Q,r]}function EP(g){_.useEffect(()=>{const A=g;return window.addEventListener("resize",A),()=>void window.removeEventListener("resize",A)},[g])}function tP(g,A){_.useEffect(()=>{if(A){const I=g;return window.addEventListener("scroll",I,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",I,!0)}},[g,A])}function vL(g){const A=[];if(!g||g===document.body)return A;const{overflow:I,overflowX:C,overflowY:B}=window.getComputedStyle(g);return[I,C,B].some(i=>i==="auto"||i==="scroll")&&A.push(g),[...A,...vL(g.parentElement)]}const oP=["x","y","top","bottom","left","right","width","height"],nP=(g,A)=>oP.every(I=>g[I]===A[I]);var aP=Object.defineProperty,sP=Object.defineProperties,rP=Object.getOwnPropertyDescriptors,Jf=Object.getOwnPropertySymbols,lP=Object.prototype.hasOwnProperty,cP=Object.prototype.propertyIsEnumerable,qf=(g,A,I)=>A in g?aP(g,A,{enumerable:!0,configurable:!0,writable:!0,value:I}):g[A]=I,mf=(g,A)=>{for(var I in A||(A={}))lP.call(A,I)&&qf(g,I,A[I]);if(Jf)for(var I of Jf(A))cP.call(A,I)&&qf(g,I,A[I]);return g},DP=(g,A)=>sP(g,rP(A));function bL(g,A,I){if(!g)return;if(I(g)===!0)return g;let C=A?g.return:g.child;for(;C;){const B=bL(C,A,I);if(B)return B;C=A?null:C.sibling}}function OL(g){try{return Object.defineProperties(g,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return g}}const id=OL(_.createContext(null));class _L extends _.Component{render(){return _.createElement(id.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:Lf,ReactCurrentDispatcher:Yf}=_.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function hP(){const g=_.useContext(id);if(g===null)throw new Error("its-fine: useFiber must be called within a !");const A=_.useId();return _.useMemo(()=>{for(const C of[Lf==null?void 0:Lf.current,g,g==null?void 0:g.alternate]){if(!C)continue;const B=bL(C,!1,i=>{let Q=i.memoizedState;for(;Q;){if(Q.memoizedState===A)return!0;Q=Q.next}});if(B)return B}},[g,A])}function wP(){var g,A;const I=hP(),[C]=_.useState(()=>new Map);C.clear();let B=I;for(;B;){const i=(g=B.type)==null?void 0:g._context;i&&i!==id&&!C.has(i)&&C.set(i,(A=Yf==null?void 0:Yf.current)==null?void 0:A.readContext(OL(i))),B=B.return}return C}function SP(){const g=wP();return _.useMemo(()=>Array.from(g.keys()).reduce((A,I)=>C=>_.createElement(A,null,_.createElement(I.Provider,DP(mf({},C),{value:g.get(I)}))),A=>_.createElement(_L,mf({},A))),[g])}const qy={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function GP(g){const{handlePointer:A}=WZ(g);return{priority:1,enabled:!0,compute(I,C,B){C.pointer.set(I.offsetX/C.size.width*2-1,-(I.offsetY/C.size.height)*2+1),C.raycaster.setFromCamera(C.pointer,C.camera)},connected:void 0,handlers:Object.keys(qy).reduce((I,C)=>({...I,[C]:A(C)}),{}),update:()=>{var I;const{events:C,internal:B}=g.getState();(I=B.lastEvent)!=null&&I.current&&C.handlers&&C.handlers.onPointerMove(B.lastEvent.current)},connect:I=>{var C;const{set:B,events:i}=g.getState();i.disconnect==null||i.disconnect(),B(Q=>({events:{...Q.events,connected:I}})),Object.entries((C=i.handlers)!=null?C:[]).forEach(([Q,e])=>{const[E,t]=qy[Q];I.addEventListener(E,e,{passive:t})})},disconnect:()=>{const{set:I,events:C}=g.getState();if(C.connected){var B;Object.entries((B=C.handlers)!=null?B:[]).forEach(([i,Q])=>{if(C&&C.connected instanceof HTMLElement){const[e]=qy[i];C.connected.removeEventListener(e,Q)}}),I(i=>({events:{...i.events,connected:void 0}}))}}}}const yP=_.forwardRef(function({children:A,fallback:I,resize:C,style:B,gl:i,events:Q=GP,eventSource:e,eventPrefix:E,shadows:t,linear:a,flat:s,legacy:r,orthographic:l,frameloop:D,dpr:G,performance:h,raycaster:c,camera:y,scene:S,onPointerMissed:k,onCreated:f,...d},N){_.useMemo(()=>Yw(NZ),[]);const q=SP(),[P,U]=eP({scroll:!0,debounce:{scroll:50,resize:0},...C}),K=_.useRef(null),X=_.useRef(null);_.useImperativeHandle(N,()=>K.current);const wA=NL(k),[z,lA]=_.useState(!1),[aA,SA]=_.useState(!1);if(z)throw z;if(aA)throw aA;const b=_.useRef(null);$r(()=>{const gA=K.current;U.width>0&&U.height>0&&gA&&(b.current||(b.current=CP(gA)),b.current.configure({gl:i,events:Q,shadows:t,linear:a,flat:s,legacy:r,orthographic:l,frameloop:D,dpr:G,performance:h,raycaster:c,camera:y,scene:S,size:U,onPointerMissed:(...hA)=>wA.current==null?void 0:wA.current(...hA),onCreated:hA=>{hA.events.connect==null||hA.events.connect(e?TZ(e)?e.current:e:X.current),E&&hA.setEvents({compute:(NA,WA)=>{const j=NA[E+"X"],x=NA[E+"Y"];WA.pointer.set(j/WA.size.width*2-1,-(x/WA.size.height)*2+1),WA.raycaster.setFromCamera(WA.pointer,WA.camera)}}),f==null||f(hA)}}),b.current.render(_.createElement(q,null,_.createElement(FL,{set:SA},_.createElement(_.Suspense,{fallback:_.createElement(xZ,{set:lA})},A)))))}),_.useEffect(()=>{const gA=K.current;if(gA)return()=>xL(gA)},[]);const BA=e?"none":"auto";return _.createElement("div",ME({ref:X,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:BA,...B}},d),_.createElement("div",{ref:P,style:{width:"100%",height:"100%"}},_.createElement("canvas",{ref:K,style:{display:"block"}},I)))}),uP=_.forwardRef(function(A,I){return _.createElement(_L,null,_.createElement(yP,ME({},A,{ref:I})))});function ZL(g){return function(A){g.forEach(function(I){typeof I=="function"?I(A):I!=null&&(I.current=A)})}}function Zs(g,A,I){return A in g?Object.defineProperty(g,A,{value:I,enumerable:!0,configurable:!0,writable:!0}):g[A]=I,g}function _u(g,A){return _u=Object.setPrototypeOf||function(C,B){return C.__proto__=B,C},_u(g,A)}function kP(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Zu(g,A){(A==null||A>g.length)&&(A=g.length);for(var I=0,C=new Array(A);IMath.PI&&(I-=Math.PI*2),I}function Qd(g,A){if(!(g instanceof A))throw new TypeError("Cannot call a class as a function")}var Ui=function g(A,I,C){var B=this;Qd(this,g),Zs(this,"dot2",function(i,Q){return B.x*i+B.y*Q}),Zs(this,"dot3",function(i,Q,e){return B.x*i+B.y*Q+B.z*e}),this.x=A,this.y=I,this.z=C},KP=[new Ui(1,1,0),new Ui(-1,1,0),new Ui(1,-1,0),new Ui(-1,-1,0),new Ui(1,0,1),new Ui(-1,0,1),new Ui(1,0,-1),new Ui(-1,0,-1),new Ui(0,1,1),new Ui(0,-1,1),new Ui(0,1,-1),new Ui(0,-1,-1)],Hf=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],Tf=new Array(512),xf=new Array(512),JP=function(A){A>0&&A<1&&(A*=65536),A=Math.floor(A),A<256&&(A|=A<<8);for(var I=0;I<256;I++){var C;I&1?C=Hf[I]^A&255:C=Hf[I]^A>>8&255,Tf[I]=Tf[I+256]=C,xf[I]=xf[I+256]=KP[C%12]}};JP(0);function qP(g){if(typeof g=="number")g=Math.abs(g);else if(typeof g=="string"){var A=g;g=0;for(var I=0;I1&&arguments[1]!==void 0?arguments[1]:.01,C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,B=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1/(2*Math.PI);return C/Math.atan(1/I)*Math.atan(Math.sin(2*Math.PI*A*B)/I)},PL=function(A){return 1/(1+A+.48*A*A+.235*A*A*A)},YP=function(A){return A},HP={in:function(A){return 1-Math.cos(A*Math.PI/2)},out:function(A){return Math.sin(A*Math.PI/2)},inOut:function(A){return-(Math.cos(Math.PI*A)-1)/2}},TP={in:function(A){return A*A*A},out:function(A){return 1-Math.pow(1-A,3)},inOut:function(A){return A<.5?4*A*A*A:1-Math.pow(-2*A+2,3)/2}},xP={in:function(A){return A*A*A*A*A},out:function(A){return 1-Math.pow(1-A,5)},inOut:function(A){return A<.5?16*A*A*A*A*A:1-Math.pow(-2*A+2,5)/2}},vP={in:function(A){return 1-Math.sqrt(1-Math.pow(A,2))},out:function(A){return Math.sqrt(1-Math.pow(A-1,2))},inOut:function(A){return A<.5?(1-Math.sqrt(1-Math.pow(2*A,2)))/2:(Math.sqrt(1-Math.pow(-2*A+2,2))+1)/2}},bP={in:function(A){return A*A*A*A},out:function(A){return 1- --A*A*A*A},inOut:function(A){return A<.5?8*A*A*A*A:1-8*--A*A*A*A}},OP={in:function(A){return A===0?0:Math.pow(2,10*A-10)},out:function(A){return A===1?1:1-Math.pow(2,-10*A)},inOut:function(A){return A===0?0:A===1?1:A<.5?Math.pow(2,20*A-10)/2:(2-Math.pow(2,-20*A+10))/2}};function HC(g,A,I){var C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:.25,B=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.01,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1/0,Q=arguments.length>6&&arguments[6]!==void 0?arguments[6]:PL,e=arguments.length>7&&arguments[7]!==void 0?arguments[7]:.001,E="velocity_"+A;if(g.__damp===void 0&&(g.__damp={}),g.__damp[E]===void 0&&(g.__damp[E]=0),Math.abs(g[A]-I)<=e)return g[A]=I,!1;C=Math.max(1e-4,C);var t=2/C,a=Q(t*B),s=g[A]-I,r=I,l=i*C;s=Math.min(Math.max(s,-l),l),I=g[A]-s;var D=(g.__damp[E]+t*s)*B;g.__damp[E]=(g.__damp[E]-t*D)*a;var G=I+(s+D)*a;return r-g[A]>0==G>r&&(G=r,g.__damp[E]=(G-r)/B),g[A]=G,!0}var _P=function(A){return A&&A.isCamera},ZP=function(A){return A&&A.isLight},ts=new O,bf=new Pg,Of=new Pg,os=new dI,my=new O;function PP(g,A,I,C,B,i,Q){typeof A=="number"?ts.setScalar(A):Array.isArray(A)?ts.set(A[0],A[1],A[2]):ts.copy(A);var e=g.parent;g.updateWorldMatrix(!0,!1),my.setFromMatrixPosition(g.matrixWorld),_P(g)||ZP(g)?os.lookAt(my,ts,g.up):os.lookAt(ts,my,g.up),Fh(g.quaternion,Of.setFromRotationMatrix(os),I,C,B,i,Q),e&&(os.extractRotation(e.matrixWorld),bf.setFromRotationMatrix(os),Fh(g.quaternion,Of.copy(g.quaternion).premultiply(bf.invert()),I,C,B,i,Q))}function Tn(g,A,I,C,B,i,Q,e){return HC(g,A,g[A]+RP(g[A],I),C,B,i,Q,e)}var ns=new qA,_f,Zf;function WP(g,A,I,C,B,i,Q){return typeof A=="number"?ns.setScalar(A):Array.isArray(A)?ns.set(A[0],A[1]):ns.copy(A),_f=HC(g,"x",ns.x,I,C,B,i,Q),Zf=HC(g,"y",ns.y,I,C,B,i,Q),_f||Zf}var Qn=new O,Pf,Wf,jf;function Pu(g,A,I,C,B,i,Q){return typeof A=="number"?Qn.setScalar(A):Array.isArray(A)?Qn.set(A[0],A[1],A[2]):Qn.copy(A),Pf=HC(g,"x",Qn.x,I,C,B,i,Q),Wf=HC(g,"y",Qn.y,I,C,B,i,Q),jf=HC(g,"z",Qn.z,I,C,B,i,Q),Pf||Wf||jf}var ht=new Sg,Vf,Xf,zf,$f;function jP(g,A,I,C,B,i,Q){return typeof A=="number"?ht.setScalar(A):Array.isArray(A)?ht.set(A[0],A[1],A[2],A[3]):ht.copy(A),Vf=HC(g,"x",ht.x,I,C,B,i,Q),Xf=HC(g,"y",ht.y,I,C,B,i,Q),zf=HC(g,"z",ht.z,I,C,B,i,Q),$f=HC(g,"w",ht.w,I,C,B,i,Q),Vf||Xf||zf||$f}var as=new LQ,AR,IR,gR;function VP(g,A,I,C,B,i,Q){return Array.isArray(A)?as.set(A[0],A[1],A[2],A[3]):as.copy(A),AR=Tn(g,"x",as.x,I,C,B,i,Q),IR=Tn(g,"y",as.y,I,C,B,i,Q),gR=Tn(g,"z",as.z,I,C,B,i,Q),AR||IR||gR}var en=new QI,CR,BR,iR;function XP(g,A,I,C,B,i,Q){return A instanceof QI?en.copy(A):Array.isArray(A)?en.setRGB(A[0],A[1],A[2]):en.set(A),CR=HC(g,"r",en.r,I,C,B,i,Q),BR=HC(g,"g",en.g,I,C,B,i,Q),iR=HC(g,"b",en.b,I,C,B,i,Q),CR||BR||iR}var ji=new Pg,$Q=new Sg,QR=new Sg,ss=new Sg,eR,ER,tR,oR;function Fh(g,A,I,C,B,i,Q){var e=g;Array.isArray(A)?ji.set(A[0],A[1],A[2],A[3]):ji.copy(A);var E=g.dot(ji)>0?1:-1;return ji.x*=E,ji.y*=E,ji.z*=E,ji.w*=E,eR=HC(g,"x",ji.x,I,C,B,i,Q),ER=HC(g,"y",ji.y,I,C,B,i,Q),tR=HC(g,"z",ji.z,I,C,B,i,Q),oR=HC(g,"w",ji.w,I,C,B,i,Q),$Q.set(g.x,g.y,g.z,g.w).normalize(),QR.set(e.__damp.velocity_x,e.__damp.velocity_y,e.__damp.velocity_z,e.__damp.velocity_w),ss.copy($Q).multiplyScalar(QR.dot($Q)/$Q.dot($Q)),e.__damp.velocity_x-=ss.x,e.__damp.velocity_y-=ss.y,e.__damp.velocity_z-=ss.z,e.__damp.velocity_w-=ss.w,g.set($Q.x,$Q.y,$Q.z,$Q.w),eR||ER||tR||oR}var rs=new DL,nR,aR,sR;function zP(g,A,I,C,B,i,Q){return Array.isArray(A)?rs.set(A[0],A[1],A[2]):rs.copy(A),nR=HC(g,"radius",rs.radius,I,C,B,i,Q),aR=Tn(g,"phi",rs.phi,I,C,B,i,Q),sR=Tn(g,"theta",rs.theta,I,C,B,i,Q),nR||aR||sR}var aD=new dI,rR=new O,lR=new Pg,cR=new O,DR,hR,wR;function $P(g,A,I,C,B,i,Q){var e=g;return e.__damp===void 0&&(e.__damp={position:new O,rotation:new Pg,scale:new O},g.decompose(e.__damp.position,e.__damp.rotation,e.__damp.scale)),Array.isArray(A)?aD.set.apply(aD,NP(A)):aD.copy(A),aD.decompose(rR,lR,cR),DR=Pu(e.__damp.position,rR,I,C,B,i,Q),hR=Fh(e.__damp.rotation,lR,I,C,B,i,Q),wR=Pu(e.__damp.scale,cR,I,C,B,i,Q),g.compose(e.__damp.position,e.__damp.rotation,e.__damp.scale),DR||hR||wR}var Wu=Object.freeze({__proto__:null,rsqw:LP,exp:PL,linear:YP,sine:HP,cubic:TP,quint:xP,circ:vP,quart:bP,expo:OP,damp:HC,dampLookAt:PP,dampAngle:Tn,damp2:WP,damp3:Pu,damp4:jP,dampE:VP,dampC:XP,dampQ:Fh,dampS:zP,dampM:$P});function AW(g,A){if(typeof A!="function"&&A!==null)throw new TypeError("Super expression must either be null or a function");g.prototype=Object.create(A&&A.prototype,{constructor:{value:g,writable:!0,configurable:!0}}),A&&_u(g,A)}function fh(g){return fh=Object.setPrototypeOf?Object.getPrototypeOf:function(I){return I.__proto__||Object.getPrototypeOf(I)},fh(g)}function IW(g){if(g===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return g}function gW(g,A){if(A&&(typeof A=="object"||typeof A=="function"))return A;if(A!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return IW(g)}function CW(g){var A=kP();return function(){var C=fh(g),B;if(A){var i=fh(this).constructor;B=Reflect.construct(C,arguments,i)}else B=C.apply(this,arguments);return gW(this,B)}}var BW=function(g){AW(I,g);var A=CW(I);function I(){var C,B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:.2,e=arguments.length>3&&arguments[3]!==void 0?arguments[3]:16;Qd(this,I),C=A.call(this),C.parameters={width:B,height:i,radius:Q,segments:e};for(var E=B/2-Q,t=i/2-Q,a=Q/B,s=(B-Q)/B,r=Q/i,l=(i-Q)/i,D=[E,t,0,-E,t,0,-E,-t,0,E,-t,0],G=[s,l,a,l,a,r,s,r],h=[3*(e+1)+3,3*(e+1)+4,e+4,e+5,2*(e+1)+4,2,1,2*(e+1)+3,3,4*(e+1)+3,4,0],c=[h[0],h[1],h[2],h[0],h[2],h[3],h[4],h[5],h[6],h[4],h[6],h[7],h[8],h[9],h[10],h[8],h[10],h[11]],y,S,k,f,d,N,q,P,U=0;U<4;U++){f=U<1||U>2?E:-E,d=U<2?t:-t,N=U<1||U>2?s:a,q=U<2?l:r;for(var K=0;K<=e;K++)y=Math.PI/2*(U+K/e),S=Math.cos(y),k=Math.sin(y),D.push(f+Q*S,d+Q*k,0),G.push(N+a*S,q+r*k),KtA.x&&tA.y>tA.z?(dA.x=(x.x-I.min.x)/C,dA.y=(I.max.z-x.z)/C,EA.x=(Y.x-I.min.x)/C,EA.y=(I.max.z-Y.z)/C,FA.x=(T.x-I.min.x)/C,FA.y=(I.max.z-T.z)/C):tA.x>tA.y&&tA.x>tA.z?(dA.x=(x.z-I.min.z)/C,dA.y=(x.y-I.min.y)/C,EA.x=(Y.z-I.min.z)/C,EA.y=(Y.y-I.min.y)/C,FA.x=(T.z-I.min.z)/C,FA.y=(T.y-I.min.y)/C):tA.z>tA.y&&tA.z>tA.x&&(dA.x=(x.x-I.min.x)/C,dA.y=(x.y-I.min.y)/C,EA.x=(Y.x-I.min.x)/C,EA.y=(Y.y-I.min.y)/C,FA.x=(T.x-I.min.x)/C,FA.y=(T.y-I.min.y)/C),{uv0:dA,uv1:EA,uv2:FA}};if(g.index)for(var Q=0;Q>>1|(_g&21845)<<1;Oe=(Oe&52428)>>>2|(Oe&13107)<<2,Oe=(Oe&61680)>>>4|(Oe&3855)<<4,Vu[_g]=((Oe&65280)>>>8|(Oe&255)<<8)>>>1}var Ps=function(g,A,I){for(var C=g.length,B=0,i=new iE(A);B>>E]=t}else for(e=new iE(C),B=0;B>>15-g[B]);return e},Il=new mi(288);for(var _g=0;_g<144;++_g)Il[_g]=8;for(var _g=144;_g<256;++_g)Il[_g]=9;for(var _g=256;_g<280;++_g)Il[_g]=7;for(var _g=280;_g<288;++_g)Il[_g]=8;var $L=new mi(32);for(var _g=0;_g<32;++_g)$L[_g]=5;var cW=Ps(Il,9,1),DW=Ps($L,5,1),Ly=function(g){for(var A=g[0],I=1;IA&&(A=g[I]);return A},Vi=function(g,A,I){var C=A/8|0;return(g[C]|g[C+1]<<8)>>(A&7)&I},Yy=function(g,A){var I=A/8|0;return(g[I]|g[I+1]<<8|g[I+2]<<16)>>(A&7)},hW=function(g){return(g/8|0)+(g&7&&1)},wW=function(g,A,I){(A==null||A<0)&&(A=0),(I==null||I>g.length)&&(I=g.length);var C=new(g instanceof iE?iE:g instanceof ju?ju:mi)(I-A);return C.set(g.subarray(A,I)),C},SW=function(g,A,I){var C=g.length;if(!C||I&&!I.l&&C<5)return A||new mi(0);var B=!A||I,i=!I||I.i;I||(I={}),A||(A=new mi(C*3));var Q=function(Y){var T=A.length;if(Y>T){var tA=new mi(Math.max(T*2,Y));tA.set(A),A=tA}},e=I.f||0,E=I.p||0,t=I.b||0,a=I.l,s=I.d,r=I.m,l=I.n,D=C*8;do{if(!a){I.f=e=Vi(g,E,1);var G=Vi(g,E+1,3);if(E+=3,G)if(G==1)a=cW,s=DW,r=9,l=5;else if(G==2){var S=Vi(g,E,31)+257,k=Vi(g,E+10,15)+4,f=S+Vi(g,E+5,31)+1;E+=14;for(var d=new mi(f),N=new mi(19),q=0;q>>4;if(h<16)d[q++]=h;else{var wA=0,z=0;for(h==16?(z=3+Vi(g,E,3),E+=2,wA=d[q-1]):h==17?(z=3+Vi(g,E,7),E+=3):h==18&&(z=11+Vi(g,E,127),E+=7);z--;)d[q++]=wA}}var lA=d.subarray(0,S),aA=d.subarray(S);r=Ly(lA),l=Ly(aA),a=Ps(lA,r,1),s=Ps(aA,l,1)}else throw"invalid block type";else{var h=hW(E)+4,c=g[h-4]|g[h-3]<<8,y=h+c;if(y>C){if(i)throw"unexpected EOF";break}B&&Q(t+c),A.set(g.subarray(h,y),t),I.b=t+=c,I.p=E=y*8;continue}if(E>D){if(i)throw"unexpected EOF";break}}B&&Q(t+131072);for(var SA=(1<>>4;if(E+=wA&15,E>D){if(i)throw"unexpected EOF";break}if(!wA)throw"invalid length/literal";if(gA<256)A[t++]=gA;else if(gA==256){BA=E,a=null;break}else{var hA=gA-254;if(gA>264){var q=gA-257,NA=WL[q];hA=Vi(g,E,(1<>>4;if(!WA)throw"invalid distance";E+=WA&15;var aA=lW[j];if(j>3){var NA=jL[j];aA+=Yy(g,E)&(1<D){if(i)throw"unexpected EOF";break}B&&Q(t+131072);for(var x=t+hA;t>>4>7||(g[0]<<8|g[1])%31)throw"invalid zlib data";if(g[1]&32)throw"invalid zlib data: preset dictionaries not supported"};function sD(g,A){return SW((yW(g),g.subarray(2,-4)),A)}var uW=typeof TextDecoder<"u"&&new TextDecoder,kW=0;try{uW.decode(GW,{stream:!0}),kW=1}catch{}const MW=g=>g&&g.isCubeTexture;class dW extends lg{constructor(A,I){var C,B;const i=MW(A),e=((B=i?(C=A.image[0])==null?void 0:C.width:A.image.width)!=null?B:1024)/4,E=Math.floor(Math.log2(e)),t=Math.pow(2,E),a=3*Math.max(t,16*7),s=4*t,r=[i?"#define ENVMAP_TYPE_CUBE":"",`#define CUBEUV_TEXEL_WIDTH ${1/a}`,`#define CUBEUV_TEXEL_HEIGHT ${1/s}`,`#define CUBEUV_MAX_MIP ${E}.0`],l=` - varying vec3 vWorldPosition; - void main() - { - vec4 worldPosition = ( modelMatrix * vec4( position, 1.0 ) ); - vWorldPosition = worldPosition.xyz; - - gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); - } - `,D=r.join(` -`)+` - #define ENVMAP_TYPE_CUBE_UV - varying vec3 vWorldPosition; - uniform float radius; - uniform float height; - uniform float angle; - #ifdef ENVMAP_TYPE_CUBE - uniform samplerCube map; - #else - uniform sampler2D map; - #endif - // From: https://www.shadertoy.com/view/4tsBD7 - float diskIntersectWithBackFaceCulling( vec3 ro, vec3 rd, vec3 c, vec3 n, float r ) - { - float d = dot ( rd, n ); - - if( d > 0.0 ) { return 1e6; } - - vec3 o = ro - c; - float t = - dot( n, o ) / d; - vec3 q = o + rd * t; - - return ( dot( q, q ) < r * r ) ? t : 1e6; - } - // From: https://www.iquilezles.org/www/articles/intersectors/intersectors.htm - float sphereIntersect( vec3 ro, vec3 rd, vec3 ce, float ra ) - { - vec3 oc = ro - ce; - float b = dot( oc, rd ); - float c = dot( oc, oc ) - ra * ra; - float h = b * b - c; - - if( h < 0.0 ) { return -1.0; } - - h = sqrt( h ); - - return - b + h; - } - vec3 project() - { - vec3 p = normalize( vWorldPosition ); - vec3 camPos = cameraPosition; - camPos.y -= height; - float intersection = sphereIntersect( camPos, p, vec3( 0.0 ), radius ); - if( intersection > 0.0 ) { - - vec3 h = vec3( 0.0, - height, 0.0 ); - float intersection2 = diskIntersectWithBackFaceCulling( camPos, p, h, vec3( 0.0, 1.0, 0.0 ), radius ); - p = ( camPos + min( intersection, intersection2 ) * p ) / radius; - } else { - p = vec3( 0.0, 1.0, 0.0 ); - } - return p; - } - #include - #include - void main() - { - vec3 projectedWorldPosition = project(); - - #ifdef ENVMAP_TYPE_CUBE - vec3 outcolor = textureCube( map, projectedWorldPosition ).rgb; - #else - vec3 direction = normalize( projectedWorldPosition ); - vec2 uv = equirectUv( direction ); - vec3 outcolor = texture2D( map, uv ).rgb; - #endif - gl_FragColor = vec4( outcolor, 1.0 ); - #include - #include <${parseInt(to.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}> - } - `,G={map:{value:A},height:{value:(I==null?void 0:I.height)||15},radius:{value:(I==null?void 0:I.radius)||100}},h=new jr(1,16),c=new LC({uniforms:G,fragmentShader:D,vertexShader:l,side:qi});super(h,c)}set radius(A){this.material.uniforms.radius.value=A}get radius(){return this.material.uniforms.radius.value}set height(A){this.material.uniforms.height.value=A}get height(){return this.material.uniforms.height.value}}var pW=Object.defineProperty,UW=(g,A,I)=>A in g?pW(g,A,{enumerable:!0,configurable:!0,writable:!0,value:I}):g[A]=I,Hy=(g,A,I)=>(UW(g,typeof A!="symbol"?A+"":A,I),I);class an{constructor(A){Hy(this,"camera",new mE(-1,1,1,-1,0,1)),Hy(this,"geometry",new ke(2,2)),Hy(this,"mesh"),this.mesh=new lg(this.geometry,A)}get material(){return this.mesh.material}set material(A){this.mesh.material=A}dispose(){this.mesh.geometry.dispose()}render(A){A.render(this.mesh,this.camera)}}class ed extends EB{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(I){return new KW(I)}),this.register(function(I){return new xW(I)}),this.register(function(I){return new vW(I)}),this.register(function(I){return new bW(I)}),this.register(function(I){return new qW(I)}),this.register(function(I){return new mW(I)}),this.register(function(I){return new LW(I)}),this.register(function(I){return new YW(I)}),this.register(function(I){return new RW(I)}),this.register(function(I){return new HW(I)}),this.register(function(I){return new JW(I)}),this.register(function(I){return new TW(I)}),this.register(function(I){return new FW(I)}),this.register(function(I){return new OW(I)}),this.register(function(I){return new _W(I)})}load(A,I,C,B){const i=this;let Q;this.resourcePath!==""?Q=this.resourcePath:this.path!==""?Q=this.path:Q=KQ.extractUrlBase(A),this.manager.itemStart(A);const e=function(t){B?B(t):console.error(t),i.manager.itemError(A),i.manager.itemEnd(A)},E=new jB(this.manager);E.setPath(this.path),E.setResponseType("arraybuffer"),E.setRequestHeader(this.requestHeader),E.setWithCredentials(this.withCredentials),E.load(A,function(t){try{i.parse(t,Q,function(a){I(a),i.manager.itemEnd(A)},e)}catch(a){e(a)}},C,e)}setDRACOLoader(A){return this.dracoLoader=A,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,I,C,B){let i;const Q={},e={};if(typeof A=="string")i=JSON.parse(A);else if(A instanceof ArrayBuffer)if(KQ.decodeText(new Uint8Array(A.slice(0,4)))===AY){try{Q[rg.KHR_BINARY_GLTF]=new ZW(A)}catch(a){B&&B(a);return}i=JSON.parse(Q[rg.KHR_BINARY_GLTF].content)}else i=JSON.parse(KQ.decodeText(new Uint8Array(A)));else i=A;if(i.asset===void 0||i.asset.version[0]<2){B&&B(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const E=new i8(i,{path:I||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});E.fileLoader.setRequestHeader(this.requestHeader);for(let t=0;t=0&&e[a]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+a+'".')}}E.setExtensions(Q),E.setPlugins(e),E.parse(C,B)}parseAsync(A,I){const C=this;return new Promise(function(B,i){C.parse(A,I,B,i)})}}function NW(){let g={};return{get:function(A){return g[A]},add:function(A,I){g[A]=I},remove:function(A){delete g[A]},removeAll:function(){g={}}}}const rg={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class FW{constructor(A){this.parser=A,this.name=rg.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,I=this.parser.json.nodes||[];for(let C=0,B=I.length;C=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return I.loadTextureImage(A,i.source,Q)}}class vW{constructor(A){this.parser=A,this.name=rg.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(A){const I=this.name,C=this.parser,B=C.json,i=B.textures[A];if(!i.extensions||!i.extensions[I])return null;const Q=i.extensions[I],e=B.images[Q.source];let E=C.textureLoader;if(e.uri){const t=C.options.manager.getHandler(e.uri);t!==null&&(E=t)}return this.detectSupport().then(function(t){if(t)return C.loadTextureImage(A,Q.source,E);if(B.extensionsRequired&&B.extensionsRequired.indexOf(I)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return C.loadTexture(A)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(A){const I=new Image;I.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",I.onload=I.onerror=function(){A(I.height===1)}})),this.isSupported}}class bW{constructor(A){this.parser=A,this.name=rg.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(A){const I=this.name,C=this.parser,B=C.json,i=B.textures[A];if(!i.extensions||!i.extensions[I])return null;const Q=i.extensions[I],e=B.images[Q.source];let E=C.textureLoader;if(e.uri){const t=C.options.manager.getHandler(e.uri);t!==null&&(E=t)}return this.detectSupport().then(function(t){if(t)return C.loadTextureImage(A,Q.source,E);if(B.extensionsRequired&&B.extensionsRequired.indexOf(I)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return C.loadTexture(A)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(A){const I=new Image;I.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",I.onload=I.onerror=function(){A(I.height===1)}})),this.isSupported}}class OW{constructor(A){this.name=rg.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const I=this.parser.json,C=I.bufferViews[A];if(C.extensions&&C.extensions[this.name]){const B=C.extensions[this.name],i=this.parser.getDependency("buffer",B.buffer),Q=this.parser.options.meshoptDecoder;if(!Q||!Q.supported){if(I.extensionsRequired&&I.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(e){const E=B.byteOffset||0,t=B.byteLength||0,a=B.count,s=B.byteStride,r=new Uint8Array(e,E,t);return Q.decodeGltfBufferAsync?Q.decodeGltfBufferAsync(a,s,r,B.mode,B.filter).then(function(l){return l.buffer}):Q.ready.then(function(){const l=new ArrayBuffer(a*s);return Q.decodeGltfBuffer(new Uint8Array(l),a,s,r,B.mode,B.filter),l})})}else return null}}class _W{constructor(A){this.name=rg.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const I=this.parser.json,C=I.nodes[A];if(!C.extensions||!C.extensions[this.name]||C.mesh===void 0)return null;const B=I.meshes[C.mesh];for(const t of B.primitives)if(t.mode!==Fi.TRIANGLES&&t.mode!==Fi.TRIANGLE_STRIP&&t.mode!==Fi.TRIANGLE_FAN&&t.mode!==void 0)return null;const Q=C.extensions[this.name].attributes,e=[],E={};for(const t in Q)e.push(this.parser.getDependency("accessor",Q[t]).then(a=>(E[t]=a,E[t])));return e.length<1?null:(e.push(this.parser.createNodeMesh(A)),Promise.all(e).then(t=>{const a=t.pop(),s=a.isGroup?a.children:[a],r=t[0].count,l=[];for(const D of s){const G=new dI,h=new O,c=new Pg,y=new O(1,1,1),S=new KM(D.geometry,D.material,r);for(let k=0;k=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},_e={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},zW={CUBICSPLINE:void 0,LINEAR:zt,STEP:$n},xy={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function $W(g){return g.DefaultMaterial===void 0&&(g.DefaultMaterial=new zr({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:si})),g.DefaultMaterial}function wt(g,A,I){for(const C in I.extensions)g[C]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[C]=I.extensions[C])}function Xe(g,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(g.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function A8(g,A,I){let C=!1,B=!1,i=!1;for(let t=0,a=A.length;t0||g.search(/^data\:image\/jpeg/)===0?"image/jpeg":g.search(/\.webp($|\?)/i)>0||g.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const B8=new dI;class i8{constructor(A={},I={}){this.json=A,this.extensions={},this.plugins={},this.options=I,this.cache=new NW,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let C=!1,B=!1,i=-1;typeof navigator<"u"&&typeof navigator.userAgent<"u"&&(C=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,B=navigator.userAgent.indexOf("Firefox")>-1,i=B?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>"u"||C||B&&i<98?this.textureLoader=new mw(this.options.manager):this.textureLoader=new sL(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new jB(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,I){const C=this,B=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(Q){return Q._markDefs&&Q._markDefs()}),Promise.all(this._invokeAll(function(Q){return Q.beforeRoot&&Q.beforeRoot()})).then(function(){return Promise.all([C.getDependencies("scene"),C.getDependencies("animation"),C.getDependencies("camera")])}).then(function(Q){const e={scene:Q[0][B.scene||0],scenes:Q[0],animations:Q[1],cameras:Q[2],asset:B.asset,parser:C,userData:{}};wt(i,e,B),Xe(e,B),Promise.all(C._invokeAll(function(E){return E.afterRoot&&E.afterRoot(e)})).then(function(){A(e)})}).catch(I)}_markDefs(){const A=this.json.nodes||[],I=this.json.skins||[],C=this.json.meshes||[];for(let B=0,i=I.length;B{const E=this.associations.get(Q);E!=null&&this.associations.set(e,E);for(const[t,a]of Q.children.entries())i(a,e.children[t])};return i(C,B),B.name+="_instance_"+A.uses[I]++,B}_invokeOne(A){const I=Object.values(this.plugins);I.push(this);for(let C=0;C=2&&h.setY(P,d[N*E+1]),E>=3&&h.setZ(P,d[N*E+2]),E>=4&&h.setW(P,d[N*E+3]),E>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return h})}loadTexture(A){const I=this.json,C=this.options,i=I.textures[A].source,Q=I.images[i];let e=this.textureLoader;if(Q.uri){const E=C.manager.getHandler(Q.uri);E!==null&&(e=E)}return this.loadTextureImage(A,i,e)}loadTextureImage(A,I,C){const B=this,i=this.json,Q=i.textures[A],e=i.images[I],E=(e.uri||e.bufferView)+":"+Q.sampler;if(this.textureCache[E])return this.textureCache[E];const t=this.loadImageSource(I,C).then(function(a){a.flipY=!1,a.name=Q.name||e.name||"",a.name===""&&typeof e.uri=="string"&&e.uri.startsWith("data:image/")===!1&&(a.name=e.uri);const r=(i.samplers||{})[Q.sampler]||{};return a.magFilter=uR[r.magFilter]||wg,a.minFilter=uR[r.minFilter]||Ei,a.wrapS=kR[r.wrapS]||pE,a.wrapT=kR[r.wrapT]||pE,B.associations.set(a,{textures:A}),a}).catch(function(){return null});return this.textureCache[E]=t,t}loadImageSource(A,I){const C=this,B=this.json,i=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(s=>s.clone());const Q=B.images[A],e=self.URL||self.webkitURL;let E=Q.uri||"",t=!1;if(Q.bufferView!==void 0)E=C.getDependency("bufferView",Q.bufferView).then(function(s){t=!0;const r=new Blob([s],{type:Q.mimeType});return E=e.createObjectURL(r),E});else if(Q.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const a=Promise.resolve(E).then(function(s){return new Promise(function(r,l){let D=r;I.isImageBitmapLoader===!0&&(D=function(G){const h=new Lg(G);h.needsUpdate=!0,r(h)}),I.load(KQ.resolveURL(s,i.path),D,void 0,l)})}).then(function(s){return t===!0&&e.revokeObjectURL(E),s.userData.mimeType=Q.mimeType||C8(Q.uri),s}).catch(function(s){throw console.error("THREE.GLTFLoader: Couldn't load texture",E),s});return this.sourceCache[A]=a,a}assignTexture(A,I,C,B){const i=this;return this.getDependency("texture",C.index).then(function(Q){if(!Q)return null;if(C.texCoord!==void 0&&C.texCoord>0&&(Q=Q.clone(),Q.channel=C.texCoord),i.extensions[rg.KHR_TEXTURE_TRANSFORM]){const e=C.extensions!==void 0?C.extensions[rg.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const E=i.associations.get(Q);Q=i.extensions[rg.KHR_TEXTURE_TRANSFORM].extendTexture(Q,e),i.associations.set(Q,E)}}return B!==void 0&&("colorSpace"in Q?Q.colorSpace=B===3001?"srgb":"srgb-linear":Q.encoding=B),A[I]=Q,Q})}assignFinalMaterial(A){const I=A.geometry;let C=A.material;const B=I.attributes.tangent===void 0,i=I.attributes.color!==void 0,Q=I.attributes.normal===void 0;if(A.isPoints){const e="PointsMaterial:"+C.uuid;let E=this.cache.get(e);E||(E=new yw,hC.prototype.copy.call(E,C),E.color.copy(C.color),E.map=C.map,E.sizeAttenuation=!1,this.cache.add(e,E)),C=E}else if(A.isLine){const e="LineBasicMaterial:"+C.uuid;let E=this.cache.get(e);E||(E=new uB,hC.prototype.copy.call(E,C),E.color.copy(C.color),E.map=C.map,this.cache.add(e,E)),C=E}if(B||i||Q){let e="ClonedMaterial:"+C.uuid+":";B&&(e+="derivative-tangents:"),i&&(e+="vertex-colors:"),Q&&(e+="flat-shading:");let E=this.cache.get(e);E||(E=C.clone(),i&&(E.vertexColors=!0),Q&&(E.flatShading=!0),B&&(E.normalScale&&(E.normalScale.y*=-1),E.clearcoatNormalScale&&(E.clearcoatNormalScale.y*=-1)),this.cache.add(e,E),this.associations.set(E,this.associations.get(C))),C=E}A.material=C}getMaterialType(){return zr}loadMaterial(A){const I=this,C=this.json,B=this.extensions,i=C.materials[A];let Q;const e={},E=i.extensions||{},t=[];if(E[rg.KHR_MATERIALS_UNLIT]){const s=B[rg.KHR_MATERIALS_UNLIT];Q=s.getMaterialType(),t.push(s.extendParams(e,i,I))}else{const s=i.pbrMetallicRoughness||{};if(e.color=new QI(1,1,1),e.opacity=1,Array.isArray(s.baseColorFactor)){const r=s.baseColorFactor;e.color.fromArray(r),e.opacity=r[3]}s.baseColorTexture!==void 0&&t.push(I.assignTexture(e,"map",s.baseColorTexture,3001)),e.metalness=s.metallicFactor!==void 0?s.metallicFactor:1,e.roughness=s.roughnessFactor!==void 0?s.roughnessFactor:1,s.metallicRoughnessTexture!==void 0&&(t.push(I.assignTexture(e,"metalnessMap",s.metallicRoughnessTexture)),t.push(I.assignTexture(e,"roughnessMap",s.metallicRoughnessTexture))),Q=this._invokeOne(function(r){return r.getMaterialType&&r.getMaterialType(A)}),t.push(Promise.all(this._invokeAll(function(r){return r.extendMaterialParams&&r.extendMaterialParams(A,e)})))}i.doubleSided===!0&&(e.side=qi);const a=i.alphaMode||xy.OPAQUE;if(a===xy.BLEND?(e.transparent=!0,e.depthWrite=!1):(e.transparent=!1,a===xy.MASK&&(e.alphaTest=i.alphaCutoff!==void 0?i.alphaCutoff:.5)),i.normalTexture!==void 0&&Q!==UC&&(t.push(I.assignTexture(e,"normalMap",i.normalTexture)),e.normalScale=new qA(1,1),i.normalTexture.scale!==void 0)){const s=i.normalTexture.scale;e.normalScale.set(s,s)}return i.occlusionTexture!==void 0&&Q!==UC&&(t.push(I.assignTexture(e,"aoMap",i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(e.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&Q!==UC&&(e.emissive=new QI().fromArray(i.emissiveFactor)),i.emissiveTexture!==void 0&&Q!==UC&&t.push(I.assignTexture(e,"emissiveMap",i.emissiveTexture,3001)),Promise.all(t).then(function(){const s=new Q(e);return i.name&&(s.name=i.name),Xe(s,i),I.associations.set(s,{materials:A}),i.extensions&&wt(B,s,i),s})}createUniqueName(A){const I=Dg.sanitizeNodeName(A||"");return I in this.nodeNamesUsed?I+"_"+ ++this.nodeNamesUsed[I]:(this.nodeNamesUsed[I]=0,I)}loadGeometries(A){const I=this,C=this.extensions,B=this.primitiveCache;function i(e){return C[rg.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,I).then(function(E){return MR(E,e,I)})}const Q=[];for(let e=0,E=A.length;e0&&I8(c,i),c.name=I.createUniqueName(i.name||"mesh_"+A),Xe(c,i),h.extensions&&wt(B,c,h),I.assignFinalMaterial(c),s.push(c)}for(let l=0,D=s.length;l1?a=new KB:t.length===1?a=t[0]:a=new og,a!==t[0])for(let s=0,r=t.length;s{const s=new Map;for(const[r,l]of B.associations)(r instanceof hC||r instanceof Lg)&&s.set(r,l);return a.traverse(r=>{const l=B.associations.get(r);l!=null&&s.set(r,l)}),s};return B.associations=t(i),i})}}function Q8(g,A,I){const C=A.attributes,B=new sC;if(C.POSITION!==void 0){const e=I.json.accessors[C.POSITION],E=e.min,t=e.max;if(E!==void 0&&t!==void 0){if(B.set(new O(E[0],E[1],E[2]),new O(t[0],t[1],t[2])),e.normalized){const a=zu(xn[e.componentType]);B.min.multiplyScalar(a),B.max.multiplyScalar(a)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const i=A.targets;if(i!==void 0){const e=new O,E=new O;for(let t=0,a=i.length;t(q=K.indexOf(s))&&P=S.byteLength||!(U=r(S)))return e(1,"no header found");if(!(K=U.match(k)))return e(3,"bad initial token");for(P.valid|=1,P.programtype=K[1],P.string+=U+` -`;U=r(S),U!==!1;){if(P.string+=U+` -`,U.charAt(0)==="#"){P.comments+=U+` -`;continue}if((K=U.match(f))&&(P.gamma=parseFloat(K[1])),(K=U.match(d))&&(P.exposure=parseFloat(K[1])),(K=U.match(N))&&(P.valid|=2,P.format=K[1]),(K=U.match(q))&&(P.valid|=4,P.height=parseInt(K[1],10),P.width=parseInt(K[2],10)),P.valid&2&&P.valid&4)break}return P.valid&2?P.valid&4?P:e(3,"missing image size specifier"):e(3,"missing format specifier")},D=function(S,k,f){const d=k;if(d<8||d>32767||S[0]!==2||S[1]!==2||S[2]&128)return new Uint8Array(S);if(d!==(S[2]<<8|S[3]))return e(3,"wrong scanline width");const N=new Uint8Array(4*k*f);if(!N.length)return e(4,"unable to allocate buffer space");let q=0,P=0;const U=4*d,K=new Uint8Array(4),X=new Uint8Array(U);let wA=f;for(;wA>0&&PS.byteLength)return e(1);if(K[0]=S[P++],K[1]=S[P++],K[2]=S[P++],K[3]=S[P++],K[0]!=2||K[1]!=2||(K[2]<<8|K[3])!=d)return e(3,"bad rgbe scanline format");let z=0,lA;for(;z128;if(SA&&(lA-=128),lA===0||z+lA>U)return e(3,"bad scanline data");if(SA){const b=S[P++];for(let BA=0;BA>3]&1<<(J&7))&&(Z[rA++]=J);for(var V=rA-1;rA<65536;)Z[rA++]=0;return V}function K(L){for(var Z=0;Z<16384;Z++)L[Z]={},L[Z].len=0,L[Z].lit=0,L[Z].p=null}const X={l:0,c:0,lc:0};function wA(L,Z,rA,J,V){for(;rA>rA&(1<0;--Z){var J=rA+z[Z]>>1;z[Z]=rA,rA=J}for(var Z=0;Z<65537;++Z){var V=L[Z];V>0&&(L[Z]=V|z[V]++<<6)}}function aA(L,Z,rA,J,V,$,oA){for(var iA=rA,RA=0,mA=0;V<=$;V++){if(iA.value-rA.value>J)return!1;wA(6,RA,mA,L,iA);var xA=X.l;if(RA=X.c,mA=X.lc,oA[V]=xA,xA==63){if(iA.value-rA.value>J)throw"Something wrong with hufUnpackEncTable";wA(8,RA,mA,L,iA);var LA=X.l+6;if(RA=X.c,mA=X.lc,V+LA>$+1)throw"Something wrong with hufUnpackEncTable";for(;LA--;)oA[V++]=0;V--}else if(xA>=59){var LA=xA-59+2;if(V+LA>$+1)throw"Something wrong with hufUnpackEncTable";for(;LA--;)oA[V++]=0;V--}}lA(oA)}function SA(L){return L&63}function b(L){return L>>6}function BA(L,Z,rA,J){for(;Z<=rA;Z++){var V=b(L[Z]),$=SA(L[Z]);if(V>>$)throw"Invalid table entry";if($>14){var oA=J[V>>$-14];if(oA.len)throw"Invalid table entry";if(oA.lit++,oA.p){var iA=oA.p;oA.p=new Array(oA.lit);for(var RA=0;RA0;RA--){var oA=J[(V<<14-$)+mA];if(oA.len||oA.p)throw"Invalid table entry";oA.len=$,oA.lit=Z,mA++}}return!0}const gA={c:0,lc:0};function hA(L,Z,rA,J){L=L<<8|sI(rA,J),Z+=8,gA.c=L,gA.lc=Z}const NA={c:0,lc:0};function WA(L,Z,rA,J,V,$,oA,iA,RA,mA){if(L==Z){J<8&&(hA(rA,J,V,oA),rA=gA.c,J=gA.lc),J-=8;var xA=rA>>J,xA=new Uint8Array([xA])[0];if(RA.value+xA>mA)return!1;for(var LA=iA[RA.value-1];xA-- >0;)iA[RA.value++]=LA}else if(RA.value32767?Z-65536:Z}const Y={a:0,b:0};function T(L,Z){var rA=x(L),J=x(Z),V=J,$=rA+(V&1)+(V>>1),oA=$,iA=$-V;Y.a=oA,Y.b=iA}function tA(L,Z){var rA=j(L),J=j(Z),V=rA-(J>>1)&65535,$=J+V-32768&65535;Y.a=$,Y.b=V}function dA(L,Z,rA,J,V,$,oA){for(var iA=oA<16384,RA=rA>V?V:rA,mA=1,xA;mA<=RA;)mA<<=1;for(mA>>=1,xA=mA,mA>>=1;mA>=1;){for(var LA=0,DI=LA+$*(V-xA),VA=$*mA,XA=$*xA,wI=J*mA,FI=J*xA,RI,OI,hI,iI;LA<=DI;LA+=XA){for(var jI=LA,NI=LA+J*(rA-xA);jI<=NI;jI+=FI){var TI=jI+wI,ug=jI+VA,H=ug+wI;iA?(T(L[jI+Z],L[ug+Z]),RI=Y.a,hI=Y.b,T(L[TI+Z],L[H+Z]),OI=Y.a,iI=Y.b,T(RI,OI),L[jI+Z]=Y.a,L[TI+Z]=Y.b,T(hI,iI),L[ug+Z]=Y.a,L[H+Z]=Y.b):(tA(L[jI+Z],L[ug+Z]),RI=Y.a,hI=Y.b,tA(L[TI+Z],L[H+Z]),OI=Y.a,iI=Y.b,tA(RI,OI),L[jI+Z]=Y.a,L[TI+Z]=Y.b,tA(hI,iI),L[ug+Z]=Y.a,L[H+Z]=Y.b)}if(rA&mA){var ug=jI+VA;iA?T(L[jI+Z],L[ug+Z]):tA(L[jI+Z],L[ug+Z]),RI=Y.a,L[ug+Z]=Y.b,L[jI+Z]=RI}}if(V&mA)for(var jI=LA,NI=LA+J*(rA-xA);jI<=NI;jI+=FI){var TI=jI+wI;iA?T(L[jI+Z],L[TI+Z]):tA(L[jI+Z],L[TI+Z]),RI=Y.a,L[TI+Z]=Y.b,L[jI+Z]=RI}xA=mA,mA>>=1}return LA}function EA(L,Z,rA,J,V,$,oA,iA,RA,mA){for(var xA=0,LA=0,DI=iA,VA=Math.trunc(V.value+($+7)/8);V.value=14;){var XA=xA>>LA-14&16383,wI=Z[XA];if(wI.len)LA-=wI.len,WA(wI.lit,oA,xA,LA,rA,J,V,RA,mA,DI),xA=NA.c,LA=NA.lc;else{if(!wI.p)throw"hufDecode issues";var FI;for(FI=0;FI=RI&&b(L[wI.p[FI]])==(xA>>LA-RI&(1<>=OI,LA-=OI;LA>0;){var wI=Z[xA<<14-LA&16383];if(wI.len)LA-=wI.len,WA(wI.lit,oA,xA,LA,rA,J,V,RA,mA,DI),xA=NA.c,LA=NA.lc;else throw"hufDecode issues"}return!0}function FA(L,Z,rA,J,V,$){var oA={value:0},iA=rA.value,RA=tI(Z,rA),mA=tI(Z,rA);rA.value+=4;var xA=tI(Z,rA);if(rA.value+=4,RA<0||RA>=65537||mA<0||mA>=65537)throw"Something wrong with HUF_ENCSIZE";var LA=new Array(65537),DI=new Array(16384);K(DI);var VA=J-(rA.value-iA);if(aA(L,Z,rA,VA,RA,mA,LA),xA>8*(J-(rA.value-iA)))throw"Something wrong with hufUncompress";BA(LA,RA,mA,DI),EA(LA,DI,L,Z,rA,xA,mA,$,V,oA)}function W(L,Z,rA){for(var J=0;J$||(Z[V++]=L[rA++],V>$));)Z[V++]=L[J++]}function DA(L){for(var Z=L.byteLength,rA=new Array,J=0,V=new DataView(L);Z>0;){var $=V.getInt8(J++);if($<0){var oA=-$;Z-=oA+1;for(var iA=0;iA>8==255?V+=J&255:(rA[V]=J,V++),L.value++}function QA(L,Z){Z[0]=jA(L[0]),Z[1]=jA(L[1]),Z[2]=jA(L[5]),Z[3]=jA(L[6]),Z[4]=jA(L[14]),Z[5]=jA(L[15]),Z[6]=jA(L[27]),Z[7]=jA(L[28]),Z[8]=jA(L[2]),Z[9]=jA(L[4]),Z[10]=jA(L[7]),Z[11]=jA(L[13]),Z[12]=jA(L[16]),Z[13]=jA(L[26]),Z[14]=jA(L[29]),Z[15]=jA(L[42]),Z[16]=jA(L[3]),Z[17]=jA(L[8]),Z[18]=jA(L[12]),Z[19]=jA(L[17]),Z[20]=jA(L[25]),Z[21]=jA(L[30]),Z[22]=jA(L[41]),Z[23]=jA(L[43]),Z[24]=jA(L[9]),Z[25]=jA(L[11]),Z[26]=jA(L[18]),Z[27]=jA(L[24]),Z[28]=jA(L[31]),Z[29]=jA(L[40]),Z[30]=jA(L[44]),Z[31]=jA(L[53]),Z[32]=jA(L[10]),Z[33]=jA(L[19]),Z[34]=jA(L[23]),Z[35]=jA(L[32]),Z[36]=jA(L[39]),Z[37]=jA(L[45]),Z[38]=jA(L[52]),Z[39]=jA(L[54]),Z[40]=jA(L[20]),Z[41]=jA(L[22]),Z[42]=jA(L[33]),Z[43]=jA(L[38]),Z[44]=jA(L[46]),Z[45]=jA(L[51]),Z[46]=jA(L[55]),Z[47]=jA(L[60]),Z[48]=jA(L[21]),Z[49]=jA(L[34]),Z[50]=jA(L[37]),Z[51]=jA(L[47]),Z[52]=jA(L[50]),Z[53]=jA(L[56]),Z[54]=jA(L[59]),Z[55]=jA(L[61]),Z[56]=jA(L[35]),Z[57]=jA(L[36]),Z[58]=jA(L[48]),Z[59]=jA(L[49]),Z[60]=jA(L[57]),Z[61]=jA(L[58]),Z[62]=jA(L[62]),Z[63]=jA(L[63])}function F(L){const Z=.5*Math.cos(.7853975),rA=.5*Math.cos(3.14159/16),J=.5*Math.cos(3.14159/8),V=.5*Math.cos(3*3.14159/16),$=.5*Math.cos(5*3.14159/16),oA=.5*Math.cos(3*3.14159/8),iA=.5*Math.cos(7*3.14159/16);for(var RA=new Array(4),mA=new Array(4),xA=new Array(4),LA=new Array(4),DI=0;DI<8;++DI){var VA=DI*8;RA[0]=J*L[VA+2],RA[1]=oA*L[VA+2],RA[2]=J*L[VA+6],RA[3]=oA*L[VA+6],mA[0]=rA*L[VA+1]+V*L[VA+3]+$*L[VA+5]+iA*L[VA+7],mA[1]=V*L[VA+1]-iA*L[VA+3]-rA*L[VA+5]-$*L[VA+7],mA[2]=$*L[VA+1]-rA*L[VA+3]+iA*L[VA+5]+V*L[VA+7],mA[3]=iA*L[VA+1]-$*L[VA+3]+V*L[VA+5]-rA*L[VA+7],xA[0]=Z*(L[VA+0]+L[VA+4]),xA[3]=Z*(L[VA+0]-L[VA+4]),xA[1]=RA[0]+RA[3],xA[2]=RA[1]-RA[2],LA[0]=xA[0]+xA[1],LA[1]=xA[3]+xA[2],LA[2]=xA[3]-xA[2],LA[3]=xA[0]-xA[1],L[VA+0]=LA[0]+mA[0],L[VA+1]=LA[1]+mA[1],L[VA+2]=LA[2]+mA[2],L[VA+3]=LA[3]+mA[3],L[VA+4]=LA[3]-mA[3],L[VA+5]=LA[2]-mA[2],L[VA+6]=LA[1]-mA[1],L[VA+7]=LA[0]-mA[0]}for(var XA=0;XA<8;++XA)RA[0]=J*L[16+XA],RA[1]=oA*L[16+XA],RA[2]=J*L[48+XA],RA[3]=oA*L[48+XA],mA[0]=rA*L[8+XA]+V*L[24+XA]+$*L[40+XA]+iA*L[56+XA],mA[1]=V*L[8+XA]-iA*L[24+XA]-rA*L[40+XA]-$*L[56+XA],mA[2]=$*L[8+XA]-rA*L[24+XA]+iA*L[40+XA]+V*L[56+XA],mA[3]=iA*L[8+XA]-$*L[24+XA]+V*L[40+XA]-rA*L[56+XA],xA[0]=Z*(L[XA]+L[32+XA]),xA[3]=Z*(L[XA]-L[32+XA]),xA[1]=RA[0]+RA[3],xA[2]=RA[1]-RA[2],LA[0]=xA[0]+xA[1],LA[1]=xA[3]+xA[2],LA[2]=xA[3]-xA[2],LA[3]=xA[0]-xA[1],L[0+XA]=LA[0]+mA[0],L[8+XA]=LA[1]+mA[1],L[16+XA]=LA[2]+mA[2],L[24+XA]=LA[3]+mA[3],L[32+XA]=LA[3]-mA[3],L[40+XA]=LA[2]-mA[2],L[48+XA]=LA[1]-mA[1],L[56+XA]=LA[0]-mA[0]}function m(L){for(var Z=0;Z<64;++Z){var rA=L[0][Z],J=L[1][Z],V=L[2][Z];L[0][Z]=rA+1.5747*V,L[1][Z]=rA-.1873*J-.4682*V,L[2][Z]=rA+1.8556*J}}function cA(L,Z,rA){for(var J=0;J<64;++J)Z[rA+J]=mt.toHalfFloat(ZA(L[J]))}function ZA(L){return L<=1?Math.sign(L)*Math.pow(Math.abs(L),2.2):Math.sign(L)*Math.pow(P,Math.abs(L)-1)}function OA(L){return new DataView(L.array.buffer,L.offset.value,L.size)}function YA(L){var Z=L.viewer.buffer.slice(L.offset.value,L.offset.value+L.size),rA=new Uint8Array(DA(Z)),J=new Uint8Array(rA.length);return UA(rA),eA(rA,J),new DataView(J.buffer)}function eI(L){var Z=L.array.slice(L.offset.value,L.offset.value+L.size),rA=sD(Z),J=new Uint8Array(rA.length);return UA(rA),eA(rA,J),new DataView(J.buffer)}function CI(L){for(var Z=L.viewer,rA={value:L.offset.value},J=new Uint16Array(L.width*L.scanlineBlockSize*(L.channels*L.type)),V=new Uint8Array(8192),$=0,oA=new Array(L.channels),iA=0;iA=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(RA<=mA)for(var iA=0;iA0;){var iA=fI(Z.buffer,rA),RA=UI(Z,rA),mA=RA>>2&3,xA=(RA>>4)-1,LA=new Int8Array([xA])[0],DI=UI(Z,rA);$.push({name:iA,index:LA,type:DI,compression:mA}),oA-=iA.length+3}for(var VA=KC.channels,XA=new Array(L.channels),wI=0;wI=0&&(OI.idx[iI.index]=hI),FI.offset=hI)}if(V.acCompressedSize>0)switch(V.acCompression){case 0:var TI=new Uint16Array(V.totalAcUncompressedCount);FA(L.array,Z,rA,V.acCompressedSize,TI,V.totalAcUncompressedCount);break;case 1:var jI=L.array.slice(rA.value,rA.value+V.totalAcUncompressedCount),NI=sD(jI),TI=new Uint16Array(NI.buffer);rA.value+=V.totalAcUncompressedCount;break}if(V.dcCompressedSize>0){var ug={array:L.array,offset:rA,size:V.dcCompressedSize},H=new Uint16Array(eI(ug).buffer);rA.value+=V.dcCompressedSize}if(V.rleRawSize>0){var jI=L.array.slice(rA.value,rA.value+V.rleCompressedSize),NI=sD(jI),v=DA(NI.buffer);rA.value+=V.rleCompressedSize}for(var CA=0,nA=new Array(XA.length),wI=0;wI>10,rA=L&1023;return(L>>15?-1:1)*(Z?Z===31?rA?NaN:1/0:Math.pow(2,Z-15)*(1+rA/1024):6103515625e-14*(rA/1024))}function IA(L,Z){var rA=L.getUint16(Z.value,!0);return Z.value+=2,rA}function AI(L,Z){return jA(IA(L,Z))}function $A(L,Z,rA,J){for(var V=rA.value,$=[];rA.value_I.height?_I.height-Z:_I.scanlineBlockSize;const J=_I.size<_I.lines*_I.bytesPerLine?_I.uncompress(_I):OA(_I);kB.value+=_I.size;for(let V=0;V<_I.scanlineBlockSize;V++){const $=V+L*_I.scanlineBlockSize;if($>=_I.height)break;for(let oA=0;oA<_I.channels;oA++){const iA=aQ[KC.channels[oA].name];for(let RA=0;RA<_I.width;RA++){vi.value=(V*(_I.channels*_I.width)+oA*_I.width+RA)*_I.inputSize;const mA=(_I.height-1-$)*(_I.width*_I.outputChannels)+RA*_I.outputChannels+iA;_I.byteArray[mA]=_I.getter(J,vi)}}}}return{header:KC,width:_I.width,height:_I.height,data:_I.byteArray,format:_I.format,[cs?"colorSpace":"encoding"]:_I[cs?"colorSpace":"encoding"],type:this.type}}setDataType(A){return this.type=A,this}load(A,I,C,B){function i(Q,e){cs?Q.colorSpace=e.colorSpace:Q.encoding=e.encoding,Q.minFilter=wg,Q.magFilter=wg,Q.generateMipmaps=!1,Q.flipY=!1,I&&I(Q,e)}return super.load(A,i,C,B)}}const by=new WeakMap;class t8 extends EB{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,I,C,B){const i=new jB(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(A,Q=>{const e={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(Q,e).then(I).catch(B)},C,B)}decodeDracoFile(A,I,C,B){const i={attributeIDs:C||this.defaultAttributeIDs,attributeTypes:B||this.defaultAttributeTypes,useUniqueIDs:!!C};this.decodeGeometry(A,i).then(I)}decodeGeometry(A,I){for(const E in I.attributeTypes){const t=I.attributeTypes[E];t.BYTES_PER_ELEMENT!==void 0&&(I.attributeTypes[E]=t.name)}const C=JSON.stringify(I);if(by.has(A)){const E=by.get(A);if(E.key===C)return E.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let B;const i=this.workerNextTaskID++,Q=A.byteLength,e=this._getWorker(i,Q).then(E=>(B=E,new Promise((t,a)=>{B._callbacks[i]={resolve:t,reject:a},B.postMessage({type:"decode",id:i,taskConfig:I,buffer:A},[A])}))).then(E=>this._createGeometry(E.geometry));return e.catch(()=>!0).then(()=>{B&&i&&this._releaseTask(B,i)}),by.set(A,{key:C,promise:e}),e}_createGeometry(A){const I=new WI;A.index&&I.setIndex(new Ag(A.index.array,1));for(let C=0;C{C.load(A,B,void 0,i)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",I=[];return A?I.push(this._loadLibrary("draco_decoder.js","text")):(I.push(this._loadLibrary("draco_wasm_wrapper.js","text")),I.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(I).then(C=>{const B=C[0];A||(this.decoderConfig.wasmBinary=C[1]);const i=o8.toString(),Q=["/* draco decoder */",B,"","/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join(` -`);this.workerSourceURL=URL.createObjectURL(new Blob([Q]))}),this.decoderPending}_getWorker(A,I){return this._initDecoder().then(()=>{if(this.workerPool.lengthi._taskLoad?-1:1});const C=this.workerPool[this.workerPool.length-1];return C._taskCosts[A]=I,C._taskLoad+=I,C})}_releaseTask(A,I){A._taskLoad-=A._taskCosts[I],delete A._callbacks[I],delete A._taskCosts[I]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A{const s=a.draco,r=new s.Decoder,l=new s.DecoderBuffer;l.Init(new Int8Array(E),E.byteLength);try{const D=I(s,r,l,t),G=D.attributes.map(h=>h.array.buffer);D.index&&G.push(D.index.array.buffer),self.postMessage({type:"decode",id:e.id,geometry:D},G)}catch(D){console.error(D),self.postMessage({type:"error",id:e.id,error:D.message})}finally{s.destroy(l),s.destroy(r)}});break}};function I(Q,e,E,t){const a=t.attributeIDs,s=t.attributeTypes;let r,l;const D=e.GetEncodedGeometryType(E);if(D===Q.TRIANGULAR_MESH)r=new Q.Mesh,l=e.DecodeBufferToMesh(E,r);else if(D===Q.POINT_CLOUD)r=new Q.PointCloud,l=e.DecodeBufferToPointCloud(E,r);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!l.ok()||r.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const G={index:null,attributes:[]};for(const h in a){const c=self[s[h]];let y,S;if(t.useUniqueIDs)S=a[h],y=e.GetAttributeByUniqueId(r,S);else{if(S=e.GetAttributeId(r,Q[a[h]]),S===-1)continue;y=e.GetAttribute(r,S)}G.attributes.push(B(Q,e,r,h,c,y))}return D===Q.TRIANGULAR_MESH&&(G.index=C(Q,e,r)),Q.destroy(r),G}function C(Q,e,E){const a=E.num_faces()*3,s=a*4,r=Q._malloc(s);e.GetTrianglesUInt32Array(E,s,r);const l=new Uint32Array(Q.HEAPF32.buffer,r,a).slice();return Q._free(r),{array:l,itemSize:1}}function B(Q,e,E,t,a,s){const r=s.num_components(),D=E.num_points()*r,G=D*a.BYTES_PER_ELEMENT,h=i(Q,a),c=Q._malloc(G);e.GetAttributeDataArrayForAllPoints(E,s,h,G,c);const y=new a(Q.HEAPF32.buffer,c,D).slice();return Q._free(c),{name:t,array:y,itemSize:r}}function i(Q,e){switch(e){case Float32Array:return Q.DT_FLOAT32;case Int8Array:return Q.DT_INT8;case Int16Array:return Q.DT_INT16;case Int32Array:return Q.DT_INT32;case Uint8Array:return Q.DT_UINT8;case Uint16Array:return Q.DT_UINT16;case Uint32Array:return Q.DT_UINT32}}}let rD;const Oy=()=>{if(rD)return rD;const g="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",A="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",I=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),C=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!="object")return{supported:!1};let B=g;WebAssembly.validate(I)&&(B=A);let i;const Q=WebAssembly.instantiate(e(B),{}).then(s=>{i=s.instance,i.exports.__wasm_call_ctors()});function e(s){const r=new Uint8Array(s.length);for(let D=0;D96?G-71:G>64?G-65:G>47?G+4:G>46?63:62}let l=0;for(let D=0;D{const s=pM.clone({[t]:{value:a}});return{...E,...s}},{}),vertexShader:A,fragmentShader:I}),this.key="",e.forEach(([E])=>Object.defineProperty(this,E,{get:()=>this.uniforms[E].value,set:t=>this.uniforms[E].value=t})),Object.assign(this,Q),C&&C(this)}};return B.key=hE.generateUUID(),B}const a8=()=>parseInt(to.replace(/\D+/g,"")),gY=a8();let lD=null,CY="https://www.gstatic.com/draco/versioned/decoders/1.5.5/";function BY(g,A,I){return C=>{I&&I(C),g&&(lD||(lD=new t8),lD.setDecoderPath(typeof g=="string"?g:CY),C.setDRACOLoader(lD)),A&&C.setMeshoptDecoder(typeof Oy=="function"?Oy():Oy)}}function gl(g,A=!0,I=!0,C){return ha(ed,g,BY(A,I,C))}gl.preload=(g,A=!0,I=!0,C)=>ha.preload(ed,g,BY(A,I,C));gl.clear=g=>ha.clear(ed,g);gl.setDecoderPath=g=>{CY=g};function Ur(g,A,I){const C=QB(r=>r.size),B=QB(r=>r.viewport),i=typeof g=="number"?g:C.width*B.dpr,Q=typeof A=="number"?A:C.height*B.dpr,e=(typeof g=="number"?I:g)||{},{samples:E=0,depth:t,...a}=e,s=_.useMemo(()=>{const r=new MC(i,Q,{minFilter:wg,magFilter:wg,type:BB,...a});return t&&(r.depthTexture=new lw(i,Q,aC)),r.samples=E,r},[]);return _.useLayoutEffect(()=>{s.setSize(i,Q),E&&(s.samples=E)},[E,s,i,Q]),_.useEffect(()=>()=>s.dispose(),[]),s}const s8=g=>typeof g=="function",r8=_.forwardRef(({envMap:g,resolution:A=256,frames:I=1/0,makeDefault:C,children:B,...i},Q)=>{const e=QB(({set:h})=>h),E=QB(({camera:h})=>h),t=QB(({size:h})=>h),a=_.useRef(null),s=_.useRef(null),r=Ur(A);_.useLayoutEffect(()=>{i.manual||(a.current.aspect=t.width/t.height)},[t,i]),_.useLayoutEffect(()=>{a.current.updateProjectionMatrix()});let l=0,D=null;const G=s8(B);return NC(h=>{G&&(I===1/0||l{if(C){const h=E;return e(()=>({camera:a.current})),()=>e(()=>({camera:h}))}},[a,C,e]),_.createElement(_.Fragment,null,_.createElement("perspectiveCamera",ME({ref:ZL([a,Q])},i),!G&&B),_.createElement("group",{ref:s},G&&B(r.texture)))});function l8(g){const A=_.useRef(null),I=_.useRef(!1),C=_.useRef(!1),B=_.useRef(g);return _.useLayoutEffect(()=>void(B.current=g),[g]),_.useEffect(()=>{const i=A.current;if(i){const Q=zZ(()=>(I.current=!1,!0)),e=i.onBeforeRender;i.onBeforeRender=()=>I.current=!0;const E=$Z(()=>(I.current!==C.current&&(B.current==null||B.current(C.current=I.current)),!0));return()=>{i.onBeforeRender=e,Q(),E()}}},[]),A}const Ds=_.forwardRef(({children:g,enabled:A=!0,speed:I=1,rotationIntensity:C=1,floatIntensity:B=1,floatingRange:i=[-.1,.1],...Q},e)=>{const E=_.useRef(null),t=_.useRef(Math.random()*1e4);return NC(a=>{var s,r;if(!A||I===0)return;const l=t.current+a.clock.getElapsedTime();E.current.rotation.x=Math.cos(l/4*I)/8*C,E.current.rotation.y=Math.sin(l/4*I)/8*C,E.current.rotation.z=Math.sin(l/4*I)/20*C;let D=Math.sin(l/4*I)/10;D=hE.mapLinear(D,-.1,.1,(s=i==null?void 0:i[0])!==null&&s!==void 0?s:-.1,(r=i==null?void 0:i[1])!==null&&r!==void 0?r:.1),E.current.position.y=D*B,E.current.updateMatrix()}),_.createElement("group",Q,_.createElement("group",{ref:ZL([E,e]),matrixAutoUpdate:!1},g))}),_y={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},c8="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",dR=g=>Array.isArray(g);function iY({files:g=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:A="",preset:I=void 0,encoding:C=void 0,extensions:B}={}){var i;let Q=null,e=!1,E;if(I){if(!(I in _y))throw new Error("Preset must be one of: "+Object.keys(_y).join(", "));g=_y[I],A=c8}if(e=dR(g),E=dR(g)?"cube":g.startsWith("data:application/exr")?"exr":g.startsWith("data:application/hdr")?"hdr":(i=g.split(".").pop())==null||(i=i.split("?"))==null||(i=i.shift())==null?void 0:i.toLowerCase(),Q=e?iL:E==="hdr"?e8:E==="exr"?E8:null,!Q)throw new Error("useEnvironment: Unrecognized file extension: "+g);const t=ha(Q,e?[g]:g,l=>{l.setPath==null||l.setPath(A),B&&B(l)}),a=e?t[0]:t;a.mapping=e?qQ:Xn;const s=3001,r=3e3;return"colorSpace"in a?a.colorSpace=C??e?"srgb":"srgb-linear":a.encoding=C??e?s:r,a}const D8=g=>g.current&&g.current.isScene,h8=g=>D8(g)?g.current:g;function Ed(g,A,I,C,B=0){const i=h8(A||I),Q=i.background,e=i.environment,E=i.backgroundBlurriness||0;return g!=="only"&&(i.environment=C),g&&(i.background=C),g&&i.backgroundBlurriness!==void 0&&(i.backgroundBlurriness=B),()=>{g!=="only"&&(i.environment=e),g&&(i.background=Q),g&&i.backgroundBlurriness!==void 0&&(i.backgroundBlurriness=E)}}function td({scene:g,background:A=!1,blur:I,map:C}){const B=QB(i=>i.scene);return _.useLayoutEffect(()=>{if(C)return Ed(A,g,B,C,I)},[B,g,C,A,I]),null}function QY({background:g=!1,scene:A,blur:I,...C}){const B=iY(C),i=QB(Q=>Q.scene);return _.useLayoutEffect(()=>Ed(g,A,i,B,I),[B,g,A,i,I]),null}function w8({children:g,near:A=1,far:I=1e3,resolution:C=256,frames:B=1,map:i,background:Q=!1,blur:e,scene:E,files:t,path:a,preset:s=void 0,extensions:r}){const l=QB(S=>S.gl),D=QB(S=>S.scene),G=_.useRef(null),[h]=_.useState(()=>new $t),c=_.useMemo(()=>{const S=new UM(C);return S.texture.type=BB,S},[C]);_.useLayoutEffect(()=>(B===1&&G.current.update(l,h),Ed(Q,E,D,c.texture,e)),[g,h,c.texture,E,D,Q,B,l]);let y=1;return NC(()=>{(B===1/0||yYw({GroundProjectedEnvImpl:dW}),[]);const e=_.useMemo(()=>[Q],[Q]),E=(A=g.ground)==null?void 0:A.height,t=(I=g.ground)==null?void 0:I.radius,a=(C=(B=g.ground)==null?void 0:B.scale)!==null&&C!==void 0?C:1e3;return _.createElement(_.Fragment,null,_.createElement(td,ME({},g,{map:Q})),_.createElement("groundProjectedEnvImpl",{args:e,scale:a,height:E,radius:t}))}function eY(g){return g.ground?_.createElement(S8,g):g.map?_.createElement(td,g):g.children?_.createElement(w8,g):_.createElement(QY,g)}const G8=_.forwardRef(({children:g,compute:A,width:I,height:C,samples:B=8,renderPriority:i=0,eventPriority:Q=0,frames:e=1/0,stencilBuffer:E=!1,depthBuffer:t=!0,generateMipmaps:a=!1,...s},r)=>{const{size:l,viewport:D}=QB(),G=Ur((I||l.width)*D.dpr,(C||l.height)*D.dpr,{samples:B,stencilBuffer:E,depthBuffer:t,generateMipmaps:a}),[h]=_.useState(()=>new $t),c=_.useCallback((y,S,k)=>{var f,d;let N=(f=G.texture)==null?void 0:f.__r3f.parent;for(;N&&!(N instanceof og);)N=N.__r3f.parent;if(!N)return!1;k.raycaster.camera||k.events.compute(y,k,(d=k.previousRoot)==null?void 0:d.getState());const[q]=k.raycaster.intersectObject(N);if(!q)return!1;const P=q.uv;if(!P)return!1;S.raycaster.setFromCamera(S.pointer.set(P.x*2-1,P.y*2-1),S.camera)},[]);return _.useImperativeHandle(r,()=>G.texture,[G]),_.createElement(_.Fragment,null,Hw(_.createElement(y8,{renderPriority:i,frames:e,fbo:G},g,_.createElement("group",{onPointerOver:()=>null})),h,{events:{compute:A||c,priority:Q}}),_.createElement("primitive",ME({object:G.texture},s)))});function y8({frames:g,renderPriority:A,children:I,fbo:C}){let B=0,i;return NC(Q=>{(g===1/0||B - void main() { - vec2 uv = gl_FragCoord.xy / resolution.xy; - vec4 t = texture2D(map, uv); - float k = blur; - float d = texture2D(sdf, vUv).r/size; - float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0)); - gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha); - #include - #include <${gY>=154?"colorspace_fragment":"encodings_fragment"}> - }`),k8=_.forwardRef(({children:g,events:A=void 0,blur:I=0,eventPriority:C=0,renderPriority:B=0,worldUnits:i=!1,resolution:Q=512,...e},E)=>{Yw({PortalMaterialImpl:u8});const t=_.useRef(null),{scene:a,gl:s,size:r,viewport:l,setEvents:D}=QB(),G=Ur(Q,Q),[h,c]=_.useState(0);NC(()=>{const d=t.current.blend>0?Math.max(1,B):0;h!==d&&c(d)}),_.useEffect(()=>{A!==void 0&&D({enabled:!A})},[A]);const[y,S]=_.useState(!0),k=l8(S);_.useLayoutEffect(()=>{var d;k.current=(d=t.current)==null?void 0:d.__r3f.parent},[]),_.useLayoutEffect(()=>{if(k.current&&I&&t.current.sdf===null){const d=new lg(k.current.geometry,new UC),N=new sC().setFromBufferAttribute(d.geometry.attributes.position),q=new mE(N.min.x*(1+2/Q),N.max.x*(1+2/Q),N.max.y*(1+2/Q),N.min.y*(1+2/Q),.1,1e3);q.position.set(0,0,1),q.lookAt(0,0,0),s.setRenderTarget(G),s.render(d,q);const U=d8(Q,Q,s)(G.texture),K=new Float32Array(Q*Q);s.readRenderTargetPixels(U,0,0,Q,Q,K);let X=1/0;for(let wA=0;wAt.current);const f=_.useCallback((d,N,q)=>{var P;if(!k.current)return!1;if(N.pointer.set(d.offsetX/N.size.width*2-1,-(d.offsetY/N.size.height)*2+1),N.raycaster.setFromCamera(N.pointer,N.camera),((P=t.current)==null?void 0:P.blend)===0){const[U]=N.raycaster.intersectObject(k.current);if(!U)return N.raycaster.camera=void 0,!1}},[]);return _.createElement("portalMaterialImpl",ME({ref:t,blur:I,blend:0,resolution:[r.width*l.dpr,r.height*l.dpr],attach:"material"},e),_.createElement(G8,{attach:"map",frames:y?1/0:0,eventPriority:C,renderPriority:B,compute:f},g,_.createElement(M8,{events:A,rootScene:a,priority:h,material:t,worldUnits:i})))});function M8({events:g=void 0,rootScene:A,material:I,priority:C,worldUnits:B}){const i=QB(s=>s.scene),Q=QB(s=>s.setEvents),e=Ur(),E=Ur();_.useLayoutEffect(()=>{i.matrixAutoUpdate=!1},[]),_.useEffect(()=>{g!==void 0&&Q({enabled:g})},[g]);const[t,a]=_.useMemo(()=>{const s={value:0};return[new an(new LC({uniforms:{a:{value:e.texture},b:{value:E.texture},blend:s},vertexShader:` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); - }`,fragmentShader:` - uniform sampler2D a; - uniform sampler2D b; - uniform float blend; - varying vec2 vUv; - #include - void main() { - vec4 ta = texture2D(a, vUv); - vec4 tb = texture2D(b, vUv); - gl_FragColor = mix(tb, ta, blend); - #include - #include <${gY>=154?"colorspace_fragment":"encodings_fragment"}> - }`})),s]},[]);return NC(s=>{var r;let l=I==null||(r=I.current)==null?void 0:r.__r3f.parent;if(l){if(B)i.matrixWorld.identity();else{var D;C&&((D=I.current)==null?void 0:D.blend)===1&&l.updateWorldMatrix(!0,!1),i.matrixWorld.copy(l.matrixWorld)}if(C){var G,h,c;((G=I.current)==null?void 0:G.blend)>0&&((h=I.current)==null?void 0:h.blend)<1?(a.value=I.current.blend,s.gl.setRenderTarget(e),s.gl.render(i,s.camera),s.gl.setRenderTarget(E),s.gl.render(A,s.camera),s.gl.setRenderTarget(null),t.render(s.gl)):((c=I.current)==null?void 0:c.blend)===1&&s.gl.render(i,s.camera)}}},C),_.createElement(_.Fragment,null)}const d8=(g,A,I)=>{let C=new MC(g,A,{minFilter:Ei,magFilter:wg,type:aC,format:Yn,generateMipmaps:!0}),B=new MC(g,A,{minFilter:tg,magFilter:tg}),i=new MC(g,A,{minFilter:tg,magFilter:tg}),Q=new MC(g,A,{minFilter:tg,magFilter:tg}),e=new MC(g,A,{minFilter:tg,magFilter:tg}),E=new MC(g,A,{minFilter:tg,magFilter:tg,type:aC,format:Yn}),t=new MC(g,A,{minFilter:tg,magFilter:tg,type:aC,format:Yn});const a=new an(new LC({uniforms:{tex:{value:null}},vertexShader:` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); - }`,fragmentShader:` - uniform sampler2D tex; - varying vec2 vUv; - #include - void main() { - gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x))); - }`})),s=new an(new LC({uniforms:{tex:{value:null}},vertexShader:` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); - }`,fragmentShader:` - uniform sampler2D tex; - varying vec2 vUv; - #include - void main() { - gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x))); - }`})),r=new an(new LC({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); - }`,fragmentShader:` - varying vec2 vUv; - uniform sampler2D tex; - uniform float offset; - uniform float level; - uniform float maxSteps; - #include - void main() { - float closestDist = 9999999.9; - vec2 closestPos = vec2(0.0); - for (float x = -1.0; x <= 1.0; x += 1.0) { - for (float y = -1.0; y <= 1.0; y += 1.0) { - vec2 voffset = vUv; - voffset += vec2(x, y) * vec2(${1/g}, ${1/A}) * offset; - vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset)); - float dist = distance(pos.xy, vUv); - if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) { - closestDist = dist; - closestPos = pos; - } - } - } - gl_FragColor = pack2HalfToRGBA(closestPos); - }`})),l=new an(new LC({uniforms:{tex:{value:null},size:{value:new qA(g,A)}},vertexShader:` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); - }`,fragmentShader:` - varying vec2 vUv; - uniform sampler2D tex; - uniform vec2 size; - #include - void main() { - gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0); - }`})),D=new an(new LC({uniforms:{inside:{value:t.texture},outside:{value:E.texture},tex:{value:null}},vertexShader:` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); - }`,fragmentShader:` - varying vec2 vUv; - uniform sampler2D inside; - uniform sampler2D outside; - uniform sampler2D tex; - #include - void main() { - float i = texture2D(inside, vUv).x; - float o =texture2D(outside, vUv).x; - if (texture2D(tex, vUv).x == 0.0) { - gl_FragColor = vec4(o, 0.0, 0.0, 0.0); - } else { - gl_FragColor = vec4(-i, 0.0, 0.0, 0.0); - } - }`}));return G=>{let h=C;G.minFilter=tg,G.magFilter=tg,a.material.uniforms.tex.value=G,I.setRenderTarget(B),a.render(I);const c=Math.ceil(Math.log(Math.max(g,A))/Math.log(2));let y=B,S=null;for(let k=0;k0){const i=document.getElementsByTagName("link");B=Promise.all(I.map(Q=>{if(Q=U8(Q),Q in pR)return;pR[Q]=!0;const e=Q.endsWith(".css"),E=e?'[rel="stylesheet"]':"";if(!!C)for(let s=i.length-1;s>=0;s--){const r=i[s];if(r.href===Q&&(!e||r.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${Q}"]${E}`))return;const a=document.createElement("link");if(a.rel=e?"stylesheet":p8,e||(a.as="script",a.crossOrigin=""),a.href=Q,document.head.appendChild(a),e)return new Promise((s,r)=>{a.addEventListener("load",s),a.addEventListener("error",()=>r(new Error(`Unable to preload CSS for ${Q}`)))})}))}return B.then(()=>A()).catch(i=>{const Q=new Event("vite:preloadError",{cancelable:!0});if(Q.payload=i,window.dispatchEvent(Q),!Q.defaultPrevented)throw i})};function Tw(){throw new Error("Cycle detected")}var F8=Symbol.for("preact-signals");function xw(){if(GE>1)GE--;else{for(var g,A=!1;Ws!==void 0;){var I=Ws;for(Ws=void 0,$u++;I!==void 0;){var C=I.o;if(I.o=void 0,I.f&=-3,!(8&I.f)&&oY(I))try{I.c()}catch(B){A||(g=B,A=!0)}I=C}}if($u=0,GE--,A)throw g}}function EY(g){if(GE>0)return g();GE++;try{return g()}finally{xw()}}var EC=void 0,Ws=void 0,GE=0,$u=0,Rh=0;function tY(g){if(EC!==void 0){var A=g.n;if(A===void 0||A.t!==EC)return A={i:0,S:g,p:EC.s,n:void 0,t:EC,e:void 0,x:void 0,r:A},EC.s!==void 0&&(EC.s.n=A),EC.s=A,g.n=A,32&EC.f&&g.S(A),A;if(A.i===-1)return A.i=0,A.n!==void 0&&(A.n.p=A.p,A.p!==void 0&&(A.p.n=A.n),A.p=EC.s,A.n=void 0,EC.s.n=A,EC.s=A),A}}function wC(g){this.v=g,this.i=0,this.n=void 0,this.t=void 0}wC.prototype.brand=F8;wC.prototype.h=function(){return!0};wC.prototype.S=function(g){this.t!==g&&g.e===void 0&&(g.x=this.t,this.t!==void 0&&(this.t.e=g),this.t=g)};wC.prototype.U=function(g){if(this.t!==void 0){var A=g.e,I=g.x;A!==void 0&&(A.x=I,g.e=void 0),I!==void 0&&(I.e=A,g.x=void 0),g===this.t&&(this.t=I)}};wC.prototype.subscribe=function(g){var A=this;return Rg(function(){var I=A.value,C=32&this.f;this.f&=-33;try{g(I)}finally{this.f|=C}})};wC.prototype.valueOf=function(){return this.value};wC.prototype.toString=function(){return this.value+""};wC.prototype.toJSON=function(){return this.value};wC.prototype.peek=function(){return this.v};Object.defineProperty(wC.prototype,"value",{get:function(){var g=tY(this);return g!==void 0&&(g.i=this.i),this.v},set:function(g){if(EC instanceof HE&&function(){throw new Error("Computed cannot have side-effects")}(),g!==this.v){$u>100&&Tw(),this.v=g,this.i++,Rh++,GE++;try{for(var A=this.t;A!==void 0;A=A.x)A.t.N()}finally{xw()}}}});function fg(g){return new wC(g)}function oY(g){for(var A=g.s;A!==void 0;A=A.n)if(A.S.i!==A.i||!A.S.h()||A.S.i!==A.i)return!0;return!1}function nY(g){for(var A=g.s;A!==void 0;A=A.n){var I=A.S.n;if(I!==void 0&&(A.r=I),A.S.n=A,A.i=-1,A.n===void 0){g.s=A;break}}}function aY(g){for(var A=g.s,I=void 0;A!==void 0;){var C=A.p;A.i===-1?(A.S.U(A),C!==void 0&&(C.n=A.n),A.n!==void 0&&(A.n.p=C)):I=A,A.S.n=A.r,A.r!==void 0&&(A.r=void 0),A=C}g.s=I}function HE(g){wC.call(this,void 0),this.x=g,this.s=void 0,this.g=Rh-1,this.f=4}(HE.prototype=new wC).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Rh))return!0;if(this.g=Rh,this.f|=1,this.i>0&&!oY(this))return this.f&=-2,!0;var g=EC;try{nY(this),EC=this;var A=this.x();(16&this.f||this.v!==A||this.i===0)&&(this.v=A,this.f&=-17,this.i++)}catch(I){this.v=I,this.f|=16,this.i++}return EC=g,aY(this),this.f&=-2,!0};HE.prototype.S=function(g){if(this.t===void 0){this.f|=36;for(var A=this.s;A!==void 0;A=A.n)A.S.S(A)}wC.prototype.S.call(this,g)};HE.prototype.U=function(g){if(this.t!==void 0&&(wC.prototype.U.call(this,g),this.t===void 0)){this.f&=-33;for(var A=this.s;A!==void 0;A=A.n)A.S.U(A)}};HE.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var g=this.t;g!==void 0;g=g.x)g.t.N()}};HE.prototype.peek=function(){if(this.h()||Tw(),16&this.f)throw this.v;return this.v};Object.defineProperty(HE.prototype,"value",{get:function(){1&this.f&&Tw();var g=tY(this);if(this.h(),g!==void 0&&(g.i=this.i),16&this.f)throw this.v;return this.v}});function xC(g){return new HE(g)}function sY(g){var A=g.u;if(g.u=void 0,typeof A=="function"){GE++;var I=EC;EC=void 0;try{A()}catch(C){throw g.f&=-2,g.f|=8,od(g),C}finally{EC=I,xw()}}}function od(g){for(var A=g.s;A!==void 0;A=A.n)A.S.U(A);g.x=void 0,g.s=void 0,sY(g)}function f8(g){if(EC!==this)throw new Error("Out-of-order effect");aY(this),EC=g,this.f&=-2,8&this.f&&od(this),xw()}function Cl(g){this.x=g,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}Cl.prototype.c=function(){var g=this.S();try{if(8&this.f||this.x===void 0)return;var A=this.x();typeof A=="function"&&(this.u=A)}finally{g()}};Cl.prototype.S=function(){1&this.f&&Tw(),this.f|=1,this.f&=-9,sY(this),nY(this),GE++;var g=EC;return EC=this,f8.bind(this,g)};Cl.prototype.N=function(){2&this.f||(this.f|=2,this.o=Ws,Ws=this)};Cl.prototype.d=function(){this.f|=8,1&this.f||od(this)};function Rg(g){var A=new Cl(g);try{A.c()}catch(I){throw A.d(),I}return A.d.bind(A)}function nd(g,A,I){const C=_.useMemo(()=>A.hasBatchedProperty.bind(A),[A]),B=_.useMemo(()=>{let i={};return(Q,e)=>{let E=0,t=!1;for(const a in i){if(!lY(i[a],Q[a])){t=!0;break}++E}t||(t=E!=e),i=Q,!(!t&&A.getProperty.peek()!=null)&&(A.getProperty.value=a=>Ak(Q[a]))}},[A]);rY(g,C,B,I)}function R8(g,A){const I=g.length;for(const C in A)for(let B=0;B{let B={},i=0;const Q=(E,t)=>{if(t===void 0)return;const a=B[E];if(a===void 0&&++i,a==null||!(t instanceof wC)){B[E]=t;return}if(Array.isArray(a)){a.push(t);return}B[E]=[a,t]};return{add:(E,t)=>{if(t!==void 0){if(C!=null){C(E,t,A,Q);return}A(E)&&Q(E,t)}},finish:()=>{I(B,i),i=0,B={}}}},[A,I,C]))}function lY(g,A){if(!Array.isArray(g))return g===A;if(!Array.isArray(A))return!1;const I=g.length;if(I!=A.length)return!1;for(let C=0;Cfg(void 0),[]),B=_.useMemo(()=>({hasBatchedProperty:i=>A.includes(i),getProperty:C}),[A]);return nd(g,B,I),C}const Ik=_.createContext(null);function Bl(g,A){const I=_.useContext(Ik);I!=null&&A(I);const{classes:C}=g;if(Array.isArray(C)){const B=C.length;for(let i=0;iR8(g,I))}function vw(g){const I={..._.useContext(Ik)};for(const C in g){if(C==="children")continue;const B=g[C];B!=null&&(I[C]=B)}return JA.jsx(Ik.Provider,{value:I,children:g.children})}var FB={},ad={},gg={};Object.defineProperty(gg,"__esModule",{value:!0});gg.default=gg.Wrap=gg.Unit=gg.PrintOptions=gg.PositionType=gg.Overflow=gg.NodeType=gg.MeasureMode=gg.LogLevel=gg.Justify=gg.Gutter=gg.FlexDirection=gg.ExperimentalFeature=gg.Errata=gg.Edge=gg.Display=gg.Direction=gg.Dimension=gg.Align=void 0;let Ie=function(g){return g[g.Auto=0]="Auto",g[g.FlexStart=1]="FlexStart",g[g.Center=2]="Center",g[g.FlexEnd=3]="FlexEnd",g[g.Stretch=4]="Stretch",g[g.Baseline=5]="Baseline",g[g.SpaceBetween=6]="SpaceBetween",g[g.SpaceAround=7]="SpaceAround",g}({});gg.Align=Ie;let gk=function(g){return g[g.Width=0]="Width",g[g.Height=1]="Height",g}({});gg.Dimension=gk;let _D=function(g){return g[g.Inherit=0]="Inherit",g[g.LTR=1]="LTR",g[g.RTL=2]="RTL",g}({});gg.Direction=_D;let Ck=function(g){return g[g.Flex=0]="Flex",g[g.None=1]="None",g}({});gg.Display=Ck;let GQ=function(g){return g[g.Left=0]="Left",g[g.Top=1]="Top",g[g.Right=2]="Right",g[g.Bottom=3]="Bottom",g[g.Start=4]="Start",g[g.End=5]="End",g[g.Horizontal=6]="Horizontal",g[g.Vertical=7]="Vertical",g[g.All=8]="All",g}({});gg.Edge=GQ;let ks=function(g){return g[g.None=0]="None",g[g.StretchFlexBasis=1]="StretchFlexBasis",g[g.All=2147483647]="All",g[g.Classic=2147483646]="Classic",g}({});gg.Errata=ks;let ZD=function(g){return g[g.WebFlexBasis=0]="WebFlexBasis",g[g.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",g[g.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",g}({});gg.ExperimentalFeature=ZD;let Ms=function(g){return g[g.Column=0]="Column",g[g.ColumnReverse=1]="ColumnReverse",g[g.Row=2]="Row",g[g.RowReverse=3]="RowReverse",g}({});gg.FlexDirection=Ms;let PD=function(g){return g[g.Column=0]="Column",g[g.Row=1]="Row",g[g.All=2]="All",g}({});gg.Gutter=PD;let pt=function(g){return g[g.FlexStart=0]="FlexStart",g[g.Center=1]="Center",g[g.FlexEnd=2]="FlexEnd",g[g.SpaceBetween=3]="SpaceBetween",g[g.SpaceAround=4]="SpaceAround",g[g.SpaceEvenly=5]="SpaceEvenly",g}({});gg.Justify=pt;let Ut=function(g){return g[g.Error=0]="Error",g[g.Warn=1]="Warn",g[g.Info=2]="Info",g[g.Debug=3]="Debug",g[g.Verbose=4]="Verbose",g[g.Fatal=5]="Fatal",g}({});gg.LogLevel=Ut;let WD=function(g){return g[g.Undefined=0]="Undefined",g[g.Exactly=1]="Exactly",g[g.AtMost=2]="AtMost",g}({});gg.MeasureMode=WD;let Bk=function(g){return g[g.Default=0]="Default",g[g.Text=1]="Text",g}({});gg.NodeType=Bk;let jD=function(g){return g[g.Visible=0]="Visible",g[g.Hidden=1]="Hidden",g[g.Scroll=2]="Scroll",g}({});gg.Overflow=jD;let VD=function(g){return g[g.Static=0]="Static",g[g.Relative=1]="Relative",g[g.Absolute=2]="Absolute",g}({});gg.PositionType=VD;let XD=function(g){return g[g.Layout=1]="Layout",g[g.Style=2]="Style",g[g.Children=4]="Children",g}({});gg.PrintOptions=XD;let ds=function(g){return g[g.Undefined=0]="Undefined",g[g.Point=1]="Point",g[g.Percent=2]="Percent",g[g.Auto=3]="Auto",g}({});gg.Unit=ds;let zD=function(g){return g[g.NoWrap=0]="NoWrap",g[g.Wrap=1]="Wrap",g[g.WrapReverse=2]="WrapReverse",g}({});gg.Wrap=zD;const K8={ALIGN_AUTO:Ie.Auto,ALIGN_FLEX_START:Ie.FlexStart,ALIGN_CENTER:Ie.Center,ALIGN_FLEX_END:Ie.FlexEnd,ALIGN_STRETCH:Ie.Stretch,ALIGN_BASELINE:Ie.Baseline,ALIGN_SPACE_BETWEEN:Ie.SpaceBetween,ALIGN_SPACE_AROUND:Ie.SpaceAround,DIMENSION_WIDTH:gk.Width,DIMENSION_HEIGHT:gk.Height,DIRECTION_INHERIT:_D.Inherit,DIRECTION_LTR:_D.LTR,DIRECTION_RTL:_D.RTL,DISPLAY_FLEX:Ck.Flex,DISPLAY_NONE:Ck.None,EDGE_LEFT:GQ.Left,EDGE_TOP:GQ.Top,EDGE_RIGHT:GQ.Right,EDGE_BOTTOM:GQ.Bottom,EDGE_START:GQ.Start,EDGE_END:GQ.End,EDGE_HORIZONTAL:GQ.Horizontal,EDGE_VERTICAL:GQ.Vertical,EDGE_ALL:GQ.All,ERRATA_NONE:ks.None,ERRATA_STRETCH_FLEX_BASIS:ks.StretchFlexBasis,ERRATA_ALL:ks.All,ERRATA_CLASSIC:ks.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:ZD.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:ZD.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:ZD.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:Ms.Column,FLEX_DIRECTION_COLUMN_REVERSE:Ms.ColumnReverse,FLEX_DIRECTION_ROW:Ms.Row,FLEX_DIRECTION_ROW_REVERSE:Ms.RowReverse,GUTTER_COLUMN:PD.Column,GUTTER_ROW:PD.Row,GUTTER_ALL:PD.All,JUSTIFY_FLEX_START:pt.FlexStart,JUSTIFY_CENTER:pt.Center,JUSTIFY_FLEX_END:pt.FlexEnd,JUSTIFY_SPACE_BETWEEN:pt.SpaceBetween,JUSTIFY_SPACE_AROUND:pt.SpaceAround,JUSTIFY_SPACE_EVENLY:pt.SpaceEvenly,LOG_LEVEL_ERROR:Ut.Error,LOG_LEVEL_WARN:Ut.Warn,LOG_LEVEL_INFO:Ut.Info,LOG_LEVEL_DEBUG:Ut.Debug,LOG_LEVEL_VERBOSE:Ut.Verbose,LOG_LEVEL_FATAL:Ut.Fatal,MEASURE_MODE_UNDEFINED:WD.Undefined,MEASURE_MODE_EXACTLY:WD.Exactly,MEASURE_MODE_AT_MOST:WD.AtMost,NODE_TYPE_DEFAULT:Bk.Default,NODE_TYPE_TEXT:Bk.Text,OVERFLOW_VISIBLE:jD.Visible,OVERFLOW_HIDDEN:jD.Hidden,OVERFLOW_SCROLL:jD.Scroll,POSITION_TYPE_STATIC:VD.Static,POSITION_TYPE_RELATIVE:VD.Relative,POSITION_TYPE_ABSOLUTE:VD.Absolute,PRINT_OPTIONS_LAYOUT:XD.Layout,PRINT_OPTIONS_STYLE:XD.Style,PRINT_OPTIONS_CHILDREN:XD.Children,UNIT_UNDEFINED:ds.Undefined,UNIT_POINT:ds.Point,UNIT_PERCENT:ds.Percent,UNIT_AUTO:ds.Auto,WRAP_NO_WRAP:zD.NoWrap,WRAP_WRAP:zD.Wrap,WRAP_WRAP_REVERSE:zD.WrapReverse};var J8=K8;gg.default=J8;Object.defineProperty(ad,"__esModule",{value:!0});ad.default=m8;var Ze=q8(gg);function cY(g){if(typeof WeakMap!="function")return null;var A=new WeakMap,I=new WeakMap;return(cY=function(C){return C?I:A})(g)}function q8(g,A){if(!A&&g&&g.__esModule)return g;if(g===null||typeof g!="object"&&typeof g!="function")return{default:g};var I=cY(A);if(I&&I.has(g))return I.get(g);var C={},B=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in g)if(i!=="default"&&Object.prototype.hasOwnProperty.call(g,i)){var Q=B?Object.getOwnPropertyDescriptor(g,i):null;Q&&(Q.get||Q.set)?Object.defineProperty(C,i,Q):C[i]=g[i]}return C.default=g,I&&I.set(g,C),C}function m8(g){function A(B,i,Q){const e=B[i];B[i]=function(){for(var E=arguments.length,t=new Array(E),a=0;a1?e-1:0),t=1;ti?g.Node.createWithConfig(i):g.Node.createDefault()),A(g.Node.prototype,"free",function(){g.Node.destroy(this)}),A(g.Node.prototype,"freeRecursive",function(){for(let B=0,i=this.getChildCount();B1&&arguments[1]!==void 0?arguments[1]:NaN,Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,e=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Ze.Direction.LTR;return B.call(this,i,Q,e)}),{Config:g.Config,Node:g.Node,...Ze.default}}var DY={exports:{}};(function(g,A){var I=(()=>{var C=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(B){B=B||{};var i;i||(i=typeof B<"u"?B:{});var Q,e;i.ready=new Promise(function(H,v){Q=H,e=v});var E=Object.assign({},i),t="";typeof document<"u"&&document.currentScript&&(t=document.currentScript.src),C&&(t=C),t.indexOf("blob:")!==0?t=t.substr(0,t.replace(/[?#].*/,"").lastIndexOf("/")+1):t="";var a=i.print||console.log.bind(console),s=i.printErr||console.warn.bind(console);Object.assign(i,E),E=null;var r;i.wasmBinary&&(r=i.wasmBinary),i.noExitRuntime,typeof WebAssembly!="object"&&SA("no native wasm support detected");var l,D=!1;function G(H,v,CA){CA=v+CA;for(var nA="";!(v>=CA);){var MA=H[v++];if(!MA)break;if(MA&128){var fA=H[v++]&63;if((MA&224)==192)nA+=String.fromCharCode((MA&31)<<6|fA);else{var TA=H[v++]&63;MA=(MA&240)==224?(MA&15)<<12|fA<<6|TA:(MA&7)<<18|fA<<12|TA<<6|H[v++]&63,65536>MA?nA+=String.fromCharCode(MA):(MA-=65536,nA+=String.fromCharCode(55296|MA>>10,56320|MA&1023))}}else nA+=String.fromCharCode(MA)}return nA}var h,c,y,S,k,f,d,N,q;function P(){var H=l.buffer;h=H,i.HEAP8=c=new Int8Array(H),i.HEAP16=S=new Int16Array(H),i.HEAP32=f=new Int32Array(H),i.HEAPU8=y=new Uint8Array(H),i.HEAPU16=k=new Uint16Array(H),i.HEAPU32=d=new Uint32Array(H),i.HEAPF32=N=new Float32Array(H),i.HEAPF64=q=new Float64Array(H)}var U,K=[],X=[],wA=[];function z(){var H=i.preRun.shift();K.unshift(H)}var lA=0,aA=null;function SA(H){throw i.onAbort&&i.onAbort(H),H="Aborted("+H+")",s(H),D=!0,H=new WebAssembly.RuntimeError(H+". Build with -sASSERTIONS for more info."),e(H),H}function b(H){return H.startsWith("data:application/octet-stream;base64,")}var BA;if(BA="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgBDaGlsZCBhbHJlYWR5IGhhcyBhIG93bmVyLCBpdCBtdXN0IGJlIHJlbW92ZWQgZmlyc3QuAENhbm5vdCBzZXQgbWVhc3VyZSBmdW5jdGlvbjogTm9kZXMgd2l0aCBtZWFzdXJlIGZ1bmN0aW9ucyBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4AQ2Fubm90IGFkZCBjaGlsZDogTm9kZXMgd2l0aCBtZWFzdXJlIGZ1bmN0aW9ucyBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4AKG51bGwpACVzCgABAAAAAwAAAAAAAAACAAAAAwAAAAEAAAACAAAAAAAAAAEAAAABAEHyIQsVwH8DAAAAAADAfwAAAABpaQB2AHZpAEGQIgs3exsAAHkbAAC5GwAAsxsAALkbAACzGwAAaWlpZmlmaQCsGwAAfBsAAHZpaQB9GwAAwBsAAGlpaQBB0CILCccAAADIAAAAyQBB5CILDscAAADKAAAAywAAAKwbAEGAIws+exsAALkbAACzGwAAuRsAALMbAADAGwAAuxsAAMAbAABpaWlpAAAAAKwbAACRGwAArBsAAJMbAACUGwAAwBsAQcgjCwnMAAAAzQAAAM4AQdwjCxbMAAAAzwAAAMsAAACXGwAArBsAAJcbAEGAJAuiA6wbAACXGwAAsxsAAK0bAAB2aWlpaQAAAKwbAACXGwAAuRsAAHZpaWYAAAAArBsAAJcbAACtGwAAdmlpaQAAAACsGwAAlxsAALMbAACtGwAAmBsAALMbAACtGwAAmBsAALMbAACYGwAAaQBkaWkAdmlpZAAAnBsAAJwbAACXGwAArBsAAJwbAACsGwAAnBsAAJsbAACsGwAAnBsAALMbAACsGwAAnBsAALMbAAC6GwAAdmlpaWQAAACsGwAAnBsAALobAACzGwAAnRsAAJobAACdGwAAsxsAAJobAACdGwAAuhsAAJ0bAAC6GwAAnRsAALMbAABkaWlpAAAAALkbAACcGwAAsxsAAGZpaWkAAAAArBsAAJwbAACcGwAAtBsAAKwbAACcGwAAnBsAALQbAACdGwAAnBsAAJwbAACcGwAAnBsAALQbAACtGwAAnBsAAKwbAACcGwAArRsAAKwbAACcGwAAeRsAAKwbAACcGwAAkRsAAK0bAACdGwAAAAAAAKwbAACcGwAAuhsAALobAACzGwAAdmlpZGRpAACZGwAAnRsAQbAnC0EZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBgSgLIQ4AAAAAAAAAABkACg0ZGRkADQAAAgAJDgAAAAkADgAADgBBuygLAQwAQccoCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQfUoCwEQAEGBKQsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEGvKQsBEgBBuykLHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBB8ikLDhoAAAAaGhoAAAAAAAAJAEGjKgsBFABBryoLFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABB3SoLARYAQekqCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQbQrCwHVAEHcKwsI//////////8AQaAsCwnwHwEAAAAAAAUAQbQsCwHQAEHMLAsK0QAAANIAAADUGwBB5CwLAQIAQfQsCwj//////////wBBuC0LAQUAQcQtCwHTAEHcLQsO0QAAANQAAADoGwAAAAQAQfQtCwEBAEGELgsF/////woAQcguCwHW",!b(BA)){var gA=BA;BA=i.locateFile?i.locateFile(gA,t):t+gA}function hA(){var H=BA;try{if(H==BA&&r)return new Uint8Array(r);if(b(H))try{var v=OI(H.slice(37)),CA=new Uint8Array(v.length);for(H=0;H=v?"_"+H:H}function x(H,v){return H=j(H),function(){return v.apply(this,arguments)}}var Y=[{},{value:void 0},{value:null},{value:!0},{value:!1}],T=[];function tA(H){var v=Error,CA=x(H,function(nA){this.name=H,this.message=nA,nA=Error(nA).stack,nA!==void 0&&(this.stack=this.toString()+` -`+nA.replace(/^Error(:[^\n]*)?\n/,""))});return CA.prototype=Object.create(v.prototype),CA.prototype.constructor=CA,CA.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},CA}var dA=void 0;function EA(H){throw new dA(H)}var FA=H=>(H||EA("Cannot use deleted val. handle = "+H),Y[H].value),W=H=>{switch(H){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var v=T.length?T.pop():Y.length;return Y[v]={fa:1,value:H},v}},UA=void 0,eA=void 0;function DA(H){for(var v="";y[H];)v+=eA[y[H++]];return v}var GA=[];function bA(){for(;GA.length;){var H=GA.pop();H.L.Z=!1,H.delete()}}var QA=void 0,F={};function m(H,v){for(v===void 0&&EA("ptr should not be undefined");H.P;)v=H.aa(v),H=H.P;return v}var cA={};function ZA(H){H=iI(H);var v=DA(H);return NI(H),v}function OA(H,v){var CA=cA[H];return CA===void 0&&EA(v+" has unknown type "+ZA(H)),CA}function YA(){}var eI=!1;function CI(H){--H.count.value,H.count.value===0&&(H.S?H.T.V(H.S):H.O.M.V(H.N))}function aI(H,v,CA){return v===CA?H:CA.P===void 0?null:(H=aI(H,v,CA.P),H===null?null:CA.ma(H))}var SI={};function fI(H,v){return v=m(H,v),F[v]}var PA=void 0;function bI(H){throw new PA(H)}function LI(H,v){return v.O&&v.N||bI("makeClassHandle requires ptr and ptrType"),!!v.T!=!!v.S&&bI("Both smartPtrType and smartPtr must be specified"),v.count={value:1},kI(Object.create(H,{L:{value:v}}))}function kI(H){return typeof FinalizationRegistry>"u"?(kI=v=>v,H):(eI=new FinalizationRegistry(v=>{CI(v.L)}),kI=v=>{var CA=v.L;return CA.S&&eI.register(v,{L:CA},v),v},YA=v=>{eI.unregister(v)},kI(H))}var tI={};function sI(H){for(;H.length;){var v=H.pop();H.pop()(v)}}function UI(H){return this.fromWireType(f[H>>2])}var JI={},YI={};function HI(H,v,CA){function nA(_A){_A=CA(_A),_A.length!==H.length&&bI("Mismatched type converter count");for(var II=0;II{cA.hasOwnProperty(_A)?MA[II]=cA[_A]:(fA.push(_A),JI.hasOwnProperty(_A)||(JI[_A]=[]),JI[_A].push(()=>{MA[II]=cA[_A],++TA,TA===fA.length&&nA(MA)}))}),fA.length===0&&nA(MA)}function jA(H){switch(H){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+H)}}function IA(H,v,CA={}){if(!("argPackAdvance"in v))throw new TypeError("registerType registeredInstance requires argPackAdvance");var nA=v.name;if(H||EA('type "'+nA+'" must have a positive integer typeid pointer'),cA.hasOwnProperty(H)){if(CA.ta)return;EA("Cannot register type '"+nA+"' twice")}cA[H]=v,delete YI[H],JI.hasOwnProperty(H)&&(v=JI[H],delete JI[H],v.forEach(MA=>MA()))}function AI(H){EA(H.L.O.M.name+" instance already deleted")}function $A(){}function lI(H,v,CA){if(H[v].R===void 0){var nA=H[v];H[v]=function(){return H[v].R.hasOwnProperty(arguments.length)||EA("Function '"+CA+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+H[v].R+")!"),H[v].R[arguments.length].apply(this,arguments)},H[v].R=[],H[v].R[nA.Y]=nA}}function pI(H,v){i.hasOwnProperty(H)?(EA("Cannot register public name '"+H+"' twice"),lI(i,H,H),i.hasOwnProperty(void 0)&&EA("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),i[H].R[void 0]=v):i[H]=v}function ag(H,v,CA,nA,MA,fA,TA,_A){this.name=H,this.constructor=v,this.W=CA,this.V=nA,this.P=MA,this.oa=fA,this.aa=TA,this.ma=_A,this.ia=[]}function sg(H,v,CA){for(;v!==CA;)v.aa||EA("Expected null or instance of "+CA.name+", got an instance of "+v.name),H=v.aa(H),v=v.P;return H}function Wg(H,v){return v===null?(this.da&&EA("null is not a valid "+this.name),0):(v.L||EA('Cannot pass "'+L(v)+'" as a '+this.name),v.L.N||EA("Cannot pass deleted object as a pointer of type "+this.name),sg(v.L.N,v.L.O.M,this.M))}function fC(H,v){if(v===null){if(this.da&&EA("null is not a valid "+this.name),this.ca){var CA=this.ea();return H!==null&&H.push(this.V,CA),CA}return 0}if(v.L||EA('Cannot pass "'+L(v)+'" as a '+this.name),v.L.N||EA("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&v.L.O.ba&&EA("Cannot convert argument of type "+(v.L.T?v.L.T.name:v.L.O.name)+" to parameter type "+this.name),CA=sg(v.L.N,v.L.O.M,this.M),this.ca)switch(v.L.S===void 0&&EA("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:v.L.T===this?CA=v.L.S:EA("Cannot convert argument of type "+(v.L.T?v.L.T.name:v.L.O.name)+" to parameter type "+this.name);break;case 1:CA=v.L.S;break;case 2:if(v.L.T===this)CA=v.L.S;else{var nA=v.clone();CA=this.wa(CA,W(function(){nA.delete()})),H!==null&&H.push(this.V,CA)}break;default:EA("Unsupporting sharing policy")}return CA}function yg(H,v){return v===null?(this.da&&EA("null is not a valid "+this.name),0):(v.L||EA('Cannot pass "'+L(v)+'" as a '+this.name),v.L.N||EA("Cannot pass deleted object as a pointer of type "+this.name),v.L.O.ba&&EA("Cannot convert argument of type "+v.L.O.name+" to parameter type "+this.name),sg(v.L.N,v.L.O.M,this.M))}function Ng(H,v,CA,nA){this.name=H,this.M=v,this.da=CA,this.ba=nA,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,v.P!==void 0?this.toWireType=fC:(this.toWireType=nA?Wg:yg,this.U=null)}function tB(H,v){i.hasOwnProperty(H)||bI("Replacing nonexistant public symbol"),i[H]=v,i[H].Y=void 0}function hi(H,v){var CA=[];return function(){if(CA.length=0,Object.assign(CA,arguments),H.includes("j")){var nA=i["dynCall_"+H];nA=CA&&CA.length?nA.apply(null,[v].concat(CA)):nA.call(null,v)}else nA=U.get(v).apply(null,CA);return nA}}function RC(H,v){H=DA(H);var CA=H.includes("j")?hi(H,v):U.get(v);return typeof CA!="function"&&EA("unknown function pointer with signature "+H+": "+v),CA}var kB=void 0;function KC(H,v){function CA(fA){MA[fA]||cA[fA]||(YI[fA]?YI[fA].forEach(CA):(nA.push(fA),MA[fA]=!0))}var nA=[],MA={};throw v.forEach(CA),new kB(H+": "+nA.map(ZA).join([", "]))}function _I(H,v,CA,nA,MA){var fA=v.length;2>fA&&EA("argTypes array size mismatch! Must at least get return value and 'this' types!");var TA=v[1]!==null&&CA!==null,_A=!1;for(CA=1;CA>2]);return CA}function aQ(H){4>2])};case 3:return function(CA){return this.fromWireType(q[CA>>3])};default:throw new TypeError("Unknown float type: "+H)}}function rA(H,v,CA){switch(v){case 0:return CA?function(nA){return c[nA]}:function(nA){return y[nA]};case 1:return CA?function(nA){return S[nA>>1]}:function(nA){return k[nA>>1]};case 2:return CA?function(nA){return f[nA>>2]}:function(nA){return d[nA>>2]};default:throw new TypeError("Unknown integer type: "+H)}}function J(H,v){for(var CA="",nA=0;!(nA>=v/2);++nA){var MA=S[H+2*nA>>1];if(MA==0)break;CA+=String.fromCharCode(MA)}return CA}function V(H,v,CA){if(CA===void 0&&(CA=2147483647),2>CA)return 0;CA-=2;var nA=v;CA=CA<2*H.length?CA/2:H.length;for(var MA=0;MA>1]=H.charCodeAt(MA),v+=2;return S[v>>1]=0,v-nA}function $(H){return 2*H.length}function oA(H,v){for(var CA=0,nA="";!(CA>=v/4);){var MA=f[H+4*CA>>2];if(MA==0)break;++CA,65536<=MA?(MA-=65536,nA+=String.fromCharCode(55296|MA>>10,56320|MA&1023)):nA+=String.fromCharCode(MA)}return nA}function iA(H,v,CA){if(CA===void 0&&(CA=2147483647),4>CA)return 0;var nA=v;CA=nA+CA-4;for(var MA=0;MA=fA){var TA=H.charCodeAt(++MA);fA=65536+((fA&1023)<<10)|TA&1023}if(f[v>>2]=fA,v+=4,v+4>CA)break}return f[v>>2]=0,v-nA}function RA(H){for(var v=0,CA=0;CA=nA&&++CA,v+=4}return v}var mA={};function xA(H){var v=mA[H];return v===void 0?DA(H):v}var LA=[];function DI(H){var v=LA.length;return LA.push(H),v}function VA(H,v){for(var CA=Array(H),nA=0;nA>2],"parameter "+nA);return CA}var XA=[],wI=[null,[],[]];dA=i.BindingError=tA("BindingError"),i.count_emval_handles=function(){for(var H=0,v=5;vRI;++RI)FI[RI]=String.fromCharCode(RI);eA=FI,i.getInheritedInstanceCount=function(){return Object.keys(F).length},i.getLiveInheritedInstances=function(){var H=[],v;for(v in F)F.hasOwnProperty(v)&&H.push(F[v]);return H},i.flushPendingDeletes=bA,i.setDelayFunction=function(H){QA=H,GA.length&&QA&&QA(bA)},PA=i.InternalError=tA("InternalError"),$A.prototype.isAliasOf=function(H){if(!(this instanceof $A&&H instanceof $A))return!1;var v=this.L.O.M,CA=this.L.N,nA=H.L.O.M;for(H=H.L.N;v.P;)CA=v.aa(CA),v=v.P;for(;nA.P;)H=nA.aa(H),nA=nA.P;return v===nA&&CA===H},$A.prototype.clone=function(){if(this.L.N||AI(this),this.L.$)return this.L.count.value+=1,this;var H=kI,v=Object,CA=v.create,nA=Object.getPrototypeOf(this),MA=this.L;return H=H(CA.call(v,nA,{L:{value:{count:MA.count,Z:MA.Z,$:MA.$,N:MA.N,O:MA.O,S:MA.S,T:MA.T}}})),H.L.count.value+=1,H.L.Z=!1,H},$A.prototype.delete=function(){this.L.N||AI(this),this.L.Z&&!this.L.$&&EA("Object already scheduled for deletion"),YA(this),CI(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},$A.prototype.isDeleted=function(){return!this.L.N},$A.prototype.deleteLater=function(){return this.L.N||AI(this),this.L.Z&&!this.L.$&&EA("Object already scheduled for deletion"),GA.push(this),GA.length===1&&QA&&QA(bA),this.L.Z=!0,this},Ng.prototype.pa=function(H){return this.ja&&(H=this.ja(H)),H},Ng.prototype.ga=function(H){this.V&&this.V(H)},Ng.prototype.argPackAdvance=8,Ng.prototype.readValueFromPointer=UI,Ng.prototype.deleteObject=function(H){H!==null&&H.delete()},Ng.prototype.fromWireType=function(H){function v(){return this.ca?LI(this.M.W,{O:this.va,N:CA,T:this,S:H}):LI(this.M.W,{O:this,N:H})}var CA=this.pa(H);if(!CA)return this.ga(H),null;var nA=fI(this.M,CA);if(nA!==void 0)return nA.L.count.value===0?(nA.L.N=CA,nA.L.S=H,nA.clone()):(nA=nA.clone(),this.ga(H),nA);if(nA=this.M.oa(CA),nA=SI[nA],!nA)return v.call(this);nA=this.ba?nA.ka:nA.pointerType;var MA=aI(CA,this.M,nA.M);return MA===null?v.call(this):this.ca?LI(nA.M.W,{O:nA,N:MA,T:this,S:H}):LI(nA.M.W,{O:nA,N:MA})},kB=i.UnboundTypeError=tA("UnboundTypeError");var OI=typeof atob=="function"?atob:function(H){var v="",CA=0;H=H.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var nA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(H.charAt(CA++)),MA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(H.charAt(CA++)),fA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(H.charAt(CA++)),TA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(H.charAt(CA++));nA=nA<<2|MA>>4,MA=(MA&15)<<4|fA>>2;var _A=(fA&3)<<6|TA;v+=String.fromCharCode(nA),fA!==64&&(v+=String.fromCharCode(MA)),TA!==64&&(v+=String.fromCharCode(_A))}while(CATA.sa).concat(MA.map(TA=>TA.ya));HI([H],fA,TA=>{var _A={};return MA.forEach((II,zA)=>{var nI=TA[zA],mI=II.qa,eg=II.ra,Yg=TA[zA+MA.length],cg=II.xa,MB=II.za;_A[II.na]={read:VB=>nI.fromWireType(mI(eg,VB)),write:(VB,TQ)=>{var XB=[];cg(MB,VB,Yg.toWireType(XB,TQ)),sI(XB)}}}),[{name:v.name,fromWireType:function(II){var zA={},nI;for(nI in _A)zA[nI]=_A[nI].read(II);return nA(II),zA},toWireType:function(II,zA){for(var nI in _A)if(!(nI in zA))throw new TypeError('Missing field: "'+nI+'"');var mI=CA();for(nI in _A)_A[nI].write(mI,zA[nI]);return II!==null&&II.push(nA,mI),mI},argPackAdvance:8,readValueFromPointer:UI,U:nA}]})},v:function(){},B:function(H,v,CA,nA,MA){var fA=jA(CA);v=DA(v),IA(H,{name:v,fromWireType:function(TA){return!!TA},toWireType:function(TA,_A){return _A?nA:MA},argPackAdvance:8,readValueFromPointer:function(TA){if(CA===1)var _A=c;else if(CA===2)_A=S;else if(CA===4)_A=f;else throw new TypeError("Unknown boolean type size: "+v);return this.fromWireType(_A[TA>>fA])},U:null})},f:function(H,v,CA,nA,MA,fA,TA,_A,II,zA,nI,mI,eg){nI=DA(nI),fA=RC(MA,fA),_A&&(_A=RC(TA,_A)),zA&&(zA=RC(II,zA)),eg=RC(mI,eg);var Yg=j(nI);pI(Yg,function(){KC("Cannot construct "+nI+" due to unbound types",[nA])}),HI([H,v,CA],nA?[nA]:[],function(cg){if(cg=cg[0],nA)var MB=cg.M,VB=MB.W;else VB=$A.prototype;cg=x(Yg,function(){if(Object.getPrototypeOf(this)!==TQ)throw new dA("Use 'new' to construct "+nI);if(XB.X===void 0)throw new dA(nI+" has no accessible constructor");var al=XB.X[arguments.length];if(al===void 0)throw new dA("Tried to invoke ctor of "+nI+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(XB.X).toString()+") parameters instead!");return al.apply(this,arguments)});var TQ=Object.create(VB,{constructor:{value:cg}});cg.prototype=TQ;var XB=new ag(nI,cg,TQ,eg,MB,fA,_A,zA);MB=new Ng(nI,XB,!0,!1),VB=new Ng(nI+"*",XB,!1,!1);var de=new Ng(nI+" const*",XB,!1,!0);return SI[H]={pointerType:VB,ka:de},tB(Yg,cg),[MB,VB,de]})},c:function(H,v,CA,nA,MA,fA,TA){var _A=vi(CA,nA);v=DA(v),fA=RC(MA,fA),HI([],[H],function(II){function zA(){KC("Cannot call "+nI+" due to unbound types",_A)}II=II[0];var nI=II.name+"."+v;v.startsWith("@@")&&(v=Symbol[v.substring(2)]);var mI=II.M.constructor;return mI[v]===void 0?(zA.Y=CA-1,mI[v]=zA):(lI(mI,v,nI),mI[v].R[CA-1]=zA),HI([],_A,function(eg){return eg=_I(nI,[eg[0],null].concat(eg.slice(1)),null,fA,TA),mI[v].R===void 0?(eg.Y=CA-1,mI[v]=eg):mI[v].R[CA-1]=eg,[]}),[]})},o:function(H,v,CA,nA,MA,fA){0{KC("Cannot construct "+_A.name+" due to unbound types",TA)},HI([],TA,function(zA){return zA.splice(1,0,null),_A.M.X[v-1]=_I(II,zA,null,MA,fA),[]}),[]})},a:function(H,v,CA,nA,MA,fA,TA,_A){var II=vi(CA,nA);v=DA(v),fA=RC(MA,fA),HI([],[H],function(zA){function nI(){KC("Cannot call "+mI+" due to unbound types",II)}zA=zA[0];var mI=zA.name+"."+v;v.startsWith("@@")&&(v=Symbol[v.substring(2)]),_A&&zA.M.ia.push(v);var eg=zA.M.W,Yg=eg[v];return Yg===void 0||Yg.R===void 0&&Yg.className!==zA.name&&Yg.Y===CA-2?(nI.Y=CA-2,nI.className=zA.name,eg[v]=nI):(lI(eg,v,mI),eg[v].R[CA-2]=nI),HI([],II,function(cg){return cg=_I(mI,cg,zA,fA,TA),eg[v].R===void 0?(cg.Y=CA-2,eg[v]=cg):eg[v].R[CA-2]=cg,[]}),[]})},A:function(H,v){v=DA(v),IA(H,{name:v,fromWireType:function(CA){var nA=FA(CA);return aQ(CA),nA},toWireType:function(CA,nA){return W(nA)},argPackAdvance:8,readValueFromPointer:UI,U:null})},m:function(H,v,CA){CA=jA(CA),v=DA(v),IA(H,{name:v,fromWireType:function(nA){return nA},toWireType:function(nA,MA){return MA},argPackAdvance:8,readValueFromPointer:Z(v,CA),U:null})},d:function(H,v,CA,nA,MA){v=DA(v),MA===-1&&(MA=4294967295),MA=jA(CA);var fA=_A=>_A;if(nA===0){var TA=32-8*CA;fA=_A=>_A<>>TA}CA=v.includes("unsigned")?function(_A,II){return II>>>0}:function(_A,II){return II},IA(H,{name:v,fromWireType:fA,toWireType:CA,argPackAdvance:8,readValueFromPointer:rA(v,MA,nA!==0),U:null})},b:function(H,v,CA){function nA(fA){fA>>=2;var TA=d;return new MA(h,TA[fA+1],TA[fA])}var MA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][v];CA=DA(CA),IA(H,{name:CA,fromWireType:nA,argPackAdvance:8,readValueFromPointer:nA},{ta:!0})},n:function(H,v){v=DA(v);var CA=v==="std::string";IA(H,{name:v,fromWireType:function(nA){var MA=d[nA>>2],fA=nA+4;if(CA)for(var TA=fA,_A=0;_A<=MA;++_A){var II=fA+_A;if(_A==MA||y[II]==0){if(TA=TA?G(y,TA,II-TA):"",zA===void 0)var zA=TA;else zA+="\0",zA+=TA;TA=II+1}}else{for(zA=Array(MA),_A=0;_A=II?_A++:2047>=II?_A+=2:55296<=II&&57343>=II?(_A+=4,++fA):_A+=3}fA=_A}else fA=MA.length;if(_A=jI(4+fA+1),II=_A+4,d[_A>>2]=fA,CA&&TA){if(TA=II,II=fA+1,fA=y,0=nI){var mI=MA.charCodeAt(++zA);nI=65536+((nI&1023)<<10)|mI&1023}if(127>=nI){if(TA>=II)break;fA[TA++]=nI}else{if(2047>=nI){if(TA+1>=II)break;fA[TA++]=192|nI>>6}else{if(65535>=nI){if(TA+2>=II)break;fA[TA++]=224|nI>>12}else{if(TA+3>=II)break;fA[TA++]=240|nI>>18,fA[TA++]=128|nI>>12&63}fA[TA++]=128|nI>>6&63}fA[TA++]=128|nI&63}}fA[TA]=0}}else if(TA)for(TA=0;TAk,_A=1;else v===4&&(nA=oA,MA=iA,fA=RA,TA=()=>d,_A=2);IA(H,{name:CA,fromWireType:function(II){for(var zA=d[II>>2],nI=TA(),mI,eg=II+4,Yg=0;Yg<=zA;++Yg){var cg=II+4+Yg*v;(Yg==zA||nI[cg>>_A]==0)&&(eg=nA(eg,cg-eg),mI===void 0?mI=eg:(mI+="\0",mI+=eg),eg=cg+v)}return NI(II),mI},toWireType:function(II,zA){typeof zA!="string"&&EA("Cannot pass non-string to C++ string type "+CA);var nI=fA(zA),mI=jI(4+nI+v);return d[mI>>2]=nI>>_A,MA(zA,mI+4,nI+v),II!==null&&II.push(NI,mI),mI},argPackAdvance:8,readValueFromPointer:UI,U:function(II){NI(II)}})},k:function(H,v,CA,nA,MA,fA){tI[H]={name:DA(v),ea:RC(CA,nA),V:RC(MA,fA),ha:[]}},h:function(H,v,CA,nA,MA,fA,TA,_A,II,zA){tI[H].ha.push({na:DA(v),sa:CA,qa:RC(nA,MA),ra:fA,ya:TA,xa:RC(_A,II),za:zA})},C:function(H,v){v=DA(v),IA(H,{ua:!0,name:v,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(H,v,CA,nA,MA){H=LA[H],v=FA(v),CA=xA(CA);var fA=[];return d[nA>>2]=W(fA),H(v,CA,fA,MA)},t:function(H,v,CA,nA){H=LA[H],v=FA(v),CA=xA(CA),H(v,CA,null,nA)},g:aQ,l:function(H,v){var CA=VA(H,v),nA=CA[0];v=nA.name+"_$"+CA.slice(1).map(function(TA){return TA.name}).join("_")+"$";var MA=XA[v];if(MA!==void 0)return MA;var fA=Array(H-1);return MA=DI((TA,_A,II,zA)=>{for(var nI=0,mI=0;mI>>=0,2147483648=CA;CA*=2){var nA=v*(1+.2/CA);nA=Math.min(nA,H+100663296);var MA=Math;nA=Math.max(H,nA),MA=MA.min.call(MA,2147483648,nA+(65536-nA%65536)%65536);A:{try{l.grow(MA-h.byteLength+65535>>>16),P();var fA=1;break A}catch{}fA=void 0}if(fA)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(H,v,CA,nA){for(var MA=0,fA=0;fA>2],_A=d[v+4>>2];v+=8;for(var II=0;II<_A;II++){var zA=y[TA+II],nI=wI[H];zA===0||zA===10?((H===1?a:s)(G(nI,0)),nI.length=0):nI.push(zA)}MA+=_A}return d[nA>>2]=MA,0}};(function(){function H(MA){i.asm=MA.exports,l=i.asm.D,P(),U=i.asm.I,X.unshift(i.asm.E),lA--,i.monitorRunDependencies&&i.monitorRunDependencies(lA),lA==0&&aA&&(MA=aA,aA=null,MA())}function v(MA){H(MA.instance)}function CA(MA){return NA().then(function(fA){return WebAssembly.instantiate(fA,nA)}).then(function(fA){return fA}).then(MA,function(fA){s("failed to asynchronously prepare wasm: "+fA),SA(fA)})}var nA={a:hI};if(lA++,i.monitorRunDependencies&&i.monitorRunDependencies(lA),i.instantiateWasm)try{return i.instantiateWasm(nA,H)}catch(MA){s("Module.instantiateWasm callback failed with error: "+MA),e(MA)}return function(){return r||typeof WebAssembly.instantiateStreaming!="function"||b(BA)||typeof fetch!="function"?CA(v):fetch(BA,{credentials:"same-origin"}).then(function(MA){return WebAssembly.instantiateStreaming(MA,nA).then(v,function(fA){return s("wasm streaming compile failed: "+fA),s("falling back to ArrayBuffer instantiation"),CA(v)})})}().catch(e),{}})(),i.___wasm_call_ctors=function(){return(i.___wasm_call_ctors=i.asm.E).apply(null,arguments)};var iI=i.___getTypeName=function(){return(iI=i.___getTypeName=i.asm.F).apply(null,arguments)};i.__embind_initialize_bindings=function(){return(i.__embind_initialize_bindings=i.asm.G).apply(null,arguments)};var jI=i._malloc=function(){return(jI=i._malloc=i.asm.H).apply(null,arguments)},NI=i._free=function(){return(NI=i._free=i.asm.J).apply(null,arguments)};i.dynCall_jiji=function(){return(i.dynCall_jiji=i.asm.K).apply(null,arguments)};var TI;aA=function H(){TI||ug(),TI||(aA=H)};function ug(){function H(){if(!TI&&(TI=!0,i.calledRun=!0,!D)){if(WA(X),Q(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),i.postRun)for(typeof i.postRun=="function"&&(i.postRun=[i.postRun]);i.postRun.length;){var v=i.postRun.shift();wA.unshift(v)}WA(wA)}}if(!(0Rg(g),A);_.useEffect(()=>I,[I])}let Zy;function H8(){if(Zy==null){const g=Zy=fg(void 0);FB.loadYoga().then(A=>g.value=A)}return Zy}function SY(g,A,...I){const C=_.useMemo(()=>fg(void 0),[]);return _.useEffect(()=>{if(!(A instanceof wC)){let B=!1;return g(A,...I).then(i=>B?void 0:C.value=i),()=>B=!0}return Rg(()=>{let B=!1;return g(A.value,...I).then(i=>B?void 0:C.value=i).catch(console.error),()=>B=!0})},[A,...I]),C}function GY(g,A,I,C,B){const[i,Q]=g.value,[e,E,t,a]=A.value,[s,r,l,D]=I.value,G=e+s,h=E+r,c=t+l,y=a+D,S=i-y-h,k=Q-G-c,f=S/k;let d=1;return f>B?d=k*C:d=S*C/B,[(y-h)*.5*C,(c-G)*.5*C,d]}const UR=new QI;function ik(g,A,I,C=0){const B=A*g.itemSize+C;g.addUpdateRange(B,3),Array.isArray(I)?g.set(I,B):(UR.set(I),UR.toArray(g.array,B)),g.needsUpdate=!0}function Qk(g){return g instanceof wC?g.value:g}const yY=_.createContext(null);function so(){return _.useContext(yY)}const T8=yY.Provider;function gE(g){const A=new Map;return(I,C)=>{const B=I.length;for(const i in C){const Q=C[i];if(Q===void 0)return;let e=A.get(Q);e==null&&A.set(Q,e=xC(()=>g()?Qk(Q):void 0));for(let E=0;E"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),uY=fg((vn==null?void 0:vn.matches)??!1);vn==null||vn.addEventListener("change",g=>uY.value=g.matches);const kY=fg("system"),MY=xC(()=>{switch(kY.value){case"system":return uY.value;case"dark":return!0;case"light":return!1}});function x8(g){kY.value=g}const v8=gE(()=>MY.value);function bE(g,A){Bl(A,I=>{const C=I.dark;C!=null&&v8(g,C)})}function b8({dark:g,light:A}){const I={};for(const C in g)I[C]=xC(()=>MY.value?g[C]:A[C]);return I}const O8=Math.cos(45/180*Math.PI),Py=[new Jg,new Jg,new Jg,new Jg],NR=new O;class _8{constructor(A,I,C,B,i){EI(this,"planes");EI(this,"facePlane");EI(this,"originalCenter");this.originalCenter=new O(I,C,0).applyMatrix4(A),this.facePlane=new Jg(new O(0,0,1),0).applyMatrix4(A);const Q=B/2,e=i/2,E=C+e,t=I+Q,a=-C+e,s=-I+Q;this.planes=[new Jg(new O(0,-1,0),a).applyMatrix4(A),new Jg(new O(-1,0,0),s).applyMatrix4(A),new Jg(new O(0,1,0),E).applyMatrix4(A),new Jg(new O(1,0,0),t).applyMatrix4(A)]}min({planes:A}){for(let B=0;B<4;B++){const i=this.facePlane,Q=A[B],e=i.normal.dot(Q.normal);if(Math.abs(e)>.99)return this;const E=Py[B];if(Math.abs(e)<.01){E.copy(Q);continue}E.normal.crossVectors(i.normal,Q.normal).normalize().cross(i.normal).negate();const t=1-e*e,a=(i.constant-Q.constant*e)/t,s=(Q.constant-i.constant*e)/t;NR.copy(i.normal).multiplyScalar(a).addScaledVector(Q.normal,s),E.constant=-NR.dot(E.normal)}let I=0;const C=this.planes[0].normal;for(;Py[I].normal.dot(C)>O8;)break;for(let B=0;B<4;B++){const i=this.planes[B],Q=(B+I)%4;Py[Q].distanceToPoint(this.originalCenter)xC(()=>{const B=A.value,i=g==null?void 0:g.value;if(i==null||B==null)return!1;const[Q,e]=I.value;for(let a=0;a<4;a++){const[s,r]=W8[a];FR[a].set(s*C.pixelSize*Q,r*C.pixelSize*e,0).applyMatrix4(B)}const{planes:E}=i;let t;for(let a=0;a<4;a++){const s=E[a];t=!0;for(let r=0;r<4;r++){const l=FR[r];s.distanceToPoint(l)>=0&&(t=!1)}if(t)return!0}return!1}),[A,g,C,I])}function j8(g,A,I,C,B,i){return _.useMemo(()=>xC(()=>{const Q=g.value;if(Q==null||C.value===FB.Overflow.Visible)return i==null?void 0:i.value;const[e,E]=A.value,[t,a,s,r]=I.value,l=new _8(Q,(a-r)*B.pixelSize/2,(t-s)*B.pixelSize/2,(e-r-a)*B.pixelSize,(E-t-s)*B.pixelSize);return(i==null?void 0:i.value)!=null&&l.min(i.value),l}),[g,A,I,B,C,i])}const ek=new Jg(new O(-1,0,0),Number.MAX_SAFE_INTEGER),Kh=new Float32Array(16);for(let g=0;g<4;g++)ek.normal.toArray(Kh,g*4),Kh[g*4+3]=ek.constant;function il(g,A){const I=_.useMemo(()=>[new Jg,new Jg,new Jg,new Jg],[]);return NC(()=>{var i;const C=A.current;if(C==null)return;const B=(i=g==null?void 0:g.value)==null?void 0:i.planes;if(B==null){for(let Q=0;Q<4;Q++)I[Q].copy(ek);return}for(let Q=0;Q<4;Q++)I[Q].copy(B[Q]).applyMatrix4(C.matrixWorld)}),I}class V8{constructor(A,I){EI(this,"glyphInfoMap",new Map);EI(this,"kerningMap",new Map);EI(this,"questionmarkGlyphInfo");EI(this,"pageWidth");EI(this,"pageHeight");EI(this,"distanceRange");this.page=I;const{scaleW:C,scaleH:B,lineHeight:i}=A.common;this.pageWidth=C,this.pageHeight=B,this.distanceRange=A.distanceField.distanceRange;const{size:Q}=A.info;for(const E of A.chars)E.uvX=E.x/C,E.uvY=E.y/B,E.uvWidth=E.width/C,E.uvHeight=E.height/B,E.width/=Q,E.height/=Q,E.xadvance/=Q,E.xoffset/=Q,E.yoffset-=i-Q,E.yoffset/=Q,this.glyphInfoMap.set(E.char,E);for(const{first:E,second:t,amount:a}of A.kernings)this.kerningMap.set(`${E}/${t}`,a/Q);const e=this.glyphInfoMap.get("?");if(e==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=e}getGlyphInfo(A){return this.glyphInfoMap.get(A)??(A==` -`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(A,I){return this.kerningMap.get(`${A}/${I}`)??0}}function X8(g,A,I){A[I+0]=g.uvX,A[I+1]=g.uvY+g.uvHeight,A[I+2]=g.uvWidth,A[I+3]=-g.uvHeight}const fR=new dI,z8=new dI;class $8{constructor(A,I,C,B,i){EI(this,"index");EI(this,"hidden",!0);EI(this,"glyphInfo");EI(this,"x",0);EI(this,"y",0);EI(this,"fontSize",0);this.group=A,this.baseMatrix=I,this.color=C,this.opacity=B,this.clippingRect=i}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(A){this.index=A,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(A){this.index=A}updateClippingRect(A){if(this.clippingRect=A,this.index==null)return;const I=this.index*16,{instanceClipping:C}=this.group;this.clippingRect==null?C.set(Kh,I):this.clippingRect.toArray(C.array,I),C.addUpdateRange(I,16),C.needsUpdate=!0}updateColor(A){this.color=A,this.index!=null&&ik(this.group.instanceRGBA,this.index,A)}updateOpacity(A){if(this.opacity=A,this.index==null)return;const{instanceRGBA:I}=this.group,C=this.index*4+3;I.array[C]=A,I.addUpdateRange(C,1),I.needsUpdate=!0}updateGlyphAndTransformation(A,I,C,B){this.glyphInfo===A&&this.x===I&&this.y===C&&this.fontSize===B||(this.glyphInfo!=A&&(this.glyphInfo=A,this.writeUV()),this.x=I,this.y=C,this.fontSize=B,this.writeUpdatedMatrix())}updateBaseMatrix(A){this.baseMatrix!==A&&(this.baseMatrix=A,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const A=this.index*4,{instanceUV:I}=this.group;X8(this.glyphInfo,I.array,A),I.addUpdateRange(A,4),I.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const A=this.index*16,{instanceMatrix:I}=this.group;I.addUpdateRange(A,16),fR.makeTranslation(this.x,this.y,0).multiply(z8.makeScale(this.fontSize*this.glyphInfo.width,this.fontSize*this.glyphInfo.height,1)).premultiply(this.baseMatrix),fR.toArray(I.array,A),I.needsUpdate=!0}}function Aj(g,A,I,C){return((C==null?0:g.getKerning(C,I.id))+I.xoffset)*A}function Ij(g,A,I){return(I.yoffset+(A-1)/2)*g}function bw(g,A,I){return A.xadvance*g+I}function gj(g,A){return g*A}function Ek(g,{lineHeight:A,fontSize:I}){return Math.max(g,1)*I*A}class Cj{constructor(A,I,C,B,i,Q,e){EI(this,"glyphLines",[]);EI(this,"unsubscribe");EI(this,"unsubscribeList",[]);EI(this,"opacity",1);EI(this,"color",16777215);this.group=A,this.getAlignmentProperties=I,this.getAppearanceProperties=C,this.layout=B,this.matrix=i,this.parentClippingRect=e,this.unsubscribe=Rg(()=>{const E=C.value;if(E==null||(Q==null?void 0:Q.value)===!0||(E("opacity")??1)<.01){this.hide();return}this.show()})}show(){this.unsubscribeList.length>0||(St(this.glyphLines,A=>A.show()),this.unsubscribeList.push(Rg(()=>{const A=this.matrix.value;A!=null&&St(this.glyphLines,I=>I.updateBaseMatrix(A))}),Rg(()=>{var I;const A=(I=this.parentClippingRect)==null?void 0:I.value;St(this.glyphLines,C=>C.updateClippingRect(A))}),Rg(()=>{const A=this.getAppearanceProperties.value;if(A==null)return;const I=this.color=A("color")??16777215;St(this.glyphLines,C=>C.updateColor(I))}),Rg(()=>{const A=this.getAppearanceProperties.value;if(A==null)return;const I=this.opacity=A("opacity")??1;St(this.glyphLines,C=>C.updateOpacity(I))}),Rg(()=>{var G;const A=this.layout.value,I=this.getAlignmentProperties.value;if(A==null||I==null)return;const{text:C,font:B,lines:i,letterSpacing:Q=0,fontSize:e=16,lineHeight:E=1.2,availableHeight:t,availableWidth:a}=A;let s=-t/2;switch(I("verticalAlign")){case"center":s+=(t-Ek(A.lines.length,A))/2;break;case"bottom":s+=t-Ek(A.lines.length,A);break}const r=I("horizontalAlign")??"left",l=i.length,D=this.group.pixelSize;for(let h=0;hh.hide(),l),this.glyphLines.length=l})))}hide(){const A=this.unsubscribeList.length;if(A!==0){for(let I=0;II.hide())}}destroy(){this.hide(),this.glyphLines.length=0,this.unsubscribe()}}function St(g,A,I=0){const C=g.length;for(let B=I;B{I.uniforms.fontPage={value:A.page},I.uniforms.pageSize={value:[A.pageWidth,A.pageHeight]},I.uniforms.distanceRange={value:A.distanceRange},I.uniforms.v_weight={value:.3},I.vertexShader=`attribute vec4 instanceUVOffset; - varying vec2 fontUv; - attribute vec4 instanceRGBA; - varying vec4 rgba; - attribute mat4 instanceClipping; - varying mat4 clipping; - varying vec3 localPosition; - `+I.vertexShader,I.vertexShader=I.vertexShader.replace("#include ",`#include - fontUv = instanceUVOffset.xy + uv * instanceUVOffset.zw; - rgba = instanceRGBA; - clipping = instanceClipping; - localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`),I.fragmentShader=`uniform sampler2D fontPage; - uniform vec2 pageSize; - uniform int distanceRange; - uniform float v_weight; - varying vec2 fontUv; - varying vec4 rgba; - varying mat4 clipping; - varying vec3 localPosition; - float median(float r, float g, float b) { - return max(min(r, g), min(max(r, g), b)); - } - float getDistance() { - vec3 msdf = texture(fontPage, fontUv).rgb; - return median(msdf.r, msdf.g, msdf.b); - } - `+I.fragmentShader,I.fragmentShader=I.fragmentShader.replace("#include ",` #include - vec4 plane; - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - for(int i = 0; i < 4; i++) { - plane = clipping[ i ]; - distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - - if ( clipOpacity == 0.0 ) discard; - } - vec2 dxdy = fwidth(fontUv) * pageSize; - float dist = getDistance() + min(float(v_weight), 0.5 - 1.0 / float(distanceRange)) - 0.5; - float multiplier = clamp(dist * float(distanceRange) / length(dxdy) + 0.5, 0.0, 1.0); - if(multiplier <= 0.5) { - discard; - } - diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); - diffuseColor *= rgba; - `)}}}const tk=Symbol("camera-distance-key"),ok=Symbol("order-info-key");function Qj(g,A){if(g.groupOrder!==A.groupOrder)return g.groupOrder-A.groupOrder;if(g.renderOrder!==A.renderOrder)return g.renderOrder-A.renderOrder;const I=g.object[tk],C=A.object[tk];return I==null||C==null?g.z!==A.z?A.z-g.z:g.id-A.id:I===C?Ej(g.object[ok],A.object[ok]):C.current-I.current}function ej(g){g.setTransparentSort(Qj)}const mB={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function Ej(g,A){let I=g.majorIndex-A.majorIndex;return I!=0||(I=g.elementType-A.elementType,I!=0)?I:g.minorIndex-A.minorIndex}const pY=_.createContext(null),tj=pY.Provider;function ri(g,A,I,C){const B=C??_.useContext(pY),i=typeof A=="number"?A:(A==null?void 0:A.major)??0,Q=typeof A=="number"?0:(A==null?void 0:A.minor)??0;return _.useMemo(()=>{let e,E;return B==null?(e=0,E=0):g>B.elementType?(e=B.majorIndex,E=0):g!=B.elementType||!oj(I,B.instancedGroupDependencies)?(e=B.majorIndex+1,E=0):(e=B.majorIndex,E=B.minorIndex+1),i>0&&(e+=i,E=0),E+=Q,{instancedGroupDependencies:I,elementType:g,majorIndex:e,minorIndex:E}},[i,Q,B,g,I])}function oj(g,A){if(g===A)return!0;if(g==null||A==null)return!1;let I=0;for(const C in g){if(g[C]!=A[C])return!1;++I}return I===Object.keys(A).length}function lo(g,A,I){return g[tk]=A,g[ok]=I,g}class nj extends KB{constructor(I,C,B,i){super();EI(this,"instanceMatrix");EI(this,"instanceUV");EI(this,"instanceRGBA");EI(this,"instanceClipping");EI(this,"glyphs",[]);EI(this,"requestedGlyphs",[]);EI(this,"holeIndicies",[]);EI(this,"mesh");EI(this,"material");EI(this,"timeTillDecimate");this.pixelSize=C,this.cameraDistance=B,this.orderInfo=i,this.material=new ij(I)}requestActivate(I){const C=this.holeIndicies.shift();if(C!=null){this.glyphs[C]=I,I.activate(C);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(I);return}const B=this.mesh.count;this.glyphs[B]=I,I.activate(B),this.mesh.count+=1}delete(I){if(I.index==null){const i=this.requestedGlyphs.indexOf(I);if(i===-1)return;this.requestedGlyphs.splice(i,1);return}const C=this.requestedGlyphs.shift();if(C!=null){C.activate(I.index),this.glyphs[I.index]=C,I.index=void 0;return}if(I.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,I.index=void 0;return}const B=I.index*16;this.instanceMatrix.array.fill(0,B,B+16),this.instanceMatrix.addUpdateRange(B,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(I.index),this.glyphs[I.index]=void 0,I.index=void 0}onFrame(I){var e;const C=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(C===0){this.visible=!1;return}this.visible=!0;const B=((e=this.instanceMatrix)==null?void 0:e.count)??0;if(C0)&&C<=B)return;this.timeTillDecimate=void 0,this.resize(C);const i=this.mesh.count,Q=this.requestedGlyphs.length;for(let E=0;Er-l);const t=this.holeIndicies.length;let a=0,s=0;for(;s0)for(let r=this.holeIndicies[0];r{for(const Q of B)Q(i);Wy.set(g,i)}).catch(console.error)}async function rj(g,A){const I=await(await fetch(g)).json();if(I.pages.length!==1)throw new Error("only supporting exactly 1 page");const C=await aj.loadAsync(new URL(I.pages[0],g).href);return C.anisotropy=A.capabilities.getMaxAnisotropy(),C.flipY=!1,new V8(I,C)}const lj=({text:g,fontSize:A,font:I,letterSpacing:C},B,i)=>{let Q={start:i,end:i,whitespaces:0,width:0},e=i,E=0,t=0;for(;eB)break;E+=s,++e,a===" "?t+=1:(Q.width=E,Q.end=e,Q.whitespaces=t)}return Q},cj=({text:g,fontSize:A,font:I,letterSpacing:C},B,i)=>{let Q={start:i,end:i,whitespaces:0,width:0},e=0,E=0,t=i;for(;t{let Q={start:i,end:i,whitespaces:0,width:0},e=0,E=0,t=i;for(;t0&&e+s>B)break;if(++t,e+=s,a===" "){E+=1;continue}const r=g[t];r!=" "&&r!=` -`&&tnew Map,[]),B=_.useCallback((i,Q)=>{let e=C.get(Q);e==null&&C.set(Q,e=new Map);let E=e==null?void 0:e.get(i);return E==null&&(e.set(i,E=new nj(Q,g,A,{majorIndex:i,elementType:mB.Text,minorIndex:0})),I.add(E)),E},[g,A,I]);return NC((i,Q)=>{for(const e of C.values())for(const E of e.values())E.onFrame(Q)}),B}const yj=_.createContext(null),uj={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},nk={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},kj=["horizontalAlign","verticalAlign"],Mj=["color","opacity"],dj=["fontSize","letterSpacing","lineHeight","wordBreak"];function pj(g,A,I,C,B,i,Q){const e=_.useContext(NY),E=Nj(g),t=_.useMemo(()=>fg(A),[]);t.value=A;const a=_.useRef(void 0),s=Rj(g,E,t,a),r=EQ(g,kj),l=EQ(g,Mj),D=_.useMemo(()=>fg(void 0),[]);return _.useEffect(()=>C.addLayoutChangeListener(()=>{const G=a.current;if(G==null)return;const{size:h,paddingInset:c,borderInset:y}=C,[S,k]=h.value,[f,d,N,q]=c.value,[P,U,K,X]=y.value,wA=S-d-q-U-X,z=k-f-N-P-K;D.value=wj(G,wA,z)}),[C]),GB(()=>{const G=E.value;if(G==null)return;const h=new Cj(e(Q.majorIndex,G),r,l,D,I,B,i);return()=>h.destroy()},[e,I,C,B,i,Q.majorIndex]),s}const Uj=["fontFamily","fontWeight"];function Nj(g){const A=_.useMemo(()=>fg(void 0),[]),I=_.useContext(yj)??uj,C=EQ(g,Uj),B=QB(({gl:i})=>i);return GB(()=>{const i=C.value;if(i==null)return;let Q=i("fontWeight")??"normal";typeof Q=="string"&&(Q=nk[Q]);let e=i("fontFamily");e==null&&(e=Object.keys(I)[0]);const E=Fj(I[e],Q);let t=!1;return sj(E,B,a=>t?void 0:A.value=a),()=>t=!0},[I,B]),A}function Fj(g,A){let I=1/0,C;for(const B in g){const i=Math.abs(A-fj(B));if(i===0)return g[B];ixC(()=>{const Q=A.value,e=B.value;if(Q==null||e==null)return;const E=I.value,t=Array.isArray(E)?E.map(D=>Qk(D)).join(""):Qk(E),a=e("letterSpacing")??0,s=e("lineHeight")??1.2,r=e("fontSize")??16,l=e("wordBreak")??"break-word";return(D,G)=>{const h=G===FB.MeasureMode.Undefined?void 0:D;return hj(C.current={font:Q,fontSize:r,letterSpacing:a,lineHeight:s,text:t,wordBreak:l},h)}}),[A,B,C,I])}const sn={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},FY=Object.keys(sn),Kj=FY.length,fY=_.createContext(null),Jj=fY.Provider;function OE(g,A,I){const C=I??_.useContext(fY),B=_.useMemo(()=>({sm:gE(()=>C.value[0]>sn.sm),md:gE(()=>C.value[0]>sn.md),lg:gE(()=>C.value[0]>sn.lg),xl:gE(()=>C.value[0]>sn.xl),"2xl":gE(()=>C.value[0]>sn["2xl"])}),[C]);Bl(A,i=>{for(let Q=0;QA.createChild(g),[g,A]);return _.useEffect(()=>(A.addChild(I),()=>{A.removeChild(I),I.destroy()}),[A,I]),I}function mj(){let g=_.useRef(void 0);return NC(()=>{if(g.current==null)return;const A=g.current;g.current=void 0,A.calculateLayout()}),_.useCallback(A=>{g.current!=null||A.yogaNode==null||(g.current=A)},[])}const sd=RY.Provider,kQ=new Jg,DD=new O,Lj=[new Jg().setFromNormalAndCoplanarPoint(new O(1,0,0),new O(-.5,0,0)),new Jg().setFromNormalAndCoplanarPoint(new O(-1,0,0),new O(.5,0,0)),new Jg().setFromNormalAndCoplanarPoint(new O(0,1,0),new O(0,-.5,0)),new Jg().setFromNormalAndCoplanarPoint(new O(0,-1,0),new O(0,.5,0))];function KY(g){return(A,I)=>{const C=g.matrixWorld;if(kQ.constant=0,kQ.normal.set(0,0,1),kQ.applyMatrix4(C),kQ.distanceToPoint(A.ray.origin)<=0||A.ray.intersectPlane(kQ,DD)==null)return;const B=kQ.normal.clone();for(let i=0;i<4;i++){const Q=Lj[i];if(kQ.copy(Q).applyMatrix4(C),kQ.distanceToPoint(DD)<0)return}I.push({distance:DD.distanceTo(A.ray.origin),object:g,point:DD.clone(),normal:B})}}function wa(g,A,I,C,B){return(i,Q)=>{var s;const e=I.current;if(e==null)return;const E=Q.length;A.call(g,i,Q);const t=(s=C==null?void 0:C.value)==null?void 0:s.planes,a=e.matrixWorld;A:for(let r=Q.length-1;r>=E;r--){const l=Q[r];if(l.distance-=B.majorIndex*.01+B.elementType*.001+B.minorIndex*1e-5,t!=null){for(let D=0;D<4;D++)if(kQ.copy(t[D]).applyMatrix4(a),kQ.distanceToPoint(l.point)<0){Q.splice(r,1);continue A}}}}}function JY(g,A){for(;A>=g.length;){let I=0,C=0;if(g.length>0){const B=g[g.length-1];I+=B.offset+B.elements.length,C=Math.min(0,B.missingSpace),B.missingSpace-=C}g.push({add:[],missingSpace:C,offset:I,elements:[]})}}function Yj(g,A,I){JY(g,0);const C=g[g.length-1];C.missingSpace+=A-I}function Hj(g,A,I,C){JY(g,A);const B=g[A];return B.missingSpace+=1,B.missingSpace<=0?(C(I,B,B.elements.length),B.elements.push(I),!1):(B.add.push(I),!0)}function Tj(g,A,I,C,B,i,Q,e){if(A>=g.length)throw new Error(`no bucket at index ${A}`);const E=g[A];E.missingSpace-=1;const t=E.add.indexOf(I);if(t!=-1)return E.add.splice(t,1),!1;if(C==null||C>=E.elements.length)throw new Error(`no element at index ${C}`);if(E.add.length>0){const l=E.add.shift();return E.elements[C]=l,B(l,E,C),!1}const a=E.offset,s=E.elements.length-1;if(s!=C){const l=a+s,D=a+C;e(D,l,l+1);const G=E.elements[s];E.elements[C]=G,Q(G,C)}if(i(a+s),E.elements.length-=1,A0;){const l=g[A-1];l.missingSpace+=r.missingSpace,r=g[--A]}return g.length=A+1,!1}function xj(g,A,I){let C=g.length,B=-1;for(let Q=0;Q0&&(B=Q);const E=Q===C-1;if(!E&&e.missingSpace===0)continue;const t=e.missingSpace<0;for(let a=Q-1;a>=0;a--){const s=g[a];if(s.missingSpace===0)continue;const r=s.missingSpace<0;if(r&&(E||t)){KR(g,I,a,Q,Math.abs(s.missingSpace));continue}if(!t&&!r)continue;const l=Math.min(Math.abs(s.missingSpace),Math.abs(e.missingSpace));t?vj(g,I,a,Q,l):KR(g,I,a,Q,l)}}const i=g[B];for(let Q=B+1;Qa>0)&&(C==null||C>0),[e,E]=A.value;return!(e>0&&E>0&&(B==null||B>0)&&i!=null)&&!Q?!1:I==null?!0:!I.value}function ps(g,A,I,C,B){g[A]=bj(g[A],I,rd(Math.ceil((C??0)/B*100),0,49))}const hD=new QI,LY=new QI(-1,-1,-1),JR={backgroundColor:(g,A)=>(Array.isArray(A)?hD.setRGB(...A):hD.set(A??LY)).toArray(g,4),borderBottomLeftRadius:(g,A,I)=>ps(g,7,0,A,I.value[1]),borderBottomRightRadius:(g,A,I)=>ps(g,7,1,A,I.value[1]),borderTopRightRadius:(g,A,I)=>ps(g,7,2,A,I.value[1]),borderTopLeftRadius:(g,A,I)=>ps(g,7,3,A,I.value[1]),borderColor:(g,A)=>(Array.isArray(A)?hD.setRGB(...A):hD.set(A??16777215)).toArray(g,8),borderBend:(g,A)=>g[11]=A??0,borderOpacity:(g,A)=>g[12]=A??1,backgroundOpacity:(g,A)=>g[15]=A??-1},YY=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],Oj=["borderOpacity","backgroundColor","backgroundOpacity"];class _j{constructor(A,I,C){EI(this,"data",new Float32Array(16));EI(this,"unsubscribeList",[]);EI(this,"unsubscribe");EI(this,"visible",!1);EI(this,"materials",[]);EI(this,"active",fg(!1));EI(this,"getProperty",fg(void 0));this.size=A,this.size=A,this.unsubscribe=Rg(()=>{const B=this.getProperty.value,i=B!=null&&mY(I,A,C,B("borderOpacity"),B("backgroundOpacity"),B("backgroundColor"));if(this.active.value=i,!i){this.deactivate();return}this.activate(A,I)})}addMaterial(A){A.visible=this.visible,this.materials.push(A)}hasBatchedProperty(A){return Oj.includes(A)}hasImmediateProperty(A){return A in JR}setProperty(A,I){const C=JR[A];C(this.data,I,this.size)}activate(A,I){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(YY),this.unsubscribeList.push(Rg(()=>this.data.set(A.value,13)),Rg(()=>this.data.set(I.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const A=this.unsubscribeList.length;for(let I=0;I{C.call(I,B,i),A.type==="normal"&&(B.uniforms.data={value:A.data}),Wj(B,A.type==="instanced")},I}class TY extends hw{constructor(A){super(),this.info=A,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(A,I){super.onBeforeCompile(A,I),this.info.type==="normal"&&(A.uniforms.data={value:this.info.data}),vY(A,this.info.type==="instanced")}}class xY extends Dw{constructor(A){super({depthPacking:SM}),this.info=A,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(A,I){super.onBeforeCompile(A,I),this.info.type==="normal"&&(A.uniforms.data={value:this.info.data}),vY(A,this.info.type==="instanced")}}const Zj=new xY({type:"instanced"}),Pj=new TY({type:"instanced"});function vY(g,A){bY(g,A),g.fragmentShader=g.fragmentShader.replace("#include ",`#include - ${OY(A,void 0)} - `)}function bY(g,A){g.vertexShader=g.vertexShader.replace("#include ",` #include - out vec4 borderRadius; - ${A?"":"uniform highp mat4 data;"}`),g.vertexShader=g.vertexShader.replace("#include ",` #include - highp int packedBorderRadius = int(data[1].w); - borderRadius = vec4( - packedBorderRadius / 125000 % 50, - packedBorderRadius / 2500 % 50, - packedBorderRadius / 50 % 50, - packedBorderRadius % 50 - ) * vec4(0.5 / 50.0);`),A&&(g.vertexShader=g.vertexShader.replace("#include ",` #include - attribute highp mat4 aData; - attribute mat4 aClipping; - out mat4 data; - out mat4 clipping; - out vec3 localPosition;`),g.vertexShader=g.vertexShader.replace("#include ",` #include - data = aData; - clipping = aClipping; - localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`)),g.fragmentShader=`${A?"in":"uniform"} highp mat4 data; - in vec4 borderRadius; - ${A?` - in vec3 localPosition; - in mat4 clipping; - `:""} - - float min4 (vec4 v) { - return min(min(min(v.x,v.y),v.z),v.w); - } - float max4 (vec4 v) { - return max(max(max(v.x,v.y),v.z),v.w); - } - vec2 radiusDistance(float radius, vec2 outside, vec2 border, vec2 borderSize) { - vec2 outerRadiusXX = vec2(radius, radius); - vec2 innerRadiusXX = outerRadiusXX - borderSize; - vec2 radiusWeightUnnormalized = abs(innerRadiusXX - border); - vec2 radiusWeight = radiusWeightUnnormalized / vec2(radiusWeightUnnormalized.x + radiusWeightUnnormalized.y); - return vec2( - radius - distance(outside, outerRadiusXX), - dot(radiusWeight, innerRadiusXX) - distance(border, innerRadiusXX) - ); - } - `+g.fragmentShader,g.fragmentShader=g.fragmentShader.replace("#include ",` ${A?` - vec4 plane; - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - - for(int i = 0; i < 4; i++) { - plane = clipping[ i ]; - distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - - if ( clipOpacity < 0.01 ) discard; - } - `:""} - vec4 absoluteBorderSize = data[0]; - vec3 backgroundColor = data[1].xyz; - vec3 borderColor = data[2].xyz; - float borderBend = data[2].w; - float borderOpacity = data[3].x; - float width = data[3].y; - float height = data[3].z; - float backgroundOpacity = data[3].w; - float ratio = width / height; - vec4 relative = vec4(height, height, height, height); - vec4 borderSize = absoluteBorderSize / relative; - vec4 v_outsideDistance = vec4(1.0 - vUv.y, (1.0 - vUv.x) * ratio, vUv.y, vUv.x * ratio); - vec4 v_borderDistance = v_outsideDistance - borderSize; - - vec2 distance = vec2(min4(v_outsideDistance), min4(v_borderDistance)); - vec4 negateBorderDistance = vec4(1.0) - v_borderDistance; - float maxWeight = max4(negateBorderDistance); - vec4 borderWeight = step(maxWeight, negateBorderDistance); - - vec4 insideBorder; - - if(all(lessThan(v_outsideDistance.xw, borderRadius.xx))) { - distance = radiusDistance(borderRadius.x, v_outsideDistance.xw, v_borderDistance.xw, borderSize.xw); - - float tmp = borderRadius.x - borderSize.w; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.x - borderSize.x; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.yz = vec2(0.0); - insideBorder.xw = max(vec2(0.0), lineIntersection - v_borderDistance.xw); - - } else if(all(lessThan(v_outsideDistance.xy, borderRadius.yy))) { - distance = radiusDistance(borderRadius.y, v_outsideDistance.xy, v_borderDistance.xy, borderSize.xy); - - float tmp = borderRadius.y - borderSize.y; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.y - borderSize.x; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.zw = vec2(0.0); - insideBorder.xy = max(vec2(0.0), lineIntersection - v_borderDistance.xy); - - } else if(all(lessThan(v_outsideDistance.zy, borderRadius.zz))) { - distance = radiusDistance(borderRadius.z, v_outsideDistance.zy, v_borderDistance.zy, borderSize.zy); - - float tmp = borderRadius.z - borderSize.y; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.z - borderSize.z; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.xw = vec2(0.0); - insideBorder.zy =max(vec2(0.0), lineIntersection - v_borderDistance.zy); - - } else if(all(lessThan(v_outsideDistance.zw, borderRadius.ww))) { - distance = radiusDistance(borderRadius.w, v_outsideDistance.zw, v_borderDistance.zw, borderSize.zw); - - float tmp = borderRadius.w - borderSize.w; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.w - borderSize.z; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.xy = vec2(0.0); - insideBorder.zw = max(vec2(0.0), lineIntersection - v_borderDistance.zw); - - } - - if(insideBorder.x + insideBorder.y + insideBorder.z + insideBorder.w > 0.0) { - borderWeight = normalize(insideBorder); - } - - #include `)}function OY(g,A){return`float ddx = fwidth(distance.x); - float outer = smoothstep(-ddx, ddx, distance.x); - - float ddy = fwidth(distance.y); - float inner = smoothstep(-ddy, ddy, distance.y); - - float transition = 1.0 - step(0.1, outer - inner) * (1.0 - inner); - - if(backgroundColor.r < 0.0 && backgroundOpacity >= 0.0) { - backgroundColor = vec3(1.0); - } - if(backgroundOpacity < 0.0) { - backgroundOpacity = backgroundColor.r >= 0.0 ? 1.0 : 0.0; - } - - if(backgroundOpacity < 0.0) { - backgroundOpacity = 0.0; - } - - float outOpacity = ${g?"clipOpacity * ":""} outer * mix(borderOpacity, ${A==null?"":`${A} *`} backgroundOpacity, transition); - - if(outOpacity < 0.01) { - discard; - }`}function Wj(g,A){bY(g,A),g.fragmentShader=g.fragmentShader.replace("#include ",` #include - ${OY(A,"diffuseColor.a")} - diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); - diffuseColor.a = outOpacity; - `),g.fragmentShader=g.fragmentShader.replace("#include ",` #include - vec3 b = normalize(vBitangent); - vec3 t = normalize(vTangent); - mat4 directions = mat4(vec4(b, 1.0), vec4(t, 1.0), vec4(-b, 1.0), vec4(-t, 1.0)); - float currentBorderSize = distance.x - distance.y; - float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; - vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; - normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); - `)}class jj extends lg{constructor(I,C,B){const i=qY();super(i);EI(this,"count",0);EI(this,"isInstancedMesh",!0);EI(this,"instanceColor",null);EI(this,"morphTexture",null);EI(this,"boundingBox",new sC);EI(this,"boundingSphere",new TC);this.instanceMatrix=I,this.frustumCulled=!1,i.attributes.aData=C,i.attributes.aClipping=B,this.customDepthMaterial=Zj,this.customDistanceMaterial=Pj}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class Vj extends KB{constructor(I,C,B,i,Q,e){super();EI(this,"mesh");EI(this,"instanceMatrix");EI(this,"instanceData");EI(this,"instanceClipping");EI(this,"buckets",[]);EI(this,"elementCount",0);EI(this,"bufferElementSize",0);EI(this,"timeToNextUpdate");EI(this,"activateElement",(I,C,B)=>{const i=C.offset+B;this.instanceData.set(YY,16*i),this.instanceData.addUpdateRange(16*i,16),this.instanceData.needsUpdate=!0,I.activate(C,B)});EI(this,"setElementIndex",(I,C)=>{I.setIndexInBucket(C)});EI(this,"bufferCopyWithin",(I,C,B)=>{jy(this.instanceMatrix,I,C,B),jy(this.instanceData,I,C,B),jy(this.instanceClipping,I,C,B)});EI(this,"clearBufferAt",I=>{const C=I*16;this.instanceMatrix.array.fill(0,C,C+16),this.instanceMatrix.addUpdateRange(C,16),this.instanceMatrix.needsUpdate=!0});this.material=I,this.pixelSize=C,this.cameraDistance=B,this.orderInfo=i,this.meshReceiveShadow=Q,this.meshCastShadow=e}updateCount(){const I=this.buckets[this.buckets.length-1],C=I.offset+I.elements.length;this.mesh!=null&&(this.mesh.count=C),this.visible=C>0}insert(I,C){if(this.elementCount+=1,!Hj(this.buckets,I,C,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(I,C,B){if(this.elementCount-=1,!Tj(this.buckets,I,B,C,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(I){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=I,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(I){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,I)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),xj(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const I=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),Yj(this.buckets,I,this.bufferElementSize);const C=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&C.set(this.instanceMatrix.array.subarray(0,C.length)),this.instanceMatrix=new ti(C,16,!1),this.instanceMatrix.setUsage(Ee);const B=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&B.set(this.instanceData.array.subarray(0,B.length)),this.instanceData=new ti(B,16,!1),this.instanceData.setUsage(Ee);const i=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&i.set(this.instanceClipping.array.subarray(0,i.length)),this.instanceClipping=new ti(i,16,!1),this.instanceClipping.setUsage(Ee),this.mesh=new jj(this.instanceMatrix,this.instanceData,this.instanceClipping),lo(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function jy(g,A,I,C){const B=g.itemSize,i=I*B,Q=C*B,e=A*B;g.array.copyWithin(e,i,Q);const E=Q-i;g.addUpdateRange(i,E),g.addUpdateRange(e,E),g.needsUpdate=!0}const qR={backgroundColor:(g,A,I)=>ik(g.instanceData,A,I??LY,4),borderBottomLeftRadius:(g,A,I,{value:C})=>SD(g.instanceData,A,7,0,I,C[1]),borderBottomRightRadius:(g,A,I,{value:C})=>SD(g.instanceData,A,7,1,I,C[1]),borderTopRightRadius:(g,A,I,{value:C})=>SD(g.instanceData,A,7,2,I,C[1]),borderTopLeftRadius:(g,A,I,{value:C})=>SD(g.instanceData,A,7,3,I,C[1]),borderColor:(g,A,I)=>ik(g.instanceData,A,I??16777215,8),borderBend:(g,A,I)=>Vy(g.instanceData,A,11,I??0),borderOpacity:(g,A,I)=>Vy(g.instanceData,A,12,I??1),backgroundOpacity:(g,A,I)=>Vy(g.instanceData,A,15,I??-1)},Xj=["borderOpacity","backgroundColor","backgroundOpacity"],wD=new dI,zj=new dI;class $j{constructor(A,I,C,B,i,Q,e,E){EI(this,"indexInBucket");EI(this,"bucket");EI(this,"unsubscribeList",[]);EI(this,"unsubscribeVisible");EI(this,"destroyed",!1);EI(this,"insertedIntoGroup",!1);EI(this,"active",fg(!1));EI(this,"getProperty",fg(void 0));this.group=A,this.matrix=I,this.size=C,this.offset=B,this.borderInset=i,this.clippingRect=Q,this.minorIndex=E,this.unsubscribeVisible=Rg(()=>{const t=this.getProperty.value;if(t!=null&&mY(i,C,e,t("borderOpacity"),t("backgroundOpacity"),t("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(A){return Xj.includes(A)}hasImmediateProperty(A){return A in qR}setProperty(A,I){const C=this.getIndexInBuffer();C!=null&&qR[A](this.group,C,I,this.size)}setIndexInBucket(A){this.indexInBucket=A}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(A,I){this.bucket=A,this.indexInBucket=I,this.active.value=!0,this.unsubscribeList.push(Rg(()=>{const C=this.matrix.value;if(C==null)return;const{instanceMatrix:B,pixelSize:i}=this.group,Q=this.getIndexInBuffer();if(Q==null)return;const e=Q*16,[E,t]=this.size.value;if(wD.makeScale(E*i,t*i,1),this.offset!=null){const[a,s]=this.offset.value;wD.premultiply(zj.makeTranslation(a*i,s*i,0))}wD.premultiply(C),wD.toArray(B.array,e),B.addUpdateRange(e,16),B.needsUpdate=!0}),Rg(()=>{const[C,B]=this.size.value,{instanceData:i}=this.group,{array:Q}=i,e=this.getIndexInBuffer();if(e==null)return;const E=e*16+13;Q[E]=C,Q[E+1]=B,i.addUpdateRange(E,2),i.needsUpdate=!0}),Rg(()=>{const{instanceData:C}=this.group,B=this.getIndexInBuffer();if(B==null)return;const i=B*16+0;C.array.set(this.borderInset.value,i),C.addUpdateRange(i,4),C.needsUpdate=!0}),Rg(()=>{var e;const{instanceClipping:C}=this.group,B=this.getIndexInBuffer();if(B==null)return;const i=B*16,Q=(e=this.clippingRect)==null?void 0:e.value;Q!=null?Q.toArray(C.array,i):C.array.set(Kh,i),C.addUpdateRange(i,16),C.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const A=this.unsubscribeList.length;for(let I=0;IA.hasImmediateProperty.bind(A),[A]),e=_.useCallback(E=>{if(!C.current){B.current=E;return}mR(E,B.current,i.current,A),B.current=E},[A]);GB(()=>{if(C.current=A.active.value,!C.current){LR(i.current),i.current={};return}return mR(B.current,A5,i.current,A),()=>{LR(i.current),i.current={}}},[A]),rY(g,Q,e,I)}function mR(g,A,I,C){var B,i;for(const Q in g){const e=g[Q];if(Q in A){const E=A[Q];if(delete A[Q],lY(e,E))continue;(B=I[Q])==null||B.call(I)}I[Q]=Rg(()=>{const E=Ak(e);C.setProperty(Q,E)})}for(const Q in A)(i=I[Q])==null||i.call(I),delete I[Q],Ak(A[Q])!==void 0&&C.setProperty(Q,void 0)}function LR(g){for(const A in g)g[A]()}function _E({handlers:g,hoverHandlers:A,activeHandlers:I,matrix:C,children:B,groupRef:i}){return _.useEffect(()=>{const Q=i.current;if(Q!=null)return Rg(()=>C.value!=null&&Q.matrix.copy(C.value))},[i,C]),JA.jsx("group",{ref:i,onPointerOut:hs(g.onPointerOut,A==null?void 0:A.onPointerOut),onPointerOver:hs(g.onPointerOver,A==null?void 0:A.onPointerOver),onPointerUp:hs(g.onPointerUp,I==null?void 0:I.onPointerUp),onPointerDown:hs(g.onPointerDown,I==null?void 0:I.onPointerDown),onPointerLeave:hs(g.onPointerLeave,I==null?void 0:I.onPointerLeave),onPointerMove:g.onPointerMove,onWheel:g.onWheel,onClick:g.onClick,onContextMenu:g.onContextMenu,onDoubleClick:g.onDoubleClick,onPointerCancel:g.onPointerCancel,onPointerEnter:g.onPointerEnter,onPointerMissed:g.onPointerMissed,matrixAutoUpdate:!1,children:B})}function hs(g,A){return g==null?A:A==null?g:I=>{A(I),!I.stopped&&g(I)}}function Sa(g,A,I,C){const B=Me(),i=_.useMemo(()=>{const Q=new lg(ld);return Q.matrixAutoUpdate=!1,Q.raycast=wa(Q,KY(Q),C,B,I),Q.visible=!1,Q},[B,I,C]);return GB(()=>{const[Q,e]=g.value;i.scale.set(Q*A.pixelSize,e*A.pixelSize,1),i.updateMatrix()},[g,A]),i}const _Y=_.createContext(null);function I5(g,A,I,C,B,i,Q){const{materials:e,setter:E}=_.useMemo(()=>{const t=new _j(A,I,C),a={data:t.data,type:"normal"},s=HY(B??UC,a),r=new xY(a),l=new TY(a);return s.clippingPlanes=i,r.clippingPlanes=i,l.clippingPlanes=i,{materials:[s,r,l],setter:t}},[A,I,C,B,i]);return HQ(g,E,Q),nd(g,E,Q),_.useEffect(()=>()=>E.destroy(),[E]),e}function Do(g=UC,{castShadow:A=!1,receiveShadow:I=!1}){return _.useMemo(()=>({materialClass:g,castShadow:A,receiveShadow:I}),[g,A,I])}function ho(g,A,I,C,B,i,Q,e,E,t,a){const s=a??_.useContext(_Y),r=_.useMemo(()=>new $j(s(Q.majorIndex,E),A,I,C,B,e,i,Q.minorIndex),[s,A,I,B,e,i,Q,C,E]);_.useEffect(()=>()=>r.destroy(),[r]),HQ(g,r,t),nd(g,r,t)}function g5(g,A,I){const C=_.useMemo(()=>new Map,[]),B=_.useCallback((i,{materialClass:Q,receiveShadow:e,castShadow:E})=>{let t=C.get(Q);t==null&&C.set(Q,t=new Map);const a=(i<<2)+((e?1:0)<<1)+(E?1:0);let s=t.get(a);if(s==null){const r=HY(Q,{type:"instanced"});t.set(a,s=new Vj(r,g,A,{elementType:mB.Panel,majorIndex:i,minorIndex:0},e,E)),I.add(s)}return s},[g,C,A,I]);return NC((i,Q)=>{for(const e of C.values())for(const E of e.values())E.onFrame(Q)}),B}const C5=_Y.Provider,ak=[],$D=[];function B5(g,A){ak.push(g),$D.push(A),document.body.style.cursor=A}function YR(g){const A=ak.indexOf(g);A!=-1&&(ak.splice(A,1),$D.splice(A,1),document.body.style.cursor=$D[$D.length-1]??"default")}function ZE(g,A){const I=_.useMemo(()=>fg([]),[]),C=_.useMemo(()=>gE(()=>I.value.length>0),[]);let B=!1;if(Bl(A,i=>{i.hover!=null&&(B=!0,C(g,i.hover))}),_.useEffect(()=>()=>YR(I),[]),!B&&A.onHoverChange==null&&A.cursor==null){I.value.length=0;return}return{onPointerOver:i=>{I.value=[i.pointerId,...I.value],A.onHoverChange!=null&&I.value.length===1&&A.onHoverChange(!0),A.cursor!=null&&B5(I,A.cursor)},onPointerOut:i=>{I.value=I.value.filter(Q=>Q!=i.pointerId),A.onHoverChange!=null&&I.value.length===0&&A.onHoverChange(!1),YR(I)}}}function Ow(g){return(A,I,C,B)=>{if(C(A)){B(A,I);return}const i=g[A];if(i==null)return;const Q=i.length;if(C(i[0]))for(let e=0;efg([0,0]),[])}function o5(g,A,I){return _.useMemo(()=>xC(()=>{const C=I.value;if(C==null)return;const[B,i]=g.value,{pixelSize:Q}=A;return new dI().makeTranslation(-B*Q,i*Q,0).premultiply(C)}),[g,A,I])}function n5({node:g,scrollPosition:A,children:I}){const C=_.useRef(null);return _.useEffect(()=>Rg(()=>{var e,E;const[B,i]=A.value,{pixelSize:Q}=g;(e=C.current)==null||e.position.set(-B*Q,i*Q,0),(E=C.current)==null||E.updateMatrix()}),[g,A]),JA.jsx("group",{ref:C,children:I})}function el({listeners:g,node:A,scrollPosition:I,children:C}){const[B,i]=_.useState(()=>A.scrollable.value.some(s=>s));GB(()=>i(A.scrollable.value.some(s=>s)),[A]);const Q=_.useRef(g.onScroll);Q.current=g.onScroll;const e=_.useMemo(()=>new Map,[]),E=_.useMemo(()=>new qA,[]),t=_.useCallback((s,r,l,D,G)=>{var K,X;const[h,c]=s==null?[!1,!1]:a5(s.nativeEvent);h&&(r=0),c&&(l=0);const[y,S]=I.value,[k,f]=A.maxScrollPosition.value;let[d,N]=I.value;const[q,P]=((K=A.anyAncestorScrollable)==null?void 0:K.value)??[!1,!1];d=HR(y,k,r,G&&!q),N=HR(S,f,l,G&&!P),D!=null&&D>0&&E.set(r,l).divideScalar(D),s!=null&&s5(s.nativeEvent,h||Math.min(y,(k??0)-y)>5,c||Math.min(S,(f??0)-S)>5),!(((X=Q.current)==null?void 0:X.call(Q,d,N,I,s))===!1||y===d&&S===N)&&(I.value=[d,N])},[A,I,E]);NC((s,r)=>{if(e.size>0)return;let l=0,D=0;const[G,h]=I.value,[c,y]=A.maxScrollPosition.value;l+=sk(G,0,c??0)*-.3,D+=sk(h,0,y??0)*-.3,l+=E.x*r,D+=E.y*r,E.multiplyScalar(.9),Math.abs(E.x)<.01&&(E.x=0),Math.abs(E.y)<.01&&(E.y=0),!(l===0&&D===0)&&t(void 0,l,D,void 0,!0)});const a=_.useRef(null);return B?JA.jsx("group",{ref:a,matrixAutoUpdate:!1,onPointerDown:s=>{let r=e.get(s.pointerId);r==null&&e.set(s.pointerId,r={timestamp:0,point:new O}),r.timestamp=performance.now()/1e3,a.current.worldToLocal(r.point.copy(s.point))},onPointerUp:s=>{e.delete(s.pointerId)},onPointerLeave:s=>{e.delete(s.pointerId)},onPointerCancel:s=>{e.delete(s.pointerId)},onContextMenu:s=>s.nativeEvent.preventDefault(),onPointerMove:s=>{const r=e.get(s.pointerId);if(r==null)return;a.current.worldToLocal(zy.copy(s.point)),Xy.copy(zy).sub(r.point).divideScalar(A.pixelSize);const l=performance.now()/1e3,D=l-r.timestamp;r.point.copy(zy),r.timestamp=l,!s.defaultPrevented&&t(s,-Xy.x,Xy.y,D,!0)},onWheel:s=>{s.defaultPrevented||t(s,s.deltaX,s.deltaY,void 0,!1)},children:C}):JA.jsx("group",{matrixAutoUpdate:!1,children:C})}const PY=Symbol("was-scrolled");function a5(g){return g[PY]??[!1,!1]}function s5(g,A,I){g[PY]=[A,I]}function HR(g,A,I,C){if(I===0)return g;const B=sk(g,0,A??0);TR(I)===TR(B)&&(I*=Math.max(0,1-Math.abs(B)/100));let i=g+I;return C&&A!=null?i:rd(i,0,A??0)}function TR(g){return g>=0}function sk(g,A,I){return gI?g-I:0}const xR=9;function WY(g){return g[xR].toLowerCase()+g.slice(xR+1)}const r5=(g,A,I,C)=>{if(g.startsWith("scrollbarBorder")){if(g=WY(g),I(g)){C(g,A);return}i5(g,A,I,C)}},l5=(g,A,I,C)=>{if(g.startsWith("scrollbar")){if(g==="scrollbarOpacity"){C("backgroundOpacity",A);return}if(g==="scrollbarColor"){C("backgroundColor",A);return}if(g=WY(g),I(g)){C(g,A);return}WE(g,A,I,C)}};function El(g,A,I,C,B,i,Q,e,E){const t=Do(i,{castShadow:!1,receiveShadow:!1}),a=ri(mB.Panel,void 0,t,e),s=EQ(g,c5),r=EQ(g,D5,r5),l=_.useMemo(()=>xC(()=>{const h=r.value;return[(h==null?void 0:h("scrollbarBorderTop"))??0,(h==null?void 0:h("scrollbarBorderRight"))??0,(h==null?void 0:h("scrollbarBorderBottom"))??0,(h==null?void 0:h("scrollbarBorderLeft"))??0]}),[r]),D=g.length;vR(g,0,A,I,C,B,i,Q,a,E,s,l),vR(g,1,A,I,C,B,i,Q,a,E,s,l);const G=g.length;for(let h=D;h{const G=xC(()=>{const h=a.value;if(h!=null)return h5(A,h("scrollbarWidth")??10,C.size.value,C.maxScrollPosition.value,C.borderInset.value,I.value)});return[xC(()=>{var h;return((h=G.value)==null?void 0:h.slice(0,2))??[0,0]}),xC(()=>{var h;return((h=G.value)==null?void 0:h.slice(2,4))??[0,0]})]},[A,C,I,a]),D=_.useMemo(()=>({materialClass:Q??UC,receiveShadow:!1,castShadow:!1}),[Q]);ho(g,B,l,r,s,i,E,e,D,l5,t)}function h5(g,A,I,C,B,i){const Q=[0,0,0,0],e=C[g];if(e==null)return Q;const E=1-g,t=I[g]-B[E]-B[E+2],a=Math.max(A,t*t/(e+t)),s=t-a,r=i[g];return Q[g]=I[g]*.5-a*.5-B[(g+3)%4]-s*rd(r/e,0,1),Q[E]=I[E]*.5-A*.5-B[E+1],g===0&&(Q[0]*=-1,Q[1]*=-1),Q[g+2]=a,Q[E+2]=A,Q}function jE(g,A,I,C){_.useImperativeHandle(g,()=>({borderInset:A.borderInset,paddingInset:A.paddingInset,pixelSize:A.pixelSize,center:A.relativeCenter,size:A.size,interactionPanel:I instanceof lg?I:I.current,scrollPosition:C}),[I,A,C])}function VE({onSizeChange:g},A){const I=_.useMemo(()=>{if(g==null)return;let C=!0;return Rg(()=>{const B=A.value;if(C){C=!1;return}g(...B)})},[g,A]);_.useEffect(()=>I,[I])}function wo({onIsInViewportChange:g},A){const I=_.useMemo(()=>{if(g==null)return;let C=!0;return Rg(()=>{const B=!A.value;if(C){C=!1;return}g(B)})},[A,g]);_.useEffect(()=>I,[I])}function So(g){const A=_.useContext(jY);return _.useMemo(()=>xC(()=>{const I=g.value,C=A.value;if(!(I==null||C==null))return C.clone().multiply(I)}),[g,A])}const jY=_.createContext(null),w5=jY.Provider;function tl({globalMatrix:g,node:A,scrollPosition:I,children:C,orderInfo:B}){const i=Me(),Q=j8(g,A.size,A.borderInset,A.overflow,A,i),e=o5(I,A,g);return JA.jsx(n5,{node:A,scrollPosition:I,children:JA.jsx(w5,{value:e,children:JA.jsx(sd,{value:A,children:JA.jsx(P8,{value:Q,children:JA.jsx(tj,{value:B,children:C})})})})})}const VY="transformTranslateX",XY="transformTranslateY",zY="transformTranslateZ",$Y="transformRotateX",AH="transformRotateY",IH="transformRotateZ",gH="transformScaleX",CH="transformScaleY",BH="transformScaleZ",S5=[VY,XY,zY,$Y,AH,IH,gH,CH,BH],G5=new O,y5=new O,GD=new O,$y=new dI,u5=new LQ,k5=new Pg,A0=Math.PI/180;function M5([g,A,I]){return k5.setFromEuler(u5.set(g*A0,A*A0,I*A0))}function XE(g,A){const I=EQ(g,S5,t5);return _.useMemo(()=>xC(()=>{const C=I.value;if(C==null)return;const{pixelSize:B,relativeCenter:i}=A,[Q,e]=i.value,E=new dI().makeTranslation(Q*B,e*B,0),t=C("transformOriginX")??"center",a=C("transformOriginY")??"center";let s=!0;if(t!="center"||a!="center"){const[G,h]=A.size.value;s=!1,GD.set(-hY[t]*G*B,-wY[a]*h*B,0),E.multiply($y.makeTranslation(GD)),GD.negate()}const r=[C($Y)??0,C(AH)??0,C(IH)??0],l=[C(VY)??0,-(C(XY)??0),C(zY)??0],D=[C(gH)??1,C(CH)??1,C(BH)??1];return(l.some(G=>G!=0)||r.some(G=>G!=0)||D.some(G=>G!=1))&&E.multiply($y.compose(G5.fromArray(l).multiplyScalar(B),M5(r),y5.fromArray(D))),s||E.multiply($y.makeTranslation(GD)),E}),[I,A])}function zE(g,A){const I=_.useMemo(()=>fg([]),[]),C=_.useMemo(()=>gE(()=>I.value.length>0),[]);let B=!1;if(Bl(A,Q=>{Q.active!=null&&(B=!0,C(g,Q.active))}),!B&&A.onActiveChange==null){I.value.length=0;return}const i=Q=>{I.value=I.value.filter(e=>e!=Q.pointerId),!(A.onActiveChange==null||I.value.length>0)&&A.onActiveChange(!1)};return{onPointerDown:Q=>{I.value=[Q.pointerId,...I.value],!(A.onActiveChange==null||I.value.length!=1)&&A.onActiveChange(!0)},onPointerUp:i,onPointerLeave:i}}const d5=_.forwardRef((g,A)=>{const I=TE(),C=_.useRef(null),B=co(C);HQ(I,B,PE);const i=XE(I,B),Q=So(i),e=Me(),E=ro(e,Q,B.size,B);VE(g,B.size),wo(g,E);const t=Do(g.panelMaterialClass,g),a=ri(mB.Panel,g.zIndexOffset,t);ho(I,Q,B.size,void 0,B.borderInset,E,a,e,t,WE);const s=_.useRef(null),r=so(),l=ri(mB.Object,void 0,void 0,a),D=N5(I,s,r,B.cameraDistance,e,l);vE(I,g),bE(I,g),OE(I,g);const G=ZE(I,g),h=zE(I,g),c=_.useMemo(()=>xC(()=>{const[k,f]=D.value;return k/f}),[D]);(g.keepAspectRatio??!0)&&JQ(I,"aspectRatio",c),xE(I);const y=_.useRef(null);_.useEffect(()=>Rg(()=>{const[k,f]=B.size.value,[d,N,q,P]=B.paddingInset.value,[U,K,X,wA]=B.borderInset.value,z=d+U,lA=N+K,aA=q+X,SA=P+wA,b=k-SA-lA,BA=f-z-aA,{pixelSize:gA}=B,{current:hA}=y;hA==null||hA.position.set((SA-lA)*.5*gA,(aA-z)*.5*gA,0);const[,NA,WA]=D.value;hA==null||hA.scale.set(b*gA,BA*gA,g.keepAspectRatio?BA*gA*WA/NA:WA),hA==null||hA.updateMatrix()}),[B,g.keepAspectRatio,D]);const S=Sa(B.size,B,a,r);return jE(A,B,S),JA.jsxs(_E,{groupRef:C,matrix:i,handlers:g,hoverHandlers:G,activeHandlers:h,children:[JA.jsx("primitive",{object:S}),JA.jsx("group",{matrixAutoUpdate:!1,ref:y,children:JA.jsx("group",{ref:s,matrixAutoUpdate:!1,children:JA.jsx(sd,{value:void 0,children:g.children})})})]})}),I0=new sC,p5=new O().setScalar(.001),U5=["depthAlign"];function N5(g,A,I,C,B,i){const Q=_.useMemo(()=>fg(new O(1,1,1)),[]),e=il(B,I),E=EQ(g,U5);return _.useEffect(()=>{const t=A.current;if(t==null)return;t.traverse(l=>{l instanceof lg&&(lo(l,C,i),l.material.clippingPlanes=e,l.material.needsUpdate=!0,l.raycast=wa(l,l.raycast,I,B,i))});const a=t.parent;a==null||a.remove(t),I0.setFromObject(t);const s=new O,r=new O;return I0.getSize(s).max(p5),Q.value=s,t.scale.set(1,1,1).divide(s),a!=null&&a.add(t),I0.getCenter(r),Rg(()=>{const l=E.value;l!=null&&(t.position.copy(r).negate(),t.position.z-=Y8[l("depthAlign")??"back"]*s.z,t.position.divide(s),t.updateMatrix())})},[E,C,e,I]),Q}const qC=_.forwardRef((g,A)=>{const I=TE(),C=_.useRef(null),B=co(C);HQ(I,B,PE);const i=XE(I,B),Q=Me(),e=So(i),E=ro(Q,e,B.size,B),t=Do(g.panelMaterialClass,g),a=ri(mB.Panel,g.zIndexOffset,t);ho(I,e,B.size,void 0,B.borderInset,E,a,Q,t,WE);const s=Ql();El(I,s,B,e,E,g.scrollbarPanelMaterialClass,Q,a),vE(I,g),bE(I,g),OE(I,g);const r=ZE(I,g),l=zE(I,g);xE(I),VE(g,B.size),wo(g,E);const D=so(),G=Sa(B.size,B,a,D);return jE(A,B,G,s),JA.jsxs(_E,{groupRef:C,matrix:i,handlers:g,hoverHandlers:r,activeHandlers:l,children:[JA.jsx(el,{listeners:g,node:B,scrollPosition:s,children:JA.jsx("primitive",{object:G})}),JA.jsx(tl,{globalMatrix:e,node:B,orderInfo:a,scrollPosition:s,children:g.children})]})});_.forwardRef((g,A)=>{const I=TE(),C=_.useRef(null),B=co(C);HQ(I,B,PE);const i=XE(I,B),Q=Me(),e=so(),E=il(Q,e),t=ri(mB.Custom,g.zIndexOffset,void 0),a=_.useRef(null),s=So(i),r=ro(Q,s,B.size,B);_.useEffect(()=>{const G=a.current;if(G==null)return;G.raycast=wa(G,G.raycast,e,Q,t),lo(G,B.cameraDistance,t),G.material instanceof hC&&(G.material.clippingPlanes=E,G.material.needsUpdate=!0,G.material.shadowSide=si);const h=Rg(()=>{const[y,S]=B.size.value;G.scale.set(y*B.pixelSize,S*B.pixelSize,1),G.updateMatrix()}),c=Rg(()=>void(G.visible=!r.value));return()=>{h(),c()}},[E,B,r,Q,t,e]),vE(I,g),bE(I,g),OE(I,g);const l=ZE(I,g),D=zE(I,g);return xE(I),VE(g,B.size),wo(g,r),jE(A,B,a),JA.jsx(_E,{groupRef:C,matrix:i,handlers:g,hoverHandlers:l,activeHandlers:D,children:JA.jsx("mesh",{receiveShadow:g.receiveShadow,castShadow:g.castShadow,customDepthMaterial:g.customDepthMaterial,customDistanceMaterial:g.customDistanceMaterial,ref:a,matrixAutoUpdate:!1,geometry:ld,children:JA.jsx(sd,{value:void 0,children:g.children})})})});const F5="fill",f5=(g,A,I,C)=>{if(g==="opacity"){C("backgroundOpacity",A);return}WE(g,A,I,C)},iH=_.forwardRef((g,A)=>{const I=TE(),C=SY(q5,g.src),B=_.useMemo(()=>xC(()=>{const S=C.value;if(S==null)return;const k=S.source.data;return k.width/k.height}),[C]),i=_.useRef(null),Q=co(i);HQ(I,Q,PE),K5(I,C,Q.borderInset,Q.size);const e=XE(I,Q),E=Me(),t=so(),a=il(E,t),s=So(e),r=ro(E,s,Q.size,Q),l=I5(I,Q.size,Q.borderInset,r,g.materialClass,a,f5),D=ri(mB.Image,g.zIndexOffset,void 0),G=_.useMemo(()=>{const[S,k,f]=l,d=new lg(ld,S);return d.matrixAutoUpdate=!1,d.castShadow=g.castShadow??!1,d.receiveShadow=g.receiveShadow??!1,d.customDepthMaterial=k,d.customDistanceMaterial=f,d.raycast=wa(d,KY(d),t,E,D),lo(d,Q.cameraDistance,D),d},[Q,l,t,E,D,g.receiveShadow,g.castShadow]),h=Ql();El(I,h,Q,s,r,g.scrollbarPanelMaterialClass,E,D),vE(I,g),bE(I,g),OE(I,g);const c=ZE(I,g),y=zE(I,g);return JQ(I,"backgroundColor",16777215),(g.keepAspectRatio??!0)&&JQ(I,"aspectRatio",B),xE(I),VE(g,Q.size),wo(g,r),GB(()=>{const S=C.value??null;G.material.map!==S&&(G.material.map=S,G.material.needsUpdate=!0)},[G,C]),GB(()=>{const[S,k]=Q.size.value;G.scale.set(S*Q.pixelSize,k*Q.pixelSize,1),G.updateMatrix()},[G]),GB(()=>void(G.visible=!r.value),[G,r]),jE(A,Q,G,h),JA.jsxs(_E,{groupRef:i,hoverHandlers:c,handlers:g,matrix:e,activeHandlers:y,children:[JA.jsx(el,{listeners:g,node:Q,scrollPosition:h,children:JA.jsx("primitive",{object:G})}),JA.jsx(tl,{globalMatrix:s,node:Q,orderInfo:D,scrollPosition:h,children:g.children})]})}),R5=["fit"];function K5(g,A,I,C){const B=EQ(g,R5);GB(()=>{const i=B.value,Q=A.value;if(Q==null||i==null)return;const e=i("fit")??F5;if(Q.matrix.identity(),e==="fill"||Q==null){bR(I,C,Q);return}const{width:E,height:t}=Q.source.data,a=E/t,[s,r]=C.value,[l,D,G,h]=I.value,c=(s-h-D)/(r-l-G);a>c?Q.matrix.translate(-(.5*(c-a))/c,0).scale(c/a,1):Q.matrix.translate(0,-(.5*(a-c))/a).scale(1,a/c),bR(I,C,Q)},[A,I,C])}function bR(g,A,I){const[C,B]=A.value,[i,Q,e,E]=g.value,t=C-E-Q,a=B-i-e;I.matrix.translate(-1+(E+t)/C,-1+(i+a)/B).scale(C/t,B/a)}const J5=new mw;async function q5(g){if(g==null)return Promise.resolve(void 0);if(g instanceof Lg)return Promise.resolve(g);try{const A=await J5.loadAsync(g);return A.colorSpace=cC,A.matrixAutoUpdate=!1,A}catch(A){console.error(A);return}}function Ae(g,A,I){if(A==null)return I;const C=g[A];if(C==null)throw new Error(`unexpected value ${A}, expected ${Object.keys(g).join(", ")}`);return C}function xg(g,A,I){return typeof g=="number"?Math.round(g/A):g??I}const m5={static:0,relative:1,absolute:2},g0={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},L5={column:0,"column-reverse":1,row:2,"row-reverse":3},Y5={"no-wrap":0,wrap:1,"wrap-reverse":2},H5={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},T5={visible:0,hidden:1,scroll:2},x5={flex:0,none:1},OR={positionType:(g,A,I)=>g.setPositionType(Ae(m5,I,0)),positionTop:(g,A,I)=>g.setPosition(1,xg(I,A,NaN)),positionLeft:(g,A,I)=>g.setPosition(0,xg(I,A,NaN)),positionRight:(g,A,I)=>g.setPosition(2,xg(I,A,NaN)),positionBottom:(g,A,I)=>g.setPosition(3,xg(I,A,NaN)),alignContent:(g,A,I)=>g.setAlignContent(Ae(g0,I,1)),alignItems:(g,A,I)=>g.setAlignItems(Ae(g0,I,4)),alignSelf:(g,A,I)=>g.setAlignSelf(Ae(g0,I,0)),flexDirection:(g,A,I)=>g.setFlexDirection(Ae(L5,I,0)),flexWrap:(g,A,I)=>g.setFlexWrap(Ae(Y5,I,0)),justifyContent:(g,A,I)=>g.setJustifyContent(Ae(H5,I,0)),marginTop:(g,A,I)=>g.setMargin(1,xg(I,A,NaN)),marginLeft:(g,A,I)=>g.setMargin(0,xg(I,A,NaN)),marginRight:(g,A,I)=>g.setMargin(2,xg(I,A,NaN)),marginBottom:(g,A,I)=>g.setMargin(3,xg(I,A,NaN)),flexBasis:(g,A,I)=>g.setFlexBasis(xg(I,A,NaN)),flexGrow:(g,A,I)=>g.setFlexGrow(I??0),flexShrink:(g,A,I)=>g.setFlexShrink(I??0),width:(g,A,I)=>g.setWidth(xg(I,A,NaN)),height:(g,A,I)=>g.setHeight(xg(I,A,NaN)),minWidth:(g,A,I)=>g.setMinWidth(xg(I,A,NaN)),minHeight:(g,A,I)=>g.setMinHeight(xg(I,A,NaN)),maxWidth:(g,A,I)=>g.setMaxWidth(xg(I,A,NaN)),maxHeight:(g,A,I)=>g.setMaxHeight(xg(I,A,NaN)),aspectRatio:(g,A,I)=>g.setAspectRatio(I??NaN),borderTop:(g,A,I)=>g.setBorder(1,xg(I,A,NaN)),borderLeft:(g,A,I)=>g.setBorder(0,xg(I,A,NaN)),borderRight:(g,A,I)=>g.setBorder(2,xg(I,A,NaN)),borderBottom:(g,A,I)=>g.setBorder(3,xg(I,A,NaN)),overflow:(g,A,I)=>g.setOverflow(Ae(T5,I,0)),display:(g,A,I)=>g.setDisplay(Ae(x5,I,0)),paddingTop:(g,A,I)=>g.setPadding(1,xg(I,A,NaN)),paddingLeft:(g,A,I)=>g.setPadding(0,xg(I,A,NaN)),paddingRight:(g,A,I)=>g.setPadding(2,xg(I,A,NaN)),paddingBottom:(g,A,I)=>g.setPadding(3,xg(I,A,NaN)),gapRow:(g,A,I)=>g.setGap(1,xg(I,A,NaN)),gapColumn:(g,A,I)=>g.setGap(0,xg(I,A,NaN))};function v5(g,A){return g.L===A.L}function b5(g,A,I){if(I==null){g.setMeasureFunc(null);return}g.setMeasureFunc((C,B,i,Q)=>{const e=I(C*A,B,i*A,Q);return{width:Math.ceil(Math.ceil(e.width)/A),height:Math.ceil(Math.ceil(e.height)/A)}}),g.markDirty()}class cd{constructor(A,I,C,B,i,Q,e){EI(this,"size",fg([0,0]));EI(this,"relativeCenter",fg([0,0]));EI(this,"borderInset",fg([0,0,0,0]));EI(this,"paddingInset",fg([0,0,0,0]));EI(this,"overflow",fg(FB.Overflow.Visible));EI(this,"maxScrollPosition",fg([void 0,void 0]));EI(this,"scrollable",fg([!1,!1]));EI(this,"children",[]);EI(this,"yogaNode");EI(this,"unsubscribeYoga");EI(this,"layoutChangeListeners",new Set);EI(this,"requestCalculateLayout");EI(this,"active",fg(!1));this.groupRef=A,this.cameraDistance=I,this.yoga=C,this.precision=B,this.pixelSize=i,this.anyAncestorScrollable=e,this.requestCalculateLayout=()=>Q(this),this.unsubscribeYoga=Rg(()=>{var E;C.value!=null&&((E=this.unsubscribeYoga)==null||E.call(this),this.unsubscribeYoga=void 0,this.yogaNode=C.value.Node.create(),this.active.value=!0)})}setProperty(A,I){A==="measureFunc"?b5(this.yogaNode,this.precision,I):OR[A](this.yogaNode,this.precision,I),this.requestCalculateLayout()}hasImmediateProperty(A){return A==="measureFunc"?!0:A in OR}destroy(){var A,I;(A=this.unsubscribeYoga)==null||A.call(this),(I=this.yogaNode)==null||I.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),EY(()=>this.updateMeasurements(void 0,void 0)))}createChild(A){return new cd(A,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,xC(()=>{var e;const[C,B]=((e=this.anyAncestorScrollable)==null?void 0:e.value)??[!1,!1],[i,Q]=this.scrollable.value;return[C||i,B||Q]}))}addChild(A){this.requestCalculateLayout(),this.children.push(A)}removeChild(A){const I=this.children.indexOf(A);I!==-1&&(this.children.splice(I,1),this.requestCalculateLayout())}commit(){var Q;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let A;this.children.sort((e,E)=>{var l,D;if(A??(A=(D=(l=e.groupRef.current)==null?void 0:l.parent)==null?void 0:D.children),A==null)return 0;const t=e.groupRef.current,a=E.groupRef.current;if(t==null||a==null)return 0;const s=A.indexOf(t);if(s===-1)throw new Error("parent mismatch");const r=A.indexOf(a);if(r===-1)throw new Error("parent mismatch");return s-r});let I=0,C=this.yogaNode.getChild(I),B=this.children[I];for(;B!=null||C!=null;){if(B!=null&&C!=null&&v5(C,ZR(B.yogaNode))){B=this.children[++I],C=this.yogaNode.getChild(I);continue}if(C!=null&&this.yogaNode.removeChild(C),B!=null){const e=ZR(B.yogaNode);(Q=e.getParent())==null||Q.removeChild(e),this.yogaNode.insertChild(e,I),B=this.children[++I]}C=this.yogaNode.getChild(I)}const i=this.children.length;for(let e=0;e0,q>0)}else En(this.maxScrollPosition,void 0,void 0),En(this.scrollable,!1,!1);const k=this.overflow.value===FB.Overflow.Visible;return[i+Math.max(C,k?y:0),Q+Math.max(B,k?S:0)]}addLayoutChangeListener(A){return this.layoutChangeListeners.add(A),()=>void this.layoutChangeListeners.delete(A)}}function En(g,A,I){const[C,B]=g.value;C===A&&B===I||(g.value=[A,I])}function _R(g,A,I,C,B){const[i,Q,e,E]=g.value;i==A&&Q==I&&e==C&&E==B||(g.value=[A,I,C,B])}function ZR(g){if(g==null)throw new Error("commit cannot be called with a children that miss a yoga node");return g}const O5=.1,QH=.002,yD=new Jg,PR=new O,Dd=_.forwardRef((g,A)=>{const I=TE(),C=QB(q=>q.gl);_.useEffect(()=>ej(C),[C]);const{sizeX:B,sizeY:i}=g,[Q,e]=_.useMemo(()=>[g.precision??O5,g.pixelSize??QH],[]),E=H8(),t=_.useMemo(()=>({current:0}),[]),a=_.useRef(null),s=mj(),r=_.useMemo(()=>new cd(a,t,E,Q,e,s,void 0),[s,a,E]);HQ(I,r,PE),_.useEffect(()=>()=>r.destroy(),[r]);const l=XE(I,r),D=_.useMemo(()=>{const q=new KB;return q.matrixAutoUpdate=!1,q},[]),G=g5(e,r.cameraDistance,D),h=Gj(e,r.cameraDistance,D),c=Do(g.panelMaterialClass,g),y=ri(mB.Panel,void 0,c),S=Z5(l,r.size,e,g),k=Ql();El(I,k,r,S,void 0,g.scrollbarPanelMaterialClass,void 0,y,G),ho(I,S,r.size,void 0,r.borderInset,void 0,y,void 0,c,WE,G),vE(I,g),bE(I,g),OE(I,g,r.size);const f=ZE(I,g),d=zE(I,g);JQ(I,"width",WR(B,e)),JQ(I,"height",WR(i,e)),xE(I),VE(g,r.size);const N=Sa(r.size,r,y,a);return jE(A,r,N,k),NC(({camera:q})=>{yD.normal.set(0,0,1),yD.constant=0,yD.applyMatrix4(N.matrixWorld),PR.setFromMatrixPosition(q.matrixWorld),t.current=yD.distanceToPoint(PR)}),JA.jsxs(JA.Fragment,{children:[JA.jsx("primitive",{object:D}),JA.jsx(_E,{groupRef:a,matrix:S,handlers:g,hoverHandlers:f,activeHandlers:d,children:JA.jsx(T8,{value:a,children:JA.jsx(Sj,{value:h,children:JA.jsxs(C5,{value:G,children:[JA.jsx(el,{node:r,scrollPosition:k,listeners:g,children:JA.jsx("primitive",{object:N})}),JA.jsx(Jj,{value:r.size,children:JA.jsx(tl,{globalMatrix:S,node:r,orderInfo:y,scrollPosition:k,children:g.children})})]})})})})]})});function WR(g,A){return _.useMemo(()=>g===void 0?void 0:g instanceof wC?xC(()=>{const I=g.value;if(I!=null)return I/A}):g/A,[g,A])}const _5=new dI;function Z5(g,A,I,{anchorX:C="center",anchorY:B="center"}){return _.useMemo(()=>xC(()=>{var e;const[i,Q]=A.value;return(e=g.value)==null?void 0:e.clone().premultiply(_5.makeTranslation(hY[C]*i*I,wY[B]*Q*I,0))}),[g,A,C,B,I])}const P5=cC;class Ga extends EB{constructor(A){super(A),this.defaultDPI=90,this.defaultUnit="px"}load(A,I,C,B){const i=this,Q=new jB(i.manager);Q.setPath(i.path),Q.setRequestHeader(i.requestHeader),Q.setWithCredentials(i.withCredentials),Q.load(A,function(e){try{I(i.parse(e))}catch(E){B?B(E):console.error(E),i.manager.itemError(A)}},C,B)}parse(A){const I=this;function C(j,x){if(j.nodeType!==1)return;const Y=k(j);let T=!1,tA=null;switch(j.nodeName){case"svg":x=D(j,x);break;case"style":i(j);break;case"g":x=D(j,x);break;case"path":x=D(j,x),j.hasAttribute("d")&&(tA=B(j));break;case"rect":x=D(j,x),tA=E(j);break;case"polygon":x=D(j,x),tA=t(j);break;case"polyline":x=D(j,x),tA=a(j);break;case"circle":x=D(j,x),tA=s(j);break;case"ellipse":x=D(j,x),tA=r(j);break;case"line":x=D(j,x),tA=l(j);break;case"defs":T=!0;break;case"use":x=D(j,x);const FA=(j.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),W=j.viewportElement.getElementById(FA);W?C(W,x):console.warn("SVGLoader: 'use node' references non-existent node id: "+FA);break}tA&&(x.fill!==void 0&&x.fill!=="none"&&tA.color.setStyle(x.fill,P5),d(tA,hA),X.push(tA),tA.userData={node:j,style:x});const dA=j.childNodes;for(let EA=0;EA0?hA.copy(z[z.length-1]):hA.identity())}function B(j){const x=new We,Y=new qA,T=new qA,tA=new qA;let dA=!0,EA=!1;const FA=j.getAttribute("d");if(FA===""||FA==="none")return null;const W=FA.match(/[a-df-z][^a-df-z]*/ig);for(let UA=0,eA=W.length;UA0&&(Y.copy(tA),x.currentPath.currentPoint.copy(Y),dA=!0);break;default:console.warn(DA)}EA=!1}return x}function i(j){if(!(!j.sheet||!j.sheet.cssRules||!j.sheet.cssRules.length))for(let x=0;xtA.trim());for(let tA=0;tAEA!==""));wA[T[tA]]=Object.assign(wA[T[tA]]||{},dA)}}}function Q(j,x,Y,T,tA,dA,EA,FA){if(x==0||Y==0){j.lineTo(FA.x,FA.y);return}T=T*Math.PI/180,x=Math.abs(x),Y=Math.abs(Y);const W=(EA.x-FA.x)/2,UA=(EA.y-FA.y)/2,eA=Math.cos(T)*W+Math.sin(T)*UA,DA=-Math.sin(T)*W+Math.cos(T)*UA;let GA=x*x,bA=Y*Y;const QA=eA*eA,F=DA*DA,m=QA/GA+F/bA;if(m>1){const PA=Math.sqrt(m);x=PA*x,Y=PA*Y,GA=x*x,bA=Y*Y}const cA=GA*F+bA*QA,ZA=(GA*bA-cA)/cA;let OA=Math.sqrt(Math.max(0,ZA));tA===dA&&(OA=-OA);const YA=OA*x*DA/Y,eI=-OA*Y*eA/x,CI=Math.cos(T)*YA-Math.sin(T)*eI+(EA.x+FA.x)/2,aI=Math.sin(T)*YA+Math.cos(T)*eI+(EA.y+FA.y)/2,SI=e(1,0,(eA-YA)/x,(DA-eI)/Y),fI=e((eA-YA)/x,(DA-eI)/Y,(-eA-YA)/x,(-DA-eI)/Y)%(Math.PI*2);j.currentPath.absellipse(CI,aI,x,Y,SI,SI+fI,dA===0,T)}function e(j,x,Y,T){const tA=j*Y+x*T,dA=Math.sqrt(j*j+x*x)*Math.sqrt(Y*Y+T*T);let EA=Math.acos(Math.max(-1,Math.min(1,tA/dA)));return j*T-x*Y<0&&(EA=-EA),EA}function E(j){const x=S(j.getAttribute("x")||0),Y=S(j.getAttribute("y")||0),T=S(j.getAttribute("rx")||j.getAttribute("ry")||0),tA=S(j.getAttribute("ry")||j.getAttribute("rx")||0),dA=S(j.getAttribute("width")),EA=S(j.getAttribute("height")),FA=1-.551915024494,W=new We;return W.moveTo(x+T,Y),W.lineTo(x+dA-T,Y),(T!==0||tA!==0)&&W.bezierCurveTo(x+dA-T*FA,Y,x+dA,Y+tA*FA,x+dA,Y+tA),W.lineTo(x+dA,Y+EA-tA),(T!==0||tA!==0)&&W.bezierCurveTo(x+dA,Y+EA-tA*FA,x+dA-T*FA,Y+EA,x+dA-T,Y+EA),W.lineTo(x+T,Y+EA),(T!==0||tA!==0)&&W.bezierCurveTo(x+T*FA,Y+EA,x,Y+EA-tA*FA,x,Y+EA-tA),W.lineTo(x,Y+tA),(T!==0||tA!==0)&&W.bezierCurveTo(x,Y+tA*FA,x+T*FA,Y,x+T,Y),W}function t(j){function x(dA,EA,FA){const W=S(EA),UA=S(FA);tA===0?T.moveTo(W,UA):T.lineTo(W,UA),tA++}const Y=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,T=new We;let tA=0;return j.getAttribute("points").replace(Y,x),T.currentPath.autoClose=!0,T}function a(j){function x(dA,EA,FA){const W=S(EA),UA=S(FA);tA===0?T.moveTo(W,UA):T.lineTo(W,UA),tA++}const Y=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,T=new We;let tA=0;return j.getAttribute("points").replace(Y,x),T.currentPath.autoClose=!1,T}function s(j){const x=S(j.getAttribute("cx")||0),Y=S(j.getAttribute("cy")||0),T=S(j.getAttribute("r")||0),tA=new wE;tA.absarc(x,Y,T,0,Math.PI*2);const dA=new We;return dA.subPaths.push(tA),dA}function r(j){const x=S(j.getAttribute("cx")||0),Y=S(j.getAttribute("cy")||0),T=S(j.getAttribute("rx")||0),tA=S(j.getAttribute("ry")||0),dA=new wE;dA.absellipse(x,Y,T,tA,0,Math.PI*2);const EA=new We;return EA.subPaths.push(dA),EA}function l(j){const x=S(j.getAttribute("x1")||0),Y=S(j.getAttribute("y1")||0),T=S(j.getAttribute("x2")||0),tA=S(j.getAttribute("y2")||0),dA=new We;return dA.moveTo(x,Y),dA.lineTo(T,tA),dA.currentPath.autoClose=!1,dA}function D(j,x){x=Object.assign({},x);let Y={};if(j.hasAttribute("class")){const EA=j.getAttribute("class").split(/\s/).filter(Boolean).map(FA=>FA.trim());for(let FA=0;FA0&&x.premultiply(z[z.length-1]),hA.copy(x),z.push(x),x}function f(j){const x=new PI,Y=lA;if(j.nodeName==="use"&&(j.hasAttribute("x")||j.hasAttribute("y"))){const T=S(j.getAttribute("x")),tA=S(j.getAttribute("y"));x.translate(T,tA)}if(j.hasAttribute("transform")){const T=j.getAttribute("transform").split(")");for(let tA=T.length-1;tA>=0;tA--){const dA=T[tA].trim();if(dA==="")continue;const EA=dA.indexOf("("),FA=dA.length;if(EA>0&&EA=1){const eA=UA[0];let DA=0;UA.length>=2&&(DA=UA[1]),Y.translate(eA,DA)}break;case"rotate":if(UA.length>=1){let eA=0,DA=0,GA=0;eA=UA[0]*Math.PI/180,UA.length>=3&&(DA=UA[1],GA=UA[2]),aA.makeTranslation(-DA,-GA),SA.makeRotation(eA),b.multiplyMatrices(SA,aA),aA.makeTranslation(DA,GA),Y.multiplyMatrices(aA,b)}break;case"scale":if(UA.length>=1){const eA=UA[0];let DA=eA;UA.length>=2&&(DA=UA[1]),Y.scale(eA,DA)}break;case"skewX":UA.length===1&&Y.set(1,Math.tan(UA[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":UA.length===1&&Y.set(1,0,0,Math.tan(UA[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":UA.length===6&&Y.set(UA[0],UA[2],UA[4],UA[1],UA[3],UA[5],0,0,1);break}}x.premultiply(Y)}}return x}function d(j,x){function Y(EA){gA.set(EA.x,EA.y,1).applyMatrix3(x),EA.set(gA.x,gA.y)}function T(EA){const FA=EA.xRadius,W=EA.yRadius,UA=Math.cos(EA.aRotation),eA=Math.sin(EA.aRotation),DA=new O(FA*UA,FA*eA,0),GA=new O(-W*eA,W*UA,0),bA=DA.applyMatrix3(x),QA=GA.applyMatrix3(x),F=lA.set(bA.x,QA.x,0,bA.y,QA.y,0,0,0,1),m=aA.copy(F).invert(),OA=SA.copy(m).transpose().multiply(m).elements,YA=K(OA[0],OA[1],OA[4]),eI=Math.sqrt(YA.rt1),CI=Math.sqrt(YA.rt2);if(EA.xRadius=1/eI,EA.yRadius=1/CI,EA.aRotation=Math.atan2(YA.sn,YA.cs),!((EA.aEndAngle-EA.aStartAngle)%(2*Math.PI){const{x:kI,y:tI}=new O(Math.cos(LI),Math.sin(LI),0).applyMatrix3(PA);return Math.atan2(tI,kI)};EA.aStartAngle=bI(EA.aStartAngle),EA.aEndAngle=bI(EA.aEndAngle),N(x)&&(EA.aClockwise=!EA.aClockwise)}}function tA(EA){const FA=P(x),W=U(x);EA.xRadius*=FA,EA.yRadius*=W;const UA=FA>Number.EPSILON?Math.atan2(x.elements[1],x.elements[0]):Math.atan2(-x.elements[3],x.elements[4]);EA.aRotation+=UA,N(x)&&(EA.aStartAngle*=-1,EA.aEndAngle*=-1,EA.aClockwise=!EA.aClockwise)}const dA=j.subPaths;for(let EA=0,FA=dA.length;EANumber.EPSILON}function P(j){const x=j.elements;return Math.sqrt(x[0]*x[0]+x[1]*x[1])}function U(j){const x=j.elements;return Math.sqrt(x[3]*x[3]+x[4]*x[4])}function K(j,x,Y){let T,tA,dA,EA,FA;const W=j+Y,UA=j-Y,eA=Math.sqrt(UA*UA+4*x*x);return W>0?(T=.5*(W+eA),FA=1/T,tA=j*FA*Y-x*FA*x):W<0?tA=.5*(W-eA):(T=.5*eA,tA=-.5*eA),UA>0?dA=UA+eA:dA=UA-eA,Math.abs(dA)>2*Math.abs(x)?(FA=-2*x/dA,EA=1/Math.sqrt(1+FA*FA),dA=FA*EA):Math.abs(x)===0?(dA=1,EA=0):(FA=-.5*dA/x,dA=1/Math.sqrt(1+FA*FA),EA=FA*dA),UA>0&&(FA=dA,dA=-EA,EA=FA),{rt1:T,rt2:tA,cs:dA,sn:EA}}const X=[],wA={},z=[],lA=new PI,aA=new PI,SA=new PI,b=new PI,BA=new qA,gA=new O,hA=new PI,NA=new DOMParser().parseFromString(A,"image/svg+xml");return C(NA.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:X,xml:NA.documentElement}}static createShapes(A){const C={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},B={loc:C.ORIGIN,t:0};function i(G,h,c,y){const S=G.x,k=h.x,f=c.x,d=y.x,N=G.y,q=h.y,P=c.y,U=y.y,K=(d-f)*(N-P)-(U-P)*(S-f),X=(k-S)*(N-P)-(q-N)*(S-f),wA=(U-P)*(k-S)-(d-f)*(q-N),z=K/wA,lA=X/wA;if(wA===0&&K!==0||z<=0||z>=1||lA<0||lA>1)return null;if(K===0&&wA===0){for(let aA=0;aA<2;aA++)if(Q(aA===0?c:y,G,h),B.loc==C.ORIGIN){const SA=aA===0?c:y;return{x:SA.x,y:SA.y,t:B.t}}else if(B.loc==C.BETWEEN){const SA=+(S+B.t*(k-S)).toPrecision(10),b=+(N+B.t*(q-N)).toPrecision(10);return{x:SA,y:b,t:B.t}}return null}else{for(let b=0;b<2;b++)if(Q(b===0?c:y,G,h),B.loc==C.ORIGIN){const BA=b===0?c:y;return{x:BA.x,y:BA.y,t:B.t}}const aA=+(S+z*(k-S)).toPrecision(10),SA=+(N+z*(q-N)).toPrecision(10);return{x:aA,y:SA,t:z}}}function Q(G,h,c){const y=c.x-h.x,S=c.y-h.y,k=G.x-h.x,f=G.y-h.y,d=y*f-k*S;if(G.x===h.x&&G.y===h.y){B.loc=C.ORIGIN,B.t=0;return}if(G.x===c.x&&G.y===c.y){B.loc=C.DESTINATION,B.t=1;return}if(d<-Number.EPSILON){B.loc=C.LEFT;return}if(d>Number.EPSILON){B.loc=C.RIGHT;return}if(y*k<0||S*f<0){B.loc=C.BEHIND;return}if(Math.sqrt(y*y+S*S)U.t<=P.t+Number.EPSILON&&U.t>=P.t-Number.EPSILON)===void 0&&(c.push(P),y.push(new qA(P.x,P.y)))}}return y}function E(G,h,c){const y=new qA;h.getCenter(y);const S=[];return c.forEach(k=>{k.boundingBox.containsPoint(y)&&e(G,k.points).forEach(d=>{S.push({identifier:k.identifier,isCW:k.isCW,point:d})})}),S.sort((k,f)=>k.point.x-f.point.x),S}function t(G,h,c,y,S){(S==null||S==="")&&(S="nonzero");const k=new qA;G.boundingBox.getCenter(k);const f=[new qA(c,k.y),new qA(y,k.y)],d=E(f,G.boundingBox,h);d.sort((X,wA)=>X.point.x-wA.point.x);const N=[],q=[];d.forEach(X=>{X.identifier===G.identifier?N.push(X):q.push(X)});const P=N[0].point.x,U=[];let K=0;for(;K0&&U[U.length-1]===q[K].identifier?U.pop():U.push(q[K].identifier),K++;if(U.push(G.identifier),S==="evenodd"){const X=U.length%2===0,wA=U[U.length-2];return{identifier:G.identifier,isHole:X,for:wA}}else if(S==="nonzero"){let X=!0,wA=null,z=null;for(let lA=0;lA{const h=G.getPoints();let c=-999999999,y=999999999,S=-999999999,k=999999999;for(let f=0;fc&&(c=d.y),d.yS&&(S=d.x),d.x=k&&(a=k-1),{curves:G.curves,points:h,isCW:QQ.isClockWise(h),identifier:-1,boundingBox:new hL(new qA(k,y),new qA(S,c))}});r=r.filter(G=>G.points.length>1);for(let G=0;Gt(G,r,a,s,A.userData?A.userData.style.fillRule:void 0)),D=[];return r.forEach(G=>{if(!l[G.identifier].isHole){const c=new SE;c.curves=G.curves,l.filter(S=>S.isHole&&S.for===G.identifier).forEach(S=>{const k=r[S.identifier],f=new wE;f.curves=k.curves,c.holes.push(f)}),D.push(c)}}),D}static getStrokeStyle(A,I,C,B,i){return A=A!==void 0?A:1,I=I!==void 0?I:"#000",C=C!==void 0?C:"miter",B=B!==void 0?B:"butt",i=i!==void 0?i:4,{strokeColor:I,strokeWidth:A,strokeLineJoin:C,strokeLineCap:B,strokeMiterLimit:i}}static pointsToStroke(A,I,C,B){const i=[],Q=[],e=[];if(Ga.pointsToStrokeWithBuffers(A,I,C,B,i,Q,e)===0)return null;const E=new WI;return E.setAttribute("position",new GI(i,3)),E.setAttribute("normal",new GI(Q,3)),E.setAttribute("uv",new GI(e,2)),E}static pointsToStrokeWithBuffers(A,I,C,B,i,Q,e,E){const t=new qA,a=new qA,s=new qA,r=new qA,l=new qA,D=new qA,G=new qA,h=new qA,c=new qA,y=new qA,S=new qA,k=new qA,f=new qA,d=new qA,N=new qA,q=new qA,P=new qA;C=C!==void 0?C:12,B=B!==void 0?B:.001,E=E!==void 0?E:0,A=UA(A);const U=A.length;if(U<2)return 0;const K=A[0].equals(A[U-1]);let X,wA=A[0],z;const lA=I.strokeWidth/2,aA=1/(U-1);let SA=0,b,BA,gA,hA,NA=!1,WA=0,j=E*3,x=E*2;Y(A[0],A[1],t).multiplyScalar(lA),h.copy(A[0]).sub(t),c.copy(A[0]).add(t),y.copy(h),S.copy(c);for(let eA=1;eANumber.EPSILON){const bA=lA/GA;s.multiplyScalar(-bA),r.subVectors(X,wA),l.copy(r).setLength(bA).add(s),q.copy(l).negate();const QA=l.length(),F=r.length();r.divideScalar(F),D.subVectors(z,X);const m=D.length();switch(D.divideScalar(m),r.dot(q)=B&&GA.push(eA[bA]);return GA.push(eA[eA.length-1]),GA}}}const W5=new Ga,uD=new sC,Gt=new O;async function j5(g,A,I=UC,C,B,i,Q){const e=new KB;e.matrixAutoUpdate=!1;const E=await W5.loadAsync(g);uD.makeEmpty();for(const s of E.paths){const r=Ga.createShapes(s),l=new I;l.transparent=!0,l.depthWrite=!1,l.toneMapped=!1,l.clippingPlanes=C;for(const D of r){const G=new ca(D);G.computeBoundingBox(),uD.union(G.boundingBox);const h=new lg(G,l);h.matrixAutoUpdate=!1,h.raycast=wa(h,h.raycast,i,B,Q),lo(h,A,Q),h.userData.color=s.color,h.scale.y=-1,h.updateMatrix(),e.add(h)}}uD.getSize(Gt);const t=Gt.x/Gt.y,a=1/Gt.y;return e.scale.set(1,1,1).multiplyScalar(a),uD.getCenter(Gt),Gt.y*=-1,e.position.copy(Gt).negate().multiplyScalar(a),e.updateMatrix(),Object.assign(e,{aspectRatio:t})}const jR=new QI,V5=["color","opacity"];_.forwardRef((g,A)=>{const I=TE(),C=_.useRef(null),B=co(C);HQ(I,B,PE);const i=XE(I,B),Q=So(i),e=Me(),E=ro(e,Q,B.size,B),t=Do(g.panelMaterialClass,g),a=ri(mB.Panel,g.zIndexOffset,t);ho(I,Q,B.size,void 0,B.borderInset,E,a,e,t,WE);const s=so(),r=il(e,s),l=ri(mB.Svg,void 0,void 0,a),D=SY(j5,g.src,B.cameraDistance,g.materialClass,r,e,s,l),G=EQ(I,V5);GB(()=>{var U;const d=G.value;if(d==null)return;const N=d("color"),q=d("opacity");let P;Array.isArray(N)?P=jR.setRGB(...N):N!=null&&(P=jR.set(N)),(U=D.value)==null||U.traverse(K=>{if(!(K instanceof lg))return;K.receiveShadow=g.receiveShadow??!1,K.castShadow=g.castShadow??!1;const X=K.material;X.color.copy(P??K.userData.color),X.opacity=q??1})},[D,g.color,g.receiveShadow,g.castShadow]);const h=_.useMemo(()=>xC(()=>{var d;return(d=D.value)==null?void 0:d.aspectRatio}),[D]),c=Ql();El(I,c,B,Q,E,g.scrollbarPanelMaterialClass,e,l),vE(I,g),bE(I,g),OE(I,g);const y=ZE(I,g),S=zE(I,g);JQ(I,"aspectRatio",h),xE(I),VE(g,B.size),wo(g,E);const k=_.useMemo(()=>{const d=new KB;return d.matrixAutoUpdate=!1,d},[]);GB(()=>{var P;const[d,N,q]=GY(B.size,B.paddingInset,B.borderInset,B.pixelSize,((P=D.value)==null?void 0:P.aspectRatio)??1);k.position.set(d,N,0),k.scale.setScalar(q),k.updateMatrix()},[B,D]),GB(()=>{const d=D.value;if(d!=null)return k.add(d),()=>k.remove(d)},[D,k]),GB(()=>void(k.visible=!E.value),[]);const f=Sa(B.size,B,a,s);return jE(A,B,f,c),JA.jsxs(_E,{groupRef:C,matrix:i,handlers:g,hoverHandlers:y,activeHandlers:S,children:[JA.jsxs(el,{listeners:g,node:B,scrollPosition:c,children:[JA.jsx("primitive",{object:f}),JA.jsx("primitive",{object:k})]}),JA.jsx(tl,{globalMatrix:Q,node:B,orderInfo:l,scrollPosition:c,children:g.children})]})});const yQ=_.forwardRef((g,A)=>{const I=TE(),C=_.useRef(null),B=co(C);HQ(I,B,PE);const i=XE(I,B),Q=so(),e=So(i),E=Me(),t=ro(E,e,B.size,B);VE(g,B.size),wo(g,t);const a=Do(g.panelMaterialClass,g),s=ri(mB.Panel,g.zIndexOffset,a);ho(I,e,B.size,void 0,B.borderInset,t,s,E,a,WE);const r=ri(mB.Text,void 0,void 0,s),l=pj(I,g.children,e,B,t,E,r);vE(I,g),bE(I,g),OE(I,g);const D=ZE(I,g),G=zE(I,g);JQ(I,"measureFunc",l),xE(I);const h=Sa(B.size,B,s,Q);return jE(A,B,h),JA.jsx(_E,{groupRef:C,matrix:i,handlers:g,hoverHandlers:D,activeHandlers:G,children:JA.jsx("primitive",{object:h})})}),X5=_.forwardRef((g,A)=>{const I=Al(),C=g.pixelSize??QH,[B,i]=_.useMemo(()=>{const{width:t,height:a}=I.getState().size;return[fg(t*C),fg(a*C)]},[C,I]);_.useEffect(()=>{const t=a=>{EY(()=>{B.value=a.size.width*C,i.value=a.size.height*C})};return t(I.getState()),I.subscribe(t)},[C,B,i,I]);const Q=QB(t=>t.camera),e=_.useRef(null);NC(()=>{if(e.current==null)return;let t=1;Q instanceof dC&&(t=i.peek()/(2*Math.tan(Q.fov/360*Math.PI))),e.current.position.z=-t,e.current.updateMatrix()});const E=g.attachCamera??!0;return JA.jsxs(JA.Fragment,{children:[E&&JA.jsx("primitive",{object:Q}),Hw(JA.jsx("group",{ref:e,matrixAutoUpdate:!1,children:JA.jsx(Dd,{ref:A,...g,sizeX:B,sizeY:i,children:g.children})}),Q)]})}),VR=new QI,z5=["color","opacity"],$5=new Ga,eH=_.forwardRef((g,A)=>{const I=TE(),C=_.useRef(null),B=co(C);HQ(I,B,PE);const i=XE(I,B),Q=So(i),e=Me(),E=ro(e,Q,B.size,B),t=Do(g.panelMaterialClass,g),a=ri(mB.Panel,g.zIndexOffset,t);ho(I,Q,B.size,void 0,B.borderInset,E,a,e,t,WE);const s=so(),r=il(e,s),l=ri(mB.Svg,void 0,void 0,a),D=_.useMemo(()=>{const k=new KB;k.matrixAutoUpdate=!1;const f=$5.parse(g.text);for(const d of f.paths){const N=Ga.createShapes(d),q=new(g.materialClass??UC);q.transparent=!0,q.depthWrite=!1,q.toneMapped=!1,q.clippingPlanes=r;for(const P of N){const U=new ca(P);U.computeBoundingBox();const K=new lg(U,q);K.matrixAutoUpdate=!1,K.raycast=wa(K,K.raycast,s,e,l),lo(K,B.cameraDistance,l),K.userData.color=d.color,K.scale.y=-1,K.updateMatrix(),k.add(K)}}return k},[g.text,g.materialClass,r,s,e,B,l]),G=EQ(I,z5);GB(()=>{const k=G.value;if(k==null)return;const f=k("color"),d=k("opacity");let N;Array.isArray(f)?N=VR.setRGB(...f):f!=null&&(N=VR.set(f)),D.traverse(q=>{if(!(q instanceof lg))return;q.receiveShadow=g.receiveShadow??!1,q.castShadow=g.castShadow??!1;const P=q.material;P.color.copy(N??q.userData.color),P.opacity=d??1})},[D,g.color,g.receiveShadow,g.castShadow]);const h=Ql();El(I,h,B,Q,E,g.scrollbarPanelMaterialClass,e,l),JQ(I,"width",g.svgWidth),JQ(I,"height",g.svgHeight),vE(I,g),bE(I,g),OE(I,g);const c=ZE(I,g),y=zE(I,g);JQ(I,"aspectRatio",g.svgWidth/g.svgHeight),xE(I),VE(g,B.size),wo(g,E),GB(()=>{const k=g.svgWidth/g.svgHeight,[f,d,N]=GY(B.size,B.paddingInset,B.borderInset,B.pixelSize,g.svgWidth/g.svgHeight);D.position.set(f-N*k/2,d+N/2,0),D.scale.setScalar(N/g.svgHeight),D.updateMatrix()},[B,D,g.svgWidth,g.svgHeight]),GB(()=>void(D.visible=!E.value),[]);const S=Sa(B.size,B,a,s);return jE(A,B,S,h),JA.jsxs(_E,{groupRef:C,matrix:i,handlers:g,hoverHandlers:c,activeHandlers:y,children:[JA.jsxs(el,{listeners:g,node:B,scrollPosition:h,children:[JA.jsx("primitive",{object:S}),JA.jsx("primitive",{object:D})]}),JA.jsx(tl,{globalMatrix:Q,node:B,orderInfo:l,scrollPosition:h,children:g.children})]})});_.forwardRef(({children:g,resolution:A=1,frames:I=1/0,renderPriority:C=0,eventPriority:B=0,...i},Q)=>{const e=_.useMemo(()=>new MC(1,1,{minFilter:wg,magFilter:wg,type:BB}),[]),E=_.useRef(null),t=_.useMemo(()=>({events:{compute:AV.bind(null,E),priority:B},size:{width:1,height:1,left:0,top:0}}),[B]);_.useEffect(()=>{if(E.current==null)return;const{size:s}=E.current,r=Rg(()=>{const[l,D]=s.value;e.setSize(l,D),t.size.width=l,t.size.height=D});return()=>{r(),e.dispose()}},[e,t]),_.useImperativeHandle(Q,()=>E.current,[]);const a=_.useMemo(()=>new $t,[]);return JA.jsxs(JA.Fragment,{children:[Hw(JA.jsxs(IV,{imageRef:E,renderPriority:C,frames:I,fbo:e,children:[g,JA.jsx("group",{onPointerOver:()=>null})]}),a,t),JA.jsx(iH,{...i,src:e.texture,fit:"fill",keepAspectRatio:!1,ref:E})]})});function AV({current:g},A,I,C){var Q,e,E;if(g==null||C==null)return!1;C.raycaster.camera||(E=(e=C.events).compute)==null||E.call(e,A,C,(Q=C.previousRoot)==null?void 0:Q.getState());const[B]=C.raycaster.intersectObject(g.interactionPanel);if(!B)return!1;const i=B.uv;if(!i)return!1;I.raycaster.setFromCamera(I.pointer.set(i.x*2-1,i.y*2-1),I.camera)}function IV({frames:g,renderPriority:A,children:I,fbo:C,imageRef:B}){const i=Al();_.useEffect(()=>{if(B.current==null)return;const{size:t}=B.current;return Rg(()=>{const[a,s]=t.value;i.setState({size:{width:a,height:s,top:0,left:0}})})});let Q=0,e,E;return NC(t=>{(g===1/0||QJA.jsx(eH,{...g,ref:A,text:gV,svgWidth:24,svgHeight:24})),BV='',iV=_.forwardRef((g,A)=>JA.jsx(eH,{...g,ref:A,text:BV,svgWidth:24,svgHeight:24}));function Qg(g,A,I){return new QI().setHSL(g/360,A/100,I/100,"srgb")}const $g=b8({light:{background:Qg(0,0,100),foreground:Qg(222.2,84,4.9),card:Qg(0,0,100),cardForeground:Qg(222.2,84,4.9),popover:Qg(0,0,100),popoverForeground:Qg(222.2,84,4.9),primary:Qg(222.2,47.4,11.2),primaryForeground:Qg(210,40,98),secondary:Qg(210,40,96.1),secondaryForeground:Qg(222.2,47.4,11.2),muted:Qg(210,40,96.1),mutedForeground:Qg(215.4,16.3,46.9),accent:Qg(210,40,96.1),accentForeground:Qg(222.2,47.4,11.2),destructive:Qg(0,72.22,50.59),destructiveForeground:Qg(210,40,98),border:Qg(214.3,31.8,91.4),input:Qg(214.3,31.8,91.4),ring:Qg(222.2,84,4.9)},dark:{background:Qg(222.2,84,4.9),foreground:Qg(210,40,98),card:Qg(222.2,84,4.9),cardForeground:Qg(210,40,98),popover:Qg(222.2,84,4.9),popoverForeground:Qg(210,40,98),primary:Qg(210,40,98),primaryForeground:Qg(222.2,47.4,11.2),secondary:Qg(217.2,32.6,17.5),secondaryForeground:Qg(210,40,98),muted:Qg(217.2,32.6,17.5),mutedForeground:Qg(215,20.2,65.1),accent:Qg(217.2,32.6,17.5),accentForeground:Qg(210,40,98),destructive:Qg(0,62.8,30.6),destructiveForeground:Qg(210,40,98),border:Qg(217.2,32.6,17.5),input:Qg(217.2,32.6,17.5),ring:Qg(212.7,26.8,83.9)}});function EH(g){return JA.jsx(vw,{scrollbarColor:$g.foreground,scrollbarBorderRadius:4,scrollbarOpacity:.3,borderColor:$g.border,color:$g.foreground,...g})}function C0(g){return JA.jsx(iH,{width:40,height:40,flexShrink:0,aspectRatio:1,fit:"cover",borderRadius:20,...g})}const QV={default:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:$g.primary},defaultProps:{color:$g.primaryForeground}},destructive:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:$g.destructive},defaultProps:{color:$g.destructiveForeground}},outline:{containerHoverProps:{backgroundColor:$g.accent},containerProps:{border:1,borderColor:$g.input,backgroundColor:$g.background}},secondary:{containerHoverProps:{backgroundOpacity:.8},containerProps:{backgroundColor:$g.secondary},defaultProps:{color:$g.secondaryForeground}},ghost:{containerHoverProps:{backgroundColor:$g.accent},defaultProps:{}},link:{containerProps:{},defaultProps:{color:$g.primary}}},eV={default:{height:40,paddingX:16,paddingY:8},sm:{height:36,paddingX:12},lg:{height:42,paddingX:32},icon:{height:40,width:40}};function tH({children:g,variant:A="default",size:I="default",disabled:C=!1,hover:B,...i}){const{containerProps:Q,defaultProps:e,containerHoverProps:E}=QV[A],t=eV[I];return JA.jsx(qC,{borderRadius:6,alignItems:"center",justifyContent:"center",...Q,...t,borderOpacity:C?.5:void 0,backgroundOpacity:C?.5:void 0,cursor:C?void 0:"pointer",flexDirection:"row",hover:{...E,...B},...i,children:JA.jsx(vw,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",...e,opacity:C?.5:void 0,children:g})})}function EV(g){return JA.jsx(qC,{padding:24,flexDirection:"column",gap:6,...g})}function tV({children:g}){return JA.jsx(vw,{fontWeight:"semi-bold",letterSpacing:-.4,fontSize:24,lineHeight:1,children:g})}function oV({children:g}){return JA.jsx(vw,{fontSize:14,lineHeight:1.43,color:$g.mutedForeground,children:g})}function nV(g){return JA.jsx(qC,{padding:24,paddingTop:0,...g})}function aV(g){return JA.jsx(qC,{flexDirection:"row",alignItems:"center",padding:24,paddingTop:0,...g})}function sV({defaultChecked:g,checked:A,disabled:I=!1,onCheckedChange:C,...B}){const[i,Q]=_.useState(g??!1),e=A??i;return JA.jsx(qC,{height:24,width:44,flexShrink:0,flexDirection:"row",padding:2,alignItems:"center",backgroundOpacity:I?.5:void 0,borderRadius:1e3,backgroundColor:e?$g.primary:$g.input,cursor:I?void 0:"pointer",onClick:I?void 0:()=>{A==null&&Q(!e),C==null||C(!e)},...B,children:JA.jsx(qC,{width:20,height:20,borderRadius:1e3,transformTranslateX:e?20:0,backgroundColor:$g.background})})}let p;const hg=new Array(128).fill(void 0);hg.push(void 0,null,!0,!1);let js=hg.length;function kC(g){js===hg.length&&hg.push(hg.length+1);const A=js;return js=hg[A],hg[A]=g,A}function pg(g){return hg[g]}function Nr(g){const A=pg(g);return function(I){I<132||(hg[I]=js,js=I)}(g),A}function MI(g){return g==null}let Us=null;function Fr(){return Us!==null&&Us.byteLength!==0||(Us=new Float64Array(p.memory.buffer)),Us}let Ns=null;function ZI(){return Ns!==null&&Ns.byteLength!==0||(Ns=new Int32Array(p.memory.buffer)),Ns}const oH=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&oH.decode();let Fs=null;function nH(g,A){return g>>>=0,oH.decode((Fs!==null&&Fs.byteLength!==0||(Fs=new Uint8Array(p.memory.buffer)),Fs).subarray(g,g+A))}function sA(g,A){if(!(g instanceof A))throw new Error(`expected instance of ${A.name}`);return g.ptr}let fs=null;function bg(){return fs!==null&&fs.byteLength!==0||(fs=new Float32Array(p.memory.buffer)),fs}let mg=128;function Vg(g){if(mg==1)throw new Error("out of js stack");return hg[--mg]=g,mg}function XR(g,A){return g>>>=0,bg().subarray(g/4,g/4+A)}let Rs=null;function aH(){return Rs!==null&&Rs.byteLength!==0||(Rs=new Uint32Array(p.memory.buffer)),Rs}let Bi=0;function yt(g,A){const I=A(4*g.length,4)>>>0;return bg().set(g,I/4),Bi=g.length,I}function kD(g,A){const I=A(4*g.length,4)>>>0;return aH().set(g,I/4),Bi=g.length,I}function B0(g,A){try{return g.apply(this,A)}catch(I){p.__wbindgen_exn_store(kC(I))}}const AB=Object.freeze({Ball:0,0:"Ball",Cuboid:1,1:"Cuboid",Capsule:2,2:"Capsule",Segment:3,3:"Segment",Polyline:4,4:"Polyline",Triangle:5,5:"Triangle",TriMesh:6,6:"TriMesh",HeightField:7,7:"HeightField",Compound:8,8:"Compound",ConvexPolyhedron:9,9:"ConvexPolyhedron",Cylinder:10,10:"Cylinder",Cone:11,11:"Cone",RoundCuboid:12,12:"RoundCuboid",RoundTriangle:13,13:"RoundTriangle",RoundCylinder:14,14:"RoundCylinder",RoundCone:15,15:"RoundCone",RoundConvexPolyhedron:16,16:"RoundConvexPolyhedron",HalfSpace:17,17:"HalfSpace"}),_w=Object.freeze({X:0,0:"X",Y:1,1:"Y",Z:2,2:"Z",AngX:3,3:"AngX",AngY:4,4:"AngY",AngZ:5,5:"AngZ"}),AQ=Object.freeze({Revolute:0,0:"Revolute",Fixed:1,1:"Fixed",Prismatic:2,2:"Prismatic",Rope:3,3:"Rope",Spring:4,4:"Spring",Spherical:5,5:"Spherical",Generic:6,6:"Generic"});class Io{static __wrap(A){A>>>=0;const I=Object.create(Io.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawbroadphase_free(A)}constructor(){const A=p.rawbroadphase_new();return this.__wbg_ptr=A>>>0,this}}class rk{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawccdsolver_free(A)}constructor(){const A=p.rawccdsolver_new();return this.__wbg_ptr=A>>>0,this}}class sH{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawcharactercollision_free(A)}constructor(){const A=p.rawcharactercollision_new();return this.__wbg_ptr=A>>>0,this}handle(){return p.rawcharactercollision_handle(this.__wbg_ptr)}translationDeltaApplied(){const A=p.rawcharactercollision_translationDeltaApplied(this.__wbg_ptr);return kA.__wrap(A)}translationDeltaRemaining(){const A=p.rawcharactercollision_translationDeltaRemaining(this.__wbg_ptr);return kA.__wrap(A)}toi(){return p.rawcharactercollision_toi(this.__wbg_ptr)}worldWitness1(){const A=p.rawcharactercollision_worldWitness1(this.__wbg_ptr);return kA.__wrap(A)}worldWitness2(){const A=p.rawcharactercollision_worldWitness2(this.__wbg_ptr);return kA.__wrap(A)}worldNormal1(){const A=p.rawcharactercollision_worldNormal1(this.__wbg_ptr);return kA.__wrap(A)}worldNormal2(){const A=p.rawcharactercollision_worldNormal2(this.__wbg_ptr);return kA.__wrap(A)}}class AC{static __wrap(A){A>>>=0;const I=Object.create(AC.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawcolliderset_free(A)}coTranslation(A){const I=p.rawcolliderset_coTranslation(this.__wbg_ptr,A);return kA.__wrap(I)}coRotation(A){const I=p.rawcolliderset_coRotation(this.__wbg_ptr,A);return Eg.__wrap(I)}coSetTranslation(A,I,C,B){p.rawcolliderset_coSetTranslation(this.__wbg_ptr,A,I,C,B)}coSetTranslationWrtParent(A,I,C,B){p.rawcolliderset_coSetTranslationWrtParent(this.__wbg_ptr,A,I,C,B)}coSetRotation(A,I,C,B,i){p.rawcolliderset_coSetRotation(this.__wbg_ptr,A,I,C,B,i)}coSetRotationWrtParent(A,I,C,B,i){p.rawcolliderset_coSetRotationWrtParent(this.__wbg_ptr,A,I,C,B,i)}coIsSensor(A){return p.rawcolliderset_coIsSensor(this.__wbg_ptr,A)!==0}coShapeType(A){return p.rawcolliderset_coShapeType(this.__wbg_ptr,A)}coHalfspaceNormal(A){const I=p.rawcolliderset_coHalfspaceNormal(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}coHalfExtents(A){const I=p.rawcolliderset_coHalfExtents(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}coSetHalfExtents(A,I){sA(I,kA),p.rawcolliderset_coSetHalfExtents(this.__wbg_ptr,A,I.__wbg_ptr)}coRadius(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coRadius(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}coSetRadius(A,I){p.rawcolliderset_coSetRadius(this.__wbg_ptr,A,I)}coHalfHeight(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coHalfHeight(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}coSetHalfHeight(A,I){p.rawcolliderset_coSetHalfHeight(this.__wbg_ptr,A,I)}coRoundRadius(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coRoundRadius(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}coSetRoundRadius(A,I){p.rawcolliderset_coSetRoundRadius(this.__wbg_ptr,A,I)}coVertices(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coVertices(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=ZI()[B/4+1];let i;return I!==0&&(i=XR(I,C).slice(),p.__wbindgen_free(I,4*C,4)),i}finally{p.__wbindgen_add_to_stack_pointer(16)}}coIndices(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coIndices(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=ZI()[B/4+1];let i;return I!==0&&(i=function(Q,e){return Q>>>=0,aH().subarray(Q/4,Q/4+e)}(I,C).slice(),p.__wbindgen_free(I,4*C,4)),i}finally{p.__wbindgen_add_to_stack_pointer(16)}}coHeightfieldHeights(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coHeightfieldHeights(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=ZI()[B/4+1];let i;return I!==0&&(i=XR(I,C).slice(),p.__wbindgen_free(I,4*C,4)),i}finally{p.__wbindgen_add_to_stack_pointer(16)}}coHeightfieldScale(A){const I=p.rawcolliderset_coHeightfieldScale(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}coHeightfieldNRows(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coHeightfieldNRows(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=ZI()[B/4+1];return I===0?void 0:C>>>0}finally{p.__wbindgen_add_to_stack_pointer(16)}}coHeightfieldNCols(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coHeightfieldNCols(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=ZI()[B/4+1];return I===0?void 0:C>>>0}finally{p.__wbindgen_add_to_stack_pointer(16)}}coParent(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawcolliderset_coParent(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=Fr()[B/8+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}coSetEnabled(A,I){p.rawcolliderset_coSetEnabled(this.__wbg_ptr,A,I)}coIsEnabled(A){return p.rawcolliderset_coIsEnabled(this.__wbg_ptr,A)!==0}coFriction(A){return p.rawcolliderset_coFriction(this.__wbg_ptr,A)}coRestitution(A){return p.rawcolliderset_coRestitution(this.__wbg_ptr,A)}coDensity(A){return p.rawcolliderset_coDensity(this.__wbg_ptr,A)}coMass(A){return p.rawcolliderset_coMass(this.__wbg_ptr,A)}coVolume(A){return p.rawcolliderset_coVolume(this.__wbg_ptr,A)}coCollisionGroups(A){return p.rawcolliderset_coCollisionGroups(this.__wbg_ptr,A)>>>0}coSolverGroups(A){return p.rawcolliderset_coSolverGroups(this.__wbg_ptr,A)>>>0}coActiveHooks(A){return p.rawcolliderset_coActiveHooks(this.__wbg_ptr,A)>>>0}coActiveCollisionTypes(A){return p.rawcolliderset_coActiveCollisionTypes(this.__wbg_ptr,A)}coActiveEvents(A){return p.rawcolliderset_coActiveEvents(this.__wbg_ptr,A)>>>0}coContactForceEventThreshold(A){return p.rawcolliderset_coContactForceEventThreshold(this.__wbg_ptr,A)}coContainsPoint(A,I){return sA(I,kA),p.rawcolliderset_coContainsPoint(this.__wbg_ptr,A,I.__wbg_ptr)!==0}coCastShape(A,I,C,B,i,Q,e,E){sA(I,kA),sA(C,vI),sA(B,kA),sA(i,Eg),sA(Q,kA);const t=p.rawcolliderset_coCastShape(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e,E);return t===0?void 0:Vw.__wrap(t)}coCastCollider(A,I,C,B,i,Q){sA(I,kA),sA(B,kA);const e=p.rawcolliderset_coCastCollider(this.__wbg_ptr,A,I.__wbg_ptr,C,B.__wbg_ptr,i,Q);return e===0?void 0:jw.__wrap(e)}coIntersectsShape(A,I,C,B){return sA(I,vI),sA(C,kA),sA(B,Eg),p.rawcolliderset_coIntersectsShape(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr)!==0}coContactShape(A,I,C,B,i){sA(I,vI),sA(C,kA),sA(B,Eg);const Q=p.rawcolliderset_coContactShape(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i);return Q===0?void 0:fr.__wrap(Q)}coContactCollider(A,I,C){const B=p.rawcolliderset_coContactCollider(this.__wbg_ptr,A,I,C);return B===0?void 0:fr.__wrap(B)}coProjectPoint(A,I,C){sA(I,kA);const B=p.rawcolliderset_coProjectPoint(this.__wbg_ptr,A,I.__wbg_ptr,C);return Zw.__wrap(B)}coIntersectsRay(A,I,C,B){return sA(I,kA),sA(C,kA),p.rawcolliderset_coIntersectsRay(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B)!==0}coCastRay(A,I,C,B,i){return sA(I,kA),sA(C,kA),p.rawcolliderset_coCastRay(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B,i)}coCastRayAndGetNormal(A,I,C,B,i){sA(I,kA),sA(C,kA);const Q=p.rawcolliderset_coCastRayAndGetNormal(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B,i);return Q===0?void 0:Ww.__wrap(Q)}coSetSensor(A,I){p.rawcolliderset_coSetSensor(this.__wbg_ptr,A,I)}coSetRestitution(A,I){p.rawcolliderset_coSetRestitution(this.__wbg_ptr,A,I)}coSetFriction(A,I){p.rawcolliderset_coSetFriction(this.__wbg_ptr,A,I)}coFrictionCombineRule(A){return p.rawcolliderset_coFrictionCombineRule(this.__wbg_ptr,A)>>>0}coSetFrictionCombineRule(A,I){p.rawcolliderset_coSetFrictionCombineRule(this.__wbg_ptr,A,I)}coRestitutionCombineRule(A){return p.rawcolliderset_coRestitutionCombineRule(this.__wbg_ptr,A)>>>0}coSetRestitutionCombineRule(A,I){p.rawcolliderset_coSetRestitutionCombineRule(this.__wbg_ptr,A,I)}coSetCollisionGroups(A,I){p.rawcolliderset_coSetCollisionGroups(this.__wbg_ptr,A,I)}coSetSolverGroups(A,I){p.rawcolliderset_coSetSolverGroups(this.__wbg_ptr,A,I)}coSetActiveHooks(A,I){p.rawcolliderset_coSetActiveHooks(this.__wbg_ptr,A,I)}coSetActiveEvents(A,I){p.rawcolliderset_coSetActiveEvents(this.__wbg_ptr,A,I)}coSetActiveCollisionTypes(A,I){p.rawcolliderset_coSetActiveCollisionTypes(this.__wbg_ptr,A,I)}coSetShape(A,I){sA(I,vI),p.rawcolliderset_coSetShape(this.__wbg_ptr,A,I.__wbg_ptr)}coSetContactForceEventThreshold(A,I){p.rawcolliderset_coSetContactForceEventThreshold(this.__wbg_ptr,A,I)}coSetDensity(A,I){p.rawcolliderset_coSetDensity(this.__wbg_ptr,A,I)}coSetMass(A,I){p.rawcolliderset_coSetMass(this.__wbg_ptr,A,I)}coSetMassProperties(A,I,C,B,i){sA(C,kA),sA(B,kA),sA(i,Eg),p.rawcolliderset_coSetMassProperties(this.__wbg_ptr,A,I,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr)}constructor(){const A=p.rawcolliderset_new();return this.__wbg_ptr=A>>>0,this}len(){return p.rawcolliderset_len(this.__wbg_ptr)>>>0}contains(A){return p.rawcolliderset_contains(this.__wbg_ptr,A)!==0}createCollider(A,I,C,B,i,Q,e,E,t,a,s,r,l,D,G,h,c,y,S,k,f,d,N,q){try{const K=p.__wbindgen_add_to_stack_pointer(-16);sA(I,vI),sA(C,kA),sA(B,Eg),sA(e,kA),sA(E,kA),sA(t,Eg),sA(q,tC),p.rawcolliderset_createCollider(K,this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q,e.__wbg_ptr,E.__wbg_ptr,t.__wbg_ptr,a,s,r,l,D,G,h,c,y,S,k,f,d,N,q.__wbg_ptr);var P=ZI()[K/4+0],U=Fr()[K/8+1];return P===0?void 0:U}finally{p.__wbindgen_add_to_stack_pointer(16)}}remove(A,I,C,B){sA(I,we),sA(C,tC),p.rawcolliderset_remove(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B)}isHandleValid(A){return p.rawcolliderset_contains(this.__wbg_ptr,A)!==0}forEachColliderHandle(A){try{p.rawcolliderset_forEachColliderHandle(this.__wbg_ptr,Vg(A))}finally{hg[mg++]=void 0}}}class hd{static __wrap(A){A>>>=0;const I=Object.create(hd.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawcontactforceevent_free(A)}collider1(){return p.rawcharactercollision_handle(this.__wbg_ptr)}collider2(){return p.rawcontactforceevent_collider2(this.__wbg_ptr)}total_force(){const A=p.rawcontactforceevent_total_force(this.__wbg_ptr);return kA.__wrap(A)}total_force_magnitude(){return p.rawcontactforceevent_total_force_magnitude(this.__wbg_ptr)}max_force_direction(){const A=p.rawcontactforceevent_max_force_direction(this.__wbg_ptr);return kA.__wrap(A)}max_force_magnitude(){return p.rawcontactforceevent_max_force_magnitude(this.__wbg_ptr)}}class wd{static __wrap(A){A>>>=0;const I=Object.create(wd.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawcontactmanifold_free(A)}normal(){const A=p.rawcontactmanifold_normal(this.__wbg_ptr);return kA.__wrap(A)}local_n1(){const A=p.rawcontactmanifold_local_n1(this.__wbg_ptr);return kA.__wrap(A)}local_n2(){const A=p.rawcontactmanifold_local_n2(this.__wbg_ptr);return kA.__wrap(A)}subshape1(){return p.rawcontactmanifold_subshape1(this.__wbg_ptr)>>>0}subshape2(){return p.rawcontactmanifold_subshape2(this.__wbg_ptr)>>>0}num_contacts(){return p.rawcontactmanifold_num_contacts(this.__wbg_ptr)>>>0}contact_local_p1(A){const I=p.rawcontactmanifold_contact_local_p1(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}contact_local_p2(A){const I=p.rawcontactmanifold_contact_local_p2(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}contact_dist(A){return p.rawcontactmanifold_contact_dist(this.__wbg_ptr,A)}contact_fid1(A){return p.rawcontactmanifold_contact_fid1(this.__wbg_ptr,A)>>>0}contact_fid2(A){return p.rawcontactmanifold_contact_fid2(this.__wbg_ptr,A)>>>0}contact_impulse(A){return p.rawcontactmanifold_contact_impulse(this.__wbg_ptr,A)}contact_tangent_impulse_x(A){return p.rawcontactmanifold_contact_tangent_impulse_x(this.__wbg_ptr,A)}contact_tangent_impulse_y(A){return p.rawcontactmanifold_contact_tangent_impulse_y(this.__wbg_ptr,A)}num_solver_contacts(){return p.rawcontactmanifold_num_solver_contacts(this.__wbg_ptr)>>>0}solver_contact_point(A){const I=p.rawcontactmanifold_solver_contact_point(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}solver_contact_dist(A){return p.rawcontactmanifold_solver_contact_dist(this.__wbg_ptr,A)}solver_contact_friction(A){return p.rawcontactmanifold_solver_contact_friction(this.__wbg_ptr,A)}solver_contact_restitution(A){return p.rawcontactmanifold_solver_contact_restitution(this.__wbg_ptr,A)}solver_contact_tangent_velocity(A){const I=p.rawcontactmanifold_solver_contact_tangent_velocity(this.__wbg_ptr,A);return kA.__wrap(I)}}class Sd{static __wrap(A){A>>>=0;const I=Object.create(Sd.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawcontactpair_free(A)}collider1(){return p.rawcontactpair_collider1(this.__wbg_ptr)}collider2(){return p.rawcontactpair_collider2(this.__wbg_ptr)}numContactManifolds(){return p.rawcontactpair_numContactManifolds(this.__wbg_ptr)>>>0}contactManifold(A){const I=p.rawcontactpair_contactManifold(this.__wbg_ptr,A);return I===0?void 0:wd.__wrap(I)}}class rV{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawdebugrenderpipeline_free(A)}constructor(){const A=p.rawdebugrenderpipeline_new();return this.__wbg_ptr=A>>>0,this}vertices(){return Nr(p.rawdebugrenderpipeline_vertices(this.__wbg_ptr))}colors(){return Nr(p.rawdebugrenderpipeline_colors(this.__wbg_ptr))}render(A,I,C,B,i){sA(A,tC),sA(I,AC),sA(C,he),sA(B,Se),sA(i,FE),p.rawdebugrenderpipeline_render(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr)}}class Gd{static __wrap(A){A>>>=0;const I=Object.create(Gd.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawdeserializedworld_free(A)}takeGravity(){const A=p.rawdeserializedworld_takeGravity(this.__wbg_ptr);return A===0?void 0:kA.__wrap(A)}takeIntegrationParameters(){const A=p.rawdeserializedworld_takeIntegrationParameters(this.__wbg_ptr);return A===0?void 0:go.__wrap(A)}takeIslandManager(){const A=p.rawdeserializedworld_takeIslandManager(this.__wbg_ptr);return A===0?void 0:we.__wrap(A)}takeBroadPhase(){const A=p.rawdeserializedworld_takeBroadPhase(this.__wbg_ptr);return A===0?void 0:Io.__wrap(A)}takeNarrowPhase(){const A=p.rawdeserializedworld_takeNarrowPhase(this.__wbg_ptr);return A===0?void 0:FE.__wrap(A)}takeBodies(){const A=p.rawdeserializedworld_takeBodies(this.__wbg_ptr);return A===0?void 0:tC.__wrap(A)}takeColliders(){const A=p.rawdeserializedworld_takeColliders(this.__wbg_ptr);return A===0?void 0:AC.__wrap(A)}takeImpulseJoints(){const A=p.rawdeserializedworld_takeImpulseJoints(this.__wbg_ptr);return A===0?void 0:he.__wrap(A)}takeMultibodyJoints(){const A=p.rawdeserializedworld_takeMultibodyJoints(this.__wbg_ptr);return A===0?void 0:Se.__wrap(A)}}class lV{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawdynamicraycastvehiclecontroller_free(A)}constructor(A){const I=p.rawdynamicraycastvehiclecontroller_new(A);return this.__wbg_ptr=I>>>0,this}current_vehicle_speed(){return p.rawdynamicraycastvehiclecontroller_current_vehicle_speed(this.__wbg_ptr)}chassis(){return p.rawdynamicraycastvehiclecontroller_chassis(this.__wbg_ptr)}index_up_axis(){return p.rawdynamicraycastvehiclecontroller_index_up_axis(this.__wbg_ptr)>>>0}set_index_up_axis(A){p.rawdynamicraycastvehiclecontroller_set_index_up_axis(this.__wbg_ptr,A)}index_forward_axis(){return p.rawdynamicraycastvehiclecontroller_index_forward_axis(this.__wbg_ptr)>>>0}set_index_forward_axis(A){p.rawdynamicraycastvehiclecontroller_set_index_forward_axis(this.__wbg_ptr,A)}add_wheel(A,I,C,B,i){sA(A,kA),sA(I,kA),sA(C,kA),p.rawdynamicraycastvehiclecontroller_add_wheel(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B,i)}num_wheels(){return p.rawdynamicraycastvehiclecontroller_num_wheels(this.__wbg_ptr)>>>0}update_vehicle(A,I,C,B,i,Q,e){try{sA(I,tC),sA(C,AC),sA(B,yd),p.rawdynamicraycastvehiclecontroller_update_vehicle(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,!MI(Q),MI(Q)?0:Q,Vg(e))}finally{hg[mg++]=void 0}}wheel_chassis_connection_point_cs(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_chassis_connection_point_cs(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}set_wheel_chassis_connection_point_cs(A,I){sA(I,kA),p.rawdynamicraycastvehiclecontroller_set_wheel_chassis_connection_point_cs(this.__wbg_ptr,A,I.__wbg_ptr)}wheel_suspension_rest_length(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_rest_length(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_suspension_rest_length(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_suspension_rest_length(this.__wbg_ptr,A,I)}wheel_max_suspension_travel(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_max_suspension_travel(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_max_suspension_travel(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_max_suspension_travel(this.__wbg_ptr,A,I)}wheel_radius(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_radius(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_radius(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_radius(this.__wbg_ptr,A,I)}wheel_suspension_stiffness(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_stiffness(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_suspension_stiffness(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_suspension_stiffness(this.__wbg_ptr,A,I)}wheel_suspension_compression(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_compression(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_suspension_compression(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_suspension_compression(this.__wbg_ptr,A,I)}wheel_suspension_relaxation(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_relaxation(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_suspension_relaxation(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_suspension_relaxation(this.__wbg_ptr,A,I)}wheel_max_suspension_force(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_max_suspension_force(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_max_suspension_force(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_max_suspension_force(this.__wbg_ptr,A,I)}wheel_brake(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_brake(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_brake(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_brake(this.__wbg_ptr,A,I)}wheel_steering(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_steering(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_steering(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_steering(this.__wbg_ptr,A,I)}wheel_engine_force(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_engine_force(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_engine_force(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_engine_force(this.__wbg_ptr,A,I)}wheel_direction_cs(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_direction_cs(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}set_wheel_direction_cs(A,I){sA(I,kA),p.rawdynamicraycastvehiclecontroller_set_wheel_direction_cs(this.__wbg_ptr,A,I.__wbg_ptr)}wheel_axle_cs(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_axle_cs(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}set_wheel_axle_cs(A,I){sA(I,kA),p.rawdynamicraycastvehiclecontroller_set_wheel_axle_cs(this.__wbg_ptr,A,I.__wbg_ptr)}wheel_friction_slip(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_friction_slip(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_friction_slip(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_friction_slip(this.__wbg_ptr,A,I)}wheel_side_friction_stiffness(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_side_friction_stiffness(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}set_wheel_side_friction_stiffness(A,I){p.rawdynamicraycastvehiclecontroller_set_wheel_side_friction_stiffness(this.__wbg_ptr,A,I)}wheel_rotation(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_rotation(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}wheel_forward_impulse(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_forward_impulse(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}wheel_side_impulse(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_side_impulse(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}wheel_suspension_force(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_force(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}wheel_contact_normal_ws(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_contact_normal_ws(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}wheel_contact_point_ws(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_contact_point_ws(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}wheel_suspension_length(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_suspension_length(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=bg()[B/4+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}wheel_hard_point_ws(A){const I=p.rawdynamicraycastvehiclecontroller_wheel_hard_point_ws(this.__wbg_ptr,A);return I===0?void 0:kA.__wrap(I)}wheel_is_in_contact(A){return p.rawdynamicraycastvehiclecontroller_wheel_is_in_contact(this.__wbg_ptr,A)!==0}wheel_ground_object(A){try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.rawdynamicraycastvehiclecontroller_wheel_ground_object(B,this.__wbg_ptr,A);var I=ZI()[B/4+0],C=Fr()[B/8+1];return I===0?void 0:C}finally{p.__wbindgen_add_to_stack_pointer(16)}}}class rH{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_raweventqueue_free(A)}constructor(A){const I=p.raweventqueue_new(A);return this.__wbg_ptr=I>>>0,this}drainCollisionEvents(A){try{p.raweventqueue_drainCollisionEvents(this.__wbg_ptr,Vg(A))}finally{hg[mg++]=void 0}}drainContactForceEvents(A){try{p.raweventqueue_drainContactForceEvents(this.__wbg_ptr,Vg(A))}finally{hg[mg++]=void 0}}clear(){p.raweventqueue_clear(this.__wbg_ptr)}}class VC{static __wrap(A){A>>>=0;const I=Object.create(VC.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawgenericjoint_free(A)}static generic(A,I,C,B){sA(A,kA),sA(I,kA),sA(C,kA);const i=p.rawgenericjoint_generic(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B);return i===0?void 0:VC.__wrap(i)}static spring(A,I,C,B,i){sA(B,kA),sA(i,kA);const Q=p.rawgenericjoint_spring(A,I,C,B.__wbg_ptr,i.__wbg_ptr);return VC.__wrap(Q)}static rope(A,I,C){sA(I,kA),sA(C,kA);const B=p.rawgenericjoint_rope(A,I.__wbg_ptr,C.__wbg_ptr);return VC.__wrap(B)}static spherical(A,I){sA(A,kA),sA(I,kA);const C=p.rawgenericjoint_spherical(A.__wbg_ptr,I.__wbg_ptr);return VC.__wrap(C)}static prismatic(A,I,C,B,i,Q){sA(A,kA),sA(I,kA),sA(C,kA);const e=p.rawgenericjoint_prismatic(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B,i,Q);return e===0?void 0:VC.__wrap(e)}static fixed(A,I,C,B){sA(A,kA),sA(I,Eg),sA(C,kA),sA(B,Eg);const i=p.rawgenericjoint_fixed(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr);return VC.__wrap(i)}static revolute(A,I,C){sA(A,kA),sA(I,kA),sA(C,kA);const B=p.rawgenericjoint_revolute(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr);return B===0?void 0:VC.__wrap(B)}}class he{static __wrap(A){A>>>=0;const I=Object.create(he.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawimpulsejointset_free(A)}jointType(A){return p.rawimpulsejointset_jointType(this.__wbg_ptr,A)}jointBodyHandle1(A){return p.rawimpulsejointset_jointBodyHandle1(this.__wbg_ptr,A)}jointBodyHandle2(A){return p.rawimpulsejointset_jointBodyHandle2(this.__wbg_ptr,A)}jointFrameX1(A){const I=p.rawimpulsejointset_jointFrameX1(this.__wbg_ptr,A);return Eg.__wrap(I)}jointFrameX2(A){const I=p.rawimpulsejointset_jointFrameX2(this.__wbg_ptr,A);return Eg.__wrap(I)}jointAnchor1(A){const I=p.rawimpulsejointset_jointAnchor1(this.__wbg_ptr,A);return kA.__wrap(I)}jointAnchor2(A){const I=p.rawimpulsejointset_jointAnchor2(this.__wbg_ptr,A);return kA.__wrap(I)}jointSetAnchor1(A,I){sA(I,kA),p.rawimpulsejointset_jointSetAnchor1(this.__wbg_ptr,A,I.__wbg_ptr)}jointSetAnchor2(A,I){sA(I,kA),p.rawimpulsejointset_jointSetAnchor2(this.__wbg_ptr,A,I.__wbg_ptr)}jointContactsEnabled(A){return p.rawimpulsejointset_jointContactsEnabled(this.__wbg_ptr,A)!==0}jointSetContactsEnabled(A,I){p.rawimpulsejointset_jointSetContactsEnabled(this.__wbg_ptr,A,I)}jointLimitsEnabled(A,I){return p.rawimpulsejointset_jointLimitsEnabled(this.__wbg_ptr,A,I)!==0}jointLimitsMin(A,I){return p.rawimpulsejointset_jointLimitsMin(this.__wbg_ptr,A,I)}jointLimitsMax(A,I){return p.rawimpulsejointset_jointLimitsMax(this.__wbg_ptr,A,I)}jointSetLimits(A,I,C,B){p.rawimpulsejointset_jointSetLimits(this.__wbg_ptr,A,I,C,B)}jointConfigureMotorModel(A,I,C){p.rawimpulsejointset_jointConfigureMotorModel(this.__wbg_ptr,A,I,C)}jointConfigureMotorVelocity(A,I,C,B){p.rawimpulsejointset_jointConfigureMotorVelocity(this.__wbg_ptr,A,I,C,B)}jointConfigureMotorPosition(A,I,C,B,i){p.rawimpulsejointset_jointConfigureMotorPosition(this.__wbg_ptr,A,I,C,B,i)}jointConfigureMotor(A,I,C,B,i,Q){p.rawimpulsejointset_jointConfigureMotor(this.__wbg_ptr,A,I,C,B,i,Q)}constructor(){const A=p.rawimpulsejointset_new();return this.__wbg_ptr=A>>>0,this}createJoint(A,I,C,B){return sA(A,VC),p.rawimpulsejointset_createJoint(this.__wbg_ptr,A.__wbg_ptr,I,C,B)}remove(A,I){p.rawimpulsejointset_remove(this.__wbg_ptr,A,I)}len(){return p.rawimpulsejointset_len(this.__wbg_ptr)>>>0}contains(A){return p.rawimpulsejointset_contains(this.__wbg_ptr,A)!==0}forEachJointHandle(A){try{p.rawimpulsejointset_forEachJointHandle(this.__wbg_ptr,Vg(A))}finally{hg[mg++]=void 0}}forEachJointAttachedToRigidBody(A,I){try{p.rawimpulsejointset_forEachJointAttachedToRigidBody(this.__wbg_ptr,A,Vg(I))}finally{hg[mg++]=void 0}}}class go{static __wrap(A){A>>>=0;const I=Object.create(go.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawintegrationparameters_free(A)}constructor(){const A=p.rawintegrationparameters_new();return this.__wbg_ptr=A>>>0,this}get dt(){return p.rawintegrationparameters_dt(this.__wbg_ptr)}get erp(){return p.rawintegrationparameters_erp(this.__wbg_ptr)}get allowedLinearError(){return p.rawcontactforceevent_total_force_magnitude(this.__wbg_ptr)}get predictionDistance(){return p.rawdynamicraycastvehiclecontroller_current_vehicle_speed(this.__wbg_ptr)}get numSolverIterations(){return p.rawintegrationparameters_numSolverIterations(this.__wbg_ptr)>>>0}get numAdditionalFrictionIterations(){return p.rawintegrationparameters_numAdditionalFrictionIterations(this.__wbg_ptr)>>>0}get numInternalPgsIterations(){return p.rawintegrationparameters_numInternalPgsIterations(this.__wbg_ptr)>>>0}get minIslandSize(){return p.rawdynamicraycastvehiclecontroller_index_up_axis(this.__wbg_ptr)>>>0}get maxCcdSubsteps(){return p.rawdynamicraycastvehiclecontroller_index_forward_axis(this.__wbg_ptr)>>>0}set dt(A){p.rawintegrationparameters_set_dt(this.__wbg_ptr,A)}set erp(A){p.rawintegrationparameters_set_erp(this.__wbg_ptr,A)}set allowedLinearError(A){p.rawintegrationparameters_set_allowedLinearError(this.__wbg_ptr,A)}set predictionDistance(A){p.rawintegrationparameters_set_predictionDistance(this.__wbg_ptr,A)}set numSolverIterations(A){p.rawintegrationparameters_set_numSolverIterations(this.__wbg_ptr,A)}set numAdditionalFrictionIterations(A){p.rawintegrationparameters_set_numAdditionalFrictionIterations(this.__wbg_ptr,A)}set numInternalPgsIterations(A){p.rawintegrationparameters_set_numInternalPgsIterations(this.__wbg_ptr,A)}set minIslandSize(A){p.rawdynamicraycastvehiclecontroller_set_index_up_axis(this.__wbg_ptr,A)}set maxCcdSubsteps(A){p.rawdynamicraycastvehiclecontroller_set_index_forward_axis(this.__wbg_ptr,A)}switchToStandardPgsSolver(){p.rawintegrationparameters_switchToStandardPgsSolver(this.__wbg_ptr)}switchToSmallStepsPgsSolver(){p.rawintegrationparameters_switchToSmallStepsPgsSolver(this.__wbg_ptr)}}class we{static __wrap(A){A>>>=0;const I=Object.create(we.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawislandmanager_free(A)}constructor(){const A=p.rawislandmanager_new();return this.__wbg_ptr=A>>>0,this}forEachActiveRigidBodyHandle(A){try{p.rawislandmanager_forEachActiveRigidBodyHandle(this.__wbg_ptr,Vg(A))}finally{hg[mg++]=void 0}}}class cV{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawkinematiccharactercontroller_free(A)}constructor(A){const I=p.rawkinematiccharactercontroller_new(A);return this.__wbg_ptr=I>>>0,this}up(){const A=p.rawcharactercollision_translationDeltaApplied(this.__wbg_ptr);return kA.__wrap(A)}setUp(A){sA(A,kA),p.rawkinematiccharactercontroller_setUp(this.__wbg_ptr,A.__wbg_ptr)}offset(){return p.rawintegrationparameters_dt(this.__wbg_ptr)}setOffset(A){p.rawkinematiccharactercontroller_setOffset(this.__wbg_ptr,A)}slideEnabled(){return p.rawkinematiccharactercontroller_slideEnabled(this.__wbg_ptr)!==0}setSlideEnabled(A){p.rawkinematiccharactercontroller_setSlideEnabled(this.__wbg_ptr,A)}autostepMaxHeight(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawkinematiccharactercontroller_autostepMaxHeight(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=bg()[C/4+1];return A===0?void 0:I}finally{p.__wbindgen_add_to_stack_pointer(16)}}autostepMinWidth(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawkinematiccharactercontroller_autostepMinWidth(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=bg()[C/4+1];return A===0?void 0:I}finally{p.__wbindgen_add_to_stack_pointer(16)}}autostepIncludesDynamicBodies(){const A=p.rawkinematiccharactercontroller_autostepIncludesDynamicBodies(this.__wbg_ptr);return A===16777215?void 0:A!==0}autostepEnabled(){return p.rawkinematiccharactercontroller_autostepEnabled(this.__wbg_ptr)!==0}enableAutostep(A,I,C){p.rawkinematiccharactercontroller_enableAutostep(this.__wbg_ptr,A,I,C)}disableAutostep(){p.rawkinematiccharactercontroller_disableAutostep(this.__wbg_ptr)}maxSlopeClimbAngle(){return p.rawkinematiccharactercontroller_maxSlopeClimbAngle(this.__wbg_ptr)}setMaxSlopeClimbAngle(A){p.rawkinematiccharactercontroller_setMaxSlopeClimbAngle(this.__wbg_ptr,A)}minSlopeSlideAngle(){return p.rawkinematiccharactercontroller_minSlopeSlideAngle(this.__wbg_ptr)}setMinSlopeSlideAngle(A){p.rawkinematiccharactercontroller_setMinSlopeSlideAngle(this.__wbg_ptr,A)}snapToGroundDistance(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawkinematiccharactercontroller_snapToGroundDistance(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=bg()[C/4+1];return A===0?void 0:I}finally{p.__wbindgen_add_to_stack_pointer(16)}}enableSnapToGround(A){p.rawkinematiccharactercontroller_enableSnapToGround(this.__wbg_ptr,A)}disableSnapToGround(){p.rawkinematiccharactercontroller_disableSnapToGround(this.__wbg_ptr)}snapToGroundEnabled(){return p.rawkinematiccharactercontroller_snapToGroundEnabled(this.__wbg_ptr)!==0}computeColliderMovement(A,I,C,B,i,Q,e,E,t,a,s){try{sA(I,tC),sA(C,AC),sA(B,yd),sA(Q,kA),p.rawkinematiccharactercontroller_computeColliderMovement(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q.__wbg_ptr,e,!MI(E),MI(E)?0:E,t,!MI(a),MI(a)?0:a,Vg(s))}finally{hg[mg++]=void 0}}computedMovement(){const A=p.rawkinematiccharactercontroller_computedMovement(this.__wbg_ptr);return kA.__wrap(A)}computedGrounded(){return p.rawkinematiccharactercontroller_computedGrounded(this.__wbg_ptr)!==0}numComputedCollisions(){return p.rawkinematiccharactercontroller_numComputedCollisions(this.__wbg_ptr)>>>0}computedCollision(A,I){return sA(I,sH),p.rawkinematiccharactercontroller_computedCollision(this.__wbg_ptr,A,I.__wbg_ptr)!==0}}class Se{static __wrap(A){A>>>=0;const I=Object.create(Se.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawmultibodyjointset_free(A)}jointType(A){return p.rawmultibodyjointset_jointType(this.__wbg_ptr,A)}jointFrameX1(A){const I=p.rawmultibodyjointset_jointFrameX1(this.__wbg_ptr,A);return Eg.__wrap(I)}jointFrameX2(A){const I=p.rawmultibodyjointset_jointFrameX2(this.__wbg_ptr,A);return Eg.__wrap(I)}jointAnchor1(A){const I=p.rawmultibodyjointset_jointAnchor1(this.__wbg_ptr,A);return kA.__wrap(I)}jointAnchor2(A){const I=p.rawmultibodyjointset_jointAnchor2(this.__wbg_ptr,A);return kA.__wrap(I)}jointContactsEnabled(A){return p.rawmultibodyjointset_jointContactsEnabled(this.__wbg_ptr,A)!==0}jointSetContactsEnabled(A,I){p.rawmultibodyjointset_jointSetContactsEnabled(this.__wbg_ptr,A,I)}jointLimitsEnabled(A,I){return p.rawmultibodyjointset_jointLimitsEnabled(this.__wbg_ptr,A,I)!==0}jointLimitsMin(A,I){return p.rawmultibodyjointset_jointLimitsMin(this.__wbg_ptr,A,I)}jointLimitsMax(A,I){return p.rawmultibodyjointset_jointLimitsMax(this.__wbg_ptr,A,I)}constructor(){const A=p.rawmultibodyjointset_new();return this.__wbg_ptr=A>>>0,this}createJoint(A,I,C,B){return sA(A,VC),p.rawmultibodyjointset_createJoint(this.__wbg_ptr,A.__wbg_ptr,I,C,B)}remove(A,I){p.rawmultibodyjointset_remove(this.__wbg_ptr,A,I)}contains(A){return p.rawmultibodyjointset_contains(this.__wbg_ptr,A)!==0}forEachJointHandle(A){try{p.rawmultibodyjointset_forEachJointHandle(this.__wbg_ptr,Vg(A))}finally{hg[mg++]=void 0}}forEachJointAttachedToRigidBody(A,I){try{p.rawmultibodyjointset_forEachJointAttachedToRigidBody(this.__wbg_ptr,A,Vg(I))}finally{hg[mg++]=void 0}}}class FE{static __wrap(A){A>>>=0;const I=Object.create(FE.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawnarrowphase_free(A)}constructor(){const A=p.rawnarrowphase_new();return this.__wbg_ptr=A>>>0,this}contact_pairs_with(A,I){p.rawnarrowphase_contact_pairs_with(this.__wbg_ptr,A,kC(I))}contact_pair(A,I){const C=p.rawnarrowphase_contact_pair(this.__wbg_ptr,A,I);return C===0?void 0:Sd.__wrap(C)}intersection_pairs_with(A,I){p.rawnarrowphase_intersection_pairs_with(this.__wbg_ptr,A,kC(I))}intersection_pair(A,I){return p.rawnarrowphase_intersection_pair(this.__wbg_ptr,A,I)!==0}}class DV{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawphysicspipeline_free(A)}constructor(){const A=p.rawphysicspipeline_new();return this.__wbg_ptr=A>>>0,this}step(A,I,C,B,i,Q,e,E,t,a){sA(A,kA),sA(I,go),sA(C,we),sA(B,Io),sA(i,FE),sA(Q,tC),sA(e,AC),sA(E,he),sA(t,Se),sA(a,rk),p.rawphysicspipeline_step(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e.__wbg_ptr,E.__wbg_ptr,t.__wbg_ptr,a.__wbg_ptr)}stepWithEvents(A,I,C,B,i,Q,e,E,t,a,s,r,l,D){sA(A,kA),sA(I,go),sA(C,we),sA(B,Io),sA(i,FE),sA(Q,tC),sA(e,AC),sA(E,he),sA(t,Se),sA(a,rk),sA(s,rH),p.rawphysicspipeline_stepWithEvents(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e.__wbg_ptr,E.__wbg_ptr,t.__wbg_ptr,a.__wbg_ptr,s.__wbg_ptr,kC(r),kC(l),kC(D))}}class qh{static __wrap(A){A>>>=0;const I=Object.create(qh.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawpointcolliderprojection_free(A)}colliderHandle(){return p.rawpointcolliderprojection_colliderHandle(this.__wbg_ptr)}point(){const A=p.rawpointcolliderprojection_point(this.__wbg_ptr);return kA.__wrap(A)}isInside(){return p.rawpointcolliderprojection_isInside(this.__wbg_ptr)!==0}featureType(){return p.rawpointcolliderprojection_featureType(this.__wbg_ptr)}featureId(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawpointcolliderprojection_featureId(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=ZI()[C/4+1];return A===0?void 0:I>>>0}finally{p.__wbindgen_add_to_stack_pointer(16)}}}class Zw{static __wrap(A){A>>>=0;const I=Object.create(Zw.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawpointprojection_free(A)}point(){const A=p.rawpointprojection_point(this.__wbg_ptr);return kA.__wrap(A)}isInside(){return p.rawpointprojection_isInside(this.__wbg_ptr)!==0}}class yd{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawquerypipeline_free(A)}constructor(){const A=p.rawquerypipeline_new();return this.__wbg_ptr=A>>>0,this}update(A,I){sA(A,tC),sA(I,AC),p.rawquerypipeline_update(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr)}castRay(A,I,C,B,i,Q,e,E,t,a,s){try{sA(A,tC),sA(I,AC),sA(C,kA),sA(B,kA);const r=p.rawquerypipeline_castRay(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q,e,!MI(E),MI(E)?0:E,!MI(t),MI(t)?0:t,!MI(a),MI(a)?0:a,Vg(s));return r===0?void 0:ud.__wrap(r)}finally{hg[mg++]=void 0}}castRayAndGetNormal(A,I,C,B,i,Q,e,E,t,a,s){try{sA(A,tC),sA(I,AC),sA(C,kA),sA(B,kA);const r=p.rawquerypipeline_castRayAndGetNormal(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q,e,!MI(E),MI(E)?0:E,!MI(t),MI(t)?0:t,!MI(a),MI(a)?0:a,Vg(s));return r===0?void 0:Pw.__wrap(r)}finally{hg[mg++]=void 0}}intersectionsWithRay(A,I,C,B,i,Q,e,E,t,a,s,r){try{sA(A,tC),sA(I,AC),sA(C,kA),sA(B,kA),p.rawquerypipeline_intersectionsWithRay(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q,Vg(e),E,!MI(t),MI(t)?0:t,!MI(a),MI(a)?0:a,!MI(s),MI(s)?0:s,Vg(r))}finally{hg[mg++]=void 0,hg[mg++]=void 0}}intersectionWithShape(A,I,C,B,i,Q,e,E,t,a){try{const l=p.__wbindgen_add_to_stack_pointer(-16);sA(A,tC),sA(I,AC),sA(C,kA),sA(B,Eg),sA(i,vI),p.rawquerypipeline_intersectionWithShape(l,this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q,!MI(e),MI(e)?0:e,!MI(E),MI(E)?0:E,!MI(t),MI(t)?0:t,Vg(a));var s=ZI()[l/4+0],r=Fr()[l/8+1];return s===0?void 0:r}finally{p.__wbindgen_add_to_stack_pointer(16),hg[mg++]=void 0}}projectPoint(A,I,C,B,i,Q,e,E,t){try{sA(A,tC),sA(I,AC),sA(C,kA);const a=p.rawquerypipeline_projectPoint(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B,i,!MI(Q),MI(Q)?0:Q,!MI(e),MI(e)?0:e,!MI(E),MI(E)?0:E,Vg(t));return a===0?void 0:qh.__wrap(a)}finally{hg[mg++]=void 0}}projectPointAndGetFeature(A,I,C,B,i,Q,e,E){try{sA(A,tC),sA(I,AC),sA(C,kA);const t=p.rawquerypipeline_projectPointAndGetFeature(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B,!MI(i),MI(i)?0:i,!MI(Q),MI(Q)?0:Q,!MI(e),MI(e)?0:e,Vg(E));return t===0?void 0:qh.__wrap(t)}finally{hg[mg++]=void 0}}intersectionsWithPoint(A,I,C,B,i,Q,e,E,t){try{sA(A,tC),sA(I,AC),sA(C,kA),p.rawquerypipeline_intersectionsWithPoint(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,Vg(B),i,!MI(Q),MI(Q)?0:Q,!MI(e),MI(e)?0:e,!MI(E),MI(E)?0:E,Vg(t))}finally{hg[mg++]=void 0,hg[mg++]=void 0}}castShape(A,I,C,B,i,Q,e,E,t,a,s,r,l){try{sA(A,tC),sA(I,AC),sA(C,kA),sA(B,Eg),sA(i,kA),sA(Q,vI);const D=p.rawquerypipeline_castShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e,E,t,!MI(a),MI(a)?0:a,!MI(s),MI(s)?0:s,!MI(r),MI(r)?0:r,Vg(l));return D===0?void 0:jw.__wrap(D)}finally{hg[mg++]=void 0}}intersectionsWithShape(A,I,C,B,i,Q,e,E,t,a,s){try{sA(A,tC),sA(I,AC),sA(C,kA),sA(B,Eg),sA(i,vI),p.rawquerypipeline_intersectionsWithShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Vg(Q),e,!MI(E),MI(E)?0:E,!MI(t),MI(t)?0:t,!MI(a),MI(a)?0:a,Vg(s))}finally{hg[mg++]=void 0,hg[mg++]=void 0}}collidersWithAabbIntersectingAabb(A,I,C){try{sA(A,kA),sA(I,kA),p.rawquerypipeline_collidersWithAabbIntersectingAabb(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,Vg(C))}finally{hg[mg++]=void 0}}}class Pw{static __wrap(A){A>>>=0;const I=Object.create(Pw.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawraycolliderintersection_free(A)}colliderHandle(){return p.rawpointcolliderprojection_colliderHandle(this.__wbg_ptr)}normal(){const A=p.rawraycolliderintersection_normal(this.__wbg_ptr);return kA.__wrap(A)}toi(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}featureType(){return p.rawpointcolliderprojection_featureType(this.__wbg_ptr)}featureId(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawpointcolliderprojection_featureId(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=ZI()[C/4+1];return A===0?void 0:I>>>0}finally{p.__wbindgen_add_to_stack_pointer(16)}}}class ud{static __wrap(A){A>>>=0;const I=Object.create(ud.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawraycollidertoi_free(A)}colliderHandle(){return p.rawcharactercollision_handle(this.__wbg_ptr)}toi(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}}class Ww{static __wrap(A){A>>>=0;const I=Object.create(Ww.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawrayintersection_free(A)}normal(){const A=p.rawraycolliderintersection_normal(this.__wbg_ptr);return kA.__wrap(A)}toi(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}featureType(){return p.rawpointcolliderprojection_featureType(this.__wbg_ptr)}featureId(){try{const C=p.__wbindgen_add_to_stack_pointer(-16);p.rawpointcolliderprojection_featureId(C,this.__wbg_ptr);var A=ZI()[C/4+0],I=ZI()[C/4+1];return A===0?void 0:I>>>0}finally{p.__wbindgen_add_to_stack_pointer(16)}}}class tC{static __wrap(A){A>>>=0;const I=Object.create(tC.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawrigidbodyset_free(A)}rbTranslation(A){const I=p.rawrigidbodyset_rbTranslation(this.__wbg_ptr,A);return kA.__wrap(I)}rbRotation(A){const I=p.rawrigidbodyset_rbRotation(this.__wbg_ptr,A);return Eg.__wrap(I)}rbSleep(A){p.rawrigidbodyset_rbSleep(this.__wbg_ptr,A)}rbIsSleeping(A){return p.rawrigidbodyset_rbIsSleeping(this.__wbg_ptr,A)!==0}rbIsMoving(A){return p.rawrigidbodyset_rbIsMoving(this.__wbg_ptr,A)!==0}rbNextTranslation(A){const I=p.rawrigidbodyset_rbNextTranslation(this.__wbg_ptr,A);return kA.__wrap(I)}rbNextRotation(A){const I=p.rawrigidbodyset_rbNextRotation(this.__wbg_ptr,A);return Eg.__wrap(I)}rbSetTranslation(A,I,C,B,i){p.rawrigidbodyset_rbSetTranslation(this.__wbg_ptr,A,I,C,B,i)}rbSetRotation(A,I,C,B,i,Q){p.rawrigidbodyset_rbSetRotation(this.__wbg_ptr,A,I,C,B,i,Q)}rbSetLinvel(A,I,C){sA(I,kA),p.rawrigidbodyset_rbSetLinvel(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbSetAngvel(A,I,C){sA(I,kA),p.rawrigidbodyset_rbSetAngvel(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbSetNextKinematicTranslation(A,I,C,B){p.rawrigidbodyset_rbSetNextKinematicTranslation(this.__wbg_ptr,A,I,C,B)}rbSetNextKinematicRotation(A,I,C,B,i){p.rawrigidbodyset_rbSetNextKinematicRotation(this.__wbg_ptr,A,I,C,B,i)}rbRecomputeMassPropertiesFromColliders(A,I){sA(I,AC),p.rawrigidbodyset_rbRecomputeMassPropertiesFromColliders(this.__wbg_ptr,A,I.__wbg_ptr)}rbSetAdditionalMass(A,I,C){p.rawrigidbodyset_rbSetAdditionalMass(this.__wbg_ptr,A,I,C)}rbSetAdditionalMassProperties(A,I,C,B,i,Q){sA(C,kA),sA(B,kA),sA(i,Eg),p.rawrigidbodyset_rbSetAdditionalMassProperties(this.__wbg_ptr,A,I,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q)}rbLinvel(A){const I=p.rawrigidbodyset_rbLinvel(this.__wbg_ptr,A);return kA.__wrap(I)}rbAngvel(A){const I=p.rawrigidbodyset_rbAngvel(this.__wbg_ptr,A);return kA.__wrap(I)}rbLockTranslations(A,I,C){p.rawrigidbodyset_rbLockTranslations(this.__wbg_ptr,A,I,C)}rbSetEnabledTranslations(A,I,C,B,i){p.rawrigidbodyset_rbSetEnabledTranslations(this.__wbg_ptr,A,I,C,B,i)}rbLockRotations(A,I,C){p.rawrigidbodyset_rbLockRotations(this.__wbg_ptr,A,I,C)}rbSetEnabledRotations(A,I,C,B,i){p.rawrigidbodyset_rbSetEnabledRotations(this.__wbg_ptr,A,I,C,B,i)}rbDominanceGroup(A){return p.rawrigidbodyset_rbDominanceGroup(this.__wbg_ptr,A)}rbSetDominanceGroup(A,I){p.rawrigidbodyset_rbSetDominanceGroup(this.__wbg_ptr,A,I)}rbEnableCcd(A,I){p.rawrigidbodyset_rbEnableCcd(this.__wbg_ptr,A,I)}rbMass(A){return p.rawrigidbodyset_rbMass(this.__wbg_ptr,A)}rbInvMass(A){return p.rawrigidbodyset_rbInvMass(this.__wbg_ptr,A)}rbEffectiveInvMass(A){const I=p.rawrigidbodyset_rbEffectiveInvMass(this.__wbg_ptr,A);return kA.__wrap(I)}rbLocalCom(A){const I=p.rawrigidbodyset_rbLocalCom(this.__wbg_ptr,A);return kA.__wrap(I)}rbWorldCom(A){const I=p.rawrigidbodyset_rbWorldCom(this.__wbg_ptr,A);return kA.__wrap(I)}rbInvPrincipalInertiaSqrt(A){const I=p.rawrigidbodyset_rbInvPrincipalInertiaSqrt(this.__wbg_ptr,A);return kA.__wrap(I)}rbPrincipalInertiaLocalFrame(A){const I=p.rawrigidbodyset_rbPrincipalInertiaLocalFrame(this.__wbg_ptr,A);return Eg.__wrap(I)}rbPrincipalInertia(A){const I=p.rawrigidbodyset_rbPrincipalInertia(this.__wbg_ptr,A);return kA.__wrap(I)}rbEffectiveWorldInvInertiaSqrt(A){const I=p.rawrigidbodyset_rbEffectiveWorldInvInertiaSqrt(this.__wbg_ptr,A);return mh.__wrap(I)}rbEffectiveAngularInertia(A){const I=p.rawrigidbodyset_rbEffectiveAngularInertia(this.__wbg_ptr,A);return mh.__wrap(I)}rbWakeUp(A){p.rawrigidbodyset_rbWakeUp(this.__wbg_ptr,A)}rbIsCcdEnabled(A){return p.rawrigidbodyset_rbIsCcdEnabled(this.__wbg_ptr,A)!==0}rbNumColliders(A){return p.rawrigidbodyset_rbNumColliders(this.__wbg_ptr,A)>>>0}rbCollider(A,I){return p.rawrigidbodyset_rbCollider(this.__wbg_ptr,A,I)}rbBodyType(A){return p.rawrigidbodyset_rbBodyType(this.__wbg_ptr,A)}rbSetBodyType(A,I,C){p.rawrigidbodyset_rbSetBodyType(this.__wbg_ptr,A,I,C)}rbIsFixed(A){return p.rawrigidbodyset_rbIsFixed(this.__wbg_ptr,A)!==0}rbIsKinematic(A){return p.rawrigidbodyset_rbIsKinematic(this.__wbg_ptr,A)!==0}rbIsDynamic(A){return p.rawrigidbodyset_rbIsDynamic(this.__wbg_ptr,A)!==0}rbLinearDamping(A){return p.rawrigidbodyset_rbLinearDamping(this.__wbg_ptr,A)}rbAngularDamping(A){return p.rawrigidbodyset_rbAngularDamping(this.__wbg_ptr,A)}rbSetLinearDamping(A,I){p.rawrigidbodyset_rbSetLinearDamping(this.__wbg_ptr,A,I)}rbSetAngularDamping(A,I){p.rawrigidbodyset_rbSetAngularDamping(this.__wbg_ptr,A,I)}rbSetEnabled(A,I){p.rawrigidbodyset_rbSetEnabled(this.__wbg_ptr,A,I)}rbIsEnabled(A){return p.rawrigidbodyset_rbIsEnabled(this.__wbg_ptr,A)!==0}rbGravityScale(A){return p.rawrigidbodyset_rbGravityScale(this.__wbg_ptr,A)}rbSetGravityScale(A,I,C){p.rawrigidbodyset_rbSetGravityScale(this.__wbg_ptr,A,I,C)}rbResetForces(A,I){p.rawrigidbodyset_rbResetForces(this.__wbg_ptr,A,I)}rbResetTorques(A,I){p.rawrigidbodyset_rbResetTorques(this.__wbg_ptr,A,I)}rbAddForce(A,I,C){sA(I,kA),p.rawrigidbodyset_rbAddForce(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbApplyImpulse(A,I,C){sA(I,kA),p.rawrigidbodyset_rbApplyImpulse(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbAddTorque(A,I,C){sA(I,kA),p.rawrigidbodyset_rbAddTorque(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbApplyTorqueImpulse(A,I,C){sA(I,kA),p.rawrigidbodyset_rbApplyTorqueImpulse(this.__wbg_ptr,A,I.__wbg_ptr,C)}rbAddForceAtPoint(A,I,C,B){sA(I,kA),sA(C,kA),p.rawrigidbodyset_rbAddForceAtPoint(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B)}rbApplyImpulseAtPoint(A,I,C,B){sA(I,kA),sA(C,kA),p.rawrigidbodyset_rbApplyImpulseAtPoint(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B)}rbAdditionalSolverIterations(A){return p.rawrigidbodyset_rbAdditionalSolverIterations(this.__wbg_ptr,A)>>>0}rbSetAdditionalSolverIterations(A,I){p.rawrigidbodyset_rbSetAdditionalSolverIterations(this.__wbg_ptr,A,I)}rbUserData(A){return p.rawrigidbodyset_rbUserData(this.__wbg_ptr,A)>>>0}rbSetUserData(A,I){p.rawrigidbodyset_rbSetUserData(this.__wbg_ptr,A,I)}constructor(){const A=p.rawrigidbodyset_new();return this.__wbg_ptr=A>>>0,this}createRigidBody(A,I,C,B,i,Q,e,E,t,a,s,r,l,D,G,h,c,y,S,k,f,d,N,q,P){return sA(I,kA),sA(C,Eg),sA(e,kA),sA(E,kA),sA(t,kA),sA(a,kA),sA(s,Eg),p.rawrigidbodyset_createRigidBody(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B,i,Q,e.__wbg_ptr,E.__wbg_ptr,t.__wbg_ptr,a.__wbg_ptr,s.__wbg_ptr,r,l,D,G,h,c,y,S,k,f,d,N,q,P)}remove(A,I,C,B,i){sA(I,we),sA(C,AC),sA(B,he),sA(i,Se),p.rawrigidbodyset_remove(this.__wbg_ptr,A,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr)}len(){return p.rawcolliderset_len(this.__wbg_ptr)>>>0}contains(A){return p.rawrigidbodyset_contains(this.__wbg_ptr,A)!==0}forEachRigidBodyHandle(A){try{p.rawrigidbodyset_forEachRigidBodyHandle(this.__wbg_ptr,Vg(A))}finally{hg[mg++]=void 0}}propagateModifiedBodyPositionsToColliders(A){sA(A,AC),p.rawrigidbodyset_propagateModifiedBodyPositionsToColliders(this.__wbg_ptr,A.__wbg_ptr)}}class Eg{static __wrap(A){A>>>=0;const I=Object.create(Eg.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawrotation_free(A)}constructor(A,I,C,B){const i=p.rawrotation_new(A,I,C,B);return this.__wbg_ptr=i>>>0,this}static identity(){const A=p.rawrotation_identity();return Eg.__wrap(A)}get x(){return p.rawrotation_x(this.__wbg_ptr)}get y(){return p.rawintegrationparameters_dt(this.__wbg_ptr)}get z(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}get w(){return p.rawintegrationparameters_erp(this.__wbg_ptr)}}class mh{static __wrap(A){A>>>=0;const I=Object.create(mh.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawsdpmatrix3_free(A)}elements(){return Nr(p.rawsdpmatrix3_elements(this.__wbg_ptr))}}class hV{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawserializationpipeline_free(A)}constructor(){const A=p.rawserializationpipeline_new();return this.__wbg_ptr=A>>>0,this}serializeAll(A,I,C,B,i,Q,e,E,t){return sA(A,kA),sA(I,go),sA(C,we),sA(B,Io),sA(i,FE),sA(Q,tC),sA(e,AC),sA(E,he),sA(t,Se),Nr(p.rawserializationpipeline_serializeAll(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e.__wbg_ptr,E.__wbg_ptr,t.__wbg_ptr))}deserializeAll(A){const I=p.rawserializationpipeline_deserializeAll(this.__wbg_ptr,kC(A));return I===0?void 0:Gd.__wrap(I)}}class vI{static __wrap(A){A>>>=0;const I=Object.create(vI.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawshape_free(A)}static cuboid(A,I,C){const B=p.rawshape_cuboid(A,I,C);return vI.__wrap(B)}static roundCuboid(A,I,C,B){const i=p.rawshape_roundCuboid(A,I,C,B);return vI.__wrap(i)}static ball(A){const I=p.rawshape_ball(A);return vI.__wrap(I)}static halfspace(A){sA(A,kA);const I=p.rawshape_halfspace(A.__wbg_ptr);return vI.__wrap(I)}static capsule(A,I){const C=p.rawshape_capsule(A,I);return vI.__wrap(C)}static cylinder(A,I){const C=p.rawshape_cylinder(A,I);return vI.__wrap(C)}static roundCylinder(A,I,C){const B=p.rawshape_roundCylinder(A,I,C);return vI.__wrap(B)}static cone(A,I){const C=p.rawshape_cone(A,I);return vI.__wrap(C)}static roundCone(A,I,C){const B=p.rawshape_roundCone(A,I,C);return vI.__wrap(B)}static polyline(A,I){const C=yt(A,p.__wbindgen_malloc),B=Bi,i=kD(I,p.__wbindgen_malloc),Q=Bi,e=p.rawshape_polyline(C,B,i,Q);return vI.__wrap(e)}static trimesh(A,I){const C=yt(A,p.__wbindgen_malloc),B=Bi,i=kD(I,p.__wbindgen_malloc),Q=Bi,e=p.rawshape_trimesh(C,B,i,Q);return vI.__wrap(e)}static heightfield(A,I,C,B){const i=yt(C,p.__wbindgen_malloc),Q=Bi;sA(B,kA);const e=p.rawshape_heightfield(A,I,i,Q,B.__wbg_ptr);return vI.__wrap(e)}static segment(A,I){sA(A,kA),sA(I,kA);const C=p.rawshape_segment(A.__wbg_ptr,I.__wbg_ptr);return vI.__wrap(C)}static triangle(A,I,C){sA(A,kA),sA(I,kA),sA(C,kA);const B=p.rawshape_triangle(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr);return vI.__wrap(B)}static roundTriangle(A,I,C,B){sA(A,kA),sA(I,kA),sA(C,kA);const i=p.rawshape_roundTriangle(A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B);return vI.__wrap(i)}static convexHull(A){const I=yt(A,p.__wbindgen_malloc),C=Bi,B=p.rawshape_convexHull(I,C);return B===0?void 0:vI.__wrap(B)}static roundConvexHull(A,I){const C=yt(A,p.__wbindgen_malloc),B=Bi,i=p.rawshape_roundConvexHull(C,B,I);return i===0?void 0:vI.__wrap(i)}static convexMesh(A,I){const C=yt(A,p.__wbindgen_malloc),B=Bi,i=kD(I,p.__wbindgen_malloc),Q=Bi,e=p.rawshape_convexMesh(C,B,i,Q);return e===0?void 0:vI.__wrap(e)}static roundConvexMesh(A,I,C){const B=yt(A,p.__wbindgen_malloc),i=Bi,Q=kD(I,p.__wbindgen_malloc),e=Bi,E=p.rawshape_roundConvexMesh(B,i,Q,e,C);return E===0?void 0:vI.__wrap(E)}castShape(A,I,C,B,i,Q,e,E,t){sA(A,kA),sA(I,Eg),sA(C,kA),sA(B,vI),sA(i,kA),sA(Q,Eg),sA(e,kA);const a=p.rawshape_castShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q.__wbg_ptr,e.__wbg_ptr,E,t);return a===0?void 0:Vw.__wrap(a)}intersectsShape(A,I,C,B,i){return sA(A,kA),sA(I,Eg),sA(C,vI),sA(B,kA),sA(i,Eg),p.rawshape_intersectsShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr)!==0}contactShape(A,I,C,B,i,Q){sA(A,kA),sA(I,Eg),sA(C,vI),sA(B,kA),sA(i,Eg);const e=p.rawshape_contactShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i.__wbg_ptr,Q);return e===0?void 0:fr.__wrap(e)}containsPoint(A,I,C){return sA(A,kA),sA(I,Eg),sA(C,kA),p.rawshape_containsPoint(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr)!==0}projectPoint(A,I,C,B){sA(A,kA),sA(I,Eg),sA(C,kA);const i=p.rawshape_projectPoint(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B);return Zw.__wrap(i)}intersectsRay(A,I,C,B,i){return sA(A,kA),sA(I,Eg),sA(C,kA),sA(B,kA),p.rawshape_intersectsRay(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i)!==0}castRay(A,I,C,B,i,Q){return sA(A,kA),sA(I,Eg),sA(C,kA),sA(B,kA),p.rawshape_castRay(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q)}castRayAndGetNormal(A,I,C,B,i,Q){sA(A,kA),sA(I,Eg),sA(C,kA),sA(B,kA);const e=p.rawshape_castRayAndGetNormal(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,i,Q);return e===0?void 0:Ww.__wrap(e)}}class jw{static __wrap(A){A>>>=0;const I=Object.create(jw.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawshapecollidertoi_free(A)}colliderHandle(){return p.rawcharactercollision_handle(this.__wbg_ptr)}toi(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}witness1(){const A=p.rawraycolliderintersection_normal(this.__wbg_ptr);return kA.__wrap(A)}witness2(){const A=p.rawshapecollidertoi_witness2(this.__wbg_ptr);return kA.__wrap(A)}normal1(){const A=p.rawcharactercollision_translationDeltaApplied(this.__wbg_ptr);return kA.__wrap(A)}normal2(){const A=p.rawcharactercollision_translationDeltaRemaining(this.__wbg_ptr);return kA.__wrap(A)}}class fr{static __wrap(A){A>>>=0;const I=Object.create(fr.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawshapecontact_free(A)}distance(){return p.rawkinematiccharactercontroller_maxSlopeClimbAngle(this.__wbg_ptr)}point1(){const A=p.rawpointprojection_point(this.__wbg_ptr);return kA.__wrap(A)}point2(){const A=p.rawraycolliderintersection_normal(this.__wbg_ptr);return kA.__wrap(A)}normal1(){const A=p.rawshapecollidertoi_witness2(this.__wbg_ptr);return kA.__wrap(A)}normal2(){const A=p.rawcharactercollision_translationDeltaApplied(this.__wbg_ptr);return kA.__wrap(A)}}class Vw{static __wrap(A){A>>>=0;const I=Object.create(Vw.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawshapetoi_free(A)}toi(){return p.rawrotation_x(this.__wbg_ptr)}witness1(){const A=p.rawshapetoi_witness1(this.__wbg_ptr);return kA.__wrap(A)}witness2(){const A=p.rawcontactforceevent_total_force(this.__wbg_ptr);return kA.__wrap(A)}normal1(){const A=p.rawshapetoi_normal1(this.__wbg_ptr);return kA.__wrap(A)}normal2(){const A=p.rawshapetoi_normal2(this.__wbg_ptr);return kA.__wrap(A)}}class kA{static __wrap(A){A>>>=0;const I=Object.create(kA.prototype);return I.__wbg_ptr=A,I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,A}free(){const A=this.__destroy_into_raw();p.__wbg_rawvector_free(A)}static zero(){const A=p.rawvector_zero();return kA.__wrap(A)}constructor(A,I,C){const B=p.rawvector_new(A,I,C);return this.__wbg_ptr=B>>>0,this}get x(){return p.rawrotation_x(this.__wbg_ptr)}set x(A){p.rawvector_set_x(this.__wbg_ptr,A)}get y(){return p.rawintegrationparameters_dt(this.__wbg_ptr)}set y(A){p.rawintegrationparameters_set_dt(this.__wbg_ptr,A)}get z(){return p.rawraycolliderintersection_toi(this.__wbg_ptr)}set z(A){p.rawvector_set_z(this.__wbg_ptr,A)}xyz(){const A=p.rawvector_xyz(this.__wbg_ptr);return kA.__wrap(A)}yxz(){const A=p.rawvector_yxz(this.__wbg_ptr);return kA.__wrap(A)}zxy(){const A=p.rawvector_zxy(this.__wbg_ptr);return kA.__wrap(A)}xzy(){const A=p.rawvector_xzy(this.__wbg_ptr);return kA.__wrap(A)}yzx(){const A=p.rawvector_yzx(this.__wbg_ptr);return kA.__wrap(A)}zyx(){const A=p.rawvector_zyx(this.__wbg_ptr);return kA.__wrap(A)}}async function lH(g){if(p!==void 0)return p;g===void 0&&(g=new URL("rapier_wasm3d_bg.wasm",""));const A=function(){const B={wbg:{}};return B.wbg.__wbindgen_number_new=function(i){return kC(i)},B.wbg.__wbindgen_boolean_get=function(i){const Q=pg(i);return typeof Q=="boolean"?Q?1:0:2},B.wbg.__wbindgen_object_drop_ref=function(i){Nr(i)},B.wbg.__wbindgen_number_get=function(i,Q){const e=pg(Q),E=typeof e=="number"?e:void 0;Fr()[i/8+1]=MI(E)?0:E,ZI()[i/4+0]=!MI(E)},B.wbg.__wbindgen_is_function=function(i){return typeof pg(i)=="function"},B.wbg.__wbg_rawraycolliderintersection_new=function(i){return kC(Pw.__wrap(i))},B.wbg.__wbg_rawcontactforceevent_new=function(i){return kC(hd.__wrap(i))},B.wbg.__wbg_call_01734de55d61e11d=function(){return B0(function(i,Q,e){return kC(pg(i).call(pg(Q),pg(e)))},arguments)},B.wbg.__wbg_call_4c92f6aec1e1d6e6=function(){return B0(function(i,Q,e,E){return kC(pg(i).call(pg(Q),pg(e),pg(E)))},arguments)},B.wbg.__wbg_call_776890ca77946e2f=function(){return B0(function(i,Q,e,E,t){return kC(pg(i).call(pg(Q),pg(e),pg(E),pg(t)))},arguments)},B.wbg.__wbg_bind_60a9a80cada2f33c=function(i,Q,e,E){return kC(pg(i).bind(pg(Q),pg(e),pg(E)))},B.wbg.__wbg_buffer_085ec1f694018c4f=function(i){return kC(pg(i).buffer)},B.wbg.__wbg_newwithbyteoffsetandlength_6da8e527659b86aa=function(i,Q,e){return kC(new Uint8Array(pg(i),Q>>>0,e>>>0))},B.wbg.__wbg_new_8125e318e6245eed=function(i){return kC(new Uint8Array(pg(i)))},B.wbg.__wbg_set_5cf90238115182c3=function(i,Q,e){pg(i).set(pg(Q),e>>>0)},B.wbg.__wbg_length_72e2208bbc0efc61=function(i){return pg(i).length},B.wbg.__wbg_newwithbyteoffsetandlength_69193e31c844b792=function(i,Q,e){return kC(new Float32Array(pg(i),Q>>>0,e>>>0))},B.wbg.__wbg_set_6146c51d49a2c0df=function(i,Q,e){pg(i).set(pg(Q),e>>>0)},B.wbg.__wbg_length_d7327c75a759af37=function(i){return pg(i).length},B.wbg.__wbg_newwithlength_68d29ab115d0099c=function(i){return kC(new Float32Array(i>>>0))},B.wbg.__wbindgen_throw=function(i,Q){throw new Error(nH(i,Q))},B.wbg.__wbindgen_memory=function(){return kC(p.memory)},B}();(typeof g=="string"||typeof Request=="function"&&g instanceof Request||typeof URL=="function"&&g instanceof URL)&&(g=fetch(g));const{instance:I,module:C}=await async function(B,i){if(typeof Response=="function"&&B instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(B,i)}catch(e){if(B.headers.get("Content-Type")=="application/wasm")throw e;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",e)}const Q=await B.arrayBuffer();return await WebAssembly.instantiate(Q,i)}{const Q=await WebAssembly.instantiate(B,i);return Q instanceof WebAssembly.Instance?{instance:Q,module:B}:Q}}(await g,A);return function(B,i){return p=B.exports,lH.__wbindgen_wasm_module=i,fs=null,Us=null,Ns=null,Rs=null,Fs=null,p}(I,C)}class bn{constructor(A,I,C){this.x=A,this.y=I,this.z=C}}class uA{static new(A,I,C){return new bn(A,I,C)}static intoRaw(A){return new kA(A.x,A.y,A.z)}static zeros(){return uA.new(0,0,0)}static fromRaw(A){if(!A)return null;let I=uA.new(A.x,A.y,A.z);return A.free(),I}static copy(A,I){A.x=I.x,A.y=I.y,A.z=I.z}}class Lh{constructor(A,I,C,B){this.x=A,this.y=I,this.z=C,this.w=B}}class Cg{static identity(){return new Lh(0,0,0,1)}static fromRaw(A){if(!A)return null;let I=new Lh(A.x,A.y,A.z,A.w);return A.free(),I}static intoRaw(A){return new Eg(A.x,A.y,A.z,A.w)}static copy(A,I){A.x=I.x,A.y=I.y,A.z=I.z,A.w=I.w}}class kd{constructor(A){this.elements=A}get m11(){return this.elements[0]}get m12(){return this.elements[1]}get m21(){return this.m12}get m13(){return this.elements[2]}get m31(){return this.m13}get m22(){return this.elements[3]}get m23(){return this.elements[4]}get m32(){return this.m23}get m33(){return this.elements[5]}}class Yh{static fromRaw(A){const I=new kd(A.elements());return A.free(),I}}var fi,WC,Hh,Th,Qa,Co,SC,xh,oe,Rr,vh,Kr,QE;(function(g){g[g.Dynamic=0]="Dynamic",g[g.Fixed=1]="Fixed",g[g.KinematicPositionBased=2]="KinematicPositionBased",g[g.KinematicVelocityBased=3]="KinematicVelocityBased"})(fi||(fi={}));class bh{constructor(A,I,C){this.rawSet=A,this.colliderSet=I,this.handle=C}finalizeDeserialization(A){this.colliderSet=A}isValid(){return this.rawSet.contains(this.handle)}lockTranslations(A,I){return this.rawSet.rbLockTranslations(this.handle,A,I)}lockRotations(A,I){return this.rawSet.rbLockRotations(this.handle,A,I)}setEnabledTranslations(A,I,C,B){return this.rawSet.rbSetEnabledTranslations(this.handle,A,I,C,B)}restrictTranslations(A,I,C,B){this.setEnabledTranslations(A,I,C,B)}setEnabledRotations(A,I,C,B){return this.rawSet.rbSetEnabledRotations(this.handle,A,I,C,B)}restrictRotations(A,I,C,B){this.setEnabledRotations(A,I,C,B)}dominanceGroup(){return this.rawSet.rbDominanceGroup(this.handle)}setDominanceGroup(A){this.rawSet.rbSetDominanceGroup(this.handle,A)}additionalSolverIterations(){return this.rawSet.rbAdditionalSolverIterations(this.handle)}setAdditionalSolverIterations(A){this.rawSet.rbSetAdditionalSolverIterations(this.handle,A)}enableCcd(A){this.rawSet.rbEnableCcd(this.handle,A)}translation(){let A=this.rawSet.rbTranslation(this.handle);return uA.fromRaw(A)}rotation(){let A=this.rawSet.rbRotation(this.handle);return Cg.fromRaw(A)}nextTranslation(){let A=this.rawSet.rbNextTranslation(this.handle);return uA.fromRaw(A)}nextRotation(){let A=this.rawSet.rbNextRotation(this.handle);return Cg.fromRaw(A)}setTranslation(A,I){this.rawSet.rbSetTranslation(this.handle,A.x,A.y,A.z,I)}setLinvel(A,I){let C=uA.intoRaw(A);this.rawSet.rbSetLinvel(this.handle,C,I),C.free()}gravityScale(){return this.rawSet.rbGravityScale(this.handle)}setGravityScale(A,I){this.rawSet.rbSetGravityScale(this.handle,A,I)}setRotation(A,I){this.rawSet.rbSetRotation(this.handle,A.x,A.y,A.z,A.w,I)}setAngvel(A,I){let C=uA.intoRaw(A);this.rawSet.rbSetAngvel(this.handle,C,I),C.free()}setNextKinematicTranslation(A){this.rawSet.rbSetNextKinematicTranslation(this.handle,A.x,A.y,A.z)}setNextKinematicRotation(A){this.rawSet.rbSetNextKinematicRotation(this.handle,A.x,A.y,A.z,A.w)}linvel(){return uA.fromRaw(this.rawSet.rbLinvel(this.handle))}angvel(){return uA.fromRaw(this.rawSet.rbAngvel(this.handle))}mass(){return this.rawSet.rbMass(this.handle)}effectiveInvMass(){return uA.fromRaw(this.rawSet.rbEffectiveInvMass(this.handle))}invMass(){return this.rawSet.rbInvMass(this.handle)}localCom(){return uA.fromRaw(this.rawSet.rbLocalCom(this.handle))}worldCom(){return uA.fromRaw(this.rawSet.rbWorldCom(this.handle))}invPrincipalInertiaSqrt(){return uA.fromRaw(this.rawSet.rbInvPrincipalInertiaSqrt(this.handle))}principalInertia(){return uA.fromRaw(this.rawSet.rbPrincipalInertia(this.handle))}principalInertiaLocalFrame(){return Cg.fromRaw(this.rawSet.rbPrincipalInertiaLocalFrame(this.handle))}effectiveWorldInvInertiaSqrt(){return Yh.fromRaw(this.rawSet.rbEffectiveWorldInvInertiaSqrt(this.handle))}effectiveAngularInertia(){return Yh.fromRaw(this.rawSet.rbEffectiveAngularInertia(this.handle))}sleep(){this.rawSet.rbSleep(this.handle)}wakeUp(){this.rawSet.rbWakeUp(this.handle)}isCcdEnabled(){return this.rawSet.rbIsCcdEnabled(this.handle)}numColliders(){return this.rawSet.rbNumColliders(this.handle)}collider(A){return this.colliderSet.get(this.rawSet.rbCollider(this.handle,A))}setEnabled(A){this.rawSet.rbSetEnabled(this.handle,A)}isEnabled(){return this.rawSet.rbIsEnabled(this.handle)}bodyType(){return this.rawSet.rbBodyType(this.handle)}setBodyType(A,I){return this.rawSet.rbSetBodyType(this.handle,A,I)}isSleeping(){return this.rawSet.rbIsSleeping(this.handle)}isMoving(){return this.rawSet.rbIsMoving(this.handle)}isFixed(){return this.rawSet.rbIsFixed(this.handle)}isKinematic(){return this.rawSet.rbIsKinematic(this.handle)}isDynamic(){return this.rawSet.rbIsDynamic(this.handle)}linearDamping(){return this.rawSet.rbLinearDamping(this.handle)}angularDamping(){return this.rawSet.rbAngularDamping(this.handle)}setLinearDamping(A){this.rawSet.rbSetLinearDamping(this.handle,A)}recomputeMassPropertiesFromColliders(){this.rawSet.rbRecomputeMassPropertiesFromColliders(this.handle,this.colliderSet.raw)}setAdditionalMass(A,I){this.rawSet.rbSetAdditionalMass(this.handle,A,I)}setAdditionalMassProperties(A,I,C,B,i){let Q=uA.intoRaw(I),e=uA.intoRaw(C),E=Cg.intoRaw(B);this.rawSet.rbSetAdditionalMassProperties(this.handle,A,Q,e,E,i),Q.free(),e.free(),E.free()}setAngularDamping(A){this.rawSet.rbSetAngularDamping(this.handle,A)}resetForces(A){this.rawSet.rbResetForces(this.handle,A)}resetTorques(A){this.rawSet.rbResetTorques(this.handle,A)}addForce(A,I){const C=uA.intoRaw(A);this.rawSet.rbAddForce(this.handle,C,I),C.free()}applyImpulse(A,I){const C=uA.intoRaw(A);this.rawSet.rbApplyImpulse(this.handle,C,I),C.free()}addTorque(A,I){const C=uA.intoRaw(A);this.rawSet.rbAddTorque(this.handle,C,I),C.free()}applyTorqueImpulse(A,I){const C=uA.intoRaw(A);this.rawSet.rbApplyTorqueImpulse(this.handle,C,I),C.free()}addForceAtPoint(A,I,C){const B=uA.intoRaw(A),i=uA.intoRaw(I);this.rawSet.rbAddForceAtPoint(this.handle,B,i,C),B.free(),i.free()}applyImpulseAtPoint(A,I,C){const B=uA.intoRaw(A),i=uA.intoRaw(I);this.rawSet.rbApplyImpulseAtPoint(this.handle,B,i,C),B.free(),i.free()}}class Ri{constructor(A){this.enabled=!0,this.status=A,this.translation=uA.zeros(),this.rotation=Cg.identity(),this.gravityScale=1,this.linvel=uA.zeros(),this.mass=0,this.massOnly=!1,this.centerOfMass=uA.zeros(),this.translationsEnabledX=!0,this.translationsEnabledY=!0,this.angvel=uA.zeros(),this.principalAngularInertia=uA.zeros(),this.angularInertiaLocalFrame=Cg.identity(),this.translationsEnabledZ=!0,this.rotationsEnabledX=!0,this.rotationsEnabledY=!0,this.rotationsEnabledZ=!0,this.linearDamping=0,this.angularDamping=0,this.canSleep=!0,this.sleeping=!1,this.ccdEnabled=!1,this.dominanceGroup=0,this.additionalSolverIterations=0}static dynamic(){return new Ri(fi.Dynamic)}static kinematicPositionBased(){return new Ri(fi.KinematicPositionBased)}static kinematicVelocityBased(){return new Ri(fi.KinematicVelocityBased)}static fixed(){return new Ri(fi.Fixed)}static newDynamic(){return new Ri(fi.Dynamic)}static newKinematicPositionBased(){return new Ri(fi.KinematicPositionBased)}static newKinematicVelocityBased(){return new Ri(fi.KinematicVelocityBased)}static newStatic(){return new Ri(fi.Fixed)}setDominanceGroup(A){return this.dominanceGroup=A,this}setAdditionalSolverIterations(A){return this.additionalSolverIterations=A,this}setEnabled(A){return this.enabled=A,this}setTranslation(A,I,C){if(typeof A!="number"||typeof I!="number"||typeof C!="number")throw TypeError("The translation components must be numbers.");return this.translation={x:A,y:I,z:C},this}setRotation(A){return Cg.copy(this.rotation,A),this}setGravityScale(A){return this.gravityScale=A,this}setAdditionalMass(A){return this.mass=A,this.massOnly=!0,this}setLinvel(A,I,C){if(typeof A!="number"||typeof I!="number"||typeof C!="number")throw TypeError("The linvel components must be numbers.");return this.linvel={x:A,y:I,z:C},this}setAngvel(A){return uA.copy(this.angvel,A),this}setAdditionalMassProperties(A,I,C,B){return this.mass=A,uA.copy(this.centerOfMass,I),uA.copy(this.principalAngularInertia,C),Cg.copy(this.angularInertiaLocalFrame,B),this.massOnly=!1,this}enabledTranslations(A,I,C){return this.translationsEnabledX=A,this.translationsEnabledY=I,this.translationsEnabledZ=C,this}restrictTranslations(A,I,C){return this.enabledTranslations(A,I,C)}lockTranslations(){return this.enabledTranslations(!1,!1,!1)}enabledRotations(A,I,C){return this.rotationsEnabledX=A,this.rotationsEnabledY=I,this.rotationsEnabledZ=C,this}restrictRotations(A,I,C){return this.enabledRotations(A,I,C)}lockRotations(){return this.restrictRotations(!1,!1,!1)}setLinearDamping(A){return this.linearDamping=A,this}setAngularDamping(A){return this.angularDamping=A,this}setCanSleep(A){return this.canSleep=A,this}setSleeping(A){return this.sleeping=A,this}setCcdEnabled(A){return this.ccdEnabled=A,this}setUserData(A){return this.userData=A,this}}class Xw{constructor(){this.fconv=new Float64Array(1),this.uconv=new Uint32Array(this.fconv.buffer),this.data=new Array,this.size=0}set(A,I){let C=this.index(A);for(;this.data.length<=C;)this.data.push(null);this.data[C]==null&&(this.size+=1),this.data[C]=I}len(){return this.size}delete(A){let I=this.index(A);IA!=null)}index(A){return this.fconv[0]=A,this.uconv[0]}}class Md{constructor(A){this.raw=A||new tC,this.map=new Xw,A&&A.forEachRigidBodyHandle(I=>{this.map.set(I,new bh(A,null,I))})}free(){this.raw&&this.raw.free(),this.raw=void 0,this.map&&this.map.clear(),this.map=void 0}finalizeDeserialization(A){this.map.forEach(I=>I.finalizeDeserialization(A))}createRigidBody(A,I){let C=uA.intoRaw(I.translation),B=Cg.intoRaw(I.rotation),i=uA.intoRaw(I.linvel),Q=uA.intoRaw(I.centerOfMass),e=uA.intoRaw(I.angvel),E=uA.intoRaw(I.principalAngularInertia),t=Cg.intoRaw(I.angularInertiaLocalFrame),a=this.raw.createRigidBody(I.enabled,C,B,I.gravityScale,I.mass,I.massOnly,Q,i,e,E,t,I.translationsEnabledX,I.translationsEnabledY,I.translationsEnabledZ,I.rotationsEnabledX,I.rotationsEnabledY,I.rotationsEnabledZ,I.linearDamping,I.angularDamping,I.status,I.canSleep,I.sleeping,I.ccdEnabled,I.dominanceGroup,I.additionalSolverIterations);C.free(),B.free(),i.free(),Q.free(),e.free(),E.free(),t.free();const s=new bh(this.raw,A,a);return s.userData=I.userData,this.map.set(a,s),s}remove(A,I,C,B,i){for(let Q=0;QB.unmap(Q)),i.forEachJointHandleAttachedToRigidBody(A,Q=>i.unmap(Q)),this.raw.remove(A,I.raw,C.raw,B.raw,i.raw),this.map.delete(A)}len(){return this.map.len()}contains(A){return this.get(A)!=null}get(A){return this.map.get(A)}forEach(A){this.map.forEach(A)}forEachActiveRigidBody(A,I){A.forEachActiveRigidBodyHandle(C=>{I(this.get(C))})}getAll(){return this.map.getAll()}}class dd{constructor(A){this.raw=A||new go}free(){this.raw&&this.raw.free(),this.raw=void 0}get dt(){return this.raw.dt}get erp(){return this.raw.erp}get allowedLinearError(){return this.raw.allowedLinearError}get predictionDistance(){return this.raw.predictionDistance}get numSolverIterations(){return this.raw.numSolverIterations}get numAdditionalFrictionIterations(){return this.raw.numAdditionalFrictionIterations}get numInternalPgsIterations(){return this.raw.numInternalPgsIterations}get minIslandSize(){return this.raw.minIslandSize}get maxCcdSubsteps(){return this.raw.maxCcdSubsteps}set dt(A){this.raw.dt=A}set erp(A){this.raw.erp=A}set allowedLinearError(A){this.raw.allowedLinearError=A}set predictionDistance(A){this.raw.predictionDistance=A}set numSolverIterations(A){this.raw.numSolverIterations=A}set numAdditionalFrictionIterations(A){this.raw.numAdditionalFrictionIterations=A}set numInternalPgsIterations(A){this.raw.numInternalPgsIterations=A}set minIslandSize(A){this.raw.minIslandSize=A}set maxCcdSubsteps(A){this.raw.maxCcdSubsteps=A}switchToStandardPgsSolver(){this.raw.switchToStandardPgsSolver()}switchToSmallStepsPgsSolver(){this.raw.switchToSmallStepsPgsSolver()}}(function(g){g[g.Revolute=0]="Revolute",g[g.Fixed=1]="Fixed",g[g.Prismatic=2]="Prismatic",g[g.Rope=3]="Rope",g[g.Spring=4]="Spring",g[g.Spherical=5]="Spherical",g[g.Generic=6]="Generic"})(WC||(WC={})),function(g){g[g.AccelerationBased=0]="AccelerationBased",g[g.ForceBased=1]="ForceBased"}(Hh||(Hh={})),function(g){g[g.X=1]="X",g[g.Y=2]="Y",g[g.Z=4]="Z",g[g.AngX=8]="AngX",g[g.AngY=16]="AngY",g[g.AngZ=32]="AngZ"}(Th||(Th={}));class xi{constructor(A,I,C){this.rawSet=A,this.bodySet=I,this.handle=C}static newTyped(A,I,C){switch(A.jointType(C)){case AQ.Revolute:return new fd(A,I,C);case AQ.Prismatic:return new Fd(A,I,C);case AQ.Fixed:return new pd(A,I,C);case AQ.Spring:return new Nd(A,I,C);case AQ.Rope:return new Ud(A,I,C);case AQ.Spherical:return new Kd(A,I,C);case AQ.Generic:return new Rd(A,I,C);default:return new xi(A,I,C)}}finalizeDeserialization(A){this.bodySet=A}isValid(){return this.rawSet.contains(this.handle)}body1(){return this.bodySet.get(this.rawSet.jointBodyHandle1(this.handle))}body2(){return this.bodySet.get(this.rawSet.jointBodyHandle2(this.handle))}type(){return this.rawSet.jointType(this.handle)}frameX1(){return Cg.fromRaw(this.rawSet.jointFrameX1(this.handle))}frameX2(){return Cg.fromRaw(this.rawSet.jointFrameX2(this.handle))}anchor1(){return uA.fromRaw(this.rawSet.jointAnchor1(this.handle))}anchor2(){return uA.fromRaw(this.rawSet.jointAnchor2(this.handle))}setAnchor1(A){const I=uA.intoRaw(A);this.rawSet.jointSetAnchor1(this.handle,I),I.free()}setAnchor2(A){const I=uA.intoRaw(A);this.rawSet.jointSetAnchor2(this.handle,I),I.free()}setContactsEnabled(A){this.rawSet.jointSetContactsEnabled(this.handle,A)}contactsEnabled(){return this.rawSet.jointContactsEnabled(this.handle)}}class zw extends xi{limitsEnabled(){return this.rawSet.jointLimitsEnabled(this.handle,this.rawAxis())}limitsMin(){return this.rawSet.jointLimitsMin(this.handle,this.rawAxis())}limitsMax(){return this.rawSet.jointLimitsMax(this.handle,this.rawAxis())}setLimits(A,I){this.rawSet.jointSetLimits(this.handle,this.rawAxis(),A,I)}configureMotorModel(A){this.rawSet.jointConfigureMotorModel(this.handle,this.rawAxis(),A)}configureMotorVelocity(A,I){this.rawSet.jointConfigureMotorVelocity(this.handle,this.rawAxis(),A,I)}configureMotorPosition(A,I,C){this.rawSet.jointConfigureMotorPosition(this.handle,this.rawAxis(),A,I,C)}configureMotor(A,I,C,B){this.rawSet.jointConfigureMotor(this.handle,this.rawAxis(),A,I,C,B)}}class pd extends xi{}class Ud extends xi{}class Nd extends xi{}class Fd extends zw{rawAxis(){return _w.X}}class fd extends zw{rawAxis(){return _w.AngX}}class Rd extends xi{}class Kd extends xi{}class MQ{constructor(){}static fixed(A,I,C,B){let i=new MQ;return i.anchor1=A,i.anchor2=C,i.frame1=I,i.frame2=B,i.jointType=WC.Fixed,i}static spring(A,I,C,B,i){let Q=new MQ;return Q.anchor1=B,Q.anchor2=i,Q.length=A,Q.stiffness=I,Q.damping=C,Q.jointType=WC.Spring,Q}static rope(A,I,C){let B=new MQ;return B.anchor1=I,B.anchor2=C,B.length=A,B.jointType=WC.Rope,B}static generic(A,I,C,B){let i=new MQ;return i.anchor1=A,i.anchor2=I,i.axis=C,i.axesMask=B,i.jointType=WC.Generic,i}static spherical(A,I){let C=new MQ;return C.anchor1=A,C.anchor2=I,C.jointType=WC.Spherical,C}static prismatic(A,I,C){let B=new MQ;return B.anchor1=A,B.anchor2=I,B.axis=C,B.jointType=WC.Prismatic,B}static revolute(A,I,C){let B=new MQ;return B.anchor1=A,B.anchor2=I,B.axis=C,B.jointType=WC.Revolute,B}intoRaw(){let A,I,C=uA.intoRaw(this.anchor1),B=uA.intoRaw(this.anchor2),i=!1,Q=0,e=0;switch(this.jointType){case WC.Fixed:let E=Cg.intoRaw(this.frame1),t=Cg.intoRaw(this.frame2);I=VC.fixed(C,E,B,t),E.free(),t.free();break;case WC.Spring:I=VC.spring(this.length,this.stiffness,this.damping,C,B);break;case WC.Rope:I=VC.rope(this.length,C,B);break;case WC.Prismatic:A=uA.intoRaw(this.axis),this.limitsEnabled&&(i=!0,Q=this.limits[0],e=this.limits[1]),I=VC.prismatic(C,B,A,i,Q,e),A.free();break;case WC.Generic:A=uA.intoRaw(this.axis);let a=this.axesMask;I=VC.generic(C,B,A,a);break;case WC.Spherical:I=VC.spherical(C,B);break;case WC.Revolute:A=uA.intoRaw(this.axis),I=VC.revolute(C,B,A),A.free()}return C.free(),B.free(),I}}class Jd{constructor(A){this.raw=A||new he,this.map=new Xw,A&&A.forEachJointHandle(I=>{this.map.set(I,xi.newTyped(A,null,I))})}free(){this.raw&&this.raw.free(),this.raw=void 0,this.map&&this.map.clear(),this.map=void 0}finalizeDeserialization(A){this.map.forEach(I=>I.finalizeDeserialization(A))}createJoint(A,I,C,B,i){const Q=I.intoRaw(),e=this.raw.createJoint(Q,C,B,i);Q.free();let E=xi.newTyped(this.raw,A,e);return this.map.set(e,E),E}remove(A,I){this.raw.remove(A,I),this.unmap(A)}forEachJointHandleAttachedToRigidBody(A,I){this.raw.forEachJointAttachedToRigidBody(A,I)}unmap(A){this.map.delete(A)}len(){return this.map.len()}contains(A){return this.get(A)!=null}get(A){return this.map.get(A)}forEach(A){this.map.forEach(A)}getAll(){return this.map.getAll()}}class Ge{constructor(A,I){this.rawSet=A,this.handle=I}static newTyped(A,I){switch(A.jointType(I)){case AQ.Revolute:return new Ld(A,I);case AQ.Prismatic:return new md(A,I);case AQ.Fixed:return new qd(A,I);case AQ.Spherical:return new Yd(A,I);default:return new Ge(A,I)}}isValid(){return this.rawSet.contains(this.handle)}setContactsEnabled(A){this.rawSet.jointSetContactsEnabled(this.handle,A)}contactsEnabled(){return this.rawSet.jointContactsEnabled(this.handle)}}class $w extends Ge{}class qd extends Ge{}class md extends $w{rawAxis(){return _w.X}}class Ld extends $w{rawAxis(){return _w.AngX}}class Yd extends Ge{}class Hd{constructor(A){this.raw=A||new Se,this.map=new Xw,A&&A.forEachJointHandle(I=>{this.map.set(I,Ge.newTyped(this.raw,I))})}free(){this.raw&&this.raw.free(),this.raw=void 0,this.map&&this.map.clear(),this.map=void 0}createJoint(A,I,C,B){const i=A.intoRaw(),Q=this.raw.createJoint(i,I,C,B);i.free();let e=Ge.newTyped(this.raw,Q);return this.map.set(Q,e),e}remove(A,I){this.raw.remove(A,I),this.map.delete(A)}unmap(A){this.map.delete(A)}len(){return this.map.len()}contains(A){return this.get(A)!=null}get(A){return this.map.get(A)}forEach(A){this.map.forEach(A)}forEachJointHandleAttachedToRigidBody(A,I){this.raw.forEachJointAttachedToRigidBody(A,I)}getAll(){return this.map.getAll()}}(function(g){g[g.Average=0]="Average",g[g.Min=1]="Min",g[g.Multiply=2]="Multiply",g[g.Max=3]="Max"})(Qa||(Qa={}));class Td{constructor(A){this.raw=A||new rk}free(){this.raw&&this.raw.free(),this.raw=void 0}}class xd{constructor(A){this.raw=A||new we}free(){this.raw&&this.raw.free(),this.raw=void 0}forEachActiveRigidBodyHandle(A){this.raw.forEachActiveRigidBodyHandle(A)}}class vd{constructor(A){this.raw=A||new Io}free(){this.raw&&this.raw.free(),this.raw=void 0}}class bd{constructor(A){this.raw=A||new FE,this.tempManifold=new Od(null)}free(){this.raw&&this.raw.free(),this.raw=void 0}contactPairsWith(A,I){this.raw.contact_pairs_with(A,I)}intersectionPairsWith(A,I){this.raw.intersection_pairs_with(A,I)}contactPair(A,I,C){const B=this.raw.contact_pair(A,I);if(B){const i=B.collider1()!=A;let Q;for(Q=0;QQ(Ea.fromRaw(I,D)),e,E,t,a,s),r.free(),l.free()}intersectionWithShape(A,I,C,B,i,Q,e,E,t,a){let s=uA.intoRaw(C),r=Cg.intoRaw(B),l=i.intoRaw(),D=this.raw.intersectionWithShape(A.raw,I.raw,s,r,l,Q,e,E,t,a);return s.free(),r.free(),l.free(),D}projectPoint(A,I,C,B,i,Q,e,E,t){let a=uA.intoRaw(C),s=ea.fromRaw(I,this.raw.projectPoint(A.raw,I.raw,a,B,i,Q,e,E,t));return a.free(),s}projectPointAndGetFeature(A,I,C,B,i,Q,e,E){let t=uA.intoRaw(C),a=ea.fromRaw(I,this.raw.projectPointAndGetFeature(A.raw,I.raw,t,B,i,Q,e,E));return t.free(),a}intersectionsWithPoint(A,I,C,B,i,Q,e,E,t){let a=uA.intoRaw(C);this.raw.intersectionsWithPoint(A.raw,I.raw,a,B,i,Q,e,E,t),a.free()}castShape(A,I,C,B,i,Q,e,E,t,a,s,r,l){let D=uA.intoRaw(C),G=Cg.intoRaw(B),h=uA.intoRaw(i),c=Q.intoRaw(),y=ka.fromRaw(I,this.raw.castShape(A.raw,I.raw,D,G,h,c,e,E,t,a,s,r,l));return D.free(),G.free(),h.free(),c.free(),y}intersectionsWithShape(A,I,C,B,i,Q,e,E,t,a,s){let r=uA.intoRaw(C),l=Cg.intoRaw(B),D=i.intoRaw();this.raw.intersectionsWithShape(A.raw,I.raw,r,l,D,Q,e,E,t,a,s),r.free(),l.free(),D.free()}collidersWithAabbIntersectingAabb(A,I,C){let B=uA.intoRaw(A),i=uA.intoRaw(I);this.raw.collidersWithAabbIntersectingAabb(B,i,C),B.free(),i.free()}}class Oh{constructor(A){this.raw=A||new hV}free(){this.raw&&this.raw.free(),this.raw=void 0}serializeAll(A,I,C,B,i,Q,e,E,t){let a=uA.intoRaw(A);const s=this.raw.serializeAll(a,I.raw,C.raw,B.raw,i.raw,Q.raw,e.raw,E.raw,t.raw);return a.free(),s}deserializeAll(A){return nl.fromRaw(this.raw.deserializeAll(A))}}class Wd{constructor(A,I){this.vertices=A,this.colors=I}}class jd{constructor(A){this.raw=A||new rV}free(){this.raw&&this.raw.free(),this.raw=void 0,this.vertices=void 0,this.colors=void 0}render(A,I,C,B,i){this.raw.render(A.raw,I.raw,C.raw,B.raw,i.raw),this.vertices=this.raw.vertices(),this.colors=this.raw.colors()}}class Vd{}class Xd{constructor(A,I,C,B,i){this.params=I,this.bodies=C,this.colliders=B,this.queries=i,this.raw=new cV(A),this.rawCharacterCollision=new sH,this._applyImpulsesToDynamicBodies=!1,this._characterMass=null}free(){this.raw&&(this.raw.free(),this.rawCharacterCollision.free()),this.raw=void 0,this.rawCharacterCollision=void 0}up(){return this.raw.up()}setUp(A){let I=uA.intoRaw(A);return this.raw.setUp(I)}applyImpulsesToDynamicBodies(){return this._applyImpulsesToDynamicBodies}setApplyImpulsesToDynamicBodies(A){this._applyImpulsesToDynamicBodies=A}characterMass(){return this._characterMass}setCharacterMass(A){this._characterMass=A}offset(){return this.raw.offset()}setOffset(A){this.raw.setOffset(A)}slideEnabled(){return this.raw.slideEnabled()}setSlideEnabled(A){this.raw.setSlideEnabled(A)}autostepMaxHeight(){return this.raw.autostepMaxHeight()}autostepMinWidth(){return this.raw.autostepMinWidth()}autostepIncludesDynamicBodies(){return this.raw.autostepIncludesDynamicBodies()}autostepEnabled(){return this.raw.autostepEnabled()}enableAutostep(A,I,C){this.raw.enableAutostep(A,I,C)}disableAutostep(){return this.raw.disableAutostep()}maxSlopeClimbAngle(){return this.raw.maxSlopeClimbAngle()}setMaxSlopeClimbAngle(A){this.raw.setMaxSlopeClimbAngle(A)}minSlopeSlideAngle(){return this.raw.minSlopeSlideAngle()}setMinSlopeSlideAngle(A){this.raw.setMinSlopeSlideAngle(A)}snapToGroundDistance(){return this.raw.snapToGroundDistance()}enableSnapToGround(A){this.raw.enableSnapToGround(A)}disableSnapToGround(){this.raw.disableSnapToGround()}snapToGroundEnabled(){return this.raw.snapToGroundEnabled()}computeColliderMovement(A,I,C,B,i){let Q=uA.intoRaw(I);this.raw.computeColliderMovement(this.params.dt,this.bodies.raw,this.colliders.raw,this.queries.raw,A.handle,Q,this._applyImpulsesToDynamicBodies,this._characterMass,C,B,this.colliders.castClosure(i)),Q.free()}computedMovement(){return uA.fromRaw(this.raw.computedMovement())}computedGrounded(){return this.raw.computedGrounded()}numComputedCollisions(){return this.raw.numComputedCollisions()}computedCollision(A,I){if(this.raw.computedCollision(A,this.rawCharacterCollision)){let C=this.rawCharacterCollision;return(I=I??new Vd).translationDeltaApplied=uA.fromRaw(C.translationDeltaApplied()),I.translationDeltaRemaining=uA.fromRaw(C.translationDeltaRemaining()),I.toi=C.toi(),I.witness1=uA.fromRaw(C.worldWitness1()),I.witness2=uA.fromRaw(C.worldWitness2()),I.normal1=uA.fromRaw(C.worldNormal1()),I.normal2=uA.fromRaw(C.worldNormal2()),I.collider=this.colliders.get(C.handle()),I}return null}}class zd{constructor(A,I,C,B){this.raw=new lV(A.handle),this.bodies=I,this.colliders=C,this.queries=B,this._chassis=A}free(){this.raw&&this.raw.free(),this.raw=void 0}updateVehicle(A,I,C,B){this.raw.update_vehicle(A,this.bodies.raw,this.colliders.raw,this.queries.raw,I,C,this.colliders.castClosure(B))}currentVehicleSpeed(){return this.raw.current_vehicle_speed()}chassis(){return this._chassis}get indexUpAxis(){return this.raw.index_up_axis()}set indexUpAxis(A){this.raw.set_index_up_axis(A)}get indexForwardAxis(){return this.raw.index_forward_axis()}set setIndexForwardAxis(A){this.raw.set_index_forward_axis(A)}addWheel(A,I,C,B,i){let Q=uA.intoRaw(A),e=uA.intoRaw(I),E=uA.intoRaw(C);this.raw.add_wheel(Q,e,E,B,i),Q.free(),e.free(),E.free()}numWheels(){return this.raw.num_wheels()}wheelChassisConnectionPointCs(A){return uA.fromRaw(this.raw.wheel_chassis_connection_point_cs(A))}setWheelChassisConnectionPointCs(A,I){let C=uA.intoRaw(I);this.raw.set_wheel_chassis_connection_point_cs(A,C),C.free()}wheelSuspensionRestLength(A){return this.raw.wheel_suspension_rest_length(A)}setWheelSuspensionRestLength(A,I){this.raw.set_wheel_suspension_rest_length(A,I)}wheelMaxSuspensionTravel(A){return this.raw.wheel_max_suspension_travel(A)}setWheelMaxSuspensionTravel(A,I){this.raw.set_wheel_max_suspension_travel(A,I)}wheelRadius(A){return this.raw.wheel_radius(A)}setWheelRadius(A,I){this.raw.set_wheel_radius(A,I)}wheelSuspensionStiffness(A){return this.raw.wheel_suspension_stiffness(A)}setWheelSuspensionStiffness(A,I){this.raw.set_wheel_suspension_stiffness(A,I)}wheelSuspensionCompression(A){return this.raw.wheel_suspension_compression(A)}setWheelSuspensionCompression(A,I){this.raw.set_wheel_suspension_compression(A,I)}wheelSuspensionRelaxation(A){return this.raw.wheel_suspension_relaxation(A)}setWheelSuspensionRelaxation(A,I){this.raw.set_wheel_suspension_relaxation(A,I)}wheelMaxSuspensionForce(A){return this.raw.wheel_max_suspension_force(A)}setWheelMaxSuspensionForce(A,I){this.raw.set_wheel_max_suspension_force(A,I)}wheelBrake(A){return this.raw.wheel_brake(A)}setWheelBrake(A,I){this.raw.set_wheel_brake(A,I)}wheelSteering(A){return this.raw.wheel_steering(A)}setWheelSteering(A,I){this.raw.set_wheel_steering(A,I)}wheelEngineForce(A){return this.raw.wheel_engine_force(A)}setWheelEngineForce(A,I){this.raw.set_wheel_engine_force(A,I)}wheelDirectionCs(A){return uA.fromRaw(this.raw.wheel_direction_cs(A))}setWheelDirectionCs(A,I){let C=uA.intoRaw(I);this.raw.set_wheel_direction_cs(A,C),C.free()}wheelAxleCs(A){return uA.fromRaw(this.raw.wheel_axle_cs(A))}setWheelAxleCs(A,I){let C=uA.intoRaw(I);this.raw.set_wheel_axle_cs(A,C),C.free()}wheelFrictionSlip(A){return this.raw.wheel_friction_slip(A)}setWheelFrictionSlip(A,I){this.raw.set_wheel_friction_slip(A,I)}wheelSideFrictionStiffness(A){return this.raw.wheel_side_friction_stiffness(A)}setWheelSideFrictionStiffness(A,I){this.raw.set_wheel_side_friction_stiffness(A,I)}wheelRotation(A){return this.raw.wheel_rotation(A)}wheelForwardImpulse(A){return this.raw.wheel_forward_impulse(A)}wheelSideImpulse(A){return this.raw.wheel_side_impulse(A)}wheelSuspensionForce(A){return this.raw.wheel_suspension_force(A)}wheelContactNormal(A){return uA.fromRaw(this.raw.wheel_contact_normal_ws(A))}wheelContactPoint(A){return uA.fromRaw(this.raw.wheel_contact_point_ws(A))}wheelSuspensionLength(A){return this.raw.wheel_suspension_length(A)}wheelHardPoint(A){return uA.fromRaw(this.raw.wheel_hard_point_ws(A))}wheelIsInContact(A){return this.raw.wheel_is_in_contact(A)}wheelGroundObject(A){return this.colliders.get(this.raw.wheel_ground_object(A))}}class nl{constructor(A,I,C,B,i,Q,e,E,t,a,s,r,l,D){this.gravity=A,this.integrationParameters=new dd(I),this.islands=new xd(C),this.broadPhase=new vd(B),this.narrowPhase=new bd(i),this.bodies=new Md(Q),this.colliders=new Ip(e),this.impulseJoints=new Jd(E),this.multibodyJoints=new Hd(t),this.ccdSolver=new Td(a),this.queryPipeline=new Pd(s),this.physicsPipeline=new Zd(r),this.serializationPipeline=new Oh(l),this.debugRenderPipeline=new jd(D),this.characterControllers=new Set,this.vehicleControllers=new Set,this.impulseJoints.finalizeDeserialization(this.bodies),this.bodies.finalizeDeserialization(this.colliders),this.colliders.finalizeDeserialization(this.bodies)}free(){this.integrationParameters.free(),this.islands.free(),this.broadPhase.free(),this.narrowPhase.free(),this.bodies.free(),this.colliders.free(),this.impulseJoints.free(),this.multibodyJoints.free(),this.ccdSolver.free(),this.queryPipeline.free(),this.physicsPipeline.free(),this.serializationPipeline.free(),this.debugRenderPipeline.free(),this.characterControllers.forEach(A=>A.free()),this.vehicleControllers.forEach(A=>A.free()),this.integrationParameters=void 0,this.islands=void 0,this.broadPhase=void 0,this.narrowPhase=void 0,this.bodies=void 0,this.colliders=void 0,this.ccdSolver=void 0,this.impulseJoints=void 0,this.multibodyJoints=void 0,this.queryPipeline=void 0,this.physicsPipeline=void 0,this.serializationPipeline=void 0,this.debugRenderPipeline=void 0,this.characterControllers=void 0,this.vehicleControllers=void 0}static fromRaw(A){return A?new nl(uA.fromRaw(A.takeGravity()),A.takeIntegrationParameters(),A.takeIslandManager(),A.takeBroadPhase(),A.takeNarrowPhase(),A.takeBodies(),A.takeColliders(),A.takeImpulseJoints(),A.takeMultibodyJoints()):null}takeSnapshot(){return this.serializationPipeline.serializeAll(this.gravity,this.integrationParameters,this.islands,this.broadPhase,this.narrowPhase,this.bodies,this.colliders,this.impulseJoints,this.multibodyJoints)}static restoreSnapshot(A){return new Oh().deserializeAll(A)}debugRender(){return this.debugRenderPipeline.render(this.bodies,this.colliders,this.impulseJoints,this.multibodyJoints,this.narrowPhase),new Wd(this.debugRenderPipeline.vertices,this.debugRenderPipeline.colors)}step(A,I){this.physicsPipeline.step(this.gravity,this.integrationParameters,this.islands,this.broadPhase,this.narrowPhase,this.bodies,this.colliders,this.impulseJoints,this.multibodyJoints,this.ccdSolver,A,I),this.queryPipeline.update(this.bodies,this.colliders)}propagateModifiedBodyPositionsToColliders(){this.bodies.raw.propagateModifiedBodyPositionsToColliders(this.colliders.raw)}updateSceneQueries(){this.propagateModifiedBodyPositionsToColliders(),this.queryPipeline.update(this.bodies,this.colliders)}get timestep(){return this.integrationParameters.dt}set timestep(A){this.integrationParameters.dt=A}get numSolverIterations(){return this.integrationParameters.numSolverIterations}set numSolverIterations(A){this.integrationParameters.numSolverIterations=A}get numAdditionalFrictionIterations(){return this.integrationParameters.numAdditionalFrictionIterations}set numAdditionalFrictionIterations(A){this.integrationParameters.numAdditionalFrictionIterations=A}get numInternalPgsIterations(){return this.integrationParameters.numInternalPgsIterations}set numInternalPgsIterations(A){this.integrationParameters.numInternalPgsIterations=A}switchToStandardPgsSolver(){this.integrationParameters.switchToStandardPgsSolver()}switchToSmallStepsPgsSolver(){this.integrationParameters.switchToSmallStepsPgsSolver()}createRigidBody(A){return this.bodies.createRigidBody(this.colliders,A)}createCharacterController(A){let I=new Xd(A,this.integrationParameters,this.bodies,this.colliders,this.queryPipeline);return this.characterControllers.add(I),I}removeCharacterController(A){this.characterControllers.delete(A),A.free()}createVehicleController(A){let I=new zd(A,this.bodies,this.colliders,this.queryPipeline);return this.vehicleControllers.add(I),I}removeVehicleController(A){this.vehicleControllers.delete(A),A.free()}createCollider(A,I){let C=I?I.handle:void 0;return this.colliders.createCollider(this.bodies,A,C)}createImpulseJoint(A,I,C,B){return this.impulseJoints.createJoint(this.bodies,A,I.handle,C.handle,B)}createMultibodyJoint(A,I,C,B){return this.multibodyJoints.createJoint(A,I.handle,C.handle,B)}getRigidBody(A){return this.bodies.get(A)}getCollider(A){return this.colliders.get(A)}getImpulseJoint(A){return this.impulseJoints.get(A)}getMultibodyJoint(A){return this.multibodyJoints.get(A)}removeRigidBody(A){this.bodies&&this.bodies.remove(A.handle,this.islands,this.colliders,this.impulseJoints,this.multibodyJoints)}removeCollider(A,I){this.colliders&&this.colliders.remove(A.handle,this.islands,this.bodies,I)}removeImpulseJoint(A,I){this.impulseJoints&&this.impulseJoints.remove(A.handle,I)}removeMultibodyJoint(A,I){this.impulseJoints&&this.multibodyJoints.remove(A.handle,I)}forEachCollider(A){this.colliders.forEach(A)}forEachRigidBody(A){this.bodies.forEach(A)}forEachActiveRigidBody(A){this.bodies.forEachActiveRigidBody(this.islands,A)}castRay(A,I,C,B,i,Q,e,E){return this.queryPipeline.castRay(this.bodies,this.colliders,A,I,C,B,i,Q?Q.handle:null,e?e.handle:null,this.colliders.castClosure(E))}castRayAndGetNormal(A,I,C,B,i,Q,e,E){return this.queryPipeline.castRayAndGetNormal(this.bodies,this.colliders,A,I,C,B,i,Q?Q.handle:null,e?e.handle:null,this.colliders.castClosure(E))}intersectionsWithRay(A,I,C,B,i,Q,e,E,t){this.queryPipeline.intersectionsWithRay(this.bodies,this.colliders,A,I,C,B,i,Q,e?e.handle:null,E?E.handle:null,this.colliders.castClosure(t))}intersectionWithShape(A,I,C,B,i,Q,e,E){let t=this.queryPipeline.intersectionWithShape(this.bodies,this.colliders,A,I,C,B,i,Q?Q.handle:null,e?e.handle:null,this.colliders.castClosure(E));return t!=null?this.colliders.get(t):null}projectPoint(A,I,C,B,i,Q,e){return this.queryPipeline.projectPoint(this.bodies,this.colliders,A,I,C,B,i?i.handle:null,Q?Q.handle:null,this.colliders.castClosure(e))}projectPointAndGetFeature(A,I,C,B,i,Q){return this.queryPipeline.projectPointAndGetFeature(this.bodies,this.colliders,A,I,C,B?B.handle:null,i?i.handle:null,this.colliders.castClosure(Q))}intersectionsWithPoint(A,I,C,B,i,Q,e){this.queryPipeline.intersectionsWithPoint(this.bodies,this.colliders,A,this.colliders.castClosure(I),C,B,i?i.handle:null,Q?Q.handle:null,this.colliders.castClosure(e))}castShape(A,I,C,B,i,Q,e,E,t,a,s){return this.queryPipeline.castShape(this.bodies,this.colliders,A,I,C,B,i,Q,e,E,t?t.handle:null,a?a.handle:null,this.colliders.castClosure(s))}intersectionsWithShape(A,I,C,B,i,Q,e,E,t){this.queryPipeline.intersectionsWithShape(this.bodies,this.colliders,A,I,C,this.colliders.castClosure(B),i,Q,e?e.handle:null,E?E.handle:null,this.colliders.castClosure(t))}collidersWithAabbIntersectingAabb(A,I,C){this.queryPipeline.collidersWithAabbIntersectingAabb(A,I,this.colliders.castClosure(C))}contactPairsWith(A,I){this.narrowPhase.contactPairsWith(A.handle,this.colliders.castClosure(I))}intersectionPairsWith(A,I){this.narrowPhase.intersectionPairsWith(A.handle,this.colliders.castClosure(I))}contactPair(A,I,C){this.narrowPhase.contactPair(A.handle,I.handle,C)}intersectionPair(A,I){return this.narrowPhase.intersectionPair(A.handle,I.handle)}}(function(g){g[g.NONE=0]="NONE",g[g.COLLISION_EVENTS=1]="COLLISION_EVENTS",g[g.CONTACT_FORCE_EVENTS=2]="CONTACT_FORCE_EVENTS"})(oe||(oe={}));class $d{free(){this.raw&&this.raw.free(),this.raw=void 0}collider1(){return this.raw.collider1()}collider2(){return this.raw.collider2()}totalForce(){return uA.fromRaw(this.raw.total_force())}totalForceMagnitude(){return this.raw.total_force_magnitude()}maxForceDirection(){return uA.fromRaw(this.raw.max_force_direction())}maxForceMagnitude(){return this.raw.max_force_magnitude()}}class Ap{constructor(A,I){this.raw=I||new rH(A)}free(){this.raw&&this.raw.free(),this.raw=void 0}drainCollisionEvents(A){this.raw.drainCollisionEvents(A)}drainContactForceEvents(A){let I=new $d;this.raw.drainContactForceEvents(C=>{I.raw=C,A(I),I.free()})}clear(){this.raw.clear()}}(function(g){g[g.NONE=0]="NONE",g[g.FILTER_CONTACT_PAIRS=1]="FILTER_CONTACT_PAIRS",g[g.FILTER_INTERSECTION_PAIRS=2]="FILTER_INTERSECTION_PAIRS"})(Rr||(Rr={})),function(g){g[g.EMPTY=0]="EMPTY",g[g.COMPUTE_IMPULSE=1]="COMPUTE_IMPULSE"}(vh||(vh={})),function(g){g[g.DYNAMIC_DYNAMIC=1]="DYNAMIC_DYNAMIC",g[g.DYNAMIC_KINEMATIC=12]="DYNAMIC_KINEMATIC",g[g.DYNAMIC_FIXED=2]="DYNAMIC_FIXED",g[g.KINEMATIC_KINEMATIC=52224]="KINEMATIC_KINEMATIC",g[g.KINEMATIC_FIXED=8704]="KINEMATIC_FIXED",g[g.FIXED_FIXED=32]="FIXED_FIXED",g[g.DEFAULT=15]="DEFAULT",g[g.ALL=60943]="ALL"}(Kr||(Kr={}));class _h{constructor(A,I,C,B){this.colliderSet=A,this.handle=I,this._parent=C,this._shape=B}finalizeDeserialization(A){this.handle!=null&&(this._parent=A.get(this.colliderSet.raw.coParent(this.handle)))}ensureShapeIsCached(){this._shape||(this._shape=FC.fromRaw(this.colliderSet.raw,this.handle))}get shape(){return this.ensureShapeIsCached(),this._shape}isValid(){return this.colliderSet.raw.contains(this.handle)}translation(){return uA.fromRaw(this.colliderSet.raw.coTranslation(this.handle))}rotation(){return Cg.fromRaw(this.colliderSet.raw.coRotation(this.handle))}isSensor(){return this.colliderSet.raw.coIsSensor(this.handle)}setSensor(A){this.colliderSet.raw.coSetSensor(this.handle,A)}setShape(A){let I=A.intoRaw();this.colliderSet.raw.coSetShape(this.handle,I),I.free(),this._shape=A}setEnabled(A){this.colliderSet.raw.coSetEnabled(this.handle,A)}isEnabled(){return this.colliderSet.raw.coIsEnabled(this.handle)}setRestitution(A){this.colliderSet.raw.coSetRestitution(this.handle,A)}setFriction(A){this.colliderSet.raw.coSetFriction(this.handle,A)}frictionCombineRule(){return this.colliderSet.raw.coFrictionCombineRule(this.handle)}setFrictionCombineRule(A){this.colliderSet.raw.coSetFrictionCombineRule(this.handle,A)}restitutionCombineRule(){return this.colliderSet.raw.coRestitutionCombineRule(this.handle)}setRestitutionCombineRule(A){this.colliderSet.raw.coSetRestitutionCombineRule(this.handle,A)}setCollisionGroups(A){this.colliderSet.raw.coSetCollisionGroups(this.handle,A)}setSolverGroups(A){this.colliderSet.raw.coSetSolverGroups(this.handle,A)}activeHooks(){return this.colliderSet.raw.coActiveHooks(this.handle)}setActiveHooks(A){this.colliderSet.raw.coSetActiveHooks(this.handle,A)}activeEvents(){return this.colliderSet.raw.coActiveEvents(this.handle)}setActiveEvents(A){this.colliderSet.raw.coSetActiveEvents(this.handle,A)}activeCollisionTypes(){return this.colliderSet.raw.coActiveCollisionTypes(this.handle)}setContactForceEventThreshold(A){return this.colliderSet.raw.coSetContactForceEventThreshold(this.handle,A)}contactForceEventThreshold(){return this.colliderSet.raw.coContactForceEventThreshold(this.handle)}setActiveCollisionTypes(A){this.colliderSet.raw.coSetActiveCollisionTypes(this.handle,A)}setDensity(A){this.colliderSet.raw.coSetDensity(this.handle,A)}setMass(A){this.colliderSet.raw.coSetMass(this.handle,A)}setMassProperties(A,I,C,B){let i=uA.intoRaw(I),Q=uA.intoRaw(C),e=Cg.intoRaw(B);this.colliderSet.raw.coSetMassProperties(this.handle,A,i,Q,e),i.free(),Q.free(),e.free()}setTranslation(A){this.colliderSet.raw.coSetTranslation(this.handle,A.x,A.y,A.z)}setTranslationWrtParent(A){this.colliderSet.raw.coSetTranslationWrtParent(this.handle,A.x,A.y,A.z)}setRotation(A){this.colliderSet.raw.coSetRotation(this.handle,A.x,A.y,A.z,A.w)}setRotationWrtParent(A){this.colliderSet.raw.coSetRotationWrtParent(this.handle,A.x,A.y,A.z,A.w)}shapeType(){return this.colliderSet.raw.coShapeType(this.handle)}halfExtents(){return uA.fromRaw(this.colliderSet.raw.coHalfExtents(this.handle))}setHalfExtents(A){const I=uA.intoRaw(A);this.colliderSet.raw.coSetHalfExtents(this.handle,I)}radius(){return this.colliderSet.raw.coRadius(this.handle)}setRadius(A){this.colliderSet.raw.coSetRadius(this.handle,A)}roundRadius(){return this.colliderSet.raw.coRoundRadius(this.handle)}setRoundRadius(A){this.colliderSet.raw.coSetRoundRadius(this.handle,A)}halfHeight(){return this.colliderSet.raw.coHalfHeight(this.handle)}setHalfHeight(A){this.colliderSet.raw.coSetHalfHeight(this.handle,A)}vertices(){return this.colliderSet.raw.coVertices(this.handle)}indices(){return this.colliderSet.raw.coIndices(this.handle)}heightfieldHeights(){return this.colliderSet.raw.coHeightfieldHeights(this.handle)}heightfieldScale(){let A=this.colliderSet.raw.coHeightfieldScale(this.handle);return uA.fromRaw(A)}heightfieldNRows(){return this.colliderSet.raw.coHeightfieldNRows(this.handle)}heightfieldNCols(){return this.colliderSet.raw.coHeightfieldNCols(this.handle)}parent(){return this._parent}friction(){return this.colliderSet.raw.coFriction(this.handle)}restitution(){return this.colliderSet.raw.coRestitution(this.handle)}density(){return this.colliderSet.raw.coDensity(this.handle)}mass(){return this.colliderSet.raw.coMass(this.handle)}volume(){return this.colliderSet.raw.coVolume(this.handle)}collisionGroups(){return this.colliderSet.raw.coCollisionGroups(this.handle)}solverGroups(){return this.colliderSet.raw.coSolverGroups(this.handle)}containsPoint(A){let I=uA.intoRaw(A),C=this.colliderSet.raw.coContainsPoint(this.handle,I);return I.free(),C}projectPoint(A,I){let C=uA.intoRaw(A),B=ya.fromRaw(this.colliderSet.raw.coProjectPoint(this.handle,C,I));return C.free(),B}intersectsRay(A,I){let C=uA.intoRaw(A.origin),B=uA.intoRaw(A.dir),i=this.colliderSet.raw.coIntersectsRay(this.handle,C,B,I);return C.free(),B.free(),i}castShape(A,I,C,B,i,Q,e){let E=uA.intoRaw(A),t=uA.intoRaw(C),a=Cg.intoRaw(B),s=uA.intoRaw(i),r=I.intoRaw(),l=Go.fromRaw(this.colliderSet,this.colliderSet.raw.coCastShape(this.handle,E,r,t,a,s,Q,e));return E.free(),t.free(),a.free(),s.free(),r.free(),l}castCollider(A,I,C,B,i){let Q=uA.intoRaw(A),e=uA.intoRaw(C),E=ka.fromRaw(this.colliderSet,this.colliderSet.raw.coCastCollider(this.handle,Q,I.handle,e,B,i));return Q.free(),e.free(),E}intersectsShape(A,I,C){let B=uA.intoRaw(I),i=Cg.intoRaw(C),Q=A.intoRaw(),e=this.colliderSet.raw.coIntersectsShape(this.handle,Q,B,i);return B.free(),i.free(),Q.free(),e}contactShape(A,I,C,B){let i=uA.intoRaw(I),Q=Cg.intoRaw(C),e=A.intoRaw(),E=Bo.fromRaw(this.colliderSet.raw.coContactShape(this.handle,e,i,Q,B));return i.free(),Q.free(),e.free(),E}contactCollider(A,I){return Bo.fromRaw(this.colliderSet.raw.coContactCollider(this.handle,A.handle,I))}castRay(A,I,C){let B=uA.intoRaw(A.origin),i=uA.intoRaw(A.dir),Q=this.colliderSet.raw.coCastRay(this.handle,B,i,I,C);return B.free(),i.free(),Q}castRayAndGetNormal(A,I,C){let B=uA.intoRaw(A.origin),i=uA.intoRaw(A.dir),Q=ua.fromRaw(this.colliderSet.raw.coCastRayAndGetNormal(this.handle,B,i,I,C));return B.free(),i.free(),Q}}(function(g){g[g.Density=0]="Density",g[g.Mass=1]="Mass",g[g.MassProps=2]="MassProps"})(QE||(QE={}));class eC{constructor(A){this.enabled=!0,this.shape=A,this.massPropsMode=QE.Density,this.density=1,this.friction=.5,this.restitution=0,this.rotation=Cg.identity(),this.translation=uA.zeros(),this.isSensor=!1,this.collisionGroups=4294967295,this.solverGroups=4294967295,this.frictionCombineRule=Qa.Average,this.restitutionCombineRule=Qa.Average,this.activeCollisionTypes=Kr.DEFAULT,this.activeEvents=oe.NONE,this.activeHooks=Rr.NONE,this.mass=0,this.centerOfMass=uA.zeros(),this.contactForceEventThreshold=0,this.principalAngularInertia=uA.zeros(),this.angularInertiaLocalFrame=Cg.identity()}static ball(A){const I=new AS(A);return new eC(I)}static capsule(A,I){const C=new CS(A,I);return new eC(C)}static segment(A,I){const C=new BS(A,I);return new eC(C)}static triangle(A,I,C){const B=new iS(A,I,C);return new eC(B)}static roundTriangle(A,I,C,B){const i=new QS(A,I,C,B);return new eC(i)}static polyline(A,I){const C=new eS(A,I);return new eC(C)}static trimesh(A,I){const C=new ES(A,I);return new eC(C)}static cuboid(A,I,C){const B=new IS(A,I,C);return new eC(B)}static roundCuboid(A,I,C,B){const i=new gS(A,I,C,B);return new eC(i)}static heightfield(A,I,C,B){const i=new tS(A,I,C,B);return new eC(i)}static cylinder(A,I){const C=new oS(A,I);return new eC(C)}static roundCylinder(A,I,C){const B=new nS(A,I,C);return new eC(B)}static cone(A,I){const C=new aS(A,I);return new eC(C)}static roundCone(A,I,C){const B=new sS(A,I,C);return new eC(B)}static convexHull(A){const I=new Jr(A,null);return new eC(I)}static convexMesh(A,I){const C=new Jr(A,I);return new eC(C)}static roundConvexHull(A,I){const C=new qr(A,null,I);return new eC(C)}static roundConvexMesh(A,I,C){const B=new qr(A,I,C);return new eC(B)}setTranslation(A,I,C){if(typeof A!="number"||typeof I!="number"||typeof C!="number")throw TypeError("The translation components must be numbers.");return this.translation={x:A,y:I,z:C},this}setRotation(A){return Cg.copy(this.rotation,A),this}setSensor(A){return this.isSensor=A,this}setEnabled(A){return this.enabled=A,this}setDensity(A){return this.massPropsMode=QE.Density,this.density=A,this}setMass(A){return this.massPropsMode=QE.Mass,this.mass=A,this}setMassProperties(A,I,C,B){return this.massPropsMode=QE.MassProps,this.mass=A,uA.copy(this.centerOfMass,I),uA.copy(this.principalAngularInertia,C),Cg.copy(this.angularInertiaLocalFrame,B),this}setRestitution(A){return this.restitution=A,this}setFriction(A){return this.friction=A,this}setFrictionCombineRule(A){return this.frictionCombineRule=A,this}setRestitutionCombineRule(A){return this.restitutionCombineRule=A,this}setCollisionGroups(A){return this.collisionGroups=A,this}setSolverGroups(A){return this.solverGroups=A,this}setActiveHooks(A){return this.activeHooks=A,this}setActiveEvents(A){return this.activeEvents=A,this}setActiveCollisionTypes(A){return this.activeCollisionTypes=A,this}setContactForceEventThreshold(A){return this.contactForceEventThreshold=A,this}}class Ip{constructor(A){this.raw=A||new AC,this.map=new Xw,A&&A.forEachColliderHandle(I=>{this.map.set(I,new _h(this,I,null))})}free(){this.raw&&this.raw.free(),this.raw=void 0,this.map&&this.map.clear(),this.map=void 0}castClosure(A){return I=>A?A(this.get(I)):void 0}finalizeDeserialization(A){this.map.forEach(I=>I.finalizeDeserialization(A))}createCollider(A,I,C){let B=C!=null&&C!=null;if(B&&isNaN(C))throw Error("Cannot create a collider with a parent rigid-body handle that is not a number.");let i=I.shape.intoRaw(),Q=uA.intoRaw(I.translation),e=Cg.intoRaw(I.rotation),E=uA.intoRaw(I.centerOfMass),t=uA.intoRaw(I.principalAngularInertia),a=Cg.intoRaw(I.angularInertiaLocalFrame),s=this.raw.createCollider(I.enabled,i,Q,e,I.massPropsMode,I.mass,E,t,a,I.density,I.friction,I.restitution,I.frictionCombineRule,I.restitutionCombineRule,I.isSensor,I.collisionGroups,I.solverGroups,I.activeCollisionTypes,I.activeHooks,I.activeEvents,I.contactForceEventThreshold,B,B?C:0,A.raw);i.free(),Q.free(),e.free(),E.free(),t.free(),a.free();let r=B?A.get(C):null,l=new _h(this,s,r,I.shape);return this.map.set(s,l),l}remove(A,I,C,B){this.raw.remove(A,I.raw,C.raw,B),this.unmap(A)}unmap(A){this.map.delete(A)}get(A){return this.map.get(A)}len(){return this.map.len()}contains(A){return this.get(A)!=null}forEach(A){this.map.forEach(A)}getAll(){return this.map.getAll()}}function wV(g,A,I,C){return new(I||(I=Promise))(function(B,i){function Q(t){try{E(C.next(t))}catch(a){i(a)}}function e(t){try{E(C.throw(t))}catch(a){i(a)}}function E(t){var a;t.done?B(t.value):(a=t.value,a instanceof I?a:new I(function(s){s(a)})).then(Q,e)}E((C=C.apply(g,A||[])).next())})}for(var SV={byteLength:function(g){var A=zR(g),I=A[0],C=A[1];return 3*(I+C)/4-C},toByteArray:function(g){var A,I,C=zR(g),B=C[0],i=C[1],Q=new GV(function(t,a,s){return 3*(a+s)/4-s}(0,B,i)),e=0,E=i>0?B-4:B;for(I=0;I>16&255,Q[e++]=A>>8&255,Q[e++]=255&A;return i===2&&(A=Ni[g.charCodeAt(I)]<<2|Ni[g.charCodeAt(I+1)]>>4,Q[e++]=255&A),i===1&&(A=Ni[g.charCodeAt(I)]<<10|Ni[g.charCodeAt(I+1)]<<4|Ni[g.charCodeAt(I+2)]>>2,Q[e++]=A>>8&255,Q[e++]=255&A),Q},fromByteArray:function(g){for(var A,I=g.length,C=I%3,B=[],i=16383,Q=0,e=I-C;Qe?e:Q+i));return C===1?(A=g[I-1],B.push(dQ[A>>2]+dQ[A<<4&63]+"==")):C===2&&(A=(g[I-2]<<8)+g[I-1],B.push(dQ[A>>10]+dQ[A>>4&63]+dQ[A<<2&63]+"=")),B.join("")}},dQ=[],Ni=[],GV=typeof Uint8Array<"u"?Uint8Array:Array,i0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",tn=0,yV=i0.length;tn0)throw new Error("Invalid string. Length must be a multiple of 4");var I=g.indexOf("=");return I===-1&&(I=A),[I,I===A?0:4-I%4]}function uV(g,A,I){for(var C,B,i=[],Q=A;Q>18&63]+dQ[B>>12&63]+dQ[B>>6&63]+dQ[63&B]);return i.join("")}function DH(){return wV(this,void 0,void 0,function*(){yield lH(SV.toByteArray("AGFzbQEAAAAB+wuZAWACf38AYAN/f38AYAR/f39/AGACf38Bf2ABfwF/YAN/f38Bf2ABfwBgBX9/f39/AGAGf39/f31/AGACf3wBf2ABfwF9YAV/f399fwBgBX9/f399AGADf399AGADf3x/AGAGf39/f399AGAEf39/fQF/YAABf2AEf39/fwF9YAR/f39/AX9gA39/fwF9YAN/f30Bf2ACf30AYAZ/f39/f38Bf2AGf39/f39/AGABfQF9YAR/fH9/AGACf3wBfWADf3x9AGAIf39/f39/fX8Bf2ADf398AGAHf39/f39/fwBgAn9/AX1gBX9/f39/AX9gCH9/f39/f39/AGAAAGABfwF8YAh/f39/f39/fQBgA398fwF9YAN9fX0Bf2APf39/f39/f39/f39/f39/AGAGf31/f399AGAKf39/f39/f399fwBgC39/f39/f39/fX1/AGAFf399f38AYAZ/fH9/f38AYAN/fH8Bf2AFf3x/f38AYAZ/fH19fX0AYAJ9fQF/YAV/fH19fQBgAXwBf2AKf39/f39/fX9/fwBgCX9/f39/f39/fwBgB39/f399f38AYAl/f39/f399f38Bf2AGf319f399AGALf39/f39/f39/f38AYAR/fX9/AX9gBn9/f399fQBgD39/f39/f39/f39/fH98fwBgA35+fwF+YAN/fX0AYA9/f39/f31/f39/f3x/fH8Bf2ABfQF/YAN/fHwBf2AFf3x/fX0AYAR/fH1/AGACf3wAYAJ/fAF8YAV/f3x8fwF8YAR9fX19AX9gDn9/f39/f39/f39/f39/AGADf31/AGAIf39/f31/f38AYAl/f39/f31/f38AYAd/f39/f399AGALf39/f39/f399f38AYAx/fX9/f39/f39/f38Bf2APf39/f39/f39/f39/fX1/AGALf39/fX9/fX99fX8AYAl/f39/f39/fX8AYAl/f39/f39/f30AYAh/f39/f31/fwBgBn9/f39/fwF9YBJ/f39/f39/f39/f399f319fX0AYAd/f39/f39/AX1gCH9/f399fX9/AGAJf39/f39/fX9/AGAGf399f31/AGAHf399f399fwBgCn9/f39/f39/fX8Bf2AIf31/f39/f38AYAp/fX9/f39/f39/AGAMf39/f31/f39/f39/AGAHf39/f39/fQF/YAd/f399fX9/AGAGf31/f39/AGARf39/f39/f31/f39/f3x/fH8Bf2AIf39/f39/fX8AYAZ/fH9/f30Bf2AIf31/fX99f38AYAt/f39/fX9/f39/fwBgBH9/fX8AYAN/fn4Bf2AFf39+fn8AYAt/f39/f39/f399fwBgB39/f39/fX8Bf2AGf39/f319AX9gEH9/f39/fX9/f39/f3x/fH8AYAp/f39/f39/f39/AX9gBn98f399fwF/YAl/fH9/f39/fX8Bf2ANf39/f39/f319fX19fQBgGn9/f399fX9/f39/f39/f39/f319f39/f39/AXxgDX9/f39/f39/f3x/fH8AYBp/f39/f39/fX9/f319fX9/f39/f39/fX98fwBgB39/f39/fX8BfWAJf39/f39/fn5+AGAGf39/f399AX9gDX9/f39/f39/f3x/fH8Bf2AMf39/f39/f398f3x/AX9gBX98f39/AX9gB39/f39/f38Bf2AHf3x/fH99fwF/YAN/fn8Bf2AGf3x/f31/AX1gA35/fwF/YAJ9fQF9YAV/fH9/fQF/YAR/fH9/AX9gBX19fX9/AX9gA31/fwF/YA5/fX9/f3x/f399f39/fwBgBH98fH0Bf2AHf3x9f39/fwBgBn98fX9/fwBgBH9/f30AYAJ/fgBgEn99f39/f39/f39/f39/f39/fwBgCX99f39/f39/fwBgA398fwF8YAV/f39/fQF/YAZ/fH99fX0AYAd/fH99fX19AGAEf319fwBgBn9/fX19fQBgB398fX19fX8AYAZ/fH19fX8AYAR/fX9/AGAFf39+f38AYAR/fn9/AGAFf398f38AAoUGFgN3YmcVX193YmluZGdlbl9udW1iZXJfbmV3ADMDd2JnFl9fd2JpbmRnZW5fYm9vbGVhbl9nZXQABAN3YmcaX193YmluZGdlbl9vYmplY3RfZHJvcF9yZWYABgN3YmcVX193YmluZGdlbl9udW1iZXJfZ2V0AAADd2JnFl9fd2JpbmRnZW5faXNfZnVuY3Rpb24ABAN3YmckX193YmdfcmF3cmF5Y29sbGlkZXJpbnRlcnNlY3Rpb25fbmV3AAQDd2JnHl9fd2JnX3Jhd2NvbnRhY3Rmb3JjZWV2ZW50X25ldwAEA3diZxtfX3diZ19jYWxsXzAxNzM0ZGU1NWQ2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X2F1dG9zdGVwSW5jbHVkZXNEeW5hbWljQm9kaWVzAJMKL3Jhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfYXV0b3N0ZXBFbmFibGVkAIcLLnJhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfZW5hYmxlQXV0b3N0ZXAAywkvcmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9kaXNhYmxlQXV0b3N0ZXAAiAsycmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9tYXhTbG9wZUNsaW1iQW5nbGUAows1cmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9zZXRNYXhTbG9wZUNsaW1iQW5nbGUAiQsycmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9taW5TbG9wZVNsaWRlQW5nbGUApAs1cmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9zZXRNaW5TbG9wZVNsaWRlQW5nbGUAigs0cmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9zbmFwVG9Hcm91bmREaXN0YW5jZQCOCjJyYXdraW5lbWF0aWNjaGFyYWN0ZXJjb250cm9sbGVyX2VuYWJsZVNuYXBUb0dyb3VuZADMCjNyYXdraW5lbWF0aWNjaGFyYWN0ZXJjb250cm9sbGVyX2Rpc2FibGVTbmFwVG9Hcm91bmQAiwszcmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9zbmFwVG9Hcm91bmRFbmFibGVkAIwLN3Jhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfY29tcHV0ZUNvbGxpZGVyTW92ZW1lbnQAmgUwcmF3a2luZW1hdGljY2hhcmFjdGVyY29udHJvbGxlcl9jb21wdXRlZE1vdmVtZW50AMkHMHJhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfY29tcHV0ZWRHcm91bmRlZAClCzVyYXdraW5lbWF0aWNjaGFyYWN0ZXJjb250cm9sbGVyX251bUNvbXB1dGVkQ29sbGlzaW9ucwCmCzFyYXdraW5lbWF0aWNjaGFyYWN0ZXJjb250cm9sbGVyX2NvbXB1dGVkQ29sbGlzaW9uALcHIF9fd2JnX3Jhd2NoYXJhY3RlcmNvbGxpc2lvbl9mcmVlAMALGXJhd2NoYXJhY3RlcmNvbGxpc2lvbl9uZXcAuAkccmF3Y2hhcmFjdGVyY29sbGlzaW9uX2hhbmRsZQDBCy1yYXdjaGFyYWN0ZXJjb2xsaXNpb25fdHJhbnNsYXRpb25EZWx0YUFwcGxpZWQAygcvcmF3Y2hhcmFjdGVyY29sbGlzaW9uX3RyYW5zbGF0aW9uRGVsdGFSZW1haW5pbmcAywcZcmF3Y2hhcmFjdGVyY29sbGlzaW9uX3RvaQCnCyNyYXdjaGFyYWN0ZXJjb2xsaXNpb25fd29ybGRXaXRuZXNzMQDMByNyYXdjaGFyYWN0ZXJjb2xsaXNpb25fd29ybGRXaXRuZXNzMgDXBCJyYXdjaGFyYWN0ZXJjb2xsaXNpb25fd29ybGROb3JtYWwxAM0HInJhd2NoYXJhY3RlcmNvbGxpc2lvbl93b3JsZE5vcm1hbDIAiAUtX193YmdfcmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9mcmVlAJIHJnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfbmV3ALkJOHJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfY3VycmVudF92ZWhpY2xlX3NwZWVkAKgLKnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfY2hhc3NpcwCpCzByYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX2luZGV4X3VwX2F4aXMAqgs0cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfaW5kZXhfdXBfYXhpcwCNCzVyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX2luZGV4X2ZvcndhcmRfYXhpcwCrCzlyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF9pbmRleF9mb3J3YXJkX2F4aXMAjgsscmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9hZGRfd2hlZWwAwAUtcmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9udW1fd2hlZWxzAKwLMXJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfdXBkYXRlX3ZlaGljbGUAgAZEcmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9jaGFzc2lzX2Nvbm5lY3Rpb25fcG9pbnRfY3MAgQZIcmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfY2hhc3Npc19jb25uZWN0aW9uX3BvaW50X2NzAJ0HP3Jhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfc3VzcGVuc2lvbl9yZXN0X2xlbmd0aACICENyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF93aGVlbF9zdXNwZW5zaW9uX3Jlc3RfbGVuZ3RoAPIJPnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfbWF4X3N1c3BlbnNpb25fdHJhdmVsAIkIQnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfc2V0X3doZWVsX21heF9zdXNwZW5zaW9uX3RyYXZlbADzCS9yYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX3JhZGl1cwCKCDNyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF93aGVlbF9yYWRpdXMA9Ak9cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9zdXNwZW5zaW9uX3N0aWZmbmVzcwCLCEFyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF93aGVlbF9zdXNwZW5zaW9uX3N0aWZmbmVzcwD1CT9yYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX3N1c3BlbnNpb25fY29tcHJlc3Npb24AjAhDcmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfc3VzcGVuc2lvbl9jb21wcmVzc2lvbgD2CT5yYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX3N1c3BlbnNpb25fcmVsYXhhdGlvbgCNCEJyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF93aGVlbF9zdXNwZW5zaW9uX3JlbGF4YXRpb24A9wk9cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9tYXhfc3VzcGVuc2lvbl9mb3JjZQCOCEFyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3NldF93aGVlbF9tYXhfc3VzcGVuc2lvbl9mb3JjZQD4CS5yYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX2JyYWtlAI8IMnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfc2V0X3doZWVsX2JyYWtlAPkJMXJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfc3RlZXJpbmcAkAg1cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfc3RlZXJpbmcA+gk1cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9lbmdpbmVfZm9yY2UAkQg5cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfZW5naW5lX2ZvcmNlAPsJNXJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfZGlyZWN0aW9uX2NzAIIGOXJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfc2V0X3doZWVsX2RpcmVjdGlvbl9jcwCeBzByYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX2F4bGVfY3MAgwY0cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfYXhsZV9jcwCfBzZyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX2ZyaWN0aW9uX3NsaXAAkgg6cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl9zZXRfd2hlZWxfZnJpY3Rpb25fc2xpcAD8CUByYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX3NpZGVfZnJpY3Rpb25fc3RpZmZuZXNzAJMIRHJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfc2V0X3doZWVsX3NpZGVfZnJpY3Rpb25fc3RpZmZuZXNzAP0JMXJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfcm90YXRpb24AlAg4cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9mb3J3YXJkX2ltcHVsc2UAlQg1cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9zaWRlX2ltcHVsc2UAlgg5cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9zdXNwZW5zaW9uX2ZvcmNlAJcIOnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfY29udGFjdF9ub3JtYWxfd3MAhAY5cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9jb250YWN0X3BvaW50X3dzAIUGOnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfc3VzcGVuc2lvbl9sZW5ndGgAmAg2cmF3ZHluYW1pY3JheWNhc3R2ZWhpY2xlY29udHJvbGxlcl93aGVlbF9oYXJkX3BvaW50X3dzAIYGNnJhd2R5bmFtaWNyYXljYXN0dmVoaWNsZWNvbnRyb2xsZXJfd2hlZWxfaXNfaW5fY29udGFjdACECTZyYXdkeW5hbWljcmF5Y2FzdHZlaGljbGVjb250cm9sbGVyX3doZWVsX2dyb3VuZF9vYmplY3QAqQcXX193YmdfcmF3Y2Nkc29sdmVyX2ZyZWUA4gkQcmF3Y2Nkc29sdmVyX25ldwDjCRxyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRUeXBlAKoHI3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEJvZHlIYW5kbGUxAOcII3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEJvZHlIYW5kbGUyALgIH3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEZyYW1lWDEAjgYfcmF3aW1wdWxzZWpvaW50c2V0X2pvaW50RnJhbWVYMgCPBh9yYXdpbXB1bHNlam9pbnRzZXRfam9pbnRBbmNob3IxAJAGH3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEFuY2hvcjIAkQYicmF3aW1wdWxzZWpvaW50c2V0X2pvaW50U2V0QW5jaG9yMQCYByJyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRTZXRBbmNob3IyAJkHJ3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludENvbnRhY3RzRW5hYmxlZAC5CCpyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRTZXRDb250YWN0c0VuYWJsZWQAjQklcmF3aW1wdWxzZWpvaW50c2V0X2pvaW50TGltaXRzRW5hYmxlZACgByFyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRMaW1pdHNNaW4AzgchcmF3aW1wdWxzZWpvaW50c2V0X2pvaW50TGltaXRzTWF4AM8HIXJhd2ltcHVsc2Vqb2ludHNldF9qb2ludFNldExpbWl0cwChBytyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRDb25maWd1cmVNb3Rvck1vZGVsAKwHLnJhd2ltcHVsc2Vqb2ludHNldF9qb2ludENvbmZpZ3VyZU1vdG9yVmVsb2NpdHkAhAgucmF3aW1wdWxzZWpvaW50c2V0X2pvaW50Q29uZmlndXJlTW90b3JQb3NpdGlvbgCFCCZyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRDb25maWd1cmVNb3RvcgCGCB1fX3diZ19yYXdpbXB1bHNlam9pbnRzZXRfZnJlZQDkCRZyYXdpbXB1bHNlam9pbnRzZXRfbmV3AOUJHnJhd2ltcHVsc2Vqb2ludHNldF9jcmVhdGVKb2ludADSCBlyYXdpbXB1bHNlam9pbnRzZXRfcmVtb3ZlAMYJFnJhd2ltcHVsc2Vqb2ludHNldF9sZW4ArQsbcmF3aW1wdWxzZWpvaW50c2V0X2NvbnRhaW5zAMwJJXJhd2ltcHVsc2Vqb2ludHNldF9mb3JFYWNoSm9pbnRIYW5kbGUA1QUycmF3aW1wdWxzZWpvaW50c2V0X2ZvckVhY2hKb2ludEF0dGFjaGVkVG9SaWdpZEJvZHkAjgkjX193YmdfcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX2ZyZWUAwAsccmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX25ldwD7BhtyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfZHQArgsccmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX2VycACvCyxyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfbnVtU29sdmVySXRlcmF0aW9ucwDCCzhyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfbnVtQWRkaXRpb25hbEZyaWN0aW9uSXRlcmF0aW9ucwCwCzFyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfbnVtSW50ZXJuYWxQZ3NJdGVyYXRpb25zALELH3Jhd2ludGVncmF0aW9ucGFyYW1ldGVyc19zZXRfZHQAjwsgcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9lcnAAkAsvcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9hbGxvd2VkTGluZWFyRXJyb3IAkQsvcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9wcmVkaWN0aW9uRGlzdGFuY2UAkgswcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9udW1Tb2x2ZXJJdGVyYXRpb25zAN4KPHJhd2ludGVncmF0aW9ucGFyYW1ldGVyc19zZXRfbnVtQWRkaXRpb25hbEZyaWN0aW9uSXRlcmF0aW9ucwCTCzVyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfc2V0X251bUludGVybmFsUGdzSXRlcmF0aW9ucwCUCzJyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfc3dpdGNoVG9TdGFuZGFyZFBnc1NvbHZlcgDoCjRyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfc3dpdGNoVG9TbWFsbFN0ZXBzUGdzU29sdmVyAOkKG19fd2JnX3Jhd2lzbGFuZG1hbmFnZXJfZnJlZQDmCRRyYXdpc2xhbmRtYW5hZ2VyX25ldwDHCS1yYXdpc2xhbmRtYW5hZ2VyX2ZvckVhY2hBY3RpdmVSaWdpZEJvZHlIYW5kbGUA4gUaX193YmdfcmF3Z2VuZXJpY2pvaW50X2ZyZWUAwAsXcmF3Z2VuZXJpY2pvaW50X2dlbmVyaWMAmwUWcmF3Z2VuZXJpY2pvaW50X3NwcmluZwCBBRRyYXdnZW5lcmljam9pbnRfcm9wZQCEBRlyYXdnZW5lcmljam9pbnRfc3BoZXJpY2FsAIUFGXJhd2dlbmVyaWNqb2ludF9wcmlzbWF0aWMA5QIVcmF3Z2VuZXJpY2pvaW50X2ZpeGVkAOYCGHJhd2dlbmVyaWNqb2ludF9yZXZvbHV0ZQCoAx5yYXdtdWx0aWJvZHlqb2ludHNldF9qb2ludFR5cGUA5QUhcmF3bXVsdGlib2R5am9pbnRzZXRfam9pbnRGcmFtZVgxAJ4FIXJhd211bHRpYm9keWpvaW50c2V0X2pvaW50RnJhbWVYMgCfBSFyYXdtdWx0aWJvZHlqb2ludHNldF9qb2ludEFuY2hvcjEAoAUhcmF3bXVsdGlib2R5am9pbnRzZXRfam9pbnRBbmNob3IyAKEFKXJhd211bHRpYm9keWpvaW50c2V0X2pvaW50Q29udGFjdHNFbmFibGVkAOAGLHJhd211bHRpYm9keWpvaW50c2V0X2pvaW50U2V0Q29udGFjdHNFbmFibGVkAPUGJ3Jhd211bHRpYm9keWpvaW50c2V0X2pvaW50TGltaXRzRW5hYmxlZADjBSNyYXdtdWx0aWJvZHlqb2ludHNldF9qb2ludExpbWl0c01pbgCHBiNyYXdtdWx0aWJvZHlqb2ludHNldF9qb2ludExpbWl0c01heACIBh9fX3diZ19yYXdtdWx0aWJvZHlqb2ludHNldF9mcmVlAOcJGHJhd211bHRpYm9keWpvaW50c2V0X25ldwDoCSByYXdtdWx0aWJvZHlqb2ludHNldF9jcmVhdGVKb2ludADTCBtyYXdtdWx0aWJvZHlqb2ludHNldF9yZW1vdmUAkQodcmF3bXVsdGlib2R5am9pbnRzZXRfY29udGFpbnMAnAgncmF3bXVsdGlib2R5am9pbnRzZXRfZm9yRWFjaEpvaW50SGFuZGxlALEJNHJhd211bHRpYm9keWpvaW50c2V0X2ZvckVhY2hKb2ludEF0dGFjaGVkVG9SaWdpZEJvZHkAjwkdcmF3cmlnaWRib2R5c2V0X3JiVHJhbnNsYXRpb24AkgYacmF3cmlnaWRib2R5c2V0X3JiUm90YXRpb24AuwYXcmF3cmlnaWRib2R5c2V0X3JiU2xlZXAA2QkccmF3cmlnaWRib2R5c2V0X3JiSXNTbGVlcGluZwC6CBpyYXdyaWdpZGJvZHlzZXRfcmJJc01vdmluZwDoCCFyYXdyaWdpZGJvZHlzZXRfcmJOZXh0VHJhbnNsYXRpb24AkwYecmF3cmlnaWRib2R5c2V0X3JiTmV4dFJvdGF0aW9uAJQGIHJhd3JpZ2lkYm9keXNldF9yYlNldFRyYW5zbGF0aW9uAKwKHXJhd3JpZ2lkYm9keXNldF9yYlNldFJvdGF0aW9uAJ8KG3Jhd3JpZ2lkYm9keXNldF9yYlNldExpbnZlbADABxtyYXdyaWdpZGJvZHlzZXRfcmJTZXRBbmd2ZWwAwQctcmF3cmlnaWRib2R5c2V0X3JiU2V0TmV4dEtpbmVtYXRpY1RyYW5zbGF0aW9uAPcHKnJhd3JpZ2lkYm9keXNldF9yYlNldE5leHRLaW5lbWF0aWNSb3RhdGlvbgDMBjZyYXdyaWdpZGJvZHlzZXRfcmJSZWNvbXB1dGVNYXNzUHJvcGVydGllc0Zyb21Db2xsaWRlcnMA4QcjcmF3cmlnaWRib2R5c2V0X3JiU2V0QWRkaXRpb25hbE1hc3MA+ActcmF3cmlnaWRib2R5c2V0X3JiU2V0QWRkaXRpb25hbE1hc3NQcm9wZXJ0aWVzAKYFGHJhd3JpZ2lkYm9keXNldF9yYkxpbnZlbAC8BhhyYXdyaWdpZGJvZHlzZXRfcmJBbmd2ZWwAlQYicmF3cmlnaWRib2R5c2V0X3JiTG9ja1RyYW5zbGF0aW9ucwDNBihyYXdyaWdpZGJvZHlzZXRfcmJTZXRFbmFibGVkVHJhbnNsYXRpb25zAIcKH3Jhd3JpZ2lkYm9keXNldF9yYkxvY2tSb3RhdGlvbnMAzgYlcmF3cmlnaWRib2R5c2V0X3JiU2V0RW5hYmxlZFJvdGF0aW9ucwCuBSByYXdyaWdpZGJvZHlzZXRfcmJEb21pbmFuY2VHcm91cAC7CCNyYXdyaWdpZGJvZHlzZXRfcmJTZXREb21pbmFuY2VHcm91cACdCBtyYXdyaWdpZGJvZHlzZXRfcmJFbmFibGVDY2QAkAkWcmF3cmlnaWRib2R5c2V0X3JiTWFzcwD5BxlyYXdyaWdpZGJvZHlzZXRfcmJJbnZNYXNzALwIInJhd3JpZ2lkYm9keXNldF9yYkVmZmVjdGl2ZUludk1hc3MAlgYacmF3cmlnaWRib2R5c2V0X3JiTG9jYWxDb20AlwYacmF3cmlnaWRib2R5c2V0X3JiV29ybGRDb20AmAYpcmF3cmlnaWRib2R5c2V0X3JiSW52UHJpbmNpcGFsSW5lcnRpYVNxcnQAmQYscmF3cmlnaWRib2R5c2V0X3JiUHJpbmNpcGFsSW5lcnRpYUxvY2FsRnJhbWUAmgYicmF3cmlnaWRib2R5c2V0X3JiUHJpbmNpcGFsSW5lcnRpYQDdBi5yYXdyaWdpZGJvZHlzZXRfcmJFZmZlY3RpdmVXb3JsZEludkluZXJ0aWFTcXJ0AMEFKXJhd3JpZ2lkYm9keXNldF9yYkVmZmVjdGl2ZUFuZ3VsYXJJbmVydGlhAL0GGHJhd3JpZ2lkYm9keXNldF9yYldha2VVcAD6Bx5yYXdyaWdpZGJvZHlzZXRfcmJJc0NjZEVuYWJsZWQAvQgecmF3cmlnaWRib2R5c2V0X3JiTnVtQ29sbGlkZXJzAL4IGnJhd3JpZ2lkYm9keXNldF9yYkNvbGxpZGVyAKIHGnJhd3JpZ2lkYm9keXNldF9yYkJvZHlUeXBlAL8IHXJhd3JpZ2lkYm9keXNldF9yYlNldEJvZHlUeXBlAKsIGXJhd3JpZ2lkYm9keXNldF9yYklzRml4ZWQAoggdcmF3cmlnaWRib2R5c2V0X3JiSXNLaW5lbWF0aWMAowgbcmF3cmlnaWRib2R5c2V0X3JiSXNEeW5hbWljAKwIH3Jhd3JpZ2lkYm9keXNldF9yYkxpbmVhckRhbXBpbmcAwAggcmF3cmlnaWRib2R5c2V0X3JiQW5ndWxhckRhbXBpbmcAwQgicmF3cmlnaWRib2R5c2V0X3JiU2V0TGluZWFyRGFtcGluZwDNCSNyYXdyaWdpZGJvZHlzZXRfcmJTZXRBbmd1bGFyRGFtcGluZwC6CRxyYXdyaWdpZGJvZHlzZXRfcmJTZXRFbmFibGVkAOgHG3Jhd3JpZ2lkYm9keXNldF9yYklzRW5hYmxlZADCCB5yYXdyaWdpZGJvZHlzZXRfcmJHcmF2aXR5U2NhbGUAwwghcmF3cmlnaWRib2R5c2V0X3JiU2V0R3Jhdml0eVNjYWxlALAHHXJhd3JpZ2lkYm9keXNldF9yYlJlc2V0Rm9yY2VzALsJHnJhd3JpZ2lkYm9keXNldF9yYlJlc2V0VG9ycXVlcwC8CRpyYXdyaWdpZGJvZHlzZXRfcmJBZGRGb3JjZQDCBx5yYXdyaWdpZGJvZHlzZXRfcmJBcHBseUltcHVsc2UAwwcbcmF3cmlnaWRib2R5c2V0X3JiQWRkVG9ycXVlAMQHJHJhd3JpZ2lkYm9keXNldF9yYkFwcGx5VG9ycXVlSW1wdWxzZQDFByFyYXdyaWdpZGJvZHlzZXRfcmJBZGRGb3JjZUF0UG9pbnQA5AYlcmF3cmlnaWRib2R5c2V0X3JiQXBwbHlJbXB1bHNlQXRQb2ludADmBSxyYXdyaWdpZGJvZHlzZXRfcmJBZGRpdGlvbmFsU29sdmVySXRlcmF0aW9ucwDECC9yYXdyaWdpZGJvZHlzZXRfcmJTZXRBZGRpdGlvbmFsU29sdmVySXRlcmF0aW9ucwDOCRpyYXdyaWdpZGJvZHlzZXRfcmJVc2VyRGF0YQDFCB1yYXdyaWdpZGJvZHlzZXRfcmJTZXRVc2VyRGF0YQCFCRpfX3diZ19yYXdyaWdpZGJvZHlzZXRfZnJlZQDaBxNyYXdyaWdpZGJvZHlzZXRfbmV3ANsHH3Jhd3JpZ2lkYm9keXNldF9jcmVhdGVSaWdpZEJvZHkAswMWcmF3cmlnaWRib2R5c2V0X3JlbW92ZQCiBRhyYXdyaWdpZGJvZHlzZXRfY29udGFpbnMAzwkmcmF3cmlnaWRib2R5c2V0X2ZvckVhY2hSaWdpZEJvZHlIYW5kbGUAsgk5cmF3cmlnaWRib2R5c2V0X3Byb3BhZ2F0ZU1vZGlmaWVkQm9keVBvc2l0aW9uc1RvQ29sbGlkZXJzAP4JGF9fd2JnX3Jhd2Jyb2FkcGhhc2VfZnJlZQDpCRFyYXdicm9hZHBoYXNlX25ldwDqCRxyYXdjb2xsaWRlcnNldF9jb1RyYW5zbGF0aW9uAJsGGXJhd2NvbGxpZGVyc2V0X2NvUm90YXRpb24AvgYfcmF3Y29sbGlkZXJzZXRfY29TZXRUcmFuc2xhdGlvbgD7ByhyYXdjb2xsaWRlcnNldF9jb1NldFRyYW5zbGF0aW9uV3J0UGFyZW50ANwHHHJhd2NvbGxpZGVyc2V0X2NvU2V0Um90YXRpb24A1gYlcmF3Y29sbGlkZXJzZXRfY29TZXRSb3RhdGlvbldydFBhcmVudADFChlyYXdjb2xsaWRlcnNldF9jb0lzU2Vuc29yAMYIGnJhd2NvbGxpZGVyc2V0X2NvU2hhcGVUeXBlAIgKIHJhd2NvbGxpZGVyc2V0X2NvSGFsZnNwYWNlTm9ybWFsAJ0FHHJhd2NvbGxpZGVyc2V0X2NvSGFsZkV4dGVudHMAkAUfcmF3Y29sbGlkZXJzZXRfY29TZXRIYWxmRXh0ZW50cwCRCRdyYXdjb2xsaWRlcnNldF9jb1JhZGl1cwD8BxpyYXdjb2xsaWRlcnNldF9jb1NldFJhZGl1cwDVChtyYXdjb2xsaWRlcnNldF9jb0hhbGZIZWlnaHQA/QcecmF3Y29sbGlkZXJzZXRfY29TZXRIYWxmSGVpZ2h0ANYKHHJhd2NvbGxpZGVyc2V0X2NvUm91bmRSYWRpdXMA/gcfcmF3Y29sbGlkZXJzZXRfY29TZXRSb3VuZFJhZGl1cwDXChlyYXdjb2xsaWRlcnNldF9jb1ZlcnRpY2VzALIGGHJhd2NvbGxpZGVyc2V0X2NvSW5kaWNlcwCzBiNyYXdjb2xsaWRlcnNldF9jb0hlaWdodGZpZWxkSGVpZ2h0cwC0BiFyYXdjb2xsaWRlcnNldF9jb0hlaWdodGZpZWxkU2NhbGUAhgUhcmF3Y29sbGlkZXJzZXRfY29IZWlnaHRmaWVsZE5Sb3dzAOcFIXJhd2NvbGxpZGVyc2V0X2NvSGVpZ2h0ZmllbGROQ29scwDoBRdyYXdjb2xsaWRlcnNldF9jb1BhcmVudADiBxtyYXdjb2xsaWRlcnNldF9jb1NldEVuYWJsZWQAuAcacmF3Y29sbGlkZXJzZXRfY29Jc0VuYWJsZWQArQgZcmF3Y29sbGlkZXJzZXRfY29GcmljdGlvbgDHCBxyYXdjb2xsaWRlcnNldF9jb1Jlc3RpdHV0aW9uAMgIGHJhd2NvbGxpZGVyc2V0X2NvRGVuc2l0eQDpCBVyYXdjb2xsaWRlcnNldF9jb01hc3MA6ggXcmF3Y29sbGlkZXJzZXRfY29Wb2x1bWUA6wggcmF3Y29sbGlkZXJzZXRfY29Db2xsaXNpb25Hcm91cHMA6QcdcmF3Y29sbGlkZXJzZXRfY29Tb2x2ZXJHcm91cHMA6gcccmF3Y29sbGlkZXJzZXRfY29BY3RpdmVIb29rcwDJCCVyYXdjb2xsaWRlcnNldF9jb0FjdGl2ZUNvbGxpc2lvblR5cGVzAMoIHXJhd2NvbGxpZGVyc2V0X2NvQWN0aXZlRXZlbnRzAMsIK3Jhd2NvbGxpZGVyc2V0X2NvQ29udGFjdEZvcmNlRXZlbnRUaHJlc2hvbGQAzAgecmF3Y29sbGlkZXJzZXRfY29Db250YWluc1BvaW50ANoFGnJhd2NvbGxpZGVyc2V0X2NvQ2FzdFNoYXBlAKUDHXJhd2NvbGxpZGVyc2V0X2NvQ2FzdENvbGxpZGVyAMEEIHJhd2NvbGxpZGVyc2V0X2NvSW50ZXJzZWN0c1NoYXBlALYEHXJhd2NvbGxpZGVyc2V0X2NvQ29udGFjdFNoYXBlAPUBIHJhd2NvbGxpZGVyc2V0X2NvQ29udGFjdENvbGxpZGVyAJwFHXJhd2NvbGxpZGVyc2V0X2NvUHJvamVjdFBvaW50AP8EHnJhd2NvbGxpZGVyc2V0X2NvSW50ZXJzZWN0c1JheQD4BBhyYXdjb2xsaWRlcnNldF9jb0Nhc3RSYXkA1AQkcmF3Y29sbGlkZXJzZXRfY29DYXN0UmF5QW5kR2V0Tm9ybWFsAJ8DGnJhd2NvbGxpZGVyc2V0X2NvU2V0U2Vuc29yAIEIH3Jhd2NvbGxpZGVyc2V0X2NvU2V0UmVzdGl0dXRpb24AvQkccmF3Y29sbGlkZXJzZXRfY29TZXRGcmljdGlvbgDQCSRyYXdjb2xsaWRlcnNldF9jb0ZyaWN0aW9uQ29tYmluZVJ1bGUAzQgncmF3Y29sbGlkZXJzZXRfY29TZXRGcmljdGlvbkNvbWJpbmVSdWxlAPYIJ3Jhd2NvbGxpZGVyc2V0X2NvUmVzdGl0dXRpb25Db21iaW5lUnVsZQDOCCpyYXdjb2xsaWRlcnNldF9jb1NldFJlc3RpdHV0aW9uQ29tYmluZVJ1bGUA9wgjcmF3Y29sbGlkZXJzZXRfY29TZXRDb2xsaXNpb25Hcm91cHMAowcgcmF3Y29sbGlkZXJzZXRfY29TZXRTb2x2ZXJHcm91cHMAkwcfcmF3Y29sbGlkZXJzZXRfY29TZXRBY3RpdmVIb29rcwD4CCByYXdjb2xsaWRlcnNldF9jb1NldEFjdGl2ZUV2ZW50cwD5CChyYXdjb2xsaWRlcnNldF9jb1NldEFjdGl2ZUNvbGxpc2lvblR5cGVzAPoIGXJhd2NvbGxpZGVyc2V0X2NvU2V0U2hhcGUA9wYucmF3Y29sbGlkZXJzZXRfY29TZXRDb250YWN0Rm9yY2VFdmVudFRocmVzaG9sZADRCRtyYXdjb2xsaWRlcnNldF9jb1NldERlbnNpdHkA0gkYcmF3Y29sbGlkZXJzZXRfY29TZXRNYXNzANMJInJhd2NvbGxpZGVyc2V0X2NvU2V0TWFzc1Byb3BlcnRpZXMAqgUZX193YmdfcmF3Y29sbGlkZXJzZXRfZnJlZQD8BhJyYXdjb2xsaWRlcnNldF9uZXcA/QYScmF3Y29sbGlkZXJzZXRfbGVuALILF3Jhd2NvbGxpZGVyc2V0X2NvbnRhaW5zANQJHXJhd2NvbGxpZGVyc2V0X2NyZWF0ZUNvbGxpZGVyAOMDFXJhd2NvbGxpZGVyc2V0X3JlbW92ZQDpBSRyYXdjb2xsaWRlcnNldF9mb3JFYWNoQ29sbGlkZXJIYW5kbGUAswkaX193YmdfcmF3c2hhcGVjb250YWN0X2ZyZWUAwAsZX193YmdfcmF3bmFycm93cGhhc2VfZnJlZQDrCRJyYXduYXJyb3dwaGFzZV9uZXcA7AkhcmF3bmFycm93cGhhc2VfY29udGFjdF9wYWlyc193aXRoAJQKG3Jhd25hcnJvd3BoYXNlX2NvbnRhY3RfcGFpcgCaByZyYXduYXJyb3dwaGFzZV9pbnRlcnNlY3Rpb25fcGFpcnNfd2l0aACVCiByYXduYXJyb3dwaGFzZV9pbnRlcnNlY3Rpb25fcGFpcgDuCB1fX3diZ19yYXdjb250YWN0bWFuaWZvbGRfZnJlZQDACxhyYXdjb250YWN0cGFpcl9jb2xsaWRlcjEAsgoYcmF3Y29udGFjdHBhaXJfY29sbGlkZXIyALMKInJhd2NvbnRhY3RwYWlyX251bUNvbnRhY3RNYW5pZm9sZHMAoAoecmF3Y29udGFjdHBhaXJfY29udGFjdE1hbmlmb2xkANAHGXJhd2NvbnRhY3RtYW5pZm9sZF9ub3JtYWwA/gYbcmF3Y29udGFjdG1hbmlmb2xkX2xvY2FsX24xAIMHG3Jhd2NvbnRhY3RtYW5pZm9sZF9sb2NhbF9uMgCEBxxyYXdjb250YWN0bWFuaWZvbGRfc3Vic2hhcGUxALQKHHJhd2NvbnRhY3RtYW5pZm9sZF9zdWJzaGFwZTIAtQofcmF3Y29udGFjdG1hbmlmb2xkX251bV9jb250YWN0cwChCiNyYXdjb250YWN0bWFuaWZvbGRfY29udGFjdF9sb2NhbF9wMQDCBiNyYXdjb250YWN0bWFuaWZvbGRfY29udGFjdF9sb2NhbF9wMgDDBh9yYXdjb250YWN0bWFuaWZvbGRfY29udGFjdF9kaXN0AL4JH3Jhd2NvbnRhY3RtYW5pZm9sZF9jb250YWN0X2ZpZDEAvwkfcmF3Y29udGFjdG1hbmlmb2xkX2NvbnRhY3RfZmlkMgDACSJyYXdjb250YWN0bWFuaWZvbGRfY29udGFjdF9pbXB1bHNlAJIJLHJhd2NvbnRhY3RtYW5pZm9sZF9jb250YWN0X3RhbmdlbnRfaW1wdWxzZV94AMEJLHJhd2NvbnRhY3RtYW5pZm9sZF9jb250YWN0X3RhbmdlbnRfaW1wdWxzZV95AJMJJnJhd2NvbnRhY3RtYW5pZm9sZF9udW1fc29sdmVyX2NvbnRhY3RzAKIKJ3Jhd2NvbnRhY3RtYW5pZm9sZF9zb2x2ZXJfY29udGFjdF9wb2ludAC1BiZyYXdjb250YWN0bWFuaWZvbGRfc29sdmVyX2NvbnRhY3RfZGlzdACUCSpyYXdjb250YWN0bWFuaWZvbGRfc29sdmVyX2NvbnRhY3RfZnJpY3Rpb24A7wgtcmF3Y29udGFjdG1hbmlmb2xkX3NvbHZlcl9jb250YWN0X3Jlc3RpdHV0aW9uAPAIMnJhd2NvbnRhY3RtYW5pZm9sZF9zb2x2ZXJfY29udGFjdF90YW5nZW50X3ZlbG9jaXR5AL8GHV9fd2JnX3Jhd3BvaW50cHJvamVjdGlvbl9mcmVlAMALGHJhd3BvaW50cHJvamVjdGlvbl9wb2ludADjBxtyYXdwb2ludHByb2plY3Rpb25faXNJbnNpZGUAswslX193YmdfcmF3cG9pbnRjb2xsaWRlcnByb2plY3Rpb25fZnJlZQDACylyYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9jb2xsaWRlckhhbmRsZQC0CyByYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9wb2ludADRByNyYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9pc0luc2lkZQC1CyZyYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9mZWF0dXJlVHlwZQDCCyRyYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9mZWF0dXJlSWQA/wkdX193YmdfcmF3cmF5aW50ZXJzZWN0aW9uX2ZyZWUAwAshcmF3cmF5Y29sbGlkZXJpbnRlcnNlY3Rpb25fbm9ybWFsANIHHnJhd3JheWNvbGxpZGVyaW50ZXJzZWN0aW9uX3RvaQC2CxxfX3diZ19yYXdyYXljb2xsaWRlcnRvaV9mcmVlAMALE19fd2JnX3Jhd3NoYXBlX2ZyZWUApAgPcmF3c2hhcGVfY3Vib2lkAMIJFHJhd3NoYXBlX3JvdW5kQ3Vib2lkALQJDXJhd3NoYXBlX2JhbGwA1QkScmF3c2hhcGVfaGFsZnNwYWNlAOQFEHJhd3NoYXBlX2NhcHN1bGUArQcRcmF3c2hhcGVfY3lsaW5kZXIAyAkWcmF3c2hhcGVfcm91bmRDeWxpbmRlcgDDCQ1yYXdzaGFwZV9jb25lAMkJEnJhd3NoYXBlX3JvdW5kQ29uZQDECRFyYXdzaGFwZV9wb2x5bGluZQDlBxByYXdzaGFwZV90cmltZXNoAOYHFHJhd3NoYXBlX2hlaWdodGZpZWxkAMIFEHJhd3NoYXBlX3NlZ21lbnQA1wYRcmF3c2hhcGVfdHJpYW5nbGUAwwUWcmF3c2hhcGVfcm91bmRUcmlhbmdsZQC4BRNyYXdzaGFwZV9jb252ZXhIdWxsAPAHGHJhd3NoYXBlX3JvdW5kQ29udmV4SHVsbADrBxNyYXdzaGFwZV9jb252ZXhNZXNoAKsHGHJhd3NoYXBlX3JvdW5kQ29udmV4TWVzaACkBxJyYXdzaGFwZV9jYXN0U2hhcGUAuAEYcmF3c2hhcGVfaW50ZXJzZWN0c1NoYXBlALoDFXJhd3NoYXBlX2NvbnRhY3RTaGFwZQDbARZyYXdzaGFwZV9jb250YWluc1BvaW50AOkEFXJhd3NoYXBlX3Byb2plY3RQb2ludACUBBZyYXdzaGFwZV9pbnRlcnNlY3RzUmF5AJcEEHJhd3NoYXBlX2Nhc3RSYXkAiAQccmF3c2hhcGVfY2FzdFJheUFuZEdldE5vcm1hbADQAhRyYXdzaGFwZXRvaV93aXRuZXNzMQDTBxNyYXdzaGFwZXRvaV9ub3JtYWwxANQHE3Jhd3NoYXBldG9pX25vcm1hbDIA1QceX193YmdfcmF3c2hhcGVjb2xsaWRlcnRvaV9mcmVlAMALHHJhd3NoYXBlY29sbGlkZXJ0b2lfd2l0bmVzczIA1gcPcmF3cm90YXRpb25fbmV3ALYKFHJhd3JvdGF0aW9uX2lkZW50aXR5ANgKDXJhd3JvdGF0aW9uX3gAwwsOcmF3dmVjdG9yX3plcm8A/goNcmF3dmVjdG9yX25ldwDNCg9yYXd2ZWN0b3Jfc2V0X3gAtwsPcmF3dmVjdG9yX3NldF96AJULDXJhd3ZlY3Rvcl94eXoArggNcmF3dmVjdG9yX3l4egCvCA1yYXd2ZWN0b3Jfenh5ALAIDXJhd3ZlY3Rvcl94enkAsQgNcmF3dmVjdG9yX3l6eACyCA1yYXd2ZWN0b3Jfenl4ALMIFnJhd3NkcG1hdHJpeDNfZWxlbWVudHMAmwchX193YmdfcmF3ZGVidWdyZW5kZXJwaXBlbGluZV9mcmVlAI8KGnJhd2RlYnVncmVuZGVycGlwZWxpbmVfbmV3AOwHH3Jhd2RlYnVncmVuZGVycGlwZWxpbmVfdmVydGljZXMAnggdcmF3ZGVidWdyZW5kZXJwaXBlbGluZV9jb2xvcnMAnwgdcmF3ZGVidWdyZW5kZXJwaXBlbGluZV9yZW5kZXIAlAUYX193YmdfcmF3ZXZlbnRxdWV1ZV9mcmVlAN0HH19fd2JnX3Jhd2NvbnRhY3Rmb3JjZWV2ZW50X2ZyZWUAwAsecmF3Y29udGFjdGZvcmNlZXZlbnRfY29sbGlkZXIyALgLIHJhd2NvbnRhY3Rmb3JjZWV2ZW50X3RvdGFsX2ZvcmNlANcHKnJhd2NvbnRhY3Rmb3JjZWV2ZW50X3RvdGFsX2ZvcmNlX21hZ25pdHVkZQC5CyhyYXdjb250YWN0Zm9yY2VldmVudF9tYXhfZm9yY2VfZGlyZWN0aW9uANgHKHJhd2NvbnRhY3Rmb3JjZWV2ZW50X21heF9mb3JjZV9tYWduaXR1ZGUAugsRcmF3ZXZlbnRxdWV1ZV9uZXcAuQcicmF3ZXZlbnRxdWV1ZV9kcmFpbkNvbGxpc2lvbkV2ZW50cwCACiVyYXdldmVudHF1ZXVlX2RyYWluQ29udGFjdEZvcmNlRXZlbnRzAIEKE3Jhd2V2ZW50cXVldWVfY2xlYXIAxgcdX193YmdfcmF3cGh5c2ljc3BpcGVsaW5lX2ZyZWUA7QkWcmF3cGh5c2ljc3BpcGVsaW5lX25ldwD7CBdyYXdwaHlzaWNzcGlwZWxpbmVfc3RlcAChBCFyYXdwaHlzaWNzcGlwZWxpbmVfc3RlcFdpdGhFdmVudHMAjQQbX193YmdfcmF3cXVlcnlwaXBlbGluZV9mcmVlAOIJFHJhd3F1ZXJ5cGlwZWxpbmVfbmV3AO4JF3Jhd3F1ZXJ5cGlwZWxpbmVfdXBkYXRlALoHGHJhd3F1ZXJ5cGlwZWxpbmVfY2FzdFJheQCYBCRyYXdxdWVyeXBpcGVsaW5lX2Nhc3RSYXlBbmRHZXROb3JtYWwA9QMlcmF3cXVlcnlwaXBlbGluZV9pbnRlcnNlY3Rpb25zV2l0aFJheQDsAiZyYXdxdWVyeXBpcGVsaW5lX2ludGVyc2VjdGlvbldpdGhTaGFwZQCbBB1yYXdxdWVyeXBpcGVsaW5lX3Byb2plY3RQb2ludACtBCpyYXdxdWVyeXBpcGVsaW5lX3Byb2plY3RQb2ludEFuZEdldEZlYXR1cmUAsQQncmF3cXVlcnlwaXBlbGluZV9pbnRlcnNlY3Rpb25zV2l0aFBvaW50AMgDGnJhd3F1ZXJ5cGlwZWxpbmVfY2FzdFNoYXBlAPEBJ3Jhd3F1ZXJ5cGlwZWxpbmVfaW50ZXJzZWN0aW9uc1dpdGhTaGFwZQDiAjJyYXdxdWVyeXBpcGVsaW5lX2NvbGxpZGVyc1dpdGhBYWJiSW50ZXJzZWN0aW5nQWFiYgDhBh9fX3diZ19yYXdkZXNlcmlhbGl6ZWR3b3JsZF9mcmVlAJAKIHJhd2Rlc2VyaWFsaXplZHdvcmxkX3Rha2VHcmF2aXR5AIwHLnJhd2Rlc2VyaWFsaXplZHdvcmxkX3Rha2VJbnRlZ3JhdGlvblBhcmFtZXRlcnMA0AQmcmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZUlzbGFuZE1hbmFnZXIAiQcjcmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZUJyb2FkUGhhc2UAlAckcmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZU5hcnJvd1BoYXNlAMcEH3Jhd2Rlc2VyaWFsaXplZHdvcmxkX3Rha2VCb2RpZXMAlQUicmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZUNvbGxpZGVycwCCBSZyYXdkZXNlcmlhbGl6ZWR3b3JsZF90YWtlSW1wdWxzZUpvaW50cwCFByhyYXdkZXNlcmlhbGl6ZWR3b3JsZF90YWtlTXVsdGlib2R5Sm9pbnRzAIYHHHJhd3NlcmlhbGl6YXRpb25waXBlbGluZV9uZXcAxAslcmF3c2VyaWFsaXphdGlvbnBpcGVsaW5lX3NlcmlhbGl6ZUFsbACCAydyYXdzZXJpYWxpemF0aW9ucGlwZWxpbmVfZGVzZXJpYWxpemVBbGwApQcqcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9taW5Jc2xhbmRTaXplAI0LK3Jhd2ludGVncmF0aW9ucGFyYW1ldGVyc19zZXRfbWF4Q2NkU3Vic3RlcHMAjgsPcmF3dmVjdG9yX3NldF95AI8LInJhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfdXAAygcXcmF3c2hhcGVjb250YWN0X25vcm1hbDIAygcWcmF3c2hhcGVjb250YWN0X3BvaW50MQDjBxZyYXdzaGFwZWNvbnRhY3RfcG9pbnQyANIHGXJhd3JheWludGVyc2VjdGlvbl9ub3JtYWwA0gcccmF3c2hhcGVjb2xsaWRlcnRvaV93aXRuZXNzMQDSBxdyYXdzaGFwZWNvbnRhY3Rfbm9ybWFsMQDWBxtyYXdzaGFwZWNvbGxpZGVydG9pX25vcm1hbDEAygcbcmF3c2hhcGVjb2xsaWRlcnRvaV9ub3JtYWwyAMsHFHJhd3NoYXBldG9pX3dpdG5lc3MyANcHJnJhd2tpbmVtYXRpY2NoYXJhY3RlcmNvbnRyb2xsZXJfb2Zmc2V0AK4LK3Jhd2ludGVncmF0aW9ucGFyYW1ldGVyc19wcmVkaWN0aW9uRGlzdGFuY2UAqAsmcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX21pbklzbGFuZFNpemUAqgsncmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX21heENjZFN1YnN0ZXBzAKsLE3Jhd3JpZ2lkYm9keXNldF9sZW4AsgsYcmF3c2hhcGVjb250YWN0X2Rpc3RhbmNlAKMLHnJhd3JheWludGVyc2VjdGlvbl9mZWF0dXJlVHlwZQDCCylyYXdyYXljb2xsaWRlcmludGVyc2VjdGlvbl9jb2xsaWRlckhhbmRsZQC0CxZyYXdyYXlpbnRlcnNlY3Rpb25fdG9pALYLJnJhd3JheWNvbGxpZGVyaW50ZXJzZWN0aW9uX2ZlYXR1cmVUeXBlAMILIHJhd3JheWNvbGxpZGVydG9pX2NvbGxpZGVySGFuZGxlAMELFXJhd3JheWNvbGxpZGVydG9pX3RvaQC2CyJyYXdzaGFwZWNvbGxpZGVydG9pX2NvbGxpZGVySGFuZGxlAMELF3Jhd3NoYXBlY29sbGlkZXJ0b2lfdG9pALYLD3Jhd3NoYXBldG9pX3RvaQDDCw1yYXdyb3RhdGlvbl95AK4LDXJhd3JvdGF0aW9uX3oAtgsNcmF3cm90YXRpb25fdwCvCwtyYXd2ZWN0b3JfeADDCwtyYXd2ZWN0b3JfeQCuCwtyYXd2ZWN0b3JfegC2Cx5yYXdjb250YWN0Zm9yY2VldmVudF9jb2xsaWRlcjEAwQsrcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX2FsbG93ZWRMaW5lYXJFcnJvcgC5CxxyYXdjb2xsaWRlcnNldF9pc0hhbmRsZVZhbGlkANQJI19fd2JnX3Jhd3NlcmlhbGl6YXRpb25waXBlbGluZV9mcmVlAMALHHJhd3JheWludGVyc2VjdGlvbl9mZWF0dXJlSWQA/wkkcmF3cmF5Y29sbGlkZXJpbnRlcnNlY3Rpb25fZmVhdHVyZUlkAP8JGV9fd2JnX3Jhd2NvbnRhY3RwYWlyX2ZyZWUAwAslX193YmdfcmF3cmF5Y29sbGlkZXJpbnRlcnNlY3Rpb25fZnJlZQDACxZfX3diZ19yYXdzaGFwZXRvaV9mcmVlAMALFl9fd2JnX3Jhd3JvdGF0aW9uX2ZyZWUAwAsUX193YmdfcmF3dmVjdG9yX2ZyZWUAwAsYX193YmdfcmF3c2RwbWF0cml4M19mcmVlAMALH19fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIA8AwPX193YmluZGdlbl9mcmVlAO4LEV9fd2JpbmRnZW5fbWFsbG9jALgKFF9fd2JpbmRnZW5fZXhuX3N0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/ABqQQBBxAAQiQ0aIANBxAFqQgA3AgAgA0HAAWpBgICA/AM2AgAgA0HMAWpCADcCACADQdQBakIANwIAIANB3AFqQgA3AgAgA0HkAWpCADcCACADQewBakIANwIAIANB9AFqQQA2AgAgA0H4AWpBAEHEABCJDRogA0HAAmpCADcCACADQbwCakGAgID8AzYCACADQcgCakIANwIAIANB0AJqQgA3AgAgA0HYAmpCADcCACADQeACakIANwIAIANB6AJqQgA3AgAgA0HwAmpBADYCACADQfQCakEAQcQAEIkNGiADQbwDakIANwIAIANBuANqQYCAgPwDNgIAIANBxANqQgA3AgAgA0HMA2pCADcCACADQdQDakIANwIAIANB3ANqQgA3AgAgA0HkA2pCADcCACADQewDakEANgIAIANB8ANqIQMgY0EEayJjDQALCyABBEADQCADQQBBxAAQiQ0iA0IANwJIIANBgICA/AM2AkQgA0HQAGpCADcCACADQdgAakIANwIAIANB4ABqQgA3AgAgA0HoAGpCADcCACADQfAAakIANwIAIANB+ABqQQA2AgAgA0H8AGohAyABQQFrIgENAAsLIGYgZ2pBAWshZgsgA0EAQcQAEIkNIgFCADcCSCABQYCAgPwDNgJEIAFB0ABqQgA3AgAgAUHYAGpCADcCACABQeAAakIANwIAIAFB6ABqQgA3AgAgAUHwAGpCADcCACABQfgAakEANgIAIABBkANqQQA2AgAgACBmQQFqNgL4AiCcASgCACIBIJsBKAIAIgNLDQELIAMgigFNBEACQAJAIAEgA0YEQCAAQQA2ApADIABBhANqImlBADYCACABIQMMAQtBACFmIAMgAWsiYiAAQYwDaigCAEsEQCAAQYgDakEAIGIQnQYgACgCkAMhZgsgACgCiAMiZyBmQRhsaiFjIGJBAk8EQCBjQQAgAyABQX9zakEYbBCJDRogYiBmaiIBQQFrIWYgAUEYbCBnakEYayFjCyBjQgA3AgAgY0EQakIANwIAIGNBCGpCADcCACAAIGZBAWo2ApADIABBhANqImlBADYCACCcASgCACIBIJsBKAIAIgNLDQELIAMgigFNBEACQCABIANGBEAgaUEANgIAIAMhAQwBC0EAIWYgAyABayJiIABBgANqKAIASwRAIABB/AJqQQAgYhCd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QewAaioCACEPIGNB6ABqKgIAIRAgY0HUAGooAgAhDSBjQdAAaigCACEDIGNBzABqKAIAIQUgY0HIAGooAgAhASBjQcQAaigCACEIIGMoAkAhYgJ9IGNB+ABqLgEAQQBIBEAgASEHIAghBiBiIWdDAACAvwwBCyAOjCEOIA+MIQ8gEIwhECANIQcgAyEGIAUhZyABIQ0gCCEDIGIhBUMAAIA/CyETIGkoAgAhaSBqKAKgASFiIGooAnAhCAJAAkAgBQRAAkAgdUUNACADIHJPDQAgdSADQegCbGoiASgCAEUNACABKAIEIA1GDQILQeybwQBBE0G0zcEAEOEJAAsgZEGIBWoiAUEIakIANwMAIAFBEGpCADcDACABQRhqQgA3AwAgZUIANwMAIH5CADcDACBkQZAKaiIBQQhqQgA3AwAgAUEQakIANwMAIGRBwApqQQA2AgAgZEIANwOIBSBkQgA3A5AKIGRCADcDuApDAACAPyEVQwAAAAAhKEMAAAAAISNDAAAAACExQwAAAAAhIkMAAAAAIR1DAAAAACEkQwAAAAAhFkMAAAAAIRpDAAAAACEXQwAAAAAhLUMAAAAAISxDAAAAACE1QwAAAAAhLkMAAAAAIRJDAAAAACERQwAAAAAhFEMAAAAAISlDAAAAACE6DAELIAFB6AFqIgUqAgAhFyABQeQBaioCACEaIAFB4AFqIg0qAgAhFiABQYwBaioCACEkIAFBiAFqKgIAIR0gAUGEAWoqAgAhIiABQYABaioCACExIAFB/ABqKgIAISMgAUH4AGoqAgAhKCABQUBrKgIAIS4gAUE8aioCACE1IAFBOGoqAgAhLCABQTRqKgIAIRUgAUEwaioCACESIAFBLGoqAgAhESABQShqKgIAIRQgZEEIaiIDQRBqImxCADcDACADQQhqImhCADcDACBkQgA3AwggZEHICmoic0EIaiJ0IAFB9AFqKAIANgIAIGQgAUHsAWopAgA3A8gKIHFBEGogAUGoAWopAwA3AwAgcUEIaiABQaABaikDADcDACBxIAFBmAFqKQMANwMAIHkgDSkCADcCACB5QQhqIAUoAgA2AgAgAUHYAmoqAgAhLSABQZABaioCACE6IAFBlAFqKgIAISkgZEHACmogAUHIAWooAgA2AgAgZCABQcABaikCADcDuAogfiADQShqKQMANwMA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IGooArQBIgEgB08EfyAHBSAHIAEiBWsiBiBqQbABaigCACABa0sEQCMAQSBrImIkACABIAZqIgUgAUkNGUEEIGpBrAFqIgMoAgQiCEEBdCINIAUgBSANSRsiBSAFQQRNGyINQdgCbCEFIA1B/oL9AklBAnQhYwJAIAhFBEAgYkEANgIYDAELIGJBBDYCGCBiIAhB2AJsNgIcIGIgAygCADYCFAsgYkEIaiBjIAUgYkEUahDaBiBiKAIMIQUCQCBiKAIIRQRAIAMgDTYCBCADIAU2AgAMAQsgBUGBgICAeEYNACAFRQ0aDBwLIGJBIGokACBqKAK0ASEFCyBqKAKsASAFQdgCbGohAyAGQQJPBEAgByABQX9zaiIBQQNxIQcgBkECa0EDTwRAIAFBfHEhbQNAIANBfzYCCCADQn83AgAgA0EMakEAQZQCEIkNGiADQgA3AqQCIANBgICA/AM2AqACIANBrAJqQgA3AgAgA0G0AmpCADcCACADQbwCakIANwIAIANBxAJqQgA3AgAgA0HMAmpCADcCACADQdQCakEANgIAIANB4AJqQX82AgAgA0HYAmpCfzcCACADQeQCakEAQZQCEIkNGiADQfwEakIANwIAIANB+ARqQYCAgPwDNgIAIANBhAVqQgA3AgAgA0GMBWpCADcCACADQZQFakIANwIAIANBnAVqQgA3AgAgA0GkBWpCADcCACADQawFakEANgIAIANBuAVqQX82AgAgA0GwBWpCfzcCACADQbwFakEAQZQCEIkNGiADQdQHakIANwIAIANB0AdqQYCAgPwDNgIAIANB3AdqQgA3AgAgA0HkB2pCADcCACADQewHakIANwIAIANB9AdqQgA3AgAgA0H8B2pCADcCACADQYQIakEANgIAIANBkAhqQX82AgAgA0GICGpCfzcCACADQZQIakEAQZQCEIkNGiADQawKakIANwIAIANBqApqQYCAgPwDNgIAIANBtApqQgA3AgAgA0G8CmpCADcCACADQcQKakIANwIAIANBzApqQgA3AgAgA0HUCmpCADcCACADQdwKakEANgIAIANB4ApqIQMgbUEEayJtDQALCyAHBEADQCADQX82AgggA0J/NwIAIANBDGpBAEGUAhCJDRogA0IANwKkAiADQYCAgPwDNgKgAiADQawCakIANwIAIANBtAJqQgA3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A0EQakIANwMAIANBGGpCADcDACBzQgA3AwAgdEIANwMAIGRBkApqIgNBCGpCADcDACADQRBqQgA3AwAgZEGICmpBADYCACBkQgA3A4gFIGRCADcDkAogZEIANwOACkMAAIA/ISFDAAAAACEZQwAAAAAhH0MAAAAAISVDAAAAACEiQwAAAAAhHUMAAAAAISRDAAAAACE8QwAAAAAhM0MAAAAAIRZDAAAAACEwQwAAAAAhKkMAAAAAIStDAAAAACEnQwAAAAAhEkMAAAAAIRFDAAAAACEUQwAAAAAhGkMAAAAAIRcMAQsgA0HoAWoiYioCACEWIANB5AFqKgIAITMgA0HgAWoiYyoCACE8IANBjAFqKgIAISQgA0GIAWoqAgAhHSADQYQBaioCACEiIANBgAFqKgIAISUgA0H8AGoqAgAhHyADQfgAaioCACEZIANBQGsqAgAhJyADQTxqKgIAISsgA0E4aioCACEqIANBNGoqAgAhISADQTBqKgIAIRIgA0EsaioCACERIANBKGoqAgAhFCBkQQhqIgZBEGoicEIANwMAIAZBCGoibkIANwMAIGRCADcDCCBkQcgKaiJvQQhqIncgA0H0AWooAgA2AgAgZCADQewBaikCADcDyAogeEEQaiADQagBaikDADcDACB4QQhqIANBoAFqKQMANwMAIHggA0GYAWopAwA3AwAggwEgYykCADcCACCDAUEIaiBiKAIANgIAIANB2AJqKgIAITAgA0GQAWoqAgAhFyADQZQBaioCACEaIGRBiApqIANByAFqKAIANgIAIGQgA0HAAWopAgA3A4AKIHQgBkEoaikDADcDACBzIAZBIGopAwA3AwAgZEGIBWoiA0EYaiB4KQMANwMAIANBEGogcCkDADcDACADQQhqIG4pAwA3AwAgZCBkKQMINwOIBSBkQZAKaiIDQRBqIG9BEGopAwA3AwAgA0EIaiB3KQMANwMAIGQgZCkDyAo3A5AKCyAHRQ0EIHVFDQUgBSByTw0FIHUgBUHoAmxqIm4oAgBFDQUgbigCBCANRw0FIAUglQFPDQYghAFFDQYghAEgBUEUbGoiAygCACANRw0GIAMoAgQieyCJAU8NByCAAUUNByCAASB7QZQCbGoiZS0AkAJBAkYNByADQQhqKAIAIoYBIGUoAgBHDQcgA0EQaigCACFxIANBDGoo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ayBrKQDrATcDOCBrQdACaiIDQShqQgA3AwAgA0EgakIANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIGtCADcD0AIgACJqKALUAiIAIAFPBH8gAQUgASAAImJrIgUgakHQAmooAgAgAGtLBEAjAEEgayIDJAAgACAFaiIHIABJDQhBBCBqQcwCaiIIKAIEIgtBAXQiDCAHIAcgDEkbIgcgB0EETRsiDEHgA2whByAMQcWIkQJJQQN0IQ0CQCALRQRAIANBADYCGAwBCyADQQg2AhggAyALQeADbDYCHCADIAgoAgA2AhQLIANBCGogDSAHIANBFGoQ2gYgAygCDCEHAkAgAygCCEUEQCAIIAw2AgQgCCAHNgIADAELIAdBgYCAgHhGDQAgB0UNCSAHIANBEGooAgBB0IHEACgCACIAQZcHIAAbEQAAAAsgA0EgaiQAIGooAtQCIWILIGooAswCIGJB4ANsaiEDIAVBAk8EQCAAQX9zIAFqIQEga0GTAmohBwNAIANCADcDCCADQgA3AwAgA0H////7BzYCUCADQoCAgIDw//+/fzcDSCADQv////v///+//wA3A0AgA0L////7BzcDOCADQoCAgIDw//+/fzcDMCADQv////v///+//wA3AyggA0L////7BzcDICADQoCAgIDw//+/fzcDGCADQv////v///+//wA3AxAgAyBrKQPYATcCVCADQYCAgPwDNgJkIAMgaykDwAE3A2ggA0HcAGoga0HgAWopAwA3AgAgA0HwAGoga0HAAWoiAEEIaikDADcDACADQfgAaiAAQRBqKQMANwMAIANCADcDiAEgA0KAgID8AzcDgAEgA0L////7BzcDoAEgA0EAOgCoASADQv////sHNwK8ASADQQA6AMQBIAMgaykDsAE3A5ABIANBmAFqIGtBuAFqKQMANwMAIAMgaykDmAE3AKkBIANBsQFqIGtBmAFqIgBBCGopAwA3AAAgA0G4AWogAEEPaigAADYAACADIGspA4ABNwDFASADQc0BaiBrQYABaiIAQQhqKQMANwAAIANB1AFqIABBD2ooAAA2AAAgA0EAOgDgASADQv////sHNwPYASADQQA6APwBIANC////+wc3AvQBIANBADoAmAIgA0L////7BzcDkAIgA0HwAWoga0HoAGoiAEEPaigAADYAACADQekBaiAAQQhqKQMANwAAIAMgaykDaDcA4QEgA0GMAmoga0HQAGoiAEEPaigAADYAACADQYUCaiAAQQhqKQMANwAAIAMgaykDUDcA/QEgA0GoAmoga0E4aiIAQQ9qKAAANgAAIANBoQJqIABBCGopAwA3AAAgAyBrKQM4NwCZAiADQQA6ALQCIANC////+wc3AqwCIANBtwJqIActAAA6AAAgAyBrLwCRAjsAtQIgA0J/NwPAAiADQYACOwG8AiADQQA2ArgCIANB8AJqIGtBgANqIgBBKGopAwA3AwAgA0HoAmogAEEgaikDADcDACADQeACaiAAQRhqKQMANwMAIANB2AJqIABBEGopAwA3AwAgA0HQAmogAEEIaikDADcDACADIGspA4ADNwPIAiADQX82AvgCIANBpANqIGtB0AJqIgBBKGopAwA3AgAgA0GcA2ogAEEgaikDADcCACADQZQDaiAAQRhqKQMANwIAIANBjANqIABBEGopAwA3AgAgA0GEA2ogAEEIaikDADcCACADIGspA9ACNwL8AiADQX82ArwDIANC/////x83ArQDIANCfzcCrAMgA0HIA2oga0HAAmooAgA2AgAgAyBrKQO4AjcDwAMgA0KBgICAcDcCzAMgA0HcA2oga0GsAmooAgA2AgAgAyBrKQKkAjcC1AMgA0HgA2ohAyABQQFrIgENAAsgBSBiakEBayFiCyADQv////v///+//wA3AxAgA0IANwMIIANCADcDACADQf////sHNgJQIANCgICAgPD//79/NwNIIANC////+////7//ADcDQCADQv////sHNwM4IANCgICAgPD//79/NwMwIANC////+////7//ADcDKCADQv////sHNwMgIANCgICAgPD//79/NwMYIAMgaykD2AE3AlQgA0GAgID8AzYCZCADIGspA8ABNwNoIANB3ABqIGtB4AFqKQMANwIAIANB8ABqIGtBwAFqIgBBCGopAwA3AwAgA0H4AGogAEEQaikDADcDACADQgA3A4gBIANCgICA/AM3A4ABIANC////+wc3A6ABIANBADoAqAEgA0L////7BzcCvAEgA0EAOgDEASADIGspA7ABNwOQASADQZgBaiBrQbgBaikDADcDACADIGspA5gBNwCpASADQbEBaiBrQZgBaiIAQQhqKQMANwAAIANBuAFqIABBD2ooAAA2AAAgAyBrKQOAATcAxQEgA0HNAWoga0GAAWoiAEEIaikDADcAACADQdQBaiAAQQ9qKAAANgAAIANBADoA4AEgA0L////7BzcD2AEgA0EAOgD8ASADQv////sHNwL0ASADQQA6AJgCIANC////+wc3A5ACIANB8AFqIGtB6ABqIgBBD2ooAAA2AAAgA0HpAWogAEEIaikDADcAACADIGspA2g3AOEBIANBjAJqIGtB0ABqIgBBD2ooAAA2AAAgA0GFAmogAEEIaikDADcAACADIGspA1A3AP0BIANBqAJqIGtBOGoiAEEPaigAADYAACADQaECaiAAQQhqKQMANwAAIAMgaykDODcAmQIgA0EAOgC0AiADQv////sHNwKsAiADQbcCaiBrQZMCai0AADoAACADIGsvAJECOwC1AiADQn83A8ACIANBgAI7AbwCIANBADYCuAIgA0HwAmoga0GAA2oiAEEoaikDADcDACADQegCaiAAQSBqKQMANwMAIANB4AJqIABBGGopAwA3AwAgA0HYAmogAEEQaikDADcDACADQdACaiAAQQhqKQMANwMAIAMgaykDgAM3A8gCIANBfzYC+AIgA0GkA2oga0HQAmoiAEEoaikDADcCACADQZwDaiAAQSBqKQMANwIAIANBlANqIABBGGopAwA3AgAgA0GMA2ogAEEQaikDADcCACADQYQDaiAAQQhqKQMANwIAIAMgaykD0AI3AvwCIANBfzYCvAMgA0L/////HzcCtAMgA0J/NwKsAyADQcgDaiBrQcACaigCADYCACADIGspA7gCNwPAAyADQoGAgIBwNwLMAyADQdwDaiBrQawCaigCADYCACADIGspAqQCNwLUAyAGKAIAIQEgYkEBagshACBqIAA2AtQCQQAhBUEAIW4CQAJAAkACQCABIAAgACABSxsiZ0UNACBqKALgASEHIHVFDQEgaigCzAIhYiB6KAIQIW0geigCCCFsIHooAiQhcSB6KAIcIXAga0GAA2oiAEEkaiFkIABBGGohdyBrQdACaiIAQSRqIWUgAEEYaiFoQQAhCwJAAkACQANAIAogBygCACIITQ0GIAkgCEGAA2xqImMoAhAiDSByTw0HIHUgDUHoAmxqIgAoAgBFDQcgY0EUaigCACJ+IAAoAgRHDQcCQCBjQRhqKAIAImkgck8NACB1IGlB6AJsaiIBKAIARQ0AIGNBHGooAgAieCABKAIERw0AIGhBCGogAEH0AWooAgA2AgAgaCAAQewBaikCADcCACBrQdACaiIDQRBqInMgAEGoAWopAwA3AwAgA0EIaiJ0IABBoAFqKQMANwMAIGsgAEGYAWopAwA3A9ACIGVBCGogAEHIAWooAgA2AgAgZSAAQcABaikCADcCACAAQRBqKAIAIXkgd0EIaiABQfQBaigCADYCACB3IAFB7AFqKQIANwIAIGtBgANqIgBBCGoidiABQaABaikDADcDACAAQRBqInwgAUGoAWopAwA3AwAgayABQZgBaikDADcDgAMgZCABQcABaikCADcCACBkQQhqIAFByAFqKAIANgIAIAFBEGooAgAhAUEBIQxBBiEDAkAgDSBxTwRAIAEhBgwBCyBwRQRAIAEhBgwBCyABIQYgcCANQRRsaiIAKAIAIH5HDQAgbSAAKAIEIgZNDQMgbEUNAyBsIAZBlAJsaiIDLQCQAkECRg0DIAMoAgAgAEEIaiIAKAIARw0DIGtBwAJqIABBCGooAgA2AgAgayAAKQIANwO4AiADQYgCaigCACEDQQAhDAsCfwJAAkAgaSBxTw0AIHBFDQAgcCBpQRRsaiINKAIAIHhGDQELIANBBmohaSABIQBBAQwBCyBtIA0oAgQiAE0NBCBsRQ0EIGwgAEGUAmxqImktAJACQQJGDQQgaSgCACANQQhqIg0oAgBHDQQga0HIAWogDUEIaigCADYCACBrIA0pAgA3A8ABIGlBiAJqKAIAIANqIWlBAAshAwJAIGlFBEAgYkGwA2pBADYCAAwBCyBpQQxsIAtqIgUgaigCxAFLBEAgbyAFEPQCCyBiQcADaiBrKQO4AjcCACBiQcgDaiBrQcACaigCADYCACBiIGNBQGtBwAIQiA0iDUH4AmogeTYCACANQcQCaiALNgIAIA1BwAJqIAg2AgAgDUHwAmoga0HQAmoiCEEoaikDADcDACANQegCaiAIQSBqKQMANwMAIA1B4AJqIGgpAwA3AwAgDUHYAmogcykDADcDACANQdACaiB0KQMANwMAIA1ByAJqIGspA9ACNwMAIA1B/AJqIGspA4ADNwIAIA1BhANqIHYpAwA3AgAgDUGMA2ogfCkDADcCACANQZQDaiB3KQMANwIAIA1BnANqIGtBgANqIghBIGopAwA3AgAgDUGkA2ogCEEoaikDADcCACANQdADaiAANgIAIA1BzANqIAM2AgAgDUG8A2ogBjYCACANQbgDaiAMNgIAIA1BtANqIG42AgAgDUGwA2ogaTYCACANQawDaiABNgIAIA1B1ANqIGspA8ABNwIAIA1B3ANqIGtByAFqKAIANgIAIG4gY0H7AmotAAAiACBjQfgCai0AACIBQX9zIgMgY0H6AmotAABxIgZxIghBOHFBAEdqIAhBB3FBAEdqIGNB+QJqLQAAIANxIgMgAHEiCEE4cUEAR2ogCEEHcUEAR2ogAEF/cyIAIANxaSAAIAZxaSABaWpqaiFuIAUhCwsgB0EEaiEHIGJB4ANqIWIgZ0EBayJnRQ0EDAELC0Hsm8EAQRNB0N3BABDhCQALQeybwQBBE0Hg3cEAEOEJAAtB7JvBAEETQfDdwQAQ4QkACyBqKAKkAiIAIG5PDQAgbiAAImNrIgYgakGgAmooAgAgAGtLBEAgakGcAmogACAGEJ4GIGooAqQCIWMLIGooApwCIGNByABsaiEDIAZBAk8EQCBuIABBf3NqIgBBAXEhByAGQQJHBEAgAEF+cSEBA0AgA0J/NwIIIANCADcCACADQQA7AUQgA0L////79///v/8ANwI8IANC////+/f//7//ADcCNCADQv////v3//+//wA3AiwgA0KAgICA8P//v383AiQgA0EQakJ/NwIAIANBGGpCfzcCACADQSBqQX82AgAgA0HIAGpCADcCACADQdAAakJ/NwIAIANB2ABqQn83AgAgA0HgAGpCfzcCACADQegAakF/NgIAIANBhAFqQv////v3//+//wA3AgAgA0H8AGpC////+/f//7//ADcCACADQfQAakL////79///v/8ANwIAIANB7ABqQoCAgIDw//+/fzcCACADQYwBakEAOwEAIANBkAFqIQMgAUECayIBDQALCyAGIGNqQQFrIWMgBwRAIANCfzcCCCADQgA3AgAgA0EAOwFEIANC////+/f//7//ADcCPCADQv////v3//+//wA3AjQgA0L////79///v/8ANwIsIANCgICAgPD//79/NwIkIANBEGpCfzcCACADQRhqQn83AgAgA0EgakF/NgIAIANByABqIQMLCyADQn83AgggA0IANwIA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//8PNwIQIANC/////w83AgggA0IANwIAIANBLGpCADcCACADQTRqQQA2AgAgA0HYAGpB////+wc2AgAgA0HQAGpCgICAgPD//79/NwIAIANByABqQv////8PNwIAIANBQGtC/////w83AgAgA0E4akIANwIAIANB3ABqQgA3AgAgA0HkAGpCADcCACADQewAakEANgIAIANB8ABqIQMgAUECayIBDQALCyAFIGNqQQFrIWMgBwRAIANCADcCJCADQf////sHNgIgIANCgICAgPD//79/NwIYIANC/////w83AhAgA0L/////DzcCCCADQgA3AgAgA0EsakIANwIAIANBNGpBADYCACADQThqIQMLCyADQgA3AiQgA0H////7BzYCICADQoCAgIDw//+/fzcCGCADQv////8PNwIQIANC/////w83AgggA0IANwIAIANBLGpCADcCACADQTRqQQA2AgAgY0EBaiEGCyBqIAY2ArwCIJ4BBEAgngFBAWshhgEgBCgCECGLASAEKAIIIYwBIHooAiQhkAEgeigCHCGCASB6KAIQIXcgeigCCCFwIGsoAighkQEgaygCLCGSASBrKgIEISRBACFtA0AgaigC/AIhASBqKAKEAyJkIGooApADIgAgACBkSxsiYgRAIGooAogDIQVBACFnA0AgBSBnaiIDQQhqKgIAIQ8gA0EEaioCACEOIAEgZ2oiACADKgIAIAAqAgCSOAIAIABBBGoiBiAOIAYqAgCSOAIAIABBCGoiBiAPIAYqAgCSOAIAIANBFGoqAgAhDyADQRBqKgIAIQ4gAEEMaiIGIANBDGoqAgAgBioCAJI4AgAgAEEQaiIDIA4gAyoCAJI4AgAgAEEUaiIAIA8gACoCAJI4AgAgZ0EYaiFnIGJBAWsiYg0ACwsga0EBNgLEASBrIGooAqADIng2AsABIGtBATYC1AIgayBqKAKwAyIANgLQAgJAAkACQAJAAkACQCAAIHhGBEAgaigClAMhfgJAIGooAqwDIgBFDQAgaigCpAMhBSAAQQNxIWJBACFpIABBBE8EQCAAQXxxIQZBACFmA0AgZiB+aiIAIAUgZmoiAyoCACAAKgIAkjgCACAAQQRqIgcgA0EEaioCACAHKgIAkjgCACAAQQhqIgcgA0EIaioCACAHKgIAkjgCACAAQQxqIgAgA0EMaioC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GGogA0EcaioCADgCACADQdwAaiADQeQAaikCADcCACADQaABaiADQaQBaioCADgCACADQeQBaiADQewBaikCADcCACADQagCaiADQawCaioCADgCACADQewCaiADQfQCaikCADcCACADQbADaiADQbQDaioCADgCACADQfQDaiADQfwDaikCADcCACADIAUgAEEBQQAQZSADQewEaiEDDAELIGlBgICA/AM2AtAEIGkgaSoCHDgCGCBpQdwAaiBpQeQAaikCADcCACBpQaABaiBpQaQBaioCADgCACBpQeQBaiBpQewBaikCADcCACBpQagCaiBpQawCaioCADgCACBpQewCaiBpQfQCaikCADcCACBpQbADaiBpQbQDaioCADgCACBpQfQDaiBpQfwDaikCADcCAEEAIQMgaSAMIAsgBSAAIAcgBkEBQQAQJiBpQfwEaiFpDAALAAtB9MLAAEErQbTowQAQqgoACyAAIAxB0LLBABDiCAALIGtCADcC3AIga0GYv8AANgLYAiBrQQE2AtQCIGtBwIjBADYC0AIga0G4Amoga0HAAWoga0HQAmpBsInBABDgCgALQeybwQBBE0GkyMEAEOEJAAsgbSCeAUcNAAsgaigCvAIhBgsgakGoAmooAgAiYyBqKAKwAkHUAGxqIQggakGcAmooAgAiZiBqKAKkAkHIAGxqIQsgakGQAmooAgAiAyBqKAKYAkHwAGxqIQwgaigCtAIiASAGQThsaiEGQQEhBwNAAkACfwJAAkACQCAHDgMBAAIACwJAIANFDQAgAyAMRg0AIANB8ABqIWJBAQwDC0EAIQMgZkUNACALIGZGDQBBACFiIGYiA0HIAGohZkEDDAILIGNFDQAgCCBjRg0AQQAhByADIWIgYyIDQdQAaiFjQQAMAQsgAUUNASABIAZGDQFBAiEHIAMhYiABIgNBOGohAUECCyFpIGsgAzYChAMgayBpNgKAAwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAga0GAA2oiACgCAEEBaw4DAQIDAAsCQAJAAkAgACgCBCIAKAIMIgMgCkkEQCAAKAIAQQFrDgICAwELIAMgCkGY5sEAEOMIAAsgACgCBCIFQQZPDQYgCSADQYADbGogBUECdGpBIGogACoCEDgCAAwOCyAAKAIEIgVBBkkNBCAFQQZBuObB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KQAANwMAIBQgFCkAMDcDyAEgFEGwAWoiLkEPaiIiIBRBqAJqIi1BD2ooAAA2AAAgLkEIaiI0IC1BCGopAAA3AwAgFCAUKQCoAjcDsAEgFEGYAWoiLkEPaiItIBRBlQJqIh5BD2ooAAA2AAAgLkEIaiIjIB5BCGopAAA3AwAgFCAUKQCVAjcDmAEgFEGAAWoiLkEPaiIeIBRBggJqIidBD2ooAAA2AAAgLkEIaiIQICdBCGopAAA3AwAgFCAUKQCCAjcDgAEgFEHoAGoiLkEPaiInIBRB7wFqIiFBD2ooAAA2AAAgLkEIaiIkICFBCGopAAA3AwAgFCAUKQDvATcDaCAWQQhqQQA2AgAgFkIANwIAIA9BEGoiLiAXKQMANwMAIBEgFSkDADcDACAUIBQpA8gCNwMwIAhBKGoghgE3AwAgCCCFATcDICAIQdAAakIANwMAIAhByABqQgA3AwAgCEGYAWpB////+wc2AgAgCEGQAWpCgICAgPD//79/NwMAIAhBiAFqQv////v///+//wA3AwAgCEGAAWpC////+wc3AwAgCEH4AGpCgICAgPD//79/NwMAIAhB8ABqQv////v///+//wA3AwAgCEHoAGpC////+wc3AwAgCEHgAGpCgICAgPD//79/NwMAIAhB2ABqQv////v///+//wA3AwAgCEGAA2oiDy0AACEhIAhBMGogFCkDMDcDACAIQThqIBEpAwA3AwAgCEFAayAuKQMANwMAIAhBpAFqQgA3AgAgCEGcAWpCADcCACAIQawBakGAgID8AzYCACAIQbABakIANwMAIAhBuAFqQgA3AwAgCEHAAWpCADcDACAIQcgBakGAgID8AzYCACAIQcwBakIANwIAIAhB1AFqQgA3AgAgCEHcAWpCADcCACAIQeQBakEANgIAIAhB8AFqQQA6AAAgCEHoAWpC////+wc3AwAgCEHxAWogFCkDyAE3AAAgCEH5AWogGikDADcAACAIQYACaiAdKAAANgAAIAhBjAJqQQA6AAAgCEGEAmpC////+wc3AgAgCEGoAmpBADoAACAIQaACakL////7BzcDACAIQcQCakEAOgAAIAhBvAJqQv////sHNwIAIAhBnAJqICIoAAA2AAAgCEGVAmogNCkDADcAACAIQY0CaiAUKQOwATcAACAIQbgCaiAtKAAANgAAIAhB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ECAnQQhqKQAANwMAIBQgFCkAlQI3A5gBIBRBgAFqIi5BD2oiJyAUQYICaiIhQQ9qKAAANgAAIC5BCGoiJCAhQQhqKQAANwMAIBQgFCkAggI3A4ABIBRB6ABqIiFBD2oiLiAUQe8BaiIoQQ9qKAAANgAAICFBCGoiISAoQQhqKQAANwMAIBQgFCkA7wE3A2ggFkEIakEANgIAIBZCADcCACAPQRBqIg8gFykDADcDACAVIBopAwA3AwAgFCAUKQPIAjcDMCAIQTBqQgA3AwAgCEEoakKAgICAgICAwD83AwAgCEIANwMgIAhBOGpCADcDACAIQUBrQgA3AwAgCEHIAGpCADcDACAIQdAAakIANwMAIAhBmAFqQv////sHNwMAIAhBkAFqQoCAgIDw//+/fzcDACAIQYgBakL////7////v/8ANwMAIAhBgAFqQv////sHNwMAIAhB+ABqQoCAgIDw//+/fzcDACAIQfAAakL////7////v/8ANwMAIAhB6ABqQv////sHNwMAIAhB4ABqQoCAgIDw//+/fzcDACAIQdgAakL////7////v/8ANwMAIAhBgANqIhotAAAhKCAIQawBaiBZOAIAIAhByAFqQYCAgPwDNgIAIAhBzAFqQgA3AgAgCEHUAWpCADcCACAIQdwBakIANwIAIAhB5AFqQQA2AgAgCEHwAWpBADoAACAIQegBakL////7BzcDACAIQagBaiAdKAIANgIAIAhBoAFqIBQpA+ABNwIAIAhBwAFqIA8pAwA3AwAgCEG4AWogFSkDADcDACAIQbABaiAUKQMwNwMAIAhBhAJqQv////sHNwIAIAhBjAJqQQA6AAAgCEGgAmpC////+wc3AwAgCEGoAmpBADoAACAIQYACaiAiKAAANgAAIAhB+QFqIC0pAwA3AAAgCEHxAWogFCkDyAE3AAAgCEGNAmogFCkDsAE3AAAgCEGVAmogHikDADcAACAIQZwCaiA0KAAANgAAIAhBqQJqIBQpA5gBNwAAIAhBsQJqIBApAwA3AAAgCEG4AmogIygAADYAACAIQcQCakEAOgAAIAhBvAJqQv////sHNwIAIAhB1AJqICcoAAA2AAAgCEHNAmogJCkDADcAACAIQcUCaiAUKQOAATcAACAIQeACakEAOgAAIAhB2AJqQv////sHNwMAIAhB/AJqQQA6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CDYCAAwCCyAIQYGAgIB4Rg0BIAhFDQAgCCACQRBqKAIAQdCBxAAoAgAiAEGXByAAGxEAAAALENsKAAsgAkEgaiQAIAAoApQEIRIMAQsgASESIBUNACABIRMMAQsgDyASaiABQX9zaiETIAEgD2tBAWohCCAAKAKMBCASQcADbGohDwNAIA9CBDcCACAPQbgDakIANwIAIA9BsANqQoCAgIDAADcCACAPQagDakIANwIAIA9BoANqQoCAgIDAADcCACAPQZgDakIANwIAIA9BkANqQoCAgIDAADcCACAPQYgDakIENwIAIA9BgANqQgA3AgAgD0H4AmpCgICAgMAANwIAIA9B8AJqQgQ3AgAgD0HoAmpCADcCACAPQeACakKAgICAgAE3AgAgD0HYAmpCCDcCACAPQdACakIANwIAIA9ByAJqQoCAgICAATcCACAPQcACakIINwIAIA9BuAJqQgA3AgAgD0GwAmpCgICAgMAANwIAIA9BqAJqQgQ3AgAgD0GgAmpCADcCACAPQZgCakKAgICAwAA3AgAgD0GQAmpCBDcCACAPQYgCakIANwIAIA9BgAJqQoCAgIDAADcCACAPQfgBakIENwIAIA9B8AFqQgA3AgAgD0HoAWpCgICAgMAANwIAIA9B4AFqQgQ3AgAgD0HYAWpCADcCACAPQdABakKAgICAwAA3AgAgD0HIAWpCBDcCACAPQcABakIANwIAIA9BuAFqQgQ3AgAgD0GwAWpCADcCACAPQagBakKAgICAwAA3AgAgD0GgAWpCBDcCACAPQZgBakIANwIAIA9BkAFqQoCAgIDAADcCACAPQYgBakIENwIAIA9BgAFqQgA3AgAgD0H4AGpCgICAgMAANwIAIA9B8ABqQgQ3AgAgD0HoAGpCADcCACAPQeAAakKAgICAwAA3AgAgD0HYAGpCBDcCACAPQdAAakIANwIAIA9ByABqQoCAgIDAADcCACAPQUBrQgQ3AgAgD0E4akIANwIAIA9BMGpCgICAgMAANwIAIA9BKGpCBDcCACAPQSBqQgA3AgAgD0EYakKAgICAwAA3AgAgD0EQakIENwIAIA9BCGpCADcCACAPQcADaiEPIAhBAWoiCA0ACyADKAIgQQFrIRELIAAgEzYClAQLAkACQAJAAkACQCARRQ0AIAAoAtwDIQ8gMSgCNCECIDEoAjwh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EUEQaikCADcCACACQQhqIBFBCGopAgA3AgAgASECICdBAUsNAAsLIB4gAUE0bGoiASAQKQPgATcCACABIFk4AhggASAQKQOIAzcCHCABQRBqICUpAwA3AgAgAUEIaiAhKQMANwIAIAFBJGogJikDADcCACABQSxqICMpAwA3AgAgFkECRg0GCyAQKgIMIGJgRQRAQcyiwQBBH0HsosEAEKoKAAtBACElAn9BACAWRQ0AGkEAIBMgPE8NABpBACAqRQ0AGkEAICogE0HoAmxqIgIoAgBFDQAaIAJBCGpBACACKAIEIA9GGwshAgJAIBhFDQAgHCA8Tw0AICpFDQAgKiAcQegCbGoiASgCAEUNACABQQhqQQAgASgCBCAXRhshJQtBACERIBBBADYC3AIgEEIENwLUAgJAAkACQAJAAkACQAJAAkACQAJAIAJFDQAgAkHYAmotAABFDQAgFkUNAUEBIREgECgCHEUNACAQKAIQIidBBGshJCATQbnz3fF5bEEFdyAPc0G5893xeWwiAUEZdq1CgYKEiJCgwIABfiGHAUEAISEgECgCFCEeIBAoAighIyAQKAIgISgDQCABIB5xIgEgJ2opAAAihgEghwGFIoUBQoGChIiQoMCAAX0ghQFCf4WDQoCBgoSIkKDAgH+DIYUBA0AghQFQBEAghgEghgFCAYaDQoCBgoSIkKDAgH+DQgBSDQMgASAhQQhqIiFqIQEMAgsgJCCFAXqnQQN2IAFqIB5xQQJ0aygCACImICNPDQQghQFCAX0ghQGDIYUBICggJkEEdGoiJigCACATRw0AICZBBGooAgAgD0cNAAsLQQAhEQsCQAJAICVFDQAgJUHYAmotAABFDQAgGEUNBEEBISEgECgCHEUNASAQKAIQIiRBBGshKCAcQbnz3fF5bEEFdyAXc0G5893xeWwiAUEZdq1CgYKEiJCgwIABfiGHAUEAIScgECgCFCEeIBAoAighIyAQKAIgISwDQCABIB5xIgEgJGopAAAihgEghwGFIoUBQoGChIiQoMCAAX0ghQFCf4WDQoCBgoSIkKDAgH+DIYUBA0AghQFQBEAghgEghgFCAYaDQoCBgoSIkKDAgH+DQgBSDQQgASAnQQhqIidqIQEMAgsgKCCFAXqnQQN2IAFqIB5xQQJ0aygCACImICNPDQcghQFCAX0ghQGDIYUB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GCAAICs4AhQgACAoOAIQIAAgJzgCDCAAICk4AgggACAqOAIEIAAgJDgCAAwZCyABKAIAIgBBgICAgHw2AiAgAEGAgICAfDYCHCAAICc4AgwgACApOAIIIAAgKjgCBCAAICQ4AgAgACA1OAIYIABBFGogKzgCACAAQRBqICg4AgAMGAsgAiADEJ0JIQwgBCAFEJ0JIQkgDEUNGCAJRQ0YIAcgARCgAg0YIAggASoCDCIpOALcByAIIAEqAggiK4w4AtgHIAggASoCBCIojDgC1AcgCCABKgIAIieMOALQByAIICkgJyABQRRqKgIAIiWUICggASoCECIklJMiISAhkiImlCAoICggAUEYaioCACIjlCArICWUkyIhICGSIiKUICcgKyAklCAnICOUkyIhICGSIiGUk5IgI5M4AugHIAggKSAhlCAnICaUICsgIpSTkiAlkzgC5AcgCCApICKUICsgIZQgKCAmlJOSICSTOALgByAIQYAFaiAMIAkgARDVASAIKgKABSIiIAZeDQogCEHoBWogCSAMIAhB0AdqENUBAkAgCCoC6AUiKiAGXg0AIAhBoAZqIAwgCSABEOgBIAgqAqAGIiEgBl4NACAIQeAGaiAIQYgFaikCADcDACAIIAgpAoAFNwPYBiAiICpdICEgKl1xDQwgISAiXkUNFSAIQeAGaiAIQagGaikCADcDACAIIAgpAqAGNwPYBgwVCyAHQYQBakEANgIADBgLIAIgAxCfCSEJIAQgBRCfCSEDIAlFDRcgA0UNFyAJKgIUITEgCSoCDCEyIAkqAhAhNSAJKgIIITkgCSoCACEuIAkqAgQhMyADKgIEIiogASoCACIvlCADKgIAIiQgASoCBCIwlJMiISAhkiEnICQgASoCCCItlCADKgIIIiIgL5STIiEgIZIhKSAIQSBqIgAgAUEYaioCACImICIgASoCDCIrICeUIC8gKZQgMCAiIDCUICogLZSTIiEgIZIiIZSTkpKSOAIIIAAgAUEUaioCACIjICogKyAplCAtICGUIC8gJ5STkpKSOAIEIAAgASoCECIiICQgKyAhlCAwICeUIC0gKZSTkpKSOAIAIC8gA0EQaioCACIplCAwIAMqAgwiKpSTIiEgIZIhKCAtICqUIC8gA0EUaioCACIklJMiISAhkiEnIABBFGogJiAkICsgKJQgLyAn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IAYgBTYCzAEgBiACNgLIASAGIABBkAFqKQIANwLUASAAQZgBaiECIAZB2AJqIAZByAFqEGMgAEGcAWooAgAEQCACKAIAEJoCCyAAQbABaigCAARAIABBrAFqKAIAEJoCCyACIAYpAtgCNwIAIAJBIGogBkHYAmoiBEEgaikCADcCACACQRhqIARBGGopAgA3AgAgAkEQaiAEQRBqKQIANwIAIAJBCGogBEEIaikCADcCACAAKAJIIQdBBCEDQQAhBAJAIABB0ABqKAIAIgVFDQAgBUH/////AUsNAiAFQQJ0IgJBAEgNAiACRQ0AQZH7wwAtAAAaIAJBBBCCDCIDRQ0HIAIhBAsgAyAHIAQQiA0hAiAGIAU2AtABIAYgBTYCzAEgBiACNgLIASAGIAApAlQ3AtQBIABB3ABqIQIgBkHYAmogBkHIAWoQYyAAQeAAaigCAARAIAIoAgAQmgILIABB9ABqKAIABEAgAEHwAGooAgAQmgILIAIgBikC2AI3AgAgAkEgaiAGQdgCaiIAQSBqKQIANwIAIAJBGGogAEEYaikCADcCACACQRBqIABBEGopAgA3AgAgAkEIaiAAQQhqKQIANwIACyAGQYAEaiQADwsQ2woAC0Hsm8EAQRNBkLHBABDhCQALQdiLwQBBNEGMjMEAELsLAAsgBkHkAmpCADcCACAGQQE2AtwCIAZBsInCADYC2AIgBkGYv8AANgLgAiAGQdgCakG4icIAENwKAAtBpv7AAEEdQcD/wAAQuwsAC0EEIAJB0IHEACgCACIAQZcHIAAbEQAAAAuAVgMnfwt9An4jAEGQAmsiCSQAIwBBIGsiCiQAAkACQAJAAkAgBigCACIMRQ0AIApBGGogDCAGKAIEKAIcEQAAIApBCGogCigCGCIIIAooAhxBDGooAgARAAAgCEUNACAKKQMIQvSkgrLsqMOpfYUgCkEQaikDAELy4qm04KmkxASFhFANAQtBkfvDAC0AABpB2ABBBBCCDCILRQ0BIAtC////+////79/NwJQIAtC////+/f//79/NwJIIAtC////+/f//7//ADcCQCALQgA3AjggC0KAgICAwAA3AjAgC0IANwIoIAtB+JDCADYCJCALQQA2AiAgC0IENwIYIAtCADcCECALQoCAgIDAADcCCCALQgQ3AgACQCAMRQ0AIAwgBigCBCII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KgIAIAQqAhhdGyEFIAAgCEHAAWoiCEcNAAsLIAVFDQACQCAFIA5qKAIAQf////97TQ0AAkACQAJAAkAgC0UEQCAKQZABaiADIAEoAqABEPIDIAooApABRQ0OIAxFDQIgCigCnAEhCSAKKAKYASEAIAooApQBIQUgASgCoAEiBCASSSEIIARBACASIAgbayIRIAxuIQQgESAEIAxsayERAn0gCEUEQCAKQZABaiADIBEgBBCoAiAKKgLcASEnIAoqAtgBISQgCioC1AEhIiAKKgLQASEhIAoqAswBISUgCioCyAEhKCAKKgLEASEjIAoqArwBISYgCigCuAEhCCAKKgLAAQwBCyAKQZABaiADIBEgBBCoAiAKKgK0ASEnIAoqArABISQgCioCrAEhIiAKKgKoASEhIAoqAqQBISUgCioCoAEhKCAKKgKcASEjIAoqApQBISYgCigCkAEhCCAKKgKYAQshBiAIDQFB9MLAAEErQaztwAAQqgoACyAKQZABaiADIAEoAqQBEPIDIAooApABRQ0NIAxFDQIgCigCnAEhCSAKKAKYASEAIAooApQBIQUgASgCpAEiBCASSSEIIARBACASIAgbayIRIAxuIQQgESAEIAxsayERAn0gCEUEQCAKQZABaiADIBEgBBCoAiAKKgLcASEnIAoqAtgBISQgCioC1AEhIiAKKgLQASEhIAoqAswBISUgCioCyAEhKCAKKgLEASEjIAoqArwBISYgCigCuAEhCCAKKgLAAQwBCyAKQZABaiADIBEgBBCoAiAKKgK0ASEnIAoqArABISQgCioCrAEhIiAKKgKoASEhIAoqAqQBISUgCioCoAEhKCAKKgKcASEjIAoqApQBISYgCigCkAEhCCAKKgKYAQshBiAIRQ0DCyAoICaTIiggJCAGkyIklCAlIAaTIiUgIiAmkyImlJMiBiAGlCAlICcgI5MiJ5QgISAjkyIiICSUkyIjICOUICIgJpQgKCAnlJMiJiAmlJKSIidDAACAKF5FDQMgAUGUAUGIASALG2oqAgAhJCABQZgBQYwBIAsbaioCACEiIAFBnAFBkAEgCxtqKgIAIAYgJxCbASIGlZQgJCAjIAaVlCAiICYgBpWUkpKLQ3L5fz9eRQ0DIA0gBRDfASANIAAQ3wEgDSAJEN8BDAQLQbDQwABBGUGg9sAAEKoKAAtB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CGoiGCAFQQhqIgwpAgA3AwAgByAHKQLYBjcDiAMgBy0AjAchEyAFIAcoAvgBIAcoAoACIAdBtAJqIAdB5AJqEL8EIAdBwANqIgNBMGogCCgCADYCACADQShqIAkpAgA3AwAgA0EgaiAKKQIANwMAIANBGGogDSkCADcDACADQRBqIAspAgA3AwAgA0EIaiAMKQIANwMAIAcgBykC2AY3A8ADIActAIwHIRUgBSAHKAL4ASAHKAKAAiAHQcACaiAHQfACahC/BCAHQfgDaiIDQTBqIAgoAgA2AgAgA0EoaiAJKQIANwMAIANBIGogCikCADcDACADQRhqIA0pAgA3AwAgA0EQaiALKQIANwMAIANBCGogDCkCADcDACAHIAcpAtgGNwP4AyAHLQCMByEWIAUgBygC+AEgBygCgAIgB0HMAmogB0H8AmoQvwQgB0GwBGoiA0EwaiAIKAIANgIAIANBKGogCSkCADcDACADQSBqIAopAgA3AwAgA0EYaiANKQIANwMAIANBEGogCykCADcDACADQQhqIAwpAgA3AwAgByAHKQLYBjcDsAQgBy0AjAchDSAHKAKIAiIDIAcoAowCIglGBEAgFCAJELYGIAcoAowCIQkgBygCiAIhAwsgBygChAIiBSAJQTRsaiIIIAcpA4gDNwIAIAhBMGogECgCADYCACAIQShqIBIpAwA3AgAgCEEgaiARKQMANwIAIAhBGGogDikDADcCACAIQRBqIBcpAwA3AgAgCEEIaiAYKQMANwIAIAcgCUEBaiIJNgKMAiADIAlGBEAgFCADELYGIAcoAoQCIQUgBygCjAIhCSAHKAKIAiEDCyAFIAlBNGxqIgggBykDwAM3AgAgCEEwaiAHQcADaiIKQTBqKAIANgIAIAhBKGogCkEoaikDADcCACAIQSBqIApBIGopAwA3AgAgCEEYaiAKQRhqKQMANwIAIAhBEGogCkEQaikDADcCACAIQQhqIApBCGopAwA3AgAgByAJQQFqIgk2AowCIAMgCUYEQCAUIAMQtgYgBygChAIhBSAHKAKMAiEJIAcoAogCIQMLIAUgCUE0bGoiCCAHKQP4AzcCACAIQTBqIAdB+ANqIgpBMGooAgA2AgAgCEEoaiAKQShqKQMANwIAIAhBIGogCkEgaikDADcCACAIQRhqIApBGGopAwA3AgAgCEEQ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QwAAAAAhiAFD//9/fyGHAUP//3//IYYBQwAAAAAhhQFD//9/fyGEAUP//3//IYMBQwAAAAAhggFD//9/fyGBAUP//3//IYABQwAAAAAhf0P//39/IX5D//9//yF9QwAAAAAhfEP//39/IXtD//9//yF6QwAAgD8heUMAAAAAIXhDAAAAACF3QwAAAAAhdkP//39/IZIBQwAAAAAhkwFBACE3Q///f38hlAFDAAAAACGVAUEAITpD//9/fyGWAUMAAAAAIZcBQQAhPUP//39/IZgBQwAAAAAhmQFBACFAQ///f38hmgFDAAAAACGbAUEAIUNBACEvQT8hB0EBIQULIAogCigChAIgB0H/AXFpa0EGajYChAIgCigCCCIDIAooAgRGBEAgCiADELEGIAooAgghAwsgCigCACADQegDbGoiASAEKQPoBjcDACABIHk4AiwgASB4OAIoIAEgdzgCJCABIHY4AiAgASAEKQPABjcDMCABQRhqIG4pAwA3AwAgAUEQaiBvKQMANwMAIAFBCGogcCkDADcDACABQThqIC4pAwA3AwAgAUFAayAtKQMANwMAIAFByABqICwpAwA3AwAgAUHQAGogHykDADcDACABIC82ApwBIAEgigE4ApgBIAEgiQE4ApQBIAEgiAE4ApABIAEghwE4AowBIAEghgE4AogBIAEghQE4AoQBIAEghAE4AoABIAEggwE4AnwgASCCATgCeCABIIEBOAJ0IAEggAE4AnAgASB/OAJsIAEgfjgCaCABIH04AmQgASB8OAJgIAEgezgCXCABIHo4AlggASCLATgCrAEgASCMATgCyAEgASCNATgCzAEgASCOATgC0AEgASCPATgC1AEgAUGoAWogMCgCADYCACABIAQpA7AGNwKgASABIAQpA5gGNwOwASABQbgBaiAyKQMANwMAIAFBwAFqIDEpAwA3AwAgASAEKQOIBjcD2AEgAUHgAWogMykDADcDACABIDQ6APABIAEgkQE4AuwBIAEgkAE4AugBIAEgNzoAjAIgASCTATgCiAIgASCSATgChAIgASAEKQPwBTcA8QEgAUH5AWogNikDADcAACABQYACaiA1KAAANgAAIAEgBCkD2AU3AI0CIAFBlQJqIDkpAwA3AAAgAUGcAmogOCgAADYAACABIDo6AKgCIAEglQE4AqQCIAEglAE4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iKe+ICSTlJMhGwJAIBxDAAAAAFsEQCAbIRwMAQsgHCAblEMAAAAAXQ0ECyAAQQhqIQAgHSEbIAFBAWsiAQ0ACwwBC0EEQQRBvPfAABDjCAALIAdByABqIAIgCEEMbGoiAEEIaiIBKAIANgIAIAcgACkCADcDQCA3ICwgACoCACIck5QgNSAwIAAqAgQiHZOUkiA0ICcgASoCACIkk5SSICOVIhsgBF9FDQAgISAcICsgG5SSIDaTIiKUIB8gHSAmIBuUkiAzkyIplJMiHCAckiEcICAgKZQgISAkICggG5SSICqTIiSUkyIdIB2SIR0gByAkICUgHJQgISAdlCAfIB8gJJQgICAilJMiJCAkkiIklJOSkjgCYCAHICkgJSAklCAfIByUICAgHZSTkpI4AlwgByAiICUgHZQgICAklCAhIByUk5KSOAJYIAdBiAFqIgEgC0EIaigCADYCACANIA4pAgA3AgAgDUEIaiAOQQhqKAIANgIAIAcgCykCADcDgAEgAiAIQQJ0akEwaigCACIAIBEgBhshCCARIAAgBhshFCAFKAKEASIAIAUoAoABRgRAIBMgABChBiAFKAKEASEACyAFIABBAWo2AoQBIAUoAnwgAEEwbGoiACAHKQOAATcCACAAQQA2AiwgAEIANwIkIAAgCDYCICAAIBQ2AhwgACAbOAIYIABBCGogASkDADcCACAAQRBqIAdBkAFqKQMANwIACyAJIAxHDQALDAILIAEqAggiKbxBgICAgHhxQYCAgPwDcr4hGyADKgIIIiEgACoCBCIllCADKgIEIiAgACoCCCImlJMiHCAckiEcICAgACoCACIrlCADKgIAIh8gJZSTIh4gHpIhHSABKgIAIjYgASoCBCIzlEMAAIC/ICkgG5KVIiiUIh4gACoCECIkIB8gACoCDCIjIByUICUgHZQgJiAfICaUICEgK5STIh8gH5IiKpSTkpKSIiKUIDMgM5QgKJQgG5IiHyAAQRRqKgIAIicgICAjICqUICYgHJQgKyAdlJOSkpIiLJSSIDMgAEEYaioCACIwICEgIyAdlCArICqUICUgHJSTkpKSIjGUkyEcIDYgG4yUIh0gMZQgNiA2IBuUlCAolEMAAIA/kiIhICKUIB4gG5QiGyAslJKSISogJSADQRRqKgIAIi6UICYgA0EQaioCACIvlJMiICAg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IAcgLDgChAEgByAxOAKAASAlICIgJJMiLZQgKyAoICeTIi+UkyIEIASSIQQgJiAvlCAlICogMJMiLpSTIhsgG5IhGyAHIC4gIyAElCAlIBuUICsgKyAulCAmIC2UkyIuIC6SIi6Uk5KSOAIIIAcgLyAjIC6UICsgBJQgJiAblJOSkjgCBCAHIC0gIyAblCAmIC6UICUgBJSTkpI4AgACfwJAAkACQCABDgMAAQILCyACQTBqDAILIAJBQGsMAQsgAkE0agsoAgAhAQJ/AkACQAJAIAgOAwABAgsLIANBMGoMAgsgA0FAawwBCyADQTRqCyEAIAVB/ABqIQ8gB0EoaiINIAcgB0GAAWoiCSAGGyIIQQhqKAIANgIAIAdBNGogCSAHIAYbIglBCGooAgA2AgAgByAIKQIANwMgIAcgCSkCADcCLCABIAAoAgAiACAGGyEOIAAgASAGGyELIDYgIiAxk5QgMyAoICyTlJIgKSAqIDKTlJIhBCAFQYQBaigCACIAIAVBgAFqKAIARgRAIA8gABChBiAFKAKEASEACyAFIABBAWoiATYChAEgBSgCfCIKIABBMGxqIgAgBykDIDcCACAAQQA2AiwgAEIANwIkIAAgDjYCICAAIAs2AhwgACAEOAIYIABBCGogDSkDADcCACAAQRBqIAdBMGopAwA3AgAgByAfOAKIASAHICE4AoQBIAcgIDgCgAEgJSAdICSTIiiUICsgHiAnkyIqlJMiBCAEkiEEICYgKpQgJSAcIDCTIiKUkyIbIBuSIRsgByAiICMgBJQgJSAblCArICsgIpQgJiAolJMiIiAikiIilJOSkjgCCCAHICogIyAilCArIASUICYgG5STkpI4AgQgByAoICMgG5QgJiAilCAlIASUk5KSOAIAAn8CQAJAAkAgEA4DAAECCwsgAkEwagwCCyACQUBrDAELIAJBNGoLKAIAIQICfwJAAkACQCAMDgMAAQILCyADQTBqDAILIANBQGsMAQsgA0E0agshACAHQShqIgMgCEEIaigCADYCACAHQTRqIAlBCGooAgA2AgAgByAIKQIANwMgIAcgCSkCADcCLCACIAAoAgAiACAGGyEIIAAgAiAGGyECIDYgHSAgk5QgMyAeICGTlJIgKSAcIB+TlJIhBCAFKAKAASABRgRAIA8gARChBiAFKAJ8IQogBSgC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NwMAIAtB4ghqIgcgIUECai0AADoAACALIBMpAgA3A4AKIAsgIS8AADsB4AggCy0A/AkiDUEERg0AIAsqAsgJIS4gC0HgBmogAWoiBCAPNgIAIARBCGogLjgCACAEQQRqICM2AgAgBEEMaiALKQOACjcCACAEQRRqIBgpAwA3AgAgBEEcaiAXKQMANwIAIARBJGogFikDADcCACAEQSxqIBIpAwA3AgAgBEE0aiAQKQMANwIAIARBPGogDToAACAEQT1qIAsvAeAIOwAAIARBP2ogBy0AADoAACALQcgGaiAKaiAuOAIAIAUgCCAuXjoAAAsgAUFAayEBIAVBAWohBSAKQQRqIQogXUIBfCJdQgRSDQALIA4gCykC4AY3AgAgDkEIaiALQeAGaiIBQQhqKQIANwIAIA5BEGogAUEQaikCADcCACAOQRhqIAFBGGopAgA3AgAgDkEgaiABQSBqKQIANwIAIA5BKGogAUEoaikCADcCACALKALcBiEKIAsqAtQGITIgCyoC0AYhMCALKgLMBiEvIAsqAsgGIS4gC0HeBGogGkECai0AADoAACALQZgEaiIBQTdqIAxBN2opAAA3AAAgAUEwaiAMQTBqKQAANwMAIAFBKGogDEEoaikAADcDACABQSBqIAxBIGopAAA3AwAgAUEYaiAMQRhqKQAANwMAIAFBEGogDEEQaikAADcDACABQQhqIAxBCGopAAA3AwAgCyAaLwAAOwHcBCALIAwpAAA3A5gEIAstAJAHIQ0gCy0AnAchASALKQKUByFeIAstANwHIQUgC0HYA2oiBEE3aiAJQTdqKQAANwAAIARBMGogCUEwaikAADcDACAEQShqIAlBKGopAAA3AwAgBEEgaiAJQSBqKQAANwMAIARBGGogCUEYaikAADcDACAEQRBqIAlBEGopAAA3AwAgBEEIaiAJQQhqKQAANwMAIAsgCSkAADcD2AMgCy0AnAghByALQZgDaiIEQTdqIAZBN2opAAA3AAAgBEEwaiAGQTBqKQAANwMAIARBKGogBkEoaikAADcDACAEQSBqIAZBIGopAAA3AwAgBEEYaiAGQRhqKQAANwMAIARBEGogBkEQaikAADcDACAEQQhqIAZBCGopAAA3AwAgCyAGKQAANwOYAyALLQDcCCEEIAtBlgNqIBlBAmotAAA6AAAgCyAZLwAAOwGUAwwCCyABIBxBuODAABDjCAALIAtB6ARqICBBCGooAgA2AgAgCyAgKQIANwPgBEEEIQQgCygCkAYhCkEEIQdBBCEFQQQhAQsgCkH/AXFBAkcEQCADQfgAaiEQIAsgMjgCrAUgCyAwOAKoBSALIC84AqQFIAsgLjgCoAUgC0HgBmoiD0EoaiAOQShqKQIANwMAIA9BIGogDkEgaikCADcDACAPQRhqIA5BGGopAgA3AwAgD0EQaiAOQRBqKQIANwMAIA9BCGogDkEIaikCADcDACALIA06AJAHIAsgDikCADcD4AYgGiALLwHcBDsAACAaQQJqIAtB3gRqLQAAOgAAIAsgAToAnAcgCyBeNwKUByAMQTdqIAtBmARqIgFBN2opAAA3AAAgDEEwaiABQTBqKQMANwAAIAxBKGogAUEoaikDADcAACAMQSBqIAFBIGopAwA3AAAgDEEYaiABQRhqKQMANwAAIAxBEGogAUEQaikDADcAACAMQQhqIAFBCGopAwA3AAAgDCALKQOYBDcAACALIAU6ANwHIAlBN2ogC0HYA2oiAUE3aikAADcAACAJQTBqIAFBMGopAwA3AAAgCUEoaiABQShqKQMANwAAIAlBIGogAUEgaikDADcAACAJQRhqIAFBGGopAwA3AAAgCUEQaiABQRBqKQMANwAAIAlBCGogAUEIaikDADcAACAJIAspA9gDNwAAIAsgBzoAnAggBkE3aiALQZgDaiIBQTdqKQAANwAAIAZBMGogAUEwaikDADcAACAGQShqIAFBKGopAwA3AAAgBkEgaiABQSBqKQMANwAAIAZBGGogAUEYaikDADcAACAGQRBqIAFBEGopAwA3AAAgBkEIaiABQQhqKQMANwAAIAYgCykDmAM3AAAgCyAEOgDcCCAZQQJqIAtBlgNqLQAAOgAAIBkgCy8BlAM7AAAgCkEVdkEIcSAKQQ52QQRxIApBB3ZBAnEgCkEBcXJycq0hX0IAIV0DQAJAIF8gXYhCAYNQDQAgXachASAQLQAAQQFxBEAgAUECdCIFIAtBoAVqaioCACIuIAhdRQ0BIAtB4AZqIAFBBnRqIgQtADwiAUEERg0BIBQgAyAFakHgAGooAgBNDQEgFUUNASARIAQpAAA3AAAgEUE4aiAEQThqKAAANgAAIBFBMGogBEEwaikAADcAACARQShqIARBKGopAAA3AAAgEUEgaiAEQSBqKQAANwAAIBFBGGogBEEYaikAADcAACARQRBqIARBEGopAAA3AAAgEUEIaiAEQQhqKQAANwAAIAtBxgJqIARBP2otAAA6AAAgCyAELwA9OwHEAiALQcgCaiICQTdqIAtBsAVqIgRBN2opAAA3AAAgAkEwaiAEQTBqKQAANwMAIAJBKGogBEEoaikAADcDACACQSBqIARBIGopAAA3AwAgAkEYaiAEQRhqKQAANwMAIAJBEGogBEEQaikAADcDACACQQhqIARBCGopAAA3AwAgCyALKQCwBTcDyAIgASECIC4hCAwBCyABQQJ0IgEgA2pB4ABqKAIAIgQgHE8NACALQaAFaiABaioCAIwhLiALKALAAiIKIQUgCygCvAIgCkYEQCALQbgCaiAKEKsGIAsoAsACIQULIAsoArgCIgEgBUEDdGoiByAuOAIEIAcgBDYCACALIAVBAWo2AsACIAEgCkEDdGoiBCoCBCEuIAQoAgAhBAJAIApFBEBBACEFDAELA0BBAEF/IAEgCkEBayIHQQF2IgVBA3RqIg9BBGoqAgAiLyAuXyISG0EBQQIgEhsgLiAvXxtBAWpBAkkEQCAKIQUMAgsgASAKQQN0aiAPKQIANwIAIAUhCiAHQQFLDQALCyABIAVBA3RqIgEgLjgCBCABIAQ2AgALIF1CAXwiXUIEUg0ACyALQYgDaiALQbgCahChAyALKAKIAw0BDAILCwJAIA1BBEcEQCALQYIKaiALQd4Eai0AADoAACALIAsvAdwEOwGACiALQZsHaiALQZgFaigCADYAACALQZMHaiALQeAEaiIBQTBqKQMANwAAIAtBiwdqIAFBKGopAwA3AAAgC0GDB2ogAUEgaikDADcAACALQfsGaiABQRhqKQMANwAAIAtB8wZqIAFBEGopAwA3AAAgC0HrBmogAUEIaikDADcAACALIAspA+AENwDjBiALQbAFaiIBQTdqIAtB4AZqIgJBN2opAAA3AAAgAUEwaiACQTBqKQAANwMAIAFBKGogAkEoaikAADcDACABQSBqIAJBIGopAAA3AwAgAUEYaiACQRhqKQAANwMAIAFBEGogAkEQaikAADcDACABQQhqIAJBCGopAAA3AwAgCyALKQDgBjcDsAUgDSECDAELIAtBsAVqIgFBN2ogC0HIAmoiA0E3aikAADcAACABQTBqIANBMGopAwA3AwAgAUEoaiADQShqKQMANwMAIAFBIGogA0EgaikDADcDACABQRhqIANBGGopAwA3AwAgAUEQaiADQRBqKQMANwMAIAFBCGogA0EIaikDADcDACALQYIKaiALQcYCai0AADoAACALIAspA8gCNwOwBSALIAsvAcQCOwGACgsgCygCvAJFDQEgCygCuAIQmgIMAQsgC0GwBWoiAUEIaiALQcgCaiIDQQhqKQMANwMAIAFBEGogA0EQaikDADcDACABQRhqIANBGGopAwA3AwAgAUEgaiADQSBqKQMANwMAIAFBKGogA0EoaikDADcDACABQTBqIANBMGopAwA3AwAgAUE3aiADQTdqKQAANwAAIAtBggpqIAtBxgJqLQAAOgAAIAsgCykDyAI3A7AFIAsgCy8BxAI7AYAKIAsoArwCRQ0AIAsoArgCEJoCCyACQf8BcUEERw0BCyAAQQQ6ADwMAQsgACALKQCzBTcAACAAIAsvAYAKOwA9IABBOGogC0HrBWooAAA2AAAgAEEwaiALQeMFaikAADcAACAAQShqIAtB2wVqKQAANwAAIABBIGogC0HTBWopAAA3AAAgAEEYaiALQcsFaikAADcAACAAQRBqIAtBwwVqKQAANwAAIABBCGogC0G7BWopAAA3AAAgAEE/aiALQYIKai0AADoAACAAIAI6ADwLIAtBwApqJAAL9y8DFH8bfQN+IwBBsAFrIgQkAAJAIAAoAggiDgRAIARBCGogACgCACIJQSBqEMoBIAlByANqIgYgBEEgaigCADYCACAJQcADaiIDIARBGGopAgA3AgAgCUG4A2oiDyAEQRBqKQIANwIAIAkgBCkCCDcCsAMgCUGsA2ogBigCADYCACAJQaQDaiADKQIANwIAIAlBnANqIA8pAgA3AgAgCSAJKQKwAzcClAMgASgCCCELIAEoAhAiESAJKAIAIgFNDQEgC0UNASALIAFB6AJsaiIBKAIARQ0BIAEoAgQgCSgCBEcNASAJQbADaiIGQQhqKQIAITIgBkEQaikCACEzIAYpAgAhNCABQdwAaiAGQRhqKAIANgIAIAFB1ABqIDM3AgAgAUHMAGogMjcCACABQcQAaiA0NwIAIAJFDQEgBEEIaiIGIAFBsAFqIgMgCUGUA2oiDxD9BSAB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AiAAQQRqNgIIIAIoAgAgAGpBDjYAACADIAEQ3AYiAA0GIANBDGogARDcBiIADQYgA0EYaiABENwGIgANBiADKgIkIQogAigCBCACKAIIIgFrQQNNBEAgAiABQQQQyAYgAigCCCEBCyACIAFBBGo2AgggAigCACABaiAKOAAADAULIAkoAgwhAyABKAIAIgEoAgghACABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABKAIAIABqQQ82AAAgASAAQQRqIgA2AgggAyoCBCELIAMqAgAhCiABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABKAIAIABqIAo4AAAgASAAQQRqIgA2AgggASgCBCAAa0EDTQRAIAEgAEEEEMgGIAEoAgghAAsgASgCACAAaiALOAAAIAEgAEEEaiIANgIIIAMqAgghCiABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABIABBBGo2AgggASgCACAAaiAKOAAADAQLIAkoAgwhAyABKAIAIgEoAgghACABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABKAIAIABqQRA2AAAgASAAQQRqIgA2AgggAyoCBCELIAMqAgAhCiABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABKAIAIABqIAo4AAAgASAAQQRqIgA2AgggASgCBCAAa0EDTQRAIAEgAEEEEMgGIAEoAgghAAsgASgCACAAaiALOAAAIAEgAEEEaiIANgIIIAMqAgghCiABKAIEIABrQQNNBEAgASAAQQQQyAYgASgCCCEACyABIABBBGo2AgggASgCACAAaiAKOAAADAMLIAkoAgwhAyABKAIAIgAoAgghAiAAKAIEIAJrQQNNBEAgACACQQQQyAYgACgCCCECCyAAIAJBBGo2AgggACgCACACakERNgAAIAMgARC2ASIADQMgAyoCYCEKIAEoAgAiASgCCCEAIAEoAgQgAGtBA00EQCABIABBBBDIBiABKAIIIQALIAEgAEEEajYCCCABKAIAIABqIAo4AAAMAgsgCSgCDCEDIAEoAgAiASgCCCEAIAEoAgQgAGtBA00EQCABIABBBBDIBiABKAIIIQALIAEoAgAgAGpBEjYAACABIABBBGoiADYCCCABKAIEIABrQQNNBEAgASAA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P5QiLTgCACAKQThqIC04AgAgCkE0aiAtOAIAIAogLTgCMCAKIC8gLpJDAAAAv5QiLTgCLCAKIC04AiggCiAtOAIkIAogLTgCICAKIDEgMJJDAAAAv5QiLTgCHCAKIC04AhggCiAtOAIUIAogLTgCECAKIDMgMpJDAAAAv5QiLTgCDCAKIC04AgggCiAtOAIEIAogLTgCACADKgIIIS0gAyoCBCEuIAMqAgAhLyAKQYgBakIANwMAIApBgAFqQgA3AwAgCkH4AGpCADcDACAKQfAAakIANwMAIApB6ABqQgA3AwAgCkGQAWogLzgCACAKQZQBaiAvOAIAIApBmAFqIC84AgAgCkGcAWogLzgCACAKQaABaiAuOAIAIApBpAFqIC44AgAgCkGoAWogLjgCACAKQawBaiAuOAIAIApBsAFqIC04AgAgCkG0AWogLTgCACAKQbgBaiAtOAIAIApBvAFqIC04AgAgCkIANwNgIAogATYC0AEgCiACNgLUASAKIAM2AtgBIApBzAFqIAc2AgAgCkHEAWogBTYCACAKIAk6AOABIAogCDgC3AEgCiAGNgLIASAKIAQ2AsABAkACQCAEIAUoAhARBAAiAUEgaigCACIaBEAgCkEANgL4ASAKQgQ3AvABIApB8AFqIgJBABCrBiAKKALwASAKKAL4ASIDQQN0akKAgICA8P///343AgAgCiADQQFqNgL4ASAKQagCaiACEKEDAkACQCAKKAKoAkUEQEEEIQEMAQsgCkHgAWohFiAKQdwBaiEXIApB1AFqIRggCkHgAGohKyABQcQAaigCACETIApB/QVqIR4gCkHMBWohECAKQcEFaiEfIApBkAVqIREgCkGFBWohICAKQZAEaiICQcQAaiESIApByQRqISEgCkG9BGohIiACQQhqIRQgCkG5CGohIyAKQcUIaiEPIApBlAhqIQ0gASgCPCEVIAEoAhghLEP//39/IS5BBCEBA0AgLiAKKgKwAoxfDQECQAJ9AkAgCigCrAIiAiAaSQRAICwgAkEHdGoiCy0AeEEBcSICBEAgFSALKAJgIgNBDGxqQQAgAyATSRsiA0EIakEAIAMbISQgFSALQewAaigCACIDQQxsakEAIAMgE0kbIgNBCGpBACADGyElIBUgC0HoAGooAgAiA0EMbGpBACADIBNJGyIDQQhqQQAgAxsh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aiAMQRhqKQMANwMAIA5BEGogDEEQaikDADcDACAKIAopA7AHNwOwAyAKIAovAawHOwGsAyAKIAxBCGopAwA3A/gCIAogCikD+AY3A/ACIApB7gJqIApB9gZqLQAAOgAAIAogCi8B9AY7AewCIApBuAJqIgxBKGogCkHABmoiDkEoaikDADcDACAMQSBqIA5BIGopAwA3AwAgDEEYaiAOQRhqKQMANwMAIAxBEGogDkEQaikDADcDACAMQQhqIA5BCGopAwA3AwAgCiAKKQPABjcDuAIgCkG2AmogCkG+BmotAAA6AAAgCiAKLwG8BjsBtAIgKEEYdCADQRB0ciAJQQh0ciAHciEDCyAHQf8BcUECRwRAIAtB+ABqIQwgCiAIOAKMBiAKIC04AogGIAogLzgChAYgCiAwOAKABiAUIAopA+gDNwIAIBRBCGogCkHoA2oiCUEIaikDADcCACAUQRBqIAlBEGopAwA3AgAgFEEYaiAJQRhqKQMANwIAIBRBIGogCUEgaigCADYCACAKIDQ4ApQEIAogHDYCkAQgCiAdOgC8BCAiIAovAeQDOwAAICJBAmogCkHmA2otAAA6AAAgCiAEOgDIBCAKIGQ3AsAEICFBAmogCkHiA2otAAA6AAAgISAKLwHgAzsAACAKIEQ4AtAEIAogJzYCzAQgEkEoaiAKQbADaiIEQShqKQMANwIAIBJBIGogBEEgaikDADcCACASQRhqIARBGGopAwA3AgAgEkEQaiAEQRBqKQMANwIAIBJBCGogBEEIaikDADcCACASIAopA7ADNwIAIAogBjoAhAUgIEECaiAKQa4Dai0AADoAACAgIAovAawDOwAAIAogRTgCjAUgCiApNgKIBSARQShqIApB8AJqIgRBKGopAwA3AgAgEUEgaiAEQSBqKQMANwIAIBFBGGogBEEYaikDADcCACARQRBqIARBEGopAwA3AgAgEUEIaiAKKQP4AjcCACARIAopA/ACNwIAIAogAjoAwAUgH0ECaiAKQe4Cai0AADoAACAfIAovAewCOwAAIAogRjgCyAUgCiAZNgLEBSAQQShqIApBuAJqIgJBKGopAwA3AgAgEEEgaiACQSBqKQMANwIAIBBBGGogAkEYaikDADcCACAQQRBqIAJBEGopAwA3AgAgEEEIaiACQQhqKQMANwIAIBAgCikDuAI3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XToAACALQbgDaiACQQJ0aiAIOAIACyAGQQRqIQYgBEEBaiIEQQRHDQALIBMgCykDuAM3AgAgCiALKQLQAzcCACATQQhqIgYgFykDADcCACAKQQhqIgcgC0HQA2oiAkEIaiIMKQIANwIAIApBEGoiDyACQRBqIhUpAgA3AgAgCkEYaiIhIAJBGGoiIikCADcCACAKQSBqIiMgAkEgaiIkKQIANwIAIApBKGoiJSACQShqIiYoAgA2AgAgCygCzAMhBCALQeYCaiInIBJBAmoiKC0AADoAACALIBIvAAA7AeQCIAstAPwDIQIgC0GQAWogFkHAARCIDRogBEH/AXFBAkYNBCALQagDaiAGKQIANwMAIAsgEykCADcDoAMgJiAlKAIANgIAICQgIykCADcDACAiICEpAgA3AwAgFSAPKQIANwMAIAwgBykCADcDACALIAI6APwDIAsgCikCADcD0AMgEiALLwHkAjsAACAoICctAAA6AAAgFiALQZABakHAARCIDRogBEEVdkEIcSAEQQ52QQRxIARBB3ZBAnEgBEEBcXJycq0hSUIAIUgDQAJAIEkgSIhCAYNQDQAgSKchAiAgLQAAQQFxBEAgAkECdCIGIAtBoANqaioCACIIIAldRQ0BIAtB0ANqIAJBPGxqIgQtADgiAkEERg0BIA0gAyAGakHgAGooAgBNDQEgDkUNASAFIAQpAAA3AAAgBUEwaiAEQTBqKQAANwAAIAVBKGogBEEoaikAADcAACAFQSBqIARBIGopAAA3AAAgBUEYaiAEQRhqKQAANwAAIAVBEGogBEEQaikAADcAACAFQQhqIARBCGopAAA3AAAgC0HGAGogBEE7ai0AADoAACALIAQvADk7AUQgC0HIAGoiAUE3aiALQaAGaiIEQTdqKAAANgAAIAFBMGogBEEwaikAADcDACABQShqIBApAAA3AwAgAUEgaiAEQSBqKQAANwMAIAFBGGogBEEYaikAADcDACABQRBqIARBEGopAAA3AwAgAUEIaiAEQQhqKQAANwMAIAsgCykAoAY3A0ggAiEBIAghCQwBCyACQQJ0IgIgA2pB4ABqKAIAIgYgEU8NACALQaADaiACaioCAIwhCCALKAJAIgchBCALKAI8IAdGBEAgC0E4aiAHEKsGIAsoAkAhBAsgCygCOCICIARBA3RqIgwgCDgCBCAMIAY2AgAgCyAEQQFqNgJAIAIgB0EDdGoiBCoCBCEIIAQoAgAhBgJAIAdFBEBBACEEDAELA0BBAEF/IAIgB0EBayIMQQF2IgRBA3RqIg9BBGoqAgAiKSAIXyIVG0EBQQIgFRsgCCApXxtBAWpBAkkEQCAHIQQMAgsgAiAHQQN0aiAPKQIANwIAIAQhByAMQQFLDQALCyACIARBA3RqIgIgCDgCBCACIAY2AgALIEhCAXwiSEIEUg0ACyALQYQBaiALQThqEKEDIAsoAoQBDQEMBQsLIAJBBEHUwcIAEOMIAAsgAkEEQcTBwgAQ4wgACyACIBFB+KDCABDjCAALAkAgAkEERwRAIAtB4gVqIAtB5gJqLQAAOgAAIAsgCy8B5AI7AeAFIAtBgwRqIAtB6AJqIgFBMGopAgA3AAAgC0H7A2ogAUEoaikCADcAACALQfMDaiABQSBqKQIANwAAIAtB6wNqIAFBGGopAgA3AAAgC0HjA2ogAUEQaikCADcAACALQdsDaiABQQhqKQIANwAAIAsgCykC6AI3ANMDIAtBoAZqIgFBN2ogC0HQA2oiA0E3aigAADYAACABQTBqIANBMGopAAA3AwAgAUEoaiADQShqKQAANwMAIAFBIGogA0EgaikAADcDACABQRhqIANBGGopAAA3AwAgAUEQaiADQRBqKQAANwMAIAFBCGogA0EIaikAADcDACALIAspANADNwOgBiACIQEMAQsgC0GgBmoiAkE3aiALQcgAaiIDQTdqKAAANgAAIAJBMGogA0EwaikDADcDACACQShqIANBKGopAwA3AwAgAkEgaiADQSBqKQMANwMAIAJBGGogA0EYaikDADcDACACQRBqIANBEGopAwA3AwAgAkEIaiADQQhqKQMANwMAIAtB4gVqIAtBxgBqLQAAOgAAIAsgCykDSDcDoAYgCyALLwFEOwHgBQsgCygCPEUNASALKAI4EJoCDAELIAtBoAZqIgJBCGogC0HIAGoiA0EIaikDADcDACACQRBqIANBEGopAwA3AwAgAkEYaiADQRhqKQMANwMAIAJBIGogA0EgaikDADcDACACQShqIANBKGopAwA3AwAgAkEwaiADQTBqKQMANwMAIAJBN2ogA0E3aigAADYAACALQeIFaiALQcYAai0AADoAACALIAspA0g3A6AGIAsgCy8BRDsB4AUgCygCPEUNACALKAI4EJoCCyABQf8BcUEERw0BCyAAQQQ6ADQMAQsgACALLwHgBTsANSAAIAspAKcGNwAAIABBN2ogC0HiBWotAAA6AAAgAEEIaiALQa8GaikAADcAACAAQRBqIAtBtwZqKQAANwAAIABBGGogC0G/BmopAAA3AAAgAEEgaiALQccGaikAADcAACAAQShqIAtBzwZqKQAANwAAIABBMGogC0HXBmooAAA2AAAgACABOgA0CyALQfAHaiQAC6ouAxt/B30FfiMAQcACayIEJABDAAAANBCbASElIARBADYCDCAEQgQ3AgQgBEEANgIYIARCBDcCECAEQQA2AiQgBEIENwIcIARBADYCMCAEQgQ3AiggBEIANwJIIARCgICAgMAANwJAIARCADcCOCAEQfiQwgA2AjQgBEEANgJYIARCBDcCUCAEQQA2AmQgBEIENwJcIARBADYCcCAEQgQ3AmggBEEANgJ8IARCBDcCdAJAIAEoAggiGCADaiIFQQNPBEACQCMAQSBrIgckAEEEIARBEGoiCygCBCIJQQF0IgYgBUECayIFIAUgBkkbIgUgBUEETRsiDEEFdCEGIAxBgICAIElBAnQhBQJAIAlFBEAgB0EANgIYDAELIAdBBDYCGCAHIAlBBXQ2AhwgByALKAIANgIUCyAHQQhqIAUgBiAHQRRqENoGIAcoAgwhBQJAIAcoAghFBEAgCyAMNgIEIAsgBTYCAAwBCyAFQYGAgIB4Rg0AIAUEQCAFIAdBEGooAgBB0IHEACgCACIAQZcHIAAbEQAAAAsQ2woACyAHQSBqJAACQAJAAkACQCADBEAgAiADQQxsaiEaIARBtAFqIRkgASgCACEeIARBiAFqIRtBBCERAkADQAJAIBtBfzYCACAEQn83A4ABAn0gAigCACIPIAIoAgQiEkYNCSACKAIIIhUgD0YNCSASIBVGDQkgAkEMaiEMQQAhCwNAIAIgCyIDQQFqIgsgA0ECayADQQJJG0ECdGooAgAiHCADQQJ0IhMgAmooAgAiHUkhAyAcIB0gAxsiCq0gHSAcIAMbIg6tQiCGhCEpIApBx9z57nhzQbnz3fF5bEEFdyAOc0G5893xeWwiBUEZdq1CgYKEiJCgwIABfiEqIAQoAjQiB0EEayEJIAQoAjghFiAEKAJMIRcgBCgCRCEGQQAhFCAFIQMCQAJ9AkACQAJAAkADQCAqIAMgFnEiECAHaikAACIohSInQoGChIiQoMCAAX0gJ0J/hYNCgIGChIiQoMCAf4MhJgNAICZQBEAgKCAoQgGGg0KAgYKEiJCgwIB/g0IAUg0DIBAgFEEIaiIUaiEDDAILIAkgJnqnQQN2IBBqIBZxQQJ0aygCACIDIBdPDQMgJkIBfSAmgyEmIAYgA0EEdGoiAykCACApUg0ACwsgAygCDCIFIAQoAhgiA0kEQCAEKAIQIgYgBUEFdGpBDGoiAygCAEF/Rw0RIAMgDTYCACAEQYABaiATaiAFNgIADAYLIAUgA0GU9MIAEOMIAAsgBEGQAWoiBkEMaiAONgIAIAQgCjYCmAEgBCAFNgKUASAEIARBNGo2ApABIARBgAFqIBNqIRAgBCgCGCEHIwBBIGsiDiQAIAYoAgAiCigCACIDIAooAgQiFCAGKAIEIhZxIghqKQAAQoCBgoSIkKDAgH+DIiZQBEBBCCEJA0AgCCAJaiEFIAlBCGohCSAFIBRxIgggA2opAABCgIGChIiQoMCAf4MiJlANAAsLIApBGGooAgAhBSAGKQIIIScgJnqnQQN2IAhqIBRxIgggA2osAAAiBkEATgRAIAMpAwBCgIGChIiQoMCAf4N6p0EDdiIIIANqLQAAIQYLAkAgBkEBcSIJRQ0AIAooAggNACAKIAooAhAgBRCLASAKKAIAIgMgFiAKKAIEIhRxIgZqKQAAQoCBgoSIkKDAgH+DIiZQBEBBCCEIA0AgBiAIaiEGIAhBCGohCCAGIBRxIgYgA2opAABCgIGChIiQoMCAf4MiJlANAAsLICZ6p0EDdiAGaiAUcSIIIANqLAAAQQBIDQAgAykDAEKAgYKEiJCgwIB/g3qnQQN2IQgLIApBEGohFyADIAhqIBZBGXYiBjoAACAIQQhrIBRxIANqQQhqIAY6AAAgCiAKKAIIIAlrIgk2AgggCiAKKAIMQQFqIgY2AgwgAyAIQQJ0a0EEayAFNgIAIAooAhghCAJAIAUgCkEUaigCACIDRw0AIAYgCWogCGsiBiAFIgMgCGtNDQACQCAIIAYgCGoiA00EQCADQQR0IQkgA0GAgIDAAElBAnQhBgJAIAVFBEAgDkEANgIYDAELIA4gFygCADYCFCAOQQQ2AhggDiAFQQR0NgIcCyAOQQhqIAYgCSAOQRRqENoGIA4oAgwhBiAOKAIIRQRAIAogAzYCFCAKIAY2AhAMAwsgBSEDIAZBgYCAgHhGDQIgBg0BCxDbCgALIAYgDkEQaigCAEHQgcQAKAIAIgBBlwcgABsRAAAACyADIAhGBEAgFyAIEKQGIAooAhghCAsgCiAIQQFqIgY2AhggCigCECAIQQR0aiIDIAc2AgwgAyAWNgIIIAMgJzcCACAFIAZPBEAgBSAGQbCSwgAQ4wgACyAXKAIAIQMgDkEgaiQAIBAgAyAFQQR0akEMaigCADYCACAYIBxNDQEgGCAdTQRAIB0gGEG09MIAEOMIAAsgHiAcQQxsaiIFKgIAIB4gHUEMbGoiAyoCAJMiISAhlCAFKgIEIAMqAgSTIiMgI5SSIAUqAgggAyoCCJMiICAglJIiH0MAAIAoXiIDRQ0CICAgHxCbASIflSEiICMgH5UhICAhIB+VDAMLIAMgF0GgksIAEOMIAAsgHCAYQaT0wgAQ4wgAC0MAAAAAISBDAAAAACEiQwAAgD8LIR8gA0UhAyAEKAIUIAdGBEAgBEEQaiAHEKwGIAQoAhghBwsgBCgCECIGIAdBBXRqIgUgDTYCCCAFIBw2AgQgBSAdNgIAIAUgAzoAHCAFICI4AhggBSAgOAIUIAUgHzgCECAFIAQvANABOwAdIAVBDGpBfzYCACAFQR9qIARB0gFqLQAAOgAAIAQgB0EBajYCGAsgC0EDRw0ACyAPIBhPBEAgDyAYQeTzwgAQ4wgACyASIBhPDQMgFSAYTw0BIB4gEkEMbGoiCSoCACAeIA9BDGxqIgUqAgAiIJMiIiAeIBVBDGxqIgMqAgQgBSoCBCIfkyIhlCAJKgIEIB+TIh8gAyoCACAgkyIjlJMiJCAklCAfIAMqAgggBSoCCCIfkyIglCAJKgIIIB+TIh8gIZSTIiEgIZQgHyAjlCAiICCUkyIgICCUkpIiH0MAAIAoXiIFRQRAIARByAFqIAJBCGooAgA2AgAgBCACKQIANwPAAUMAAAAAISBDAAAAACEiQwAAAAAMAQsgHxCbASEfIARByAFqIAJBCGooAgA2AgAgBCACKQIANwPAASAkIB+VISIgICAflSEgICEgH5ULIR8gGSAEKQPAATcCACAZQQhqIARByAFqKAIANgIAIARBqAFqIgMgGygCADYCACAEIAQpA4ABNwOgASAFRSECIAQoAiwgDUYEQCAEQShqIA0QoQYgBCgCMCENIAQoAighEQsgESANQTBsaiIFQQA2AgAgBSAEKQKwATcCBCAFQQxqIARBuAFqKQIANwIAIAUgBCkDoAE3AhQgBUEcaiADKAIANgIAIAUgAjoALCAFICI4AiggBSAgOAIkIAUgHzgCICAEIA1BAWoiDTYCMCAaIAwiAkcNAQwECwsgFSAYQYT0wgAQ4wgACyASIBhB9PPCABDjCAALIAQoAhgiC0UNAyAEKAIQIgYgC0EFdGohCgwBCyAGIAQoAhgiC0EFdGohCiALDQAgDUUNAkEAIQtBASEWDAELQwAAgD8gJZMhHyAEKAIoIQwgBiEDAkADQCADQQhqKAIAIgUgDU8NASADQQxqKAIAIgIgDU8NASAfIAwgBUEwbGoiBSoCICAMIAJBMGxqIgIqAiCUIAVBJGoqAgAgAkEkaioCAJSSIAVBKGoqAgAgAkEoaioCAJSSXQRAIANBHGpBAToAAAsgCiADQSBqIgNHDQALQQAhFgwBCwwCCyAEKAIoIQ4gBEHYAWohF0EAIQkDQAJAIA4gCUEwbGoiAygCAA0AAkAgCyADKAIUIgdNDQACf0EAIAYgB0EFdGotABxFDQAaIAsgA0EYaigCACIHTQ0BQQEgBiAHQQV0ai0AHEUNABogCyADQRxqKAIAIgdNDQEgBiAHQQV0ai0AHA0CQQILIQUgBCgCJCETIBcgA0EoaigCADYCACAEIAMpAiA3A9ABIAQoAnAiGiIIIAQoAmxGBEAgBEHoAGogGhCoBiAEKAJwIQgLIAQoAmgiFSAIQQJ0aiAHNgIAIAQgCEEBaiICNgJwIAMgBUECdGpBCGoiBygCACEMIAQoAnwiAyAEKAJ4RgRAIARB9ABqIAMQqAYgBCgCfCEDCyAEKAJ0IANBAnRqIAw2AgBBASEIIAQgA0EBajYCfCAFQQFqIgNBACADQQNHGyEPIAcoAgAhBSAJIQcDQCAOIAdBMGxqIhAgD0ECdGoiA0EIaigCACIMIAVGBEAgCEEDSQ0DIAQoAiAgE0YEQCAEQRxqIBMQpQYgBCgCJCETCyAEKAIcIBNBFGxqIgIgCDYCBCACIBo2AgAgAiAEKQPQATcCCCACQRBqIBcoAgA2AgAgBCATQQFqNgIkDAMLIANBFGooAgAhESAQIBM2AgQgEEEBNgIAAkACQAJAIAsgEUsEQCAGIBFBBXRqIgMtABxFBEAgBCgCbCACRgRAIARB6ABqIAIQqAYgBCgCaCEVIAQoAnAhAgsgFSACQQJ0aiARNgIAIAQgAkEBaiICNgJwIAQoAnwiAyAEKAJ4RgRAIARB9ABqIAMQqAYgBCgCfCEDCyAEKAJ0IANBAnRqIAw2AgAgBCADQQFqNgJ8IA9BAWoiA0EAIANBA0cbIQ8gCEEBaiEIDAQLIA0gA0EMaigCACADKAIIIgMgAyAHRhsiB00NAQJ/IBEgDiAHQTBsaiIQKAIURgRAQQAhFEEBDAELQQEhFEEBIBBBGGooAgAgEUYNABogEEEcaigCACARRw0DQQIhFEF+CyEDIAMgFGoiD0ECdCAQakEIaigCACAMRg0DQYTzwgBB0ABB1PPCABCqCgALIBEgC0Hk8sIAEOMIAAsgByANQfTywgAQ4wgAC0HwpcIAQShBxPHCABCqCgALIAcgDUkNAAsgByANQdTywgAQ4wgACyAHIAtBxPLCABDjCAALIA0gCUEBaiIJRw0ACyAWDQAgBCgCMCEMIAQoAighBQNAIAZBCGoiAygCACICIAxPDQIgBSACQTBsaiICKAIABEAgAyACKAIENgIACyAGQQxqIgMoAgAiAiAMTw0CIAUgAkEwbGoiAigCAARAIAMgAigCBDYCAAsgCiAGQSBqIgZHDQALCyABKAIIIgIgBEEEaiIMKAIIIgNLBEAgAiADayIGIAwoAgQgA2tLBEAgDCADIAYQjAYgDCgCCCEDCyAMKAIAIgUgA0EDdGohAiAGQQJPBEAgAkEAIAZBA3RBCGsQiQ0aIAMgBmoiAkEBayEDIAJBA3QgBWpBCGshAgsgAkIANwIAIANBAWohAgsgDCACNgIIIAQoAhwhDCAEKAIMIRIgBCgCBCEFIAQoAiQiGwRAIAwgG0EUbGohCyAEKAJ8IRAgBCgCdCEJIAwhBgNAIAYoAgQiByAGKAIAIgJqIQMCQAJAIAMgB08EQCADIBBLDQEgB0UNAiAJIAJBAnRqIQMgB0ECdCEHA0AgAygCACICIBJJBEAgBSACQQN0aiICIAIoAgRBAWo2AgQgA0EEaiEDIAdBBGsiBw0BDAQLCyACIBJBtPLCABDjCAALIAIgA0Gk8sIAEOUIAAsgAyAQQaTywgAQ5AgACyALIAZBFGoiBkcNAAsLAkACQCASBEAgEkEBa0H/////AXEiC0EBaiIJQQdxIQggC0EHSQRAQQAhByAFIQMMAgsgCUH4////A3EhBkEAIQcgBSEDA0AgAyAHNgIAIANBCGogA0EEaigCACAHaiICNgIAIANBEGogA0EMaigCACACaiICNgIAIANBGGogA0EUaigCACACaiICNgIAIANBIGogA0EcaigCACACaiICNgIAIANBKGogA0EkaigCACACaiICNgIAIANBMGogA0EsaigCACACaiICNgIAIANBOGogA0E0aigCACACaiICNgIAIANBPGooAgAgAmohByADQUBrIQMgBkEIayIGDQALDAELIARB0ABqQQAQjwUgBEHcAGpBABCPBQwBCyAIBEADQCADIAc2AgAgA0EEaigCACAHaiEHIANBCGohAyAIQQFrIggNAAsLIARB0ABqIAcQjwUgBEHcAGogBxCPBSASRQ0AIAUhAyAJQQdxIgcEQANAIANBBGpBADYCACADQQhqIQMgB0EBayIHDQALCyALQQdJDQAgBSASQQN0aiECA0AgA0E8akEANgIAIANBNGpBADYCACADQSxqQQA2AgAgA0EkakEANgIAIANBHGpBADYCACADQRRqQQA2AgAgA0EMakEANgIAIANBBGpBADYCACACIANBQGsiA0cNAAsLAkACQAJAAkACQAJAIBtFDQAgBCgCaCEOIAQoAlwhFiAEKAJkIREgBCgCUCEXIAQoAlghEyAEKAJ0IRogBCgCfCIZIAQoAnAiCksEQEEAIRUDQCAMIBVBFGxqIgIoAgAhAyADIAMgAigCBCIPakkEQCADQQJ0IgIgGmohBiACIA5qIQIgAyAZIAMgGUsbIhAgA2shCCADIAogAyAKSxsiCSADayENA0AgCEUNBSASIAYoAgAiA00NBiATIAUgA0EDdGoiBygCBCAHKAIAaiIDTQ0HIBcgA0ECdGogFTYCACANRQ0IIBEgB0EEaiILKAIAIAcoAgBqIgNNDQkgFiADQQJ0aiACKAIANgIAIAsgCygCAEEBajYCACAGQQRqIQYgAkEEaiECIAhBAWshCCANQQFrIQ0gD0EBayIPDQALCyAbIBVBAWoiFUcNAAsMAQtBACEPA0AgDCAPQRRsaiICKAIAIQMgAyADIAIoAgQiB2pJBEAgA0ECdCIC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AggiFUH/////B3G+IgMgAiADYBsiAiABKAIMIhBB/////wdxviIDIAIgA2AbIgIgASgCECIUQf////8Hcb4iAyACIANgGyICIAEoAhQiFkH/////B3G+IgMgAiADYBsiAiABKAIYIhdB/////wdxviIDIAIgA2AbIgIgASgCHCIZQf////8Hcb4iAyACIANgGyICIAEoAiAiGEH/////B3G+IgMgAiADYBsiCUMAAAAAXARAIAEgGL4gCZU4AiAgASAZviAJlTgCHCABIBe+IAmVOAIYIAEgFr4gCZU4AhQgASAUviAJlTgCECABIBC+IAmVOAIMIAEgFb4gCZU4AgggASATviAJlTgCBCABIBG+IAmVOAIACyASQUBrIhNBIGogAUEgaigCADYCACATQRhqIAFBGGopAgA3AwAgE0EQaiABQRBqKQIANwMAIBNBCGogAUEIaikCADcDACASIAEpAgA3A0AgEkHoAGohHEEAIRQjAEEQayIZJAAgGUIANwMIIBNBJGohHiATQRRqIR8gGUEQaiEaQQEhFQNAIBRBAnQiGyATakEEaiIRIBRBA2wiAUECdGoiFioCACICIAKUIQIgFEUEQCACIBZBBGoqAgAiAiAClJIhAgsgAhCbASIFIAWMIBYqAgAiA0MAAAAAYCIQGyEEIBYgAyAEkjgCAAJAAkACQCACIAUgAyADjCAQG5SSIgIgApIiAkMAAAAAXARAIBEgAUEDakECdGohFyACEJsBIQIgFiAWKgIAIAKVOAIAIBRFBEAgFkEEaiIBIAEqAgAgApU4AgALIBkgG2ogBIw4AgAgGUEIaiAbaiIRIBYqAgAiAiACkiICIBcqAgCUOAIAIBRFBEAgESACIBcqAgSUOAIECyAXQQRqIBRFIgEgFkEEaiIdIAEQ2gEhAiARIBEqAgAgAiACkpI4AgAgFQRAIBFBBGoiECAXQRBqIAEgHSABENoBIgIgApIgECoCAJI4AgALIBYqAgAgESoCAJRDAAAAAJIhAiAURQRAIAIgHSoCACARQQRqKgIAlJIhAgtBAiAUayIgQQFxISEgFioCACEDQQAhGCAURQRAICBBAnEhIiAfIBRBBHRqIRAgESEBA0AgEEEEayIjICMqAgAgAyABKgIAlJM4AgAgECAQKgIAIAMgAUEEaioCAJSTOAIAIAFBCGohASAQQQhq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NwIQIAAgECkCADcCHCAAIAEpAgA3AiggAEEMaiAPQYgCaigCADYCACAAQRhqIBJBCGooAgA2AgAgAEEkaiAQQQhqKAIANgIAIABBMGogAUEIaigCADYCAAwBCyAAQQQ6ADQLIA9BwAJqJAAL9z0DE39GfQR+IwBBgAFrIgUkAAJAAkACQAJAAkACfwJAAkACQAJAAkACfwJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoArwBDgQAAQIDBAsgAUGAgID8AzYCsAEgACABKQIQNwIAIABBCGogAUEYaigCADYCAAwdCyAFQQhqIgNBCGoiAiABQRhqKAIANgIAIANBFGogAUE8aigCADYCACAFIAEpAhA3AwggBSABQTRqIgQpAgA3AhQgBUEANgJ4IAVCADcCcCAFQTBqIgYgAyAFQfAAahDyAiACIAZBCGooAgA2AgAgBSAFKQIwNwMIIAZBFGooAgAhAwJAAkACQAJAIAUoAkBFBEAgAw4CAgMBCyAFQcgAaioCACEVIAEgAzYCsAEgAUG0AWogFTgCAAwDC0HwpcIAQShBsLvCABCqCgALIAFBADYCvAEgAUGAgID8AzYCsAEMAQsgAUEQaiIDKQIAIVsgAyAEKQIANwIAIAVBMGoiBkEgaiICIANBIGoiBygCADYCACAGQRhqIgsgA0EYaiIIKQIANwMAIAZBEGoiCiADQRBqIgwpAgA3AwAgBkEIaiIGIANBCGoiAykCADcDACADIARBCGoiAykCADcCACAMIARBEGoiDCkCADcCACAIIARBGGoiCCkCADcCACAHIARBIGoiBygCADYCACAFIFs3AzAgBCAFKQMwNwIAIAcgAigCADYCACAIIAspAwA3AgAgDCAKKQMANwIAIAMgBikDADcCACABQQA2ArwBIAFBgICA/AM2ArABIAEgASkCAEIgiTcCAAsgACAFKQMINwIAIABBCGogBUEQaigCADYCAAwcCyAFQTBqIgRBCGogAUEYaigCADYCACAEQRRqIAFBPGooAgA2AgAgBEEgaiABQeAAaigCADYCACAFIAEpAhA3AzAgBSABQTRqIgYpAgA3AjwgBSABQdgAaiIDKQIANwNIIAVBADYCbCAFQgA3AmQgBUEIaiIHIAQgBUHkAGpBARBNIAVB+ABqIgsgB0EIaigC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FiAilJOSkiIwlJOSk5QgMyAgICiUIBsgJZQgFiAmlJOSkiA3ICsgNCAcICmUIBogI5QgGSAYlJOSkiIZlCAtIESUk5IgOCAsIDUgICAhlCAeICKUIBsgH5STkpIiG5QgLiAxlJOSk5QgMiAgICaUIBYgKJQgHiAllJOSkiA5IC0gL5QgJyAZlJOSIDogLiAwlCAqIBuUk5KTlJKSjJRdDQMgNkMAAAAAWw0CID0gF5IiFyAJXQ0ACwsgAEEEOgA0DAMLIABBBDoANAwCCyALQZQBaiEBAkAgHUMAAAAAXkUEQCALIBc4ApwCIAsgFzgCmAIgCyAIOAKUAiALQagBaiAdIAIgC0HgAWogBSAOIAwgC0GUAmoQwgEMAQsgCyAJOAKcAiALIBc4ApgCIAsgFzgClAIgC0GoAWogHSACIAMgBSAGIAwgC0GUAmoQ+QELIAsqAqwBIQMgACALKQPgATcCBCAAQQE6ADQgACADOAIAIAAgDikCADcCECAAIAwpAgA3AhwgACABKQIANwIoIABBDGogC0HoAWooAgA2AgAgAEEYaiAOQQhqKAIANgIAIABBJGogDEEIaigCADYCACAAQTBqIAFBCGooAgA2AgAMAQsgAEEEOgA0CyALQaACaiQAC4MdAwh/Gn0DfiMAQeACayIFJAAgACoCmAEhHiAAQYgBakEANgIAIABB8ABqQQA2AgAgBUEBOgAHAkACQAJAIAIoAhgiBwRAIAdB/////wFLDQEgB0ECdCIGQQBIDQECQCAGRQRAIAVBADYCECAFIAc2AgwgBUEENgIIDAELQZH7wwAtAAAaIAZBBBCCDCIIRQ0EIAVBADYCECAFIAc2AgwgBSAINgIICyAHQdWq1SpLDQEgB0EYbCIGQQBIDQECQAJAIAZFBEBBBCEIDAELQZH7wwAtAAAaIAZBBBCCDCIIRQ0BCyAIIQYCQCAHQQJJDQAgB0EBayIJQQNxIQogB0ECa0EDTwRAIAlBfHEhCQNAIAZC////+////79/NwIQIAZC////+/f//79/NwIIIAZC////+/f//7//ADcCACAGQdgAakL////7////v383AgAgBkHQAGpC////+/f//79/NwIAIAZByABqQv////v3//+//wA3AgAgBkFAa0L////7////v383AgAgBkE4akL////79///v383AgAgBkEwakL////79///v/8ANwIAIAZBKGpC////+////79/NwIAIAZBIGpC////+/f//79/NwIAIAZBGGpC////+/f//7//ADcCACAGQeAAaiEGIAlBBGsiCQ0ACwsgCkUNAANAIAZC////+////79/NwIQIAZC////+/f//79/NwIIIAZC////+/f//7//ADcCACAGQRhqIQYgCkEBayIKDQALCyAGQf////sHNgIIIAZC////+/f//7//ADcCACAGQf///3s2AhQgBkL////7////v383AgwgBSAHNgIcIAUgBzYCGCAFIAg2AhRBBCEIIAdBBHQiBkEASA0CIAYEQEGR+8MALQAAGiAGQQQQggwiCEUNBQsgCCEGAkAgB0ECSQ0AIAdBAWsiCUEDcSEKIAdBAmtBA08EQCAJQXxxIQkDQCAGQn83AgggBkEAOgAEIAZBfzYCACAGQThqQn83AgAgBkE0akEAOgAAIAZBMGpBfzYCACAGQShqQn83AgAgBkEkakEAOgAAIAZBIGpBfzYCACAGQRhqQn83AgAgBkEUakEAOgAAIAZBEGpBfzYCACAGQUBrIQYgCUEEayIJDQALCyAKRQ0AA0AgBkJ/NwIIIAZBADoABCAGQX82AgAgBkEQaiEGIApBAWsiCg0ACwsgBkJ/NwIIIAZBADoABCAGQX82AgAMAwsMAwsgBUEANgIQIAVCBDcCCCAFQQA2AhwgBUIENwIUQQQhCAwBCxDbCgALIABBjAFqIQYgAEGQAWooAgAEQCAGKAIAEJoCCyAAIAc2ApQBIAAgBzYCkAEgACAINgKMASAFIAY2AogBIAUgBUEIajYCkAEgBSAFQRRqNgKMAQJAAkACQAJAIANBAWsOAgIBAAsgAkEQaigCAEGoAWwhByAFQYgCaiEDIAIoAgghCkEAIQZBACECA0AgBiAHRg0DAkAgBiAKaiIBKAIARQ0AIAFB6gBqLQAADQAgAUEEaigCACEIIAMgAUE4aigCACABQTxqKAIAIgkoAghBAWtBeHFqQQhqIAFB/ABqIAkoAogBEQEAIAUgCDYChAIgBSACNgKAAiAFQYgBaiACIAggAxDhAQsgAkEBaiECIAZBqAFqIQYMAAsACyACQRBqKAIAQagBbCEHIAEoAhAhCyABKAIIIQggBUGIAmohAyACKAIIIQxBACEKQQAhCQNAIAcg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m8EAQRNB6IbCABDhCQALIAJBAWohAiAKQagBaiEKDAALAAsgAEHoAGohBiAAQdAAaiEBIAVBIGoQtQkgACgCcCICIABB7ABqKAIARgRAIAYgAhCvBiAAKAJwIQILIAAoAmggAkEHdGogBUEgakHgABCIDSIDQegAakJ/NwMAIANCgYCAgHA3A2AgA0EAOgB4IANBADoAdCADQX82AnAgACACQQFqNgJwIAVBgAJqIgIgASAFQQdqIAUoAgggBSgCECAFQRRqQQBBACAeEGAgBUGIAWoiA0EQaiAFQZQCaikCACInNwMAIANBCGogBUGMAmopAgAiKDcDACAFIAUpAoQCIik3A4gBIAFBEGogJzcCACABQQhqICg3AgAgASApNwIAIAJBEGogJzcDACACQQhqICg3AwAgBUHYAmpC////+////79/NwMAIAVB0AJqQv////v3//+/fzcDACAFQcACakL////7////v383AwAgBUG4AmpC////+/f//79/NwMAIAVBqAJqQv////v///+/fzcDACAFQaACakL////79///v383AwAgBSApNwOAAiAFQv////v3//+//wA3A8gCIAVC////+/f//7//ADcDsAIgBUL////79///v/8ANwOYAiAFQaABaiACEJoEIAAoAnAEQCAGKAIAIAVBoAFqQeAAEIgNGiAFKAIYBEAgBSgCFBCaAgsgBSgCDARAIAUoAggQmgILIAVB4AJqJAAPC0EAQQBBvNrAABDjCAALQQQgBkHQgcQAKAIAIgBBlwcgABsRAAAAC/sdAgx/KH0jAEGAAWsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQCAEQQVPBEAgBEECdCENQwAAgD8gBLOVIRQgBSgCACEMIAUoAgghCANAIAMgC2ooAgAiCiAITw0DIBcgFCAMIApBGGxqIgoqAgAgCioCDJJDAAAAP5SUkiEXIBggFCAKKgIIIApBFGoqAgCSQwAAAD+UlJIhGCAWIBQgCioCBCAKQRBqKgIAkkMAAAA/lJSSIRYgDSALQQRqIgtHDQALIARBAnQhDUMAAIA/IARBAWuzlSEaIAUoAgAhDCAFKAIIIQhDAAAAACEUQQAhCwNAIAMgC2ooAgAiCiAITw0CIBQgGiAMIApBGGxqIgoqAgAgCioCDJJDAAAAP5QgF5MiFCAUlJSSIRQgGSAaIAoqAgggCkEUaioCAJJDAAAAP5QgGJMiGSAZlJSSIRkgFSAaIAoqAgQgCkEQaioCAJJDAAAAP5QgFpMiFSAVlJSSIRUgDSALQQRqIgtHDQALQQIgFCAVXiIKIBkgFSAUIAobXRsiCkECaiIIIApBAWsgCEEDSRshDSAKQQFqIgggCkECayAIQQNJGyEOIAFBGGohDCABQSBqKAIAIgshCiABQRxqKAIAIAtGBEAgDCALEK8GIAEoAiAhCgsgASgCGCAKQQd0aiIIQgA3A2AgCEEAOgB4IAggBzoAdCAIIAY2AnAgCEL////7////v383A1ggCEL////7////v383A1AgCEL////7////v383A0ggCEL////7////v383A0AgCEL////7////v383AzggCEL////7////v383AzAgCEL////79///v/8ANwMoIAhC////+/f//7//ADcDICAIQv////v3//+//wA3AxggCEL////79///v/8ANwMQIAhC////+/f//7//ADcDCCAIQv////v3//+//wA3AwAgCEHoAGpCADcDACABIApBAWo2AiAgCSAYOAJMIAkgFjgCSCAJIBc4AkQgCUHgAGoiBiADIAQgBSgCACIEIAUoAggiByAJQcQAaiIDIA4gAi0AACIKEI4EIAlB7ABqIggoAgAhDiAJKAJoIQ8gBiAJKAJgIAkoAmQgBCAHIAMgDSAKEI4EIAgoAgAhECAJKAJoIREgCSgCZCESIAkoAmAhEyAGIA8gDiAEIAcgAyANIAoQjgQgCCgCACEEIAkoAmghByAJKAJkIQogCSgCYCEIIAlBDGogASACIBMgEiAFIAtBABBEIAlBKGogASACIBEgECAFIAtBARBEIAMgASACIAggCiAFIAtBAhBEIAYgASACIAcgBCAFIAtBAxBEIAEoAiAiAiALTQ0EIAkqAnghGCAJKgJ0IRYgCSoCcCEXIAkqAmwhFCAJKgJoIRUgCSoCZCEZIAkoAmAhAyAJKgJcIRogCSoCWCEbIAkqAlQhHCAJKgJQIR0gCSoCTCEeIAkqAkghHyAJKAJEIQQgCSoCQCEgIAkqAjwhISAJKgI4ISIgCSoCNCEjIAkqAjAhJCAJKgIsISUgCSgCKCEFIAkqAiQhJiAJKgIgIScgCSoCHCEoIAkqAhghKSAJKgIUISog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//v3/////wA3AgAgA0E4akL////79/////8ANwIAIANBMGpC////+/f/////ADcCACADQShqQv////v3/////wA3AgAgA0EgakL////79/////8ANwIAIANBGGpC////+/f/////ADcCACADQRBqQv////v3/////wA3AgAgA0EIakL////79/////8ANwIAIANBQGshAyAIQQhrIggNAAsLIAIEQANAIANC////+/f/////ADcCACADQQhqIQMgAkEBayICDQALCyAHIAtqQQFrIQcLIANC////+/f/////ADcCACAJKAIUIQsgB0EBaiECCyAJIAI2AgggCwRAIABBAmshByAKQQJrIQMgCSgCDCIOIAtBDGxqIQ0DQAJAAkAgCSgCCCIKIAdLBEAgDUEMayENIAdBA3QhAiADQQN0IQgDQCAJKAIAIgAgAmoiDyoCACIfIA0qAgAiIF8NAyADIApPDQIgD0EEaigCACEKIAAgCGoiACAfOAIAIABBBGogCjYCACACQQhrIQIgCEEIayEIIANBAWshAyAHQQFrIgcgCSgCCCIKSQ0ACwsgByAKQczvwQAQ4wgACyADIApB3O/BABDjCAALIAMgCk8EQCADIApB7O/BABDjCAALIAAgCGoiAEEEaiANQQRqKAIANgIAIAAgIDgCACANQQhqIAM2AgAgA0EBayEDIA0gDkcNAAsgCSgCCCECCyACQQFrIQ0gAkUNASAGRQ0AIAkoAgAhDiAJKAIUIQAgCUEANgIUIABBDGwhAyAJKAIMIQcCQAJAAkAgAUEDTwRAA0AgA0UNBSADQQxrIQMgBygCBCEAIAdBDGohByAAQQBODQALIABB/////wdxIgogBUkNAQwGCyAEIAFBAnRqIQkgAyAHaiEPIAJBA3RBEGshCwNAIAcgD0YNBCAHIgBBDGohByAAKAIEIgFBAE4NACABQf////8HcSIKIAVPDQYgACgCCCIDQQFqIgEgDUsNAiABIA1GDQAgACoCACEfIApBLGwiCCAEaiIAQQxqIQIgCCAJakEYaioCACEgIAsgA0EDdGshCCAOIAFBA3RqIQMgAEEgaiERIABBHGohEyAAQRhqIRADQAJAIANBBGooAgAiAUH/////B3EiACAKRg0AIAAgBU8NBQJAIAFBAEgEQCADKgIAICBdDQEMAgsgCSAAQSxs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AiAoAgAiBwRAIARBiAJqIgZBGGogB0EYaigCADYCACAGQRBqIAdBEGopAgA3AwAgBkEIaiAHQQhqKQIANwMAIAQgBykCADcDiAJBASEJCyAEQegBaiIHQRhqIARBiAJqIgZBGGoiCygCADYCACAHQRBqIAZBEGoiECkDADcDACAHQQhqIAZBCGoiBykDADcDACAEIAQpA4gCNwPoASABBEAgCyABQRhqKAIANgIAIBAgAUEQaikCADcDACAHIAFBCGopAgA3AwAgBCABKQIANwOIAkEBIQULIARByAFqIgFBGGogCygCADYCACABQRBqIBApAwA3AwALIAFBCGogBykDADcDACAEIAQpA4gCNwPIASANIgYgCigCBEYEQCAKIA0QowYgCigCCCEGCyAKKAIAIAZBqAFsaiIBIAk2AgAgASAEKQPoATcCBCABIAU2AiAgASAEKQPIATcCJCABQQxqIARB6AFqIgVBCGopAwA3AgAgAUEUaiAFQRBqKQMANwIAIAFBHGogBUEYaigCADYCACABQSxqIARByAFqIgVBCGopAwA3AgAgAUE0aiAFQRBqKQMANwIAIAFBPGogBUEYaigCADYCACABQgA3AlwgAUHkAGpCADcCACABQewAakIANwIAIAFB8gBqQgA3AQAgAUIANwKAASABQYgBakIANwIAIAFBkAFqQgA3AgAgAUGYAWpCADcCACABQQQ2AlggAUEANgJMIAFBADYCQCABQQQ2AnwgASAONgKgASABIAw2AqQBIAogBkEBajYCCCAIKAIAIgUgDyAIKAIEIglxIgZqKQAAQoCBgoSIkKDAgH+DIiRQBEBBCCEBA0AgASAGaiEHIAFBCGohASAHIAlxIgYgBWopAABCgIGChIiQoMCAf4MiJFANAAsLIAgoAhghByAkeqdBA3YgBmogCXEiBiAFaiwAACIBQQBOBEAgBSkDAEKAgYKEiJCgwIB/g3qnQQN2IgYgBWotAAAhAQsCQCABQQFxIgxFDQAgCCgCCA0AIAggCCgCECAHEIkBIA8gCCgCBCIJcSIBIAgoAgAiBWopAABCgIGChIiQoMCAf4MiJFAEQEEIIQYDQCABIAZqIQEgBkEIaiEGIAUgASAJcSIBaikAAEKAgYKEiJCgwIB/gyIkUA0ACwsgJHqnQQN2IAFqIAlxIgYgBWosAABBAEgNACAFKQMAQoCBgoSIkKDAgH+DeqdBA3YhBgsgBSAGaiAVOgAAIAZBCGsgCXEgBWpBCGogFToAACAIIAgoAgggDGsiATYCCCAIIAgoAgxBAWoiCTYCDCAFIAZBAnRrQQRrIAc2AgAgCCgCGCEGIAcgCEEUaigCACIFRw0DIAEgCWogBmsiASAHIgUgBmtNDQMgBiABIAZqIgVLDQIgBUEUbCEBIAVB58yZM0lBAnQhCQJAIAdFBEAgBEEANgKMAgwBCyAEQQQ2AowCIAQgB0EUbDYCkAIgBCARKAIANgKIAgsgBEGkAmogCSABIARBiAJqENoGIAQoAqgCIQEgBCgCpAJFBEAgCCAFNgIUIAggATYCEAwECyAHIQUgAUGBgICAeEYNAyABRQ0CIAEgBEGsAmooAgBB0IHEACgCACIAQZcHIAAbEQAAAAsgBiANQaz7wAAQ4wgACyAFIAZB8O/AABDjCAALENsKAAsgBSAGRgRAIBEgBhClBiAIKAIYIQYLIAggBkEBaiIFNgIYIAgoAhAgBkEUbGoiASASOgAQIAEgDTYCDCABIA82AgggASAUNgIEIAEgEzYCACAFIAdLBEAgESgCACAHQRRsakEMaiEGIAooAgghAQwBCyAHIAVBvPvAABDjCAALAkACQCAGKAIAIgUgAUkEQCAKKAIAIAVBqAFsaiEBIABBKGooAgAhBSAAKAIkIQcgFi0AAA0BIAQgBCoCDCIbOAKUAiAEIAQqAggiGYw4ApACIAQgBCoCBCIajDgCjAIgBCAEKgIAIhiMOAKIAiAEIBsgGCAEQRRqKgIAIiCUIBogBCoCECIhlJMiHCAckiIclCAaIBogBEEYaioCACIdlCAZICCUkyIeIB6SIh6UIBggGSAhlCAYIB2UkyIfIB+SIh+Uk5IgHZM4AqACIAQgGyAflCAYIByUIBkgHpSTkiAgkzgCnAIgBCAbIB6UIBkgH5QgGiAclJOSICGTOAKYAiAHIARBiAJqIAAoAiwgAEEwaigCACACIAMgACgCNCoCACABIAUoAigRHQAaDAILIAUgAUGA8MAAEOMIAAsgByAEIAIgAyAAKAIsIABBMGooAgAgACgCNCoCACABIAUoAigRHQAaCyAEQbACaiQAC5EXAyF/BX4IfSMAQaAEayIEJAAgBCACNgI0IAQgATYCMCAEIAM6ADggBCACKgIIIi44AiwgBCAuOAIoIAQgLjgCJCAEIC44AiAgBCACKgIEIi84AhwgBCAvOAIYIAQgLzgCFCAEIC84AhAgBCACKgIAIjA4AgwgBCAwOAIIIAQgMDgCBCAEIDA4AgACQCABQThqKAIAIhNFDQAgBEEANgJUIARCBDcCTCAEQcwAaiIFQQAQqwYgBCgCTCAEKAJUIghBA3RqQoCAgIDw////fjcCACAEIAhBAWo2AlQgBEHwAGogBRChAwJAAkAgBCgCcEUEQEECIQgMAQsgAUEUaigCACEYIAFB3ABqKAIAIQ8gAUHUAGooAgAhECABKAIAIRkgASgCCCESIAEoAgwhHiAEQYAEaiIFQQNqIRQgBEGoA2ohCiAEQYgDaiELIARB6AJqIQ4gBUEQaiEaIAVBDWohGyAEQdwDaiEcIAEoAjAhH0P//39/ISsgBEGIAWoiFUEIaiEWQQIhCANAICsgBCoCeIxfDQEgBCgCdCIBIBNJBEAgHyABQQd0aiIMLQB4QQFxIgEEQCAQIAwoAmAiBUEMbGpBACAFIA9JGyIFQQhqQQAgBRshICAQIAxB7ABqKAIAIgVBDGxqQQAgBSAPSRsiBUEIakEAIAUbISEgECAMQegAaigCACIFQQxsakEAIAUgD0kbIgVBCGpBACAFGyEiIBAgDEHkAGooAgAiBUEMbGpBACAFIA9JGyIFQQhqQQAgBRshHQsgBEGgAmogDCAEEPYBIAQqAqACICtdIQUgBCoCrAIhKiAEKgKoAiEsIAQqAqQCIS0CfyABBEAgBCAhNgK8AiAEICI2ArgCIAQgHTYCtAIgBCAgNgKwAkIAISUgBEHIAmoiF0IANwMAIARCADcDwAIgBEECNgLEAyAEQQI2AqQDIARBAjYChAMgBEECNgLkAiArIC1eQQF0ICsgLF5BAnRyICogK11BA3RyIAVyrSEmQQAhBkEAIQUCQANAAkAgJiAliKdBAXFFDQAgBEGwAmogBmooAgAiAUUNAAJAAkAgASgCACINIBhJBEAgHiANQQN0aiIHKAIAIgEgEk8NASAHKAIEIgcgEk8NAiAcIBkgB0EMbGoiBykCADcCACAcQQhqIAdBCGooAgA2AgAgBEHQA2oiB0EIaiAZIAFBDGxqIgFBCGooAgA2AgAgBCABKQIANwPQAyAEQYAEaiAHIAIQ8gIgBEHuA2oiCSAbQQJqLQAAOgAAIARB+ANqIhEgGkEIaigCADYCACAEIBsvAAA7AewDIAQgGikCADcD8AMgBC0AjAQhByAEKgKABCIqIDCTIiwgLJQgBCoChAQiLCAvkyItIC2UkiAEKgKIBCItIC6TIjEgMZSSEJsBITEgBEHQAmogBWoiAUEMaiAHOgAAIAFBCGogLTgCACABQQRqICw4AgAgASAqOAIAIARBwAJqIAZqIDE4AgAgAUEQaiANNgIAIAFBDWogBC8B7AM7AAAgAUEPaiAJLQAAOgAAIAFBFGogBCkD8AM3AgAgAUEcaiARKAIANgIAIANFDQMgB0UNAyAEQdgBaiICQRBqIAFBEGooAgA2AgAgAkEIaiABQQhqKQIANwMAIAQgASkCADcD2AEgAUEYaikCACInQiCIISUgAUEUaigCACENDAULIA0gGEGMzsIAEOMIAAsgASASQZzOwgAQ4wgACyAHIBJBrM7CABDjCAALIAZBBGohBiAFQSBqIQUgJUIBfCIlQgRSDQALIBUgBCkDwAI3AgAgFiAXKQMANwIAIARBgAJqIARB0AJqIgFBEGooAgA2AgAgBEHYAWoiBUEIaiAOQQhqKQIANwMAIAVBEGogDkEQaigCADYCACAEIAQpAtACNwPwASAEIA4pAgA3A9gBIAQgAUEIaikCADcD+AEgBCgC5AIhASAEQbgBaiIFQQhqIAtBCGopAgA3AwAgBUEQaiALQRBqKQIANwMAIAVBGGogC0EYaigCADYCACAEQZgBaiIFQQhqIApBCGopAgA3AwAgBUEQaiAKQRBqKQIANwMAIAVBGGogCkEYaigCADYCACAEIAspAgA3A7gBIAQgCikCADcDmAEgBCkCgAMiJ0IgiCElIAQoAvwCIQ0gAUEDRg0AIAQoAqQDIQYgBCkCyAMhKSAnpyEHIAQoAsQDDAILAkAgDUECRgRAIARBgARqIgFBD2ogBEHYAGoiAkEPaikAADcAACABQQhqIAJBCGopAAA3AwAgBCAEKQBYNwOABAwBCyAEQdsCaiAEQeABaikDADcAACAEQeMCaiAEQegBaigCADYAACAEIAQpA9gBNwDTAiAEQYAEaiIBQQhqIARB0AJqIgJBCGopAAA3AwAgAUEPaiACQQ9qKQAANwAAIAQgBCkA0AI3A4AEICdC/////w+DICVCIIaEISggDSEICyAEKAJQRQ0FIAQoAkwQmgIMBQsgFSAEKQOgAjcCACAWIAQpA6gCNwIAQQIhASArIC1eQQF0ICsgLF5BAnRyICogK11BA3RyIAVyrSEmQgIhJUECIQZBAgshBSAMQfgAaiEXIARBmAJqIBYpAgA3AwAgBCAVKQIANwOQAiAEQdACaiIJQRBqIARBgAJqKAIANgIAIAlBCGogBCkD+AE3AwAgDiAEKQPYATcCACAOQQhqIARB2AFqIglBCGopAwA3AgAgDkEQaiAJQRBqKAIANgIAIAQgBCkD8AE3A9ACIAQgATYC5AIgBCAHrSAlQiCGhDcDgAMgBCANNgL8AiALIAQpA7gBNwIAIAtBCGogBEG4AWoiAUEIaikDADcCACALQRBqIAFBEGopAwA3AgAgC0EYaiABQRhqKAIANgIAIAQgBjYCpAMgCkEYaiAEQZgBaiIBQRhqKAIANgIAIApBEGogAUEQaikDADcCACAKQQhqIAFBCGopAwA3AgAgCiAEKQOYATcCACAEICk3A8gDIAQgBTYCxANCACElA0ACQCAmICWIQgGDUA0AICWnIQEgFy0AAEEBcUUEQCABQQJ0IgEgDGpB4ABqKAIAIgkgE08NASAEQZACaiABaioCAIwhKiAEKAJUIgEhBSAEKAJQIAFGBEAgBEHMAGogARCrBiAEKAJUIQULIAQoAkwiBiAFQQN0aiIRICo4AgQgESAJNgIAIAQgBUEBajYCVCAGIAFBA3RqIgUqAgQhKiAFKAIAIQkCQCABRQRAQQAhBQwBCwNAQQBBfyAGIAFBAWsiEUEBdiIFQQN0aiIjQQRqKgIAIiwgKl8iJBtBAUECICQbICogLF8bQQFqQQJJBEAgASEFDAILIAYgAUEDdGogIykCADcCACAFIQEgEUEBSw0ACwsgBiAFQQN0aiIBICo4AgQgASAJNgIADAELIAFBAnQiBiAEQZACamoqAgAiKiArXUUNACAEQdACaiABQQV0aiIFKAIUIgFBAkYNACAPIAYgDGpB4ABqKAIATQ0AIBBFDQAgFCAFKQAANwAAIBRBCGogBUEIaikAADcAACAUQRBqIAVBEGooAAA2AAAgBEHYAGoiCEEIaiAEQYAEaiIGQQhqKQAANwMAIAhBD2ogBkEPaikAADcAACAEIAQpAIAENwNYIAUpAhghKCABIQggKiErCyAlQgF8IiVCBFINAAsgBEHwAGogBEHMAGoQoQMgBCgCcA0BDAILCyABIBNB+KDCABDjCAALIARBgARqIgFBCGogBEHYAGoiAkEIaikDADcDACABQQ9qIAJBD2opAAA3AAAgBCAEKQNYNwOABCAEKAJQRQ0AIAQoAkwQmgILIAhBAkYNACAAIAQpAIMENwAAIAAgKDcCGCAAIAg2AhQgAEEQaiAEQZMEaigAADYAACAAQQhqIARBiwRqKQAANwAAIARBoARqJAAPC0HLj8IAQStBkMXCABCqCgAL0BcDH38JfQJ+IwBB4AJrIgQkACAEIAI2AjQgBCABNgIwIAQgAzoAOCAEIAIqAggiJTgCLCAEICU4AiggBCAlOAIkIAQgJTgCICAEIAIqAgQiJjgCHCAEICY4AhggBCAmOAIUIAQgJjgCECAEIAIqAgAiJzgCDCAEICc4AgggBCAnOAIEIAQgJzgCAAJAIAFBOGooAgAiFUUNACAEQQA2AkwgBEIENwJEIARBxABqIgVBABCrBiAEKAJEIAQoAkwiCUEDdGpCgICAgPD///9+NwIAIAQgCUEBajYCTCAEQewAaiAFEKEDAkACQCAEKAJsRQRAQQIhCQwBCyABQdwAaigCACEPIAFB1ABqKAIAIRAgASgCCCERIAEoAgAhCiAEQdMCaiEXIARByQJqIRIgBEG1AmohDCAEQaECaiENIARBjQJqIQ4gBEGAAmoiCUEBciETIARBvAJqIRggBEGoAmohGSAJQRRqIRogASgCMCEeQ///f38hJEECIQkDQCAkIAQqAnSMXw0BAkACfwJAIAQoAnAiASAVSQRAIB4gAUEHdGoiCy0AeEEBcSIFBEAgECALKAJgIgFBDGxqQQAgASAPSRsiAUEIakEAIAEbIRsgECALQewAaigCACIBQQxsakEAIAEgD0kbIgFBCGpBACABGyEcIBAgC0HoAGooAgAiAUEMbGpBACABIA9JGyIBQQhqQQAgARshHSAQIAtB5ABqKAIAIgFBDGxqQQAgASAPSRsiAUEIakEAIAEbIRYLIARB8AFqIAsgBBD2ASAEKgLwASIoICRdIQYgBCoC/AEhKSAEKgL4ASEqIAQqAvQBISsgBUUEQEECIQEgJCArXkEBdCAkICpeQQJ0ciAkICleQQN0ciAGcq0hLEECIQVBAiEIQQIMAwsgBEECOgDIAiAEQQI6ALQCIARBAjoAoAIgBEECOgCMAiAkICteIQFDAAAAACErQwAAAAAhKCABQQF0ICQgKl5BAnRyICQgKV5BA3RyIAZyIgatIixCAYNQDQEgG0UNASAbKAIAIgggEU8NASAKRQ0BIAogCEEkbGoiB0EgaigCACEFIARB0AJqIgEgBygCHCAFKAIIQQFrQXhxakEIaiAHIAIgAyAFKAI8EQcAIAQtANwCIQUgBCoC0AIgJ5MiIyAjlCAEKgLUAiAmkyIjICOUkiABQQhqIgEqAgAgJZMiIyAjlJIQmwEhKCAEQYgCaiABKQIANwMAIAQgCDYCkAIgBCAEKQLQAjcDgAIgBUUNASADRQ0BQQAhAQwDCyABIBVB+KDCABDjCAALAkAgLEICg1ANACAWRQ0AIBYoAgAiCCARTw0AIApFDQAgCiAIQSRsaiIHQSBqKAIAIQUgBEHQAmoiASAHKAIcIAUoAghBAWtBeHFqQQhqIAcgAiADIAUoAjwRBwAgBC0A3AIhBSAEKgLQAiAnkyIjICOUIAQqAtQCICaTIiMgI5SSIAFBCGoiASoCACAlkyIjICOUkhCbASErIBpBCGogASkCADcCACAaIAQpAtACNwIAIAQgCDYCpAIgBUUNACADRQ0AQQEhAQwCC0MAAAAAISlDAAAAACEqAkAgLEIEg1ANACAdRQ0AIB0oAgAiCCARTw0AIApFDQAgCiAIQSRsaiIHQSBqKAIAIQUgBEHQAmoiASAHKAIcIAUoAghBAWtBeHFqQQhqIAcgAiADIAUoAjwRBwAgBC0A3AIhBSAEKgLQAiAnkyIjICOUIAQqAtQCICaTIiMgI5SSIAFBCGoiASoCACAlkyIjICOUkhCbASEqIBlBCGogASkCADcCACAZIAQpAtACNwIAIAQgCDYCuAIgBUUNACADRQ0AQQIhAQwCC0ECIQECQCAGQQhJDQAgHEUNACAcKAIAIgcgEU8NACAKRQ0AIAogB0EkbGoiBkEgaigCACEFIARB0AJqIgEgBigCHCAFKAIIQQFrQXhxakEIaiAGIAIgAyAFKAI8EQcAIAQtANwCIQUgBCoC0AIgJ5MiIyAjlCAEKgLUAiAmkyIjICOUkiABQQhqIgEqAgAgJZMiIyAjlJIQmwEhKSAYQQhqIAEpAgA3AgAgGCAEKQLQAjcCACAEIAc2AswCAkAgBUUNACADRQ0AQQMhAQwDCyAELQDIAiEBCyAEQbABaiIFQQhqIA5BCGopAAA3AwAgBUEPaiAOQQ9qKAAANgAAIARBmAFqIgVBCGogDUEIaikAADcDACAFQQ9qIA1BD2ooAAA2AAAgBCATKAAANgLIASAEIA4pAAA3A7ABIAQgDSkAADcDmAEgBCATQQNqKAAANgDLASAELQCAAiEfIAQoAogCISAgBC0AjAIhCCAELQCgAiEFIARBgAFqIgZBCGogDEEIaikAADcDACAGQQ9qIAxBD2ooAAA2AAAgBCAMKQAANwOAASAEIBJBA2ooAAA2AHsgBCASKAAANgJ4IAQtALQCCyEHIAtB+ABqISEgBCApOALsASAEICo4AugBIAQgKzgC5AEgBCAoOALgASATIAQoAsgBNgAAIBNBA2ogBCgAywE2AAAgDiAEKQOwATcAACAOQQhqIARBsAFqIgZBCGopAwA3AAAgDkEPaiAGQQ9qKAAANgAAIAQgHzoAgAIgBCAIOgCMAiAEICA2AogCIAQgBToAoAIgDSAEKQOYATcAACANQQhqIARBmAFqIgVBCGopAwA3AAAgDUEPaiAFQQ9qKAAANgAAIAQgBzoAtAIgDEEPaiAEQYABaiIFQQ9qKAAANgAAIAxBCGogBUEIaikDADcAACAMIAQpA4ABNwAAIAQgAToAyAIgEkEDaiAEKAB7NgAAIBIgBCgCeDYAAEIAIS0DQAJAICwgLYhCAYNQDQAgLachASAhLQAAQQFxBEAgAUECdCIFIARB4AFqaioCACIjICRdRQ0BIARBgAJqIAFBFGxqIgYtAAwiAUECRg0BIA8gBSALakHgAGooAgBNDQEgEEUNASAXIAYpAAA3AAAgF0EIaiAGQQhqKAAANgAAIAQgBigADTYCUCAEIAZBEGooAAA2AFMgBCAEKQDQAjcDWCAEIARB1wJqKQAANwBfIAEhCSAjISQMAQsgAUECdCIBIAtqQeAAaigCACIHIBVPDQAgBEHgAWogAWoqAgCMISMgBCgCTCIBIQUgBCgCSCABRgRAIARBxABqIAEQqwYgBCgCTCEFCyAEKAJEIhQgBUEDdGoiBiAjOAIEIAYgBzYCACAEIAVBAWo2AkwgFCABQQN0aiIFKgIEISggBSgCACEiAkAgAUUEQEEAIQUMAQsDQEEAQX8gFCABQQFrIghBAXYiBUEDdGoiB0EEaioCACIjIChfIgYbQQFBAiAGGyAjIChgG0EBakECSQRAIAEhBQwCCyAUIAFBA3RqIAcpAgA3AgAgBSEBIAhBAUsNAAsLIBQgBUEDdGoiASAoOAIEIAEgIjYCAAsgLUIBfCItQgRSDQALIARB7ABqIARBxABqEKEDIAQoAmwNAQwCCwsgBEHYAWoiAiAEQYACaiABQRRsaiIBQQhqKAIANgIAIAQgASkCADcD0AEgBCABKAANNgLIASAEIAFBEGooAAA2AMsBAkAgAS0ADCIBQQJGBEAgBCAEKQBYNwPQAiAEIAQoAFA2AvABIAQgBEHfAGopAAA3ANcCIAQgBEHTAGooAAA2APMBDAELIAQgBCgAywE2APMBIAQgBCgCyAE2AvABIARBiwJqIAIoAgA2AAAgBCAEKQPQATcAgwIgBCAEKQCAAjcD0AIgBCAEQYcCaikAADcA1wIgASEJCyAEKAJIRQ0BIAQoAkQQmgIMAQsgBCAEKQNYNwPQAiAEIAQpAF83ANcCIAQgBCgCUDYC8AEgBCAEKABTNgDzASAEKAJIRQ0AIAQoAkQQmgILIAlB/wFxQQJGDQAgACAEKQDTAjcAACAAIAk6AAwgACAELwHwATsADSAAQQ9qIAQtAPIBOgAAIABBCGogBEHbAmooAAA2AAAgBEHgAmokAA8LQcuPwgBBK0GAxcIAEKoKAAuHFwMQfwx9A34jAEGQAmsiBiQAIAAoAgAiCkEQaiERIAooAgAiCUEEayEMIAAoAggoAgAiDiAAKAIEKAIAIg1BufPd8XlsQQV3c0G5893xeWwiEEEZdiITrUKBgoSIkKDAgAF+ISIgCkEYaigCACEFIAooAgQhByAKKAIQIQ8gECELAkACQAJAAkACQAJAA0AgIiAHIAtxIgsgCWopAAAiIYUiIEKBgoSIkKDAgAF9ICBCf4WDQoCBgoSIkKDAgH+DISADQCAgUARAICEgIUIBhoNCgIGChIiQoMCAf4NCAFINAyALIAhBCGoiCGohCwwCCyAMICB6p0EDdiALaiAHcUECdGsoAgAiBCAFTw0DICBCAX0gIIMhICAPIARBFGxqIhIoAgAgDUcNACASQQRqKAIAIA5HDQALCyAPIARBFGxqIgQoAgwiBSAAKAIMIg0oAggiDk8NAiAGIA0oAgAgBUGoAWxqEMQCIARBDGoiCCAAKAIQIgsoAgg2AgAgBEEQaiAAKAIULQAAOgAAIAsoAggiBCALKAIERgRAIAsgBBCjBiALKAIIIQQLIAsoAgAgBEGoAWxqIAZBqAEQiA0aIAsgBEEBaiIENgIIDAULIAAoAhQtAAAhEiAAKAIQIgsoAgghDwJ/IAAoAhgtAAAEQEEAIQxBACEFIAEEQCAGQegBaiIEQRhqIAFBGGooAgA2AgAgBEEQaiABQRBqKQIANwMAIARBCGogAUEIaikCADcDACAGIAEpAgA3A+gBQQEhBQsgBkHIAWoiBEEYaiAGQegBaiIHQRhqKAIANgIAIARBEGogB0EQaikDADcDACAEQQhqIAdBCGopAwA3AwAgBiAGKQPoATcDyAEgDiEHIA0MAQtBACEFQQAhDCABBEAgBkHoAWoiBEEYaiABQRhqKAIANgIAIARBEGogAUEQaikCADcDACAEQQhqIAFBCGopAgA3AwAgBiABKQIANwPoAUEBIQwLIAZBqAFqIgRBGGogBkHoAWoiB0EYaigCADYCACAEQRBqIAdBEGopAwA3AwAgBEEIaiAHQQhqKQMANwMAIAYgBikD6AE3A6gBIA0hByAOCyEEIA8iCCALKAIERgRAIAsgDxCjBiALKAIIIQgLIAsoAgAgCEGoAWxqIgkgBTYCACAJIAYpA8gBNwIEIAkgDDYCICAJIAYpA6gBNwIkIAlBDGogBkHIAWoiBUEIaikDADcCACAJQRRqIAVBEGopAwA3AgAgCUEcaiAFQRhqKAIANgIAIAlBLGogBkGoAWoiBUEIaikDADcCACAJQTRqIAVBEGopAwA3AgAgCUE8aiAFQRhqKAIANgIAIAlCADcCXCAJQeQAakIANwIAIAlB7ABqQgA3AgAgCUHyAGpCADcBACAJQgA3AoABIAlBiAFqQgA3AgAgCUGQAWpCADcCACAJQZgBakIANwIAIAlBBDYCWCAJQQA2AkwgCUEANgJAIAlBBDYCfCAJIAc2AqABIAkgBDYCpAEgCyAIQQFqNgIIIAooAgAiBSAQIAooAgQiDHEiCGopAABCgIGChIiQoMCAf4MiIFAEQEEIIQQDQCAEIAhqIQcgBEEIaiEEIAcgDHEiCCAFaikAAEKAgYKEiJCgwIB/gyIgUA0ACwsgCigCGCEEICB6p0EDdiAIaiAMcSIIIAVqLAAAIgdBAE4EQCAFKQMAQoCBgoSIkKDAgH+DeqdBA3YiCCAFai0AACEHCwJAIAdBAXEiCUUNACAKKAIIDQAgCiAKKAIQIAQQiQEgCigCACIFIBAgCigCBCIMcSIHaikAAEKAgYKEiJCgwIB/gyIgUARAQQghCANAIAcgCGohByAIQQhqIQggByAMcSIHIAVqKQAAQoCBgoSIkKDAgH+DIiBQDQALCyAgeqdBA3YgB2ogDHEiCCAFaiwAAEEASA0AIAUpAwBCgIGChIiQoMCAf4N6p0EDdiEICyAFIAhqIBM6AAAgCEEIayAMcSAFakEIaiATOgAAIAogCigCCCAJayIHNgIIIAogCigCDEEBaiIJNgIMIAUgCEECdGtBBGsgBDYCACAKKAIYIQggBCAKQRRqKAIAIgVHDQMgByAJaiAIayIHIAQiBSAIa00NAyAIIAcgCGoiBUsNAiAFQRRsIQcgBUHnzJkzSUECdCEJAkAgBEUEQCAGQQA2AuwBDAELIAZBBDYC7AEgBiAEQRRsNgLwASAGIBEoAgA2AugBCyAGQYQCaiAJIAcgBkHoAWoQ2gYgBigCiAIhByAGKAKEAkUEQCAKIAU2AhQgCiAHNgIQDAQLIAQhBSAHQYGAgIB4Rg0DIAdFDQIgByAGQYwCaigCAEHQgcQAKAIAIgBBlwcgABsRAAAACyAEIAVBrPvAABDjCAALIAUgDkHg7cAAEOMIAAsQ2woACyAFIAhGBEAgESAIEKUGIAooAhghCAsgCiAIQQFqIgc2AhggCigCECAIQRRsaiIFIBI6ABAgBSAPNgIMIAUgEDYCCCAFIA42AgQgBSANNgIAIAQgB0kEQCARKAIAIARBFGxqQQxqIQggCygCCCEEDAELIAQgB0G8+8AAEOMIAAsCQAJAAkACQCAIKAIAIgUgBEkEQCALKAIAIAVBqAFsaiEFIABBIGooAgAhDSAAKAIcIQ4gACgCGC0AAA0DIAAoAjAhBCABRQ0BIAFBFGoqAgAiGSAEKgIAIheUIAQqAgQiGCABKgIQIh6UkyIUIBSSIRogBCoCCCIUIB6UIAFBGGoqAgAiFSAXlJMiFiAWkiEbIAZB6AFqIgdBGGogBEEYaioCACAVIAQqAgwiFiAalCAXIBuUIBggGCAVlCAUIBmUkyIVIBWSIh+Uk5KSkjgCACAHQRRqIARBFGoqAgAgGSAWIBuUIBQgH5QgFyAalJOSkpI4AgAgBiAWIAEqAgwiGZQgFyABKgIAIhWUkyAYIAEqAgQiHJSTIBQgASoCCCIdlJM4AvQBIAYgFCAZlCAXIByUIBYgHZSSIBggFZSTkjgC8AEgBiAUIBWUIBggGZQgFiAclCAXIB2Uk5KSOALsASAGIBggHZQgFiAVlCAXIBmUkpIgFCAclJM4AugBIAYgBCoCECAeIB8gFpQgGCAalCAUIBuUk5KSkjgC+AEMAgsgBSAEQfDtwAAQ4wgACyAGQegBaiIBQRhqIARBGGooAgA2AgAgAUEQaiAEQRBqKQIANwMAIAFBCGogBEEIaikCADcDACAGIAQpAgA3A+gBCyAOIAZB6AFqIAAoAihBtObAACACIAMgACgCLCoCACAFIA0oAigRHQAaDAELIAAoAiQhBAJAIAEEQCABKgIEIhcgBCoCECABKgIQkyIelCABKgIAIhggBEEUaioCACABQRRqKgIAkyIZlJMiFCAUkiEaIAEqAggiFCAZlCAXIARBGGoqAgAgAUEYaioCAJMiFZSTIhYgFpIhGyAGQegBaiIHQRhqIBUgASoCDCIWIBqUIBcgG5QgGCAYIBWUIBQgHpSTIhUgFZIiH5STkpI4AgAgB0EUaiAZIBYgH5QgGCAalCAUIBuUk5KSOAIAIAYgFCAEKgIIIhmUIBcgBCoCBCIVlCAYIAQqAgAiHJQgFiAEKgIMIh2UkpKSOAL0ASAGIBcgHJQgFiAZlCAYIBWUk5IgFCAdlJM4AvABIAYgFiAVlCAYIBmUkiAXIB2UkyAUIByUkzgC7AEgBiAUIBWUIBYgHJQgGCAdlJMgFyAZlJOSOALoASAGIB4gFiAblCAUIB+UIBcgGpSTkpI4AvgBDAELIAZB6AFqIgFBGGogBEEYaigCADYCACABQRBqIARBEGopAgA3AwAgAUEIaiAEQQhqKQIANwMAIAYgBCkCADcD6AELIA4gBkHoAWogAiADIAAoAihBtObAACAAKAIsKgIAIAUgDSgCKBEdABoLIAZBkAJqJAAL4xYDD38MfQN+IwBBkAJrIgYkACAAKAIAIgtBEGohECALKAIAIghBBGshDCAAKAIEKAIAIg1BufPd8XlsIg9BGXYiEa1CgYKEiJCgwIABfiEhIAtBGGooAgAhByALKAIEIQUgCygCECEOIA8hCgJAAkACQAJAAkACQANAICEgBSAKcSIKIAhqKQAAIiCFIh9CgYKEiJCgwIABfSAfQn+Fg0KAgYKEiJCgwIB/gyEfA0AgH1AEQCAgICBCAYaDQoCBgoSIkKDAgH+DQgBSDQMgCiAJQQhqIglqIQoMAgsgDCAfeqdBA3YgCmogBXFBAnRrKAIAIgQgB08NAyAfQgF9IB+DIR8gDiAEQQR0aigCBCANRw0ACwsgDiAEQQR0aiIEKAIIIgcgACgCCCINKAIIIgVPDQIgBiANKAIAIAdBqAFsahDEAiAEQQhqIgUgACgCDCIKKAIINgIAIARBDGogACgCEC0AADoAACAKKAIIIgcgCigCBEYEQCAKIAcQowYgCigCCCEHCyAKKAIAIAdBqAFsaiAGQagBEIgNGiAKIAdBAWoiBzYCCAwFCyAAKAIQLQAAIRIgACgCDCIKKAIIIQ4CfyAAKAIULQAABEBBACEMQQAhBCABBEAgBkHoAWoiBEEYaiABQRhqKAIANgIAIARBEGogAUEQaikCADcDACAEQQhqIAFBCGopAgA3AwAgBiABKQIANwPoAUEBIQQLIAZBqAFqIgdBGGogBkHoAWoiBUEYaigCADYCACAHQRBqIAVBEGopAwA3AwAgB0EIaiAFQQhqKQMANwMAIAYgBikD6AE3A6gBQQAhCSANDAELQQAhBEEAIQwgAQRAIAZB6AFqIgdBGGogAUEYaigCADYCACAHQRBqIAFBEGopAgA3AwAgB0EIaiABQQhqKQIANwMAIAYgASkCADcD6AFBASEMCyAGQcgBaiIHQRhqIAZB6AFqIgVBGGooAgA2AgAgB0EQaiAFQRBqKQMANwMAIAdBCGogBUEIaikDADcDACAGIAYpA+gBNwPIASANIQlBAAshByAOIgUgCigCBEYEQCAKIA4QowYgCigCCCEFCyAKKAIAIAVBqAFsaiIIIAw2AgAgCCAGKQPIATcCBCAIIAQ2AiAgCCAGKQOoATcCJCAIQQxqIAZByAFqIgRBCGopAwA3AgAgCEEUaiAEQRBqKQMANwIAIAhBHGogBEEYaigCADYCACAIQSxqIAZBqAFqIgRBCGopAwA3AgAgCEE0aiAEQRBqKQMANwIAIAhBPGogBEEYaigCADYCACAIQgA3AlwgCEHkAGpCADcCACAIQewAakIANwIAIAhB8gBqQgA3AQAgCEIANwKAASAIQYgBakIANwIAIAhBkAFqQgA3AgAgCEGYAWpCADcCACAIQQQ2AlggCEEANgJMIAhBADYCQCAIQQQ2AnwgCCAJNgKgASAIIAc2AqQBIAogBUEBajYCCCALKAIAIgQgDyALKAIEIgxxIgVqKQAAQoCBgoSIkKDAgH+DIh9QBEBBCCEHA0AgBSAHaiEFIAdBCGohByAFIAxxIgUgBGopAABCgIGChIiQoMCAf4MiH1ANAAsLIAsoAhghByAfeqdBA3YgBWogDHEiBSAEaiwAACIJQQBOBEAgBCkDAEKAgYKEiJCgwIB/g3qnQQN2IgUgBGotAAAhCQsCQCAJQQFxIghFDQAgCygCCA0AIAsgCygCECAHEIgBIAsoAgAiBCAPIAsoAgQiDHEiCWopAABCgIGChIiQoMCAf4MiH1AEQEEIIQUDQCAFIAlqIQkgBUEIaiEFIAkgDHEiCSAEaikAAEKAgYKEiJCgwIB/gyIfUA0ACwsgH3qnQQN2IAlqIAxxIgUgBGosAABBAEgNACAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhBQsgBCAFaiAROgAAIAVBCGsgDHEgBGpBCGogEToAACALIAsoAgggCGsiCTYCCCALIAsoAgxBAWoiCDYCDCAEIAVBAnRrQQRrIAc2AgAgCygCGCEFIAcgC0EUaigCACIERw0DIAggCWogBWsiCSAHIgQgBWtNDQMgBSAFIAlqIgRLDQIgBEEEdCEJIARBgICAwABJQQJ0IQgCQCAHRQRAIAZBADYC7AEMAQsgBiAQKAIANgLoASAGQQQ2AuwBIAYgB0EEdDYC8AELIAZBhAJqIAggCSAGQegBahDaBiAGKAKIAiEJIAYoAoQCRQRAIAsgBDYCFCALIAk2AhAMBAsgByEEIAlBgYCAgHhGDQMgCUUNAiAJIAZBjAJqKAIAQdCBxAAoAgAiAEGXByAAGxEAAAALIAQgB0Gs+8AAEOMIAAsgByAFQcjrwAAQ4wgACxDbCgALIAQgBUYEQCAQIAUQpAYgCygCGCEFCyALIAVBAWoiCTYCGCALKAIQIAVBBHRqIgQgEjoADCAEIA42AgggBCANNgIEIAQgDzYCACAHIAlJBEAgECgCACAHQQR0akEIaiEFIAooAgghBwwBCyAHIAlBvPvAABDjCAALAkACQAJAAkAgBSgCACIEIAdJBEAgCigCACAEQagBbGohByAAQRxqKAIAIQ0gACgCGCEFIAAoAhQtAAANAyAAKAIwIQQgAUUNASABKgIEIhYgBCoCECABKgIQkyIdlCABKgIAIhcgBEEUaioCACABQRRqKgIAkyIYlJMiEyATkiEZIAEqAggiEyAYlCAWIARBGGoqAgAgAUEYaioCAJMiFJSTIhUgFZIhGiAGQegBaiIKQRhqIBQgASoCDCIVIBmUIBYgGpQgFyAXIBSUIBMgHZSTIhQgFJIiHpSTkpI4AgAgCkEUaiAYIBUgHpQgFyAZlCATIBqUk5KSOAIAIAYgEyAEKgIIIhiUIBYgBCoCBCIUlCAXIAQqAgAiG5QgFSAEKgIMIhyUkpKSOAL0ASAGIBYgG5QgFSAYlCAXIBSUk5IgEyAclJM4AvABIAYgFSAUlCAXIBiUkiAWIByUkyATIBuUkzgC7AEgBiATIBSUIBUgG5QgFyAclJMgFiAYlJOSOALoASAGIB0gFSAalCATIB6UIBYgGZSTkpI4AvgBDAILIAQgB0HY68AAEOMIAAsgBkHoAWoiAUEYaiAEQRhqKAIANgIAIAFBEGogBEEQaikCADcDACABQQhqIARBCGopAgA3AwAgBiAEKQIANwPoAQsgBSAGQegBaiACIAMgACgCJCAAQShqKAIAIAAoAiwqAgAgByANKAIoER0AGgwBCyAAKAIgIQQCQCABBEAgAUEUaioCACIYIAQqAgAiFpQgBCoCBCIXIAEqAhAiHZSTIhMgE5IhGSAEKgIIIhMgHZQgAUEYaioCACIUIBaUkyIVIBWSIRogBkHoAWoiCkEYaiAEQRhqKgIAIBQgBCoCDCIVIBmUIBYgGpQgFyAXIBSUIBMgGJSTIhQgFJIiHpSTkpKSOAIAIApBFGogBEEUaioCACAYIBUgGpQgEyAelCAWIBmUk5KSkjgCACAGIBUgASoCDCIYlCAWIAEqAgAiFJSTIBcgASoCBCIblJMgEyABKgIIIhyUkzgC9AEgBiATIBiUIBYgG5QgFSAclJIgFyAUlJOSOALwASAGIBMgFJQgFyAYlCAVIBuUIBYgHJSTkpI4AuwBIAYgFyAclCAVIBSUIBYgGJSSkiATIBuUkzgC6AEgBiAEKgIQIB0gHiAVlCAXIBmUIBMgGpSTkpKSOAL4AQwBCyAGQegBaiIBQRhqIARBGGooAgA2AgAgAUEQaiAEQRBqKQIANwMAIAFBCGogBEEIaikCADcDACAGIAQpAgA3A+gBCyAFIAZB6AFqIAAoAiQgAEEoaigCACACIAMgACgCLCoCACAHIA0oAigRHQAaCyAGQZACaiQAC8MWAyJ/CH0CfiMAQfADayIDJAACQAJAAkACQAJAAkACQAJAIAEoAmAEQCADQbACaiABIAJBAEP//39/EEEgAygCxAJBBEcNAUHLj8IAQStB4MTCABCqCgALIANBADoAOCADIAI2AjQgAyACKgIIIik4AiwgAyApOAIoIAMgKTgCJCADICk4AiAgAyACKgIEIio4AhwgAyAqOAIYIAMgKjgCFCADICo4AhAgAyACKgIAIis4AgwgAyArOAIIIAMgKzgCBCADICs4AgAgAyABNgIwIAFBIGooAgAiFEUNBSADQQA2AkwgA0IENwJEIANBxABqIgRBABCrBiADKAJEIAMoAkwiBkEDdGpCgICAgPD///9+NwIAIAMgBkEBajYCTCADQegAaiAEEKEDIAMoAmhFBEBBBCEGDAQLIAFB0ABqKAIAIQwgAUHcAGooAgAhGSABQcQAaigCACEPIAEoAkghFSABKAJUISAgA0HIA2oiBEEDaiEaIANBsAJqIgZB0ABqIQ0gA0HkAmohDiAGQRhqIRIgBEENaiEbIANBoANqIgZBDGohHCAGQRhqIR0gASgCPCEQIAEoAhghIUP//39/ISYgA0GAAWoiFkEIaiEXQQQhBgNAICYgAyoCcIxfDQQgAygCbCIBIBRJBEAgISABQQd0aiIJLQB4QQFxIgQEQCAQIAkoAmAiAUEMbGpBACABIA9JGyIBQQhqQQAgARshIiAQIAlB7ABqKAIAIgFBDGxqQQAgASAPSRsiAUEIakEAIAEbISMgECAJQegAaigCACIBQQxsakEAIAEgD0kbIgFBCGpBACABGyEkIBAgCUHkAGooAgAiAUEMbGpBACABIA9JGyIBQQhqQQAgARshHgsgA0GAAmogCSADEPYBIAMqAoACICZdIQEgAyoCjAIhKCADKgKIAiEnIAMqAoQCISUCfyAEBEAgAyAjNgKcAiADICQ2ApgCIAMgHjYClAIgAyAiNgKQAkIAIS0gA0GoAmoiGEIANwMAIANCADcDoAIgA0EENgKYAyADQQQ2AvwCIANBBDYC4AIgA0EENgLEAiAlICZdQQF0ICYgJ15BAnRyICYgKF5BA3RyIAFyrSEuQQAhB0EAIQQDQAJAIC4gLYinQQFxRQ0AIANBkAJqIAdqKAIAIgFFDQACQAJAAkAgASgCACIRIBlJBEAgICARQQxsaiIBKAIAIgUgDE8NASABKAIEIgggDE8NAiABKAIIIgEgDE8NAyAdIBUgAUEMbGoiASkCADcCACAcIBUgCEEMbGoiCCkCADcCACAdQQhqIAFBCGooAgA2AgAgA0GgA2oiC0EIaiAVIAVBDGxqIgFBCGooAgA2AgAgHEEIaiAIQQhqKAIANgIAIAMgASkCADcDoAMgA0HIA2oiCCALIAJBARBNIANBxgNqIBtBAmotAAAiCjoAACADIBsvAAAiBTsBxAMgAygC3AMhCyADKALYAyETIAMtANQDIQEgAyoC0AMhLCADKgLIAyEoIAMqAswDIScgCEECaiIIIAo6AAAgAyAFOwHIAyAoICuTIiUgJZQgJyAqkyIlICWUkiAsICmTIiUgJZSSEJsBISUgA0GwAmogBGoiBUEMaiABOgAAIAVBCGogLDgCACAFQQRqICc4AgAgBSAoOAIAIANBoAJqIAdqICU4AgAgBUEYaiALQQAgE0EDSSIBGzYCACAFQRRqIBNBAiABGzYCACAFQRBqIBE2AgAgBUENaiADLwHIAzsAACAFQQ9qIAgtAAA6AAAMBAsgESAZQZCAwwAQ4wgACyAFIAxBoIDDABDjCAALIAggDEGwgMMAEOMIAAsgASAMQcCAwwAQ4wgACyAHQQRqIQcgBEEcaiEEIC1CAXwiLUIEUg0ACyAWIAMpA6ACNwIAIBcgGCkDADcCACADQeABaiADQbACaiIBQRBqKAIANgIAIANByAFqIBJBCGopAgA3AwAgAyADKQKwAjcD0AEgAyASKQIANwPAASADIAFBCGopAgA3A9gBIAMoAtgCIQggAygC3AIhCyADKALgAiEHIAMoAsQCIQEgA0GoAWoiBEEQaiAOQRBqKQIANwMAIARBCGogDkEIaikCADcDACADQaABaiANQRBqKQIANwMAIAMgDikCADcDqAEgAyANKQIANwOQASADIA1BCGopAgA3A5gBIAFBBUcEQCADKAKYAyEKIAMoAvwCDAILIAtBBEYNBSADQbsCaiADQcgBaikDADcAACADIAMpA8ABNwCzAiADQcgDaiICQQhqIANBsAJqIgFBCGopAAA3AwAgAkEPaiABQQ9qKAAANgAAIAMgAykAsAI3A8gDIAghHyALIQYMBgsgFiADKQOAAjcCACAXIAMpA4gCNwIAICUgJl1BAXQgJiAnXkECdHIgJiAoXkEDdHIgAXKtIS5BBCEBQQQhB0EEIQpBBAshBSAJQfgAaiERIANB+AFqIBcpAgA3AwAgAyAWKQIANwPwASADQbACaiIEQRBqIANB4AFqKAIANgIAIARBCGogAykD2AE3AwAgEiADKQPAATcCACASQQhqIANByAFqKQMANwIAIAMgAykD0AE3A7ACIAMgATYCxAIgAyAHNgLgAiADIAs2AtwCIAMgCDYC2AIgDiADKQOoATcCACAOQQhqIANBqAFqIgFBCGopAwA3AgAgDkEQaiABQRBqKQMANwIAIAMgBTYC/AIgDUEQaiADQaABaikDADcCACANQQhqIAMpA5gBNwIAIA0gAykDkAE3AgAgAyAKNgKYA0IAIS0DQAJAIC4gLYhCAYNQDQAgLachASARLQAAQQFxRQRAIAFBAnQiASAJakHgAGooAgAiCiAUTw0BIANB8AFqIAFqKgIAjCElIAMoAkwiASEEIAMoAkggAUYEQCADQcQAaiABEKsGIAMoAkwhBAsgAygCRCIHIARBA3RqIgUgJTgCBCAFIAo2AgAgAyAEQQFqNgJMIAcgAUEDdGoiBCoCBCEnIAQoAgAhEwJAIAFFBEBBACEEDAELA0BBAEF/IAcgAUEBayIYQQF2IgRBA3RqIgpBBGoqAgAiJSAnXyIFG0EBQQIgBRsgJSAnYBtBAWpBAkkEQCABIQQMAgsgByABQQN0aiAKKQIANwIAIAQhASAYQQFLDQALCyAHIARBA3RqIgEgJzgCBCABIBM2AgAMAQsgAUECdCIEIANB8AFqaioCACIlICZdRQ0AIANBsAJqIAFBHGxqIgUoAhQiAUEERg0AIA8gBCAJakHgAGooAgBNDQAgEEUNACAaIAUpAAA3AAAgGkEIaiAFQQhqKQAANwAAIANB0ABqIgRBCGogA0HIA2oiBkEIaikAADcDACAEQQ9qIAZBD2ooAAA2AAAgAyADKQDIAzcDUCAFKAIQIR8gASEGICUhJgsgLUIBfCItQgRSDQALIANB6ABqIANBxABqEKEDIAMoAmgNAQwFCwsgASAUQfigwgAQ4wgACyAAIAMpArACNwIAIABBCGogA0G4AmopAgA3AgAgAEEUaiADKALAAjYCAAwGCyADQcgDaiICQQ9qIANB0ABqIgFBD2ooAAA2AAAgAkEIaiABQQhqKQAANwMAIAMgAykAUDcDyAMLIAMoAkhFDQEgAygCRBCaAgwBCyADQcgDaiICQQhqIANB0ABqIgFBCGopAwA3AwAgAkEPaiABQQ9qKAAANgAAIAMgAykDUDcDyAMgAygCSEUNACADKAJEEJoCCyAGQQRHDQELQcuPwgBBK0HwxMIAEKoKAAsgACADKQDLAzcAACAAQQhqIANB0wNqKQAANwAAIABBFGogHzYCAAsgAEECNgIQIANB8ANqJAALthYDJH8FfQN+IwBBwARrIgUkACAFIAI2AmQgBSABNgJgIAUgBDoAbCAFIAM4AmggBSACKgIMIik4AjwgBSApOAI4IAUgKTgCNCAFICk4AjAgBSACKgIIIik4AiwgBSApOAIoIAUgKTgCJCAFICk4AiAgBSACKgIEIik4AhwgBSApOAIYIAUgKTgCFCAFICk4AhAgBSACKgIAIik4AgwgBSApOAIIIAUgKTgCBCAFICk4AgAgBSACQRRqKgIAIik4AlwgBSApOAJYIAUgKTgCVCAFICk4AlAgBSACQRBqKgIAIik4AkwgBSApOAJIIAUgKTgCRCAFICk4AkACQAJAIAFBIGooAgAiFgRAIAVBADYCfCAFQgQ3AnQgBUH0AGoiBEEAEKsGIAUoAnQgBSgCfCIGQQN0akKAgICA8P///343AgAgBSAGQQFqNgJ8IAVBjAFqIAQQoQMCQAJAIAUoAowBRQRAQQQhDAwBCyABQdAAaigCACENIAFB3ABqKAIAIR4gAUHEAGooAgAhEiABKAJIIRcgASgCVCEhIAVBwAJqIgRBFGohFSAEQdwAaiEOIAVBgANqIQ8gBUHkAmohECAFQYwEaiEfIAVByANqIgRBDGohGCAEQRhqIRkgASgCPCETIAEoAhghIkP//39/ISlBBCEMA0AgKSAFKgKUAYxfDQEgBSgCkAEiBCAWSQRAICIgBEEHdGoiCy0AeEEBcSIEBEAgEyALKAJgIgZBDGxqQQAgBiASSRsiBkEIakEAIAYbISMgEyALQewAaigCACIGQQxsakEAIAYgEkkbIgZBCGpBACAGGyEkIBMgC0HoAGooAgAiBkEMbGpBACAGIBJJGyIGQQhqQQAgBhshJSATIAtB5ABqKAIAIgZBDGxqQQAgBiASSRsiBkEIakEAIAYbISALIAUgAzgCjAQgBSADOAKIBCAFIAM4AoQEIAUgAzgCgAQgBUHAAmogCyAFIAVBgARqENwBIAUgBSkDwAI3A4ACIAUgBSkDyAI3A4gCIAUqAtACISogBSoC1AIhKyAFKgLYAiEsIAUqAtwCIS0CfyAEBEAgBSAkNgKkAiAFICU2AqACIAUgIDYCnAIgBSAjNgKYAkIAIS4gBUGwAmpCADcDACAFQgA3A6gCQQAhCCAFQQA2ArwCIAUgKSAtXjoAswMgBSApICxeOgCyAyAFICkgK146ALEDIAUgKSAqXjoAsAMgBUEENgKYAyAFQQQ2AvwCIAVBBDYC4AIgBUEENgLEAiAFQYAEaiAFQYACaiAFQbADahDKCSAFLQCABCAFLQCBBEEBdHIgBS0AggRBAnRyIAUtAIMEQQN0cq1C/wGDIS8gBUG8AmohBkEAIQQDQAJAIC8gLoinQQFxRQ0AIAVBmAJqIARqKAIAIhRFDQACQAJAAkAgFCgCACIHIB5JBEAgISAHQQxsaiIHKAIAIgogDU8NASAHKAIEIgkgDU8NAiAHKAIIIgcgDU8NAyAZIBcgB0EMbGoiBykCADcCACAYIBcgCUEMbGoiCSkCADcCACAZQQhqIAdBCGooAgA2AgAgBUHIA2oiB0EIaiAXIApBDGxqIgpBCGooAgA2AgAgGEEIaiAJQQhqKAIANgIAIAUgCikCADcDyAMgBUGABGogByAYIBkgAhCJAiAFKAKABCIKQQRGDQQgBUG4BGoiByAfQQhqKAIANgIAIAUgHykCADcDsAQgBSoCiAQiKiADX0UNBCAFNQKEBCEwIAVB+ANqIAcoAgAiCTYCACAFQagCaiAEaiAqOAIAIAVBwAJqIAhqIgdBDGogKjgCACAHQQRqIAqtIDBCIIaENwIAIAdBEGogBSkDsAQiMDcCACAHQRhqIAk2AgAgBSAwNwPwAyAGQQE6AAAgByAUKAIANgIADAQLIAcgHkGQgMMAEOMIAAsgCiANQaCAwwAQ4wgACyAJIA1BsIDDABDjCAALIAcgDUHAgMMAEOMIAAsgCEEcaiEIIAZBAWohBiAEQQRqIQQgLkIBfCIuQgRSDQALIAVB6AFqIBVBCGooAgA2AgAgBUHIAWoiBEEIaiAQQQhqKQIANwMAIARBEGogEEEQaikCADcDACAFIBUpAgA3A+ABIAUgECkCADcDyAEgBSgC0AIhFCAFKALMAiEHIAUoAsgCIQogBSgCwAIhJiAFKAK8AiEEIAUqArQCIS0gBSoCsAIhLCAFKgKsAiErIAUqAqgCISogBSgC4AIhBiAFKALEAiEIIAVBwAFqIA9BEGopAgA3AwAgBUGYAWoiCUEIaiAOQQhqKQIANwMAIAlBEGogDkEQaigCADYCACAFIA8pAgA3A7ABIAUgD0EIaikCADcDuAEgBSAOKQIANwOYASAIQQVHBEAgBSgCmAMhESAFKAL8AgwCCyAFQcgCaiAFQYABaiAFQeABaiAHQQRGIgIbIgRBCGooAgA2AgAgBSAEKQIANwPAAiAFKAJ4BEAgBSgCdBCaAgsgDCAHIAIbIQwgGiAKIAIbIRogGyAGIAIbIRsgHCAUIAIbIRwMBQsgBSgCgAIhBEEEIQhBBCEGQQQhEUEECyEJIAtB+ABqIScgBSAtOAL8ASAFICw4AvgBIAUgKzgC9AEgBSAqOALwASAVIAUpA+ABNwIAIBVBCGogBUHoAWooAgA2AgAgECAFKQPIATcCACAQQQhqIAVByAFqIh1BCGopAwA3AgAgEEEQaiAdQRBqKQMANwIAIAUgFDYC0AIgBSAHNgLMAiAFIAo2AsgCIAUgCDYCxAIgBSAmNgLAAiAFIAY2AuACIAUgCTYC/AIgDyAFKQOwATcCACAPQQhqIAUpA7gBNwIAIA9BEGogBUHAAWopAwA3AgAgDkEQaiAFQZgBaiIGQRBqKAIANgIAIA5BCGogBkEIaikDADcCACAOIAUpA5gBNwIAIAUgETYCmAMgBEEVdkEIcSAEQQ52QQRxIARBB3ZBAnEgBEEBcXJycq0hL0IAIS4DQAJAIC8gLohCAYNQDQAgLqchBCAnLQAAQQFxRQRAIARBAnQiBCALakHgAGooAgAiCSAWTw0BIAVB8AFqIARqKgIAjCEqIAUoAnwiBCEGIAUoAnggBEYEQCAFQfQAaiAEEKsGIAUoAnwhBgsgBSgCdCIIIAZBA3RqIhEgKjgCBCARIAk2AgAgBSAGQQFqNgJ8IAggBEEDdGoiBioCBCEqIAYoAgAhCQJAIARFBEBBACEGDAELA0BBAEF/IAggBEEBayIRQQF2IgZBA3RqIh1BBGoqAgAiKyAqXyIoG0EBQQIgKBsgKiArXxtBAWpBAkkEQCAEIQYMAgsgCCAEQQN0aiAdKQIANwIAIAYhBCARQQFLDQALCyAIIAZBA3RqIgQgKjgCBCAEIAk2AgAMAQsgBEECdCIIIAVB8AFqaioCACIqICldRQ0AIAVBwAJqIARBHGxqIgYoAgQiBEEERg0AIBIgCCALakHgAGooAgBNDQAgE0UNACAFQYgBaiAGQRRqKAIANgIAIAUgBikCDDcDgAEgBigCGCEbIAYoAgghHCAGKAIAIRogBCEMICohKQsgLkIBfCIuQgRSDQALIAVBjAFqIAVB9ABqEKEDIAUoAowBDQEMAgsLIAQgFkH4oMIAEOMIAAsgBUHIAmogBUGIAWooAgA2AgAgBSAFKQOAATcDwAIgBSgCeEUNACAFKAJ0EJoCCyAMQQRHDQELIABBBDYCAAwBCyAAQQI2AgAgACAFKQPAAjcCCCAAIBs2AhQgAEEQaiAFQcgCaigCADYCACAAIAEoAlxBACAcQQFGG0EAIAxBAkYbIBpqNgIECyAFQcAEaiQAC5gVAxF/DH0CfiMAQYADayICJAAgACgCACgCACEHIAAoAgQiCCgCAAR/IAgoAgQiA0H//wNxIQggA0EQdiEPQQEFQQALIRAgB0FBcSELIAAoAggiDCkDAFAEf0EABSAMKQMIIh9CIIinIQwgH6chEUEBCyEDQQAgByALGyEHIAAoAgwiCykDAFAEf0EABSALKQMIIh9CIIinIQYgH6chEkEBCyELIAJBNGpBqLfAADYCACACQShqIAY2AgAgAkEIaiINQRxqIBI2AgAgDUEUaiAMNgIAIAJBGGogETYCACACIAE2AjAgAiALNgIgIAIgAzYCFCACIAg2AhAgAiAPNgIMIAIgEDYCCCACIAc2AiwgACgCECEMIAAoAhQoAgAiEEEIaigCACEDIAAoAhgoAgAiASkCACEgIBApAgAhHyACQThqIg5BCGoiDyABQQhqKQIANwMAIAJB0ABqIgcgAzYCACACIB83A0ggAiAgNwM4IAAoAiQoAgAhCyAAKAIgKAIAIQYgACgCKCgCACIBKAIAIRIgASgCBCIIKAIIIRAgACgCHCgCACEFIAIgDDYCaCAFKAIAIQMgBSgCBCIBKAIIIQAgAiACKgJEIho4AnggAiAPKgIAIhSMOAJ0IAIgAioCPCIVjDgCcCACIAIqAjgiF4w4AmwgAiAaIBcgDkEUaioCACIdlCAVIAIqAkgiHpSTIhMgE5IiFpQgFSAVIAcqAgAiGJQgFCAdlJMiEyATkiIZlCAXIBQgHpQgFyAYlJMiEyATkiITlJOSIBiTOAKEASACIBogE5QgFyAWlCAUIBmUk5IgHZM4AoABIAIgGiAZlCAUIBOUIBUgFpSTkiAekzgCfCACQYwBaiIHQRxqIAg2AgAgB0EUaiABNgIAIAIgEiAQQQFrQXhxakEIaiIBNgKkASACIAMgAEEBa0F4cWpBCGo2ApwBIAIgBjYClAEgAiALNgKMASACIAc2AogBIAIgAkHoAGo2AqwBIAIgAkHsAGo2ApgBIAIgDTYCkAEgAkHcAmoiACABIA4gCCgCiAERAQAgAkGwAWogABDrBSACIAJBiAFqNgKQAiACQQA2AqwCIAJCBDcCpAICQCAFQfAAaigCACINRQ0AIAJBpAJqQQAQqAYgAigCpAIgAigCrAIiAEECdGpBADYCACAAQQFqIhFFDQAgBUGUAWooAgAhCCAFQYwBaigCACEMIAUoAmghEgNAIAIgEUEBayIANgKsAgJAIAIoAqQCIABBAnRqIhAoAgAiACANSQRAIAIoAqgCIQsgEiAAQQd0aiIJLQB4QQFxRQRAIAJBsAJqIAkgAkGwAWoQ4AIMAgsgCUHkAGooAgAhBiAJQegAaigCACEDIAlB7ABqKAIAIQEgCSgCYCEAIAJBsAJqIAkgAkGwAWoQ4AIgAiAMIABBBHRqQQAgACAISRsiAEEIakEAIAAbNgLMAiACIAwgAUEEdGpBACABIAhJGyIAQQhqQQAgABs2AtgCIAIgDCADQQR0akEAIAMgCEkbIgBBCGpBACAAGzYC1AIgAiAMIAZBBHRqQQAgBiAISRsiAEEIakEAIAAbNgLQAiACLQCwAiACLQCxAkEBdHIgAi0AsgJBAnRyIAItALMCQQN0cq1C/wGDIR9CACEgIAJBzAJqIQADQAJAIB8gIIinQQFxRQ0AIAAoAgAiAUUNACACKAKQAigCACIFKAIAIAEoAgAiDyABQQRqKAIAIgcQmAoiBEUNACAFKAIIIQMCQCAFKAIEIgooAgxFDQAgCkEQaigCACAPRw0AIApBFGooAgAgB0YNAQsCQCAKKAIYRQ0AIAQoAgBBAUcNACAKQRxqKAIAIAQoAgRHDQAgCkEgaigCACAEKAIIRg0BCyAKKAIABEAgBCgCSCAKKAIIcUUNASAEQcwAaigCACAKKAIEcUUNAQsCQCAKKAIkIg5FDQAgDkEQcUEAIAQtAJgBIgEbDQEgAUUgDkEgcUEAR3ENASAOQQJxIQYgBCgCAARAIAMgBCgCBCAEKAIIEJcKIgFFDQEgAS0A3QIiAUEBRiAGQQBHcQ0CIA5BBHFBAEcgAUEBS3ENAiAOQQhxRQ0BIAFFDQIMAQsgBg0BCyAKKAIoIgEEQCABIA8gByAEIApBLGooAgAoAhQREwBFDQELIAIgBSgCDCIBKgIMIhUgBEGAAWoqAgAiFpQgASoCACIbIAQqAnQiGJSTIAEqAgQiHCAEQfgAaioCACIZlJMgASoCCCIUIARB/ABqKgIAIhOUkzgC6AIgAiAUIBaUIBsgGZQgFSATlJIgHCAYlJOSOALkAiACIBQgGJQgHCAWlCAVIBmUIBsgE5STkpI4AuACIAIgHCATlCAVIBiUIBsgFpSSkiAUIBmUkzgC3AIgASoCECEYIAEqAhQhGSAbIARBiAFqKgIAIh2UIBwgBEGEAWoqAgAiHpSTIhMgE5IhFyAUIB6UIBsgBEGMAWoqAgAiFpSTIhMgE5IhGiACIAEqAhggFiAVIBeUIBsgGpQgHCAcIBaUIBQgHZSTIhMgE5IiE5STkpKSOAL0AiACIBkgHSAVIBqUIBQgE5QgGyAXlJOSkpI4AvACIAIgGCAeIBUgE5QgHCAXlCAUIBqUk5KSkjgC7AIgBSgCECACQdwCaiAFKAIYIAVBHGooAgAgBCgCMCAEQTRqKAIAIgEoAghBAWtBeHFqQQhqIAEgBUEUaigCACgCDBEXAEEBcUUNACAFKAIgKAIAKAIAIQEgAkGBATYC+AIgAiAPrSAHrUIghoS/EAA2AvwCIAIgASACQfgCaiACQfwCahC3CiACKAIEIQMCQAJAIAIoAgBFBEAgAxABQQBHIQEgA0GEAUkNAgwBC0EBIQEgA0GDAU0NAQsgAxACCyACKAL8AiIDQYQBTwRAIAMQAgsgAigC+AIiA0GEAU8EQCADEAILIAFFDQULIABBBGohACAgQgF8IiBCBFINAAsMAQsgACANQfSYwAAQ4wgACyACLQCwAiIAQQJGDQEgCUH4AGohBgJAIAItALMCQQN0QQhxIAItALICQQJ0QQRxIAItALECQQF0QQJxIABBAXFycnIiA60iH0IBg1ANACAGLQAAQQFxDQAgCSgCYCIAIA1LDQAgECAANgIAIAIgETYCrAILAkAgH0ICg1ANACAGLQAAQQFxDQAgCUHkAGooAgAiACANSw0AIAsgAigCrAIiAUYEQCACQaQCaiALEKgGIAIoAqwCIQELIAIoAqQCIAFBAnRqIAA2AgAgAiABQQFqNgKsAgsCQCAfQgSDUA0AIAYtAABBAXENACAJQegAaigCACIAIA1LDQAgAigCrAIiASACKAKoAkYEQCACQaQCaiABEKgGIAIoAqwCIQELIAIoAqQCIAFBAnRqIAA2AgAgAiABQQFqNgKsAgsCQCADQQhJDQAgBi0AAEEBcQ0AIAlB7ABqKAIAIgEgDUsNACACKAKsAiIAIAIoAqgCRgRAIAJBpAJqIAAQqAYgAigCrAIhAAsgAigCpAIgAEECdGogATYCACACIABBAWoiETYCrAIgEQ0BDAILIAIoAqwCIhENAAsLIAIoAqgCBEAgAigCpAIQmgILIAJBgANqJAALtBUDKn8XfQJ+IwBBkAJrIgMkACADIAI2AjQgAyABNgIwIANBADoAOCADIAIqAggiMTgCLCADIDE4AiggAyAxOAIkIAMgMTgCICADIAIqAgQiMjgCHCADIDI4AhggAyAyOAIUIAMgMjgCECADIAIqAgAiMzgCDCADIDM4AgggAyAzOAIEIAMgMzgCAAJAIAFBOGooAgAiFQRAIANBADYCUCADQgQ3AkggA0HIAGoiBEEAEKsGIAMoAkggAygCUCILQQN0akKAgICA8P///343AgAgAyALQQFqNgJQIANB1ABqIAQQoQMCQAJAIAMoAlRFBEBBBCELDAELIAFBFGooAgAhDyABQdwAaigCACEQIAFB1ABqKAIAIREgASgCACEIIAEoAgghByABKAIMIRMgA0GEAmohCSABKAIwISRD//9/fyEvIANBwwFqISUgA0GnAWohJiADQe8AaiEUQQQhCwJAAkADQCAvIAMqAlyMXw0DAkACQAJAIAMoAlgiASAVSQRAICQgAUEHdGoiCi0AeEEBcSIEBEAgESAKKAJg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ICZBACAHIAlfG0EAIAdDAAAAAGAbISEgBCEBAkACQCAJQwAAAABgRQ0AIAcgCWBFDQAgBCAjaiEBQQAhAyAjDQELQQEhAyAhRQ0BCyAcICFqIh4gCCAhaiICICFBAEobIiRBAEggICAkTHIiJyABIARrIgQgBmoiHSAEIAVqIhsgBEEAShsiJUEASCAfICVMciIEcQ0AIAMgBHINASACIB5ODQEgHCAIayEDIAIhBANAIBpB3ABqICUgBBCaAUUEQCAEQQFqIQQgA0EBayIDDQEMAwsLIABBBToANAwHCyAAIBopAiQ3AgAgAEEwaiAaQSRqIgFBMGopAgA3AgAgAEEoaiABQShqKQIANwIAIABBIGogAUEgaikCADcCACAAQRhqIAFBGGopAgA3AgAgAEEQaiABQRBqKQIANwIAIABBCGogAUEIaikCADcCAAwGCyAhICJqISIgASEEIB4hHCACIQggIUUgJ3INACAbIB1ODQAgBiAFayEDIBshBANAIBpB3ABqIAQgJBCaAQRAIABBBToANAwHCyAEQQFqIQQgA0EBayIDDQALIAEhBAwACwALIAAgGikCJDcCACAAQTBqIBpBJGoiAUEwaikCADcCACAAQShqIAFBKGopAgA3AgAgAEEgaiABQSBqKQIANwIAIABBGGogAUEYaikCADcCACAAQRBqIAFBEGopAgA3AgAgAEEIaiABQQhqKQIANwIADAMLQbSOwgBBHEGYj8IAEKoKAAtBtI7CAEEcQZiPwgAQqgoACyAAQQQ6ADQLIBpBgAFqJAALrxUCCX8CfiMAQUBqIgUkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQFrDgUBAgMEBQALIAIoAgAhAQJAA0ACQCACKALMASIKIAIoAsgBQQFrIAFxIghBHGxqIgYoAhgiCSABQQFqRwRAIAEgCUcEQCADQQZNBEBBACEBA0AgASADdiEEIAFBAWohASAERQ0ACwsgAigCACEBIAMgA0ELSWohAwwDCyABIAIoAkAiBCACKALIASIGQX9zcUYNAUEGIAMgA0EGTxshBkEAIQEDQCABIAZ2IQQgAUEBaiEBIARFDQALIAIoAgAhASADIANBB0lqIQMMAgsgAigCwAEgCEEBak0EQCACKALEASIEIAFBACAEa3FqIQkLIAIoAgAiBCAB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AioCFCEZIAIqAhAhKSACKgIMIRMgAioCCCEVIAIqAgQhFiACKgIAISpBfyENIAEoAjwgCkEEdGoiAkEAOgAEIAIgDjYCACAEQQFGBEBBfyELQX8hDEP//3//IRRD//9//yEaQ///f38hG0P//39/IRxD//9//yEdQ///f/8hHkP//3//IR9D//9/fyEgQ///f38hIUP//39/ISJD//9//yEjQ///f/8hJEP//3//ISVD//9/fyEmQ///f38hJ0P//39/ISgMCAsgBSgCCCICIAMoAgQiC00EQCALIQoMBwsgASgCRCICIAtNBEAgCyEKDAELIAUoAgAgC0EYbGoiAioCFCEjIAIqAhAhJCACKgIMISUgAioCCCEmIAIqAgQhJyACKgIAISggASgCPCALQQR0aiICQQE6AAQgAiAONgIAIARBAkYEQEF/IQxD//9//yEUQ///f/8hGkP//39/IRtD//9/fyEcQ///f/8hHUP//3//IR5D//9//yEfQ///f38hIEP//39/ISFD//9/fyEiDAgLIAUoAggiAiADKAIIIgxNBEAgDCEKDAcLIAEoAkQiAiAMTQRAIAwhCgwBCyAFKAIAIAxBGGxqIgIqAhQhHSACKgIQIR4gAioCDCEfIAIqAgghICACKgIEISEgAioCACEiIAEoAjwgDEEEdGoiAkECOgAEIAIgDjYCACAEQQNGBEBD//9//yEUQ///f/8hGkP//39/IRtD//9/fyEcDAgLIAUoAggiAiADKAIMIg1NBEAgDSEKDAcLIA0gASgCRCICSQ0FIA0hCgsgCiACQazawAAQ4wgACyAKIAJBvNnAABDjCAALIAogAkHM2cAAEOMIAAsgCiADQdzZwAAQ4wgACyAKIAFB7NnAABDjCAALIAUoAgAgDUEYbGoiAioCACEcIAIqAgQhGyACKgIIIRcgAioCDCEaIAIqAhAhFCACKgIUIRggASgCPCANQQR0aiICQQM6AAQgAiAONgIADAELIAogAkGc2sAAEOMIAAsgCSAYOAL8ASAJIBQ4AvgBIAkgGjgC9AEgCSAXOALwASAJIBs4AuwBIAkgHDgC6AEgCSAdOALkASAJIB44AuABIAkgHzgC3AEgCSAgOALYASAJICE4AtQBIAkgIjgC0AEgCSAjOALMASAJICQ4AsgBIAkgJTgCxAEgCSAmOALAASAJICc4ArwBIAkgKDgCuAEgCSAZOAK0ASAJICk4ArABIAkgEzgCrAEgCSAVOAKoASAJIBY4AqQBIAkgKjgCoAEgCSAJQaABaiICEJoEIAlB7ABqIA02AgAgCUHoAGogDDYCACAJQeQAaiALNgIAIAlB9ABqIAc6AAAgCSAKNgJgIAlBAToAeCAJIAY2AnAgCSAIOAKsASAJIAg4AqgBIAkgCDgCpAEgCSAIOAKgASAJIAIQmwIgCUGIAWogCRDDAyACIAlBgAEQiA0aIAEoAiAiCiABQRxqKAIARgRAIAFBGGogChCvBiABKAIgIQoLIAEoAhggCkEHdGogCUGgAWpBgAEQiA0aIAEgCkEBajYCICAAIA42AgAgACAJKQKIATcCBCAAQQxqIAlBkAFqKQIANwIAIABBFGogCUGYAWopAgA3AgALIAlBwARqJAAL4BQDFH8FfgR9IwBB0ARrIggkACAIQQhqIAdBCGopAgA3AwAgCEEQaiAHQRBqKQIANwMAIAhBGGogB0EYaikCADcDACAIQSBqIAdBIGopAgA3AwAgCEEoaiAHQShqKQIANwMAIAggAzYCOCAIIAI2AjQgCCABNgIwIAggBykCADcDACAIQUBrIAQQ6wUgCCAGOgCsASAIIAU4AqgBIAggBDYCpAEgCCAINgKgAQJAAkAgAUHwAGooAgAiEgRAIAhBADYCxAEgCEIENwK8ASAIQbwBaiICQQAQqwYgCCgCvAEgCCgCxAEiA0EDdGpCgICAgPD///9+NwIAIAggA0EBajYCxAEgCEHcAWogAhChAwJAAkAgCCgC3AFFBEBBBCEGDAELIAFBlAFqKAIAIQ8gAUGMAWooAgAhECAIQaADaiIEQewAaiEOIAhB7ANqIQIgCEHMA2ohAyAEQRhqIREgCEG8BGohFCABKAJoIRdD//9/fyEhQQQhBgJAAkADQCAhIAgqAuQBjF8NAyAIKALgASIBIBJJBEAgFyABQQd0aiIMLQB4QQFxIgEEQCAQIAwoAmAiBEEEdGpBACAEIA9JGyIEQQhqQQAgBBshGCAQIAxB7ABqKAIAIgRBBHRqQQAgBCAPSRsiBEEIakEAIAQbIRkgECAMQegAaigCACIEQQR0akEAIAQgD0kbIgRBCGpBACAEGyEaIBAgDEHkAGooAgAiBEEEdGpBACAEIA9JGyIEQQhqQQAgBBshFQsgCCAIKgKoASIFOAK8BCAIIAU4ArgEIAggBTgCtAQgCCAFOAKwBCAIQaADaiAMIAhBQGsgCEGwBGoQ3AEgCCAIKQOgAzcD4AIgCCAIKQOoAzcD6AIgCCoCsAMhBSAIKgK0AyEiIAgqArgDISMgCCoCvAMhJAJ/IAEEQCAIIBk2AoQDIAggGjYCgAMgCCAVNgL8AiAIIBg2AvgCQgAhHCAIQZADakIANwMAIAhCADcDiANBACEBIAhBADYCnAMgCCAhICReOgCjBCAIICEgI146AKIEIAggISAiXjoAoQQgCCAFICFdOgCgBCAIQQQ2AogEIAhBBDYC6AMgCEEENgLIAyAIQQQ2AqgDIAhBsARqIAhB4AJqIAhBoARqEMoJIAgtALAEIAgtALEEQQF0ciAILQCyBEECdHIgCC0AswRBA3RyrUL/AYMhHSAIQZwDaiEEQQAhBwNAAkAgHSAciKdBAXFFDQAgCEH4AmogB2ooAgAiCkUNACAKKAIAIg0gCCgCoAEiCygCOCIJKAIQTw0AIAkoAggiCUUNACAJIA1BqAFsaiIJKAIARQ0AIAooAgQiEyAJKAIERw0AIAsgCygCNCILQQhqKAIAIAtBEGooAgAgDSATIAlBCGoQrgRFDQAgCEGwBGogCUE4aigCACAJQTxqKAIAIgsoAghBAWtBeHFqQQhqIAlB/ABqIAgoAqQBIAgqAqgBIAgtAKwBIAsoAhwRCAAgCCgCsARBBEYNACAEQQE6AAAgCEGgA2ogAWoiCSAKKQIANwMAIAhBiANqIAdqIAgqArgEIgU4AgAgCUEQaiAFOAIAIAlBCGogCCkDsAQ3AwAgCUEUaiAUKQIANwIAIAlBHGogFEEIaigCADYCAAsgAUEgaiEBIARBAWohBCAHQQRqIQcgHEIBfCIcQgRSDQALIAhByAJqIBFBCGopAwA3AwAgCEGgAmoiAUEIaiADQQhqKQIANwMAIAFBEGogA0EQaikCADcDACABQRhqIANBGGooAgA2AgAgCCARKQMANwPAAiAIIAMpAgA3A6ACIAgoArQDIQkgCCkCrAMhHSAIKQOgAyEfIAgoApwDIQcgCCoClAMhJCAIKgKQAyEjIAgqAowDISIgCCoCiAMhBSAIKALIAyEEIAgoAqgDIQEgCEGAAmoiCkEIaiACQQhqKQIANwMAIApBEGogAkEQaikCADcDACAKQRhqIAJBGGooAgA2AgAgCEHoAWoiCkEIaiAOQQhqKQIANwMAIApBEGogDkEQaigCADYCACAIIAIpAgA3A4ACIAggDikCADcD6AEgAUEFRwRAIAgoAugDIQsgCCgCiAQMAgsgCUEERg0EIAhBqANqIAhByAJqKQMANwMAIAggCCkDwAI3A6ADIAQhFiAdIR4gCSEGDAULIAgoAuACIQdBBCEBQQQhBEEEIQtBBAshCiAMQfgAaiETIAggJDgC3AIgCCAjOALYAiAIICI4AtQCIAggBTgC0AIgESAIKQPAAjcDACARQQhqIAhByAJqKQMANwMAIAMgCCkDoAI3AgAgA0EIaiAIQaACaiINQQhqKQMANwIAIANBEGogDUEQaikDADcCACADQRhqIA1BGGooAgA2AgAgCCAJNgK0AyAIIB03AqwDIAggATYCqAMgCCAfNwOgAyAIIAQ2AsgDIAggCzYC6AMgAkEYaiAIQYACaiIBQRhqKAIANgIAIAJBEGogAUEQaikDADcCACACQQhqIAFBCGopAwA3AgAgAiAIKQOAAjcCACAOQRBqIAhB6AFqIgFBEGooAgA2AgAgDkEIaiABQQhqKQMANwIAIA4gCCkD6AE3AgAgCCAKNgKIBCAHQRV2QQhxIAdBDnZBBHEgB0EHdkECcSAHQQFxcnJyrSEgQgAhHANAAkAgICAciEIBg1ANACAcpyEBIBMtAABBAXFFBEAgAUECdCIBIAxqQeAAaigCACIKIBJPDQEgCEHQAmogAWoqAgCMIQUgCCgCxAEiByEEIAgoAsABIAdGBEAgCEG8AWogBxCrBiAIKALEASEECyAIKAK8ASIBIARBA3RqIgsgBTgCBCALIAo2AgAgCCAEQQFqNgLEASABIAdBA3RqIgQqAgQhBSAEKAIAIQoCQCAHRQRAQQAhBAwBCwNAQQBBfyABIAdBAWsiC0EBdiIEQQN0aiINQQRqKgIAIiIgBV8iGxtBAUECIBsbIAUgIl8bQQFqQQJJBEAgByEEDAILIAEgB0EDdGogDSkCADcCACAEIQcgC0EBSw0ACwsgASAEQQN0aiIBIAU4AgQgASAKNgIADAELIAFBAnQiByAIQdACamoqAgAiBSAhXUUNACAIQaADaiABQQV0aiIEKAIIIgFBBEYNACAPIAcgDGpB4ABqKAIATQ0AIBBFDQAgCEHQAWogBEEUaikCADcDACAIIAQpAgw3A8gBIAQoAhwhFiAEKQMAIR4gASEGIAUhIQsgHEIBfCIcQgRSDQALIAhB3AFqIAhBvAFqEKEDIAgoAtwBDQEMBAsLIAEgEkG44MAAEOMIAAsgCEGoA2ogCEHQAWopAgA3AwAgCCAIKQLIATcDoAMLIAgoAsABRQ0BIAgoArwBEJoCDAELIAhBqANqIAhB0AFqKQMANwMAIAggCCkDyAE3A6ADIAgoAsABRQ0AIAgoArwBEJoCCyAGQQRHDQELIABBBDYCCAwBCyAAIAgpA6ADNwIMIAAgFjYCHCAAIAY2AgggACAeNwIAIABBFGogCEGoA2opAwA3AgALIAhB0ARqJAALthMDGH8jfQJ+IwBBwAFrIgYkACAGQTBqIAQgASAFKAKIAREBACAGQcQAaioCACEpIAYqAjghHiAGQUBrKgIAISEgBioCNCEiIAYqAjAhICAGKgI8IR8CQCACIAMoAhARBAAiCkEgaigCACIRBEAgBkEANgIQIAZCBDcCCCAGQQhqIglBABCrBiAGKAIIIAYoAhAiB0EDdGpCgICAgPD///9+NwIAIAYgB0EBajYCECAGQRRqIAkQoQMCQCAGKAIURQ0AICkgHpNDAAAAP5QhIyAhICKTQwAAAD+UISQgHyAgk0MAAAA/lCElIB4gKZJDAAAAv5QhJiAiICGSQwAAAL+UIScgICAfkkMAAAC/lCEoIApBxABqKAIAIQ0gCigCPCEOIAooAhghHEP//39/IR4DQCAeIAYqAhyMXw0BAkACfwJ/AkAgBigCGCIHIBFJBEAgHCAHQQd0aiIILQB4QQFxIgkEQCAOIAgoAmAiB0EMbGpBACAHIA1JGyIHQQhqQQAgBxshFSAOIAhB7ABqKAIAIgdBDGxqQQAgByANSRsiB0EIakEAIAcbIRYgDiAIQegAaigCACIHQQxsakEAIAcgDUkbIgdBCGpBACAHGyEXIA4gCEHkAGooAgAiB0EMbGpBACAHIA1JGyIHQQhqQQAgBxshEgsgCEE0aioCACEtIAhBOGoqAgAhLiAIQTxqKgIAIS8gCEFAayoCACEwIAhBxABqKgIAITEgCEHIAGoqAgAhMiAIQcwAaioCACEzIAhB0ABqKgIAITQgCEHUAGoqAgAhNSAIQdgAaioCACE2IAgqAgAhNyAIKgIEITggCCoCCCE5IAgqAgwhOiAIKgIQITsgCCoCFCE8IAgqAhghPSAIKgIcIT4gCCoCICEpIAgqAiQhISAIKgIoISIgCCoCLCEgIAgqAjAhHyAGICMgJiAIQdwAaioCAJKSOAKMASAGICMgJiA2kpI4AogBIAYgIyAmIDWSkjgChAEgBiAjICYgNJKSOAKAASAGICQgJyAzkpI4AnwgBiAkICcgMpKSOAJ4IAYgJCAnIDGSkjgCdCAGICQgJyAwkpI4AnAgBiAlICggL5KSOAJsIAYgJSAoIC6SkjgCaCAGICUgKCAtkpI4AmQgBiAlICggH5KSOAJgIAYgJiAgkiAjkzgCXCAGICYgIpIgI5M4AlggBiAmICGSICOTOAJUIAYgJiApkiAjkzgCUCAGICcgPpIgJJM4AkwgBiAnID2SICSTOAJIIAYgJyA8kiAkkzgCRCAGICcgO5IgJJM4AkAgBiAoIDqSICWTOAI8IAYgKCA5kiAlkzgCOCAGICggOJIgJZM4AjQgBiAoIDeSICWTOAIwIAZBkAFqIAZBMGoQpgIgBioCnAEhISAGKgKYASEiIAYqApQBISAgBioCkAEhHwJAIAkEQCAeIB9eIQkgHiAgXiEHQwAAAAAhIEEAIRNBACELQwAAAAAhH0EAIAkgB0EBdHIgHiAiXkECdHIgHiAhXkEDdHIiFK0iQUIBg1ANBBpBACAVRQ0EGiAVKAIAIRggBkIANwKkASAGIAU2ArwBIAYgBDYCuAEgBiABNgK0ASAGIAA2ArABIAYgBkGkAWo2AqwBIAIgGCAGQawBakGMy8IAIAMoAgwRAgAgBigCpAFFDQFBAAwEC0EAIQxBACEHQQAhE0EAIQsgHiAgXkEIdCAeIB9eciAeICJeQRB0ciAeICFeQRh0cgwECyAGKgKoASIqQwAAAABcDQEMBAsgByARQfigwgAQ4wgAC0EBIQsgKiIfIB5dCyEKAn9BACBBQgKDUA0AGkEAIBJFDQAaIBIoAgAhGSAGQgA3AqQBIAYgBTYCvAEgBiAENgK4ASAGIAE2ArQBIAYgADYCsAEgBiAGQaQBajYCrAEgAiAZIAZBrAFqQYzLwgAgAygCDBECAEEAIAYoAqQBDQAaIAYqAqgBIitDAAAAAFsNAkEBIRMgKyIgIB5dCyEJQwAAAAAhIUEAIQ9BACEQQwAAAAAhIgJ/QQAgQUIEg1ANABpBACAXRQ0AGiAXKAIAIRogBkIANwKkASAGIAU2ArwBIAYgBDYCuAEgBiABNgK0ASAGIAA2ArABIAYgBkGkAWo2AqwBIAIgGiAGQawBakGMy8IAIAMoAgwRAgBBACAGKAKkAQ0AGiAGKgKoASIiQwAAAABbDQIgHiAiXiEQICIhP0EBCyEHAn9BACAUQQhJDQAaQQAgFkUNABogFigCACEbIAZCADcCpAEgBiAFNgK8ASAGIAQ2ArgBIAYgATYCtAEgBiAANgKwASAGIAZBpAFqNgKsASACIBsgBkGsAWpBjMvCACADKAIMEQIAQQAgBigCpAENABogBioCqAEiIUMAAAAAWw0CIB4gIV4hDyAhIUBBAQshDCAPQRh0IBBBEHRyIAlBCHRyIApyCyEJIAhB+ABqIQ8gBiAhOAIsIAYgIjgCKCAGICA4AiQgBiAfOAIgIAYgQDgCXCAGIBs2AlggBiAMNgJUIAYgPzgCUCAGIBo2AkwgBiAHNgJIIAYgKzgCRCAGIBk2AkAgBiATNgI8IAYgKjgCOCAGIBg2AjQgBiALNgIwIAlBFXZBCHEgCUEOdkEEcSAJQQd2QQJxIAlBAXFycnKtIUFCACFCA0ACQCBBIEKIQgGDUA0AIEKnIQcgDy0AAEEBcQRAIAdBAnQiCSAGQSBqaioCACIfIB5dRQ0BIAZBMGogB0EMbGoiBygCAEUNASANIAggCWpB4ABqKAIATQ0BIA5FDQEgB0EIaioCACEsQQEhHSAfIR4MAQsgB0ECdCIHIAhqQeAAaigCACIMIBFPDQAgBkEgaiAHaioCAIwhHyAGKAIQIgkhByAGKAIMIAlGBEAgBkEIaiAJEKsGIAYoAhAhBwsgBigCCCILIAdBA3RqIgogHzgCBCAKIAw2AgAgBiAHQQFqNgIQIAsgCUEDdGoiByoCBCEgIAcoAgAhEAJAIAlFBEBBACEHDAELA0BBAEF/IAsgCUEBayIUQQF2IgdBA3RqIgxBBGoqAgAiHyAgXyIKG0EBQQIgChsgHyAgYBtBAWpBAkkEQCAJIQcMAgsgCyAJQQN0aiAMKQIANwIAIAchCSAUQQFLDQALCyALIAdBA3RqIgcgIDgCBCAHIBA2AgALIEJCAXwiQkIEUg0ACyAGQRRqIAZBCGoQoQMgBigCFA0BDAILCyAGKAIMBEAgBigCCBCaAgtDAAAAACEsDAILIAYoAgwEQCAGKAIIEJoCCyAdDQELQfSjwgBBJkGksMIAEOEJAAsgBkHAAWokACAsC8ASAzR/An0BfiABKAIMIgcgASgCECIRIAcgEUkbIhMEQAJAIBNB/////wBLDQAgE0EDdCICQQBIDQBBBCEDAkAgAkUNAEGR+8MALQAAGiACQQQQggwiAw0AQQQgAkHQgcQAKAIAIgBBlwcgABsRAAAACyADQQAgAhCJDSEgIAdBAWshGSAHQQNqISEgB0EDdCEiIBFBB2ohLiARQQFrIS8gB0ECayEaIBFBAmshMCAHQQFqIiNBAnQhMSATrUKBgICAEH4hOCABKAIAIg1BBGohMiAHQQJ0IhtBBGoiEiANaiEzA0AgJCIEIBEgBCARSxshNCAEIBMgBCATSxshNSAEIAdqIQIgByAEayEeIAQgMWwiBSAyaiIOIQMgBSAzaiIlISYgAyIFIgsiDyIQIRZBACEnQQAhKAJAAkACQANAICghCiAQIRQgDyEpICUhCCALIRwgAiEqICchFyAFIRUgDiErICYhDCADIR0gJCIGIDVGBEAgACAgNgIUIAAgASkCADcCACAAQSRqIBg2AgAgAEEgaiATNgIAIABBGGogODcCACAAQRBqIAFBEGooAgA2AgAgAEEIaiABQQhqKQIANwIADwsgBiA0Rg0CIAYgB2whLEEAIQkCQAJAAkAgByAGayItDgIAAgELQdSNwQBBI0HgjsEAELsLAAsgDSAGICxqQQJ0aigCAEH/////B3G+ITZBASECIBYhAwNAIAMoAgBB/////wdxviI3IDZeIQUgNyA2IAUbITYgAiAJIAUbIQkgA0EEaiEDIB4gAkEBaiICRw0ACwsgBiAJaiIfIAdPDQEgBkEBaiEkIBIgHWohAyAMIBJqISYgEiAraiEOIBIgFWohBSAXQQRqIScgKkEBaiECIBIgHGohCyAIIBJqISUgEiApaiEPIBIgFGohECAeQQFrIR4gEiAWaiEWIApBAWohKCANIB8gLGpBAnRqKgIAIjZDAAAAAFsNAAsgCUUEQCAGQX9zIgMgEWohBSADIAdqIgsEQEMAAIA/IDaVITYgC0EDcSEDQQAhAiAaIAQgCmoiD2tBA08EQEEAIBkgBGsgCmtBfHFrIRADQCAUIDYgFCoCAJQ4AgAgFEEEaiIMIDYgDCoCAJQ4AgAgFEEIaiIMIDYgDCoCAJQ4AgAgFEEMaiIMIDYgDCoCAJQ4AgAgFEEQaiEUIBAgAkEEayICRw0AC0EAIAJrIQILIAMEQCApIAJBAnRqIQIgISAEayAKa0EDcSEDA0AgAiA2IAIqAgCUOAIAIAJBBGohAiADQQFrIgMNAAsLIAVFDQUgDSAGICNsQQJ0aiIDQQRqIRAgAyAbaiIMQQRqIRYgC0EBcSELQQAhDkEAIBkgBGsgCmtBfnFrIR0DQCAHIA5sQQJ0IgQgDGoqAgAhNkEAIQIgDyAaRwRAQQAhCSAcIQMgCCECA0AgAiACKgIAIDYgAyoCAJSTOAIAIAJBBGoiBiAGKgIAIDYgA0EEaioCAJSTOAIAIANBCGohAyACQQhqIQIgHSAJQQJrIglHDQALQQAgCWshAgsgCwRAIAJBAnQiAyAEIBZqaiICIAIqAgAgNiADIBBqKgIAlJM4AgALIAggG2ohCCAFIA5BAWoiDkcNAAsMBQsgBUUNBCAFQQdxIQNBACECIDAgBCAKamtBB0kNAyAvIARrIAprQXhxIQUDQCAFIAJBCGoiAkcNAAsMAwsgEyAYSwRAIBNBAUciA0EBIBgbBEAgICAYQQAgAxtBA3RqIgMgBjYCACADQQRqIB82AgAgBiARTQRAIAYgB0kEQAJAIAZFDQBBACEDQQEgBGsgCkcEQCANIARBAnRqIgUgCUECdGohCyAGQX5xIQ8gDSAEIAdqQQJ0aiEQIA0gCSAqakECdGohAgNAIAUgF2oiCCoCACE3IAggCyAXaiIIKAIANgIAIAggNzgCACAQIBdqIggqAgAhNyAIIAIoAgA2AgAgAiA3OAIAIBcgImohFyACICJqIQIgDyADQQJqIgNHDQALCyAGQQFxRQ0AIA0gAyAHbCIDIAZqQQJ0aiICKgIAITcgAiANIAMgH2pBAnRqIgMoAgA2AgAgAyA3OAIACyAJIC1JBEBDAACAPyA2lSE2IA0gBiAjbEECdGoiBSoCACE3IAUgBSAJQQJ0aiIDKAIANgIAIAMgNzgCACAtQQFrIg9BA3EhA0EAIQIgGiAEIApqIhBrQQNPBEBBACAZIARrIAprQXxxayELA0AgFSA2IBUqAgCUOAIAIBVBBGoiCCA2IAgqAgCUOAIAIBVBCGoiCCA2IAgqAgCUOAIAIBVBDGoiCCA2IAgqAgCUOAIAIBVBEGohFSALIAJBBGsiAkcNAAtBACACayECCyARIAZBf3NqIQsgAwRAICsgAkECdGohAiAhIARrIAprQQNxIQMDQCACIDYgAioCAJQ4AgAgAkEEaiECIANBAWsiAw0ACwsgGEEBaiEYIAtFDQggBUEEaiEIIAUgG2oiFkEEaiEFIA9BAXEhDyAJQQFrIRxBACEOQQAgGSAEayAKa0F+cWshBANAIAcgDmwiA0ECdCIGIBZqIgIqAgAhNyACIAUgAyAcakECdGoiAyoCACI2OAIAIAMgNzgCAEEAIQIgECAaRwRAQQAhCSAdIQMgDCECA0AgAiACKgIAIDYgAyoCAJSTOAIAIAJBBGoiCiAKKgIAIDYgA0EEaioCAJSTOAIAIANBCGohAyACQQhqIQIgBCAJQQJrIglHDQALQQAgCWshAgsgDwRAIAJBAnQiAyAFIAZqaiICIAIqAgAgNiADIAhqKgIAlJM4AgALIAwgG2ohDCALIA5BAWoiDkcNAAsMCAtBnIvBAEEpQciLwQAQuwsAC0GFjcEAQT5BxI3BABCqCgALQab+wABBHUHA/8AAELsLAAtBwIXBAEEbQaCQwQAQuwsAC0HwjsEAQShBkJDBABC7CwALQcCFwQBBG0GUksEAELsLAAtBpv7AAEEdQcD/wAAQuwsACyADRQ0AIC4gBGsgCmtBB3EhAwNAIAJBAWohAiADQQFrIgMNAAsMAAsACxDbCgALIABBBDYCFCAAIAEpAgA3AgAgAEEYakIANwIAIABBIGpCADcCACAAQRBqIAFBEGooAgA2AgAgAEEIaiABQQhqKQIANwIAC5sYAg5/Cn0jAEFAaiIDJAAgAEHcAGooAgAhBiAAKAJUIQkgAEE4akEANgIAIABBIGpBADYCACADQQE6AAsgBkEMbCEIAkACQAJAAkACQAJAAkACQAJAAkACQCAGRQRAIANBADYCFCADQgQ3AgwgA0EANgIgIANCBDcCGEEEIQIMAQtBkfvDAC0AABogBkECdCICQQQQggwiBUUNASADQQA2AhQgAyAFNgIMIAMgBjYCECAGQdWq1SpLDQIgBkEYbCIFQQBIDQICQCAFRQRAQQQhAgwBC0GR+8MALQAAGiAFQQQQggwiAkUNBAsgAiEBAkAgBkECSQ0AIAZBAWsiBUEDcSEEIAZBAmtBA08EQCAFQXxxIQUDQCABQv////v///+/fzcCECABQv////v3//+/fzcCCCABQv////v3//+//wA3AgAgAUHYAGpC////+////79/NwIAIAFB0ABqQv////v3//+/fzcCACABQcgAakL////79///v/8ANwIAIAFBQGtC////+////79/NwIAIAFBOGpC////+/f//79/NwIAIAFBMGpC////+/f//7//ADcCACABQShqQv////v///+/fzcCACABQSBqQv////v3//+/fzcCACABQRhqQv////v3//+//wA3AgAgAUHgAGohASAFQQRrIgUNAAsLIARFDQADQCABQv////v///+/fzcCECABQv////v3//+/fzcCCCABQv////v3//+//wA3AgAgAUEYaiEBIARBAWsiBA0ACwsgAUH////7BzYCCCABQv////v3//+//wA3AgAgAUH///97NgIUIAFC////+////79/NwIMIAMgBjYCICADIAY2AhwgAyACNgIYQZH7wwAtAAAaIAhBBBCCDCICRQ0EIAIhAQJ/QQEgBkECSQ0AGiAGQQFrIgVBA3EhBCAGQQJrQQNPBEAgBUF8cSEFA0AgAUJ/NwIIIAFBADoABCABQX82AgAgAUEsakF/NgIAIAFBKGpBADoAACABQSBqQn83AgAgAUEcakEAOgAAIAFBFGpCfzcCACABQRBqQQA6AAAgAUEwaiEBIAVBBGsiBQ0ACwsgBiAERQ0AGgNAIAFBfzYCCCABQQA6AAQgAUF/NgIAIAFBDGohASAEQQFrIgQNAAsgBgshBSABQX82AgggAUEAOgAEIAFBfzYCAAsgAEFAaygCAARAIAAoAjwQmgILIAAgBTYCRCAAIAY2AkAgACACNgI8IAYEQCAIIAlqIQwgAEE8aiENQQAhBANAIAkoAgAiASAAKAJQIgJPDQYgCSgCBCIIIAJPDQcgCSgCCCIHIAJPDQggBEEBaiEGIAAoAkgiAiABQQxsaiIBKgIEIRQgAiAHQQxsaiIHKgIAIRIgAiAIQQxsaiICKgIAIRUgAioCCCEQIAEqAgghFiAHKgIIIQ8gAioCBCEXIAcqAgQhEyABKgIAIRggBCAFTwRAIAYgBSICayEIIAggACgCQCACa0sEQCANIAUgCBCLBiAAKAJEIQILIAAoAjwgAkEMbGohASAIQQJPBEAgBCAFayIHQQNxIQogBCAFQX9zakEDTwRAIAdBfHEhBwNAIAFCfzcCCCABQQA6AAQgAUF/NgIAIAFBLGpBfzYCACABQShqQQA6AAAgAUEgakJ/NwIAIAFBHGpBADoAACABQRRqQn83AgAgAUEQakEAOgAAIAFBMGohASAHQQRrIgcNAAsLIAoEQCALIAVrQQNxIQcDQCABQX82AgggAUEAOgAEIAFBfzYCACABQQxqIQEgB0EBayIHDQALCyACIAhqQQFrIQILIAFBfzYCCCABQQA6AAQgAUF/NgIAIAAgAkEBaiIFNgJEIAMgAygCICIIIARNBH8gBiAIIgJrIQogCiADKAIcIAJrSwRAIANBGGogCCAKEJ0GIAMoAiAhAgsgAygCGCACQRhsaiEBIApBAk8EQCAEIAhrIgdBA3EhDiAEIAhBf3NqQQNPBEAgB0F8cSEHA0AgAUL////7////v383AhAgAUL////79///v383AgggAUL////79///v/8ANwIAIAFB2ABqQv////v///+/fzcCACABQdAAakL////79///v383AgAgAUHIAGpC////+/f//7//ADcCACABQUBrQv////v///+/fzcCACABQThqQv////v3//+/fzcCACABQTBqQv////v3//+//wA3AgAgAUEoakL////7////v383AgAgAUEgakL////79///v383AgAgAUEYakL////79///v/8ANwIAIAFB4ABqIQEgB0EEayIHDQALCyAOBEAgCyAIa0EDcSEHA0AgAUL////7////v383AhAgAUL////79///v383AgggAUL////79///v/8ANwIAIAFBGGohASAHQQFrIgcNAAsLIAIgCmpBAWshAgsgAUL////7////v383AhAgAUL////79///v383AgggAUL////79///v/8ANwIAIAJBAWoFIAYLNgIgCyAEIAVPDQkgACgCPCAEQQxsaiAENgIIIAMoAiAiAiAETQ0KIAMoAhggBEEYbGoiAiAPIA8gECAQIBYgECAWXiIBGyAWIBZcGyIRIA8gEV4bIBEgEVwbOAIUIAIgEyATIBcgFyAUIBQgF10iCBsgFCAUXBsiESARIBNdGyARIBFcGzgCECACIBIgEiAVIBUgGCAVIBheIgcbIBggGFwbIhEgESASXRsgESARXBs4AgwgAiAWIBYgECABGyAQIBBcGyIQIBAgDyAPIBBeGyAPIA9cGzgCCCACIBQgFCAXIAgbIBcgF1wbIg8gDyATIA8gE10bIBMgE1wbOAIEIAIgGCAYIBUgBxsgFSAVXBsiDyAPIBIgDyASXRsgEiASXBs4AgAgAygCFCIBIAMoAhBGBEAgA0EMaiABEKgGIAMoAhQhAQsgAygCDCABQQJ0aiAENgIAIAMgAUEBajYCFCALQQFqIQsgBiEEIAwgCUEMaiIJRw0ACwsgAEEYaiEFIAAoAiAiBCAAQRxqKAIARgRAIAUgBBCvBiAAKAIgIQQLIAAoAhggBEEHdGoiAkKBgICAcDcDYCACQQA6AHggAkEAOgB0IAJBfzYCcCACQv////v///+/fzcDWCACQv////v///+/fzcDUCACQv////v///+/fzcDSCACQv////v///+/fzcDQCACQv////v///+/fzcDOCACQv////v///+/fzcDMCACQv////v3//+//wA3AyggAkL////79///v/8ANwMgIAJC////+/f//7//ADcDGCACQv////v3//+//wA3AxAgAkL////79///v/8ANwMIIAJC////+/f//7//ADcDACACQegAakJ/NwMAIAAgBEEBajYCICADQSRqIAAgA0ELaiADKAIMIgIgAygCFCADQRhqQQBBABBEIANBLGoqAgAhEiADQTBqKgIAIQ8gA0E0aioCACETIANBOGoqAgAhFCADKgIoIRUgACADQTxqKgIAIhA4AhQgACAUOAIQIAAgEzgCDCAAIA84AgggACASOAIEIAAgFTgCACAAKAIgRQ0JIAUoAgAiAEH///97NgJcIABC////+////79/NwJUIAAgEDgCUCAAQf///3s2AkwgAEL////7////v383AkQgACAUOAJAIABB////ezYCPCAAQv////v///+/fzcCNCAAIBM4AjAgAEH////7BzYCLCAAQv////v3//+//wA3AiQgACAPOAIgIABB////+wc2AhwgAEL////79///v/8ANwIUIAAgEjgCECAAQf////sHNgIMIABC////+/f//7//ADcCBCAAIBU4AgAgAygCHARAIAMoAhgQmgILIAMoAhAEQCACEJoCCyADQUBrJAAPC0EEIAJB0IHEACgCACIA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ACAFQZACaiQAC4MgAxJ/AX4GfSMAQdAAayIJJAAgCUEIaiAAQQRqIAEQhQQCQAJAAkACQAJAAkACQAJAAkAgCSgCCEUEQCAJQRBqKAIAQQRrKAIAIgAgCSgCDCIBQRhqKAIAIgJPDQEgASgCECAAQRRsaigCECEIDAcLIAlBKGogCUEIaiIGQRRqKAIANgIAIAkgCUEUaikCADcDICAAKgIAIhcgASgCCLKUIRggFyAYkiEZIBcgFyABKAIEspQiGpIhGyAXIBcgASgCALKUIheSIRwgBkEIaigCACEQIAkoAgwhBgJAIAMoAggiAQRAIAMgAUEBayIBNgIIIAMoAgAgAUECdGooAgAiAUEANgIIIAFBFGpBADYCACABKAIEIgVFBEAgAUEAEKsGIAEoAgQhBSABKAIIIQgLIAEgCEEBaiIDNgIIIAEoAgAiBCAIQQN0akL///97NwIAIAMgBUYEQCABIAUQqwYgASgCACEEIAEoAgghAwsgASAcOAIcIAEgFzgCGEEAIQggAUE0akEANgIAIAEgA0EBajYCCCABQShqQQA2AgAgBCADQQN0akL////79/////8ANwIAIAFBIGohByABQSRqKAIAIgVFBEAgB0EAEKsGIAEoAiQhBSABKAIoIQgLIAEgCEEBaiIDNgIoIAEoAiAiBCAIQQN0akL///97NwIAIAMgBUYEQCAHIAUQqwYgASgCICEEIAEoAighAwtBACEIIAFB1ABqQQA2AgAgAUE8aiAbOAIAIAFBOGogGjgCACABIANBAWo2AiggAUHIAGpBADYCACAEIANBA3RqQv////v3/////wA3AgAgAUFAayEHIAFBxABqKAIAIgVFBEAgB0EAEKsGIAEoAkQhBSABKAJIIQgLIAEgCEEBaiIDNgJIIAEoAkAiBCAIQQN0akL///97NwIAIAMgBUYEQCAHIAUQqwYgASgCQCEEIAEoAkghAwsgAUEAOgCQASABQdwAaiAZOAIAIAFB2ABqIBg4AgAgASADQQFqNgJIIAQgA0EDdGpC////+/f/////ADcCACABQeQAaigCAARAIAEoAmAQmgILIAFBADoAkQEgAUF/NgJwIAFCBDcCYCABQYwBakEANgIAIAFB6ABqQgA3AgAgASgCdA0DIAFBgAFqKAIARQ0BQcj5wQBBKkH4+sEAEKoKAAsgFyAc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KQIANwLcAiASIAlB5ABqKQIANwL0AgsgEkHIAGoiCUE4aiASQcACaiITQThqKQMANwMAIAlBMGogE0EwaikDADcDACAJQShqIBNBKGopAwA3AwAgCUEgaiATQSBqKQMANwMAIAlBGGogE0EYaikDADcDACAJQRBqIBNBEGopAwA3AwAgCUEIaiATQQhqKQMANwMAIBIgEikDwAI3A0gLAkACQAJAIAoEQCAKQdgCai0AAA0BIBJBwAJqIApBPGoQ8ggMAgsgEkGIAWoiCUE4aiASQQhqIgpBOGopAgA3AwAgCUEwaiAKQTBqKQIANwMAIAlBKGogCkEoaikCADcDACAJQSBqIApBIGopAgA3AwAgCUEYaiAKQRhqKQIANwMAIAlBEGogCkEQaikCADcDACAJQQhqIApBCGopAgA3AwAgEiASKQIINwOIAQwCCyASQdgCaiAKQThqKAIANgIAIBJB0AJqIApBMGopAgA3AwAgEkHIAmogCkEoaikCADcDACASQeQCaiAKQcABaigCADYCACASQfACaiAKQeAAaigCADYCACASQfwCaiAKQewAaigCADYCACASIAopAiA3A8ACIBIgCikCWDcD6AIgEiAKQbgBaikCADcC3AIgEiAKQeQAaikCADcC9AILIBJBiAFqIglBOGogEkHAAmoiCkE4aikDADcDACAJQTBqIApBMGopAwA3AwAgCUEoaiAKQShqKQMANwMAIAlBIGogCkEgaikDADcDACAJQRhqIApBGGopAwA3AwAgCUEQaiAKQRBqKQMANwMAIAlBCGogCkEIaikDADcDACASIBIpA8ACNwOIAQsgC0EBRgRAIBJByABqIAwQ8gcLIA1BAUYEQCASQYgBaiAOEPIHCyASQcACaiIJQQhqIAdBDEH0ACAHKAIAIg0baiIKQQhqKQIANwMAIAlBEGogCkEQaikCADcDACAJQRhqIApBGGooAgA2AgAgEiAKKQIANwPAAiASQcgBaiITIBJByABqIAkQggIgEkGIAmoiCkEIaiAIQQxB9AAgCCgCACIZG2oiC0EIaikCADcDACAKQRBqIAtBEGopAgA3AwAgCkEYaiALQRhqKAIANgIAIBIgCykCADcDiAIgCSASQYgBaiAKEIICIAogASATIBcgFSAJIBggFiAPIBAgFCACKAIgESsAIBItALwCQQZx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aiAAQSxqKAIANgIAIAYgAEEkaikCADcCAAsCQCAHIABBzABqKAIARw0AIAIoAiAgAEHQAGooAgBHDQAgBkEIaiAAQdwAaigCADYCACAGIABB1ABqKQIANwIACyALIABB4ABqIgBHDQALCyAJIAJBMGoiAkcNAAsLIBIEQCADEJoCCyAIQZABaiQAC+UNAgl/A34jAEHgBWsiAyQAIANBxAVqIgRBDGoiBUIANwIAIANCADcCyAUgA0EENgLEBSADQdwAaiAEEGMgBUIANwIAIANCADcCyAUgA0EENgLEBSADQZgBaiAEEGMgA0FAayIKQgA3AgAgA0E4akKAgICAwAA3AgAgA0EwakIANwIAIANBKGpCgICAgMAANwIAIANBIGpCADcCACADQRhqIgtCgICAgMAANwIAIANBEGpCADcCACADQcwAakIANwIAIANB1ABqQgA3AgAgA0GQAWpCADcCACADQYgBakIANwIAIANBgAJqQQA2AgAgA0HIAWpCgICAgMAANwIAIANB0AFqQgA3AgAgA0HYAWpCgICAgMAANwIAIANB4AFqQgA3AgAgA0HwAWpCgICAgMAANwIAIANB+AFqQgA3AgAgA0EENgJIIANCgICAgMAANwIIIANCCDcCACADQQQ2AoQBIANCADcChAIgA0EBOgCMAiADQgQ3AsABIANCBDcC6AEgBEELakIANwAAIANBkAJqIgVBmAFqQgA3AwAgA0GwA2pCADcDACAFQcABakIANwMAIANBsQVqIgdBC2pCADcAACADQZ4FaiIIQQtqQgA3AAAgA0GLBWoiBkELakIANwAAIANB+ARqIglBC2pCADcAACADQgA3A6ADIANCADcDyAMgA0IANwDHBSADQgA3ALQFIANCADcAoQUgA0IANwCOBSADQgA3APsEIAVB4AFqIARBD2ooAAA2AAAgA0HpA2ogBEEIaikAADcAACADIAMpAMQFNwDhAyADQYUEaiAHQQhqKQAANwAAIANBjARqIAdBD2ooAAA2AAAgAyADKQCxBTcA/QMgA0GoBGogCEEPaigAADYAACADQaEEaiAIQQhqKQAANwAAIAMgAykAngU3AJkEIANBxARqIAZBD2ooAAA2AAAgA0G9BGogBkEIaikAADcAACADIAMpAIsFNwC1BCADQeAEaiAJQQ9qKAAANgAAIANB2QRqIAlBCGopAAA3AAAgAyADKQD4BDcA0QQgA0G0AmpBADYCACADQgA3AqwCIAVBMGpCADcDACADQgA3A7gCIANB////+wc2AogDIANCgICAgPD//79/NwOAAyADQv////v///+//wA3A/gCIANC////+wc3A/ACIANCgICAgPD//79/NwPoAiADQv////v///+//wA3A+ACIANC////+wc3A9gCIANCgICAgPD//79/NwPQAiADQv////v///+//wA3A8gCIANBADYCqAIgA0IANwOgAiADQoCAgICAgIDAPzcDmAIgA0IANwOQAiADQZQDakIANwIAIANCADcCjAMgA0GAAjsB9AQgA0EANgLwBCADQQA6AOwEIANC////+wc3AuQEIANBADoA0AQgA0L////7BzcDyAQgA0EAOgC0BCADQv////sHNwKsBCADQQA6AJgEIANC////+wc3A5AEIANBADoA/AMgA0L////7BzcC9AMgA0EAOgDgAyADQv////sHNwPYAyADQgA3A8ADIANCgICA/AM3A7gDIANBgICA/AM2ApwDIAMoAgghByADQQxqIAsoAgAiCEEGaiIEEPQCIANBHGogBBD0AiADQSxqIAQQ9AIgA0HEAGooAgAiBSAKKAIARgRAIANBPGogBUEBEJwGIAMoAkQhBQsgAygCPCAFQQR0aiIGQgA3AgggBkIENwIAIAMgBUEBajYCRCADIAMoAoQCQQZqIgY2AoQCAkAgAygCKCAETwRAIANBwAFqIQkgAygCHCAIQQJ0aiIEQRRqQc2Zs+4DNgIAIARBDGpCzZmz7tOZs+Y9NwIAIANBxAVqIANBkAJqEMoBIAMoAggiBSADKAIERgRAIAMgBRCxBiADKAKEAiEGIAMoAgghBQsgAygCACAFQegDbGoiBEIANwMIIAQgAjYCBCAEIAE2AgAgBEEQakIANwMAIARBGGpCADcDACAEQSBqIANBkAJqQegCEIgNGiAEQQA2ApADIAQgCDYCjAMgBCAHNgKIAyAEQdwDakIANwIAIARB1ANqQgA3AgAgBEIANwLMAyAEIAMpAsQFIgw3ApQDIARBnANqIANBzAVqKQIAIg03AgAgBEGkA2ogA0HEBWoiAUEQaikCACIONwIAIARBrANqIAFBGGooAgAiATYCACAEIAw3ArADIARBuANqIA03AgAg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AgUgAyACQQQQyAYgAygCCAsiBEEEaiICNgIIIAMoAgAgBGogBjYAACAFQQRrIgUNAAsLIAFBxABqKAIAIQIgASgCPCEHIAAoAgAiAygCCCEEIAMoAgQgBGtBB00EQCADIARBCBDIBiADKAIIIQQLIAMgBEEIaiIANgIIIAMoAgAgBGogAq03AABBACEEIAJFDQAgByACQQxsaiEGA0AgBy0ABCECIAcoAgAhASADKAIEIABrQQNNBEAgAyAAQQQQyAYgAygCCCEACyADKAIAIABqIAE2AAAgAyAAQQRqIgA2AgggACADKAIERgRAIAMgAEEBEMgGIAMoAgghAAsgAygCACAAaiACOgAAIAMgAEEBaiICNgIIIAdBCGooAgAhASADKAIEIAJrQQNNBEAgAyACQQQQyAYgAygCCCECCyADIAJBBGoiADYCCCADKAIAIAJqIAE2AAAgBiAHQQxqIgdHDQALCyAIQeAAaiQAIAQL/AoCDX8FfSMAQYACayIEJAACfQJAIAAoAkQiBQRAIAUoAgAiCEECRw0BC0EAIQggBEEgakEANgIAIARBGGpCADcDACAEQRBqQgA3AwAgBEIANwMIQwAAgD8hFEMAAAAADAELIARBEGogBUEcaikCADcDACAEQRhqIAVBJGopAgA3AwAgBEEgaiAFQSxqKAIANgIAIAQgBSkCFDcDCCAFKgIIIRUgBSoCDCETIAUqAhAhFCAFKgIECyERIABCADcCGCAAQShqQgA3AgAgAEEgakKAgICAgICAwD83AgAgAEEwakIANwIAIABBOGpCADcCACAAQUBrQQA2AgAgAEEYaiEHAkAgAigCCCIGRQ0AIAIoAgAiBSAGQQN0aiEJIAEoAggiDARAIARBKGoiBkEIaiEKIARBiAFqIQIgASgCECENIAZBIGohDiAGQRhqIQ8gBkEQaiEQA0ACQCAFKAIAIgEgDU8NACAMIAFBqAFsaiIBKAIARQ0AIAEoAgQgBUEEaigCAEcNACABQeoAai0AAA0AIAEoAghFDQAgDiABQSxqKAIANgIAIA8gAUEkaikCADcDACAQIAFBHGopAgA3AwAgCiABQRRqKQIANwMAIAQgAUEMaikCADcDKCABQThqKAIAIAFBPGooAgAiBigCCEEBa0F4cWpBCGohCwJAAkACQAJAAkAgAUEwaigCAEEBaw4CAgABCyAEQfgAaiIGQQhqIAFBNGooAgAiAUEIaikCADcDACACIAFBEGopAgA3AwAgBkEYaiABQRhqKQIANwMAIAZBIGogAUEgaikCADcDACAGQShqIAFBKGooAgA2AgAgBCABKQIANwN4DAMLIAFBNGoqAgAiEkMAAAAAWwRADAILIARB+ABqIAsgEiAGKAKQARENAAwCCyABQTRqKgIAIhJDAAAAAFsEQAwBCyAEQdQBaiIBIAtDAACAPyAGKAKQARENACABIBIQzwggBEH4AGoiBkEoaiABQShqKAIANgIAIAZBIGogAUEgaikCADcDACAGQRhqIAFBGGopAgA3AwAgAiABQRBqKQIANwMAIAZBCGogAUEIaikCADcDACAEIAQpAtQBNwN4DAELIAJCADcCACACQQhqQgA3AgAgAkEQakIANwIAIAJBGGpBADYCACAEQgA3A3ggBEKAgICAgICAwD83A4ABCyAEQcwAaiIBIARB+ABqIAoQ4QMgByABELsHCyAJIAVBCGoiBUcNAAsMAQsgBkEBa0H/////AXEhASAGQQdxIgIEQANAIAVBCGohBSACQQFrIgINAAsLIAFBB0kNAANAIAkgBUFAayIFRw0ACwsCQCAIRQRAIARBqAFqIgFBGGogBEEQaikDADcCACAEQcgBaiAEQRhqKQMANwIAIARB0AFqIARBIGooAgA2AgAgBCAUOAK0ASAEIBM4ArABIAQgFTgCrAEgBCAROAKoASAEIAQpAwg3ArgBIAcgARC7BwwBCyAHIBFDAAAAAEMAAIA/IAAqAjQiEZUgEUMAAAAAWxuSEM8ICyAEQdQBaiIBIAcgAxD9BSAAQdAAaiABQQhqIgIoAgA2AgAgACAEKQLUATcCSCAAQdwAaiAAKgI0IhE4AgAgAEHYAGogETgCACAAIBE4AlQgASAHIAMQxQIgAEEQaiABQRBqKQIANwIAIABBCGogAikCADcCACAAIAQpAtQBNwIAIAAtAGAiAUEBcQRAIABBADYCVAsgAUECcQRAIABBADYCWAsgAUEEcQRAIABBADYCXAsgAUEIcQRAIABBADYCCCAAQgA3AgALIAFBEHEEQCAAQQA2AgQgAEIANwIMCyABQSBxBEAgAEEANgIIIABCADcCEAsgBEGAAmokAAvcCwIJfwF+IwBBIGsiBSQAIAAtAAAhAiAA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OAIgIB4gDzgCHCAeIAo4AhggHiAFOAIUIB4gCDgCECAeIAY4AgwgAiAeQQxqELACGiAeIAIQPyACKAK8AUEDRwRAIA4hBiABQQFrIgENAQwDCwsgB0MAAKC1Xw0BCyAAQRBqIA04AgAgAEEMaiAJOAIAIABBCGogDDgCACAAIBogEZU4AgRBASEDCyAAIAM2AgAMAgtB+LjCAEEoQbC5wgAQqgoACyAAQQA2AgALIB5BMGokAAvXCgIWfwJ9IwBBoAJrIgMkAAJAIAEgAnJBAEgNACADIAAoAgAgASACEKkCIANByAFqIgFBCGoiBCADQQxqKQIANwMAIAFBEGoiCSADQRRqKQIANwMAIAFBGGoiCiADQRxqKQIANwMAIAFBIGoiCyADQSRqKAIANgIAIANB0ABqIgFBCGoiAiADQTRqKQIANwMAIAFBEGoiBSADQTxqKQIANwMAIAFBGGoiBiADQcQAaikCADcDACABQSBqIgcgA0HMAGooAgA2AgAgAyADKQIENwPIASADIANBLGopAgA3A1AgAygCKCETIAMoAgAhFCADQaABaiIBQQhqIhUgBCkDADcDACABQRBqIhYgCSkDADcDACABQRhqIhcgCikDADcDACABQSBqIhggCygCADYCACADQfgAaiIBQQhqIAIpAwA3AwAgAUEQaiAFKQMANwMAIAFBGGogBikDADcDACABQSBqIAcoAgA2AgAgAyADKQPIATcDoAEgAyADKQNQNwN4IAAoAiAiBUE1aiEGIAVBBGohASAAQRRqKAIAIQwgA0E1aiEHIANBBGohAiAAKAIcIQ0gACgCGCEOIAAoAhAhDyAAKAIMIRAgACgCCCERIAAoAgQhEgJAAkACQCAUQQFrDgIAAwELIAsgGCgCADYCACAKIBcpAwA3AwAgCSAWKQMANwMAIAQgFSkDADcDACADIAMpA6ABNwPIASADIBIgESAQIANByAFqQajJwgAgDyAMIA4qAgAgDS0AABBGIAMtADQiBEEFRg0BIANB8AFqIgBBCGogAkEIaikCADcDACAAQRBqIAJBEGopAgA3AwAgAEEYaiACQRhqKQIANwMAIABBIGogAkEgaikCADcDACAAQShqIAJBKGopAgA3AwAgA0HuAWogB0ECai0AADoAACADIAIpAgA3A/ABIAMgBy8AADsB7AEgBEEERg0AIAMqAgAhGUP//39/IRogBS0ANEEERwR9IAUqAgAFQ///f38LIBleRQ0AIAUgGTgCACABIAMpA/ABNwIAIAUgBDoANCAGIAMvAewBOwAAIAFBCGogA0HwAWoiAEEIaikDADcCACABQRBqIABBEGopAwA3AgAgAUEYaiAAQRhqKQMANwIAIAFBIGogAEEgaikDADcCACABQShqIABBKGopAwA3AgAgBkECaiADQe4Bai0AADoAAAsgE0EBRw0BIANByAFqIgBBIGogA0H4AGoiBEEgaigCADYCACAAQRhqIARBGGopAwA3AwAgAEEQaiAEQRBqKQMANwMAIABBCGogBEEIaikDADcDACADIAMpA3g3A8gBIAMgEiARIBAgAEGoycIAIA8gDCAOKgIAIA0tAAAQRiADLQA0IgRBBUYNACADQfABaiIAQQhqIAJBCGopAgA3AwAgAEEQaiACQRBqKQIANwMAIABBGGogAkEYaikCADcDACAAQSBqIAJBIGopAgA3AwAgAEEoaiACQShqKQIANwMAIANB7gFqIAdBAmotAAA6AAAgAyACKQIANwPwASADIAcvAAA7AewBIARBBEYNASADKgIAIRlD//9/fyEaIAUtADRBBEcEfSAFKgIABUP//39/CyAZXkUNASAFIBk4AgAgASADKQPwATcCACAFIAQ6ADQgBiADLwHsATsAACABQQhqIANB8AFqIgBBCGopAwA3AgAgAUEQaiAAQRBqKQMANwIAIAFBGGogAEEYaikDADcCACABQSBqIABBIGopAwA3AgAgAUEoaiAAQShqKQMANwIAIAZBAmogA0HuAWotAAA6AAAMAQtBASEICyADQaACaiQAIAgL/QkBMH8gALwiAUGAgID8B3FBgICA/AdGBEAgACAAlCAAkg8LIAFBAEwEQCABQf////8HcQR9IAAgAJMiACAAlQUgAAsPC0EJIAFnIgNrIAFBF3YgAUGAgIAESSICG0H/AGshGEGAgIAQQYCAgBggASADQQhrQQAgAht0Qf///wNxQYCAgARyIBhBAXF0IgJBgICACUkiGxsiA0GAgIACciEBIAMgA0GAgIAEciACQQJ0QQBBgICAbCAbG2pBAXRBgICAIGsiHCABSCIEGyICQYCAgAFyIQMgAiACQYCAgAJyIBxBACABIAQba0EBdCIdIANIIgUbIgRB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/wFLDQMgBkECdCICQQBIDQNBACACRQ0AGkGR+8MALQAAGiACQQQQggwiFkUNBiACCyEEIBYgCyAEEIgNGiABQagBaigCACEHAkAgAUGwAWooAgAiBEUNACAEQf////8BSw0DIARBAnQiAkEASA0DIAJFDQBBkfvDAC0AABogAkEEEIIMIhVFDQYgAiEMCyAVIAcgDBCIDRogAUG0AWooAgAhGUEEIQxBACEHAkAgAUG8AWooAgAiC0UNACALQf////8BSw0DIAtBAnQiAkEASA0DIAJFDQBBkfvDAC0AABogAkEEEIIMIgxFDQYgAiEHCyAMIBkgBxCIDRoLIAEtAMABIQcgESARQcgAakHIABCIDSECQZH7wwAtAAAaQcQBQQQQggwiAUUNAiABIAJByAAQiA0iASAHOgDAASABIAs2ArwBIAEgCzYCuAEgASAMNgK0ASABIAQ2ArABIAEgBDYCrAEgASAVNgKoASABIAY2AqQBIAEgBjYCoAEgASAWNgKcASABIAo2ApgBIAEgCjYClAEgASAQNgKQASABIAU2AowBIAEgBTYCiAEgASAUNgKEASABIAM2AoABIAEgAzYCfCABIA82AnggASAINgJ0IAEgCDYCcCABIBI2AmwgASAJNgJoIAEgCTYCZCABIBM2AmAgASAONgJcIAEgDjYCWCABIBg2AlQgASANNgJQIAEgDTYCTCABIBc2AkggAEHQ38IANgIEIAAgATYCACACQZABaiQADwtBBCAEQdCBxAAoAgAiAEGXByAAGxEAAAALENsKAAtBBEHEAUHQgcQAKAIAIgBBlwcgABsRAAAAC0EEIANB0IHEACgCACIAQZcHIAAbEQAAAAtBBCACQdCBxAAoAgAiAEGXByAAGxEAAAAL3goCFn0FfyMAQTBrIhskAEMAAKA1EJsBIRoCQAJAIAMqAgwiByAHlCADQRBqKgIAIgggCJSSIANBFGoqAgAiCSAJlJIQmwEiEEMAAAAAWw0AIBCLIgVDAACAf1wEQCAFQwAAADRfDQEgBSAFQwAAADSUXw0BCyADKgIAIREgAyoCBCESIAMqAgghEyAJIBCVIhUgFZQgByAQlSIWIBaUIAggEJUiFyAXlJKSEJsBIQUgAkEANgK8ASACQQA2AqwBIAJBMGpBADYCACACQShqQgA3AgAgAkEkaiAVjCIJIAWV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ADcCACAAQRxqIApBIGopAwA3AgAgAEEkaiAKQShqKQMANwIAIABBLGogCkEwaikDADcCACAAQTRqIApBOGooAgA2AgAgAEE7aiAKQQZqLQAAOgAACyAKQfABaiQAIAAPCxD4DAALEPkMAAtBBEE8QdCBxAAoAgAiAEGXByAAGxEAAAALmgoCCX8JfSMAQdAAayIDJABDAACAPyACQQIgAioCBIsiDSACKgIAiyIQXiIEIAIqAgiLIA0gECAEG14bIgtBAnRqKgIAmCEMIAEqAgghDiABKgIEIQ8gASoCACENAn8CQAJAAkACQAJAAkACQCALDgMBAgMAC0HwpcIAQShB4MzCABCqCgALIANBGGpCjoCAgKABNwMAIANCiICAgMABNwMQIANChoCAgCA3AwggA0KAgICAwAA3AwAgDEMAAADDYCECQf8AAn8gDItDAAAAT10EQCAMqAwBC0GAgICAeAtBgH8gAhsgDEMAAP5CXhtBACAMIAxbG0EBasBBAm0iAcAhAiABQf8BcUECSQ0CIAJBAkGwzMIAEOMIAAsgA0EYakKOgICA4AA3AwAgA0KEgICAwAE3AxAgA0KKgICAIDcDCCADQoCAgICAATcDACAMQwAAAMNgIQJB/wACfyAMi0MAAABPXQRAIAyoDAELQYCAgIB4C0GAfyACGyAMQwAA/kJeG0EAIAwgDFsbQQFqwEECbSIBwCECIAFB/wFxQQJJDQIgAkECQcDMwgAQ4wgACyADQRhqQo6AgICgATcDACADQoKAgIDgADcDECADQoyAgICAATcDCCADQoCAgIDAADcDACAMQwAAAMNgIQJB/wACfyAMi0MAAABPXQRAIAyoDAELQYCAgIB4C0GAfyACGyAMQwAA/kJeG0EAIAwgDFsbQQFqwEECbSIBwCECIAFB/wFxQQJJDQIgAkECQdDMwgAQ4wgACyADIAJBBHRqIgEoAgwhBCABKAIIIQUgASgCBCEGIAEoAgAhByADQRhqQv2BgIDAHTcDACADQvSBgIDgHzcDECADQtmBgICAGTcDCCADQtCBgICgGzcDACABKAIMIQggASgCCCEJIAEoAgQhCiAPjCERIA6MIRIgDSAMlCINIRMgDSIQIRQgASgCAAwCCyADIAJBBHRqIgEoAgwhBCABKAIIIQUgASgCBCEGIAEoAgAhByADQRhqQvuB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ALwiDkH/////B3EiB0Hbn6T6A08EQCAHQdKn7YMETwRAIAdB1uOIhwRPBEACQAJAAkACQCAHQf////sHTQRAIAtCADcDCAJ8IAdB2p+k7gRNBEAgAUSDyMltMF/kP6JEAAAAAAAAOEOgRAAAAAAAADjDoCICRAAAAAAAAODBZiEGQf////8HAn8gAplEAAAAAAAA4EFjBEAgAqoMAQtBgICAgHgLQYCAgIB4IAYbIAJEAADA////30FkG0EAIAIgAmEbIQcgASACRAAAAFD7Ifm/oqAgAkRjYhphtBBRvqKgDAELIAsgByAHQRd2QZYBayIPQRd0a767OQMAIAtBCGohGSMAQbAEayIEJAAgBEIANwOYASAEQgA3A5ABIARCADcDiAEgBEIANwOAASAEQgA3A3ggBEIANwNwIARCADcDaCAEQgA3A2AgBEIANwNYIARCADcDUCAEQgA3A0ggBEIANwNAIARCADcDOCAEQgA3AzAgBEIANwMoIARCADcDICAEQgA3AxggBEIANwMQIARCADcDCCAEQgA3AwAgBEIANwO4AiAEQgA3A7ACIARCADcDqAIgBEIANwOgAiAEQgA3A5gCIARCADcDkAIgBEIANwOIAiAEQgA3A4ACIARCADcD+AEgBEIANwPwASAEQgA3A+gBIARCADcD4AEgBEIANwPYASAEQgA3A9ABIARCADcDyAEgBEIANwPAASAEQgA3A7gBIARCADcDsAEgBEIANwOoASAEQgA3A6ABIARCADcD2AMgBEIANwPQAyAEQgA3A8gDIARCADcDwAMgBEIANwO4AyAEQgA3A7ADIARCADcDqAMgBEIANwOgAyAEQgA3A5gDIARCADcDkAMgBEIANwOIAyAEQgA3A4ADIARCADcD+AIgBEIANwPwAiAEQgA3A+gCIARCADcD4AIgBEIANwPYAiAEQgA3A9ACIARCADcDyAIgBEIANwPAAiAEQeADakEAQdAAEIkNGkGA+MMAKAIAIgwhByAPQQNrQRhtIgZBACAGQQBKGyIUIgZBAnRBkPjDAGohCQNAIAQgBUEDdGogBkEASAR8RAAAAAAAAAAABSAJKAIAtws5AwAgBSAHSQRAIAlBBGohCSAGQQFqIQYgByAFIAUgB0lqIgVPDQELCyAPQRhrIQdBACEGA0AgBkEDdCIJIARBwAJqaiALKwMA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lJKSIBlBGGoqAgAiEyAaQThqIiUqAgAiFJQgGUEcaioCACIVIBpBPGoiJioCACIWlJIgGUEgaioCACIXIBpBQGsiJyoCACIYlJKSlCECICcgGCAXIAKUkzgCACAmIBYgFSAClJM4AgAgJSAUIBMgApSTOAIAICQgEiARIAKUkzgCACAjIBAgDyAClJM4AgAgIiAOIA0gApSTOAIAICEgDCALIAKUkzgCACAeIAogCSAClJM4AgAgHCAIIAQgApSTOAIAIBpBzABqIhwgHCoCACACIBlBLGoqAgCUkzgCACAaQcgAaiIcIBwqAgAgAiAZQShqKgIAlJM4AgAgGkHwAGohGiABIBsgAEEBaiIAaksNAAsMAAsACyAdQSBqJAAPCyAdQRRqQgA3AgAgHUEBNgIMIB1BtIjCADYCCCAdQZi/wAA2AhAgHUEIakHIicIAENwKAAv2BwIFfwN9IwBBwAFrIgskACALQRhqIAMgBCgCqAERAAAgCygCHCENIAsoAhghDCALQRBqIAYgBygCqAERAAACQAJAAkACQAJAIAwEQCALKAIQIg4NAQsgC0EIaiADIAQoAqwBEQAAIAsoAggiDEUNASAAIAEgAiAMIAsoAgwgBSAGIAcgCCAJIAoQLwwECyALKAIUIQ8gCgR/QQAFIAMgBCgCnAERCgAgBiAHKAKcAREKAJIhEiADIAQoAqABEQoAIRAgBiAHKAKgAREKACIRIBEgECAQIBFdGyAQIBBcGyEQQQELIQogCyAQOAJgIAsgEjgCXCALIAo2AlggC0HoAGogAyAEKAKAAREAACALQfgAaiAGIAcoAoABEQAAIAsqAnQgCyoChAFgDQEgC0GIAWogASAFIA4gDyAGIAcgAiAMIA0gAyAEIAggCSALQdgAahA+IAstALwBIgNBBEYEQCALQQQ6AFQMAwsgC0EgaiIBQRhqIAtBiAFqIgJBDGooAgA2AgAgAUEMaiACQRhqKAIANgIAIAFBMGogAkEkaigCADYCACABQSRqIAJBMGooAgA2AgAgCyALKQKMATcCMCALIAspApgBNwIkIAsgCykCpAE3AkggCyALKQKwATcCPCALIAM6AFQgCyALKgKIATgCIAwCCyALIAYgBygCrAERAAAgCygCACIGBEAgC0GIAWogASAFIAYgCygCBCACIAMgBCAIIAkgChAvIAstALwBIgFBBEcEQCALQYABaiALQZQBaigCADYCACALQShqIAtBoAFqKAIANgIAIAtB4ABqIAtBrAFqKAIANgIAIAtB8ABqIAtBuAFqKAIANgIAIAsgCykCjAE3A3ggCyALKQKYATcDICALIAspAqQBNwNYIAsgCykCsAE3A2ggCyoCiAEhCQsgACAJOAIAIAAgCykDIDcCBCAAIAspA3g3AhAgACALKQNoNwIcIAAgCykDWDcCKCAAIAE6ADQgAEEMaiALQShqKAIANgIAIABBGGogC0GAAWooAgA2AgAgAEEkaiALQfAAaigCADYCACAAQTBqIAtB4ABqKAIANgIAIABBN2ogC0GKAWotAAA6AAAgACALLwCIATsANQwDCyAAQQU6ADQMAgsgC0EgaiABIAIgDCANIAMgBCAFIA4gDyAGIAcgCCAJIAtB2ABqED4LIABBMGogC0EgaiIBQTBqKQIANwIAIABBKGogAUEoaikCADcCACAAQSBqIAFBIGopAgA3AgAgAEEYaiABQRhqKQIANwIAIABBEGogAUEQaikCADcCACAAQQhqIAFBCGopAgA3AgAgACALKQIgNwIACyALQcABaiQAC/YIAQF/IwBBMGsiAiQAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AAEEBaw4RAQIDBAUGBwgJCgsMDQ4PEBEACyACIAAtAAE6AAggAkEkakIBNwIAIAJBAjYCHCACQcS0wwA2AhggAkGSBzYCFCACIAJBEGo2AiAgAiACQQhqNgIQIAEgAkEYahD0CwwRCyACIAApAwg3AwggAkEkakIBNwIAIAJBAjYCHCACQeC0wwA2AhggAkH5ADYCFCACIAJBEGo2AiAgAiACQQhqNgIQIAEgAkEYahD0CwwQCyACIAApAwg3AwggAkEkakIBNwIAIAJBAjYCHCACQeC0wwA2AhggAkGTBzYCFCACIAJBEGo2AiAgAiACQQhqNgIQIAEgAkEYahD0CwwPCyACIAArAwg5AwggAkEkakIBNwIAIAJBAjYCHCACQYC1wwA2AhggAkGUBzYCFCACIAJBEGo2AiAgAiACQQhqNgIQIAEgAkEYahD0CwwOCyACIAAoAgQ2AgggAkEkakIBNwIAIAJBAjYCHCACQZy1wwA2AhggAkGVBzYCFCACIAJB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akJ/NwIAIARBFGpBADoAACAEQRBqQX82AgAgBEFAayEEIAVBBGsiBQ0ACwsgCARAA0AgBEJ/NwIIIARBADoABCAEQX82AgAgBEEQaiEEIAhBAWsiCA0ACwsgBiAKakEBayEGCyAEQn83AgggBEEAOgAEIARBfzYCACAGQQFqBSAECzYCCCAJIAAoAgQiBygCCCIFSwRAIAkgBSIGayIJIAcoAgQgBWtLBEAgByAFIAkQnQYgBygCCCEGCyAHKAIAIAZBGGxqIQQgCUECTwRAIAEgBWsiCkEDcSEIIAVBf3MgAWpBA08EQCAKQXxxIQUDQCAEQv////v///+/fzcCECAEQv////v3//+/fzcCCCAEQv////v3//+//wA3AgAgBEHYAGpC////+////79/NwIAIARB0ABqQv////v3//+/fzcCACAEQcgAakL////79///v/8ANwIAIARBQGtC////+////79/NwIAIARBOGpC////+/f//79/NwIAIARBMGpC////+/f//7//ADcCACAEQShqQv////v///+/fzcCACAEQSBqQv////v3//+/fzcCACAEQRhqQv////v3//+//wA3AgAgBEHgAGohBCAFQQRrIgUNAAsLIAgEQANAIARC////+////79/NwIQIARC////+/f//79/NwIIIARC////+/f//7//ADcCACAEQRhqIQQgCEEBayIIDQALCyAGIAlqQQFrIQYLIARC////+////79/NwIQIARC////+/f//79/NwIIIARC////+/f//7//ADcCACAGQQFqIQkLIAcgCTYCCCAAKAIAIgcoAgghBQsgASAFSQRAIAcoAgAgAUEEdGoiBiABNgIIIAZBDGogAjYCACABIAAoAgQiAigCCCIGSQRAIAIoAgAgAUEYbGoiAiADKQIANwIAIAJBEGogA0EQaikCADcCACACQQhqIANBCGopAgA3AgAgACgCCCIAKAIIIQggACgCBCAIRgRAIAAgCBCoBiAAKAIIIQgLIAAgCEEBajYCCCAAKAIAIAhBAnRqIAE2AgAPCyABIAZB3NrAABDjCAALIAEgBUHM2sAAEOMIAAvmBgIOfwF+IwBBIGsiAyQAQQEhDQJAAkAgAigCFCIMQSIgAkEYaigCACIPKAIQIg4RAwANAAJAIAFFBEBBACECQQAhAQwBCyAA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akEQaigCACIGQQFLBEAgBiEFDAELIAEgBkHIAGxqLQBERQ0CIAEgAEHIAGxqQRRqKAIAIgdBAU0NASAHIQULIAVBAkGsn8MAEOMIAAsgASAHQcgAbGotAEQNAQtBvJ/DAEEsQeifwwAQqgoACyACQQA2AgwCQCABIABByABsaigCGCIDQQJLDQACQAJAAkACQCABIAVByABsaiADQQJ0akEMaiIEKAIAIABHDQAgASAFQcgAbGogA0ECdGoiCEEYaiIEKAIADQEgAiAIQSRqKAIAIgg2AhAgAiABIABByABsakEoaigCACIENgIUIAQgCEcNAiACIAEgBUHIAGxqIANBfkEBIANBAUsbakECdGpBJGooAgAiBTYCECACIAEgAEHIAGxqIgMoAiQiBDYCFCAEIAVHDQMgAkEBNgIMIANBHGooAgAiA0ECSw0EIAEgBkHIAGxqIANBAnRqIglBDGoiBCgCACAARw0AIAlBGGoiBCgCAEEBRw0BIAIgASAGQcgAbGoiBCADQQJ0akEkaigCACIGNgIQIAIgASAAQcgAbGpBLGooAgAiCTYCFCAGIAlHDQIgAiAEIANBfkEBIANBAUsbakECdGpBJGooAgAiAzYCECACIAg2AhQgAyAIRw0DIAEgAEHIAGxqQSBqKAIAIQMgAkECNgIMIANBAksNBCABIAdByABsaiADQQJ0akEMaiIEKAIAIABHDQAgASAHQcgAbGogA0ECdGoiAEEYaiIEKAIAQQJHDQEgAiAAQSRqKAIAIgA2AhAgAiAFNgIUIAAgBUcNAiACIAEgB0HIAGxqIANBfkEBIANBAUsbakECdGpBJGooAgAiADYCECACIAY2AhQgACAGRw0DIAJBMGokAA8LIAJBADYCGCAEIAJBCGogAkEYakHsnsMAEOMKAAsgAkEANgIYIAQgAkEMaiACQRhqQfyewwAQ4woACyACQQA2AhggAkEQaiACQRRqIAJBGGpBjJ/DABDjCgALIAJBADYCGCACQRBqIAJBFGogAkEYakGcn8MAEOMKAAsgA0EDQdyewwAQ4wgAC/YGAQp/IwBBEGsiByQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAFQQFrDgMBCBAACyABQSBqKAIAIgsgAk0NCCABQSRqKAIAIANNDQggASgCDCIJIANsIAJq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IgUbQdbZwwBB+MHDACAFGyACGyEHQQEhBUEBIAZBH3YgAhshBgJAIAhBAmsOAgMAAgsgBEEgaiAEQeAAaiAEQQ9qEHECQCAEKAIgRQRAIARB0ABqIARB4ABqIARBD2oQKwwBCyAEQdgAaiAEQShqKAIANgIAIAQgBCkCIDcDUAsgBCAEKAJQIAQoAlQgBC8BWCADIARBIGoQoAQgBCgCBCEFIAQoAgAMAwsgBEEDNgIoIARB2NnDADYCJCAEQQI7ASBBASEFQQAhBkH4wcMAIQcgBEEgagwCCyAEQQM2AiggBEHb2cMANgIkIARBAjsBICAEQSBqDAELQQIhBSAEQQI7ASAgAwRAIARBMGpBATYCACAEQQA7ASwgBEECNgIoIARBrdnDADYCJCAEQSBqDAELQQEhBSAEQQE2AiggBEHe2cMANgIkIARBIGoLIQIgBEHcAGogBTYCACAEIAI2AlggBCAGNgJUIAQgBzYCUCAAIARB0ABqENECIQAgBEGAAWokACAAC5AFAQR/IAAoAggiBCABSQRAIAQhBSABIARrIgYgACgCBCAEa0sEQCAAIAQgBhCdBiAAKAIIIQULIAAoAgAgBUEYbGohAyAGQQJPBEAgBEF/cyABaiIEQQdxIQEgBkECa0EHTwRAIARBeHEhBANAIANCADcCACADQRBqQgA3AgAgA0EIakIANwIAIANBGGpCADcCACADQSBqQgA3AgAgA0EoakIANwIAIANBMGpCADcCACADQThqQgA3AgAgA0FAa0IANwIAIANByABqQgA3AgAgA0HQAGpCADcCACADQdgAakIANwIAIANB4ABqQgA3AgAgA0HoAGpCADcCACADQfAAakIANwIAIANBiAFqQgA3AgAgA0GAAWpCADcCACADQfgAakIANwIAIANBoAFqQgA3AgAgA0GYAWpCADcCACADQZABakIANwIAIANBqAFqQgA3AgAgA0GwAWpCADcCACADQbgBakIANwIAIANBwAFqIQMgBEEIayIEDQALCyABBEADQCADQgA3AgAgA0EQakIANwIAIANBCGpCADcCACADQRhqIQMgAUEBayIBDQALCyAFIAZqQQFrIQULIANCADcCACADQRBqQgA3AgAgA0EIakIANwIAIAVBAWohAQsgACABNgIIAkACQAJAIAJFBEBBBCEDDAELIAJB////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NgIAIAVBBEkNACACNQAEIQkgASAEQQxrIgU2AgQgASACQQxqNgIAIAVBBEkNASACNQAIIQogASAEQRBrIgU2AgQgASACQRBqNgIAIAVBBEkNASACKAAMIQUgASAEQRRrIgY2AgQgASACQRRqNgIAIAZBBEkNASACNQAQIQsgASAEQRhrIgY2AgQgASACQRhqNgIAAkAgBkEESQ0AIAI1ABQhDCABIARBHGsiBjYCBCABIAJBHGo2AgAgBkEESQ0AIAIoABghBiABIARBIGsiCDYCBCABIAJBIGo2AgAgCEEESQ0AIAI1ABwhDSAAIAc2AgQgASAEQSRrNgIEIAEgAkEkajYCACAAQRxqIAY2AgAgAEEUaiAMQiCGIAuENwIAIABBEGogBTYCACAAQQhqIApCIIYgCYQ3AgAgAEEgaiANIAI1ACBCIIaENwIAQQAMAwsgA0EAOgALIANBJTsACSADQQQ2AgwgA0EBOgAIIAAgA0EIahDqCjYCBEEBDAILIANBADoACyADQSU7AAkgA0EENgIMIANBAToACCAAIANBCGoQ6go2AgRBAQwBCyADQQA6AAsgA0ElOwAJIANBBDYCDCADQQE6AAggACADQQhqEOoKNgIEQQELNgIAIANBEGokAAu/BAEDfyMAQTBrIgMkACADIAEqAgwgAkE8aioCAF86ABMgAyABKgIIIAJBOGoqAgBfOgASIAMgASoCBCACQTRqKgIAXzoAESADIAEqAgAgAioCMF86ABAgAyACKgIMIAFBPGoqAgBfOgAjIAMgAioCCCABQThqKgIAXzoAIiADIAIqAgQgAUE0aioCAF86ACEgAyACKgIAIAEqAjBfOgAgIAMgA0EQaiIEIANBIGoiBRDKCSADIAFBHGoqAgAgAkHMAGoqAgBfOgAjIAMgAUEYaioCACACQcgAaioCAF86ACIgAyABQRRqKgIAIAJBxABqKgIAXzoAISADIAEqAhAgAkFAayoCAF86ACAgBCADIAUQygkgAyACQRxqKgIAIAFBzABqKgIAXzoAIyADIAJBGGoqAgAgAUHIAGoqAgBfOgAiIAMgAkEUaioCACABQcQAaioCAF86ACEgAyACKgIQIAFBQGsqAgBfOgAgIAMgBCAFEMoJIAMgAUEsaioCACACQdwAaioCAF86ACMgAyABQShqKgIAIAJB2ABqKgIA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IAZBvQVqIghBC2pCADcAACAGQaoFaiIJQQtqQgA3AAAgBkGXBWoiCkELakIANwAAIAZBhAVqIgtBC2pCADcAACAGQgA3A6gDIAZCADcD0AMgBkIANwADIAZCADcAwAUgBkIANwCtBSAGQgA3AJoFIAZCADcAhwUgBkGcA2pCADcCACAGQgA3ApQDIAZB8QNqIAZBCGopAAA3AAAgBkH4A2ogBkEPaigAADYAACAGIAYpAAA3AOkDIAZBlARqIAhBD2ooAAA2AAAgBkGNBGogCEEIaikAADcAACAGIAYpAL0FNwCFBCAGQbAEaiAJQQ9qKAAANgAAIAZBqQRqIAlBCGopAAA3AAAgBiAGKQCqBTcAoQQgBkHMBGogCkEPaigAADYAACAGQcUEaiAKQQhqKQAANwAAIAYgBikAlwU3AL0EIAZB6ARqIAtBD2ooAAA2AAAgBkHhBGogC0EIaikAADcAACAGIAYpAIQFNwDZBCAGQgA3A8gCIAZCADcDwAIgBkGAAjsB/AQgBkE+NgL4BCAGQQA6APQEIAZC////+wc3AuwEIAZBADoA2AQgBkL////7BzcD0AQgBkEAOgC8BCAGQv////sHNwK0BCAGQQA6AKAEIAZC////+wc3A5gEIAZBADoAhAQgBkL////7BzcC/AMgBkEAOgDoAyAGQv////sHNwPgAyAGQgA3A8gDIAZCgICA/AM3A8ADIAZBgICA/AM2AqQDIAZB////+wc2ApADIAZCgICAgPD//79/NwOIAyAGQv////v///+//wA3A4ADIAZC////+wc3A/gCIAZCgICAgPD//79/NwPwAiAGQv////v///+//wA3A+gCIAZC////+wc3A+ACIAZCgICAgPD//79/NwPYAiAGQv////v///+//wA3A9ACIAZBmANqIAdBzAJqIggQ0gMgBiAGQcACakHAAhCIDSIGQfQAaiAIENIDIAdB2AdqIgggBkHAAhCIDRogBkHQBWokACAHQcgIaiAAQQRqIgZBCGooAgA2AgAgB0HACGogBikCADcDACAHQZgFaiIGIAhBwAIQiA0aIAdBpAZqIAFBBGoiCEEIaigCADYCACAHIAgpAgA3ApwGIAdB2AJqIAZBwAIQiA0aIAMNAgwDCxD4DAALEPkMAAsgB0HYB2oiAyAHQdgCaiIGQcACEIgNGiAHIAU4ApwFIAcgBDgCmAUgAyAHQZgFaikCADcDECADIAMtALkCQQFyOgC5AiAGIANBwAIQiA0aCyAHQQhqIAdB2AJqQb0CEIgNGiAHLwGWBSEJIAIoAgBBAWshCCAHLQCVBQshBiACIAg2AgAgASABKAIAQQFrNgIAIAAgACgCAEEBazYCAEEAIQICQCAGQQJHBEAgB0HcB2ogB0EIakG9AhCIDRpBkfvDAC0AABpByAJBCBCCDCICRQ0BIAJBADYCACACQQRqIAdB2AdqQcECEIgNGiACIAk7AcYCIAIgBjoAxQILIAdBoApqJAAgAg8LQQhByAJB0IHEACgCACIAQZcHIAAbEQAAAAuWCgEOfyMAQZAIayIFJAACQAJAAkAgAEUNACAAKAIAIgRBf0YNASAAIARBAWo2AgAgAUUNACABKAIAIgRBf0YNASABIARBAWo2AgAgAkUNACACKAIAIgRBf0YNASACIARBAWo2AgAgA0UNACADKAIAIgRBf0YNASADIARBAWo2AgAgBUHIAmoiBEEIaiIMIAFBBGoiBkEIaikCADcDACAEQRBqIg0gAEEEaiIHKQIANwMAIARBGGoiDiAHQQhqKAIANgIAIAVB6AJqIgRBCGoiDyADQQxqKQIANwMAIARBEGoiECACQQRqIgcpAgA3AwAgBEEYaiIRIAdBCGooAgA2AgAgBSAGKQIANwPIAiAFIAMpAgQ3A+gCIwBB4ABrIgZBzQBqIgdBC2pCADcAACAGQTpqIghBC2pCADcAACAGQSdqIglBC2pCADcAACAGQRRqIgpBC2pCADcAACAFQcgFaiIEQfgAakIANwMAIARB8ABqQgA3AwAgBEIANwNoIARCADcDkAEgBEGYAWpCADcDACAGQQFqIgtBC2pCADcAACAEQdwAakIANwIAIARCADcCVCAGQgA3AFAgBEGxAWogB0EIaikAADcAACAGQgA3AD0gBkIANwAqIAZCADcAFyAGQgA3AAQgBCAGKQBNNwCpASAEQbgBaiAHQQ9qKAAANgAAIAQgBikAOjcAxQEgBEHNAWogCEEIaikAADcAACAEQdQBaiAIQQ9qKAAANgAAIAQgBikAJzcA4QEgBEHpAWogCUEIaikAADcAACAEQfABaiAJQQ9qKAAANgAAIARBjAJqIApBD2ooAAA2AAAgBEGFAmogCkEIaikAADcAACAEIAYpABQ3AP0BIARBqAJqIAtBD2ooAAA2AAAgBEGhAmogC0EIaikAADcAACAEIAYpAAE3AJkCIARCADcDCCAEQgA3AwAgBEGAAjsBvAIgBEE/NgK4AiAEQQA6ALQCIARC////+wc3AqwCIARBADoAmAIgBEL////7BzcDkAIgBEEAOgD8ASAEQv////sHNwL0ASAEQQA6AOABIARC////+wc3A9gBIARBADoAxAEgBEL////7BzcCvAEgBEEAOgCoASAEQv////sHNwOgASAEQgA3A4gBIARCgICA/AM3A4ABIARBgICA/AM2AmQgBEH////7BzYCUCAEQoCAgIDw//+/fzcDSCAEQv////v///+//wA3A0AgBEL////7BzcDOCAEQoCAgIDw//+/fzcDMCAEQv////v///+//wA3AyggBEL////7BzcDICAEQoCAgIDw//+/fzcDGCAEQv////v///+//wA3AxAgBUG4BmogDigCADYCACAFQbAGaiANKQMANwMAIAVBqAZqIAwpAwA3AwAgBSAFKQPIAjcDoAYgBUGIA2oiBiAEQcACEIgNGiAFQYQEaiAPKQMANwIAIAVBjARqIBApAwA3AgAgBUGUBGogESgCADYCACAFIAUpA+gCNwL8AyAFQQhqIgcgBkHAAhCIDRogAyADKAIAQQFrNgIAIAIgAigCAEEBazYCACABIAEoAgBBAWs2AgAgACAAKAIAQQFrNgIAIARBBGogB0HAAhCIDRpBkfvDAC0AABpByAJBCBCCDCIARQ0CIABBADYCACAAQQRqIAVByAVqQcQCEIgNGiAFQZAIaiQAIAAPCxD4DAALEPkMAAtBCEHIAkHQgcQAKAIAIgBBlwcgABsRAAAAC/YDAQ99IAIqAgAgASoCEJMiCiABKgIEIgSUIAIqAgQgAUEUaioCAJMiDSABKgIAIgWUkyIGIAaSIQggDSABKgIIIgaUIAIqAgggAUEYaioCAJMiByAElJMiCyALkiEJIAcgASoCDCILIAiUIAQgCZQgBSAHIAWUIAogBpSTIgcgB5IiB5STkpIiDiAOlCAKIAsgCZQgBiAHlCAEIAiUk5KSIg8gD5QgDSALIAeUIAUgCJQgBiAJlJOSkiINIA2UkpIgACoCACIIIAiUkyEIQwAAAAAhByAEIAIqAgwiEJQgBSACQRBqKgIA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ajYCCCAPQawBaioCACEeIBAoAgQiCygCCCEKIAsoAgQgCmtBA00EQCALIApBBBDIBiALKAIIIQoLIAsgCkEEajYCCCALKAIAIApqIB44AAAgD0HgAGogEEEEahDcBiIKDQMgD0HsAGogEEEEahDcBiIKDQMgD0H4AGogEEEEahDcBiIKDQMgD0GEAWogEEEEahDcBiIKDQMgD0GUAWoqAgAhHiAPQZABaioCACEfIBAoAgQiCygCCCEKIAsoAgQgCmtBA00EQCALIApBBBDIBiALKAIIIQoLIAsoAgAgCmogHzgAACALIApBBGoiCjYCCCALKAIEIAprQQNNBEAgCyAKQQQQyAYgCygCCCEKCyALIApBBGo2AgggCygCACAKaiAeOAAAIA9B/AFqIBBBBGoQ3AYiCg0DIA9BiAJqIBBBBGoQ3AYiCg0DIA9BlAJqKgIAIR4gECgCBCILKAIIIQogCygCBCAKa0EDTQRAIAsgCkEEEMgGIAsoAgghCgsgCyAKQQRqNgIIIAsoAgAgCmogHjgAACAPQZgCaiAQQQRqENwGIgoNAyAPQaQCaiAQQQRqENwGIgoNAyAPQdgCaioCACEeIBAoAgQiCygCCCEKIAsoAgQgCmtBA00EQCALIApBBBDIBiALKAIIIQoLIAsoAgAgCmogHjgAACALIApBBGoiCjYCCCAPQdwCaioCACEeIAsoAgQgCmtBA00EQCALIApBBBDIBiALKAIIIQoLIAsoAgAgCmogHjgAACALIApBBGoiCjYCCCAPQeACai0AACEMIAogCygCBEYEQCALIApBARDIBiALKAIIIQoLIAsoAgAgCmogDDoAACALIApBAWoiCjYCCCAPQeECai0AACEMIAogCygCBEYEQCALIApBARDIBiALKAIIIQoLIAsoAgAgCmogDDoAACALIApBAWo2AgggDzUCCCEcIBAoAgQiCygCCCEKIAsoAgQgCmtBB00EQCALIApBCBDIBiALKAIIIQoLIAsoAgAgCmogHDcAACALIApBCGoiCjYCCCAPQQxqNQIAIRwgCygCBCAKa0EHTQRAIAsgCkEIEMgGIAsoAgghCgsgCygCACAKaiAcNwAAIAsgCkEIaiIKNgIIIA9BEGo1AgAhHCALKAIEIAprQQdNBEAgCyAKQQgQyAYgCygCCCEKCyALKAIAIApqIBw3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QQRqIgo2AgggDCgCACALaiAPNgAAIA4gDUEIaiINRw0ACwsgFSgCGCIRQRBqKAIAIQwgESgCCCETIBAoAgQiCigCCCELIAooAgQgC2tBB00EQCAKIAtBCBDIBiAKKAIIIQsLIAogC0EIajYCCCAKKAIAIAtqIAytNwAAIAwEQCAMQagBbCEUQQAhCwNAAkACQAJAAkACQAJAAkACQCALIBNqIgwoAgBFBEAgECgCBCIKKAIIIQ0gCigCBCANa0EDTQRAIAogDUEEEMgGIAooAgghDQsgCigCACANakEANgAAIAogDUEEajYCCCAQKAIEIQogDEEEaigCAA0BIAooAggiDiAKKAIERgRAIAogDkEBEMgGIAooAgghDgsgCigCACAOakEAOgAAIAogDkEBajYCCAwICyAQKAIEIgooAgghDSAKKAIEIA1rQQNNBEAgCiANQQQQyAYgCigCCCENCyAKKAIAIA1qQQE2AAAgCiANQQRqNgIIIAxBBGooAgAhDiAQKAIEIgooAgghDSAKKAIEIA1rQQRJBEAgCiANQQQQyAYgCigCCCENCyAKKAIAIA1qIA42AAAgCiANQQRqNgIIIAxBoAFqLQAAIQ4gECgCBCIKKAIIIQ0gCigCBCANa0EDTQRAIAogDUEEEMgGIAooAgghDQsgCigCACANaiAONgAAIAogDUEEajYCCCAMQThqIBBBBGoQLCIKDQogDEEwaigCAEEBaw4CAgUBCyAMQQhqKAIAIQwgCigCCCIOIAooAgRGBEAgCiAOQQEQyAYgCigCCCEOCyAKKAIAIA5qQQE6AAAgCiAOQQFqIg42AgggCigCBCAOa0EDTQRAIAogDkEEEMgGIAooAgghDgsgCigCACAOaiAMNgAAIAogDkEEajYCCAwGCyAMQTRqKgIAIR4gECgCBCIKKAIIIQ0gCigCBCANa0EDTQRAIAogDUEEEMgGIAooAgghDQsgCigCACANakEANgAAIAogDUEEaiINNgIIIAooAgQgDWtBA00NAQwCCyAMQTRqKgIAIR4gECgCBCIKKAIIIQ0gCigCBCANa0EDTQRAIAogDUEEEMgGIAooAgghDQsgCigCACANakEBNgAAIAogDUEEaiINNgIIIAooAgQgDWtBA0sNAQsgCiANQQQQyAYgCigCCCENCyAKKAIAIA1qIB44AAAgCiAN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aiIHQQtqQgA3AAAgA0GEBWoiCEELakIANwAAIANCADcDqAMgA0IANwPQAyADQgA3AAMgA0IANwDABSADQgA3AK0FIANCADcAmgUgA0IANwCHBSADQZwDakIANwIAIANCADcClAMgA0HxA2ogA0EIaikAADcAACADQfgDaiADQQ9qKAAANgAAIAMgAykAADcA6QMgA0GUBGogBUEPaigAADYAACADQY0EaiAFQQhqKQAANwAAIAMgAykAvQU3AIUEIANBsARqIAZBD2ooAAA2AAAgA0GpBGogBkEIaikAADcAACADIAMpAKoFNwChBCADQcwEaiAHQQ9qKAAANgAAIANBxQRqIAdBCGopAAA3AAAgAyADKQCXBTcAvQQgA0HoBGogCEEPaigAADYAACADQeEEaiAIQQhqKQAANwAAIAMgAykAhAU3ANkEIANCADcDyAIgA0IANwPAAiADQYACOwH8BCADQTc2AvgEIANBADoA9AQgA0L////7BzcC7AQgA0EAOgDYBCADQv////sHNwPQBCADQQA6ALwEIANC////+wc3ArQEIANBADoAoAQgA0L////7BzcDmAQgA0EAOgCEBCADQv////sHNwL8AyADQQA6AOgDIANC////+wc3A+ADIANCADcDyAMgA0KAgID8AzcDwAMgA0GAgID8AzYCpAMgA0H////7BzYCkAMgA0KAgICA8P//v383A4gDIANC////+////7//ADcDgAMgA0L////7BzcD+AIgA0KAgICA8P//v383A/ACIANC////+////7//ADcD6AIgA0L////7BzcD4AIgA0KAgICA8P//v383A9gCIANC////+////7//ADcD0AIgA0GYA2ogBEHMAmoiBRDSAyADIANBwAJqQcACEIgNIgNB9ABqIAUQ0gMgBEGYBWoiBSADQcACEIgNGiADQdAFaiQAIARBiAZqIABBBGoiA0EIaigCADYCACAEQYAGaiADKQIANwMAIARB2AJqIgMgBUG9AhCIDRogBC8B1gchBiAELQDVByEFIARB5ANqIAFBBGoiB0EIaigCADYCACAEIAcpAgA3AtwDIARBCGogA0G9AhCIDRogAigCAEEBawUgAws2AgAgASABKAIAQQFrNgIAIAAgACgCAEEBazYCAEEAIQIgBUECRwRAIARBnAVqIARBCGpBvQIQ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IABBnLHAADYCDCAAIBBBHGo2AghBACAAQQhqQcCWwAAgAEEMakHAlsAAIBBBgARqQZi3wAAQqwQACwALIBBB4AJqIQIgEEFAayIGKAIIIhEoAgAhDiARIA5BAWo2AgACQCAOQQBOBEAgBkEMaigCACESIAZBLGooAgAhEyAGQSRqKAIAIRQgBi0AYiEVIAYtAGMhHSAGKAJYIR4gBigCVCEfIAYvAWAhICAGKAIoISEgBigCICEiIAYtAGUhGyAGLQBkISMgBioCNCEHIAYqAjAhCwJAIAYoAgAiJUECRwRAIAYoAgQhDgwBC0GR+8MALQAAGkEsQQQQggwiDkUNAyAOIAYoAgQiDykCADcCACAOQQhqIA9BCGopAgA3AgAgDkEQaiAPQRBqKQIANwIAIA5BGGogD0EYaikCADcCACAOQSBqIA9BIGopAgA3AgAgDkEoaiAPQShqKAIANgIACyACIBU6AJgBIAIgETYCMCACQf8DNgJwIAIgJTYCKCACQQA2AgAgAkE0aiASNgIAIAJBLGogDjYCACACIAYpAjg3AnQgAkH8AGogBkFAaykCADcCACACQYQBaiAGQcgAaikCADcCACACQYwBaiAGQdAAaigCADYCACAGKgJcIQwgBikDECEmIAJBQGsgBkEYaikDADcDACACICY3AzggAkHtAGogGzoAACACQewAaiAjOgAAIAJB6ABqIAc4AgAgAiALOAJkIAIgDDgClAEgAkF/NgKQASACQeAAaiAgOwEAIAJB3ABqIB42AgAgAkHYAGogHzYCACACQdQAaiATNgIAIAJB0ABqICE2AgAgAkHMAGogFDYCACACICI2AkggAkHiAGogHUVBAXQ6AAAMAQsACwJAAkACQAJAAkACQAJAAkACQCAXBEAgEEH4AWoiAkEIaiIOIBBB9AJqKQIANwMAIAJBEGoiEiAQQfwCaikCADcDACACQRhqIgIgEEGEA2ooAgA2AgAgECAQKQLsAjcD+AEgGL0iJkIgiKchDyAQQdQDaiERICanIQYgECgC4AIiE0UEQCACIBFBGGooAgA2AgAgEiARQRBqKQIANwMAIA4gEUEIaikCADcDACAQIBEpAgA3A/gBQQEhEwsgJCAGIA8QigciEkUNBSAQQfQDaiEUIBBBiANqIRUgGigCAEUNASAaKAIEIgIgGkEQaigCACIO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QRBNGyIAayABTQ0AQRAgAUELakF4cSABQQtJGyIEIABqQQxqEDoiAkUNACACQQhrIQECQCAAQQFrIgMgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIABBACACIANqQQAgAGtxQQhrIgAgAWtBEE0bIABqIgAgAWsiAmshAyAGQQNxBEAgACADIAAoAgRBAXFyQQJyNgIEIAAgA2oiAyADKAIEQQFyNgIEIAUgAiAFKAIAQQFxckECcjYCACABIAJqIgMgAygCBEEBcjYCBCABIAIQzAMMAQsgASgCACEBIAAgAzYCBCAAIAEgAmo2AgALAkAgACgCBCIBQQNxRQ0AIAFBeHEiAiAEQRBqTQ0AIAAgBCABQQFxckECcjYCBCAAIARqIgEgAiAEayIEQQNyNgIEIAAgAmoiAiACKAIEQQFyNgIEIAEgBBDMAwsgAEEIaiEDCyADC40DAQF/AkAgAgRAIAEtAABBME0NASAFQQI7AQACQAJAAkAgA8EiBkEASgRAIAUgATYCBCADQf//A3EiAyACTw0BIAVBAjsBGCAFQQI7AQwgBSADNgIIIAVBIGogAiADayICNgIAIAVBHGogASADajYCACAFQRRqQQE2AgAgBUEQakGs2cMANgIAQQMhASACIARPDQMgBCACayEEDAILIAVBAjsBGCAFQQA7AQwgBUECNgIIIAVBrdnDADYCBCAFQSBqIAI2AgAgBUEcaiABNgIAIAVBEGpBACAGayIDNgIAQQMhASACIARPDQIgBCACayICIANNDQIgAiAGaiEEDAELIAVBADsBDCAFIAI2AgggBUEQaiADIAJrNgIAIARFBEBBAiEBDAILIAVBAjsBGCAFQSBqQQE2AgAgBUEcakGs2cMANgIACyAFQQA7ASQgBUEoaiAENgIAQQQhAQsgACABNgIEIAAgBTYCAA8LQezVwwBBIUG42MMAEKoKAAtByNjDAEEfQejYwwAQqgoAC5oDAQF/AkACQCAARQ0AIAAoAgANASAAQX82AgAgAUUNACABKAIAIgtBf0YNASABIAtBAWo2AgAgAkUNACACKAIAIgtBf0YNASACIAtBAWo2AgAgA0UNACADKAIADQEgA0F/NgIAIARFDQAgBCgCAA0BIARBfzYCACAFRQ0AIAUoAgANASAFQX82AgAgBkUNACAGKAIADQEgBkF/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KAIAIghBf0YNASAAIAhBAWo2AgAgAkUNACACKAIAIghBf0YNASACIAhBAWo2AgAgBEUNACAEKAIAIghBf0YNASAEIAhBAWo2AgAgAkEEaiELIARBBGohDCAGQQBHIQ0jAEGAAWsiBiQAAkACQCAAQQRqIgkgA70iE6ciDiATQiCIpyIPEJgKIggEQCAJIAG9IhOnIBNCIIinEJgKIglFDQEgBkHEAGogCUH0AGogCyAJKAIwIAlBNGooAgAiCSgCCEEBa0F4cWpBCGogCSAIQfQAaiAMIAgoAjAgCEE0aigCACIIKAIIQQFrQXhxakEIaiAIIAUgDRDHAgJ/AkAgBi0AeCILQQVHBEAgBkEIaiIIQTBqIgwgBkHEAGoiCUEwaigCADYCACAIQShqIg0gCUEoaikCADcDACAIQSBqIhAgCUEgaikCADcDACAIQRhqIhEgCUEYaikCADcDACAIQRBqIhIgCUEQaikCADcDACAIQQhqIAlBCGopAgA3AwAgBkEGaiAGQfsAai0AADoAACAGIAYpAkQ3AwggBiAGLwB5OwEEIAtBBEcNAQsgByAGKQJENwIAIAdBOGogBkHEAGoiCEE4aigCADYCACAHQTBqIAhBMGopAgA3AgAgB0EoaiAIQShqKQIANwIAIAdBIGogCEEgaikCADcCACAHQRhqIAhBGGopAgA3AgAgB0EQaiAIQRBqKQIANwIAIAdBCGogCEEIaikCADcCAEEEIQsgBkHBAGoMAQsgByAPNgIEIAcgDjYCACAHIAYpAwg3AgggB0EQaiAGQRBqKQMANwIAIAdBGGogEikDADcCACAHQSBqIBEpAwA3AgAgB0EoaiAQKQMANwIAIAdBMGogDSkDADcCACAHQThqIAwoAgA2AgAgBkEEagshCCAHIAs6ADwgByAILwAAOwA9IAdBP2ogCEECai0AADoAACAGQYABaiQADAILQYS2wABBzABB4LjAABDhCQALQYS2wABBzABB+LbAABDhCQALIAQgBCgCAEEBazYCACACIAIoAgBBAWs2AgAgACAAKAIAQQFrNgIAIActADxBBEcEQEGR+8MALQAAGkHEAEEEEIIMIgpFDQMgCkEANgIAIAogBykCADcCBCAKQQxqIAdBCGopAgA3AgAgCkEUaiAHQRBqKQIANwIAIApBHGogB0EYaikCADcCACAK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A0UNACADKAIAIgVBf0YNASADIAVBAWo2AgAgBEUNACAEKAIAIgVBf0YNASAEIAVBAWo2AgAjAEHgAGsiBkHNAGoiCEELakIANwAAIAZBOmoiCUELakIANwAAIAZBJ2oiCkELakIANwAAIAZBFGoiC0ELakIANwAAIAdBiAVqIgVB+ABqQgA3AwAgBUHwAGpCADcDACAFQgA3A2ggBkEBaiIMQQtqQgA3AAAgBUIANwJUIAVB3ABqQgA3AgAgBUG4AWogCEEPaigAADYAACAGQgA3AFAgBUGxAWogCEEIaikAADcAACAFIAYpAE03AKkBIAZCADcAPSAGQgA3ACogBkIANwAXIAZCADcABCAFQdQBaiAJQQ9qKAAANgAAIAVBzQFqIAlBCGopAAA3AAAgBSAGKQA6NwDFASAFIAYpACc3AOEBIAVB6QFqIApBCGopAAA3AAAgBUHwAWogCkEPaigAADYAACAFIAYpABQ3AP0BIAVBhQJqIAtBCGopAAA3AAAgBUGMAmogC0EPaigAADYAACAFQagCaiAMQQ9qKAAANgAAIAVBoQJqIAxBCGopAAA3AAAgBSAGKQABNwCZAiAFQgA3AwggBUIANwMAIAVBjAFqQgA3AgAgBUIANwKEASAFQYGOgAg2AboCIAVBADsBuAIgBUEAOgC0AiAFQv////sHNwKsAiAFQQA6AJgCIAVC////+wc3A5ACIAVBADoA/AEgBUL////7BzcC9AEgBUEAOgDgASAFQv////sHNwPYASAFQQA6AMQBIAVC////+wc3ArwBIAVBAToAqAEgBUL////7BzcDoAEgBSACOAKcASAFIAE4ApgBIAUgADgClAEgBUGAgID8AzYCgAEgBUGAgID8AzYCZCAFQf////sHNgJQIAVCgICAgPD//79/NwNIIAVC////+////7//ADcDQCAFQv////sHNwM4IAVCgICAgPD//79/NwMwIAVC////+////7//ADcDKCAFQv////sHNwMgIAVCgICAgPD//79/NwMYIAVC////+////7//ADcDECAHQfgFaiADQQRqIgZBCGooAgA2AgAgB0HwBWogBikCADcDACAHQcgCaiIGIAVBwAIQiA0aIAdB1ANqIARBDGooAgA2AgAgByAEKQIENwLMAyAHQQhqIgggBkHAAhCIDRogBCAEKAIAQQFrNgIAIAMgAygCAEEBazYCACAFQQRqIAhBwAIQiA0aQZH7wwAtAAAaQcgCQQgQggwiA0UNAiADQQA2AgAgA0EEaiAHQYgFakHEAhCIDRogB0HQB2okACADDwsQ+AwACxD5DAALQQhByAJB0IHEACgCACIDQZcHIAMbEQAAAAvFAgEIfyMAQTBrIgIkAAJAAkAgAARAIAAoAgANASAAQQA2AgAgAEE8aiIDKAIAIQQgA0ECNgIAIARBAkcEQCACQShqIgMgAEHoAGopAgA3AwAgAkEgaiIFIABB4ABqKQIANwMAIAJBGGoiBiAAQdgAaikCADcDACACQRBqIgcgAEHQAGopAgA3AwAgAkEIaiIIIABByABqKQIANwMAQZH7wwAtAAAaIAIgAEFAaykCADcDAEE4QQQQggwiAUUNAyABIAQ2AgQgAUEANgIAIAEgAikDADcCCCABQRBqIAgpAwA3AgAgAUEYaiAHKQMANwIAIAFBIGogBikDADcCACABQShqIAUpAwA3AgAgAUEwaiADKQMANwIACyACQTBqJAAgAQ8LEPgMAAsQ+QwAC0EEQThB0IHEACgCACIAQZcHIAAbEQAAAAu0AgIIfQF/IwBBIGsiCyQAIAEqAgAiAyADlCABKgIEIgMgA5SSEJsBIQMgASoCCCIGQwAAAABgRQRAIAtBFGpCADcCACALQQE2AgwgC0Hkl8IANgIIIAtBtIrCADYCECALQQhqQcCuwwAQ3AoACyAAIAMgBpI4AgwgACACQRhqKgIAIAIqAgwiAyACKgIAIgZDAAAAAJQiBCACKgIEIghDAAAAAJQiBZMiByAHkiIHlCAGIAIqAggiCUMAAAAAlCIKIASTIgQgBJIiBJQgCCAFIAqTIgUgBZIiBZSTkkMAAAAAkpI4AgggACACQRRqKgIAIAMgBJQgCSAFlCAGIAeUk5JDAAAAAJKSOAIEIAAgAioCECADIAWUIAggB5QgCSAElJOSQwAAAACSkjgCACALQSBqJAALiggBCH8jAEHQB2siBSQAAkACQAJAIAFFDQAgASgCACIDQX9GDQEgASADQQFqNgIAIAJFDQAgAigCACIDQX9GDQEgAiADQQFqNgIAIwBB4ABrIgRBzQBqIgZBC2pCADcAACAEQTpqIgdBC2pCADcAACAEQSdqIghBC2pCADcAACAEQRRqIglBC2pCADcAACAFQYgFaiIDQfgAakIANwMAIANB8ABqQgA3AwAgA0IANwNoIANCADcDkAEgA0GYAWpCADcDACAEQQFqIgpBC2pCADcAACADQdwAakIANwIAIANCADcCVCAEQgA3AFAgA0GxAWogBkEIaikAADcAACAEQgA3AD0gBEIANwAqIARCADcAFyAEQgA3AAQgAyAEKQBNNwCpASADQbgBaiAGQQ9qKAAANgAAIAMgBCkAOjcAxQEgA0HNAWogB0EIaikAADcAACADQdQBaiAHQQ9qKAAANgAAIAMgBCkAJzcA4QEgA0HpAWogCEEIaikAADcAACADQfABaiAIQQ9qKAAANgAAIANBjAJqIAlBD2ooAAA2AAAgA0GFAmogCUEIaikAADcAACADIAQpABQ3AP0BIANBqAJqIApBD2ooAAA2AAAgA0GhAmogCkEIaikAADcAACADIAQpAAE3AJkCIANBEGpBADYCACADQQhqQgA3AwAgA0IANwMAIANBgAI7AbwCIANBgIKAODYCuAIgA0EAOgC0AiADQv////sHNwKsAiADQQA6AJgCIANC////+wc3A5ACIANBADoA/AEgA0L////7BzcC9AEgA0EAOgDgASADQv////sHNwPYASADQQA6AMQBIANC////+wc3ArwBIANBADoAqAEgA0L////7BzcDoAEgA0IANwOIASADQoCAgPwDNwOAASADQYCAgPwDNgJkIANB////+wc2AlAgA0KAgICA8P//v383A0ggA0L////7////v/8ANwNAIANC////+wc3AzggA0KAgICA8P//v383AzAgA0L////7////v/8ANwMoIANC////+wc3AyAgA0KAgICA8P//v383AxggAyAAOAIUIAVB+AVqIAFBBGoiBEEIaigCADYCACAFQfAFaiAEKQIANwMAIAVByAJqIgQgA0HAAhCIDRogBUHUA2ogAkEMaigCADYCACAFIAIpAgQ3AswDIAVBCGoiBiAEQcACEIgNGiACIAIoAgBBAWs2AgAgASABKAIAQQFrNgIAIANBBGogBkHAAhCIDRpBkfvDAC0AABpByAJBCBCCDCIBRQ0CIAFBADYCACABQQRqIAVBiAVqQcQCEIgNGiAFQdAHaiQAIAEPCxD4DAALEPkMAAtBCEHIAkHQgcQAKAIAIgFBlwcgARsRAAAAC4MIAQh/IwBB0AdrIgQkAAJAAkACQCAARQ0AIAAoAgAiAkF/Rg0BIAAgAkEBajYCACABRQ0AIAEoAgAiAkF/Rg0BIAEgAkEBajYCACMAQeAAayIDQc0AaiIFQQtqQgA3AAAgA0E6aiIGQQtqQgA3AAAgA0EnaiIHQQtqQgA3AAAgA0EUaiIIQQtqQgA3AAAgBEGIBWoiAkH4AGpCADcDACACQfAAakIANwMAIAJCADcDaCACQgA3A5ABIAJBmAFqQgA3AwAgA0EBaiIJQQtqQgA3AAAgAkHcAGpCADcCACACQgA3AlQgA0IANwBQIAJBsQFqIAVBCGopAAA3AAAgA0IANwA9IANCADcAKiADQgA3ABcgA0IANwAEIAIgAykATTcAqQEgAkG4AWogBUEPaigAADYAACACIAMpADo3AMUBIAJBzQFqIAZBCGopAAA3AAAgAkHUAWogBkEPaigAADYAACACIAMpACc3AOEBIAJB6QFqIAdBCGopAAA3AAAgAkHwAWogB0EPaigAADYAACACQYwCaiAIQQ9qKAAANgAAIAJBhQJqIAhBCGopAAA3AAAgAiADKQAUNwD9ASACQagCaiAJQQ9qKAAANgAAIAJBoQJqIAlBCGopAAA3AAAgAiADKQABNwCZAiACQgA3AwggAkIANwMAIAJBgAI7AbwCIAJBBzYCuAIgAkEAOgC0AiACQv////sHNwKsAiACQQA6AJgCIAJC////+wc3A5ACIAJBADoA/AEgAkL////7BzcC9AEgAkEAOgDgASACQv////sHNwPYASACQQA6AMQBIAJC////+wc3ArwBIAJBADoAqAEgAkL////7BzcDoAEgAkIANwOIASACQoCAgPwDNwOAASACQYCAgPwDNgJkIAJB////+wc2AlAgAkKAgICA8P//v383A0ggAkL////7////v/8ANwNAIAJC////+wc3AzggAkKAgICA8P//v383AzAgAkL////7////v/8ANwMoIAJC////+wc3AyAgAkKAgICA8P//v383AxggAkL////7////v/8ANwMQIARB+AVqIABBBGoiA0EIaigCADYCACAEQfAFaiADKQIANwMAIARByAJqIgMgAkHAAhCIDRogBEHUA2ogAUEMaigCADYCACAEIAEpAgQ3AswDIARBCGoiBSADQcACEIgNGiABIAEoAgBB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AyAMGyEDDAELIAogC11FDQAgBCEDIAEhAgsgACACKgIIIAkgASoCJCIElJI4AgggACACKgIEIAggBJSSOAIEIAAgAyAHIASUkjgCAAuZAgICfwh9IAAoAggiAgRAIAAoAgAiASoCCCEHIAEqAgQhCCABKgIAIQQCQCACQQFGBEAgByEJIAghBSAEIQMMAQsgASACQQxsaiECIAFBDGohASAEIQMgCCEFIAchCQNAIAkgAUEIaioCACIKIAkgCmAbIQkgBSABQQRqKgIAIgYgBSAGYBshBSAHIAogByAKXxshByAIIAYgBiAIYBshCCADIAEqAgAiBiADIAZgGyEDIAQgBiAEIAZfGyEEIAIgAUEMaiIBRw0ACwsgACoCYCADIASTQwAAAD+UIgQgBSAIk0MAAAA/lCIDIAMgBGAbIgUgCSAHk0MAAAA/lCIDIAMgBWAbkg8LQfKYwgBB0gBB1JnCABDhCQALlwIBAX8jAEEQayICJAAgACgCACEAAn8gASgCACABKAIIcgRAIAJBADYCDCABIAJBDGoCfwJAAkAgAEGAAU8EQCAAQYAQSQ0BIABBgIAETw0CIAIgAEE/cUGAAXI6AA4gAiAAQQx2QeABcjoADCACIABBBnZBP3FBgAFyOgANQQMMAwsgAiAAOgAMQQEMAgsgAiAAQT9xQYABcjoADSACIABBBnZBwAFyOgAMQQIMAQsgAiAAQT9xQYABcjoADyACIABBEnZB8AFyOgAMIAIgAEEGdkE/cUGAAXI6AA4gAiAAQQx2QT9xQYABcjoADUEECxDUAQwBCyABKAIUIAAgAUEYaigCACgCEBEDAAshASACQRBqJAAgAQu8AQAgACgCBARAIAAoAgAQmgILIABBEGooAgAEQCAAKAIMEJoCCyAAQSRqKAIABEAgACgCIBCaAgsgAEEwaigCAARAIABBLGooAgAQmgILIABBxABqKAIABEAgACgCQBCaAgsgAEHQAGooAgAEQCAAQcwAaigCABCaAgsgAEHkAGooAgAEQCAAKAJgEJoCCyAAQfwAaigCAARAIAAoAngQmgILIABBiAFqKAIABEAgACgChAEQmgILIAAQmgILjgIBBH8gACIEKAIIIgIgAUkEQCACIQMgASACayIFIAQoAgQgAmtLBEAgBCACIAUQiQYgBCgCCCEDCyAEKAIAIANBAnRq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BEL////7BzcCrAIgBEEAOgCYAiAEQv////sHNwOQAiAEQQA6APwBIARC////+wc3AvQBIARBADoA4AEgBEL////7BzcD2AEgBEEAOgDEASAEQv////sHNwK8ASAEQQA6AKgBIARC////+wc3A6ABIARCADcDiAEgBEKAgID8AzcDgAEgBEGAgID8AzYCZCAEQf////sHNgJQIARCgICAgPD//79/NwNIIARC////+////7//ADcDQCAEQv////sHNwM4IARCgICAgPD//79/NwMwIARC////+////7//ADcDKCAEQv////sHNwMgIARCgICAgPD//79/NwMYIARC////+////7//ADcDECAGQcADaiAJQQhqKAIANgIAIAZBuANqIAkpAgA3AwAgBkEQaiIDIARBwAIQiA0aIAZBnAFqIApBCGooAgA2AgAgBiAKKQIANwKUASAEIANBwAIQiA0aIAZBkAVqIgVBCGogESgCADYCACAGIAYpAgQ3A5AFIARB2ABqIAUQ0gMgAyAEQcACEIgNGiADQfQAaiAQENIDIAggA0HAAhCIDRoMAgsgCEECOgC9AgwBCyAIQQI6AL0CCyAGQaAFaiQAIAIgAigCAEEBazYCACABIAEoAgBBAWs2AgAgACAAKAIAQQFrNgIAQQAhACAHLQDFAkECRwRAIAdB0AJqIAdBCGpBwAIQiA0aQZH7wwAtAAAaQcgCQQgQggwiAEUNAyAAQQA2AgAgAEEEaiAHQcwCakHEAhCIDRoLIAdBkAVqJAAgAA8LEPgMAAsQ+QwAC0EIQcgCQdCBxAAoAgAiAEGXByAAGxEAAAALvwUCCn8BfiMAQUBqIggkAAJAAkAgAARAIAAoAgAiBEF/Rg0BIAAgBEEBajYCACAIQQhqIQQjAEHwAGsiBSQAAkACQCAAQQRqIgcgAr0iDqcgDkIgiKcQmAoiBgRAIAcgAb0iDqcgDkIgiKcQmAoiB0UNASAFQThqIAdB9ABqIAcoAjAgB0E0aigCACIHKAIIQQFrQXhxakEIaiAHIAZB9ABqIAYoAjAgBkE0aigCACIGKAIIQQFrQXhxakEIaiAGIAMQogEgBAJ/QQAgBSgCOCIHQQJGDQAaIAVBMGoiCSAFQThqIgZBNGooAgA2AgAgBUEoaiIKIAZBLGopAgA3AwAgBUEgaiILIAZBJGopAgA3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AAsgAyAqQdT2wQAQ4wgACyADICJBkPPBABDjCAALAkAgKQRAIBsgGygCdCArazYCdAJAAkACQAJAAkAgGygCCCIVRQRAQQAhA0EAIQYMAQsgGygCAEEEaiEDQQAhCkGwisIALQAAIRZBsYrCAC0AACESA0ACQCADKAIAIgxB/////wdxIgZB/////wdGDQAgBiAoTw0EIAZBBXYiBiAlTw0EIBYgEiAXIAZBAnRqKAIAIAx2QQFxG0H/AXENAEEBIQYgCkEBaiEDDAILIANBCGohAyAVIApBAWoiCkcNAAtBACEGDAELIAMgFUYNACAVIANrIQogGygCACADQQN0aiEDA0ACQAJAIANBBGooAgAiEkH/////B3EiDEH/////B0YNACAMIChPDQggDEEFdiIMICVPDQhBsIrCAEGxisIAIBcgDEECdGooAgAgEnZBAXEbLQAADQAgBkEBaiEGDAELIAMgBkEDdGsgAykCADcCAAsgA0EIaiEDIApBAWsiCg0ACwsgGyAVIAZrNgIIAkACQCAbQShqKAIAIhVFBEBBACEDQQAhBgwBCyAbKAIgQQRqIQNBACEKQbCKwgAtAAAhFkGxisIALQAAIRIDQAJAIAMoAgAiDEH/////B3EiBkH/////B0YNACAGIChPDQQgBkEFdiIGICVPDQQgFiASIBcgBkECdGooAgAgDHZBAXEbQf8BcQ0AQQEhBiAKQQFqIQMMAgsgA0EIaiEDIBUgCkEBaiIKRw0AC0EAIQYMAQsgAyAVRg0AIBUgA2shCiAbKAIgIANBA3RqIQMDQAJAAkAgA0EEaigCACISQf////8HcSIMQf////8HRg0AIAwgKE8NCCAMQQV2IgwgJU8NCEGwisIAQbGKwgAgFyAMQQJ0aigCACASdkEBcRstAAANACAGQQFqIQYMAQsgAyAGQQN0ayADKQIANwIACyADQQhqIQMgCkEBayIKDQALCyAbIBUgBms2AiggG0HIAGooAgAiFUUEQEEAIQNBACEGDAILIBsoAkBBBGohA0EAIQpBsIrCAC0AACEWQbGKwgAtAAAhEgNAAkAgAygCACIMQf////8HcSIGQf////8HRg0AIAYgKE8NAiAGQQV2IgYgJU8NAiAWIBIgFyAGQQJ0aigCACAMdkEBcRtB/wFxDQBBASEGIApBAWohAwwDCyADQQhq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CGoiAEL////7983EgTs3AiAgAEKAgID8883EwTo3AhggAEKAgID8g4CAwD83AhAgAEK/hrvJo7PmjD83AgggAEKEgICAkJGixDw3AgAgAEKAgYCAEDcCMCAAQoSAgIAQNwIoQZH7wwAtAAAaQTxBBBCCDCIARQRAQQRBPEHQgcQAKAIAIgFBlwcgARsRAAAACyAAQQA2AgAgACABKQIINwIEIABBDGogAUEQaikCADcCACAAQRRqIAFBGGopAgA3AgAgAEEcaiABQSBqKQIANwIAIABBJGogAUEoaikCADcCACAAQSxqIAFBMGopAgA3AgAgAEE0aiABQThqKQIANwIAIAFBQGskACAAC6MBAQF/IwBBQGoiASQAAkAgAARAIAAoAgANASABQThqIABBNGooAgA2AgAgAUEwaiAAQSxqKQIANwMAIAFBKGogAEEkaikCADcDACABQSBqIABBHGopAgA3AwAgAUEYaiAAQRRqKQIANwMAIAFBEGogAEEMaikCADcDACABIAApAgQ3AwggABCaAiABQQhqEP8FIAFBQGskAA8LEPgMAAsQ+QwAC80DAQV/IwBBQGoiASQAIAFBDGohAiMAQSBrIgMkACADQQA2AhggA0EIakEIQaAFIANBFGoQ2gYgAygCDCEAAkAgAygCCEUEQEEEIQQMAQsgAEGBgICAeEYEQEEIIQAMAQsgAARAIAAgA0EQaigCAEHQgcQAKAIAIgBBlwcgABsRAAAACxDbCgALIABCADcD+AMgAEKAgICAEDcD0AIgAEKAgICAEDcDqAEgAEEBNgIIIABCgICAgBA3AwAgAkIENwIoIAJCgICAgMAANwIYIAJCBDcCECACIAQ2AgwgAiAANgIIIAJCATcCACAAQYAEakEANgIAIABB2AJqQQM2AgAgAEGwAWpBAjYCACACQTBqQQA2AgAgAkEgakIANwIAIANBIGokAEGR+8MALQAAGkE4QQQQggwiAEUEQEEEQThB0IHEACgCACIAQZcHIAAbEQAAAAsgAEEANgIAIAAgASkCDDcCBCAAQQxqIAFBFGopAgA3AgAgAEEUaiABQRxqKQIANwIAIABBHGogAUEkaikCADcCACAAQSRqIAFBLGopAgA3AgAgAEEsaiABQTRqKQIANwIAIABBNGogAUE8aigCADYCACABQUBrJAAgAAvCAQIDfwF+IwBBEGsiASQAAkACQCAABEAgACgCACICQX9GDQEgACACQQFqNgIAIAAoAgQiA0HoAGopAgAhBCADQfAAaigCACEDIAAgAjYCACABQQhqIgIgAzYCACABIAQ3AwBBkfvDAC0AABpBEEEEEIIMIgBFDQIgAEEANgIAIAAgASkDADcCBCAAQQxqIAIoAgA2AgAgAUEQaiQAIAAPCxD4DAALEPkMAAtBBEEQQdCBxAAoAgAiAEGXByAAGxEAAAALnwEBBX0gACABKgIAIgIgASoCDCIDIAIgA2AbIAEqAhgiBJI4AgwgACACIAMgAiADXxsgBJM4AgAgAEEUaiAEIAEqAggiAiABQRRqKgIAIgMgAiADYBuSOAIAIABBEGogBCABKgIEIgUgAUEQaioCACIGIAUgBmAbkjgCACAAIAIgAyACIANfGyAEkzgCCCAAIAUgBiAFIAZfGyAEkzgCBAujAQAjAEEQayIDJAAgACgCACEAIANBgQE2AgggAyABrSACrUIghoS/EAA2AgwgAyAAIANBCGogA0EMahC3CiADKAIEIQACQAJAIAMoAgBFBEAgABABQQBHIQIgAEGEAUkNAgwBC0EBIQIgAEGDAU0NAQsgABACCyADKAIMIgBBhAFPBEAgABACCyADKAIIIgBBhAFPBEAgABACCyADQRBqJAAgAgupAQEBfyMAQUBqIgQkACAEQQxqIAEgAUEMaiABQRhqIAIQiQICQCAEKAIMIgFBBEcEQCAEQThqIgIgBEEgaigCADYCACAEIAQpAhg3AzAgAyAEKgIUIgNgRQRAIABBBDYCAAwCCyAEKAIQIQUgACADOAIIIAAgBTYCBCAAIAE2AgAgACAEKQMwNwIMIABBFGogAigCADYCAAwBCyAAQQQ2AgALIARBQGskAAuyAQIBfwR9IwBBIGsiAiQAIAEqAgwiA0MAAAAAYEUEQCACQRRqQgA3AgAgAkEBNgIMIAJB5JfCADYCCCACQbSKwgA2AhAgAkEIakHsl8IAENwKAAsgASoCBCEEIAEqAgAhBSAAQRRqIAEqAggiBiADkjgCACAAQRBqIAQgA5I4AgAgACAFIAOSOAIMIAAgBowgA5M4AgggACAEjCADkzgCBCAAIAWMIAOTOAIAIAJBIGokAAu/AQIEfwF+IwBBEGsiASQAAkACQCAABEAgACgCACICQX9GDQEgACACQQFqNgIAIAAoAgQiA0GQAWooAgAhBCADKQKIASEFIAAgAjYCACABQQhqIgIgBDYCACABIAU3AwBBkfvDAC0AABpBEEEEEIIMIgBFDQIgAEEANgIAIAAgASkDADcCBCAAQQxqIAIoAgA2AgAgAUEQaiQAIAAPCxD4DAALEPkMAAtBBEEQQdCBxAAoAgAiAEGXByAAGxEAAAALvwECBH8BfiMAQRBrIgEkAAJAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACAAKAIEIgNBnAFqKAIAIQQgAykClAEhBSAAIAI2AgAgAUEIaiICIAQ2AgAgASAFNwMAQZH7wwAtAAAaQRBBBBCCDCIARQ0CIABBADYCACAAIAEpAwA3AgQgAEEMaiACKAIANgIAIAFBEGokACAADwsQ+AwACxD5DAALQQRBEEHQgcQAKAIAIgBBlwcgABsRAAAAC7YBAQR/IwBB0ABrIgIkAAJAAkAgAARAIAAoAgANASAAQQA2AgAgAEHwAGoiBCgCACEDIARBAjYCACADQQJHBEAgAkEIaiAAQfQAakHIABCIDRpBkfvDAC0AABpB0ABBBBCCDCIBRQ0DIAEgAzYCBCABQQA2AgAgAUEIaiACQQhqQcgAEIgNGgsgAkHQAGokACABDwsQ+AwACxD5DAALQQRB0ABB0IHEACgCACIAQZcHIAAbEQAAAAu2AQEEfyMAQdAAayICJAACQAJAIAAEQCAAKAIADQEgAEEANgIAIABBvAFqIgQoAgAhAyAEQQI2AgAgA0ECRwRAIAJBCGogAEHAAWpByAAQiA0aQZH7wwAtAAAaQdAAQQQQggwiAUUNAyABIAM2AgQgAUEANgIAIAFBCGogAkEIakHIABCIDRoLIAJB0ABqJAAgAQ8LEPgMAAsQ+QwAC0EEQdAAQdCBxAAoAgAiAEGXByAAGxEAAAALsgEBAX8jAEEQayIGJAACQCABBEAgBkEEaiABIAMgBCAFIAIoAhARBwAgBigCBCEBAkAgBigCCCIDIAYoAgwiAk0EQCABIQQMAQsgA0ECdCEDIAJFBEBBBCEEIAEQmgIMAQsgASADQQQgAkECdCIBEO0LIgRFDQILIAAgAjYCBCAAIAQ2AgAgBkEQaiQADwtB6LzAAEEyEPcMAAtBBCABQdCBxAAoAgAiAEGXByAAGxEAAAALyAEBA30gAyoCABCbASEFIAMqAgQQmwEhBiADKgIIEJsBIQcgAEEkakMAAAAAQwAAgD8gBpUgBkMAAAAAWxs4AgAgAEMAAAAAQwAAgD8gBZUgBUMAAAAAWxs4AiAgAEMAAAAAQwAAgD8gApUgAkMAAAAAWxs4AhwgAEEYaiABQQhqKAIANgIAIAAgASkCADcCECAAIAQpAgA3AgAgAEEIaiAEQQhqKQIANwIAIABBKGpDAAAAAEMAAIA/IAeVIAdDAAAAAFsbOAIAC7MBAQR/IwBB0ABrIgIkAAJAAkAgAARAIAAoAgANASAAQQA2AgAgAEHAAmoiBCgCACEDIARBADYCACADBEAgAkEIaiAAQcQCakHIABCIDRpBkfvDAC0AABpB0ABBBBCCDCIBRQ0DIAEgAzYCBCABQQA2AgAgAUEIaiACQQhqQcgAEIgNGgsgAkHQAGokACABDwsQ+AwACxD5DAALQQRB0ABB0IHEACgCACIAQZcHIAAbEQAAAAufAQECfwJAIAAoAhAgAU0NACAAKAIIIgNFDQAgAyABQegCbGoiAygCAEUNACADKAIEIAJHDQAgA0EIaiEEIANBsAJqLQAAQQFxDQAgA0EBNgKwAiAAQSRqKAIAIgMgAEEgaigCAEYEQCAAQRxqIAMQqwYgACgCJCEDCyAAIANBAWo2AiQgACgCHCADQQN0aiIAIAI2AgQgACABNgIACyAEC54BAQJ/AkAgACgCECABTQ0AIAAoAggiA0UNACADIAFBqAFsaiIDKAIARQ0AIAMoAgQgAkcNACADQQhqIQQgA0H4AGotAABBAXENACADQQE2AnggAEEkaigCACIDIABBIGooAgBGBEAgAEEcaiADEKsGIAAoAiQhAwsgACADQQFqNgIkIAAoAhwgA0EDdGoiACACNgIEIAAgATYCAAsgBAu4AQECfyMAQRBrIgEkAAJAAkAgAARAIAAoAgANASAAKAIEIQIgAEIANwIAAkAgAkUEQEEAIQAMAQsgAUEIaiICIABBEGooAgA2AgBBkfvDAC0AABogASAAQQhqKQIANwMAQRBBBBCCDCIARQ0DIABBADYCACAAIAEpAwA3AgQgAEEMaiACKAIANgIACyABQRBqJAAgAA8LEPgMAAsQ+QwAC0EEQRBB0IHEACgCACIAQZcHIAAbEQAAAAumAQEFfSACKgIAIgYgBpQgAioCBCIFIAWUkiACKgIIIgMgA5SSEJsBIQQgACADIASVIgcgASoCDCIDlCABKAIIQf////8HcSAHvEGAgICAeHFyvpI4AgggACADIAUgBJUiBZQgASgCBEH/////B3EgBbxBgICAgHhxcr6SOAIEIAAgAyAGIASVIgSUIAEoAgBB/////wdxIAS8QYCAgIB4cXK+kjgCAAuXAQEJfSACKgIAIgQgASoCACIGlCACKgIEIgUgASoCBCIHlJIgASoCCCIIIAIqAggiA5SSIAQgASoCDCIJlCAFIAFBEGoqAgAiCpSSIAMgAUEUaioCACILlJJeIQIgACAIIAsgAhsgAyABKgIYIgOUkjgCCCAAIAcgCiACGyAFIAOUkjgCBCAAIAYgCSACGyAEIAOUkjgCAAueAQEGfQJAAkACQCACKgIAIgMgA5QgAioCCCIEIASUkhCbASIHQwAAAABcBEAgASoCACIFIAIqAgSUIgggBCAEIAeVIAEqAgQiBJQiBpQgAyADIAeVIASUIgOUIAiTkl4NASAFjCEFDAMLIAEqAgAgAioCBJghBQwBC0MAAAAAIQYLQwAAAAAhAwsgACAGOAIIIAAgBTgCBCAAIAM4AgALngEBB30CQAJAAkAgAioCACIFIAWUIAIqAggiBiAGlJIQmwEiB0MAAAAAXARAIAEqAgAiBCACKgIElCIDIAUgB5UgASoCBCIJlCIIIAWUIAOTIAYgBiAHlSAJlCIDlJJeDQEgBIwhBAwDCyABKgIAIAIqAgSYIQQMAQtDAAAAACEDC0MAAAAAIQgLIAAgAzgCCCAAIAQ4AgQgACAIOAIAC2IAIABBIGooAgAEQCAAKAIcEJoCCyAAKAIMBEAgACgCCBCaAgsgAEEsaigCAARAIAAoAigQmgILIABBOGooAgAEQCAAQTRqKAIAEJoCCyAAQcQAaigCAARAIAAoAkAQmgILC3gBBn8CQCAABEAgACgCAA0BIABBIGooAgAhASAAQRxqKAIAIQIgAEEUaigCACEDIABBEGooAgAhBCAAQQhqKAIAIQUgACgCBCEGIAAQmgIgBQRAIAYQmgILIAMEQCAEEJoCCyABBEAgAhCaAgsPCxD4DAALEPkMAAuiAQICfwF+AkACQCAABEAgACgCAA0BIABBfzYCACAAQQRqIAG9IgWnIAVCIIinEIsHIgNFDQIgAkH//wNxIQQCQCACQRB2IgIgA0HQAGooAgBGBEAgA0HUAGooAgAgBEYNAQsgAyAENgJUIAMgAjYCUCADIAMoAnBBEHI2AnALIABBADYCAA8LEPgMAAsQ+QwAC0GEtsAAQcwAQYi3wAAQ4QkAC64BAQR/IwBB4ABrIgIkAAJAAkAgAARAIAAoAgANASAAQQA2AgAgAEGMA2oiBCgCACEDIARBADYCACADBEAgAiAAQZADakHgABCIDSEAQZH7wwAtAAAaQegAQQQQggwiAUUNAyABIAM2AgQgAUEANgIAIAFBCGogAEHgABCIDRoLIAJB4ABqJAAgAQ8LEPgMAAsQ+QwAC0EEQegAQdCBxAAoAgAiAEGXByAAGxEAAAALwAICB30BfyAAIAEqAhgiAyADIAEqAgwiBCAEIAEqAgAiAiACIARdIgkbIAIgAlwbIgUgAyAFXhsgBSAFXBs4AgwgACACIAIgBCAJGyAEIARcGyICIAIgAyACIANdGyADIANcGzgCACAAQRRqIAFBIGoqAgAiBiIEIAQgAUEUaioCACIHIgIgAiABKgIIIgUiAyACIANeGyADIANcGyICIAIgBF0bIAIgAlwbOAIAIABBEGogAUEcaioCACIDIAMgAUEQaioCACIEIAQgASoCBCICIAIgBF0bIAIgAlwbIgggAyAIXhsgCCAIXBs4AgAgACAFIAUgByAFIAddGyAHIAdcGyIFIAUgBiAFIAZdGyAGIAZcGzgCCCAAIAIgAiAEIAIgBF0bIAQgBFwbIgIgAiADIAIgA10bIAMgA1wbOAIEC5YBAQN/IwBBgAFrIgMkACAAKAIAIQADQCACIANqQf8AaiAAQQ9xIgRBMEHXACAEQQpJG2o6AAAgAkEBayECIABBEEkhBCAAQQR2IQAgBEUNAAsgAkGAAWoiAEGAAUsEQCAAQYABQdzdwwAQ4ggACyABQQFBv93DAEECIAIgA2pBgAFqQQAgAmsQjQIhACADQYABaiQAIAALlQEBA38jAEGAAWsiAyQAIAAoAgAhAANAIAIgA2pB/wBqIABBD3EiBEEwQTcgBEEKSRtqOgAAIAJBAWshAiAAQRBJIQQgAEEEdiEAIARFDQALIAJBgAFqIgBBgAFLBEAgAEGAAUHc3cMAEOIIAAsgAUEBQb/dwwBBAiACIANqQYABakEAIAJrEI0CIQAgA0GAAWokACAAC6MBAgF/AX4CQAJAAkAgAEUNACAAKAIADQEgAEF/NgIAIAJFDQAgAigCACIDQX9GDQEgAiADQQFqNgIAIABBBGogAb0iBKcgBEIgiKcQ1AgiA0UNAiADQZgBaiACKQIENwIAIANBoAFqIAJBDGooAgA2AgAgAiACKAIAQQFrNgIAIABBADYCAA8LEPgMAAsQ+QwAC0GUssAAQdAAQaSzwAAQ4QkAC6MBAgF/AX4CQAJAAkAgAEUNACAAKAIADQEgAEF/NgIAIAJFDQAgAigCACIDQX9GDQEgAiADQQFqNgIAIABBBGogAb0iBKcgBEIgiKcQ1AgiA0UNAiADQbQBaiACKQIENwIAIANBvAFqIAJBDGooAgA2AgAgAiACKAIAQQFrNgIAIABBADYCAA8LEPgMAAsQ+QwAC0GUssAAQdAAQaSzwAAQ4QkAC+QDAgl/AX4CQAJAIAAEQCAAKAIAIgNBf0YNASAAIANBAWo2AgAgAb0iDKchAyAMQiCIpyEGIAK9IgynIQUgDEIgiKchCQJAIABBBGoiBEFAaygCACIHIANNDQAgBCgCOCIIRQ0AIAUgB08NACAIIANBDGxqIgMoAgAgBkcNACAJIAggBUEMbGoiBygCAEcNACAEQRBqKAIAIgggA0EEaigCACIGTQ0AIARBFGooAgAiBUUNACAHKAIEIQkCQCAEKAIIIgcgBkEEdGooAggiAyAEQRxqKAIAIgRJBEADQCAFIANBOGxqIgtBDGooAgAgCUYNAiAEIAsoAgAiA0sNAAsLIAQgByAGQQR0akEAIAYgCEkbQQxqKAIAIgNNDQEgBUEEaiEGA0AgA0E4bCILIAVqKAIIIAlGDQEgBCAGIAtqKAIAIgNLDQALDAELIAMgBE8NACAIIAUgA0E4bGooAghNDQAgB0UNACAFIANBOGxqIgNBEGpBACAIIANBDGooAgBLGyEKCyAAIAAoAgBBAWs2AgAgCkUEQEEADwtBkfvDAC0AABpBCEEEEIIMIgBFDQIgACAKNgIEIABBADYCACAADwsQ+AwACxD5DAALQQRBCEHQgcQAKAIAIgBBlwcgABsRAAAAC5sBAgJ/A34jAEEgayIBJAACQCAABEAgACgCACICQX9GDQEgACACQQFqNgIAIABBDGopAgAhAyAAQRRqKQIAIQQgACkCBCEFIAFBBhATNgIEIAEgBDcCGCABIAM3AhAgASAFNwIIIAFBBGogAUEIakEGELEHIAEoAgQhAiAAIAAoAgBBAWs2AgAgAUEgaiQAIAIPCxD4DAALEPkMAAthAQF/IABBCGooAgAiAQRAIAAoAgQgAUECdEELakF4cWsQmgILIABBGGooAgAEQCAAQRRqKAIAEJoCCyAAQSRqKAIABEAgACgCIBCaAgsgAEEwaigCAARAIAAoAiwQmgILC5oBAQJ/AkACQCAARQ0AIAAoAgANASAAQX82AgAgAkUNACACKAIAIgNBf0YNASACIANBAWo2AgACQCAAQQxqKAIAIAFNDQAgAEEEaigCACIERQ0AIAQgAUHUAWxqIgEgAikCBDcCXCABQeQAaiACQQxqKAIANgIAIAIoAgBBAWshAwsgAiADNgIAIABBADYCAA8LEPgMAAsQ+QwAC5oBAQJ/AkACQCAARQ0AIAAoAgANASAAQX82AgAgAkUNACACKAIAIgNBf0YNASACIANBAWo2AgACQCAAQQxqKAIAIAFNDQAgAEEEaigCACIERQ0AIAQgAUHUAWxqIgEgAikCBDcCaCABQfAAaiACQQxqKAIANgIAIAIoAgBBAWshAwsgAiADNgIAIABBADYCAA8LEPgMAAsQ+QwAC5oBAQJ/AkACQCAARQ0AIAAoAgANASAAQX82AgAgAkUNACACKAIAIgNBf0YNASACIANBAWo2AgACQCAAQQxqKAIAIAFNDQAgAEEEaigCACIERQ0AIAQgAUHUAWxqIgEgAikCBDcCdCABQfwAaiACQQxqKAIANgIAIAIoAgBBAWshAwsgAiADNgIAIABBADYCAA8LEPgMAAsQ+QwAC5gBAgF/AX4CQAJAAkAgAARAIAAoAgAiA0F/Rg0BIAAgA0EBajYCACACQQZPDQIgAEEEaiABvSIEpyAEQiCIpxDUCCIDRQ0DIANB6QJqLQAAIQMgACAAKAIAQQFrNgIAQQEgAnRB/wFxIgAgA3EgAEYPCxD4DAALEPkMAAtBxrfAAEEZEPcMAAtBlLLAAEHQAEGUs8AAEOEJAAu/AQICfwF+IwBBEGsiBSQAAkACQAJAIAAEQCAAKAIADQEgAEF/NgIAIAJBBk8NAiAAQQRqIAG9IgenIAdCIIinENQIIgZFDQMgBSAEOAIMIAUgAzgCCCAGQTBqIgYgBi0AuQJBASACQf8BcSICdHI6ALkCIAYgAkEMbGpBEGogBUEIaikCADcCACAAQQA2AgAgBUEQaiQADwsQ+AwACxD5DAALQca3wABBGRD3DAALQZSywABB0ABBpLPAABDhCQALnQECAn8BfgJAAkACQCAABEAgACgCACIDQX9GDQEgACADQQFqNgIAIABBBGogAb0iBacgBUIgiKcQlwoiA0UNAiADQbgCaigCACIEIAJNDQMgA0GwAmooAgAgAkEDdGorAgAhASAAIAAoAgBBAWs2AgAgAQ8LEPgMAAsQ+QwAC0HstMAAQc0AQeS1wAAQ4QkACyACIARBiLjAABDjCAALngECAn8BfgJAAkAgAARAIAAoAgANASAAQX82AgAgAEEEaiABvSIFpyAFQiCIpxCLByIDRQ0CIAJB//8DcSEEAkAgAkEQdiICIAMoAkhGBEAgA0HMAGooAgAgBEYNAQsgAyAENgJMIAMgAjYCSCADIAMoAnBBEHI2AnALIABBADYCAA8LEPgMAAsQ+QwAC0GEtsAAQcwAQYi3wAAQ4QkAC7UGAQl/IwBBIGsiBiQAIAYgATYCECAGIAE2AgwgBiAANgIIIAYgAzYCHCAGIAM2AhggBiACNgIUIAZBFGohCkEAIQFBACEDIwBBIGsiByQAIAZBCGoiCygCACEMAkACQAJAAkACQAJAAkACQCALKAIIIgBFBEBBBCECDAELQQQhAgJAIAAgAEEDbiIBQQNsRyABaiIDRQ0AIANBqtWq1QBLDQQgA0EMbCIBQQBIDQQgAUUNAEGR+8MALQAAGiABQQQQggwiAkUNAgtBACEBA0AgAEECTQ0DIAIgBWoiCCAFIAxqIgkqAgA4AgAgCEEEaiAJQQRqKQIANwIAIAVBDGohBSABQQFqIQEgAEEDayIADQALCyAHIAE2AhwgByADNgIYIAcgAjYCFCAKKAIAIQMCQCAKKAIIIgVFBEAgByAHQRRqQQRBACAEEKgIIAcoAgQhBSAHKAIAIQAMAQtBACEIQQQhAgJAIAUgBUEDbiIAQQNsRyAAaiIJRQ0AIAlBqtWq1QBLDQQgCUEMbCIAQQBIDQQgAEUNAEGR+8MALQAAGiAAQQQQggwiAkUNBQsgAiEAIAMhAQNAQQMgBSAFQQNPGyINQQFGDQYgBUECTQ0HIAAgASgCADYCACAAQQRqIAEpAgQ3AgAgAEEMaiEAIAhBAWohCCABIA1BAnRqIQEgBSANayIFDQALIAdBCGogB0EUaiACIAggBBCoCCAHKAIMIQUgBygCCCEAIAlFDQAgAhCaAgsgCigCBARAIAMQmgILIAsoAgQEQCAMEJoCCyAGIAA2AgAgBiAFNgIEIAdBIGokAAwGC0EEIAFB0IHEACgCACIAQZcHIAAbEQAAAAtB7JvAAEHLAEGoncAAEKELAAsQ2woAC0EEIABB0IHEACgCACIAQZcHIAAbEQAAAAtBAUEBQcy6wAAQ4wgAC0ECQQJB3LrAABDjCAALAkACQCAGKAIAIgBFBEBBACEBDAELIAYoAgQhAkGR+8MALQAAGkEMQQQQggwiAUUNASABIAI2AgggASAANgIEIAFBADYCAAsgBkEgaiQAIAEPC0EEQQxB0IHEACgCACIAQZcHIAAbEQAAAAuj3QMCa38efiMAQbAEayIhJAACQAJAIAAEQCAAKAIAIgRBf0YNASAAIARBAWo2AgAjAEGwDGsiHiQAIB4gATYCBCAeQQhqIQQCQAJAAkACQAJAAkAgHkEEaigCACIIEA8iAUUEQEEBIQUMAQsgAUEASA0DQZH7wwAtAAAaIAFBARCCDCIFRQ0BCxAVIgkQCyIKEA0hBiAKQYQBTwRAIAoQAgsgBiAIIAUQDiAGQYQBTwRAIAYQAgsgCUGEAU8EQCAJEAILIAQgCBAPNgIIIAQgATYCBCAEIAU2AgAMAQtBASABQdCBxAAoAgAiAEGXByAAGxEAAAALIB4oAgghTCAeIB4oAhA2AowDIB4gTDYCiAMgHkGACGohKSMAQeAIayICJAAgAiAeQYgDaiIQNgIIAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAoAgQiBEEESQ0AIBAoAgAhASAQIARBBGsiBTYCBCAQIAFBBGo2AgAgBUEESQ0AIAEoAAAhTSAQIARBCGsiBTYCBCAQIAFBCGo2AgAgBUEESQ0AIAE1AAQhbiAQIARBDGsiBTYCBCAQIAFBDGo2AgAgAkEHNgIMAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBUEETwRAIAE1AAghcCAQIARBEGsiBTYCBCAQIAFBEGo2AgAgBUEESQ0NIAEoAAwhTiAQIARBFGsiBTYCBCAQIAFBFGo2AgAgBUEESQ0MIAEoABAhTyAQIARBGGsiBTYCBCAQIAFBGGo2AgAgBUEESQ0LIAEoABQhUCAQIARBHGsiBTYCBCAQIAFBHGo2AgAgBUEESQ0KIAEoABghUSAQIARBIGsiBTYCBCAQIAFBIGo2AgAgBUEESQ0JIAEoABwhUiAQIARBJGsiBTYCBCAQIAFBJGo2AgAgBUEESQ0IIAEoACAhUyAQIARBKGsiBTYCBCAQIAFBKGo2AgAgBUEESQ0HIAEoACQhVCAQIARBLGsiBTYCBCAQIAFBLGo2AgACQCAFQQRPBEAgASgAKCFVIBAgBEEwayIFNgIEIBAgAUEwajYCACAFQQhJDQggASgALCFWIBAgBEE4ayIFNgIEIBAgAUE4ajYCACABKQAwIm1C/////w9YBEAgbaciVw0CCyACQQE6AKAEIAIgbTcDqAQgAkGgBGogAkHfCGpB7ILAABCpCCEEDCELIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBAwgCyAFQQhJDQUgECAEQUBqIgU2AgQgECABQUBrNgIAIAEpADgibUKAgICAEFoEQCACQQE6AKAEIAIgbTcDqAQgAkGgBGogAkHfCGpBtIDAABCpCCEEDCALIAVBCEkNBCAQIARByABrIgU2AgQgECABQcgAajYCACABKQBAInJCgICAgBBaBEAgAkEBOgCgBCACIHI3A6gEIAJBoARqIAJB3whqQbSAwAAQqQghBAwgCyAFQQhJDQMgECAEQdAAayIFNgIEIBAgAUHQAGo2AgAgASkASCJ1QoCAgIAQWgRAIAJBAToAoAQgAiB1NwOoBCACQaAEaiACQd8IakG0gMAAEKkIIQQMIAsgBUEISQ0CIBAgBEHYAGs2AgQgECABQdgAajYCACABKQBQInZCgICAgBBaBEAgAkEBOgCgBCACIHY3A6gEIAJBoARqIAJB3whqQbSAwAAQqQghBAwgCyACQQY2AgwgAkEFNgJgIAIgEDYCXCACQaAEaiACQdwAahD1AiACKAKkBCEBAkAgAigCoAQEQCABIQQMAQsgAUUEQEEAQZCKwABB3ILAABDvByEEDAELIAJBqARqIgQpAgAhcSACQawEaigCACEGIAQoAgAhCSACQaAEaiACQdwAahD1AiACKAKkBCEFAkAgAigCoAQEQCAFIQQMAQsgBUUEQEEBQZCKwABB3ILAABDvByEEDAELIAJBqARqKQIAIW8gAkGgBGogAkHcAGoQgAMgAigCpAQhCAJAIAIoAqAEBEAgCCEEDAELIAhFBEBBAkGQisAAQdyCwAAQ7wchBAwBCyACQagEaikCACFzIAJBoARqIAJB3ABqEIADIAIoAqQEIQ0CQCACKAKgBARAIA0hBAwBCyANRQRAQQNBkIrAAEHcgsAAEO8HIQQMAQsgAkGoBGopAgAhdAJ/IAIoAmAEQCACKAJcIgQoAgQiCkEDSw0HIAJCgcqAgMAANwOgBCACQaAEahDqCgwBC0EEQZCKwABB3ILAABDvBwshBCB0p0UNACANEJoCCyBzp0UNACAIEJoCCyBvp0UNACAFEJoCCyBxp0UNACABEJoCCyApQQI2AgAgKSAENgIEDCALIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBAweCyAEIApBBGs2AgQgBCAEKAIAIg5BBGo2AgAgAkIANwJQIAJCgICAgMAANwJIIAJCBDcCQCACIHQ3AjggAiANNgI0IAIgczcCLCACIAg2AiggAiBvNwIgIAIgBTYCHCACIAY2AhggAiAJNgIUIAIgATYCECACIA4oAAA2AlggAkEFNgIMIBAoAgQiAUEHTQRAIAJCgcqAgIABNwOgBCACQaAEahDqCiEBDBwLIBAgAUEIazYCBCAQIBAoAgAiAUEIajYCACACQcgFaiABKQAAENIFIAIoAswFIQkgAigCyAUEQCAJIQEMHAsCQAJAQZe6ASAJIAlBl7oBTxsiCkUEQEEEIREMAQtBkfvDAC0AABogCkEsbCIBQQQQggwiEUUNAQsgAkEANgKoByACIAo2AqQHIAIgETYCoAcCQAJAAkACQAJAAkACQAJAIAkEQCACQaAEaiIBQQRqIRggAkHUBGohGSABQRRqIRMgAkHkBGohCiACQcgBaiEPIAJByAJqIRUgAkHICGohFANAAkACQAJAAkAgECgCBCIBQQRPBEAgECABQQRrIgU2AgQgECAQKAIAIgRBBGo2AgAgBCgAACILDgICAwELIAJCgcqAgMAANwOgBCACQaAEahDqCiEBDCkLIAJBAToAoAQgAiALrTcDqAQgAkGgBGpBzIjAAEHcgsAAEKkIIQEMKAsgBUEESQ0LIBAgAUEIayIFNgIEIBAgBEEIajYCACAFQQRJBEAgAkKByoCAwAA3A6AEIAJBoARqEOoKIQEMKAsgBCgABCENIBAgAUEMayIBNgIEIBAgBEEMaiIFNgIAIAQoAAghDgwBCyAFRQ0lIBAgAUEFayIBNgIEIBAgBEEFaiIFNgIAQQAhDQJAAkAgBC0ABCIEDgICAQALQZH7wwAtAAAaQRBBBBCCDCIBRQ0vIAEgBDYCBCABQQQ6AAAMJwsgAiAQNgKQCCACQQM2AowCIAIgEDYCiAIgAkGwCGogAkGIAmoQjgIgAigCtAghDiACKAKwCARAIA4hAQwnCyAORQRAQQAgAkHfCGpB4LHAABDvByEBDCcLIAIoAsQIIQUgAigCwAghBiACKAK8CCEHIAIoArgIIQggAkGwAmogAkGIAmoQjgIgAigCtAIhAQJAIAIoArACRQRAIAENAUEBIAJB3whqQeCxwAAQ7wchASAIBEAgDhCaAgsgBUUNKCAGEJoCDCgLIAgEQCAOEJoCCyAFRQ0nIAYQmgIMJwsgAigCxAIhDSACKALAAiEMIAIoArwCIRsgAigCuAIhEiACQcABaiACQYgCahCOAiACKALEASEEIAIoAsABBEAgEgRAIAEQmgILIA0EQCAMEJoCCyAIBEAgDhCaAgsgBUUEQCAEIQEMKAsgBhCaAiAEIQEMJwsgBEUNJCAKIA8pAgA3AgAgEyAUKQIANwIAIBkgFSkCADcCACAKQRhqIA9BGGooAgA2AgAgCkEQaiAPQRBqKQIANwIAIApBCGogD0EIaikCADcCACATQQhqIBRBCGooAgA2AgAgGUEIaiAVQQhqKAIANgIAIAIgBDYC4AQgAiANNgLQBCACIAw2AswEIAIgGzYCyAQgAiASNgLEBCACIAE2AsAEIAIgBTYCsAQgAiAGNgKsBCACIAc2AqgEIAIgCDYCpAQgAiAONgKgBCACQQU2ApQIIAJBAjYCtAIgAiAQNgKwAiACQcABaiACQbACahCrAyACKALEASEEIAIoAsABBEAgBCEBDCQLIARFBEBBAEHUgsAAQdyCwAAQ7wchAQwkCyACKQLIASFzAkAgAigCtAIEQCACKAKwAiIBKAIEIgVBCEkNCyACNQLMASFxIAIoAsgBIQwgASAFQQhrNgIEIAEgASgCACIBQQhqNgIAIAEpAAAib0KAgICAEFQNASACQQE6AMABIAIgbzcDyAEgAkHAAWogAkHfCGpBtIDAABCpCCEBDCQLQQFB1ILAAEHcgsAAEO8HIQEMIwsgAkHAAWogAkGQCGoQqwMgAigCxAEhBSACKALAAQRAIAUhAQwiCyAFRQRAQQJBqI3AAEHcgsAAEO8HIQEMIgsgAikCyAEhcwJAIAIoApQIIg0EQCACKAKQCCIBKAIEIghBA0sNASACQoHKgIDAADcDwAEgAkHAAWoQ6gohAQwiC0EDQaiNwABB3ILAABDvByEBDCELIAEgCEEEayISNgIEIAEgASgCACIGQQRqNgIAAkAgDUEBRwRAIBINASACQoHKgIAQNwPAASACQcABahDqCiEBDCILQQRBqI3AAEHcgsAAEO8HIQEMIQsgBigAACEdIAEgCEEFayISNgIEIAEgBkEFajYCAAJAAkAgDUECRwRAIBJFDQsgBi0ABCElIAEgCEEGayIbNgIEIAEgBkEGajYCACAGLQAFIihBAk8EQEGR+8MALQAAGkEQQQQQggwiAUUNMiABICg6AAEgAUECOgAADCQLIA1BA0YNASAbQQhJDQogASAIQQ5rNgIEIAEgBkEOajYCACAGKQAGInRCgICAgBBUDQIgAkEBOgDAASACIHQ3A8gBIAJBwAFqIAJB3whqQbSAwAAQqQghAQwjC0EFQaiNwABB3ILAABDvByEBDCILQQZBqI3AAEHcgsAAEO8HIQEMIQsgAkHIBWogGEHcABCIDRpBkfvDAC0AABpBlAFBBBCCDCINRQ0GIA0gDjYCACANQQRqIAJByAVqQdwAEIgNGiANIChBAEc6AJEBIA0gJToAkAEgDSBzNwKIASANIAU2AoQBIA1BADYCgAEgDUIENwJ4IA0gdD4CdCANIB02AnAgDSBvQiCGIHGENwJoIA0gDDYCZCANIAQ2AmAgECgCACEFIBAoAgQhAQsgAUEESQ0EIBAgAUEEayIENgIEIBAgBUEEajYCACAEQQRJDQQgBSgAACEEIBAgAUEIayIGNgIEIBAgBUEIajYCACAGQQRJDQQgBTUABCFvIBAgAUEMayIGNgIEIBAgBUEMajYCAAJAAkAgBkEESQ0AIAU1AAghcSAQIAFBEGsiBjYCBCAQIAVBEGo2AgAgBkEESQ0AIAUoAAwhBiAQIAFBFGsiCDYCBCAQIAVBFGo2AgAgCEEETw0BCyACQQA6AKMEIAJBJTsAoQQgAkEENgKkBCACQQE6AKAEDB8LIAU1ABAhcyAQIAFBGGsiCDYCBCAQIAVBGGo2AgAgCEEESQ0DIAU1ABQhdCAQIAFBHGsiCDYCBCAQIAVBHGo2AgAgCEUNAiAFKAAYIQcgECABQR1rIgg2AgQgECAFQR1qNgIAIAhFBEAgAkKByoCAEDcDoAQMHwsgcUIghiBvhCFvIHRCIIYgc4QhcSAFLQAcIQggECABQR5rNgIEIBAgBUEeajYCACAFLQAdIQUgAigCpAcgA0YEQCACQaAHaiADEK0GIAIoAqAHIREgAigCqAchAwsgESADQSxsaiIBIAU6ACkgASAIOgAoIAEgBzYCJCABIHE3AhwgASAGNgIYIAEgbzcCECABIAQ2AgwgASAONgIIIAEgDTYCBCABIAs2AgAgAiADQQFqIgM2AqgHIAlBAWsiCQ0ACyACKAKgByERIAIoAqQHIQoLIBFFBEAgCiEBDCULIBAoAgQiBEEDTQRAIAJCgcqAgMAANwOgBCACIAJBoARqEOoKIgE2AsAGIAMEQCARIQQDQAJAIAQoAgBFDQAgBEEEaigCACIFRQ0AIAUQ7QgLIARBLGohBCADQQFrIgMNAAsLIApFDSUgERCaAgwlCyAQIARBBGsiBTYCBCAQIBAoAgAiAUEEajYCACACIAEoAAA2AsgGIAIgCq0gA61CIIaENwPABiACKQLEBiJ9pyEgIAVBB00EQCACQoHKgICAATcDoAQgAkGgBGoQ6gohAQwcCyAQIARBDGs2AgQgECABQQxqNgIAIAJByAVqIAEpAAQQ0gUgAigCzAUhCyACKALIBQRAIAshAQwcC0EEIQYCQEGAgAEgCyALQYCAAU8bIgQEQEGR+8MALQAAGiAEQQZ0IglBBBCCDCIGRQ0BCyBwQiCGIG6EIYIBIG2nIVggcqchWSB1pyFaIHanIVsgfUIgiKchNCACQQA2ArgCIAIgBDYCtAIgAiAGNgKwAiACQbAEaiE1QQAhAwJAAkACQANAQQIhBUEAIQwgCwRAIBAoAgQiBEUEQCACQoHKgIAQNwOgBCACQaAEahDqCiEBDCELIBAgBEEBayIFNgIEIBAgECgCACIBQQFqNgIAIAVFBEAgAkKByoCAEDcDoAQgAkGgBGoQ6gohAQwhCyABLQAAIScgECAEQQJrIgU2AgQgECABQQJqNgIAIAVFDR8gAS0AASEyIBAgBEEDayIJNgIEIBAgAUEDaiIINgIAAkACQAJAIAEtAAIiLA4CAgEAC0GR+8MALQAAGkEQQQQQggwiAUUNBiABICw2AgQgAUEEOgAADCILIAlFDQQgECAEQQRrIgk2AgQgECABQQRqIgg2AgAgAS0AAyEoCwJAAkACQCAJBEAgECAJQQFrIgE2AgQgECAIQQFqIgU2AgAgCC0AACIvDgIDAgELIAJCgcqAgBA3A6AEIAJBoARqEOoKIQEMIwtBkfvDAC0AABpBEEEEEIIMIgFFDTMgASAvNgIEIAFBBDoAAAwiCyABRQ0DIBAgCUECayIBNgIEIBAgCEECaiIFNgIAIAgtAAEhJgsgAUEDTQRAIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohAQwhCyAQIAFBBGsiBDYCBCAQIAVBBGo2AgACQAJAIARBB00EQCACQoHKgICAATcDoAQgAkGgBGoQ6gohAQwBCyAFKAAAIS0gECABQQxrIhM2AgQgECAFQQxqIgM2AgAgAkHIBWogBSkABBDSBSACKALMBSEBIAIoAsgFDQBBBCENQQAhBwJAIAFFBEBB4JrAACEIQQAhDkEAIQlBACEFDAELIAJByAVqIAEQ5wMgAigCyAUiCARAIAIoAtQFIQULIAFB5syZM0sNPyABQRRsIgZBAEgNPyACKALQBSEJIAIoAswFIQ4gBkUNAEGR+8MALQAAGiAGQQQQggwiDUUNMQsgAkEANgK4BCACIAE2ArQEIAIgDTYCsAQgAiAFNgKsBCACIAk2AqgEIAIgDjYCpAQgAiAINgKgBCABBEBBACEGA0ACQAJ/AkACQCATQQRJDQAgECATQQRrIgQ2AgQgECADQQRqNgIAIARBBEkNACADKAAAIRkgECATQQhrIgQ2AgQgECADQQhqNgIAIARBA0sNAQsgAkKByoCAwAA3A8gFIAJByAVqEOoKDAELIAMoAAQhFSAQIBNBDGsiBDYCBCAQIANBDGo2AgAgBEEDSw0BIAJCgcqAgMAANwPIBSACQcgFahDqCgshASACKAKkBCIEBEAgAigCoAQgBEECdEELakF4cWsQmgILIAIoArQERQ0DIAIoArAEEJoCDAMLIAFBAWshASADKAAIIRYgECATQRBrIhM2AgQgECADQRBqIhs2AgAgAigCoAQiEkEEayEIIBYgFSAZQcrKn4l6c0G5893xeWxBBXdzQbnz3fF5bEEFd3NBufPd8XlsIhhBGXYiJa1CgYKEiJCgwIABfiFvIAMoAAwhHUEAIRQgAigCpAQhCSAYIQMCQANAAkAgAyAJcSIEIBJqKQAAIm0gb4UibkKBgoSIkKDAgAF9IG5Cf4WDQoCBgoSIkKDAgH+DIm5QDQACQANAIAggbnqnQQN2IARqIAlxQQJ0aygCACIFIAZJBEACQCAZIA0gBUEUbGoiBSgCBEcNACAVIAVBBGoiDigCBEcNACAWIA4oAghGDQMLIG5CAX0gboMibkIAUg0BDAMLCyAFIAZBzJvAABDjCAALIAUgHTYCEAwCCyBtIG1CAYaDQoCBgoSIkKDAgH+DUARAIAQgFEEIaiIUaiEDDAELCyASIAkgGHEiBWopAABCgIGChIiQoMCAf4MiblAEQEEIIQMDQCADIAVqIQQgA0EIaiEDIBIgBCAJcSIFaikAAEKAgYKEiJCgwIB/gyJuUA0ACwsgEiBueqdBA3YgBWogCXEiA2osAAAiBEEATgRAIBIgEikDAEKAgYKEiJCgwIB/g3qnQQN2IgNqLQAAIQQLAkAgBEEBcSIcRQ0AIAIoAqgEDQBBACESIwBBIGsiByQAAkAgAkGgBGoiDigCDCIUQQFqIgVFBEAQigogBygCCBoMAQsgDigCBCIJQQFqIgRBA3YhAwJAAkACQAJAIAkgA0EHbCAJQQhJGyIPQQF2IAVJBEAgB0EQaiAFIA9BAWoiBCAEIAVJGxDnAyAHKAIUIQggBygCECIERQ0FIAdBGGooAgAgFGshDAJAIAlBf0cEQCAOKAIAIg9BBGshFANAIA8gEmosAABBAE4EQCAUIBJBAnQiF2soAgAiBSAGTw0FIAQgDSAFQRRsaigCACIaIAhxIgNqKQAAQoCBgoSIkKDAgH+DIm1QBEBBCCEFA0AgAyAFaiEDIAVBCGohBSAEIAMgCHEiA2opAABCgIGChIiQoMCAf4MibVANAAsLIAQgbXqnQQN2IANqIAhxIgVqLAAAQQBOBEAgBCkDAEKAgYKEiJCgwIB/g3qnQQN2IQULIAQgBWogGkEZdiIDOgAAIAVBCGsgCHEgBGpBCGogAzoAACAEIAVBAnRrQQRrIA8gF2tBBGsoAAA2AAALIAkgEkYhBSASQQFqIRIgBUUNAAsgDiAMNgIIIA4gCDYCBCAOIAQ2AgAgCQ0BDAYLIA4gDDYCCCAOIAg2AgQgDigCACEPIA4gBDYCAAsgDyAJQQJ0QQtqQXhxaxCaAgwEC0EAIQUgDigCACEIAkAgAyAEQQdxQQBHaiIDRQ0AIANBAXEhEiADQQFHBEAgA0H+////A3EhAwNAIAUgCGoiDCkDACFtIAwgbUJ/hUIHiEKBgoSIkKDAgAGDIG1C//79+/fv37//AIR8NwMAIAxBCGoiDCkDACFtIAwgbUJ/hUIHiEKBgoSIkKDAgAGDIG1C//79+/fv37//AIR8NwMAIAVBEGohBSADQQJrIgMNAAsLIBJFDQAgBSAIaiIFKQMAIW0gBSBtQn+FQgeIQoGChIiQoMCAAYMgbUL//v379+/fv/8AhHw3AwALIARBCE8EQCAEIAhqIAgpAAA3AAAMAgsgCEEIaiAIIAQQig0aIAlBf0cNAUEAIQ8MAgsgBSAGQdybwAAQ4wgACyAIQQRrIR9BACEFA0ACQCAIIAUiBGoiEi0AAEGAAUcNAAJAAkAgBiAfIARBAnQiA2siIigCACIFSwRAIAggA2tBBGshDANAIAggDSAFQRRsaigCACIXIAlxIhoiA2opAABCgIGChIiQoMCAf4MibVAEQEEIIQUDQCADIAVqIQMgBUEIaiEFIAggAyAJcSIDaikAAEKAgYKEiJCgwIB/gyJtUA0ACwsgCCBteqdBA3YgA2ogCXEiA2osAABBAE4EQCAIKQMAQoCBgoSIkKDAgH+DeqdBA3YhAwsgAyAaayAEIBprcyAJcUEISQ0DIAggA0ECdGtBBGshBSADIAhqIhotAAAhIyAaIBdBGXYiFzoAACADQQhrIAlxIAhqQQhqIBc6AAAgI0H/AUYNAiAMLQAAIQMgDCAFLQAAOgAAIAUgAzoAACAMLQABIQMgDCAFLQABOgABIAUgAzoAASAMLQACIQMgDCAFLQACOgACIAUgAzoAAiAMLQADIQMgDCAFLQADOgADIAUgAzoAAyAGICIoAgAiBUsNAAsLIAUgBkHcm8AAEOMIAAsgEkH/AToAACAEQQhrIAlxIAhqQQhqQf8BOgAAIAUgDCgAADYAAAwBCyASIBdBGXYiBToAACAEQQhrIAlxIAhqQQhqIAU6AAALIARBAWohBSAEIAlHDQALCyAOIA8gFGs2AggLCyAHQSBqJAAgGCACKAKkBCIJcSINIAIoAqAEIhJqKQAAQoCBgoSIkKDAgH+DIm5QBEBBCCEDA0AgAyANaiEEIANBCGohAyASIAQgCXEiDWopAABCgIGChIiQoMCAf4MiblANAAsLIBIgbnqnQQN2IA1qIAlxIgNqLAAAQQBIDQAgEikDAEKAgYKEiJCgwIB/g3qnQQN2IQMLIAMgEmogJToAACADQQhrIAlxIBJqQQhqICU6AAAgEiADQQJ0a0EEayAGNgIAIAIgAigCqAQgHGsiBDYCqAQgAiACKAKsBEEBaiIINgKsBCACKAK4BCEDAkAgBiACKAK0BCIFRw0AIAQgCGogA2siBCAGIANrTQRAIAYhBQwBCyADIARqIgUgA0kNQiAFQRRsIQggBUHnzJkzSUECdCEJIAIgBgR/IAIgAigCsAQ2AsgFIAIgBkEUbDYC0AVBBAVBAAs2AswFIAJBwAFqIAkgCCACQcgFahDaBiACKALEASEEIAIoAsABRQRAIAIgBTYCtAQgAiAENgKwBAwBCyAGIQUgBEGBgICAeEYNACAERQ1CDEMLIAMgBUYEQCA1IAMQpQYgAigCuAQhAwsgAigCsAQiDSADQRRsaiIEIB02AhAgBCAWNgIMIAQgFTYCCCAEIBk2AgQgBCAYNgIAIAIgA0EBaiIGNgK4BAsgGyEDIAENAAsgAigCuAQhByACKAKwBCENIAIoAqQEIQ4gAigCoAQhCCACKAK0BCEBCyAIDQEgDiEBCyACKAK4AiEDIAIoArACIQYMIQsgC0EBayEMICxBAEchDyACKQKoBCFuIC9BAEchBQsgBUECRwRAIDKtQv8Bg0IohiAnrUL/AYNCIIaEIA+tQv8Bg0IwhoQgKK1COIaEIW0gAigCuAIiCSACKAK0AkYEQCACQbACaiAJEK4GIAIoArgCIQkLIAIoArACIgYgCUEGdGoiBCAmOgA9IAQgBToAPCAEIG03AjQgBEEANgIwIARCgICAgMAANwIoIARCBDcCICAEIAc2AhwgBCABNgIYIAQgDTYCFCAEIG43AgwgBCAONgIIIAQgCDYCBCAEIC02AgAgAiAJQQFqIgM2ArgCIAwhCwwBCwsgAigCtAIhByACKAKwAiIPRQRAIAchAQwgCyACKAK4AiEDIBAoAgQiBEUEQCACQoHKgIAQNwOgBCACQaAEahDqCiEBDB0LIBAgBEEBayIFNgIEIBAgECgCACIBQQFqNgIAIAVFBEAgAkKByoCAEDcDoAQgAkGgBGoQ6gohAQwdCyABLQAAISggECAEQQJrIgU2AgQgECABQQJqNgIAIAVBB00EQCACQoHKgICAATcDoAQgAkGgBGoQ6gohAQwdCyABLQABISYgECAEQQprIhQ2AgQgECABQQpqIgU2AgAgAkHIBWogASkAAhDSBSACKALMBSESIAIoAsgFBEAgEiEBDB0LQQAhDAJAIBJFBEBBBCEGQeCawAAhCUEAIQhBACEBQQAhDQwBCyACQcgFaiASEOcDAn8gAigCyAUiCQRAIAIoAtQFIQ0gAigCzAUhCCACKALQBQwBCyACKALMBSEIIAJB0AVqKAIACyEBIBJB////P0sNOyASQQR0Ig5BAEgNOyAORQRAQQQhBgwBC0GR+8MALQAAGiAOQQQQggwiBkUNOQsgAkEANgK4BCACIBI2ArQEIAIgBjYCsAQgAiANNgKsBCACIAE2AqgEIAIgCDYCpAQgAiAJNgKgBCASBEAgAkGwBGohJ0EAIQ4DQAJAAkACQCAUQQRPBEAgECAUQQRrIgE2AgQgECAFQQRqNgIAIAFBBEkNISAFKAAAIRYgECAUQQhrIgE2AgQgECAFQQhqNgIAIAFBA00NISASQQFrIRIgBSgABCEXIBAgFEEMayIUNgIEIBAgBUEMaiIdNgIAIAIoAqAEIhNBBGshCCAXIBZBufPd8XlsQQV3c0G5893xeWwiGEEZdiIlrUKBgoSIkKDAgAF+IW8gBSgACCEbQQAhCyACKAKkBCEBIBghBQJAA0AgASAFcSIEIBNqKQAAIm0gb4UibkKBgoSIkKDAgAF9IG5Cf4WDQoCBgoSIkKDAgH+DIW4DQCBuUARAIG0gbUIBhoNCgIGChIiQoMCAf4NCAFINAyAEIAtBCGoiC2ohBQwCCyAIIG56p0EDdiAEaiABcUECdGsoAgAiBSAOTw0EIG5CAX0gboMhbiAGIAVBBHRqIgUoAgAgFkcNACAFQQRqKAIAIBdHDQALCyAFIBs2AgwMBAsgEyABIBhxIglqKQAAQoCBgoSIkKDAgH+DIm5QBEBBCCEFA0AgBSAJaiEEIAVBCGohBSATIAEgBHEiCWopAABCgIGChIiQoMCAf4MiblANAAsLIBMgbnqnQQN2IAlqIAFxIgVqLAAAIgRBAE4EQCATIBMpAwBCgIGChIiQoMCAf4N6p0EDdiIFai0AACEECwJAIARBAXEiIkUNACACKAKoBA0AQQAhEyMAQSBrIhkkAAJAIAJBoARqIgkoAgwiGkEBaiIBRQRAEIoKIBkoAggaDAELIAkoAgQiCEEBaiIEQQN2IQ0CQAJAAkACQCAIIA1BB2wgCEEISRsiFUEBdiABSQRAIBlBEGogASAVQQFqIgQgASAESxsQ5wMgGSgCFCEFIBkoAhAiBEUNBSAZQRhqKAIAIBprIQwCQCAIQX9HBEAgCSgCACIVQQRrIRoDQCATIBVqLAAAQQBOBEAgGiATQQJ0IhxrKAIAIgEgDk8NBSAEIAYgAUEEdGooAggiHyAFcSINaikAAEKAgYKEiJCgwIB/gyJtUARAQQghAQNAIAEgDWohDSABQQhqIQEgBCAFIA1xIg1qKQAAQoCBgoSIkKDAgH+DIm1QDQALCyAEIG16p0EDdiANaiAFcSIBaiwAAEEATgRAIAQpAwBCgIGChIiQoMCAf4N6p0EDdiEBCyABIARqIB9BGXYiDToAACABQQhrIAVxIARqQQhqIA06AAAgBCABQQJ0a0EEayAVIBxrQQRrKAAANgAACyAIIBNGIQEgE0EBaiETIAFFDQALIAkgDDYCCCAJIAU2AgQgCSAENgIAIAgNAQwGCyAJIAw2AgggCSAFNgIEIAkoAgAhFSAJIAQ2AgALIBUgCEECdEELakF4cWsQmgIMBAtBACEBIAkoAgAhBQJAIA0gBEEHcUEAR2oiDUUNACANQQFxIRMgDUEBRwRAIA1B/v///wNxIQ0DQCABIAVqIgwpAwAhbSAMIG1Cf4VCB4hCgYKEiJCgwIABgyBtQv/+/fv379+//wCEfDcDACAMQQhqIgwpAwAhbSAMIG1Cf4VCB4hCgYKEiJCgwIABgyBtQv/+/fv379+//wCEfDcDACABQRBqIQEgDUECayINDQALCyATRQ0AIAEgBWoiASkDACFtIAEgbUJ/hUIHiEKBgoSIkKDAgAGDIG1C//79+/fv37//AIR8NwMACyAEQQhPBEAgBCAFaiAFKQAANwAADAILIAVBCGogBSAEEIoNGiAIQX9HDQFBACEVDAILIAEgDkHcm8AAEOMIAAsgBUEEayEjQQAhAQNAAkAgBSABIgRqIhMtAABBgAFHDQACQAJAIA4gIyAEQQJ0Ig1rIisoAgAiAUsEQCAFIA1rQQRrIQwDQCAFIAYgAUEEdGooAggiHCAIcSIfIg1qKQAAQoCBgoSIkKDAgH+DIm1QBEBBCCEBA0AgASANaiENIAFBCGohASAFIAggDXEiDWopAABCgIGChIiQoMCAf4MibVANAAsLIAUgbXqnQQN2IA1qIAhxIg1qLAAAQQBOBEAgBSkDAEKAgYKEiJCgwIB/g3qnQQN2IQ0LIA0gH2sgBCAfa3MgCHFBCEkNAyAFIA1BAnRrQQRrIQEgBSANaiIfLQAAIS4gHyAcQRl2Ihw6AAAgDUEIayAIcSAFakEIaiAcOgAAIC5B/wFGDQIgDC0AACENIAwgAS0AADoAACABIA06AAAgDC0AASENIAwgAS0AAToAASABIA06AAEgDC0AAiENIAwgAS0AAjoAAiABIA06AAIgDC0AAyENIAwgAS0AAzoAAyABIA06AAMgDiArKAIAIgFLDQALCyABIA5B3JvAABDjCAALIBNB/wE6AAAgBEEIayAIcSAFakEIakH/AToAACABIAwoAAA2AAAMAQsgEyAcQRl2IgE6AAAgBEEIayAIcSAFakEIaiABOgAACyAEQQFqIQEgBCAIRw0ACwsgCSAVIBprNgIICwsgGUEgaiQAIBggAigCpAQiAXEiDSACKAKgBCITaikAAEKAgYKEiJCgwIB/gyJuUARAQQghBQNAIAUgDWohBCAFQQhqIQUgEyABIARxIg1qKQAAQoCBgoSIkKDAgH+DIm5QDQALCyATIG56p0EDdiANaiABcSIFaiwAAEEASA0AIBMpAwBCgIGChIiQoMCAf4N6p0EDdiEFCyAFIBNqICU6AAAgBUEIayABcSATakEIaiAlOgAAIBMgBUECdGtBBGsgDjYCACACIAIoAqgEICJrIgQ2AqgEIAIgAigCrARBAWoiBjYCrAQgAigCuAQhBSAOIAIoArQEIgFHDQIgBCAGaiAFayIBIA4gBWtNBEAgDiEBDAMLIAUgASAFaiIBSw1AIAFBBHQhBiABQYCAgMAASUECdCEIIAIgDgR/IAIgAigCsAQ2AsgFIAIgDkEEdDYC0AVBBAVBAAs2AswFIAJBwAFqIAggBiACQcgFahDaBiACKALEASEEIAIoAsABRQRAIAIgATYCtAQgAiAENgKwBAwDCyAOIQEgBEGBgICAeEYNAiAERQ1ADEELDCALIAUgDkHMm8AAEOMIAAsgASAFRgRAICcgBRCkBiACKAK4BCEFCyACKAKwBCIGIAVBBHRqIgEgGzYCDCABIBg2AgggASAXNgIEIAEgFjYCACACIAVBAWoiDjYCuAQLIB0hBSASDQALIAIoArgEIQwgAigCtAQhEiACKAKgBCEJIAIoAqQEIQggAigCsAQhBgsgCUUEQCAIIQEMHQsgECgCBCIBQQhPBEAgAikCqAQhbSAQIAFBCGs2AgQgECAQKAIAIgVBCGo2AgAgBSgAACIQRQRAQeCawAAhDkEEIRRBACEFQQAhAUEAIQ0MHAsgAkGgBGogEBDnAwJ/IAIoAqAEIg4EQCACKAKsBCEFIAIoAqQEIQ0gAigCqAQMAQsgAigCpAQhDSACQagEaigCAAshASAQQf///z9LDTsgEEEEdCIEQQBIDTsgBEUEQEEEIRQMHAtBkfvDAC0AABogBEEEEIIMIhQNGww0CyACQoHKgICAATcDoAQgAkGgBGoQ6gohASAIBEAgCSAIQQJ0QQtqQXhxaxCaAgsgEkUNHCAGEJoCDBwLIAJCgcqAgBA3A6AEIAJBoARqEOoKIQEMHQsgAkKByoCAEDcDoAQgAkGgBGoQ6gohAQwcCwwsCwwpCyACQoHKgIAQNwOgBAwbCyACQoHKgIDAADcDoAQMGgsgAkEAOgCjBCACQSU7AKEEIAJBBDYCpAQgAkEBOgCgBAwZC0EEQZQBQdCBxAAoAgAiAEGXByAAGxEAAAALIAJCgcqAgIABNwPAASACQcABahDqCiEBDBgLIAJCgcqAgBA3A8ABIAJBwAFqEOoKIQEMFwsgAkKByoCAgAE3A8ABIAJBwAFqEOoKIQEMGAsgAkKByoCAwAA3A6AEIAJBoARqEOoKIQEMGwsMJAsgAkKByoCAgAE3A6AEIAJBoARqEOoKIQQMHAsgAkKByoCAgAE3A6AEIAJBoARqEOoKIQQMGwsgAkKByoCAgAE3A6AEIAJBoARqEOoKIQQMGgsgAkKByoCAgAE3A6AEIAJBoARqEOoKIQQMGQsgAkKByoCAgAE3A6AEIAJBoARqEOoKIQQMGAsgAkEAOgCjBCACQSU7AKEEIAJBBDYCpAQgAkEBOgCgBCACQaAEahDqCiEEDBcLIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBAwWCyACQQA6AKMEIAJBJTsAoQQgAkEENgKkBCACQQE6AKAEIAJBoARqEOoKIQQMFQsgAkEAOgCjBCACQSU7AKEEIAJBBDYCpAQgAkEBOgCgBCACQaAEahDqCiEEDBQLIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBAwTCyACQQA6AKMEIAJBJTsAoQQgAkEENgKkBCACQQE6AKAEIAJBoARqEOoKIQQMEgsgAkEAOgCjBCACQSU7AKEEIAJBBDYCpAQgAkEBOgCgBCACQaAEahDqCiEEDBELIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohASApQQI2AgAgKSABNgIEDBELIAIgJjoAvQEgAiAoOgC8ASACQQA2ArgBIAIgEDYCtAEgAiAUNgKwASACIAU2AqwBIAIgATYCqAEgAiANNgKkASACIA42AqABIAJBADYCnAEgAkIENwKUASACIAw2ApABIAIgEjYCjAEgAiAGNgKIASACIG03AoABIAIgCDYCfCACIAk2AnggAiAHrSADrUIghoQ3AnAgAiAPNgJsIAIgNDYCaCACICA2AmQgAiAKNgJgIAIgETYCXAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAIMIgEEQCACIAFBAWs2AgwgAigCCCEjQZH7wwAtAAAaQQhBBBCCDCIBRQRAQQRBCEHQgcQAKAIAIgBBlwcgABsRAAAACyABQoGAgIAQNwIAIAJByMLAADYCBCACIAE2AgAgAiACKQMANwLABiACQQI2AqQHIAIgIzYCoAcgAkGgBGogAkGgB2oQowIgAigCpAQhGSACKAKgBARAIBkhBQwmCyAZRQRAQQBBlInAAEHcgsAAEO8HIQUMJgsgAkGoBGopAgAhbgJAAkAgAigCpAcEQCACKAKgByIQKAIEIgFBB00EQCACQoHKgICAATcDoAQgAkGgBGoQ6gohBQwCCyAQIAFBCGs2AgQgECAQKAIAIgFBCGo2AgAgAkHIBWogASkAABDSBSACKALMBSEOIAIoAsgFBEAgDiEFDAILQQQhIEGkkgEgDiAOQaSSAU8bIggEQEGR+8MALQAAGiAIQThsIgRBBBCCDCIgRQ1EC0EAIQQgAkEANgK4CCACIAg2ArQIIAIgIDYCsAggDgRAIAJBzAVqISsgAkGkBGohLgNAIAJBoARqIRpBACEJQQAhC0EAIRVBACENQQAhD0EAIRFBACESQgAhbyMAQaACayIDJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAiASgCBCIGQQRPBEAgASAGQQRrIgg2AgQgASABKAIAIgVBBGo2AgAgCEEESQ0QIAUoAAAhXCABIAZBCGsiCDYCBCABIAVBCGo2AgAgCEEESQ0PIAUoAAQhXSABIAZBDGsiCDYCBCABIAVBDGo2AgAgCEEESQ0PIAUoAAghXiABIAZBEGsiCDYCBCABIAVBEGo2AgAgCEEHTQRAIANCgcqAgIABNwNwIANB8ABqEOoKIQgMDwsgBSgADCFfIAEgBkEYazYCBCABIAVBGGo2AgAgA0HQAWogBSkAEBDSBSADKALUASEFIAMoAtABBEAgBSEIDA8LAkBB4TAgBSAFQeEwTxsiCEUEQEEEIRcMAQtBkfvDAC0AABogCEGoAWwiBkEEEIIMIhdFDVELIANBADYCFCADIAg2AhAgAyAXNgIMIAUEQCADQfgAaiESA0AgASgCBCIGQQdNBEAgA0KByoCAgAE3A3AgA0HwAGoQ6gohCAwQCyABIAZBCGsiFzYCBCABIAEoAgAiBkEIaiIWNgIAIANB0AFqIAYpAAAQ0gUgAygC1AEhCCADKALQAQ0PAkBB1aoBIAggCEHVqgFPGyIGRQRAQQQhHwwBC0GR+8MALQAAGiAGQTBsIglBBBCCDCIfRQ1UC0EAIQogA0EANgJ4IAMgBjYCdCADIB82AnAgCARAA0AgF0EESQ0FIAEgF0EEayIGNgIEIAEgFkEEaiIJNgIAIAZBBEkNBSAWKAAAIREgASAGQQRrIgY2AgQgASAJQQRqIgs2AgAgBkEESQ0FIAk1AAAhbSABIAZBBGsiBjYCBCABIAtBBGoiCTYCACAGQQRJDQYgCzUAACFvIAEgBkEEayIGNgIEIAEgCUEEaiILNgIAIAZBBEkNBiAJKAAAIQwgASAGQQRrIgY2AgQgASALQQRqIgk2AgAgBkEESQ0GIAs1AAAhcCABIAZBBGsiBjYCBCABIAlBBGoiCzYCACAGQQRJDQcgCTUAACFxIAEgBkEEayIGNgIEIAEgC0EEaiIJNgIAIAZBBEkNCCALKAAAIQcgASAGQQRrIgY2AgQgASAJQQRqIg02AgACQCAGQQRPBEAgCSgAACELIAEgBkEEayIGNgIEIAEgDUEEaiIJNgIAIAZBBEkNCyANKAAAIQ8gASAGQQRrIgY2AgQgASAJQQRqIg02AgAgBkEETwRAIAk1AAAhdyABIAZBBGsiBjYCBCABIA1BBGoiCTYCACAGQQRPDQILIANBADoA0wEgA0ElOwDRASADQQQ2AtQBIANBAToA0AEMEgsgA0KByoCAwAA3A9ABDBELIG9CIIYgbYQhbSBxQiCGIHCEIW8gDSgAACENIAEgBkEEayIXNgIEIAEgCUEEaiIWNgIAIAk1AAAgd0IghoQhcCADKAJ0IApGBEAgA0HwAGogChChBiADKAJwIR8gAygCeCEKCyAfIApBMGxqIgYgcDcCKCAGIA02AiQgBiAPNgIgIAYgCzYCHCAGIAc2AhggBiBvNwIQIAYgDDYCDCAGIG03AgQgBiARNgIAIAMgCkEBaiIKNgJ4IAhBAWsiCA0ACyADKAJwIR8gAygCdCEGCyAfRQRAIAYhCAwQCyABKAIEIghBBEkNCCABKAIAIQkgASAIQQRrIg02AgQgASAJQQRqNgIAIA1BBEkNCCAJKAAAIQ0gASAIQQhrIgw2AgQgASAJQQhqNgIAIAxBBEkNCCAJNQAEIW0gASAIQQxrIgw2AgQgASAJQQxqNgIAIAxBBEkNCSAJNQAIIXAgASAIQRBrIgw2AgQgASAJQRBqNgIAIAxBBEkNCSAJKAAMITkgASAIQRRrIgw2AgQgASAJQRRqNgIAIAxBBEkNCSAJNQAQIXEgASAIQRhrIgw2AgQgASAJQRhqNgIAIAxBBEkNCiAJNQAUIW8gASAIQRxrIgw2AgQgASAJQRxqNgIAAkACQCAMQQRPBEAgCSgAGCEwIAEgCEEgayIMNgIEIAEgCUEgajYCAAJAAkAgDARAIAkoABwhMyABIAhBIWsiCDYCBCABIAlBIWo2AgAgCS0AICIVDgIFAgELIANCgcqAgBA3A3AgA0HwAGoQ6gohCAwSC0GR+8MALQAAGkEQQQQQggwiCEUNWSAIIBU2AgQgCEEEOgAADBELIANB8ABqIAEQ4AMgAygCdCERIAMoAnBFDQEgESEIDBALIANCgcqAgMAANwNwIANB8ABqEOoKIQgMDwsgA0HQAWoiCEEQaiASQRBqKQIANwMAIAhBCGogEkEIaikCADcDACADIBIpAgA3A9ABIAEoAgQhCEEBIRULIANB0ABqIglBEGoiMSADQdABaiIHQRBqIgwpAwA3AwAgCUEIaiI2IAdBCGoiBykDADcDACADIAMpA9ABNwNQAkACQAJAIAgEQCABIAhBAWs2AgQgASABKAIAIghBAWo2AgAgCC0AACIJDgIDAgELIANCgcqAgBA3A3AgA0HwAGoQ6gohCAwQC0GR+8MALQAAGkEQQQQQggwiCEUNVyAIIAk2AgQgCEEEOgAADA8LIANB8ABqIAEQ4AMgAygCdCELIAMoAnAEQCALIQgMDwsgDCASQRBqKQIANwMAIAcgEkEIaikCADcDACADIBIpAgA3A9ABQQEhCQsgA0GAAmoiCEEQaiJgIAwpAwA3AwAgCEEIaiJAIAcpAwA3AwAgAyADKQPQATcDgAIgA0EHNgJMIAMgATYCSCADQfAAaiADQcgAahD3BCADKAJ0IhMhCAJAAkAgAygCcCJhQQJrIkEOAgAPAQtBAEH0isAAQdyCwAAQ7wchCAwOCyADKAJ4IWIgA0HwAGogA0HIAGoQ9wQgAygCdCEIAkACQCADKAJwImNBAmsOAgAPAQtBAUH0isAAQdyCwAAQ7wchCAwOCwJAIAMoAkwiDwRAIAMoAkgiFCgCBCIHQQNLDQEgA0KByoCAwAA3A3AgA0HwAGoQ6gohCAwPC0ECQfSKwABB3ILAABDvByEIDA4LIAMoAnghZCAUIAdBBGsiFjYCBCAUIBQoAgAiDEEEajYCAAJAIA9BAUcEQAJAIBZBBEkNACAMKAAAIWUgFCAHQQhrIhY2AgQgFCAMQQhqNgIAIBZBBEkNACAMKAAEIWYgFCAHQQxrIhY2AgQgFCAMQQxqNgIAIBZBA0sNAgsgA0EAOgBzIANBJTsAcSADQQQ2AnQgA0EBOgBwIANB8ABqEOoKIQgMDwtBA0H0isAAQdyCwAAQ7wchCAwOCyAMNQAIIXcgFCAHQRBrIhY2AgQgFCAMQRBqNgIAAkAgD0ECRwRAIAw1AAwheSADIA9BA2s2AkwgFkEHTQRAIANCgcqAgIABNwNwIANB8ABqEOoKIQgMEAsgFCAHQRhrIhY2AgQgFCAMQRhqIhw2AgAgA0HQAWogDCkAEBDSBSADKALUASEHIAMoAtABBEAgByEIDBALAkBB5swBIAcgB0HmzAFPGyIPRQRAQQQhIgwBC0GR+8MALQAAGiAPQShsIgxBBBCCDCIiRQ0OC0EAIQwgA0EANgJ4IAMgDzYCdCADICI2AnACQAJAIAcEQANAIBZFBEAgA0KByoCAEDcD0AEgA0HQAWoQ6gohCAwECyAUIBZBAWs2AgQgFCAcQQFqIg82AgACQAJAIBZBBUkNACAcLQAAIWcgFCAWQQVrIhY2AgQgFCAPQQRqIhc2AgAgFkEESQ0AIA8oAAAhaCAUIBZBBGsiDzYCBCAUIBdBBGoiFjYCACAPQQNLDQELIANBADoA0wEgA0ElOwDRASADQQQ2AtQBIANBAToA0AEgA0HQAWoQ6gohCAwECyAXNQAAIXogFCAPQQRrIg82AgQgFCAWQQRqIhc2AgAgD0EDTQRAIANBADoA0wEgA0ElOwDRASADQQQ2AtQBIANBAToA0AEgA0HQAWoQ6gohCAwECyAWNQAAIXsgFCAPQQRrIg82AgQgFCAXQQRqIhY2AgAgD0EDTQRAIANBADoA0wEgA0ElOwDRASADQQQ2AtQBIANBAToA0AEgA0HQAWoQ6gohCAwECyAXKAAAIWkgFCAPQQRrIg82AgQgFCAWQQRqIhc2AgAgD0EDTQRAIANBADoA0wEgA0ElOwDRASADQQQ2AtQBIANBAToA0AEgA0HQAWoQ6gohCAwECyAWKAAAIWogFCAPQQRrIg82AgQgFCAXQQRqIhY2AgACQAJAIA9BBEkNACAXKAAAIWsgFCAPQQRrIg82AgQgFCAWQQRqIhc2AgAgD0EESQ0AIBYoAAAhbCAUIA9BBGsiDzYCBCAUIBdBBGoiFjYCACAPQQNLDQELIANBADoA0wEgA0ElOwDRASADQQQ2AtQBIANBAToA0AEgA0HQAWoQ6gohCAwECyAXNQAAIX4gFCAPQQRrIg82AgQgFCAWQQRqIhc2AgAgD0UNAiAWNQAAIX8gFCAPQQFrIhY2AgQgFCAXQQFqIhw2AgAgFy0AACIPQQJPBEBBkfvDAC0AABpBEEEEEIIMIghFDVwgCCAPOgABIAhBAjoAAAwECyB7QiCGIHqEIXogf0IghiB+hCF7IA9BAEchFyADKAJ0IAxGBEAgA0HwAGogDBCiBiADKAJwISIgAygCeCEMCyAiIAxBKGxqIg8gFzoAJSAPIGc6ACQgDyB7NwIcIA8gbDYCGCAPIGs2AhQgDyBqNgIQIA8gaTYCDCAPIHo3AgQgDyBoNgIAIAMgDEEBaiIMNgJ4IAdBAWsiBw0ACyADKAJwISIgAygCdCEPCyAiDQMgDyEIDBELIANCgcqAgBA3A9ABIANB0AFqEOoKIQgLIAMoAnRFDQ8gAygCcBCaAgwPC0EEQfSKwABB3ILAABDvByEIDA4LAkACfwJAIAMoAkwiFwRAIAMoAkgiBygCBCIWQQFLDQEgA0KByoCAIDcDcCADQfAAahDqCgwCC0EFQfSKwABB3ILAABDvBwwBCyAHIBZBAmsiHDYCBCAHIAcoAgAiFEECajYCACAXQQFHBEAgHEEDSw0CIANCgcqAgMAANwNwIANB8ABqEOoKDAELQQZB9IrAAEHcgsAAEO8HCyEIIA9FDQ4gIhCaAgwOCyAULwAAIRwgByAWQQZrNgIEIAcgFEEGajYCAAJAAkAgQQ4CAAABCyATIQgMDgsgcEIghiBthCFtIG9CIIYgcYQhcCB5QiCGIHeEIXEgFCgAAiEUIANBMGoiB0EQaiJBIDEpAwA3AwAgB0EIaiIxIDYpAwA3AwAgA0EYaiIHQQhqIjYgQCkDADcDACAHQRBqIkAgYCkDADcDACADIAMpA1A3AzAgAyADKQOAAjcDGCADKAIUIhYgAygCEEYEQCADQQxqIBYQowYgAygCFCEWCyADKAIMIhcgFkGoAWxqIgcgETYCBCAHIBU2AgAgByADKQMwNwIIIAcgCzYCJCAHIAk2AiAgByADKQMYNwIoIAcgYTYCQCAHIBM2AkQgByBiNgJIIAcgYzYCTCAHIAg2AlAgByBkNgJUIAcgIjYCWCAHIA82AlwgByAMNgJgIAcgZTYCZCAHIGY2AmggByBxNwJsIAcgFDYCdCAHIB82AnwgByAGNgKAASAHIAo2AoQBIAcgDTYCiAEgByBtNwKMASAHIDk2ApQBIAcgcDcCmAEgByAwNgKgASAHIDM2AqQBIAcgHDsBeCAHQRBqIDEpAwA3AgAgB0EYaiBBKQMANwIAIAdBMGogNikDADcCACAHQThqIEApAwA3AgAgAyAWQQFqIg82AhQgBUEBayIFDQALIAMoAhAhCAwLCyAXDQoMDgsMDwsgA0EAOgDTASADQSU7ANEBIANBBDYC1AEgA0EBOgDQAQwKCyADQQA6ANMBIANBJTsA0QEgA0EENgLUASADQQE6ANABDAkLIANBADoA0wEgA0ElOwDRASADQQQ2AtQBIANBAToA0AEMCAsgA0KByoCAwAA3A9ABDAcLIANBADoA0wEgA0ElOwDRASADQQQ2AtQBIANBAToA0AEMBgsgA0EAOgBzIANBJTsAcSADQQQ2AnQgA0EBOgBwIANB8ABqEOoKIQgMBAsgA0EAOgBzIANBJTsAcSADQQQ2AnQgA0EBOgBwIANB8ABqEOoKIQgMAwsgA0KByoCAwAA3A3AgA0HwAGoQ6gohCAwCC0EEIAxB0IHEACgCACIAQZcHIAAbEQAAAAsCQAJAAkACQAJAAkACfgJAAkACQAJAAn8CQAJAAkACQAJAIAEoAgQiBQRAIAEgBUEBayIGNgIEIAEgASgCACIKQQFqNgIAAkAgCi0AACIfQQJPBEBBkfvDAC0AABpBEEEEEIIMIgFFDQEgASAfOgABIAFBAjoAAAwTCyAGBEAgASAFQQJrIgY2AgQgASAKQQJqNgIAAkAgCi0AASIiQQJPBEBBkfvDAC0AABpBEEEEEIIMIgFFDQEgASAiOgABIAFBAjoAAAwVCwJAAkACQCAGBEAgASAFQQNrNgIEIAEgCkEDajYCAEEAIREgCi0AAiIMDgITAgELIANCgcqAgBA3A3AgA0HwAGoQ6gohAQwXC0GR+8MALQAAGkEQQQQQggwiAUUNASABIAw2AgQgAUEEOgAADBYLIAZBBUkNBSABIAVBB2siBjYCBCABIApBB2o2AgACQAJAAkACQAJAIAooAAMiOQ4GAQISDg0MAAsgA0EBOgDQASADIDmtNwPYASADQdABakGQkcAAQdyCwAAQqQghAQwZCyADQQQ2AjQgAyABNgIwIANB0AFqIANBMGoQqwMgAygC1AEhCiADKALQAQRAIAohAQwZCyAKRQRAQQBB1JHAAEHcgsAAEO8HIQEMGQsgA0HYAWoiASkCACFtAkAgAygCNCIFBEAgA0HcAWooAgAhFSABKAIAIQYgAyAFQQFrNgI0IAMoAjAiBSgCBCINQQRJDQQgBSgCACEJIAUgDUEEayIBNgIEIAUgCUEEajYCACABQQRJDQQgCSgAACEBIAUgDUEIayILNgIEIAUgCUEIajYCACALQQRJDQQgCTUABCFxIAUgDUEMayILNgIEIAUgCUEMajYCAAJAIAtBBEkNACAJNQAIIW8gBSANQRBrIgs2AgQgBSAJQRBqNgIAIAtBBEkNACAJKAAMIQsgBSANQRRrIhE2AgQgBSAJQRRqNgIAIBFBBE8NAgsgA0EAOgDTASADQSU7ANEBIANBBDYC1AEgA0EBOgDQASADQdABahDqCiEBDBkLQQFB1JHAAEHcgsAAEO8HIQEMGAsgCTUAECF3IAUgDUEYazYCBCAFIAlBGGo2AgAgCTUAFCF5IANB0AFqIANBMGoQqwMgAygC1AEhDCADKALQAQRAIAwhAQwYCyAMRQRAQQJB1JHAAEHcgsAAEO8HIQEMGAsgA0HYAWoiBSkCACFwIANB3AFqKAIAIQ0gBSgCACEFIANB0AFqIANBMGoQgQEgAygC0AENASADQYACaiIJQQhqIgcgA0HkAWopAgA3AwAgCUEQaiITIANB7AFqKQIANwMAIAlBGGoiFCADQfQBaikCADcDACADIANB3AFqKQIANwOAAiADKALUASIJDQlBA0HUkcAAQdyCwAAQ7wchAQwWCyADIAE2AgwgBgRAIAEgBUEIazYCBCABIApBCGo2AgACQCAKLQAHIhZBAk8EQEGR+8MALQAAGkEQQQQQggwiAUUNASABIBY6AAEgAUECOgAADBoLIANBATYCECAGQQhNBEAgA0KByoCAgAE3A9ABIANB0AFqEOoKIQEMGgsgASAFQRBrIhI2AgQgASAKQRBqIgs2AgAgA0EwaiAKKQAIENIFIAMoAjQhDSADKAIwBEAgDSEBDBoLQQAhCQJAAkAgDUUEQEEEIQVB4JrAACEKQQAhBkEAIRVBACEMDAELIANBMGogDRDnAwJ/IAMoAjAiCgRAIAMoAjwhDCADKAI4IRUgAygCNAwBCyADQThqKAIAIRUgAygCNAshBiANQf///z9LDW8gDUEEdCIRQQBIDW8gEUUEQEEEIQUMAQtBkfvDAC0AABogEUEEEIIMIgVFDQELIANBADYC6AEgAyANNgLkASADIAU2AuABIAMgDDYC3AEgAyAVNgLYASADIAY2AtQBIAMgCjYC0AEgDQRAIANB4AFqITMDQCASQQNNBEAgA0KByoCAwAA3AzAgA0EwahDqCiEBDBoLIAEgEkEEayIGNgIEIAEgC0EEajYCAAJAAkACQCAGQQhPBEAgCygAACETIAEgEkEMayIGNgIEIAEgC0EMajYCACALKQAEIm1CgICAgBBaBEAgA0EBOgAwIAMgbTcDOCADQTBqIANBGGpBtIDAABCpCCEBDB4LIAZFDQEgASASQQ1rIhI2AgQgASALQQ1qIgc2AgAgCy0ADCIUQQJPBEBBkfvDAC0AABpBEEEEEIIMIgFFDWogASAUOgABIAFBAjoAAAweCyANQQFrIQ0gbachHCADKALQASIRQQRrITEgE0G5893xeWwiDEEZdiIwrUKBgoSIkKDAgAF+IXFBACELIAMoAtQBIQYgDCEKAkADQCAGIApxIhUgEWopAAAicCBxhSJtQoGChIiQoMCAAX0gbUJ/hYNCgIGChIiQoMCAf4MhbQNAIG1QBEAgcCBwQgGGg0KAgYKEiJCgwIB/g0IAUg0DIBUgC0EIaiILaiEKDAILIDEgbXqnQQN2IBVqIAZxQQJ0aygCACIKIAlPDW8gbUIBfSBtgyFtIAUgCkEEdGoiCigCBCATRw0ACwsgCiAcNgIIIApBDGogFEEARzoAAAwECyAGIAxxIhUgEWopAABCgIGChIiQoMCAf4MibVAEQEEIIQoDQCAKIBVqIQsgCkEIaiEKIAYgC3EiFSARaikAAEKAgYKEiJCgwIB/gyJtUA0ACwsgESBteqdBA3YgFWogBnEiCmosAAAiC0EATgRAIBEgESkDAEKAgYKEiJCgwIB/g3qnQQN2IgpqLQAAIQsLAkAgC0EBcSILRQ0AIAMoAtgBDQAgA0HQAWogBSAJEKABIAwgAygC1AEiBnEiCiADKALQASIRaikAAEKAgYKEiJCgwIB/gyJtUARAQQghBQNAIAUgCmohCiAFQQhqIQUgESAGIApxIgpqKQAAQoCBgoSIkKDAgH+DIm1QDQALCyARIG16p0EDdiAKaiAGcSIKaiwAAEEASA0AIBEpAwBCgIGChIiQoMCAf4N6p0EDdiEKCyAKIBFqIDA6AAAgCkEIayAGcSARakEIaiAwOgAAIBEgCkECdGtBBGsgCTYCACADIAMoAtgBIAtrIgY2AtgBIAMgAygC3AFBAWoiCzYC3AEgAygC6AEhCiAJIAMoAuQBIgVHDQIgBiALaiAKayIFIAkgCmtNBEAgCSEFDAMLIAogBSAKaiIFSw10IAVBBHQhCyAFQYCAgMAASUECdCERIAMgCQR/IAMgAygC4AE2AjAgAyAJQQR0NgI4QQQFQQALNgI0IANBGGogESALIANBMGoQ2gYgAygCHCEGIAMoAhhFBEAgAyAFNgLkASADIAY2AuABDAMLIAkhBSAGQYGAgIB4Rg0CDG4LIANCgcqAgIABNwMwIANBMGoQ6gohAQwcCyADQoHKgIAQNwMwIANBMGoQ6gohAQwbCyAFIApGBEAgMyAKEKQGIAMoAugBIQoLIAMoAuABIgUgCkEEdGoiBiAUQQBHOgAMIAYgHDYCCCAGIBM2AgQgBiAMNgIAIAMgCkEBaiIJNgLoAQsgByELIA0NAAsgAygC3AEhDCADKALYASEVIAMoAugBIQkgAygC5AEhDSADKALUASEGIAMoAtABIQogAygC4AEhBQsgCkUEQCAGIQEMGwsgA0HQAWogA0EMahCBASADKALQAUUEQCADQYACaiIBQQhqIgsgA0HQAWoiEkEQaikCADcDACABQRBqIhEgEkEYaikCADcDACABQRhqIgcgA0HwAWopAgA3AwAgAyASQQhqKQIANwOAAiADKALUASISRQRAQQJBnJLAAEHcgsAAEO8HIQEMGAsgFkEAR60hbQwUCyADKALUASEBDBYLDGELDGELIANCgcqAgBA3A9ABIANB0AFqEOoKIQEMFwsgAygC1AEhAQwUCyADQQA6ANMBIANBJTsA0QEgA0EENgLUASADQQE6ANABIANB0AFqEOoKIQEMFAsMXQsMXAsgA0KByoCAEDcDcCADQfAAahDqCiEBDBILDFoLIANCgcqAgBA3A3AgA0HwAGoQ6gohAQwQCyADQoHKgIDAADcD0AEgA0HQAWoQ6gohAQwPCyBxIG9CIIYicIQhbSB5QiCGIHeEIW8gA0HYAWooAgAhEiADQdAAaiIRQRhqIBQpAwA3AwAgEUEQaiATKQMANwMAIBFBCGogBykDADcDACADIAMpA4ACNwNQIHFCgP7//w+DDAgLIAZBBE8EQCABIAVBC2s2AgQgASAKQQtqNgIAIAooAAchCkIAIXBCACFtQgAMCAsgA0KByoCAwAA3A9ABIANB0AFqEOoKIQEMDQsCQCAGBEAgASAFQQhrNgIEIAEgCkEIajYCAAJAIAotAAciFkECTwRAQZH7wwAtAAAaQRBBBBCCDCIBRQ0BIAEgFjoAASABQQI6AAAMEAsgBkEITQRAIANCgcqAgIABNwPQASADQdABahDqCiEBDBALIAEgBUEQayISNgIEIAEgCkEQaiILNgIAIANBgAJqIAopAAgQ0gUgAygChAIhDSADKAKAAgRAIA0hAQwQC0EAIQkCQAJAIA1FBEBBBCEFQeCawAAhCkEAIQZBACEVQQAhDAwBCyADQYACaiANEOcDAn8gAygCgAIiCgRAIAMoAowCIQwgAygCiAIhFSADKAKEAgwBCyADQYgCaigCACEVIAMoAoQCCyEGIA1B////P0sNZSANQQR0IhFBAEgNZSARRQRAQQQhBQwBC0GR+8MALQAAGiARQQQQggwiBUUNAQsgA0EANgLoASADIA02AuQBIAMgBTYC4AEgAyAMNgLcASADIBU2AtgBIAMgBjYC1AEgAyAKNgLQASANBEAgA0HgAWohMwNAIBJBA00EQCADQoHKgIDAADcDgAIgA0GAAmoQ6gohAQwGCyABIBJBBGsiBjYCBCABIAtBBGo2AgACQAJAAkAgBkEITwRAIAsoAAAhEyABIBJBDGsiBjYCBCABIAtBDGo2AgAgCykABCJtQoCAgIAQWgRAIANBAToAgAIgAyBtNwOIAiADQYACaiADQRhqQbSAwAAQqQghAQwKCyAGRQ0BIAEgEkENayISNgIEIAEgC0ENaiIHNgIAIAstAAwiFEECTwRAQZH7wwAtAAAaQRBBBBCCDCIBRQ1gIAEgFDoAASABQQI6AAAMCgsgDUEBayENIG2nIRwgAygC0AEiEUEEayExIBNBufPd8XlsIgxBGXYiMK1CgYKEiJCgwIABfiFxQQAhCyADKALUASEGIAwhCgJAA0AgBiAKcSIVIBFqKQAAInAgcYUibUKBgoSIkKDAgAF9IG1Cf4WDQoCBgoSIkKDAgH+DIW0DQCBtUARAIHAgcEIBhoNCgIGChIiQoMCAf4NCAFINAyAVIAtBCGoiC2ohCgwCCyAxIG16p0EDdiAVaiAGcUECdGsoAgAiCiAJTw1lIG1CAX0gbYMhbSAFIApBBHRqIgooAgQgE0cNAAsLIAogHDYCCCAKQQxqIBRBAEc6AAAMBAsgBiAMcSIVIBFqKQAAQoCBgoSIkKDAgH+DIm1QBEBBCCEKA0AgCiAVaiELIApBCGohCiAGIAtxIhUgEWopAABCgIGChIiQoMCAf4MibVANAAsLIBEgbXqnQQN2IBVqIAZxIgpqLAAAIgtBAE4EQCARIBEpAwBCgIGChIiQoMCAf4N6p0EDdiIKai0AACELCwJAIAtBAXEiC0UNACADKALYAQ0AIANB0AFqIAUgCRCgASAMIAMoAtQBIgZxIgogAygC0AEiEWopAABCgIGChIiQoMCAf4MibVAEQEEIIQUDQCAFIApqIQogBUEIaiEFIBEgBiAKcSIKaikAAEKAgYKEiJCgwIB/gyJtUA0ACwsgESBteqdBA3YgCmogBnEiCmosAABBAEgNACARKQMAQoCBgoSIkKDAgH+DeqdBA3YhCgsgCiARaiAwOgAAIApBCGsgBnEgEWpBCGogMDoAACARIApBAnRrQQRrIAk2AgAgAyADKALYASALayIGNgLYASADIAMoAtwBQQFqIgs2AtwBIAMoAugBIQogCSADKALkASIFRw0CIAYgC2ogCmsiBSAJIAprTQRAIAkhBQwDCyAKIAUgCmoiBUsNaiAFQQR0IQsgBUGAgIDAAElBAnQhESADIAkEfyADIAMoAuABNgKAAiADIAlBBHQ2AogCQQQFQQALNgKEAiADQTBqIBEgCyADQYACahDaBiADKAI0IQYgAygCMEUEQCADIAU2AuQBIAMgBjYC4AEMAwsgCSEFIAZBgYCAgHhGDQIMZQsgA0KByoCAgAE3A4ACIANBgAJqEOoKIQEMCAsgA0KByoCAEDcDgAIgA0GAAmoQ6gohAQwHCyAFIApGBEAgMyAKEKQGIAMoAugBIQoLIAMoAuABIgUgCkEEdGoiBiAUQQBHOgAMIAYgHDYCCCAGIBM2AgQgBiAMNgIAIAMgCkEBaiIJNgLoAQsgByELIA0NAAsgAygC6AEhCSADKALkASENIAMoAtwBIQwgAygC2AEhFSADKALUASEGIAMoAtABIQogAygC4AEhBQsgCkUEQCAGIQEMEQsgFkEARwwFCwxXCwxXCyADQoHKgIAQNwPQASADQdABahDqCiEBDA0LIAMoAtQBIgUEQCADKALQASAFQQJ0QQtqQXhxaxCaAgsgAygC5AFFDQwgAygC4AEQmgIMDAsgBkUNASABIAVBCGs2AgQgASAKQQhqNgIAIAotAAciMEECTwRAQZH7wwAtAAAaQRBBBBCCDCIBRQ1VIAEgMDoAASABQQI6AAAMDAsgBkEITQRAIANCgcqAgIABNwPQASADQdABahDqCiEBDAwLIAEgBUEQayIHNgIEIAEgCkEQaiILNgIAIANBgAJqIAopAAgQ0gUgAygChAIhDSADKAKAAgRAIA0hAQwMC0EEIQVBACEJAkAgDUUEQEHgmsAAIQpBACEGQQAhFUEAIQwMAQsgA0GAAmogDRDnAwJ/IAMoAoACIgoEQCADKAKMAiEMIAMoAogCIRUgAygChAIMAQsgA0GIAmooAgAhFSADKAKEAgshBiANQebMmTNLDWAgDUEUbCIRQQBIDWAgEUUNAEGR+8MALQAAGiARQQQQggwiBUUNVAsgA0EANgLoASADIA02AuQBIAMgBTYC4AEgAyAMNgLcASADIBU2AtgBIAMgBjYC1AEgAyAKNgLQASANBEAgA0HgAWohNgNAAkACQAJAAkAgB0EETwRAIAEgB0EEayIGNgIEIAEgC0EEajYCACAGQQRJBEAgA0KByoCAwAA3A4ACIANBgAJqEOoKIQEMCgsgCygAACETIAEgB0EIayIGNgIEIAEgC0EIajYCACAGQQhJDQEgCygABCEUIAEgB0EQayIGNgIEIAEgC0EQajYCACALKQAIIm1CgICAgBBaBEAgA0EBOgCAAiADIG03A4gCIANBgAJqIANBGGpBtIDAABCpCCEBDAoLIAZFDQIgASAHQRFrIgc2AgQgASALQRFqIhI2AgAgCy0AECIWQQJPBEBBkfvDAC0AABpBEEEEEIIMIgFFDVwgASAWOgABIAFBAjoAAAwKCyANQQFrIQ0gAygC0AEiC0EEayEVIBQgE0G5893xeWxBBXdzQbnz3fF5bCIRQRl2IjOtQoGChIiQoMCAAX4hcSBtpyExQQAhHCADKALUASEGIBEhCgJAA0AgBiAKcSIMIAtqKQAAInAgcYUibUKBgoSIkKDAgAF9IG1Cf4WDQoCBgoSIkKDAgH+DIW0DQCBtUARAIHAgcEIBhoNCgIGChIiQoMCAf4NCAFINAyAMIBxBCGoiHGohCgwCCyAVIG16p0EDdiAMaiAGcUECdGsoAgAiCiAJTw1hIG1CAX0gbYMhbSAFIApBFGxqIgooAgAgE0cNACAKQQRqKAIAIBRHDQALCyAKIDE2AgwgCkEQaiAWQQBHOgAADAULIAYgEXEiFSALaikAAEKAgYKEiJCgwIB/gyJtUARAQQghCgNAIAogFWohDCAKQQhqIQogBiAMcSIVIAtqKQAAQoCBgoSIkKDAgH+DIm1QDQALCyALIG16p0EDdiAVaiAGcSIKaiwAACIMQQBOBEAgCyALKQMAQoCBgoSIkKDAgH+DeqdBA3YiCmotAAAhDAsCQCAMQQFxIgxFDQAgAygC2AENACADQdABaiAFIAkQoQEgESADKALUASIGcSIKIAMoAtABIgtqKQAAQoCBgoSIkKDAgH+DIm1QBEBBCCEFA0AgBSAKaiEKIAVBCGohBSALIAYgCnEiCmopAABCgIGChIiQoMCAf4MibVANAAsLIAsgbXqnQQN2IApqIAZxIgpqLAAAQQBIDQAgCykDAEKAgYKEiJCgwIB/g3qnQQN2IQoLIAogC2ogMzoAACAKQQhrIAZxIAtqQQhqIDM6AAAgCyAKQQJ0a0EEayAJNgIAIAMgAygC2AEgDGsiBjYC2AEgAyADKALcAUEBaiILNgLcASADKALoASEKIAkgAygC5AEiBUcNAyAGIAtqIAprIgUgCSAKa00EQCAJIQUMBAsgCiAFIApqIgVLDWYgBUEUbCELIAVB58yZM0lBAnQhDCADIAkEfyADIAMoAuABNgKAAiADIAlBFGw2AogCQQQFQQALNgKEAiADQTBqIAwgCyADQYACahDaBiADKAI0IQYgAygCMEUEQCADIAU2AuQBIAMgBjYC4AEMBAsgCSEFIAZBgYCAgHhGDQMMYQsgA0KByoCAwAA3A4ACIANBgAJqEOoKIQEMCAsgA0KByoCAgAE3A4ACIANBgAJqEOoKIQEMBwsgA0KByoCAEDcDgAIgA0GAAmoQ6gohAQwGCyAFIApGBEAgNiAKEKUGIAMoAugBIQoLIAMoAuABIgUgCkEUbGoiBiAWQQBHOgAQIAYgMTYCDCAGIBE2AgggBiAUNgIEIAYgEzYCACADIApBAWoiCTYC6AELIBIhCyANDQALIAMoAugBIQkgAygC5AEhDSADKALcASEMIAMoAtgBIRUgAygC1AEhBiADKALQASEKIAMoAuABIQULIApFBEAgBiEBDAwLIDBBAEcLIRJCACFwQgAhbUIADAQLIANCgcqAgBA3A9ABIANB0AFqEOoKIQEMCQsgAygC1AEiBQRAIAMoAtABIAVBAnRBC2pBeHFrEJoCCyADKALkAUUNCCADKALgARCaAgwICyADIAE2AgwCQAJAIAYEQCABIAVBCGs2AgQgASAKQQhqNgIAIAotAAciMEECTwRAQZH7wwAtAAAaQRBBBBCCDCIBRQ1UIAEgMDoAASABQQI6AAAMCwsgA0EBNgIQIAZBCE0EQCADQoHKgICAATcD0AEgA0HQAWoQ6gohAQwLCyABIAVBEGsiBzYCBCABIApBEGoiCzYCACADQTBqIAopAAgQ0gUgAygCNCENIAMoAjAEQCANIQEMCwtBBCEFQQAhCQJAIA1FBEBB4JrAACEKQQAhBkEAIRVBACEMDAELIANBMGogDRDnAwJ/IAMoAjAiCgRAIAMoAjwhDCADKAI4IRUgAygCNAwBCyADQThqKAIAIRUgAygCNAshBiANQebMmTNLDV8gDUEUbCIRQQBIDV8gEUUNAEGR+8MALQAAGiARQQQQggwiBUUNUwsgA0EANgLoASADIA02AuQBIAMgBTYC4AEgAyAMNgLcASADIBU2AtgBIAMgBjYC1AEgAyAKNgLQASANBEAgA0HgAWohNgNAAkACQAJAAkAgB0EETwRAIAEgB0EEayIGNgIEIAEgC0EEajYCACAGQQRJBEAgA0KByoCAwAA3AzAgA0EwahDqCiEBDAoLIAsoAAAhEyABIAdBCGsiBjYCBCABIAtBCGo2AgAgBkEISQ0BIAsoAAQhFCABIAdBEGsiBjYCBCABIAtBEGo2AgAgCykACCJtQoCAgIAQWgRAIANBAToAMCADIG03AzggA0EwaiADQRhqQbSAwAAQqQghAQwKCyAGRQ0CIAEgB0ERayIHNgIEIAEgC0ERaiISNgIAIAstABAiFkECTwRAQZH7wwAtAAAaQRBBBBCCDCIBRQ1bIAEgFjoAASABQQI6AAAMCgsgDUEBayENIAMoAtABIgtBBGshFSAUIBNBufPd8XlsQQV3c0G5893xeWwiEUEZdiIzrUKBgoSIkKDAgAF+IXEgbachMUEAIRwgAygC1AEhBiARIQoCQANAIAYgCnEiDCALaikAACJwIHGFIm1CgYKEiJCgwIABfSBtQn+Fg0KAgYKEiJCgwIB/gyFtA0AgbVAEQCBwIHBCAYaDQoCBgoSIkKDAgH+DQgBSDQMgDCAcQQhqIhxqIQoMAgsgFSBteqdBA3YgDGogBnFBAnRrKAIAIgogCU8NYCBtQgF9IG2DIW0gBSAKQRRsaiIKKAIAIBNHDQAgCkEEaigCACAURw0ACwsgCiAxNgIMIApBEGogFkEARzoAAAwFCyAGIBFxIhUgC2opAABCgIGChIiQoMCAf4MibVAEQEEIIQoDQCAKIBVqIQwgCkEIaiEKIAYgDHEiFSALaikAAEKAgYKEiJCgwIB/gyJtUA0ACwsgCyBteqdBA3YgFWogBnEiCmosAAAiDEEATgRAIAsgCykDAEKAgYKEiJCgwIB/g3qnQQN2IgpqLQAAIQwLAkAgDEEBcSIMRQ0AIAMoAtgBDQAgA0HQAWogBSAJEKEBIBEgAygC1AEiBnEiCiADKALQASILaikAAEKAgYKEiJCgwIB/gyJtUARAQQghBQNAIAUgCmohCiAFQQhqIQUgCyAGIApxIgpqKQAAQoCBgoSIkKDAgH+DIm1QDQALCyALIG16p0EDdiAKaiAGcSIKaiwAAEEASA0AIAspAwBCgIGChIiQoMCAf4N6p0EDdiEKCyAKIAtqIDM6AAAgCkEIayAGcSALakEIaiAzOgAAIAsgCkECdGtBBGsgCTYCACADIAMoAtgBIAxrIgY2AtgBIAMgAygC3AFBAWoiCzYC3AEgAygC6AEhCiAJIAMoAuQBIgVHDQMgBiALaiAKayIFIAkgCmtNBEAgCSEFDAQLIAogBSAKaiIFSw1lIAVBFGwhCyAFQefMmTNJQQJ0IQwgAyAJBH8gAyADKALgATYCMCADIAlBFGw2AjhBBAVBAAs2AjQgA0EYaiAMIAsgA0EwahDaBiADKAIcIQYgAygCGEUEQCADIAU2AuQBIAMgBjYC4AEMBAsgCSEFIAZBgYCAgHhGDQMMXwsgA0KByoCAwAA3AzAgA0EwahDqCiEBDAgLIANCgcqAgIABNwMwIANBMGoQ6gohAQwHCyADQoHKgIAQNwMwIANBMGoQ6gohAQwGCyAFIApGBEAgNiAKEKUGIAMoAugBIQoLIAMoAuABIgUgCkEUbGoiBiAWQQBHOgAQIAYgMTYCDCAGIBE2AgggBiAUNgIEIAYgEzYCACADIApBAWoiCTYC6AELIBIhCyANDQALIAMoAtwBIQwgAygC2AEhFSADKALoASEJIAMoAuQBIQ0gAygC1AEhBiADKALQASEKIAMoAuABIQULIApFBEAgBiEBDAsLIANB0AFqIANBDGoQgQEgAygC0AFFBEAgA0GAAmoiAUEIaiILIANB0AFqIhJBEGopAgA3AwAgAUEQaiIRIBJBGGopAgA3AwAgAUEYaiIHIANB8AFqKQIANwMAIAMgEkEIaikCADcDgAIgAygC1AEiEkUEQEECQfCSwABB3ILAABDvByEBDAMLIDBBAEetIW0MBAsgAygC1AEhAQwBCyADQoHKgIAQNwPQASADQdABahDqCiEBDAkLIAYEQCAKIAZBAnRBC2pBeHFrEJoCCyANRQ0IIAUQmgIMCAsgAygC1AEiBQRAIAMoAtABIAVBAnRBC2pBeHFrEJoCCyADKALkAUUNByADKALgARCaAgwHCyADQfgBaigCACEBIANB0ABqIhNBGGogBykDADcDACATQRBqIBEpAwA3AwAgE0EIaiALKQMANwMAIAMgAykDgAI3A1BCACFwQgALIXEgA0GsAWogA0HoAGopAwA3AgAgA0GkAWogA0HgAGopAwA3AgAgA0GcAWogA0HYAGopAwA3AgAgAyADKQNQNwKUASADIG83AsQBIAMgCzYCwAEgAyABNgK0ASADIBI2ApABIAMgCTYCjAEgAyANNgKIASADIAU2AoQBIAMgDDYCgAEgAyAVNgJ8IAMgBjYCeCADIAo2AnQgAyA5NgJwIAMgbUL/AYMgcCBxhIQ3ArgBQQAhBkEAIQECQAJAAkACQAJAAkACQAJAIANB8ABqIgUoAgBBAWsOBQECAwQFAAtBkfvDAC0AABpB2ABBBBCCDCIGRQ0FIAYgBUEEakHYABCIDRpB5K7CACEBDAQLQZH7wwAtAAAaQcgAQQQQggwiBkUNWyAGIAVBBGpByAAQiA0aQaSuwgAhAQwDC0GR+8MALQAAGkHIAEEEEIIMIgZFDVogBiAFQQRqQcgAEIgNGkHkrcIAIQEMAgtBkfvDAC0AABpBIEEEEIIMIgZFDVogBiAFKQIENwIAIAZBGGogBUEcaikCADcCACAGQRBqIAVBFGopAgA3AgAgBkEIaiAFQQxqKQIANwIAQeSswgAhAQwBC0GR+8MALQAAGkEgQQQQggwiBkUNWSAGIAUpAgQ3AgAgBkEYaiAFQRxqKQIANwIAIAZBEGogBUEUaikCADcCACAGQQhqIAVBDGopAgA3AgBBpK3CACEBCyADIAE2AgQgAyAGNgIADAELQQRB2ABB0IHEACgCACIAQZcHIAAbEQAAAAsgAygCBCEVIAMoAgAhERC5BiEBIBFFDQUgARDkBwsgGiAiQQBHOgAlIBogH0EARzoAJCAaIAitIA+tQiCGhDcCHCAaIBc2AhggGiAVNgIUIBogETYCECAaIF82AgwgGiBeNgIIIBogXTYCBCAaIFw2AgAMCwsgBgRAIAogBkECdEELakF4cWsQmgILIA1FDQMgBRCaAgwDCyADKALUASIFBEAgAygC0AEgBUECdEELakF4cWsQmgILIAMoAuQBRQ0CIAMoAuABEJoCDAILIHCnRQ0AIAwQmgILIG2nRQ0AIAoQmgILIBpBAjoAJSAaIAE2AgAgDwRAIBdB2ABqIQEDQCABQShqKAIABEAgAUEkaigCABCaAgsgAUEEaigCAARAIAEoAgAQmgILIAFBqAFqIQEgD0EBayIPDQALCyAIRQ0GIBcQmgIMBgsgBkUNASAfEJoCDAELIANB0AFqEOoKIQggAygCdEUNACADKAJwEJoCCyADKAIMIQUgAygCFCIPBEAgBUHYAGohAQNAIAFBKGooAgAEQCABQSRqKAIAEJoCCyABQQRqKAIABEAgASgCABCaAgsgAUGoAWohASAPQQFrIg8NAAsLIAMoAhBFDQAgBRCaAgsgGkECOgAlIBogCDYCAAwCCyADQoHKgIDAADcDcCADQfAAahDqCiEBIBpBAjoAJSAaIAE2AgAMAQsgA0KByoCAwAA3A3AgA0HwAGoQ6gohASAaQQI6ACUgGiABNgIACyADQaACaiQAIAIoAqAEIQUCQCACLQDFBCIIQQJHBEAgKyAuKQIANwIAICtBIGogLkEgai0AADoAACArQRhqIC5BGGopAgA3AgAgK0EQaiAuQRBqKQIANwIAICtBCGogLkEIaikCADcCACACIAIvAcYEIgk7Ae4FIAIgCDoA7QUgAiAFNgLIBQJ/IBAoAgQiBUEDTQRAIAJCgcqAgMAANwOgBCACQaAEahDqCgwBCyAQIAVBBGsiBjYCBCAQIBAoAgAiAUEEajYCACAGQQNNBEAgAkKByoCAwAA3A6AEIAJBoARqEOoKDAELIAEoAAAhCiAQIAVBCGsiBjYCBCAQIAFBCGo2AgAgBkEDTQRAIAJCgcqAgMAANwOgBCACQaAEahDqCgwBCyABKAAEIQ0gECAFQQxrIgY2AgQgECABQQxqNgIAIAZBA0sNAiACQoHKgIDAADcDoAQgAkGgBGoQ6goLIQUgAkHIBWoQ2wYLIAQEQCAgQRBqIQMDQCADENsGIANBOGohAyAEQQFrIgQNAAsLIAIoArQIRQ0EICAQmgIMBAsgASgACCEDIBAgBUEQazYCBCAQIAFBEGo2AgAgAkGwAmoiBUEIaiIRIAJByAVqIgZBCGopAgA3AwAgBUEQaiIUIAZBEGopAgA3AwAgBUEYaiIMIAZBGGopAgA3AwAgBUEdaiIFIAZBHWopAAA3AAAgAiACKQLIBTcDsAIgASgADCELIAIoArQIIARGBEAgAkGwCGogBBCmBiACKAKwCCEgIAIoArgIIQQLICAgBEE4bGoiASALNgIMIAEgAzYCCCABIA02AgQgASAKNgIAIAEgAikDsAI3AhAgAUEYaiARKQMANwIAIAFBIGogFCkDADcCACABQShqIAwpAwA3AgAgAUEtaiAFKQAANwAAIAEgCTsBNiABIAg6ADUgAiAEQQFqIgQ2ArgIIA5BAWsiDg0ACyACKAKwCCEgIAIoArQIIQgLICANAiAIIQUMAQtBAUGUicAAQdyCwAAQ7wchBQsgbqdFDSYgGRCaAgwmCyACQQI2ArQCIAIgIzYCsAIgAkGgBGogAkGwAmoQowIgAigCpAQhASBupyEDIAIoAqAEBEAgASEFDCULIAFFBEBBAEGUicAAQdyCwAAQ7wchBQwlCyACQagEaikCACFvAkAgAigCtAIEQCACKAKwAiIGKAIEIgVBB00EQCACQoHKgICAATcDoAQgAkGgBGoQ6gohBQwmCyAGIAVBCGsiETYCBCAGIAYoAgAiBUEIaiIHNgIAIAJByAVqIAUpAAAQ0gUgAigCzAUhBSACKALIBQ0lAkBBzJkDIAUgBUHMmQNPGyIORQRAQQQhDwwBC0GR+8MALQAAGiAOQRRsIglBBBCCDCIPRQ09C0EAIQwgAkEANgKoBCACIA42AqQEIAIgDzYCoAQgBQRAA0AgEUUNByAGIBFBAWsiCTYCBCAGIAdBAWoiCjYCACAHLQAAIg5BAk8EQEGR+8MALQAAGkEQQQQQggwiBUUNQSAFIA46AAEgBUECOgAADCcLIAlFDQggBiAJQQFrIgk2AgQgBiAKQQFqIgs2AgAgCi0AACIKQQJPBEBBkfvDAC0AABpBEEEEEIIMIgVFDUEgBSAKOgABIAVBAjoAAAwnCyAJQQNNBEAgAkKByoCAwAA3A8gFIAJByAVqEOoKIQUMJwsgBiAJQQRrIgk2AgQgBiALQQRqIg02AgAgCUEDTQRAIAJCgcqAgMAANwPIBSACQcgFahDqCiEFDCcLIAsoAAAhEiAGIAlBBGsiCTYCBCAGIA1BBGoiETYCACAJQQNNBEAgAkKByoCAwAA3A8gFIAJByAVqEOoKIQUMJwsgDSgAACELIAYgCUEEayIJNgIEIAYgEUEEaiINNgIAIAlBA00EQCACQoHKgIDAADcDyAUgAkHIBWoQ6gohBQwnCyAOQQBHIRQgESgAACEYIAYgCUEEayIRNgIEIAYgDUEEaiIHNgIAIApBAEchCiANKAAAIQ4gAigCpAQgDEYEQCACQaAEaiAMEKUGIAIoAqAEIQ8gAigCqAQhDAsgDyAMQRRsaiIJIAo6ABEgCSAUOgAQIAkgDjYCDCAJIBg2AgggCSALNgIEIAkgEjYCACACIAxBAWoiDDYCqAQgBUEBayIFDQALIAIoAqAEIQ8gAigCpAQhDgsgDw0BIA4hBQwlC0EBQZSJwABB3ILAABDvByEFDCQLIG+nIRIgIygCBCIFQQhJDSAgIyAFQQhrIhE2AgQgIyAjKAIAIgVBCGoiBzYCACACQcgFaiAFKQAAENIFIAIoAswFIQUgAigCyAUNIQJAQdWqBSAFIAVB1aoFTxsiCkUEQEEEIRMMAQtBkfvDAC0AABogCkEMbCIGQQQQggwiE0UNOgtBACENIAJBADYCqAQgAiAKNgKkBCACIBM2AqAEIAUEfgNAAkAgEUEETwRAICMgEUEEayIGNgIEICMgB0EEaiIJNgIAIAZBBEkNIyAHKAAAIQsgIyAGQQRrIgY2AgQgIyAJQQRqIhQ2AgAgBkEETw0BDCMLDCILIAk1AAAhbSAjIAZBBGsiETYCBCAjIBRBBGoiBzYCACAUNQAAIXIgAigCpAQgDUYEQCACQaAEaiANEKoGIAIoAqAEIRMgAigCqAQhDQsgEyANQQxsaiIGIHJCIIYgbYQ3AgQgBiALNgIAIAIgDUEBaiINNgKoBCAFQQFrIgUNAAsgAigCpAQhCiACKAKgBCETIA2tQiCGBUIACyFtIBNFBEAgCiEFDCILIAIgEzYC+AEgAiAMNgL0ASACIA42AvABIAIgDzYC7AEgAiBvQiCIPgLoASACIBI2AuQBIAIgATYC4AEgAiAENgLcASACIAg2AtgBIAIgIDYC1AEgAiBuQiCIPgLQASACIAM2AswBIAIgGTYCyAEgAiACKQLABjcCwAEgAiBtIAqthDcC/AEgAigCDCIBRQ0BIAIgAUEBazYCDCACKAIIIQwgAkEBNgKoBiACIAw2AqQGIAwoAgQiAUEHTQRAIAJCgcqAgIABNwOgBCACQaAEahDqCiEFDB4LIAwgAUEIazYCBEEIIQkgDCAMKAIAIgFBCGo2AgAgAkHIBWogASkAABDSBSACKALMBSEIIAIoAsgFBEAgCCEFDB4LQeAWIAggCEHgFk8bIgUEQEGR+8MALQAAGiAFQegCbCIEQQgQggwiCUUNPgsgAkEANgK0BiACIAU2ArAGIAIgCTYCrAYCQCAIBEAgAkGoBGohDkEAIQMDQAJAAkACQAJAIAwoAgQiBEEETwRAIAwgBEEEayIGNgIEIAwgDCgCACIBQQRqNgIAIAEoAAAiEA4CAgMBCyACQoHKgIDAADcDoAQgAkGgBGoQ6gohBQwjCyACQQE6AKAEIAIgEK03A6gEIAJBoARqQcyIwABB3ILAABCpCCEFDCILAkACQCAGBEAgDCAEQQVrNgIEIAwgAUEFajYCACABLQAEIg8OAgQCAQsgAkKByoCAEDcDoAQgAkGgBGoQ6gohBQwjC0GR+8MALQAAGkEQQQQQggwiBUUNQiAFIA82AgQgBUEEOgAADCILIAZBBU8EQCAMIARBCWs2AgQgDCABQQlqNgIAIAEoAAUhOkEBIQ8MAgsgAkKByoCAwAA3A6AEIAJBoARqEOoKIQUMIQsCQCAGQQRPBEAgDCAEQQhrNgIEIAwgAUEIajYCACABKAAEIQ8gAkGgBGogDBDgAyACKAKkBCEFIAIoAqAEDSIgAkHIBWoiAUEQaiILIA5BEGoiESkCADcDACABQQhqIhggDkEIaiISKQIANwMAIAIgDikCADcDyAUgAkGgBGogDBDgAyACKAKkBCEKIAIoAqAEBEAgCiEFDCMLIAJB+AdqIgFBEGoiFSARKQIANwMAIAFBCGoiFiASKQIANwMAIAJBkAhqIgFBCGoiFyAYKQMANwMAIAFBEGoiGiALKQMANwMAIAIgDikCADcD+AcgAiACKQPIBTcDkAgCQCAMKAIEIgEEQCAMIAFBAWs2AgQgDCAMKAIAIgFBAWo2AgAgAS0AACFJIAJBoARqIAwQlgIgAigCpAQhByACKAKgBA0OIAJBsAJqIgFBIGoiGyAOQSBqIh0pAgA3AwAgAUEYaiIZIA5BGGoiEykCADcDACABQRBqIhQgESkCADcDACABQQhqIiAgEikCADcDACACIA4pAgA3A7ACIAwoAgQiBkUEQCACQoHKgIAQNwOgBCACQaAEahDqCiEFDCULIAwgBkEBayIJNgIEIAwgDCgCACIEQQFqIgE2AgBBACENAkACQAJAIAQtAAAiJQ4CAgEAC0GR+8MALQAAGkEQQQQQggwiBUUNRiAFICU2AgQgBUEEOgAADCYLAn8CQAJAAkACQCAGQQVPBEAgDCAGQQVrIgk2AgQgDCAEQQVqNgIAIAQoAAEiAQ4CAgMBCyACQoHKgIDAADcDoAQgAkGgBGoQ6gohBQwqCyACQQE6AKAEIAIgAa03A6gEIAJBoARqQcyIwABB3ILAABCpCCEFDCkLIAJBoARqIAwQlgIgAigCoARFDQEgAigCpAQhBQwoCyAJQQRPBEAgDCAGQQlrNgIEIAwgBEEJajYCACAEKAAFDAILIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBQwnCyAYIBIpAgA3AwAgCyARKQIANwMAIAJByAVqIgRBGGogEykCADcDACAEQSBqIB0pAgA3AwAgAiAOKQIANwPIBSACKAKkBAshBEGR+8MALQAAGkEwQQQQggwiDUUNDiANIAQ2AgQgDSABNgIAIA0gAikDyAU3AgggDUEQaiAYKQMANwIAIA1BGGogCykDADcCACANQSBqIAJByAVqIgFBGGopAwA3AgAgDUEoaiABQSBqKQMANwIAIAwoAgAhASAMKAIEIQkLIAlBBEkNIyAMIAlBBGsiBDYCBCAMIAFBBGo2AgAgBEEESQ0jIAEoAAAhSiAMIAlBCGsiBDYCBCAMIAFBCGo2AgAgBEEESQ0jIAE1AAQhbSAMIAlBDGsiBDYCBCAMIAFBDGo2AgAgBEEESQ0jIAE1AAghciAMIAlBEGsiBDYCBCAMIAFBEGo2AgAgBEEESQ0jIAEoAAwhSyAMIAlBFGsiBDYCBCAMIAFBFGo2AgAgBEEESQ0jIAE1ABAhbyAMIAlBGGsiBDYCBCAMIAFBGGo2AgAgBEEESQ0jIAE1ABQhcyAMIAlBHGsiBDYCBCAMIAFBHGo2AgAgBEEESQ0jIAEoABghNyAMIAlBIGsiBDYCBCAMIAFBIGo2AgAgBEEESQ0jIAEoABwhPSAMIAlBJGsiBDYCBCAMIAFBJGo2AgAgBEEESQ0jIAEoACAhQyAMIAlBKGsiBDYCBCAMIAFBKGo2AgAgBEEESQ0jIAEoACQhRSAMIAlBLGsiBDYCBCAMIAFBLGo2AgAgBEEESQ0jIAEoACghRiAMIAlBMGsiBjYCBCAMIAFBMGo2AgAgAkGwCGoiBEEIaiIcICApAwA3AwAgBEEQaiIfIBQpAwA3AwAgBEEYaiIiIBkpAwA3AwAgBEEgaiIjIBspAwA3AwAgAiACKQOwAjcDsAggBkEESQ0PIAEoACwhOyAMIAlBNGsiBDYCBCAMIAFBNGo2AgAgBEEESQ0PIAEoADAhPiAMIAlBOGsiBDYCBCAMIAFBOGo2AgAgBEEESQ0PIAE1ADQhdCAMIAlBPGsiBDYCBCAMIAFBPGo2AgACQCAEQQRJDQAgATUAOCF1IAwgCUFAaiIENgIEIAwgAUFAazYCACAEQQRJDQAgASgAPCFCIAwgCUHEAGsiBDYCBCAMIAFBxABqNgIAIARBBE8NAgsgAkEAOgCjBCACQSU7AKEEIAJBBDYCpAQgAkEBOgCgBCACQaAEahDqCiEFDCILIAJCgcqAgBA3A6AEIAJBoARqEOoKIQUMIwsgATUAQCF4IAwgCUHIAGsiBDYCBCAMIAFByABqNgIAIARBBEkNDiABNQBEIXwgDCAJQcwAayIENgIEIAwgAUHMAGo2AgAgBEEESQ0OIAEoAEghRCAMIAlB0ABrIgQ2AgQgDCABQdAAajYCACAEQQRJDQ4gATUATCF5IAwgCUHUAGsiBDYCBCAMIAFB1ABqNgIAAkACQCAEQQRJDQAgATUAUCF6IAwgCUHYAGsiBDYCBCAMIAFB2ABqNgIAIARBBEkNACABKABUIT8gDCAJQdwAayIENgIEIAwgAUHcAGo2AgAgBEEETw0BCyACQQA6AKMEIAJBJTsAoQQgAkEENgKkBCACQQE6AKAEIAJBoARqEOoKIQUMIQsgATUAWCF7IAwgCUHgAGsiBDYCBCAMIAFB4ABqNgIAIARBBEkNDyABNQBcIX4gDCAJQeQAayIENgIEIAwgAUHkAGo2AgAgBEEESQRAIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBQwhCyABKABgIUcgDCAJQegAayIENgIEIAwgAUHoAGo2AgAgBEEESQ0QIAEoAGQhSCAMIAlB7ABrIgQ2AgQgDCABQewAajYCACAEQQRJDRAgASgAaCE4IAwgCUHwAGsiBDYCBCAMIAFB8ABqNgIAIARBBEkNECABNQBsIX8gDCAJQfQAayIENgIEIAwgAUH0AGo2AgAgBEEESQ0RIAE1AHAhgwEgDCAJQfgAayIENgIEIAwgAUH4AGo2AgAgBEEESQ0RIAEoAHQhNCAMIAlB/ABrIgQ2AgQgDCABQfwAajYCACAEQQRJDREgATUAeCGEASAMIAlBgAFrIgQ2AgQgDCABQYABajYCACAEQQRJDRIgATUAfCGFASAMIAlBhAFrIgQ2AgQgDCABQYQBajYCACAEQQRJDRMgASgAgAEhNSAMIAlBiAFrIgQ2AgQgDCABQYgBajYCACAEQQRJDRMgASgAhAEhLyAMIAlBjAFrIgQ2AgQgDCABQYwBajYCACAEQQRJDRMgATUAiAEhhgEgDCAJQZABayIENgIEIAwgAUGQAWo2AgACQAJAIARBBEkNACABNQCMASGHASAMIAlBlAFrIgQ2AgQgDCABQZQBajYCACAEQQRJDQAgASgAkAEhLCAMIAlBmAFrIgQ2AgQgDCABQZgBajYCACAEQQRPDQELIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBQwhCyABNQCUASGIASAMIAlBnAFrIgQ2AgQgDCABQZwBajYCACAEQQNNBEAgAkEAOgCjBCACQSU7AKEEIAJBBDYCpAQgAkEBOgCgBCACQaAEahDqCiEFDCELIAE1AJgBIYkBIAwgCUGgAWsiBDYCBCAMIAFBoAFqNgIAIARBA00EQCACQQA6AKMEIAJBJTsAoQQgAkEENgKkBCACQQE6AKAEIAJBoARqEOoKIQUMIQsgASgAnAEhGyAMIAlBpAFrIgQ2AgQgDCABQaQBajYCACAERQ0UIAEoAKABIRggDCAJQaUBayIENgIEIAwgAUGlAWo2AgAgAS0ApAEiC0ECTwRAQZH7wwAtAAAaQRBBBBCCDCIFRQ1DIAUgCzoAASAFQQI6AAAMIQsgBEUNFSAMIAlBpgFrIgQ2AgQgDCABQaYBajYCACABLQClASIdQQJPBEBBkfvDAC0AABpBEEEEEIIMIgVFDUMgBSAdOgABIAVBAjoAAAwhCyAEQQhJDRYgDCAJQa4BayIENgIEIAwgAUGuAWo2AgAgASkApgEibkKAgICAEFoEQCACQQE6AKAEIAIgbjcDqAQgAkGgBGogAkHfCGpBtIDAABCpCCEFDCELIARBCEkNFyAMIAlBtgFrIgQ2AgQgDCABQbYBajYCACABKQCuASJwQoCAgIAQWgRAIAJBAToAoAQgAiBwNwOoBCACQaAEaiACQd8IakG0gMAAEKkIIQUMIQsgBEEISQ0YIAwgCUG+AWsiBDYCBCAMIAFBvgFqNgIAIAEpALYBInFCgICAgBBaBEAgAkEBOgCgBCACIHE3A6gEIAJBoARqIAJB3whqQbSAwAAQqQghBQwhCyAEQQNNBEAgAkKByoCAwAA3A6AEIAJBoARqEOoKIQUMIQsgDCAJQcIBazYCBCAMIAFBwgFqNgIAIAEoAL4BISQgAkGgBGogDBCsAyACKAKkBCEBIAIoAqAEIhFFBEAgASEFDCELIAwoAgQiBkEDTQRAIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBQwgCyACNQKoBCGKASAMIAZBBGsiCTYCBCAMIAwoAgAiBEEEajYCACAJQQNNBEAgAkEAOgCjBCACQSU7AKEEIAJBBDYCpAQgAkEBOgCgBCACQaAEahDqCiEFDCALIAQoAAAhJyAMIAZBCGsiCTYCBCAMIARBCGo2AgAgCUEDTQRAIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBQwgCyAEKAAEISYgDCAGQQxrIgk2AgQgDCAEQQxqNgIAIAlBA00EQCACQQA6AKMEIAJBJTsAoQQgAkEENgKkBCACQQE6AKAEIAJBoARqEOoKIQUMIAsgBCgACCElIAwgBkEQayIJNgIEIAwgBEEQajYCACAJRQ0ZIAQoAAwhKCAMIAZBEWsiEjYCBCAMIARBEWo2AgAgBC0AECIJQQJPBEBBkfvDAC0AABpBEEEEEIIMIgVFDUMgBSAJOgABIAVBAjoAAAwgCyASQQNNBEAgAkKByoCAwAA3A6AEIAJBoARqEOoKIQUMIAsgDCAGQRVrIhI2AgQgDCAEQRVqNgIAIBJBBEkNGiAEKAARIS0gDCAGQRlrIhI2AgQgDCAEQRlqNgIAIAQoABUiIEEETwRAIAJBAToAoAQgAiAgrTcDqAQgAkGgBGpB5IvAAEHcgsAAEKkIIQUMIAsgEkUEQCACQoHKgIAQNwOgBCACQaAEahDqCiEFDCALIAwgBkEaayISNgIEIAwgBEEaajYCACASRQ0bIAQtABkhEiAMIAZBG2siEzYCBCAMIARBG2o2AgAgBC0AGiIZQQJPBEBBkfvDAC0AABpBEEEEEIIMIgVFDUMgBSAZOgABIAVBAjoAAAwgCyATQQhJDRwgDCAGQSNrIhM2AgQgDCAEQSNqNgIAIAQpABsid0KAgICAEFoEQCACQQE6AKAEIAIgdzcDqAQgAkGgBGogAkHfCGpBtIDAABCpCCEFDCALIBNBD0sNASACQoHKgICAAjcDoAQgAkGgBGoQ6gohBQwfCyACQoHKgIDAADcDoAQgAkGgBGoQ6gohBQwhCyByQiCGIG2EIX0gc0IghiBvhCF2IHVCIIYgdIQhgQEgfEIghiB4hCGAASB6QiCGIHmEIXQgfkIghiB7hCFzIIMBQiCGIH+EIXUghQFCIIYghAGEIXIghwFCIIYghgGEIW0giQFCIIYgiAGEIW8gC0EARyELIB1BAEchEyBupyE6IHCnITwgcachKiABrSCKAUIghoQhbiAJQQBHIR0gGUEARyEUIARBL2o1AAAhcSAENQAjIXggBCkAJyFwIAwgBkEzazYCBCAMIARBM2o2AgAgAkGgB2oiAUEIaiAcKQMANwMAIAFBEGogHykDADcDACABQRhqICIpAwA3AwAgAUEgaiAjKQMANwMAIAJBngdqIAJBrwhqLQAAOgAAIAIgAikDsAg3A6AHIAIgAi8ArQg7AZwHIAJB4AdqIgFBEGogGikDADcDACABQQhqIBcpAwA3AwAgAiACKQOQCDcD4AcgAkHIB2oiAUEQaiAVKQMANwMAIAFBCGogFikDADcDACACIAIpA/gHNwPIByACQZoHaiACQd4Iai0AADoAACACIAIvANwIOwGYByBxQiCGIHBCIIiEIXwgeCBwQiCGhCF4IHenITILIAJBgAdqIgFBEGoiGSACQeAHaiIEQRBqKQMANwMAIAFBCGoiFSAEQQhqKQMANwMAIAJB6AZqIgFBCGoiFiACQcgHaiIEQQhqKQMANwMAIAFBEGoiFyAEQRBqKQMANwMAIAJBwAZqIgFBCGoiGiACQaAHaiIEQQhqKQMANwMAIAFBEGoiHCAEQRBqKQMANwMAIAFBGGoiHyAEQRhqKQMANwMAIAFBIGoiIiAEQSBqKQMANwMAIAIgAikD4Ac3A4AHIAIgAikDyAc3A+gGIAIgAikDoAc3A8AGIAJBvgZqIiMgAkGeB2otAAA6AAAgAkG6BmoiKyACQZoHai0AADoAACACIAIvAZwHOwG8BiACIAIvAZgHOwG4BiBuQiCIpyEuIG6nITkgAigCsAYgA0YEQCACQawGaiEEIwBBIGsiASQAIANBAWoiBkUNS0EEIAQoAgQiCUEBdCIDIAYgAyAGSxsiBiAGQQRNGyIDQegCbCEGIANBsYvsAklBA3QhMAJAIAlFBEAgAUEANgIYDAELIAFBCDYCGCABIAlB6AJsNgIcIAEgBCgCADYCFAsgAUEIaiAwIAYgAUEUahDaBiABKAIMIQYCQCABKAIIRQRAIAQgAzYCBCAEIAY2AgAMAQsgBkGBgICAeEYNACAGRQ1MIAYgAUEQaigCAEHQgcQAKAIAIgBBlwcgABsRAAAACyABQSBqJAAgAigCtAYhAwsgAigCrAYiCSADQegCbGoiASB4NwMYIAEgBTYCKCABICQ2AhQgASAqNgIQIAEgPDYCDCABIDo2AgggASAPNgIEIAEgEDYCACABIAIpA4AHNwIsIAEgCjYCRCABIAIpA+gGNwNIIAFBIGogfDcDACABQTRqIBUpAwA3AgAgAUE8aiAZKQMANwIAIAFB0ABqIBYpAwA3AwAgAUHYAGogFykDADcDACABIAc2ArABIAEgOzYCrAEgASBGNgKoASABIEU2AqQBIAEgQzYCoAEgASA9NgKcASABIDc2ApgBIAEgSDYClAEgASBHNgKQASABIHM3A4gBIAEgPzYChAEgASB0NwJ8IAEgRDYCeCABIIABNwNwIAEgQjYCbCABIIEBNwJkIAEgPjYCYCABIA02AtwBIAEgSjYC4AEgASB9NwLkASABIEs2AuwBIAEgdjcD8AEgASBJOgD4ASABQdQBaiAiKQMANwIAIAFBzAFqIB8pAwA3AgAgAUHEAWogHCkDADcCACABQbwBaiAaKQMANwIAIAEgAikDwAY3ArQBIAEgAi8BvAY7APkBIAFB+wFqICMtAAA6AAAgASAdOgDUAiABICg2AtACIAEgJTYCzAIgASAmNgLIAiABICc2AsQCIAEgLjYCwAIgASA5NgK8AiABIBE2ArgCIAEgMjYCtAIgASAtNgKwAiABIG83A6gCIAEgLDYCpAIgASBtNwKcAiABIC82ApgCIAEgNTYClAIgASByNwKMAiABIDQ2AogCIAEgdTcDgAIgASA4NgL8ASABIBs2AtgCIAEgGDYC3AIgASAUOgDmAiABICA6AOUCIAEgEjoA5AIgASATOgDhAiABIAs6AOACIAFB1wJqICstAAA6AAAgASACLwG4BjsA1QIgAiADQQFqIgM2ArQGIAhBAWsiCA0ACyACKAKwBiEFDAELQQAhAyAJRQ0eCyAFIQECQCAMKAIEIgVBBE8EQCAMIAVBBGsiCDYCBCAMIAwoAgAiBEEEajYCAAJAAkACQAJAIAgEQCAENQAAIW4gDCAFQQVrIg02AgQgDCAEQQVqIgY2AgAgBC0ABCIODgIDAgELIAJCgcqAgBA3A6AEIAJBoARqEOoKIQUMHgtBkfvDAC0AABpBEEEEEIIMIgVFDUEgBSAONgIEIAVBBDoAAAwdCyAIQQVJDQEgDCAFQQlrIg02AgQgDCAEQQlqIgY2AgAgBCgABSEgQQEhDgsgDUEISQ0aIAwgDUEIazYCBCAMIAZBCGo2AgAgBikAACJtQoCAgIAQVA0CIAJBAToAoAQgAiBtNwOoBCACQaAEaiACQd8IakG0gMAAEKkIIQUMGwsgAkKByoCAwAA3A6AEIAJBoARqEOoKIQUMGgsgAkKByoCAwAA3A6AEIAJBoARqEOoKIQUMGQsgAkGgBGogAkGkBmoQ9QIgAigCpAQhBSACKAKgBEUEQCAFDQNBAUHkicAAQdyCwAAQ7wchBQsgAwRAIAkhBANAAkAgBCgCAEUNACAEQdwBaigCACIGBEAgBhCaAgsgBEG8AmooAgBFDQAgBEG4AmooAgAQmgILIARB6AJqIQQgA0EBayIDDQALCyABRQ0dIAkQmgIMHQtBBEHwu8AAQdyCwAAQ7wchBQwlC0EFQfC7wABB3ILAABDvByEFDBsLIAIgAkGoBGopAgA3AqgCIAIgBTYCpAIgAiBtQiCGIG6ENwKcAiACIAM2ApgCIAIgATYClAIgAiAJNgKQAiACICA2AowCIAIgDjYCiAIgAkGgBGohC0EAIQRBACEFQQAhE0EAIQ1BACEdQgAhbUIAIW5CACFyQQAhGEEAIRVBACESQQAhB0EAIRtBACEXQQAhIEEAIRBBACEWQQAhKkEAISVBACEcQQAhKEEAIR9BACEiQQAhJ0EAISZBACEZIwBB4ARrIggkAAJAIAJBCGoiASgCBCIGRQRAIAtBAjYCAAwBCyABIAZBAWs2AgQCQCABKAIAIgkoAgQiAUEHTQRAIAhCgcqAgIABNwOYAyAIQZgDahDqCiEEDAELIAkgAUEIazYCBEEIIQMgCSAJKAIAIgFBCGo2AgAgCEHQAWogASkAABDSBSAIKALUASEBIAgoAtABBEAgASEEDAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEHhMCABIAFB4TBPGyIGBEBBkfvDAC0AABogBkGoAWwiCkEIEIIMIgNFDQELQQAhDiAIQQA2AhwgCCAGNgIYIAggAzYCFCABBEAgCEGYA2oiBkEIaiEjIAZBBGohDCAIQdgBaiEUA0ACQAJAAkACQCAJKAIEIgpBBE8EQCAJIApBBGsiETYCBCAJIAkoAgAiBkEEajYCACAGKAAAIiQOAgIDAQsgCEKByoCAwAA3A5gDIAhBmANqEOoKIQQMGQsgCEEBOgCYAyAIICStNwOgAyAIQZgDakHMiMAAQdyCwAAQqQghBAwYCwJAAkAgEQRAIAkgCkEFazYCBCAJIAZBBWo2AgAgBi0ABCIPDgIEAgELIAhCgcqAgBA3A5gDIAhBmANqEOoKIQQMGQtBkfvDAC0AABpBEEEEEIIMIgRFDVQgBCAPNgIEIARBBDoAAAwYCyARQQVPBEAgCSAKQQlrNgIEIAkgBkEJajYCACAGKAAFIRJBASEPDAILIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDBcLAkACQCARQQRPBEAgCSAKQQhrIgQ2AgQgCSAGQQhqNgIAIARBBEkNASAGKAAEIQ8gCSAKQQxrNgIEIAkgBkEMajYCAEEBIQcCQAJAAkAgBigACCIEDgIBAgALIAhBAToAmAMgCCAErTcDoAMgCEGYA2pBzIjAAEHcgsAAEKkIIQQMGgtBACEHCyAIQdABaiAJEBogCCgC1AEhBCAIKALQASIFQRNGDRcgIyAUQcABEIgNIQogCCAENgKcAyAIIAU2ApgDIAhBCGogCEGYA2oQpAEgCCgCDCEYIAgoAgghDRC5BiEEIA1FDRcgBBDkByAIIBg2ApwBIAggDTYCmAECQAJAAkACQAJAIAkoAgQiBEEETwRAIAkgBEEEayIFNgIEIAkgCSgCACIGQQRqNgIAIAYoAAAiGg4DAgMEAQsgCEKByoCAwAA3A5gDIAhBmANqEOoKIQQMGwsgCEEBOgCYAyAIIBqtNwOgAyAIQZgDakHEi8AAQdyCwAAQqQghBAwaCyAFQQRPBEAgCSAEQQhrIgU2AgQgCSAGQQhqNgIAIAYoAAQhEQwDCyAIQQA6AJsDIAhBJTsAmQMgCEEENgKcAyAIQQE6AJgDIAhBmANqEOoKIQQMGQsgBUEETwRAIAkgBEEIayIFNgIEIAkgBkEIajYCACAGKAAEIREMAgsgCEEAOgCbAyAIQSU7AJkDIAhBBDYCnAMgCEEBOgCYAyAIQZgDahDqCiEEDBgLIAhBmANqIAkQlgIgCCgCmAMNCUGR+8MALQAAGkEsQQQQggwiEUUNCCARIAwpAgA3AgAgEUEoaiAMQShqKAIANgIAIBFBIGogDEEgaikCADcCACARQRhqIAxBGGopAgA3AgAgEUEQaiAMQRBqKQIANwIAIBFBCGogDEEIaikCADcCACAJKAIEIQULIAVBBEkNCiAJIAVBBGsiGzYCBCAJIAkoAgAiBkEEajYCAAJAAkACQCAbBEAgBigAACEgIAkgBUEFazYCBCAJIAZBBWo2AgAgBi0ABCISDgIDAgELIAhCgcqAgBA3A5gDIAhBmANqEOoKIQQMGAtBkfvDAC0AABpBEEEEEIIMIgRFDVcgBCASNgIEIARBBDoAAAwXCyAbQQVJDQogCSAFQQlrIgQ2AgQgCSAGQQlqNgIAIARBBEkEQCAIQoHKgIDAADcDmAMgCEGYA2oQ6gohBAwXCyAGKAAFIRAgCSAFQQ1rNgIEIAkgBkENajYCACAGKAAJIRYgCEGYA2ogCRDgAyAIKAKcAyEEIAgoApgDDRYgCEHgAWogCkEQaikCADcDACAUIApBCGopAgA3AwAgCCAKKQIANwPQAUEBIRILIAhBoAFqIgVBEGoiLCAIQeABaikDADcDACAFQQhqIi8gFCkDADcDACAIIAgpA9ABNwOgASAIQZgDaiAJEOADIAgoApwDIQUCQCAIKAKYA0UEQCAIQbgBaiIGQRBqIi0gCkEQaikCADcDACAGQQhqIjIgCkEIaikCADcDACAIIAopAgA3A7gBIAkoAgQiCkEDTQRAIAhBADoAmwMgCEElOwCZAyAIQQQ2ApwDIAhBAToAmAMgCEGYA2oQ6gohBAwYCyAJIApBBGsiGzYCBCAJIAkoAgAiBkEEajYCACAbQQNNBEAgCEEAOgCbAyAIQSU7AJkDIAhBBDYCnAMgCEEBOgCYAyAIQZgDahDqCiEEDBgLIAYoAAAhKiAJIApBCGsiGzYCBCAJIAZBCGo2AgAgG0EESQ0NIAYoAAQhJSAJIApBDGsiGzYCBCAJIAZBDGo2AgAgBigACCIdQQRPBEAgCEEBOgCYAyAIIB2tNwOgAyAIQZgDakHki8AAQdyCwAAQqQghBAwYCyAbQQRJDQ4gCSAKQRBrIhk2AgQgCSAGQRBqNgIAIAYoAAwiG0EESQ0BIAhBAToAmAMgCCAbrTcDoAMgCEGYA2pB5IvAAEHcgsAAEKkIIQQMFwsgBSEEDBYLIBlBAU0EQCAIQoHKgIAgNwOYAyAIQZgDahDqCiEEDBYLIAkgCkESayIZNgIEIAkgBkESajYCACAZQQRJDQ0gBi8AECEcIAkgCkEWayIZNgIEIAkgBkEWajYCACAZQQRJBEAgCEKByoCAwAA3A5gDIAhBmANqEOoKIQQMFgsgBigAEiEoIAkgCkEaayIZNgIEIAkgBkEaajYCACAZQQRJDQ4gBigAFiEfIAkgCkEeayIZNgIEIAkgBkEeajYCACAZQQRJBEAgCEKByoCAwAA3A5gDIAhBmANqEOoKIQQMFgsgBigAGiEiIAkgCkEiayIZNgIEIAkgBkEiajYCACAZQQNNBEAgCEKByoCAwAA3A5gDIAhBmANqEOoKIQQMFgsgBigAHiEnIAkgCkEmayIZNgIEIAkgBkEmajYCACAZQQNNBEAgCEKByoCAwAA3A5gDIAhBmANqEOoKIQQMFgsgBigAIiEmIAkgCkEqayIZNgIEIAkgBkEqajYCACAZQQRJDQ8gBigAJiEZIAkgCkEuayIVNgIEIAkgBkEuajYCACAGKAAqIhNBA08EQCAIQQE6AJgDIAggE603A6ADIAhBmANqQcSLwABB3ILAABCpCCEEDBYLIBVBBEkNECAJIApBMmsiFTYCBCAJIAZBMmo2AgAgFUEESQ0RIAYoAC4hFSAJIApBNmsiFzYCBCAJIAZBNmo2AgAgF0EQTw0CIAhCgcqAgIACNwOYAyAIQZgDahDqCiEEDBULIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDBgLIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDBYLIAYoADIhFyAGQcIAajUAACFtIAY1ADYhciAGKQA6IW4gCSAKQcYAazYCBCAJIAZBxgBqNgIAIAhB+ABqIgZBCGogLykDADcDACAGQRBqICwpAwA3AwAgCEHgAGoiBkEIaiAyKQMANwMAIAZBEGogLSkDADcDACAIIAgpA6ABNwN4IAggCCkDuAE3A2AgCCAIQZQBaigAADYAWyAIIAgoAJEBNgJYIG1CIIYgbkIgiIQhbSByIG5CIIaEIW4gGq0gEa1CIIaEIXILIAhBQGsiBkEQaiIaIAhB+ABqIgpBEGopAwA3AwAgBkEIaiIsIApBCGopAwA3AwAgCEEoaiIGQQhqIi8gCEHgAGoiCkEIaikDADcDACAGQRBqIi0gCkEQaikDADcDACAIIAgpA3g3A0AgCCAIKQNgNwMoIAggCCgCWDYCICAIIAgoAFs2ACMgCCgCGCAORgRAIAhBFGohCiMAQSBrIgYkACAOQQFqIg5FDV1BBCAKKAIEIgNBAXQiESAOIA4gEUkbIg4gDkEETRsiEUGoAWwhDiARQbGYjAZJQQN0ITICQCADRQRAIAZBADYCGAwBCyAGQQg2AhggBiADQagBbDYCHCAGIAooAgA2AhQLIAZBCGogMiAOIAZBFGoQ2gYgBigCDCEOAkAgBigCCEUEQCAKIBE2AgQgCiAONgIADAELIA5BgYCAgHhGDQAgDkUNXiAOIAZBEGooAgBB0IHEACgCACIAQZcHIAAbEQAAAAsgBkEgaiQAIAgoAhQhAyAIKAIcIQ4LIAMgDkGoAWxqIgYgBDYCFCAGIBY2AhAgBiAQNgIMIAYgEjYCCCAGIA82AgQgBiAkNgIAIBopAwAhbyAsKQMAIXMgCCkDQCF0IAZByABqIG03AwAgBiBuNwNAIAYgdDcDGCAGQSBqIHM3AwAgBkEoaiBvNwMAIAYgBTYCfCAGICA2AnggBiAbOgB1IAYgHToAdCAGICU2AnAgBiAqNgJsIAYgEzoAaiAGIBw7AWggBiAZNgJkIAYgJjYCYCAGICc2AlwgBiAiNgJYIAYgHzYCVCAGICg2AlAgBiAYNgI8IAYgDTYCOCAGIHI3AzAgLykDACFuIC0pAwAhbSAIKQMoIXIgBiAVNgKYASAGIBc2ApwBIAYgBzoAoAEgBkGQAWogbTcDACAGQYgBaiBuNwMAIAYgcjcDgAEgBiAIKAIgNgChASAGQaQBaiAIKAAjNgAAIAggDkEBaiIONgIcIAFBAWsiAQ0ACyAIKAIUIQMgCCgCGCEGCyADRQRAIAYhBAwVCwJAIAkoAgQiBEEETwRAIAkgBEEEayIKNgIEIAkgCSgCACIBQQRqNgIAAkACQAJAAkAgCgRAIAE1AAAhbiAJIARBBWsiDTYCBCAJIAFBBWoiGDYCACABLQAEIgUOAgMCAQsgCEKByoCAEDcDmAMgCEGYA2oQ6gohBAwUC0GR+8MALQAAGkEQQQQQggwiBEUNVCAEIAU2AgQgBEEEOgAADBMLIApBBUkNASAJIARBCWsiDTYCBCAJIAFBCWoiGDYCACABKAAFIQdBASEFCyANQQhJDQ8gCSANQQhrNgIEIAkgGEEIajYCACAYKQAAIm1CgICAgBBUDQIgCEEBOgCYAyAIIG03A6ADIAhBmANqIAhB0AFqQbSAwAAQqQghBAwRCyAIQoHKgIDAADcDmAMgCEGYA2oQ6gohBAwQCyAIQoHKgIDAADcDmAMgCEGYA2oQ6gohBAwPCyAIQZgDaiAJEKwDIAgoApwDIQECQCAIKAKYAyIKRQRAIAEhBAwBCyAINQKgAyFyIAhBmANqIAkQrAMgCCgCnAMhBCAIKAKYAyIJDQ4gAUUNACAKEJoCCyAOBEAgA0E4aiEBA0ACQCABQThrKAIARQ0AIAEoAgAiCSgCACEFIAkgBUEBazYCACAFQQFGBEAgARCaCAsgAUEIaygCAEECSQ0AIAFBBGsoAgAQmgILIAFBqAFqIQEgDkEBayIODQALCyAGRQ0UIAMQmgIMFAtBCCAKQdCBxAAoAgAiAEGXByAAGxEAAAALQQRBLEHQgcQAKAIAIgBBlwcgABsRAAAACyAIKAKcAyEEDA0LIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDAsLIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDAoLIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDAkLIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDAgLIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDAcLIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDAYLIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDAULIAhCgcqAgMAANwOYAyAIQZgDahDqCiEEDAQLIAhBADoAmwMgCEElOwCZAyAIQQQ2ApwDIAhBAToAmAMgCEGYA2oQ6gohBAwDCyAIQoHKgICAATcDmAMgCEGYA2oQ6gohBAwBCyAINQKgAyFvIAsgCTYCKCALIAGtIHJCIIaENwIgIAsgCjYCHCALIG1CIIYgboQ3AhQgCyAONgIQIAsgBjYCDCALIAM2AgggCyAHNgIEIAsgBTYCACALIAStIG9CIIaENwIsDAcLIA4EQCADQThqIQEDQAJAIAFBOGsoAgBFDQAgASgCACIJKAIAIQUgCSAFQQFrNgIAIAVBAUYEQCABEJoICyABQQhrKAIAQQJJDQAgAUEEaygCABCaAgsgAUGoAWohASAOQQFrIg4NAAsLIAZFDQUgAxCaAgwFCyAaQQJJDQAgERCaAgsgDSANKAIAIgFBAWs2AgAgAUEBRw0AIAhBmAFqEJoICyAIKAIcIQ4LIAgoAhQhAwsgDgRAIANBOGohAQNAAkAgAUE4aygCAEUNACABKAIAIgYoAgAhBSAGIAVBAWs2AgAgBUEBRgRAIAEQmggLIAFBCGsoAgBBAkkNACABQQRrKAIAEJoCCyABQagBaiEBIA5BAWsiDg0ACwsgCCgCGEUNACAIKAIUEJoCCyALQQM2AgAgCyAENgIECyAIQeAEaiQAAkACQAJ/IAIoAqAEIgVBA0cEQCACQfACaiIGIAJBoARqIgFBEGopAgA3AwAgAkHoAmoiBEEQaiIIIAFBGGopAgA3AwAgBEEYaiIJIAFBIGopAgA3AwAgBEEgaiIKIAFBKGopAgA3AwAgBEEoaiIEIAFBMGooAgA2AgAgAiACKQKoBDcD6AIgBUECRw0CQQZB8LvAAEHcgsAAEO8HDAELIAIoAqQECyEBIClBAjYCACApIAE2AgQMAQsgAigCpAQhDiACQbACaiIBQTBqIAQoAgA2AgAgAUEoaiAKKQMANwIAIAFBIGogCSkDADcCACABQRhqIAgpAwA3AgAgAUEQaiAGKQMANwIAIAIgAikD6AI3ArgCIAIgDjYCtAIgAiAFNgKwAiACQaAEaiEDQQAhB0EAIQ9BACETQQAhHSMAQaAKayILJAACQCACQQhqIgEoAgQiBEUEQCADQQI2AgAMAQsgASAEQQFrNgIEIAEoAgAhCCALQQM2AgggCyAINgIEAkAgCCgCBCIBQQdNBEAgC0KByoCAgAE3A6AFIAtBoAVqEOoKIQQMAQsgCCABQQhrIgU2AgQgCCAIKAIAIgFBCGoiBjYCACALQeAHaiABKQAAENIFIAsoAuQHIQQgCygC4AcNAAJAQYCACCAEIARBgIAITxsiCUUEQEEEIRgMAQtBkfvDAC0AABogCUEDdCIBQQQQggwiGEUNPwsgC0EANgKoBSALIAk2AqQFIAsgGDYCoAUCQCAEBEADQCAFQQRJDQIgCCAFQQRrIgE2AgQgCCAGQQRqIgk2AgAgAUEESQ0CIAYoAAAhCiAIIAFBBGsiBTYCBCAIIAlBBGoiBjYCACAJKAAAIQEgCygCpAUgB0YEQCALQaAFaiAHEKsGIAsoAqgFIQcgCygCoAUhGAsgGCAHQQN0aiIJIAE2AgQgCSAKNgIAIAsgB0EBaiIHNgKoBSAEQQFrIgQNAAsgCygCoAUhGCALKAKkBSEJCyAYRQRAIAkhBAwCCwJAAkAgCygCCCIBBEAgCyABQQFrNgIIIAsoAgQiCigCBCIBQQdNBEAgC0KByoCAgAE3A6AFIAtBoAVqEOoKIQQMAwsgCiABQQhrIgY2AgQgCiAKKAIAIgFBCGoiBTYCACALQeAHaiABKQAAENIFIAsoAuQHIQQgCygC4AcNAgJAAkACQAJAAkBB1aoFIAQgBEHVqgVPGyIBRQRAQQQhEQwBC0GR+8MALQAAGiABQQxsIghBBBCCDCIRRQ0BCyALQQA2AugHIAsgATYC5AcgCyARNgLgByAEBEADQAJAAkACQCAGQQRPBEAgCiAGQQRrIg42AgQgCiAFQQRqNgIAAkACQAJAIAUoAAAiDA4CAQIACyALQQE6AKAFIAsgDK03A6gFIAtBoAVqQcyIwABB3ILAABCpCCEEDAMLAkACQCAOBEAgCiAGQQVrIgg2AgQgCiAFQQVqIgE2AgAgBS0ABCINDgIHAgELIAtCgcqAgBA3A6AFIAtBoAVqEOoKIQQMBAtBkfvDAC0AABpBEEEEEIIMIgRFDUwgBCANNgIEIARBBDoAAAwDCyAOQQRLBEBBASENQXchCEEJIR0gASEODAQLIAtCgcqAgMAANwOgBSALQaAFahDqCiEEDAILAkAgDkEETwRAIAogBkEIayIBNgIEIAogBUEIaiIONgIAIAFBBEkNASAFKAAEIQ1BdCEIQQwhHQwECyALQoHKgIDAADcDoAUgC0GgBWoQ6gohBAwCCyALQoHKgIDAADcDoAUgC0GgBWoQ6gohBAwBCyALQoHKgIDAADcDoAUgC0GgBWoQ6gohBAsgCygC5AdFDQogCygC4AcQmgIMCgsgCiAGIAhqIgg2AgQgCiAFIB1qIgE2AgAgDigAACEdCyALKALkByAPRgRAIAtB4AdqIA8QqgYgCygC6AchDyALKALgByERCyARIA9BDGxqIgUgHTYCCCAFIA02AgQgBSAMNgIAIAsgD0EBaiIPNgLoByAIIQYgASEFIARBAWsiBA0ACyALKALgByERIAsoAuQHIQELIBFFBEAgASEEDAcLAkACQAJAAkACQAJAAkAgCigCBCIFQQRPBEAgCiAFQQRrIgY2AgQgCiAKKAIAIgRBBGo2AgACQAJAAkACQCAGBEAgBCgAACEQIAogBUEFayIONgIEIAogBEEFaiINNgIAIAQtAAQiCA4CAwIBCyALQoHKgIAQNwOgBSALQaAFahDqCiEEDBELQZH7wwAtAAAaQRBBBBCCDCIERQ1PIAQgCDYCBCAEQQQ6AAAMEAsgBkEFSQ0BIAogBUEJayIONgIEIAogBEEJaiINNgIAIAQoAAUhHUEBIQgLIA5BCEkNAyAKIA5BCGs2AgQgCiANQQhqNgIAIA0pAAAibkKAgICAEFQNAiALQQE6AKAFIAsgbjcDqAUgC0GgBWogC0HgB2pBtIDAABCpCCEEDA4LIAtCgcqAgMAANwOgBSALQaAFahDqCiEEDA0LIAtCgcqAgMAANwOgBSALQaAFahDqCiEEDAwLIAsoAggiBEUNBCALIARBAWs2AgggCygCBCEEIAtBAjYCECALIAQ2AgwgC0GgBWogC0EMahCjAiALKAKkBSEKIAsoAqAFBEAgCiEEDAoLIApFBEBBAEGUicAAQdyCwAAQ7wchBAwKCyALQagFaikCACFtAkAgCygCECIEBEAgCyAEQQFrNgIQIAsoAgwiDigCBCIEQQdNBEAgC0KByoCAgAE3A6AFIAtBoAVqEOoKIQQMCwsgDiAEQQhrNgIEQQghDCAOIA4oAgAiBEEIajYCACALQeAHaiAEKQAAENIFIAsoAuQHIQUgCygC4AcEQCAFIQQMCwtBqhUgBSAFQaoVTxsiBgRAQZH7wwAtAAAaIAZBgANsIgRBCBCCDCIMRQ1OCyALQQA2AhwgCyAGNgIYIAsgDDYCFCAFBEAgC0GgBWpBBHIhGQNAIAsgDjYCmAUgDigCBCIGQQRJDQUgDiAGQQRrIg02AgQgDiAOKAIAIgRBBGo2AgAgDUEESQRAIAtCgcqAgMAANwOgBSALQaAFahDqCiEEDAwLIAQoAAAhFSAOIAZBCGsiDTYCBCAOIARBCGo2AgAgC0EDNgKcBSANQQRJDQYgBCgABCEUIA4gBkEMayINNgIEIA4gBEEMajYCACANQQRJBEAgC0KByoCAwAA3A6AFIAtBoAVqEOoKIQQMDAsgBCgACCEgIA4gBkEQazYCBCAOIARBEGo2AgAgBCgADCEWIAtBoAVqIAtBmAVqEEAgCygCoAUhBCALLQDdByIbQQNGDQsgC0HgB2ogGUG5AhCIDRogG0ECRgRAQQJB1I3AAEHcgsAAEO8HIQQMDAsCQCALKAKcBSIXBEACQCALKAKYBSIGKAIEIhJBBEkNACALLwHeByEaIAYoAgAhDSAGIBJBBGsiJTYCBCAGIA1BBGo2AgAgJUEESQ0AIA0oAAAhJSAGIBJBCGsiKDYCBCAGIA1BCGo2AgAgKEEESQ0AIA0oAAQhKCAGIBJBDGsiHDYCBCAGIA1BDGo2AgAgHEEESQ0AIA0oAAghHCAGIBJBEGsiHzYCBCAGIA1BEGo2AgAgH0EESQ0AIA0oAAwhHyAGIBJBFGsiIjYCBCAGIA1BFGo2AgAgIkEDSw0CCyALQQA6AKMFIAtBJTsAoQUgC0EENgKkBSALQQE6AKAFIAtBoAVqEOoKIQQMDQtBA0HUjcAAQdyCwAAQ7wchBAwMCyANKAAQISIgBiASQRhrIiQ2AgQgBiANQRhqNgIAAkAgF0EBRwRAICRBBEkNCSANKAAUIRcgBiASQRxrIiQ2AgQgBiANQRxqNgIAICRBBE8NASALQoHKgIDAADcDoAUgC0GgBWoQ6gohBAwNC0EEQdSNwABB3ILAABDvByEEDAwLIA0oABghJCAGIBJBIGs2AgQgBiANQSBqNgIAIA0oABwhEiALQdwCaiALQeAHakG5AhCIDRogDigCBCINQQNNBEAgC0KByoCAwAA3A6AFIAtBoAVqEOoKIQQMDAsgDiANQQRrIiY2AgQgDiAOKAIAIgZBBGo2AgAgJkEDTQRAIAtCgcqAgMAANwOgBSALQaAFahDqCiEEDAwLIAYoAAAhJiAOIA1BCGsiJzYCBCAOIAZBCGo2AgAgJ0EDTQRAIAtCgcqAgMAANwOgBSALQaAFahDqCiEEDAwLIAYoAAQhJyAOIA1BDGsiIzYCBCAOIAZBDGo2AgAgI0EDTQRAIAtCgcqAgMAANwOgBSALQaAFahDqCiEEDAwLIAYoAAghIyAOIA1BEGs2AgQgDiAGQRBqNgIAIAYoAAwhDSALQSBqIAtB3AJqQbkCEIgNGiALKAIYIBNGBEAgC0EUaiATELAGIAsoAhwhEyALKAIUIQwLIAwgE0GAA2xqIgYgBDYCQCAGIBI2AjwgBiAkNgI4IAYgFzYCNCAGICI2AjAgBiAfNgIsIAYgHDYCKCAGICg2AiQgBiAlNgIgIAYgFjYCHCAGICA2AhggBiAUNgIUIAYgFTYCECAGIA02AgwgBiAjNgIIIAYgJzYCBCAGICY2AgAgBkHEAGogC0EgakG5AhCIDRogBiAaOwH+AiAGIBs6AP0CIAsgE0EBaiITNgIcIAVBAWsiBQ0ACyALKAIUIQwgCygCGCEGCyAMDQEgBiEEDAoLQQFBlInAAEHcgsAAEO8HIQQMCQsgC0GgBWogC0EEahD1AiALKAKkBSEEIG2nIQUgCygCoAVFBEAgBA0GQQNBlI/AAEHcgsAAEO8HIQQLIAUEQCAKEJoCCyAGRQ0JIAwQmgIMCQsgC0KByoCAgAE3A6AFIAtBoAVqEOoKIQQMCgsgC0KByoCAwAA3A6AFIAtBoAVqEOoKIQQMBQsgC0KByoCAwAA3A6AFIAtBoAVqEOoKIQQMBAsgC0KByoCAwAA3A6AFIAtBoAVqEOoKIQQMAwtBAkGUj8AAQdyCwAAQ7wchBAwECyADIAtBqAVqKQIANwJEIAMgBDYCQCADIBM2AjwgAyAGNgI4IAMgDDYCNCADIG1CIIg+AjAgAyAFNgIsIAMgCjYCKCADIAmtIAetQiCGhDcCICADIBg2AhwgAyBuPgIYIAMgEDYCFCADIA82AhAgAyABNgIMIAMgETYCCCADIB02AgQgAyAINgIADAkLQQQgCEHQgcQAKAIAIgBBlwcgABsRAAAACyALKAIYRQ0AIAsoAhQQmgILIG2nRQ0AIAoQmgILIAFFDQIgERCaAgwCC0EBQZSPwABB3ILAABDvByEEDAELIAFFDQAgERCaAgsgCUUNASAYEJoCDAELIAtCgcqAgMAANwPgByALQeAHahDqCiEEIAsoAqQFRQ0AIAsoAqAFEJoCCyADQQM2AgAgAyAENgIECyALQaAKaiQAAkACQAJ/IAIoAqAEIgFBA0cEQCACKAKkBCEEIAJBmANqIAJBqARqQcQAEIgNGiABQQJHDQJBB0Hwu8AAQdyCwAAQ7wcMAQsgAigCpAQLIQEgKUECNgIAICkgATYCBAwBCyACQdAFaiACQZgDakHEABCIDRogAiAENgLMBSACIAE2AsgFIAJBoARqIR1BACEIQQAhDUEAIQVBACEGQQAhCUEAIQpBACELQQAhE0IAIW1BACEOQQAhFkIAIW5BACEUQQAhEUEAIRhBACEbQQAhKkEAISRBACElQQAhHEEAIShBACEXQQAhH0EAISJBACEnQQAhJkEAIRlBACEMQQAhEEIAIXJBACEsQgAhc0IAIXRCACFvQgAhdUEAIS9CACF2QQAhMiMAQeANayIHJAACQCACQQhqIgEoAgQiBEUEQCAdQQI2AgAMAQsgASAEQQFrNgIEIAEoAgAhDyAHQQM2AgQgByAPNgIAAkAgDygCBCIBQQdNBEAgB0KByoCAgAE3A+AIIAdB4AhqEOoKIQQMAQsgDyABQQhrNgIEIA8gDygCACIBQQhqNgIAIAdBoAtqIAEpAAAQ0gUgBygCpAshAyAHKAKgCwRAIAMhBAwBC0EEIRJB1x0gAyADQdcdTxsiBARAQZH7wwAtAAAaIARBlAJsIgFBBBCCDCISRQ1ACyAHQQA2AhAgByAENgIMIAcgEjYCCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMEQCAHQeAIaiIBQQhqISAgAUEgaiEjIAFBDGohGiABQQRyIToDQAJAAkAgDygCBCISQQRPBEAgDyASQQRrIis2AgQgDyAPKAIAIgFBBGo2AgACQAJAAkAgASgAACIEDgIBAgALIAdBAToA4AggByAErTcD6AggB0HgCGpBzIjAAEHcgsAAEKkIIQQMKwsCQAJAICsEQCAPIBJBBWs2AgQgDyABQQVqNgIAQQIhLSABLQAEIhUOAgYCAQsgB0KByoCAEDcD4AggB0HgCGoQ6gohBAwsC0GR+8MALQAAGkEQQQQQggwiBEUNaSAEIBU2AgQgBEEEOgAADCsLICtBBU8EQCAPIBJBCWs2AgQgDyABQQlqNgIAIAEoAAUhE0EBIRUMBAsgB0KByoCAwAA3A+AIIAdB4AhqEOoKIQQMKgsgK0EESQ0oIA8gEkEIayIENgIEIA8gAUEIajYCACABKAAEIRUgB0EPNgL8ASAHIA82AvgBIARBB00EQCAHQoHKgICAATcD4AggB0HgCGoQ6gohBCAHKAIQIQoMKgsgDyASQRBrNgIEIA8gAUEQajYCACAHQaALaiABKQAIENIFIAcoAqQLIQEgBygCoAsEQCABIQQgBygCECEKDCoLAkBB5BAgASABQeQQTxsiGEUEQEEIIRMMAQtBkfvDAC0AABogGEHoA2wiBEEIEIIMIhNFDWkLQQAhBSAHQQA2AvQCIAcgGDYC8AIgByATNgLsAiABBEADQCAPKAIEIgZBCEkNCCAPIAZBCGsiCDYCBCAPIA8oAgAiBEEIajYCACAEKQAAIm1CgICAgBBaBEAgB0EBOgDgCCAHIG03A+gIIAdB4AhqIAdB2AhqQbSAwAAQqQghBAwpCyAIQQhJDQkgDyAGQRBrIgg2AgQgDyAEQRBqNgIAIAQpAAgibkKAgICAEFoEQCAHQQE6AOAIIAcgbjcD6AggB0HgCGogB0HYCGpBtIDAABCpCCEEDCkLIAhBCEkNCiAPIAZBGGsiCDYCBCAPIARBGGo2AgAgBCkAECJyQoCAgIAQWgRAIAdBAToA4AggByByNwPoCCAHQeAIaiAHQdgIakG0gMAAEKkIIQQMKQsgCEEESQ0LIA8gBkEcayIINgIEIA8gBEEcajYCACAIQQRJBEAgB0KByoCAwAA3A+AIIAdB4AhqEOoKIQQMKQsgBCgAGCELIA8gBkEgazYCBCAPIARBIGo2AgAgBCgAHCENIAcgDzYC2AggB0EDNgLcCCAHQeAIaiAHQdgIahBAIAcoAuAIIQQgBy0AnQsiDkEDRg0oIAdBoAtqIDpBuQIQiA0aIA5BAkYEQEEAQeSOwABB3ILAABDvByEEDCkLAkAgBygC3AgiCgRAAkAgBygC2AgiBigCBCIJQQRJDQAgBy8BngshESAGKAIAIQggBiAJQQRrIgw2AgQgBiAIQQRqNgIAIAxBBEkNACAIKAAAIQwgBiAJQQhrIhg2AgQgBiAIQQhqNgIAIBhBBEkNACAIKAAEIRggBiAJQQxrIhI2AgQgBiAIQQxqNgIAIBJBBEkNACAIKAAIIRIgBiAJQRBrIhs2AgQgBiAIQRBqNgIAIBtBBEkNACAIKAAMIRsgBiAJQRRrIhA2AgQgBiAIQRRqNgIAIBBBA0sNAgsgB0EAOgDjCCAHQSU7AOEIIAdBBDYC5AggB0EBOgDgCCAHQeAIahDqCiEEDCoLQQFB5I7AAEHcgsAAEO8HIQQMKQsgCCgAECEQIAYgCUEYayIZNgIEIAYgCEEYajYCAAJAIApBAUcEQAJAIBlBBEkNACAIKAAUIRkgBiAJQRxrIgo2AgQgBiAIQRxqNgIAIApBBEkNACAIKAAYIRQgBiAJQSBrIgo2AgQgBiAIQSBqNgIAIApBBEkNACAIKAAcIRYgBiAJQSRrIgo2AgQgBiAIQSRqNgIAIApBA0sNAgsgB0EAOgDjCCAHQSU7AOEIIAdBBDYC5AggB0EBOgDgCCAHQeAIahDqCiEEDCoLQQJB5I7AAEHcgsAAEO8HIQQMKQsgCCgAICEXIAYgCUEoazYCBCAGIAhBKGo2AgAgCCgAJCElIAdB6AVqIAdBoAtqQbkCEIgNGiAHQeAIaiAPEOADIAcoAuQIIQYgBygC4AgNDCAHQagIaiIIQRBqIiggIEEQaiIJKQIANwMAIAhBCGoiHCAgQQhqIgopAgA3AwAgByAgKQIANwOoCCAHQeAIaiAPEOADIAcoAuQIIQggBygC4AgNDSAHQcAIaiIfQRBqIiIgCSkCADcDACAfQQhqIh8gCikCADcDACAHICApAgA3A8AIAkACQCAPKAIEIgpBBEkNACAPKAIAIQkgDyAKQQRrIiQ2AgQgDyAJQQRqNgIAICRBBEkNACAJKAAAISQgDyAKQQhrIiY2AgQgDyAJQQhqNgIAICZBBE8NAQsgB0EAOgDjCCAHQSU7AOEIIAdBBDYC5AggB0EBOgDgCCAHQeAIahDqCiEEDCkLIAk1AAQhbyAPIApBDGsiJjYCBCAPIAlBDGo2AgACQAJAICZBBEkNACAJNQAIIXMgDyAKQRBrIiY2AgQgDyAJQRBqNgIAICZBBEkNACAJKAAMISYgDyAKQRRrIic2AgQgDyAJQRRqNgIAICdBA0sNAQsgB0EAOgDjCCAHQSU7AOEIIAdBBDYC5AggB0EBOgDgCCAHQeAIahDqCiEEDCkLIAk1ABAhdCAPIApBGGsiJzYCBCAPIAlBGGo2AgAgJ0EESQ0OIAk1ABQhdSAPIApBHGsiJzYCBCAPIAlBHGo2AgAgJ0EESQ0OIAkoABghJyAPIApBIGsiKjYCBCAPIAlBIGo2AgAgKkEESQ0OIAk1ABwhdiAPIApBJGsiKjYCBCAPIAlBJGo2AgACQAJAICpBBEkNACAJNQAgIXAgDyAKQShrIio2AgQgDyAJQShqNgIAICpBBEkNACAJKAAkISogDyAKQSxrIiw2AgQgDyAJQSxqNgIAICxBBE8NAQsgB0EAOgDjCCAHQSU7AOEIIAdBBDYC5AggB0EBOgDgCCAHQeAIahDqCiEEDCkLIG2nISwgbqchLyBypyEtIHNCIIYgb4QhbSB1QiCGIHSEIW4gcEIghiB2hCFyIAk1ACghbyAPIApBMGs2AgQgDyAJQTBqNgIAIAk1ACwhcyAHQagDaiAHQegFakG5AhCIDRogB0GQA2oiCUEQaiIKICgpAwA3AwAgCUEIaiIoIBwpAwA3AwAgB0H4AmoiCUEIaiIcIB8pAwA3AwAgCUEQaiIfICIpAwA3AwAgByAHKQOoCDcDkAMgByAHKQPACDcD+AIgbyBzQiCGhCFvIAcoAvACIAVGBEAgB0HsAmogBRCxBiAHKALsAiETIAcoAvQCIQULIBMgBUHoA2xqIgkgBDYCSCAJIBk2AkQgCSAQNgJAIAkgGzYCPCAJIBI2AjggCSAYNgI0IAkgDDYCMCAJICU2AiwgCSAXNgIoIAkgFjYCJCAJIBQ2AiAgCSBvNwMYIAkgKjYCFCAJIHI3AgwgCSAnNgIIIAkgDTYCBCAJIAs2AgAgCUHMAGogB0GoA2pBuQIQiA0aIAkgBjYClAMgCSAtNgKQAyAJIC82AowDIAkgLDYCiAMgCSAROwGGAyAJIA46AIUDIAkgBykDkAM3A5gDIAlBoANqICgpAwA3AwAgCUGoA2ogCikDADcDACAJIAg2ArADIAkgBykD+AI3ArQDIAlBvANqIBwpAwA3AgAgCUHEA2ogHykDADcCACAJIG43AtwDIAkgJjYC2AMgCSBtNwPQAyAJICQ2AswDIAcgBUEBaiIFNgL0AiABQQFrIgENAAsgBygC7AIhEyAHKALwAiEYCyATRQRAIBghBCAHKAIQIQoMKgsgB0HgCGogB0H4AWoQoQIgBygC5AgiBCEBIAcoAuAIDSUgBEUEQEEBQYCNwABB3ILAABDvByEBDCYLIAcpAuwIIXIgBygC6AghIiAHQeAIaiAHQfgBahChAiAHKALkCCIXIQEgBygC4AgNJCAXRQRAQQJBgI3AAEHcgsAAEO8HIQEMJQsgBykC7AghcyAHKALoCCEbIAdB4AhqIAdB+AFqEKECIAcoAuQIIg0hBiAHKALgCA0jIA1FBEBBA0GAjcAAQdyCwAAQ7wchBgwkCyAHKALoCCEnAkAgBygC/AEiAQRAIAcpAuwIIXQgByABQQFrNgL8ASAHKAL4ASIBKAIEIgZBB00EQCAHQoHKgICAATcD4AggB0HgCGoQ6gohBgwlCyABIAZBCGs2AgQgASABKAIAIgZBCGo2AgAgB0GgC2ogBikAABDSBSAHKAKkCyEGIAcoAqALDSQgByABNgLoBSAHIAY2AuwFAkBBgIAEIAYgBkGAgARPGyIBRQRAQQQhCwwBC0GR+8MALQAAGiABQQR0IgZBBBCCDCILRQ1nCyAHQQA2AqgLIAcgATYCpAsgByALNgKgCyAHQeAIaiAHQegFahCiAiAHKALgCA0PIBitIAWtQiCGhCFvQQAhCgNAIAcoAuQIIgYEQCAHKQLsCCFtIAcoAugIIQggCiAHKAKkC0YEQCAHQaALaiAKEKQGIAcoAqALIQsgBygCqAshCgsgCiIBQQR0IAtqIgUgbTcCCCAFIAg2AgQgBSAGNgIAIAcgAUEBaiIKNgKoCyAHQeAIaiAHQegFahCiAiAHKALgCEUNAQwkCwsgBygCpAshEiAHKAKgCyIMDQEgEiEGDCQLQQRBgI3AAEHcgsAAEO8HIQYMIwsgB0HgCGogB0H4AWoQ/gEgBygC5AgiBiEBIAcoAuAIDR8gB0GIAmoiKyAaQQhqIggoAgA2AgAgByAaKQIANwOAAiAGRQRAQQVBgI3AAEHcgsAAEO8HIQEMIAsgBygC6AghHyAHQeAIaiAHQfgBahCfASAHKALkCCIUIQEgBygC4AgNHiAHQagCaiIBIAgoAgA2AgAgB0GYAmoiBSAjQQhqIgkoAgA2AgAgByAaKQIANwOgAiAHICMpAgA3A5ACIBRFBEBBBkGAjcAAQdyCwAAQ7wchAQwfCyAHKALoCCEQIAcoAvgIISwgBygC/AghJiAHQbADaiIuIAEoAgA2AgAgB0HICGoiNCAFKAIANgIAIAcgBykDoAI3A6gDIAcgBykDkAI3A8AIIAdB4AhqIAdB+AFqEP4BIAcoAuQIIhYhASAHKALgCA0dIAdBuAJqIjUgCCgCADYCACAHIBopAgA3A7ACIBZFBEBBB0GAjcAAQdyCwAAQ7wchAQweCyAHKALoCCElIAdB4AhqIAdB+AFqEJ8BIAcoAuQIIiohBSAHKALgCA0cIAdB2AJqIgEgCCgCADYCACAHQcgCaiIFIAkoAgA2AgAgByAaKQIANwPQAiAHICMpAgA3A8ACICpFBEBBCEGAjcAAQdyCwAAQ7wchBQwdCyAHKALoCCEcIAcoAvgIIS8gBygC/AghKCAHQagLaiI3IAEoAgA2AgAgB0HwBWoiOCAFKAIANgIAIAcgBykD0AI3A6ALIAcgBykDwAI3A+gFAkAgBygC/AEiAQRAIAcgAUEBayIONgL8ASAHKAL4ASIIKAIEIglBCEkNECAIIAlBCGsiCzYCBCAIIAgoAgAiBUEIajYCACAFKQAAInBCgICAgBBUDQEgB0EBOgDgCCAHIHA3A+gIIAdB4AhqIAdB2AhqQbSAwAAQqQghBQwdC0EJQYCNwABB3ILAABDvByEFDBwLAkAgDgRAIAcgAUECayIONgL8ASALRQ0RIAggCUEJayILNgIEIAggBUEJajYCACAFLQAIIi1BAkkNAUGR+8MALQAAGkEQQQQQggwiBUUNaSAFIC06AAEgBUECOgAADB0LQQpBgI3AAEHcgsAAEO8HIQUMHAsCQCAOBEAgByABQQNrIg42AvwBIAtBCEkNEiAIIAlBEWsiCzYCBCAIIAVBEWo2AgAgBSkACSJxQoCAgIAQVA0BIAdBAToA4AggByBxNwPoCCAHQeAIaiAHQdgIakG0gMAAEKkIIQUMHQtBC0GAjcAAQdyCwAAQ7wchBQwcCwJAIA4EQCAHIAFBBGs2AvwBIAdBATYClAMgByAINgKQAyALQQdNBEAgB0KByoCAgAE3A+AIIAdB4AhqEOoKIQUMHgsgCCAJQRlrIgE2AgQgCCAFQRlqIgk2AgAgB0GoCGogBSkAERDSBSAHKAKsCCEFIAcoAqgIDR0CQEGq1QIgBSAFQarVAk8bIhFFBEBBBCEkDAELQZH7wwAtAAAaIBFBGGwiDkEEEIIMIiRFDXMLQQAhCyAHQQA2AugIIAcgETYC5AggByAkNgLgCCAFBEADQCABQQRJDR4gCCABQQRrIgE2AgQgCCAJQQRqIg42AgAgAUEESQ0eIAkoAAAhESAIIAFBBGsiATYCBCAIIA5BBGoiCTYCACABQQRJDR4gDjUAACFtIAggAUEEayIBNgIEIAggCUEEaiIONgIAIAFBBEkNHiAJNQAAIW4gCCABQQRrIgE2AgQgCCAOQQRqIgk2AgAgAUEESQ0eIA4oAAAhGSAIIAFBBGsiATYCBCAIIAlBBGoiDjYCACABQQRJDR4gbkIghiBthCFtIAk1AAAhbiAIIAFBBGsiATYCBCAIIA5BBGoiCTYCACBuIA41AABCIIaEIW4gBygC5AggC0YEQCAHQeAIaiALEKkGIAcoAuAIISQgBygC6AghCwsgJCALQRhsaiIOIG43AhAgDiAZNgIMIA4gbTcCBCAOIBE2AgAgByALQQFqIgs2AugIIAVBAWsiBQ0ACyAHKALgCCEkIAcoAuQIIRELICRFBEAgESEFDB4LIAdB4AhqIAdBkANqEKECIAcoAuQIIQUgBygC4AhFBEAgBQ0CQQFB+I/AAEHcgsAAEO8HIQULIBFFDR0gJBCaAgwdC0EMQYCNwABB3ILAABDvByEFDBwLIAcpAuwIIXUgBygC6AghGSAHQeAIaiAHQfgBahDIASAHKALkCCEJAkAgBygC4AgEQCAJIQgMAQsgCUUEQEENQYCNwABB3ILAABDvByEIDAELIAcpAugIIW0gB0HgCGogB0H4AWoQyAEgBygC5AghDgJAIAcoAuAIBEAgDiEIDAELIA5FBEBBDkGAjcAAQdyCwAAQ7wchCAwBCyAHKQLoCCFuIAdB4AhqIAdB+AFqEKICIAcoAuQIIQggBygC4AhFBEAgB0HoAmoiASAgQQhqKAIANgIAIAcgICkCADcD4AIgCA0EQQ9BgI3AAEHcgsAAEO8HIQgLIG5CIIinIgsEQCAOIQEDQCABQQRqKAIABEAgASgCABCaAgsgAUEQaiEBIAtBAWsiCw0ACwsgbqdFDQAgDhCaAgsgbUIgiKciCwRAIAkhAQNAIAFBBGooAgAEQCABKAIAEJoCCyABQRBqIQEgC0EBayILDQALCyBtp0UNACAJEJoCCyARBEAgJBCaAgsgGQRAIAUQmgILIAghBQwbCyAHQoHKgIDAADcD4AggB0HgCGoQ6gohBAwoCyASrSAKrUIghoQhdiBwpyEyIC1BAEchLSBxpyEYIAdBkAFqIAEoAgA2AgAgB0HwAWogKygCADYCACAHQeABaiAuKAIANgIAIAdB0AFqIDQoAgA2AgAgB0HAAWogNSgCADYCACAHIAcpA+ACNwOIASAHIAcpA4ACNwPoASAHIAcpA6gDNwPYASAHIAcpA8AINwPIASAHIAcpA7ACNwO4ASAHQbABaiA3KAIANgIAIAdBoAFqIDgoAgA2AgAgByAHKQOgCzcDqAEgByAHKQPoBTcDmAEgB0GGAWogB0H3AWotAAA6AAAgByAHLwD1ATsBhAEgBygCECEKCyAHQYABaiI0IAdB8AFqKAIANgIAIAdB8ABqIjUgB0HgAWooAgA2AgAgB0HgAGoiNyAHQdABaigCADYCACAHQdAAaiI4IAdBwAFqKAIANgIAIAdBQGsiOyAHQbABaigCADYCACAHIAcpA+gBNwN4IAcgBykD2AE3A2ggByAHKQPIATcDWCAHIAcpA7gBNwNIIAcgBykDqAE3AzggB0EwaiI8IAdBoAFqKAIANgIAIAdBIGoiPSAHQZABaigCADYCACAHQRZqIj4gB0GGAWotAAA6AAAgByAHKQOYATcDKCAHIAcpA4gBNwMYIAcgBy8BhAE7ARQgBygCDCAKRgRAIAdBCGohEiMAQSBrIgEkACAKQQFqIgpFDXBBBCASKAIEIitBAXQiLiAKIAogLkkbIgogCkEETRsiLkGUAmwhCiAuQYLz2gNJQQJ0IT8CQCArRQRAIAFBADYCGAwBCyABQQQ2AhggASArQZQCbDYCHCABIBIoAgA2AhQLIAFBCGogPyAKIAFBFGoQ2gYgASgCDCEKAkAgASgCCEUEQCASIC42AgQgEiAKNgIADAELIApBgYCAgHhGDQAgCkUNcSAKIAFBEGooAgBB0IHEACgCACIAQZcHIAAbEQAAAAsgAUEgaiQAIAcoAhAhCgsgBygCCCISIApBlAJsaiIBIB82AlAgASAGNgJMIAEgdjcCRCABIAw2AkAgASB0NwI4IAEgJzYCNCABIA02AjAgASBzNwIoIAEgGzYCJCABIBc2AiAgASByNwIYIAEgIjYCFCABIAQ2AhAgASBvNwIIIAEgEzYCBCABIBU2AgAgASAHKQN4NwJUIAFB3ABqIDQoAgA2AgAgASAQNgJkIAEgFDYCYCABICw2AnQgASAmNgJ4IAEgFjYCiAEgASAlNgKMASABIAcpA2g3AmggAUHwAGogNSgCADYCACABIAcpA1g3AnwgAUGEAWogNygCADYCACABIAcpA0g3ApABIAFBmAFqIDgoAgA2AgAgASAcNgKgASABICo2ApwBIAEgKDYCtAEgASAvNgKwASABIAg2AvgBIAEgbjcC8AEgASAONgLsASABIG03AuQBIAEgCTYC4AEgASB1NwLYASABIBk2AtQBIAEgBTYC0AEgASALNgLMASABIBE2AsgBIAEgJDYCxAEgASAHKQM4NwKkASABQawBaiA7KAIANgIAIAEgBykDKDcCuAEgAUHAAWogPCgCADYCACABQYQCaiA9KAIANgIAIAEgBykDGDcC/AEgASAtOgCQAiABIBg2AowCIAEgMjYCiAIgAUGTAmogPi0AADoAACABIAcvARQ7AJECIAcgCkEBaiIKNgIQIANBAWsiAw0ACyAHKAIMIQQMAQsgEkUNJQsgBCEJAkAgDygCBCIEQQRPBEAgDyAEQQRrIgU2AgQgDyAPKAIAIgFBBGo2AgACQAJAAkACQCAFBEAgATUAACFyIA8gBEEFayILNgIEIA8gAUEFaiITNgIAIAEtAAQiBg4CAwIBCyAHQoHKgIAQNwPgCCAHQeAIahDqCiEEDBkLQZH7wwAtAAAaQRBBBBCCDCIERQ1mIAQgBjYCBCAEQQQ6AAAMGAsgBUEFSQ0BIA8gBEEJayILNgIEIA8gAUEJaiITNgIAIAEoAAUhF0EBIQYLIAtBCEkNDiAPIAtBCGs2AgQgDyATQQhqNgIAIBMpAAAibkKAgICAEFQNAiAHQQE6AOAIIAcgbjcD6AggB0HgCGogB0HYCGpBtIDAABCpCCEEDBYLIAdCgcqAgMAANwPgCCAHQeAIahDqCiEEDBULIAdCgcqAgMAANwPgCCAHQeAIahDqCiEEDBQLAkAgBygCBCIBBEAgByABQQFrNgIEIAcoAgAiCCgCBCIBQQdNBEAgB0KByoCAgAE3A+AIIAdB4AhqEOoKIQQMFQsgCCABQQhrIgs2AgQgCCAIKAIAIgFBCGoiEzYCACAHQaALaiABKQAAENIFIAcoAqQLIQQgBygCoAsNFAJAQcyZAyAEIARBzJkDTxsiAUUEQEEEIQUMAQtBkfvDAC0AABogAUEUbCIOQQQQggwiBUUNbQtBACEDIAdBADYCqAsgByABNgKkCyAHIAU2AqALIAQEQANAAkAgC0EETwRAIAggC0EEayIBNgIEIAggE0EEaiIONgIAAkAgAUEETwRAIBMoAAAhESAIIAFBBGsiATYCBCAIIA5BBGoiCzYCACABQQRJDRQgDigAACEMIAggAUEEayIBNgIEIAggC0EEaiIONgIAIAFBBE8NASAHQoHKgIDAADcD4AggB0HgCGoQ6gohBAwZCyAHQoHKgIDAADcD4AggB0HgCGoQ6gohBAwYCyALKAAAIRggCCABQQRrIgE2AgQgCCAOQQRqIg02AgAgAUEISQ0TIA4oAAAhDiAIIAFBCGsiCzYCBCAIIA1BCGoiEzYCACANKQAAIm1CgICAgBBUDQEgB0EBOgDgCCAHIG03A+gIIAdB4AhqIAdB2AhqQbSAwAAQqQghBAwXCyAHQoHKgIDAADcD4AggB0HgCGoQ6gohBAwWCyAHKAKkCyADRgRAIAdBoAtqIAMQpQYgBygCqAshAyAHKAKgCyEFCyAFIANBFGxqIgEgbT4CECABIAw2AgwgASAONgIIIAEgGDYCBCABIBE2AgAgByADQQFqIgM2AqgLIARBAWsiBA0ACyAHKAKgCyEFIAcoAqQLIQELIAUNASABIQQMFAtBAUHEj8AAQdyCwAAQ7wchBAwTCyAHKAIEIgRFDQ4gByAEQQFrNgIEIAcoAgAhBCAHQQI2AuwFIAcgBDYC6AUgB0HgCGogB0HoBWoQowIgBygC5AghCCAHKALgCARAIAghBAwRCyAIRQRAQQBBlInAAEHcgsAAEO8HIQQMEQsgB0HoCGopAgAhbQJAAkAgBygC7AUEQCAHKALoBSILKAIEIgRBB00EQCAHQoHKgICAATcD4AggB0HgCGoQ6gohBAwCCyALIARBCGsiFTYCBCALIAsoAgAiBEEIaiIUNgIAIAdBoAtqIAQpAAAQ0gUgBygCpAshBCAHKAKgCw0BAkBBgIAEIAQgBEGAgARPGyINRQRAQQQhGwwBC0GR+8MALQAAGiANQQR0Ig5BBBCCDCIbRQ1uC0EAIRMgB0EANgLoCCAHIA02AuQIIAcgGzYC4AggBARAA0ACQAJ/IBVBA00EQCAHQoHKgIDAADcDoAsgB0GgC2oQ6goMAQsgCyAVQQRrIg42AgQgCyAUQQRqIg02AgAgDkEDTQRAIAdCgcqAgMAANwOgCyAHQaALahDqCgwBCyAUKAAAIQwgCyAOQQRrIg42AgQgCyANQQRqIhE2AgAgDkEDTQRAIAdCgcqAgMAANwOgCyAHQaALahDqCgwBCyANKAAAIRggCyAOQQRrIg42AgQgCyARQQRqIg02AgAgDkEDSw0BIAdCgcqAgMAANwOgCyAHQaALahDqCgshBCAHKALkCEUNBCAHKALgCBCaAgwECyARKAAAIREgCyAOQQRrIhU2AgQgCyANQQRqIhQ2AgAgDSgAACENIAcoAuQIIBNGBEAgB0HgCGogExCkBiAHKALoCCETIAcoAuAIIRsLIBsgE0EEdGoiDiANNgIMIA4gETYCCCAOIBg2AgQgDiAMNgIAIAcgE0EBaiITNgLoCCAEQQFrIgQNAAsgBygC4AghGyAHKALkCCENCyAbDQIgDSEEDAELQQFBlInAAEHcgsAAEO8HIQQLIG2nRQ0RIAgQmgIMEQsgB0HgCGogBxD1AiAHKALkCCEEIG2nIQ4gBygC4AhFBEAgBA0QQQNBxI/AAEHcgsAAEO8HIQQLIA4EQCAIEJoCCyANRQ0QIBsQmgIMEAsgB0KByoCAgAE3A+AIIAdB4AhqEOoKIQQMHwsgB0KByoCAgAE3A+AIIAdB4AhqEOoKIQQMHgsgB0KByoCAgAE3A+AIIAdB4AhqEOoKIQQMHQsgB0KByoCAwAA3A+AIIAdB4AhqEOoKIQQMHAsgBiEEDBsLIAghBAwaCyAHQQA6AOMIIAdBJTsA4QggB0EENgLkCCAHQQE6AOAIIAdB4AhqEOoKIQQMGQsgBygC5AghBgwTCyAHQoHKgICAATcD4AggB0HgCGoQ6gohBQwMCyAHQoHKgIAQNwPgCCAHQeAIahDqCiEFDAsLIAdCgcqAgIABNwPgCCAHQeAIahDqCiEFDAoLIAdCgcqAgIABNwPgCCAHQeAIahDqCiEEDAcLIAdCgcqAgMAANwPgCCAHQeAIahDqCiEEDAQLIAdCgcqAgIABNwPgCCAHQeAIahDqCiEEDAMLQQJBxI/AAEHcgsAAEO8HIQQMAQsgHSAHQegIaikCADcCRCAdIAQ2AkAgHSATNgI8IB0gDTYCOCAdIBs2AjQgHSBtQiCIPgIwIB0gDjYCLCAdIAg2AiggHSABrSADrUIghoQ3AiAgHSAFNgIcIB0gbkIghiByhDcCFCAdIAo2AhAgHSAJNgIMIB0gEjYCCCAdIBc2AgQgHSAGNgIADBULIAFFDQEgBRCaAgwBCyAHKAKkC0UNACAHKAKgCxCaAgsgCgRAIBJBkAJqIQEDQCABLQAAQQJHBEAgAUGMAmsQlAILIAFBlAJqIQEgCkEBayIKDQALCyAJRQ0RIBIQmgIMEQsgCgRAIBJBkAJqIQEDQCABLQAAQQJHBEAgAUGMAmsQlAILIAFBlAJqIQEgCkEBayIKDQALCyAJRQ0QIBIQmgIMEAsgB0EAOgCrCCAHQSU7AKkIIAdBBDYCrAggB0EBOgCoCCAHQagIahDqCiEFIAcoAuQIRQ0AIAcoAuAIEJoCCyAcBEAgKhCaAgsgKARAIC8QmgILCyAFIQEgJQRAIBYQmgILCyAQBEAgFBCaAgsgJgRAICwQmgILCyAfBEAgBhCaAgsLIAEhBiAKBEAgDCEBA0AgAUEEaigCAARAIAEoAgAQmgILIAFBEGohASAKQQFrIgoNAAsLIBJFDQIgDBCaAgwCCyAHKALkCCEGIAcoAqALIQsgCkUNACABQQFqIQogCyEBA0AgAUEEaigCAARAIAEoAgAQmgILIAFBEGohASAKQQFrIgoNAAsLIAcoAqQLRQ0AIAsQmgILICcEQCANEJoCCwsgBiEBIBsEQCAXEJoCCwsgIgRAIAQQmgILCyABIQQgGEUNASATEJoCDAELIAcoAvACRQ0AIBMQmgIgBygCECEKDAILIAcoAhAhCgwBCyAHQoHKgIDAADcD4AggB0HgCGoQ6gohBAsgBygCCCEFIAoEQCAFQZACaiEBA0AgAS0AAEECRwRAIAFBjAJrEJQCCyABQZQCaiEBIApBAWsiCg0ACwsgBygCDEUNACAFEJoCCyAdQQM2AgAgHSAENgIECyAHQeANaiQAAn8gAigCoAQiBUEDRwRAIAIoAqQEIQYgAkHcA2ogAkGoBGoiCEHEABCIDRogBUECRgRAQQhB8LvAAEHcgsAAEO8HDAILIClBsAFqIAJB3ANqQcQAEIgNGiACQaAEaiIBQSBqIAJBiAJqIgRBIGopAgA3AwAgAUEYaiAEQRhqKQIANwMAIAFBEGogBEEQaikCADcDACAIIARBCGopAgA3AwAgAUEwaiACQbACaiIEQQhqKQIANwMAIAJB2ARqIARBEGopAgA3AwAgAkHgBGogBEEYaikCADcDACACQegEaiAEQSBqKQIANwMAIAJB8ARqIAJB2AJqKQIANwMAIAJB+ARqIARBMGooAgA2AgAgAiACKQKIAjcDoAQgAiACKQKwAjcDyAQgAkH8BGogAkHIBWpBzAAQiA0aICkgAUGoARCIDSIBIFs2AqgCIAEgWjYCpAIgASBZNgKgAiABIFg2ApwCIAEgVjYCmAIgASBVNgKUAiABIFQ2ApACIAEgUzYCjAIgASBSNgKIAiABIFE2AoQCIAEgUDYCgAIgASBPNgL8ASABIE42AvgBIAEgVzYC9AEgASAGNgKsASABIAU2AqgBIAFBrAJqIAJBEGpBzAAQiA0aIAFB+AJqIAJB3ABqQeQAEIgNGiABQdwDaiACQcABakHEABCIDRogASCCATcCpAQgASBNNgKgBAw5CyACKAKkBAshASApQQI2AgAgKSABNgIEIAJByAVqEJEHCyACQbACahD/BQsgAkGIAmoQ8wYMGwsgAkKByoCAEDcDyAUgAkHIBWoQ6gohBQweCyACQoHKgIAQNwPIBSACQcgFahDqCiEFDB0LQQRBMEHQgcQAKAIAIgBBlwcgABsRAAAACyAHIQUMFQsgAkEAOgCjBCACQSU7AKEEIAJBBDYCpAQgAkEBOgCgBCACQaAEahDqCiEFDBILIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBQwRCyACQQA6AKMEIAJBJTsAoQQgAkEENgKkBCACQQE6AKAEIAJBoARqEOoKIQUMEAsgAkEAOgCjBCACQSU7AKEEIAJBBDYCpAQgAkEBOgCgBCACQaAEahDqCiEFDA8LIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBQwOCyACQQA6AKMEIAJBJTsAoQQgAkEENgKkBCACQQE6AKAEIAJBoARqEOoKIQUMDQsgAkEAOgCjBCACQSU7AKEEIAJBBDYCpAQgAkEBOgCgBCACQaAEahDqCiEFDAwLIAJCgcqAgBA3A6AEIAJBoARqEOoKIQUMCwsgAkKByoCAEDcDoAQgAkGgBGoQ6gohBQwKCyACQoHKgICAATcDoAQgAkGgBGoQ6gohBQwJCyACQoHKgICAATcDoAQgAkGgBGoQ6gohBQwICyACQoHKgICAATcDoAQgAkGgBGoQ6gohBQwHCyACQoHKgIAQNwOgBCACQaAEahDqCiEFDAULIAJCgcqAgMAANwOgBCACQaAEahDqCiEFDAQLIAJCgcqAgBA3A6AEIAJBoARqEOoKIQUMAwsgAkKByoCAgAE3A6AEIAJBoARqEOoKIQUMAgsgAkKByoCAgAE3A6AEIAJBoARqEOoKIQULIAMEQCAJIQQDQAJAIAQoAgBFDQAgBEHcAWooAgAiBgRAIAYQmgILIARBvAJqKAIARQ0AIARBuAJqKAIAEJoCCyAEQegCaiEEIANBAWsiAw0ACwsgAUUNBCAJEJoCDAQLIAFFDQAgERCaAgsgDUUNASANEJoCDAELIAJBADoAowQgAkElOwChBCACQQQ2AqQEIAJBAToAoAQgAkGgBGoQ6gohBSANRQ0AIA0QmgILIAIoAqwGIQEgAwRAIAEhBANAAkAgBCgCAEUNACAEQdwBaigCACIGBEAgBhCaAgsgBEG8AmooAgBFDQAgBEG4AmooAgAQmgILIARB6AJqIQQgA0EBayIDDQALCyACKAKwBkUNACABEJoCCyApQQI2AgAgKSAFNgIECyACQcABahC1BQwICyACQoHKgIDAADcDyAUgAkHIBWoQ6gohBSACKAKkBEUNASACKAKgBBCaAgwBCyACQoHKgICAATcDoAQgAkGgBGoQ6gohBQsgEgRAIAEQmgILIA5FDQIgDxCaAgwCCyACKAKkBEUNACACKAKgBBCaAgsgb6dFDQAgARCaAgsgAwRAIBkQmgILIAQEQCAgQRBqIQMDQCADENsGIANBOGohAyAEQQFrIgQNAAsLIAhFDQAgIBCaAgsgAigCwAYiBCgCACEBIAQgAUEBazYCACABQQFHDQAgAkHABmoQmggLIClBAjYCACApIAU2AgQLIAJB3ABqEIcEDA4LIAJCgcqAgMAANwPIBSACQcgFahDqCiEBIAIoAqQEIgQEQCACKAKgBCAEQQJ0QQtqQXhxaxCaAgsgAigCtARFDQAgAigCsAQQmgILIAMEQCAPIQQDQCAEEJwHIARBQGshBCADQQFrIgMNAAsLIAdFDQIgDxCaAgwCCyACQoHKgIAQNwOgBCACQaAEahDqCiEBCyADBEAgBiEEA0AgBBCcByAEQUBrIQQgA0EBayIDDQALCyACKAK0AkUNACAGEJoCCyAgBEAgESEEA0ACQCAEKAIARQ0AIARBBGooAgAiBUUNACAFEO0ICyAEQSxqIQQgIEEBayIgDQALCyAKRQ0IIBEQmgIMCAsgAkGgBGoQ6gohASALRQ0GIA1FDQYgDRDtCAwGCyBzp0UNACAFEJoCCyAMRQ0BIAQQmgIMAQsgc6dFDQAgBBCaAgsgAkGgBGoQ3wYMAgtBAiACQd8IakHgscAAEO8HIQQgEgRAIAEQmgILIA0EQCAMEJoCCyAIBEAgDhCaAgsgBQRAIAYQmgILIAQhAQwBCyACQoHKgIAQNwOgBCACQaAEahDqCiEBCyACKAKgByEFIAMEQCAFIQQDQAJAIAQoAgBFDQAgBEEEaigCACIGRQ0AIAYQ7QgLIARBLGohBCADQQFrIgMNAAsLIAIoAqQHRQ0AIAUQmgILIClBAjYCACApIAE2AgQLIAJBEGoQ5wYMAQsgKUECNgIAICkgBDYCBAsgAkHgCGokAAwNC0EEIAZB0IHEACgCACIAQZcHIAAbEQAAAAtBBCAJQdCBxAAoAgAiAEGXByAAGxEAAAALQQQgEUHQgcQAKAIAIgBBlwcgABsRAAAAC0EEQRBB0IHEACgCACIAQZcHIAAbEQAAAAtBCCAEQdCBxAAoAgAiAEGXByAAGxEAAAALQQQgAUHQgcQAKAIAIgBBlwcgABsRAAAACyAKIAlBzJvAABDjCAALQQQgBEHQgcQAKAIAIgBBlwcgABsRAAAACyAGRQ0FIAYgAygCIEHQgcQAKAIAIgBBlwcgABsRAAAACyAGRQ0EIAYgAygCOEHQgcQAKAIAIgBBlwcgABsRAAAAC0EEQcgAQdCBxAAoAgAiAEGXByAAGxEAAAALQQRBIEHQgcQAKAIAIgBBlwcgABsRAAAAC0EEIA5B0IHEACgCACIAQZcHIAAbEQAAAAsCQAJAIB4oAoAIIghBAkcEQCAeKAKECCEJIB5B2ANqIgEgHkGACGoiBkEIakGkBBCIDRogHkEUaiIEIAFB1AAQiA0aIB5BiANqIgogAUHUAGpBzAAQiA0aIB5BuAJqIg4gHkH4BGpBzAAQiA0aIB5BgAJqIgVBMGoiCyABQZwCaikCADcDACAFQShqIg0gAUGUAmopAgA3AwAgBUEgaiIDIAFBjAJqKQIANwMAIAVBGGoiESAeQdwFaikCADcDACAFQRBqIgwgHkHUBWopAgA3AwAgBUEIaiIFIB5BzAVqKQIANwMAIB4gHikCxAU3A4ACIB5BsAFqIhggAUGkAmpBzAAQiA0aIAYgHkHIBmpB5AAQiA0aIB5B6ABqIgIgHkGsB2pBxAAQiA0aICFBDGogHkH4B2ooAgA2AgAgISAeKQLwBzcCBCAhQTBqIARBGGopAgA3AgAgIUEoaiAEQRBqKQIANwIAICFBIGogBEEIaikCADcCACAhIB4pAhQ3AhggAUEwaiAEQdAAaigCACISNgIAIAFBKGogBEHIAGopAgAibTcDACABQSBqIARBQGspAgAibjcDACABQRhqIB5BzABqKQIAInI3AwAgAUEQaiAEQTBqKQIAIm83AwAgAUEIaiAEQShqKQIAInM3AwAgHiAeKQI0InQ3A9gDICEgCTYCFCAhIAg2AhAgIUEBNgIAICEgdDcCOCAhQUBrIHM3AgAgIUHIAGogbzcCACAhQdAAaiByNwIAICFB2ABqIG43AgAgIUHgAGogbTcCACAhQegAaiASNgIAICFB7ABqIApBzAAQiA0aICFBuAFqIA5BzAAQiA0aICFBtAJqIAspAwA3AgAgIUGsAmogDSkDADcCACAhQaQCaiADKQMANwIAICFBnAJqIBEpAwA3AgAgIUGUAmogDCkDADcCACAhQYwCaiAFKQMANwIAICEgHikDgAI3AoQCICFBvAJqIBhBzAAQiA0aICFBiANqIAZB5AAQiA0aICFB7ANqIAJBxAAQiA0aIB4oAgwEQCAeKAIIEJoCCyAeKAIEIgFBgwFLDQEMAgsgHigChAgQ5AcgIUECNgIAIB4oAgwEQCBMEJoCCyAeKAIEIgFBhAFJDQELIAEQAgsgHkGwDGokAAwCCxDbCgALIAQgAigCyAFB0IHEACgCACIAQZcHIAAbEQAAAAsgACAAKAIAQQFrNgIAQQAhACAhKAIAQQJHBEBBkfvDAC0AABpBtARBBBCCDCIARQ0DIABBADYCACAAQQRqICFBsAQQiA0aCyAhQbAEaiQAIAAPCxD4DAALEPkMAAtBBEG0BEHQgcQAKAIAIgBBlwcgABsRAAAAC6cBAgF/A34jAEEQayIIJAAgCCAEIAUgBiAHIAMgAigCACABLQAAIgEQjgQgCEEMaigCACEEIAgoAgghBSAIIAgoAgAgCCgCBCAGIAcgAyACKAIEIgIgARCOBCAIKQIAIQkgCCkCCCEKIAggBSAEIAYgByADIAIgARCOBCAIKQIAIQsgACAIKQIINwIYIAAgCzcCECAAIAo3AgggACAJNwIAIAhBEGokAAuWAQEHfSABKgIAIgUgAioCACIGlCABKgIEIgcgAioCBCIIlJIgASoCCCIJIAIqAggiCpSSIgRDAAAAAF8iAUEAIAMbRQRAIAAgCiAEIAmUkzgCCCAAIAggBCAHlJM4AgQgACAGIAUgBJSTOAIAIAAgAToADA8LIAAgAikCADcCACAAQQhqIAJBCGooAgA2AgAgAEEBOgAMC48BAQJ/IAAtAAghASAAKAIAIgJFBEAgAUEARw8LAkAgAUUEQCAAKAIEIQEgAkEBRw0BIAAtAAlFDQEgAS0AHEEEcQ0BIAEoAhRBvN3DAEEBIAFBGGooAgAoAgwRBQBFDQELIABBAToACEEBDwsgACABKAIUQZzawwBBASABQRhqKAIAKAIMEQUAIgA6AAggAAufAQICfwF8AkAgAQRAIAEoAgAiA0F/Rg0BIAEgA0EBajYCAAJ/AkACQAJAIAIgAUEMaigCAEkEQCABQQRqKAIAIgQNAQsgASADNgIADAELIAQgAkHUAWxqIgIrAgQhBSACKAIAIQIgASADNgIAIAINAQtEAAAAAAAAAAAhBUEADAELQQELIQEgACAFOQMIIAAgATYCAA8LEPgMAAsQ+QwAC5YBAgJ/AX4CQAJAIAAEQCAAKAIAIgJBf0YNASAAIAJBAWo2AgAgAEEEaiABvSIEpyAEQiCIpxDUCCIDRQ0CQQYhAiADQegCai0AAEE3ayIDQf8BcUEITQRAIAPAQQJ0Qfi7wABqKAIAIQILIAAgACgCAEEBazYCACACDwsQ+AwACxD5DAALQZSywABB0ABBlLPAABDhCQALsQYBCX8jAEEgayIFJAAgBSABNgIQIAUgATYCDCAFIAA2AgggBSADNgIcIAUgAzYCGCAFIAI2AhQgBUEUaiEJQQAhAUEAIQMjAEEgayIGJAAgBUEIaiIKKAIAIQsCQAJAAkACQAJAAkACQAJAIAooAggiAEUEQEEEIQIMAQtBBCECAkAgACAAQQNuIgFBA2xHIAFqIgNFDQAgA0Gq1arVAEsNBCADQQxsIgFBAEgNBCABRQ0AQZH7wwAtAAAaIAFBBBCCDCICRQ0CC0EAIQEDQCAAQQJNDQMgAiAEaiIHIAQgC2oiCCoCADgCACAHQQRqIAhBBGopAgA3AgAgBEEMaiEEIAFBAWohASAAQQNrIgANAAsLIAYgATYCHCAGIAM2AhggBiACNgIUIAkoAgAhAwJAIAkoAggiBEUEQCAGIAZBFGpBBEEAEN8IIAYoAgQhBCAGKAIAIQAMAQtBACEHQQQhAgJAIAQgBEEDbiIAQQNsRyAAaiIIRQ0AIAhBqtWq1QBLDQQgCEEMbCIAQQBIDQQgAEUNAEGR+8MALQAAGiAAQQQQggwiAkUNBQsgAiEAIAMhAQNAQQMgBCAEQQNPGyIMQQFGDQYgBEECTQ0HIAAgASgCADYCACAAQQRqIAEpAgQ3AgAgAEEMaiEAIAdBAWohByABIAxBAnRqIQEgBCAMayIEDQALIAZBCGogBkEUaiACIAcQ3wggBigCDCEEIAYoAgghACAIRQ0AIAIQmgILIAkoAgQEQCADEJoCCyAKKAIEBEAgCxCaAgsgBSAANgIAIAUgBDYCBCAGQSBqJAAMBgtBBCABQdCBxAAoAgAiAEGXByAAGxEAAAALQeybwABBywBBqJ3AABChCwALENsKAAtBBCAAQdCBxAAoAgAiAEGXByAAGxEAAAALQQFBAUGsusAAEOMIAAtBAkECQby6wAAQ4wgACwJAAkAgBSgCACIARQRAQQAhAQwBCyAFKAIEIQJBkfvDAC0AABpBDEEEEIIMIgFFDQEgASACNgIIIAEgADYCBCABQQA2AgALIAVBIGokACABDwtBBEEMQdCBxAAoAgAiAEGXByAAGxEAAAALngECAX8BfgJAAkACQCAABEAgACgCAA0BIABBfzYCACACQQZPDQICQAJAAkAgAw4CAQACC0EBIQQLIABBBGogAb0iBacgBUIgiKcQ1AgiA0UNBCADIAJBHGxqQdgBaiAEOgAAIABBADYCAA8LQca3wABBGRD3DAALEPgMAAsQ+QwAC0HGt8AAQRkQ9wwAC0GUssAAQdAAQaSzwAAQ4QkAC5UDAwV/AX0BfiMAQSBrIgIkACACIAA4AgwgAiAAQwAAAACUIgc4AhAgAiAHOAIIIAIgAIw4AhggAiAHjCIAOAIcIAIgADgCFCMAQTBrIgMkACADQQhqIgQgAkEUaiIFQQhqKAIANgIAIANBFGogAkEIaiIGQQhqKAIANgIAIAMgBSkCACIINwMAIAMgBikCADcCDCADQRhqIgVBEGoiBiADQRBqKQMANwMAIAVBCGoiBSAEKQMANwMAIAMgCDcDGEGR+8MALQAAGkEkQQQQggwiBEUEQEEEQSRB0IHEACgCACICQZcHIAIbEQAAAAsgBEKBgICAEDcCACAEIAMpAxg3AgggBCABOAIgIARBEGogBSkDADcCACAEQRhqIAYpAwA3AgAgAkG01sIANgIEIAIgBDYCACADQTBqJABBkfvDAC0AABogAigCBCEEIAIoAgAhBUEMQQQQggwiA0UEQEEEQQxB0IHEACgCACICQZcHIAIbEQAAAAsgAyAENgIIIAMgBTYCBCADQQA2AgAgAkEgaiQAIAMLlAECAX8EfSMAQTBrIgUkACAFQQxqIAEgAiADEEggBSgCGCEBAkAgAioCACAFKgIMIgiTIgYgBpQgAioCBCAFKgIQIgaTIgcgB5SSIAIqAgggBSoCFCIHkyIJIAmUkhCbASAEXkUEQCAAIAE2AgwgACAHOAIIIAAgBjgCBCAAIAg4AgAMAQsgAEECOgAMCyAFQTBqJAALlgECAn8DfSMAQUBqIgQkACABQQhqIgUqAgAhBiABKgIAIQcgASoCBCEIIARBIGogBSgCADYCACAEIAaMOAIUIAQgCIw4AhAgBCAHjDgCDCAEIAEpAgA3AhggBEEkaiIBIARBDGogAiADEK0CIAAgBCkCJDcCACAAQQhqIAFBCGooAgA2AgAgACAELQAwOgAMIARBQGskAAueAQIBfwF+AkACQAJAAkAgAARAIAAoAgANASAAQX82AgAgAEEEaiABvSIFpyAFQiCIpxCKByIERQ0CIARBjAJqKgIAIAJbDQQgA0UNAyAEQcwCai0AAEUNAyAEQQA6AMwCIAQgBCgCqAJBBHI2AqgCDAMLEPgMAAsQ+QwAC0HstMAAQc0AQfS1wAAQ4QkACyAEIAI4AowCCyAAQQA2AgALuAEBA38jAEEgayIDJAAgAyAAKAIAIgUQEiIANgIAIAMgAjYCBCAAIAJGBEAQFSIEEAsiACABIAIQECEBIARBhAFPBEAgBBACCyAAQYQBTwRAIAAQAgsgBSABQQAQESABQYQBTwRAIAEQAgsgA0EgaiQADwsgA0EANgIIIwBBEGsiACQAIAAgA0EEajYCDCAAIAM2AghBACAAQQhqQZy9wAAgAEEMakGcvcAAIANBCGpBjL7AABCrBAALlAECAX8EfSMAQTBrIgUkACAFQQxqIAEgAiADEE0gBSgCGCEBAkAgAioCACAFKgIMIgiTIgYgBpQgAioCBCAFKgIQIgaTIgcgB5SSIAIqAgggBSoCFCIHkyIJIAmUkhCbASAEXkUEQCAAIAE2AgwgACAHOAIIIAAgBjgCBCAAIAg4AgAMAQsgAEECOgAMCyAFQTBqJAALmAEBB30gAUHsAGoqAgAiBSABKgJgIgaTIgIgApQgAUHwAGoqAgAiAiABQeQAaioCACIHkyIDIAOUkiABQfQAaioCACIDIAFB6ABqKgIAIgiTIgQgBJSSEJsBIQQgACAIIAOSQwAAAD+UOAIIIAAgByACkkMAAAA/lDgCBCAAIAYgBZJDAAAAP5Q4AgAgACAEQwAAAD+UOAIMC5MBAQd9IAFBJGoqAgAiBSABKgIYIgaTIgIgApQgAUEoaioCACICIAFBHGoqAgAiB5MiAyADlJIgAUEsaioCACIDIAFBIGoqAgAiCJMiBCAElJIQmwEhBCAAIAggA5JDAAAAP5Q4AgggACAHIAKSQwAAAD+UOAIEIAAgBiAFkkMAAAA/lDgCACAAIARDAAAAP5Q4AgwLlQEBB30gAUFAayoCACIFIAEqAjQiBpMiAiAClCABQcQAaioCACICIAFBOGoqAgAiB5MiAyADlJIgAUHIAGoqAgAiAyABQTxqKgIAIgiTIgQgBJSSEJsBIQQgACAIIAOSQwAAAD+UOAIIIAAgByACkkMAAAA/lDgCBCAAIAYgBZJDAAAAP5Q4AgAgACAEQwAAAD+UOAIMC4UBAgJ/An4jAEFAaiIDJAAgA0EcaiIEIAEgAkEBEEggA0EQaiAEQQhqKQIAIgU3AwAgAyADKQIcIgY3AwggBEEUaigCACECIAMoAiwhASAAQQhqIAU3AgAgACAGNwIAIABBFGogAkEAIAFBA0kiAhs2AgAgACABQQIgAhs2AhAgA0FAayQAC5ABAQJ/AkACQCAARQ0AIAAoAgAiA0F/Rg0BIAAgA0EBajYCACACRQ0AIAIoAgANASACQX82AgACQCAAQdgAaigCACIDIAFNDQAgAEHQAGooAgAiBEUNACACQQRqIAQgAUH0AGxqQfQAEIgNGgsgAkEANgIAIAAgACgCAEEBazYCACABIANJDwsQ+AwACxD5DAALkgECAn8BfgJAAkAgAARAIAAoAgANASAAQX82AgAgAEEEaiABvSIFpyAFQiCIpxCLByIDRQ0CAkACQCADQeIAai0AAEEBTQRAIAINAkECIQQMAQsgAkUNAQsgAyAEOgBiIAMgAygCcEGAAnI2AnALIABBADYCAA8LEPgMAAsQ+QwAC0GEtsAAQcwAQYi3wAAQ4QkAC9kDAQR/IwBBMGsiAyQAIANBDGohAiAAQQBHIQRBkfvDAC0AABoCQAJAQYACQcAAEIIMIgAEQCAAQQA6AMgBIABCgYCAgBA3A8ABIABBAToAnAEgAEIANwKUASAAQoCAgIDAADcCjAEgAEIENwKEASAAQQA7AYABIABCADcDQCAAQgA3AwBBkfvDAC0AABpBgAJBwAAQggwiAUUNAiABQQA6AMgBIAFCgYCAgBA3A8ABIAFBAToAnAEgAUIANwKUASABQoCAgIDAADcCjAEgAUIENwKEASABQQA7AYABIAFCADcDQCABQgA3AwAgAiAEOgAgIAJBATYCGCACQQE2AhAgAiABNgIMIAJBATYCCCACIAA2AgQgAkEBNgIAIAJBHGogATYCACACQRRqIAA2AgAMAQsMAQtBkfvDAC0AABpBKEEEEIIMIgBFBEBBBEEoQdCBxAAoAgAiAEGXByAAGxEAAAALIABBADYCACAAIAMpAgw3AgQgAEEMaiADQRRqKQIANwIAIABBFGogA0EcaikCADcCACAAQRxqIANBJGopAgA3AgAgAEEkaiADQSxqKAIANgIAIANBMGokACAADwtBwABBgAJB0IHEACgCACIAQZcHIAAbEQAAAAuVAQEBfwJAAkAgAEUNACAAKAIADQEgAEF/NgIAIAFFDQAgASgCACIDQX9GDQEgASADQQFqNgIAIAJFDQAgAigCACIDQX9GDQEgAiADQQFqNgIAIABBBGogAUEEaiACQQRqQQBDAAAAABBDIAIgAigCAEEBazYCACABIAEoAgBBAWs2AgAgAEEANgIADwsQ+AwACxD5DAAL0wsCBH8VfSMAQTBrIgQkACAEQQRqIQMjAEHgAGsiAiQAIABBGGoqAgAhBiAAQRRqKgIAIQcgACoCHCEIAkACQAJAIAAqAhAiEUMAAAAAXA0AIAdDAAAAAFwNACAGQwAAAABcDQAgCEMAAAAAXA0AIAAqAiBDAAAAAFwNACAAQSRqKgIAQwAAAABcDQAgAEEoaioCAEMAAAAAXA0AIAAqAgBDAAAAAFwNACAAKgIEQwAAAABcDQAgACoCCEMAAAAAXA0AIAAqAgwiCUMAAIA/WyAJQwAAgL9bcg0BCyABQRhqKgIAIQ8gAUEUaioCACEQIAEqAhwhCgJAAkAgASoCECISQwAAAABcDQAgEEMAAAAAXA0AIA9DAAAAAFwNACAKQwAAAABcDQAgASoCIEMAAAAAXA0AIAFBJGoqAgBDAAAAAFwNACABQShqKgIAQwAAAABcDQAgASoCAEMAAAAAXA0AIAEqAgRDAAAAAFwNACABKgIIQwAAAABcDQAgASoCDCIJQwAAgD9bIAlDAACAv1tyDQELIAJDAAAAAEMAAIA/QwAAAABDAACAPyAIlSIJIAhDAAAAAFsiBRsiC0MAAAAAQwAAgD8gCpUiCCAKQwAAAABbGyIMkiIZlSAZQwAAAABbGyITIAsgBpQgDCAPlJKUIg04AhQgAiATIAsgB5QgDCAQlJKUIg44AhAgAiARIAuUIBIgDJSSIBOUIgw4AgwgAkE8aiAAEIECAn0gBQRAIAIqAlghEyACKgJUIREgAioCUCEVIAIqAkwhCyACKgJIIRogAioCRCEWIAIqAkAhFyACKgI8IRggAioCXAwBCyAJIA4gB5MiByANIAaTIgaUQwAAAACSlCIVIAIqAliSIRMgCSAMIBGTIgsgBpRDAAAAAJKUIhYgAioCVJIhESAVIAIqAlCSIRUgCSALIAeUQwAAAACSlCIXIAIqAkiSIRogFiACKgJEkiEWIBcgAioCQJIhFyAGIAaUIhQgCyALlCIYIAcgB5QiB5KSIQYgCSAHIAaSlCACKgJMkiELIAkgGCAGkpQgAioCPJIhGCAJIBQgBpKUIAIqAlySCyEJIAJBPGogARCBAgJ9IApDAAAAAFsEQCACKgJcIQYgAioCWCEPIAIqAlQhECACKgJQIQwgAioCTCEHIAIqAkghEiACKgJEIQ0gAioCQCEOIAIqAjwMAQsgCCAOIBCTIgogDSAPkyIGlEMAAAAAkpQiDSACKgJYkiEPIAggDCASkyIHIAaUQwAAAACSlCIOIAIqAlSSIRAgDSACKgJQkiEMIAggByAKlEMAAAAAkpQiFCACKgJIkiESIA4gAioCRJIhDSAUIAIqAkCSIQ4gBiAGlCIGIAcgB5QiFCAKIAqUIgeSkiEKIAggBiAKkpQgAioCXJIhBiAIIAcgCpKUIAIqAkySIQcgCCAUIAqSlCACKgI8kgshCCACIAkgBpI4AjggAiATIA+SOAI0IAIgESAQkjgCMCACIBUgDJI4AiwgAiALIAeSOAIoIAIgGiASkjgCJCACIBYgDZI4AiAgAiAXIA6SOAIcIAIgGCAIkjgCGCADIAJBDGogGSACQRhqEI8CDAILIAMgACkCADcCACADQShqIABBKGooAgA2AgAgA0EgaiAAQSBqKQIANwIAIANBGGogAEEYaikCADcCACADQRBqIABBEGopAgA3AgAgA0EIaiAAQQhqKQIANwIADAELIAMgASkCADcCACADQShqIAFBKGooAgA2AgAgA0EgaiABQSBqKQIANwIAIANBGGogAUEYaikCADcCACADQRBqIAFBEGopAgA3AgAgA0EIaiABQQhqKQIANwIACyACQeAAaiQAIABBKGogA0EoaigCADYCACAAQSBqIANBIGopAgA3AgAgAEEYaiADQRhqKQIANwIAIABBEGogA0EQaikCADcCACAAQQhqIANBCGopAgA3AgAgACAEKQIENwIAIARBMGokAAuLAQEFfSACKgIAIgUgBZQgAioCBCIGIAaUkiACKgIIIgcgB5SSIgggASoCACIEIASUXyIBQQAgAxtFBEAgACAHIAQgCBCbAZUiBJQ4AgggACAGIASUOAIEIAAgBSAE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aiAAQRxqKQIANwMAIAFBGGogAEEUaikCADcDACABQRBqIABBDGopAgA3AwAgASAAKQIENwMIIAAQmgIgAUEIahDzBiABQTBqJAAPCxD4DAALEPkMAAucAwEFfyMAQTBrIgEkACABQQhqIQMjAEEgayICJAAgAkEANgIYIAJBCGpBCEGgCyACQRRqENoGIAIoAgwhAAJAIAIoAghFBEBBBCEEDAELIABBgYCAgHhGBEBBCCEADAELIAAEQCAAIAJBEGooAgBB0IHEACgCACIAQZcHIAAbEQAAAAsQ2woACyAAQgA3A7gIIABCgICAgBA3A9AFIABCgICAgBA3A+gCIABBATYCCCAAQoCAgIAQNwMAIANCgICAgMAANwIYIANCBDcCECADIAQ2AgwgAyAANgIIIANCATcCACAAQcAIakEANgIAIABB2AVqQQM2AgAgAEHwAmpBAjYCACADQSBqQgA3AgAgAkEgaiQAQZH7wwAtAAAaQSxBBBCCDCIARQRAQQRBLEHQgcQAKAIAIgBBlwcgABsRAAAACyAAQQA2AgAgACABKQIINwIEIABBDGogAUEQaikCADcCACAAQRRqIAFBGGopAgA3AgAgAEEcaiABQSBqKQIANwIAIABBJGogAUEoaikCADcCACABQTBqJAAgAAuMAQIBfwF+AkACQCAABEAgACgCAA0BIABBfzYCACAAQQRqIAG9IganIAZCIIinEIsHIgVFDQIgBSgCAARAIAVBJGogBDgCACAFQSBqIAM4AgAgBUEcaiACOAIAIAUgBSgCcEEEcjYCcAsgAEEANgIADwsQ+AwACxD5DAALQYS2wABBzABBiLfAABDhCQAL2Q8BCn8jAEEwayIHJAACQCAABEAgACgCAA0BIAdBKGogAEEkaigCADYCACAHQSBqIABBHGopAgA3AwAgB0EYaiAAQRRqKQIANwMAIAdBEGogAEEMaikCADcDACAHIAApAgQ3AwggABCaAiAHQQhqIgkQ7wEgCUEUaiIGKAIAIQECQAJAAkACQAJAAkACQAJAIAkoAhAiAkEBaw4FAQIHBwcACyABIAEoAoQCIgBBAWs2AoQCIABBAUcNBSABIAEoAkAiACABKALIASIDcjYCQCAAIANxRQRAIAFBgAFqEPABIAFBoAFqEPABCyABLQCIAiEAIAFBAToAiAIgAEUNBSAB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khCbASECIAEqAgwiA0MAAAAAYEUEQCAEQRRqQgA3AgAgBEEBNgIMIARB5JfCADYCCCAEQbSKwgA2AhAgBEEIakHArsMAENwKAAsgAEEANgIIIABCADcCACAAIAIgA5I4AgwgBEEgaiQAC48BAgR/AX4jAEEgayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBFGoiBEEIaiIFQQA2AgAgAkIBNwIUIARBvLnDACABELICGiACQRBqIAUoAgAiATYCACACIAIpAhQiBjcDCCADQQhqIAE2AgAgAyAGNwIACyAAQZi8wwA2AgQgACADNgIAIAJBIGokAAuFAQECfyMAQRBrIgQkAAJAIAFBB2pBACABa3EiA0EIayADSw0AIAIgA2oiAiADSQ0AIAJBgICAgHhBBCABIAFBBE0bIgFrSw0AIAAgATYCACAAIAEgAmpBAWtBACABa3E2AgQgBEEQaiQADwtBnMDDAEErIARBD2pByMDDAEH0wMMAEIAIAAudAQIBfwF+AkACQAJAIABFDQAgACgCAA0BIABBfzYCACACRQ0AIAIoAgAiA0F/Rg0BIAIgA0EBajYCACAAQQRqIAG9IgSnIARCIIinEIoHIgNFDQIgA0GQAWogAkEEaiADQbACaiADQSBqEJcBIAIgAigCAEEBazYCACAAQQA2AgAPCxD4DAALEPkMAAtB7LTAAEHNAEH0tcAAEOEJAAuSAQIBfwF+AkACQCABBEAgASgCACIDQX9GDQEgASADQQFqNgIAIAFBBGogAr0iBKcgBEIgiKcQmAoiA0UNAiADKwIEIQIgAygCACEDIAEgASgCAEEBazYCACAAIAJEAAAAAAAAAAAgAxs5AwggACADQQBHNgIADwsQ+AwACxD5DAALQYS2wABBzABB+LbAABDhCQALmwEBAn8jAEEQayIBJAACQAJAIAAEQCAAKAIAQX9GDQEgAUEIaiICIABBDGooAgA2AgBBkfvDAC0AABogASAAKQIENwMAQRBBBBCCDCIARQ0CIABBADYCACAAIAEpAwA3AgQgAEEMaiACKAIANgIAIAFBEGokACAADwsQ+AwACxD5DAALQQRBEEHQgcQAKAIAIgBBlwcgABsRAAAAC3YBA38CQCAALQAAIgFBAWtBB0kNACABBEAgAEEIaigCAEUNASAAKAIEEJoCDAELIAAtAARBA0cNACAAQQhqKAIAIgEoAgAiAyABQQRqKAIAIgIoAgARBgAgAigCBARAIAIoAggaIAMQmgILIAEQmgILIAAQmgILvAYBCX8jAEEgayIGJAAgBiABNgIQIAYgATYCDCAGIAA2AgggBiADNgIcIAYgAzYCGCAGIAI2AhQgBkEUaiEJQQAhAiMAQTBrIgQkACAGQQhqIgooAgAhCwJAAkACQAJAAkACQAJAIAooAggiAEUEQEEEIQEMAQtBBCEBAkAgACAAQQNuIgNBA2xHIANqIgdFDQAgB0Gq1arVAEsNBCAHQQxsIgNBAEgNBCADRQ0AQZH7wwAtAAAaIANBBBCCDCIBRQ0CCwNAIABBAk0NAyABIAVqIgMgBSALaiIIKgIAOAIAIANBBGogCEEEaikCADcCACAFQQxqIQUgAkEBaiECIABBA2siAA0ACwsgBCACNgIgIAQgBzYCHCAEIAE2AhggCSgCACEDIAkoAggiBUUEQCAEQQA2AiQgBCAEQRhqIARBJGoQ3wkgBCgCBCEFIAQoAgAhAAwGC0EEIQECQCAFQQFxIAVBAXZqIghFDQAgCEH/////AEsNAyAIQQN0IgBBAEgNAyAARQ0AQZH7wwAtAAAaIABBBBCCDCIBRQ0EC0EAIQcgASEAIAMhAgNAQQIgBSAFQQJPGyIMQQFGDQUgACACKQIANwIAIABBCGohACAHQQFrIQcgAiAMQQJ0aiECIAUgDGsiBQ0ACyAHBEAgBEEAIAdrNgIsIAQgCDYCKCAEIAE2AiQgBEEQaiAEQRhqIARBJGoQ3wkgBCgCFCEFIAQoAhAhAAwGCyAEQQA2AiQgBEEIaiAEQRhqIARBJGoQ3wkgBCgCDCEFIAQoAgghACAIRQ0FIAEQmgIMBQtBBCADQdCBxAAoAgAiAEGXByAAGxEAAAALQeybwABBywBBqJ3AABChCwALENsKAAtBBCAAQdCBxAAoAgAiAEGXByAAGxEAAAALQQFBAUH8ucAAEOMIAAsgCSgCBARAIAMQmgILIAooAgQEQCALEJoCCyAGIAA2AgAgBiAFNgIEIARBMGokAEGR+8MALQAAGiAGKAIEIQEgBigCACECQQxBBBCCDCIARQRAQQRBDEHQgcQAKAIAIgBBlwcgABsRAAAACyAAIAI2AgQgAEEANgIAIAAgATYCCCAGQSBqJAAgAAudFAIXfwJ+IwBBIGsiCCQAIAggATYCECAIIAE2AgwgCCAANgIIIAggAzYCHCAIIAM2AhggCCACNgIUIAhBFGohDkEAIQEjAEEgayIJJAAgCEEIaiITKAIAIRRBBCECQQQhAwJAAkACQAJAAkACQAJAIBMoAggiAARAAkAgAEEDbiIBIAAgAUEDbEdqIgVFDQAgBUGq1arVAEsNBCAFQQxsIgFBAEgNBCABRQ0AQZH7wwAtAAAaIAFBBBCCDCIDRQ0CC0EAIQEDQCAAQQJNDQMgAyAEaiIGIAQgFGoiCyoCADgCACAGQQRqIAtBBGopAgA3AgAgBEEMaiEEIAFBAWohASAAQQNrIgANAAsLIAkgATYCECAJIAU2AgwgCSADNgIIIA4oAgAhA0EAIQUgDigCCCIEBEACQCAEQQNuIgAgBCAAQQNsR2oiB0UNACAHQarVqtUASw0EIAdBDGwiAEEASA0EIABFDQBBkfvDAC0AABogAEEEEIIMIgJFDQcLIAIhACADIQEDQEEDIAQgBEEDTxsiBkEBRg0FIARBAk0NBiAAIAEoAgA2AgAgAEEEaiABKQIENwIAIABBDGohACAFQQFqIQUgASAGQQJ0aiEBIAQgBmsiBA0ACwsgCSAFNgIcIAkgBzYCGCAJIAI2AhQjAEHQAWsiDyQAIA9BCGohFiAJQQhqIQAjAEHgAWsiBSQAAkAgCUEUaiIBKAIIBEAgBUHYAGogAEEIaigCADYCACAFQeQAaiABQQhqKAIANgIAIAVCADcCSCAFQoCAgIDAADcCQCAFQgQ3AjggBUIANwIwIAVCgICAgMAANwIoIAVCEDcCICAFQv////v///+/fzcCGCAFQv////v3//+/fzcCECAFQv////v3//+//wA3AgggBUEANgJoIAVBADYCgAEgBUEANgKkASAFQQA6AMgBIAUgACkCADcCUCAFIAEpAgA3AlwgBUHMAWohEEEAIQcjAEGAAWsiAiQAIAVBCGoiBEHcAGooAgAhCwJAIAQoAngiAEUNACAEQfwAaigCAARAIAAQmgILIARBiAFqKAIABEAgBEGEAWooAgAQmgILIARBlAFqKAIARQ0AIARBkAFqKAIAEJoCCyAEQQA2AngCQCAEKAJgIgBFDQAgBEHkAGooAgAEQCAAEJoCCyAEQfAAaigCAEUNACAEQewAaigCABCaAgsgBEEANgJgAkAgBCgCnAEiAEUNACAEQaABaigCAARAIAAQmgILIARBrAFqKAIABEAgBEGoAWooAgAQmgILIARBuAFqKAIARQ0AIARBtAFqKAIAEJoCCyAEQQA2ApwBAkACQAJAIAQtAMABQX9zQRBxIhVBEEkNACACQgA3AhwgAkKAgICAwAA3AhQgAkIANwIMIAJB+JDCADYCCEEEIQxBBCEBAkACQAJAAkAgBEHQAGooAgAiBkUNACAGQarVqtUASw0BIAZBDGwiAEEASA0BIABFDQBBkfvDAC0AABogAEEEEIIMIgFFDQ4LIAJBADYCMCACIAY2AiwgAiABNgIoAkACQCALRQ0AIAtBqtWq1QBLDQIgC0EMbCIAQQBIDQIgAEUNAEGR+8MALQAAGiAAQQQQggwiDEUNAQsgBEHUAGohESACIAs2AjggAiAMNgI0IAJBADYCPAJ+QcCFxAApAwBCAFIEQEHQhcQAKQMAIRtByIXEACkDAAwBC0ICIRtB0IXEAEICNwMAQcCFxABCATcDAEIBCyEcIARByABqIQ0gAkHIAGpBiJHCACkDADcDACACIBw3A1BByIXEACAcQgF8NwMAIAIgGzcDWCACQYCRwgApAwA3A0AgESgCACEBIAtFDQMgASALQQxsaiEXIA0oAgAhEgwCCwwNCxDbCgALIAEhAAJAAkACQANAIAAoAgAiCiAGTw0BIBIgCkEMbGogAkEIaiACQShqELUBIRggAEEEaigCACIKIAZPDQIgEiAKQQxsaiACQQhqIAJBKGoQtQEhGSAAQQhqKAIAIgogBk8NAyASIApBDGxqIAJBCGogAkEoahC1ASEaIAIoAjggB0YEQCACQTRqIAcQqgYgAigCNCEMIAIoAjwhBwsgDCAHQQxsaiIKIBo2AgggCiAZNgIEIAogGDYCACACIAdBAWoiBzYCPCAXIABBDGoiAEcNAAsMAwsgCiAGQdD9wgAQ4wgACyAKIAZB4P3CABDjCAALIAogBkHw/cIAEOMIAAsgAigCLCIHIAIoAjAiAEsEQCAHQQxsIQcgAigCKCEGAkAgAEUEQEEEIQcgBhCaAgwBCyAGIAdBBCAAQQxsIgYQ7QsiB0UNAwsgAiAANgIsIAIgBzYCKAsgBEHMAGooAgAEQCANKAIAEJoCCyANIAIpAig3AgAgDUEIaiACQTBqKAIANgIAIARB2ABqKAIABEAgARCaAgsgESACKQI0NwIAIBFBCGogAkE8aigCADYCACAEKAJgBEAgBBAxCyAEKAJ4BEAgAkHsAGogBCAEKAKcAUEARxA3CwJAIAIoAkQiAEUNACAAIABBDGxBE2pBeHEiAGpBd0YNACACKAJAIABrEJoCCyACKAIMIgAEQCACKAIIIABBAnRBC2pBeHFrEJoCCyACKAIcRQ0AIAIoAhgQmgILIBVBB3EEfyACQUBrIARBABA3IAJBEGogAkHMAGopAgA3AwAgAiACKQJENwMIIAIoAkAFQQILIQAgFUEIcQRAIAQQMQsgBCgCXCALRwRAIAQQZAsgECAANgIAIARBEDoAwAEgECACKQMINwIEIBBBDGogAkEQaikDADcCACACQYABaiQADAELQQQgBkHQgcQAKAIAIgBBlwcgABsRAAAACyAFKAIoRQRAIAVBCGoQZAsgFiAFQQhqQcQBEIgNGiAFQeABaiQADAELIAVBFGpCADcCACAFQQE2AgwgBUGI/cIANgIIIAVBtIrCADYCECAFQQhqQZD9wgAQ3AoAC0GR+8MALQAAGkHMAUEEEIIMIgBFBEBBBEHMAUHQgcQAKAIAIgBBlwcgABsRAAAACyAAQoGAgIAQNwIAIABBCGogD0EIakHEARCIDRogCUHQ38IANgIEIAkgADYCACAPQdABaiQAIAkoAgQhACAJKAIAIQEgDigCBARAIAMQmgILIBMoAgQEQCAUEJoCCyAIIAE2AgAgCCAANgIEIAlBIGokAAwGC0EEIAFB0IHEACgCACIAQZcHIAAbEQAAAAtB7JvAAEHLAEGoncAAEKELAAsQ2woAC0EBQQFBjLrAABDjCAALQQJBAkGcusAAEOMIAAtBBCAAQdCBxAAoAgAiAEGXByAAGxEAAAALQZH7wwAtAAAaIAgoAgQhASAIKAIAIQJBDEEEEIIMIgBFBEBBBEEMQdCBxAAoAgAiAEGXByAAGxEAAAALIAAgAjYCBCAAQQA2AgAgACABNgIIIAhBIGokACAAC4oBAQd9IAEqAgwiBSABKgIAIgaTIgIgApQgAUEQaioCACICIAEqAgQiB5MiAyADlJIgAUEUaioCACIDIAEqAggiCJMiBCAElJIQmwEhBCAAIAggA5JDAAAAP5Q4AgggACAHIAKSQwAAAD+UOAIEIAAgBiAFkkMAAAA/lDgCACAAIARDAAAAP5Q4AgwLiwECAn8BfgJAAkAgAARAIAAoAgANASAAQX82AgAgAEEEaiABvSIFpyAFQiCIpxCKByIDRQ0CIAJBAEciBCADLQDeAkEAR0cEQCADIAQ6AN4CIANB/wEgAygCqAJBgAFyIAIbNgKoAgsgAEEANgIADwsQ+AwACxD5DAALQey0wABBzQBB9LXAABDhCQALhQECAn8BfgJAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACAAQQRqIAG9IgSnIARCIIinEJgKIgJFDQIgAkHMAGooAgAhAyACQcgAaigCACECIAAgACgCAEEBazYCACADIAJBEHRyDwsQ+AwACxD5DAALQYS2wABBzABB+LbAABDhCQALhQECAn8BfgJAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACAAQQRqIAG9IgSnIARCIIinEJgKIgJFDQIgAkHUAGooAgAhAyACQdAAaigCACECIAAgACgCAEEBazYCACADIAJBEHRyDwsQ+AwACxD5DAALQYS2wABBzABB+LbAABDhCQAL7gMBCn8jAEEgayIEJAAgBCABNgIcIAQgATYCGCAEIAA2AhQgBEEIaiEIQQAhASMAQRBrIgMkACAEQRRqIgkoAgAhCgJAAkACQAJAAkAgCSgCCCIARQRAIANBBEEAIAIQ0QUgAygCBCEBIAMoAgAhAAwBC0EEIQcCQCAAIABBA24iBkEDbEcgBmoiBkUNACAGQarVqtUASw0CIAZBDGwiBUEASA0CIAVFDQBBkfvDAC0AABogBUEEEIIMIgdFDQMLQQAhBQNAIABBAk0NBCABIAdqIgsgASAKaiIMKgIAOAIAIAtBBGogDEEEaikCADcCACABQQxqIQEgBUEBaiEFIABBA2siAA0ACyADQQhqIAcgBSACENEFIAMoAgwhASADKAIIIQAgBkUNACAHEJoCCyAJKAIEBEAgChCaAgsgCCAANgIAIAggATYCBCADQRBqJAAMAwsQ2woAC0EEIAVB0IHEACgCACIAQZcHIAAbEQAAAAtB7JvAAEHLAEGoncAAEKELAAsCQAJAIAQoAggiAEUEQEEAIQEMAQsgBCgCDCEDQZH7wwAtAAAaQQxBBBCCDCIBRQ0BIAEgAzYCCCABIAA2AgQgAUEANgIACyAEQSBqJAAgAQ8LQQRBDEHQgcQAKAIAIgBBlwcgABsRAAAAC+YoAxN/C30CfiMAQdAEayINJAAjAEHgAWsiByQAIAdBmAFqQoCAgPyDgIDAPzcCACAHQYgBakLNmbPyg4CAwD83AgAgB0H4AGpCzZmz9oOAgMA/NwIAIAdB6ABqQs2Zs/aDgIDAPzcCACAHQdgAakLNmbP2g4CAwD83AgAgB0HIAGpCzZmz9oOAgMA/NwIAIAdBOGpCzZmz9oOAgMA/NwIAIAdBKGpCmrPm9IOAgMA/NwIAIAdBGGpCzZmz9oOAgMA/NwIAIAdBgICA+AM2AtgBIAdCADcCkAEgB0KAgID8g4CAwD83AoABIAdCgICAgICAgMA/NwJwIAdCgIDYnISAgMA/NwJgIAdCgICAgICAgIA/NwJQIAdCgIDAm4SAgIA/NwJAIAdCgIDAj4SAgMA/NwIwIAdCgICAjYSAgMA/NwIgIAdCgIDAj4SAgMA/NwIQIAdCmrPm9IOAgMA/NwIIIAdCgIConYSAgMA/NwIAIAdClICAgNAANwLQASAHQbgBakKAgID8g4CAwD83AgAgB0GoAWpCzZmz9oOAgMA/NwIAIAdByAFqQs2Zs/aDgIDAPzcCACAHQZqz5vQDNgLcASAHQoCAgICAgIDAPzcCsAEgB0KAgMCXhICAwD83AqABIAdCgIDgl4SAgMA/NwLAASANQQhqIQ4jAEHwAGsiBiQAAn5BwIXEACkDAEIAUgRAQciFxAApAwAhHkHQhcQAKQMADAELQdCFxABCAjcDAEHAhcQAQgE3AwBCASEeQgILIR8gBygC0AEhESAGQRhqQdCTwQApAwA3AwAgBiAeNwMgQciFxAAgHkIBfDcDACAGIB83AyggBkHIk8EAKQMANwMQIAZBgICA+AM2AjwgBkKAgID4g4CAgD83AjQgBkHYAGohBCAGQTRqIQBBkfvDAC0AABoCQAJAAkBB4ABBBBCCDCIBBEAgAUKAgID4g4CAgD83AlggAUKAgID4g4CAgL9/NwJQIAFCgICA+IOAgIA/NwJIIAFCgICA+IuAgIA/NwJAIAFCgICA+IOAgIA/NwI4IAFCgICA+IuAgIC/fzcCMCABQoCAgPiDgICAv383AiggAUKAgID4i4CAgL9/NwIgIAFCgICA+IOAgIA/NwIYIAFCgICA+IuAgIC/fzcCECABQoCAgPiLgICAPzcCCCABQoCAgPiLgICAv383AgBBkfvDAC0AABpB4ABBBBCCDCIDRQ0CIANCg4CAgPAANwJYIANCgoCAgOAANwJQIANCgYCAgNAANwJIIANCgICAgMAANwJAIANCh4CAgMAANwI4IANChoCAgPAANwIwIANChYCAgOAANwIoIANChICAgNAANwIgIANCAzcCGCADQoKAgIAwNwIQIANCgYCAgCA3AgggA0KAgICAEDcCACABIAAqAgAiEyATkiIVIAEqAgCUOAIAIAEgACoCBCITIBOSIhQgASoCBJQ4AgQgASAAKgIIIhMgE5IiEyABKgIIlDgCCCABIBUgASoCDJQ4AgwgASAUIAEqAhCUOAIQIAEgEyABKgIUlDgCFCABIBUgASoCGJQ4AhggASAUIAEqAhyUOAIcIAEgEyABKgIglDgCICABIBUgASoCJJQ4AiQgASAUIAEqAiiUOAIoIAEgEyABKgIslDgCLCABIBUgASoCMJQ4AjAgASAUIAEqAjSUOAI0IAEgEyABKgI4lDgCOCABIBUgASoCPJQ4AjwgASAUIAEqAkCUOAJAIAEgEyABKgJElDgCRCABIBUgASoCSJQ4AkggASAUIAEqAkyUOAJMIAEgEyABKgJQlDgCUCABIBUgASoCVJQ4AlQgASAUIAEqAliUOAJYIAEgEyABKgJclDgCXCAEQRBqQoyAgIDAATcCACAEIAM2AgwgBEKIgICAgAE3AgQgBCABNgIADAELDAELIAZBQGsgBkEQakKs/M2M2ITwrFFCnbTvpaHohZK2fyAEELMCAkAgBigCQCIARQ0AIAYoAkQEQCAAEJoCCyAGQdAAaigCAEUNACAGKAJMEJoCCyAGQYCAgPgDNgI0IAZB2ABqIQ8jAEEwayIFJAAgBkE0aioCACEdIAVBADYCICAFQgQ3AhggBUEANgIsIAVCBDcCJAJAIBEiBEUEQEEEIQsMAQtD2w/JQCAEs5UhFUEEIQEgBCEDA0AgFhDBAUMAAAA/lCEUIBYQwAFDAAAAP5QhEyAFKAIcIAJGBEAgBUEYaiACEKoGIAUoAiAhAiAFKAIYIQELIAEgAkEMbGoiACATOAIIIABBADYCBCAAIBQ4AgAgBSACQQFqIgI2AiAgFSAWkiEWIANBAWsiAw0AC0MAAAAAIRYgBCEBA0AgFhDBAUMAAAA/lCEUIBYQwAFDAAAAP5QhEyAFKAIcIAJGBEAgBUEYaiACEKoGIAUoAiAhAgsgBSgCGCIDIAJBDGxqIgAgEzgCCCAAQQA2AgQgACAUOAIAIAUgAkEBaiICNgIgIBUgFpIhFiABQQFrIgENAAtDAAAAACEWIAQhAQNAIBYQwQFDAAAAP5QhFCAWEMABQwAAAD+UIRMgBSgCHCACRgRAIAVBGGogAhCqBiAFKAIgIQIgBSgCGCEDCyADIAJBDGxqIgAgEzgCCCAAQQA2AgQgACAUOAIAIAUgAkEBaiICNgIgIBUgFpIhFiABQQFrIgENAAsgBEEBdCEIAkAgBEEATgRAIAIgCEkNASAFKAIYIQsMAgsgBCAIQZyiwwAQ5QgACyAIIAJBnKLDABDkCAALIwBBEGsiAEMAAAB/OAIMIAAqAgwaQ+fpHT8QmwEiFRDAASEUIBUQwQEhEyAEBEAgBEEMbCIDIAtqIgAgA2ohCSATQwAAgD+UIRkgFEMAAIA/lCAVlSITQwAAAACUIRcgE0PbD0k/lCEYA0AgGCAAQQRqIgEqAgAiFpQgFyAAKgIAIhWUIhSTIhMgE5IhGiAUIBggAEEIaiIDKgIAIhSUkyITIBOSIRsgAyAUIBkgGpQgGCAblCAXIBcgFJQgFyAWlJMiEyATkiIUlCITk5KSQwAAAACSOAIAIAEgFiAZIBuUIBMgGCAalJOSkkMAAAAAkjgCACAAIBUgGSAUlCAXIBqUIBcgG5STkpJDAAAAAJI4AgAgCSAAQQxqIgBHDQALCwJAAkAgBEEDbCIQIAhPBEAgAiAQSQ0BIwBBEGsiAEMAAAB/OAIMIAAqAgwaQ+fpHT8QmwEiFRDAASEUIBUQwQEhEwJAAkAgBEUEQEF/IQkMAQsgCyAIQQxsaiICIARBDGxqIQEgE0MAAIA/lCEYIBRDAACAP5QgFZUiE0PbD0k/lCEXIBNDAAAAAJQhHANAIBwgAkEEaiIDKgIAIhqUIBwgAioCACIblJMiEyATkiEWIBcgG5QgHCACQQhqIgAqAgAiFZQiFJMiEyATkiEZIAAgFSAYIBaUIBwgGZQgHCAUIBcgGpSTIhMgE5IiFJSTkpJDAAAAAJI4AgAgAyAaIBggGZQgFyAUlCAcIBaUIhOTkpJDAAAAAJI4AgAgAiAbIBggFJQgEyAXIBmUk5KSQwAAAACSOAIAIAEgAkEMaiICRw0AC0EAIQFBACEDIARBAWsiCUUNAQtBACEAIAVBJGpBACAJEIwGIAlBA3EhCyAFKAIkIRIgBSgCLCEBIARBAmtBA08EQCAJQXxxIQogEiABQQN0aiECQQAhAwNAIAIgAzYCACACQRxqIANBBGoiADYCACACQRhqIANBA2oiDDYCACACQRRqIAw2AgAgAkEQaiADQQJqIgw2AgAgAkEMaiAMNgIAIAJBCGogA0EBaiIDNgIAIAIgAzYCBCACQSBqIQIgCiAAIgNHDQALIAAgAWohAQsgCSEDIAtFDQAgASALaiEJIBIgAUEDdGohAgNAIAIgADYCACACIABBAWoiADYCBCACQQhqIQIgC0EBayILDQALIAkhAQsgBSABNgIsIAEgBSgCKCICRgRAIAVBJGogARCrBiAFKAIoIQIgBSgCLCEBCyAFKAIkIgsgAUEDdGoiAEEANgIEIAAgAzYCACAFIAFBAWoiAzYCLCAIQQFrIgogBGsiAEEAIAAgCk0bIgAgAiADa0sEQCAFQSRqIAMgABCMBiAFKAIkIQsgBSgCLCEDCwJAIAQgCk8NACAIIARrQQJrIQwCQCAIIARBf3NqQQNxIgFFBEAgBCEADAELIAEgA2ohCSALIANBA3RqIQIgBCEAA0AgAiAANgIAIAIgAEEBaiIANgIEIAJBCGohAiABQQFrIgENAAsgCSEDCyAMQQNJDQAgCyADQQN0aiECA0AgAiAANgIAIAJBHGogAEEEaiIBNgIAIAJBGGogAEEDaiIJNgIAIAJBFGogCTYCACACQRBqIABBAmoiCTYCACACQQxqIAk2AgAgAkEIaiAAQQFqIgA2AgAgAiAANgIEIAJBIGohAiADQQRqIQMgCiABIgBHDQALCyAFIAM2AiwgBSgCKCADRgRAIAVBJGogAxCrBiAFKAIkIQsgBSgCLCEDCyALIANBA3RqIgAgBDYCBCAAIAo2AgAgBSADQQFqIgM2AiwgEEEBayIMIAhrIgBBACAAIAxNGyIAIAUoAiggA2tLBEAgBUEkaiADIAAQjAYgBSgCLCEDCyAFKAIkIQsCQCAIIAxPDQAgECAIa0ECayEJAkAgECAIQX9zakEDcSIBRQRAIAghAAwBCyABIANqIQQgCyADQQN0aiECIAghAANAIAIgADYCACACIABBAWoiADYCBCACQQhqIQIgAUEBayIBDQALIAQhAwsgCUEDSQ0AIAsgA0EDdGohAgNAIAIgADYCACACQRxqIABBBGoiBDYCACACQRhqIABBA2oiATYCACACQRRqIAE2AgAgAkEQaiAAQQJqIgE2AgAgAkEMaiABNgIAIAJBCGogAEEBaiIANgIAIAIgADYCBCACQSBqIQIgA0EEaiEDIAwgBCIARw0ACwsgBSADNgIsIAUoAiggA0YEQCAFQSRqIAMQqwYgBSgCJCELIAUoAiwhAwsgBUEQaiIJIANBAWo2AgAgCyADQQN0aiIAIAg2AgQgACAMNgIAIAUgBSkCJDcDCCAFKAIYIQAgBSgCHCEBAkAgBSgCICIIRQ0AIB0gHZIhEyAAIQIgCEEMbCIDQQxrIgRBDG5BAXFFBEAgACATIAAqAgCUOAIAIAAgEyAAKgIElDgCBCAAIBMgACoCCJQ4AgggAEEMaiECCyAEQQxJDQAgACADaiEDA0AgAiATIAIqAgCUOAIAIAJBBGoiBCATIAQqAgCUOAIAIAJBCGoiBCATIAQqAgCUOAIAIAJBDGoiBCATIAQqAgCUOAIAIAJBEGoiBCATIAQqAgCUOAIAIAJBFGoiBCATIAQqAgCUOAIAIAMgAkEYaiICRw0ACwsgDyAINgIIIA8gATYCBCAPIAA2AgAgDyAFKQMINwIMIA9BFGogCSgCADYCACAFQTBqJAAMAgsgCCAQQayiwwAQ5QgACyAQIAJBrKLDABDkCAALIAZBQGsgBkEQakK65aKq6Lvo2G9Cw9+m8rD/iKAgIA8QswICQCAGKAJAIgBFDQAgBigCRARAIAAQmgILIAZB0ABqKAIARQ0AIAYoAkwQmgILIAZCgICA+IOAgIA/NwI0IAZB2ABqIQwjAEEwayIKJABBkfvDAC0AABogBkE0aiIAKgIEIRQgACoCACETAkBBGEEEEIIMIgAEQCAAQgA3AgggAEKAgID4i4CAgL9/NwIAIABBEGpCgICA+AM3AgAgCkKCgICAIDcCHCAKIAA2AhggCkEkaiIEQQhqIgBBADYCACAKQgQ3AiRBAUH0o8MAQQEgESAKQRhqIAQQhgEgCkEQaiIJIAAoAgA2AgAgCiAKKQIkNwMIIAooAhghBCAKKAIcIQgCQCAKKAIgIgJFDQAgEyATkiETIBQgFJIhFCAEIQAgAkEMbCIBQQxrIgNBDG5BAXFFBEAgBCAUIAQqAgCUOAIAIAQgEyAEKgIElDgCBCAEIBQgBCoCCJQ4AgggBEEMaiEACyADQQxJDQAgASAEaiEBA0AgACAUIAAqAgCUOAIAIABBBGoiAyATIAMqAgCUOAIAIABBCGoiAyAUIAMqAgCUOAIAIABBDGoiAyAUIAMqAgCUOAIAIABBEGoiAyATIAMqAgCUOAIAIABBFGoiAyAUIAMqAgCUOAIAIAEgAEEYaiIARw0ACwsgDCACNgIIIAwgCDYCBCAMIAQ2AgAgDCAKKQMINwIMIAxBFGogCSgCADYCACAKQTBqJAAMAQtBBEEYQdCBxAAoAgAiAEGXByAAGxEAAAALIAZBQGsgBkEQakLUv4+1hfDgo88AQuboj9vv9bewHCAMELMCAkAgBigCQCIARQ0AIAYoAkQEQCAAEJoCCyAGQdAAaigCAEUNACAGKAJMEJoCCyAGQQhqIgBDAAAAPzgCBCAAQwAAAD84AgAgBiAGKQMINwI0IAZB2ABqIgAgBkE0aiAREMYDIAZBQGsgBkEQakKJvO/Y+4nkmK5/QuiC043ihfKX2QAgABCzAgJAIAYoAkAiAEUNACAGKAJEBEAgABCaAgsgBkHQAGooAgBFDQAgBigCTBCaAgsgDiAGKQMQNwMAIA5BGGogBkEQaiIAQRhqKQMANwMAIA5BEGogAEEQaikDADcDACAOQQhqIABBCGopAwA3AwAgDkEgaiAHQeABEIgNGiAOQQ82AoACIAZB8ABqJAAMAQtBBEHgAEHQgcQAKAIAIgBBlwcgABsRAAAACyAHQeABaiQAIA1BoAJqQgA3AwAgDUGYAmpCgICAgMAANwMAIA1CBDcDkAIgDUGwAmogDkGgAhCIDRpBkfvDAC0AABpBqAJBCBCCDCIARQRAQQhBqAJB0IHEACgCACIAQZcHIAAbEQAAAAsgAEEANgIAIABBBGogDUGsAmpBpAIQiA0aIA1B0ARqJAAgAAuKAQECfyMAQRBrIgIkACAAKAIAIQMgAkEEaiIAIAEQoAsgAiADNgIMIAAgAkEMaiIBEIcFIAIgA0EEajYCDCAAIAEQhwUgAiADQQhqNgIMIAAgARCHBSAALQAEBH9BAQUgACgCACIAKAIUQb7dwwBBASAAQRhqKAIAKAIMEQUACyEAIAJBEGokACAAC3cBBX0gAioCACIGIAaUIAIqAggiAyADlJIQmwEiB0MAAAAAXARAIAMgB5UgASoCBCIElCEFIAYgB5UgBJQhBAsgACAFIAMgASoCCCIDlJI4AgggACABKgIAIAIqAgQiBZggBSADlJI4AgQgACAEIAYgA5SSOAIAC4MBAQF/IwBBQGoiAyQAIAMgAjYCFCADIAE2AhAgAyAANgIMIANBGGoiAEEMakICNwIAIANBMGoiAUEMakEBNgIAIANBAjYCHCADQaCXwAA2AhggA0ECNgI0IAMgATYCICADIANBEGo2AjggAyADQQxqNgIwIAAQmQUhACADQUBrJAAgAAvqAwEKfyMAQSBrIgMkACADIAE2AhwgAyABNgIYIAMgADYCFCADQQhqIQdBACEBIwBBEGsiAiQAIANBFGoiCCgCACEJAkACQAJAAkACQCAIKAIIIgBFBEAgAkEEQQAQ1wUgAigCBCEBIAIoAgAhAAwBC0EEIQYCQCAAIABBA24iBUEDbEcgBWoiBUUNACAFQarVqtUASw0CIAVBDGwiBEEASA0CIARFDQBBkfvDAC0AABogBEEEEIIMIgZFDQMLQQAhBANAIABBAk0NBCABIAZqIgogASAJaiILKgIAOAIAIApBBGogC0EEaikCADcCACABQQxqIQEgBEEBaiEEIABBA2siAA0ACyACQQhqIAYgBBDXBSACKAIMIQEgAigCCCEAIAVFDQAgBhCaAgsgCCgCBARAIAkQmgILIAcgADYCACAHIAE2AgQgAkEQaiQADAMLENsKAAtBBCAEQdCBxAAoAgAiAEGXByAAGxEAAAALQeybwABBywBBqJ3AABChCwALAkACQCADKAIIIgBFBEBBACEBDAELIAMoAgwhAkGR+8MALQAAGkEMQQQQggwiAUUNASABIAI2AgggASAANgIEIAFBADYCAAsgA0EgaiQAIAEPC0EEQQxB0IHEACgCACIAQZcHIAAbEQAAAAubAQIEfwF+IwBBEGsiAiQAEJkIIQMgAhCZCCIBNgIMQZH7wwAtAAAaIAEpAwghBEEgQQgQggwiAARAIABCADcCFCAAIAM2AhAgACAENwMIIABCgYCAgBA3AwAgASABKAIAIgFBAWs2AgAgAUEBRgRAIAJBDGoQtwkLIAJBEGokACAADwtBCEEgQdCBxAAoAgAiAEGXByAAGxEA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IgQgBUEsaigCAEYEQCAFQShqIAkQpAYgBSgCMCEECyAFIARBAWo2AjAgBSgCKCAEQQR0aiIEQn83AgggBCAQNgIEIAQgDTYCACANIAUoAiQiB08EQCAHIQggDSAHayITQQFqIg4gBUEgaigCACAHa0sEQCAFQRxqIAcgDhCMBiAFKAIkIQgLIAUoAhwgCEEDdGohBCAOQQJPBEAgE0EHcSEKIAdBf3MgDWpBB08EQCATQXhxIQcDQCAEQv////8PNwIAIARBOGpC/////w83AgAgBEEwakL/////DzcCACAEQShqQv////8PNwIAIARBIGpC/////w83AgAgBEEYakL/////DzcCACAEQRBqQv////8PNwIAIARBCGpC/////w83AgAgBEFAayEEIAdBCGsiBw0ACwsgCgRAA0AgBEL/////DzcCACAEQQhqIQQgCkEBayIKDQALCyAIIA5qQQFrIQgLIARC/////w83AgAgBSAIQQFqIgc2AiQLIAcgDU0NBCAFKAIcIA1BA3RqIgQgCTYCBCAEIBA2AgALIAZBf0YEQCAFQTBqKAIAIgZBf0YNBSAGIgQgBUEsaigCAEYEQCAFQShqIAYQpAYgBSgCMCEECyAFIARBAWo2AjAgBSgCKCAEQQR0aiIEQn83AgggBCARNgIEIAQgCzYCAAJAIAUoAiQiByALSwRAIAchBAwBCyAHIAtBAWoiBEkEQCAHIQggBCAHayIOIAVBIGooAgAgB2tLBEAgBUEcaiAHIA4QjAYgBSgCJCEICyAFKAIcIAhBA3RqIQQgDkECTwRAIAsgB2siE0EHcSEKIAdBf3MgC2pBB08EQCATQXhxIQcDQCAEQv////8PNwIAIARBOGpC/////w83AgAgBEEwakL/////DzcCACAEQShqQv////8PNwIAIARBIGpC/////w83AgAgBEEYakL/////DzcCACAEQRBqQv////8PNwIAIARBCGpC/////w83AgAgBEFAayEEIAdBCGsiBw0ACwsgCgRAA0AgBEL/////DzcCACAEQQhqIQQgCkEBayIKDQALCyAIIA5qQQFrIQgLIARC/////w83AgAgCEEBaiEECyAFIAQ2AiQLIAQgC00NBiAFKAIcIAtBA3RqIgQgBjYCBCAEIBE2AgALIAVBPGooAgAiBEF/Rg0GIAVBMGooAgAg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AEHYAmogHCkDADcDACAAQdACaiAdKQMANwMAIAAgASkDUDcDyAIgAEH4AmogHikDADcDACAAQfACaiAfKQMANwMAIAAgASkDODcD6AIgAEGQA2ogICkDADcDACAAQYgDaiAhKQMANwMAIAAgASkDIDcDgAMgAEGoA2ogIikDADcDACAAQaADaiAjKQMANwMAIAAgASkDCDcDmAMgAEGQBGpCADcDACAAQYgEakKAgICAwAA3AwAgAEIENwOABCAAQfgDakIANwMAIABB8ANqQoCAgIDAADcDACAAQgQ3A+gDIABB4ANqQgA3AwAgAEHYA2pCgICAgMAANwMAIABCBDcD0AMgAEEBOgDIAyAAQQA2AsADIABCADcDuAMgAUGQA2okACACQagEaiAAQZgEEIgNGkGR+8MALQAAGkGgBEEIEIIMIgBFBEBBCEGgBEHQgcQAKAIAIgBBlwcgABsRAAAACyAAQQA2AgAgAEEEaiACQaQEakGcBBCIDRogAkHACGokACAAC2kBAn8jAEEgayICJAAgAiABNgIEQQEhAwJAIAAoAgAgAUYNAEECIQMgACgCBCABRg0AQQAhAyAAKAIIIAFGDQAgAkEANgIIIABBCGogAkEEaiACQQhqQcyzwgAQ4woACyACQSBqJAAgAwt7AQF/IwBBwAFrIgMkACADQagBakIANwMAIANBuAFqQQA2AgAgA0KCgICAMDcDCCADQoCAgIAQNwMAIANCADcDoAEgA0IANwOwASADQRBqQQBBkAEQiQ0aIANBADYCvAEgACABIAMgAkEAECAgAEEDNgIQIANBwAFqJAALewEBfyMAQcABayIDJAAgA0GoAWpCADcDACADQbgBakEANgIAIANCgoCAgDA3AwggA0KAgICAEDcDACADQgA3A6ABIANCADcDsAEgA0EQakEAQZABEIkNGiADQQA2ArwBIAAgASADIAJBABAhIABBAzYCECADQcABaiQAC3sBAX8jAEHAAWsiAyQAIANBqAFqQgA3AwAgA0G4AWpBADYCACADQoKAgIAwNwMIIANCgICAgBA3AwAgA0IANwOgASADQgA3A7ABIANBEGpBAEGQARCJDRogA0EANgK8ASAAIAEgAyACQQAQHyAAQQM2AhAgA0HAAWokAAt7AQF/IwBBwAFrIgMkACADQagBakIANwMAIANBuAFqQQA2AgAgA0KCgICAMDcDCCADQoCAgIAQNwMAIANCADcDoAEgA0IANwOwASADQRBqQQBBkAEQiQ0aIANBADYCvAEgACABIAMgAkEAEB4gAEEDNgIQIANBwAFqJAALewEBfyMAQcABayIDJAAgA0GoAWpCADcDACADQbgBakEANgIAIANCgoCAgDA3AwggA0KAgICAEDcDACADQgA3A6ABIANCADcDsAEgA0EQakEAQZABEIkNGiADQQA2ArwBIAAgASADIAJBABAiIABBAzYCECADQcABaiQAC3wBAX8jAEHAAWsiBCQAIARBqAFqQgA3AwAgBEG4AWpBADYCACAEQoKAgIAwNwMIIARCgICAgBA3AwAgBEIANwOgASAEQgA3A7ABIARBEGpBAEGQARCJDRogBEEANgK8ASAAIAEoAgAgASgCCCAEIAIgAxAdIARBwAFqJAALcAEBfyMAQSBrIgIkAAJ/QQEgACABEN0EDQAaIAJBFGpCADcCACACQQE2AgwgAkG82sMANgIIIAJB+MHDADYCEEEBIAEoAhQgAUEYaigCACACQQhqELICDQAaIABBBGogARDdBAshACACQSBqJAAgAAtfAQN/AkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCAAJAIABBDGooAgAgAU0NACAAQQRqKAIAIgRFDQAgBCABQdQBbGotADQhAwsgACACNgIAIAMPCxD4DAALEPkMAAtrAgF/AX4CQAJAIAAEQCAAKAIADQEgAEF/NgIAIABBBGogAb0iBKcgBEIgiKcQigciA0UNAiADQRhqQgA3AwAgAyACrTcDECAAQQA2AgAPCxD4DAALEPkMAAtB7LTAAEHNAEH0tcAAEOEJAAtlAgF/BH0jAEEQayIDJAAgAioCACIFIAWUIAIqAgQiBiAGlJIgAioCCCIHIAeUkhCbASEEIAMgByAElTgCDCADIAYgBJU4AgggAyAFIASVOAIEIAAgASADQQRqENMDIANBEGokAAtpACAAQgA3AgAgAEIANwIwIABCADcCQCAAQShqQgA3AgAgAEEgakIANwIAIABBGGpCADcCACAAQRBqQgA3AgAgAEEIakIANwIAIABBOGpCADcCACAAQcgAakIANwIAIABB0ABqQgA3AgALXwECfyMAQSBrIgIkACACQQxqIgMgAUGYv8AAEIQLIAIg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akEoaioCACECCyAAIAM2AgAgAg8LEPgMAAsQ+QwAC14CAX0CfwJAIAAEQCAAKAIAIgNBf0YNASAAIANBAWo2AgAgASAAKAIEIgRB4ABqKAIASQRAIARB2ABqKAIAIAFBKGxqKgIMIQILIAAgAzYCACACDwsQ+AwACxD5DAALagAgACABKQIANwIMIAAgAikCADcCGCAAIAEqAgQgAioCBJM4AgQgACABKgIAIAIqAgCTOAIAIABBFGogAUEIaiIBKAIANgIAIABBIGogAkEIaiICKAIANgIAIAAgASoCACACKgIAkzgCCAt0AQF/IwBBwAFrIgQkACAEQagBakIANwMAIARBuAFqQQA2AgAgBEKCgICAMDcDCCAEQoCAgIAQNwMAIARCADcDoAEgBEIANwOwASAEQRBqQQBBkAEQiQ0aIARBADYCvAEgACABIAQgAiADEB8gBEHAAWokAAt0AQF/IwBBwAFrIgQkACAEQagBakIANwMAIARBuAFqQQA2AgAgBEKCgICAMDcDCCAEQoCAgIAQNwMAIARCADcDoAEgBEIANwOwASAEQRBqQQBBkAEQiQ0aIARBADYCvAEgACABIAQgAiADECAgBEHAAWokAAt0AQF/IwBBwAFrIgQkACAEQagBakIANwMAIARBuAFqQQA2AgAgBEKCgICAMDcDCCAEQoCAgIAQNwMAIARCADcDoAEgBEIANwOwASAEQRBqQQBBkAEQiQ0aIARBADYCvAEgACABIAQgAiADECIgBEHAAWokAAt0AQF/IwBBwAFrIgQkACAEQagBakIANwMAIARBuAFqQQA2AgAgBEKCgICAMDcDCCAEQoCAgIAQNwMAIARCADcDoAEgBEIANwOwASAEQRBqQQBBkAEQiQ0aIARBADYCvAEgACABIAQgAiADECEgBEHAAWokAAt0AQF/IwBBwAFrIgQkACAEQagBakIANwMAIARBuAFqQQA2AgAgBEKCgICAMDcDCCAEQoCAgIAQNwMAIARCADcDoAEgBEIANwOwASAEQRBqQQBBkAEQiQ0aIARBADYCvAEgACABIAQgAiADEB4gBEHAAWokAAtdAQJ/IwBBIGsiAyQAIANBBGoiBCABIAIQ8gIgAEEIaiAEQQhqKQIANwIAIAAgAykCBDcCACAAQRRqQQAgBEEUaigCACADKAIUIgEbNgIAIAAgATYCECADQSBqJAALcQIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCuuWiqui76NhvhSADQsPfpvKw/4igIIWEUBsLcgIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCrPzNjNiE8KxRhSADQp2076Wh6IWStn+FhFAbC3ICAX8CfiMAQSBrIgIkACACQRhqIAAgASgCYBEAACACQQhqIAIoAhgiACACKAIcQQxqKAIAEQAAIAJBEGopAwAhAyACKQMIIQQgAkEgaiQAIABBACAEQu/Cy+3Lto2+WoUgA0KE0dKKu+SMzssAhYRQGwtyAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmARAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBEK1vYK6y7q96vsAhSADQsHN5/jm8IShGIWEUBsLcgIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJkEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCtb2Cusu6ver7AIUgA0LBzef45vCEoRiFhFAbC3ECAX8CfiMAQSBrIgIkACACQRhqIAAgASgCYBEAACACQQhqIAIoAhgiACACKAIcQQxqKAIAEQAAIAJBEGopAwAhAyACKQMIIQQgAkEgaiQAIABBACAEQqWSyKytwtOTBIUgA0K///2xwrzFw2yFhFAbC3ICAX8CfiMAQSBrIgIkACACQRhqIAAgASgCYBEAACACQQhqIAIoAhgiACACKAIcQQxqKAIAEQAAIAJBEGopAwAhAyACKQMIIQQgAkEgaiQAIABBACAEQsnr8I2An+6jfYUgA0LLv7z095PnuKt/hYRQGwtyAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmARAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBEL5yKaVsqD59wqFIANCwqao39+zztXGAIWEUBsLcQIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARChdqn8drxkeIYhSADQsaZlq7jzbvzOYWEUBsLcQIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJkEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARChdqn8drxkeIYhSADQsaZlq7jzbvzOYWEUBsLcwIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCj6CK4/aL2Jv4AIUgA0KLlZLKhbvNvP8AhYRQGwtyAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmARAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBELKid2Dm7bq+fAAhSADQpaDlJCrl76wUoWEUBsLcwIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCibzv2PuJ5Jiuf4UgA0LogtON4oXyl9kAhYRQGwtzAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmQRAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBEKJvO/Y+4nkmK5/hSADQuiC043ihfKX2QCFhFAbC3ICAX8CfiMAQSBrIgIkACACQRhqIAAgASgCYBEAACACQQhqIAIoAhgiACACKAIcQQxqKAIAEQAAIAJBEGopAwAhAyACKQMIIQQgAkEgaiQAIABBACAEQtS/j7WF8OCjzwCFIANC5uiP2+/1t7AchYRQGwtyAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmQRAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBELUv4+1hfDgo88AhSADQuboj9vv9bewHIWEUBsLcwIBfwJ+IwBBIGsiAiQAIAJBGGogACABKAJgEQAAIAJBCGogAigCGCIAIAIoAhxBDGooAgARAAAgAkEQaikDACEDIAIpAwghBCACQSBqJAAgAEEAIARCsK/2q77pqK+df4UgA0LGj8PK/pXCqIx/hYRQGwtzAgF/An4jAEEgayICJAAgAkEYaiAAIAEoAmQRAAAgAkEIaiACKAIYIgAgAigCHEEMaigCABEAACACQRBqKQMAIQMgAikDCCEEIAJBIGokACAAQQAgBEKwr/arvumor51/hSADQsaPw8r+lcKojH+FhFAbC3ICAX8CfiMAQSBrIgIkACACQRhqIAAgASgCYBEAACACQQhqIAIoAhgiACACKAIcQQxqKAIAEQAAIAJBEGopAwAhAyACKQMIIQQgAkEgaiQAIABBACAEQovuxoLg/8GDhH+FIANCvePxpq/G7Ps9hYRQGwt9AQF/QZH7wwAtAAAaQRxBBBCCDCICRQRAQQRBHEHQgcQAKAIAIgBBlwcgABsRAAAACyACIAEpAgA3AgAgAkEYaiABQRhqKAIANgIAIAJBEGogAUEQaikCADcCACACQQhqIAFBCGopAgA3AgAgAEG01sIANgIEIAAgAjYCAAtoACMAQTBrIgAkAEGQ+8MALQAABEAgAEEYakIBNwIAIABBAjYCECAAQbS7wwA2AgwgAEECNgIoIAAgATYCLCAAIABBJGo2AhQgACAAQSxqNgIkIABBDGpB3LvDABDcCgALIABBMGokAAvDAwELfyMAQRBrIgUkAAJAIAAEQCAAKAIAIgNBf0YNASAAIANBAWo2AgAgBSABNgIMIAVBDGohCSMAQSBrIgIkACACQYEBNgIIIAJBDGogAEEEahCWCwJAIAIoAgwiASACKAIQIgdGDQAgAigCFCEGIAIoAhghCANAIAFBFGohAwJAAkAgASgCACIKQX9HBEAgAUEQaigCACILDQELIAMgB0YNAwwBCwJAIAFBBGooAgAiBCAIQRBqKAIATw0AIAhBCGooAgAiDEUNACAMIARBlAJsaiIELQCQAkECRg0AIAQoAgAgAUEIaigCAEcNAAJAIAsgBEEMaigCAEkEQCAEQQRqKAIADQELQdiHwABBK0GEpcAAEKoKAAsgAiAGrSAKrUIghoS/EAA2AhwgAiAJIAJBCGogAkEcahC3CiACKAIEIgFBhAFPBEAgARACCyACKAIcIgFBhAFPBEAgARACCyADIAdHDQEMAwtBgIDAAEETQfSkwAAQ4QkACyAGQQFqIQYgAyEBDAALAAsgAigCCCIBQYQBTwRAIAEQAgsgAkEgaiQAIAAgACgCAEEBazYCACAFQRBqJAAPCxD4DAALEPkMAAudAgEGfyMAQRBrIgMkAAJAIAAEQCAAKAIAIgJBf0YNASAAIAJBAWo2AgAgAyABNgIMIANBDGohBiMAQSBrIgEkACABQYEBNgIIIAFBDGogAEEEahCACyABKAIUIQQgASgCECEHIAEoAgwhAgNAAkACQAJAIAIgB0cEQCACKAIADQEMAgsgASgCCCICQYQBTwRAIAIQAgsgAUEgaiQADAILIAEgBK0gAkEEajUCAEIghoS/EAA2AhwgASAGIAFBCGogAUEcahC3CiABKAIEIgVBhAFPBEAgBRACCyABKAIcIgVBhAFJDQAgBRACCyACQegCaiECIARBAWohBAwBCwsgACAAKAIAQQFrNgIAIANBEGokAA8LEPgMAAsQ+QwAC50CAQZ/IwBBEGsiAyQAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACADIAE2AgwgA0EMaiEGIwBBIGsiASQAIAFBgQE2AgggAUEMaiAAQQRqEIELIAEoAhQhBCABKAIQIQcgASgCDCECA0ACQAJAAkAgAiAHRwRAIAIoAgANAQwCCyABKAIIIgJBhAFPBEAgAhACCyABQSBqJAAMAgsgASAErSACQQRqNQIAQiCGhL8QADYCHCABIAYgAUEIaiABQRxqELcKIAEoAgQiBUGEAU8EQCAFEAILIAEoAhwiBUGEAUkNACAFEAILIAJBqAFqIQIgBEEBaiEEDAELCyAAIAAoAgBBAWs2AgAgA0EQaiQADwsQ+AwACxD5DAAL1AEBBH8jAEEQayIFJAAgBUEIaiEGQZH7wwAtAAAaQRhBBBCCDCIERQRAQQRBGEHQgcQAKAIAIgRBlwcgBBsRAAAACyAEIAM4AhQgBCACOAIQIAQgATgCDCAEIAA4AgggBEKBgICAEDcCACAGQfiCwwA2AgQgBiAENgIAQZH7wwAtAAAaIAUoAgwhBiAFKAIIIQdBDEEEEIIMIgRFBEBBBEEMQdCBxAAoAgAiBEGXByAEGxEAAAALIAQgBjYCCCAEIAc2AgQgBEEANgIAIAVBEGokACAEC84BACAAQv////v///+/fzcDMCAAQv////v3//+//wA3AyggAEL////79///v/8ANwMgIABC////+/f//7//ADcDGCAAQv////v3//+//wA3AxAgAEL////79///v/8ANwMIIABC////+/f//7//ADcDACAAQdgAakL////7////v383AwAgAEHQAGpC////+////79/NwMAIABByABqQv////v///+/fzcDACAAQUBrQv////v///+/fzcDACAAQThqQv////v///+/fzcDAAtgAQN9IAAgAioCECIEIAEqAgAiA5I4AgwgACAEIAOTOAIAIABBFGogAyACQRhqKgIAIgSSOAIAIABBEGogAyACQRRqKgIAIgWSOAIAIAAgBCADkzgCCCAAIAUgA5M4AgQLWQECfwJAIAAoAgAiAEEQaigCACIBRQ0AIABBFGooAgAhAiABQQA6AAAgAkUNACABEJoCCwJAIABBf0YNACAAIAAoAgQiAUEBazYCBCABQQFHDQAgABCaAgsLlAEBAX9BkfvDAC0AABpB+ABBBBCCDCIARQRAQQRB+ABB0IHEACgCACIAQZcHIAAbEQAAAAsgAEKAgICAgICAwD83AhQgAEIANwIMIABBfzYCCCAAQoCAgIBwNwIAIABBHGpBAEHEABCJDRogAEECOgB0IABBADYCcCAAQoCAgICAgIDAPzcCaCAAQoCAgPwDNwJgIAALhQECAX8BfkGR+8MALQAAGkE8QQQQggwiAUUEQEEEQTxB0IHEACgCACIBQZcHIAEbEQAAAAsgAUIBNwI0IAFBADYCKCABQgA3AiAgAUKAgICAwAA3AhggAUIENwIQIAFCADcCCCABQoCAgIDAADcCACABIAC9IgI+AiwgASACQiCIPgIwIAELZAIBfgF/AkACQCAABEAgACgCAA0BIABBfzYCACAAQQRqIAG9IgOnIANCIIinEIoHIgRFDQIgBEGMAWogAjgCACAAQQA2AgAPCxD4DAALEPkMAAtB7LTAAEHNAEH0tcAAEOEJAAvfAQICfwF+AkACQCAABEAgACgCAA0BIABBfzYCACAAQQRqIAG9IgWnIAVCIIinEIoH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RQRAQQQhC0EAIQdBAAwCCyAHQf////8ASw0CIAdBA3QiAkEASA0CAkACQCACRQRAQQQhCwwBC0GR+8MALQAAGiACQQQQggwiC0UNAQsgB0EDcSEBIAVBAmtBA08EQCAHQXxxIQUgCyECA0AgAiAGNgIAIAJBHGogBkEEaiIENgIAIAJBGGogBkEDaiIINgIAIAJBFGogCDYCACACQRBqIAZBAmoiCDYCACACQQxqIAg2AgAgAkEIaiAGQQFqIgg2AgAgAiAINgIEIAJBIGohAiAEIQYgBCAFRw0ACwsgAQRAIAsgBEEDdGohAgNAIAIgBDYCACACIARBAWoiBDYCBCACQQhqIQIgAUEBayIBDQALCyAHDAILDAgLIAIoAgghByACKAIECyESIANBQGtBADYCACADQThqQoCAgIDAADcCACADQShqQgA3AgAgA0EgakKAgICAwAA3AgAgA0IENwIwIANCEDcCGCADQv////v///+/fzcCECADQv////v3//+/fzcCCCADQv////v3//+//wA3AgAgA0EBOgBLAkACQCAHRQRAIANBADYCVCADQgQ3AkwgA0EANgJEIANCBDcCPCADQQA2AmAgA0IENwJYDAELQZH7wwAtAAAaIAdBAnQiAkEEEIIMIgFFDQggA0EANgJUIAMgATYCTCADIAc2AlAgB0HVqtUqSw0CIAdBGGwiAkEASA0CAkAgAkUEQEEEIQEMAQtBkfvDAC0AABogAkEEEIIMIgFFDQILIAEhAgJAIAdBAkkNACAHQQFrIgVBA3EhBCAHQQJrQQNPBEAgBUF8cSEGA0AgAkL////7////v383AhAgAkL////79///v383AgggAkL////79///v/8ANwIAIAJB2ABqQv////v///+/fzcCACACQdAAakL////79///v383AgAgAkHIAGpC////+/f//7//ADcCACACQUBrQv////v///+/fzcCACACQThqQv////v3//+/fzcCACACQTBqQv////v3//+//wA3AgAgAkEoakL////7////v383AgAgAkEgakL////79///v383AgAgAkEYakL////79///v/8ANwIAIAJB4ABqIQIgBkEEayIGDQALCyAERQ0AA0AgAkL////7////v383AhAgAkL////79///v383AgggAkL////79///v/8ANwIAIAJBGGohAiAEQQFrIgQNAAsLIAJB////+wc2AgggAkL////79///v/8ANwIAIAJB////ezYCFCACQv////v///+/fzcCDCADIAc2AmAgAyAHNgJcIAMgATYCWCAHQQxsIgJBAEgNAgJAIAJFBEBBBCEBDAELQZH7wwAtAAAaIAJBBBCCDCIBRQ0JCyABIQICQCAHQQJJDQAgB0EBayIFQQNxIQQgB0ECa0EDTwRAIAVBfHEhBgNAIAJCfzcCCCACQQA6AAQgAkF/NgIAIAJBLGpBfzYCACACQShqQQA6AAAgAkEgakJ/NwIAIAJBHGpBADoAACACQRRqQn83AgAgAkEQakEAOgAAIAJBMGohAiAGQQRrIgYNAAsLIARFDQADQCACQX82AgggAkEAOgAEIAJBfzYCACACQQxqIQIgBEEBayIEDQALCyACQX82AgggAkEAOgAEIAJBfzYCACADKAJABEAgAygCPBCaAgsgAyAHNgJEIAMgBzYCQCADIAE2AjwgB0UNACALIAdBA3RqIRMgDSgCACERIA0oAgghDyADQTxqIRQgByEBQQAhBCALIRADQCAQKAIAIgIgD08NBCAQQQRqKAIAIgUgD08NBSAEQQFqIQggESAFQQxsaiIFKgIEIRYgBSoCACEXIAUqAgghGCARIAJBDGxqIgIqAgAhGSACKgIEIRogAioCCCEbIAEgBE0EQCABIQUgCCABayIJIAMoAkAgAWtLBEAgFCABIAkQiwYgAygCRCEFCyADKAI8IAVBDGxqIQIgCUECTwRAIAQgAWsiBkEDcSEMIAQgAUF/c2pBA08EQCAGQXxxIQYDQCACQn83AgggAkEAOgAEIAJBfzYCACACQSxqQX82AgAgAkEoakEAOgAAIAJBIGpCfzcCACACQRxqQQA6AAAgAkEUakJ/NwIAIAJBEGpBADoAACACQTBqIQIgBkEEayIGDQALCyAMBEAgDiABa0EDcSEGA0AgAkF/NgIIIAJBADoABCACQX82AgAgAkEMaiECIAZBAWsiBg0ACwsgBSAJakEBayEFCyACQX82AgggAkEAOgAEIAJBfzYCACADIAVBAWoiATYCRCADIAMoAmAiCSAETQR/IAggCSIFayEMIAwgAygCXCAFa0sEQCADQdgAaiAJIAwQnQYgAygCYCEFCyADKAJYIAVBGGxqIQIgDEECTwRAIAQgCWsiBkEDcSEVIAQgCUF/c2pBA08EQCAGQXxxIQYDQCACQv////v///+/fzcCECACQv////v3//+/fzcCCCACQv////v3//+//wA3AgAgAkHYAGpC////+////79/NwIAIAJB0ABqQv////v3//+/fzcCACACQcgAakL////79///v/8ANwIAIAJBQGtC////+////79/NwIAIAJBOGpC////+/f//79/NwIAIAJBMGpC////+/f//7//ADcCACACQShqQv////v///+/fzcCACACQSBqQv////v3//+/fzcCACACQRhqQv////v3//+//wA3AgAgAkHgAGohAiAGQQRrIgYNAAsLIBUEQCAOIAlrQQNxIQYDQCACQv////v///+/fzcCECACQv////v3//+/fzcCCCACQv////v3//+//wA3AgAgAkEYaiECIAZBAWsiBg0ACwsgBSAMakEBayEFCyACQv////v///+/fzcCECACQv////v3//+/fzcCCCACQv////v3//+//wA3AgAgBUEBagUgCAs2AmALIAEgBE0NBiADKAI8IARBDGxqIAQ2AgggAygCYCICIARNDQcgAygCWCAEQRhsaiICIBsgGCAbIBpDAAAAAJQiHiAZQwAAAACUIh+SIiKSIBggF0MAAAAAlCIgIBZDAAAAAJQiIZIiI5JeGzgCFCACIBogFiAbQwAAAACUIhwgGiAfkpIgICAWkiAYQwAAAACUIh2SXhs4AhAgAiAZIBcgHCAZIB6SkiAXICGSIB2SXhs4AgwgAiAbIBggIiAbkyAjIBiTXhs4AgggAiAaIBYgHCAfIBqTkiAgIBaTIB2SXhs4AgQgAiAZIBcgHCAeIBmTkiAhIBeTIB2SXhs4AgAgAygCVCICIAMoAlBGBEAgA0HMAGogAhCoBiADKAJUIQILIAMoAkwgAkECdGogBDYCACADIAJBAWo2AlQgDkEBaiEOIAghBCATIBBBCGoiEEcNAAsLIAMoAiAiBCADKAIcRgRAIANBGGogBBCvBiADKAIgIQQLIAMoAhggBEEHdGoiAUKBgICAcDcDYCABQQA6AHggAUEAOgB0IAFBfzYCcCABQv////v///+/fzcDWCABQv////v///+/fzcDUCABQv////v///+/fzcDSCABQv////v///+/fzcDQCABQv////v///+/fzcDOCABQv////v///+/fzcDMCABQv////v3//+//wA3AyggAUL////79///v/8ANwMgIAFC////+/f//7//ADcDGCABQv////v3//+//wA3AxAgAUL////79///v/8ANwMIIAFC////+/f//7//ADcDACABQegAakJ/NwMAIAMgBEEBajYCICADQeQAaiADIANBywBqIAMoAkwiAiADKAJUIANB2ABqQQBBABBEIAMgA0H8AGoqAgAiFjgCFCADIANB+ABqKgIAIhc4AhAgAyADQfQAaioCACIYOAIMIAMgA0HwAGoqAgAiGTgCCCADIANB7ABqKgIAIho4AgQgAyADKgJoIhs4AgAgAygCIEUNBiADKAIYIgFB////ezYCXCABQv////v///+/fzcCVCABIBY4AlAgAUH///97NgJMIAFC////+////79/NwJEIAEgFzgCQCABQf///3s2AjwgAUL////7////v383AjQgASAYOAIwIAFB////+wc2AiwgAUL////79///v/8ANwIkIAEgGTgCICABQf////sHNgIcIAFC////+/f//7//ADcCFCABIBo4AhAgAUH////7BzYCDCABQv////v3//+//wA3AgQgASAbOAIAIAMoAlwEQCADKAJYEJoCCyADKAJQBEAgAhCaAgsgCkEYaiADQcgAEIgNGiAKQRRqIAc2AgAgCkEQaiASNgIAIAogCzYCDCAKQQhqIA1BCGooAgA2AgAgCiANKQIANwIAIANBgAFqJAAMCAsMBgsQ2woACyACIA9B7M3CABDjCAALIAUgD0H8zcIAEOMIAAsgBCABQdCewgAQ4wgACyAEIAJB4J7CABDjCAALQQBBAEHAnsIAEOMIAAtBBCACQdCBxAAoAgAiAEGXByAAGxEAAAALQZH7wwAtAAAaQegAQQQQggwiAUUEQEEEQegAQdCBxAAoAgAiAEGXByAAGxEAAAALIAFCgYCAgBA3AgAgAUEIaiAKQeAAEIgNGiAAQfTcwgA2AgQgACABNgIAIApB4ABqJAALeAIBfwF9IwBB4ABrIgIkACACIAEQxgFBkfvDAC0AABogASoCYCEDQeQAQQQQggwiAUUEQEEEQeQAQdCBxAAoAgAiAEGXByAAGxEAAAALIAEgAkHgABCIDSIBIAM4AmAgAEHAhcMANgIEIAAgATYCACACQeAAaiQAC10BAX8jAEEwayIDJAAgAyABNgIMIAMgADYCCCADQRxqQgE3AgAgA0EBNgIUIANB1NrDADYCECADQa8HNgIsIAMgA0EoajYCGCADIANBCGo2AiggA0EQaiACENwKAAvMAgEDfyMAQaABayICJAACQCAABEAgACgCAA0BIAJBBGoiASAAQQRqQZwBEIgNGiAAEJoCIAEoAgAiACgCACEDIAAgA0EBazYCACADQQFGBEAgARCaCAsgAUHsAGooAgAEQCABQegAaigCABCaAgsgAUH4AGooAgAEQCABQfQAaigCABCaAgsgAUGEAWooAgAEQCABQYABaigCABCaAgsgAUGQAWooAgAEQCABQYwBaigCABCaAgsgAUEMaigCAARAIAEoAggQmgILIAFBGGooAgAEQCABQRRqKAIAEJoCCyABQSRqKAIABEAgAUEgaigCABCaAgsgAUEwaigCAARAIAFBLGooAgAQmgILIAFBPGooAgAEQCABQThqKAIAEJoCCyABQcgAaigCAARAIAFBxABqKAIAEJoCCyACQaABaiQADwsQ+AwACxD5DAAL8AIBA38jAEGgAWsiASQAIAFBBGohAEGR+8MALQAAGkEIQQQQggwiAkUEQEEEQQhB0IHEACgCACIAQZcHIAAbEQAAAAsgAEGKro/hAzYCmAEgAEIANwKQASAAQoCAgIDAADcCiAEgAEIENwKAASAAQgA3AnggAEKAgICAwAA3AnAgAEIQNwJoIABC////+////79/NwJgIABC////+/f//79/NwJYIABC////+/f//7//ADcCUCAAQgA3AkggAEKAgICAwAA3AkAgAEIBNwI4IABCADcCMCAAQoCAgIDAADcCKCAAQgQ3AiAgAEIANwIYIABCgICAgMAANwIQIABCBDcCCCAAQYjqwQA2AgQgACACNgIAIAJCgYCAgBA3AgBBkfvDAC0AABpBoAFBBBCCDCIARQRAQQRBoAFB0IHEACgCACIAQZcHIAAbEQAAAAsgAEEANgIAIABBBGogAUEEakGcARCIDRogAUGgAWokACAAC0sBAn8jAEHQAGsiASQAAkAgAARAIAAoAgANASABQQRqIgIgAEEEakHMABCIDRogABCaAiACEJEHIAFB0ABqJAAPCxD4DAALEPkMAAvxAwEHfyMAQdAA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GxEAAAALQQRByAFB0IHEACgCACIAQZcHIAAbEQAAAAtBkfvDAC0AABpByABBBBCCDCIARQRAQQRByABB0IHEACgCACIAQZcHIAAbEQAAAAsgAEEANgIAIABBBGogAUEMakHEABCIDRogAUHQAGokACAADwtBBEGgAUHQgcQAKAIAIgBBlwcgABsRAAAAC7gJAQR/IwBBoARrIgQkAAJAIAAEQCAAKAIADQEgBEEIaiIBIABBCGpBmAQQiA0aIAAQmgIgAUHUA2ooAgAEQCABKALQAxCaAgsgASgC3AMhAiABQeQDaigCACIDBEAgAiEAA0AgAEEEaigCAARAIAAoAgAQmgILIABBDGohACADQQFrIgMNAAsLIAFB4ANqKAIABEAgAhCaAgsgASgC6AMhAiABQfADaigCACIDBEAgAiEAA0AgAEEEaigCAARAIAAoAgAQmgILIABBDGohACADQQFrIgMNAAsLIAFB7ANqKAIABEAgAhCaAgsgAUH4A2ooAgAEQCABKAL0AxCaAgsgAUGEBGooAgAEQCABKAKABBCaAgsgASgCjAQhAiABQZQEaigCACIDBEAgAiEAA0AgAEEEaigCAARAIAAoAgAQmgILIABBFGooAgAEQCAAQRBqKAIAEJoCCyAAQSBqKAIABEAgAEEcaigCABCaAgsgAEEsaigCAARAIABBKGooAgAQmgILIABBOGooAgAEQCAAQTRqKAIAEJoCCyAAQcQAaigCAARAIABBQGsoAgAQmgILIABB0ABqKAIABEAgAEHMAGooAgAQmgILIABB3ABqKAIABEAgAEHYAGooAgAQmgILIABB6ABqKAIABEAgAEHkAGooAgAQmgILIABB9ABqKAIABEAgAEHwAGooAgAQmgILIABBgAFqKAIABEAgAEH8AGooAgAQmgILIABBjAFqKAIABEAgAEGIAWooAgAQmgILIABBmAFqKAIABEAgAEGUAWooAgAQmgILIABBpAFqKAIABEAgAEGgAWooAgAQmgILIABBsAFqKAIABEAgAEGsAWooAgAQmgILIABBvAFqKAIABEAgAEG4AWooAgAQmgILIABBzAFqKAIABEAgAEHIAWooAgAQmgILIABB2AFqKAIABEAgAEHUAWooAgAQmgILIABB5AFqKAIABEAgAEHgAWooAgAQmgILIABB8AFqKAIABEAgAEHsAWooAgAQmgILIABB/AFqKAIABEAgAEH4AWooAgAQmgILIABBiAJqKAIABEAgAEGEAmooAgAQmgILIABBlAJqKAIABEAgAEGQAmooAgAQmgILIABBoAJqKAIABEAgAEGcAmooAgAQmgILIABBrAJqKAIABEAgAEGoAmooAgAQmgILIABBuAJqKAIABEAgAEG0AmooAgAQmgILIABBxAJqKAIABEAgAEHAAmooAgAQmgILIABB0AJqKAIABEAgAEHMAmooAgAQmgILIABB3AJqKAIABEAgAEHYAmooAgAQmgILIABB6AJqKAIABEAgAEHkAmooAgAQmgILIABB9AJqKAIABEAgAEHwAmooAgAQmgILIABBgANqKAIABEAgAEH8AmooAgAQmgILIABBjANqKAIABEAgAEGIA2ooAgAQmgILIABBmANqKAIABEAgAEGUA2ooAgAQmgILIABBqANqKAIABEAgAEGkA2ooAgAQmgILIABBuANqKAIABEAgAEG0A2ooAgAQmgILIABBwANqIQAgA0EBayIDDQALCyABQZAEaigCAARAIAIQmgILIARBoARqJAAPCxD4DAALEPkMAAumAwEDfyMAQaABayIBJAAgAUEEaiEAQZH7wwAtAAAaQQhBBBCCDCICRQRAQQRBCEHQgcQAKAIAIgBBlwcgABsRAAAACyAAQYquj+EDNgKYASAAQv////v3//+//wA3AlAgAEGI6sEANgIEIAAgAjYCACACQoGAgIAQNwIAIABCBDcCCCAAQZABakIANwIAIABBiAFqQoCAgIDAADcCACAAQYABakIENwIAIABB+ABqQgA3AgAgAEHwAGpCgICAgMAANwIAIABB6ABqQhA3AgAgAEHgAGpC////+////79/NwIAIABB2ABqQv////v3//+/fzcCACAAQRBqQoCAgIDAADcCACAAQRhqQgA3AgAgAEEgakIENwIAIABBKGpCgICAgMAANwIAIABBMGpCADcCACAAQThqQgE3AgAgAEFAa0KAgICAwAA3AgAgAEHIAGpCADcCAEGR+8MALQAAGkGgAUEEEIIMIgBFBEBBBEGgAUHQgcQAKAIAIgBBlwcgABsRAAAACyAAQQA2AgAgAEEEaiABQQRqQZwBEIgNGiABQaABaiQAIAALNQEBfyAAKAIEIgEEQCAAKAIAIAFBAnRB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QRBqJAAgA0EQaiQAIAALQgEBfUMAAAAAIAEqAgAiAyADlCABKgIEIgMgA5SSIAEqAggiAyADlJIQmwEgACoCAJMiAyACGyADIANDAAAAAF0bCz0BA30gASoCACICIAKUIAEqAggiAiAClJIQmwEhAiABKgIEIgMgACoCACIEXyACIAAqAgRfcSADIASMYHELPQECfyMAQTBrIgQkACAEQQxqIgUgASACIAMQTSAAQQhqIAVBCGopAgA3AgAgACAEKQIMNwIAIARBMGokAAtdAQF/QZH7wwAtAAAaQQZBARCCDCIBRQRAQQFBBkHQgcQAKAIAIgBBlwcgABsRAAAACyABQQRqQcS3wAAvAAA7AAAgAUHAt8AAKAAANgAAIAAgATYCACAAQQY2AgQLQAIBfwF8AkAgAARAIAAoAgAiAUF/Rg0BIAAgAUEBajYCACAAKAIEKwIAIQIgACABNgIAIAIPCxD4DAALEPkMAAtAAgF/AXwCQCAABEAgACgCACIBQX9GDQEgACABQQFqNgIAIAAoAgQrAgghAiAAIAE2AgAgAg8LEPgMAAsQ+QwACz8BAn8CQCAABEAgACgCACIBQX9GDQEgACABQQFqNgIAIAAoAgQoAqABIQIgACABNgIAIAIPCxD4DAALEPkMAAs/AQJ/AkAgAARAIAAoAgAiAUF/Rg0BIAAgAUEBajYCACAAKAIEKAKkASECIAAgATYCACACDwsQ+AwACxD5DAALVwEBf0GR+8MALQAAGkEUQQQQggwiBEUEQEEEQRRB0IHEACgCACIEQZcHIAQbEQAAAAsgBCADOAIQIAQgAjgCDCAEIAE4AgggBCAAOAIEIARBADYCACAEC0sAIAEoAgAgAigCACADKAIAEAchAUGY+8MAKAIAIQJBlPvDACgCACEDQZT7wwBCADcCACAAIAIgASADQQFGIgEbNgIEIAAgATYCAAs5AAJAIAFpQQFHDQBBgICAgHggAWsgAEkNACAABEBBkfvDAC0AABogACABEIIMIgFFDQELIAEPCwALPAEBfyMAQSBrIgMkACADQQRqIgQgASACEPICIABBCGogBEEIaikCADcCACAAIAMpAgQ3AgAgA0EgaiQACz8BAX8jAEEgayIFJAAgBUEIaiABIAIgAyAEEOcBIAUoAgghASAAIAUqAhA4AgQgACABQQRHNgIAIAVB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cSICIAJBA08bIggEQEHW2cMAQdfZwwBB+MHDACADGyAJQgBTGyEGQQEhAkEBIAlCP4inIAMbIQcgCEECaw4CAgMBCyAAQQM2ApgIIABB2NnDADYClAggAEECOwGQCEEBIQJBACEHQfjBwwAhBiAAQZAIagwECyAAQQM2ApgIIABB29nDADYClAggAEECOwGQCCAAQZAIagwDC0ECIQIgAEECOwGQCCAERQ0BIABBoAhqIAQ2AgAgAEEAOwGcCCAAQQI2ApgIIABBrdnDADYClAggAEGQCGoMAgtBdEEFIAXBIgNBAEgbIANsIgNBwP0ASQRAIABBkAhqIABB0AhqIABBEGogA0EEdkEVaiICQYCAfkEAIARrIARBgIACTxsiAxDEASADwSEDAkAgACgCkAhFBEAgAEHACGogAEHQCGogAEEQaiACIAMQLgwBCyAAQcgIaiAAQZgIaigCADYCACAAIAApApAINwPACAsgAyAALgHICCIDSARAIABBCGogACgCwAggACgCxAggAyAEIABBkAhqEKAEIAAoAgwhAiAAKAIIDAMLQQIhAiAAQQI7AZAIIARFBEBBASECIABBATYCmAggAEHe2cMANgKUCCAAQZAIagwDCyAAQaAIaiAENgIAIABBADsBnAggAEECNgKYCCAAQa3ZwwA2ApQIIABBkAhqDAILQeXZwwBBJUGM2sMAEKoKAAtBASECIABBATYCmAggAEHe2cMANgKUCCAAQZAIagshAyAAQcwIaiACNgIAIAAgAzYCyAggACAHNgLECCAAIAY2AsAIIAEgAEHACGoQ0QIhASAAQfAIaiQAIAEPCyMAQYABayIAJAAgD70hCQJAIA8gD2IEQEECIQIMAQsgCUL/////////B4MiDUKAgICAgICACIQgCUIBhkL+////////D4MgCUI0iKdB/w9xIgUbIgpCAYMhDEEDIQICQAJAAkBBAUECQQQgCUKAgICAgICA+P8AgyIOUCIGGyAOQoCAgICAgID4/wBRG0EDQQQgBhsgDVAbQQJrDgMAAQIDC0EEIQIMAgsgBUGzCGshBCAMUCECQgEhCwwBC0KAgICAgICAICAKQgGGIApCgICAgICAgAhRIgIbIQpCAkIBIAIbIQtBy3dBzHcgAhsgBWohBCAMUCECCyAAIAQ7AXggACALNwNwIABCATcDaCAA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QQA2AgAPCxD4DAALEPkMAAt2AQJ/AkAgAARAIAAoAgANASAAQX82AgAgAEEEaiIBKAIsIgJFBEBB9MLAAEErQZSowQAQqgoACyABQQE2AiwgASACNgIAIAFCgICA/IOAgMA/NwIUIAFCmrPm+IOAgMA/NwIMIABBADYCAA8LEPgMAAsQ+QwAC0kBAX5BkfvDAC0AABogACkCACEBQRBBBBCCDCIARQRAQQRBEEHQgcQAKAIAIgBBlwcgABsRAAAACyAAIAE3AgQgAEEAOgAAIAALMgEBfyABKAIcIgJBEHFFBEAgAkEgcUUEQCAAIAEQ7QwPCyAAIAEQlwcPCyAAIAEQlgcLLwEBfSABKgIAIgIgApQgASoCBCICIAKUkiABKgIIIgIgApSSIAAqAgAiAiAClF8LMAEBfyMAQSBrIgMkACADQQhqIAAgASACQQEQ1gEgAygCCCEAIANBIGokACAAQQRHCzABAX8jAEEgayIDJAAgA0EIaiAAIAEgAkEBEOcBIAMoAgghACADQSBqJAAgAEEERwswAQF/IwBBIGsiAyQAIANBCGogACABIAJBARDOASADKAIIIQAgA0EgaiQAIABBBEcLLwEBfyMAQRBrIgMkACADQQhqIAAgASACQQEQaCADKAIIIQAgA0EQaiQAIABBAUYLMAEBfyMAQSBrIgMkACADQQhqIAAgASACQQEQvQEgAygCCCEAIANBIGokACAAQQRHCy8BAX8jAEEQayIDJAAgA0EIaiAAIAEgAkEBEF4gAygCCCEAIANBEGokACAAQQFGCzABAX8jAEEgayIDJAAgA0EIaiAAIAEgAkEBEOMBIAMoAgghACADQSBqJAAgAEEERwswAQF/IwBBIGsiAyQAIANBCGogACABIAJBARCyASADKAIIIQAgA0EgaiQAIABBBEcLMAEBfyMAQSBrIgMkACADQQhqIAAgASACQQEQlQEgAygCCCEAIANBIGokACAAQQRHCzABAX8jAEEgayIDJAAgA0EIaiAAIAEgAkEBEOYBIAMoAgghACADQSBqJAAgAEEERwsvAQF/IwBBIGsiAyQAIANBCGogACABIAJBABB/IAMoAgghACADQSBqJAAgAEEERwsvAQF/IwBBEGsiAyQAIANBCGogACABIAJBARBzIAMoAgghACADQRBqJAAgAEEBRgswAQF/IwBBIGsiAyQAIANBCGogACABIAJBARDDASADKAIIIQAgA0EgaiQAIABBBEcLMAEBfyMAQSBrIgMkACADQQhqIAAgASACQQEQzAEgAygCCCEAIANBIGokACAAQQRHCy4BAX8CQCAAKAIAIgBBf0YNACAAIAAoAgQiAUEBazYCBCABQQFHDQAgABCaAgsLLgEBfyMAQRBrIgAkACAAQQhqIgIgAUGwl8AAEJ8LIAIQ+QYhASAAQRBqJAAgAQstAQF/IwBBMGsiAiQAIAJBDGogACABQQEQSCACLQAYIQAgAkEwaiQAIABBAEcLRQEBf0GR+8MALQAAGkEQQQQQggwiAEUEQEEEQRBB0IHEACgCACIAQZcHIAAbEQAAAAsgAEIANwIAIABBCGpCADcCACAACy4BAX8jAEEQayIAJAAgAEEIaiICIAFB4NbAABCfCyACEPkGIQEgAEEQaiQAIAELNQEBfyAAQQA2AgggACABKAIYNgIMIAAgASgCCCICNgIAIAAgAiABQRBqKAIAQegCbGo2AgQLNQEBfyAAQQA2AgggACABKAIYNgIMIAAgASgCCCICNgIAIAAgAiABQRBqKAIAQagBbGo2AgQLLQEBfyMAQTBrIgIkACACQQxqIAAgAUEBEE0gAi0AGCEAIAJBMGokACAAQQBHC8kDAgJ9A38CQCAAKgIAIgEgAVsgACoCBCICIAJbcUUEQCACIAGSIQEMAQsgAbwiA0GAgID8A0YEQCACEL4EIQEMAQsgA0EedkECcSIFIAK8IgRBH3ZyIQACQAJAAkACQAJAAkAgBEH/////B3EiBEUEQEPbD0nAIQEgAA4DAQECBgsgA0H/////B3EiA0UNAiADQYCAgPwHRw0DIARBgICA/AdHDQRD5MsWwCEBIABBA0YNBSAAQQJ0Qfj6wwBqKgIAIQEMBgsgAiEBDAULQ9sPSUAhAQwEC0PbD8k/IAKYIQEMAwsgBEGAgID8B0cgA0GAgIDoAGogBE9xRQRAQ9sPyT8gApghAQwDCwJ9IAUEQEMAAAAAIARBgICA6ABqIANJDQEaCyACIAGVixC+BAshAQJAAkACQCAADgMEAQIACyABQy69uzOSQ9sPScCSIQEMBAsgAYwhAQwDC0PbD0lAIAFDLr27M5KTIQEMAgtD2w9JwCEBIABBA0YNACAAQQJ0QYT7wwBqKgIAIQELCyABQwAAAABgRQRAQbTswgBBKEHE7cIAEKoKAAtD2w/JPyABkyICIAIgASABkiIBIAEgAl4bIAEgAVwbCzMAIAAgASgCFCACQQAgAUEYaigCACgCDBEFADoACCAAIAE2AgQgAEEBOgAJIABBADYCAAtAAQF/IAAoAgAhAQJAIAAtAAQNAEHkgcQAKAIAQf////8HcUUNAEG0hcQAKAIARQ0AIAFBAToAAQsgAUEAOgAACy8AAkAgAARAIAAoAgANASAAQoCAgIAQNwIAIABBCGogATgCAA8LEPgMAAsQ+QwACygAAkAgAARAIAAoAgBBf0YNASAAQQxqKAIAQQJHDwsQ+AwACxD5DAALKwACQCAABEAgACgCAA0BIABBADYCACAAQQxqQQI2AgAPCxD4DAALEPkMAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBNGogATgCAA8LEPgMAAsQ+QwACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEE4aiABOAIADwsQ+AwACxD5DAALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqQQI2AgAPCxD4DAALEPkMAAsoAAJAIAAEQCAAKAIAQX9GDQEgAEEgaigCAEECRw8LEPgMAAsQ+QwACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEE0aiABNgIADwsQ+AwACxD5DAALKwACQCAABEAgACgCAA0BIABBADYCACAAQThqIAE2AgAPCxD4DAALEPkMAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBCGogATgCAA8LEPgMAAsQ+QwACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEQaiABOAIADwsQ+AwACxD5DAALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqIAE4AgAPCxD4DAALEPkMAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBKGogATgCAA8LEPgMAAsQ+QwACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEsaiABNgIADwsQ+AwACxD5DAALKwACQCAABEAgACgCAA0BIABBADYCACAAQTBqIAE2AgAPCxD4DAALEPkMAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBDGogATgCAA8LEPgMAAsQ+QwACzEBAX8gACABNgIMIABBADYCCCAAIAEoAhwiAjYCACAAIAIgAUEkaigCAEEUbGo2AgQLLAEBfyMAQSBrIgIkACACQQRqIAAgARDyAiACLQAQIQAgAkEgaiQAIABBAEcLLQECfSAAKgIMIAAqAgAiASAAKgIEIgIgASACXxsiASAAKgIIIgIgASACXxuSCzABAX0gACACKgIIIAEqAgAiA5Q4AgggACADIAIqAgSUOAIEIAAgAyACKgIAlDgCAAsuACAAIAEpAmA3AgAgAEEQaiABQfAAaikCADcCACAAQQhqIAFB6ABqKQIANwIACywAIAAgASkCGDcCACAAQRBqIAFBKGopAgA3AgAgAEEIaiABQSBqKQIANwIACywAIAAgASkCADcCACAAQRBqIAFBEGopAgA3AgAgAEEIaiABQQhqKQIANwIACy0AIAAgASkCNDcCACAAQRBqIAFBxABqKQIANwIAIABBCGogAUE8aikCADcCAAsvAQF9IAAgASoCACICIAKUIAEqAgQiAiAClJIQmwE4AgwgAEEANgIIIABCADcCAAswACABKAIUIAJBCyABQRhqKAIAKAIMEQUAIQIgAEEAOgAFIAAgAjoABCAAIAE2AgALNQEBfyABKAIUQdzawwBBASABQRhqKAIAKAIMEQUAIQIgAEEAOgAFIAAgAjoABCAAIAE2AgALUwEBfyMAQRBrIgMkACADIAI2AgwgAyABNgIIIAMgADYCBCMAQRBrIgAkACAAIANBBGoiASkCADcCCCAAQQhqQZiUwABBACABKAIIQQFBABDBBgALJQACQCAABEAgACgCAEF/Rg0BIABBPGotAAAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEE0aioCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQThqKgIADwsQ+AwACxD5DAALJgACQCAABEAgACgCAEF/Rg0BIABBzABqLQAADwsQ+AwACxD5DAALJgACQCAABEAgACgCAEF/Rg0BIABB2ABqKAIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBQGsqAgAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEoaioCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQSxqKwIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBNGooAgAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEE4aigCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQQxqKAIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBQGsoAgAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEIaioCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQRBqKgIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBLGooAgAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEwaigCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQRxqKAIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBEGotAAAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEcaisCAA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQRhqLQAADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBDGoqAgAPCxD4DAALEPkMAAsoAAJAIAAEQCAAKAIADQEgAEEANgIAIAAgATgCBA8LEPgMAAsQ+QwACyUAAkAgAARAIAAoAgBBf0YNASAAQQxqKwIADwsQ+AwACxD5DAALJQACQCAABEAgACgCAEF/Rg0BIABBIGoqAgAPCxD4DAALEPkMAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEwaioCAA8LEPgMAAsQ+QwAC1MBAX8jAEEQayIDJAAgAyACNgIMIAMgATYCCCADIAA2AgQjAEEQayIAJAAgACADQQRqIgEpAgA3AgggAEEIakGA0MAAQQAgASgCCEEBQQAQwQYAC1YBAX8jAEEQayIBJAAgASAANgIMIAFBGzYCCCABQdCSwgA2AgQjAEEQayIAJAAgACABQQRqIgEpAgA3AgggAEEIakGwi8IAQQAgASgCCEEBQQAQwQYACysAIAAqAgAgASoCAJQgACoCBCABKgIElJIgACoCCCABKgIIlJJDAAAAAF8LKAEBfyMAQRBrIgIkACACIAAgAUEBEKsCIAItAAwhACACQRBqJAAgAAsnAQJ9IAAqAgAiASAAKgIEIgIgASACXxsiASAAKgIIIgIgASACXxsLHwACQCAABEAgACgCAA0BIAAQmgIPCxD4DAALEPkMAAsiAAJAIAAEQCAAKAIAQX9GDQEgACsCBA8LEPgMAAsQ+QwACyIAAkAgAARAIAAoAgBBf0YNASAAKAIEDwsQ+AwACxD5DAALIgACQCAABEAgACgCAEF/Rg0BIAAqAgQPCxD4DAALEPkMAAs7AQF/QZH7wwAtAAAaQQRBBBCCDCIARQRAQQRBBEHQgcQAKAIAIgBBlwcgABsRAAAACyAAQQA2AgAgAAshAQF/AkAgACgCBCIBRQ0AIABBCGooAgBFDQAgARCaAgsLJQAgAEUEQEHovMAAQTIQ9wwACyAAIAIgAyAEIAUgASgCEBEhAAs2ACABKAIUIAAoAgAtAABBAnQiAEGgisIAaigCACAAQZCKwgBqKAIAIAFBGGooAgAoAgwRBQALHwAgAUEDTwRAQcCFwQBBGyACELsLAAsgACABQQJ0agslACAAIAIgASgCSCABQdAAaigCACABKAJUIAFB3ABqKAIAEOwBCyIBAn4gACkDACICQj+HIQMgAiADhSADfSACQgBZIAEQ2QQLIwAgAEUEQEHovMAAQTIQ9wwACyAAIAIgAyAEIAEoAhARAgALIwAgAEUEQEHovMAAQTIQ9wwACyAAIAIgAyAEIAEoAhAREwALJAAgAEUEQEHovMAAQTIQ9wwACyAAIAIgAyAEIAEoAhARlQEACyQAIABFBEBB6LzAAEEyEPcMAAsgACACIAMgBCABKAIQEZcBAAsjACAARQRAQei8wABBMhD3DAALIAAgAiADIAQgASgCEBEaAAshACAARQRAQei8wABBMhD3DAALIAAgAiADIAEoAhARAQALJAAgAC0AAEUEQCABQYTgwwBBBRDUAQ8LIAFBieDDAEEEENQBCx0AIAEoAgBFBEAACyAAQYyxwAA2AgQgACABNgIACx8AIABFBEBB6LzAAEEyEPcMAAsgACACIAEoAhARAwALHQAgASgCAEUEQAALIABBtJPBADYCBCAAIAE2AgALHQAgASgCAEUEQAALIABBvJbCADYCBCAAIAE2AgALEgAgACgCBARAIAAoAgAQmgILCzQAIABC////9//////+ADcCCCAAQv////f/////fjcCACAAQRBqQv////f3/////gA3AgALNAAgAEL////3//////4ANwIIIABC////9/////9+NwIAIABBEGpC////9/f////+ADcCAAs0ACAAQv////f//////gA3AgggAEL////3/////343AgAgAEEQakL////39/////4ANwIACxkAIAAoAgAiACgCACAAQQRqKAIAIAEQ4gELGgAgAEEANgIIIABCADcCACAAIAEqAgA4AgwLHQAgAEGM2MIANgIEIAAgATYCACAAIAEqAhg4AggLHQAgAEGE1cIANgIEIAAgATYCACAAIAEqAgw4AggLHQAgAEHM2MIANgIEIAAgATYCACAAIAEqAiQ4AggLHQAgAEHI6cIANgIEIAAgATYCACAAIAEqAgg4AggLHQAgAEHw7cIANgIEIAAgATYCACAAIAEqAgg4AggLHQAgAEHM5sIANgIEIAAgATYCACAAIAEqAmA4AggLGgAgAEEANgIIIABB2JfAADYCBCAAIAE2AgALGgAgAEEANgIIIABBvJrAADYCBCAAIAE2AgALGAAgACgCACABKAIAIAIoAgAgAygCABAKCxoAIABBADYCCCAAQZj6wAA2AgQgACABNgIACxoAIABBADYCCCAAQYTVwgA2AgQgACABNgIAC74EAg19Bn8gASoCGCEEIwBBQGoiECQAIAFBDGoiESoCACIIIAEqAgAiCZMiAyADlCARKgIEIgogASoCBCILkyIDIAOUkiARQQhqIhMqAgAiDCABQQhqIhQqAgAiDZMiAyADlJIQmwEhAyAQQShqIhJBCGoiFSAUKAIANgIAIBJBFGogEygCADYCACAQIBEpAgA3AjQgEEEIaiIRQQhqIBUpAwA3AwAgEUEQaiASQRBqKQMANwMAIBAgASkCADcDCCAQIAQ4AiAgACAREIoEIANDAAAAP5QiAyAElCAElEPbD0lAlCIGIAaSIQYgBCAElCIFIAWSQwAAoECVIARD2w9JQJQgBJQgBJRDAACAQJRDAABAQJUiB5QiDiAFQwAAQECUIAMgA5RDAACAQJSSQwAAQEGVIAaUkiAClCAHIAMgA5IiAyADlEMAAIA+lCADIASUQwAAQECUQwAAAD6UkpQgApSSIg8QmwEhBCAOIAVDAAAAP5QgBpSSIAKUEJsBIQMgDxCbASEFIABDAAAAAEMAAIA/IASVIARDAAAA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8OHDADYCMCAFQQI2AkwgBSAANgI4IAUgBUEYajYCYCAFIAVBEGo2AlggBSAFQQxqNgJQIAUgBUEIajYCSCABIAQQ3AoACyADIAdBxOPDABDlCAALQY3WwwBBKyAEEKoKAAsgACABIAMgASAEEPgLAAsgACABQQAgBiAEEPgLAAsgACAAQuTex4WQ0IXefTcDCCAAQsH3+ejMk7LRQTcDAAsgACAAQr///bHCvMXDbDcDCCAAQqWSyKytwtOTBDcDAAshACAAQp2076Wh6IWStn83AwggAEKs/M2M2ITwrFE3AwALEwAgAEGslMAANgIEIAAgATYCAAsTACAAQbyUwAA2AgQgACABNgIACxMAIABBvJfAADYCBCAAIAE2AgALEAAgAEEBNgIAIAAgATYCBAsTACAAQaCawAA2AgQgACABNgIACxAAIABBBDYCACAAIAE2AgQLGgACfyABQQlPBEAgASAAEJ8EDAELIAAQOgsLFgBBmPvDACAANgIAQZT7wwBBATYCAAsTACAAQZTQwAA2AgQgACABNgIACxMAIABB/PnAADYCBCAAIAE2AgALIQAgAEKWg5SQq5e+sFI3AwggAELKid2Dm7bq+fAANwMACyIAIABCxo/Dyv6VwqiMfzcDCCAAQrCv9qu+6aivnX83AwALIQAgAELZhvfV0s6+sW03AwggAELMp5Cu0YD53dUANwMACyEAIABC7oj9gba/4841NwMIIABCgeWlwZjP9umsfzcDAAsiACAAQuiC043ihfKX2QA3AwggAEKJvO/Y+4nkmK5/NwMACyEAIABC5uiP2+/1t7AcNwMIIABC1L+PtYXw4KPPADcDAAshACAAQsu/vPT3k+e4q383AwggAELJ6/CNgJ/uo303AwALIQAgAEK94/Gmr8bs+z03AwggAEKL7saC4P/Bg4R/NwMACyIAIABCtO26q6unmfPLADcDCCAAQqObv7/Btp+HywA3AwALIQAgAELBzef45vCEoRg3AwggAEK1vYK6y7q96vsANwMACyEAIABChNHSirvkjM7LADcDCCAAQu/Cy+3Lto2+WjcDAAshACAAQsKmqN/fs87VxgA3AwggAEL5yKaVsqD59wo3AwALIAAgAELy4qm04KmkxAQ3AwggAEL0pIKy7KjDqX03AwALIgAgAEKLlZLKhbvNvP8ANwMIIABCj6CK4/aL2Jv4ADcDAAsgACAAQrOcxqm67svAXTcDCCAAQoGesbKYo7PtdjcDAAsiACAAQpX3zciLrPn5/QA3AwggAEK0xei60LqLxK5/NwMACyEAIABClsa87dLPvspBNwMIIABC07vD9LGD7pDTADcDAAsiACAAQriDyOLMibnWkH83AwggAELMqe2zqZDim+wANwMACyAAIABCxpmWruPNu/M5NwMIIABChdqn8drxkeIYNwMACyIAIABCqZv3yYLkhYbHADcDCCAAQpv9hczKhL3nywA3AwALIAAgAELD36bysP+IoCA3AwggAEK65aKq6Lvo2G83AwALEwAgAEHEi8IANgIEIAAgATYCAAsTACAAQdSLwgA2AgQgACABNgIACxMAIABB5IvCADYCBCAAIAE2AgALEwAgAEH0i8IANgIEIAAgATYCAAsTACAAQYSMwgA2AgQgACABNgIACxMAIABBlIzCADYCBCAAIAE2AgALEwAgAEGkjMIANgIEIAAgATYCAAsTACAAQbSMwgA2AgQgACABNgIACxMAIABBxIzCADYCBCAAIAE2AgALEwAgAEHUjMIANgIEIAAgATYCAAsTACAAQeSMwgA2AgQgACABNgIACxMAIABB9IzCADYCBCAAIAE2AgALEwAgAEGEjcIANgIEIAAgATYCAAsTACAAQZSNwgA2AgQgACABNgIACxMAIABBpI3CADYCBCAAIAE2AgALEwAgAEG0jcIANgIEIAAgATYCAAsTACAAQcSNwgA2AgQgACABNgIACxMAIABB1I3CADYCBCAAIAE2AgALEwAgAEHkjcIANgIEIAAgATYCAAsTACAAQfSNwgA2AgQgACABNgIACxMAIABBhI7CADYCBCAAIAE2AgALEwAgAEGUjsIANgIEIAAgATYCAAsTACAAQaSOwgA2AgQgACABNgIACxAAIABBAzYCACAAIAE2AgQLEAAgAEECNgIAIAAgATYCBAsQACAAQQA2AgAgACABNgIECw4AIAAgAUEYaiACENcCCxMAIABBkNLCADYCBCAAIAE2AgALEwAgAEHo1MIANgIEIAAgATYCAAsTACAAQfDXwgA2AgQgACABNgIACxMAIABBsNjCADYCBCAAIAE2AgALEwAgAEHw2MIANgIEIAAgATYCAAsPACAAIAFB4ABqIAIQ1wILEAAgAEEJNgIAIAAgATYCBAsTACAAQdTbwgA2AgQgACABNgIACxAAIABBBjYCACAAIAE2AgQLEwAgAEGw3sIANgIEIAAgATYCAAsQACAAQQU2AgAgACABNgIECxMAIABBjOHCADYCBCAAIAE2AgALDgAgACABQTRqIAIQ1wILEAAgAEEINgIAIAAgATYCBAsQACAAQQo2AgAgACABNgIECxMAIABBsObCADYCBCAAIAE2AgALEQAgACABKgIAIAEqAgQQ5QYLEAAgAEELNgIAIAAgATYCBAsTACAAQazpwgA2AgQgACABNgIACxEAIAAgASoCACABKgIEEMIDCxAAIABBDDYCACAAIAE2AgQLEwAgAEHU7cIANgIEIAAgATYCAAsZACAAQoCAgIDw//+//wA3AgggAEIANwIACxAAIABBBzYCACAAIAE2AgQLEAAgAEENNgIAIAAgATYCBAsTACAAQdCuwwA2AgQgACABNgIACxAAIABBDjYCACAAIAE2AgQLEwAgAEHsrsMANgIEIAAgATYCAAsQACAAQQ82AgAgACABNgIECxMAIABBiK/DADYCBCAAIAE2AgALEAAgAEEQNgIAIAAgATYCBAsTACAAQaSvwwA2AgQgACABNgIACxAAIABBETYCACAAIAE2AgQLEwAgAEHAr8MANgIEIAAgATYCAAsRACAAKAIAIAAoAgQgARDiAQsfACABKAIUIAAoAgAgACgCBCABQRhqKAIAKAIMEQUACyEAIABC2N797/ftoNaKfzcDCCAAQq/D14rE8PndNjcDAAsgACAAQsWAsKa9qOHJSzcDCCAAQpXM9oWR7LDtHzcDAAsTACAAQai8wwA2AgQgACABNgIACxEAIAEgACgCACAAKAIEENQBCwwAIAAgASACIAMQVQsMACAAIAEgAiADEGwLDAAgACABIAIgAxBSCwwAIAAgASACIAMQVgsNACAAIAEgAiADEIQBCw0AIAAgASACIAMQrwELDQAgACABIAIgAxCMAwsNACAAIAEgAiADEL8BCw0AIAAgASACIAMQvAELDQAgACABIAIgAxDtAgvKAwIEfQF/IwBBEGsiASQAAkACQAJAAkACQAJAAkAgAg4DAAECAwtDAABAQBCbASEFIABBATYCACAAQQxqQwAAgL9DAACAPyADQQRxGyAFlTgCACAAQQhqQwAAgL9DAACAPyAD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aiICQYABSw0CIAFBAUG/3cMAQQIgACADakGAAWpBACAAaxCNAgshACADQYABaiQADAILIAJBgAFB3N3DABDiCAALIAJBgAFB3N3DABDiCAALIAALCwAgACMAaiQAIwALHAAgASgCFEH8gsAAQREgAUEYaigCACgCDBEFAAscACABKAIUQcyxwABBFCABQRhqKAIAKAIMEQUACxwAIAEoAhRB8LHAAEEUIAFBGGooAgAoAgwRBQALDAAgACgCACABENELCw4AIABBzJTAACABELICCxwAIAEoAhRB4JbAAEEFIAFBGGooAgAoAgwRBQALCQAgACABEBQACw0AQZy+wABBGxD3DAALDgBBt77AAEHPABD3DAALDAAgACgCACABEOYICw4AIAFBpNDAAEECENQBCwsAIAAgASACELkBCwsAIAAgASACENcCC40CAgN/Bn0jAEEgayIDJAAgA0EANgIQIANCgICA/AM3AgggA0EUaiIEIAEgAiADQQhqIgUQjwQgA0GAgID8ezYCCCADKgIUIQYgBCABIAIgBRCPBCADQoCAgICAgIDAPzcCCCADKgIUIQcgBCABIAIgBRCPBCADQYCAgPx7NgIMIAMqAhghCCAEIAEgAiAFEI8EIANCgICAgICAgMA/NwIMIAMqAhghCSAEIAEgAiAFEI8EIANBgICA/Hs2AhAgAyoCHCEKIAQgASACIAUQjwQgAyoCHCELIABBFGogCjgCACAAQRBqIAg4AgAgACAGOAIMIAAgCzgCCCAAIAk4AgQgACAHOAIAIANBIGokAAuNAgIDfwZ9IwBBIGsiAyQAIANBADYCECADQoCAgPwDNwIIIANBFGoiBCABIAIgA0EIaiIFELQDIANBgICA/Hs2AgggAyoCFCEGIAQgASACIAUQtAMgA0KAgICAgICAwD83AgggAyoCFCEHIAQgASACIAUQtAMgA0GAgID8ezYCDCADKgIYIQggBCABIAIgBRC0AyADQoCAgICAgIDAPzcCDCADKgIYIQkgBCABIAIgBRC0AyADQYCAgPx7NgIQIAMqAhwhCiAEIAEgAiAFELQDIAMqAhwhCyAAQRRqIAo4AgAgAEEQaiAIOAIAIAAgBjgCDCAAIAs4AgggACAJOAIEIAAgBzgCACADQSBqJAALCwAgAiAAIAEQuQELDQAgACoCJEMAAAAAkgsO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cwDIARAAHwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuOC9zcmMvd2FrZXIucnMAAPABEABqAAAAaAAAACsAAABjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlAPABEABqAAAAAwEAACsAAADwARAAagAAAN4AAAAvAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Nyb3NzYmVhbS1jaGFubmVsLTAuNS44L3NyYy9jaGFubmVsLnJzuAIQAGwAAAD/AgAAFQAAALgCEABsAAAABwMAABUAAAALAAAACAAAAAQAAAAMAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Nyb3NzYmVhbS1jaGFubmVsLTAuNS44L3NyYy9mbGF2b3JzL3plcm8ucnMAAABUAxAAcQAAAGYBAAArAAAAY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZQBUAxAAcQAAAMAAAAA2AAAAVAMQAHEAAAC5AAAANgAAAFQDEABxAAAAFgEAACsAAAB2YXJpYW50IGluZGV4IDAgPD0gaSA8IDI0BBAAGAAAAHZhcmlhbnQgaW5kZXggMCA8PSBpIDwgMTkAAABUBBAAGQAAAHN0cnVjdCBHcmFwaCB3aXRoIDIgZWxlbWVudHN4BBAAHAAAAHN0cnVjdCBMVSB3aXRoIDIgZWxlbWVudHMAAACcBBAAGQAAAHN0cnVjdCBSaWdpZEJvZHlTZXQgd2l0aCAyIGVsZW1lbnRzAMAEEAAjAAAAc3RydWN0IElzbGFuZE1hbmFnZXIgd2l0aCA1IGVsZW1lbnRz7AQQACQAAABzdHJ1Y3QgQ29udmV4UG9seWhlZHJvbiB3aXRoIDggZWxlbWVudHMAGAUQACcAAABzdHJ1Y3QgQ29udGFjdE1hbmlmb2xkRGF0YSB3aXRoIDcgZWxlbWVudHMAAEgFEAAqAAAAc3RydWN0IEdlbmVyaWNUcmlNZXNoIHdpdGggNyBlbGVtZW50cwAAAHwFEAAlAAAAdmFyaWFudCBpbmRleCAwIDw9IGkgPCAzrAUQABgAAAB2YXJpYW50IGluZGV4IDAgPD0gaSA8IDTMBRAAGAAAAHN0cnVjdCBUcmlNZXNoQ29ubmVjdGVkQ29tcG9uZW50cyB3aXRoIDMgZWxlbWVudHMAAADsBRAAMQAAAHN0cnVjdCBHZW5lcmljSGVpZ2h0RmllbGQgd2l0aCA1IGVsZW1lbnRzAAAAKAYQACkAAABzdHJ1Y3QgTXVsdGlib2R5IHdpdGggMTYgZWxlbWVudHMAAABcBhAAIQAAAHN0cnVjdCBTQVBSZWdpb24gd2l0aCA3IGVsZW1lbnRziAYQACAAAABzdHJ1Y3QgSW1wdWxzZUpvaW50IHdpdGggNSBlbGVtZW50cwCwBhAAIwAAAHN0cnVjdCBJbnRlcm5hbEVkZ2VzRml4ZXIgd2l0aCAyIGVsZW1lbnRzAAAA3AYQACkAAABzdHJ1Y3QgR2VuZXJpY1Fidmggd2l0aCA1IGVsZW1lbnRzAAAQBxAAIgAAAHN0cnVjdCBNdWx0aWJvZHlKb2ludCB3aXRoIDMgZWxlbWVudHMAAAA8BxAAJQAAAHN0cnVjdCBJbXB1bHNlSm9pbnRTZXQgd2l0aCA0IGVsZW1lbnRzAABsBxAAJgAAAHN0cnVjdCBNdWx0aWJvZHlKb2ludFNldCB3aXRoIDQgZWxlbWVudHOcBxAAKAAAAHN0cnVjdCBNdWx0aWJvZHlXb3Jrc3BhY2Ugd2l0aCAyIGVsZW1lbnRzAAAAzAcQACkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3V0aWxzL2FycmF5LnJzAAAIEABnAAAASgAAAA0AAAB2YXJpYW50IGluZGV4IDAgPD0gaSA8IDZ4CBAAGAAAAHN0cnVjdCBUcmlNZXNoU2hhcGVDb250YWN0TWFuaWZvbGRzV29ya3NwYWNlIHdpdGggNCBlbGVtZW50c5gIEAA8AAAAc3RydWN0IEhlaWdodEZpZWxkU2hhcGVDb250YWN0TWFuaWZvbGRzV29ya3NwYWNlIHdpdGggMyBlbGVtZW50c9wIEABAAAAAc3RydWN0IEhlaWdodEZpZWxkQ29tcG9zaXRlU2hhcGVDb250YWN0TWFuaWZvbGRzV29ya3NwYWNlIHdpdGggMyBlbGVtZW50cwAAACQJEABJAAAAY2Fubm90IHJlY3Vyc2l2ZWx5IGFjcXVpcmUgbXV0ZXh4CRAAIAAAAC9ydXN0Yy84MmUxNjA4ZGZhNmUwYjU1NjkyMzI1NTllM2QzODVmZWE1YTkzMTEyL2xpYnJhcnkvc3RkL3NyYy9zeXMvd2FzbS8uLi91bnN1cHBvcnRlZC9sb2Nrcy9tdXRleC5ycwAAoAkQAGYAAAAUAAAACQAAAAcAAAAIAAAABAAAAA0AAAAOAAAABwAAACQAAAAEAAAADwAAAAcAAAAMAAAABAAAABAAAAARAAAADAAAAAQAAAASAAAAEwAAABQAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5AAQAAAAAAAAAAQAAABUAAAAvcnVzdGMvODJlMTYwOGRmYTZlMGI1NTY5MjMyNTU5ZTNkMzg1ZmVhNWE5MzExMi9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMArAoQAEsAAAAzCgAADgAAAGNhbm5vdCB0cmFuc211dGVfY29weSBpZiBEc3QgaXMgbGFyZ2VyIHRoYW4gU3JjAAgLEAAvAAAABwAAAAQAAAAEAAAAFgAAAAcAAAAEAAAABAAAABcAAABFcnJvcmludmFsaWQgdmFsdWU6ICwgZXhwZWN0ZWQgAGULEAAPAAAAdAsQAAsAAABpbnZhbGlkIGxlbmd0aCAAkAsQAA8AAAB0CxAACwAAAFBvaXNvbkVycm9yAAcAAAAMAAAABAAAABgAAAAZAAAAGgAAABsAAAAHAAAADAAAAAQAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3BhcnRpdGlvbmluZy9xYnZoL3RyYXZlcnNhbC5ycwD8CxAAdwAAAE0AAAAjAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9zaGFwZS90cmltZXNoLnJzAAAAhAwQAGkAAADvAwAAHgAAAIQMEABpAAAA8AMAAB4AAACEDBAAaQAAAPEDAAAeAAAABwAAACQAAAAEAAAAHgAAAB8AAAAgAAAAIQAAAAcAAAAkAAAABAAAAB4AAAAfAAAAIAAAACEAAAAiAAAAHQAAAP//////////L1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2luZGV4bWFwLTEuOS4zL3NyYy9tYXAvY29yZS5yc2gNEABkAAAAKgAAACMAAABoDRAAZAAAACIAAAAPAAAATWF0cml4IGluaXQuIGVycm9yOiB0aGUgc2xpY2UgZGlkIG5vdCBjb250YWluIHRoZSByaWdodCBudW1iZXIgb2YgZWxlbWVudHMuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9jb25zdHJ1Y3Rpb24ucnMAAAA3DhAAbgAAAGsAAAAJAAAATWF0cml4IGluZGV4IG91dCBvZiBib3VuZHMuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvZGF0YS9hcmVuYS5ycwAA0w4QAGcAAAAKAQAAKAAAAGNvcnJ1cHQgZnJlZSBsaXN0AAAATA8QABEAAADTDhAAZwAAAAsBAAArAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvZGF0YS9ncmFwaC5yc2Fzc2VydGlvbiBmYWlsZWQ6IHNlbGYuZWRnZXMubGVuKCkgIT0gY3JhdGU6OklOVkFMSURfVVNJWkUAAAB4DxAAZwAAANwAAAAJAAAAR3JhcGg6OmFkZF9lZGdlOiBub2RlIGluZGljZXMgb3V0IG9mIGJvdW5kcwAsEBAAKwAAAHgPEABnAAAA5AAAABsAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLm5vZGVzLmxlbigpICE9IGNyYXRlOjpJTlZBTElEX1VTSVpFAAB4DxAAZwAAALMAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvZGF0YS9jb2FyZW5hLnJzAAAAvBAQAGkAAABdAAAAIgAAALwQEABpAAAATgAAABIAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9qb2ludC9pbXB1bHNlX2pvaW50L2ltcHVsc2Vfam9pbnRfc2V0LnJzAEgREACLAAAADQEAABcAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9qb2ludC9tdWx0aWJvZHlfam9pbnQvbXVsdGlib2R5X2pvaW50X3NldC5ycwDkERAAjwAAAH0AAAArAAAA5BEQAI8AAAB+AAAARgAAAOQREACPAAAAqAAAAD4AAADkERAAjwAAAKkAAAAvAAAA5BEQAI8AAACsAAAAQgAAAFBhcmVudCByaWdpZCBib2R5IG5vdCBmb3VuZC4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9nZW9tZXRyeS9jb2xsaWRlcl9zZXQucnMAAOASEAByAAAAeQAAAA4AAADgEhAAcgAAAH0AAAA1AAAA4BIQAHIA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AAAGAAAABgAAAAYAAAACAAAAAQAAAEludmFsaWQgc2l6ZSA6IHNpemVzIG11c3QgZml0IGluIGEgdXNpemUgKDAgdG8gKRweEAANAAAAKR4QACIAAABLHhAAAQAAAP////9jbG9zdXJlIGludm9rZWQgcmVjdXJzaXZlbHkgb3IgYWZ0ZXIgYmVpbmcgZHJvcHBlZAAAhgAAAAQAAAAEAAAAhwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9qcy1zeXMtMC4zLjY0L3NyYy9saWIucnMAAKweEABeAAAAChgAAAEAAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0Y2FwYWNpdHkgb3ZlcmZsb3cAVGhlIGxvb3NlbmluZyBtYXJnaW4gbXVzdCBiZSBwb3NpdGl2ZS4AAJgfEAAmAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9ib3VuZGluZ192b2x1bWUvYWFiYi5yc8gfEABwAAAAJAIAAAkAAABJbmRleCBvdXQgb2YgYm91bmRzAEggEAATAAAAQWxsb2NhdGlvbiBmcm9tIGl0ZXJhdG9yIGVycm9yOiB0aGUgaXRlcmF0b3IgZGlkIG5vdCB5aWVsZCB0aGUgY29ycmVjdCBudW1iZXIgb2YgZWxlbWVudHMuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9kZWZhdWx0X2FsbG9jYXRvci5ycwAAAL4gEABzAAAAfAAAAAkAAAAAAAAAjQAAAAAAAAABAAAAjgAAAI8AAACQAAAAkQAAAJIAAACTAAAAlAAAAJUAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9kZWZhdWx0X3F1ZXJ5X2Rpc3BhdGNoZXIucnMAAACfIRAAegAAANcBAAAxAAAAnyEQAHoAAADqAQAAMQAAAJ8hEAB6AAAAEQIAACcAAACfIRAAegAAAEECAAAvAAAAnyEQAHoAAABQAgAALwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuOC9zcmMvd2FrZXIucnMAAGwiEABqAAAAaAAAACsAAABsIhAAagAAAEYAAAAoAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQBsIhAAagAAANEAAAArAAAAbCIQAGoAAADeAAAALwAAAGwiEABqAAAAxgAAACsAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Nyb3NzYmVhbS1jaGFubmVsLTAuNS44L3NyYy9jaGFubmVsLnJzfCMQAGwAAAC7AQAALQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuOC9zcmMvY29udGV4dC5yc/gjEABsAAAAMwAAAB4AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY3Jvc3NiZWFtLWNoYW5uZWwtMC41Ljgvc3JjL2ZsYXZvcnMvbGlzdC5ycwAAAHQkEABxAAAABQEAAEMAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY3Jvc3NiZWFtLWNoYW5uZWwtMC41Ljgvc3JjL2ZsYXZvcnMvemVyby5ycwAAAPgkEABxAAAA6AAAAC0AAACWAAAACAAAAAQAAACXAAAA+CQQAHEAAADhAAAAKwAAAPgkEABxAAAA/wAAACYAAAD4JBAAcQAAAAEBAABJAAAA+CQQAHEAAAACAQAARwAAAPgkEABxAAAAAQEAACcAAAD4JBAAcQAAAAYBAABJAAAA+CQQAHEAAAAHAQAARwAAAPgkEABxAAAABgEAACcAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY3Jvc3NiZWFtLWNoYW5uZWwtMC41Ljgvc3JjL2ZsYXZvcnMvYXJyYXkucnMAAAwmEAByAAAAdgEAACoAAAAMJhAAcgAAAHgBAAA3AAAATWF0cml4IGluaXQuIGZyb20gaXRlcmF0b3I6IGl0ZXJhdG9yIG5vdCBsb25nIGVub3VnaC4AAAC+IBAAcwAAAEoAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy91dGlscy9hcnJheS5ycwDoJhAAZwAAAEoAAAANAAAAY2Fubm90IHJlY3Vyc2l2ZWx5IGFjcXVpcmUgbXV0ZXhgJxAAIAAAAC9ydXN0Yy84MmUxNjA4ZGZhNmUwYjU1NjkyMzI1NTllM2QzODVmZWE1YTkzMTEyL2xpYnJhcnkvc3RkL3NyYy9zeXMvd2FzbS8uLi91bnN1cHBvcnRlZC9sb2Nrcy9tdXRleC5ycwAAiCcQAGYAAAAUAAAACQAAAJgAAAAIAAAABAAAAJkAAACaAAAAmAAAACQAAAAEAAAAmwAAACgpAEGw0MAAC5tDYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVyb21pbiA+IG1heCwgb3IgZWl0aGVyIHdhcyBOYU4uIG1pbiA9ICwgbWF4ID0gAAAASSgQACQAAABtKBAACAAAAC9ydXN0Yy84MmUx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ACcAAABsLRAAdAAAAIIBAAATAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9wYXJ0aXRpb25pbmcvcWJ2aC90cmF2ZXJzYWwucnMAsC8QAHcAAADaAAAAIwAAALAvEAB3AAAAmgAAACMAAACwLxAAdwAAAE0AAAAjAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jb250YWN0X21hbmlmb2xkcy9pbnRlcm5hbF9lZGdlc19maXhlci5yc1gwEACIAAAAcAAAACoAAABYMBAAiAAAAF8AAAAfAAAAWDAQAIgAAABgAAAAHwAAAFgwEACIAAAAiwAAAE0AAABYMBAAiAAAAIYAAAA4AAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jb250YWN0X21hbmlmb2xkcy9jb250YWN0X21hbmlmb2xkc19oYWxmc3BhY2VfcGZtLnJzADAxEACTAAAAQAAAABQAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2NvbnRhY3RfbWFuaWZvbGRzL2NvbnRhY3RfbWFuaWZvbGRzX3RyaW1lc2hfc2hhcGUucnMA1DEQAJMAAABhAAAAHAAAANQxEACTAAAAYQAAADYAAADUMRAAkwAAALAAAAApAAAA1DEQAJMAAAC2AAAAJgAAAJgAAAAkAAAABAAAAKYAAACnAAAAqAAAAKkAAACqAAAAqwAAAKwAAACtAAAArgAAAK8AAACYAAAAJAAAAAQAAACbAAAAsAAAALEAAACyAAAAswAAAJgAAAAkAAAABAAAAJgAAAAkAAAABAAAAJsAAACwAAAAsQAAALIAAACzAAAA/DIQAPwyEACxAAAAmAAAACQAAAAEAAAAtAAAALUAAAC2AAAAtwAAALgAAAC5AAAApgAAAKcAAACoAAAAqQAAAKoAAACrAAAArAAAAK0AAACuAAAArwAAAKgyEACbAAAAFCgQALAAAACxAAAAsgAAALMAAADcMhAA/DIQAPwyEACxAAAACDMQADcAAAA4AAAAOQAAADoAAAC6AAAAPAAAALsAAAC8AAAAvQAAAL4AAAC/AAAAwAAAAMEAAADCAAAARQAAAMMAAADUMRAAkwAAANAAAAAgAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jb250YWN0X21hbmlmb2xkcy9jb250YWN0X21hbmlmb2xkc19oZWlnaHRmaWVsZF9zaGFwZS5ycwAANBAAlwAAAHcAAAAcAAAAADQQAJcAAAB3AAAANgAAAAA0EACXAAAAiwAAAC0AAAAANBAAlwAAAKIAAAAmAAAAADQQAJcAAADAAAAAMgAAAAA0EACXAAAAwQAAADcAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2NvbnRhY3RfbWFuaWZvbGRzL2NvbnRhY3RfbWFuaWZvbGRzX2NvbXBvc2l0ZV9zaGFwZV9zaGFwZS5ycwD4NBAAmwAAAEoAAAAcAAAA+DQQAJsAAABKAAAANgAAAJgAAAA0AAAABAAAAMQAAADFAAAA+DQQAJsAAABeAAAAMQAAAPg0EACbAAAAewAAACoAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2NvbnRhY3RfbWFuaWZvbGRzL2NvbnRhY3RfbWFuaWZvbGRzX2hlaWdodGZpZWxkX2NvbXBvc2l0ZV9zaGFwZS5ycwAAAOg1EAChAAAAVAAAABwAAADoNRAAoQAAAFQAAAA2AAAA6DUQAKEAAACuAAAAMgAAAOg1EAChAAAArwAAADcAAACYAAAANAAAAAQAAADGAAAAxwAAAOg1EAChAAAAbAAAADUAAADoNRAAoQAAAIkAAAAuAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jb250YWN0X21hbmlmb2xkcy9jb250YWN0X21hbmlmb2xkc19jb21wb3NpdGVfc2hhcGVfY29tcG9zaXRlX3NoYXBlLnJzAAAAADcQAKUAAABJAAAAHAAAAAA3EAClAAAASQAAADYAAACYAAAAOAAAAAQAAADIAAAAyQAAAJgAAAA4AAAABAAAAMoAAADLAAAAADcQAKUAAAB3AAAAOQAAAAA3EAClAAAAlgAAADIAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2VwYS9lcGEzLnJzAAAQOBAAagAAAPAAAAAkAAAAEDgQAGoAAADxAAAAJAAAABA4EABqAAAA8gAAACQAAAAQOBAAagAAAA0BAAAnAAAAEDgQAGoAAAANAQAARAAAABA4EABqAAAAEgEAACcAAAAQOBAAagAAABIBAABEAAAAEDgQAGoAAAAXAQAAJwAAABA4EABqAAAAFwEAAEQAAAAQOBAAagAAABwBAAAnAAAAEDgQAGoAAAAcAQAARAAAABA4EABqAAAAIQEAACgAAAAQOBAAagAAAD0BAAAyAAAAEDgQAGoAAABEAQAAIgAAABA4EABqAAAAXQEAABcAAAAQOBAAagAAAF8BAAAsAAAAEDgQAGoAAABgAQAALAAAABA4EABqAAAAYQEAACwAAAAQOBAAagAAAJcBAAAXAAAAEDgQAGoAAACYAQAAIwAAABA4EABqAAAAbwEAAB8AAAAQOBAAagAAAIMBAAA6AAAAEDgQAGoAAACDAQAALwAAABA4EABqAAAAWAEAACwAAAAQOBAAagAAAKMBAAAkAAAAYXNzZXJ0aW9uIGZhaWxlZDogbWluX2JvdW5kID09IG1pbl9ib3VuZC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvZ2prL2dqay5ycwAAADQ6EABpAAAAjAAAAAkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3NoYXBlL2hlaWdodGZpZWxkMy5ycwAAsDoQAG4AAADZAAAAEQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvc2hhcGUvcG9seWdvbmFsX2ZlYXR1cmUzZC5ycwAAADA7EAB1AAAAvgAAABYAAAAAAAAAMDsQAHUAAAAZAQAAHgAAADA7EAB1AAAAGwEAADoAAAAwOxAAdQAAAEUBAAAeAAAAMDsQAHUAAABHAQAAOgAAADA7EAB1AAAAbgEAABEAAAAwOxAAdQAAAG8BAAARAAAAMDsQAHUAAAB0AQAAFQAAADA7EAB1AAAAdQEAABUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3NoYXBlL3RyaW1lc2gucnMAAAA8PBAAaQAAABwEAAAfAAAAPDwQAGkAAAAeBAAAGgAAADw8EABpAAAAHwQAABoAAAA8PBAAaQAAACAEAAAaAAAAaW5kZXggb3V0IG9mIGJvdW5kcwCYAAAAJAAAAAQAAADMAAAAzQAAAM4AAADPAAAAmAAAACQAAAAEAAAAzAAAAM0AAADOAAAAzwAAACIAAADQAAAAAAAAAP//////////L1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2luZGV4bWFwLTEuOS4zL3NyYy9tYXAvY29yZS5yc0g9EABkAAAAKgAAACMAAABIPRAAZAAAAKsCAAAeAAAASD0QAGQAAADQAQAAHgAAAGluZGV4IG5vdCBmb3VuZABIPRAAZAAAADcAAAAKAAAAYXNzZXJ0aW9uIGZhaWxlZDogaW5kaWNlcy5jYXBhY2l0eSgpIC0gaW5kaWNlcy5sZW4oKSA+PSBlbnRyaWVzLmxlbigpL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2luZGV4bWFwLTEuOS4zL3NyYy9tYXAvY29yZS9yYXcucnMAAABBPhAAaAAAABAAAAAFAAAAQT4QAGgAAACDAAAAGgAAAEg9EABkAAAAIgAAAA8AAABnZW1tOiBkaW1lbnNpb25zIG1pc21hdGNoIGZvciBhZGRpdGlvbi4A3D4QACcAAABHZW12OiBkaW1lbnNpb25zIG1pc21hdGNoLk1hdHJpeCBzbGljaW5nIG91dCBvZiBib3VuZHMuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9tYXRyaXhfdmlldy5yc0M/EABtAAAAFgEAAAkAAABDPxAAbQAAABoBAAAJAAAAUm93cyByYW5nZSBwYWlyOiB0aGUgcmFuZ2VzIG11c3Qgbm90IG92ZXJsYXAuAAAAQz8QAG0AAAASAwAABQAAAFJvd3MgcmFuZ2UgcGFpcjogaW5kZXggb3V0IG9mIHJhbmdlLkRhdGEgc3RvcmFnZSBidWZmZXIgZGltZW5zaW9uIG1pc21hdGNoLi9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9uYWxnZWJyYS0wLjMyLjMvc3JjL2Jhc2UvdmVjX3N0b3JhZ2UucnNbQBAAbQAAAFQAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9jb25zdHJ1Y3Rpb24ucnMAANhAEABuAAAAYAQAAAwAAABDb21wb25lbnR3aXNlIG11bC9kaXY6IG1pc21hdGNoZWQgbWF0cml4IGRpbWVuc2lvbnMuWEEQADQAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbmFsZ2VicmEtMC4zMi4zL3NyYy9iYXNlL2NvbXBvbmVudHdpc2UucnMAlEEQAG8AAACWAAAABQAAAE1hdHJpeCB2aWV3OiBpbnB1dCBkYXRhIGJ1ZmZlciB0b28gc21hbGwuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9jb25zdHJ1Y3Rpb25fdmlldy5ycz1CEABzAAAAMAAAAAkAAABNYXRyaXggaW5kZXggb3V0IG9mIGJvdW5kcy5NYXRyaXggYWRkaXRpb24vc3VidHJhY3Rpb24gZGltZW5zaW9ucyBtaXNtYXRjaC4A20IQADAAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbmFsZ2VicmEtMC4zMi4zL3NyYy9iYXNlL29wcy5ycwAAABRDEABlAAAAaAEAAAEAAAAgYW5kIDogbGVmdCByb3dzICE9IHJpZ2h0IHJvd3MuTWF0cml4IG11bHRpcGxpY2F0aW9uIG91dHB1dCBkaW1lbnNpb25zIG1pc21hdGNoIDogbGVmdCBjb2xzICE9IHJpZ2h0IHJvd3MuAACrQxAAMQAAAIxDEAAFAAAA3EMQABoAAAAUQxAAZQAAANUCAAAJAAAAQXhweTogbWlzbWF0Y2hlZCB2ZWN0b3Igc2hhcGVzLgAgRBAAHwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9uYWxnZWJyYS0wLjMyLjMvc3JjL2Jhc2UvYmxhcy5ycwAASEQQAGYAAABCAQAACQAAAEhEEABmAAAACAIAAAkAAABEb3QgcHJvZHVjdCBkaW1lbnNpb25zIG1pc21hdGNoIGZvciBzaGFwZXMgANBEEAArAAAAjEMQAAUAAACRQxAAGgAAAEhEEABmAAAAIAAAAAkAAABIRBAAZgAAABgDAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvYmFzZS9tYXRyaXgucnNNYXRyaXggZWxlbWVudHMgc3dhcCBpbmRleCBvdXQgb2YgYm91bmRzLgAAADRFEABoAAAAvAQAAAkAAABVbmFibGUgdG8gY29weSBmcm9tIGEgbWF0cml4IHdpdGggYSBkaWZmZXJlbnQgc2hhcGUuNEUQAGgAAADlBAAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9uYWxnZWJyYS0wLjMyLjMvc3JjL2Jhc2UvZWRpdGlvbi5yc2Fzc2VydGlvbiBmYWlsZWQ6IGlyb3cxIDwgc2VsZi5ucm93cygpICYmIGlyb3cyIDwgc2VsZi5ucm93cygpABxGEABpAAAAOAEAAAkAAABUaGUgaW5wdXQgdmVjdG9yIG11c3Qgbm90IGJlIGVtcHR5Li9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9uYWxnZWJyYS0wLjMyLjMvc3JjL2Jhc2UvbWluX21heC5yc/dGEABpAAAA4QAAAAkAAABNYXhpbXVtIG51bWJlciBvZiBwZXJtdXRhdGlvbnMgZXhjZWVkZWQuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvbGluYWxnL3Blcm11dGF0aW9uX3NlcXVlbmNlLnJzmEcQAHgAAABVAAAADQAAAJhHEAB4AAAAWQAAABYAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbmFsZ2VicmEtMC4zMi4zL3NyYy9saW5hbGcvbHUucnNMVSBzb2x2ZSBtYXRyaXggZGltZW5zaW9uIG1pc21hdGNoLgAAAJZIEAAjAAAAMEgQAGYAAAD2AAAACQAAAExVIHNvbHZlOiB1bmFibGUgdG8gc29sdmUgYSBub24tc3F1YXJlIHN5c3RlbS4AADBIEABmAAAA+wAAAAkAAAAwSBAAZgAAAGgAAAAeAAAASW5kZXggb3V0IG9mIGJvdW5kcy4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbmFsZ2VicmEtMC4zMi4zL3NyYy9iYXNlL2luZGV4aW5nLnJzAAA4SRAAagAAAFIBAAAaAAAAmAAAAAgAAAAEAAAA0QAAAAIAAABAPRAAQdiTwQALq30vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9jb250cm9sL2NoYXJhY3Rlcl9jb250cm9sbGVyLnJzAAAA2EkQAHkAAADYAgAAOQAAANhJEAB5AAAA2QIAACMAAADYSRAAeQAAAMkCAAA4AAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvY29udHJvbC9yYXlfY2FzdF92ZWhpY2xlX2NvbnRyb2xsZXIucnOEShAAgAAAACIBAAAZAAAAhEoQAIAAAAA6AQAAJQAAAIRKEACAAAAATQEAACUAAACEShAAgAAAAFkBAAAqAAAAhEoQAIAAAACfAQAAHgAAAIRKEACAAAAAugEAAA4AAACEShAAgAAAANABAAAOAAAAhEoQAIAAAACoAgAAEgAAAIRKEACAAAAAqwIAACkAAACEShAAgAAAALACAAAoAAAAhEoQAIAAAAC2AgAAMQAAAIRKEACAAAAAYAIA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AD4AAABaUBAAdAAAADsBAAA+AAAAWlAQAHQAAACiAQAALQAAAGFzc2VydGlvbiBmYWlsZWQ6IHN0YXJ0X3RpbWUgPD0gZW5kX3RpbWUvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9jY2QvdG9pX2VudHJ5LnJzABRTEABzAAAANgAAAAkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9pbnRlZ3JhdGlvbl9wYXJhbWV0ZXJzLnJzmFMQAHwAAABgAAAAWgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2R5bmFtaWNzL2lzbGFuZF9tYW5hZ2VyLnJzJFQQAHQAAACAAAAALwAAACRUEAB0AAAAgAAAAE8AAAAkVBAAdAAAAIEAAAAhAAAAJFQQAHQAAACFAAAAOQAAAFRoZSBtaW5pbXVtIGlzbGFuZCBzaXplIG11c3QgYmUgYXQgbGVhc3QgMS4A2FQQACsAAAAkVBAAdAAAAKAAAAAJAAAAJFQQAHQAAAAMAQAAVAAAACRUEAB0AAAALQEAADsAAAAkVBAAdAAAAOIAAAAdAAAAJFQQAHQAAADVAAAAQAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2R5bmFtaWNzL2pvaW50L2ltcHVsc2Vfam9pbnQvaW1wdWxzZV9qb2ludF9zZXQucnMAXFUQAIsAAAAfAQAAIwAAAFxVEACLAAAAJgEAAB4AAABcVRAAiwAAACcBAAAeAAAAXFUQAIsAAAA0AQAAFAAAAFxVEACLAAAATQEAABsAAABcVRAAiwAAAG4BAABXAAAAXFUQAIsAAABzAQAAJwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2R5bmFtaWNzL2pvaW50L211bHRpYm9keV9qb2ludC9tdWx0aWJvZHkucnMAAABYVhAAhQAAAK8AAAA5AAAAWFYQAIUAAACLAAAAJQAAAFhWEACFAAAAiwAAABgAAABYVhAAhQAAAIgAAAAYAAAAWFYQAIUAAACOAAAALgAAAFhWEACFAAAAjgAAACYAAABYVhAAhQAAALgAAAAnAAAAWFYQAIUAAADJAAAAFgAAAFhWEACFAAAAYQEAABgAAABYVhAAhQAAAHcBAAAdAAAAWFYQAIUAAAB9AQAALgAAAFhWEACFAAAAfgEAACgAAABYVhAAhQAAAIABAAArAAAAWFYQAIUAAACTAQAAIAAAAFhWEACFAAAAqgEAACUAAABYVhAAhQAAAL0BAAAjAAAAWFYQAIUAAADHAQAAHQAAAFhWEACFAAAAyAEAACQAAABYVhAAhQAAAMwBAABGAAAAWFYQAIUAAADAAQAAQgAAAFhWEACFAAAA4gEAACMAAABYVhAAhQAAAOsBAAAuAAAAWFYQAIUAAADLAgAAPAAAAFhWEACFAAAAywIAACQAAABYVhAAhQAAAMwCAAA4AAAAWFYQAIUAAADMAgAAIAAAAFhWEACFAAAALAIAACMAAABYVhAAhQAAAC0CAAAdAAAAWFYQAIUAAAAxAgAANQAAAFhWEACFAAAATQIAACwAAABYVhAAhQAAAJACAAAgAAAAWFYQAIUAAACRAgAAIAAAAFhWEACFAAAAVAIAAC4AAABYVhAAhQAAAFUCAAAoAAAAWFYQAIUAAABWAgAANAAAAFhWEACFAAAAlAIAADIAAABYVhAAhQAAAJUCAAAyAAAAWFYQAIUAAACpAgAAMgAAAFhWEACFAAAAqgIAADIAAABYVhAAhQAAAPcCAAA7AAAAWFYQAIUAAAADAwAAMAAAAFhWEACFAAAACQMAAB8AAABYVhAAhQAAABEDAAAwAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi52ZWxvY2l0aWVzLmxlbigpID49IFNQQVRJQUxfRElNAABYVhAAhQAAABUDAAAVAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5kYW1waW5nLmxlbigpID49IFNQQVRJQUxfRElNAFhWEACFAAAAFgMAABUAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmFjY2VsZXJhdGlvbnMubGVuKCkgPj0gU1BBVElBTF9ESU0AAABYVhAAhQAAABcDAAAVAAAAWFYQAIUAAAAcAwAAHwAAAFhWEACFAAAALQMAADAAAABYVhAAhQAAADYDAAAaAAAAWFYQAIUAAABEAwAAJwAAAFhWEACFAAAAWAMAACgAAABYVhAAhQAAAFkDAAAmAAAAQSByaWdpZC1ib2R5IHRoYXQgaXMgbm90IGF0IHRoZSByb290IG9mIGEgbXVsdGlib2R5IG11c3QgYmUgZHluYW1pYy7IWhAARAAAAFhWEACFAAAAZgMAAA0AAABYVhAAhQAAAJQDAAAfAAAAWFYQAIUAAACWAwAAHAAAAFhWEACFAAAAmgMAAC0AAABYVhAAhQAAAJoDAAAWAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvZHluYW1pY3Mvam9pbnQvbXVsdGlib2R5X2pvaW50L211bHRpYm9keV9qb2ludF9zZXQucnMAZFsQAI8AAADBAAAASgAAAGRbEACPAAAAxAAAAEMAAABkWxAAjwAAAMUAAAA9AAAAZFsQAI8AAADHAAAAMQAAAGRbEACPAAAA2gAAADkAAABkWxAAjwAAAN4AAAA1AAAAZFsQAI8AAADfAAAATQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2R5bmFtaWNzL2pvaW50L211bHRpYm9keV9qb2ludC9tdWx0aWJvZHlfbGluay5ycwAAZFwQAIoAAABxAAAAHQAAAEludGVybmFsIGVycm9yOiBjaXJjdWxhciByaWdpZCBib2R5IGRlcGVuZGVuY3kuAABdEAAvAAAAZFwQAIoAAABzAAAACQAAAEludmFsaWQgcGFyZW50IGluZGV4LgAAAEhdEAAVAAAAZFwQAIoAAAB3AAAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2R5bmFtaWNzL2pvaW50L211bHRpYm9keV9qb2ludC9tdWx0aWJvZHlfam9pbnQucnMAeF0QAIsAAABhAAAALgAAAHhdEACLAAAAYQAAABwAAABub3QgeWV0IGltcGxlbWVudGVkAHhdEACLAAAAbwAAABEAAAB4XRAAiwAAAHMAAAA7AAAAeF0QAIsAAAB6AAAAEgAAAHhdEACLAAAAVgAAACMAAAB4XRAAiwAAAKQAAAARAAAAeF0QAIsAAACsAAAAEgAAAHhdEACLAAAAygAAAC4AAAB4XRAAiwAAAMoAAAAiAAAAeF0QAIsAAADOAAAAEQAAAHhdEACLAAAA0gAAADoAAAB4XRAAiwAAANUAAAASAAAAeF0QAIsAAAC5AAAAMQAAAHhdEACLAAAA4wAAABQAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9qb2ludC9tdWx0aWJvZHlfam9pbnQvdW5pdF9tdWx0aWJvZHlfam9pbnQucnMIXxAAkAAAACEAAAAOAAAACF8QAJAAAAAiAAAADgAAAAhfEACQAAAAPAAAAAUAAAAIXxAAkAAAAFcAAAAOAAAACF8QAJAAAABYAAAADgAAAAhfEACQAAAAfgAAAAUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9keW5hbWljcy9yaWdpZF9ib2R5X2NvbXBvbmVudHMucnMA+F8QAHsAAADPAwAAOwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4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cy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2dlb21ldHJ5L2Jyb2FkX3BoYXNlX211bHRpX3NhcC9zYXBfcmVnaW9uLnJz8nwQAIYAAABHAAAACQAAAPJ8EACGAAAARgAAAAkAAADyfBAAhgAAAIkAAAAJAAAA8nwQAIYAAACBAAAADQAAAPJ8EACGAAAAqQAAACIAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9nZW9tZXRyeS9icm9hZF9waGFzZV9tdWx0aV9zYXAvc2FwX3V0aWxzLnJzAAAAyH0QAIUAAAANAAAABQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2dlb21ldHJ5L2ludGVyYWN0aW9uX2dyYXBoLnJzAGB+EAB3AAAAggAAAD8AAABgfhAAdwAAAIMAAAAYAAAAYH4QAHcAAACDAAAAMQAAAGB+EAB3AAAA6AAAAD0AAABgfhAAdwAAAOkAAAApAAAAYH4QAHcAAADpAAAAQgAAAGB+EAB3AAAA8AAAADkAAABgfhAAdwAAAPEAAAAlAAAAYH4QAHcAAADxAAAAPgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL2dlb21ldHJ5L25hcnJvd19waGFzZS5ycwAAaH8QAHIAAAC3AAAAKAAAAGh/EAByAAAAjQEAABEAAABofxAAcgAAAJkBAAARAAAAaH8QAHIAAADjAQAALwAAAGh/EAByAAAA4wEAAE4AAABofxAAcgAAAMQCAAAgAAAAaH8QAHIAAADFAgAAIAAAAGh/EAByAAAAxwIAACEAAABofxAAcgAAAMgCAAAhAAAAaH8QAHIAAADYAgAAJgAAAGh/EAByAAAA3AIAACYAAABofxAAcgAAACwDAAAhAAAAaH8QAHIAAAAtAwAAIQAAAGh/EAByAAAAPQMAACYAAABofxAAcgAAAEEDAAAmAAAAaH8QAHIAAACjAwAAJQAAAGh/EAByAAAApwMAACUAAABBIGNvbnRhY3QgbWFuaWZvbGQgY2Fubm90IGNvbnRhaW4gbW9yZSB0aGFuIDI1NSBjb250YWN0cyBjdXJyZW50bHkuAOyAEABDAAAAaH8QAHIAAAC5AwAAGQAAAGh/EAByAAAACgQAACMAAABofxAAcgAAABsEAAAuAAAAaH8QAHIAAAAnBAAALgAAAGh/EAByAAAAOwQAABwAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9nZW9tZXRyeS9jb2xsaWRlcl9zZXQucnMAAIiBEAByAAAArAAAADYAAACIgRAAcgAAABcBAAAcAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3JhcGllcjNkLTAuMTguMC9zcmMvcGlwZWxpbmUvcGh5c2ljc19waXBlbGluZS5ycwAAHIIQAHYAAAAwAQAAIQAAAByCEAB2AAAAMQEAACEAAAAcghAAdgAAAOYAAAAdAAAAHIIQAHYAAADtAAAAKwAAAByCEAB2AAAA7wAAADMAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcmFwaWVyM2QtMC4xOC4wL3NyYy9waXBlbGluZS9xdWVyeV9waXBlbGluZS5yc+SCEAB0AAAAXQEAABoAAADkghAAdAAAAIUBAAA/AAAA5IIQAHQAAACQAQAANgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL3BpcGVsaW5lL3VzZXJfY2hhbmdlcy5ycwAAiIMQAHIAAAAUAAAALAAAAFVuYWJsZSB0byBpbmRleCB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLgAMhBAAJwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYXBpZXIzZC0wLjE4LjAvc3JjL3V0aWxzLnJzAAA8hBAAYgAAABEDAAAJAAAAJEkQABQAAAA8hBAAYgAAABIDAAAJAAAAPIQQAGIAAAAfAwAACQAAAER5bmFtaWNGaXhlZEtpbmVtYXRpY1Bvc2l0aW9uQmFzZWRLaW5lbWF0aWNWZWxvY2l0eUJhc2VkBwAAAAUAAAAWAAAAFgAAANiEEADfhBAA5IQQAPqEEAABAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3NpbWJhLTAuOC4xL3NyYy9zaW1kL2F1dG9fc2ltZF9pbXBsLnJzNIUQAGwAAAC/BQAAAQAAANQAAAAIAAAABAAAANUAAADWAAAA1wAAAFAAAAAEAAAA2AAAANkAAADEAAAABAAAANoAAADbAAAASAAAAAQAAADcAAAA1AAAAAgAAAAEAAAA3QAAANQAAAAIAAAABAAAAN4AAADUAAAADAAAAAQAAADfAAAA1AAAACQAAAAEAAAA4AAAANQAAAAMAAAABAAAAOEAAADiAAAAIAAAAAQAAADjAAAA5AAAAHgAAAAEAAAA5QAAAOYAAABIAAAABAAAAOcAAADoAAAAYAAAAAQAAADpAAAA1AAAABgAAAAEAAAA6gAAAOsAAAAgAAAABAAAAOwAAADUAAAABAAAAAQAAADtAAAA7gAAAGAAAAAEAAAA7wAAANQAAAAQAAAABAAAAPAAAADUAAAAHAAAAAQAAADxAAAA8gAAAFgAAAAEAAAA8wAAANQAAAAMAAAABAAAAPQAAADUAAAAKAAAAAQAAAD1AAAA9gAAAGQAAAAEAAAA9wAAANQAAAAMAAAABAAAAPgAAABhc3NlcnRpb24gZmFpbGVkOiBtaW4gPD0gbWF4L3J1c3RjLzgyZTE2MDhkZmE2ZTBiNTU2OTIzMjU1OWUzZDM4NWZlYTVhOTMxMTIvbGlicmFyeS9jb3JlL3NyYy9jbXAucnMAUIcQAEcAAABsAwAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IG1pZCA8PSBzZWxmLmxlbigpY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZQAA1AAAAAQAAAAEAAAA+QAAANQAAAAEAAAABAAAAPoAAAAvcnVzdGMvODJlMTYwOGRmYTZlMGI1NTY5MjMyNTU5ZTNkMzg1ZmVhNWE5MzExMi9saWJyYXJ5L2FsbG9jL3NyYy92ZWMvbW9kLnJzGIgQAEwAAACyBQAADQAAAAAAAAD//////////3iIEABBkJHCAAuGsgFjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2luZGV4bWFwLTEuOS4zL3NyYy9tYXAvY29yZS5ycwC7iBAAZAAAACoAAAAjAAAAu4gQAGQAAACrAgAAHgAAALuIEABkAAAAIgAAAA8AAABNYXRyaXggaW5kZXggb3V0IG9mIGJvdW5kcy4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbmFsZ2VicmEtMC4zMi4zL3NyYy9iYXNlL2JsYXMucnNEb3QgcHJvZHVjdCBkaW1lbnNpb25zIG1pc21hdGNoIGZvciBzaGFwZXMgIGFuZCA6IGxlZnQgcm93cyAhPSByaWdodCByb3dzLgDRiRAAKwAAAPyJEAAFAAAAAYoQABoAAABriRAAZgAAACAAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL25hbGdlYnJhLTAuMzIuMy9zcmMvbGluYWxnL3N5bW1ldHJpY19laWdlbi5ycwBEihAAcwAAAMkAAAAvAAAARIoQAHMAAACQAAAAIQAAAESKEABzAAAAkQAAACEAAABEihAAcwAAALAAAAA4AAAARIoQAHMAAAD+AAAAGAAAAESKEABzAAAAQAAAAD4AAABEihAAcwAAAFQAAAAgAAAASW5kZXggb3V0IG9mIGJvdW5kcy7UAAAACAAAAAQAAAD7AAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9ib3VuZGluZ192b2x1bWUvYWFiYi5yc1RoZSBsb29zZW5pbmcgbWFyZ2luIG11c3QgYmUgcG9zaXRpdmUuAAC8ixAAJgAAAEyLEABwAAAAJAIAAAkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL2JvdW5kaW5nX3ZvbHVtZS9hYWJiX3V0aWxzLnJzUG9pbnQgY2xvdWQgQWFiYiBjb25zdHJ1Y3Rpb246IHRoZSBpbnB1dCBpdGVyYXRvciBzaG91bGQgeWllbGQgYXQgbGVhc3Qgb25lIHBvaW50LvyLEAB2AAAAQAAAABgAAAD8ixAAdgAAAFcAAAAYAAAAdHdvIGFycmF5cyBjb250YWluaW5nIGF0IGxlYXN0ICBmbG9hdHMAAOSMEAAfAAAAA40QAAcAAAAYAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9tYXNzX3Byb3BlcnRpZXMvbWFzc19wcm9wZXJ0aWVzX3RyaW1lc2gzZC5ycwAAACCNEACFAAAAFgAAABcAAAAgjRAAhQAAABcAAAAXAAAAII0QAIUAAAAYAAAAFwAAACCNEACFAAAApQAAABIAAAAgjRAAhQAAAKYAAAASAAAAII0QAIUAAACnAAAAEgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcGFydGl0aW9uaW5nL3FidmgvdXRpbHMucnMACI4QAHMAAAAlAAAAEQAAAAiOEABzAAAAEgAAABEAAAAIjhAAcwAAABMAAAAWAAAACI4QAHMAAAAVAAAAEgAAAAiOEABzAAAAFwAAABUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3BhcnRpdGlvbmluZy9xYnZoL2J1aWxkLnJzAMyOEABzAAAARAEAABMAAADMjhAAcwAAACwBAAAZAAAAzI4QAHMAAAAtAQAAEgAAAMyOEABzAAAAswEAABMAAADMjhAAcwAAALUBAAATAAAAzI4QAHMAAAC3AQAAEwAAAMyOEABzAAAAuwEAACEAAADMjhAAcwAAAIEBAAAqAAAAzI4QAHMAAAB5AQAAHwAAAMyOEABzAAAAWwEAACYAAADMjhAAcwAAAF0BAAAdAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9wYXJ0aXRpb25pbmcvcWJ2aC90cmF2ZXJzYWwucnMA8I8QAHcAAABNAAAAIwAAAPCPEAB3AAAAmgAAACMAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2NsaXAvY2xpcF9hYWJiX2xpbmUucnMAAACIkBAAdQAAAI0AAAATAAAAiJAQAHUAAACbAAAAEwAAAFRoZSBwcm94aW1pdHkgbWFyZ2luIG11c3QgYmUgcG9zaXRpdmUgb3IgbnVsbC4AACCREAAuAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jbG9zZXN0X3BvaW50cy9jbG9zZXN0X3BvaW50c19iYWxsX2JhbGwucnMAAABYkRAAiQAAAA8AAAAFAAAAVGhlIGNvbXBvc2l0ZSBzaGFwZSBtdXN0IG5vdCBiZSBlbXB0eS4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2Nsb3Nlc3RfcG9pbnRzL2Nsb3Nlc3RfcG9pbnRzX2NvbXBvc2l0ZV9zaGFwZV9zaGFwZS5ycwAakhAAlQAAABsAAAAKAAAAGpIQAJUAAACBAAAAIQAAABqSEACVAAAAggAAACEAAAAakhAAlQAAAIMAAAAhAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZS9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvY2xvc2VzdF9wb2ludHMvY2xvc2VzdF9wb2ludHNfY3Vib2lkX2N1Ym9pZC5ycwAAABiTEACNAAAAUgAAAAUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2Nsb3Nlc3RfcG9pbnRzL2Nsb3Nlc3RfcG9pbnRzX2N1Ym9pZF90cmlhbmdsZS5ycwC4kxAAjwAAAE0AAAAFAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jbG9zZXN0X3BvaW50cy9jbG9zZXN0X3BvaW50c19oYWxmc3BhY2Vfc3VwcG9ydF9tYXAucnMAAABYlBAAlQAAAA0AAAAFAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9jbG9zZXN0X3BvaW50cy9jbG9zZXN0X3BvaW50c19zdXBwb3J0X21hcF9zdXBwb3J0X21hcC5ycwAAlRAAlwAAACAAAAAkAAAA1AAAABgAAAAEAAAA/AAAAP0AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2NvbnRhY3QvY29udGFjdF9zdXBwb3J0X21hcF9zdXBwb3J0X21hcC5ycwAAALyVEACJAAAAHgAAACQAAADrAAAAIAAAAAQAAADrAAAAIAAAAAQAAADsAAAA/gAAAP8AAAAAAQAAAQEAAFiWEABYlhAA/wAAAAIBAAADAQAA4gAAACAAAAAEAAAA4gAAACAAAAAEAAAA4wAAAAQBAAAFAQAABgEAAAcBAACYlhAAmJYQAAUBAAAIAQAACQEAANsAAABIAAAABAAAANsAAABIAAAABAAAANwAAAAKAQAACwEAAAwBAAANAQAA2JYQANiWEAALAQAADgEAAA8BAADmAAAASAAAAAQAAADmAAAASAAAAAQAAADnAAAAEAEAABEBAAASAQAAEwEAABiXEAAYlxAAEQEAABQBAAAVAQAA8gAAAFgAAAAEAAAA8gAAAFgAAAAEAAAA8wAAABYBAAAXAQAAGAEAABkBAABYlxAAWJcQABcBAAAaAQAAGwEAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvZGlzdGFuY2UvZGlzdGFuY2VfY29tcG9zaXRlX3NoYXBlX3NoYXBlLnJzAAAAmJcQAIkAAAAXAAAACgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvZGlzdGFuY2UvZGlzdGFuY2Vfc3VwcG9ydF9tYXBfc3VwcG9ydF9tYXAucnMANJgQAIsAAAA0AAAAJAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvZXBhL2VwYTMucnMAANCYEABqAAAARgAAAA4AAADQmBAAagAAAEcAAAAOAAAA0JgQAGoAAABIAAAADgAAANCYEABqAAAAXgAAAA0AAADQmBAAagAAAF8AAAANAAAA0JgQAGoAAABgAAAADQAAANCYEABqAAAAbgAAAA0AAADQmBAAagAAAG8AAAATAAAA0JgQAGoAAABwAAAAEwAAANCYEABqAAAAgQAAAA0AAADQmBAAagAAAIcAAAAcAAAA0JgQAGoAAACHAAAAEwAAANCYEABqAAAAiAAAABMAAADQmBAAagAAAIkAAAATAAAA0JgQAGoAAACKAAAAEwAAANCYEABqAAAA8AAAACQAAADQmBAAagAAAPEAAAAkAAAA0JgQAGoAAADyAAAAJAAAANCYEABqAAAADQEAACcAAADQmBAAagAAAA0BAABEAAAA0JgQAGoAAAASAQAAJwAAANCYEABqAAAAEgEAAEQAAADQmBAAagAAABcBAAAnAAAA0JgQAGoAAAAXAQAARAAAANCYEABqAAAAHAEAACcAAADQmBAAagAAABwBAABEAAAA0JgQAGoAAAAhAQAAKAAAANCYEABqAAAAPQEAADIAAADQmBAAagAAAEQBAAAiAAAA0JgQAGoAAABdAQAAFwAAANCYEABqAAAAXwEAACwAAADQmBAAagAAAGABAAAsAAAA0JgQAGoAAABhAQAALAAAANCYEABqAAAAlwEAABcAAADQmBAAagAAAJgBAAAjAAAA0JgQAGoAAABvAQAAHwAAANCYEABqAAAAgwEAADoAAADQmBAAagAAAIMBAAAvAAAA0JgQAGoAAABYAQAALAAAANCYEABqAAAAowEAACQAAADQmBAAagAAAKkBAAAXAAAA0JgQAGoAAACyAQAAJgAAANCYEABqAAAAtgEAAB8AAADQmBAAagAAALgBAAAfAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9xdWVyeS9namsvZ2prLnJzAAAA/JsQAGkAAABDAAAADgAAAGFzc2VydGlvbiBmYWlsZWQ6IG1pbl9ib3VuZCA9PSBtaW5fYm91bmT8mxAAaQAAAIwAAAAJAAAA/JsQAGkAAABPAQAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvZ2prL3Zvcm9ub2lfc2ltcGxleDMucnMAAMCcEAB2AAAAJwAAABcAAADAnBAAdgAAAFAAAAASAAAAKIsQABQAAADAnBAAdgAAAFsAAAAJAAAAwJwQAHYAAABgAAAACQAAAMCcEAB2AAAAYQAAAAoAAADAnBAAdgAAAGcAAAAJAAAAwJwQAHYAAABtAAAACgAAAMCcEAB2AAAAjgAAABYAAADAnBAAdgAAAOgAAAAeAAAAwJwQAHYAAAARAQAAHgAAAGFzc2VydGlvbiBmYWlsZWQ6IHNlbGYuZGltID09IDMAwJwQAHYAAAC8AAAADQAAAMCcEAB2AAAAXwEAABQAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L2ludGVyc2VjdGlvbl90ZXN0L2ludGVyc2VjdGlvbl90ZXN0X3N1cHBvcnRfbWFwX3N1cHBvcnRfbWFwLnJzAAAAIJ4QAJ0AAAA5AAAAKQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvbm9ubGluZWFyX3RpbWVfb2ZfaW1wYWN0L25vbmxpbmVhcl90aW1lX29mX2ltcGFjdF9jb21wb3NpdGVfc2hhcGVfc2hhcGUucnMAAADUAAAABAAAAAQAAAAcAQAAHQEAAB4BAAAfAQAAIAEAACEBAAAiAQAAIwEAACQBAAAlAQAA1AAAAAQAAAAEAAAA7QAAACYBAAAnAQAAKAEAACkBAADUAAAABAAAAAQAAADUAAAABAAAAAQAAADtAAAAJgEAACcBAAAoAQAAKQEAANCfEADQnxAAJwEAANQAAAAEAAAABAAAACoBAAArAQAALAEAAC0BAAAuAQAALwEAABwBAAAdAQAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAJAEAACUBAAB8nxAA7QAAAKSGEAAmAQAAJwEAACgBAAApAQAAsJ8QANCfEADQnxAAJwEAANyfEAAwAQAAMQEAADIBAAAzAQAANAEAADUBAAA2AQAANwEAADgBAAA5AQAAOgEAADsBAAA8AQAAPQEAAD4BAAA/AQAA0J4QAKkAAACcAAAAKgAAANCeEACpAAAAxAAAABUAAADQnhAAqQAAAL0AAAAhAAAA0J4QAKkAAAC+AAAAIQAAANCeEACpAAAAvwAAACEAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L25vbmxpbmVhcl90aW1lX29mX2ltcGFjdC9ub25saW5lYXJfdGltZV9vZl9pbXBhY3Rfc3VwcG9ydF9tYXBfc3VwcG9ydF9tYXAucnMAFKEQAKsAAADJAAAAKAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvcXVlcnkvcG9pbnQvcG9pbnRfY29tcG9zaXRlX3NoYXBlLnJzAAAA0KEQAH0AAAAjAAAAUwAAANChEAB9AAAAngAAAA4AAADQoRAAfQAAAEgAAABUAAAA0KEQAH0AAABwAAAANwAAANChEAB9AAAAjwAAADcAAADQoRAAfQAAALsAAAAxAAAA0KEQAH0AAAC+AAAAJQAAANChEAB9AAAAuQAAACMAAABhc3NlcnRpb24gZmFpbGVkOiBzcW5hYiAhPSAwLjAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3F1ZXJ5L3BvaW50L3BvaW50X3NlZ21lbnQucnMA7qIQAHUAAABIAAAADQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMu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bDMvdHJpYW5nbGVfZmFjZXQucnMAAGTNEACGAAAAFQAAABQAAABkzRAAhgAAABUAAAAhAAAAZM0QAIYAAAAWAAAAFAAAAGFzc2VydGlvbiBmYWlsZWQ6IGRpc3RhbmNlID4gY3JhdGU6Om1hdGg6OkRFRkFVTFRfRVBTSUxPTgAAAGTNEACGAAAAKgAAAAkAAABkzRAAhgAAADUAAAAbAAAAZM0QAIYAAAA1AAAAKwAAAGTNEACGAAAASwAAAAkAAABkzRAAhgAAAFgAAAASAAAAZM0QAIYAAABZAAAAEgAAAGTNEACGAAAAcAAAABYAAABkzRAAhgAAAHEAAAAWAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy90cmFuc2Zvcm1hdGlvbi9jb252ZXhfaHVsbDMvdmFsaWRhdGlvbi5ycwAA2M4QAIIAAAAPAAAAFAAAANjOEACCAAAADwAAAAkAAADYzhAAggAAABAAAAAJAAAA2M4QAIIAAAARAAAACQAAANjOEACCAAAAFQAAAAkAAADYzhAAggAAAAkAAAARAAAAYXNzZXJ0aW9uIGZhaWxlZDogZmFjZXRzW2ZhY2V0LmFkaltpXV0udmFsaWTYzhAAggAAAAkAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy90cmFuc2Zvcm1hdGlvbi9jb252ZXhfaHVsbF91dGlscy5yc/jPEAB8AAAAKQAAACIAAAD4zxAAfAAAAEIAAAAiAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy90cmFuc2Zvcm1hdGlvbi90b19vdXRsaW5lL2JhbGxfdG9fb3V0bGluZS5ycwAAAJTQEACFAAAAHgAAABQAAACU0BAAhQAAACIAAAAUAAAAlNAQAIUAAAA8AAAAEQAAAJTQEACFAAAAQAAAABEAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3RyYW5zZm9ybWF0aW9uL3RvX291dGxpbmUvY2Fwc3VsZV90b19vdXRsaW5lLnJzXNEQAIgAAAAcAAAACAAAAAAAAAABAAAAAAAAAAIAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3RyYW5zZm9ybWF0aW9uL3RvX291dGxpbmUvcm91bmRfY29udmV4X3BvbHloZWRyb25fdG9fb3V0bGluZS5ycwTSEACYAAAAMAAAABoAAAAE0hAAmAAAACIAAAA0AAAABNIQAJgAAAAjAAAAHgAAAATSEACYAAAADwAAABoAAAAE0hAAmAAAABIAAAA4AAAABNIQAJgAAAAVAAAAHAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvdHJhbnNmb3JtYXRpb24vdG9fdHJpbWVzaC9jb252ZXhfcG9seWhlZHJvbl90b190cmltZXNoLnJzAAD80hAAkgAAAA0AAAAcAAAA/NIQAJIAAAAPAAAAMwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9wYXJyeTNkLTAuMTMuNS9zcmMvdHJhbnNmb3JtYXRpb24vdXRpbHMucnOw0xAAcAAAAMQAAAAQAAAAsNMQAHAAAADFAAAAEAAAAGFzc2VydGlvbiBmYWlsZWQ6IG5zdWJkaXZzID4gMAAAsNMQAHAAAADWAAAABQAAALDTEABwAAAARAEAAB0AAACw0xAAcAAAADMBAAAnAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy91dGlscy9hcnJheS5ycwCQ1BAAZwAAAEoAAAANAAAAQ2Fubm90IGNvbXB1dGUgdGhlIGNlbnRlciBvZiBsZXNzIHRoYW4gMSBwb2ludC4ACNUQAC8AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3V0aWxzL2NlbnRlci5yc0DVEABoAAAABwAAAAUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvcGFycnkzZC0wLjEzLjUvc3JjL3V0aWxzL2NsZWFudXAucnMAAAC41RAAaQAAAB0AAAARAAAAuNUQAGkAAAAeAAAAEQAAALjVEABpAAAAHwAAABEAAAC41RAAaQAAABMAAAANAAAAuNUQAGkAAAAVAAAADQAAALjVEABpAAAAFgAAABcAAAC41RAAaQAAAAwAAAAJAAAAuNUQAGkAAAANAAAACQAAALjVEABpAAAADgAAAAkAAAAEuxAAewAAAAcAAAAYAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3BhcnJ5M2QtMC4xMy41L3NyYy9ib3VuZGluZ192b2x1bWUvYm91bmRpbmdfc3BoZXJlLnJzAMTWEAB7AAAAfQAAAAkAAADUAAAAEAAAAAQAAAB9AwAAfgMAAH8DAACAAwAA1AAAACgAAAAEAAAAgQMAAIIDAACDAwAAhAMAANQAAAAMAAAABAAAAIUDAACGAwAAhwMAAIgDAADUAAAADAAAAAQAAACJAwAAigMAAIsDAACMAwAA9gAAAGQAAAAEAAAAjQMAAI4DAACPAwAAkAMAAEludGVybmFsRXJyb3IAAADUAAAABAAAAAQAAACRAwAASGFzaCB0YWJsZSBjYXBhY2l0eSBvdmVyZmxvd/zXEAAcAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2hhc2hicm93bi0wLjEyLjMvc3JjL3Jhdy9tb2QucnMAAAAg2BAAZQAAAFoAAAAoAAAAOGPtPtoPST9emHs/2g/JP2k3rDFoISIztA8UM2ghojMAAAA/AAAAvwMAAAAEAAAABAAAAAYAAACD+aIARE5uAPwpFQDRVycA3TT1AGLbwAA8mZUAQZBDAGNR/gC73qsAt2HFADpuJADSTUIASQbgAAnqLgAcktEA6x3+ACmxHADoPqcA9TWCAES7LgCc6YQAtCZwAEF+XwDWkTkAU4M5AJz0OQCLX4QAKPm9APgfOwDe/5cAD5gFABEv7wAKWosAbR9tAM9+NgAJyycARk+3AJ5mPwAt6l8Auid1AOXrxwA9e/EA9zkHAJJSigD7a+oAH7FfAAhdjQAwA1YAe/xGAPCrawAgvM8ANvSaAOOpHQBeYZEACBvmAIWZZQCgFF8AjUBoAIDY/wAnc00ABgYxAMpWFQDJqHMAe+JgAGuMwAAAAABA+yH5PwAAAAAtRHQ+AAAAgJhG+DwAAABgUcx4OwAAAICDG/A5AAAAQCAlejgAAACAIoLjNgAAAAAd82k12w9JP9sPSb/kyxZAAAAAAAAAAIDbD0lAYnl0ZSBhcnJheWJvb2xlYW4gYGA62hAACQAAAEPaEAABAAAAaW50ZWdlciBgAAAAVNoQAAkAAABD2hAAAQAAAGZsb2F0aW5nIHBvaW50IGBw2hAAEAAAAEPaEAABAAAAY2hhcmFjdGVyIGAAkNoQAAsAAABD2hAAAQAAAHN0cmluZyAArNoQAAcAAAAw2hAACgAAAHVuaXQgdmFsdWUAAMTaEAAKAAAAT3B0aW9uIHZhbHVl2NoQAAwAAABuZXd0eXBlIHN0cnVjdAAA7NoQAA4AAABzZXF1ZW5jZQTbEAAIAAAAbWFwABTbEAADAAAAZW51bSDbEAAEAAAAdW5pdCB2YXJpYW50LNsQAAwAAABuZXd0eXBlIHZhcmlhbnQAQNsQAA8AAAB0dXBsZSB2YXJpYW50AAAAWNsQAA0AAABzdHJ1Y3QgdmFyaWFudAAAcNsQAA4AAABhIG5vbnplcm8gdXNpemV1c2l6ZXJlZW50cmFudCBpbml0AACc2xAADgAAAC9ydXN0Yy84MmUxNjA4ZGZhNmUwYjU1NjkyMzI1NTllM2QzODVmZWE1YTkzMTEyL2xpYnJhcnkvY29yZS9zcmMvY2VsbC9vbmNlLnJzAAAAtNsQAE0AAADZAAAAQgAAAG92ZXJmbG93IGluIER1cmF0aW9uOjpuZXcAAAAU3BAAGQAAAC9ydXN0Yy84MmUxNjA4ZGZhNmUwYjU1NjkyMzI1NTllM2QzODVmZWE1YTkzMTEyL2xpYnJhcnkvY29yZS9zcmMvdGltZS5yczjcEABIAAAAygAAABUAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlAJgDAAAMAAAABAAAAJkDAACaAwAAmwMAAGxpYnJhcnkvc3RkL3NyYy90aHJlYWQvbW9kLnJzZmFpbGVkIHRvIGdlbmVyYXRlIHVuaXF1ZSB0aHJlYWQgSUQ6IGJpdHNwYWNlIGV4aGF1c3RlZPHcEAA3AAAA1NwQAB0AAACcBAAADQAAAG92ZXJmbG93IHdoZW4gYWRkaW5nIGR1cmF0aW9uIHRvIGluc3RhbnRsaWJyYXJ5L3N0ZC9zcmMvdGltZS5ycwBo3RAAFwAAAKEBAAAhAAAAbWVtb3J5IGFsbG9jYXRpb24gb2YgIGJ5dGVzIGZhaWxlZAAAkN0QABUAAACl3RAADQAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc8TdEAAYAAAAYgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJz7N0QABwAAACEAgAAHgAAAJgDAAAMAAAABAAAAJwDAACdAwAACAAAAAQAAACeAwAAnQMAAAgAAAAEAAAAnwMAAKADAAChAwAAEAAAAAQAAACiAwAAowMAAKQDAAAAAAAAAQAAAKUDAAB0aW1lIG5vdCBpbXBsZW1lbnRlZCBvbiB0aGlzIHBsYXRmb3JtAAAAcN4QACUAAABsaWJyYXJ5L3N0ZC9zcmMvc3lzL3dhc20vLi4vdW5zdXBwb3J0ZWQvdGltZS5ycwCg3hAALwAAAA0AAAAJAAAASGFzaCB0YWJsZSBjYXBhY2l0eSBvdmVyZmxvd+DeEAAcAAAAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNC4yL3NyYy9yYXcvbW9kLnJzAAAE3xAAKgAAAFgAAAAoAAAARXJyb3JMYXlvdXRFcnJvcqYDAAAMAAAABAAAAKcDAACoAwAAqQMAAGxp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").buffer)})}function hH(){return function(){let g,A;try{const B=p.__wbindgen_add_to_stack_pointer(-16);p.version(B);var I=ZI()[B/4+0],C=ZI()[B/4+1];return g=I,A=C,nH(I,C)}finally{p.__wbindgen_add_to_stack_pointer(16),p.__wbindgen_free(g,A,1)}}()}Ni[45]=62,Ni[95]=63;var kV=Object.freeze({__proto__:null,version:hH,Vector3:bn,VectorOps:uA,Quaternion:Lh,RotationOps:Cg,SdpMatrix3:kd,SdpMatrix3Ops:Yh,get RigidBodyType(){return fi},RigidBody:bh,RigidBodyDesc:Ri,RigidBodySet:Md,IntegrationParameters:dd,get JointType(){return WC},get MotorModel(){return Hh},get JointAxesMask(){return Th},ImpulseJoint:xi,UnitImpulseJoint:zw,FixedImpulseJoint:pd,RopeImpulseJoint:Ud,SpringImpulseJoint:Nd,PrismaticImpulseJoint:Fd,RevoluteImpulseJoint:fd,GenericImpulseJoint:Rd,SphericalImpulseJoint:Kd,JointData:MQ,ImpulseJointSet:Jd,MultibodyJoint:Ge,UnitMultibodyJoint:$w,FixedMultibodyJoint:qd,PrismaticMultibodyJoint:md,RevoluteMultibodyJoint:Ld,SphericalMultibodyJoint:Yd,MultibodyJointSet:Hd,get CoefficientCombineRule(){return Qa},CCDSolver:Td,IslandManager:xd,BroadPhase:vd,NarrowPhase:bd,TempContactManifold:Od,Shape:FC,get ShapeType(){return SC},Ball:AS,HalfSpace:_d,Cuboid:IS,RoundCuboid:gS,Capsule:CS,Segment:BS,Triangle:iS,RoundTriangle:QS,Polyline:eS,TriMesh:ES,ConvexPolyhedron:Jr,RoundConvexPolyhedron:qr,Heightfield:tS,Cylinder:oS,RoundCylinder:nS,Cone:aS,RoundCone:sS,get ActiveCollisionTypes(){return Kr},Collider:_h,get MassPropsMode(){return QE},ColliderDesc:eC,ColliderSet:Ip,get FeatureType(){return Co},Ray:cH,RayIntersection:ua,RayColliderIntersection:Ea,RayColliderToi:ol,PointProjection:ya,PointColliderProjection:ea,ShapeTOI:Go,ShapeColliderTOI:ka,ShapeContact:Bo,World:nl,PhysicsPipeline:Zd,SerializationPipeline:Oh,get ActiveEvents(){return oe},TempContactForceEvent:$d,EventQueue:Ap,get ActiveHooks(){return Rr},get SolverFlags(){return vh},DebugRenderBuffers:Wd,DebugRenderPipeline:jd,get QueryFilterFlags(){return xh},QueryPipeline:Pd,init:DH,CharacterCollision:Vd,KinematicCharacterController:Xd,DynamicRayCastVehicleController:zd});const MV=Object.freeze(Object.defineProperty({__proto__:null,get ActiveCollisionTypes(){return Kr},get ActiveEvents(){return oe},get ActiveHooks(){return Rr},Ball:AS,BroadPhase:vd,CCDSolver:Td,Capsule:CS,CharacterCollision:Vd,get CoefficientCombineRule(){return Qa},Collider:_h,ColliderDesc:eC,ColliderSet:Ip,Cone:aS,ConvexPolyhedron:Jr,Cuboid:IS,Cylinder:oS,DebugRenderBuffers:Wd,DebugRenderPipeline:jd,DynamicRayCastVehicleController:zd,EventQueue:Ap,get FeatureType(){return Co},FixedImpulseJoint:pd,FixedMultibodyJoint:qd,GenericImpulseJoint:Rd,HalfSpace:_d,Heightfield:tS,ImpulseJoint:xi,ImpulseJointSet:Jd,IntegrationParameters:dd,IslandManager:xd,get JointAxesMask(){return Th},JointData:MQ,get JointType(){return WC},KinematicCharacterController:Xd,get MassPropsMode(){return QE},get MotorModel(){return Hh},MultibodyJoint:Ge,MultibodyJointSet:Hd,NarrowPhase:bd,PhysicsPipeline:Zd,PointColliderProjection:ea,PointProjection:ya,Polyline:eS,PrismaticImpulseJoint:Fd,PrismaticMultibodyJoint:md,Quaternion:Lh,get QueryFilterFlags(){return xh},QueryPipeline:Pd,Ray:cH,RayColliderIntersection:Ea,RayColliderToi:ol,RayIntersection:ua,RevoluteImpulseJoint:fd,RevoluteMultibodyJoint:Ld,RigidBody:bh,RigidBodyDesc:Ri,RigidBodySet:Md,get RigidBodyType(){return fi},RopeImpulseJoint:Ud,RotationOps:Cg,RoundCone:sS,RoundConvexPolyhedron:qr,RoundCuboid:gS,RoundCylinder:nS,RoundTriangle:QS,SdpMatrix3:kd,SdpMatrix3Ops:Yh,Segment:BS,SerializationPipeline:Oh,Shape:FC,ShapeColliderTOI:ka,ShapeContact:Bo,ShapeTOI:Go,get ShapeType(){return SC},get SolverFlags(){return vh},SphericalImpulseJoint:Kd,SphericalMultibodyJoint:Yd,SpringImpulseJoint:Nd,TempContactForceEvent:$d,TempContactManifold:Od,TriMesh:ES,Triangle:iS,UnitImpulseJoint:zw,UnitMultibodyJoint:$w,Vector3:bn,VectorOps:uA,World:nl,default:kV,init:DH,version:hH},Symbol.toStringTag,{value:"Module"}));var dV=function g(A,I){if(A===I)return!0;if(A&&I&&typeof A=="object"&&typeof I=="object"){if(A.constructor!==I.constructor)return!1;var C,B,i;if(Array.isArray(A)){if(C=A.length,C!=I.length)return!1;for(B=C;B--!==0;)if(!g(A[B],I[B]))return!1;return!0}if(A.constructor===RegExp)return A.source===I.source&&A.flags===I.flags;if(A.valueOf!==Object.prototype.valueOf)return A.valueOf()===I.valueOf();if(A.toString!==Object.prototype.toString)return A.toString()===I.toString();if(i=Object.keys(A),C=i.length,C!==Object.keys(I).length)return!1;for(B=C;B--!==0;)if(!Object.prototype.hasOwnProperty.call(I,i[B]))return!1;for(B=C;B--!==0;){var Q=i[B];if(!g(A[Q],I[Q]))return!1}return!0}return A!==A&&I!==I};const gp=Zh(dV),rS=[];function wH(g,A,I,C=0,B=!1){for(const Q of A)if(gp(I,Q.args)){if(B)return;if(Q.error)throw Q.error;if(Q.response)return Q.response;throw Q.promise}const i={args:I,promise:g(...I).then(Q=>i.response=Q??!0).catch(Q=>i.error=Q??"unknown error").then(()=>{C>0&&setTimeout(()=>{const Q=A.indexOf(i);Q!==-1&&A.splice(Q,1)},C)})};if(A.push(i),!B)throw i.promise}function pV(g,...A){if(A===void 0||A.length===0)g.splice(0,g.length);else{const I=g.find(C=>gp(A,C.args));if(I){const C=g.indexOf(I);C!==-1&&g.splice(C,1)}}}function io(g,...A){return wH(g,rS,A,io.lifespan)}io.lifespan=0;io.clear=(...g)=>pV(rS,...g);io.preload=(g,...A)=>void wH(g,rS,A,io.lifespan,!0);io.peek=(...g)=>{var A;return(A=rS.find(I=>gp(g,I.args)))==null?void 0:A.response};function UV(g,A=1e-4){A=Math.max(A,Number.EPSILON);const I={},C=g.getIndex(),B=g.getAttribute("position"),i=C?C.count:B.count;let Q=0;const e=Object.keys(g.attributes),E={},t={},a=[],s=["getX","getY","getZ","getW"];for(let G=0,h=e.length;G[]))}const r=Math.log10(1/A),l=Math.pow(10,r);for(let G=0;G{const[A,I,C]=g;return new O(A,I,C)},AK=({x:g,y:A,z:I,w:C})=>FV.set(g,A,I,C),KV=g=>{if(Array.isArray(g))return new bn(g[0],g[1],g[2]);if(typeof g=="number")return new bn(g,g,g);{const A=g;return new bn(A.x,A.y,A.z)}},JV={fixed:1,dynamic:0,kinematicPosition:2,kinematicVelocity:3},SH=g=>JV[g],qV=(g,A)=>{const I=Array.from(g);for(let C=0;Cg?g instanceof Pg?[g.x,g.y,g.z,g.w]:g instanceof O||g instanceof LQ?[g.x,g.y,g.z]:Array.isArray(g)?g:[g]:[0];function Pe(g){const A=_.useRef();return A.current===void 0&&(A.current={value:typeof g=="function"?g():g}),A.current.value}const mV=g=>{const A=_.useRef(g),I=_.useRef(0),C=_.useRef(0);_.useEffect(()=>{A.current=g},[g]),_.useEffect(()=>{const B=()=>{const i=performance.now(),Q=i-C.current;I.current=requestAnimationFrame(B),A.current(Q/1e3),C.current=i};return I.current=requestAnimationFrame(B),()=>cancelAnimationFrame(I.current)},[])},LV=({onStep:g,updatePriority:A})=>(NC((I,C)=>{g(C)},A),null),YV=({onStep:g})=>(mV(A=>{g(A)}),null),HV=({onStep:g,type:A,updatePriority:I})=>A==="independent"?$I.createElement(YV,{onStep:g}):$I.createElement(LV,{onStep:g,updatePriority:I});var TV=_.memo(HV);function xV(g,A){if(g==null)return{};var I={},C=Object.keys(g),B,i;for(i=0;i=0)&&(I[B]=g[B]);return I}function Cp(g,A){if(g==null)return{};var I=xV(g,A),C,B;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(g);for(B=0;B=0)&&Object.prototype.propertyIsEnumerable.call(g,C)&&(I[C]=g[C])}return I}const vV=["mass","linearDamping","angularDamping","type","onCollisionEnter","onCollisionExit","onIntersectionEnter","onIntersectionExit","onContactForce","children","canSleep","ccd","gravityScale"],bV=(g,A,I)=>{const C=A.slice();if(g==="heightfield"){const i=C[3];return i.x*=I.x,i.x*=I.y,i.x*=I.z,C}if(g==="trimesh"||g==="convexHull")return C[0]=qV(C[0],I),C;const B=[I.x,I.y,I.z,I.x,I.x];return C.map((i,Q)=>B[Q]*i)},OV=(g,A,I,C)=>{const B=bV(g.shape,g.args,I),i=eC[g.shape](...B);return A.createCollider(i,C==null?void 0:C())},_V=["shape","args"],IK="Please pick ONLY ONE of the `density`, `mass` and `massProperties` options.",ZV=(g,A)=>{if(A.density!==void 0){if(A.mass!==void 0||A.massProperties!==void 0)throw new Error(IK);g.setDensity(A.density);return}if(A.mass!==void 0){if(A.massProperties!==void 0)throw new Error(IK);g.setMass(A.mass);return}A.massProperties!==void 0&&g.setMassProperties(A.massProperties.mass,A.massProperties.centerOfMass,A.massProperties.principalAngularInertia,A.massProperties.angularInertiaLocalFrame)},yH={sensor:(g,A)=>{g.setSensor(A)},collisionGroups:(g,A)=>{g.setCollisionGroups(A)},solverGroups:(g,A)=>{g.setSolverGroups(A)},friction:(g,A)=>{g.setFriction(A)},frictionCombineRule:(g,A)=>{g.setFrictionCombineRule(A)},restitution:(g,A)=>{g.setRestitution(A)},restitutionCombineRule:(g,A)=>{g.setRestitutionCombineRule(A)},quaternion:()=>{},position:()=>{},rotation:()=>{},scale:()=>{}},uH=Object.keys(yH),PV=(g,A,I)=>{const C=I.get(g.handle);if(C){var B;const i=C.object.parent.getWorldScale(fV),Q=(B=C.worldParent)===null||B===void 0?void 0:B.matrixWorld.clone().invert();C.object.updateWorldMatrix(!0,!1),yE.copy(C.object.matrixWorld),Q&&yE.premultiply(Q),yE.decompose(gB,CQ,Qo),g.parent()?(g.setTranslationWrtParent({x:gB.x*i.x,y:gB.y*i.y,z:gB.z*i.z}),g.setRotationWrtParent(CQ)):(g.setTranslation({x:gB.x*i.x,y:gB.y*i.y,z:gB.z*i.z}),g.setRotation(CQ)),uH.forEach(e=>{if(e in A){const E=A[e];yH[e](g,E,A)}}),ZV(g,A)}},WV=(g,A,I)=>{const C=_.useMemo(()=>uH.flatMap(B=>GH(A[B])),[A]);_.useEffect(()=>{const B=g();PV(B,A,I)},[...C,g])},jV=g=>{let A=!1;return g.traverseAncestors(I=>{I.userData.r3RapierType==="MeshCollider"&&(A=!0)}),A},VV=(g,A,I)=>({collider:g,worldParent:I||void 0,object:A}),XV={cuboid:"cuboid",ball:"ball",hull:"convexHull",trimesh:"trimesh"},zV=({object:g,ignoreMeshColliders:A=!0,options:I})=>{const C=[];g.updateWorldMatrix(!0,!1);const B=g.matrixWorld.clone().invert(),i=Q=>{if("isMesh"in Q){if(A&&jV(Q))return;const e=Q.getWorldScale(Qo),E=XV[I.colliders||"cuboid"];Q.updateWorldMatrix(!0,!1),yE.copy(Q.matrixWorld).premultiply(B).decompose(gB,CQ,Qo);const t=new LQ().setFromQuaternion(CQ,"XYZ"),{geometry:a}=Q,{args:s,offset:r}=$V(a,I.colliders||"cuboid"),l=Ug(Ug({},MH(I)),{},{args:s,shape:E,rotation:[t.x,t.y,t.z],position:[gB.x+r.x*e.x,gB.y+r.y*e.y,gB.z+r.z*e.z],scale:[e.x,e.y,e.z]});C.push(l)}};return I.includeInvisible?g.traverse(i):g.traverseVisible(i),C},$V=(g,A)=>{switch(A){case"cuboid":{g.computeBoundingBox();const{boundingBox:C}=g,B=C.getSize(new O);return{args:[B.x/2,B.y/2,B.z/2],offset:C.getCenter(new O)}}case"ball":{g.computeBoundingSphere();const{boundingSphere:C}=g;return{args:[C.radius],offset:C.center}}case"trimesh":{var I;const C=g.index?g.clone():UV(g);return{args:[C.attributes.position.array,(I=C.index)===null||I===void 0?void 0:I.array],offset:new O}}case"hull":return{args:[g.clone().attributes.position.array],offset:new O}}return{args:[],offset:new O}},kH=g=>({collision:!!(g!=null&&g.onCollisionEnter||g!=null&&g.onCollisionExit||g!=null&&g.onIntersectionEnter||g!=null&&g.onIntersectionExit),contactForce:!!(g!=null&&g.onContactForce)}),AX=(g,A,I,C={})=>{const{onCollisionEnter:B,onCollisionExit:i,onIntersectionEnter:Q,onIntersectionExit:e,onContactForce:E}=A;_.useEffect(()=>{const t=g();if(t){const{collision:a,contactForce:s}=kH(A),r=a||C.collision,l=s||C.contactForce;r&&l?t.setActiveEvents(oe.COLLISION_EVENTS|oe.CONTACT_FORCE_EVENTS):r?t.setActiveEvents(oe.COLLISION_EVENTS):l&&t.setActiveEvents(oe.CONTACT_FORCE_EVENTS),I.set(t.handle,{onCollisionEnter:B,onCollisionExit:i,onIntersectionEnter:Q,onIntersectionExit:e,onContactForce:E})}return()=>{t&&I.delete(t.handle)}},[B,i,Q,e,E,C])},MH=(g={})=>Cp(g,vV),lS=()=>{const g=_.useContext(dH);if(!g)throw new Error("react-three-rapier: useRapier must be used within !");return g},Bp=(g,A,I=!0)=>{const[C,B]=_.useState([]);return _.useEffect(()=>{g.current&&A.colliders!==!1&&B(zV({object:g.current,options:A,ignoreMeshColliders:I}))},[A.colliders]),C},IX=_.memo(()=>{const{world:g}=lS(),A=_.useRef(null);return NC(()=>{const I=A.current;if(!I)return;const C=g.debugRender();I.geometry.setAttribute("position",new Ag(C.vertices,3)),I.geometry.setAttribute("color",new Ag(C.colors,4))}),$I.createElement("group",null,$I.createElement("lineSegments",{ref:A,frustumCulled:!1},$I.createElement("lineBasicMaterial",{color:16777215,vertexColors:!0}),$I.createElement("bufferGeometry",null)))}),gX=g=>{let A;const I={get(Q,e){return A||(A=g()),Reflect.get(A,e)},set(Q,e,E){return A||(A=g()),Reflect.set(A,e,E)}};return{proxy:new Proxy({},I),reset:()=>{A=void 0},set:Q=>{A=Q}}},dH=_.createContext(void 0),MD=(g,A)=>{var I,C,B,i,Q,e;return{target:{rigidBody:g.rigidBody.object,collider:g.collider.object,colliderObject:(I=g.collider.state)===null||I===void 0?void 0:I.object,rigidBodyObject:(C=g.rigidBody.state)===null||C===void 0?void 0:C.object},other:{rigidBody:A.rigidBody.object,collider:A.collider.object,colliderObject:(B=A.collider.state)===null||B===void 0?void 0:B.object,rigidBodyObject:(i=A.rigidBody.state)===null||i===void 0?void 0:i.object},rigidBody:A.rigidBody.object,collider:A.collider.object,colliderObject:(Q=A.collider.state)===null||Q===void 0?void 0:Q.object,rigidBodyObject:(e=A.rigidBody.state)===null||e===void 0?void 0:e.object}},CX=async()=>{let g=await N8(()=>Promise.resolve().then(()=>MV),void 0);return await g.init(),g},BX=g=>{const{colliders:A="cuboid",children:I,timeStep:C=1/60,paused:B=!1,interpolate:i=!0,updatePriority:Q,updateLoop:e="follow",debug:E=!1,gravity:t=[0,-9.81,0],allowedLinearError:a=.001,predictionDistance:s=.002,numSolverIterations:r=4,numAdditionalFrictionIterations:l=4,numInternalPgsIterations:D=1,minIslandSize:G=128,maxCcdSubsteps:h=1,erp:c=.8}=g,y=io(CX),{invalidate:S}=QB(),k=Pe(()=>new Map),f=Pe(()=>new Map),d=Pe(()=>new Map),N=Pe(()=>new Map),q=Pe(()=>new Ap(!1)),P=Pe(()=>new Set),U=Pe(()=>new Set),{proxy:K,reset:X,set:wA}=Pe(()=>gX(()=>new y.World(RV(t))));_.useEffect(()=>()=>{K.free(),X()},[]),_.useEffect(()=>{K.gravity=KV(t),K.integrationParameters.numSolverIterations=r,K.integrationParameters.numAdditionalFrictionIterations=l,K.integrationParameters.numInternalPgsIterations=D,K.integrationParameters.allowedLinearError=a,K.integrationParameters.minIslandSize=G,K.integrationParameters.maxCcdSubsteps=h,K.integrationParameters.predictionDistance=s,K.integrationParameters.erp=c},[K,...t,r,l,D,a,G,h,s,c]);const z=_.useCallback(BA=>{var gA;const hA=K.getCollider(BA),NA=N.get(BA),WA=f.get(BA),j=hA==null||(gA=hA.parent())===null||gA===void 0?void 0:gA.handle,x=j!==void 0?K.getRigidBody(j):void 0,Y=x&&j!==void 0?d.get(j):void 0,T=j!==void 0?k.get(j):void 0;return{collider:{object:hA,events:NA,state:WA},rigidBody:{object:x,events:Y,state:T}}},[]),[lA]=_.useState({previousState:{},accumulator:0}),aA=_.useCallback(BA=>{const gA=K,hA=C==="vary",NA=hE.clamp(BA,0,.5),WA=x=>{P.forEach(Y=>{Y.current(gA)}),gA.timestep=x,gA.step(q),U.forEach(Y=>{Y.current(gA)})};if(hA)WA(NA);else for(lA.accumulator+=NA;lA.accumulator>=C;)i&&(lA.previousState={},gA.forEachRigidBody(x=>{lA.previousState[x.handle]={position:x.translation(),rotation:x.rotation()}})),WA(C),lA.accumulator-=C;const j=hA||!i||B?1:lA.accumulator/C;k.forEach((x,Y)=>{const T=gA.getRigidBody(Y),tA=d.get(Y);if(tA!=null&&tA.onSleep||tA!=null&&tA.onWake){if(T.isSleeping()&&!x.isSleeping){var dA;tA==null||(dA=tA.onSleep)===null||dA===void 0||dA.call(tA)}if(!T.isSleeping()&&x.isSleeping){var EA;tA==null||(EA=tA.onWake)===null||EA===void 0||EA.call(tA)}x.isSleeping=T.isSleeping()}if(!T||T.isSleeping()&&!("isInstancedMesh"in x.object)||!x.setMatrix)return;let FA=T.translation(),W=T.rotation(),UA=lA.previousState[Y];UA&&(yE.compose(UA.position,AK(UA.rotation),x.scale).premultiply(x.invertedWorldMatrix).decompose(gB,CQ,Qo),x.meshType=="mesh"&&(x.object.position.copy(gB),x.object.quaternion.copy(CQ))),yE.compose(FA,AK(W),x.scale).premultiply(x.invertedWorldMatrix).decompose(gB,CQ,Qo),x.meshType=="instancedMesh"?x.setMatrix(yE):(x.object.position.lerp(gB,j),x.object.quaternion.slerp(CQ,j))}),q.drainCollisionEvents((x,Y,T)=>{const tA=z(x),dA=z(Y);if(!(tA!=null&&tA.collider.object)||!(dA!=null&&dA.collider.object))return;const EA=MD(tA,dA),FA=MD(dA,tA);if(T)gA.contactPair(tA.collider.object,dA.collider.object,(UI,JI)=>{var YI,HI,jA,IA,AI,$A,lI,pI;(YI=tA.rigidBody.events)===null||YI===void 0||(HI=YI.onCollisionEnter)===null||HI===void 0||HI.call(YI,Ug(Ug({},EA),{},{manifold:UI,flipped:JI})),(jA=dA.rigidBody.events)===null||jA===void 0||(IA=jA.onCollisionEnter)===null||IA===void 0||IA.call(jA,Ug(Ug({},FA),{},{manifold:UI,flipped:JI})),(AI=tA.collider.events)===null||AI===void 0||($A=AI.onCollisionEnter)===null||$A===void 0||$A.call(AI,Ug(Ug({},EA),{},{manifold:UI,flipped:JI})),(lI=dA.collider.events)===null||lI===void 0||(pI=lI.onCollisionEnter)===null||pI===void 0||pI.call(lI,Ug(Ug({},FA),{},{manifold:UI,flipped:JI}))});else{var W,UA,eA,DA,GA,bA,QA,F;(W=tA.rigidBody.events)===null||W===void 0||(UA=W.onCollisionExit)===null||UA===void 0||UA.call(W,EA),(eA=dA.rigidBody.events)===null||eA===void 0||(DA=eA.onCollisionExit)===null||DA===void 0||DA.call(eA,FA),(GA=tA.collider.events)===null||GA===void 0||(bA=GA.onCollisionExit)===null||bA===void 0||bA.call(GA,EA),(QA=dA.collider.events)===null||QA===void 0||(F=QA.onCollisionExit)===null||F===void 0||F.call(QA,FA)}if(T){if(gA.intersectionPair(tA.collider.object,dA.collider.object)){var m,cA,ZA,OA,YA,eI,CI,aI;(m=tA.rigidBody.events)===null||m===void 0||(cA=m.onIntersectionEnter)===null||cA===void 0||cA.call(m,EA),(ZA=dA.rigidBody.events)===null||ZA===void 0||(OA=ZA.onIntersectionEnter)===null||OA===void 0||OA.call(ZA,FA),(YA=tA.collider.events)===null||YA===void 0||(eI=YA.onIntersectionEnter)===null||eI===void 0||eI.call(YA,EA),(CI=dA.collider.events)===null||CI===void 0||(aI=CI.onIntersectionEnter)===null||aI===void 0||aI.call(CI,FA)}}else{var SI,fI,PA,bI,LI,kI,tI,sI;(SI=tA.rigidBody.events)===null||SI===void 0||(fI=SI.onIntersectionExit)===null||fI===void 0||fI.call(SI,EA),(PA=dA.rigidBody.events)===null||PA===void 0||(bI=PA.onIntersectionExit)===null||bI===void 0||bI.call(PA,FA),(LI=tA.collider.events)===null||LI===void 0||(kI=LI.onIntersectionExit)===null||kI===void 0||kI.call(LI,EA),(tI=dA.collider.events)===null||tI===void 0||(sI=tI.onIntersectionExit)===null||sI===void 0||sI.call(tI,FA)}}),q.drainContactForceEvents(x=>{var Y,T,tA,dA,EA,FA,W,UA;const eA=z(x.collider1()),DA=z(x.collider2());if(!(eA!=null&&eA.collider.object)||!(DA!=null&&DA.collider.object))return;const GA=MD(eA,DA),bA=MD(DA,eA);(Y=eA.rigidBody.events)===null||Y===void 0||(T=Y.onContactForce)===null||T===void 0||T.call(Y,Ug(Ug({},GA),{},{totalForce:x.totalForce(),totalForceMagnitude:x.totalForceMagnitude(),maxForceDirection:x.maxForceDirection(),maxForceMagnitude:x.maxForceMagnitude()})),(tA=DA.rigidBody.events)===null||tA===void 0||(dA=tA.onContactForce)===null||dA===void 0||dA.call(tA,Ug(Ug({},bA),{},{totalForce:x.totalForce(),totalForceMagnitude:x.totalForceMagnitude(),maxForceDirection:x.maxForceDirection(),maxForceMagnitude:x.maxForceMagnitude()})),(EA=eA.collider.events)===null||EA===void 0||(FA=EA.onContactForce)===null||FA===void 0||FA.call(EA,Ug(Ug({},GA),{},{totalForce:x.totalForce(),totalForceMagnitude:x.totalForceMagnitude(),maxForceDirection:x.maxForceDirection(),maxForceMagnitude:x.maxForceMagnitude()})),(W=DA.collider.events)===null||W===void 0||(UA=W.onContactForce)===null||UA===void 0||UA.call(W,Ug(Ug({},bA),{},{totalForce:x.totalForce(),totalForceMagnitude:x.totalForceMagnitude(),maxForceDirection:x.maxForceDirection(),maxForceMagnitude:x.maxForceMagnitude()}))}),gA.forEachActiveRigidBody(()=>{S()})},[B,C,i,K]),SA=_.useMemo(()=>({rapier:y,world:K,setWorld:BA=>{wA(BA)},physicsOptions:{colliders:A,gravity:t},rigidBodyStates:k,colliderStates:f,rigidBodyEvents:d,colliderEvents:N,beforeStepCallbacks:P,afterStepCallbacks:U,isPaused:B,isDebug:E,step:aA}),[B,aA,E,A,t]),b=_.useCallback(BA=>{B||aA(BA)},[B,aA]);return $I.createElement(dH.Provider,{value:SA},$I.createElement(TV,{onStep:b,type:e,updatePriority:Q}),E&&$I.createElement(IX,null),I)};function zC(){return zC=Object.assign?Object.assign.bind():function(g){for(var A=1;A{const C=_.useRef(),B=_.useCallback(()=>(C.current||(C.current=g()),C.current),I);return _.useEffect(()=>{const i=B(),Q=()=>A(i);return()=>{Q(),C.current=void 0}},[B]),B},iX=({x:g,y:A,z:I}={x:0,y:0,z:0})=>new O(g,A,I),ip=(g,A=null)=>{const I=_.useRef(A);return g&&typeof g!="function"?(g.current||(g.current=I.current),g):I},Di=_.memo(_.forwardRef((g,A)=>{const{children:I,position:C,rotation:B,quaternion:i,scale:Q,name:e}=g,{world:E,colliderEvents:t,colliderStates:a}=lS(),s=KH(),r=ip(A),l=_.useRef(null),D=_V.flatMap(c=>Array.isArray(g[c])?[...g[c]]:g[c]),G=pH(()=>{const c=l.current.getWorldScale(iX()),y=OV(g,E,c,s==null?void 0:s.getRigidBody);return typeof A=="function"&&A(y),r.current=y,y},c=>{E.getCollider(c.handle)&&E.removeCollider(c,!0)},[...D,s]);_.useEffect(()=>{const c=G();return a.set(c.handle,VV(c,l.current,s==null?void 0:s.ref.current)),()=>{a.delete(c.handle)}},[G]);const h=_.useMemo(()=>Ug(Ug({},MH(s==null?void 0:s.options)),g),[g,s==null?void 0:s.options]);return WV(G,h,a),AX(G,h,t,kH(s==null?void 0:s.options)),$I.createElement("object3D",{position:C,rotation:B,quaternion:i,scale:Q,ref:l,name:e},I)})),QX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"cuboid",ref:A})));QX.displayName="CuboidCollider";const eX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"roundCuboid",ref:A})));eX.displayName="RoundCuboidCollider";const UH=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"ball",ref:A})));UH.displayName="BallCollider";const EX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"capsule",ref:A})));EX.displayName="CapsuleCollider";const tX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"heightfield",ref:A})));tX.displayName="HeightfieldCollider";const oX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"trimesh",ref:A})));oX.displayName="TrimeshCollider";const nX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"cone",ref:A})));nX.displayName="ConeCollider";const aX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"roundCone",ref:A})));aX.displayName="RoundConeCollider";const NH=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"cylinder",ref:A})));NH.displayName="CylinderCollider";NH.displayName="RoundCylinderCollider";const sX=$I.forwardRef((g,A)=>$I.createElement(Di,zC({},g,{shape:"convexHull",ref:A})));sX.displayName="ConvexHullCollider";const rX=g=>{var A;const I=SH((g==null?void 0:g.type)||"dynamic"),C=new Ri(I);return C.canSleep=(A=g==null?void 0:g.canSleep)!==null&&A!==void 0?A:!0,C},lX=({rigidBody:g,object:A,setMatrix:I,getMatrix:C,worldScale:B,meshType:i="mesh"})=>{A.updateWorldMatrix(!0,!1);const Q=A.parent.matrixWorld.clone().invert();return{object:A,rigidBody:g,invertedWorldMatrix:Q,setMatrix:I||(e=>{A.matrix.copy(e)}),getMatrix:C||(e=>e.copy(A.matrix)),scale:B||A.getWorldScale(Qo).clone(),isSleeping:!1,meshType:i}},cX=["args","colliders","canSleep"],FH={gravityScale:(g,A)=>{g.setGravityScale(A,!0)},additionalSolverIterations(g,A){g.setAdditionalSolverIterations(A)},linearDamping:(g,A)=>{g.setLinearDamping(A)},angularDamping:(g,A)=>{g.setAngularDamping(A)},dominanceGroup:(g,A)=>{g.setDominanceGroup(A)},enabledRotations:(g,[A,I,C])=>{g.setEnabledRotations(A,I,C,!0)},enabledTranslations:(g,[A,I,C])=>{g.setEnabledTranslations(A,I,C,!0)},lockRotations:(g,A)=>{g.lockRotations(A,!0)},lockTranslations:(g,A)=>{g.lockTranslations(A,!0)},angularVelocity:(g,[A,I,C])=>{g.setAngvel({x:A,y:I,z:C},!0)},linearVelocity:(g,[A,I,C])=>{g.setLinvel({x:A,y:I,z:C},!0)},ccd:(g,A)=>{g.enableCcd(A)},userData:(g,A)=>{g.userData=A},type(g,A){g.setBodyType(SH(A),!0)},position:()=>{},rotation:()=>{},quaternion:()=>{},scale:()=>{}},fH=Object.keys(FH),DX=(g,A,I,C=!0)=>{if(!g)return;const B=I.get(g.handle);B&&(C&&(B.object.updateWorldMatrix(!0,!1),yE.copy(B.object.matrixWorld).decompose(gB,CQ,Qo),g.setTranslation(gB,!1),g.setRotation(CQ,!1)),fH.forEach(i=>{i in A&&FH[i](g,A[i])}))},hX=(g,A,I,C=!0)=>{const B=_.useMemo(()=>fH.flatMap(i=>GH(A[i])),[A]);_.useEffect(()=>{const i=g();DX(i,A,I,C)},B)},wX=(g,A,I)=>{const{onWake:C,onSleep:B,onCollisionEnter:i,onCollisionExit:Q,onIntersectionEnter:e,onIntersectionExit:E,onContactForce:t}=A,a={onWake:C,onSleep:B,onCollisionEnter:i,onCollisionExit:Q,onIntersectionEnter:e,onIntersectionExit:E,onContactForce:t};_.useEffect(()=>{const s=g();return I.set(s.handle,a),()=>{I.delete(s.handle)}},[C,B,i,Q,e,E,t])},SX=["children","type","position","rotation","scale","quaternion","transformState"],RH=_.createContext(void 0),KH=()=>_.useContext(RH),cS=_.memo(_.forwardRef((g,A)=>{const{children:I,type:C,position:B,rotation:i,scale:Q,quaternion:e,transformState:E}=g,t=Cp(g,SX),a=_.useRef(null),s=ip(A),{world:r,rigidBodyStates:l,physicsOptions:D,rigidBodyEvents:G}=lS(),h=_.useMemo(()=>Ug(Ug(Ug({},D),g),{},{children:void 0}),[D,g]),c=cX.flatMap(f=>Array.isArray(h[f])?[...h[f]]:h[f]),y=Bp(a,h),S=pH(()=>{const f=rX(h),d=r.createRigidBody(f);return typeof A=="function"&&A(d),s.current=d,d},f=>{r.getRigidBody(f.handle)&&r.removeRigidBody(f)},c);_.useEffect(()=>{const f=S(),d=lX({rigidBody:f,object:a.current});return l.set(f.handle,g.transformState?g.transformState(d):d),()=>{l.delete(f.handle)}},[S]),hX(S,h,l),wX(S,h,G);const k=_.useMemo(()=>({ref:a,getRigidBody:S,options:h}),[S]);return $I.createElement(RH.Provider,{value:k},$I.createElement("object3D",zC({ref:a},t,{position:B,rotation:i,quaternion:e,scale:Q}),I,y.map((f,d)=>$I.createElement(Di,zC({key:d},f)))))}));cS.displayName="RigidBody";const GX=_.memo(g=>{const{children:A,type:I}=g,{physicsOptions:C}=lS(),B=_.useRef(null),{options:i}=KH(),Q=_.useMemo(()=>Ug(Ug(Ug({},C),i),{},{children:void 0,colliders:I}),[C,i]),e=Bp(B,Q,!1);return $I.createElement("object3D",{ref:B,userData:{r3RapierType:"MeshCollider"}},A,e.map((E,t)=>$I.createElement(Di,zC({key:t},E))))});GX.displayName="MeshCollider";const yX=["children","instances","colliderNodes","position","rotation","quaternion","scale"],uX=_.memo(_.forwardRef((g,A)=>{const I=ip(A,[]),C=_.useRef(null),B=_.useRef(null),{children:i,instances:Q,colliderNodes:e=[],position:E,rotation:t,quaternion:a,scale:s}=g,r=Cp(g,yX),l=Bp(C,Ug(Ug({},g),{},{children:void 0})),D=()=>{const h=B.current.children[0];if(h&&"isInstancedMesh"in h)return h};_.useEffect(()=>{const h=D();h?h.instanceMatrix.setUsage(Ee):console.warn("InstancedRigidBodies expects exactly one child, which must be an InstancedMesh")},[]);const G=(h,c)=>{const y=D();return y?Ug(Ug({},h),{},{getMatrix:S=>(y.getMatrixAt(c,S),S),setMatrix:S=>{y.setMatrixAt(c,S),y.instanceMatrix.needsUpdate=!0},meshType:"instancedMesh"}):h};return $I.createElement("object3D",zC({ref:C},r,{position:E,rotation:t,quaternion:a,scale:s}),$I.createElement("object3D",{ref:B},i),Q==null?void 0:Q.map((h,c)=>$I.createElement(cS,zC({},r,h,{ref:y=>I.current[c]=y,transformState:y=>G(y,c)}),$I.createElement($I.Fragment,null,e.map((y,S)=>$I.createElement(_.Fragment,{key:S},y)),l.map((y,S)=>$I.createElement(Di,zC({key:S},y)))))))}));uX.displayName="InstancedRigidBodies";function kX(g){const{nodes:A,materials:I}=gl("/uikit/examples/card/smileys-transformed.glb");return JA.jsxs("group",{...g,dispose:null,children:[JA.jsx(Ds,{children:JA.jsx("mesh",{geometry:A.hash.geometry,material:I.PaletteMaterial001,position:[-4.095,1.891,-2.58],scale:.216})}),JA.jsx(Ds,{children:JA.jsx("mesh",{geometry:A.star001.geometry,material:I.PaletteMaterial001,position:[2.932,-2.747,-2.807],scale:.278})}),JA.jsx(Ds,{children:JA.jsx("mesh",{geometry:A.play.geometry,material:I.PaletteMaterial001,position:[3.722,.284,-1.553],scale:.245})}),JA.jsx(Ds,{children:JA.jsx("mesh",{geometry:A.points.geometry,material:I.PaletteMaterial001,position:[3,2.621,-1.858],scale:.239})}),JA.jsx(Ds,{children:JA.jsx("mesh",{geometry:A.Ellipse.geometry,material:I.PaletteMaterial001,position:[-3.275,-1,-3.389],scale:.317})})]})}function MX(){const{nodes:g,materials:A}=gl("/uikit/examples/card/smileys-transformed.glb"),I=_.useMemo(()=>Object.values(g).filter(C=>C.isMesh),[g]);return JA.jsxs(BX,{gravity:[0,0,0],children:[I.map(C=>JA.jsx(dX,{mesh:C},C.uuid)),JA.jsx(pX,{offset:0})]})}function dX({mesh:g,vec:A=new O}){const I=_.useRef();return NC((C,B)=>{var i;(i=I.current)==null||i.applyImpulse(A.copy(I.current.translation()).negate().add({x:0,y:2,z:0}).multiplyScalar(.2))}),JA.jsx(cS,{ref:I,scale:.2,position:[hE.randFloatSpread(10),hE.randFloatSpread(10),hE.randFloatSpread(10)],linearDamping:4,angularDamping:1,friction:.1,colliders:"ball",children:JA.jsx("mesh",{geometry:g.geometry,material:g.material})})}function pX({vec:g=new O}){const A=_.useRef();return NC(({mouse:I,viewport:C})=>{var B;(B=A.current)==null||B.setNextKinematicTranslation(g.set(I.x*C.width/2,I.y*C.height/2,0))}),JA.jsx(cS,{position:[0,0,0],type:"kinematicPosition",colliders:!1,ref:A,children:JA.jsx(UH,{args:[2]})})}Yw(oW);x8("light");const Q0=[{title:"Your call has been confirmed.",description:"1 hour ago"}];function UX(){return JA.jsx(uP,{camera:{position:[0,0,18],fov:32.5},style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:JA.jsxs(EH,{children:[JA.jsx("ambientLight",{intensity:Math.PI}),JA.jsx("spotLight",{decay:0,position:[0,5,10],angle:.25,penumbra:1,intensity:2,castShadow:!0}),JA.jsx(Dd,{pixelSize:.01,children:JA.jsx(FX,{})}),JA.jsx(X5,{justifyContent:"flex-end",alignItems:"center",paddingBottom:32,children:JA.jsx(tH,{onClick:()=>window.open("https://github.com/pmndrs/uikit/tree/main/examples/card","_blank"),children:JA.jsx(yQ,{children:"Source Code"})})}),JA.jsx(kX,{position:[0,0,7]}),JA.jsx(eY,{preset:"city"}),JA.jsx(NX,{})]})})}function NX(){NC((g,A)=>{Wu.damp3(g.camera.position,[g.pointer.x*2,g.pointer.y*2,18],.35,A),g.camera.lookAt(0,0,-10)})}function FX(){const g=_.useRef(!1),A=_.useMemo(()=>fg(-460),[]),I=_.useMemo(()=>fg(0),[]);return NC((C,B)=>{Wu.damp(A,"value",g.current?0:-460,.2,B),Wu.damp(I,"value",g.current?200:0,.2,B)}),JA.jsx(Dd,{pixelSize:.01,sizeX:4.4,children:JA.jsxs(EH,{children:[JA.jsxs(qC,{backgroundColor:16777215,dark:{backgroundColor:0},borderRadius:20,onClick:C=>(C.stopPropagation(),g.current=!g.current),cursor:"pointer",zIndexOffset:10,transformTranslateZ:I,children:[JA.jsx(d5,{transformTranslateZ:1,padding:14,keepAspectRatio:!1,width:"100%",height:400,children:JA.jsxs("mesh",{children:[JA.jsx("roundedPlaneGeometry",{args:[1,1,.025]}),JA.jsxs(k8,{children:[JA.jsx("color",{attach:"background",args:["white"]}),JA.jsx("ambientLight",{intensity:Math.PI}),JA.jsx(eY,{preset:"city"}),JA.jsx(MX,{}),JA.jsx(r8,{makeDefault:!0,position:[0,0,10],fov:50})]})]})}),JA.jsxs(qC,{backgroundColor:16777215,dark:{backgroundColor:0},flexDirection:"row",padding:28,paddingTop:32,alignItems:"center",justifyContent:"space-between",borderBottomRadius:20,castShadow:!0,children:[JA.jsxs(qC,{gap:8,children:[JA.jsx(yQ,{fontWeight:"normal",fontSize:24,lineHeight:1,children:"VanArsdel Marketing"}),JA.jsx(yQ,{fontSize:20,fontWeight:"medium",letterSpacing:-.4,color:$g.primary,children:"1 activities for you"})]}),JA.jsxs(qC,{flexDirection:"row",gap:-6,children:[JA.jsx(C0,{width:40,src:"https://avatar.iran.liara.run/public/boy?username=Scot"}),JA.jsx(C0,{width:40,src:"https://avatar.iran.liara.run/public/boy?username=Theo"}),JA.jsx(C0,{width:40,src:"https://avatar.iran.liara.run/public/boy?username=Paul"})]})]})]}),JA.jsx(qC,{transformTranslateY:-40,overflow:"hidden",children:JA.jsxs(qC,{paddingTop:40,transformTranslateY:A,backgroundColor:$g.secondary,borderRadius:20,children:[JA.jsxs(EV,{children:[JA.jsx(tV,{children:JA.jsx(yQ,{children:"Notifications"})}),JA.jsx(oV,{children:JA.jsx(yQ,{children:"You have 3 unread messages."})})]}),JA.jsxs(nV,{flexDirection:"column",gap:16,children:[JA.jsxs(qC,{flexDirection:"row",alignItems:"center",gap:16,borderRadius:6,border:1,padding:16,children:[JA.jsx(CV,{}),JA.jsxs(qC,{gap:4,children:[JA.jsx(yQ,{fontSize:14,lineHeight:1,children:"Push Notifications"}),JA.jsx(yQ,{fontSize:14,lineHeight:1.43,color:$g.mutedForeground,children:"Send notifications to device."})]}),JA.jsx(qC,{flexGrow:1}),JA.jsx(sV,{})]}),JA.jsx(qC,{children:Q0.map((C,B)=>JA.jsxs(qC,{marginBottom:B===Q0.length-1?0:16,paddingBottom:B===Q0.length-1?0:16,alignItems:"flex-start",flexDirection:"row",gap:17,children:[JA.jsx(qC,{height:8,width:8,transformTranslateY:4,borderRadius:1e3,backgroundColor:$g.primary}),JA.jsxs(qC,{gap:4,children:[JA.jsx(yQ,{fontSize:14,lineHeight:1,children:C.title}),JA.jsx(yQ,{fontSize:14,lineHeight:1.43,color:$g.mutedForeground,children:C.description})]})]},B))})]}),JA.jsx(aV,{children:JA.jsxs(tH,{onClick:C=>(C.stopPropagation(),g.current=!g.current),flexDirection:"row",width:"100%",children:[JA.jsx(iV,{marginRight:8,height:16,width:16}),JA.jsx(yQ,{children:"Mark all as read"})]})})]})})]})})}lq(document.getElementById("root")).render(JA.jsx(_.StrictMode,{children:JA.jsx(UX,{})})); -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = [] - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -} diff --git a/examples/card/index.html b/examples/card/index.html index 5baff89c..fa01eb2a 100644 --- a/examples/card/index.html +++ b/examples/card/index.html @@ -5,7 +5,7 @@ Document - + diff --git a/examples/dashboard/assets/index-7L6Bvxzl.js b/examples/dashboard/assets/index-7L6Bvxzl.js new file mode 100644 index 00000000..db728c73 --- /dev/null +++ b/examples/dashboard/assets/index-7L6Bvxzl.js @@ -0,0 +1,4057 @@ +var ND=Object.defineProperty;var PD=(n,e,t)=>e in n?ND(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var We=(n,e,t)=>(PD(n,typeof e!="symbol"?e+"":e,t),t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function nw(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var iw={exports:{}},_g={},rw={exports:{}},Vt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Nh=Symbol.for("react.element"),UD=Symbol.for("react.portal"),FD=Symbol.for("react.fragment"),kD=Symbol.for("react.strict_mode"),GD=Symbol.for("react.profiler"),OD=Symbol.for("react.provider"),HD=Symbol.for("react.context"),zD=Symbol.for("react.forward_ref"),VD=Symbol.for("react.suspense"),WD=Symbol.for("react.memo"),YD=Symbol.for("react.lazy"),Mx=Symbol.iterator;function XD(n){return n===null||typeof n!="object"?null:(n=Mx&&n[Mx]||n["@@iterator"],typeof n=="function"?n:null)}var sw={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ow=Object.assign,aw={};function Bu(n,e,t){this.props=n,this.context=e,this.refs=aw,this.updater=t||sw}Bu.prototype.isReactComponent={};Bu.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Bu.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function lw(){}lw.prototype=Bu.prototype;function $C(n,e,t){this.props=n,this.context=e,this.refs=aw,this.updater=t||sw}var ev=$C.prototype=new lw;ev.constructor=$C;ow(ev,Bu.prototype);ev.isPureReactComponent=!0;var Qx=Array.isArray,cw=Object.prototype.hasOwnProperty,tv={current:null},uw={key:!0,ref:!0,__self:!0,__source:!0};function Aw(n,e,t){var i,r={},s=null,o=null;if(e!=null)for(i in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)cw.call(e,i)&&!uw.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(a===1)r.children=t;else if(1>>1,Ce=U[Ae];if(0>>1;Aer(O,te))kr(F,O)?(U[Ae]=F,U[k]=te,Ae=k):(U[Ae]=O,U[V]=te,Ae=V);else if(kr(F,te))U[Ae]=F,U[k]=te,Ae=k;else break e}}return ee}function r(U,ee){var te=U.sortIndex-ee.sortIndex;return te!==0?te:U.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var c=[],A=[],h=1,f=null,d=3,m=!1,E=!1,x=!1,y=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C(U){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=U)i(A),ee.sortIndex=ee.expirationTime,e(c,ee);else break;ee=t(A)}}function B(U){if(x=!1,C(U),!E)if(t(c)!==null)E=!0,ne(R);else{var ee=t(A);ee!==null&&ue(B,ee.startTime-U)}}function R(U,ee){E=!1,x&&(x=!1,p(P),P=-1),m=!0;var te=d;try{for(C(ee),f=t(c);f!==null&&(!(f.expirationTime>ee)||U&&!b());){var Ae=f.callback;if(typeof Ae=="function"){f.callback=null,d=f.priorityLevel;var Ce=Ae(f.expirationTime<=ee);ee=n.unstable_now(),typeof Ce=="function"?f.callback=Ce:f===t(c)&&i(c),C(ee)}else i(c);f=t(c)}if(f!==null)var ke=!0;else{var V=t(A);V!==null&&ue(B,V.startTime-ee),ke=!1}return ke}finally{f=null,d=te,m=!1}}var M=!1,T=null,P=-1,K=5,w=-1;function b(){return!(n.unstable_now()-wU||125Ae?(U.sortIndex=te,e(A,U),t(c)===null&&U===t(A)&&(x?(p(P),P=-1):x=!0,ue(B,te-Ae))):(U.sortIndex=Ce,e(c,U),E||m||(E=!0,ne(R))),U},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(U){var ee=d;return function(){var te=d;d=ee;try{return U.apply(this,arguments)}finally{d=te}}}})(pw);dw.exports=pw;var rb=dw.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var gw=Y,Br=rb;function Fe(n){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+n,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ey=Object.prototype.hasOwnProperty,sb=/^[: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]*$/,Tx={},Dx={};function ob(n){return ey.call(Dx,n)?!0:ey.call(Tx,n)?!1:sb.test(n)?Dx[n]=!0:(Tx[n]=!0,!1)}function ab(n,e,t,i){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:t!==null?!t.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function lb(n,e,t,i){if(e===null||typeof e>"u"||ab(n,e,t,i))return!0;if(i)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Xi(n,e,t,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=n,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var yi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){yi[n]=new Xi(n,0,!1,n,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var e=n[0];yi[e]=new Xi(e,1,!1,n[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(n){yi[n]=new Xi(n,2,!1,n.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){yi[n]=new Xi(n,2,!1,n,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(n){yi[n]=new Xi(n,3,!1,n.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(n){yi[n]=new Xi(n,3,!0,n,null,!1,!1)});["capture","download"].forEach(function(n){yi[n]=new Xi(n,4,!1,n,null,!1,!1)});["cols","rows","size","span"].forEach(function(n){yi[n]=new Xi(n,6,!1,n,null,!1,!1)});["rowSpan","start"].forEach(function(n){yi[n]=new Xi(n,5,!1,n.toLowerCase(),null,!1,!1)});var iv=/[\-:]([a-z])/g;function rv(n){return n[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(n){var e=n.replace(iv,rv);yi[e]=new Xi(e,1,!1,n,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var e=n.replace(iv,rv);yi[e]=new Xi(e,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(n){var e=n.replace(iv,rv);yi[e]=new Xi(e,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(n){yi[n]=new Xi(n,1,!1,n.toLowerCase(),null,!1,!1)});yi.xlinkHref=new Xi("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(n){yi[n]=new Xi(n,1,!1,n.toLowerCase(),null,!0,!0)});function sv(n,e,t,i){var r=yi.hasOwnProperty(e)?yi[e]:null;(r!==null?r.type!==0:i||!(2a||r[o]!==s[a]){var c=` +`+r[o].replace(" at new "," at ");return n.displayName&&c.includes("")&&(c=c.replace("",n.displayName)),c}while(1<=o&&0<=a);break}}}finally{B0=!1,Error.prepareStackTrace=t}return(n=n?n.displayName||n.name:"")?xA(n):""}function cb(n){switch(n.tag){case 5:return xA(n.type);case 16:return xA("Lazy");case 13:return xA("Suspense");case 19:return xA("SuspenseList");case 0:case 2:case 15:return n=_0(n.type,!1),n;case 11:return n=_0(n.type.render,!1),n;case 1:return n=_0(n.type,!0),n;default:return""}}function ry(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case Vc:return"Fragment";case zc:return"Portal";case ty:return"Profiler";case ov:return"StrictMode";case ny:return"Suspense";case iy:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case yw:return(n.displayName||"Context")+".Consumer";case Ew:return(n._context.displayName||"Context")+".Provider";case av:var e=n.render;return n=n.displayName,n||(n=e.displayName||e.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case lv:return e=n.displayName||null,e!==null?e:ry(n.type)||"Memo";case ea:e=n._payload,n=n._init;try{return ry(n(e))}catch{}}return null}function ub(n){var e=n.type;switch(n.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=e.render,n=n.displayName||n.name||"",e.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ry(e);case 8:return e===ov?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Ia(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function vw(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Ab(n){var e=vw(n)?"checked":"value",t=Object.getOwnPropertyDescriptor(n.constructor.prototype,e),i=""+n[e];if(!n.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,s=t.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(n,e,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function qf(n){n._valueTracker||(n._valueTracker=Ab(n))}function Iw(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=vw(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}function Wp(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function sy(n,e){var t=e.checked;return Dn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??n._wrapperState.initialChecked})}function Lx(n,e){var t=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;t=Ia(e.value!=null?e.value:t),n._wrapperState={initialChecked:i,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function xw(n,e){e=e.checked,e!=null&&sv(n,"checked",e,!1)}function oy(n,e){xw(n,e);var t=Ia(e.value),i=e.type;if(t!=null)i==="number"?(t===0&&n.value===""||n.value!=t)&&(n.value=""+t):n.value!==""+t&&(n.value=""+t);else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}e.hasOwnProperty("value")?ay(n,e.type,t):e.hasOwnProperty("defaultValue")&&ay(n,e.type,Ia(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(n.defaultChecked=!!e.defaultChecked)}function Nx(n,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+n._wrapperState.initialValue,t||e===n.value||(n.value=e),n.defaultValue=e}t=n.name,t!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,t!==""&&(n.name=t)}function ay(n,e,t){(e!=="number"||Wp(n.ownerDocument)!==n)&&(t==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+t&&(n.defaultValue=""+t))}var BA=Array.isArray;function ou(n,e,t,i){if(n=n.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=Zf.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;e.firstChild;)n.appendChild(e.firstChild)}});function JA(n,e){if(e){var t=n.firstChild;if(t&&t===n.lastChild&&t.nodeType===3){t.nodeValue=e;return}}n.textContent=e}var DA={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},hb=["Webkit","ms","Moz","O"];Object.keys(DA).forEach(function(n){hb.forEach(function(e){e=e+n.charAt(0).toUpperCase()+n.substring(1),DA[e]=DA[n]})});function ww(n,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||DA.hasOwnProperty(n)&&DA[n]?(""+e).trim():e+"px"}function Mw(n,e){n=n.style;for(var t in e)if(e.hasOwnProperty(t)){var i=t.indexOf("--")===0,r=ww(t,e[t],i);t==="float"&&(t="cssFloat"),i?n.setProperty(t,r):n[t]=r}}var fb=Dn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function uy(n,e){if(e){if(fb[n]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Fe(137,n));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Fe(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Fe(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Fe(62))}}function Ay(n,e){if(n.indexOf("-")===-1)return typeof e.is=="string";switch(n){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!1;default:return!0}}var hy=null;function cv(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var fy=null,au=null,lu=null;function Fx(n){if(n=Fh(n)){if(typeof fy!="function")throw Error(Fe(280));var e=n.stateNode;e&&(e=Rg(e),fy(n.stateNode,n.type,e))}}function Qw(n){au?lu?lu.push(n):lu=[n]:au=n}function Rw(){if(au){var n=au,e=lu;if(lu=au=null,Fx(n),e)for(n=0;n>>=0,n===0?32:31-(Bb(n)/_b|0)|0}var $f=64,ed=4194304;function _A(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function jp(n,e){var t=n.pendingLanes;if(t===0)return 0;var i=0,r=n.suspendedLanes,s=n.pingedLanes,o=t&268435455;if(o!==0){var a=o&~r;a!==0?i=_A(a):(s&=o,s!==0&&(i=_A(s)))}else o=t&~r,o!==0?i=_A(o):s!==0&&(i=_A(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=t&16),e=n.entangledLanes,e!==0)for(n=n.entanglements,e&=i;0t;t++)e.push(n);return e}function Ph(n,e,t){n.pendingLanes|=e,e!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,e=31-rs(e),n[e]=t}function Qb(n,e){var t=n.pendingLanes&~e;n.pendingLanes=e,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=e,n.mutableReadLanes&=e,n.entangledLanes&=e,e=n.entanglements;var i=n.eventTimes;for(n=n.expirationTimes;0=LA),Xx=" ",Jx=!1;function Kw(n,e){switch(n){case"keyup":return i3.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qw(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Wc=!1;function s3(n,e){switch(n){case"compositionend":return qw(e);case"keypress":return e.which!==32?null:(Jx=!0,Xx);case"textInput":return n=e.data,n===Xx&&Jx?null:n;default:return null}}function o3(n,e){if(Wc)return n==="compositionend"||!mv&&Kw(n,e)?(n=Jw(),Cp=dv=sa=null,Wc=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=Zx(t)}}function tM(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?tM(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function nM(){for(var n=window,e=Wp();e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=Wp(n.document)}return e}function Ev(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}function p3(n){var e=nM(),t=n.focusedElem,i=n.selectionRange;if(e!==t&&t&&t.ownerDocument&&tM(t.ownerDocument.documentElement,t)){if(i!==null&&Ev(t)){if(e=i.start,n=i.end,n===void 0&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if(n=(e=t.ownerDocument||document)&&e.defaultView||window,n.getSelection){n=n.getSelection();var r=t.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!n.extend&&s>i&&(r=i,i=s,s=r),r=$x(t,s);var o=$x(t,i);r&&o&&(n.rangeCount!==1||n.anchorNode!==r.node||n.anchorOffset!==r.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),n.removeAllRanges(),s>i?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}}for(e=[],n=t;n=n.parentNode;)n.nodeType===1&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,Yc=null,yy=null,PA=null,Cy=!1;function eB(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;Cy||Yc==null||Yc!==Wp(i)||(i=Yc,"selectionStart"in i&&Ev(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),PA&&eh(PA,i)||(PA=i,i=Zp(yy,"onSelect"),0jc||(n.current=Sy[jc],Sy[jc]=null,jc--)}function mn(n,e){jc++,Sy[jc]=n.current,n.current=e}var xa={},Di=wa(xa),ir=wa(!1),Pl=xa;function pu(n,e){var t=n.type.contextTypes;if(!t)return xa;var i=n.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in t)r[s]=e[s];return i&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=e,n.__reactInternalMemoizedMaskedChildContext=r),r}function rr(n){return n=n.childContextTypes,n!=null}function eg(){xn(ir),xn(Di)}function aB(n,e,t){if(Di.current!==xa)throw Error(Fe(168));mn(Di,e),mn(ir,t)}function AM(n,e,t){var i=n.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(Fe(108,ub(n)||"Unknown",r));return Dn({},t,i)}function tg(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||xa,Pl=Di.current,mn(Di,n),mn(ir,ir.current),!0}function lB(n,e,t){var i=n.stateNode;if(!i)throw Error(Fe(169));t?(n=AM(n,e,Pl),i.__reactInternalMemoizedMergedChildContext=n,xn(ir),xn(Di),mn(Di,n)):xn(ir),mn(ir,t)}var no=null,Tg=!1,k0=!1;function hM(n){no===null?no=[n]:no.push(n)}function w3(n){Tg=!0,hM(n)}function Ma(){if(!k0&&no!==null){k0=!0;var n=0,e=un;try{var t=no;for(un=1;n>=o,r-=o,so=1<<32-rs(e)+r|t<P?(K=T,T=null):K=T.sibling;var w=d(p,T,C[P],B);if(w===null){T===null&&(T=K);break}n&&T&&w.alternate===null&&e(p,T),I=s(w,I,P),M===null?R=w:M.sibling=w,M=w,T=K}if(P===C.length)return t(p,T),Sn&&fl(p,P),R;if(T===null){for(;PP?(K=T,T=null):K=T.sibling;var b=d(p,T,w.value,B);if(b===null){T===null&&(T=K);break}n&&T&&b.alternate===null&&e(p,T),I=s(b,I,P),M===null?R=b:M.sibling=b,M=b,T=K}if(w.done)return t(p,T),Sn&&fl(p,P),R;if(T===null){for(;!w.done;P++,w=C.next())w=f(p,w.value,B),w!==null&&(I=s(w,I,P),M===null?R=w:M.sibling=w,M=w);return Sn&&fl(p,P),R}for(T=i(p,T);!w.done;P++,w=C.next())w=m(T,p,P,w.value,B),w!==null&&(n&&w.alternate!==null&&T.delete(w.key===null?P:w.key),I=s(w,I,P),M===null?R=w:M.sibling=w,M=w);return n&&T.forEach(function(q){return e(p,q)}),Sn&&fl(p,P),R}function y(p,I,C,B){if(typeof C=="object"&&C!==null&&C.type===Vc&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case Kf:e:{for(var R=C.key,M=I;M!==null;){if(M.key===R){if(R=C.type,R===Vc){if(M.tag===7){t(p,M.sibling),I=r(M,C.props.children),I.return=p,p=I;break e}}else if(M.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===ea&&pB(R)===M.type){t(p,M.sibling),I=r(M,C.props),I.ref=aA(p,M,C),I.return=p,p=I;break e}t(p,M);break}else e(p,M);M=M.sibling}C.type===Vc?(I=Rl(C.props.children,p.mode,B,C.key),I.return=p,p=I):(B=Mp(C.type,C.key,C.props,null,p.mode,B),B.ref=aA(p,I,C),B.return=p,p=B)}return o(p);case zc:e:{for(M=C.key;I!==null;){if(I.key===M)if(I.tag===4&&I.stateNode.containerInfo===C.containerInfo&&I.stateNode.implementation===C.implementation){t(p,I.sibling),I=r(I,C.children||[]),I.return=p,p=I;break e}else{t(p,I);break}else e(p,I);I=I.sibling}I=X0(C,p.mode,B),I.return=p,p=I}return o(p);case ea:return M=C._init,y(p,I,M(C._payload),B)}if(BA(C))return E(p,I,C,B);if(nA(C))return x(p,I,C,B);ad(p,C)}return typeof C=="string"&&C!==""||typeof C=="number"?(C=""+C,I!==null&&I.tag===6?(t(p,I.sibling),I=r(I,C),I.return=p,p=I):(t(p,I),I=Y0(C,p.mode,B),I.return=p,p=I),o(p)):t(p,I)}return y}var mu=CM(!0),vM=CM(!1),kh={},Rs=wa(kh),rh=wa(kh),sh=wa(kh);function Bl(n){if(n===kh)throw Error(Fe(174));return n}function wv(n,e){switch(mn(sh,e),mn(rh,n),mn(Rs,kh),n=e.nodeType,n){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:cy(null,"");break;default:n=n===8?e.parentNode:e,e=n.namespaceURI||null,n=n.tagName,e=cy(e,n)}xn(Rs),mn(Rs,e)}function Eu(){xn(Rs),xn(rh),xn(sh)}function IM(n){Bl(sh.current);var e=Bl(Rs.current),t=cy(e,n.type);e!==t&&(mn(rh,n),mn(Rs,t))}function Mv(n){rh.current===n&&(xn(Rs),xn(rh))}var Qn=wa(0);function ag(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var G0=[];function Qv(){for(var n=0;nt?t:4,n(!0);var i=O0.transition;O0.transition={};try{n(!1),e()}finally{un=t,O0.transition=i}}function FM(){return zr().memoizedState}function T3(n,e,t){var i=da(n);if(t={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null},kM(n))GM(e,t);else if(t=gM(n,e,t,i),t!==null){var r=zi();ss(t,n,i,r),OM(t,e,i)}}function D3(n,e,t){var i=da(n),r={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null};if(kM(n))GM(e,r);else{var s=n.alternate;if(n.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,t);if(r.hasEagerState=!0,r.eagerState=a,ls(a,o)){var c=e.interleaved;c===null?(r.next=r,_v(e)):(r.next=c.next,c.next=r),e.interleaved=r;return}}catch{}finally{}t=gM(n,e,r,i),t!==null&&(r=zi(),ss(t,n,i,r),OM(t,e,i))}}function kM(n){var e=n.alternate;return n===Tn||e!==null&&e===Tn}function GM(n,e){UA=lg=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function OM(n,e,t){if(t&4194240){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,Av(n,t)}}var cg={readContext:Hr,useCallback:_i,useContext:_i,useEffect:_i,useImperativeHandle:_i,useInsertionEffect:_i,useLayoutEffect:_i,useMemo:_i,useReducer:_i,useRef:_i,useState:_i,useDebugValue:_i,useDeferredValue:_i,useTransition:_i,useMutableSource:_i,useSyncExternalStore:_i,useId:_i,unstable_isNewReconciler:!1},b3={readContext:Hr,useCallback:function(n,e){return xs().memoizedState=[n,e===void 0?null:e],n},useContext:Hr,useEffect:mB,useImperativeHandle:function(n,e,t){return t=t!=null?t.concat([n]):null,Bp(4194308,4,bM.bind(null,e,n),t)},useLayoutEffect:function(n,e){return Bp(4194308,4,n,e)},useInsertionEffect:function(n,e){return Bp(4,2,n,e)},useMemo:function(n,e){var t=xs();return e=e===void 0?null:e,n=n(),t.memoizedState=[n,e],n},useReducer:function(n,e,t){var i=xs();return e=t!==void 0?t(e):e,i.memoizedState=i.baseState=e,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:e},i.queue=n,n=n.dispatch=T3.bind(null,Tn,n),[i.memoizedState,n]},useRef:function(n){var e=xs();return n={current:n},e.memoizedState=n},useState:gB,useDebugValue:Lv,useDeferredValue:function(n){return xs().memoizedState=n},useTransition:function(){var n=gB(!1),e=n[0];return n=R3.bind(null,n[1]),xs().memoizedState=n,[e,n]},useMutableSource:function(){},useSyncExternalStore:function(n,e,t){var i=Tn,r=xs();if(Sn){if(t===void 0)throw Error(Fe(407));t=t()}else{if(t=e(),ci===null)throw Error(Fe(349));Fl&30||_M(i,e,t)}r.memoizedState=t;var s={value:t,getSnapshot:e};return r.queue=s,mB(wM.bind(null,i,s,n),[n]),i.flags|=2048,lh(9,SM.bind(null,i,s,t,e),void 0,null),t},useId:function(){var n=xs(),e=ci.identifierPrefix;if(Sn){var t=oo,i=so;t=(i&~(1<<32-rs(i)-1)).toString(32)+t,e=":"+e+"R"+t,t=oh++,0<\/script>",n=n.removeChild(n.firstChild)):typeof i.is=="string"?n=o.createElement(t,{is:i.is}):(n=o.createElement(t),t==="select"&&(o=n,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):n=o.createElementNS(n,t),n[_s]=e,n[ih]=i,KM(n,e,!1,!1),e.stateNode=n;e:{switch(o=Ay(t,i),t){case"dialog":Cn("cancel",n),Cn("close",n),r=i;break;case"iframe":case"object":case"embed":Cn("load",n),r=i;break;case"video":case"audio":for(r=0;rCu&&(e.flags|=128,i=!0,lA(s,!1),e.lanes=4194304)}else{if(!i)if(n=ag(o),n!==null){if(e.flags|=128,i=!0,t=n.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),lA(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Sn)return Si(e),null}else 2*Hn()-s.renderingStartTime>Cu&&t!==1073741824&&(e.flags|=128,i=!0,lA(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(t=s.last,t!==null?t.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Hn(),e.sibling=null,t=Qn.current,mn(Qn,i?t&1|2:t&1),e):(Si(e),null);case 22:case 23:return Gv(),i=e.memoizedState!==null,n!==null&&n.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?mr&1073741824&&(Si(e),e.subtreeFlags&6&&(e.flags|=8192)):Si(e),null;case 24:return null;case 25:return null}throw Error(Fe(156,e.tag))}function O3(n,e){switch(Cv(e),e.tag){case 1:return rr(e.type)&&eg(),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return Eu(),xn(ir),xn(Di),Qv(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 5:return Mv(e),null;case 13:if(xn(Qn),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(Fe(340));gu()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return xn(Qn),null;case 4:return Eu(),null;case 10:return Bv(e.type._context),null;case 22:case 23:return Gv(),null;case 24:return null;default:return null}}var cd=!1,Ri=!1,H3=typeof WeakSet=="function"?WeakSet:Set,nt=null;function $c(n,e){var t=n.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(i){Pn(n,e,i)}else t.current=null}function Fy(n,e,t){try{t()}catch(i){Pn(n,e,i)}}var SB=!1;function z3(n,e){if(vy=Kp,n=nM(),Ev(n)){if("selectionStart"in n)var t={start:n.selectionStart,end:n.selectionEnd};else e:{t=(t=n.ownerDocument)&&t.defaultView||window;var i=t.getSelection&&t.getSelection();if(i&&i.rangeCount!==0){t=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{t.nodeType,s.nodeType}catch{t=null;break e}var o=0,a=-1,c=-1,A=0,h=0,f=n,d=null;t:for(;;){for(var m;f!==t||r!==0&&f.nodeType!==3||(a=o+r),f!==s||i!==0&&f.nodeType!==3||(c=o+i),f.nodeType===3&&(o+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===n)break t;if(d===t&&++A===r&&(a=o),d===s&&++h===i&&(c=o),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}t=a===-1||c===-1?null:{start:a,end:c}}else t=null}t=t||{start:0,end:0}}else t=null;for(Iy={focusedElem:n,selectionRange:t},Kp=!1,nt=e;nt!==null;)if(e=nt,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,nt=n;else for(;nt!==null;){e=nt;try{var E=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var x=E.memoizedProps,y=E.memoizedState,p=e.stateNode,I=p.getSnapshotBeforeUpdate(e.elementType===e.type?x:$r(e.type,x),y);p.__reactInternalSnapshotBeforeUpdate=I}break;case 3:var C=e.stateNode.containerInfo;C.nodeType===1?C.textContent="":C.nodeType===9&&C.documentElement&&C.removeChild(C.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Fe(163))}}catch(B){Pn(e,e.return,B)}if(n=e.sibling,n!==null){n.return=e.return,nt=n;break}nt=e.return}return E=SB,SB=!1,E}function FA(n,e,t){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&n)===n){var s=r.destroy;r.destroy=void 0,s!==void 0&&Fy(e,t,s)}r=r.next}while(r!==i)}}function Lg(n,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&n)===n){var i=t.create;t.destroy=i()}t=t.next}while(t!==e)}}function ky(n){var e=n.ref;if(e!==null){var t=n.stateNode;switch(n.tag){case 5:n=t;break;default:n=t}typeof e=="function"?e(n):e.current=n}}function $M(n){var e=n.alternate;e!==null&&(n.alternate=null,$M(e)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(e=n.stateNode,e!==null&&(delete e[_s],delete e[ih],delete e[_y],delete e[_3],delete e[S3])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function eQ(n){return n.tag===5||n.tag===3||n.tag===4}function wB(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||eQ(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function Gy(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(n,e):t.insertBefore(n,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(n,t)):(e=t,e.appendChild(n)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=$p));else if(i!==4&&(n=n.child,n!==null))for(Gy(n,e,t),n=n.sibling;n!==null;)Gy(n,e,t),n=n.sibling}function Oy(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.insertBefore(n,e):t.appendChild(n);else if(i!==4&&(n=n.child,n!==null))for(Oy(n,e,t),n=n.sibling;n!==null;)Oy(n,e,t),n=n.sibling}var gi=null,ts=!1;function Ho(n,e,t){for(t=t.child;t!==null;)tQ(n,e,t),t=t.sibling}function tQ(n,e,t){if(Qs&&typeof Qs.onCommitFiberUnmount=="function")try{Qs.onCommitFiberUnmount(Sg,t)}catch{}switch(t.tag){case 5:Ri||$c(t,e);case 6:var i=gi,r=ts;gi=null,Ho(n,e,t),gi=i,ts=r,gi!==null&&(ts?(n=gi,t=t.stateNode,n.nodeType===8?n.parentNode.removeChild(t):n.removeChild(t)):gi.removeChild(t.stateNode));break;case 18:gi!==null&&(ts?(n=gi,t=t.stateNode,n.nodeType===8?F0(n.parentNode,t):n.nodeType===1&&F0(n,t),ZA(n)):F0(gi,t.stateNode));break;case 4:i=gi,r=ts,gi=t.stateNode.containerInfo,ts=!0,Ho(n,e,t),gi=i,ts=r;break;case 0:case 11:case 14:case 15:if(!Ri&&(i=t.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&Fy(t,e,o),r=r.next}while(r!==i)}Ho(n,e,t);break;case 1:if(!Ri&&($c(t,e),i=t.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=t.memoizedProps,i.state=t.memoizedState,i.componentWillUnmount()}catch(a){Pn(t,e,a)}Ho(n,e,t);break;case 21:Ho(n,e,t);break;case 22:t.mode&1?(Ri=(i=Ri)||t.memoizedState!==null,Ho(n,e,t),Ri=i):Ho(n,e,t);break;default:Ho(n,e,t)}}function MB(n){var e=n.updateQueue;if(e!==null){n.updateQueue=null;var t=n.stateNode;t===null&&(t=n.stateNode=new H3),e.forEach(function(i){var r=Z3.bind(null,n,i);t.has(i)||(t.add(i),i.then(r,r))})}}function jr(n,e){var t=e.deletions;if(t!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=Hn()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*W3(i/1960))-i,10n?16:n,oa===null)var i=!1;else{if(n=oa,oa=null,hg=0,qt&6)throw Error(Fe(331));var r=qt;for(qt|=4,nt=n.current;nt!==null;){var s=nt,o=s.child;if(nt.flags&16){var a=s.deletions;if(a!==null){for(var c=0;cHn()-Fv?Ql(n,0):Uv|=t),sr(n,e)}function cQ(n,e){e===0&&(n.mode&1?(e=ed,ed<<=1,!(ed&130023424)&&(ed=4194304)):e=1);var t=zi();n=fo(n,e),n!==null&&(Ph(n,e,t),sr(n,t))}function q3(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),cQ(n,t)}function Z3(n,e){var t=0;switch(n.tag){case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;default:throw Error(Fe(314))}i!==null&&i.delete(e),cQ(n,t)}var uQ;uQ=function(n,e,t){if(n!==null)if(n.memoizedProps!==e.pendingProps||ir.current)nr=!0;else{if(!(n.lanes&t)&&!(e.flags&128))return nr=!1,k3(n,e,t);nr=!!(n.flags&131072)}else nr=!1,Sn&&e.flags&1048576&&fM(e,ig,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;_p(n,e),n=e.pendingProps;var r=pu(e,Di.current);uu(e,t),r=Tv(null,e,i,n,r,t);var s=Dv();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,rr(i)?(s=!0,tg(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,Sv(e),r.updater=Dg,e.stateNode=r,r._reactInternals=e,Ty(e,i,n,t),e=Ly(null,e,i,!0,s,t)):(e.tag=0,Sn&&s&&yv(e),Gi(null,e,r,t),e=e.child),e;case 16:i=e.elementType;e:{switch(_p(n,e),n=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=eL(i),n=$r(i,n),r){case 0:e=by(null,e,i,n,t);break e;case 1:e=xB(null,e,i,n,t);break e;case 11:e=vB(null,e,i,n,t);break e;case 14:e=IB(null,e,i,$r(i.type,n),t);break e}throw Error(Fe(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:$r(i,r),by(n,e,i,r,t);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:$r(i,r),xB(n,e,i,r,t);case 3:e:{if(XM(e),n===null)throw Error(Fe(387));i=e.pendingProps,s=e.memoizedState,r=s.element,mM(n,e),og(e,i,null,t);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=yu(Error(Fe(423)),e),e=BB(n,e,i,t,r);break e}else if(i!==r){r=yu(Error(Fe(424)),e),e=BB(n,e,i,t,r);break e}else for(Cr=Aa(e.stateNode.containerInfo.firstChild),Ir=e,Sn=!0,ns=null,t=vM(e,null,i,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(gu(),i===r){e=po(n,e,t);break e}Gi(n,e,i,t)}e=e.child}return e;case 5:return IM(e),n===null&&My(e),i=e.type,r=e.pendingProps,s=n!==null?n.memoizedProps:null,o=r.children,xy(i,r)?o=null:s!==null&&xy(i,s)&&(e.flags|=32),YM(n,e),Gi(n,e,o,t),e.child;case 6:return n===null&&My(e),null;case 13:return JM(n,e,t);case 4:return wv(e,e.stateNode.containerInfo),i=e.pendingProps,n===null?e.child=mu(e,null,i,t):Gi(n,e,i,t),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:$r(i,r),vB(n,e,i,r,t);case 7:return Gi(n,e,e.pendingProps,t),e.child;case 8:return Gi(n,e,e.pendingProps.children,t),e.child;case 12:return Gi(n,e,e.pendingProps.children,t),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,mn(rg,i._currentValue),i._currentValue=o,s!==null)if(ls(s.value,o)){if(s.children===r.children&&!ir.current){e=po(n,e,t);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var c=a.firstContext;c!==null;){if(c.context===i){if(s.tag===1){c=co(-1,t&-t),c.tag=2;var A=s.updateQueue;if(A!==null){A=A.shared;var h=A.pending;h===null?c.next=c:(c.next=h.next,h.next=c),A.pending=c}}s.lanes|=t,c=s.alternate,c!==null&&(c.lanes|=t),Qy(s.return,t,e),a.lanes|=t;break}c=c.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(Fe(341));o.lanes|=t,a=o.alternate,a!==null&&(a.lanes|=t),Qy(o,t,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Gi(n,e,r.children,t),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,uu(e,t),r=Hr(r),i=i(r),e.flags|=1,Gi(n,e,i,t),e.child;case 14:return i=e.type,r=$r(i,e.pendingProps),r=$r(i.type,r),IB(n,e,i,r,t);case 15:return VM(n,e,e.type,e.pendingProps,t);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:$r(i,r),_p(n,e),e.tag=1,rr(i)?(n=!0,tg(e)):n=!1,uu(e,t),yM(e,i,r),Ty(e,i,r,t),Ly(null,e,i,!0,n,t);case 19:return jM(n,e,t);case 22:return WM(n,e,t)}throw Error(Fe(156,e.tag))};function AQ(n,e){return Uw(n,e)}function $3(n,e,t,i){this.tag=n,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function kr(n,e,t,i){return new $3(n,e,t,i)}function Hv(n){return n=n.prototype,!(!n||!n.isReactComponent)}function eL(n){if(typeof n=="function")return Hv(n)?1:0;if(n!=null){if(n=n.$$typeof,n===av)return 11;if(n===lv)return 14}return 2}function pa(n,e){var t=n.alternate;return t===null?(t=kr(n.tag,e,n.key,n.mode),t.elementType=n.elementType,t.type=n.type,t.stateNode=n.stateNode,t.alternate=n,n.alternate=t):(t.pendingProps=e,t.type=n.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=n.flags&14680064,t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=n.sibling,t.index=n.index,t.ref=n.ref,t}function Mp(n,e,t,i,r,s){var o=2;if(i=n,typeof n=="function")Hv(n)&&(o=1);else if(typeof n=="string")o=5;else e:switch(n){case Vc:return Rl(t.children,r,s,e);case ov:o=8,r|=8;break;case ty:return n=kr(12,t,e,r|2),n.elementType=ty,n.lanes=s,n;case ny:return n=kr(13,t,e,r),n.elementType=ny,n.lanes=s,n;case iy:return n=kr(19,t,e,r),n.elementType=iy,n.lanes=s,n;case Cw:return Pg(t,r,s,e);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case Ew:o=10;break e;case yw:o=9;break e;case av:o=11;break e;case lv:o=14;break e;case ea:o=16,i=null;break e}throw Error(Fe(130,n==null?n:typeof n,""))}return e=kr(o,t,e,r),e.elementType=n,e.type=i,e.lanes=s,e}function Rl(n,e,t,i){return n=kr(7,n,i,e),n.lanes=t,n}function Pg(n,e,t,i){return n=kr(22,n,i,e),n.elementType=Cw,n.lanes=t,n.stateNode={isHidden:!1},n}function Y0(n,e,t){return n=kr(6,n,null,e),n.lanes=t,n}function X0(n,e,t){return e=kr(4,n.children!==null?n.children:[],n.key,e),e.lanes=t,e.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},e}function tL(n,e,t,i,r){this.tag=e,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=w0(0),this.expirationTimes=w0(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=w0(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function zv(n,e,t,i,r,s,o,a,c){return n=new tL(n,e,t,a,c),e===1?(e=1,s===!0&&(e|=8)):e=0,s=kr(3,null,null,e),n.current=s,s.stateNode=n,s.memoizedState={element:i,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},Sv(s),n}function nL(n,e,t){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pQ)}catch(n){console.error(n)}}pQ(),fw.exports=_r;var aL=fw.exports,gQ,PB=aL;gQ=PB.createRoot,PB.hydrateRoot;/** + * @license + * Copyright 2010-2023 Three.js Authors + * SPDX-License-Identifier: MIT + */const Og="161",lL={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},cL={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},mQ=0,Yy=1,EQ=2,uL=3,yQ=0,Hg=1,OA=2,es=3,Vr=0,Vi=1,Ss=2,uo=0,Tl=1,Xy=2,Jy=3,jy=4,CQ=5,ra=100,vQ=101,IQ=102,Ky=103,qy=104,xQ=200,BQ=201,_Q=202,SQ=203,pg=204,gg=205,wQ=206,MQ=207,QQ=208,RQ=209,TQ=210,DQ=211,bQ=212,LQ=213,NQ=214,PQ=0,UQ=1,FQ=2,uh=3,kQ=4,GQ=5,OQ=6,HQ=7,Gh=0,zQ=1,VQ=2,Ts=0,WQ=1,YQ=2,XQ=3,Xv=4,JQ=5,jQ=6,Zy="attached",KQ="detached",zg=300,go=301,Ba=302,Ah=303,hh=304,wu=306,fh=1e3,Ti=1001,dh=1002,Gn=1003,mg=1004,AL=1004,yl=1005,hL=1005,In=1006,HA=1007,fL=1007,ws=1008,dL=1008,Ds=1009,qQ=1010,ZQ=1011,Vg=1012,Jv=1013,ao=1014,Fr=1015,Ol=1016,jv=1017,Kv=1018,ga=1020,$Q=1021,Oi=1023,e2=1024,t2=1025,ma=1026,Hl=1027,n2=1028,qv=1029,i2=1030,Zv=1031,$v=1033,Qp=33776,Rp=33777,Tp=33778,Dp=33779,$y=35840,eC=35841,tC=35842,nC=35843,eI=36196,iC=37492,rC=37496,sC=37808,oC=37809,aC=37810,lC=37811,cC=37812,uC=37813,AC=37814,hC=37815,fC=37816,dC=37817,pC=37818,gC=37819,mC=37820,EC=37821,bp=36492,yC=36494,CC=36495,r2=36283,vC=36284,IC=36285,xC=36286,s2=2200,o2=2201,a2=2202,ph=2300,gh=2301,Lp=2302,_l=2400,Sl=2401,mh=2402,Wg=2500,tI=2501,pL=0,gL=1,mL=2,nI=3e3,Ea=3001,l2=3200,iI=3201,Qa=0,c2=1,Er="",On="srgb",bs="srgb-linear",Yg="display-p3",Oh="display-p3-linear",Eh="linear",gn="srgb",yh="rec709",Ch="p3",EL=0,pl=7680,yL=7681,CL=7682,vL=7683,IL=34055,xL=34056,BL=5386,_L=512,SL=513,wL=514,ML=515,QL=516,RL=517,TL=518,BC=519,u2=512,A2=513,h2=514,rI=515,f2=516,d2=517,p2=518,g2=519,vh=35044,aa=35048,DL=35040,bL=35045,LL=35049,NL=35041,PL=35046,UL=35050,FL=35042,kL="100",_C="300 es",Eg=1035,Ms=2e3,Ih=2001;class Eo{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const i=this._listeners[e.type];if(i!==void 0){e.target=this;const r=i.slice(0);for(let s=0,o=r.length;s>8&255]+wi[n>>16&255]+wi[n>>24&255]+"-"+wi[e&255]+wi[e>>8&255]+"-"+wi[e>>16&15|64]+wi[e>>24&255]+"-"+wi[t&63|128]+wi[t>>8&255]+"-"+wi[t>>16&255]+wi[t>>24&255]+wi[i&255]+wi[i>>8&255]+wi[i>>16&255]+wi[i>>24&255]).toLowerCase()}function Un(n,e,t){return Math.max(e,Math.min(t,n))}function sI(n,e){return(n%e+e)%e}function GL(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function OL(n,e,t){return n!==e?(t-n)/(e-n):0}function zA(n,e,t){return(1-t)*n+t*e}function HL(n,e,t,i){return zA(n,e,1-Math.exp(-t*i))}function zL(n,e=1){return e-Math.abs(sI(n,e*2)-e)}function VL(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function WL(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function YL(n,e){return n+Math.floor(Math.random()*(e-n+1))}function XL(n,e){return n+Math.random()*(e-n)}function JL(n){return n*(.5-Math.random())}function jL(n){n!==void 0&&(UB=n);let e=UB+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function KL(n){return n*Dl}function qL(n){return n*vu}function SC(n){return(n&n-1)===0&&n!==0}function ZL(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function yg(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function $L(n,e,t,i,r){const s=Math.cos,o=Math.sin,a=s(t/2),c=o(t/2),A=s((e+i)/2),h=o((e+i)/2),f=s((e-i)/2),d=o((e-i)/2),m=s((i-e)/2),E=o((i-e)/2);switch(r){case"XYX":n.set(a*h,c*f,c*d,a*A);break;case"YZY":n.set(c*d,a*h,c*f,a*A);break;case"ZXZ":n.set(c*f,c*d,a*h,a*A);break;case"XZX":n.set(a*h,c*E,c*m,a*A);break;case"YXY":n.set(c*m,a*h,c*E,a*A);break;case"ZYZ":n.set(c*E,c*m,a*h,a*A);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Hi(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function bt(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}const eN={DEG2RAD:Dl,RAD2DEG:vu,generateUUID:xr,clamp:Un,euclideanModulo:sI,mapLinear:GL,inverseLerp:OL,lerp:zA,damp:HL,pingpong:zL,smoothstep:VL,smootherstep:WL,randInt:YL,randFloat:XL,randFloatSpread:JL,seededRandom:jL,degToRad:KL,radToDeg:qL,isPowerOfTwo:SC,ceilPowerOfTwo:ZL,floorPowerOfTwo:yg,setQuaternionFromProperEuler:$L,normalize:bt,denormalize:Hi};class _e{constructor(e=0,t=0){_e.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Un(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Rt{constructor(e,t,i,r,s,o,a,c,A){Rt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,c,A)}set(e,t,i,r,s,o,a,c,A){const h=this.elements;return h[0]=e,h[1]=r,h[2]=a,h[3]=t,h[4]=s,h[5]=c,h[6]=i,h[7]=o,h[8]=A,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[3],c=i[6],A=i[1],h=i[4],f=i[7],d=i[2],m=i[5],E=i[8],x=r[0],y=r[3],p=r[6],I=r[1],C=r[4],B=r[7],R=r[2],M=r[5],T=r[8];return s[0]=o*x+a*I+c*R,s[3]=o*y+a*C+c*M,s[6]=o*p+a*B+c*T,s[1]=A*x+h*I+f*R,s[4]=A*y+h*C+f*M,s[7]=A*p+h*B+f*T,s[2]=d*x+m*I+E*R,s[5]=d*y+m*C+E*M,s[8]=d*p+m*B+E*T,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8];return t*o*h-t*a*A-i*s*h+i*a*c+r*s*A-r*o*c}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8],f=h*o-a*A,d=a*c-h*s,m=A*s-o*c,E=t*f+i*d+r*m;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);const x=1/E;return e[0]=f*x,e[1]=(r*A-h*i)*x,e[2]=(a*i-r*o)*x,e[3]=d*x,e[4]=(h*t-r*c)*x,e[5]=(r*s-a*t)*x,e[6]=m*x,e[7]=(i*c-A*t)*x,e[8]=(o*t-i*s)*x,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,a){const c=Math.cos(s),A=Math.sin(s);return this.set(i*c,i*A,-i*(c*o+A*a)+o+e,-r*A,r*c,-r*(-A*o+c*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(J0.makeScale(e,t)),this}rotate(e){return this.premultiply(J0.makeRotation(-e)),this}translate(e,t){return this.premultiply(J0.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const J0=new Rt;function m2(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const tN={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function tu(n,e){return new tN[n](e)}function xh(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function E2(){const n=xh("canvas");return n.style.display="block",n}const FB={};function bl(n){n in FB||(FB[n]=!0,console.warn(n))}const kB=new Rt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),GB=new Rt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),hd={[bs]:{transfer:Eh,primaries:yh,toReference:n=>n,fromReference:n=>n},[On]:{transfer:gn,primaries:yh,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[Oh]:{transfer:Eh,primaries:Ch,toReference:n=>n.applyMatrix3(GB),fromReference:n=>n.applyMatrix3(kB)},[Yg]:{transfer:gn,primaries:Ch,toReference:n=>n.convertSRGBToLinear().applyMatrix3(GB),fromReference:n=>n.applyMatrix3(kB).convertLinearToSRGB()}},nN=new Set([bs,Oh]),ln={enabled:!0,_workingColorSpace:bs,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!nN.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;const i=hd[e].toReference,r=hd[t].fromReference;return r(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return hd[n].primaries},getTransfer:function(n){return n===Er?Eh:hd[n].transfer}};function hu(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function j0(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let hc;class oI{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{hc===void 0&&(hc=xh("canvas")),hc.width=e.width,hc.height=e.height;const i=hc.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=hc}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=xh("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==zg)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case fh:e.x=e.x-Math.floor(e.x);break;case Ti:e.x=e.x<0?0:1;break;case dh:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case fh:e.y=e.y-Math.floor(e.y);break;case Ti:e.y=e.y<0?0:1;break;case dh:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return bl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===On?Ea:nI}set encoding(e){bl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===Ea?On:Er}}wn.DEFAULT_IMAGE=null;wn.DEFAULT_MAPPING=zg;wn.DEFAULT_ANISOTROPY=1;class cn{constructor(e=0,t=0,i=0,r=1){cn.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const c=e.elements,A=c[0],h=c[4],f=c[8],d=c[1],m=c[5],E=c[9],x=c[2],y=c[6],p=c[10];if(Math.abs(h-d)<.01&&Math.abs(f-x)<.01&&Math.abs(E-y)<.01){if(Math.abs(h+d)<.1&&Math.abs(f+x)<.1&&Math.abs(E+y)<.1&&Math.abs(A+m+p-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const C=(A+1)/2,B=(m+1)/2,R=(p+1)/2,M=(h+d)/4,T=(f+x)/4,P=(E+y)/4;return C>B&&C>R?C<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(C),r=M/i,s=T/i):B>R?B<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(B),i=M/r,s=P/r):R<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(R),i=T/s,r=P/s),this.set(i,r,s,t),this}let I=Math.sqrt((y-E)*(y-E)+(f-x)*(f-x)+(d-h)*(d-h));return Math.abs(I)<.001&&(I=1),this.x=(y-E)/I,this.y=(f-x)/I,this.z=(d-h)/I,this.w=Math.acos((A+m+p-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class y2 extends Eo{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new cn(0,0,e,t),this.scissorTest=!1,this.viewport=new cn(0,0,e,t);const r={width:e,height:t,depth:1};i.encoding!==void 0&&(bl("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===Ea?On:Er),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:In,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},i),this.texture=new wn(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps,this.texture.internalFormat=i.internalFormat,this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.depthTexture=i.depthTexture,this.samples=i.samples}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new wl(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Wr extends y2{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}}class Xg extends wn{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Ti,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class sN extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new Xg(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class aI extends wn{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Ti,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class oN extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new aI(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class aN extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const s=this.texture;this.texture=[];for(let o=0;o=0?1:-1,C=1-p*p;if(C>Number.EPSILON){const R=Math.sqrt(C),M=Math.atan2(R,p*I);y=Math.sin(y*M)/R,a=Math.sin(a*M)/R}const B=a*I;if(c=c*y+d*B,A=A*y+m*B,h=h*y+E*B,f=f*y+x*B,y===1-a){const R=1/Math.sqrt(c*c+A*A+h*h+f*f);c*=R,A*=R,h*=R,f*=R}}e[t]=c,e[t+1]=A,e[t+2]=h,e[t+3]=f}static multiplyQuaternionsFlat(e,t,i,r,s,o){const a=i[r],c=i[r+1],A=i[r+2],h=i[r+3],f=s[o],d=s[o+1],m=s[o+2],E=s[o+3];return e[t]=a*E+h*f+c*m-A*d,e[t+1]=c*E+h*d+A*f-a*m,e[t+2]=A*E+h*m+a*d-c*f,e[t+3]=h*E-a*f-c*d-A*m,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,a=Math.cos,c=Math.sin,A=a(i/2),h=a(r/2),f=a(s/2),d=c(i/2),m=c(r/2),E=c(s/2);switch(o){case"XYZ":this._x=d*h*f+A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f-d*m*E;break;case"YXZ":this._x=d*h*f+A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f+d*m*E;break;case"ZXY":this._x=d*h*f-A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f-d*m*E;break;case"ZYX":this._x=d*h*f-A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f+d*m*E;break;case"YZX":this._x=d*h*f+A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f-d*m*E;break;case"XZY":this._x=d*h*f-A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f+d*m*E;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],a=t[5],c=t[9],A=t[2],h=t[6],f=t[10],d=i+a+f;if(d>0){const m=.5/Math.sqrt(d+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-A)*m,this._z=(o-r)*m}else if(i>a&&i>f){const m=2*Math.sqrt(1+i-a-f);this._w=(h-c)/m,this._x=.25*m,this._y=(r+o)/m,this._z=(s+A)/m}else if(a>f){const m=2*Math.sqrt(1+a-i-f);this._w=(s-A)/m,this._x=(r+o)/m,this._y=.25*m,this._z=(c+h)/m}else{const m=2*Math.sqrt(1+f-i-a);this._w=(o-r)/m,this._x=(s+A)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Un(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,a=t._x,c=t._y,A=t._z,h=t._w;return this._x=i*h+o*a+r*A-s*c,this._y=r*h+o*c+s*a-i*A,this._z=s*h+o*A+i*c-r*a,this._w=o*h-i*a-r*c-s*A,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let a=o*e._w+i*e._x+r*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const c=1-a*a;if(c<=Number.EPSILON){const m=1-t;return this._w=m*o+t*this._w,this._x=m*i+t*this._x,this._y=m*r+t*this._y,this._z=m*s+t*this._z,this.normalize(),this}const A=Math.sqrt(c),h=Math.atan2(A,a),f=Math.sin((1-t)*h)/A,d=Math.sin(t*h)/A;return this._w=o*f+this._w*d,this._x=i*f+this._x*d,this._y=r*f+this._y*d,this._z=s*f+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(s),i*Math.cos(s),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class G{constructor(e=0,t=0,i=0){G.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(OB.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(OB.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,a=e.z,c=e.w,A=2*(o*r-a*i),h=2*(a*t-s*r),f=2*(s*i-o*t);return this.x=t+c*A+o*f-a*h,this.y=i+c*h+a*A-s*f,this.z=r+c*f+s*h-o*A,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,a=t.y,c=t.z;return this.x=r*c-s*a,this.y=s*o-i*c,this.z=i*a-r*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return q0.copy(this).projectOnVector(e),this.sub(q0)}reflect(e){return this.sub(q0.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Un(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const q0=new G,OB=new Wi;class ti{constructor(e=new G(1/0,1/0,1/0),t=new G(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,Kr),Kr.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(uA),dd.subVectors(this.max,uA),fc.subVectors(e.a,uA),dc.subVectors(e.b,uA),pc.subVectors(e.c,uA),zo.subVectors(dc,fc),Vo.subVectors(pc,dc),el.subVectors(fc,pc);let t=[0,-zo.z,zo.y,0,-Vo.z,Vo.y,0,-el.z,el.y,zo.z,0,-zo.x,Vo.z,0,-Vo.x,el.z,0,-el.x,-zo.y,zo.x,0,-Vo.y,Vo.x,0,-el.y,el.x,0];return!Z0(t,fc,dc,pc,dd)||(t=[1,0,0,0,1,0,0,0,1],!Z0(t,fc,dc,pc,dd))?!1:(pd.crossVectors(zo,Vo),t=[pd.x,pd.y,pd.z],Z0(t,fc,dc,pc,dd))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Kr).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(Kr).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Xs[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Xs[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Xs[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Xs[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Xs[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Xs[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Xs[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Xs[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Xs),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const Xs=[new G,new G,new G,new G,new G,new G,new G,new G],Kr=new G,fd=new ti,fc=new G,dc=new G,pc=new G,zo=new G,Vo=new G,el=new G,uA=new G,dd=new G,pd=new G,tl=new G;function Z0(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){tl.fromArray(n,s);const a=r.x*Math.abs(tl.x)+r.y*Math.abs(tl.y)+r.z*Math.abs(tl.z),c=e.dot(tl),A=t.dot(tl),h=i.dot(tl);if(Math.max(-Math.max(c,A,h),Math.min(c,A,h))>a)return!1}return!0}const lN=new ti,AA=new G,$0=new G;class ui{constructor(e=new G,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):lN.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;AA.subVectors(e,this.center);const t=AA.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(AA,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):($0.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(AA.copy(e.center).add($0)),this.expandByPoint(AA.copy(e.center).sub($0))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Js=new G,eE=new G,gd=new G,Wo=new G,tE=new G,md=new G,nE=new G;class Mu{constructor(e=new G,t=new G(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Js)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Js.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Js.copy(this.origin).addScaledVector(this.direction,t),Js.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){eE.copy(e).add(t).multiplyScalar(.5),gd.copy(t).sub(e).normalize(),Wo.copy(this.origin).sub(eE);const s=e.distanceTo(t)*.5,o=-this.direction.dot(gd),a=Wo.dot(this.direction),c=-Wo.dot(gd),A=Wo.lengthSq(),h=Math.abs(1-o*o);let f,d,m,E;if(h>0)if(f=o*c-a,d=o*a-c,E=s*h,f>=0)if(d>=-E)if(d<=E){const x=1/h;f*=x,d*=x,m=f*(f+o*d+2*a)+d*(o*f+d+2*c)+A}else d=s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;else d=-s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;else d<=-E?(f=Math.max(0,-(-o*s+a)),d=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+A):d<=E?(f=0,d=Math.min(Math.max(-s,-c),s),m=d*(d+2*c)+A):(f=Math.max(0,-(o*s+a)),d=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+A);else d=o>0?-s:s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;return i&&i.copy(this.origin).addScaledVector(this.direction,f),r&&r.copy(eE).addScaledVector(gd,d),m}intersectSphere(e,t){Js.subVectors(e.center,this.origin);const i=Js.dot(this.direction),r=Js.dot(Js)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=i-o,c=i+o;return c<0?null:a<0?this.at(c,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,a,c;const A=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,d=this.origin;return A>=0?(i=(e.min.x-d.x)*A,r=(e.max.x-d.x)*A):(i=(e.max.x-d.x)*A,r=(e.min.x-d.x)*A),h>=0?(s=(e.min.y-d.y)*h,o=(e.max.y-d.y)*h):(s=(e.max.y-d.y)*h,o=(e.min.y-d.y)*h),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(a=(e.min.z-d.z)*f,c=(e.max.z-d.z)*f):(a=(e.max.z-d.z)*f,c=(e.min.z-d.z)*f),i>c||a>r)||((a>i||i!==i)&&(i=a),(c=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,Js)!==null}intersectTriangle(e,t,i,r,s){tE.subVectors(t,e),md.subVectors(i,e),nE.crossVectors(tE,md);let o=this.direction.dot(nE),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;Wo.subVectors(this.origin,e);const c=a*this.direction.dot(md.crossVectors(Wo,md));if(c<0)return null;const A=a*this.direction.dot(tE.cross(Wo));if(A<0||c+A>o)return null;const h=-a*Wo.dot(nE);return h<0?null:this.at(h/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ft{constructor(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,y){ft.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,y)}set(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,y){const p=this.elements;return p[0]=e,p[4]=t,p[8]=i,p[12]=r,p[1]=s,p[5]=o,p[9]=a,p[13]=c,p[2]=A,p[6]=h,p[10]=f,p[14]=d,p[3]=m,p[7]=E,p[11]=x,p[15]=y,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ft().fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/gc.setFromMatrixColumn(e,0).length(),s=1/gc.setFromMatrixColumn(e,1).length(),o=1/gc.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),a=Math.sin(i),c=Math.cos(r),A=Math.sin(r),h=Math.cos(s),f=Math.sin(s);if(e.order==="XYZ"){const d=o*h,m=o*f,E=a*h,x=a*f;t[0]=c*h,t[4]=-c*f,t[8]=A,t[1]=m+E*A,t[5]=d-x*A,t[9]=-a*c,t[2]=x-d*A,t[6]=E+m*A,t[10]=o*c}else if(e.order==="YXZ"){const d=c*h,m=c*f,E=A*h,x=A*f;t[0]=d+x*a,t[4]=E*a-m,t[8]=o*A,t[1]=o*f,t[5]=o*h,t[9]=-a,t[2]=m*a-E,t[6]=x+d*a,t[10]=o*c}else if(e.order==="ZXY"){const d=c*h,m=c*f,E=A*h,x=A*f;t[0]=d-x*a,t[4]=-o*f,t[8]=E+m*a,t[1]=m+E*a,t[5]=o*h,t[9]=x-d*a,t[2]=-o*A,t[6]=a,t[10]=o*c}else if(e.order==="ZYX"){const d=o*h,m=o*f,E=a*h,x=a*f;t[0]=c*h,t[4]=E*A-m,t[8]=d*A+x,t[1]=c*f,t[5]=x*A+d,t[9]=m*A-E,t[2]=-A,t[6]=a*c,t[10]=o*c}else if(e.order==="YZX"){const d=o*c,m=o*A,E=a*c,x=a*A;t[0]=c*h,t[4]=x-d*f,t[8]=E*f+m,t[1]=f,t[5]=o*h,t[9]=-a*h,t[2]=-A*h,t[6]=m*f+E,t[10]=d-x*f}else if(e.order==="XZY"){const d=o*c,m=o*A,E=a*c,x=a*A;t[0]=c*h,t[4]=-f,t[8]=A*h,t[1]=d*f+x,t[5]=o*h,t[9]=m*f-E,t[2]=E*f-m,t[6]=a*h,t[10]=x*f+d}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(cN,e,uN)}lookAt(e,t,i){const r=this.elements;return pr.subVectors(e,t),pr.lengthSq()===0&&(pr.z=1),pr.normalize(),Yo.crossVectors(i,pr),Yo.lengthSq()===0&&(Math.abs(i.z)===1?pr.x+=1e-4:pr.z+=1e-4,pr.normalize(),Yo.crossVectors(i,pr)),Yo.normalize(),Ed.crossVectors(pr,Yo),r[0]=Yo.x,r[4]=Ed.x,r[8]=pr.x,r[1]=Yo.y,r[5]=Ed.y,r[9]=pr.y,r[2]=Yo.z,r[6]=Ed.z,r[10]=pr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[4],c=i[8],A=i[12],h=i[1],f=i[5],d=i[9],m=i[13],E=i[2],x=i[6],y=i[10],p=i[14],I=i[3],C=i[7],B=i[11],R=i[15],M=r[0],T=r[4],P=r[8],K=r[12],w=r[1],b=r[5],q=r[9],de=r[13],J=r[2],re=r[6],ne=r[10],ue=r[14],U=r[3],ee=r[7],te=r[11],Ae=r[15];return s[0]=o*M+a*w+c*J+A*U,s[4]=o*T+a*b+c*re+A*ee,s[8]=o*P+a*q+c*ne+A*te,s[12]=o*K+a*de+c*ue+A*Ae,s[1]=h*M+f*w+d*J+m*U,s[5]=h*T+f*b+d*re+m*ee,s[9]=h*P+f*q+d*ne+m*te,s[13]=h*K+f*de+d*ue+m*Ae,s[2]=E*M+x*w+y*J+p*U,s[6]=E*T+x*b+y*re+p*ee,s[10]=E*P+x*q+y*ne+p*te,s[14]=E*K+x*de+y*ue+p*Ae,s[3]=I*M+C*w+B*J+R*U,s[7]=I*T+C*b+B*re+R*ee,s[11]=I*P+C*q+B*ne+R*te,s[15]=I*K+C*de+B*ue+R*Ae,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],a=e[5],c=e[9],A=e[13],h=e[2],f=e[6],d=e[10],m=e[14],E=e[3],x=e[7],y=e[11],p=e[15];return E*(+s*c*f-r*A*f-s*a*d+i*A*d+r*a*m-i*c*m)+x*(+t*c*m-t*A*d+s*o*d-r*o*m+r*A*h-s*c*h)+y*(+t*A*f-t*a*m-s*o*f+i*o*m+s*a*h-i*A*h)+p*(-r*a*h-t*c*f+t*a*d+r*o*f-i*o*d+i*c*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8],f=e[9],d=e[10],m=e[11],E=e[12],x=e[13],y=e[14],p=e[15],I=f*y*A-x*d*A+x*c*m-a*y*m-f*c*p+a*d*p,C=E*d*A-h*y*A-E*c*m+o*y*m+h*c*p-o*d*p,B=h*x*A-E*f*A+E*a*m-o*x*m-h*a*p+o*f*p,R=E*f*c-h*x*c-E*a*d+o*x*d+h*a*y-o*f*y,M=t*I+i*C+r*B+s*R;if(M===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/M;return e[0]=I*T,e[1]=(x*d*s-f*y*s-x*r*m+i*y*m+f*r*p-i*d*p)*T,e[2]=(a*y*s-x*c*s+x*r*A-i*y*A-a*r*p+i*c*p)*T,e[3]=(f*c*s-a*d*s-f*r*A+i*d*A+a*r*m-i*c*m)*T,e[4]=C*T,e[5]=(h*y*s-E*d*s+E*r*m-t*y*m-h*r*p+t*d*p)*T,e[6]=(E*c*s-o*y*s-E*r*A+t*y*A+o*r*p-t*c*p)*T,e[7]=(o*d*s-h*c*s+h*r*A-t*d*A-o*r*m+t*c*m)*T,e[8]=B*T,e[9]=(E*f*s-h*x*s-E*i*m+t*x*m+h*i*p-t*f*p)*T,e[10]=(o*x*s-E*a*s+E*i*A-t*x*A-o*i*p+t*a*p)*T,e[11]=(h*a*s-o*f*s-h*i*A+t*f*A+o*i*m-t*a*m)*T,e[12]=R*T,e[13]=(h*x*r-E*f*r+E*i*d-t*x*d-h*i*y+t*f*y)*T,e[14]=(E*a*r-o*x*r-E*i*c+t*x*c+o*i*y-t*a*y)*T,e[15]=(o*f*r-h*a*r+h*i*c-t*f*c-o*i*d+t*a*d)*T,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,a=e.y,c=e.z,A=s*o,h=s*a;return this.set(A*o+i,A*a-r*c,A*c+r*a,0,A*a+r*c,h*a+i,h*c-r*o,0,A*c-r*a,h*c+r*o,s*c*c+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,a=t._z,c=t._w,A=s+s,h=o+o,f=a+a,d=s*A,m=s*h,E=s*f,x=o*h,y=o*f,p=a*f,I=c*A,C=c*h,B=c*f,R=i.x,M=i.y,T=i.z;return r[0]=(1-(x+p))*R,r[1]=(m+B)*R,r[2]=(E-C)*R,r[3]=0,r[4]=(m-B)*M,r[5]=(1-(d+p))*M,r[6]=(y+I)*M,r[7]=0,r[8]=(E+C)*T,r[9]=(y-I)*T,r[10]=(1-(d+x))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=gc.set(r[0],r[1],r[2]).length();const o=gc.set(r[4],r[5],r[6]).length(),a=gc.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],qr.copy(this);const A=1/s,h=1/o,f=1/a;return qr.elements[0]*=A,qr.elements[1]*=A,qr.elements[2]*=A,qr.elements[4]*=h,qr.elements[5]*=h,qr.elements[6]*=h,qr.elements[8]*=f,qr.elements[9]*=f,qr.elements[10]*=f,t.setFromRotationMatrix(qr),i.x=s,i.y=o,i.z=a,this}makePerspective(e,t,i,r,s,o,a=Ms){const c=this.elements,A=2*s/(t-e),h=2*s/(i-r),f=(t+e)/(t-e),d=(i+r)/(i-r);let m,E;if(a===Ms)m=-(o+s)/(o-s),E=-2*o*s/(o-s);else if(a===Ih)m=-o/(o-s),E=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return c[0]=A,c[4]=0,c[8]=f,c[12]=0,c[1]=0,c[5]=h,c[9]=d,c[13]=0,c[2]=0,c[6]=0,c[10]=m,c[14]=E,c[3]=0,c[7]=0,c[11]=-1,c[15]=0,this}makeOrthographic(e,t,i,r,s,o,a=Ms){const c=this.elements,A=1/(t-e),h=1/(i-r),f=1/(o-s),d=(t+e)*A,m=(i+r)*h;let E,x;if(a===Ms)E=(o+s)*f,x=-2*f;else if(a===Ih)E=s*f,x=-1*f;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return c[0]=2*A,c[4]=0,c[8]=0,c[12]=-d,c[1]=0,c[5]=2*h,c[9]=0,c[13]=-m,c[2]=0,c[6]=0,c[10]=x,c[14]=-E,c[3]=0,c[7]=0,c[11]=0,c[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const gc=new G,qr=new ft,cN=new G(0,0,0),uN=new G(1,1,1),Yo=new G,Ed=new G,pr=new G,HB=new ft,zB=new Wi;class Qu{constructor(e=0,t=0,i=0,r=Qu.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const r=e.elements,s=r[0],o=r[4],a=r[8],c=r[1],A=r[5],h=r[9],f=r[2],d=r[6],m=r[10];switch(t){case"XYZ":this._y=Math.asin(Un(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(d,A),this._z=0);break;case"YXZ":this._x=Math.asin(-Un(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,m),this._z=Math.atan2(c,A)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(Un(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-o,A)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-Un(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(d,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-o,A));break;case"YZX":this._z=Math.asin(Un(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,A),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(a,m));break;case"XZY":this._z=Math.asin(-Un(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,A),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return HB.makeRotationFromQuaternion(e),this.setFromRotationMatrix(HB,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return zB.setFromEuler(this),this.setFromQuaternion(zB,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Qu.DEFAULT_ORDER="XYZ";class Ll{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,c){return a[c.uuid]===void 0&&(a[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(e.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const c=a.shapes;if(Array.isArray(c))for(let A=0,h=c.length;A0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(i.geometries=a),c.length>0&&(i.materials=c),A.length>0&&(i.textures=A),h.length>0&&(i.images=h),f.length>0&&(i.shapes=f),d.length>0&&(i.skeletons=d),m.length>0&&(i.animations=m),E.length>0&&(i.nodes=E)}return i.object=r,i;function o(a){const c=[];for(const A in a){const h=a[A];delete h.metadata,c.push(h)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){Zr.subVectors(r,t),Ks.subVectors(i,t),iE.subVectors(e,t);const o=Zr.dot(Zr),a=Zr.dot(Ks),c=Zr.dot(iE),A=Ks.dot(Ks),h=Ks.dot(iE),f=o*A-a*a;if(f===0)return s.set(0,0,0),null;const d=1/f,m=(A*c-a*h)*d,E=(o*h-a*c)*d;return s.set(1-m-E,E,m)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,qs)===null?!1:qs.x>=0&&qs.y>=0&&qs.x+qs.y<=1}static getInterpolation(e,t,i,r,s,o,a,c){return this.getBarycoord(e,t,i,r,qs)===null?(c.x=0,c.y=0,"z"in c&&(c.z=0),"w"in c&&(c.w=0),null):(c.setScalar(0),c.addScaledVector(s,qs.x),c.addScaledVector(o,qs.y),c.addScaledVector(a,qs.z),c)}static isFrontFacing(e,t,i,r){return Zr.subVectors(i,t),Ks.subVectors(e,t),Zr.cross(Ks).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Zr.subVectors(this.c,this.b),Ks.subVectors(this.a,this.b),Zr.cross(Ks).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return yr.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return yr.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return yr.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return yr.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return yr.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,a;Ec.subVectors(r,i),yc.subVectors(s,i),rE.subVectors(e,i);const c=Ec.dot(rE),A=yc.dot(rE);if(c<=0&&A<=0)return t.copy(i);sE.subVectors(e,r);const h=Ec.dot(sE),f=yc.dot(sE);if(h>=0&&f<=h)return t.copy(r);const d=c*f-h*A;if(d<=0&&c>=0&&h<=0)return o=c/(c-h),t.copy(i).addScaledVector(Ec,o);oE.subVectors(e,s);const m=Ec.dot(oE),E=yc.dot(oE);if(E>=0&&m<=E)return t.copy(s);const x=m*A-c*E;if(x<=0&&A>=0&&E<=0)return a=A/(A-E),t.copy(i).addScaledVector(yc,a);const y=h*E-m*f;if(y<=0&&f-h>=0&&m-E>=0)return JB.subVectors(s,r),a=(f-h)/(f-h+(m-E)),t.copy(r).addScaledVector(JB,a);const p=1/(y+x+d);return o=x*p,a=d*p,t.copy(i).addScaledVector(Ec,o).addScaledVector(yc,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const C2={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Xo={h:0,s:0,l:0},Cd={h:0,s:0,l:0};function aE(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class Je{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=On){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,ln.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=ln.workingColorSpace){return this.r=e,this.g=t,this.b=i,ln.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=ln.workingColorSpace){if(e=sI(e,1),t=Un(t,0,1),i=Un(i,0,1),t===0)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=aE(o,s,e+1/3),this.g=aE(o,s,e),this.b=aE(o,s,e-1/3)}return ln.toWorkingColorSpace(this,r),this}setStyle(e,t=On){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=On){const i=C2[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=hu(e.r),this.g=hu(e.g),this.b=hu(e.b),this}copyLinearToSRGB(e){return this.r=j0(e.r),this.g=j0(e.g),this.b=j0(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=On){return ln.fromWorkingColorSpace(Mi.copy(this),e),Math.round(Un(Mi.r*255,0,255))*65536+Math.round(Un(Mi.g*255,0,255))*256+Math.round(Un(Mi.b*255,0,255))}getHexString(e=On){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=ln.workingColorSpace){ln.fromWorkingColorSpace(Mi.copy(this),t);const i=Mi.r,r=Mi.g,s=Mi.b,o=Math.max(i,r,s),a=Math.min(i,r,s);let c,A;const h=(a+o)/2;if(a===o)c=0,A=0;else{const f=o-a;switch(A=h<=.5?f/(o+a):f/(2-o-a),o){case i:c=(r-s)/f+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Tl&&(i.blending=this.blending),this.side!==Vr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==pg&&(i.blendSrc=this.blendSrc),this.blendDst!==gg&&(i.blendDst=this.blendDst),this.blendEquation!==ra&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==uh&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==BC&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==pl&&(i.stencilFail=this.stencilFail),this.stencilZFail!==pl&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==pl&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(s){const o=[];for(const a in s){const c=s[a];delete c.metadata,o.push(c)}return o}if(t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(t!==null){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class or extends hi{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Gh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const io=mN();function mN(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let c=0;c<256;++c){const A=c-127;A<-27?(i[c]=0,i[c|256]=32768,r[c]=24,r[c|256]=24):A<-14?(i[c]=1024>>-A-14,i[c|256]=1024>>-A-14|32768,r[c]=-A-1,r[c|256]=-A-1):A<=15?(i[c]=A+15<<10,i[c|256]=A+15<<10|32768,r[c]=13,r[c|256]=13):A<128?(i[c]=31744,i[c|256]=64512,r[c]=24,r[c|256]=24):(i[c]=31744,i[c|256]=64512,r[c]=13,r[c|256]=13)}const s=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let c=1;c<1024;++c){let A=c<<13,h=0;for(;!(A&8388608);)A<<=1,h-=8388608;A&=-8388609,h+=947912704,s[c]=A|h}for(let c=1024;c<2048;++c)s[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)o[c]=c<<23;o[31]=1199570944,o[32]=2147483648;for(let c=33;c<63;++c)o[c]=2147483648+(c-32<<23);o[63]=3347054592;for(let c=1;c<64;++c)c!==32&&(a[c]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:o,offsetTable:a}}function er(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Un(n,-65504,65504),io.floatView[0]=n;const e=io.uint32View[0],t=e>>23&511;return io.baseTable[t]+((e&8388607)>>io.shiftTable[t])}function wA(n){const e=n>>10;return io.uint32View[0]=io.mantissaTable[io.offsetTable[e]+(n&1023)]+io.exponentTable[e],io.floatView[0]}const EN={toHalfFloat:er,fromHalfFloat:wA},jn=new G,vd=new _e;class an{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=vh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Fr,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return bl("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const c=this.parameters;for(const A in c)c[A]!==void 0&&(e[A]=c[A]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const c in i){const A=i[c];e.data.attributes[c]=A.toJSON(e.data)}const r={};let s=!1;for(const c in this.morphAttributes){const A=this.morphAttributes[c],h=[];for(let f=0,d=A.length;f0&&(r[c]=h,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(t));const r=e.attributes;for(const A in r){const h=r[A];this.setAttribute(A,h.clone(t))}const s=e.morphAttributes;for(const A in s){const h=[],f=s[A];for(let d=0,m=f.length;d0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(jB.copy(s).invert(),nl.copy(e.ray).applyMatrix4(jB),!(i.boundingBox!==null&&nl.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,nl)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,a=s.index,c=s.attributes.position,A=s.attributes.uv,h=s.attributes.uv1,f=s.attributes.normal,d=s.groups,m=s.drawRange;if(a!==null)if(Array.isArray(o))for(let E=0,x=d.length;Et.far?null:{distance:A,point:Md.clone(),object:n}}function Qd(n,e,t,i,r,s,o,a,c,A){n.getVertexPosition(a,vc),n.getVertexPosition(c,Ic),n.getVertexPosition(A,xc);const h=wN(n,e,t,i,vc,Ic,xc,wd);if(h){r&&(Bd.fromBufferAttribute(r,a),_d.fromBufferAttribute(r,c),Sd.fromBufferAttribute(r,A),h.uv=yr.getInterpolation(wd,vc,Ic,xc,Bd,_d,Sd,new _e)),s&&(Bd.fromBufferAttribute(s,a),_d.fromBufferAttribute(s,c),Sd.fromBufferAttribute(s,A),h.uv1=yr.getInterpolation(wd,vc,Ic,xc,Bd,_d,Sd,new _e),h.uv2=h.uv1),o&&(qB.fromBufferAttribute(o,a),ZB.fromBufferAttribute(o,c),$B.fromBufferAttribute(o,A),h.normal=yr.getInterpolation(wd,vc,Ic,xc,qB,ZB,$B,new G),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const f={a,b:c,c:A,normal:new G,materialIndex:0};yr.getNormal(vc,Ic,xc,f.normal),h.face=f}return h}class Xl extends Lt{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const c=[],A=[],h=[],f=[];let d=0,m=0;E("z","y","x",-1,-1,i,t,e,o,s,0),E("z","y","x",1,-1,i,t,-e,o,s,1),E("x","z","y",1,1,e,i,t,r,o,2),E("x","z","y",1,-1,e,i,-t,r,o,3),E("x","y","z",1,-1,e,t,i,r,s,4),E("x","y","z",-1,-1,e,t,-i,r,s,5),this.setIndex(c),this.setAttribute("position",new st(A,3)),this.setAttribute("normal",new st(h,3)),this.setAttribute("uv",new st(f,2));function E(x,y,p,I,C,B,R,M,T,P,K){const w=B/T,b=R/P,q=B/2,de=R/2,J=M/2,re=T+1,ne=P+1;let ue=0,U=0;const ee=new G;for(let te=0;te0?1:-1,h.push(ee.x,ee.y,ee.z),f.push(Ce/T),f.push(1-te/P),ue+=1}}for(let te=0;te0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class Hh extends nn{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ft,this.projectionMatrix=new ft,this.projectionMatrixInverse=new ft,this.coordinateSystem=Ms}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Jo=new G,e_=new _e,t_=new _e;class $n extends Hh{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=vu*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(Dl*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return vu*2*Math.atan(Math.tan(Dl*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){Jo.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Jo.x,Jo.y).multiplyScalar(-e/Jo.z),Jo.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Jo.x,Jo.y).multiplyScalar(-e/Jo.z)}getViewSize(e,t){return this.getViewBounds(e,e_,t_),t.subVectors(t_,e_)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(Dl*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const c=o.fullWidth,A=o.fullHeight;s+=o.offsetX*r/c,t-=o.offsetY*i/A,r*=o.width/c,i*=o.height/A}const a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Bc=-90,_c=1;class x2 extends nn{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new $n(Bc,_c,e,t);r.layers=this.layers,this.add(r);const s=new $n(Bc,_c,e,t);s.layers=this.layers,this.add(s);const o=new $n(Bc,_c,e,t);o.layers=this.layers,this.add(o);const a=new $n(Bc,_c,e,t);a.layers=this.layers,this.add(a);const c=new $n(Bc,_c,e,t);c.layers=this.layers,this.add(c);const A=new $n(Bc,_c,e,t);A.layers=this.layers,this.add(A)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,a,c]=t;for(const A of t)this.remove(A);if(e===Ms)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(e===Ih)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const A of t)this.add(A),A.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,c,A,h]=this.children,f=e.getRenderTarget(),d=e.getActiveCubeFace(),m=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;const x=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,a),e.setRenderTarget(i,3,r),e.render(t,c),e.setRenderTarget(i,4,r),e.render(t,A),i.texture.generateMipmaps=x,e.setRenderTarget(i,5,r),e.render(t,h),e.setRenderTarget(f,d,m),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}}class zh extends wn{constructor(e,t,i,r,s,o,a,c,A,h){e=e!==void 0?e:[],t=t!==void 0?t:go,super(e,t,i,r,s,o,a,c,A,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class B2 extends Wr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];t.encoding!==void 0&&(bl("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===Ea?On:Er),this.texture=new zh(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:In}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},r=new Xl(5,5,5),s=new cs({name:"CubemapFromEquirect",uniforms:Iu(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Vi,blending:uo});s.uniforms.tEquirect.value=t;const o=new on(r,s),a=t.minFilter;return t.minFilter===ws&&(t.minFilter=In),new x2(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,r){const s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,i,r);e.setRenderTarget(s)}}const uE=new G,TN=new G,DN=new Rt;class An{constructor(e=new G(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){const r=uE.subVectors(i,t).cross(TN.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const i=e.delta(uE),r=this.normal.dot(i);if(r===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const s=-(e.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||DN.getNormalMatrix(e),r=this.coplanarPoint(uE).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const il=new ui,Rd=new G;class Vh{constructor(e=new An,t=new An,i=new An,r=new An,s=new An,o=new An){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=Ms){const i=this.planes,r=e.elements,s=r[0],o=r[1],a=r[2],c=r[3],A=r[4],h=r[5],f=r[6],d=r[7],m=r[8],E=r[9],x=r[10],y=r[11],p=r[12],I=r[13],C=r[14],B=r[15];if(i[0].setComponents(c-s,d-A,y-m,B-p).normalize(),i[1].setComponents(c+s,d+A,y+m,B+p).normalize(),i[2].setComponents(c+o,d+h,y+E,B+I).normalize(),i[3].setComponents(c-o,d-h,y-E,B-I).normalize(),i[4].setComponents(c-a,d-f,y-x,B-C).normalize(),t===Ms)i[5].setComponents(c+a,d+f,y+x,B+C).normalize();else if(t===Ih)i[5].setComponents(a,f,x,C).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),il.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),il.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(il)}intersectsSprite(e){return il.center.set(0,0,0),il.radius=.7071067811865476,il.applyMatrix4(e.matrixWorld),this.intersectsSphere(il)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,Rd.y=r.normal.y>0?e.max.y:e.min.y,Rd.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Rd)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function _2(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function bN(n,e){const t=e.isWebGL2,i=new WeakMap;function r(A,h){const f=A.array,d=A.usage,m=f.byteLength,E=n.createBuffer();n.bindBuffer(h,E),n.bufferData(h,f,d),A.onUploadCallback();let x;if(f instanceof Float32Array)x=n.FLOAT;else if(f instanceof Uint16Array)if(A.isFloat16BufferAttribute)if(t)x=n.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else x=n.UNSIGNED_SHORT;else if(f instanceof Int16Array)x=n.SHORT;else if(f instanceof Uint32Array)x=n.UNSIGNED_INT;else if(f instanceof Int32Array)x=n.INT;else if(f instanceof Int8Array)x=n.BYTE;else if(f instanceof Uint8Array)x=n.UNSIGNED_BYTE;else if(f instanceof Uint8ClampedArray)x=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:E,type:x,bytesPerElement:f.BYTES_PER_ELEMENT,version:A.version,size:m}}function s(A,h,f){const d=h.array,m=h._updateRange,E=h.updateRanges;if(n.bindBuffer(f,A),m.count===-1&&E.length===0&&n.bufferSubData(f,0,d),E.length!==0){for(let x=0,y=E.length;x 0 + vec4 plane; + #ifdef ALPHA_TO_COVERAGE + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + if ( clipOpacity == 0.0 ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + float unionClipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + } + #pragma unroll_loop_end + clipOpacity *= 1.0 - unionClipOpacity; + #endif + diffuseColor.a *= clipOpacity; + if ( diffuseColor.a == 0.0 ) discard; + #else + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif + #endif +#endif`,KN=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,qN=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,ZN=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,$N=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,eP=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,tP=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,nP=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,iP=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +#ifdef USE_ALPHAHASH + varying vec3 vPosition; +#endif +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); + return dot( weights, rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +} +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} // validated`,rP=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,sP=`vec3 transformedNormal = objectNormal; +#ifdef USE_TANGENT + vec3 transformedTangent = objectTangent; +#endif +#ifdef USE_BATCHING + mat3 bm = mat3( batchingMatrix ); + transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); + transformedNormal = bm * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = bm * transformedTangent; + #endif +#endif +#ifdef USE_INSTANCING + mat3 im = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); + transformedNormal = im * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = im * transformedTangent; + #endif +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,oP=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,aP=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,lP=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,cP=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,uP="gl_FragColor = linearToOutputTexel( gl_FragColor );",AP=` +const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( + vec3( 0.8224621, 0.177538, 0.0 ), + vec3( 0.0331941, 0.9668058, 0.0 ), + vec3( 0.0170827, 0.0723974, 0.9105199 ) +); +const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( + vec3( 1.2249401, - 0.2249404, 0.0 ), + vec3( - 0.0420569, 1.0420571, 0.0 ), + vec3( - 0.0196376, - 0.0786361, 1.0982735 ) +); +vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { + return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); +} +vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { + return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); +} +vec4 LinearTransferOETF( in vec4 value ) { + return value; +} +vec4 sRGBTransferOETF( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +} +vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return sRGBTransferOETF( value ); +}`,hP=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,fP=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,dP=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,pP=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,gP=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,mP=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,EP=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,yP=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,CP=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,vP=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,IP=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif`,xP=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,BP=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,_P=`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,SP=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +#if defined( USE_LIGHT_PROBES ) + uniform vec3 lightProbe[ 9 ]; +#endif +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( LEGACY_LIGHTS ) + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #else + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometryPosition; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometryPosition; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,wP=`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #ifdef USE_ANISOTROPY + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); + return getIBLRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif +#endif`,MP=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,QP=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,RP=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,TP=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,DP=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef USE_SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULAR_COLORMAP + specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEEN_COLORMAP + material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEEN_ROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; + #endif +#endif +#ifdef USE_ANISOTROPY + #ifdef USE_ANISOTROPYMAP + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; + #else + vec2 anisotropyV = anisotropyVector; + #endif + material.anisotropy = length( anisotropyV ); + if( material.anisotropy == 0.0 ) { + anisotropyV = vec2( 1.0, 0.0 ); + } else { + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + } + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; + material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; +#endif`,bP=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaT; + vec3 anisotropyT; + vec3 anisotropyB; + #endif +}; +vec3 clearcoatSpecularDirect = vec3( 0.0 ); +vec3 clearcoatSpecularIndirect = vec3( 0.0 ); +vec3 sheenSpecularDirect = vec3( 0.0 ); +vec3 sheenSpecularIndirect = vec3(0.0 ); +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +#ifdef USE_ANISOTROPY + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( gv + gl ); + return saturate(v); + } + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + return RECIPROCAL_PI * a2 * pow2 ( w2 ); + } +#endif +#ifdef USE_CLEARCOAT + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); + } +#endif +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + #ifdef USE_IRIDESCENCE + F = mix( F, material.iridescenceFresnel, material.iridescence ); + #endif + #ifdef USE_ANISOTROPY + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); + #else + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + #endif + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometryNormal; + vec3 viewDir = geometryViewDir; + vec3 position = geometryPosition; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); + #endif + #ifdef USE_SHEEN + sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,LP=` +vec3 geometryPosition = - vViewPosition; +vec3 geometryNormal = normal; +vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +vec3 geometryClearcoatNormal = vec3( 0.0 ); +#ifdef USE_CLEARCOAT + geometryClearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometryViewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometryPosition, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometryPosition, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + #if defined( USE_LIGHT_PROBES ) + irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); + #endif + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,NP=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,PP=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif`,UP=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,FP=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,kP=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,GP=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,OP=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,HP=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,zP=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + #if defined( USE_POINTS_UV ) + vec2 uv = vUv; + #else + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; + #endif +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,VP=`#if defined( USE_POINTS_UV ) + varying vec2 vUv; +#else + #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; + #endif +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,WP=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,YP=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,XP=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,JP=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif`,jP=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif`,KP=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif`,qP=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal *= faceDirection; + #endif +#endif +#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #ifdef USE_TANGENT + mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn = getTangentFrame( - vViewPosition, normal, + #if defined( USE_NORMALMAP ) + vNormalMapUv + #elif defined( USE_CLEARCOAT_NORMALMAP ) + vClearcoatNormalMapUv + #else + vUv + #endif + ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn[0] *= faceDirection; + tbn[1] *= faceDirection; + #endif +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + #ifdef USE_TANGENT + mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,ZP=`#ifdef USE_NORMALMAP_OBJECTSPACE + normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( USE_NORMALMAP_TANGENTSPACE ) + vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,$P=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,eU=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,tU=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,nU=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef USE_NORMALMAP_OBJECTSPACE + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) + mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( uv.st ); + vec2 st1 = dFdy( uv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); + return mat3( T * scale, B * scale, N ); + } +#endif`,iU=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,rU=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,sU=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif`,oU=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,aU=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,lU=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec2 packDepthToRG( in highp float v ) { + return packDepthToRGBA( v ).yx; +} +float unpackRGToDepth( const in highp vec2 v ) { + return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { + return depth * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * depth - far ); +}`,cU=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,uU=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_BATCHING + mvPosition = batchingMatrix * mvPosition; +#endif +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,AU=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,hU=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,fU=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,dU=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,pU=`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,gU=`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,mU=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,EU=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,yU=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,CU=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + mat4 getBoneMatrix( const in float i ) { + int size = textureSize( boneTexture, 0 ).x; + int j = int( i ) * 4; + int x = j % size; + int y = j / size; + vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); + vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); + vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); + vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); + return mat4( v1, v2, v3, v4 ); + } +#endif`,vU=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,IU=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,xU=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,BU=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,_U=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,SU=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return saturate( toneMappingExposure * color ); +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( + vec3( 1.6605, - 0.1246, - 0.0182 ), + vec3( - 0.5876, 1.1329, - 0.1006 ), + vec3( - 0.0728, - 0.0083, 1.1187 ) +); +const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( + vec3( 0.6274, 0.0691, 0.0164 ), + vec3( 0.3293, 0.9195, 0.0880 ), + vec3( 0.0433, 0.0113, 0.8956 ) +); +vec3 agxDefaultContrastApprox( vec3 x ) { + vec3 x2 = x * x; + vec3 x4 = x2 * x2; + return + 15.5 * x4 * x2 + - 40.14 * x4 * x + + 31.96 * x4 + - 6.868 * x2 * x + + 0.4298 * x2 + + 0.1191 * x + - 0.00232; +} +vec3 AgXToneMapping( vec3 color ) { + const mat3 AgXInsetMatrix = mat3( + vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), + vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), + vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) + ); + const mat3 AgXOutsetMatrix = mat3( + vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), + vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), + vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) + ); + const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; + color *= toneMappingExposure; + color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; + color = AgXInsetMatrix * color; + color = max( color, 1e-10 ); color = log2( color ); + color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); + color = clamp( color, 0.0, 1.0 ); + color = agxDefaultContrastApprox( color ); + color = AgXOutsetMatrix * color; + color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); + color = LINEAR_REC2020_TO_LINEAR_SRGB * color; + color = clamp( color, 0.0, 1.0 ); + return color; +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,wU=`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); +#endif`,MU=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + float w0( float a ) { + return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); + } + float w1( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); + } + float w2( float a ){ + return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); + } + float w3( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * a ); + } + float g0( float a ) { + return w0( a ) + w1( a ); + } + float g1( float a ) { + return w2( a ) + w3( a ); + } + float h0( float a ) { + return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); + } + float h1( float a ) { + return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); + } + vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { + uv = uv * texelSize.zw + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + float g0x = g0( fuv.x ); + float g1x = g1( fuv.x ); + float h0x = h0( fuv.x ); + float h1x = h1( fuv.x ); + float h0y = h0( fuv.y ); + float h1y = h1( fuv.y ); + vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); + } + vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { + vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); + vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); + vec2 fLodSizeInv = 1.0 / fLodSize; + vec2 cLodSizeInv = 1.0 / cLodSize; + vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); + vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); + return mix( fSample, cSample, fract( lod ) ); + } + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); + } + vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return vec3( 1.0 ); + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 attenuatedColor = transmittance * transmittedLight.rgb; + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; + return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); + } +#endif`,QU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + varying vec2 vNormalMapUv; +#endif +#ifdef USE_EMISSIVEMAP + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_SPECULARMAP + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,RU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + uniform mat3 mapTransform; + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + uniform mat3 alphaMapTransform; + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + uniform mat3 lightMapTransform; + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + uniform mat3 aoMapTransform; + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + uniform mat3 bumpMapTransform; + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + uniform mat3 normalMapTransform; + varying vec2 vNormalMapUv; +#endif +#ifdef USE_DISPLACEMENTMAP + uniform mat3 displacementMapTransform; + varying vec2 vDisplacementMapUv; +#endif +#ifdef USE_EMISSIVEMAP + uniform mat3 emissiveMapTransform; + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + uniform mat3 metalnessMapTransform; + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + uniform mat3 roughnessMapTransform; + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + uniform mat3 anisotropyMapTransform; + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + uniform mat3 clearcoatMapTransform; + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform mat3 clearcoatNormalMapTransform; + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform mat3 clearcoatRoughnessMapTransform; + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + uniform mat3 sheenColorMapTransform; + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + uniform mat3 sheenRoughnessMapTransform; + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + uniform mat3 iridescenceMapTransform; + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform mat3 iridescenceThicknessMapTransform; + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SPECULARMAP + uniform mat3 specularMapTransform; + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + uniform mat3 specularColorMapTransform; + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + uniform mat3 specularIntensityMapTransform; + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,TU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + vUv = vec3( uv, 1 ).xy; +#endif +#ifdef USE_MAP + vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ALPHAMAP + vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_LIGHTMAP + vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_AOMAP + vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_BUMPMAP + vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_NORMALMAP + vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_DISPLACEMENTMAP + vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_EMISSIVEMAP + vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_METALNESSMAP + vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ROUGHNESSMAP + vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ANISOTROPYMAP + vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOATMAP + vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCEMAP + vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_COLORMAP + vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULARMAP + vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_COLORMAP + vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_TRANSMISSIONMAP + vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_THICKNESSMAP + vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; +#endif`,DU=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_BATCHING + worldPosition = batchingMatrix * worldPosition; + #endif + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const bU=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,LU=`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,NU=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,PU=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,UU=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,FU=`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,kU=`#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,GU=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,OU=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,HU=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +#include +void main () { + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,zU=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,VU=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,WU=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,YU=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,XU=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,JU=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,jU=`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,KU=`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,qU=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,ZU=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,$U=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + vViewPosition = - mvPosition.xyz; +#endif +}`,eF=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,tF=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,nF=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,iF=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,rF=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define USE_SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef USE_SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULAR_COLORMAP + uniform sampler2D specularColorMap; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEEN_COLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEEN_ROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropyVector; + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,sF=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,oF=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,aF=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +#ifdef USE_POINTS_UV + varying vec2 vUv; + uniform mat3 uvTransform; +#endif +void main() { + #ifdef USE_POINTS_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + #endif + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,lF=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,cF=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,uF=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,AF=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,hF=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,Pt={alphahash_fragment:LN,alphahash_pars_fragment:NN,alphamap_fragment:PN,alphamap_pars_fragment:UN,alphatest_fragment:FN,alphatest_pars_fragment:kN,aomap_fragment:GN,aomap_pars_fragment:ON,batching_pars_vertex:HN,batching_vertex:zN,begin_vertex:VN,beginnormal_vertex:WN,bsdfs:YN,iridescence_fragment:XN,bumpmap_pars_fragment:JN,clipping_planes_fragment:jN,clipping_planes_pars_fragment:KN,clipping_planes_pars_vertex:qN,clipping_planes_vertex:ZN,color_fragment:$N,color_pars_fragment:eP,color_pars_vertex:tP,color_vertex:nP,common:iP,cube_uv_reflection_fragment:rP,defaultnormal_vertex:sP,displacementmap_pars_vertex:oP,displacementmap_vertex:aP,emissivemap_fragment:lP,emissivemap_pars_fragment:cP,colorspace_fragment:uP,colorspace_pars_fragment:AP,envmap_fragment:hP,envmap_common_pars_fragment:fP,envmap_pars_fragment:dP,envmap_pars_vertex:pP,envmap_physical_pars_fragment:wP,envmap_vertex:gP,fog_vertex:mP,fog_pars_vertex:EP,fog_fragment:yP,fog_pars_fragment:CP,gradientmap_pars_fragment:vP,lightmap_fragment:IP,lightmap_pars_fragment:xP,lights_lambert_fragment:BP,lights_lambert_pars_fragment:_P,lights_pars_begin:SP,lights_toon_fragment:MP,lights_toon_pars_fragment:QP,lights_phong_fragment:RP,lights_phong_pars_fragment:TP,lights_physical_fragment:DP,lights_physical_pars_fragment:bP,lights_fragment_begin:LP,lights_fragment_maps:NP,lights_fragment_end:PP,logdepthbuf_fragment:UP,logdepthbuf_pars_fragment:FP,logdepthbuf_pars_vertex:kP,logdepthbuf_vertex:GP,map_fragment:OP,map_pars_fragment:HP,map_particle_fragment:zP,map_particle_pars_fragment:VP,metalnessmap_fragment:WP,metalnessmap_pars_fragment:YP,morphcolor_vertex:XP,morphnormal_vertex:JP,morphtarget_pars_vertex:jP,morphtarget_vertex:KP,normal_fragment_begin:qP,normal_fragment_maps:ZP,normal_pars_fragment:$P,normal_pars_vertex:eU,normal_vertex:tU,normalmap_pars_fragment:nU,clearcoat_normal_fragment_begin:iU,clearcoat_normal_fragment_maps:rU,clearcoat_pars_fragment:sU,iridescence_pars_fragment:oU,opaque_fragment:aU,packing:lU,premultiplied_alpha_fragment:cU,project_vertex:uU,dithering_fragment:AU,dithering_pars_fragment:hU,roughnessmap_fragment:fU,roughnessmap_pars_fragment:dU,shadowmap_pars_fragment:pU,shadowmap_pars_vertex:gU,shadowmap_vertex:mU,shadowmask_pars_fragment:EU,skinbase_vertex:yU,skinning_pars_vertex:CU,skinning_vertex:vU,skinnormal_vertex:IU,specularmap_fragment:xU,specularmap_pars_fragment:BU,tonemapping_fragment:_U,tonemapping_pars_fragment:SU,transmission_fragment:wU,transmission_pars_fragment:MU,uv_pars_fragment:QU,uv_pars_vertex:RU,uv_vertex:TU,worldpos_vertex:DU,background_vert:bU,background_frag:LU,backgroundCube_vert:NU,backgroundCube_frag:PU,cube_vert:UU,cube_frag:FU,depth_vert:kU,depth_frag:GU,distanceRGBA_vert:OU,distanceRGBA_frag:HU,equirect_vert:zU,equirect_frag:VU,linedashed_vert:WU,linedashed_frag:YU,meshbasic_vert:XU,meshbasic_frag:JU,meshlambert_vert:jU,meshlambert_frag:KU,meshmatcap_vert:qU,meshmatcap_frag:ZU,meshnormal_vert:$U,meshnormal_frag:eF,meshphong_vert:tF,meshphong_frag:nF,meshphysical_vert:iF,meshphysical_frag:rF,meshtoon_vert:sF,meshtoon_frag:oF,points_vert:aF,points_frag:lF,shadow_vert:cF,shadow_frag:uF,sprite_vert:AF,sprite_frag:hF},Ye={common:{diffuse:{value:new Je(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Rt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Rt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Rt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Rt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Rt},normalScale:{value:new _e(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Rt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Rt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Rt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Rt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Je(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Je(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0},uvTransform:{value:new Rt}},sprite:{diffuse:{value:new Je(16777215)},opacity:{value:1},center:{value:new _e(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}}},is={basic:{uniforms:Fi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.fog]),vertexShader:Pt.meshbasic_vert,fragmentShader:Pt.meshbasic_frag},lambert:{uniforms:Fi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:Pt.meshlambert_vert,fragmentShader:Pt.meshlambert_frag},phong:{uniforms:Fi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},specular:{value:new Je(1118481)},shininess:{value:30}}]),vertexShader:Pt.meshphong_vert,fragmentShader:Pt.meshphong_frag},standard:{uniforms:Fi([Ye.common,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.roughnessmap,Ye.metalnessmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Pt.meshphysical_vert,fragmentShader:Pt.meshphysical_frag},toon:{uniforms:Fi([Ye.common,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.gradientmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:Pt.meshtoon_vert,fragmentShader:Pt.meshtoon_frag},matcap:{uniforms:Fi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,{matcap:{value:null}}]),vertexShader:Pt.meshmatcap_vert,fragmentShader:Pt.meshmatcap_frag},points:{uniforms:Fi([Ye.points,Ye.fog]),vertexShader:Pt.points_vert,fragmentShader:Pt.points_frag},dashed:{uniforms:Fi([Ye.common,Ye.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Pt.linedashed_vert,fragmentShader:Pt.linedashed_frag},depth:{uniforms:Fi([Ye.common,Ye.displacementmap]),vertexShader:Pt.depth_vert,fragmentShader:Pt.depth_frag},normal:{uniforms:Fi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,{opacity:{value:1}}]),vertexShader:Pt.meshnormal_vert,fragmentShader:Pt.meshnormal_frag},sprite:{uniforms:Fi([Ye.sprite,Ye.fog]),vertexShader:Pt.sprite_vert,fragmentShader:Pt.sprite_frag},background:{uniforms:{uvTransform:{value:new Rt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Pt.background_vert,fragmentShader:Pt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Pt.backgroundCube_vert,fragmentShader:Pt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Pt.cube_vert,fragmentShader:Pt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Pt.equirect_vert,fragmentShader:Pt.equirect_frag},distanceRGBA:{uniforms:Fi([Ye.common,Ye.displacementmap,{referencePosition:{value:new G},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Pt.distanceRGBA_vert,fragmentShader:Pt.distanceRGBA_frag},shadow:{uniforms:Fi([Ye.lights,Ye.fog,{color:{value:new Je(0)},opacity:{value:1}}]),vertexShader:Pt.shadow_vert,fragmentShader:Pt.shadow_frag}};is.physical={uniforms:Fi([is.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Rt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Rt},clearcoatNormalScale:{value:new _e(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Rt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Rt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Rt},sheen:{value:0},sheenColor:{value:new Je(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Rt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Rt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Rt},transmissionSamplerSize:{value:new _e},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Rt},attenuationDistance:{value:0},attenuationColor:{value:new Je(0)},specularColor:{value:new Je(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Rt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Rt},anisotropyVector:{value:new _e},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Rt}}]),vertexShader:Pt.meshphysical_vert,fragmentShader:Pt.meshphysical_frag};const Td={r:0,b:0,g:0};function fF(n,e,t,i,r,s,o){const a=new Je(0);let c=s===!0?0:1,A,h,f=null,d=0,m=null;function E(y,p){let I=!1,C=p.isScene===!0?p.background:null;C&&C.isTexture&&(C=(p.backgroundBlurriness>0?t:e).get(C)),C===null?x(a,c):C&&C.isColor&&(x(C,1),I=!0);const B=n.xr.getEnvironmentBlendMode();B==="additive"?i.buffers.color.setClear(0,0,0,1,o):B==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||I)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),C&&(C.isCubeTexture||C.mapping===wu)?(h===void 0&&(h=new on(new Xl(1,1,1),new cs({name:"BackgroundCubeMaterial",uniforms:Iu(is.backgroundCube.uniforms),vertexShader:is.backgroundCube.vertexShader,fragmentShader:is.backgroundCube.fragmentShader,side:Vi,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,M,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=C,h.material.uniforms.flipEnvMap.value=C.isCubeTexture&&C.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=p.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,h.material.toneMapped=ln.getTransfer(C.colorSpace)!==gn,(f!==C||d!==C.version||m!==n.toneMapping)&&(h.material.needsUpdate=!0,f=C,d=C.version,m=n.toneMapping),h.layers.enableAll(),y.unshift(h,h.geometry,h.material,0,0,null)):C&&C.isTexture&&(A===void 0&&(A=new on(new Ra(2,2),new cs({name:"BackgroundMaterial",uniforms:Iu(is.background.uniforms),vertexShader:is.background.vertexShader,fragmentShader:is.background.fragmentShader,side:Vr,depthTest:!1,depthWrite:!1,fog:!1})),A.geometry.deleteAttribute("normal"),Object.defineProperty(A.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(A)),A.material.uniforms.t2D.value=C,A.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,A.material.toneMapped=ln.getTransfer(C.colorSpace)!==gn,C.matrixAutoUpdate===!0&&C.updateMatrix(),A.material.uniforms.uvTransform.value.copy(C.matrix),(f!==C||d!==C.version||m!==n.toneMapping)&&(A.material.needsUpdate=!0,f=C,d=C.version,m=n.toneMapping),A.layers.enableAll(),y.unshift(A,A.geometry,A.material,0,0,null))}function x(y,p){y.getRGB(Td,v2(n)),i.buffers.color.setClear(Td.r,Td.g,Td.b,p,o)}return{getClearColor:function(){return a},setClearColor:function(y,p=1){a.set(y),c=p,x(a,c)},getClearAlpha:function(){return c},setClearAlpha:function(y){c=y,x(a,c)},render:E}}function dF(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||s!==null,a={},c=y(null);let A=c,h=!1;function f(J,re,ne,ue,U){let ee=!1;if(o){const te=x(ue,ne,re);A!==te&&(A=te,m(A.object)),ee=p(J,ue,ne,U),ee&&I(J,ue,ne,U)}else{const te=re.wireframe===!0;(A.geometry!==ue.id||A.program!==ne.id||A.wireframe!==te)&&(A.geometry=ue.id,A.program=ne.id,A.wireframe=te,ee=!0)}U!==null&&t.update(U,n.ELEMENT_ARRAY_BUFFER),(ee||h)&&(h=!1,P(J,re,ne,ue),U!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(U).buffer))}function d(){return i.isWebGL2?n.createVertexArray():s.createVertexArrayOES()}function m(J){return i.isWebGL2?n.bindVertexArray(J):s.bindVertexArrayOES(J)}function E(J){return i.isWebGL2?n.deleteVertexArray(J):s.deleteVertexArrayOES(J)}function x(J,re,ne){const ue=ne.wireframe===!0;let U=a[J.id];U===void 0&&(U={},a[J.id]=U);let ee=U[re.id];ee===void 0&&(ee={},U[re.id]=ee);let te=ee[ue];return te===void 0&&(te=y(d()),ee[ue]=te),te}function y(J){const re=[],ne=[],ue=[];for(let U=0;U=0){const V=U[Ce];let O=ee[Ce];if(O===void 0&&(Ce==="instanceMatrix"&&J.instanceMatrix&&(O=J.instanceMatrix),Ce==="instanceColor"&&J.instanceColor&&(O=J.instanceColor)),V===void 0||V.attribute!==O||O&&V.data!==O.data)return!0;te++}return A.attributesNum!==te||A.index!==ue}function I(J,re,ne,ue){const U={},ee=re.attributes;let te=0;const Ae=ne.getAttributes();for(const Ce in Ae)if(Ae[Ce].location>=0){let V=ee[Ce];V===void 0&&(Ce==="instanceMatrix"&&J.instanceMatrix&&(V=J.instanceMatrix),Ce==="instanceColor"&&J.instanceColor&&(V=J.instanceColor));const O={};O.attribute=V,V&&V.data&&(O.data=V.data),U[Ce]=O,te++}A.attributes=U,A.attributesNum=te,A.index=ue}function C(){const J=A.newAttributes;for(let re=0,ne=J.length;re=0){let ke=U[Ae];if(ke===void 0&&(Ae==="instanceMatrix"&&J.instanceMatrix&&(ke=J.instanceMatrix),Ae==="instanceColor"&&J.instanceColor&&(ke=J.instanceColor)),ke!==void 0){const V=ke.normalized,O=ke.itemSize,k=t.get(ke);if(k===void 0)continue;const F=k.buffer,me=k.type,Ie=k.bytesPerElement,oe=i.isWebGL2===!0&&(me===n.INT||me===n.UNSIGNED_INT||ke.gpuType===Jv);if(ke.isInterleavedBufferAttribute){const Be=ke.data,H=Be.stride,Ee=ke.offset;if(Be.isInstancedInterleavedBuffer){for(let ie=0;ie0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext";let a=t.precision!==void 0?t.precision:"highp";const c=s(a);c!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",c,"instead."),a=c);const A=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,f=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),d=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),m=n.getParameter(n.MAX_TEXTURE_SIZE),E=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),x=n.getParameter(n.MAX_VERTEX_ATTRIBS),y=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),p=n.getParameter(n.MAX_VARYING_VECTORS),I=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),C=d>0,B=o||e.has("OES_texture_float"),R=C&&B,M=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:A,getMaxAnisotropy:r,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:d,maxTextureSize:m,maxCubemapSize:E,maxAttributes:x,maxVertexUniforms:y,maxVaryings:p,maxFragmentUniforms:I,vertexTextures:C,floatFragmentTextures:B,floatVertexTextures:R,maxSamples:M}}function mF(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new An,a=new Rt,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,d){const m=f.length!==0||d||i!==0||r;return r=d,i=f.length,m},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(f,d){t=h(f,d,0)},this.setState=function(f,d,m){const E=f.clippingPlanes,x=f.clipIntersection,y=f.clipShadows,p=n.get(f);if(!r||E===null||E.length===0||s&&!y)s?h(null):A();else{const I=s?0:i,C=I*4;let B=p.clippingState||null;c.value=B,B=h(E,d,C,m);for(let R=0;R!==C;++R)B[R]=t[R];p.clippingState=B,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=I}};function A(){c.value!==t&&(c.value=t,c.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(f,d,m,E){const x=f!==null?f.length:0;let y=null;if(x!==0){if(y=c.value,E!==!0||y===null){const p=m+x*4,I=d.matrixWorldInverse;a.getNormalMatrix(I),(y===null||y.length0){const A=new B2(c.height);return A.fromEquirectangularTexture(n,o),e.set(o,A),o.addEventListener("dispose",r),t(A.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const c=e.get(a);c!==void 0&&(e.delete(a),c.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}class Wh extends Hh{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,a=r+t,c=r-t;if(this.view!==null&&this.view.enabled){const A=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=A*this.view.offsetX,o=s+A*this.view.width,a-=h*this.view.offsetY,c=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,c,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}const nu=4,n_=[.125,.215,.35,.446,.526,.582],Cl=20,AE=new Wh,i_=new Je;let hE=null,fE=0,dE=0;const gl=(1+Math.sqrt(5))/2,Sc=1/gl,r_=[new G(1,1,1),new G(-1,1,1),new G(1,1,-1),new G(-1,1,-1),new G(0,gl,Sc),new G(0,gl,-Sc),new G(Sc,0,gl),new G(-Sc,0,gl),new G(gl,Sc,0),new G(-gl,Sc,0)];class wC{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){hE=this._renderer.getRenderTarget(),fE=this._renderer.getActiveCubeFace(),dE=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=a_(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=o_(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?C:0,C,C),h.setRenderTarget(r),x&&h.render(E,a),h.render(e,a)}E.geometry.dispose(),E.material.dispose(),h.toneMapping=d,h.autoClear=f,e.background=y}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===go||e.mapping===Ba;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=a_()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=o_());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new on(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;const c=this._cubeSize;Dd(t,0,0,3*c,2*c),i.setRenderTarget(t),i.render(o,AE)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;rCl&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${y} samples when the maximum is set to ${Cl}`);const p=[];let I=0;for(let T=0;TC-nu?r-C+nu:0),M=4*(this._cubeSize-B);Dd(t,R,M,3*B,2*B),c.setRenderTarget(t),c.render(f,AE)}}function yF(n){const e=[],t=[],i=[];let r=n;const s=n-nu+1+n_.length;for(let o=0;on-nu?c=n_[o-n+nu-1]:o===0&&(c=0),i.push(c);const A=1/(a-2),h=-A,f=1+A,d=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,E=6,x=3,y=2,p=1,I=new Float32Array(x*E*m),C=new Float32Array(y*E*m),B=new Float32Array(p*E*m);for(let M=0;M2?0:-1,K=[T,P,0,T+2/3,P,0,T+2/3,P+1,0,T,P,0,T+2/3,P+1,0,T,P+1,0];I.set(K,x*E*M),C.set(d,y*E*M);const w=[M,M,M,M,M,M];B.set(w,p*E*M)}const R=new Lt;R.setAttribute("position",new an(I,x)),R.setAttribute("uv",new an(C,y)),R.setAttribute("faceIndex",new an(B,p)),e.push(R),r>nu&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function s_(n,e,t){const i=new Wr(n,e,t);return i.texture.mapping=wu,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function Dd(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function CF(n,e,t){const i=new Float32Array(Cl),r=new G(0,1,0);return new cs({name:"SphericalGaussianBlur",defines:{n:Cl,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:uI(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:uo,depthTest:!1,depthWrite:!1})}function o_(){return new cs({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:uI(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:uo,depthTest:!1,depthWrite:!1})}function a_(){return new cs({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:uI(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:uo,depthTest:!1,depthWrite:!1})}function uI(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function vF(n){let e=new WeakMap,t=null;function i(a){if(a&&a.isTexture){const c=a.mapping,A=c===Ah||c===hh,h=c===go||c===Ba;if(A||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let f=e.get(a);return t===null&&(t=new wC(n)),f=A?t.fromEquirectangular(a,f):t.fromCubemap(a,f),e.set(a,f),f.texture}else{if(e.has(a))return e.get(a).texture;{const f=a.image;if(A&&f&&f.height>0||h&&f&&r(f)){t===null&&(t=new wC(n));const d=A?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,d),a.addEventListener("dispose",s),d.texture}else return null}}}return a}function r(a){let c=0;const A=6;for(let h=0;he.maxTextureSize&&(b=Math.ceil(w/e.maxTextureSize),w=e.maxTextureSize);const q=new Float32Array(w*b*4*x),de=new Xg(q,w,b,x);de.type=Fr,de.needsUpdate=!0;const J=K*4;for(let ne=0;ne0)return n;const r=e*t;let s=l_[r];if(s===void 0&&(s=new Float32Array(r),l_[r]=s),e!==0){i.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(s,a)}return s}function ni(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${a}: ${t[o]}`)}return i.join(` +`)}function xk(n){const e=ln.getPrimaries(ln.workingColorSpace),t=ln.getPrimaries(n);let i;switch(e===t?i="":e===Ch&&t===yh?i="LinearDisplayP3ToLinearSRGB":e===yh&&t===Ch&&(i="LinearSRGBToLinearDisplayP3"),n){case bs:case Oh:return[i,"LinearTransferOETF"];case On:case Yg:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}function p_(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=n.getShaderInfoLog(e).trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` + +`+r+` + +`+Ik(n.getShaderSource(e),o)}else return r}function Bk(n,e){const t=xk(e);return`vec4 ${n}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function _k(n,e){let t;switch(e){case WQ:t="Linear";break;case YQ:t="Reinhard";break;case XQ:t="OptimizedCineon";break;case Xv:t="ACESFilmic";break;case jQ:t="AgX";break;case JQ:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function Sk(n){return[n.extensionDerivatives||n.envMapCubeUVHeight||n.bumpMap||n.normalMapTangentSpace||n.clearcoatNormalMap||n.flatShading||n.alphaToCoverage||n.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(n.extensionFragDepth||n.logarithmicDepthBuffer)&&n.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",n.extensionDrawBuffers&&n.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(n.extensionShaderTextureLOD||n.envMap||n.transmission)&&n.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(iu).join(` +`)}function wk(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(iu).join(` +`)}function Mk(n){const e=[];for(const t in n){const i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(` +`)}function Qk(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function MC(n){return n.replace(Rk,Dk)}const Tk=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function Dk(n,e){let t=Pt[e];if(t===void 0){const i=Tk.get(e);if(i!==void 0)t=Pt[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return MC(t)}const bk=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function E_(n){return n.replace(bk,Lk)}function Lk(n,e,t,i){let r="";for(let s=parseInt(e);s0&&(p+=` +`),I=[m,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x].filter(iu).join(` +`),I.length>0&&(I+=` +`)):(p=[y_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(iu).join(` +`),I=[m,y_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+A:"",t.envMap?"#define "+h:"",t.envMap?"#define "+f:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Ts?"#define TONE_MAPPING":"",t.toneMapping!==Ts?Pt.tonemapping_pars_fragment:"",t.toneMapping!==Ts?_k("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",Pt.colorspace_pars_fragment,Bk("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(iu).join(` +`)),o=MC(o),o=g_(o,t),o=m_(o,t),a=MC(a),a=g_(a,t),a=m_(a,t),o=E_(o),a=E_(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(C=`#version 300 es +`,p=[E,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+p,I=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===_C?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===_C?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+I);const B=C+p+o,R=C+I+a,M=d_(r,r.VERTEX_SHADER,B),T=d_(r,r.FRAGMENT_SHADER,R);r.attachShader(y,M),r.attachShader(y,T),t.index0AttributeName!==void 0?r.bindAttribLocation(y,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(y,0,"position"),r.linkProgram(y);function P(q){if(n.debug.checkShaderErrors){const de=r.getProgramInfoLog(y).trim(),J=r.getShaderInfoLog(M).trim(),re=r.getShaderInfoLog(T).trim();let ne=!0,ue=!0;if(r.getProgramParameter(y,r.LINK_STATUS)===!1)if(ne=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,y,M,T);else{const U=p_(r,M,"vertex"),ee=p_(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(y,r.VALIDATE_STATUS)+` + +Material Name: `+q.name+` +Material Type: `+q.type+` + +Program Info Log: `+de+` +`+U+` +`+ee)}else de!==""?console.warn("THREE.WebGLProgram: Program Info Log:",de):(J===""||re==="")&&(ue=!1);ue&&(q.diagnostics={runnable:ne,programLog:de,vertexShader:{log:J,prefix:p},fragmentShader:{log:re,prefix:I}})}r.deleteShader(M),r.deleteShader(T),K=new Np(r,y),w=Qk(r,y)}let K;this.getUniforms=function(){return K===void 0&&P(this),K};let w;this.getAttributes=function(){return w===void 0&&P(this),w};let b=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return b===!1&&(b=r.getProgramParameter(y,Ck)),b},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(y),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=vk++,this.cacheKey=e,this.usedTimes=1,this.program=y,this.vertexShader=M,this.fragmentShader=T,this}let Ok=0;class Hk{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new zk(e),t.set(e,i)),i}}class zk{constructor(e){this.id=Ok++,this.code=e,this.usedTimes=0}}function Vk(n,e,t,i,r,s,o){const a=new Ll,c=new Hk,A=new Set,h=[],f=r.isWebGL2,d=r.logarithmicDepthBuffer,m=r.vertexTextures;let E=r.precision;const x={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function y(w){return A.add(w),w===0?"uv":`uv${w}`}function p(w,b,q,de,J){const re=de.fog,ne=J.geometry,ue=w.isMeshStandardMaterial?de.environment:null,U=(w.isMeshStandardMaterial?t:e).get(w.envMap||ue),ee=U&&U.mapping===wu?U.image.height:null,te=x[w.type];w.precision!==null&&(E=r.getMaxPrecision(w.precision),E!==w.precision&&console.warn("THREE.WebGLProgram.getParameters:",w.precision,"not supported, using",E,"instead."));const Ae=ne.morphAttributes.position||ne.morphAttributes.normal||ne.morphAttributes.color,Ce=Ae!==void 0?Ae.length:0;let ke=0;ne.morphAttributes.position!==void 0&&(ke=1),ne.morphAttributes.normal!==void 0&&(ke=2),ne.morphAttributes.color!==void 0&&(ke=3);let V,O,k,F;if(te){const Jt=is[te];V=Jt.vertexShader,O=Jt.fragmentShader}else V=w.vertexShader,O=w.fragmentShader,c.update(w),k=c.getVertexShaderID(w),F=c.getFragmentShaderID(w);const me=n.getRenderTarget(),Ie=J.isInstancedMesh===!0,oe=J.isBatchedMesh===!0,Be=!!w.map,H=!!w.matcap,Ee=!!U,ie=!!w.aoMap,le=!!w.lightMap,fe=!!w.bumpMap,Te=!!w.normalMap,$=!!w.displacementMap,S=!!w.emissiveMap,D=!!w.metalnessMap,se=!!w.roughnessMap,be=w.anisotropy>0,De=w.clearcoat>0,Qe=w.iridescence>0,Xe=w.sheen>0,ze=w.transmission>0,Ke=be&&!!w.anisotropyMap,at=De&&!!w.clearcoatMap,vt=De&&!!w.clearcoatNormalMap,Ne=De&&!!w.clearcoatRoughnessMap,Nt=Qe&&!!w.iridescenceMap,wt=Qe&&!!w.iridescenceThicknessMap,dt=Xe&&!!w.sheenColorMap,ot=Xe&&!!w.sheenRoughnessMap,tt=!!w.specularMap,Bt=!!w.specularColorMap,kt=!!w.specularIntensityMap,Zt=ze&&!!w.transmissionMap,Mt=ze&&!!w.thicknessMap,Yt=!!w.gradientMap,j=!!w.alphaMap,Ge=w.alphaTest>0,Ue=!!w.alphaHash,it=!!w.extensions;let At=Ts;w.toneMapped&&(me===null||me.isXRRenderTarget===!0)&&(At=n.toneMapping);const Xt={isWebGL2:f,shaderID:te,shaderType:w.type,shaderName:w.name,vertexShader:V,fragmentShader:O,defines:w.defines,customVertexShaderID:k,customFragmentShaderID:F,isRawShaderMaterial:w.isRawShaderMaterial===!0,glslVersion:w.glslVersion,precision:E,batching:oe,instancing:Ie,instancingColor:Ie&&J.instanceColor!==null,supportsVertexTextures:m,outputColorSpace:me===null?n.outputColorSpace:me.isXRRenderTarget===!0?me.texture.colorSpace:bs,alphaToCoverage:!!w.alphaToCoverage,map:Be,matcap:H,envMap:Ee,envMapMode:Ee&&U.mapping,envMapCubeUVHeight:ee,aoMap:ie,lightMap:le,bumpMap:fe,normalMap:Te,displacementMap:m&&$,emissiveMap:S,normalMapObjectSpace:Te&&w.normalMapType===c2,normalMapTangentSpace:Te&&w.normalMapType===Qa,metalnessMap:D,roughnessMap:se,anisotropy:be,anisotropyMap:Ke,clearcoat:De,clearcoatMap:at,clearcoatNormalMap:vt,clearcoatRoughnessMap:Ne,iridescence:Qe,iridescenceMap:Nt,iridescenceThicknessMap:wt,sheen:Xe,sheenColorMap:dt,sheenRoughnessMap:ot,specularMap:tt,specularColorMap:Bt,specularIntensityMap:kt,transmission:ze,transmissionMap:Zt,thicknessMap:Mt,gradientMap:Yt,opaque:w.transparent===!1&&w.blending===Tl&&w.alphaToCoverage===!1,alphaMap:j,alphaTest:Ge,alphaHash:Ue,combine:w.combine,mapUv:Be&&y(w.map.channel),aoMapUv:ie&&y(w.aoMap.channel),lightMapUv:le&&y(w.lightMap.channel),bumpMapUv:fe&&y(w.bumpMap.channel),normalMapUv:Te&&y(w.normalMap.channel),displacementMapUv:$&&y(w.displacementMap.channel),emissiveMapUv:S&&y(w.emissiveMap.channel),metalnessMapUv:D&&y(w.metalnessMap.channel),roughnessMapUv:se&&y(w.roughnessMap.channel),anisotropyMapUv:Ke&&y(w.anisotropyMap.channel),clearcoatMapUv:at&&y(w.clearcoatMap.channel),clearcoatNormalMapUv:vt&&y(w.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Ne&&y(w.clearcoatRoughnessMap.channel),iridescenceMapUv:Nt&&y(w.iridescenceMap.channel),iridescenceThicknessMapUv:wt&&y(w.iridescenceThicknessMap.channel),sheenColorMapUv:dt&&y(w.sheenColorMap.channel),sheenRoughnessMapUv:ot&&y(w.sheenRoughnessMap.channel),specularMapUv:tt&&y(w.specularMap.channel),specularColorMapUv:Bt&&y(w.specularColorMap.channel),specularIntensityMapUv:kt&&y(w.specularIntensityMap.channel),transmissionMapUv:Zt&&y(w.transmissionMap.channel),thicknessMapUv:Mt&&y(w.thicknessMap.channel),alphaMapUv:j&&y(w.alphaMap.channel),vertexTangents:!!ne.attributes.tangent&&(Te||be),vertexColors:w.vertexColors,vertexAlphas:w.vertexColors===!0&&!!ne.attributes.color&&ne.attributes.color.itemSize===4,pointsUvs:J.isPoints===!0&&!!ne.attributes.uv&&(Be||j),fog:!!re,useFog:w.fog===!0,fogExp2:!!re&&re.isFogExp2,flatShading:w.flatShading===!0,sizeAttenuation:w.sizeAttenuation===!0,logarithmicDepthBuffer:d,skinning:J.isSkinnedMesh===!0,morphTargets:ne.morphAttributes.position!==void 0,morphNormals:ne.morphAttributes.normal!==void 0,morphColors:ne.morphAttributes.color!==void 0,morphTargetsCount:Ce,morphTextureStride:ke,numDirLights:b.directional.length,numPointLights:b.point.length,numSpotLights:b.spot.length,numSpotLightMaps:b.spotLightMap.length,numRectAreaLights:b.rectArea.length,numHemiLights:b.hemi.length,numDirLightShadows:b.directionalShadowMap.length,numPointLightShadows:b.pointShadowMap.length,numSpotLightShadows:b.spotShadowMap.length,numSpotLightShadowsWithMaps:b.numSpotLightShadowsWithMaps,numLightProbes:b.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:w.dithering,shadowMapEnabled:n.shadowMap.enabled&&q.length>0,shadowMapType:n.shadowMap.type,toneMapping:At,useLegacyLights:n._useLegacyLights,decodeVideoTexture:Be&&w.map.isVideoTexture===!0&&ln.getTransfer(w.map.colorSpace)===gn,premultipliedAlpha:w.premultipliedAlpha,doubleSided:w.side===Ss,flipSided:w.side===Vi,useDepthPacking:w.depthPacking>=0,depthPacking:w.depthPacking||0,index0AttributeName:w.index0AttributeName,extensionDerivatives:it&&w.extensions.derivatives===!0,extensionFragDepth:it&&w.extensions.fragDepth===!0,extensionDrawBuffers:it&&w.extensions.drawBuffers===!0,extensionShaderTextureLOD:it&&w.extensions.shaderTextureLOD===!0,extensionClipCullDistance:it&&w.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:it&&w.extensions.multiDraw===!0&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:f||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:f||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:f||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:w.customProgramCacheKey()};return Xt.vertexUv1s=A.has(1),Xt.vertexUv2s=A.has(2),Xt.vertexUv3s=A.has(3),A.clear(),Xt}function I(w){const b=[];if(w.shaderID?b.push(w.shaderID):(b.push(w.customVertexShaderID),b.push(w.customFragmentShaderID)),w.defines!==void 0)for(const q in w.defines)b.push(q),b.push(w.defines[q]);return w.isRawShaderMaterial===!1&&(C(b,w),B(b,w),b.push(n.outputColorSpace)),b.push(w.customProgramCacheKey),b.join()}function C(w,b){w.push(b.precision),w.push(b.outputColorSpace),w.push(b.envMapMode),w.push(b.envMapCubeUVHeight),w.push(b.mapUv),w.push(b.alphaMapUv),w.push(b.lightMapUv),w.push(b.aoMapUv),w.push(b.bumpMapUv),w.push(b.normalMapUv),w.push(b.displacementMapUv),w.push(b.emissiveMapUv),w.push(b.metalnessMapUv),w.push(b.roughnessMapUv),w.push(b.anisotropyMapUv),w.push(b.clearcoatMapUv),w.push(b.clearcoatNormalMapUv),w.push(b.clearcoatRoughnessMapUv),w.push(b.iridescenceMapUv),w.push(b.iridescenceThicknessMapUv),w.push(b.sheenColorMapUv),w.push(b.sheenRoughnessMapUv),w.push(b.specularMapUv),w.push(b.specularColorMapUv),w.push(b.specularIntensityMapUv),w.push(b.transmissionMapUv),w.push(b.thicknessMapUv),w.push(b.combine),w.push(b.fogExp2),w.push(b.sizeAttenuation),w.push(b.morphTargetsCount),w.push(b.morphAttributeCount),w.push(b.numDirLights),w.push(b.numPointLights),w.push(b.numSpotLights),w.push(b.numSpotLightMaps),w.push(b.numHemiLights),w.push(b.numRectAreaLights),w.push(b.numDirLightShadows),w.push(b.numPointLightShadows),w.push(b.numSpotLightShadows),w.push(b.numSpotLightShadowsWithMaps),w.push(b.numLightProbes),w.push(b.shadowMapType),w.push(b.toneMapping),w.push(b.numClippingPlanes),w.push(b.numClipIntersection),w.push(b.depthPacking)}function B(w,b){a.disableAll(),b.isWebGL2&&a.enable(0),b.supportsVertexTextures&&a.enable(1),b.instancing&&a.enable(2),b.instancingColor&&a.enable(3),b.matcap&&a.enable(4),b.envMap&&a.enable(5),b.normalMapObjectSpace&&a.enable(6),b.normalMapTangentSpace&&a.enable(7),b.clearcoat&&a.enable(8),b.iridescence&&a.enable(9),b.alphaTest&&a.enable(10),b.vertexColors&&a.enable(11),b.vertexAlphas&&a.enable(12),b.vertexUv1s&&a.enable(13),b.vertexUv2s&&a.enable(14),b.vertexUv3s&&a.enable(15),b.vertexTangents&&a.enable(16),b.anisotropy&&a.enable(17),b.alphaHash&&a.enable(18),b.batching&&a.enable(19),w.push(a.mask),a.disableAll(),b.fog&&a.enable(0),b.useFog&&a.enable(1),b.flatShading&&a.enable(2),b.logarithmicDepthBuffer&&a.enable(3),b.skinning&&a.enable(4),b.morphTargets&&a.enable(5),b.morphNormals&&a.enable(6),b.morphColors&&a.enable(7),b.premultipliedAlpha&&a.enable(8),b.shadowMapEnabled&&a.enable(9),b.useLegacyLights&&a.enable(10),b.doubleSided&&a.enable(11),b.flipSided&&a.enable(12),b.useDepthPacking&&a.enable(13),b.dithering&&a.enable(14),b.transmission&&a.enable(15),b.sheen&&a.enable(16),b.opaque&&a.enable(17),b.pointsUvs&&a.enable(18),b.decodeVideoTexture&&a.enable(19),b.alphaToCoverage&&a.enable(20),w.push(a.mask)}function R(w){const b=x[w.type];let q;if(b){const de=is[b];q=I2.clone(de.uniforms)}else q=w.uniforms;return q}function M(w,b){let q;for(let de=0,J=h.length;de0?i.push(p):m.transparent===!0?r.push(p):t.push(p)}function c(f,d,m,E,x,y){const p=o(f,d,m,E,x,y);m.transmission>0?i.unshift(p):m.transparent===!0?r.unshift(p):t.unshift(p)}function A(f,d){t.length>1&&t.sort(f||Yk),i.length>1&&i.sort(d||C_),r.length>1&&r.sort(d||C_)}function h(){for(let f=e,d=n.length;f=s.length?(o=new v_,s.push(o)):o=s[r],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function Jk(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new G,color:new Je};break;case"SpotLight":t={position:new G,direction:new G,color:new Je,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new G,color:new Je,distance:0,decay:0};break;case"HemisphereLight":t={direction:new G,skyColor:new Je,groundColor:new Je};break;case"RectAreaLight":t={color:new Je,position:new G,halfWidth:new G,halfHeight:new G};break}return n[e.id]=t,t}}}function jk(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let Kk=0;function qk(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function Zk(n,e){const t=new Jk,i=jk(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)r.probe.push(new G);const s=new G,o=new ft,a=new ft;function c(h,f){let d=0,m=0,E=0;for(let q=0;q<9;q++)r.probe[q].set(0,0,0);let x=0,y=0,p=0,I=0,C=0,B=0,R=0,M=0,T=0,P=0,K=0;h.sort(qk);const w=f===!0?Math.PI:1;for(let q=0,de=h.length;q0&&(e.isWebGL2?n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=d,r.ambient[1]=m,r.ambient[2]=E;const b=r.hash;(b.directionalLength!==x||b.pointLength!==y||b.spotLength!==p||b.rectAreaLength!==I||b.hemiLength!==C||b.numDirectionalShadows!==B||b.numPointShadows!==R||b.numSpotShadows!==M||b.numSpotMaps!==T||b.numLightProbes!==K)&&(r.directional.length=x,r.spot.length=p,r.rectArea.length=I,r.point.length=y,r.hemi.length=C,r.directionalShadow.length=B,r.directionalShadowMap.length=B,r.pointShadow.length=R,r.pointShadowMap.length=R,r.spotShadow.length=M,r.spotShadowMap.length=M,r.directionalShadowMatrix.length=B,r.pointShadowMatrix.length=R,r.spotLightMatrix.length=M+T-P,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=P,r.numLightProbes=K,b.directionalLength=x,b.pointLength=y,b.spotLength=p,b.rectAreaLength=I,b.hemiLength=C,b.numDirectionalShadows=B,b.numPointShadows=R,b.numSpotShadows=M,b.numSpotMaps=T,b.numLightProbes=K,r.version=Kk++)}function A(h,f){let d=0,m=0,E=0,x=0,y=0;const p=f.matrixWorldInverse;for(let I=0,C=h.length;I=a.length?(c=new I_(n,e),a.push(c)):c=a[o],c}function r(){t=new WeakMap}return{get:i,dispose:r}}class jg extends hi{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=l2,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class Kg extends hi{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const e4=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,t4=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function n4(n,e,t){let i=new Vh;const r=new _e,s=new _e,o=new cn,a=new jg({depthPacking:iI}),c=new Kg,A={},h=t.maxTextureSize,f={[Vr]:Vi,[Vi]:Vr,[Ss]:Ss},d=new cs({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new _e},radius:{value:4}},vertexShader:e4,fragmentShader:t4}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const E=new Lt;E.setAttribute("position",new an(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const x=new on(E,d),y=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Hg;let p=this.type;this.render=function(M,T,P){if(y.enabled===!1||y.autoUpdate===!1&&y.needsUpdate===!1||M.length===0)return;const K=n.getRenderTarget(),w=n.getActiveCubeFace(),b=n.getActiveMipmapLevel(),q=n.state;q.setBlending(uo),q.buffers.color.setClear(1,1,1,1),q.buffers.depth.setTest(!0),q.setScissorTest(!1);const de=p!==es&&this.type===es,J=p===es&&this.type!==es;for(let re=0,ne=M.length;reh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/ee.x),r.x=s.x*ee.x,U.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/ee.y),r.y=s.y*ee.y,U.mapSize.y=s.y)),U.map===null||de===!0||J===!0){const Ae=this.type!==es?{minFilter:Gn,magFilter:Gn}:{};U.map!==null&&U.map.dispose(),U.map=new Wr(r.x,r.y,Ae),U.map.texture.name=ue.name+".shadowMap",U.camera.updateProjectionMatrix()}n.setRenderTarget(U.map),n.clear();const te=U.getViewportCount();for(let Ae=0;Ae0||T.map&&T.alphaTest>0){const q=w.uuid,de=T.uuid;let J=A[q];J===void 0&&(J={},A[q]=J);let re=J[de];re===void 0&&(re=w.clone(),J[de]=re,T.addEventListener("dispose",R)),w=re}if(w.visible=T.visible,w.wireframe=T.wireframe,K===es?w.side=T.shadowSide!==null?T.shadowSide:T.side:w.side=T.shadowSide!==null?T.shadowSide:f[T.side],w.alphaMap=T.alphaMap,w.alphaTest=T.alphaTest,w.map=T.map,w.clipShadows=T.clipShadows,w.clippingPlanes=T.clippingPlanes,w.clipIntersection=T.clipIntersection,w.displacementMap=T.displacementMap,w.displacementScale=T.displacementScale,w.displacementBias=T.displacementBias,w.wireframeLinewidth=T.wireframeLinewidth,w.linewidth=T.linewidth,P.isPointLight===!0&&w.isMeshDistanceMaterial===!0){const q=n.properties.get(w);q.light=P}return w}function B(M,T,P,K,w){if(M.visible===!1)return;if(M.layers.test(T.layers)&&(M.isMesh||M.isLine||M.isPoints)&&(M.castShadow||M.receiveShadow&&w===es)&&(!M.frustumCulled||i.intersectsObject(M))){M.modelViewMatrix.multiplyMatrices(P.matrixWorldInverse,M.matrixWorld);const de=e.update(M),J=M.material;if(Array.isArray(J)){const re=de.groups;for(let ne=0,ue=re.length;ne=1):te.indexOf("OpenGL ES")!==-1&&(ee=parseFloat(/^OpenGL ES (\d)/.exec(te)[1]),U=ee>=2);let Ae=null,Ce={};const ke=n.getParameter(n.SCISSOR_BOX),V=n.getParameter(n.VIEWPORT),O=new cn().fromArray(ke),k=new cn().fromArray(V);function F(j,Ge,Ue,it){const At=new Uint8Array(4),Xt=n.createTexture();n.bindTexture(j,Xt),n.texParameteri(j,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(j,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Jt=0;Jt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new WeakMap;let f;const d=new WeakMap;let m=!1;try{m=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function E(S,D){return m?new OffscreenCanvas(S,D):xh("canvas")}function x(S,D,se,be){let De=1;if((S.width>be||S.height>be)&&(De=be/Math.max(S.width,S.height)),De<1||D===!0)if(typeof HTMLImageElement<"u"&&S instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&S instanceof ImageBitmap){const Qe=D?yg:Math.floor,Xe=Qe(De*S.width),ze=Qe(De*S.height);f===void 0&&(f=E(Xe,ze));const Ke=se?E(Xe,ze):f;return Ke.width=Xe,Ke.height=ze,Ke.getContext("2d").drawImage(S,0,0,Xe,ze),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+S.width+"x"+S.height+") to ("+Xe+"x"+ze+")."),Ke}else return"data"in S&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+S.width+"x"+S.height+")."),S;return S}function y(S){return SC(S.width)&&SC(S.height)}function p(S){return a?!1:S.wrapS!==Ti||S.wrapT!==Ti||S.minFilter!==Gn&&S.minFilter!==In}function I(S,D){return S.generateMipmaps&&D&&S.minFilter!==Gn&&S.minFilter!==In}function C(S){n.generateMipmap(S)}function B(S,D,se,be,De=!1){if(a===!1)return D;if(S!==null){if(n[S]!==void 0)return n[S];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+S+"'")}let Qe=D;if(D===n.RED&&(se===n.FLOAT&&(Qe=n.R32F),se===n.HALF_FLOAT&&(Qe=n.R16F),se===n.UNSIGNED_BYTE&&(Qe=n.R8)),D===n.RED_INTEGER&&(se===n.UNSIGNED_BYTE&&(Qe=n.R8UI),se===n.UNSIGNED_SHORT&&(Qe=n.R16UI),se===n.UNSIGNED_INT&&(Qe=n.R32UI),se===n.BYTE&&(Qe=n.R8I),se===n.SHORT&&(Qe=n.R16I),se===n.INT&&(Qe=n.R32I)),D===n.RG&&(se===n.FLOAT&&(Qe=n.RG32F),se===n.HALF_FLOAT&&(Qe=n.RG16F),se===n.UNSIGNED_BYTE&&(Qe=n.RG8)),D===n.RGBA){const Xe=De?Eh:ln.getTransfer(be);se===n.FLOAT&&(Qe=n.RGBA32F),se===n.HALF_FLOAT&&(Qe=n.RGBA16F),se===n.UNSIGNED_BYTE&&(Qe=Xe===gn?n.SRGB8_ALPHA8:n.RGBA8),se===n.UNSIGNED_SHORT_4_4_4_4&&(Qe=n.RGBA4),se===n.UNSIGNED_SHORT_5_5_5_1&&(Qe=n.RGB5_A1)}return(Qe===n.R16F||Qe===n.R32F||Qe===n.RG16F||Qe===n.RG32F||Qe===n.RGBA16F||Qe===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Qe}function R(S,D,se){return I(S,se)===!0||S.isFramebufferTexture&&S.minFilter!==Gn&&S.minFilter!==In?Math.log2(Math.max(D.width,D.height))+1:S.mipmaps!==void 0&&S.mipmaps.length>0?S.mipmaps.length:S.isCompressedTexture&&Array.isArray(S.image)?D.mipmaps.length:1}function M(S){return S===Gn||S===mg||S===yl?n.NEAREST:n.LINEAR}function T(S){const D=S.target;D.removeEventListener("dispose",T),K(D),D.isVideoTexture&&h.delete(D)}function P(S){const D=S.target;D.removeEventListener("dispose",P),b(D)}function K(S){const D=i.get(S);if(D.__webglInit===void 0)return;const se=S.source,be=d.get(se);if(be){const De=be[D.__cacheKey];De.usedTimes--,De.usedTimes===0&&w(S),Object.keys(be).length===0&&d.delete(se)}i.remove(S)}function w(S){const D=i.get(S);n.deleteTexture(D.__webglTexture);const se=S.source,be=d.get(se);delete be[D.__cacheKey],o.memory.textures--}function b(S){const D=S.texture,se=i.get(S),be=i.get(D);if(be.__webglTexture!==void 0&&(n.deleteTexture(be.__webglTexture),o.memory.textures--),S.depthTexture&&S.depthTexture.dispose(),S.isWebGLCubeRenderTarget)for(let De=0;De<6;De++){if(Array.isArray(se.__webglFramebuffer[De]))for(let Qe=0;Qe=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+S+" texture units while this GPU supports only "+r.maxTextures),q+=1,S}function re(S){const D=[];return D.push(S.wrapS),D.push(S.wrapT),D.push(S.wrapR||0),D.push(S.magFilter),D.push(S.minFilter),D.push(S.anisotropy),D.push(S.internalFormat),D.push(S.format),D.push(S.type),D.push(S.generateMipmaps),D.push(S.premultiplyAlpha),D.push(S.flipY),D.push(S.unpackAlignment),D.push(S.colorSpace),D.join()}function ne(S,D){const se=i.get(S);if(S.isVideoTexture&&Te(S),S.isRenderTargetTexture===!1&&S.version>0&&se.__version!==S.version){const be=S.image;if(be===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(be.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{O(se,S,D);return}}t.bindTexture(n.TEXTURE_2D,se.__webglTexture,n.TEXTURE0+D)}function ue(S,D){const se=i.get(S);if(S.version>0&&se.__version!==S.version){O(se,S,D);return}t.bindTexture(n.TEXTURE_2D_ARRAY,se.__webglTexture,n.TEXTURE0+D)}function U(S,D){const se=i.get(S);if(S.version>0&&se.__version!==S.version){O(se,S,D);return}t.bindTexture(n.TEXTURE_3D,se.__webglTexture,n.TEXTURE0+D)}function ee(S,D){const se=i.get(S);if(S.version>0&&se.__version!==S.version){k(se,S,D);return}t.bindTexture(n.TEXTURE_CUBE_MAP,se.__webglTexture,n.TEXTURE0+D)}const te={[fh]:n.REPEAT,[Ti]:n.CLAMP_TO_EDGE,[dh]:n.MIRRORED_REPEAT},Ae={[Gn]:n.NEAREST,[mg]:n.NEAREST_MIPMAP_NEAREST,[yl]:n.NEAREST_MIPMAP_LINEAR,[In]:n.LINEAR,[HA]:n.LINEAR_MIPMAP_NEAREST,[ws]:n.LINEAR_MIPMAP_LINEAR},Ce={[u2]:n.NEVER,[g2]:n.ALWAYS,[A2]:n.LESS,[rI]:n.LEQUAL,[h2]:n.EQUAL,[p2]:n.GEQUAL,[f2]:n.GREATER,[d2]:n.NOTEQUAL};function ke(S,D,se){if(D.type===Fr&&e.has("OES_texture_float_linear")===!1&&(D.magFilter===In||D.magFilter===HA||D.magFilter===yl||D.magFilter===ws||D.minFilter===In||D.minFilter===HA||D.minFilter===yl||D.minFilter===ws)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),se?(n.texParameteri(S,n.TEXTURE_WRAP_S,te[D.wrapS]),n.texParameteri(S,n.TEXTURE_WRAP_T,te[D.wrapT]),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,te[D.wrapR]),n.texParameteri(S,n.TEXTURE_MAG_FILTER,Ae[D.magFilter]),n.texParameteri(S,n.TEXTURE_MIN_FILTER,Ae[D.minFilter])):(n.texParameteri(S,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(S,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(D.wrapS!==Ti||D.wrapT!==Ti)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(S,n.TEXTURE_MAG_FILTER,M(D.magFilter)),n.texParameteri(S,n.TEXTURE_MIN_FILTER,M(D.minFilter)),D.minFilter!==Gn&&D.minFilter!==In&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),D.compareFunction&&(n.texParameteri(S,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(S,n.TEXTURE_COMPARE_FUNC,Ce[D.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const be=e.get("EXT_texture_filter_anisotropic");if(D.magFilter===Gn||D.minFilter!==yl&&D.minFilter!==ws||D.type===Fr&&e.has("OES_texture_float_linear")===!1||a===!1&&D.type===Ol&&e.has("OES_texture_half_float_linear")===!1)return;(D.anisotropy>1||i.get(D).__currentAnisotropy)&&(n.texParameterf(S,be.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,r.getMaxAnisotropy())),i.get(D).__currentAnisotropy=D.anisotropy)}}function V(S,D){let se=!1;S.__webglInit===void 0&&(S.__webglInit=!0,D.addEventListener("dispose",T));const be=D.source;let De=d.get(be);De===void 0&&(De={},d.set(be,De));const Qe=re(D);if(Qe!==S.__cacheKey){De[Qe]===void 0&&(De[Qe]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,se=!0),De[Qe].usedTimes++;const Xe=De[S.__cacheKey];Xe!==void 0&&(De[S.__cacheKey].usedTimes--,Xe.usedTimes===0&&w(D)),S.__cacheKey=Qe,S.__webglTexture=De[Qe].texture}return se}function O(S,D,se){let be=n.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&&(be=n.TEXTURE_2D_ARRAY),D.isData3DTexture&&(be=n.TEXTURE_3D);const De=V(S,D),Qe=D.source;t.bindTexture(be,S.__webglTexture,n.TEXTURE0+se);const Xe=i.get(Qe);if(Qe.version!==Xe.__version||De===!0){t.activeTexture(n.TEXTURE0+se);const ze=ln.getPrimaries(ln.workingColorSpace),Ke=D.colorSpace===Er?null:ln.getPrimaries(D.colorSpace),at=D.colorSpace===Er||ze===Ke?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,D.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,D.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,at);const vt=p(D)&&y(D.image)===!1;let Ne=x(D.image,vt,!1,r.maxTextureSize);Ne=$(D,Ne);const Nt=y(Ne)||a,wt=s.convert(D.format,D.colorSpace);let dt=s.convert(D.type),ot=B(D.internalFormat,wt,dt,D.colorSpace,D.isVideoTexture);ke(be,D,Nt);let tt;const Bt=D.mipmaps,kt=a&&D.isVideoTexture!==!0&&ot!==eI,Zt=Xe.__version===void 0||De===!0,Mt=Qe.dataReady,Yt=R(D,Ne,Nt);if(D.isDepthTexture)ot=n.DEPTH_COMPONENT,a?D.type===Fr?ot=n.DEPTH_COMPONENT32F:D.type===ao?ot=n.DEPTH_COMPONENT24:D.type===ga?ot=n.DEPTH24_STENCIL8:ot=n.DEPTH_COMPONENT16:D.type===Fr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),D.format===ma&&ot===n.DEPTH_COMPONENT&&D.type!==Vg&&D.type!==ao&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),D.type=ao,dt=s.convert(D.type)),D.format===Hl&&ot===n.DEPTH_COMPONENT&&(ot=n.DEPTH_STENCIL,D.type!==ga&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),D.type=ga,dt=s.convert(D.type))),Zt&&(kt?t.texStorage2D(n.TEXTURE_2D,1,ot,Ne.width,Ne.height):t.texImage2D(n.TEXTURE_2D,0,ot,Ne.width,Ne.height,0,wt,dt,null));else if(D.isDataTexture)if(Bt.length>0&&Nt){kt&&Zt&&t.texStorage2D(n.TEXTURE_2D,Yt,ot,Bt[0].width,Bt[0].height);for(let j=0,Ge=Bt.length;j>=1,Ge>>=1}}else if(Bt.length>0&&Nt){kt&&Zt&&t.texStorage2D(n.TEXTURE_2D,Yt,ot,Bt[0].width,Bt[0].height);for(let j=0,Ge=Bt.length;j0&&Mt++,t.texStorage2D(n.TEXTURE_CUBE_MAP,Mt,tt,Ne[0].width,Ne[0].height));for(let j=0;j<6;j++)if(vt){Bt?Zt&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+j,0,0,0,Ne[j].width,Ne[j].height,dt,ot,Ne[j].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+j,0,tt,Ne[j].width,Ne[j].height,0,dt,ot,Ne[j].data);for(let Ge=0;Ge>Qe),Ne=Math.max(1,D.height>>Qe);De===n.TEXTURE_3D||De===n.TEXTURE_2D_ARRAY?t.texImage3D(De,Qe,Ke,vt,Ne,D.depth,0,Xe,ze,null):t.texImage2D(De,Qe,Ke,vt,Ne,0,Xe,ze,null)}t.bindFramebuffer(n.FRAMEBUFFER,S),fe(D)?c.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,be,De,i.get(se).__webglTexture,0,le(D)):(De===n.TEXTURE_2D||De>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&De<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,be,De,i.get(se).__webglTexture,Qe),t.bindFramebuffer(n.FRAMEBUFFER,null)}function me(S,D,se){if(n.bindRenderbuffer(n.RENDERBUFFER,S),D.depthBuffer&&!D.stencilBuffer){let be=a===!0?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(se||fe(D)){const De=D.depthTexture;De&&De.isDepthTexture&&(De.type===Fr?be=n.DEPTH_COMPONENT32F:De.type===ao&&(be=n.DEPTH_COMPONENT24));const Qe=le(D);fe(D)?c.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Qe,be,D.width,D.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Qe,be,D.width,D.height)}else n.renderbufferStorage(n.RENDERBUFFER,be,D.width,D.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,S)}else if(D.depthBuffer&&D.stencilBuffer){const be=le(D);se&&fe(D)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):fe(D)?c.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,D.width,D.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,S)}else{const be=D.isWebGLMultipleRenderTargets===!0?D.texture:[D.texture];for(let De=0;De0){se.__webglFramebuffer[ze]=[];for(let Ke=0;Ke0){se.__webglFramebuffer=[];for(let ze=0;ze0&&fe(S)===!1){const ze=Qe?D:[D];se.__webglMultisampledFramebuffer=n.createFramebuffer(),se.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,se.__webglMultisampledFramebuffer);for(let Ke=0;Ke0)for(let Ke=0;Ke0)for(let Ke=0;Ke0&&fe(S)===!1){const D=S.isWebGLMultipleRenderTargets?S.texture:[S.texture],se=S.width,be=S.height;let De=n.COLOR_BUFFER_BIT;const Qe=[],Xe=S.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ze=i.get(S),Ke=S.isWebGLMultipleRenderTargets===!0;if(Ke)for(let at=0;at0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&D.__useRenderToTexture!==!1}function Te(S){const D=o.render.frame;h.get(S)!==D&&(h.set(S,D),S.update())}function $(S,D){const se=S.colorSpace,be=S.format,De=S.type;return S.isCompressedTexture===!0||S.isVideoTexture===!0||S.format===Eg||se!==bs&&se!==Er&&(ln.getTransfer(se)===gn?a===!1?e.has("EXT_sRGB")===!0&&be===Oi?(S.format=Eg,S.minFilter=In,S.generateMipmaps=!1):D=oI.sRGBToLinear(D):(be!==Oi||De!==Ds)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",se)),D}this.allocateTextureUnit=J,this.resetTextureUnits=de,this.setTexture2D=ne,this.setTexture2DArray=ue,this.setTexture3D=U,this.setTextureCube=ee,this.rebindTextures=Be,this.setupRenderTarget=H,this.updateRenderTargetMipmap=Ee,this.updateMultisampleRenderTarget=ie,this.setupDepthRenderbuffer=oe,this.setupFrameBufferTexture=F,this.useMultisampledRTT=fe}function T2(n,e,t){const i=t.isWebGL2;function r(s,o=Er){let a;const c=ln.getTransfer(o);if(s===Ds)return n.UNSIGNED_BYTE;if(s===jv)return n.UNSIGNED_SHORT_4_4_4_4;if(s===Kv)return n.UNSIGNED_SHORT_5_5_5_1;if(s===qQ)return n.BYTE;if(s===ZQ)return n.SHORT;if(s===Vg)return n.UNSIGNED_SHORT;if(s===Jv)return n.INT;if(s===ao)return n.UNSIGNED_INT;if(s===Fr)return n.FLOAT;if(s===Ol)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===$Q)return n.ALPHA;if(s===Oi)return n.RGBA;if(s===e2)return n.LUMINANCE;if(s===t2)return n.LUMINANCE_ALPHA;if(s===ma)return n.DEPTH_COMPONENT;if(s===Hl)return n.DEPTH_STENCIL;if(s===Eg)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===n2)return n.RED;if(s===qv)return n.RED_INTEGER;if(s===i2)return n.RG;if(s===Zv)return n.RG_INTEGER;if(s===$v)return n.RGBA_INTEGER;if(s===Qp||s===Rp||s===Tp||s===Dp)if(c===gn)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===Qp)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===Rp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===Tp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===Dp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===Qp)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===Rp)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===Tp)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===Dp)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===$y||s===eC||s===tC||s===nC)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===$y)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===eC)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===tC)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===nC)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===eI)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===iC||s===rC)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(s===iC)return c===gn?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===rC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===sC||s===oC||s===aC||s===lC||s===cC||s===uC||s===AC||s===hC||s===fC||s===dC||s===pC||s===gC||s===mC||s===EC)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(s===sC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===oC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===aC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===lC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===cC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===uC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===AC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===hC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===fC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===dC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===pC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===gC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===mC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===EC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===bp||s===yC||s===CC)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(s===bp)return c===gn?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===yC)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===CC)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===r2||s===vC||s===IC||s===xC)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(s===bp)return a.COMPRESSED_RED_RGTC1_EXT;if(s===vC)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===IC)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===xC)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===ga?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[s]!==void 0?n[s]:null}return{convert:r}}class D2 extends $n{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class Gr extends nn{constructor(){super(),this.isGroup=!0,this.type="Group"}}const s4={type:"move"};class gE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Gr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Gr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new G,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new G),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Gr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new G,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new G),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,s=null,o=null;const a=this._targetRay,c=this._grip,A=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(A&&e.hand){o=!0;for(const x of e.hand.values()){const y=t.getJointPose(x,i),p=this._getHandJoint(A,x);y!==null&&(p.matrix.fromArray(y.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.matrixWorldNeedsUpdate=!0,p.jointRadius=y.radius),p.visible=y!==null}const h=A.joints["index-finger-tip"],f=A.joints["thumb-tip"],d=h.position.distanceTo(f.position),m=.02,E=.005;A.inputState.pinching&&d>m+E?(A.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!A.inputState.pinching&&d<=m-E&&(A.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));a!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(s4)))}return a!==null&&(a.visible=r!==null),c!==null&&(c.visible=s!==null),A!==null&&(A.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new Gr;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}const o4=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,a4=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class l4{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,i){if(this.texture===null){const r=new wn,s=e.properties.get(r);s.__webglTexture=t.texture,(t.depthNear!=i.depthNear||t.depthFar!=i.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}render(e,t){if(this.texture!==null){if(this.mesh===null){const i=t.cameras[0].viewport,r=new cs({extensions:{fragDepth:!0},vertexShader:o4,fragmentShader:a4,uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new on(new Ra(20,20),r)}e.render(this.mesh,t)}}reset(){this.texture=null,this.mesh=null}}class c4 extends Eo{constructor(e,t){super();const i=this;let r=null,s=1,o=null,a="local-floor",c=1,A=null,h=null,f=null,d=null,m=null,E=null;const x=new l4,y=t.getContextAttributes();let p=null,I=null;const C=[],B=[],R=new _e;let M=null;const T=new $n;T.layers.enable(1),T.viewport=new cn;const P=new $n;P.layers.enable(2),P.viewport=new cn;const K=[T,P],w=new D2;w.layers.enable(1),w.layers.enable(2);let b=null,q=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(V){let O=C[V];return O===void 0&&(O=new gE,C[V]=O),O.getTargetRaySpace()},this.getControllerGrip=function(V){let O=C[V];return O===void 0&&(O=new gE,C[V]=O),O.getGripSpace()},this.getHand=function(V){let O=C[V];return O===void 0&&(O=new gE,C[V]=O),O.getHandSpace()};function de(V){const O=B.indexOf(V.inputSource);if(O===-1)return;const k=C[O];k!==void 0&&(k.update(V.inputSource,V.frame,A||o),k.dispatchEvent({type:V.type,data:V.inputSource}))}function J(){r.removeEventListener("select",de),r.removeEventListener("selectstart",de),r.removeEventListener("selectend",de),r.removeEventListener("squeeze",de),r.removeEventListener("squeezestart",de),r.removeEventListener("squeezeend",de),r.removeEventListener("end",J),r.removeEventListener("inputsourceschange",re);for(let V=0;V=0&&(B[F]=null,C[F].disconnect(k))}for(let O=0;O=B.length){B.push(k),F=Ie;break}else if(B[Ie]===null){B[Ie]=k,F=Ie;break}if(F===-1)break}const me=C[F];me&&me.connect(k)}}const ne=new G,ue=new G;function U(V,O,k){ne.setFromMatrixPosition(O.matrixWorld),ue.setFromMatrixPosition(k.matrixWorld);const F=ne.distanceTo(ue),me=O.projectionMatrix.elements,Ie=k.projectionMatrix.elements,oe=me[14]/(me[10]-1),Be=me[14]/(me[10]+1),H=(me[9]+1)/me[5],Ee=(me[9]-1)/me[5],ie=(me[8]-1)/me[0],le=(Ie[8]+1)/Ie[0],fe=oe*ie,Te=oe*le,$=F/(-ie+le),S=$*-ie;O.matrixWorld.decompose(V.position,V.quaternion,V.scale),V.translateX(S),V.translateZ($),V.matrixWorld.compose(V.position,V.quaternion,V.scale),V.matrixWorldInverse.copy(V.matrixWorld).invert();const D=oe+$,se=Be+$,be=fe-S,De=Te+(F-S),Qe=H*Be/se*D,Xe=Ee*Be/se*D;V.projectionMatrix.makePerspective(be,De,Qe,Xe,D,se),V.projectionMatrixInverse.copy(V.projectionMatrix).invert()}function ee(V,O){O===null?V.matrixWorld.copy(V.matrix):V.matrixWorld.multiplyMatrices(O.matrixWorld,V.matrix),V.matrixWorldInverse.copy(V.matrixWorld).invert()}this.updateCamera=function(V){if(r===null)return;x.texture!==null&&(V.near=x.depthNear,V.far=x.depthFar),w.near=P.near=T.near=V.near,w.far=P.far=T.far=V.far,(b!==w.near||q!==w.far)&&(r.updateRenderState({depthNear:w.near,depthFar:w.far}),b=w.near,q=w.far,T.near=b,T.far=q,P.near=b,P.far=q,T.updateProjectionMatrix(),P.updateProjectionMatrix(),V.updateProjectionMatrix());const O=V.parent,k=w.cameras;ee(w,O);for(let F=0;F0&&(y.alphaTest.value=p.alphaTest);const I=e.get(p).envMap;if(I&&(y.envMap.value=I,y.flipEnvMap.value=I.isCubeTexture&&I.isRenderTargetTexture===!1?-1:1,y.reflectivity.value=p.reflectivity,y.ior.value=p.ior,y.refractionRatio.value=p.refractionRatio),p.lightMap){y.lightMap.value=p.lightMap;const C=n._useLegacyLights===!0?Math.PI:1;y.lightMapIntensity.value=p.lightMapIntensity*C,t(p.lightMap,y.lightMapTransform)}p.aoMap&&(y.aoMap.value=p.aoMap,y.aoMapIntensity.value=p.aoMapIntensity,t(p.aoMap,y.aoMapTransform))}function o(y,p){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,p.map&&(y.map.value=p.map,t(p.map,y.mapTransform))}function a(y,p){y.dashSize.value=p.dashSize,y.totalSize.value=p.dashSize+p.gapSize,y.scale.value=p.scale}function c(y,p,I,C){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,y.size.value=p.size*I,y.scale.value=C*.5,p.map&&(y.map.value=p.map,t(p.map,y.uvTransform)),p.alphaMap&&(y.alphaMap.value=p.alphaMap,t(p.alphaMap,y.alphaMapTransform)),p.alphaTest>0&&(y.alphaTest.value=p.alphaTest)}function A(y,p){y.diffuse.value.copy(p.color),y.opacity.value=p.opacity,y.rotation.value=p.rotation,p.map&&(y.map.value=p.map,t(p.map,y.mapTransform)),p.alphaMap&&(y.alphaMap.value=p.alphaMap,t(p.alphaMap,y.alphaMapTransform)),p.alphaTest>0&&(y.alphaTest.value=p.alphaTest)}function h(y,p){y.specular.value.copy(p.specular),y.shininess.value=Math.max(p.shininess,1e-4)}function f(y,p){p.gradientMap&&(y.gradientMap.value=p.gradientMap)}function d(y,p){y.metalness.value=p.metalness,p.metalnessMap&&(y.metalnessMap.value=p.metalnessMap,t(p.metalnessMap,y.metalnessMapTransform)),y.roughness.value=p.roughness,p.roughnessMap&&(y.roughnessMap.value=p.roughnessMap,t(p.roughnessMap,y.roughnessMapTransform)),e.get(p).envMap&&(y.envMapIntensity.value=p.envMapIntensity)}function m(y,p,I){y.ior.value=p.ior,p.sheen>0&&(y.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),y.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(y.sheenColorMap.value=p.sheenColorMap,t(p.sheenColorMap,y.sheenColorMapTransform)),p.sheenRoughnessMap&&(y.sheenRoughnessMap.value=p.sheenRoughnessMap,t(p.sheenRoughnessMap,y.sheenRoughnessMapTransform))),p.clearcoat>0&&(y.clearcoat.value=p.clearcoat,y.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(y.clearcoatMap.value=p.clearcoatMap,t(p.clearcoatMap,y.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(y.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,t(p.clearcoatRoughnessMap,y.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(y.clearcoatNormalMap.value=p.clearcoatNormalMap,t(p.clearcoatNormalMap,y.clearcoatNormalMapTransform),y.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Vi&&y.clearcoatNormalScale.value.negate())),p.iridescence>0&&(y.iridescence.value=p.iridescence,y.iridescenceIOR.value=p.iridescenceIOR,y.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],y.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(y.iridescenceMap.value=p.iridescenceMap,t(p.iridescenceMap,y.iridescenceMapTransform)),p.iridescenceThicknessMap&&(y.iridescenceThicknessMap.value=p.iridescenceThicknessMap,t(p.iridescenceThicknessMap,y.iridescenceThicknessMapTransform))),p.transmission>0&&(y.transmission.value=p.transmission,y.transmissionSamplerMap.value=I.texture,y.transmissionSamplerSize.value.set(I.width,I.height),p.transmissionMap&&(y.transmissionMap.value=p.transmissionMap,t(p.transmissionMap,y.transmissionMapTransform)),y.thickness.value=p.thickness,p.thicknessMap&&(y.thicknessMap.value=p.thicknessMap,t(p.thicknessMap,y.thicknessMapTransform)),y.attenuationDistance.value=p.attenuationDistance,y.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(y.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(y.anisotropyMap.value=p.anisotropyMap,t(p.anisotropyMap,y.anisotropyMapTransform))),y.specularIntensity.value=p.specularIntensity,y.specularColor.value.copy(p.specularColor),p.specularColorMap&&(y.specularColorMap.value=p.specularColorMap,t(p.specularColorMap,y.specularColorMapTransform)),p.specularIntensityMap&&(y.specularIntensityMap.value=p.specularIntensityMap,t(p.specularIntensityMap,y.specularIntensityMapTransform))}function E(y,p){p.matcap&&(y.matcap.value=p.matcap)}function x(y,p){const I=e.get(p).light;y.referencePosition.value.setFromMatrixPosition(I.matrixWorld),y.nearDistance.value=I.shadow.camera.near,y.farDistance.value=I.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function A4(n,e,t,i){let r={},s={},o=[];const a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function c(I,C){const B=C.program;i.uniformBlockBinding(I,B)}function A(I,C){let B=r[I.id];B===void 0&&(E(I),B=h(I),r[I.id]=B,I.addEventListener("dispose",y));const R=C.program;i.updateUBOMapping(I,R);const M=e.render.frame;s[I.id]!==M&&(d(I),s[I.id]=M)}function h(I){const C=f();I.__bindingPointIndex=C;const B=n.createBuffer(),R=I.__size,M=I.usage;return n.bindBuffer(n.UNIFORM_BUFFER,B),n.bufferData(n.UNIFORM_BUFFER,R,M),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,C,B),B}function f(){for(let I=0;I0&&(B+=R-M),I.__size=B,I.__cache={},this}function x(I){const C={boundary:0,storage:0};return typeof I=="number"||typeof I=="boolean"?(C.boundary=4,C.storage=4):I.isVector2?(C.boundary=8,C.storage=8):I.isVector3||I.isColor?(C.boundary=16,C.storage=12):I.isVector4?(C.boundary=16,C.storage=16):I.isMatrix3?(C.boundary=48,C.storage=48):I.isMatrix4?(C.boundary=64,C.storage=64):I.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",I),C}function y(I){const C=I.target;C.removeEventListener("dispose",y);const B=o.indexOf(C.__bindingPointIndex);o.splice(B,1),n.deleteBuffer(r[C.id]),delete r[C.id],delete s[C.id]}function p(){for(const I in r)n.deleteBuffer(r[I]);o=[],r={},s={}}return{bind:c,update:A,dispose:p}}class hI{constructor(e={}){const{canvas:t=E2(),context:i=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:A=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:f=!1}=e;this.isWebGLRenderer=!0;let d;i!==null?d=i.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),E=new Int32Array(4);let x=null,y=null;const p=[],I=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=On,this._useLegacyLights=!1,this.toneMapping=Ts,this.toneMappingExposure=1;const C=this;let B=!1,R=0,M=0,T=null,P=-1,K=null;const w=new cn,b=new cn;let q=null;const de=new Je(0);let J=0,re=t.width,ne=t.height,ue=1,U=null,ee=null;const te=new cn(0,0,re,ne),Ae=new cn(0,0,re,ne);let Ce=!1;const ke=new Vh;let V=!1,O=!1,k=null;const F=new ft,me=new _e,Ie=new G,oe={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Be(){return T===null?ue:1}let H=i;function Ee(z,pe){for(let xe=0;xe{function Ze(){if(Se.forEach(function(lt){$.get(lt).currentProgram.isReady()&&Se.delete(lt)}),Se.size===0){ve(z);return}setTimeout(Ze,10)}ie.get("KHR_parallel_shader_compile")!==null?Ze():setTimeout(Ze,10)})};let Jt=null;function bn(z){Jt&&Jt(z)}function fi(){hn.stop()}function rn(){hn.start()}const hn=new _2;hn.setAnimationLoop(bn),typeof self<"u"&&hn.setContext(self),this.setAnimationLoop=function(z){Jt=z,Mt.setAnimationLoop(z),z===null?hn.stop():hn.start()},Mt.addEventListener("sessionstart",fi),Mt.addEventListener("sessionend",rn),this.render=function(z,pe){if(pe!==void 0&&pe.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(B===!0)return;z.matrixWorldAutoUpdate===!0&&z.updateMatrixWorld(),pe.parent===null&&pe.matrixWorldAutoUpdate===!0&&pe.updateMatrixWorld(),Mt.enabled===!0&&Mt.isPresenting===!0&&(Mt.cameraAutoUpdate===!0&&Mt.updateCamera(pe),pe=Mt.getCamera()),z.isScene===!0&&z.onBeforeRender(C,z,pe,T),y=at.get(z,I.length),y.init(),I.push(y),F.multiplyMatrices(pe.projectionMatrix,pe.matrixWorldInverse),ke.setFromProjectionMatrix(F),O=this.localClippingEnabled,V=vt.init(this.clippingPlanes,O),x=Ke.get(z,p.length),x.init(),p.push(x),Ki(z,pe,0,C.sortObjects),x.finish(),C.sortObjects===!0&&x.sort(U,ee),this.info.render.frame++,V===!0&&vt.beginShadows();const xe=y.state.shadowsArray;if(Ne.render(xe,z,pe),V===!0&&vt.endShadows(),this.info.autoReset===!0&&this.info.reset(),(Mt.enabled===!1||Mt.isPresenting===!1||Mt.hasDepthSensing()===!1)&&Nt.render(x,z),y.setupLights(C._useLegacyLights),pe.isArrayCamera){const Se=pe.cameras;for(let ve=0,Ze=Se.length;ve0?y=I[I.length-1]:y=null,p.pop(),p.length>0?x=p[p.length-1]:x=null};function Ki(z,pe,xe,Se){if(z.visible===!1)return;if(z.layers.test(pe.layers)){if(z.isGroup)xe=z.renderOrder;else if(z.isLOD)z.autoUpdate===!0&&z.update(pe);else if(z.isLight)y.pushLight(z),z.castShadow&&y.pushShadow(z);else if(z.isSprite){if(!z.frustumCulled||ke.intersectsSprite(z)){Se&&Ie.setFromMatrixPosition(z.matrixWorld).applyMatrix4(F);const lt=Qe.update(z),gt=z.material;gt.visible&&x.push(z,lt,gt,xe,Ie.z,null)}}else if((z.isMesh||z.isLine||z.isPoints)&&(!z.frustumCulled||ke.intersectsObject(z))){const lt=Qe.update(z),gt=z.material;if(Se&&(z.boundingSphere!==void 0?(z.boundingSphere===null&&z.computeBoundingSphere(),Ie.copy(z.boundingSphere.center)):(lt.boundingSphere===null&<.computeBoundingSphere(),Ie.copy(lt.boundingSphere.center)),Ie.applyMatrix4(z.matrixWorld).applyMatrix4(F)),Array.isArray(gt)){const pt=lt.groups;for(let Qt=0,_t=pt.length;Qt<_t;Qt++){const St=pt[Qt],En=gt[St.materialIndex];En&&En.visible&&x.push(z,lt,En,xe,Ie.z,St)}}else gt.visible&&x.push(z,lt,gt,xe,Ie.z,null)}}const Ze=z.children;for(let lt=0,gt=Ze.length;lt0&&di(ve,Ze,pe,xe),Se&&fe.viewport(w.copy(Se)),ve.length>0&&ks(ve,pe,xe),Ze.length>0&&ks(Ze,pe,xe),lt.length>0&&ks(lt,pe,xe),fe.buffers.depth.setTest(!0),fe.buffers.depth.setMask(!0),fe.buffers.color.setMask(!0),fe.setPolygonOffset(!1)}function di(z,pe,xe,Se){if((xe.isScene===!0?xe.overrideMaterial:null)!==null)return;const Ze=le.isWebGL2;k===null&&(k=new Wr(1,1,{generateMipmaps:!0,type:ie.has("EXT_color_buffer_half_float")?Ol:Ds,minFilter:ws,samples:Ze?4:0})),C.getDrawingBufferSize(me),Ze?k.setSize(me.x,me.y):k.setSize(yg(me.x),yg(me.y));const lt=C.getRenderTarget();C.setRenderTarget(k),C.getClearColor(de),J=C.getClearAlpha(),J<1&&C.setClearColor(16777215,.5),C.clear();const gt=C.toneMapping;C.toneMapping=Ts,ks(z,xe,Se),S.updateMultisampleRenderTarget(k),S.updateRenderTargetMipmap(k);let pt=!1;for(let Qt=0,_t=pe.length;Qt<_t;Qt++){const St=pe[Qt],En=St.object,Wn=St.geometry,sn=St.material,Yn=St.group;if(sn.side===Ss&&En.layers.test(Se.layers)){const yt=sn.side;sn.side=Vi,sn.needsUpdate=!0,ar(En,xe,Se,Wn,sn,Yn),sn.side=yt,sn.needsUpdate=!0,pt=!0}}pt===!0&&(S.updateMultisampleRenderTarget(k),S.updateRenderTargetMipmap(k)),C.setRenderTarget(lt),C.setClearColor(de,J),C.toneMapping=gt}function ks(z,pe,xe){const Se=pe.isScene===!0?pe.overrideMaterial:null;for(let ve=0,Ze=z.length;ve0),St=!!xe.morphAttributes.position,En=!!xe.morphAttributes.normal,Wn=!!xe.morphAttributes.color;let sn=Ts;Se.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&(sn=C.toneMapping);const Yn=xe.morphAttributes.position||xe.morphAttributes.normal||xe.morphAttributes.color,yt=Yn!==void 0?Yn.length:0,et=$.get(Se),Ci=y.state.lights;if(V===!0&&(O===!0||z!==K)){const we=z===K&&Se.id===P;vt.setState(Se,z,we)}let It=!1;Se.version===et.__version?(et.needsLights&&et.lightsStateVersion!==Ci.state.version||et.outputColorSpace!==gt||ve.isBatchedMesh&&et.batching===!1||!ve.isBatchedMesh&&et.batching===!0||ve.isInstancedMesh&&et.instancing===!1||!ve.isInstancedMesh&&et.instancing===!0||ve.isSkinnedMesh&&et.skinning===!1||!ve.isSkinnedMesh&&et.skinning===!0||ve.isInstancedMesh&&et.instancingColor===!0&&ve.instanceColor===null||ve.isInstancedMesh&&et.instancingColor===!1&&ve.instanceColor!==null||et.envMap!==pt||Se.fog===!0&&et.fog!==Ze||et.numClippingPlanes!==void 0&&(et.numClippingPlanes!==vt.numPlanes||et.numIntersection!==vt.numIntersection)||et.vertexAlphas!==Qt||et.vertexTangents!==_t||et.morphTargets!==St||et.morphNormals!==En||et.morphColors!==Wn||et.toneMapping!==sn||le.isWebGL2===!0&&et.morphTargetsCount!==yt)&&(It=!0):(It=!0,et.__version=Se.version);let fn=et.currentProgram;It===!0&&(fn=fs(Se,pe,ve));let lr=!1,L=!1,N=!1;const Z=fn.getUniforms(),ae=et.uniforms;if(fe.useProgram(fn.program)&&(lr=!0,L=!0,N=!0),Se.id!==P&&(P=Se.id,L=!0),lr||K!==z){Z.setValue(H,"projectionMatrix",z.projectionMatrix),Z.setValue(H,"viewMatrix",z.matrixWorldInverse);const we=Z.map.cameraPosition;we!==void 0&&we.setValue(H,Ie.setFromMatrixPosition(z.matrixWorld)),le.logarithmicDepthBuffer&&Z.setValue(H,"logDepthBufFC",2/(Math.log(z.far+1)/Math.LN2)),(Se.isMeshPhongMaterial||Se.isMeshToonMaterial||Se.isMeshLambertMaterial||Se.isMeshBasicMaterial||Se.isMeshStandardMaterial||Se.isShaderMaterial)&&Z.setValue(H,"isOrthographic",z.isOrthographicCamera===!0),K!==z&&(K=z,L=!0,N=!0)}if(ve.isSkinnedMesh){Z.setOptional(H,ve,"bindMatrix"),Z.setOptional(H,ve,"bindMatrixInverse");const we=ve.skeleton;we&&(le.floatVertexTextures?(we.boneTexture===null&&we.computeBoneTexture(),Z.setValue(H,"boneTexture",we.boneTexture,S)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}ve.isBatchedMesh&&(Z.setOptional(H,ve,"batchingTexture"),Z.setValue(H,"batchingTexture",ve._matricesTexture,S));const ge=xe.morphAttributes;if((ge.position!==void 0||ge.normal!==void 0||ge.color!==void 0&&le.isWebGL2===!0)&&wt.update(ve,xe,fn),(L||et.receiveShadow!==ve.receiveShadow)&&(et.receiveShadow=ve.receiveShadow,Z.setValue(H,"receiveShadow",ve.receiveShadow)),Se.isMeshGouraudMaterial&&Se.envMap!==null&&(ae.envMap.value=pt,ae.flipEnvMap.value=pt.isCubeTexture&&pt.isRenderTargetTexture===!1?-1:1),L&&(Z.setValue(H,"toneMappingExposure",C.toneMappingExposure),et.needsLights&&Uu(ae,N),Ze&&Se.fog===!0&&ze.refreshFogUniforms(ae,Ze),ze.refreshMaterialUniforms(ae,Se,ue,ne,k),Np.upload(H,To(et),ae,S)),Se.isShaderMaterial&&Se.uniformsNeedUpdate===!0&&(Np.upload(H,To(et),ae,S),Se.uniformsNeedUpdate=!1),Se.isSpriteMaterial&&Z.setValue(H,"center",ve.center),Z.setValue(H,"modelViewMatrix",ve.modelViewMatrix),Z.setValue(H,"normalMatrix",ve.normalMatrix),Z.setValue(H,"modelMatrix",ve.matrixWorld),Se.isShaderMaterial||Se.isRawShaderMaterial){const we=Se.uniformsGroups;for(let Pe=0,Le=we.length;Pe0&&S.useMultisampledRTT(z)===!1?ve=$.get(z).__webglMultisampledFramebuffer:Array.isArray(_t)?ve=_t[xe]:ve=_t,w.copy(z.viewport),b.copy(z.scissor),q=z.scissorTest}else w.copy(te).multiplyScalar(ue).floor(),b.copy(Ae).multiplyScalar(ue).floor(),q=Ce;if(fe.bindFramebuffer(H.FRAMEBUFFER,ve)&&le.drawBuffers&&Se&&fe.drawBuffers(z,ve),fe.viewport(w),fe.scissor(b),fe.setScissorTest(q),Ze){const pt=$.get(z.texture);H.framebufferTexture2D(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_CUBE_MAP_POSITIVE_X+pe,pt.__webglTexture,xe)}else if(lt){const pt=$.get(z.texture),Qt=pe||0;H.framebufferTextureLayer(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,pt.__webglTexture,xe||0,Qt)}P=-1},this.readRenderTargetPixels=function(z,pe,xe,Se,ve,Ze,lt){if(!(z&&z.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let gt=$.get(z).__webglFramebuffer;if(z.isWebGLCubeRenderTarget&<!==void 0&&(gt=gt[lt]),gt){fe.bindFramebuffer(H.FRAMEBUFFER,gt);try{const pt=z.texture,Qt=pt.format,_t=pt.type;if(Qt!==Oi&&tt.convert(Qt)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const St=_t===Ol&&(ie.has("EXT_color_buffer_half_float")||le.isWebGL2&&ie.has("EXT_color_buffer_float"));if(_t!==Ds&&tt.convert(_t)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_TYPE)&&!(_t===Fr&&(le.isWebGL2||ie.has("OES_texture_float")||ie.has("WEBGL_color_buffer_float")))&&!St){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}pe>=0&&pe<=z.width-Se&&xe>=0&&xe<=z.height-ve&&H.readPixels(pe,xe,Se,ve,tt.convert(Qt),tt.convert(_t),Ze)}finally{const pt=T!==null?$.get(T).__webglFramebuffer:null;fe.bindFramebuffer(H.FRAMEBUFFER,pt)}}},this.copyFramebufferToTexture=function(z,pe,xe=0){const Se=Math.pow(2,-xe),ve=Math.floor(pe.image.width*Se),Ze=Math.floor(pe.image.height*Se);S.setTexture2D(pe,0),H.copyTexSubImage2D(H.TEXTURE_2D,xe,0,0,z.x,z.y,ve,Ze),fe.unbindTexture()},this.copyTextureToTexture=function(z,pe,xe,Se=0){const ve=pe.image.width,Ze=pe.image.height,lt=tt.convert(xe.format),gt=tt.convert(xe.type);S.setTexture2D(xe,0),H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,xe.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,xe.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,xe.unpackAlignment),pe.isDataTexture?H.texSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,ve,Ze,lt,gt,pe.image.data):pe.isCompressedTexture?H.compressedTexSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,pe.mipmaps[0].width,pe.mipmaps[0].height,lt,pe.mipmaps[0].data):H.texSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,lt,gt,pe.image),Se===0&&xe.generateMipmaps&&H.generateMipmap(H.TEXTURE_2D),fe.unbindTexture()},this.copyTextureToTexture3D=function(z,pe,xe,Se,ve=0){if(C.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Ze=z.max.x-z.min.x+1,lt=z.max.y-z.min.y+1,gt=z.max.z-z.min.z+1,pt=tt.convert(Se.format),Qt=tt.convert(Se.type);let _t;if(Se.isData3DTexture)S.setTexture3D(Se,0),_t=H.TEXTURE_3D;else if(Se.isDataArrayTexture||Se.isCompressedArrayTexture)S.setTexture2DArray(Se,0),_t=H.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,Se.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Se.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,Se.unpackAlignment);const St=H.getParameter(H.UNPACK_ROW_LENGTH),En=H.getParameter(H.UNPACK_IMAGE_HEIGHT),Wn=H.getParameter(H.UNPACK_SKIP_PIXELS),sn=H.getParameter(H.UNPACK_SKIP_ROWS),Yn=H.getParameter(H.UNPACK_SKIP_IMAGES),yt=xe.isCompressedTexture?xe.mipmaps[ve]:xe.image;H.pixelStorei(H.UNPACK_ROW_LENGTH,yt.width),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,yt.height),H.pixelStorei(H.UNPACK_SKIP_PIXELS,z.min.x),H.pixelStorei(H.UNPACK_SKIP_ROWS,z.min.y),H.pixelStorei(H.UNPACK_SKIP_IMAGES,z.min.z),xe.isDataTexture||xe.isData3DTexture?H.texSubImage3D(_t,ve,pe.x,pe.y,pe.z,Ze,lt,gt,pt,Qt,yt.data):xe.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),H.compressedTexSubImage3D(_t,ve,pe.x,pe.y,pe.z,Ze,lt,gt,pt,yt.data)):H.texSubImage3D(_t,ve,pe.x,pe.y,pe.z,Ze,lt,gt,pt,Qt,yt),H.pixelStorei(H.UNPACK_ROW_LENGTH,St),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,En),H.pixelStorei(H.UNPACK_SKIP_PIXELS,Wn),H.pixelStorei(H.UNPACK_SKIP_ROWS,sn),H.pixelStorei(H.UNPACK_SKIP_IMAGES,Yn),ve===0&&Se.generateMipmaps&&H.generateMipmap(_t),fe.unbindTexture()},this.initTexture=function(z){z.isCubeTexture?S.setTextureCube(z,0):z.isData3DTexture?S.setTexture3D(z,0):z.isDataArrayTexture||z.isCompressedArrayTexture?S.setTexture2DArray(z,0):S.setTexture2D(z,0),fe.unbindTexture()},this.resetState=function(){R=0,M=0,T=null,fe.reset(),Bt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Ms}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===Yg?"display-p3":"srgb",t.unpackColorSpace=ln.workingColorSpace===Oh?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===On?Ea:nI}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===Ea?On:bs}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class b2 extends hI{}b2.prototype.isWebGL1Renderer=!0;class qg{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Je(e),this.density=t}clone(){return new qg(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Zg{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Je(e),this.near=t,this.far=i}clone(){return new Zg(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Bh extends nn{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}}class $g{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=vh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=xr()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return bl("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:c,point:dA.clone(),uv:yr.getInterpolation(dA,bd,gA,Ld,x_,mE,B_,new _e),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function Nd(n,e,t,i,r,s){Rc.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(pA.x=s*Rc.x-r*Rc.y,pA.y=r*Rc.x+s*Rc.y):pA.copy(Rc),n.copy(e),n.x+=pA.x,n.y+=pA.y,n.applyMatrix4(L2)}const Pd=new G,__=new G;class P2 extends nn{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){Pd.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(Pd);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Pd.setFromMatrixPosition(e.matrixWorld),__.setFromMatrixPosition(this.matrixWorld);const i=Pd.distanceTo(__)/e.zoom;t[0].object.visible=!0;let r,s;for(r=1,s=t.length;r=o)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const Dc="batchId",jo=new ft,L_=new ft,E4=new ft,N_=new ft,CE=new Vh,kd=new ti,rl=new ui,yA=new G,vE=new m4,Qi=new on,Gd=[];function y4(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new an(a,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(Dc,new an(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(Dc))throw new Error(`BatchedMesh: Geometry cannot use attribute "${Dc}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===Dc)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ti);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,a=this._drawRanges,c=this._bounds;this._geometryCount!==0&&(s=o[o.length-1]),t===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=t,s===null?r.vertexStart=0:r.vertexStart=s.vertexStart+s.vertexCount;const A=e.getIndex(),h=A!==null;if(h&&(i===-1?r.indexCount=A.count:r.indexCount=i,s===null?r.indexStart=0:r.indexStart=s.indexStart+s.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const f=this._visibility,d=this._active,m=this._matricesTexture,E=this._matricesTexture.image.data;f.push(!0),d.push(!0);const x=this._geometryCount;this._geometryCount++,E4.toArray(E,x*16),m.needsUpdate=!0,o.push(r),a.push({start:h?r.indexStart:r.vertexStart,count:-1}),c.push({boxInitialized:!1,box:new ti,sphereInitialized:!1,sphere:new ui});const y=this.geometry.getAttribute(Dc);for(let p=0;p=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=i.getIndex()!==null,s=i.getIndex(),o=t.getIndex(),a=this._reservedRanges[e];if(r&&o.count>a.indexCount||t.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const c=a.vertexStart,A=a.vertexCount;for(const m in i.attributes){if(m===Dc)continue;const E=t.getAttribute(m),x=i.getAttribute(m);y4(E,x,c);const y=E.itemSize;for(let p=E.count,I=A;p=t.length||t[e]===!1?this:(t[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,t){if(this._active[e]===!1)return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(r.boxInitialized===!1){s.makeEmpty();const a=o.index,c=o.attributes.position,A=this._drawRanges[e];for(let h=A.start,f=A.start+A.count;h=o||i[e]===!1?this:(t.toArray(s,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,t){const i=this._active,r=this._matricesTexture.image.data,s=this._geometryCount;return e>=s||i[e]===!1?null:t.fromArray(r,e*16)}setVisibleAt(e,t){const i=this._visibility,r=this._active,s=this._geometryCount;return e>=s||r[e]===!1||i[e]===t?this:(i[e]=t,this._visibilityChanged=!0,this)}getVisibleAt(e){const t=this._visibility,i=this._active,r=this._geometryCount;return e>=r||i[e]===!1?!1:t[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,a=this.matrixWorld,c=this.geometry;Qi.material=this.material,Qi.geometry.index=c.index,Qi.geometry.attributes=c.attributes,Qi.geometry.boundingBox===null&&(Qi.geometry.boundingBox=new ti),Qi.geometry.boundingSphere===null&&(Qi.geometry.boundingSphere=new ui);for(let A=0;A({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),a=o===null?1:o.array.BYTES_PER_ELEMENT,c=this._active,A=this._visibility,h=this._multiDrawStarts,f=this._multiDrawCounts,d=this._drawRanges,m=this.perObjectFrustumCulled;m&&(N_.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),CE.setFromProjectionMatrix(N_,e.coordinateSystem));let E=0;if(this.sortObjects){L_.copy(this.matrixWorld).invert(),yA.setFromMatrixPosition(i.matrixWorld).applyMatrix4(L_);for(let p=0,I=A.length;pc)continue;d.applyMatrix4(this.matrixWorld);const P=e.ray.origin.distanceTo(d);Pe.far||t.push({distance:P,point:f.clone().applyMatrix4(this.matrixWorld),index:C,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),I=Math.min(y.count,o.start+o.count);for(let C=p,B=I-1;Cc)continue;d.applyMatrix4(this.matrixWorld);const M=e.ray.origin.distanceTo(d);Me.far||t.push({distance:M,point:f.clone().applyMatrix4(this.matrixWorld),index:C,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:A,distanceToRay:Math.sqrt(a),point:c,index:e,face:null,object:o})}}class C4 extends wn{constructor(e,t,i,r,s,o,a,c,A){super(e,t,i,r,s,o,a,c,A),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:In,this.magFilter=s!==void 0?s:In,this.generateMipmaps=!1;const h=this;function f(){h.needsUpdate=!0,e.requestVideoFrameCallback(f)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(f)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class v4 extends wn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=Gn,this.minFilter=Gn,this.generateMipmaps=!1,this.needsUpdate=!0}}class tm extends wn{constructor(e,t,i,r,s,o,a,c,A,h,f,d){super(null,o,a,c,A,h,r,s,f,d),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class I4 extends tm{constructor(e,t,i,r,s,o){super(e,t,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=Ti}}class x4 extends tm{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,go),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class B4 extends wn{constructor(e,t,i,r,s,o,a,c,A){super(e,t,i,r,s,o,a,c,A),this.isCanvasTexture=!0,this.needsUpdate=!0}}class As{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;t?o=t:o=e*i[s-1];let a=0,c=s-1,A;for(;a<=c;)if(r=Math.floor(a+(c-a)/2),A=i[r]-o,A<0)a=r+1;else if(A>0)c=r-1;else{c=r;break}if(r=c,i[r]===o)return r/(s-1);const h=i[r],d=i[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),c=t||(o.isVector2?new _e:new G);return c.copy(a).sub(o).normalize(),c}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new G,r=[],s=[],o=[],a=new G,c=new ft;for(let m=0;m<=e;m++){const E=m/e;r[m]=this.getTangentAt(E,new G)}s[0]=new G,o[0]=new G;let A=Number.MAX_VALUE;const h=Math.abs(r[0].x),f=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=A&&(A=h,i.set(1,0,0)),f<=A&&(A=f,i.set(0,1,0)),d<=A&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=e;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const E=Math.acos(Un(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(c.makeRotationAxis(a,E))}o[m].crossVectors(r[m],s[m])}if(t===!0){let m=Math.acos(Un(s[0].dot(s[e]),-1,1));m/=e,r[0].dot(a.crossVectors(s[0],s[e]))>0&&(m=-m);for(let E=1;E<=e;E++)s[E].applyMatrix4(c.makeRotationAxis(r[E],m*E)),o[E].crossVectors(r[E],s[E])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class nm extends As{constructor(e=0,t=0,i=1,r=1,s=0,o=Math.PI*2,a=!1,c=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=c}getPoint(e,t){const i=t||new _e,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:c===0&&a===s-1&&(a=s-2,c=1);let A,h;this.closed||a>0?A=r[(a-1)%s]:(Vd.subVectors(r[0],r[1]).add(r[0]),A=Vd);const f=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],f=r[o>r.length-3?r.length-1:o+2];return i.set(z_(a,c.x,A.x,h.x,f.x),z_(a,c.y,A.y,h.y,f.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,a=this.curves[s],c=a.getLength(),A=c===0?0:1-o/c;return a.getPointAt(A,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const f=A.getPoint(0);f.equals(this.currentPoint)||this.lineTo(f.x,f.y)}this.curves.push(A);const h=A.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class Yh extends Lt{constructor(e=[new _e(0,-.5),new _e(.5,0),new _e(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Un(r,0,Math.PI*2);const s=[],o=[],a=[],c=[],A=[],h=1/t,f=new G,d=new _e,m=new G,E=new G,x=new G;let y=0,p=0;for(let I=0;I<=e.length-1;I++)switch(I){case 0:y=e[I+1].x-e[I].x,p=e[I+1].y-e[I].y,m.x=p*1,m.y=-y,m.z=p*0,x.copy(m),m.normalize(),c.push(m.x,m.y,m.z);break;case e.length-1:c.push(x.x,x.y,x.z);break;default:y=e[I+1].x-e[I].x,p=e[I+1].y-e[I].y,m.x=p*1,m.y=-y,m.z=p*0,E.copy(m),m.x+=x.x,m.y+=x.y,m.z+=x.z,m.normalize(),c.push(m.x,m.y,m.z),x.copy(E)}for(let I=0;I<=t;I++){const C=i+I*h*r,B=Math.sin(C),R=Math.cos(C);for(let M=0;M<=e.length-1;M++){f.x=e[M].x*B,f.y=e[M].y,f.z=e[M].x*R,o.push(f.x,f.y,f.z),d.x=I/t,d.y=M/(e.length-1),a.push(d.x,d.y);const T=c[3*M+0]*B,P=c[3*M+1],K=c[3*M+0]*R;A.push(T,P,K)}}for(let I=0;I0&&C(!0),t>0&&C(!1)),this.setIndex(h),this.setAttribute("position",new st(f,3)),this.setAttribute("normal",new st(d,3)),this.setAttribute("uv",new st(m,2));function I(){const B=new G,R=new G;let M=0;const T=(t-e)/i;for(let P=0;P<=s;P++){const K=[],w=P/s,b=w*(t-e)+e;for(let q=0;q<=r;q++){const de=q/r,J=de*c+a,re=Math.sin(J),ne=Math.cos(J);R.x=b*re,R.y=-w*i+y,R.z=b*ne,f.push(R.x,R.y,R.z),B.set(re,T,ne).normalize(),d.push(B.x,B.y,B.z),m.push(de,1-w),K.push(E++)}x.push(K)}for(let P=0;P.9&&T<.1&&(C<.2&&(o[I+0]+=1),B<.2&&(o[I+2]+=1),R<.2&&(o[I+4]+=1))}}function d(I){s.push(I.x,I.y,I.z)}function m(I,C){const B=I*3;C.x=e[B+0],C.y=e[B+1],C.z=e[B+2]}function E(){const I=new G,C=new G,B=new G,R=new G,M=new _e,T=new _e,P=new _e;for(let K=0,w=0;K80*t){a=A=n[0],c=h=n[1];for(let E=t;EA&&(A=f),d>h&&(h=d);m=Math.max(A-a,h-c),m=m!==0?32767/m:0}return _h(s,o,t,a,c,m,0),o}};function J2(n,e,t,i,r){let s,o;if(r===J4(n,e,t,i)>0)for(s=e;s=e;s-=i)o=V_(s,n[s],n[s+1],o);return o&&am(o,o.next)&&(wh(o),o=o.next),o}function Vl(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(am(t,t.next)||Rn(t.prev,t,t.next)===0)){if(wh(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function _h(n,e,t,i,r,s,o){if(!n)return;!o&&s&&H4(n,i,r,s);let a=n,c,A;for(;n.prev!==n.next;){if(c=n.prev,A=n.next,s?L4(n,i,r,s):b4(n)){e.push(c.i/t|0),e.push(n.i/t|0),e.push(A.i/t|0),wh(n),n=A.next,a=A.next;continue}if(n=A,n===a){o?o===1?(n=N4(Vl(n),e,t),_h(n,e,t,i,r,s,2)):o===2&&P4(n,e,t,i,r,s):_h(Vl(n),e,t,i,r,s,1);break}}}function b4(n){const e=n.prev,t=n,i=n.next;if(Rn(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,a=e.y,c=t.y,A=i.y,h=rs?r>o?r:o:s>o?s:o,m=a>c?a>A?a:A:c>A?c:A;let E=i.next;for(;E!==e;){if(E.x>=h&&E.x<=d&&E.y>=f&&E.y<=m&&ru(r,a,s,c,o,A,E.x,E.y)&&Rn(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function L4(n,e,t,i){const r=n.prev,s=n,o=n.next;if(Rn(r,s,o)>=0)return!1;const a=r.x,c=s.x,A=o.x,h=r.y,f=s.y,d=o.y,m=ac?a>A?a:A:c>A?c:A,y=h>f?h>d?h:d:f>d?f:d,p=RC(m,E,e,t,i),I=RC(x,y,e,t,i);let C=n.prevZ,B=n.nextZ;for(;C&&C.z>=p&&B&&B.z<=I;){if(C.x>=m&&C.x<=x&&C.y>=E&&C.y<=y&&C!==r&&C!==o&&ru(a,h,c,f,A,d,C.x,C.y)&&Rn(C.prev,C,C.next)>=0||(C=C.prevZ,B.x>=m&&B.x<=x&&B.y>=E&&B.y<=y&&B!==r&&B!==o&&ru(a,h,c,f,A,d,B.x,B.y)&&Rn(B.prev,B,B.next)>=0))return!1;B=B.nextZ}for(;C&&C.z>=p;){if(C.x>=m&&C.x<=x&&C.y>=E&&C.y<=y&&C!==r&&C!==o&&ru(a,h,c,f,A,d,C.x,C.y)&&Rn(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;B&&B.z<=I;){if(B.x>=m&&B.x<=x&&B.y>=E&&B.y<=y&&B!==r&&B!==o&&ru(a,h,c,f,A,d,B.x,B.y)&&Rn(B.prev,B,B.next)>=0)return!1;B=B.nextZ}return!0}function N4(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!am(r,s)&&j2(r,i,i.next,s)&&Sh(r,s)&&Sh(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),wh(i),wh(i.next),i=n=s),i=i.next}while(i!==n);return Vl(i)}function P4(n,e,t,i,r,s){let o=n;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&W4(o,a)){let c=K2(o,a);o=Vl(o,o.next),c=Vl(c,c.next),_h(o,e,t,i,r,s,0),_h(c,e,t,i,r,s,0);return}a=a.next}o=o.next}while(o!==n)}function U4(n,e,t,i){const r=[];let s,o,a,c,A;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){const d=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=s&&d>i&&(i=d,r=t.x=t.x&&t.x>=c&&s!==t.x&&ru(or.x||t.x===r.x&&O4(r,t)))&&(r=t,h=f)),t=t.next;while(t!==a);return r}function O4(n,e){return Rn(n.prev,n,e.prev)<0&&Rn(e.next,n,n.next)<0}function H4(n,e,t,i){let r=n;do r.z===0&&(r.z=RC(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,z4(r)}function z4(n){let e,t,i,r,s,o,a,c,A=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||c>0&&i;)a!==0&&(c===0||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,c--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,A*=2}while(o>1);return n}function RC(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function V4(n){let e=n,t=n;do(e.x=(n-o)*(s-a)&&(n-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(r-o)*(i-a)}function W4(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!Y4(n,e)&&(Sh(n,e)&&Sh(e,n)&&X4(n,e)&&(Rn(n.prev,n,e.prev)||Rn(n,e.prev,e))||am(n,e)&&Rn(n.prev,n,n.next)>0&&Rn(e.prev,e,e.next)>0)}function Rn(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function am(n,e){return n.x===e.x&&n.y===e.y}function j2(n,e,t,i){const r=jd(Rn(n,e,t)),s=jd(Rn(n,e,i)),o=jd(Rn(t,i,n)),a=jd(Rn(t,i,e));return!!(r!==s&&o!==a||r===0&&Jd(n,t,e)||s===0&&Jd(n,i,e)||o===0&&Jd(t,n,i)||a===0&&Jd(t,e,i))}function Jd(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function jd(n){return n>0?1:n<0?-1:0}function Y4(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&j2(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function Sh(n,e){return Rn(n.prev,n,n.next)<0?Rn(n,e,n.next)>=0&&Rn(n,n.prev,e)>=0:Rn(n,e,n.prev)<0||Rn(n,n.next,e)<0}function X4(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function K2(n,e){const t=new TC(n.i,n.x,n.y),i=new TC(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function V_(n,e,t,i){const r=new TC(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function wh(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function TC(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function J4(n,e,t,i){let r=0;for(let s=e,o=t-i;s2&&n[e-1].equals(n[0])&&n.pop()}function Y_(n,e){for(let t=0;tNumber.EPSILON){const Qe=Math.sqrt(be),Xe=Math.sqrt(D*D+se*se),ze=Ee.x-S/Qe,Ke=Ee.y+$/Qe,at=ie.x-se/Xe,vt=ie.y+D/Xe,Ne=((at-ze)*se-(vt-Ke)*D)/($*se-S*D);le=ze+$*Ne-H.x,fe=Ke+S*Ne-H.y;const Nt=le*le+fe*fe;if(Nt<=2)return new _e(le,fe);Te=Math.sqrt(Nt/2)}else{let Qe=!1;$>Number.EPSILON?D>Number.EPSILON&&(Qe=!0):$<-Number.EPSILON?D<-Number.EPSILON&&(Qe=!0):Math.sign(S)===Math.sign(se)&&(Qe=!0),Qe?(le=-S,fe=$,Te=Math.sqrt(be)):(le=$,fe=S,Te=Math.sqrt(be/2))}return new _e(le/Te,fe/Te)}const ee=[];for(let H=0,Ee=J.length,ie=Ee-1,le=H+1;H=0;H--){const Ee=H/y,ie=m*Math.cos(Ee*Math.PI/2),le=E*Math.sin(Ee*Math.PI/2)+x;for(let fe=0,Te=J.length;fe=0;){const le=ie;let fe=ie-1;fe<0&&(fe=H.length-1);for(let Te=0,$=h+y*2;Te<$;Te++){const S=ne*Te,D=ne*(Te+1),se=Ee+le+S,be=Ee+fe+S,De=Ee+fe+D,Qe=Ee+le+D;Ie(se,be,De,Qe)}}}function F(H,Ee,ie){c.push(H),c.push(Ee),c.push(ie)}function me(H,Ee,ie){oe(H),oe(Ee),oe(ie);const le=r.length/3,fe=I.generateTopUV(i,r,le-3,le-2,le-1);Be(fe[0]),Be(fe[1]),Be(fe[2])}function Ie(H,Ee,ie,le){oe(H),oe(Ee),oe(le),oe(Ee),oe(ie),oe(le);const fe=r.length/3,Te=I.generateSideWallUV(i,r,fe-6,fe-3,fe-2,fe-1);Be(Te[0]),Be(Te[1]),Be(Te[3]),Be(Te[1]),Be(Te[2]),Be(Te[3])}function oe(H){r.push(c[H*3+0]),r.push(c[H*3+1]),r.push(c[H*3+2])}function Be(H){s.push(H.x),s.push(H.y)}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){const e=super.toJSON(),t=this.parameters.shapes,i=this.parameters.options;return K4(t,i,e)}static fromJSON(e,t){const i=[];for(let s=0,o=e.shapes.length;s0)&&m.push(C,B,M),(p!==i-1||c0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class tR extends hi{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Je(16777215),this.specular=new Je(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Qa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Gh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class nR extends hi{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Je(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Qa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class iR extends hi{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Qa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class rR extends hi{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Qa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Gh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class sR extends hi{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Je(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Qa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class oR extends Ji{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function Ml(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function aR(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function lR(n){function e(r,s){return n[r]-n[s]}const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function DC(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const a=t[s]*e;for(let c=0;c!==e;++c)r[o++]=n[a+c]}return r}function xI(n,e,t,i){let r=1,s=n[0];for(;s!==void 0&&s[i]===void 0;)s=n[r++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&&(e.push(s.time),t.push.apply(t,o)),s=n[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++];while(s!==void 0);else do o=s[i],o!==void 0&&(e.push(s.time),t.push(o)),s=n[r++];while(s!==void 0)}function Z4(n,e,t,i,r=30){const s=n.clone();s.name=e;const o=[];for(let c=0;c=i)){f.push(A.times[m]);for(let x=0;xs.tracks[c].times[0]&&(a=s.tracks[c].times[0]);for(let c=0;c=a.times[E]){const p=E*f+h,I=p+f-h;x=a.values.slice(p,I)}else{const p=a.createInterpolant(),I=h,C=f-h;p.evaluate(s),x=p.resultBuffer.slice(I,C)}c==="quaternion"&&new Wi().fromArray(x).normalize().conjugate().toArray(x);const y=A.times.length;for(let p=0;p=s)){const a=t[1];e=s)break t}o=i,i=0;break n}break e}for(;i>>1;et;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){const c=i[a];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,c),e=!1;break}if(o!==null&&o>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,c,o),e=!1;break}o=c}if(r!==void 0&&aR(r))for(let a=0,c=r.length;a!==c;++a){const A=r[a];if(isNaN(A)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,A),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===Lp,s=e.length-1;let o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*i,c=o*i,A=0;A!==i;++A)t[c+A]=t[a+A];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}hs.prototype.TimeBufferType=Float32Array;hs.prototype.ValueBufferType=Float32Array;hs.prototype.DefaultInterpolation=gh;class Jl extends hs{}Jl.prototype.ValueTypeName="bool";Jl.prototype.ValueBufferType=Array;Jl.prototype.DefaultInterpolation=ph;Jl.prototype.InterpolantFactoryMethodLinear=void 0;Jl.prototype.InterpolantFactoryMethodSmooth=void 0;class _I extends hs{}_I.prototype.ValueTypeName="color";class Mh extends hs{}Mh.prototype.ValueTypeName="number";class AR extends jh{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=(i-t)/(r-t);let A=e*a;for(let h=A+a;A!==h;A+=4)Wi.slerpFlat(s,0,o,A-a,o,A,c);return s}}class bu extends hs{InterpolantFactoryMethodLinear(e){return new AR(this.times,this.values,this.getValueSize(),e)}}bu.prototype.ValueTypeName="quaternion";bu.prototype.DefaultInterpolation=gh;bu.prototype.InterpolantFactoryMethodSmooth=void 0;class jl extends hs{}jl.prototype.ValueTypeName="string";jl.prototype.ValueBufferType=Array;jl.prototype.DefaultInterpolation=ph;jl.prototype.InterpolantFactoryMethodLinear=void 0;jl.prototype.InterpolantFactoryMethodSmooth=void 0;class Qh extends hs{}Qh.prototype.ValueTypeName="vector";class Rh{constructor(e,t=-1,i,r=Wg){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=xr(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(nG(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(hs.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let a=0;a1){const f=h[1];let d=r[f];d||(r[f]=d=[]),d.push(A)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(f,d,m,E,x){if(m.length!==0){const y=[],p=[];xI(m,y,p,E),y.length!==0&&x.push(new f(d,y,p))}},r=[],s=e.name||"default",o=e.fps||30,a=e.blendMode;let c=e.length||-1;const A=e.hierarchy||[];for(let f=0;f{t&&t(s),this.manager.itemEnd(e)},0),s;if(Zs[e]!==void 0){Zs[e].push({onLoad:t,onProgress:i,onError:r});return}Zs[e]=[],Zs[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,c=this.responseType;fetch(o).then(A=>{if(A.status===200||A.status===0){if(A.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||A.body===void 0||A.body.getReader===void 0)return A;const h=Zs[e],f=A.body.getReader(),d=A.headers.get("Content-Length")||A.headers.get("X-File-Size"),m=d?parseInt(d):0,E=m!==0;let x=0;const y=new ReadableStream({start(p){I();function I(){f.read().then(({done:C,value:B})=>{if(C)p.close();else{x+=B.byteLength;const R=new ProgressEvent("progress",{lengthComputable:E,loaded:x,total:m});for(let M=0,T=h.length;M{switch(c){case"arraybuffer":return A.arrayBuffer();case"blob":return A.blob();case"document":return A.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return A.json();default:if(a===void 0)return A.text();{const f=/charset="?([^;"\s]*)"?/i.exec(a),d=f&&f[1]?f[1].toLowerCase():void 0,m=new TextDecoder(d);return A.arrayBuffer().then(E=>m.decode(E))}}}).then(A=>{lo.add(e,A);const h=Zs[e];delete Zs[e];for(let f=0,d=h.length;f{const h=Zs[e];if(h===void 0)throw this.manager.itemError(e),A;delete Zs[e];for(let f=0,d=h.length;f{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class rG extends ji{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Ls(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{t(s.parse(JSON.parse(a)))}catch(c){r?r(c):console.error(c),s.manager.itemError(e)}},i,r)}parse(e){const t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=new Je().setHex(o.value);break;case"v2":r.uniforms[s].value=new _e().fromArray(o.value);break;case"v3":r.uniforms[s].value=new G().fromArray(o.value);break;case"v4":r.uniforms[s].value=new cn().fromArray(o.value);break;case"m3":r.uniforms[s].value=new Rt().fromArray(o.value);break;case"m4":r.uniforms[s].value=new ft().fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=i(e.map)),e.matcap!==void 0&&(r.matcap=i(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),r.normalScale=new _e().fromArray(s)}return e.displacementMap!==void 0&&(r.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=i(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new _e().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const t={ShadowMaterial:Z2,SpriteMaterial:fI,RawShaderMaterial:$2,ShaderMaterial:cs,PointsMaterial:pI,MeshPhysicalMaterial:eR,MeshStandardMaterial:II,MeshPhongMaterial:tR,MeshToonMaterial:nR,MeshNormalMaterial:iR,MeshLambertMaterial:rR,MeshDepthMaterial:jg,MeshDistanceMaterial:Kg,MeshBasicMaterial:or,MeshMatcapMaterial:sR,LineDashedMaterial:oR,LineBasicMaterial:Ji,Material:hi};return new t[e]}}class bC{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,r=e.length;i0){const c=new SI(t);s=new Th(c),s.setCrossOrigin(this.crossOrigin);for(let A=0,h=e.length;A0){r=new Th(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;o{const y=new ti;y.min.fromArray(x.boxMin),y.max.fromArray(x.boxMax);const p=new ui;return p.radius=x.sphereRadius,p.center.fromArray(x.sphereCenter),{boxInitialized:x.boxInitialized,box:y,sphereInitialized:x.sphereInitialized,sphere:p}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=A(e.matricesTexture.uuid);break;case"LOD":o=new P2;break;case"Line":o=new _a(a(e.geometry),c(e.material));break;case"LineLoop":o=new G2(a(e.geometry),c(e.material));break;case"LineSegments":o=new Ns(a(e.geometry),c(e.material));break;case"PointCloud":case"Points":o=new O2(a(e.geometry),c(e.material));break;case"Sprite":o=new N2(c(e.material));break;case"Group":o=new Gr;break;case"Bone":o=new dI;break;default:o=new nn}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const d=e.children;for(let m=0;m"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=lo.get(e);if(o!==void 0){if(s.manager.itemStart(e),o.then){o.then(A=>{t&&t(A),s.manager.itemEnd(e)}).catch(A=>{r&&r(A)});return}return setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const c=fetch(e,a).then(function(A){return A.blob()}).then(function(A){return createImageBitmap(A,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(A){return lo.add(e,A),t&&t(A),s.manager.itemEnd(e),A}).catch(function(A){r&&r(A),lo.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});lo.add(e,c),s.manager.itemStart(e)}}let Kd;class QI{static getContext(){return Kd===void 0&&(Kd=new(window.AudioContext||window.webkitAudioContext)),Kd}static setContext(e){Kd=e}}class dG extends ji{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Ls(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(c){try{const A=c.slice(0);QI.getContext().decodeAudioData(A,function(f){t(f)}).catch(a)}catch(A){a(A)}},i,r);function a(c){r?r(c):console.error(c),s.manager.itemError(e)}}}const eS=new ft,tS=new ft,sl=new ft;class pG{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new $n,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new $n,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,sl.copy(e.projectionMatrix);const r=t.eyeSep/2,s=r*t.near/t.focus,o=t.near*Math.tan(Dl*t.fov*.5)/t.zoom;let a,c;tS.elements[12]=-r,eS.elements[12]=r,a=-o*t.aspect+s,c=o*t.aspect+s,sl.elements[0]=2*t.near/(c-a),sl.elements[8]=(c+a)/(c-a),this.cameraL.projectionMatrix.copy(sl),a=-o*t.aspect-s,c=o*t.aspect-s,sl.elements[0]=2*t.near/(c-a),sl.elements[8]=(c+a)/(c-a),this.cameraR.projectionMatrix.copy(sl)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(tS),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(eS)}}class RI{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=nS(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=nS();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function nS(){return(typeof performance>"u"?Date:performance).now()}const ol=new G,iS=new Wi,gG=new G,al=new G;class mG extends nn{constructor(){super(),this.type="AudioListener",this.context=QI.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new RI}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(ol,iS,gG),al.set(0,0,-1).applyQuaternion(iS),t.positionX){const r=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(ol.x,r),t.positionY.linearRampToValueAtTime(ol.y,r),t.positionZ.linearRampToValueAtTime(ol.z,r),t.forwardX.linearRampToValueAtTime(al.x,r),t.forwardY.linearRampToValueAtTime(al.y,r),t.forwardZ.linearRampToValueAtTime(al.z,r),t.upX.linearRampToValueAtTime(i.x,r),t.upY.linearRampToValueAtTime(i.y,r),t.upZ.linearRampToValueAtTime(i.z,r)}else t.setPosition(ol.x,ol.y,ol.z),t.setOrientation(al.x,al.y,al.z,i.x,i.y,i.z)}}class xR extends nn{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let c=t,A=t+t;c!==A;++c)if(i[c]!==i[c+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let s=i,o=r;s!==o;++s)t[s]=t[r+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let o=0;o!==s;++o)e[t+o]=e[i+o]}_slerp(e,t,i,r){Wi.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,s){const o=this._workIndex*s;Wi.multiplyQuaternionsFlat(e,o,e,t,e,i),Wi.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,i,r,s){const o=1-r;for(let a=0;a!==s;++a){const c=t+a;e[c]=e[c]*o+e[i+a]*r}}_lerpAdditive(e,t,i,r,s){for(let o=0;o!==s;++o){const a=t+o;e[a]=e[a]+e[i+o]*r}}}const TI="\\[\\]\\.:\\/",vG=new RegExp("["+TI+"]","g"),DI="[^"+TI+"]",IG="[^"+TI.replace("\\.","")+"]",xG=/((?:WC+[\/:])*)/.source.replace("WC",DI),BG=/(WCOD+)?/.source.replace("WCOD",IG),_G=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",DI),SG=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",DI),wG=new RegExp("^"+xG+BG+_G+SG+"$"),MG=["material","materials","bones","map"];class QG{constructor(e,t,i){const r=i||jt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class jt{constructor(e,t,i){this.path=t,this.parsedPath=i||jt.parseTrackName(t),this.node=jt.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new jt.Composite(e,t,i):new jt(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(vG,"")}static parseTrackName(e){const t=wG.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=i.nodeName.substring(r+1);MG.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(s){for(let o=0;o=s){const f=s++,d=e[f];t[d.uuid]=h,e[h]=d,t[A]=f,e[f]=c;for(let m=0,E=r;m!==E;++m){const x=i[m],y=x[f],p=x[h];x[h]=y,x[f]=p}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let s=this.nCachedObjects_,o=e.length;for(let a=0,c=arguments.length;a!==c;++a){const A=arguments[a],h=A.uuid,f=t[h];if(f!==void 0)if(delete t[h],f0&&(t[m.uuid]=f),e[f]=m,e.pop();for(let E=0,x=r;E!==x;++E){const y=i[E];y[f]=y[d],y.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const s=this._bindings;if(r!==void 0)return s[r];const o=this._paths,a=this._parsedPaths,c=this._objects,A=c.length,h=this.nCachedObjects_,f=new Array(A);r=s.length,i[e]=r,o.push(e),a.push(t),s.push(f);for(let d=h,m=c.length;d!==m;++d){const E=c[d];f[d]=new jt(E,e,t)}return f}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,c=o[a],A=e[a];t[A]=i,o[i]=c,o.pop(),s[i]=s[a],s.pop(),r[i]=r[a],r.pop()}}}class _R{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const s=t.tracks,o=s.length,a=new Array(o),c={endingStart:_l,endingEnd:_l};for(let A=0;A!==o;++A){const h=s[A].createInterpolant(null);a[A]=h,h.settings=c}this._interpolantSettings=c,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=o2,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const r=this._clip.duration,s=e._clip.duration,o=s/r,a=r/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,s=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const c=a.parameterPositions,A=a.sampleValues;return c[0]=s,c[1]=s+i,A[0]=e/o,A[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const c=(e-s)*i;c<0||i===0?t=0:(this._startTime=null,t=i*c)}t*=this._updateTimeScale(e);const o=this._updateTime(t),a=this._updateWeight(e);if(a>0){const c=this._interpolants,A=this._propertyBindings;switch(this.blendMode){case tI:for(let h=0,f=c.length;h!==f;++h)c[h].evaluate(o),A[h].accumulateAdditive(a);break;case Wg:default:for(let h=0,f=c.length;h!==f;++h)c[h].evaluate(o),A[h].accumulate(r,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,s=this._loopCount;const o=i===a2;if(e===0)return s===-1?r:o&&(s&1)===1?t-r:r;if(i===s2){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=t||r<0){const a=Math.floor(r/t);r-=t*a,s+=Math.abs(a);const c=this.repetitions-s;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){const A=e<0;this._setEndings(A,!A,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&(s&1)===1)return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=Sl,r.endingEnd=Sl):(e?r.endingStart=this.zeroSlopeAtStart?Sl:_l:r.endingStart=mh,t?r.endingEnd=this.zeroSlopeAtEnd?Sl:_l:r.endingEnd=mh)}_scheduleFading(e,t,i){const r=this._mixer,s=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,c=o.sampleValues;return a[0]=s,c[0]=t,a[1]=s+e,c[1]=i,this}}const TG=new Float32Array(1);class DG extends Eo{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,s=r.length,o=e._propertyBindings,a=e._interpolants,c=i.uuid,A=this._bindingsByRootAndName;let h=A[c];h===void 0&&(h={},A[c]=h);for(let f=0;f!==s;++f){const d=r[f],m=d.name;let E=h[m];if(E!==void 0)++E.referenceCount,o[f]=E;else{if(E=o[f],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,c,m));continue}const x=t&&t._propertyBindings[f].binding.parsedPath;E=new BR(jt.create(i,m,x),d.ValueTypeName,d.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,c,m),o[f]=E}a[f].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,r=e._clip.uuid,s=this._actionsByClip[r];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,r,i)}const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let A=0;A!==i;++A)t[A]._update(r,e,s,o);const a=this._bindings,c=this._nActiveBindings;for(let A=0;A!==c;++A)a[A].apply(o);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,oS).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const aS=new G,qd=new G;class kG{constructor(e=new G,t=new G){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){aS.subVectors(e,this.start),qd.subVectors(this.end,this.start);const i=qd.dot(qd);let s=qd.dot(aS)/i;return t&&(s=Un(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const lS=new G;class GG extends nn{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new Lt,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,a=1,c=32;o1)for(let f=0;f.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{fS.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(fS,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class $G extends Ns{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Lt;r.setAttribute("position",new st(t,3)),r.setAttribute("color",new st(i,3));const s=new Ji({vertexColors:!0,toneMapped:!1});super(r,s),this.type="AxesHelper"}setColors(e,t,i){const r=new Je,s=this.geometry.attributes.color.array;return r.set(e),r.toArray(s,0),r.toArray(s,3),r.set(t),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class $o{constructor(){this.type="ShapePath",this.color=new Je,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new ya,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,s,o){return this.currentPath.bezierCurveTo(e,t,i,r,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(p){const I=[];for(let C=0,B=p.length;CNumber.EPSILON){if(w<0&&(T=I[M],K=-K,P=I[R],w=-w),p.yP.y)continue;if(p.y===T.y){if(p.x===T.x)return!0}else{const b=w*(p.x-T.x)-K*(p.y-T.y);if(b===0)return!0;if(b<0)continue;B=!B}}else{if(p.y!==T.y)continue;if(P.x<=p.x&&p.x<=T.x||T.x<=p.x&&p.x<=P.x)return!0}}return B}const r=os.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,c;const A=[];if(s.length===1)return a=s[0],c=new Ca,c.curves=a.curves,A.push(c),A;let h=!r(s[0].getPoints());h=e?!h:h;const f=[],d=[];let m=[],E=0,x;d[E]=void 0,m[E]=[];for(let p=0,I=s.length;p1){let p=!1,I=0;for(let C=0,B=d.length;C0&&p===!1&&(m=f)}let y;for(let p=0,I=d.length;p{const f=typeof A=="function"?A(e):A;if(f!==e){const d=e;e=h?f:Object.assign({},e,f),t.forEach(m=>m(e,d))}},r=()=>e,s=(A,h=r,f=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let d=h(e);function m(){const E=h(e);if(!f(d,E)){const x=d;A(d=E,x)}}return t.add(m),()=>t.delete(m)},c={setState:i,getState:r,subscribe:(A,h,f)=>h||f?s(A,h,f):(t.add(A),()=>t.delete(A)),destroy:()=>t.clear()};return e=n(i,r,c),c}const nO=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),dS=nO?Y.useEffect:Y.useLayoutEffect;function QR(n){const e=typeof n=="function"?tO(n):n,t=(i=e.getState,r=Object.is)=>{const[,s]=Y.useReducer(y=>y+1,0),o=e.getState(),a=Y.useRef(o),c=Y.useRef(i),A=Y.useRef(r),h=Y.useRef(!1),f=Y.useRef();f.current===void 0&&(f.current=i(o));let d,m=!1;(a.current!==o||c.current!==i||A.current!==r||h.current)&&(d=i(o),m=!r(f.current,d)),dS(()=>{m&&(f.current=d),a.current=o,c.current=i,A.current=r,h.current=!1});const E=Y.useRef(o);dS(()=>{const y=()=>{try{const I=e.getState(),C=c.current(I);A.current(f.current,C)||(a.current=I,f.current=C,s())}catch{h.current=!0,s()}},p=e.subscribe(y);return e.getState()!==E.current&&y(),p},[]);const x=m?d:f.current;return Y.useDebugValue(x),x};return Object.assign(t,e),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,e];return{next(){const r=i.length<=0;return{value:i.shift(),done:r}}}},t}var RR={exports:{}},TR={exports:{}},DR={};/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(n){function e(U,ee){var te=U.length;U.push(ee);e:for(;0>>1,Ce=U[Ae];if(0>>1;Aer(O,te))kr(F,O)?(U[Ae]=F,U[k]=te,Ae=k):(U[Ae]=O,U[V]=te,Ae=V);else if(kr(F,te))U[Ae]=F,U[k]=te,Ae=k;else break e}}return ee}function r(U,ee){var te=U.sortIndex-ee.sortIndex;return te!==0?te:U.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var c=[],A=[],h=1,f=null,d=3,m=!1,E=!1,x=!1,y=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C(U){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=U)i(A),ee.sortIndex=ee.expirationTime,e(c,ee);else break;ee=t(A)}}function B(U){if(x=!1,C(U),!E)if(t(c)!==null)E=!0,ne(R);else{var ee=t(A);ee!==null&&ue(B,ee.startTime-U)}}function R(U,ee){E=!1,x&&(x=!1,p(P),P=-1),m=!0;var te=d;try{for(C(ee),f=t(c);f!==null&&(!(f.expirationTime>ee)||U&&!b());){var Ae=f.callback;if(typeof Ae=="function"){f.callback=null,d=f.priorityLevel;var Ce=Ae(f.expirationTime<=ee);ee=n.unstable_now(),typeof Ce=="function"?f.callback=Ce:f===t(c)&&i(c),C(ee)}else i(c);f=t(c)}if(f!==null)var ke=!0;else{var V=t(A);V!==null&&ue(B,V.startTime-ee),ke=!1}return ke}finally{f=null,d=te,m=!1}}var M=!1,T=null,P=-1,K=5,w=-1;function b(){return!(n.unstable_now()-wU||125Ae?(U.sortIndex=te,e(A,U),t(c)===null&&U===t(A)&&(x?(p(P),P=-1):x=!0,ue(B,te-Ae))):(U.sortIndex=Ce,e(c,U),E||m||(E=!0,ne(R))),U},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(U){var ee=d;return function(){var te=d;d=ee;try{return U.apply(this,arguments)}finally{d=te}}}})(DR);TR.exports=DR;var NC=TR.exports;/** + * @license React + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var iO=function(e){var t={},i=Y,r=NC,s=Object.assign;function o(l){for(var u="https://reactjs.org/docs/error-decoder.html?invariant="+l,g=1;gce||_[X]!==Q[ce]){var Re=` +`+_[X].replace(" at new "," at ");return l.displayName&&Re.includes("")&&(Re=Re.replace("",l.displayName)),Re}while(1<=X&&0<=ce);break}}}finally{_t=!1,Error.prepareStackTrace=g}return(l=l?l.displayName||l.name:"")?Qt(l):""}var En=Object.prototype.hasOwnProperty,Wn=[],sn=-1;function Yn(l){return{current:l}}function yt(l){0>sn||(l.current=Wn[sn],Wn[sn]=null,sn--)}function et(l,u){sn++,Wn[sn]=l.current,l.current=u}var Ci={},It=Yn(Ci),fn=Yn(!1),lr=Ci;function L(l,u){var g=l.type.contextTypes;if(!g)return Ci;var v=l.stateNode;if(v&&v.__reactInternalMemoizedUnmaskedChildContext===u)return v.__reactInternalMemoizedMaskedChildContext;var _={},Q;for(Q in g)_[Q]=u[Q];return v&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=u,l.__reactInternalMemoizedMaskedChildContext=_),_}function N(l){return l=l.childContextTypes,l!=null}function Z(){yt(fn),yt(It)}function ae(l,u,g){if(It.current!==Ci)throw Error(o(168));et(It,u),et(fn,g)}function ge(l,u,g){var v=l.stateNode;if(u=u.childContextTypes,typeof v.getChildContext!="function")return g;v=v.getChildContext();for(var _ in v)if(!(_ in u))throw Error(o(108,P(l)||"Unknown",_));return s({},g,v)}function we(l){return l=(l=l.stateNode)&&l.__reactInternalMemoizedMergedChildContext||Ci,lr=It.current,et(It,l),et(fn,fn.current),!0}function Pe(l,u,g){var v=l.stateNode;if(!v)throw Error(o(169));g?(l=ge(l,u,lr),v.__reactInternalMemoizedMergedChildContext=l,yt(fn),yt(It),et(It,l)):yt(fn),et(fn,g)}var Le=Math.clz32?Math.clz32:$e,Ve=Math.log,Oe=Math.LN2;function $e(l){return l>>>=0,l===0?32:31-(Ve(l)/Oe|0)|0}var ht=64,Ht=4194304;function pn(l){switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return l&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return l}}function Wt(l,u){var g=l.pendingLanes;if(g===0)return 0;var v=0,_=l.suspendedLanes,Q=l.pingedLanes,X=g&268435455;if(X!==0){var ce=X&~_;ce!==0?v=pn(ce):(Q&=X,Q!==0&&(v=pn(Q)))}else X=g&~_,X!==0?v=pn(X):Q!==0&&(v=pn(Q));if(v===0)return 0;if(u!==0&&u!==v&&!(u&_)&&(_=v&-v,Q=u&-u,_>=Q||_===16&&(Q&4194240)!==0))return u;if(v&4&&(v|=g&16),u=l.entangledLanes,u!==0)for(l=l.entanglements,u&=v;0g;g++)u.push(l);return u}function bo(l,u,g){l.pendingLanes|=u,u!==536870912&&(l.suspendedLanes=0,l.pingedLanes=0),l=l.eventTimes,u=31-Le(u),l[u]=g}function sf(l,u){var g=l.pendingLanes&~u;l.pendingLanes=u,l.suspendedLanes=0,l.pingedLanes=0,l.expiredLanes&=u,l.mutableReadLanes&=u,l.entangledLanes&=u,u=l.entanglements;var v=l.eventTimes;for(l=l.expirationTimes;0>=X,_-=X,zs=1<<32-Le(u)+_|g<<_|v,Vs=Q+l}else zs=1<en?(oi=Dt,Dt=null):oi=Dt.sibling;var tn=mt(ye,Dt,Me[en],qe);if(tn===null){Dt===null&&(Dt=oi);break}l&&Dt&&tn.alternate===null&&u(ye,Dt),he=Q(tn,he,en),Ft===null?ct=tn:Ft.sibling=tn,Ft=tn,Dt=oi}if(en===Me.length)return g(ye,Dt),Bn&&Ya(ye,en),ct;if(Dt===null){for(;enen?(oi=Dt,Dt=null):oi=Dt.sibling;var Oo=mt(ye,Dt,tn.value,qe);if(Oo===null){Dt===null&&(Dt=oi);break}l&&Dt&&Oo.alternate===null&&u(ye,Dt),he=Q(Oo,he,en),Ft===null?ct=Oo:Ft.sibling=Oo,Ft=Oo,Dt=oi}if(tn.done)return g(ye,Dt),Bn&&Ya(ye,en),ct;if(Dt===null){for(;!tn.done;en++,tn=Me.next())tn=Tt(ye,tn.value,qe),tn!==null&&(he=Q(tn,he,en),Ft===null?ct=tn:Ft.sibling=tn,Ft=tn);return Bn&&Ya(ye,en),ct}for(Dt=v(ye,Dt);!tn.done;en++,tn=Me.next())tn=dn(Dt,ye,en,tn.value,qe),tn!==null&&(l&&tn.alternate!==null&&Dt.delete(tn.key===null?en:tn.key),he=Q(tn,he,en),Ft===null?ct=tn:Ft.sibling=tn,Ft=tn);return l&&Dt.forEach(function(LD){return u(ye,LD)}),Bn&&Ya(ye,en),ct}function Lr(ye,he,Me,qe){if(typeof Me=="object"&&Me!==null&&Me.type===h&&Me.key===null&&(Me=Me.props.children),typeof Me=="object"&&Me!==null){switch(Me.$$typeof){case c:e:{for(var ct=Me.key,Ft=he;Ft!==null;){if(Ft.key===ct){if(ct=Me.type,ct===h){if(Ft.tag===7){g(ye,Ft.sibling),he=_(Ft,Me.props.children),he.return=ye,ye=he;break e}}else if(Ft.elementType===ct||typeof ct=="object"&&ct!==null&&ct.$$typeof===C&&h1(ct)===Ft.type){g(ye,Ft.sibling),he=_(Ft,Me.props),he.ref=Ou(ye,Ft,Me),he.return=ye,ye=he;break e}g(ye,Ft);break}else u(ye,Ft);Ft=Ft.sibling}Me.type===h?(he=$a(Me.props.children,ye.mode,qe,Me.key),he.return=ye,ye=he):(qe=Xf(Me.type,Me.key,Me.props,null,ye.mode,qe),qe.ref=Ou(ye,he,Me),qe.return=ye,ye=qe)}return X(ye);case A:e:{for(Ft=Me.key;he!==null;){if(he.key===Ft)if(he.tag===4&&he.stateNode.containerInfo===Me.containerInfo&&he.stateNode.implementation===Me.implementation){g(ye,he.sibling),he=_(he,Me.children||[]),he.return=ye,ye=he;break e}else{g(ye,he);break}else u(ye,he);he=he.sibling}he=C0(Me,ye.mode,qe),he.return=ye,ye=he}return X(ye);case C:return Ft=Me._init,Lr(ye,he,Ft(Me._payload),qe)}if(re(Me))return ut(ye,he,Me,qe);if(M(Me))return Bi(ye,he,Me,qe);gf(ye,Me)}return typeof Me=="string"&&Me!==""||typeof Me=="number"?(Me=""+Me,he!==null&&he.tag===6?(g(ye,he.sibling),he=_(he,Me),he.return=ye,ye=he):(g(ye,he),he=y0(Me,ye.mode,qe),he.return=ye,ye=he),X(ye)):g(ye,he)}return Lr}var rc=f1(!0),d1=f1(!1),Hu={},Rr=Yn(Hu),zu=Yn(Hu),sc=Yn(Hu);function Es(l){if(l===Hu)throw Error(o(174));return l}function Um(l,u){et(sc,u),et(zu,l),et(Rr,Hu),l=ue(u),yt(Rr),et(Rr,l)}function oc(){yt(Rr),yt(zu),yt(sc)}function p1(l){var u=Es(sc.current),g=Es(Rr.current);u=U(g,l.type,u),g!==u&&(et(zu,l),et(Rr,u))}function Fm(l){zu.current===l&&(yt(Rr),yt(zu))}var Mn=Yn(0);function mf(l){for(var u=l;u!==null;){if(u.tag===13){var g=u.memoizedState;if(g!==null&&(g=g.dehydrated,g===null||za(g)||di(g)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!==void 0){if(u.flags&128)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break;for(;u.sibling===null;){if(u.return===null||u.return===l)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var km=[];function Gm(){for(var l=0;lg?g:4,l(!0);var v=Tr.transition;Tr.transition={};try{l(!1),u()}finally{$t=g,Tr.transition=v}}function Q1(){return ys().memoizedState}function aD(l,u,g){var v=Fo(l);g={lane:v,action:g,hasEagerState:!1,eagerState:null,next:null},R1(l)?T1(u,g):(D1(l,u,g),g=Pi(),l=Dr(l,v,g),l!==null&&b1(l,u,v))}function lD(l,u,g){var v=Fo(l),_={lane:v,action:g,hasEagerState:!1,eagerState:null,next:null};if(R1(l))T1(u,_);else{D1(l,u,_);var Q=l.alternate;if(l.lanes===0&&(Q===null||Q.lanes===0)&&(Q=u.lastRenderedReducer,Q!==null))try{var X=u.lastRenderedState,ce=Q(X,g);if(_.hasEagerState=!0,_.eagerState=ce,ps(ce,X))return}catch{}finally{}g=Pi(),l=Dr(l,v,g),l!==null&&b1(l,u,v)}}function R1(l){var u=l.alternate;return l===Ln||u!==null&&u===Ln}function T1(l,u){Vu=yf=!0;var g=l.pending;g===null?u.next=u:(u.next=g.next,g.next=u),l.pending=u}function D1(l,u,g){Xn!==null&&l.mode&1&&!(Gt&2)?(l=u.interleaved,l===null?(g.next=g,ms===null?ms=[u]:ms.push(u)):(g.next=l.next,l.next=g),u.interleaved=g):(l=u.pending,l===null?g.next=g:(g.next=l.next,l.next=g),u.pending=g)}function b1(l,u,g){if(g&4194240){var v=u.lanes;v&=l.pendingLanes,g|=v,u.lanes=g,Cm(l,g)}}var Bf={readContext:wr,useCallback:Ii,useContext:Ii,useEffect:Ii,useImperativeHandle:Ii,useInsertionEffect:Ii,useLayoutEffect:Ii,useMemo:Ii,useReducer:Ii,useRef:Ii,useState:Ii,useDebugValue:Ii,useDeferredValue:Ii,useTransition:Ii,useMutableSource:Ii,useSyncExternalStore:Ii,useId:Ii,unstable_isNewReconciler:!1},cD={readContext:wr,useCallback:function(l,u){return Ws().memoizedState=[l,u===void 0?null:u],l},useContext:wr,useEffect:Wm,useImperativeHandle:function(l,u,g){return g=g!=null?g.concat([l]):null,If(4194308,4,_1.bind(null,u,l),g)},useLayoutEffect:function(l,u){return If(4194308,4,l,u)},useInsertionEffect:function(l,u){return If(4,2,l,u)},useMemo:function(l,u){var g=Ws();return u=u===void 0?null:u,l=l(),g.memoizedState=[l,u],l},useReducer:function(l,u,g){var v=Ws();return u=g!==void 0?g(u):u,v.memoizedState=v.baseState=u,l={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},v.queue=l,l=l.dispatch=aD.bind(null,Ln,l),[v.memoizedState,l]},useRef:function(l){var u=Ws();return l={current:l},u.memoizedState=l},useState:Vm,useDebugValue:Ym,useDeferredValue:function(l){var u=Vm(l),g=u[0],v=u[1];return Wm(function(){var _=Tr.transition;Tr.transition={};try{v(l)}finally{Tr.transition=_}},[l]),g},useTransition:function(){var l=Vm(!1),u=l[0];return l=oD.bind(null,l[1]),Ws().memoizedState=l,[u,l]},useMutableSource:function(){},useSyncExternalStore:function(l,u,g){var v=Ln,_=Ws();if(Bn){if(g===void 0)throw Error(o(407));g=g()}else{if(g=u(),Xn===null)throw Error(o(349));ac&30||E1(v,u,g)}_.memoizedState=g;var Q={value:g,getSnapshot:u};return _.queue=Q,Wm(C1.bind(null,v,Q,l),[l]),v.flags|=2048,Yu(9,y1.bind(null,v,Q,g,u),void 0,null),g},useId:function(){var l=Ws(),u=Xn.identifierPrefix;if(Bn){var g=Vs,v=zs;g=(v&~(1<<32-Le(v)-1)).toString(32)+g,u=":"+u+"R"+g,g=Wu++,0A0&&(u.flags|=128,v=!0,Ku(_,!1),u.lanes=4194304)}else{if(!v)if(l=mf(Q),l!==null){if(u.flags|=128,v=!0,l=l.updateQueue,l!==null&&(u.updateQueue=l,u.flags|=4),Ku(_,!0),_.tail===null&&_.tailMode==="hidden"&&!Q.alternate&&!Bn)return xi(u),null}else 2*ri()-_.renderingStartTime>A0&&g!==1073741824&&(u.flags|=128,v=!0,Ku(_,!1),u.lanes=4194304);_.isBackwards?(Q.sibling=u.child,u.child=Q):(l=_.last,l!==null?l.sibling=Q:u.child=Q,_.last=Q)}return _.tail!==null?(u=_.tail,_.rendering=u,_.tail=u.sibling,_.renderingStartTime=ri(),u.sibling=null,l=Mn.current,et(Mn,v?l&1|2:l&1),u):(xi(u),null);case 22:case 23:return g0(),v=u.memoizedState!==null,l!==null&&l.memoizedState!==null!==v&&(u.flags|=8192),v&&u.mode&1?dr&1073741824&&(xi(u),Be&&u.subtreeFlags&6&&(u.flags|=8192)):xi(u),null;case 24:return null;case 25:return null}throw Error(o(156,u.tag))}var dD=a.ReactCurrentOwner,fr=!1;function Ni(l,u,g,v){u.child=l===null?d1(u,null,g,v):rc(u,l.child,g,v)}function O1(l,u,g,v,_){g=g.render;var Q=u.ref;return ec(u,_),v=Hm(l,u,g,v,Q,_),g=zm(),l!==null&&!fr?(u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~_,Ys(l,u,_)):(Bn&&g&&Dm(u),u.flags|=1,Ni(l,u,v,_),u.child)}function H1(l,u,g,v,_){if(l===null){var Q=g.type;return typeof Q=="function"&&!E0(Q)&&Q.defaultProps===void 0&&g.compare===null&&g.defaultProps===void 0?(u.tag=15,u.type=Q,z1(l,u,Q,v,_)):(l=Xf(g.type,null,v,u,u.mode,_),l.ref=u.ref,l.return=u,u.child=l)}if(Q=l.child,!(l.lanes&_)){var X=Q.memoizedProps;if(g=g.compare,g=g!==null?g:lf,g(X,v)&&l.ref===u.ref)return Ys(l,u,_)}return u.flags|=1,l=Go(Q,v),l.ref=u.ref,l.return=u,u.child=l}function z1(l,u,g,v,_){if(l!==null&&lf(l.memoizedProps,v)&&l.ref===u.ref)if(fr=!1,(l.lanes&_)!==0)l.flags&131072&&(fr=!0);else return u.lanes=l.lanes,Ys(l,u,_);return jm(l,u,g,v,_)}function V1(l,u,g){var v=u.pendingProps,_=v.children,Q=l!==null?l.memoizedState:null;if(v.mode==="hidden")if(!(u.mode&1))u.memoizedState={baseLanes:0,cachePool:null},et(lc,dr),dr|=g;else if(g&1073741824)u.memoizedState={baseLanes:0,cachePool:null},v=Q!==null?Q.baseLanes:g,et(lc,dr),dr|=v;else return l=Q!==null?Q.baseLanes|g:g,u.lanes=u.childLanes=1073741824,u.memoizedState={baseLanes:l,cachePool:null},u.updateQueue=null,et(lc,dr),dr|=l,null;else Q!==null?(v=Q.baseLanes|g,u.memoizedState=null):v=g,et(lc,dr),dr|=v;return Ni(l,u,_,g),u.child}function W1(l,u){var g=u.ref;(l===null&&g!==null||l!==null&&l.ref!==g)&&(u.flags|=512,u.flags|=2097152)}function jm(l,u,g,v,_){var Q=N(g)?lr:It.current;return Q=L(u,Q),ec(u,_),g=Hm(l,u,g,v,Q,_),v=zm(),l!==null&&!fr?(u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~_,Ys(l,u,_)):(Bn&&v&&Dm(u),u.flags|=1,Ni(l,u,g,_),u.child)}function Y1(l,u,g,v,_){if(N(g)){var Q=!0;we(u)}else Q=!1;if(ec(u,_),u.stateNode===null)l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),o1(u,g,v),Tm(u,g,v,_),v=!0;else if(l===null){var X=u.stateNode,ce=u.memoizedProps;X.props=ce;var Re=X.context,He=g.contextType;typeof He=="object"&&He!==null?He=wr(He):(He=N(g)?lr:It.current,He=L(u,He));var rt=g.getDerivedStateFromProps,Tt=typeof rt=="function"||typeof X.getSnapshotBeforeUpdate=="function";Tt||typeof X.UNSAFE_componentWillReceiveProps!="function"&&typeof X.componentWillReceiveProps!="function"||(ce!==v||Re!==He)&&a1(u,X,v,He),Lo=!1;var mt=u.memoizedState;X.state=mt,hf(u,v,X,_),Re=u.memoizedState,ce!==v||mt!==Re||fn.current||Lo?(typeof rt=="function"&&(Rm(u,g,rt,v),Re=u.memoizedState),(ce=Lo||s1(u,g,ce,v,mt,Re,He))?(Tt||typeof X.UNSAFE_componentWillMount!="function"&&typeof X.componentWillMount!="function"||(typeof X.componentWillMount=="function"&&X.componentWillMount(),typeof X.UNSAFE_componentWillMount=="function"&&X.UNSAFE_componentWillMount()),typeof X.componentDidMount=="function"&&(u.flags|=4194308)):(typeof X.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=v,u.memoizedState=Re),X.props=v,X.state=Re,X.context=He,v=ce):(typeof X.componentDidMount=="function"&&(u.flags|=4194308),v=!1)}else{X=u.stateNode,t1(l,u),ce=u.memoizedProps,He=u.type===u.elementType?ce:Xr(u.type,ce),X.props=He,Tt=u.pendingProps,mt=X.context,Re=g.contextType,typeof Re=="object"&&Re!==null?Re=wr(Re):(Re=N(g)?lr:It.current,Re=L(u,Re));var dn=g.getDerivedStateFromProps;(rt=typeof dn=="function"||typeof X.getSnapshotBeforeUpdate=="function")||typeof X.UNSAFE_componentWillReceiveProps!="function"&&typeof X.componentWillReceiveProps!="function"||(ce!==Tt||mt!==Re)&&a1(u,X,v,Re),Lo=!1,mt=u.memoizedState,X.state=mt,hf(u,v,X,_);var ut=u.memoizedState;ce!==Tt||mt!==ut||fn.current||Lo?(typeof dn=="function"&&(Rm(u,g,dn,v),ut=u.memoizedState),(He=Lo||s1(u,g,He,v,mt,ut,Re)||!1)?(rt||typeof X.UNSAFE_componentWillUpdate!="function"&&typeof X.componentWillUpdate!="function"||(typeof X.componentWillUpdate=="function"&&X.componentWillUpdate(v,ut,Re),typeof X.UNSAFE_componentWillUpdate=="function"&&X.UNSAFE_componentWillUpdate(v,ut,Re)),typeof X.componentDidUpdate=="function"&&(u.flags|=4),typeof X.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof X.componentDidUpdate!="function"||ce===l.memoizedProps&&mt===l.memoizedState||(u.flags|=4),typeof X.getSnapshotBeforeUpdate!="function"||ce===l.memoizedProps&&mt===l.memoizedState||(u.flags|=1024),u.memoizedProps=v,u.memoizedState=ut),X.props=v,X.state=ut,X.context=Re,v=He):(typeof X.componentDidUpdate!="function"||ce===l.memoizedProps&&mt===l.memoizedState||(u.flags|=4),typeof X.getSnapshotBeforeUpdate!="function"||ce===l.memoizedProps&&mt===l.memoizedState||(u.flags|=1024),v=!1)}return Km(l,u,g,v,Q,_)}function Km(l,u,g,v,_,Q){W1(l,u);var X=(u.flags&128)!==0;if(!v&&!X)return _&&Pe(u,g,!1),Ys(l,u,Q);v=u.stateNode,dD.current=u;var ce=X&&typeof g.getDerivedStateFromError!="function"?null:v.render();return u.flags|=1,l!==null&&X?(u.child=rc(u,l.child,null,Q),u.child=rc(u,null,ce,Q)):Ni(l,u,ce,Q),u.memoizedState=v.state,_&&Pe(u,g,!0),u.child}function X1(l){var u=l.stateNode;u.pendingContext?ae(l,u.pendingContext,u.pendingContext!==u.context):u.context&&ae(l,u.context,!1),Um(l,u.containerInfo)}function J1(l,u,g,v,_){return ic(),Pm(_),u.flags|=256,Ni(l,u,g,v),u.child}var wf={dehydrated:null,treeContext:null,retryLane:0};function Mf(l){return{baseLanes:l,cachePool:null}}function j1(l,u,g){var v=u.pendingProps,_=Mn.current,Q=!1,X=(u.flags&128)!==0,ce;if((ce=X)||(ce=l!==null&&l.memoizedState===null?!1:(_&2)!==0),ce?(Q=!0,u.flags&=-129):(l===null||l.memoizedState!==null)&&(_|=1),et(Mn,_&1),l===null)return Nm(u),l=u.memoizedState,l!==null&&(l=l.dehydrated,l!==null)?(u.mode&1?di(l)?u.lanes=8:u.lanes=1073741824:u.lanes=1,null):(_=v.children,l=v.fallback,Q?(v=u.mode,Q=u.child,_={mode:"hidden",children:_},!(v&1)&&Q!==null?(Q.childLanes=0,Q.pendingProps=_):Q=Jf(_,v,0,null),l=$a(l,v,g,null),Q.return=u,l.return=u,Q.sibling=l,u.child=Q,u.child.memoizedState=Mf(g),u.memoizedState=wf,l):qm(u,_));if(_=l.memoizedState,_!==null){if(ce=_.dehydrated,ce!==null){if(X)return u.flags&256?(u.flags&=-257,Qf(l,u,g,Error(o(422)))):u.memoizedState!==null?(u.child=l.child,u.flags|=128,null):(Q=v.fallback,_=u.mode,v=Jf({mode:"visible",children:v.children},_,0,null),Q=$a(Q,_,g,null),Q.flags|=2,v.return=u,Q.return=u,v.sibling=Q,u.child=v,u.mode&1&&rc(u,l.child,null,g),u.child.memoizedState=Mf(g),u.memoizedState=wf,Q);if(!(u.mode&1))u=Qf(l,u,g,null);else if(di(ce))u=Qf(l,u,g,Error(o(419)));else if(v=(g&l.childLanes)!==0,fr||v){if(v=Xn,v!==null){switch(g&-g){case 4:Q=2;break;case 16:Q=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:Q=32;break;case 536870912:Q=268435456;break;default:Q=0}v=Q&(v.suspendedLanes|g)?0:Q,v!==0&&v!==_.retryLane&&(_.retryLane=v,Dr(l,v,-1))}m0(),u=Qf(l,u,g,Error(o(421)))}else za(ce)?(u.flags|=128,u.child=l.child,u=wD.bind(null,l),ks(ce,u),u=null):(g=_.treeContext,Ee&&(hr=Do(ce),Ar=u,Bn=!0,Jr=null,ku=!1,g!==null&&(Mr[Qr++]=zs,Mr[Qr++]=Vs,Mr[Qr++]=Wa,zs=g.id,Vs=g.overflow,Wa=u)),u=qm(u,u.pendingProps.children),u.flags|=4096);return u}return Q?(v=q1(l,u,v.children,v.fallback,g),Q=u.child,_=l.child.memoizedState,Q.memoizedState=_===null?Mf(g):{baseLanes:_.baseLanes|g,cachePool:null},Q.childLanes=l.childLanes&~g,u.memoizedState=wf,v):(g=K1(l,u,v.children,g),u.memoizedState=null,g)}return Q?(v=q1(l,u,v.children,v.fallback,g),Q=u.child,_=l.child.memoizedState,Q.memoizedState=_===null?Mf(g):{baseLanes:_.baseLanes|g,cachePool:null},Q.childLanes=l.childLanes&~g,u.memoizedState=wf,v):(g=K1(l,u,v.children,g),u.memoizedState=null,g)}function qm(l,u){return u=Jf({mode:"visible",children:u},l.mode,0,null),u.return=l,l.child=u}function K1(l,u,g,v){var _=l.child;return l=_.sibling,g=Go(_,{mode:"visible",children:g}),!(u.mode&1)&&(g.lanes=v),g.return=u,g.sibling=null,l!==null&&(v=u.deletions,v===null?(u.deletions=[l],u.flags|=16):v.push(l)),u.child=g}function q1(l,u,g,v,_){var Q=u.mode;l=l.child;var X=l.sibling,ce={mode:"hidden",children:g};return!(Q&1)&&u.child!==l?(g=u.child,g.childLanes=0,g.pendingProps=ce,u.deletions=null):(g=Go(l,ce),g.subtreeFlags=l.subtreeFlags&14680064),X!==null?v=Go(X,v):(v=$a(v,Q,_,null),v.flags|=2),v.return=u,g.return=u,g.sibling=v,u.child=g,v}function Qf(l,u,g,v){return v!==null&&Pm(v),rc(u,l.child,null,g),l=qm(u,u.pendingProps.children),l.flags|=2,u.memoizedState=null,l}function Z1(l,u,g){l.lanes|=u;var v=l.alternate;v!==null&&(v.lanes|=u),Mm(l.return,u,g)}function Zm(l,u,g,v,_){var Q=l.memoizedState;Q===null?l.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:v,tail:g,tailMode:_}:(Q.isBackwards=u,Q.rendering=null,Q.renderingStartTime=0,Q.last=v,Q.tail=g,Q.tailMode=_)}function $1(l,u,g){var v=u.pendingProps,_=v.revealOrder,Q=v.tail;if(Ni(l,u,v.children,g),v=Mn.current,v&2)v=v&1|2,u.flags|=128;else{if(l!==null&&l.flags&128)e:for(l=u.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&Z1(l,g,u);else if(l.tag===19)Z1(l,g,u);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===u)break e;for(;l.sibling===null;){if(l.return===null||l.return===u)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}v&=1}if(et(Mn,v),!(u.mode&1))u.memoizedState=null;else switch(_){case"forwards":for(g=u.child,_=null;g!==null;)l=g.alternate,l!==null&&mf(l)===null&&(_=g),g=g.sibling;g=_,g===null?(_=u.child,u.child=null):(_=g.sibling,g.sibling=null),Zm(u,!1,_,g,Q);break;case"backwards":for(g=null,_=u.child,u.child=null;_!==null;){if(l=_.alternate,l!==null&&mf(l)===null){u.child=_;break}l=_.sibling,_.sibling=g,g=_,_=l}Zm(u,!0,g,null,Q);break;case"together":Zm(u,!1,null,null,void 0);break;default:u.memoizedState=null}return u.child}function Ys(l,u,g){if(l!==null&&(u.dependencies=l.dependencies),cc|=u.lanes,!(g&u.childLanes))return null;if(l!==null&&u.child!==l.child)throw Error(o(153));if(u.child!==null){for(l=u.child,g=Go(l,l.pendingProps),u.child=g,g.return=u;l.sibling!==null;)l=l.sibling,g=g.sibling=Go(l,l.pendingProps),g.return=u;g.sibling=null}return u.child}function pD(l,u,g){switch(u.tag){case 3:X1(u),ic();break;case 5:p1(u);break;case 1:N(u.type)&&we(u);break;case 4:Um(u,u.stateNode.containerInfo);break;case 10:e1(u,u.type._context,u.memoizedProps.value);break;case 13:var v=u.memoizedState;if(v!==null)return v.dehydrated!==null?(et(Mn,Mn.current&1),u.flags|=128,null):g&u.child.childLanes?j1(l,u,g):(et(Mn,Mn.current&1),l=Ys(l,u,g),l!==null?l.sibling:null);et(Mn,Mn.current&1);break;case 19:if(v=(g&u.childLanes)!==0,l.flags&128){if(v)return $1(l,u,g);u.flags|=128}var _=u.memoizedState;if(_!==null&&(_.rendering=null,_.tail=null,_.lastEffect=null),et(Mn,Mn.current),v)break;return null;case 22:case 23:return u.lanes=0,V1(l,u,g)}return Ys(l,u,g)}function gD(l,u){switch(bm(u),u.tag){case 1:return N(u.type)&&Z(),l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 3:return oc(),yt(fn),yt(It),Gm(),l=u.flags,l&65536&&!(l&128)?(u.flags=l&-65537|128,u):null;case 5:return Fm(u),null;case 13:if(yt(Mn),l=u.memoizedState,l!==null&&l.dehydrated!==null){if(u.alternate===null)throw Error(o(340));ic()}return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 19:return yt(Mn),null;case 4:return oc(),null;case 10:return wm(u.type._context),null;case 22:case 23:return g0(),null;case 24:return null;default:return null}}var Rf=!1,Ja=!1,mD=typeof WeakSet=="function"?WeakSet:Set,je=null;function Tf(l,u){var g=l.ref;if(g!==null)if(typeof g=="function")try{g(null)}catch(v){$i(l,u,v)}else g.current=null}function $m(l,u,g){try{g()}catch(v){$i(l,u,v)}}var ex=!1;function ED(l,u){for(ee(l.containerInfo),je=u;je!==null;)if(l=je,u=l.child,(l.subtreeFlags&1028)!==0&&u!==null)u.return=l,je=u;else for(;je!==null;){l=je;try{var g=l.alternate;if(l.flags&1024)switch(l.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var v=g.memoizedProps,_=g.memoizedState,Q=l.stateNode,X=Q.getSnapshotBeforeUpdate(l.elementType===l.type?v:Xr(l.type,v),_);Q.__reactInternalSnapshotBeforeUpdate=X}break;case 3:Be&&Ge(l.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(ce){$i(l,l.return,ce)}if(u=l.sibling,u!==null){u.return=l.return,je=u;break}je=l.return}return g=ex,ex=!1,g}function ja(l,u,g){var v=u.updateQueue;if(v=v!==null?v.lastEffect:null,v!==null){var _=v=v.next;do{if((_.tag&l)===l){var Q=_.destroy;_.destroy=void 0,Q!==void 0&&$m(u,g,Q)}_=_.next}while(_!==v)}}function qu(l,u){if(u=u.updateQueue,u=u!==null?u.lastEffect:null,u!==null){var g=u=u.next;do{if((g.tag&l)===l){var v=g.create;g.destroy=v()}g=g.next}while(g!==u)}}function e0(l){var u=l.ref;if(u!==null){var g=l.stateNode;switch(l.tag){case 5:l=ne(g);break;default:l=g}typeof u=="function"?u(l):u.current=l}}function tx(l,u,g){if(ds&&typeof ds.onCommitFiberUnmount=="function")try{ds.onCommitFiberUnmount(of,u)}catch{}switch(u.tag){case 0:case 11:case 14:case 15:if(l=u.updateQueue,l!==null&&(l=l.lastEffect,l!==null)){var v=l=l.next;do{var _=v,Q=_.destroy;_=_.tag,Q!==void 0&&(_&2||_&4)&&$m(u,g,Q),v=v.next}while(v!==l)}break;case 1:if(Tf(u,g),l=u.stateNode,typeof l.componentWillUnmount=="function")try{l.props=u.memoizedProps,l.state=u.memoizedState,l.componentWillUnmount()}catch(X){$i(u,g,X)}break;case 5:Tf(u,g);break;case 4:Be?ax(l,u,g):H&&H&&(u=u.stateNode.containerInfo,g=it(u),Jt(u,g))}}function nx(l,u,g){for(var v=u;;)if(tx(l,v,g),v.child===null||Be&&v.tag===4){if(v===u)break;for(;v.sibling===null;){if(v.return===null||v.return===u)return;v=v.return}v.sibling.return=v.return,v=v.sibling}else v.child.return=v,v=v.child}function ix(l){var u=l.alternate;u!==null&&(l.alternate=null,ix(u)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(u=l.stateNode,u!==null&&Te(u)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}function rx(l){return l.tag===5||l.tag===3||l.tag===4}function sx(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||rx(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function ox(l){if(Be){e:{for(var u=l.return;u!==null;){if(rx(u))break e;u=u.return}throw Error(o(160))}var g=u;switch(g.tag){case 5:u=g.stateNode,g.flags&32&&(kt(u),g.flags&=-33),g=sx(l),n0(l,g,u);break;case 3:case 4:u=g.stateNode.containerInfo,g=sx(l),t0(l,g,u);break;default:throw Error(o(161))}}}function t0(l,u,g){var v=l.tag;if(v===5||v===6)l=l.stateNode,u?ot(g,l,u):vt(g,l);else if(v!==4&&(l=l.child,l!==null))for(t0(l,u,g),l=l.sibling;l!==null;)t0(l,u,g),l=l.sibling}function n0(l,u,g){var v=l.tag;if(v===5||v===6)l=l.stateNode,u?dt(g,l,u):at(g,l);else if(v!==4&&(l=l.child,l!==null))for(n0(l,u,g),l=l.sibling;l!==null;)n0(l,u,g),l=l.sibling}function ax(l,u,g){for(var v=u,_=!1,Q,X;;){if(!_){_=v.return;e:for(;;){if(_===null)throw Error(o(160));switch(Q=_.stateNode,_.tag){case 5:X=!1;break e;case 3:Q=Q.containerInfo,X=!0;break e;case 4:Q=Q.containerInfo,X=!0;break e}_=_.return}_=!0}if(v.tag===5||v.tag===6)nx(l,v,g),X?Bt(Q,v.stateNode):tt(Q,v.stateNode);else if(v.tag===18)X?ve(Q,v.stateNode):Se(Q,v.stateNode);else if(v.tag===4){if(v.child!==null){Q=v.stateNode.containerInfo,X=!0,v.child.return=v,v=v.child;continue}}else if(tx(l,v,g),v.child!==null){v.child.return=v,v=v.child;continue}if(v===u)break;for(;v.sibling===null;){if(v.return===null||v.return===u)return;v=v.return,v.tag===4&&(_=!1)}v.sibling.return=v.return,v=v.sibling}}function i0(l,u){if(Be){switch(u.tag){case 0:case 11:case 14:case 15:ja(3,u,u.return),qu(3,u),ja(5,u,u.return);return;case 1:return;case 5:var g=u.stateNode;if(g!=null){var v=u.memoizedProps;l=l!==null?l.memoizedProps:v;var _=u.type,Q=u.updateQueue;u.updateQueue=null,Q!==null&&wt(g,Q,_,l,v,u)}return;case 6:if(u.stateNode===null)throw Error(o(162));g=u.memoizedProps,Ne(u.stateNode,l!==null?l.memoizedProps:g,g);return;case 3:Ee&&l!==null&&l.memoizedState.isDehydrated&&pe(u.stateNode.containerInfo);return;case 12:return;case 13:Df(u);return;case 19:Df(u);return;case 17:return}throw Error(o(163))}switch(u.tag){case 0:case 11:case 14:case 15:ja(3,u,u.return),qu(3,u),ja(5,u,u.return);return;case 12:return;case 13:Df(u);return;case 19:Df(u);return;case 3:Ee&&l!==null&&l.memoizedState.isDehydrated&&pe(u.stateNode.containerInfo);break;case 22:case 23:return}e:if(H){switch(u.tag){case 1:case 5:case 6:break e;case 3:case 4:u=u.stateNode,Jt(u.containerInfo,u.pendingChildren);break e}throw Error(o(163))}}function Df(l){var u=l.updateQueue;if(u!==null){l.updateQueue=null;var g=l.stateNode;g===null&&(g=l.stateNode=new mD),u.forEach(function(v){var _=MD.bind(null,l,v);g.has(v)||(g.add(v),v.then(_,_))})}}function yD(l,u){for(je=u;je!==null;){u=je;var g=u.deletions;if(g!==null)for(var v=0;v";case Lf:return":has("+(o0(l)||"")+")";case Nf:return'[role="'+l.value+'"]';case Uf:return'"'+l.value+'"';case Pf:return'[data-testname="'+l.value+'"]';default:throw Error(o(365))}}function hx(l,u){var g=[];l=[l,0];for(var v=0;v_&&(_=X),v&=~Q}if(v=_,v=ri()-v,v=(120>v?120:480>v?480:1080>v?1080:1920>v?1920:3e3>v?3e3:4320>v?4320:1960*vD(v/1960))-v,10l?16:l,Uo===null)var v=!1;else{if(l=Uo,Uo=null,Hf=0,Gt&6)throw Error(o(331));var _=Gt;for(Gt|=4,je=l.current;je!==null;){var Q=je,X=Q.child;if(je.flags&16){var ce=Q.deletions;if(ce!==null){for(var Re=0;Reri()-u0?Ka(l,0):c0|=g),Zi(l,u)}function vx(l,u){u===0&&(l.mode&1?(u=Ht,Ht<<=1,!(Ht&130023424)&&(Ht=4194304)):u=1);var g=Pi();l=Wf(l,u),l!==null&&(bo(l,u,g),Zi(l,g))}function wD(l){var u=l.memoizedState,g=0;u!==null&&(g=u.retryLane),vx(l,g)}function MD(l,u){var g=0;switch(l.tag){case 13:var v=l.stateNode,_=l.memoizedState;_!==null&&(g=_.retryLane);break;case 19:v=l.stateNode;break;default:throw Error(o(314))}v!==null&&v.delete(u),vx(l,g)}var Ix;Ix=function(l,u,g){if(l!==null)if(l.memoizedProps!==u.pendingProps||fn.current)fr=!0;else{if(!(l.lanes&g)&&!(u.flags&128))return fr=!1,pD(l,u,g);fr=!!(l.flags&131072)}else fr=!1,Bn&&u.flags&1048576&&l1(u,pf,u.index);switch(u.lanes=0,u.tag){case 2:var v=u.type;l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),l=u.pendingProps;var _=L(u,It.current);ec(u,g),_=Hm(null,u,v,l,_,g);var Q=zm();return u.flags|=1,typeof _=="object"&&_!==null&&typeof _.render=="function"&&_.$$typeof===void 0?(u.tag=1,u.memoizedState=null,u.updateQueue=null,N(v)?(Q=!0,we(u)):Q=!1,u.memoizedState=_.state!==null&&_.state!==void 0?_.state:null,Qm(u),_.updater=ff,u.stateNode=_,_._reactInternals=u,Tm(u,v,l,g),u=Km(null,u,v,!0,Q,g)):(u.tag=0,Bn&&Q&&Dm(u),Ni(null,u,_,g),u=u.child),u;case 16:v=u.elementType;e:{switch(l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),l=u.pendingProps,_=v._init,v=_(v._payload),u.type=v,_=u.tag=RD(v),l=Xr(v,l),_){case 0:u=jm(null,u,v,l,g);break e;case 1:u=Y1(null,u,v,l,g);break e;case 11:u=O1(null,u,v,l,g);break e;case 14:u=H1(null,u,v,Xr(v.type,l),g);break e}throw Error(o(306,v,""))}return u;case 0:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Xr(v,_),jm(l,u,v,_,g);case 1:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Xr(v,_),Y1(l,u,v,_,g);case 3:e:{if(X1(u),l===null)throw Error(o(387));v=u.pendingProps,Q=u.memoizedState,_=Q.element,t1(l,u),hf(u,v,null,g);var X=u.memoizedState;if(v=X.element,Ee&&Q.isDehydrated)if(Q={element:v,isDehydrated:!1,cache:X.cache,transitions:X.transitions},u.updateQueue.baseState=Q,u.memoizedState=Q,u.flags&256){_=Error(o(423)),u=J1(l,u,v,g,_);break e}else if(v!==_){_=Error(o(424)),u=J1(l,u,v,g,_);break e}else for(Ee&&(hr=To(u.stateNode.containerInfo),Ar=u,Bn=!0,Jr=null,ku=!1),g=d1(u,null,v,g),u.child=g;g;)g.flags=g.flags&-3|4096,g=g.sibling;else{if(ic(),v===_){u=Ys(l,u,g);break e}Ni(l,u,v,g)}u=u.child}return u;case 5:return p1(u),l===null&&Nm(u),v=u.type,_=u.pendingProps,Q=l!==null?l.memoizedProps:null,X=_.children,O(v,_)?X=null:Q!==null&&O(v,Q)&&(u.flags|=32),W1(l,u),Ni(l,u,X,g),u.child;case 6:return l===null&&Nm(u),null;case 13:return j1(l,u,g);case 4:return Um(u,u.stateNode.containerInfo),v=u.pendingProps,l===null?u.child=rc(u,null,v,g):Ni(l,u,v,g),u.child;case 11:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Xr(v,_),O1(l,u,v,_,g);case 7:return Ni(l,u,u.pendingProps,g),u.child;case 8:return Ni(l,u,u.pendingProps.children,g),u.child;case 12:return Ni(l,u,u.pendingProps.children,g),u.child;case 10:e:{if(v=u.type._context,_=u.pendingProps,Q=u.memoizedProps,X=_.value,e1(u,v,X),Q!==null)if(ps(Q.value,X)){if(Q.children===_.children&&!fn.current){u=Ys(l,u,g);break e}}else for(Q=u.child,Q!==null&&(Q.return=u);Q!==null;){var ce=Q.dependencies;if(ce!==null){X=Q.child;for(var Re=ce.firstContext;Re!==null;){if(Re.context===v){if(Q.tag===1){Re=Hs(-1,g&-g),Re.tag=2;var He=Q.updateQueue;if(He!==null){He=He.shared;var rt=He.pending;rt===null?Re.next=Re:(Re.next=rt.next,rt.next=Re),He.pending=Re}}Q.lanes|=g,Re=Q.alternate,Re!==null&&(Re.lanes|=g),Mm(Q.return,g,u),ce.lanes|=g;break}Re=Re.next}}else if(Q.tag===10)X=Q.type===u.type?null:Q.child;else if(Q.tag===18){if(X=Q.return,X===null)throw Error(o(341));X.lanes|=g,ce=X.alternate,ce!==null&&(ce.lanes|=g),Mm(X,g,u),X=Q.sibling}else X=Q.child;if(X!==null)X.return=Q;else for(X=Q;X!==null;){if(X===u){X=null;break}if(Q=X.sibling,Q!==null){Q.return=X.return,X=Q;break}X=X.return}Q=X}Ni(l,u,_.children,g),u=u.child}return u;case 9:return _=u.type,v=u.pendingProps.children,ec(u,g),_=wr(_),v=v(_),u.flags|=1,Ni(l,u,v,g),u.child;case 14:return v=u.type,_=Xr(v,u.pendingProps),_=Xr(v.type,_),H1(l,u,v,_,g);case 15:return z1(l,u,u.type,u.pendingProps,g);case 17:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Xr(v,_),l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),u.tag=1,N(v)?(l=!0,we(u)):l=!1,ec(u,g),o1(u,v,_),Tm(u,v,_,g),Km(null,u,v,!0,l,g);case 19:return $1(l,u,g);case 22:return V1(l,u,g)}throw Error(o(156,u.tag))};function xx(l,u){return vm(l,u)}function QD(l,u,g,v){this.tag=l,this.key=g,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=v,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function br(l,u,g,v){return new QD(l,u,g,v)}function E0(l){return l=l.prototype,!(!l||!l.isReactComponent)}function RD(l){if(typeof l=="function")return E0(l)?1:0;if(l!=null){if(l=l.$$typeof,l===x)return 11;if(l===I)return 14}return 2}function Go(l,u){var g=l.alternate;return g===null?(g=br(l.tag,u,l.key,l.mode),g.elementType=l.elementType,g.type=l.type,g.stateNode=l.stateNode,g.alternate=l,l.alternate=g):(g.pendingProps=u,g.type=l.type,g.flags=0,g.subtreeFlags=0,g.deletions=null),g.flags=l.flags&14680064,g.childLanes=l.childLanes,g.lanes=l.lanes,g.child=l.child,g.memoizedProps=l.memoizedProps,g.memoizedState=l.memoizedState,g.updateQueue=l.updateQueue,u=l.dependencies,g.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},g.sibling=l.sibling,g.index=l.index,g.ref=l.ref,g}function Xf(l,u,g,v,_,Q){var X=2;if(v=l,typeof l=="function")E0(l)&&(X=1);else if(typeof l=="string")X=5;else e:switch(l){case h:return $a(g.children,_,Q,u);case f:X=8,_|=8;break;case d:return l=br(12,g,u,_|2),l.elementType=d,l.lanes=Q,l;case y:return l=br(13,g,u,_),l.elementType=y,l.lanes=Q,l;case p:return l=br(19,g,u,_),l.elementType=p,l.lanes=Q,l;case B:return Jf(g,_,Q,u);default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case m:X=10;break e;case E:X=9;break e;case x:X=11;break e;case I:X=14;break e;case C:X=16,v=null;break e}throw Error(o(130,l==null?l:typeof l,""))}return u=br(X,g,u,_),u.elementType=l,u.type=v,u.lanes=Q,u}function $a(l,u,g,v){return l=br(7,l,v,u),l.lanes=g,l}function Jf(l,u,g,v){return l=br(22,l,v,u),l.elementType=B,l.lanes=g,l.stateNode={},l}function y0(l,u,g){return l=br(6,l,null,u),l.lanes=g,l}function C0(l,u,g){return u=br(4,l.children!==null?l.children:[],l.key,u),u.lanes=g,u.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},u}function TD(l,u,g,v,_){this.tag=u,this.containerInfo=l,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=Ie,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ur(0),this.expirationTimes=ur(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ur(0),this.identifierPrefix=v,this.onRecoverableError=_,Ee&&(this.mutableSourceEagerHydrationData=null)}function Bx(l,u,g,v,_,Q,X,ce,Re){return l=new TD(l,u,g,ce,Re),u===1?(u=1,Q===!0&&(u|=8)):u=0,Q=br(3,null,null,u),l.current=Q,Q.stateNode=l,Q.memoizedState={element:v,isDehydrated:g,cache:null,transitions:null},Qm(Q),l}function _x(l){if(!l)return Ci;l=l._reactInternals;e:{if(K(l)!==l||l.tag!==1)throw Error(o(170));var u=l;do{switch(u.tag){case 3:u=u.stateNode.context;break e;case 1:if(N(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break e}}u=u.return}while(u!==null);throw Error(o(171))}if(l.tag===1){var g=l.type;if(N(g))return ge(l,g,u)}return u}function Sx(l){var u=l._reactInternals;if(u===void 0)throw typeof l.render=="function"?Error(o(188)):(l=Object.keys(l).join(","),Error(o(268,l)));return l=q(u),l===null?null:l.stateNode}function wx(l,u){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var g=l.retryLane;l.retryLane=g!==0&&g=He&&Q>=Tt&&_<=rt&&X<=mt){l.splice(u,1);break}else if(v!==He||g.width!==Re.width||mtX){if(!(Q!==Tt||g.height!==Re.height||rt_)){He>v&&(Re.width+=He-v,Re.x=v),rt<_&&(Re.width=_-He),l.splice(u,1);break}}else{Tt>Q&&(Re.height+=Tt-Q,Re.y=Q),mtg&&(g=X)),X ")+` + +No matching component was found for: + `)+l.join(" > ")}return null},t.getPublicRootInstance=function(l){if(l=l.current,!l.child)return null;switch(l.child.tag){case 5:return ne(l.child.stateNode);default:return l.child.stateNode}},t.injectIntoDevTools=function(l){if(l={bundleType:l.bundleType,version:l.version,rendererPackageName:l.rendererPackageName,rendererConfig:l.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:a.ReactCurrentDispatcher,findHostInstanceByFiber:DD,findFiberByHostInstance:l.findFiberByHostInstance||bD,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")l=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)l=!0;else{try{of=u.inject(l),ds=u}catch{}l=!!u.checkDCE}}return l},t.isAlreadyRendering=function(){return!1},t.observeVisibleRects=function(l,u,g,v){if(!D)throw Error(o(363));l=a0(l,u);var _=Ke(l,g,v).disconnect;return{disconnect:function(){_()}}},t.registerMutableSourceForHydration=function(l,u){var g=u._getVersion;g=g(u._source),l.mutableSourceEagerHydrationData==null?l.mutableSourceEagerHydrationData=[u,g]:l.mutableSourceEagerHydrationData.push(u,g)},t.runWithPriority=function(l,u){var g=$t;try{return $t=l,u()}finally{$t=g}},t.shouldError=function(){return null},t.shouldSuspend=function(){return!1},t.updateContainer=function(l,u,g,v){var _=u.current,Q=Pi(),X=Fo(_);return g=_x(g),u.context===null?u.context=g:u.pendingContext=g,u=Hs(Q,X),u.payload={element:l},v=v===void 0?null:v,v!==null&&(u.callback=v),No(_,u),l=Dr(_,X,Q),l!==null&&Af(l,_,X),X},t};RR.exports=iO;var rO=RR.exports;const sO=nw(rO),NI={},oO=n=>void Object.assign(NI,n);function aO(n,e){function t(h,{args:f=[],attach:d,...m},E){let x=`${h[0].toUpperCase()}${h.slice(1)}`,y;if(h==="primitive"){if(m.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const p=m.object;y=Gc(p,{type:h,root:E,attach:d,primitive:!0})}else{const p=NI[x];if(!p)throw new Error(`R3F: ${x} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(f))throw new Error("R3F: The args prop must be an array!");y=Gc(new p(...f),{type:h,root:E,attach:d,memoizedProps:{args:f}})}return y.__r3f.attach===void 0&&(y instanceof Lt?y.__r3f.attach="geometry":y instanceof hi&&(y.__r3f.attach="material")),x!=="inject"&&bE(y,m),y}function i(h,f){let d=!1;if(f){var m,E;(m=f.__r3f)!=null&&m.attach?DE(h,f,f.__r3f.attach):f.isObject3D&&h.isObject3D&&(h.add(f),d=!0),d||(E=h.__r3f)==null||E.objects.push(f),f.__r3f||Gc(f,{}),f.__r3f.parent=h,UC(f),Oc(f)}}function r(h,f,d){let m=!1;if(f){var E,x;if((E=f.__r3f)!=null&&E.attach)DE(h,f,f.__r3f.attach);else if(f.isObject3D&&h.isObject3D){f.parent=h,f.dispatchEvent({type:"added"});const y=h.children.filter(I=>I!==f),p=y.indexOf(d);h.children=[...y.slice(0,p),f,...y.slice(p)],m=!0}m||(x=h.__r3f)==null||x.objects.push(f),f.__r3f||Gc(f,{}),f.__r3f.parent=h,UC(f),Oc(f)}}function s(h,f,d=!1){h&&[...h].forEach(m=>o(f,m,d))}function o(h,f,d){if(f){var m,E,x;if(f.__r3f&&(f.__r3f.parent=null),(m=h.__r3f)!=null&&m.objects&&(h.__r3f.objects=h.__r3f.objects.filter(B=>B!==f)),(E=f.__r3f)!=null&&E.attach)yS(h,f,f.__r3f.attach);else if(f.isObject3D&&h.isObject3D){var y;h.remove(f),(y=f.__r3f)!=null&&y.root&&dO(f.__r3f.root,f)}const I=(x=f.__r3f)==null?void 0:x.primitive,C=!I&&(d===void 0?f.dispose!==null:d);if(!I){var p;s((p=f.__r3f)==null?void 0:p.objects,f,C),s(f.children,f,C)}if(delete f.__r3f,C&&f.dispose&&f.type!=="Scene"){const B=()=>{try{f.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?NC.unstable_scheduleCallback(NC.unstable_IdlePriority,B):B()}Oc(h)}}function a(h,f,d,m){var E;const x=(E=h.__r3f)==null?void 0:E.parent;if(!x)return;const y=t(f,d,h.__r3f.root);if(h.children){for(const p of h.children)p.__r3f&&i(y,p);h.children=h.children.filter(p=>!p.__r3f)}h.__r3f.objects.forEach(p=>i(y,p)),h.__r3f.objects=[],h.__r3f.autoRemovedBeforeAppend||o(x,h),y.parent&&(y.__r3f.autoRemovedBeforeAppend=!0),i(x,y),y.raycast&&y.__r3f.eventCount&&y.__r3f.root.getState().internal.interaction.push(y),[m,m.alternate].forEach(p=>{p!==null&&(p.stateNode=y,p.ref&&(typeof p.ref=="function"?p.ref(y):p.ref.current=y))})}const c=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:sO({createInstance:t,removeChild:o,appendChild:i,appendInitialChild:i,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(h,f)=>{if(!f)return;const d=h.getState().scene;d.__r3f&&(d.__r3f.root=h,i(d,f))},removeChildFromContainer:(h,f)=>{f&&o(h.getState().scene,f)},insertInContainerBefore:(h,f,d)=>{if(!f||!d)return;const m=h.getState().scene;m.__r3f&&r(m,f,d)},getRootHostContext:()=>null,getChildHostContext:h=>h,finalizeInitialChildren(h){var f;return!!((f=h==null?void 0:h.__r3f)!=null?f:{}).handlers},prepareUpdate(h,f,d,m){var E;if(((E=h==null?void 0:h.__r3f)!=null?E:{}).primitive&&m.object&&m.object!==h)return[!0];{const{args:y=[],children:p,...I}=m,{args:C=[],children:B,...R}=d;if(!Array.isArray(y))throw new Error("R3F: the args prop must be an array!");if(y.some((T,P)=>T!==C[P]))return[!0];const M=kR(h,I,R,!0);return M.changes.length?[!1,M]:null}},commitUpdate(h,[f,d],m,E,x,y){f?a(h,m,x,y):bE(h,d)},commitMount(h,f,d,m){var E;const x=(E=h.__r3f)!=null?E:{};h.raycast&&x.handlers&&x.eventCount&&h.__r3f.root.getState().internal.interaction.push(h)},getPublicInstance:h=>h,prepareForCommit:()=>null,preparePortalMount:h=>Gc(h.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(h){var f;const{attach:d,parent:m}=(f=h.__r3f)!=null?f:{};d&&m&&yS(m,h,d),h.isObject3D&&(h.visible=!1),Oc(h)},unhideInstance(h,f){var d;const{attach:m,parent:E}=(d=h.__r3f)!=null?d:{};m&&E&&DE(E,h,m),(h.isObject3D&&f.visible==null||f.visible)&&(h.visible=!0),Oc(h)},createTextInstance:c,hideTextInstance:c,unhideTextInstance:c,getCurrentEventPriority:()=>e?e():su.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&_n.fun(performance.now)?performance.now:_n.fun(Date.now)?Date.now:()=>0,scheduleTimeout:_n.fun(setTimeout)?setTimeout:void 0,cancelTimeout:_n.fun(clearTimeout)?clearTimeout:void 0}),applyProps:bE}}var pS,gS;const TE=n=>"colorSpace"in n||"outputColorSpace"in n,bR=()=>{var n;return(n=NI.ColorManagement)!=null?n:null},LR=n=>n&&n.isOrthographicCamera,lO=n=>n&&n.hasOwnProperty("current"),Kh=typeof window<"u"&&((pS=window.document)!=null&&pS.createElement||((gS=window.navigator)==null?void 0:gS.product)==="ReactNative")?Y.useLayoutEffect:Y.useEffect;function NR(n){const e=Y.useRef(n);return Kh(()=>void(e.current=n),[n]),e}function cO({set:n}){return Kh(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}class PR extends Y.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}PR.getDerivedStateFromError=()=>({error:!0});const UR="__default",mS=new Map,uO=n=>n&&!!n.memoized&&!!n.changes;function FR(n){var e;const t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}const vA=n=>{var e;return(e=n.__r3f)==null?void 0:e.root.getState()},_n={obj:n=>n===Object(n)&&!_n.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(_n.str(n)||_n.num(n))return n===e;const s=_n.obj(n);if(s&&i==="reference")return n===e;const o=_n.arr(n);if(o&&t==="reference")return n===e;if((o||s)&&n===e)return!0;let a;for(a in n)if(!(a in e))return!1;if(s&&t==="shallow"&&i==="shallow"){for(a in r?e:n)if(!_n.equ(n[a],e[a],{strict:r,objects:"reference"}))return!1}else for(a in r?e:n)if(n[a]!==e[a])return!1;if(_n.und(a)){if(o&&n.length===0&&e.length===0||s&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function AO(n){n.dispose&&n.type!=="Scene"&&n.dispose();for(const e in n)e.dispose==null||e.dispose(),delete n[e]}function Gc(n,e){const t=n;return t.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},n}function PC(n,e){let t=n;if(e.includes("-")){const i=e.split("-"),r=i.pop();return t=i.reduce((s,o)=>s[o],n),{target:t,key:r}}else return{target:t,key:e}}const ES=/-\d+$/;function DE(n,e,t){if(_n.str(t)){if(ES.test(t)){const s=t.replace(ES,""),{target:o,key:a}=PC(n,s);Array.isArray(o[a])||(o[a]=[])}const{target:i,key:r}=PC(n,t);e.__r3f.previousAttach=i[r],i[r]=e}else e.__r3f.previousAttach=t(n,e)}function yS(n,e,t){var i,r;if(_n.str(t)){const{target:s,key:o}=PC(n,t),a=e.__r3f.previousAttach;a===void 0?delete s[o]:s[o]=a}else(i=e.__r3f)==null||i.previousAttach==null||i.previousAttach(n,e);(r=e.__r3f)==null||delete r.previousAttach}function kR(n,{children:e,key:t,ref:i,...r},{children:s,key:o,ref:a,...c}={},A=!1){var h;const f=(h=n==null?void 0:n.__r3f)!=null?h:{},d=Object.entries(r),m=[];if(A){const x=Object.keys(c);for(let y=0;y{var p;if((p=n.__r3f)!=null&&p.primitive&&x==="object"||_n.equ(y,c[x]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(x))return m.push([x,y,!0,[]]);let I=[];x.includes("-")&&(I=x.split("-")),m.push([x,y,!1,I]);for(const C in r){const B=r[C];C.startsWith(`${x}-`)&&m.push([C,B,!1,C.split("-")])}});const E={...r};return f.memoizedProps&&f.memoizedProps.args&&(E.args=f.memoizedProps.args),f.memoizedProps&&f.memoizedProps.attach&&(E.attach=f.memoizedProps.attach),{memoized:E,changes:m}}const hO=typeof process<"u"&&!1;function bE(n,e){var t,i,r;const s=(t=n.__r3f)!=null?t:{},o=s.root,a=(i=o==null||o.getState==null?void 0:o.getState())!=null?i:{},{memoized:c,changes:A}=uO(e)?e:kR(n,e),h=s.eventCount;n.__r3f&&(n.__r3f.memoizedProps=c);for(let d=0;dC[B],n),!(I&&I.set))){const[C,...B]=y.reverse();p=B.reverse().reduce((R,M)=>R[M],n),m=C}if(E===UR+"remove")if(p.constructor){let C=mS.get(p.constructor);C||(C=new p.constructor,mS.set(p.constructor,C)),E=C[m]}else E=0;if(x)E?s.handlers[m]=E:delete s.handlers[m],s.eventCount=Object.keys(s.handlers).length;else if(I&&I.set&&(I.copy||I instanceof Ll)){if(Array.isArray(E))I.fromArray?I.fromArray(E):I.set(...E);else if(I.copy&&E&&E.constructor&&(hO?I.constructor.name===E.constructor.name:I.constructor===E.constructor))I.copy(E);else if(E!==void 0){const C=I instanceof Je;!C&&I.setScalar?I.setScalar(E):I instanceof Ll&&E instanceof Ll?I.mask=E.mask:I.set(E),!bR()&&!a.linear&&C&&I.convertSRGBToLinear()}}else if(p[m]=E,p[m]instanceof wn&&p[m].format===Oi&&p[m].type===Ds){const C=p[m];TE(C)&&TE(a.gl)?C.colorSpace=a.gl.outputColorSpace:C.encoding=a.gl.outputEncoding}Oc(n)}if(s.parent&&a.internal&&n.raycast&&h!==s.eventCount){const d=a.internal.interaction.indexOf(n);d>-1&&a.internal.interaction.splice(d,1),s.eventCount&&a.internal.interaction.push(n)}return!(A.length===1&&A[0][0]==="onUpdate")&&A.length&&(r=n.__r3f)!=null&&r.parent&&UC(n),n}function Oc(n){var e,t;const i=(e=n.__r3f)==null||(t=e.root)==null||t.getState==null?void 0:t.getState();i&&i.internal.frames===0&&i.invalidate()}function UC(n){n.onUpdate==null||n.onUpdate(n)}function GR(n,e){n.manual||(LR(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix(),n.updateMatrixWorld())}function ip(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function fO(){var n;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return su.DefaultEventPriority;switch((n=e.event)==null?void 0:n.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return su.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return su.ContinuousEventPriority;default:return su.DefaultEventPriority}}function OR(n,e,t,i){const r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function dO(n,e){const{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{OR(t.capturedMap,e,i,r)})}function pO(n){function e(c){const{internal:A}=n.getState(),h=c.offsetX-A.initialClick[0],f=c.offsetY-A.initialClick[1];return Math.round(Math.sqrt(h*h+f*f))}function t(c){return c.filter(A=>["Move","Over","Enter","Out","Leave"].some(h=>{var f;return(f=A.__r3f)==null?void 0:f.handlers["onPointer"+h]}))}function i(c,A){const h=n.getState(),f=new Set,d=[],m=A?A(h.internal.interaction):h.internal.interaction;for(let p=0;p{const C=vA(p.object),B=vA(I.object);return!C||!B?p.distance-I.distance:B.events.priority-C.events.priority||p.distance-I.distance}).filter(p=>{const I=ip(p);return f.has(I)?!1:(f.add(I),!0)});h.events.filter&&(x=h.events.filter(x,h));for(const p of x){let I=p.object;for(;I;){var y;(y=I.__r3f)!=null&&y.eventCount&&d.push({...p,eventObject:I}),I=I.parent}}if("pointerId"in c&&h.internal.capturedMap.has(c.pointerId))for(let p of h.internal.capturedMap.get(c.pointerId).values())f.has(ip(p.intersection))||d.push(p.intersection);return d}function r(c,A,h,f){const d=n.getState();if(c.length){const m={stopped:!1};for(const E of c){const x=vA(E.object)||d,{raycaster:y,pointer:p,camera:I,internal:C}=x,B=new G(p.x,p.y,0).unproject(I),R=w=>{var b,q;return(b=(q=C.capturedMap.get(w))==null?void 0:q.has(E.eventObject))!=null?b:!1},M=w=>{const b={intersection:E,target:A.target};C.capturedMap.has(w)?C.capturedMap.get(w).set(E.eventObject,b):C.capturedMap.set(w,new Map([[E.eventObject,b]])),A.target.setPointerCapture(w)},T=w=>{const b=C.capturedMap.get(w);b&&OR(C.capturedMap,E.eventObject,b,w)};let P={};for(let w in A){let b=A[w];typeof b!="function"&&(P[w]=b)}let K={...E,...P,pointer:p,intersections:c,stopped:m.stopped,delta:h,unprojectedPoint:B,ray:y.ray,camera:I,stopPropagation(){const w="pointerId"in A&&C.capturedMap.get(A.pointerId);if((!w||w.has(E.eventObject))&&(K.stopped=m.stopped=!0,C.hovered.size&&Array.from(C.hovered.values()).find(b=>b.eventObject===E.eventObject))){const b=c.slice(0,c.indexOf(E));s([...b,E])}},target:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},currentTarget:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},nativeEvent:A};if(f(K),m.stopped===!0)break}}return c}function s(c){const{internal:A}=n.getState();for(const h of A.hovered.values())if(!c.length||!c.find(f=>f.object===h.object&&f.index===h.index&&f.instanceId===h.instanceId)){const d=h.eventObject.__r3f,m=d==null?void 0:d.handlers;if(A.hovered.delete(ip(h)),d!=null&&d.eventCount){const E={...h,intersections:c};m.onPointerOut==null||m.onPointerOut(E),m.onPointerLeave==null||m.onPointerLeave(E)}}}function o(c,A){for(let h=0;hs([]);case"onLostPointerCapture":return A=>{const{internal:h}=n.getState();"pointerId"in A&&h.capturedMap.has(A.pointerId)&&requestAnimationFrame(()=>{h.capturedMap.has(A.pointerId)&&(h.capturedMap.delete(A.pointerId),s([]))})}}return function(h){const{onPointerMissed:f,internal:d}=n.getState();d.lastEvent.current=h;const m=c==="onPointerMove",E=c==="onClick"||c==="onContextMenu"||c==="onDoubleClick",y=i(h,m?t:void 0),p=E?e(h):0;c==="onPointerDown"&&(d.initialClick=[h.offsetX,h.offsetY],d.initialHits=y.map(C=>C.eventObject)),E&&!y.length&&p<=2&&(o(h,d.interaction),f&&f(h)),m&&s(y);function I(C){const B=C.eventObject,R=B.__r3f,M=R==null?void 0:R.handlers;if(R!=null&&R.eventCount)if(m){if(M.onPointerOver||M.onPointerEnter||M.onPointerOut||M.onPointerLeave){const T=ip(C),P=d.hovered.get(T);P?P.stopped&&C.stopPropagation():(d.hovered.set(T,C),M.onPointerOver==null||M.onPointerOver(C),M.onPointerEnter==null||M.onPointerEnter(C))}M.onPointerMove==null||M.onPointerMove(C)}else{const T=M[c];T?(!E||d.initialHits.includes(B))&&(o(h,d.interaction.filter(P=>!d.initialHits.includes(P))),T(C)):E&&d.initialHits.includes(B)&&o(h,d.interaction.filter(P=>!d.initialHits.includes(P)))}}r(y,h,p,I)}}return{handlePointer:a}}const gO=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],HR=n=>!!(n!=null&&n.render),PI=Y.createContext(null),mO=(n,e)=>{const t=QR((a,c)=>{const A=new G,h=new G,f=new G;function d(p=c().camera,I=h,C=c().size){const{width:B,height:R,top:M,left:T}=C,P=B/R;I instanceof G?f.copy(I):f.set(...I);const K=p.getWorldPosition(A).distanceTo(f);if(LR(p))return{width:B/p.zoom,height:R/p.zoom,top:M,left:T,factor:1,distance:K,aspect:P};{const w=p.fov*Math.PI/180,b=2*Math.tan(w/2)*K,q=b*(B/R);return{width:q,height:b,top:M,left:T,factor:B/q,distance:K,aspect:P}}}let m;const E=p=>a(I=>({performance:{...I.performance,current:p}})),x=new _e;return{set:a,get:c,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(p=1)=>n(c(),p),advance:(p,I)=>e(p,I,c()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new RI,pointer:x,mouse:x,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const p=c();m&&clearTimeout(m),p.performance.current!==p.performance.min&&E(p.performance.min),m=setTimeout(()=>E(c().performance.max),p.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:d},setEvents:p=>a(I=>({...I,events:{...I.events,...p}})),setSize:(p,I,C,B,R)=>{const M=c().camera,T={width:p,height:I,top:B||0,left:R||0,updateStyle:C};a(P=>({size:T,viewport:{...P.viewport,...d(M,h,T)}}))},setDpr:p=>a(I=>{const C=FR(p);return{viewport:{...I.viewport,dpr:C,initialDpr:I.viewport.initialDpr||C}}}),setFrameloop:(p="always")=>{const I=c().clock;I.stop(),I.elapsedTime=0,p!=="never"&&(I.start(),I.elapsedTime=0),a(()=>({frameloop:p}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:Y.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(p,I,C)=>{const B=c().internal;return B.priority=B.priority+(I>0?1:0),B.subscribers.push({ref:p,priority:I,store:C}),B.subscribers=B.subscribers.sort((R,M)=>R.priority-M.priority),()=>{const R=c().internal;R!=null&&R.subscribers&&(R.priority=R.priority-(I>0?1:0),R.subscribers=R.subscribers.filter(M=>M.ref!==p))}}}}}),i=t.getState();let r=i.size,s=i.viewport.dpr,o=i.camera;return t.subscribe(()=>{const{camera:a,size:c,viewport:A,gl:h,set:f}=t.getState();if(c.width!==r.width||c.height!==r.height||A.dpr!==s){var d;r=c,s=A.dpr,GR(a,c),h.setPixelRatio(A.dpr);const m=(d=c.updateStyle)!=null?d:typeof HTMLCanvasElement<"u"&&h.domElement instanceof HTMLCanvasElement;h.setSize(c.width,c.height,m)}a!==o&&(o=a,f(m=>({viewport:{...m.viewport,...m.viewport.getCurrentViewport(a)}})))}),t.subscribe(a=>n(a)),t};let rp,EO=new Set,yO=new Set,CO=new Set;function LE(n,e){if(n.size)for(const{callback:t}of n.values())t(e)}function IA(n,e){switch(n){case"before":return LE(EO,e);case"after":return LE(yO,e);case"tail":return LE(CO,e)}}let NE,PE;function UE(n,e,t){let i=e.clock.getDelta();for(e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),NE=e.internal.subscribers,rp=0;rp0)&&!((A=r.gl.xr)!=null&&A.isPresenting)&&(t+=UE(c,r))}if(IA("after",c),t===0)return IA("tail",c),e=!1,cancelAnimationFrame(i)}function o(c,A=1){var h;if(!c)return n.forEach(f=>o(f.store.getState()),A);(h=c.gl.xr)!=null&&h.isPresenting||!c.internal.active||c.frameloop==="never"||(c.internal.frames=Math.min(60,c.internal.frames+A),e||(e=!0,requestAnimationFrame(s)))}function a(c,A=!0,h,f){if(A&&IA("before",c),h)UE(c,h,f);else for(const d of n.values())UE(c,d.store.getState());A&&IA("after",c)}return{loop:s,invalidate:o,advance:a}}function qh(){const n=Y.useContext(PI);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function UI(n=t=>t,e){return qh()(n,e)}function ba(n,e=0){const t=qh(),i=t.getState().internal.subscribe,r=NR(n);return Kh(()=>i(r,e,t),[e,i,t]),null}const xu=new Map,{invalidate:CS,advance:vS}=vO(xu),{reconciler:Dh,applyProps:bc}=aO(xu,fO),Lc={objects:"shallow",strict:!1},IO=(n,e)=>{const t=typeof n=="function"?n(e):n;return HR(t)?t:new hI({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...n})};function xO(n,e){const t=typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement;if(e){const{width:i,height:r,top:s,left:o,updateStyle:a=t}=e;return{width:i,height:r,top:s,left:o,updateStyle:a}}else if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){const{width:i,height:r,top:s,left:o}=n.parentElement.getBoundingClientRect();return{width:i,height:r,top:s,left:o,updateStyle:t}}else if(typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0,updateStyle:t};return{width:0,height:0,top:0,left:0}}function BO(n){const e=xu.get(n),t=e==null?void 0:e.fiber,i=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,s=i||mO(CS,vS),o=t||Dh.createContainer(s,su.ConcurrentRoot,null,!1,null,"",r,null);e||xu.set(n,{fiber:o,store:s});let a,c=!1,A;return{configure(h={}){let{gl:f,size:d,scene:m,events:E,onCreated:x,shadows:y=!1,linear:p=!1,flat:I=!1,legacy:C=!1,orthographic:B=!1,frameloop:R="always",dpr:M=[1,2],performance:T,raycaster:P,camera:K,onPointerMissed:w}=h,b=s.getState(),q=b.gl;b.gl||b.set({gl:q=IO(f,n)});let de=b.raycaster;de||b.set({raycaster:de=new LI});const{params:J,...re}=P||{};if(_n.equ(re,de,Lc)||bc(de,{...re}),_n.equ(J,de.params,Lc)||bc(de,{params:{...de.params,...J}}),!b.camera||b.camera===A&&!_n.equ(A,K,Lc)){A=K;const Ce=K instanceof Hh,ke=Ce?K:B?new Wh(0,0,0,0,.1,1e3):new $n(75,0,.1,1e3);Ce||(ke.position.z=5,K&&bc(ke,K),!b.camera&&!(K!=null&&K.rotation)&&ke.lookAt(0,0,0)),b.set({camera:ke}),de.camera=ke}if(!b.scene){let Ce;m instanceof Bh?Ce=m:(Ce=new Bh,m&&bc(Ce,m)),b.set({scene:Gc(Ce)})}if(!b.xr){var ne;const Ce=(O,k)=>{const F=s.getState();F.frameloop!=="never"&&vS(O,!0,F,k)},ke=()=>{const O=s.getState();O.gl.xr.enabled=O.gl.xr.isPresenting,O.gl.xr.setAnimationLoop(O.gl.xr.isPresenting?Ce:null),O.gl.xr.isPresenting||CS(O)},V={connect(){const O=s.getState().gl;O.xr.addEventListener("sessionstart",ke),O.xr.addEventListener("sessionend",ke)},disconnect(){const O=s.getState().gl;O.xr.removeEventListener("sessionstart",ke),O.xr.removeEventListener("sessionend",ke)}};typeof((ne=q.xr)==null?void 0:ne.addEventListener)=="function"&&V.connect(),b.set({xr:V})}if(q.shadowMap){const Ce=q.shadowMap.enabled,ke=q.shadowMap.type;if(q.shadowMap.enabled=!!y,_n.boo(y))q.shadowMap.type=OA;else if(_n.str(y)){var ue;const V={basic:yQ,percentage:Hg,soft:OA,variance:es};q.shadowMap.type=(ue=V[y])!=null?ue:OA}else _n.obj(y)&&Object.assign(q.shadowMap,y);(Ce!==q.shadowMap.enabled||ke!==q.shadowMap.type)&&(q.shadowMap.needsUpdate=!0)}const U=bR();U&&("enabled"in U?U.enabled=!C:"legacyMode"in U&&(U.legacyMode=C)),bc(q,{outputEncoding:p?3e3:3001,toneMapping:I?Ts:Xv}),b.legacy!==C&&b.set(()=>({legacy:C})),b.linear!==p&&b.set(()=>({linear:p})),b.flat!==I&&b.set(()=>({flat:I})),f&&!_n.fun(f)&&!HR(f)&&!_n.equ(f,q,Lc)&&bc(q,f),E&&!b.events.handlers&&b.set({events:E(s)});const Ae=xO(n,d);return _n.equ(Ae,b.size,Lc)||b.setSize(Ae.width,Ae.height,Ae.updateStyle,Ae.top,Ae.left),M&&b.viewport.dpr!==FR(M)&&b.setDpr(M),b.frameloop!==R&&b.setFrameloop(R),b.onPointerMissed||b.set({onPointerMissed:w}),T&&!_n.equ(T,b.performance,Lc)&&b.set(Ce=>({performance:{...Ce.performance,...T}})),a=x,c=!0,this},render(h){return c||this.configure(),Dh.updateContainer(Y.createElement(_O,{store:s,children:h,onCreated:a,rootElement:n}),o,null,()=>{}),s},unmount(){zR(n)}}}function _O({store:n,children:e,onCreated:t,rootElement:i}){return Kh(()=>{const r=n.getState();r.set(s=>({internal:{...s.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),Y.createElement(PI.Provider,{value:n},e)}function zR(n,e){const t=xu.get(n),i=t==null?void 0:t.fiber;if(i){const r=t==null?void 0:t.store.getState();r&&(r.internal.active=!1),Dh.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{var s,o,a,c;r.events.disconnect==null||r.events.disconnect(),(s=r.gl)==null||(o=s.renderLists)==null||o.dispose==null||o.dispose(),(a=r.gl)==null||a.forceContextLoss==null||a.forceContextLoss(),(c=r.gl)!=null&&c.xr&&r.xr.disconnect(),AO(r),xu.delete(n),e&&e(n)}catch{}},500)})}}function VR(n,e,t){return Y.createElement(SO,{key:e.uuid,children:n,container:e,state:t})}function SO({state:n={},children:e,container:t}){const{events:i,size:r,...s}=n,o=qh(),[a]=Y.useState(()=>new LI),[c]=Y.useState(()=>new _e),A=Y.useCallback((f,d)=>{const m={...f};Object.keys(f).forEach(x=>{(gO.includes(x)||f[x]!==d[x]&&d[x])&&delete m[x]});let E;if(d&&r){const x=d.camera;E=f.viewport.getCurrentViewport(x,new G,r),x!==f.camera&&GR(x,r)}return{...m,scene:t,raycaster:a,pointer:c,mouse:c,previousRoot:o,events:{...f.events,...d==null?void 0:d.events,...i},size:{...f.size,...r},viewport:{...f.viewport,...E},...s}},[n]),[h]=Y.useState(()=>{const f=o.getState();return QR((m,E)=>({...f,scene:t,raycaster:a,pointer:c,mouse:c,previousRoot:o,events:{...f.events,...i},size:{...f.size,...r},...s,set:m,get:E,setEvents:x=>m(y=>({...y,events:{...y.events,...x}}))}))});return Y.useEffect(()=>{const f=o.subscribe(d=>h.setState(m=>A(d,m)));return()=>{f(),h.destroy()}},[]),Y.useEffect(()=>{h.setState(f=>A(o.getState(),f))},[A]),Y.createElement(Y.Fragment,null,Dh.createPortal(Y.createElement(PI.Provider,{value:h},e),h,null))}Dh.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:Y.version});function vg(){return vg=Object.assign?Object.assign.bind():function(n){for(var e=1;e=0?i=setTimeout(c,e-h):(i=null,t||(a=n.apply(s,r),s=r=null))}var A=function(){s=this,r=arguments,o=Date.now();var h=t&&!i;return i||(i=setTimeout(c,e)),h&&(a=n.apply(s,r),s=r=null),a};return A.clear=function(){i&&(clearTimeout(i),i=null)},A.flush=function(){i&&(a=n.apply(s,r),s=r=null,clearTimeout(i),i=null)},A}FC.debounce=FC;var wO=FC;const IS=nw(wO);function MO(n){let{debounce:e,scroll:t,polyfill:i,offsetSize:r}=n===void 0?{debounce:0,scroll:!1,offsetSize:!1}:n;const s=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!s)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,a]=Y.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),c=Y.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),A=e?typeof e=="number"?e:e.scroll:null,h=e?typeof e=="number"?e:e.resize:null,f=Y.useRef(!1);Y.useEffect(()=>(f.current=!0,()=>void(f.current=!1)));const[d,m,E]=Y.useMemo(()=>{const I=()=>{if(!c.current.element)return;const{left:C,top:B,width:R,height:M,bottom:T,right:P,x:K,y:w}=c.current.element.getBoundingClientRect(),b={left:C,top:B,width:R,height:M,bottom:T,right:P,x:K,y:w};c.current.element instanceof HTMLElement&&r&&(b.height=c.current.element.offsetHeight,b.width=c.current.element.offsetWidth),Object.freeze(b),f.current&&!DO(c.current.lastBounds,b)&&a(c.current.lastBounds=b)};return[I,h?IS(I,h):I,A?IS(I,A):I]},[a,r,A,h]);function x(){c.current.scrollContainers&&(c.current.scrollContainers.forEach(I=>I.removeEventListener("scroll",E,!0)),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null)}function y(){c.current.element&&(c.current.resizeObserver=new s(E),c.current.resizeObserver.observe(c.current.element),t&&c.current.scrollContainers&&c.current.scrollContainers.forEach(I=>I.addEventListener("scroll",E,{capture:!0,passive:!0})))}const p=I=>{!I||I===c.current.element||(x(),c.current.element=I,c.current.scrollContainers=WR(I),y())};return RO(E,!!t),QO(m),Y.useEffect(()=>{x(),y()},[t,E,m]),Y.useEffect(()=>x,[]),[p,o,d]}function QO(n){Y.useEffect(()=>{const e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function RO(n,e){Y.useEffect(()=>{if(e){const t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function WR(n){const e=[];if(!n||n===document.body)return e;const{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(s=>s==="auto"||s==="scroll")&&e.push(n),[...e,...WR(n.parentElement)]}const TO=["x","y","top","bottom","left","right","width","height"],DO=(n,e)=>TO.every(t=>n[t]===e[t]);var bO=Object.defineProperty,LO=Object.defineProperties,NO=Object.getOwnPropertyDescriptors,xS=Object.getOwnPropertySymbols,PO=Object.prototype.hasOwnProperty,UO=Object.prototype.propertyIsEnumerable,BS=(n,e,t)=>e in n?bO(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,_S=(n,e)=>{for(var t in e||(e={}))PO.call(e,t)&&BS(n,t,e[t]);if(xS)for(var t of xS(e))UO.call(e,t)&&BS(n,t,e[t]);return n},FO=(n,e)=>LO(n,NO(e));function YR(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){const r=YR(i,e,t);if(r)return r;i=e?null:i.sibling}}function XR(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}const FI=XR(Y.createContext(null));class JR extends Y.Component{render(){return Y.createElement(FI.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:SS,ReactCurrentDispatcher:wS}=Y.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function kO(){const n=Y.useContext(FI);if(n===null)throw new Error("its-fine: useFiber must be called within a !");const e=Y.useId();return Y.useMemo(()=>{for(const i of[SS==null?void 0:SS.current,n,n==null?void 0:n.alternate]){if(!i)continue;const r=YR(i,!1,s=>{let o=s.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[n,e])}function GO(){var n,e;const t=kO(),[i]=Y.useState(()=>new Map);i.clear();let r=t;for(;r;){const s=(n=r.type)==null?void 0:n._context;s&&s!==FI&&!i.has(s)&&i.set(s,(e=wS==null?void 0:wS.current)==null?void 0:e.readContext(XR(s))),r=r.return}return i}function OO(){const n=GO();return Y.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>Y.createElement(e,null,Y.createElement(t.Provider,FO(_S({},i),{value:n.get(t)}))),e=>Y.createElement(JR,_S({},e))),[n])}const FE={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function HO(n){const{handlePointer:e}=pO(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(FE).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;const{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{var i;const{set:r,events:s}=n.getState();s.disconnect==null||s.disconnect(),r(o=>({events:{...o.events,connected:t}})),Object.entries((i=s.handlers)!=null?i:[]).forEach(([o,a])=>{const[c,A]=FE[o];t.addEventListener(c,a,{passive:A})})},disconnect:()=>{const{set:t,events:i}=n.getState();if(i.connected){var r;Object.entries((r=i.handlers)!=null?r:[]).forEach(([s,o])=>{if(i&&i.connected instanceof HTMLElement){const[a]=FE[s];i.connected.removeEventListener(a,o)}}),t(s=>({events:{...s.events,connected:void 0}}))}}}}const zO=Y.forwardRef(function({children:e,fallback:t,resize:i,style:r,gl:s,events:o=HO,eventSource:a,eventPrefix:c,shadows:A,linear:h,flat:f,legacy:d,orthographic:m,frameloop:E,dpr:x,performance:y,raycaster:p,camera:I,scene:C,onPointerMissed:B,onCreated:R,...M},T){Y.useMemo(()=>oO(eO),[]);const P=OO(),[K,w]=MO({scroll:!0,debounce:{scroll:50,resize:0},...i}),b=Y.useRef(null),q=Y.useRef(null);Y.useImperativeHandle(T,()=>b.current);const de=NR(B),[J,re]=Y.useState(!1),[ne,ue]=Y.useState(!1);if(J)throw J;if(ne)throw ne;const U=Y.useRef(null);Kh(()=>{const te=b.current;w.width>0&&w.height>0&&te&&(U.current||(U.current=BO(te)),U.current.configure({gl:s,events:o,shadows:A,linear:h,flat:f,legacy:d,orthographic:m,frameloop:E,dpr:x,performance:y,raycaster:p,camera:I,scene:C,size:w,onPointerMissed:(...Ae)=>de.current==null?void 0:de.current(...Ae),onCreated:Ae=>{Ae.events.connect==null||Ae.events.connect(a?lO(a)?a.current:a:q.current),c&&Ae.setEvents({compute:(Ce,ke)=>{const V=Ce[c+"X"],O=Ce[c+"Y"];ke.pointer.set(V/ke.size.width*2-1,-(O/ke.size.height)*2+1),ke.raycaster.setFromCamera(ke.pointer,ke.camera)}}),R==null||R(Ae)}}),U.current.render(Y.createElement(P,null,Y.createElement(PR,{set:ue},Y.createElement(Y.Suspense,{fallback:Y.createElement(cO,{set:re})},e)))))}),Y.useEffect(()=>{const te=b.current;if(te)return()=>zR(te)},[]);const ee=a?"none":"auto";return Y.createElement("div",vg({ref:q,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ee,...r}},M),Y.createElement("div",{ref:K,style:{width:"100%",height:"100%"}},Y.createElement("canvas",{ref:b,style:{display:"block"}},t)))}),VO=Y.forwardRef(function(e,t){return Y.createElement(JR,null,Y.createElement(zO,vg({},e,{ref:t})))});function gm(){throw new Error("Cycle detected")}var WO=Symbol.for("preact-signals");function mm(){if(va>1)va--;else{for(var n,e=!1;YA!==void 0;){var t=YA;for(YA=void 0,kC++;t!==void 0;){var i=t.o;if(t.o=void 0,t.f&=-3,!(8&t.f)&&qR(t))try{t.c()}catch(r){e||(n=r,e=!0)}t=i}}if(kC=0,va--,e)throw n}}function jR(n){if(va>0)return n();va++;try{return n()}finally{mm()}}var vn=void 0,kE=0;function GE(n){if(kE>0)return n();var e=vn;vn=void 0,kE++;try{return n()}finally{kE--,vn=e}}var YA=void 0,va=0,kC=0,Ig=0;function KR(n){if(vn!==void 0){var e=n.n;if(e===void 0||e.t!==vn)return e={i:0,S:n,p:vn.s,n:void 0,t:vn,e:void 0,x:void 0,r:e},vn.s!==void 0&&(vn.s.n=e),vn.s=e,n.n=e,32&vn.f&&n.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=vn.s,e.n=void 0,vn.s.n=e,vn.s=e),e}}function Vn(n){this.v=n,this.i=0,this.n=void 0,this.t=void 0}Vn.prototype.brand=WO;Vn.prototype.h=function(){return!0};Vn.prototype.S=function(n){this.t!==n&&n.e===void 0&&(n.x=this.t,this.t!==void 0&&(this.t.e=n),this.t=n)};Vn.prototype.U=function(n){if(this.t!==void 0){var e=n.e,t=n.x;e!==void 0&&(e.x=t,n.e=void 0),t!==void 0&&(t.e=e,n.x=void 0),n===this.t&&(this.t=t)}};Vn.prototype.subscribe=function(n){var e=this;return Kt(function(){var t=e.value,i=32&this.f;this.f&=-33;try{n(t)}finally{this.f|=i}})};Vn.prototype.valueOf=function(){return this.value};Vn.prototype.toString=function(){return this.value+""};Vn.prototype.toJSON=function(){return this.value};Vn.prototype.peek=function(){return this.v};Object.defineProperty(Vn.prototype,"value",{get:function(){var n=KR(this);return n!==void 0&&(n.i=this.i),this.v},set:function(n){if(vn instanceof La&&function(){throw new Error("Computed cannot have side-effects")}(),n!==this.v){kC>100&&gm(),this.v=n,this.i++,Ig++,va++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{mm()}}}});function zt(n){return new Vn(n)}function qR(n){for(var e=n.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function ZR(n){for(var e=n.s;e!==void 0;e=e.n){var t=e.S.n;if(t!==void 0&&(e.r=t),e.S.n=e,e.i=-1,e.n===void 0){n.s=e;break}}}function $R(n){for(var e=n.s,t=void 0;e!==void 0;){var i=e.p;e.i===-1?(e.S.U(e),i!==void 0&&(i.n=e.n),e.n!==void 0&&(e.n.p=i)):t=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=i}n.s=t}function La(n){Vn.call(this,void 0),this.x=n,this.s=void 0,this.g=Ig-1,this.f=4}(La.prototype=new Vn).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Ig))return!0;if(this.g=Ig,this.f|=1,this.i>0&&!qR(this))return this.f&=-2,!0;var n=vn;try{ZR(this),vn=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(t){this.v=t,this.f|=16,this.i++}return vn=n,$R(this),this.f&=-2,!0};La.prototype.S=function(n){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}Vn.prototype.S.call(this,n)};La.prototype.U=function(n){if(this.t!==void 0&&(Vn.prototype.U.call(this,n),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};La.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var n=this.t;n!==void 0;n=n.x)n.t.N()}};La.prototype.peek=function(){if(this.h()||gm(),16&this.f)throw this.v;return this.v};Object.defineProperty(La.prototype,"value",{get:function(){1&this.f&&gm();var n=KR(this);if(this.h(),n!==void 0&&(n.i=this.i),16&this.f)throw this.v;return this.v}});function zn(n){return new La(n)}function eT(n){var e=n.u;if(n.u=void 0,typeof e=="function"){va++;var t=vn;vn=void 0;try{e()}catch(i){throw n.f&=-2,n.f|=8,kI(n),i}finally{vn=t,mm()}}}function kI(n){for(var e=n.s;e!==void 0;e=e.n)e.S.U(e);n.x=void 0,n.s=void 0,eT(n)}function YO(n){if(vn!==this)throw new Error("Out-of-order effect");$R(this),vn=n,this.f&=-2,8&this.f&&kI(this),mm()}function Zh(n){this.x=n,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}Zh.prototype.c=function(){var n=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{n()}};Zh.prototype.S=function(){1&this.f&&gm(),this.f|=1,this.f&=-9,eT(this),ZR(this),va++;var n=vn;return vn=this,YO.bind(this,n)};Zh.prototype.N=function(){2&this.f||(this.f|=2,this.o=YA,YA=this)};Zh.prototype.d=function(){this.f|=8,1&this.f||kI(this)};function Kt(n){var e=new Zh(n);try{e.c()}catch(t){throw e.d(),t}return e.d.bind(e)}function Em(n,e,t){const i=Y.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=Y.useMemo(()=>{let s={};return(o,a)=>{let c=0,A=!1;for(const h in s){if(!nT(s[h],o[h])){A=!0;break}++c}A||(A=c!=a),s=o,!(!A&&e.getProperty.peek()!=null)&&(e.getProperty.value=h=>GC(o[h]))}},[e]);tT(n,i,r,t)}function XO(n,e){const t=n.length;for(const i in e)for(let r=0;r{let r={},s=0;const o=(c,A)=>{if(A===void 0)return;const h=r[c];if(h===void 0&&++s,h==null||!(A instanceof Vn)){r[c]=A;return}if(Array.isArray(h)){h.push(A);return}r[c]=[h,A]};return{add:(c,A)=>{if(A!==void 0){if(i!=null){i(c,A,e,o);return}e(c)&&o(c,A)}},finish:()=>{t(r,s),s=0,r={}}}},[e,t,i]))}function nT(n,e){if(!Array.isArray(n))return n===e;if(!Array.isArray(e))return!1;const t=n.length;if(t!=e.length)return!1;for(let i=0;izt(void 0),[]),r=Y.useMemo(()=>({hasBatchedProperty:s=>e.includes(s),getProperty:i}),[e]);return Em(n,r,t),i}const OC=Y.createContext(void 0);function Lu(n,e){const t=Y.useContext(OC);t!=null&&e(t);const{classes:i}=n;if(Array.isArray(i)){const r=i.length;for(let s=0;sXO(n,t))}function Ps(n){const t={...Y.useContext(OC)};for(const i in n){if(i==="children")continue;const r=n[i];r!=null&&(t[i]=r)}return W.jsx(OC.Provider,{value:t,children:n.children})}var ki={},GI={},Ut={};Object.defineProperty(Ut,"__esModule",{value:!0});Ut.default=Ut.Wrap=Ut.Unit=Ut.PrintOptions=Ut.PositionType=Ut.Overflow=Ut.NodeType=Ut.MeasureMode=Ut.LogLevel=Ut.Justify=Ut.Gutter=Ut.FlexDirection=Ut.ExperimentalFeature=Ut.Errata=Ut.Edge=Ut.Display=Ut.Direction=Ut.Dimension=Ut.Align=void 0;let eo=function(n){return n[n.Auto=0]="Auto",n[n.FlexStart=1]="FlexStart",n[n.Center=2]="Center",n[n.FlexEnd=3]="FlexEnd",n[n.Stretch=4]="Stretch",n[n.Baseline=5]="Baseline",n[n.SpaceBetween=6]="SpaceBetween",n[n.SpaceAround=7]="SpaceAround",n}({});Ut.Align=eo;let HC=function(n){return n[n.Width=0]="Width",n[n.Height=1]="Height",n}({});Ut.Dimension=HC;let Pp=function(n){return n[n.Inherit=0]="Inherit",n[n.LTR=1]="LTR",n[n.RTL=2]="RTL",n}({});Ut.Direction=Pp;let zC=function(n){return n[n.Flex=0]="Flex",n[n.None=1]="None",n}({});Ut.Display=zC;let Is=function(n){return n[n.Left=0]="Left",n[n.Top=1]="Top",n[n.Right=2]="Right",n[n.Bottom=3]="Bottom",n[n.Start=4]="Start",n[n.End=5]="End",n[n.Horizontal=6]="Horizontal",n[n.Vertical=7]="Vertical",n[n.All=8]="All",n}({});Ut.Edge=Is;let MA=function(n){return n[n.None=0]="None",n[n.StretchFlexBasis=1]="StretchFlexBasis",n[n.All=2147483647]="All",n[n.Classic=2147483646]="Classic",n}({});Ut.Errata=MA;let Up=function(n){return n[n.WebFlexBasis=0]="WebFlexBasis",n[n.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",n[n.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",n}({});Ut.ExperimentalFeature=Up;let QA=function(n){return n[n.Column=0]="Column",n[n.ColumnReverse=1]="ColumnReverse",n[n.Row=2]="Row",n[n.RowReverse=3]="RowReverse",n}({});Ut.FlexDirection=QA;let Fp=function(n){return n[n.Column=0]="Column",n[n.Row=1]="Row",n[n.All=2]="All",n}({});Ut.Gutter=Fp;let ml=function(n){return n[n.FlexStart=0]="FlexStart",n[n.Center=1]="Center",n[n.FlexEnd=2]="FlexEnd",n[n.SpaceBetween=3]="SpaceBetween",n[n.SpaceAround=4]="SpaceAround",n[n.SpaceEvenly=5]="SpaceEvenly",n}({});Ut.Justify=ml;let El=function(n){return n[n.Error=0]="Error",n[n.Warn=1]="Warn",n[n.Info=2]="Info",n[n.Debug=3]="Debug",n[n.Verbose=4]="Verbose",n[n.Fatal=5]="Fatal",n}({});Ut.LogLevel=El;let kp=function(n){return n[n.Undefined=0]="Undefined",n[n.Exactly=1]="Exactly",n[n.AtMost=2]="AtMost",n}({});Ut.MeasureMode=kp;let VC=function(n){return n[n.Default=0]="Default",n[n.Text=1]="Text",n}({});Ut.NodeType=VC;let Gp=function(n){return n[n.Visible=0]="Visible",n[n.Hidden=1]="Hidden",n[n.Scroll=2]="Scroll",n}({});Ut.Overflow=Gp;let Op=function(n){return n[n.Static=0]="Static",n[n.Relative=1]="Relative",n[n.Absolute=2]="Absolute",n}({});Ut.PositionType=Op;let Hp=function(n){return n[n.Layout=1]="Layout",n[n.Style=2]="Style",n[n.Children=4]="Children",n}({});Ut.PrintOptions=Hp;let RA=function(n){return n[n.Undefined=0]="Undefined",n[n.Point=1]="Point",n[n.Percent=2]="Percent",n[n.Auto=3]="Auto",n}({});Ut.Unit=RA;let zp=function(n){return n[n.NoWrap=0]="NoWrap",n[n.Wrap=1]="Wrap",n[n.WrapReverse=2]="WrapReverse",n}({});Ut.Wrap=zp;const JO={ALIGN_AUTO:eo.Auto,ALIGN_FLEX_START:eo.FlexStart,ALIGN_CENTER:eo.Center,ALIGN_FLEX_END:eo.FlexEnd,ALIGN_STRETCH:eo.Stretch,ALIGN_BASELINE:eo.Baseline,ALIGN_SPACE_BETWEEN:eo.SpaceBetween,ALIGN_SPACE_AROUND:eo.SpaceAround,DIMENSION_WIDTH:HC.Width,DIMENSION_HEIGHT:HC.Height,DIRECTION_INHERIT:Pp.Inherit,DIRECTION_LTR:Pp.LTR,DIRECTION_RTL:Pp.RTL,DISPLAY_FLEX:zC.Flex,DISPLAY_NONE:zC.None,EDGE_LEFT:Is.Left,EDGE_TOP:Is.Top,EDGE_RIGHT:Is.Right,EDGE_BOTTOM:Is.Bottom,EDGE_START:Is.Start,EDGE_END:Is.End,EDGE_HORIZONTAL:Is.Horizontal,EDGE_VERTICAL:Is.Vertical,EDGE_ALL:Is.All,ERRATA_NONE:MA.None,ERRATA_STRETCH_FLEX_BASIS:MA.StretchFlexBasis,ERRATA_ALL:MA.All,ERRATA_CLASSIC:MA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Up.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:Up.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:Up.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:QA.Column,FLEX_DIRECTION_COLUMN_REVERSE:QA.ColumnReverse,FLEX_DIRECTION_ROW:QA.Row,FLEX_DIRECTION_ROW_REVERSE:QA.RowReverse,GUTTER_COLUMN:Fp.Column,GUTTER_ROW:Fp.Row,GUTTER_ALL:Fp.All,JUSTIFY_FLEX_START:ml.FlexStart,JUSTIFY_CENTER:ml.Center,JUSTIFY_FLEX_END:ml.FlexEnd,JUSTIFY_SPACE_BETWEEN:ml.SpaceBetween,JUSTIFY_SPACE_AROUND:ml.SpaceAround,JUSTIFY_SPACE_EVENLY:ml.SpaceEvenly,LOG_LEVEL_ERROR:El.Error,LOG_LEVEL_WARN:El.Warn,LOG_LEVEL_INFO:El.Info,LOG_LEVEL_DEBUG:El.Debug,LOG_LEVEL_VERBOSE:El.Verbose,LOG_LEVEL_FATAL:El.Fatal,MEASURE_MODE_UNDEFINED:kp.Undefined,MEASURE_MODE_EXACTLY:kp.Exactly,MEASURE_MODE_AT_MOST:kp.AtMost,NODE_TYPE_DEFAULT:VC.Default,NODE_TYPE_TEXT:VC.Text,OVERFLOW_VISIBLE:Gp.Visible,OVERFLOW_HIDDEN:Gp.Hidden,OVERFLOW_SCROLL:Gp.Scroll,POSITION_TYPE_STATIC:Op.Static,POSITION_TYPE_RELATIVE:Op.Relative,POSITION_TYPE_ABSOLUTE:Op.Absolute,PRINT_OPTIONS_LAYOUT:Hp.Layout,PRINT_OPTIONS_STYLE:Hp.Style,PRINT_OPTIONS_CHILDREN:Hp.Children,UNIT_UNDEFINED:RA.Undefined,UNIT_POINT:RA.Point,UNIT_PERCENT:RA.Percent,UNIT_AUTO:RA.Auto,WRAP_NO_WRAP:zp.NoWrap,WRAP_WRAP:zp.Wrap,WRAP_WRAP_REVERSE:zp.WrapReverse};var jO=JO;Ut.default=jO;Object.defineProperty(GI,"__esModule",{value:!0});GI.default=qO;var qo=KO(Ut);function iT(n){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(iT=function(i){return i?t:e})(n)}function KO(n,e){if(!e&&n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=iT(e);if(t&&t.has(n))return t.get(n);var i={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if(s!=="default"&&Object.prototype.hasOwnProperty.call(n,s)){var o=r?Object.getOwnPropertyDescriptor(n,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=n[s]}return i.default=n,t&&t.set(n,i),i}function qO(n){function e(r,s,o){const a=r[s];r[s]=function(){for(var c=arguments.length,A=new Array(c),h=0;h1?a-1:0),A=1;As?n.Node.createWithConfig(s):n.Node.createDefault()),e(n.Node.prototype,"free",function(){n.Node.destroy(this)}),e(n.Node.prototype,"freeRecursive",function(){for(let r=0,s=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:qo.Direction.LTR;return r.call(this,s,o,a)}),{Config:n.Config,Node:n.Node,...qo.default}}var rT={exports:{}};(function(n,e){var t=(()=>{var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var s;s||(s=typeof r<"u"?r:{});var o,a;s.ready=new Promise(function(L,N){o=L,a=N});var c=Object.assign({},s),A="";typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),i&&(A=i),A.indexOf("blob:")!==0?A=A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):A="";var h=s.print||console.log.bind(console),f=s.printErr||console.warn.bind(console);Object.assign(s,c),c=null;var d;s.wasmBinary&&(d=s.wasmBinary),s.noExitRuntime,typeof WebAssembly!="object"&&ue("no native wasm support detected");var m,E=!1;function x(L,N,Z){Z=N+Z;for(var ae="";!(N>=Z);){var ge=L[N++];if(!ge)break;if(ge&128){var we=L[N++]&63;if((ge&224)==192)ae+=String.fromCharCode((ge&31)<<6|we);else{var Pe=L[N++]&63;ge=(ge&240)==224?(ge&15)<<12|we<<6|Pe:(ge&7)<<18|we<<12|Pe<<6|L[N++]&63,65536>ge?ae+=String.fromCharCode(ge):(ge-=65536,ae+=String.fromCharCode(55296|ge>>10,56320|ge&1023))}}else ae+=String.fromCharCode(ge)}return ae}var y,p,I,C,B,R,M,T,P;function K(){var L=m.buffer;y=L,s.HEAP8=p=new Int8Array(L),s.HEAP16=C=new Int16Array(L),s.HEAP32=R=new Int32Array(L),s.HEAPU8=I=new Uint8Array(L),s.HEAPU16=B=new Uint16Array(L),s.HEAPU32=M=new Uint32Array(L),s.HEAPF32=T=new Float32Array(L),s.HEAPF64=P=new Float64Array(L)}var w,b=[],q=[],de=[];function J(){var L=s.preRun.shift();b.unshift(L)}var re=0,ne=null;function ue(L){throw s.onAbort&&s.onAbort(L),L="Aborted("+L+")",f(L),E=!0,L=new WebAssembly.RuntimeError(L+". Build with -sASSERTIONS for more info."),a(L),L}function U(L){return L.startsWith("data:application/octet-stream;base64,")}var ee;if(ee="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVp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",!U(ee)){var te=ee;ee=s.locateFile?s.locateFile(te,A):A+te}function Ae(){var L=ee;try{if(L==ee&&d)return new Uint8Array(d);if(U(L))try{var N=Yn(L.slice(37)),Z=new Uint8Array(N.length);for(L=0;L=N?"_"+L:L}function O(L,N){return L=V(L),function(){return N.apply(this,arguments)}}var k=[{},{value:void 0},{value:null},{value:!0},{value:!1}],F=[];function me(L){var N=Error,Z=O(L,function(ae){this.name=L,this.message=ae,ae=Error(ae).stack,ae!==void 0&&(this.stack=this.toString()+` +`+ae.replace(/^Error(:[^\n]*)?\n/,""))});return Z.prototype=Object.create(N.prototype),Z.prototype.constructor=Z,Z.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Z}var Ie=void 0;function oe(L){throw new Ie(L)}var Be=L=>(L||oe("Cannot use deleted val. handle = "+L),k[L].value),H=L=>{switch(L){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var N=F.length?F.pop():k.length;return k[N]={fa:1,value:L},N}},Ee=void 0,ie=void 0;function le(L){for(var N="";I[L];)N+=ie[I[L++]];return N}var fe=[];function Te(){for(;fe.length;){var L=fe.pop();L.L.Z=!1,L.delete()}}var $=void 0,S={};function D(L,N){for(N===void 0&&oe("ptr should not be undefined");L.P;)N=L.aa(N),L=L.P;return N}var se={};function be(L){L=et(L);var N=le(L);return It(L),N}function De(L,N){var Z=se[L];return Z===void 0&&oe(N+" has unknown type "+be(L)),Z}function Qe(){}var Xe=!1;function ze(L){--L.count.value,L.count.value===0&&(L.S?L.T.V(L.S):L.O.M.V(L.N))}function Ke(L,N,Z){return N===Z?L:Z.P===void 0?null:(L=Ke(L,N,Z.P),L===null?null:Z.ma(L))}var at={};function vt(L,N){return N=D(L,N),S[N]}var Ne=void 0;function Nt(L){throw new Ne(L)}function wt(L,N){return N.O&&N.N||Nt("makeClassHandle requires ptr and ptrType"),!!N.T!=!!N.S&&Nt("Both smartPtrType and smartPtr must be specified"),N.count={value:1},dt(Object.create(L,{L:{value:N}}))}function dt(L){return typeof FinalizationRegistry>"u"?(dt=N=>N,L):(Xe=new FinalizationRegistry(N=>{ze(N.L)}),dt=N=>{var Z=N.L;return Z.S&&Xe.register(N,{L:Z},N),N},Qe=N=>{Xe.unregister(N)},dt(L))}var ot={};function tt(L){for(;L.length;){var N=L.pop();L.pop()(N)}}function Bt(L){return this.fromWireType(R[L>>2])}var kt={},Zt={};function Mt(L,N,Z){function ae(Le){Le=Z(Le),Le.length!==L.length&&Nt("Mismatched type converter count");for(var Ve=0;Ve{se.hasOwnProperty(Le)?ge[Ve]=se[Le]:(we.push(Le),kt.hasOwnProperty(Le)||(kt[Le]=[]),kt[Le].push(()=>{ge[Ve]=se[Le],++Pe,Pe===we.length&&ae(ge)}))}),we.length===0&&ae(ge)}function Yt(L){switch(L){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+L)}}function j(L,N,Z={}){if(!("argPackAdvance"in N))throw new TypeError("registerType registeredInstance requires argPackAdvance");var ae=N.name;if(L||oe('type "'+ae+'" must have a positive integer typeid pointer'),se.hasOwnProperty(L)){if(Z.ta)return;oe("Cannot register type '"+ae+"' twice")}se[L]=N,delete Zt[L],kt.hasOwnProperty(L)&&(N=kt[L],delete kt[L],N.forEach(ge=>ge()))}function Ge(L){oe(L.L.O.M.name+" instance already deleted")}function Ue(){}function it(L,N,Z){if(L[N].R===void 0){var ae=L[N];L[N]=function(){return L[N].R.hasOwnProperty(arguments.length)||oe("Function '"+Z+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+L[N].R+")!"),L[N].R[arguments.length].apply(this,arguments)},L[N].R=[],L[N].R[ae.Y]=ae}}function At(L,N){s.hasOwnProperty(L)?(oe("Cannot register public name '"+L+"' twice"),it(s,L,L),s.hasOwnProperty(void 0)&&oe("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),s[L].R[void 0]=N):s[L]=N}function Xt(L,N,Z,ae,ge,we,Pe,Le){this.name=L,this.constructor=N,this.W=Z,this.V=ae,this.P=ge,this.oa=we,this.aa=Pe,this.ma=Le,this.ia=[]}function Jt(L,N,Z){for(;N!==Z;)N.aa||oe("Expected null or instance of "+Z.name+", got an instance of "+N.name),L=N.aa(L),N=N.P;return L}function bn(L,N){return N===null?(this.da&&oe("null is not a valid "+this.name),0):(N.L||oe('Cannot pass "'+Va(N)+'" as a '+this.name),N.L.N||oe("Cannot pass deleted object as a pointer of type "+this.name),Jt(N.L.N,N.L.O.M,this.M))}function fi(L,N){if(N===null){if(this.da&&oe("null is not a valid "+this.name),this.ca){var Z=this.ea();return L!==null&&L.push(this.V,Z),Z}return 0}if(N.L||oe('Cannot pass "'+Va(N)+'" as a '+this.name),N.L.N||oe("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&N.L.O.ba&&oe("Cannot convert argument of type "+(N.L.T?N.L.T.name:N.L.O.name)+" to parameter type "+this.name),Z=Jt(N.L.N,N.L.O.M,this.M),this.ca)switch(N.L.S===void 0&&oe("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:N.L.T===this?Z=N.L.S:oe("Cannot convert argument of type "+(N.L.T?N.L.T.name:N.L.O.name)+" to parameter type "+this.name);break;case 1:Z=N.L.S;break;case 2:if(N.L.T===this)Z=N.L.S;else{var ae=N.clone();Z=this.wa(Z,H(function(){ae.delete()})),L!==null&&L.push(this.V,Z)}break;default:oe("Unsupporting sharing policy")}return Z}function rn(L,N){return N===null?(this.da&&oe("null is not a valid "+this.name),0):(N.L||oe('Cannot pass "'+Va(N)+'" as a '+this.name),N.L.N||oe("Cannot pass deleted object as a pointer of type "+this.name),N.L.O.ba&&oe("Cannot convert argument of type "+N.L.O.name+" to parameter type "+this.name),Jt(N.L.N,N.L.O.M,this.M))}function hn(L,N,Z,ae){this.name=L,this.M=N,this.da=Z,this.ba=ae,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,N.P!==void 0?this.toWireType=fi:(this.toWireType=ae?bn:rn,this.U=null)}function Ki(L,N){s.hasOwnProperty(L)||Nt("Replacing nonexistant public symbol"),s[L]=N,s[L].Y=void 0}function za(L,N){var Z=[];return function(){if(Z.length=0,Object.assign(Z,arguments),L.includes("j")){var ae=s["dynCall_"+L];ae=Z&&Z.length?ae.apply(null,[N].concat(Z)):ae.call(null,N)}else ae=w.get(N).apply(null,Z);return ae}}function di(L,N){L=le(L);var Z=L.includes("j")?za(L,N):w.get(N);return typeof Z!="function"&&oe("unknown function pointer with signature "+L+": "+N),Z}var ks=void 0;function ar(L,N){function Z(we){ge[we]||se[we]||(Zt[we]?Zt[we].forEach(Z):(ae.push(we),ge[we]=!0))}var ae=[],ge={};throw N.forEach(Z),new ks(L+": "+ae.map(be).join([", "]))}function fs(L,N,Z,ae,ge){var we=N.length;2>we&&oe("argTypes array size mismatch! Must at least get return value and 'this' types!");var Pe=N[1]!==null&&Z!==null,Le=!1;for(Z=1;Z>2]);return Z}function Do(L){4>2])};case 3:return function(Z){return this.fromWireType(P[Z>>3])};default:throw new TypeError("Unknown float type: "+L)}}function Fu(L,N,Z){switch(N){case 0:return Z?function(ae){return p[ae]}:function(ae){return I[ae]};case 1:return Z?function(ae){return C[ae>>1]}:function(ae){return B[ae>>1]};case 2:return Z?function(ae){return R[ae>>2]}:function(ae){return M[ae>>2]};default:throw new TypeError("Unknown integer type: "+L)}}function z(L,N){for(var Z="",ae=0;!(ae>=N/2);++ae){var ge=C[L+2*ae>>1];if(ge==0)break;Z+=String.fromCharCode(ge)}return Z}function pe(L,N,Z){if(Z===void 0&&(Z=2147483647),2>Z)return 0;Z-=2;var ae=N;Z=Z<2*L.length?Z/2:L.length;for(var ge=0;ge>1]=L.charCodeAt(ge),N+=2;return C[N>>1]=0,N-ae}function xe(L){return 2*L.length}function Se(L,N){for(var Z=0,ae="";!(Z>=N/4);){var ge=R[L+4*Z>>2];if(ge==0)break;++Z,65536<=ge?(ge-=65536,ae+=String.fromCharCode(55296|ge>>10,56320|ge&1023)):ae+=String.fromCharCode(ge)}return ae}function ve(L,N,Z){if(Z===void 0&&(Z=2147483647),4>Z)return 0;var ae=N;Z=ae+Z-4;for(var ge=0;ge=we){var Pe=L.charCodeAt(++ge);we=65536+((we&1023)<<10)|Pe&1023}if(R[N>>2]=we,N+=4,N+4>Z)break}return R[N>>2]=0,N-ae}function Ze(L){for(var N=0,Z=0;Z=ae&&++Z,N+=4}return N}var lt={};function gt(L){var N=lt[L];return N===void 0?le(L):N}var pt=[];function Qt(L){var N=pt.length;return pt.push(L),N}function _t(L,N){for(var Z=Array(L),ae=0;ae>2],"parameter "+ae);return Z}var St=[],En=[null,[],[]];Ie=s.BindingError=me("BindingError"),s.count_emval_handles=function(){for(var L=0,N=5;Nsn;++sn)Wn[sn]=String.fromCharCode(sn);ie=Wn,s.getInheritedInstanceCount=function(){return Object.keys(S).length},s.getLiveInheritedInstances=function(){var L=[],N;for(N in S)S.hasOwnProperty(N)&&L.push(S[N]);return L},s.flushPendingDeletes=Te,s.setDelayFunction=function(L){$=L,fe.length&&$&&$(Te)},Ne=s.InternalError=me("InternalError"),Ue.prototype.isAliasOf=function(L){if(!(this instanceof Ue&&L instanceof Ue))return!1;var N=this.L.O.M,Z=this.L.N,ae=L.L.O.M;for(L=L.L.N;N.P;)Z=N.aa(Z),N=N.P;for(;ae.P;)L=ae.aa(L),ae=ae.P;return N===ae&&Z===L},Ue.prototype.clone=function(){if(this.L.N||Ge(this),this.L.$)return this.L.count.value+=1,this;var L=dt,N=Object,Z=N.create,ae=Object.getPrototypeOf(this),ge=this.L;return L=L(Z.call(N,ae,{L:{value:{count:ge.count,Z:ge.Z,$:ge.$,N:ge.N,O:ge.O,S:ge.S,T:ge.T}}})),L.L.count.value+=1,L.L.Z=!1,L},Ue.prototype.delete=function(){this.L.N||Ge(this),this.L.Z&&!this.L.$&&oe("Object already scheduled for deletion"),Qe(this),ze(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},Ue.prototype.isDeleted=function(){return!this.L.N},Ue.prototype.deleteLater=function(){return this.L.N||Ge(this),this.L.Z&&!this.L.$&&oe("Object already scheduled for deletion"),fe.push(this),fe.length===1&&$&&$(Te),this.L.Z=!0,this},hn.prototype.pa=function(L){return this.ja&&(L=this.ja(L)),L},hn.prototype.ga=function(L){this.V&&this.V(L)},hn.prototype.argPackAdvance=8,hn.prototype.readValueFromPointer=Bt,hn.prototype.deleteObject=function(L){L!==null&&L.delete()},hn.prototype.fromWireType=function(L){function N(){return this.ca?wt(this.M.W,{O:this.va,N:Z,T:this,S:L}):wt(this.M.W,{O:this,N:L})}var Z=this.pa(L);if(!Z)return this.ga(L),null;var ae=vt(this.M,Z);if(ae!==void 0)return ae.L.count.value===0?(ae.L.N=Z,ae.L.S=L,ae.clone()):(ae=ae.clone(),this.ga(L),ae);if(ae=this.M.oa(Z),ae=at[ae],!ae)return N.call(this);ae=this.ba?ae.ka:ae.pointerType;var ge=Ke(Z,this.M,ae.M);return ge===null?N.call(this):this.ca?wt(ae.M.W,{O:ae,N:ge,T:this,S:L}):wt(ae.M.W,{O:ae,N:ge})},ks=s.UnboundTypeError=me("UnboundTypeError");var Yn=typeof atob=="function"?atob:function(L){var N="",Z=0;L=L.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var ae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++)),ge="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++)),we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++)),Pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++));ae=ae<<2|ge>>4,ge=(ge&15)<<4|we>>2;var Le=(we&3)<<6|Pe;N+=String.fromCharCode(ae),we!==64&&(N+=String.fromCharCode(ge)),Pe!==64&&(N+=String.fromCharCode(Le))}while(ZPe.sa).concat(ge.map(Pe=>Pe.ya));Mt([L],we,Pe=>{var Le={};return ge.forEach((Ve,Oe)=>{var $e=Pe[Oe],ht=Ve.qa,Ht=Ve.ra,pn=Pe[Oe+ge.length],Wt=Ve.xa,Li=Ve.za;Le[Ve.na]={read:cr=>$e.fromWireType(ht(Ht,cr)),write:(cr,Gs)=>{var ur=[];Wt(Li,cr,pn.toWireType(ur,Gs)),tt(ur)}}}),[{name:N.name,fromWireType:function(Ve){var Oe={},$e;for($e in Le)Oe[$e]=Le[$e].read(Ve);return ae(Ve),Oe},toWireType:function(Ve,Oe){for(var $e in Le)if(!($e in Oe))throw new TypeError('Missing field: "'+$e+'"');var ht=Z();for($e in Le)Le[$e].write(ht,Oe[$e]);return Ve!==null&&Ve.push(ae,ht),ht},argPackAdvance:8,readValueFromPointer:Bt,U:ae}]})},v:function(){},B:function(L,N,Z,ae,ge){var we=Yt(Z);N=le(N),j(L,{name:N,fromWireType:function(Pe){return!!Pe},toWireType:function(Pe,Le){return Le?ae:ge},argPackAdvance:8,readValueFromPointer:function(Pe){if(Z===1)var Le=p;else if(Z===2)Le=C;else if(Z===4)Le=R;else throw new TypeError("Unknown boolean type size: "+N);return this.fromWireType(Le[Pe>>we])},U:null})},f:function(L,N,Z,ae,ge,we,Pe,Le,Ve,Oe,$e,ht,Ht){$e=le($e),we=di(ge,we),Le&&(Le=di(Pe,Le)),Oe&&(Oe=di(Ve,Oe)),Ht=di(ht,Ht);var pn=V($e);At(pn,function(){ar("Cannot construct "+$e+" due to unbound types",[ae])}),Mt([L,N,Z],ae?[ae]:[],function(Wt){if(Wt=Wt[0],ae)var Li=Wt.M,cr=Li.W;else cr=Ue.prototype;Wt=O(pn,function(){if(Object.getPrototypeOf(this)!==Gs)throw new Ie("Use 'new' to construct "+$e);if(ur.X===void 0)throw new Ie($e+" has no accessible constructor");var sf=ur.X[arguments.length];if(sf===void 0)throw new Ie("Tried to invoke ctor of "+$e+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(ur.X).toString()+") parameters instead!");return sf.apply(this,arguments)});var Gs=Object.create(cr,{constructor:{value:Wt}});Wt.prototype=Gs;var ur=new Xt($e,Wt,Gs,Ht,Li,we,Le,Oe);Li=new hn($e,ur,!0,!1),cr=new hn($e+"*",ur,!1,!1);var bo=new hn($e+" const*",ur,!1,!0);return at[L]={pointerType:cr,ka:bo},Ki(pn,Wt),[Li,cr,bo]})},c:function(L,N,Z,ae,ge,we,Pe){var Le=To(Z,ae);N=le(N),we=di(ge,we),Mt([],[L],function(Ve){function Oe(){ar("Cannot call "+$e+" due to unbound types",Le)}Ve=Ve[0];var $e=Ve.name+"."+N;N.startsWith("@@")&&(N=Symbol[N.substring(2)]);var ht=Ve.M.constructor;return ht[N]===void 0?(Oe.Y=Z-1,ht[N]=Oe):(it(ht,N,$e),ht[N].R[Z-1]=Oe),Mt([],Le,function(Ht){return Ht=fs($e,[Ht[0],null].concat(Ht.slice(1)),null,we,Pe),ht[N].R===void 0?(Ht.Y=Z-1,ht[N]=Ht):ht[N].R[Z-1]=Ht,[]}),[]})},o:function(L,N,Z,ae,ge,we){0{ar("Cannot construct "+Le.name+" due to unbound types",Pe)},Mt([],Pe,function(Oe){return Oe.splice(1,0,null),Le.M.X[N-1]=fs(Ve,Oe,null,ge,we),[]}),[]})},a:function(L,N,Z,ae,ge,we,Pe,Le){var Ve=To(Z,ae);N=le(N),we=di(ge,we),Mt([],[L],function(Oe){function $e(){ar("Cannot call "+ht+" due to unbound types",Ve)}Oe=Oe[0];var ht=Oe.name+"."+N;N.startsWith("@@")&&(N=Symbol[N.substring(2)]),Le&&Oe.M.ia.push(N);var Ht=Oe.M.W,pn=Ht[N];return pn===void 0||pn.R===void 0&&pn.className!==Oe.name&&pn.Y===Z-2?($e.Y=Z-2,$e.className=Oe.name,Ht[N]=$e):(it(Ht,N,ht),Ht[N].R[Z-2]=$e),Mt([],Ve,function(Wt){return Wt=fs(ht,Wt,Oe,we,Pe),Ht[N].R===void 0?(Wt.Y=Z-2,Ht[N]=Wt):Ht[N].R[Z-2]=Wt,[]}),[]})},A:function(L,N){N=le(N),j(L,{name:N,fromWireType:function(Z){var ae=Be(Z);return Do(Z),ae},toWireType:function(Z,ae){return H(ae)},argPackAdvance:8,readValueFromPointer:Bt,U:null})},m:function(L,N,Z){Z=Yt(Z),N=le(N),j(L,{name:N,fromWireType:function(ae){return ae},toWireType:function(ae,ge){return ge},argPackAdvance:8,readValueFromPointer:Uu(N,Z),U:null})},d:function(L,N,Z,ae,ge){N=le(N),ge===-1&&(ge=4294967295),ge=Yt(Z);var we=Le=>Le;if(ae===0){var Pe=32-8*Z;we=Le=>Le<>>Pe}Z=N.includes("unsigned")?function(Le,Ve){return Ve>>>0}:function(Le,Ve){return Ve},j(L,{name:N,fromWireType:we,toWireType:Z,argPackAdvance:8,readValueFromPointer:Fu(N,ge,ae!==0),U:null})},b:function(L,N,Z){function ae(we){we>>=2;var Pe=M;return new ge(y,Pe[we+1],Pe[we])}var ge=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][N];Z=le(Z),j(L,{name:Z,fromWireType:ae,argPackAdvance:8,readValueFromPointer:ae},{ta:!0})},n:function(L,N){N=le(N);var Z=N==="std::string";j(L,{name:N,fromWireType:function(ae){var ge=M[ae>>2],we=ae+4;if(Z)for(var Pe=we,Le=0;Le<=ge;++Le){var Ve=we+Le;if(Le==ge||I[Ve]==0){if(Pe=Pe?x(I,Pe,Ve-Pe):"",Oe===void 0)var Oe=Pe;else Oe+="\0",Oe+=Pe;Pe=Ve+1}}else{for(Oe=Array(ge),Le=0;Le=Ve?Le++:2047>=Ve?Le+=2:55296<=Ve&&57343>=Ve?(Le+=4,++we):Le+=3}we=Le}else we=ge.length;if(Le=Ci(4+we+1),Ve=Le+4,M[Le>>2]=we,Z&&Pe){if(Pe=Ve,Ve=we+1,we=I,0=$e){var ht=ge.charCodeAt(++Oe);$e=65536+(($e&1023)<<10)|ht&1023}if(127>=$e){if(Pe>=Ve)break;we[Pe++]=$e}else{if(2047>=$e){if(Pe+1>=Ve)break;we[Pe++]=192|$e>>6}else{if(65535>=$e){if(Pe+2>=Ve)break;we[Pe++]=224|$e>>12}else{if(Pe+3>=Ve)break;we[Pe++]=240|$e>>18,we[Pe++]=128|$e>>12&63}we[Pe++]=128|$e>>6&63}we[Pe++]=128|$e&63}}we[Pe]=0}}else if(Pe)for(Pe=0;PeB,Le=1;else N===4&&(ae=Se,ge=ve,we=Ze,Pe=()=>M,Le=2);j(L,{name:Z,fromWireType:function(Ve){for(var Oe=M[Ve>>2],$e=Pe(),ht,Ht=Ve+4,pn=0;pn<=Oe;++pn){var Wt=Ve+4+pn*N;(pn==Oe||$e[Wt>>Le]==0)&&(Ht=ae(Ht,Wt-Ht),ht===void 0?ht=Ht:(ht+="\0",ht+=Ht),Ht=Wt+N)}return It(Ve),ht},toWireType:function(Ve,Oe){typeof Oe!="string"&&oe("Cannot pass non-string to C++ string type "+Z);var $e=we(Oe),ht=Ci(4+$e+N);return M[ht>>2]=$e>>Le,ge(Oe,ht+4,$e+N),Ve!==null&&Ve.push(It,ht),ht},argPackAdvance:8,readValueFromPointer:Bt,U:function(Ve){It(Ve)}})},k:function(L,N,Z,ae,ge,we){ot[L]={name:le(N),ea:di(Z,ae),V:di(ge,we),ha:[]}},h:function(L,N,Z,ae,ge,we,Pe,Le,Ve,Oe){ot[L].ha.push({na:le(N),sa:Z,qa:di(ae,ge),ra:we,ya:Pe,xa:di(Le,Ve),za:Oe})},C:function(L,N){N=le(N),j(L,{ua:!0,name:N,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(L,N,Z,ae,ge){L=pt[L],N=Be(N),Z=gt(Z);var we=[];return M[ae>>2]=H(we),L(N,Z,we,ge)},t:function(L,N,Z,ae){L=pt[L],N=Be(N),Z=gt(Z),L(N,Z,null,ae)},g:Do,l:function(L,N){var Z=_t(L,N),ae=Z[0];N=ae.name+"_$"+Z.slice(1).map(function(Pe){return Pe.name}).join("_")+"$";var ge=St[N];if(ge!==void 0)return ge;var we=Array(L-1);return ge=Qt((Pe,Le,Ve,Oe)=>{for(var $e=0,ht=0;ht>>=0,2147483648=Z;Z*=2){var ae=N*(1+.2/Z);ae=Math.min(ae,L+100663296);var ge=Math;ae=Math.max(L,ae),ge=ge.min.call(ge,2147483648,ae+(65536-ae%65536)%65536);e:{try{m.grow(ge-y.byteLength+65535>>>16),K();var we=1;break e}catch{}we=void 0}if(we)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(L,N,Z,ae){for(var ge=0,we=0;we>2],Le=M[N+4>>2];N+=8;for(var Ve=0;Ve>2]=ge,0}};(function(){function L(ge){s.asm=ge.exports,m=s.asm.D,K(),w=s.asm.I,q.unshift(s.asm.E),re--,s.monitorRunDependencies&&s.monitorRunDependencies(re),re==0&&ne&&(ge=ne,ne=null,ge())}function N(ge){L(ge.instance)}function Z(ge){return Ce().then(function(we){return WebAssembly.instantiate(we,ae)}).then(function(we){return we}).then(ge,function(we){f("failed to asynchronously prepare wasm: "+we),ue(we)})}var ae={a:yt};if(re++,s.monitorRunDependencies&&s.monitorRunDependencies(re),s.instantiateWasm)try{return s.instantiateWasm(ae,L)}catch(ge){f("Module.instantiateWasm callback failed with error: "+ge),a(ge)}return function(){return d||typeof WebAssembly.instantiateStreaming!="function"||U(ee)||typeof fetch!="function"?Z(N):fetch(ee,{credentials:"same-origin"}).then(function(ge){return WebAssembly.instantiateStreaming(ge,ae).then(N,function(we){return f("wasm streaming compile failed: "+we),f("falling back to ArrayBuffer instantiation"),Z(N)})})}().catch(a),{}})(),s.___wasm_call_ctors=function(){return(s.___wasm_call_ctors=s.asm.E).apply(null,arguments)};var et=s.___getTypeName=function(){return(et=s.___getTypeName=s.asm.F).apply(null,arguments)};s.__embind_initialize_bindings=function(){return(s.__embind_initialize_bindings=s.asm.G).apply(null,arguments)};var Ci=s._malloc=function(){return(Ci=s._malloc=s.asm.H).apply(null,arguments)},It=s._free=function(){return(It=s._free=s.asm.J).apply(null,arguments)};s.dynCall_jiji=function(){return(s.dynCall_jiji=s.asm.K).apply(null,arguments)};var fn;ne=function L(){fn||lr(),fn||(ne=L)};function lr(){function L(){if(!fn&&(fn=!0,s.calledRun=!0,!E)){if(ke(q),o(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;){var N=s.postRun.shift();de.unshift(N)}ke(de)}}if(!(0Kt(n),e);Y.useEffect(()=>t,[t])}let OE;function eH(){if(OE==null){const n=OE=zt(void 0);ki.loadYoga().then(e=>n.value=e)}return OE}function aT(n,e,...t){const i=Y.useMemo(()=>zt(void 0),[]);return Y.useEffect(()=>{if(!(e instanceof Vn)){let r=!1;return n(e,...t).then(s=>r?void 0:i.value=s),()=>r=!0}return Kt(()=>{let r=!1;return n(e.value,...t).then(s=>r?void 0:i.value=s).catch(console.error),()=>r=!0})},[e,...t]),i}function lT(n,e,t,i,r){const[s,o]=n.value,[a,c,A,h]=e.value,[f,d,m,E]=t.value,x=a+f,y=c+d,p=A+m,I=h+E,C=s-I-y,B=o-x-p,R=C/B;let M=1;return R>r?M=B*i:M=C*i/r,[(I-y)*.5*i,(p-x)*.5*i,M]}const MS=new Je;function WC(n,e,t,i=0){const r=e*n.itemSize+i;n.addUpdateRange(r,3),Array.isArray(t)?n.set(t,r):(MS.set(t),MS.toArray(n.array,r)),n.needsUpdate=!0}function xg(n){return n instanceof Vn?n.value:n}const cT=Y.createContext(void 0);function Na(){const n=Y.useContext(cT);if(n==null)throw new Error("Can only be used inside a component.");return n}const tH=cT.Provider;function ro(n){const e=new Map;return(t,i)=>{const r=t.length;for(const s in i){const o=i[s];if(o===void 0)return;let a=e.get(o);a==null&&e.set(o,a=zn(()=>n()?xg(o):void 0));for(let c=0;c"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),uT=zt((fu==null?void 0:fu.matches)??!1);fu==null||fu.addEventListener("change",n=>uT.value=n.matches);const AT=zt("system"),hT=zn(()=>{switch(AT.value){case"system":return uT.value;case"dark":return!0;case"light":return!1}});function nH(n){AT.value=n}const iH=ro(()=>hT.value);function Io(n,e){Lu(e,t=>{const i=t.dark;i!=null&&iH(n,i)})}function rH({dark:n,light:e}){const t={};for(const i in n)t[i]=zn(()=>hT.value?n[i]:e[i]);return t}const sH=Math.cos(45/180*Math.PI),HE=[new An,new An,new An,new An],QS=new G;class oH{constructor(e,t,i,r,s){We(this,"planes");We(this,"facePlane");We(this,"originalCenter");this.originalCenter=new G(t,i,0).applyMatrix4(e),this.facePlane=new An(new G(0,0,1),0).applyMatrix4(e);const o=r/2,a=s/2,c=i+a,A=t+o,h=-i+a,f=-t+o;this.planes=[new An(new G(0,-1,0),h).applyMatrix4(e),new An(new G(-1,0,0),f).applyMatrix4(e),new An(new G(0,1,0),c).applyMatrix4(e),new An(new G(1,0,0),A).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const s=this.facePlane,o=e[r],a=s.normal.dot(o.normal);if(Math.abs(a)>.99)return this;const c=HE[r];if(Math.abs(a)<.01){c.copy(o);continue}c.normal.crossVectors(s.normal,o.normal).normalize().cross(s.normal).negate();const A=1-a*a,h=(s.constant-o.constant*a)/A,f=(o.constant-s.constant*a)/A;QS.copy(s.normal).multiplyScalar(h).addScaledVector(o.normal,f),c.constant=-QS.dot(c.normal)}let t=0;const i=this.planes[0].normal;for(;HE[t].normal.dot(i)>sH;)break;for(let r=0;r<4;r++){const s=this.planes[r],o=(r+t)%4;HE[o].distanceToPoint(this.originalCenter)zn(()=>{const r=e.value,s=n==null?void 0:n.value;if(s==null||r==null)return!1;const[o,a]=t.value;for(let h=0;h<4;h++){const[f,d]=cH[h];RS[h].set(f*i.pixelSize*o,d*i.pixelSize*a,0).applyMatrix4(r)}const{planes:c}=s;let A;for(let h=0;h<4;h++){const f=c[h];A=!0;for(let d=0;d<4;d++){const m=RS[d];f.distanceToPoint(m)>=0&&(A=!1)}if(A)return!0}return!1}),[e,n,i,t])}function uH(n,e,t,i,r,s){return Y.useMemo(()=>zn(()=>{const o=n.value;if(o==null||i.value===ki.Overflow.Visible)return s==null?void 0:s.value;const[a,c]=e.value,[A,h,f,d]=t.value,m=new oH(o,(h-d)*r.pixelSize/2,(A-f)*r.pixelSize/2,(a-d-h)*r.pixelSize,(c-A-f)*r.pixelSize);return(s==null?void 0:s.value)!=null&&m.min(s.value),m}),[n,e,t,r,i,s])}const YC=new An(new G(-1,0,0),Number.MAX_SAFE_INTEGER),Bg=new Float32Array(16);for(let n=0;n<4;n++)YC.normal.toArray(Bg,n*4),Bg[n*4+3]=YC.constant;function $h(n,e){const t=Y.useMemo(()=>[new An,new An,new An,new An],[]);return ba(()=>{var s;const i=e.current;if(i==null)return;const r=(s=n==null?void 0:n.value)==null?void 0:s.planes;if(r==null){for(let o=0;o<4;o++)t[o].copy(YC);return}for(let o=0;o<4;o++)t[o].copy(r[o]).applyMatrix4(i.matrixWorld)}),t}class AH{constructor(e,t){We(this,"glyphInfoMap",new Map);We(this,"kerningMap",new Map);We(this,"questionmarkGlyphInfo");We(this,"pageWidth");We(this,"pageHeight");We(this,"distanceRange");this.page=t;const{scaleW:i,scaleH:r,lineHeight:s}=e.common;this.pageWidth=i,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const c of e.chars)c.uvX=c.x/i,c.uvY=c.y/r,c.uvWidth=c.width/i,c.uvHeight=c.height/r,c.width/=o,c.height/=o,c.xadvance/=o,c.xoffset/=o,c.yoffset-=s-o,c.yoffset/=o,this.glyphInfoMap.set(c.char,c);for(const{first:c,second:A,amount:h}of e.kernings)this.kerningMap.set(`${c}/${A}`,h/o);const a=this.glyphInfoMap.get("?");if(a==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=a}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` +`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,t){return this.kerningMap.get(`${e}/${t}`)??0}}function hH(n,e,t){e[t+0]=n.uvX,e[t+1]=n.uvY+n.uvHeight,e[t+2]=n.uvWidth,e[t+3]=-n.uvHeight}const TS=new ft,fH=new ft;class dH{constructor(e,t,i,r,s){We(this,"index");We(this,"hidden",!0);We(this,"glyphInfo");We(this,"x",0);We(this,"y",0);We(this,"fontSize",0);We(this,"pixelSize",0);this.group=e,this.baseMatrix=t,this.color=i,this.opacity=r,this.clippingRect=s}getX(e){return this.glyphInfo==null?this.x:this.x+e*this.glyphInfo.width*this.fontSize}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const t=this.index*16,{instanceClipping:i}=this.group;this.clippingRect==null?i.set(Bg,t):this.clippingRect.toArray(i.array,t),i.addUpdateRange(t,16),i.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&WC(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:t}=this.group,i=this.index*4+3;t.array[i]=e,t.addUpdateRange(i,1),t.needsUpdate=!0}updateGlyphAndTransformation(e,t,i,r,s){this.glyphInfo===e&&this.x===t&&this.y===i&&this.fontSize===r&&this.pixelSize===s||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=t,this.y=i,this.fontSize=r,this.pixelSize=s,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:t}=this.group;hH(this.glyphInfo,t.array,e),t.addUpdateRange(e,4),t.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:t}=this.group;t.addUpdateRange(e,16),TS.makeTranslation(this.x*this.pixelSize,this.y*this.pixelSize,0).multiply(fH.makeScale(this.fontSize*this.glyphInfo.width*this.pixelSize,this.fontSize*this.glyphInfo.height*this.pixelSize,1)).premultiply(this.baseMatrix),TS.toArray(t.array,e),t.needsUpdate=!0}}function DS(n,e,t,i){return((i==null?0:n.getKerning(i,t.id))+t.xoffset)*e}function zE(n,e,t){return(((t==null?void 0:t.yoffset)??0)+(e-1)/2)*n}function bh(n,e,t){return e.xadvance*n+t}function sp(n,e){return n*e}function XC(n,{lineHeight:e,fontSize:t}){return Math.max(n,1)*t*e}const pH=[];class gH{constructor(e,t,i,r,s,o,a,c,A,h){We(this,"glyphLines",[]);We(this,"lastLayout");We(this,"unsubscribeInitialList",[]);We(this,"unsubscribeShowList",[]);We(this,"opacity",1);We(this,"color",16777215);this.group=e,this.getAlignmentProperties=t,this.getAppearanceProperties=i,this.layoutSignal=r,this.matrix=s,this.parentClippingRect=a,this.selectionRange=c,this.selectionBoxes=A,this.caretPosition=h,this.unsubscribeInitialList=[Kt(()=>{const f=i.value;if(f==null||(o==null?void 0:o.value)===!0||(f("opacity")??1)<.01){this.hide();return}this.show()}),Kt(()=>this.updateSelectionBoxes(this.lastLayout,c==null?void 0:c.value,GE(()=>{var f;return((f=t.value)==null?void 0:f.call(t,"verticalAlign"))??"top"}),GE(()=>{var f;return((f=t.value)==null?void 0:f.call(t,"horizontalAlign"))??"left"})))]}getCharIndex(e,t){const i=GE(()=>{var f,d;return((d=(f=this.getAlignmentProperties).value)==null?void 0:d.call(f,"verticalAlign"))??"top"}),r=this.lastLayout;if(r==null)return 0;t-=-op(r,i);const s=Math.floor(t/-sp(r.lineHeight,r.fontSize)),o=r.lines;if(s<0||o.length===0)return 0;if(s>=o.length){const f=o[o.length-1];return f.charIndexOffset+f.charLength+1}const a=o[s],c=r.font.getGlyphInfo(" ").xadvance*r.fontSize,A=this.glyphLines[s];let h=A.length;for(let f=0;f=f.charIndexOffset+f.charLength)continue;const d=this.glyphLines[h][Math.max(i-f.charIndexOffset,0)];return{lineIndex:h,x:this.getGlyphX(d,r?0:1,s)}}const c=e[a-1];if(c.charLength===0)return{lineIndex:a-1,x:bS(t,c.nonWhitespaceWidth,o)-t/2};const A=this.glyphLines[a-1][c.charLength-1];return{lineIndex:a-1,x:this.getGlyphX(A,1,s)}}getGlyphX(e,t,i){return typeof e=="number"?e+t*i:e.getX(t)}show(){this.unsubscribeShowList.length>0||(ul(this.glyphLines,e=>e.show()),this.unsubscribeShowList.push(Kt(()=>{const e=this.matrix.value;e!=null&&ul(this.glyphLines,t=>t.updateBaseMatrix(e))}),Kt(()=>{var t;const e=(t=this.parentClippingRect)==null?void 0:t.value;ul(this.glyphLines,i=>i.updateClippingRect(e))}),Kt(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.color=e("color")??16777215;ul(this.glyphLines,i=>i.updateColor(t))}),Kt(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.opacity=e("opacity")??1;ul(this.glyphLines,i=>i.updateOpacity(t))}),Kt(()=>{var x,y;const e=this.layoutSignal.value,t=this.getAlignmentProperties.value;if(e==null||t==null)return;const{text:i,font:r,lines:s,letterSpacing:o=0,fontSize:a=16,lineHeight:c=1.2,availableWidth:A}=e,h=t("verticalAlign")??"top",f=t("horizontalAlign")??"left";let d=op(e,h)-e.availableHeight/2;const m=s.length,E=this.group.pixelSize;for(let p=0;pR+B){K=ne.id;const ee=P+DS(r,a,ne,K);typeof w[J]=="number"?w[J]=P:w.splice(J,0,ee),P+=T+bh(a,ne,o);continue}let ue=w[J];for(;Jp.hide(),m),this.glyphLines.length=m,this.lastLayout=e,this.updateSelectionBoxes(e,(y=this.selectionRange)==null?void 0:y.peek(),h,f)})))}hide(){const e=this.unsubscribeShowList.length;if(e!==0){for(let t=0;tt.hide())}}destroy(){this.hide(),this.glyphLines.length=0;const e=this.unsubscribeInitialList.length;for(let t=0;t{t.uniforms.fontPage={value:e.page},t.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},t.uniforms.distanceRange={value:e.distanceRange},t.uniforms.v_weight={value:.3},t.vertexShader=`attribute vec4 instanceUVOffset; + varying vec2 fontUv; + attribute vec4 instanceRGBA; + varying vec4 rgba; + attribute mat4 instanceClipping; + varying mat4 clipping; + varying vec3 localPosition; + `+t.vertexShader,t.vertexShader=t.vertexShader.replace("#include ",`#include + fontUv = instanceUVOffset.xy + uv * instanceUVOffset.zw; + rgba = instanceRGBA; + clipping = instanceClipping; + localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`),t.fragmentShader=`uniform sampler2D fontPage; + uniform vec2 pageSize; + uniform int distanceRange; + uniform float v_weight; + varying vec2 fontUv; + varying vec4 rgba; + varying mat4 clipping; + varying vec3 localPosition; + float median(float r, float g, float b) { + return max(min(r, g), min(max(r, g), b)); + } + float getDistance() { + vec3 msdf = texture(fontPage, fontUv).rgb; + return median(msdf.r, msdf.g, msdf.b); + } + `+t.fragmentShader,t.fragmentShader=t.fragmentShader.replace("#include ",` #include + vec4 plane; + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + for(int i = 0; i < 4; i++) { + plane = clipping[ i ]; + distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + + if ( clipOpacity == 0.0 ) discard; + } + vec2 dxdy = fwidth(fontUv) * pageSize; + float dist = getDistance() + min(float(v_weight), 0.5 - 1.0 / float(distanceRange)) - 0.5; + float multiplier = clamp(dist * float(distanceRange) / length(dxdy) + 0.5, 0.0, 1.0); + if(multiplier <= 0.5) { + discard; + } + diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); + diffuseColor *= rgba; + `)}}}const JC=Symbol("camera-distance-key"),jC=Symbol("order-info-key");function yH(n,e){if(n.groupOrder!==e.groupOrder)return n.groupOrder-e.groupOrder;if(n.renderOrder!==e.renderOrder)return n.renderOrder-e.renderOrder;const t=n.object[JC],i=e.object[JC];return t==null||i==null?n.z!==e.z?e.z-n.z:n.id-e.id:t===i?vH(n.object[jC],e.object[jC]):i.current-t.current}function CH(n){n.setTransparentSort(yH)}const Ai={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function vH(n,e){let t=n.majorIndex-e.majorIndex;return t!=0||(t=n.elementType-e.elementType,t!=0)?t:n.minorIndex-e.minorIndex}const dT=Y.createContext(void 0),IH=dT.Provider;function bi(n,e,t,i){const r=i??Y.useContext(dT),s=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return Y.useMemo(()=>{let a,c;return r==null?(a=0,c=0):n>r.elementType?(a=r.majorIndex,c=0):n!=r.elementType||!xH(t,r.instancedGroupDependencies)?(a=r.majorIndex+1,c=0):(a=r.majorIndex,c=r.minorIndex+1),s>0&&(a+=s,c=0),c+=o,{instancedGroupDependencies:t,elementType:n,majorIndex:a,minorIndex:c}},[s,o,r,n,t])}function xH(n,e){if(n===e)return!0;if(n==null||e==null)return!1;let t=0;for(const i in n){if(n[i]!=e[i])return!1;++t}return t===Object.keys(e).length}function ql(n,e,t){return n[JC]=e,n[jC]=t,n}class BH extends Gr{constructor(t,i,r,s){super();We(this,"instanceMatrix");We(this,"instanceUV");We(this,"instanceRGBA");We(this,"instanceClipping");We(this,"glyphs",[]);We(this,"requestedGlyphs",[]);We(this,"holeIndicies",[]);We(this,"mesh");We(this,"material");We(this,"timeTillDecimate");this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.material=new EH(t)}requestActivate(t){const i=this.holeIndicies.shift();if(i!=null){this.glyphs[i]=t,t.activate(i);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(t);return}const r=this.mesh.count;this.glyphs[r]=t,t.activate(r),this.mesh.count+=1}delete(t){if(t.index==null){const s=this.requestedGlyphs.indexOf(t);if(s===-1)return;this.requestedGlyphs.splice(s,1);return}const i=this.requestedGlyphs.shift();if(i!=null){i.activate(t.index),this.glyphs[t.index]=i,t.index=void 0;return}if(t.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,t.index=void 0;return}const r=t.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(t.index),this.glyphs[t.index]=void 0,t.index=void 0}onFrame(t){var a;const i=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(i===0){this.visible=!1;return}this.visible=!0;const r=((a=this.instanceMatrix)==null?void 0:a.count)??0;if(i0)&&i<=r)return;this.timeTillDecimate=void 0,this.resize(i);const s=this.mesh.count,o=this.requestedGlyphs.length;for(let c=0;cd-m);const A=this.holeIndicies.length;let h=0,f=0;for(;f0)for(let d=this.holeIndicies[0];d{for(const o of r)o(s);VE.set(n,s)}).catch(console.error)}async function wH(n,e){const t=await(await fetch(n)).json();if(t.pages.length!==1)throw new Error("only supporting exactly 1 page");const i=await _H.loadAsync(new URL(t.pages[0],n).href);return i.anisotropy=e.capabilities.getMaxAnisotropy(),i.flipY=!1,new AH(t,i)}const MH=({text:n,fontSize:e,font:t,letterSpacing:i},r,s,o)=>{s=OI(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let c=0,A=0;for(;sr)break;o.nonWhitespaceCharLength=s-a+1,o.nonWhitespaceWidth=c,o.whitespacesBetween=A}o.charLength=s-a},QH=({text:n,fontSize:e,font:t,letterSpacing:i},r,s,o)=>{s=OI(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let c=0,A=0;for(;s{s=OI(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let c=0,A=0;for(;s0&&r!=null&&c>r)break;const f=n[s+1];(f===" "||f===` +`||f==null)&&(o.charLength=s-a+1,o.nonWhitespaceCharLength=o.charLength,o.nonWhitespaceWidth=c,o.whitespacesBetween=A)}};function OI(n,e){const t=n.length;for(;n[e]===" "&&enew Map,[]),r=Y.useCallback((s,o)=>{let a=i.get(o);a==null&&i.set(o,a=new Map);let c=a==null?void 0:a.get(s);return c==null&&(a.set(s,c=new BH(o,n,e,{majorIndex:s,elementType:Ai.Text,minorIndex:0})),t.add(c)),c},[n,e,t]);return ba((s,o)=>{for(const a of i.values())for(const c of a.values())c.onFrame(o)}),r}const NH=Y.createContext(null),PH={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},KC={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},UH=["horizontalAlign","verticalAlign"],FH=["color","opacity"],kH=["fontSize","letterSpacing","lineHeight","wordBreak"];function mT(n,e,t,i,r,s,o,a,c,A,h){const f=bi(Ai.Text,void 0,void 0,o),d=Y.useContext(gT);if(d==null)throw new Error("Can only be used inside a component.");const m=OH(n),E=Y.useMemo(()=>zt(e),[]);E.value=e;const x=Y.useRef(void 0),y=VH(n,m,E,x),p=us(n,UH),I=us(n,FH),C=Y.useMemo(()=>zt(void 0),[]);return Y.useEffect(()=>i.addLayoutChangeListener(()=>{const B=x.current;if(B==null)return;const{size:R,paddingInset:M,borderInset:T}=i,[P,K]=R.value,[w,b,q,de]=M.value,[J,re,ne,ue]=T.value,U=P-b-de-re-ue,ee=K-w-q-J-ne;C.value=DH(B,U,ee)}),[i]),mi(()=>{const B=m.value;if(B==null)return;const R=new gH(d(f.majorIndex,B),p,I,C,t,r,s,a,c,A);return h!=null&&(h.current=R),()=>R.destroy()},[d,t,i,r,s,f.majorIndex,c,h]),y}const GH=["fontFamily","fontWeight"];function OH(n){const e=Y.useMemo(()=>zt(void 0),[]),t=Y.useContext(NH)??PH,i=us(n,GH),r=UI(({gl:s})=>s);return mi(()=>{const s=i.value;if(s==null)return;let o=s("fontWeight")??"normal";typeof o=="string"&&(o=KC[o]);let a=s("fontFamily");a==null&&(a=Object.keys(t)[0]);const c=HH(t[a],o);let A=!1;return SH(c,r,h=>A?void 0:e.value=h),()=>A=!0},[t,r]),e}function HH(n,e){let t=1/0,i;for(const r in n){const s=Math.abs(e-zH(r));if(s===0)return n[r];szn(()=>{const o=e.value,a=r.value;if(o==null||a==null)return;const c=t.value,A={font:o,fontSize:a("fontSize")??16,letterSpacing:a("letterSpacing")??0,lineHeight:a("lineHeight")??1.2,text:Array.isArray(c)?c.map(h=>xg(h)).join(""):xg(c),wordBreak:a("wordBreak")??"break-word"};return i.current=A,(h,f)=>TH(A,f===ki.MeasureMode.Undefined?void 0:h)}),[e,r,i,t])}const Hc={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},ET=Object.keys(Hc),WH=ET.length,yT=Y.createContext(void 0),YH=yT.Provider;function xo(n,e,t){const i=t??Y.useContext(yT);if(i==null)throw new Error("Can only be used inside a component.");const r=Y.useMemo(()=>({sm:ro(()=>i.value[0]>Hc.sm),md:ro(()=>i.value[0]>Hc.md),lg:ro(()=>i.value[0]>Hc.lg),xl:ro(()=>i.value[0]>Hc.xl),"2xl":ro(()=>i.value[0]>Hc["2xl"])}),[i]);Lu(e,s=>{for(let o=0;oe.createChild(n),[n,e]);return Y.useEffect(()=>(e.addChild(t),()=>{e.removeChild(t),t.destroy()}),[e,t]),t}function JH(){let n=Y.useRef(void 0);return ba(()=>{if(n.current==null)return;const e=n.current;n.current=void 0,e.calculateLayout()}),Y.useCallback(e=>{n.current!=null||e.yogaNode==null||(n.current=e)},[])}const HI=CT.Provider,Bs=new An,cp=new G,jH=[new An().setFromNormalAndCoplanarPoint(new G(1,0,0),new G(-.5,0,0)),new An().setFromNormalAndCoplanarPoint(new G(-1,0,0),new G(.5,0,0)),new An().setFromNormalAndCoplanarPoint(new G(0,1,0),new G(0,-.5,0)),new An().setFromNormalAndCoplanarPoint(new G(0,-1,0),new G(0,.5,0))],Al=[0,0,0,0];function vT(n){return(e,t)=>{const i=n.matrixWorld;if(Bs.constant=0,Bs.normal.set(0,0,1),Bs.applyMatrix4(i),Bs.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(Bs,cp)==null)return;const r=Bs.normal.clone();for(let s=0;s<4;s++){const o=jH[s];if(Bs.copy(o).applyMatrix4(i),(Al[s]=Bs.distanceToPoint(cp))<0)return}t.push({distance:cp.distanceTo(e.ray.origin),object:n,point:cp.clone(),uv:new _e(Al[0]/(Al[0]+Al[1]),Al[3]/(Al[2]+Al[3])),normal:r})}}function Nu(n,e,t,i,r){return(s,o)=>{var f;const a=t.current;if(a==null)return;const c=o.length;e.call(n,s,o);const A=(f=i==null?void 0:i.value)==null?void 0:f.planes,h=a.matrixWorld;e:for(let d=o.length-1;d>=c;d--){const m=o[d];if(m.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,A!=null){for(let E=0;E<4;E++)if(Bs.copy(A[E]).applyMatrix4(h),Bs.distanceToPoint(m.point)<0){o.splice(d,1);continue e}}}}}function IT(n,e){for(;e>=n.length;){let t=0,i=0;if(n.length>0){const r=n[n.length-1];t+=r.offset+r.elements.length,i=Math.min(0,r.missingSpace),r.missingSpace-=i}n.push({add:[],missingSpace:i,offset:t,elements:[]})}}function KH(n,e,t){IT(n,0);const i=n[n.length-1];i.missingSpace+=e-t}function qH(n,e,t,i){IT(n,e);const r=n[e];return r.missingSpace+=1,r.missingSpace<=0?(i(t,r,r.elements.length),r.elements.push(t),!1):(r.add.push(t),!0)}function ZH(n,e,t,i,r,s,o,a){if(e>=n.length)throw new Error(`no bucket at index ${e}`);const c=n[e];c.missingSpace-=1;const A=c.add.indexOf(t);if(A!=-1)return c.add.splice(A,1),!1;if(i==null||i>=c.elements.length)throw new Error(`no element at index ${i}`);if(c.add.length>0){const m=c.add.shift();return c.elements[i]=m,r(m,c,i),!1}const h=c.offset,f=c.elements.length-1;if(f!=i){const m=h+f,E=h+i;a(E,m,m+1);const x=c.elements[f];c.elements[i]=x,o(x,i)}if(s(h+f),c.elements.length-=1,e0;){const m=n[e-1];m.missingSpace+=d.missingSpace,d=n[--e]}return n.length=e+1,!1}function $H(n,e,t){let i=n.length,r=-1;for(let o=0;o0&&(r=o);const c=o===i-1;if(!c&&a.missingSpace===0)continue;const A=a.missingSpace<0;for(let h=o-1;h>=0;h--){const f=n[h];if(f.missingSpace===0)continue;const d=f.missingSpace<0;if(d&&(c||A)){NS(n,t,h,o,Math.abs(f.missingSpace));continue}if(!A&&!d)continue;const m=Math.min(Math.abs(f.missingSpace),Math.abs(a.missingSpace));A?ez(n,t,h,o,m):NS(n,t,h,o,m)}}const s=n[r];for(let o=r+1;oh>0)&&(i==null||i>0),[a,c]=e.value;return!(a>0&&c>0&&(r==null||r>0)&&s!=null)&&!o?!1:t==null?!0:!t.value}function TA(n,e,t,i,r){n[e]=tz(n[e],t,zI(Math.ceil((i??0)/r*100),0,49))}const up=new Je,_T=new Je(-1,-1,-1),PS={backgroundColor:(n,e)=>(Array.isArray(e)?up.setRGB(...e):up.set(e??_T)).toArray(n,4),borderBottomLeftRadius:(n,e,t)=>TA(n,7,0,e,t.value[1]),borderBottomRightRadius:(n,e,t)=>TA(n,7,1,e,t.value[1]),borderTopRightRadius:(n,e,t)=>TA(n,7,2,e,t.value[1]),borderTopLeftRadius:(n,e,t)=>TA(n,7,3,e,t.value[1]),borderColor:(n,e)=>(Array.isArray(e)?up.setRGB(...e):up.set(e??16777215)).toArray(n,8),borderBend:(n,e)=>n[11]=e??0,borderOpacity:(n,e)=>n[12]=e??1,backgroundOpacity:(n,e)=>n[15]=e??-1},ST=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],nz=["borderOpacity","backgroundColor","backgroundOpacity"];class iz{constructor(e,t,i){We(this,"data",new Float32Array(16));We(this,"unsubscribeList",[]);We(this,"unsubscribe");We(this,"visible",!1);We(this,"materials",[]);We(this,"active",zt(!1));We(this,"getProperty",zt(void 0));this.size=e,this.size=e,this.unsubscribe=Kt(()=>{const r=this.getProperty.value,s=r!=null&&BT(t,e,i,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=s,!s){this.deactivate();return}this.activate(e,t)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return nz.includes(e)}hasImmediateProperty(e){return e in PS}setProperty(e,t){const i=PS[e];i(this.data,t,this.size)}activate(e,t){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(ST),this.unsubscribeList.push(Kt(()=>this.data.set(e.value,13)),Kt(()=>this.data.set(t.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let t=0;t{i.call(t,r,s),e.type==="normal"&&(r.uniforms.data={value:e.data}),oz(r,e.type==="instanced")},t}class MT extends Kg{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),RT(e,this.info.type==="instanced")}}class QT extends jg{constructor(e){super({depthPacking:iI}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),RT(e,this.info.type==="instanced")}}const rz=new QT({type:"instanced"}),sz=new MT({type:"instanced"});function RT(n,e){TT(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",`#include + ${DT(e,void 0)} + `)}function TT(n,e){n.vertexShader=n.vertexShader.replace("#include ",` #include + out vec4 borderRadius; + ${e?"":"uniform highp mat4 data;"}`),n.vertexShader=n.vertexShader.replace("#include ",` #include + highp int packedBorderRadius = int(data[1].w); + borderRadius = vec4( + packedBorderRadius / 125000 % 50, + packedBorderRadius / 2500 % 50, + packedBorderRadius / 50 % 50, + packedBorderRadius % 50 + ) * vec4(0.5 / 50.0);`),e&&(n.vertexShader=n.vertexShader.replace("#include ",` #include + attribute highp mat4 aData; + attribute mat4 aClipping; + out mat4 data; + out mat4 clipping; + out vec3 localPosition;`),n.vertexShader=n.vertexShader.replace("#include ",` #include + data = aData; + clipping = aClipping; + localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`)),n.fragmentShader=`${e?"in":"uniform"} highp mat4 data; + in vec4 borderRadius; + ${e?` + in vec3 localPosition; + in mat4 clipping; + `:""} + + float min4 (vec4 v) { + return min(min(min(v.x,v.y),v.z),v.w); + } + float max4 (vec4 v) { + return max(max(max(v.x,v.y),v.z),v.w); + } + vec2 radiusDistance(float radius, vec2 outside, vec2 border, vec2 borderSize) { + vec2 outerRadiusXX = vec2(radius, radius); + vec2 innerRadiusXX = outerRadiusXX - borderSize; + vec2 radiusWeightUnnormalized = abs(innerRadiusXX - border); + vec2 radiusWeight = radiusWeightUnnormalized / vec2(radiusWeightUnnormalized.x + radiusWeightUnnormalized.y); + return vec2( + radius - distance(outside, outerRadiusXX), + dot(radiusWeight, innerRadiusXX) - distance(border, innerRadiusXX) + ); + } + `+n.fragmentShader,n.fragmentShader=n.fragmentShader.replace("#include ",` ${e?` + vec4 plane; + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + + for(int i = 0; i < 4; i++) { + plane = clipping[ i ]; + distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + + if ( clipOpacity < 0.01 ) discard; + } + `:""} + vec4 absoluteBorderSize = data[0]; + vec3 backgroundColor = data[1].xyz; + vec3 borderColor = data[2].xyz; + float borderBend = data[2].w; + float borderOpacity = data[3].x; + float width = data[3].y; + float height = data[3].z; + float backgroundOpacity = data[3].w; + float ratio = width / height; + vec4 relative = vec4(height, height, height, height); + vec4 borderSize = absoluteBorderSize / relative; + vec4 v_outsideDistance = vec4(1.0 - vUv.y, (1.0 - vUv.x) * ratio, vUv.y, vUv.x * ratio); + vec4 v_borderDistance = v_outsideDistance - borderSize; + + vec2 distance = vec2(min4(v_outsideDistance), min4(v_borderDistance)); + vec4 negateBorderDistance = vec4(1.0) - v_borderDistance; + float maxWeight = max4(negateBorderDistance); + vec4 borderWeight = step(maxWeight, negateBorderDistance); + + vec4 insideBorder; + + if(all(lessThan(v_outsideDistance.xw, borderRadius.xx))) { + distance = radiusDistance(borderRadius.x, v_outsideDistance.xw, v_borderDistance.xw, borderSize.xw); + + float tmp = borderRadius.x - borderSize.w; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.x - borderSize.x; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.yz = vec2(0.0); + insideBorder.xw = max(vec2(0.0), lineIntersection - v_borderDistance.xw); + + } else if(all(lessThan(v_outsideDistance.xy, borderRadius.yy))) { + distance = radiusDistance(borderRadius.y, v_outsideDistance.xy, v_borderDistance.xy, borderSize.xy); + + float tmp = borderRadius.y - borderSize.y; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.y - borderSize.x; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.zw = vec2(0.0); + insideBorder.xy = max(vec2(0.0), lineIntersection - v_borderDistance.xy); + + } else if(all(lessThan(v_outsideDistance.zy, borderRadius.zz))) { + distance = radiusDistance(borderRadius.z, v_outsideDistance.zy, v_borderDistance.zy, borderSize.zy); + + float tmp = borderRadius.z - borderSize.y; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.z - borderSize.z; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.xw = vec2(0.0); + insideBorder.zy =max(vec2(0.0), lineIntersection - v_borderDistance.zy); + + } else if(all(lessThan(v_outsideDistance.zw, borderRadius.ww))) { + distance = radiusDistance(borderRadius.w, v_outsideDistance.zw, v_borderDistance.zw, borderSize.zw); + + float tmp = borderRadius.w - borderSize.w; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.w - borderSize.z; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.xy = vec2(0.0); + insideBorder.zw = max(vec2(0.0), lineIntersection - v_borderDistance.zw); + + } + + if(insideBorder.x + insideBorder.y + insideBorder.z + insideBorder.w > 0.0) { + borderWeight = normalize(insideBorder); + } + + #include `)}function DT(n,e){return`float ddx = fwidth(distance.x); + float outer = smoothstep(-ddx, ddx, distance.x); + + float ddy = fwidth(distance.y); + float inner = smoothstep(-ddy, ddy, distance.y); + + float transition = 1.0 - step(0.1, outer - inner) * (1.0 - inner); + + if(backgroundColor.r < 0.0 && backgroundOpacity >= 0.0) { + backgroundColor = vec3(1.0); + } + if(backgroundOpacity < 0.0) { + backgroundOpacity = backgroundColor.r >= 0.0 ? 1.0 : 0.0; + } + + if(backgroundOpacity < 0.0) { + backgroundOpacity = 0.0; + } + + float outOpacity = ${n?"clipOpacity * ":""} outer * mix(borderOpacity, ${e==null?"":`${e} *`} backgroundOpacity, transition); + + if(outOpacity < 0.01) { + discard; + }`}function oz(n,e){TT(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",` #include + ${DT(e,"diffuseColor.a")} + diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); + diffuseColor.a = outOpacity; + `),n.fragmentShader=n.fragmentShader.replace("#include ",` #include + vec3 b = normalize(vBitangent); + vec3 t = normalize(vTangent); + mat4 directions = mat4(vec4(b, 1.0), vec4(t, 1.0), vec4(-b, 1.0), vec4(-t, 1.0)); + float currentBorderSize = distance.x - distance.y; + float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; + vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; + normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); + `)}class az extends on{constructor(t,i,r){const s=xT();super(s);We(this,"count",0);We(this,"isInstancedMesh",!0);We(this,"instanceColor",null);We(this,"morphTexture",null);We(this,"boundingBox",new ti);We(this,"boundingSphere",new ui);this.instanceMatrix=t,this.frustumCulled=!1,s.attributes.aData=i,s.attributes.aClipping=r,this.customDepthMaterial=rz,this.customDistanceMaterial=sz}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class lz extends Gr{constructor(t,i,r,s,o,a){super();We(this,"mesh");We(this,"instanceMatrix");We(this,"instanceData");We(this,"instanceClipping");We(this,"buckets",[]);We(this,"elementCount",0);We(this,"bufferElementSize",0);We(this,"timeToNextUpdate");We(this,"activateElement",(t,i,r)=>{const s=i.offset+r;this.instanceData.set(ST,16*s),this.instanceData.addUpdateRange(16*s,16),this.instanceData.needsUpdate=!0,t.activate(i,r)});We(this,"setElementIndex",(t,i)=>{t.setIndexInBucket(i)});We(this,"bufferCopyWithin",(t,i,r)=>{WE(this.instanceMatrix,t,i,r),WE(this.instanceData,t,i,r),WE(this.instanceClipping,t,i,r)});We(this,"clearBufferAt",t=>{const i=t*16;this.instanceMatrix.array.fill(0,i,i+16),this.instanceMatrix.addUpdateRange(i,16),this.instanceMatrix.needsUpdate=!0});this.material=t,this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.meshReceiveShadow=o,this.meshCastShadow=a}updateCount(){const t=this.buckets[this.buckets.length-1],i=t.offset+t.elements.length;this.mesh!=null&&(this.mesh.count=i),this.visible=i>0}insert(t,i){if(this.elementCount+=1,!qH(this.buckets,t,i,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(t,i,r){if(this.elementCount-=1,!ZH(this.buckets,t,r,i,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(t){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=t,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(t){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,t)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),$H(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const t=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),KH(this.buckets,t,this.bufferElementSize);const i=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&i.set(this.instanceMatrix.array.subarray(0,i.length)),this.instanceMatrix=new vr(i,16,!1),this.instanceMatrix.setUsage(aa);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new vr(r,16,!1),this.instanceData.setUsage(aa);const s=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&s.set(this.instanceClipping.array.subarray(0,s.length)),this.instanceClipping=new vr(s,16,!1),this.instanceClipping.setUsage(aa),this.mesh=new az(this.instanceMatrix,this.instanceData,this.instanceClipping),ql(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function WE(n,e,t,i){const r=n.itemSize,s=t*r,o=i*r,a=e*r;n.array.copyWithin(a,s,o);const c=o-s;n.addUpdateRange(s,c),n.addUpdateRange(a,c),n.needsUpdate=!0}const US={backgroundColor:(n,e,t)=>WC(n.instanceData,e,t??_T,4),borderBottomLeftRadius:(n,e,t,{value:i})=>hp(n.instanceData,e,7,0,t,i[1]),borderBottomRightRadius:(n,e,t,{value:i})=>hp(n.instanceData,e,7,1,t,i[1]),borderTopRightRadius:(n,e,t,{value:i})=>hp(n.instanceData,e,7,2,t,i[1]),borderTopLeftRadius:(n,e,t,{value:i})=>hp(n.instanceData,e,7,3,t,i[1]),borderColor:(n,e,t)=>WC(n.instanceData,e,t??16777215,8),borderBend:(n,e,t)=>YE(n.instanceData,e,11,t??0),borderOpacity:(n,e,t)=>YE(n.instanceData,e,12,t??1),backgroundOpacity:(n,e,t)=>YE(n.instanceData,e,15,t??-1)},cz=["borderOpacity","backgroundColor","backgroundOpacity"],Ap=new ft,uz=new ft;class WI{constructor(e,t,i,r,s,o,a,c){We(this,"indexInBucket");We(this,"bucket");We(this,"unsubscribeList",[]);We(this,"unsubscribeVisible");We(this,"destroyed",!1);We(this,"insertedIntoGroup",!1);We(this,"active",zt(!1));We(this,"getProperty",zt(void 0));this.group=e,this.matrix=t,this.size=i,this.offset=r,this.borderInset=s,this.clippingRect=o,this.minorIndex=c,this.unsubscribeVisible=Kt(()=>{const A=this.getProperty.value;if(A!=null&&BT(s,i,a,A("borderOpacity"),A("backgroundOpacity"),A("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return cz.includes(e)}hasImmediateProperty(e){return e in US}setProperty(e,t){const i=this.getIndexInBuffer();i!=null&&US[e](this.group,i,t,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,t){this.bucket=e,this.indexInBucket=t,this.active.value=!0,this.unsubscribeList.push(Kt(()=>{const i=this.matrix.value;if(i==null)return;const{instanceMatrix:r,pixelSize:s}=this.group,o=this.getIndexInBuffer();if(o==null)return;const a=o*16,[c,A]=this.size.value;if(Ap.makeScale(c*s,A*s,1),this.offset!=null){const[h,f]=this.offset.value;Ap.premultiply(uz.makeTranslation(h*s,f*s,0))}Ap.premultiply(i),Ap.toArray(r.array,a),r.addUpdateRange(a,16),r.needsUpdate=!0}),Kt(()=>{const[i,r]=this.size.value,{instanceData:s}=this.group,{array:o}=s,a=this.getIndexInBuffer();if(a==null)return;const c=a*16+13;o[c]=i,o[c+1]=r,s.addUpdateRange(c,2),s.needsUpdate=!0}),Kt(()=>{const{instanceData:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16+0;i.array.set(this.borderInset.value,s),i.addUpdateRange(s,4),i.needsUpdate=!0}),Kt(()=>{var a;const{instanceClipping:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16,o=(a=this.clippingRect)==null?void 0:a.value;o!=null?o.toArray(i.array,s):i.array.set(Bg,s),i.addUpdateRange(s,16),i.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let t=0;te.hasImmediateProperty.bind(e),[e]),a=Y.useCallback(c=>{if(!i.current){r.current=c;return}FS(c,r.current,s.current,e),r.current=c},[e]);mi(()=>{if(i.current=e.active.value,!i.current){kS(s.current),s.current={};return}return FS(r.current,Az,s.current,e),()=>{kS(s.current),s.current={}}},[e]),tT(n,o,a,t)}function FS(n,e,t,i){var r,s;for(const o in n){const a=n[o];if(o in e){const c=e[o];if(delete e[o],nT(a,c))continue;(r=t[o])==null||r.call(t)}t[o]=Kt(()=>{const c=GC(a);i.setProperty(o,c)})}for(const o in e)(s=t[o])==null||s.call(t),delete t[o],GC(e[o])!==void 0&&i.setProperty(o,void 0)}function kS(n){for(const e in n)n[e]()}function Bo({handlers:n,hoverHandlers:e,activeHandlers:t,inputHandlers:i,matrix:r,children:s,groupRef:o}){return Y.useEffect(()=>{const a=o.current;if(a!=null)return Kt(()=>r.value!=null&&a.matrix.copy(r.value))},[o,r]),W.jsx("group",{ref:o,onPointerOut:Zo(n.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:Zo(n.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:Zo(n.onPointerUp,Zo(t==null?void 0:t.onPointerUp,i==null?void 0:i.onPointerUp)),onPointerDown:Zo(n.onPointerDown,Zo(t==null?void 0:t.onPointerDown,i==null?void 0:i.onPointerDown)),onPointerLeave:Zo(n.onPointerLeave,t==null?void 0:t.onPointerLeave),onPointerMove:Zo(n.onPointerMove,i==null?void 0:i.onPointerMove),onWheel:n.onWheel,onClick:n.onClick,onContextMenu:n.onContextMenu,onDoubleClick:n.onDoubleClick,onPointerCancel:n.onPointerCancel,onPointerEnter:n.onPointerEnter,onPointerMissed:n.onPointerMissed,matrixAutoUpdate:!1,children:s})}function Zo(n,e){return n==null?e:e==null?n:t=>{e(t),!t.stopped&&n(t)}}function Zl(n,e,t,i){const r=Us(),s=Y.useMemo(()=>{const o=new on(VI);return o.matrixAutoUpdate=!1,o.raycast=Nu(o,vT(o),i,r,t),o.visible=!1,o},[r,t,i]);return mi(()=>{const[o,a]=n.value;s.scale.set(o*e.pixelSize,a*e.pixelSize,1),s.updateMatrix()},[n,e]),s}const bT=Y.createContext(void 0);function YI(){const n=Y.useContext(bT);if(n==null)throw new Error("Can only be used inside a component.");return n}function hz(n,e,t,i,r,s,o){const{materials:a,setter:c}=Y.useMemo(()=>{const A=new iz(e,t,i),h={data:A.data,type:"normal"},f=wT(r??or,h),d=new QT(h),m=new MT(h);return f.clippingPlanes=s,d.clippingPlanes=s,m.clippingPlanes=s,{materials:[f,d,m],setter:A}},[e,t,i,r,s]);return Yr(n,c,o),Em(n,c,o),Y.useEffect(()=>()=>c.destroy(),[c]),a}function Fs(n=or,{castShadow:e=!1,receiveShadow:t=!1}){return Y.useMemo(()=>({materialClass:n,castShadow:e,receiveShadow:t}),[n,e,t])}function Fa(n,e,t,i,r,s,o,a,c,A,h){const f=h??YI(),d=Y.useMemo(()=>new WI(f(o.majorIndex,c),e,t,i,r,a,s,o.minorIndex),[f,e,t,r,a,s,o,i,c]);Y.useEffect(()=>()=>d.destroy(),[d]),Yr(n,d,A),Em(n,d,A)}function fz(n,e,t){const i=Y.useMemo(()=>new Map,[]),r=Y.useCallback((s,{materialClass:o,receiveShadow:a,castShadow:c})=>{let A=i.get(o);A==null&&i.set(o,A=new Map);const h=(s<<2)+((a?1:0)<<1)+(c?1:0);let f=A.get(h);if(f==null){const d=wT(o,{type:"instanced"});A.set(h,f=new lz(d,n,e,{elementType:Ai.Panel,majorIndex:s,minorIndex:0},a,c)),t.add(f)}return f},[n,i,e,t]);return ba((s,o)=>{for(const a of i.values())for(const c of a.values())c.onFrame(o)}),r}const dz=bT.Provider,qC=[],Vp=[];function pz(n,e){qC.push(n),Vp.push(e),document.body.style.cursor=e}function GS(n){const e=qC.indexOf(n);e!=-1&&(qC.splice(e,1),Vp.splice(e,1),document.body.style.cursor=Vp[Vp.length-1]??"default")}function _o(n,e,t){const i=Y.useMemo(()=>zt([]),[]),r=Y.useMemo(()=>ro(()=>i.value.length>0),[]);let s=!1;Lu(e,a=>{a.hover!=null&&(s=!0,r(n,a.hover))}),Y.useEffect(()=>()=>GS(i),[]);const o=e.cursor??t;if(!s&&e.onHoverChange==null&&o==null){i.value.length=0;return}return{onPointerOver:a=>{i.value=[a.pointerId,...i.value],e.onHoverChange!=null&&i.value.length===1&&e.onHoverChange(!0),o!=null&&pz(i,o)},onPointerOut:a=>{i.value=i.value.filter(c=>c!=a.pointerId),e.onHoverChange!=null&&i.value.length===0&&e.onHoverChange(!1),GS(i)}}}function ym(n){return(e,t,i,r)=>{if(i(e)){r(e,t);return}const s=n[e];if(s==null)return;const o=s.length;if(i(s[0]))for(let a=0;azt([0,0]),[])}function vz(n,e,t){return Y.useMemo(()=>zn(()=>{const i=t.value;if(i==null)return;const[r,s]=n.value,{pixelSize:o}=e;return new ft().makeTranslation(-r*o,s*o,0).premultiply(i)}),[n,e,t])}function Iz({node:n,scrollPosition:e,children:t}){const i=Y.useRef(null);return Y.useEffect(()=>Kt(()=>{var a,c;const[r,s]=e.value,{pixelSize:o}=n;(a=i.current)==null||a.position.set(-r*o,s*o,0),(c=i.current)==null||c.updateMatrix()}),[n,e]),W.jsx("group",{ref:i,children:t})}function tf({listeners:n,node:e,scrollPosition:t,children:i}){const[r,s]=Y.useState(()=>e.scrollable.value.some(f=>f));mi(()=>s(e.scrollable.value.some(f=>f)),[e]);const o=Y.useRef(n.onScroll);o.current=n.onScroll;const a=Y.useMemo(()=>new Map,[]),c=Y.useMemo(()=>new _e,[]),A=Y.useCallback((f,d,m,E,x)=>{var b,q;const[y,p]=f==null?[!1,!1]:xz(f.nativeEvent);y&&(d=0),p&&(m=0);const[I,C]=t.value,[B,R]=e.maxScrollPosition.value;let[M,T]=t.value;const[P,K]=((b=e.anyAncestorScrollable)==null?void 0:b.value)??[!1,!1];M=OS(I,B,d,x&&!P),T=OS(C,R,m,x&&!K),E!=null&&E>0&&c.set(d,m).divideScalar(E),f!=null&&Bz(f.nativeEvent,y||Math.min(I,(B??0)-I)>5,p||Math.min(C,(R??0)-C)>5),!(((q=o.current)==null?void 0:q.call(o,M,T,t,f))===!1||I===M&&C===T)&&(t.value=[M,T])},[e,t,c]);ba((f,d)=>{if(a.size>0)return;let m=0,E=0;const[x,y]=t.value,[p,I]=e.maxScrollPosition.value;m+=ZC(x,0,p??0)*-.3,E+=ZC(y,0,I??0)*-.3,m+=c.x*d,E+=c.y*d,c.multiplyScalar(.9),Math.abs(c.x)<.01&&(c.x=0),Math.abs(c.y)<.01&&(c.y=0),!(m===0&&E===0)&&A(void 0,m,E,void 0,!0)});const h=Y.useRef(null);return r?W.jsx("group",{ref:h,matrixAutoUpdate:!1,onPointerDown:f=>{let d=a.get(f.pointerId);d==null&&a.set(f.pointerId,d={timestamp:0,point:new G}),d.timestamp=performance.now()/1e3,h.current.worldToLocal(d.point.copy(f.point))},onPointerUp:f=>{a.delete(f.pointerId)},onPointerLeave:f=>{a.delete(f.pointerId)},onPointerCancel:f=>{a.delete(f.pointerId)},onContextMenu:f=>f.nativeEvent.preventDefault(),onPointerMove:f=>{const d=a.get(f.pointerId);if(d==null)return;h.current.worldToLocal(JE.copy(f.point)),XE.copy(JE).sub(d.point).divideScalar(e.pixelSize);const m=performance.now()/1e3,E=m-d.timestamp;d.point.copy(JE),d.timestamp=m,!f.defaultPrevented&&A(f,-XE.x,XE.y,E,!0)},onWheel:f=>{f.defaultPrevented||A(f,f.deltaX,f.deltaY,void 0,!1)},children:i}):W.jsx("group",{matrixAutoUpdate:!1,children:i})}const NT=Symbol("was-scrolled");function xz(n){return n[NT]??[!1,!1]}function Bz(n,e,t){n[NT]=[e,t]}function OS(n,e,t,i){if(t===0)return n;const r=ZC(n,0,e??0);HS(t)===HS(r)&&(t*=Math.max(0,1-Math.abs(r)/100));let s=n+t;return i&&e!=null?s:zI(s,0,e??0)}function HS(n){return n>=0}function ZC(n,e,t){return nt?n-t:0}const zS=9;function PT(n){return n[zS].toLowerCase()+n.slice(zS+1)}const _z=(n,e,t,i)=>{if(n.startsWith("scrollbarBorder")){if(n=PT(n),t(n)){i(n,e);return}gz(n,e,t,i)}},Sz=(n,e,t,i)=>{if(n.startsWith("scrollbar")){if(n==="scrollbarOpacity"){i("backgroundOpacity",e);return}if(n==="scrollbarColor"){i("backgroundColor",e);return}if(n=PT(n),t(n)){i(n,e);return}wo(n,e,t,i)}};function nf(n,e,t,i,r,s,o,a,c){const A=Fs(s,{castShadow:!1,receiveShadow:!1}),h=bi(Ai.Panel,void 0,A,a),f=us(n,wz),d=us(n,Mz,_z),m=Y.useMemo(()=>zn(()=>{const y=d.value;return[(y==null?void 0:y("scrollbarBorderTop"))??0,(y==null?void 0:y("scrollbarBorderRight"))??0,(y==null?void 0:y("scrollbarBorderBottom"))??0,(y==null?void 0:y("scrollbarBorderLeft"))??0]}),[d]),E=n.length;VS(n,0,e,t,i,r,s,o,h,c,f,m),VS(n,1,e,t,i,r,s,o,h,c,f,m);const x=n.length;for(let y=E;y{const x=zn(()=>{const y=h.value;if(y!=null)return Qz(e,y("scrollbarWidth")??10,i.size.value,i.maxScrollPosition.value,i.borderInset.value,t.value)});return[zn(()=>{var y;return((y=x.value)==null?void 0:y.slice(0,2))??[0,0]}),zn(()=>{var y;return((y=x.value)==null?void 0:y.slice(2,4))??[0,0]})]},[e,i,t,h]),E=Y.useMemo(()=>({materialClass:o??or,receiveShadow:!1,castShadow:!1}),[o]);Fa(n,r,m,d,f,s,c,a,E,Sz,A)}function Qz(n,e,t,i,r,s){const o=[0,0,0,0],a=i[n];if(a==null)return o;const c=1-n,A=t[n]-r[c]-r[c+2],h=Math.max(e,A*A/(a+A)),f=A-h,d=s[n];return o[n]=t[n]*.5-h*.5-r[(n+3)%4]-f*zI(d/a,0,1),o[c]=t[c]*.5-e*.5-r[c+1],n===0&&(o[0]*=-1,o[1]*=-1),o[n+2]=h,o[c+2]=e,o}function ka(n,e,t,i){Y.useImperativeHandle(n,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:t instanceof on?t:t.current,scrollPosition:i}),[t,e,i])}function Mo({onSizeChange:n},e){const t=Y.useMemo(()=>{if(n==null)return;let i=!0;return Kt(()=>{const r=e.value;if(i){i=!1;return}n(...r)})},[n,e]);Y.useEffect(()=>t,[t])}function Ga({onIsInViewportChange:n},e){const t=Y.useMemo(()=>{if(n==null)return;let i=!0;return Kt(()=>{const r=!e.value;if(i){i=!1;return}n(r)})},[e,n]);Y.useEffect(()=>t,[t])}function Oa(n){const e=Y.useContext(UT);if(e==null)throw new Error("Can only be used inside a uikit component.");return Y.useMemo(()=>zn(()=>{const t=n.value,i=e.value;if(!(t==null||i==null))return i.clone().multiply(t)}),[n,e])}const UT=Y.createContext(void 0),Rz=UT.Provider;function rf({globalMatrix:n,node:e,scrollPosition:t,children:i,orderInfo:r}){const s=Us(),o=uH(n,e.size,e.borderInset,e.overflow,e,s),a=vz(t,e,n);return W.jsx(Iz,{node:e,scrollPosition:t,children:W.jsx(Rz,{value:a,children:W.jsx(HI,{value:e,children:W.jsx(lH,{value:o,children:W.jsx(IH,{value:r,children:i})})})})})}const FT="transformTranslateX",kT="transformTranslateY",GT="transformTranslateZ",OT="transformRotateX",HT="transformRotateY",zT="transformRotateZ",VT="transformScaleX",WT="transformScaleY",YT="transformScaleZ",Tz=[FT,kT,GT,OT,HT,zT,VT,WT,YT],Dz=new G,bz=new G,fp=new G,jE=new ft,Lz=new Qu,Nz=new Wi,KE=Math.PI/180;function Pz([n,e,t]){return Nz.setFromEuler(Lz.set(n*KE,e*KE,t*KE))}function Qo(n,e){const t=us(n,Tz,Cz);return Y.useMemo(()=>zn(()=>{const i=t.value;if(i==null)return;const{pixelSize:r,relativeCenter:s}=e,[o,a]=s.value,c=new ft().makeTranslation(o*r,a*r,0),A=i("transformOriginX")??"center",h=i("transformOriginY")??"center";let f=!0;if(A!="center"||h!="center"){const[x,y]=e.size.value;f=!1,fp.set(-sT[A]*x*r,-oT[h]*y*r,0),c.multiply(jE.makeTranslation(fp)),fp.negate()}const d=[i(OT)??0,i(HT)??0,i(zT)??0],m=[i(FT)??0,-(i(kT)??0),i(GT)??0],E=[i(VT)??1,i(WT)??1,i(YT)??1];return(m.some(x=>x!=0)||d.some(x=>x!=0)||E.some(x=>x!=1))&&c.multiply(jE.compose(Dz.fromArray(m).multiplyScalar(r),Pz(d),bz.fromArray(E))),f||c.multiply(jE.makeTranslation(fp)),c}),[t,e])}function Ro(n,e){const t=Y.useMemo(()=>zt([]),[]),i=Y.useMemo(()=>ro(()=>t.value.length>0),[]);let r=!1;if(Lu(e,o=>{o.active!=null&&(r=!0,i(n,o.active))}),!r&&e.onActiveChange==null){t.value.length=0;return}const s=o=>{t.value=t.value.filter(a=>a!=o.pointerId),!(e.onActiveChange==null||t.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{t.value=[o.pointerId,...t.value],!(e.onActiveChange==null||t.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:s,onPointerLeave:s}}Y.forwardRef((n,e)=>{const t=yo(),i=Y.useRef(null),r=Ua(i);Yr(t,r,So);const s=Qo(t,r),o=Oa(s),a=Us(),c=Pa(a,o,r.size,r);Mo(n,r.size),Ga(n,c);const A=Fs(n.panelMaterialClass,n),h=bi(Ai.Panel,n.zIndexOffset,A);Fa(t,o,r.size,void 0,r.borderInset,c,h,a,A,wo);const f=Y.useRef(null),d=Na(),m=bi(Ai.Object,void 0,void 0,h),E=kz(t,f,d,r.cameraDistance,a,m);vo(t,n),Io(t,n),xo(t,n);const x=_o(t,n),y=Ro(t,n),p=Y.useMemo(()=>zn(()=>{const[B,R]=E.value;return B/R}),[E]);(n.keepAspectRatio??!0)&&as(t,"aspectRatio",p),Co(t);const I=Y.useRef(null);Y.useEffect(()=>Kt(()=>{const[B,R]=r.size.value,[M,T,P,K]=r.paddingInset.value,[w,b,q,de]=r.borderInset.value,J=M+w,re=T+b,ne=P+q,ue=K+de,U=B-ue-re,ee=R-J-ne,{pixelSize:te}=r,{current:Ae}=I;Ae==null||Ae.position.set((ue-re)*.5*te,(ne-J)*.5*te,0);const[,Ce,ke]=E.value;Ae==null||Ae.scale.set(U*te,ee*te,n.keepAspectRatio?ee*te*ke/Ce:ke),Ae==null||Ae.updateMatrix()}),[r,n.keepAspectRatio,E]);const C=Zl(r.size,r,h,d);return ka(e,r,C),W.jsxs(Bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:x,activeHandlers:y,children:[W.jsx("primitive",{object:C}),W.jsx("group",{matrixAutoUpdate:!1,ref:I,children:W.jsx("group",{ref:f,matrixAutoUpdate:!1,children:W.jsx(HI,{value:void 0,children:n.children})})})]})});const qE=new ti,Uz=new G().setScalar(.001),Fz=["depthAlign"];function kz(n,e,t,i,r,s){const o=Y.useMemo(()=>zt(new G(1,1,1)),[]),a=$h(r,t),c=us(n,Fz);return Y.useEffect(()=>{const A=e.current;if(A==null)return;A.traverse(m=>{m instanceof on&&(ql(m,i,s),m.material.clippingPlanes=a,m.material.needsUpdate=!0,m.raycast=Nu(m,m.raycast,t,r,s))});const h=A.parent;h==null||h.remove(A),qE.setFromObject(A);const f=new G,d=new G;return qE.getSize(f).max(Uz),o.value=f,A.scale.set(1,1,1).divide(f),h!=null&&h.add(A),qE.getCenter(d),Kt(()=>{const m=c.value;m!=null&&(A.position.copy(d).negate(),A.position.z-=$O[m("depthAlign")??"back"]*f.z,A.position.divide(f),A.updateMatrix())})},[c,i,a,t]),o}const Ct=Y.forwardRef((n,e)=>{const t=yo(),i=Y.useRef(null),r=Ua(i);Yr(t,r,So);const s=Qo(t,r),o=Us(),a=Oa(s),c=Pa(o,a,r.size,r),A=Fs(n.panelMaterialClass,n),h=bi(Ai.Panel,n.zIndexOffset,A);Fa(t,a,r.size,void 0,r.borderInset,c,h,o,A,wo);const f=ef();nf(t,f,r,a,c,n.scrollbarPanelMaterialClass,o,h),vo(t,n),Io(t,n),xo(t,n);const d=_o(t,n),m=Ro(t,n);Co(t),Mo(n,r.size),Ga(n,c);const E=Na(),x=Zl(r.size,r,h,E);return ka(e,r,x,f),W.jsxs(Bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:d,activeHandlers:m,children:[W.jsx(tf,{listeners:n,node:r,scrollPosition:f,children:W.jsx("primitive",{object:x})}),W.jsx(rf,{globalMatrix:a,node:r,orderInfo:h,scrollPosition:f,children:n.children})]})}),Gz=Y.forwardRef((n,e)=>{const t=yo(),i=Y.useRef(null),r=Ua(i);Yr(t,r,So);const s=Qo(t,r),o=Us(),a=Na(),c=$h(o,a),A=bi(Ai.Custom,n.zIndexOffset,void 0),h=Y.useRef(null),f=Oa(s),d=Pa(o,f,r.size,r);Y.useEffect(()=>{const x=h.current;if(x==null)return;x.raycast=Nu(x,x.raycast,a,o,A),ql(x,r.cameraDistance,A),x.material instanceof hi&&(x.material.clippingPlanes=c,x.material.needsUpdate=!0,x.material.shadowSide=Vr);const y=Kt(()=>{const[I,C]=r.size.value;x.scale.set(I*r.pixelSize,C*r.pixelSize,1),x.updateMatrix()}),p=Kt(()=>void(x.visible=!d.value));return()=>{y(),p()}},[c,r,d,o,A,a]),vo(t,n),Io(t,n),xo(t,n);const m=_o(t,n),E=Ro(t,n);return Co(t),Mo(n,r.size),Ga(n,d),ka(e,r,h),W.jsx(Bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:m,activeHandlers:E,children:W.jsx("mesh",{receiveShadow:n.receiveShadow,castShadow:n.castShadow,customDepthMaterial:n.customDepthMaterial,customDistanceMaterial:n.customDistanceMaterial,ref:h,matrixAutoUpdate:!1,geometry:VI,children:W.jsx(HI,{value:void 0,children:n.children})})})}),Oz="fill",Hz=(n,e,t,i)=>{if(n==="opacity"){i("backgroundOpacity",e);return}wo(n,e,t,i)},XT=Y.forwardRef((n,e)=>{const t=yo(),i=aT(Yz,n.src),r=Y.useMemo(()=>zn(()=>{const C=i.value;if(C==null)return;const B=C.source.data;return B.width/B.height}),[i]),s=Y.useRef(null),o=Ua(s);Yr(t,o,So),Vz(t,i,o.borderInset,o.size);const a=Qo(t,o),c=Us(),A=Na(),h=$h(c,A),f=Oa(a),d=Pa(c,f,o.size,o),m=hz(t,o.size,o.borderInset,d,n.materialClass,h,Hz),E=bi(Ai.Image,n.zIndexOffset,void 0),x=Y.useMemo(()=>{const[C,B,R]=m,M=new on(VI,C);return M.matrixAutoUpdate=!1,M.castShadow=n.castShadow??!1,M.receiveShadow=n.receiveShadow??!1,M.customDepthMaterial=B,M.customDistanceMaterial=R,M.raycast=Nu(M,vT(M),A,c,E),ql(M,o.cameraDistance,E),M},[o,m,A,c,E,n.receiveShadow,n.castShadow]),y=ef();nf(t,y,o,f,d,n.scrollbarPanelMaterialClass,c,E),vo(t,n),Io(t,n),xo(t,n);const p=_o(t,n),I=Ro(t,n);return as(t,"backgroundColor",16777215),(n.keepAspectRatio??!0)&&as(t,"aspectRatio",r),Co(t),Mo(n,o.size),Ga(n,d),mi(()=>{const C=i.value??null;x.material.map!==C&&(x.material.map=C,x.material.needsUpdate=!0)},[x,i]),mi(()=>{const[C,B]=o.size.value;x.scale.set(C*o.pixelSize,B*o.pixelSize,1),x.updateMatrix()},[x]),mi(()=>void(x.visible=!d.value),[x,d]),ka(e,o,x,y),W.jsxs(Bo,{groupRef:s,hoverHandlers:p,handlers:n,matrix:a,activeHandlers:I,children:[W.jsx(tf,{listeners:n,node:o,scrollPosition:y,children:W.jsx("primitive",{object:x})}),W.jsx(rf,{globalMatrix:f,node:o,orderInfo:E,scrollPosition:y,children:n.children})]})}),zz=["fit"];function Vz(n,e,t,i){const r=us(n,zz);mi(()=>{const s=r.value,o=e.value;if(o==null||s==null)return;const a=s("fit")??Oz;if(o.matrix.identity(),a==="fill"||o==null){WS(t,i,o);return}const{width:c,height:A}=o.source.data,h=c/A,[f,d]=i.value,[m,E,x,y]=t.value,p=(f-y-E)/(d-m-x);h>p?o.matrix.translate(-(.5*(p-h))/p,0).scale(p/h,1):o.matrix.translate(0,-(.5*(h-p))/h).scale(1,h/p),WS(t,i,o)},[e,t,i])}function WS(n,e,t){const[i,r]=e.value,[s,o,a,c]=n.value,A=i-c-o,h=r-s-a;t.matrix.translate(-1+(c+A)/i,-1+(s+h)/r).scale(i/A,r/h)}const Wz=new wI;async function Yz(n){if(n==null)return Promise.resolve(void 0);if(n instanceof wn)return Promise.resolve(n);try{const e=await Wz.loadAsync(n);return e.colorSpace=On,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function $s(n,e,t){if(e==null)return t;const i=n[e];if(i==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(n).join(", ")}`);return i}function yn(n,e,t){return typeof n=="number"?Math.round(n/e):n??t}const Xz={static:0,relative:1,absolute:2},ZE={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},Jz={column:0,"column-reverse":1,row:2,"row-reverse":3},jz={"no-wrap":0,wrap:1,"wrap-reverse":2},Kz={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},qz={visible:0,hidden:1,scroll:2},Zz={flex:0,none:1},YS={positionType:(n,e,t)=>n.setPositionType($s(Xz,t,0)),positionTop:(n,e,t)=>n.setPosition(1,yn(t,e,NaN)),positionLeft:(n,e,t)=>n.setPosition(0,yn(t,e,NaN)),positionRight:(n,e,t)=>n.setPosition(2,yn(t,e,NaN)),positionBottom:(n,e,t)=>n.setPosition(3,yn(t,e,NaN)),alignContent:(n,e,t)=>n.setAlignContent($s(ZE,t,1)),alignItems:(n,e,t)=>n.setAlignItems($s(ZE,t,4)),alignSelf:(n,e,t)=>n.setAlignSelf($s(ZE,t,0)),flexDirection:(n,e,t)=>n.setFlexDirection($s(Jz,t,0)),flexWrap:(n,e,t)=>n.setFlexWrap($s(jz,t,0)),justifyContent:(n,e,t)=>n.setJustifyContent($s(Kz,t,0)),marginTop:(n,e,t)=>n.setMargin(1,yn(t,e,NaN)),marginLeft:(n,e,t)=>n.setMargin(0,yn(t,e,NaN)),marginRight:(n,e,t)=>n.setMargin(2,yn(t,e,NaN)),marginBottom:(n,e,t)=>n.setMargin(3,yn(t,e,NaN)),flexBasis:(n,e,t)=>n.setFlexBasis(yn(t,e,NaN)),flexGrow:(n,e,t)=>n.setFlexGrow(t??0),flexShrink:(n,e,t)=>n.setFlexShrink(t??0),width:(n,e,t)=>n.setWidth(yn(t,e,NaN)),height:(n,e,t)=>n.setHeight(yn(t,e,NaN)),minWidth:(n,e,t)=>n.setMinWidth(yn(t,e,NaN)),minHeight:(n,e,t)=>n.setMinHeight(yn(t,e,NaN)),maxWidth:(n,e,t)=>n.setMaxWidth(yn(t,e,NaN)),maxHeight:(n,e,t)=>n.setMaxHeight(yn(t,e,NaN)),aspectRatio:(n,e,t)=>n.setAspectRatio(t??NaN),borderTop:(n,e,t)=>n.setBorder(1,yn(t,e,NaN)),borderLeft:(n,e,t)=>n.setBorder(0,yn(t,e,NaN)),borderRight:(n,e,t)=>n.setBorder(2,yn(t,e,NaN)),borderBottom:(n,e,t)=>n.setBorder(3,yn(t,e,NaN)),overflow:(n,e,t)=>n.setOverflow($s(qz,t,0)),display:(n,e,t)=>n.setDisplay($s(Zz,t,0)),paddingTop:(n,e,t)=>n.setPadding(1,yn(t,e,NaN)),paddingLeft:(n,e,t)=>n.setPadding(0,yn(t,e,NaN)),paddingRight:(n,e,t)=>n.setPadding(2,yn(t,e,NaN)),paddingBottom:(n,e,t)=>n.setPadding(3,yn(t,e,NaN)),gapRow:(n,e,t)=>n.setGap(1,yn(t,e,NaN)),gapColumn:(n,e,t)=>n.setGap(0,yn(t,e,NaN))};function $z(n,e){return n.L===e.L}function e5(n,e,t){if(t==null){n.setMeasureFunc(null);return}n.setMeasureFunc((i,r,s,o)=>{const a=t(i*e,r,s*e,o);return{width:Math.ceil(Math.ceil(a.width)/e),height:Math.ceil(Math.ceil(a.height)/e)}}),n.markDirty()}class XI{constructor(e,t,i,r,s,o,a){We(this,"size",zt([0,0]));We(this,"relativeCenter",zt([0,0]));We(this,"borderInset",zt([0,0,0,0]));We(this,"paddingInset",zt([0,0,0,0]));We(this,"overflow",zt(ki.Overflow.Visible));We(this,"maxScrollPosition",zt([void 0,void 0]));We(this,"scrollable",zt([!1,!1]));We(this,"children",[]);We(this,"yogaNode");We(this,"unsubscribeYoga");We(this,"layoutChangeListeners",new Set);We(this,"requestCalculateLayout");We(this,"active",zt(!1));this.groupRef=e,this.cameraDistance=t,this.yoga=i,this.precision=r,this.pixelSize=s,this.anyAncestorScrollable=a,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=Kt(()=>{var c;i.value!=null&&((c=this.unsubscribeYoga)==null||c.call(this),this.unsubscribeYoga=void 0,this.yogaNode=i.value.Node.create(),this.active.value=!0)})}setProperty(e,t){e==="measureFunc"?e5(this.yogaNode,this.precision,t):YS[e](this.yogaNode,this.precision,t),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in YS}destroy(){var e,t;(e=this.unsubscribeYoga)==null||e.call(this),(t=this.yogaNode)==null||t.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),jR(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new XI(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,zn(()=>{var a;const[i,r]=((a=this.anyAncestorScrollable)==null?void 0:a.value)??[!1,!1],[s,o]=this.scrollable.value;return[i||s,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((a,c)=>{var m,E;if(e??(e=(E=(m=a.groupRef.current)==null?void 0:m.parent)==null?void 0:E.children),e==null)return 0;const A=a.groupRef.current,h=c.groupRef.current;if(A==null||h==null)return 0;const f=e.indexOf(A);if(f===-1)throw new Error("parent mismatch");const d=e.indexOf(h);if(d===-1)throw new Error("parent mismatch");return f-d});let t=0,i=this.yogaNode.getChild(t),r=this.children[t];for(;r!=null||i!=null;){if(r!=null&&i!=null&&$z(i,JS(r.yogaNode))){r=this.children[++t],i=this.yogaNode.getChild(t);continue}if(i!=null&&this.yogaNode.removeChild(i),r!=null){const a=JS(r.yogaNode);(o=a.getParent())==null||o.removeChild(a),this.yogaNode.insertChild(a,t),r=this.children[++t]}i=this.yogaNode.getChild(t)}const s=this.children.length;for(let a=0;a0,P>0)}else Nc(this.maxScrollPosition,void 0,void 0),Nc(this.scrollable,!1,!1);const B=this.overflow.value===ki.Overflow.Visible;return[s+Math.max(i,B?I:0),o+Math.max(r,B?C:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function Nc(n,e,t){const[i,r]=n.value;i===e&&r===t||(n.value=[e,t])}function XS(n,e,t,i,r){const[s,o,a,c]=n.value;s==e&&o==t&&a==i&&c==r||(n.value=[e,t,i,r])}function JS(n){if(n==null)throw new Error("commit cannot be called with a children that miss a yoga node");return n}const t5=.1,JT=.002,dp=new An,jS=new G,n5=Y.forwardRef((n,e)=>{const t=yo(),i=UI(P=>P.gl);Y.useEffect(()=>CH(i),[i]);const{sizeX:r,sizeY:s}=n,[o,a]=Y.useMemo(()=>[n.precision??t5,n.pixelSize??JT],[]),c=eH(),A=Y.useMemo(()=>({current:0}),[]),h=Y.useRef(null),f=JH(),d=Y.useMemo(()=>new XI(h,A,c,o,a,f,void 0),[f,h,c]);Yr(t,d,So),Y.useEffect(()=>()=>d.destroy(),[d]);const m=Qo(t,d),E=Y.useMemo(()=>{const P=new Gr;return P.matrixAutoUpdate=!1,P},[]),x=fz(a,d.cameraDistance,E),y=LH(a,d.cameraDistance,E),p=Fs(n.panelMaterialClass,n),I=bi(Ai.Panel,void 0,p),C=r5(m,d.size,a,n),B=ef();nf(t,B,d,C,void 0,n.scrollbarPanelMaterialClass,void 0,I,x),Fa(t,C,d.size,void 0,d.borderInset,void 0,I,void 0,p,wo,x),vo(t,n),Io(t,n),xo(t,n,d.size);const R=_o(t,n),M=Ro(t,n);as(t,"width",KS(r,a)),as(t,"height",KS(s,a)),Co(t),Mo(n,d.size);const T=Zl(d.size,d,I,h);return ka(e,d,T,B),ba(({camera:P})=>{dp.normal.set(0,0,1),dp.constant=0,dp.applyMatrix4(T.matrixWorld),jS.setFromMatrixPosition(P.matrixWorld),A.current=dp.distanceToPoint(jS)}),W.jsxs(W.Fragment,{children:[W.jsx("primitive",{object:E}),W.jsx(Bo,{groupRef:h,matrix:C,handlers:n,hoverHandlers:R,activeHandlers:M,children:W.jsx(tH,{value:h,children:W.jsx(bH,{value:y,children:W.jsxs(dz,{value:x,children:[W.jsx(tf,{node:d,scrollPosition:B,listeners:n,children:W.jsx("primitive",{object:T})}),W.jsx(YH,{value:d.size,children:W.jsx(rf,{globalMatrix:C,node:d,orderInfo:I,scrollPosition:B,children:n.children})})]})})})})]})});function KS(n,e){return Y.useMemo(()=>n===void 0?void 0:n instanceof Vn?zn(()=>{const t=n.value;if(t!=null)return t/e}):n/e,[n,e])}const i5=new ft;function r5(n,e,t,{anchorX:i="center",anchorY:r="center"}){return Y.useMemo(()=>zn(()=>{var a;const[s,o]=e.value;return(a=n.value)==null?void 0:a.clone().premultiply(i5.makeTranslation(sT[i]*s*t,oT[r]*o*t,0))}),[n,e,i,r,t])}const s5=On;class Pu extends ji{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,i,r){const s=this,o=new Ls(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(a){try{t(s.parse(a))}catch(c){r?r(c):console.error(c),s.manager.itemError(e)}},i,r)}parse(e){const t=this;function i(V,O){if(V.nodeType!==1)return;const k=B(V);let F=!1,me=null;switch(V.nodeName){case"svg":O=E(V,O);break;case"style":s(V);break;case"g":O=E(V,O);break;case"path":O=E(V,O),V.hasAttribute("d")&&(me=r(V));break;case"rect":O=E(V,O),me=c(V);break;case"polygon":O=E(V,O),me=A(V);break;case"polyline":O=E(V,O),me=h(V);break;case"circle":O=E(V,O),me=f(V);break;case"ellipse":O=E(V,O),me=d(V);break;case"line":O=E(V,O),me=m(V);break;case"defs":F=!0;break;case"use":O=E(V,O);const Be=(V.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),H=V.viewportElement.getElementById(Be);H?i(H,O):console.warn("SVGLoader: 'use node' references non-existent node id: "+Be);break}me&&(O.fill!==void 0&&O.fill!=="none"&&me.color.setStyle(O.fill,s5),M(me,Ae),q.push(me),me.userData={node:V,style:O});const Ie=V.childNodes;for(let oe=0;oe0?Ae.copy(J[J.length-1]):Ae.identity())}function r(V){const O=new $o,k=new _e,F=new _e,me=new _e;let Ie=!0,oe=!1;const Be=V.getAttribute("d");if(Be===""||Be==="none")return null;const H=Be.match(/[a-df-z][^a-df-z]*/ig);for(let Ee=0,ie=H.length;Ee0&&(k.copy(me),O.currentPath.currentPoint.copy(k),Ie=!0);break;default:console.warn(le)}oe=!1}return O}function s(V){if(!(!V.sheet||!V.sheet.cssRules||!V.sheet.cssRules.length))for(let O=0;Ome.trim());for(let me=0;meoe!==""));de[F[me]]=Object.assign(de[F[me]]||{},Ie)}}}function o(V,O,k,F,me,Ie,oe,Be){if(O==0||k==0){V.lineTo(Be.x,Be.y);return}F=F*Math.PI/180,O=Math.abs(O),k=Math.abs(k);const H=(oe.x-Be.x)/2,Ee=(oe.y-Be.y)/2,ie=Math.cos(F)*H+Math.sin(F)*Ee,le=-Math.sin(F)*H+Math.cos(F)*Ee;let fe=O*O,Te=k*k;const $=ie*ie,S=le*le,D=$/fe+S/Te;if(D>1){const Ne=Math.sqrt(D);O=Ne*O,k=Ne*k,fe=O*O,Te=k*k}const se=fe*S+Te*$,be=(fe*Te-se)/se;let De=Math.sqrt(Math.max(0,be));me===Ie&&(De=-De);const Qe=De*O*le/k,Xe=-De*k*ie/O,ze=Math.cos(F)*Qe-Math.sin(F)*Xe+(oe.x+Be.x)/2,Ke=Math.sin(F)*Qe+Math.cos(F)*Xe+(oe.y+Be.y)/2,at=a(1,0,(ie-Qe)/O,(le-Xe)/k),vt=a((ie-Qe)/O,(le-Xe)/k,(-ie-Qe)/O,(-le-Xe)/k)%(Math.PI*2);V.currentPath.absellipse(ze,Ke,O,k,at,at+vt,Ie===0,F)}function a(V,O,k,F){const me=V*k+O*F,Ie=Math.sqrt(V*V+O*O)*Math.sqrt(k*k+F*F);let oe=Math.acos(Math.max(-1,Math.min(1,me/Ie)));return V*F-O*k<0&&(oe=-oe),oe}function c(V){const O=C(V.getAttribute("x")||0),k=C(V.getAttribute("y")||0),F=C(V.getAttribute("rx")||V.getAttribute("ry")||0),me=C(V.getAttribute("ry")||V.getAttribute("rx")||0),Ie=C(V.getAttribute("width")),oe=C(V.getAttribute("height")),Be=1-.551915024494,H=new $o;return H.moveTo(O+F,k),H.lineTo(O+Ie-F,k),(F!==0||me!==0)&&H.bezierCurveTo(O+Ie-F*Be,k,O+Ie,k+me*Be,O+Ie,k+me),H.lineTo(O+Ie,k+oe-me),(F!==0||me!==0)&&H.bezierCurveTo(O+Ie,k+oe-me*Be,O+Ie-F*Be,k+oe,O+Ie-F,k+oe),H.lineTo(O+F,k+oe),(F!==0||me!==0)&&H.bezierCurveTo(O+F*Be,k+oe,O,k+oe-me*Be,O,k+oe-me),H.lineTo(O,k+me),(F!==0||me!==0)&&H.bezierCurveTo(O,k+me*Be,O+F*Be,k,O+F,k),H}function A(V){function O(Ie,oe,Be){const H=C(oe),Ee=C(Be);me===0?F.moveTo(H,Ee):F.lineTo(H,Ee),me++}const k=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new $o;let me=0;return V.getAttribute("points").replace(k,O),F.currentPath.autoClose=!0,F}function h(V){function O(Ie,oe,Be){const H=C(oe),Ee=C(Be);me===0?F.moveTo(H,Ee):F.lineTo(H,Ee),me++}const k=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new $o;let me=0;return V.getAttribute("points").replace(k,O),F.currentPath.autoClose=!1,F}function f(V){const O=C(V.getAttribute("cx")||0),k=C(V.getAttribute("cy")||0),F=C(V.getAttribute("r")||0),me=new ya;me.absarc(O,k,F,0,Math.PI*2);const Ie=new $o;return Ie.subPaths.push(me),Ie}function d(V){const O=C(V.getAttribute("cx")||0),k=C(V.getAttribute("cy")||0),F=C(V.getAttribute("rx")||0),me=C(V.getAttribute("ry")||0),Ie=new ya;Ie.absellipse(O,k,F,me,0,Math.PI*2);const oe=new $o;return oe.subPaths.push(Ie),oe}function m(V){const O=C(V.getAttribute("x1")||0),k=C(V.getAttribute("y1")||0),F=C(V.getAttribute("x2")||0),me=C(V.getAttribute("y2")||0),Ie=new $o;return Ie.moveTo(O,k),Ie.lineTo(F,me),Ie.currentPath.autoClose=!1,Ie}function E(V,O){O=Object.assign({},O);let k={};if(V.hasAttribute("class")){const oe=V.getAttribute("class").split(/\s/).filter(Boolean).map(Be=>Be.trim());for(let Be=0;Be0&&O.premultiply(J[J.length-1]),Ae.copy(O),J.push(O),O}function R(V){const O=new Rt,k=re;if(V.nodeName==="use"&&(V.hasAttribute("x")||V.hasAttribute("y"))){const F=C(V.getAttribute("x")),me=C(V.getAttribute("y"));O.translate(F,me)}if(V.hasAttribute("transform")){const F=V.getAttribute("transform").split(")");for(let me=F.length-1;me>=0;me--){const Ie=F[me].trim();if(Ie==="")continue;const oe=Ie.indexOf("("),Be=Ie.length;if(oe>0&&oe=1){const ie=Ee[0];let le=0;Ee.length>=2&&(le=Ee[1]),k.translate(ie,le)}break;case"rotate":if(Ee.length>=1){let ie=0,le=0,fe=0;ie=Ee[0]*Math.PI/180,Ee.length>=3&&(le=Ee[1],fe=Ee[2]),ne.makeTranslation(-le,-fe),ue.makeRotation(ie),U.multiplyMatrices(ue,ne),ne.makeTranslation(le,fe),k.multiplyMatrices(ne,U)}break;case"scale":if(Ee.length>=1){const ie=Ee[0];let le=ie;Ee.length>=2&&(le=Ee[1]),k.scale(ie,le)}break;case"skewX":Ee.length===1&&k.set(1,Math.tan(Ee[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":Ee.length===1&&k.set(1,0,0,Math.tan(Ee[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":Ee.length===6&&k.set(Ee[0],Ee[2],Ee[4],Ee[1],Ee[3],Ee[5],0,0,1);break}}O.premultiply(k)}}return O}function M(V,O){function k(oe){te.set(oe.x,oe.y,1).applyMatrix3(O),oe.set(te.x,te.y)}function F(oe){const Be=oe.xRadius,H=oe.yRadius,Ee=Math.cos(oe.aRotation),ie=Math.sin(oe.aRotation),le=new G(Be*Ee,Be*ie,0),fe=new G(-H*ie,H*Ee,0),Te=le.applyMatrix3(O),$=fe.applyMatrix3(O),S=re.set(Te.x,$.x,0,Te.y,$.y,0,0,0,1),D=ne.copy(S).invert(),De=ue.copy(D).transpose().multiply(D).elements,Qe=b(De[0],De[1],De[4]),Xe=Math.sqrt(Qe.rt1),ze=Math.sqrt(Qe.rt2);if(oe.xRadius=1/Xe,oe.yRadius=1/ze,oe.aRotation=Math.atan2(Qe.sn,Qe.cs),!((oe.aEndAngle-oe.aStartAngle)%(2*Math.PI){const{x:dt,y:ot}=new G(Math.cos(wt),Math.sin(wt),0).applyMatrix3(Ne);return Math.atan2(ot,dt)};oe.aStartAngle=Nt(oe.aStartAngle),oe.aEndAngle=Nt(oe.aEndAngle),T(O)&&(oe.aClockwise=!oe.aClockwise)}}function me(oe){const Be=K(O),H=w(O);oe.xRadius*=Be,oe.yRadius*=H;const Ee=Be>Number.EPSILON?Math.atan2(O.elements[1],O.elements[0]):Math.atan2(-O.elements[3],O.elements[4]);oe.aRotation+=Ee,T(O)&&(oe.aStartAngle*=-1,oe.aEndAngle*=-1,oe.aClockwise=!oe.aClockwise)}const Ie=V.subPaths;for(let oe=0,Be=Ie.length;oeNumber.EPSILON}function K(V){const O=V.elements;return Math.sqrt(O[0]*O[0]+O[1]*O[1])}function w(V){const O=V.elements;return Math.sqrt(O[3]*O[3]+O[4]*O[4])}function b(V,O,k){let F,me,Ie,oe,Be;const H=V+k,Ee=V-k,ie=Math.sqrt(Ee*Ee+4*O*O);return H>0?(F=.5*(H+ie),Be=1/F,me=V*Be*k-O*Be*O):H<0?me=.5*(H-ie):(F=.5*ie,me=-.5*ie),Ee>0?Ie=Ee+ie:Ie=Ee-ie,Math.abs(Ie)>2*Math.abs(O)?(Be=-2*O/Ie,oe=1/Math.sqrt(1+Be*Be),Ie=Be*oe):Math.abs(O)===0?(Ie=1,oe=0):(Be=-.5*Ie/O,Ie=1/Math.sqrt(1+Be*Be),oe=Be*Ie),Ee>0&&(Be=Ie,Ie=-oe,oe=Be),{rt1:F,rt2:me,cs:Ie,sn:oe}}const q=[],de={},J=[],re=new Rt,ne=new Rt,ue=new Rt,U=new Rt,ee=new _e,te=new G,Ae=new Rt,Ce=new DOMParser().parseFromString(e,"image/svg+xml");return i(Ce.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:q,xml:Ce.documentElement}}static createShapes(e){const i={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:i.ORIGIN,t:0};function s(x,y,p,I){const C=x.x,B=y.x,R=p.x,M=I.x,T=x.y,P=y.y,K=p.y,w=I.y,b=(M-R)*(T-K)-(w-K)*(C-R),q=(B-C)*(T-K)-(P-T)*(C-R),de=(w-K)*(B-C)-(M-R)*(P-T),J=b/de,re=q/de;if(de===0&&b!==0||J<=0||J>=1||re<0||re>1)return null;if(b===0&&de===0){for(let ne=0;ne<2;ne++)if(o(ne===0?p:I,x,y),r.loc==i.ORIGIN){const ue=ne===0?p:I;return{x:ue.x,y:ue.y,t:r.t}}else if(r.loc==i.BETWEEN){const ue=+(C+r.t*(B-C)).toPrecision(10),U=+(T+r.t*(P-T)).toPrecision(10);return{x:ue,y:U,t:r.t}}return null}else{for(let U=0;U<2;U++)if(o(U===0?p:I,x,y),r.loc==i.ORIGIN){const ee=U===0?p:I;return{x:ee.x,y:ee.y,t:r.t}}const ne=+(C+J*(B-C)).toPrecision(10),ue=+(T+J*(P-T)).toPrecision(10);return{x:ne,y:ue,t:J}}}function o(x,y,p){const I=p.x-y.x,C=p.y-y.y,B=x.x-y.x,R=x.y-y.y,M=I*R-B*C;if(x.x===y.x&&x.y===y.y){r.loc=i.ORIGIN,r.t=0;return}if(x.x===p.x&&x.y===p.y){r.loc=i.DESTINATION,r.t=1;return}if(M<-Number.EPSILON){r.loc=i.LEFT;return}if(M>Number.EPSILON){r.loc=i.RIGHT;return}if(I*B<0||C*R<0){r.loc=i.BEHIND;return}if(Math.sqrt(I*I+C*C)w.t<=K.t+Number.EPSILON&&w.t>=K.t-Number.EPSILON)===void 0&&(p.push(K),I.push(new _e(K.x,K.y)))}}return I}function c(x,y,p){const I=new _e;y.getCenter(I);const C=[];return p.forEach(B=>{B.boundingBox.containsPoint(I)&&a(x,B.points).forEach(M=>{C.push({identifier:B.identifier,isCW:B.isCW,point:M})})}),C.sort((B,R)=>B.point.x-R.point.x),C}function A(x,y,p,I,C){(C==null||C==="")&&(C="nonzero");const B=new _e;x.boundingBox.getCenter(B);const R=[new _e(p,B.y),new _e(I,B.y)],M=c(R,x.boundingBox,y);M.sort((q,de)=>q.point.x-de.point.x);const T=[],P=[];M.forEach(q=>{q.identifier===x.identifier?T.push(q):P.push(q)});const K=T[0].point.x,w=[];let b=0;for(;b0&&w[w.length-1]===P[b].identifier?w.pop():w.push(P[b].identifier),b++;if(w.push(x.identifier),C==="evenodd"){const q=w.length%2===0,de=w[w.length-2];return{identifier:x.identifier,isHole:q,for:de}}else if(C==="nonzero"){let q=!0,de=null,J=null;for(let re=0;re{const y=x.getPoints();let p=-999999999,I=999999999,C=-999999999,B=999999999;for(let R=0;Rp&&(p=M.y),M.yC&&(C=M.x),M.x=B&&(h=B-1),{curves:x.curves,points:y,isCW:os.isClockWise(y),identifier:-1,boundingBox:new SR(new _e(B,I),new _e(C,p))}});d=d.filter(x=>x.points.length>1);for(let x=0;xA(x,d,h,f,e.userData?e.userData.style.fillRule:void 0)),E=[];return d.forEach(x=>{if(!m[x.identifier].isHole){const p=new Ca;p.curves=x.curves,m.filter(C=>C.isHole&&C.for===x.identifier).forEach(C=>{const B=d[C.identifier],R=new ya;R.curves=B.curves,p.holes.push(R)}),E.push(p)}}),E}static getStrokeStyle(e,t,i,r,s){return e=e!==void 0?e:1,t=t!==void 0?t:"#000",i=i!==void 0?i:"miter",r=r!==void 0?r:"butt",s=s!==void 0?s:4,{strokeColor:t,strokeWidth:e,strokeLineJoin:i,strokeLineCap:r,strokeMiterLimit:s}}static pointsToStroke(e,t,i,r){const s=[],o=[],a=[];if(Pu.pointsToStrokeWithBuffers(e,t,i,r,s,o,a)===0)return null;const c=new Lt;return c.setAttribute("position",new st(s,3)),c.setAttribute("normal",new st(o,3)),c.setAttribute("uv",new st(a,2)),c}static pointsToStrokeWithBuffers(e,t,i,r,s,o,a,c){const A=new _e,h=new _e,f=new _e,d=new _e,m=new _e,E=new _e,x=new _e,y=new _e,p=new _e,I=new _e,C=new _e,B=new _e,R=new _e,M=new _e,T=new _e,P=new _e,K=new _e;i=i!==void 0?i:12,r=r!==void 0?r:.001,c=c!==void 0?c:0,e=Ee(e);const w=e.length;if(w<2)return 0;const b=e[0].equals(e[w-1]);let q,de=e[0],J;const re=t.strokeWidth/2,ne=1/(w-1);let ue=0,U,ee,te,Ae,Ce=!1,ke=0,V=c*3,O=c*2;k(e[0],e[1],A).multiplyScalar(re),y.copy(e[0]).sub(A),p.copy(e[0]).add(A),I.copy(y),C.copy(p);for(let ie=1;ieNumber.EPSILON){const Te=re/fe;f.multiplyScalar(-Te),d.subVectors(q,de),m.copy(d).setLength(Te).add(f),P.copy(m).negate();const $=m.length(),S=d.length();d.divideScalar(S),E.subVectors(J,q);const D=E.length();switch(E.divideScalar(D),d.dot(P)=r&&fe.push(ie[Te]);return fe.push(ie[ie.length-1]),fe}}}const o5=new Pu,pp=new ti,hl=new G;async function a5(n,e,t=or,i,r,s,o){const a=new Gr;a.matrixAutoUpdate=!1;const c=await o5.loadAsync(n);pp.makeEmpty();for(const f of c.paths){const d=Pu.createShapes(f),m=new t;m.transparent=!0,m.depthWrite=!1,m.toneMapped=!1,m.clippingPlanes=i;for(const E of d){const x=new Du(E);x.computeBoundingBox(),pp.union(x.boundingBox);const y=new on(x,m);y.matrixAutoUpdate=!1,y.raycast=Nu(y,y.raycast,s,r,o),ql(y,e,o),y.userData.color=f.color,y.scale.y=-1,y.updateMatrix(),a.add(y)}}pp.getSize(hl);const A=hl.x/hl.y,h=1/hl.y;return a.scale.set(1,1,1).multiplyScalar(h),pp.getCenter(hl),hl.y*=-1,a.position.copy(hl).negate().multiplyScalar(h),a.updateMatrix(),Object.assign(a,{aspectRatio:A})}const qS=new Je,l5=["color","opacity"];Y.forwardRef((n,e)=>{const t=yo(),i=Y.useRef(null),r=Ua(i);Yr(t,r,So);const s=Qo(t,r),o=Oa(s),a=Us(),c=Pa(a,o,r.size,r),A=Fs(n.panelMaterialClass,n),h=bi(Ai.Panel,n.zIndexOffset,A);Fa(t,o,r.size,void 0,r.borderInset,c,h,a,A,wo);const f=Na(),d=$h(a,f),m=bi(Ai.Svg,void 0,void 0,h),E=aT(a5,n.src,r.cameraDistance,n.materialClass,d,a,f,m),x=us(t,l5);mi(()=>{var w;const M=x.value;if(M==null)return;const T=M("color"),P=M("opacity");let K;Array.isArray(T)?K=qS.setRGB(...T):T!=null&&(K=qS.set(T)),(w=E.value)==null||w.traverse(b=>{if(!(b instanceof on))return;b.receiveShadow=n.receiveShadow??!1,b.castShadow=n.castShadow??!1;const q=b.material;q.color.copy(K??b.userData.color),q.opacity=P??1})},[E,n.color,n.receiveShadow,n.castShadow]);const y=Y.useMemo(()=>zn(()=>{var M;return(M=E.value)==null?void 0:M.aspectRatio}),[E]),p=ef();nf(t,p,r,o,c,n.scrollbarPanelMaterialClass,a,m),vo(t,n),Io(t,n),xo(t,n);const I=_o(t,n),C=Ro(t,n);as(t,"aspectRatio",y),Co(t),Mo(n,r.size),Ga(n,c);const B=Y.useMemo(()=>{const M=new Gr;return M.matrixAutoUpdate=!1,M},[]);mi(()=>{var K;const[M,T,P]=lT(r.size,r.paddingInset,r.borderInset,r.pixelSize,((K=E.value)==null?void 0:K.aspectRatio)??1);B.position.set(M,T,0),B.scale.setScalar(P),B.updateMatrix()},[r,E]),mi(()=>{const M=E.value;if(M!=null)return B.add(M),()=>B.remove(M)},[E,B]),mi(()=>void(B.visible=!c.value),[]);const R=Zl(r.size,r,h,f);return ka(e,r,R,p),W.jsxs(Bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:I,activeHandlers:C,children:[W.jsxs(tf,{listeners:n,node:r,scrollPosition:p,children:[W.jsx("primitive",{object:R}),W.jsx("primitive",{object:B})]}),W.jsx(rf,{globalMatrix:o,node:r,orderInfo:m,scrollPosition:p,children:n.children})]})});const Et=Y.forwardRef((n,e)=>{const t=yo(),i=Y.useRef(null),r=Ua(i);Yr(t,r,So);const s=Qo(t,r),o=Na(),a=Oa(s),c=Us(),A=Pa(c,a,r.size,r);Mo(n,r.size),Ga(n,A);const h=Fs(n.panelMaterialClass,n),f=bi(Ai.Panel,n.zIndexOffset,h);Fa(t,a,r.size,void 0,r.borderInset,A,f,c,h,wo);const d=mT(t,n.children,a,r,A,c,f);vo(t,n),Io(t,n),xo(t,n);const m=_o(t,n),E=Ro(t,n);as(t,"measureFunc",d),Co(t);const x=Zl(r.size,r,f,o);return ka(e,r,x),W.jsx(Bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:m,activeHandlers:E,children:W.jsx("primitive",{object:x})})});function c5(n,e,t){const i=Y.useMemo(()=>ro(()=>t.value),[t]);Lu(e,r=>{r.focus!=null&&i(n,r.focus)})}const u5=zt([0,0,0,0]),ZS=1.5,$S=(n,e,t,i)=>{n=="color"&&i("backgroundColor",e)};function A5(n,e,t,i,r,s,o){const a=o??YI(),c=Fs(void 0,{castShadow:!1,receiveShadow:!1}),A=bi(Ai.Panel,void 0,c,r),h=Y.useMemo(()=>zt(void 0),[]),f=Y.useMemo(()=>Kt(()=>{const x=t.value;x==null&&(h.value=void 0),h.value=x;const y=setInterval(()=>h.value=h.peek()==null?x:void 0,500);return()=>clearInterval(y)}),[h,t]);Y.useEffect(()=>f,[f]);const d=Y.useMemo(()=>new WI(a(A.majorIndex,c),e,zn(()=>{const x=h.value;return x==null?[0,0]:[ZS,x[2]]}),zn(()=>{const x=h.value;return x==null?[0,0]:[x[0]-ZS/2,x[1]]}),u5,s,i,A.minorIndex),[a,A,c,e,s,i,h]),m=n.length;Yr(n,d,$S),Em(n,d,$S);const E=n.length;for(let x=m;x()=>d.destroy(),[d])}const h5=zt([0,0,0,0]);function f5(n,e,t,i,r,s){const o=s??YI(),a=Y.useMemo(()=>[],[]),c=Fs(void 0,{castShadow:!1,receiveShadow:!1}),A=bi(Ai.Panel,void 0,c,i),h=Y.useMemo(()=>Kt(()=>{const f=e.value,d=f.length;for(let E=0;E{if(R==="backgroundColor")return 11851775;if(R==="backgroundOpacity")return 1};const B=Kt(()=>{C.active.value&&(C.setProperty("backgroundColor",11851775),C.setProperty("backgroundOpacity",1))});a[E]=x={unsubscribe:B,panel:C,offset:I,size:p}}const y=f[E];x.size.value=y.size,x.offset.value=y.position}const m=a.length;for(let E=d;E()=>{h();const f=a.length;for(let d=0;d{const t=Y.useMemo(()=>zt(n.defaultValue??""),[]),i=Y.useMemo(()=>n.value??t,[n.value,t]),r=Y.useRef(n.onValueChange);r.current=n.onValueChange;const s=Y.useRef(void 0),o=n.value!=null,a=Y.useCallback(re=>{var ne;o||(t.value=re),(ne=r.current)==null||ne.call(r,re)},[t,o]),c=Y.useMemo(()=>zt(void 0),[]),A=g5(i,c,a,n.multiline);A.tabIndex=n.tabIndex??0,A.disabled=n.disabled??!1;const h=Y.useMemo(()=>zt(document.activeElement===A),[]);Y.useEffect(()=>{const re=()=>h.value=document.activeElement===A;return A.addEventListener("focus",re),A.addEventListener("blur",re),()=>{A.removeEventListener("focus",re),A.removeEventListener("blur",re)}},[A,h]);const f=Y.useCallback(re=>{h.peek()!==re&&(re?A.focus():A.blur())},[h,A]),d=yo(),m=Y.useRef(null),E=Ua(m);Yr(d,E,So);const x=Qo(d,E),y=Na(),p=Oa(x),I=Us(),C=Pa(I,p,E.size,E);Mo(n,E.size),Ga(n,C);const B=Fs(n.panelMaterialClass,n),R=bi(Ai.Panel,n.zIndexOffset,B);Fa(d,p,E.size,void 0,E.borderInset,C,R,I,B,wo);const M=Y.useMemo(()=>zt([]),[]),T=Y.useMemo(()=>zt(void 0),[]),P=f5(p,M,C,R,I);A5(d,p,T,C,R,I);const K=Zl(E.size,E,R,y),w=Y.useRef(),b=mT(d,i,p,E,C,I,P,c,M,T,w),q=n.disabled??!1;vo(d,n),Io(d,n),xo(d,n);const de=_o(d,n,q?void 0:"text"),J=Ro(d,n);return c5(d,n,h),as(d,"measureFunc",b),Co(d),Y.useImperativeHandle(e,()=>({focus:()=>f(!0),value:i,borderInset:E.borderInset,paddingInset:E.paddingInset,pixelSize:E.pixelSize,center:E.relativeCenter,size:E.size,interactionPanel:K}),[K,E,i,f]),W.jsx(Bo,{groupRef:m,matrix:x,handlers:n,inputHandlers:q?void 0:{onPointerDown:re=>{var ue;if((ue=n.onPointerDown)==null||ue.call(n,re),re.defaultPrevented||re.uv==null||w.current==null)return;p5(re.nativeEvent),re.stopPropagation();const ne=ew(E,re.uv,w.current);s.current=ne,setTimeout(()=>{f(!0),c.value=[ne,ne],A.setSelectionRange(ne,ne)})},onPointerUp:re=>{var ne;(ne=n.onPointerUp)==null||ne.call(n,re),s.current=void 0},onPointerMove:re=>{var te;if((te=n.onPointerMove)==null||te.call(n,re),s.current==null||re.uv==null||w.current==null)return;re.stopPropagation();const ne=ew(E,re.uv,w.current),ue=Math.min(s.current,ne),U=Math.max(s.current,ne),ee=s.current{f(!0),c.value=[ue,U],A.setSelectionRange(ue,U,ee)})}},hoverHandlers:de,activeHandlers:J,children:W.jsx("primitive",{object:K})})});function g5(n,e,t,i=!1){const r=Y.useMemo(()=>{const s=document.createElement(i?"textarea":"input"),o=s.style;o.setProperty("position","absolute"),o.setProperty("left","-1000vw"),o.setProperty("pointerEvents","none"),o.setProperty("opacity","0"),s.addEventListener("input",()=>{t==null||t(s.value),a()});const a=()=>{const{selectionStart:c,selectionEnd:A}=s;if(c==null||A==null){e.value=void 0;return}const h=e.peek();h!=null&&h[0]===c&&h[1]===A||(e.value=[c,A])};return s.addEventListener("keydown",a),s.addEventListener("keyup",a),s.addEventListener("blur",()=>e.value=void 0),document.body.appendChild(s),s},[t,e,i]);return mi(()=>{r.value=xg(n)},[n]),Y.useEffect(()=>()=>r.remove(),[r]),r}function ew({size:n,borderInset:e,paddingInset:t},i,r){const[s,o]=n.peek(),[a,,,c]=e.peek(),[A,,,h]=t.peek(),f=i.x*s-c-h,d=-i.y*o+a+A;return r.getCharIndex(f,d)}const m5=Y.forwardRef((n,e)=>{const t=qh(),i=n.pixelSize??JT,[r,s]=Y.useMemo(()=>{const{width:A,height:h}=t.getState().size;return[zt(A*i),zt(h*i)]},[i,t]);Y.useEffect(()=>{const A=h=>{jR(()=>{r.value=h.size.width*i,s.value=h.size.height*i})};return A(t.getState()),t.subscribe(A)},[i,r,s,t]);const o=UI(A=>A.camera),a=Y.useRef(null);ba(()=>{if(a.current==null)return;let A=1;o instanceof $n&&(A=s.peek()/(2*Math.tan(o.fov/360*Math.PI))),a.current.position.z=-A,a.current.updateMatrix()});const c=n.attachCamera??!0;return W.jsxs(W.Fragment,{children:[c&&W.jsx("primitive",{object:o}),VR(W.jsx("group",{ref:a,matrixAutoUpdate:!1,children:W.jsx(n5,{ref:e,...n,sizeX:r,sizeY:s,children:n.children})}),o)]})}),tw=new Je,E5=["color","opacity"],y5=new Pu,Ha=Y.forwardRef((n,e)=>{const t=yo(),i=Y.useRef(null),r=Ua(i);Yr(t,r,So);const s=Qo(t,r),o=Oa(s),a=Us(),c=Pa(a,o,r.size,r),A=Fs(n.panelMaterialClass,n),h=bi(Ai.Panel,n.zIndexOffset,A);Fa(t,o,r.size,void 0,r.borderInset,c,h,a,A,wo);const f=Na(),d=$h(a,f),m=bi(Ai.Svg,void 0,void 0,h),E=Y.useMemo(()=>{const B=new Gr;B.matrixAutoUpdate=!1;const R=y5.parse(n.text);for(const M of R.paths){const T=Pu.createShapes(M),P=new(n.materialClass??or);P.transparent=!0,P.depthWrite=!1,P.toneMapped=!1,P.clippingPlanes=d;for(const K of T){const w=new Du(K);w.computeBoundingBox();const b=new on(w,P);b.matrixAutoUpdate=!1,b.raycast=Nu(b,b.raycast,f,a,m),ql(b,r.cameraDistance,m),b.userData.color=M.color,b.scale.y=-1,b.updateMatrix(),B.add(b)}}return B},[n.text,n.materialClass,d,f,a,r,m]),x=us(t,E5);mi(()=>{const B=x.value;if(B==null)return;const R=B("color"),M=B("opacity");let T;Array.isArray(R)?T=tw.setRGB(...R):R!=null&&(T=tw.set(R)),E.traverse(P=>{if(!(P instanceof on))return;P.receiveShadow=n.receiveShadow??!1,P.castShadow=n.castShadow??!1;const K=P.material;K.color.copy(T??P.userData.color),K.opacity=M??1})},[E,n.color,n.receiveShadow,n.castShadow]);const y=ef();nf(t,y,r,o,c,n.scrollbarPanelMaterialClass,a,m),as(t,"width",n.svgWidth),as(t,"height",n.svgHeight),vo(t,n),Io(t,n),xo(t,n);const p=_o(t,n),I=Ro(t,n);as(t,"aspectRatio",n.svgWidth/n.svgHeight),Co(t),Mo(n,r.size),Ga(n,c),mi(()=>{const B=n.svgWidth/n.svgHeight,[R,M,T]=lT(r.size,r.paddingInset,r.borderInset,r.pixelSize,n.svgWidth/n.svgHeight);E.position.set(R-T*B/2,M+T/2,0),E.scale.setScalar(T/n.svgHeight),E.updateMatrix()},[r,E,n.svgWidth,n.svgHeight]),mi(()=>void(E.visible=!c.value),[]);const C=Zl(r.size,r,h,f);return ka(e,r,C,y),W.jsxs(Bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:p,activeHandlers:I,children:[W.jsxs(tf,{listeners:n,node:r,scrollPosition:y,children:[W.jsx("primitive",{object:C}),W.jsx("primitive",{object:E})]}),W.jsx(rf,{globalMatrix:o,node:r,orderInfo:m,scrollPosition:y,children:n.children})]})});Y.forwardRef(({children:n,resolution:e=1,frames:t=1/0,renderPriority:i=0,eventPriority:r=0,...s},o)=>{const a=Y.useMemo(()=>new Wr(1,1,{minFilter:In,magFilter:In,type:Ol}),[]),c=Y.useRef(null),A=Y.useMemo(()=>({events:{compute:C5.bind(null,c),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);Y.useEffect(()=>{if(c.current==null)return;const{size:f}=c.current,d=Kt(()=>{const[m,E]=f.value;a.setSize(m,E),A.size.width=m,A.size.height=E});return()=>{d(),a.dispose()}},[a,A]),Y.useImperativeHandle(o,()=>c.current,[]);const h=Y.useMemo(()=>new Bh,[]);return W.jsxs(W.Fragment,{children:[VR(W.jsxs(v5,{imageRef:c,renderPriority:i,frames:t,fbo:a,children:[n,W.jsx("group",{onPointerOver:()=>null})]}),h,A),W.jsx(XT,{...s,src:a.texture,fit:"fill",keepAspectRatio:!1,ref:c})]})});function C5({current:n},e,t,i){var o,a,c;if(n==null||i==null)return!1;i.raycaster.camera||(c=(a=i.events).compute)==null||c.call(a,e,i,(o=i.previousRoot)==null?void 0:o.getState());const[r]=i.raycaster.intersectObject(n.interactionPanel);if(!r)return!1;const s=r.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(s.x*2-1,s.y*2-1),t.camera)}function v5({frames:n,renderPriority:e,children:t,fbo:i,imageRef:r}){const s=qh();Y.useEffect(()=>{if(r.current==null)return;const{size:A}=r.current;return Kt(()=>{const[h,f]=A.value;s.setState({size:{width:h,height:f,top:0,left:0}})})});let o=0,a,c;return ba(A=>{(n===1/0||oW.jsx(Ha,{...n,ref:e,text:I5,svgWidth:24,svgHeight:24})),B5='',_5=Y.forwardRef((n,e)=>W.jsx(Ha,{...n,ref:e,text:B5,svgWidth:24,svgHeight:24})),S5='',w5=Y.forwardRef((n,e)=>W.jsx(Ha,{...n,ref:e,text:S5,svgWidth:24,svgHeight:24})),M5='',Q5=Y.forwardRef((n,e)=>W.jsx(Ha,{...n,ref:e,text:M5,svgWidth:24,svgHeight:24})),R5='',T5=Y.forwardRef((n,e)=>W.jsx(Ha,{...n,ref:e,text:R5,svgWidth:24,svgHeight:24})),D5='',b5=Y.forwardRef((n,e)=>W.jsx(Ha,{...n,ref:e,text:D5,svgWidth:24,svgHeight:24})),L5='',N5=Y.forwardRef((n,e)=>W.jsx(Ha,{...n,ref:e,text:L5,svgWidth:24,svgHeight:24})),P5='',U5=Y.forwardRef((n,e)=>W.jsx(Ha,{...n,ref:e,text:P5,svgWidth:24,svgHeight:24}));function Ot(n,e,t){return new Je().setHSL(n/360,e/100,t/100,"srgb")}const xt=rH({light:{background:Ot(0,0,100),foreground:Ot(222.2,84,4.9),card:Ot(0,0,100),cardForeground:Ot(222.2,84,4.9),popover:Ot(0,0,100),popoverForeground:Ot(222.2,84,4.9),primary:Ot(222.2,47.4,11.2),primaryForeground:Ot(210,40,98),secondary:Ot(210,40,96.1),secondaryForeground:Ot(222.2,47.4,11.2),muted:Ot(210,40,96.1),mutedForeground:Ot(215.4,16.3,46.9),accent:Ot(210,40,96.1),accentForeground:Ot(222.2,47.4,11.2),destructive:Ot(0,72.22,50.59),destructiveForeground:Ot(210,40,98),border:Ot(214.3,31.8,91.4),input:Ot(214.3,31.8,91.4),ring:Ot(222.2,84,4.9)},dark:{background:Ot(222.2,84,4.9),foreground:Ot(210,40,98),card:Ot(222.2,84,4.9),cardForeground:Ot(210,40,98),popover:Ot(222.2,84,4.9),popoverForeground:Ot(210,40,98),primary:Ot(210,40,98),primaryForeground:Ot(222.2,47.4,11.2),secondary:Ot(217.2,32.6,17.5),secondaryForeground:Ot(210,40,98),muted:Ot(217.2,32.6,17.5),mutedForeground:Ot(215,20.2,65.1),accent:Ot(217.2,32.6,17.5),accentForeground:Ot(210,40,98),destructive:Ot(0,62.8,30.6),destructiveForeground:Ot(210,40,98),border:Ot(217.2,32.6,17.5),input:Ot(217.2,32.6,17.5),ring:Ot(212.7,26.8,83.9)}});function F5(n){return W.jsx(Ps,{scrollbarColor:xt.foreground,scrollbarBorderRadius:4,scrollbarOpacity:.3,borderColor:xt.border,color:xt.foreground,...n})}const k5={default:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:xt.primary},defaultProps:{color:xt.primaryForeground}},destructive:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:xt.destructive},defaultProps:{color:xt.destructiveForeground}},outline:{containerHoverProps:{backgroundColor:xt.accent},containerProps:{border:1,borderColor:xt.input,backgroundColor:xt.background}},secondary:{containerHoverProps:{backgroundOpacity:.8},containerProps:{backgroundColor:xt.secondary},defaultProps:{color:xt.secondaryForeground}},ghost:{containerHoverProps:{backgroundColor:xt.accent},defaultProps:{}},link:{containerProps:{},defaultProps:{color:xt.primary}}},G5={default:{height:40,paddingX:16,paddingY:8},sm:{height:36,paddingX:12},lg:{height:42,paddingX:32},icon:{height:40,width:40}};function Lh({children:n,variant:e="default",size:t="default",disabled:i=!1,hover:r,...s}){const{containerProps:o,defaultProps:a,containerHoverProps:c}=k5[e],A=G5[t];return W.jsx(Ct,{borderRadius:6,alignItems:"center",justifyContent:"center",...o,...A,borderOpacity:i?.5:void 0,backgroundOpacity:i?.5:void 0,cursor:i?void 0:"pointer",flexDirection:"row",hover:{...c,...r},...s,children:W.jsx(Ps,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",...a,opacity:i?.5:void 0,children:n})})}function Pc({children:n,...e}){return W.jsx(Ct,{borderRadius:8,border:1,backgroundColor:xt.card,...e,children:W.jsx(Ps,{color:xt.cardForeground,children:n})})}function Uc(n){return W.jsx(Ct,{padding:24,flexDirection:"column",gap:6,...n})}function Fc({children:n}){return W.jsx(Ps,{fontWeight:"semi-bold",letterSpacing:-.4,fontSize:24,lineHeight:1,children:n})}function O5({children:n}){return W.jsx(Ps,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:n})}function kc(n){return W.jsx(Ct,{padding:24,paddingTop:0,...n})}const JI=Y.createContext({});function H5({value:n,onValueChange:e,defaultValue:t,children:i,...r}){const[s,o]=Y.useState(t),a=Y.useMemo(()=>n==null?{value:s,setValue:c=>{o(c),e==null||e(c)}}:{value:n,setValue:e},[s,e,n]);return W.jsx(Ct,{...r,children:W.jsx(JI.Provider,{value:a,children:i})})}function z5({children:n,...e}){return W.jsx(Ct,{height:40,flexDirection:"row",alignItems:"center",borderRadius:6,backgroundColor:xt.muted,padding:4,...e,children:W.jsx(Ps,{color:xt.mutedForeground,children:n})})}function gp({children:n,value:e,disabled:t=!1,...i}){const{setValue:r,value:s}=Y.useContext(JI),o=e===s;return W.jsx(Ct,{onClick:t?void 0:a=>r==null?void 0:r(e),cursor:t?void 0:"pointer",flexDirection:"row",alignItems:"center",borderRadius:2,paddingX:12,backgroundOpacity:t?.5:void 0,backgroundColor:o?xt.background:void 0,paddingY:6,justifyContent:"center",...i,children:W.jsx(Ps,{opacity:t?.5:void 0,color:o?xt.foreground:void 0,fontSize:14,fontWeight:"medium",lineHeight:1.43,wordBreak:"keep-all",children:n})})}function V5({value:n,...e}){const{value:t}=Y.useContext(JI);return n!=t?null:W.jsx(Ct,{marginTop:8,...e})}const jT=Y.createContext(void 0);function W5({children:n}){const[e,t]=Y.useState(void 0),i=Y.useCallback((r,s)=>t(o=>o===r?s:o),[]);return W.jsxs(W.Fragment,{children:[W.jsx(Y5,{set:i,children:n}),e]})}const Y5=Y.memo(({children:n,set:e})=>W.jsx(jT.Provider,{value:e,children:n})),jI=Y.createContext(void 0);function KI(){const n=Y.useContext(jI);if(n==null)throw new Error("Can only be used inside a component.");return n}function X5({children:n,open:e,onOpenChange:t,defaultOpen:i}){const[r,s]=Y.useState(i??!1),o=e??r,a=Y.useContext(jT);if(a==null)throw new Error("Can only be used inside a component.");const c=Y.useRef(void 0),A=Y.useRef(void 0);Y.useEffect(()=>{if(!o){a(A.current,void 0),A.current=void 0;return}c.current!=null&&(a(void 0,c.current),A.current=c.current)},[o,a]);const h=Y.useRef(t);h.current=t;const f=e!=null,d=Y.useMemo(()=>({setContent(m){A.current!=null&&(a(A.current,m),A.current=m),c.current=m},setOpen(m){var E;f||s(m),(E=h.current)==null||E.call(h,m)}}),[f,a]);return W.jsx(jI.Provider,{value:d,children:n})}function J5({children:n}){const{setOpen:e}=KI();return W.jsx(Ct,{onClick:()=>e(!0),children:n})}function j5(n){return W.jsx(Ct,{onPointerMove:e=>e.stopPropagation(),onWheel:e=>e.stopPropagation(),positionType:"absolute",inset:0,zIndexOffset:50,backgroundColor:"black",backgroundOpacity:.8,...n})}function K5(){const{setOpen:n}=KI();return Y.useCallback(()=>n(!1),[n])}function q5({children:n}){const e=KI();return Y.useEffect(()=>e.setContent(W.jsx(jI.Provider,{value:e,children:n}))),null}function Z5({children:n,sm:e,...t}){const i=K5();return W.jsx(q5,{children:W.jsx(j5,{onClick:r=>{i(),r.stopPropagation()},alignItems:"center",justifyContent:"center",children:W.jsxs(Ct,{onClick:r=>r.stopPropagation(),positionType:"relative",width:"100%",gap:16,border:1,backgroundColor:xt.background,padding:24,sm:{borderRadius:8,...e},...t,children:[n,W.jsx(U5,{color:xt.mutedForeground,onClick:i,cursor:"pointer",positionType:"absolute",positionRight:16,positionTop:16,borderRadius:2,opacity:.7,backgroundOpacity:.7,hover:{opacity:1,backgroundOpacity:1},width:16,height:16})]})})})}function $5({children:n,...e}){return W.jsx(Ct,{flexDirection:"column",gap:6,...e,children:W.jsx(Ps,{horizontalAlign:"center",sm:{horizontalAlign:"left"},children:n})})}function e8(n){return W.jsx(Ct,{flexDirection:"column-reverse",sm:{flexDirection:"row",justifyContent:"flex-end"},gap:8,...n})}function t8({children:n}){return W.jsx(Ps,{fontSize:18,lineHeight:1,letterSpacing:-.4,fontWeight:"semi-bold",children:n})}function n8({children:n}){return W.jsx(Ps,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:n})}function i8(){return W.jsxs(Lh,{variant:"outline",width:260,justifyContent:"flex-start",children:[W.jsx(w5,{marginRight:8,width:16,height:16}),W.jsx(Et,{fontWeight:"normal",children:"Jan 20, 2023 - Feb 09, 2023"})]})}function r8(n){return W.jsxs(Ct,{alignItems:"center",flexDirection:"row",gap:16,lg:{gap:24},...n,children:[W.jsx(Et,{fontSize:14,lineHeight:1.43,fontWeight:"medium",hover:{color:xt.primary},children:"Overview"}),W.jsx(Et,{color:xt.mutedForeground,fontSize:14,lineHeight:1.43,fontWeight:"medium",children:"Customers"}),W.jsx(Et,{color:xt.mutedForeground,fontSize:14,lineHeight:1.43,fontWeight:"medium",children:"Products"}),W.jsx(Et,{color:xt.mutedForeground,fontSize:14,lineHeight:1.43,fontWeight:"medium",children:"Settings"})]})}const s8=[{name:"Jan",total:Math.floor(Math.random()*5e3)+1e3},{name:"Feb",total:Math.floor(Math.random()*5e3)+1e3},{name:"Mar",total:Math.floor(Math.random()*5e3)+1e3},{name:"Apr",total:Math.floor(Math.random()*5e3)+1e3},{name:"May",total:Math.floor(Math.random()*5e3)+1e3},{name:"Jun",total:Math.floor(Math.random()*5e3)+1e3},{name:"Jul",total:Math.floor(Math.random()*5e3)+1e3},{name:"Aug",total:Math.floor(Math.random()*5e3)+1e3},{name:"Sep",total:Math.floor(Math.random()*5e3)+1e3},{name:"Oct",total:Math.floor(Math.random()*5e3)+1e3},{name:"Nov",total:Math.floor(Math.random()*5e3)+1e3},{name:"Dec",total:Math.floor(Math.random()*5e3)+1e3}],o8=6e3,a8=["$6000","$4500","$3000","$1500","$0"];function l8(){return W.jsxs(Ct,{paddingX:16,gap:16,width:"100%",height:350,flexDirection:"row",children:[W.jsx(Ct,{paddingBottom:12*1.333+8,flexDirection:"column",alignItems:"flex-end",justifyContent:"space-between",children:a8.map(n=>W.jsx(Et,{color:xt.mutedForeground,fontSize:12,lineHeight:1.3333,children:n},n))}),W.jsx(Ct,{gap:16,height:"100%",flexGrow:1,flexDirection:"row",children:s8.map(({name:n,total:e})=>W.jsxs(Ct,{gap:8,flexGrow:1,alignItems:"center",children:[W.jsx(Ct,{flexGrow:1,flexShrink:1,justifyContent:"flex-end",width:"100%",children:W.jsx(Ct,{borderTopRadius:4,height:`${Math.min(1,e/o8)*100}%`,backgroundColor:xt.primary,width:"100%"})}),W.jsx(Et,{color:xt.mutedForeground,fontSize:12,lineHeight:1.3333,children:n})]},n))})]})}function vl(n){return W.jsx(XT,{width:40,height:40,flexShrink:0,aspectRatio:1,fit:"cover",borderRadius:20,...n})}function c8(){return W.jsxs(Ct,{gap:32,children:[W.jsxs(Ct,{flexDirection:"row",alignItems:"center",children:[W.jsx(vl,{height:36,width:36,src:"/uikit/examples/dashboard/01.png"}),W.jsxs(Ct,{marginLeft:16,gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,fontWeight:"medium",children:"Olivia Martin"}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"olivia.martin@email.com"})]}),W.jsx(Et,{marginLeft:"auto",fontWeight:"medium",children:"+$1,999.00"})]}),W.jsxs(Ct,{flexDirection:"row",alignItems:"center",children:[W.jsx(vl,{height:36,width:36,alignItems:"center",justifyContent:"center",border:1,gap:0,src:"/uikit/examples/dashboard/02.png"}),W.jsxs(Ct,{marginLeft:16,gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,fontWeight:"medium",children:"Jackson Lee"}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"jackson.lee@email.com"})]}),W.jsx(Et,{marginLeft:"auto",fontWeight:"medium",children:"+$39.00"})]}),W.jsxs(Ct,{flexDirection:"row",alignItems:"center",children:[W.jsx(vl,{width:36,height:36,src:"/uikit/examples/dashboard/03.png"}),W.jsxs(Ct,{marginLeft:16,gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,fontWeight:"medium",children:"Isabella Nguyen"}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"isabella.nguyen@email.com"})]}),W.jsx(Et,{marginLeft:"auto",fontWeight:"medium",children:"+$299.00"})]}),W.jsxs(Ct,{flexDirection:"row",alignItems:"center",children:[W.jsx(vl,{width:36,height:36,src:"/uikit/examples/dashboard/04.png"}),W.jsxs(Ct,{marginLeft:16,gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,fontWeight:"medium",children:"William Kim"}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"will@email.com"})]}),W.jsx(Et,{marginLeft:"auto",fontWeight:"medium",children:"+$99.00"})]}),W.jsxs(Ct,{flexDirection:"row",alignItems:"center",children:[W.jsx(vl,{width:36,height:36,src:"/uikit/examples/dashboard/05.png"}),W.jsxs(Ct,{marginLeft:16,gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,fontWeight:"medium",children:"Sofia Davis"}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"sofia.davis@email.com"})]}),W.jsx(Et,{marginLeft:"auto",fontWeight:"medium",children:"+$39.00"})]})]})}const u8=[{label:"Personal Account",teams:[{label:"Alicia Koch",value:"personal"}]},{label:"Teams",teams:[{label:"Acme Inc.",value:"acme-inc"},{label:"Monsters Inc.",value:"monsters"}]}];function A8(n){const e=u8[0].teams[0];return W.jsxs(Lh,{variant:"outline",width:200,justifyContent:"space-between",...n,children:[W.jsx(vl,{marginRight:8,height:20,width:20,src:`/uikit/examples/dashboard/${e.value}.png`}),W.jsx(Et,{children:e.label}),W.jsx(Q5,{marginLeft:"auto",height:20,width:20,flexShrink:0,opacity:.5})]})}function h8({defaultChecked:n,checked:e,disabled:t=!1,onCheckedChange:i,...r}){const[s,o]=Y.useState(n??!1),a=e??s;return W.jsx(Ct,{height:24,width:44,flexShrink:0,flexDirection:"row",padding:2,alignItems:"center",backgroundOpacity:t?.5:void 0,borderRadius:1e3,backgroundColor:a?xt.primary:xt.input,cursor:t?void 0:"pointer",onClick:t?void 0:()=>{e==null&&o(!a),i==null||i(!a)},...r,children:W.jsx(Ct,{width:20,height:20,borderRadius:1e3,transformTranslateX:a?20:0,backgroundColor:xt.background})})}const $E=[{title:"Your call has been confirmed.",description:"1 hour ago"},{title:"You have a new message!",description:"1 hour ago"},{title:"Your subscription is expiring soon!",description:"2 hours ago"}];function f8({open:n,setOpen:e}){return W.jsxs(X5,{open:n,onOpenChange:e,children:[W.jsx(J5,{children:W.jsx(vl,{cursor:"pointer",src:"/uikit/examples/dashboard/01.png",height:32,width:32})}),W.jsxs(Z5,{positionType:"relative",transformTranslateZ:200,sm:{maxWidth:425},children:[W.jsx(Gz,{transformTranslateZ:-1,positionType:"absolute",inset:0,children:W.jsx("meshBasicMaterial",{colorWrite:!1})}),W.jsxs($5,{children:[W.jsx(t8,{children:W.jsx(Et,{children:"Edit profile"})}),W.jsx(n8,{children:W.jsx(Et,{children:"Make changes to your profile here. Click save when you're done."})})]}),W.jsxs(Ct,{flexDirection:"row",alignItems:"center",gap:16,borderRadius:6,border:1,padding:16,children:[W.jsx(_5,{}),W.jsxs(Ct,{gap:4,children:[W.jsx(Et,{fontWeight:"medium",fontSize:14,lineHeight:1,children:"Push Notifications"}),W.jsx(Et,{fontWeight:"medium",fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"Send notifications to device."})]}),W.jsx(h8,{})]}),W.jsx(Ct,{children:$E.map((t,i)=>W.jsxs(Ct,{marginBottom:i===$E.length-1?0:16,paddingBottom:i===$E.length-1?0:16,alignItems:"flex-start",flexDirection:"row",gap:17,children:[W.jsx(Ct,{height:8,width:8,transformTranslateY:4,borderRadius:1e3,backgroundColor:959977}),W.jsxs(Ct,{gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,children:t.title}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:t.description})]})]},i))}),W.jsx(e8,{children:W.jsx(Lh,{onClick:()=>e(!1),children:W.jsx(Et,{children:"Save changes"})})})]})]})}nH("light");function d8(){const[n,e]=Y.useState(!1);return W.jsx(VO,{flat:!0,camera:{position:[0,0,18],fov:35},style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:W.jsx(m5,{backgroundColor:16777215,dark:{backgroundColor:0},children:W.jsx(F5,{children:W.jsx(W5,{children:W.jsx(Ct,{width:"100%",height:"100%",overflow:"scroll",children:W.jsx(p8,{open:n,setOpen:e})})})})})})}function p8({open:n,setOpen:e}){return W.jsxs(Ct,{flexDirection:"column",children:[W.jsx(Ct,{borderBottom:1,children:W.jsxs(Ct,{height:64,alignItems:"center",flexDirection:"row",paddingX:16,children:[W.jsx(A8,{}),W.jsx(r8,{marginX:24}),W.jsxs(Ct,{marginLeft:"auto",flexDirection:"row",alignItems:"center",gap:16,children:[W.jsx(Lh,{variant:"secondary",size:"sm",onClick:()=>window.open("https://github.com/pmndrs/uikit/tree/main/examples/dashboard","_blank"),children:W.jsx(Et,{children:"Source Code"})}),W.jsx(f8,{open:n,setOpen:e})]})]})}),W.jsxs(Ct,{flexGrow:1,gap:16,padding:32,paddingTop:24,children:[W.jsxs(Ct,{flexDirection:"row",justifyContent:"space-between",gap:8,children:[W.jsx(Et,{fontSize:30,lineHeight:1,children:"Dashboard"}),W.jsxs(Ct,{flexDirection:"row",gap:8,alignItems:"center",children:[W.jsx(i8,{}),W.jsx(Lh,{children:W.jsx(Et,{children:"Download"})})]})]}),W.jsxs(H5,{defaultValue:"overview",gap:16,children:[W.jsxs(z5,{alignSelf:"flex-start",children:[W.jsx(gp,{value:"overview",children:W.jsx(Et,{children:"Overview"})}),W.jsx(gp,{value:"analytics",disabled:!0,children:W.jsx(Et,{children:"Analytics"})}),W.jsx(gp,{value:"reports",disabled:!0,children:W.jsx(Et,{children:"Reports"})}),W.jsx(gp,{value:"notifications",disabled:!0,children:W.jsx(Et,{children:"Notifications"})})]}),W.jsxs(V5,{value:"overview",gap:16,children:[W.jsxs(Ct,{gap:16,lg:{flexDirection:"row"},children:[W.jsxs(Ct,{flexGrow:1,gap:16,flexDirection:"row",children:[W.jsxs(Pc,{flexBasis:0,flexGrow:1,children:[W.jsxs(Uc,{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:8,children:[W.jsx(Fc,{children:W.jsx(Et,{fontSize:14,lineHeight:1.43,children:"Total Revenue"})}),W.jsx(b5,{width:16,height:16,color:xt.mutedForeground})]}),W.jsxs(kc,{children:[W.jsx(Et,{fontSize:24,lineHeight:1.3333,children:"$45,231.89"}),W.jsx(Et,{fontSize:12,lineHeight:1.3333,color:xt.mutedForeground,children:"+20.1% from last month"})]})]}),W.jsxs(Pc,{flexBasis:0,flexGrow:1,children:[W.jsxs(Uc,{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:8,gap:0,children:[W.jsx(Fc,{children:W.jsx(Et,{fontSize:14,lineHeight:1.43,children:"Subscriptions"})}),W.jsx(N5,{height:16,width:16,color:xt.mutedForeground})]}),W.jsxs(kc,{children:[W.jsx(Et,{fontSize:24,lineHeight:1.3333,children:"+2350"}),W.jsx(Et,{fontSize:12,lineHeight:1.3333,color:xt.mutedForeground,children:"+180.1% from last month"})]})]})]}),W.jsxs(Ct,{flexGrow:1,gap:16,flexDirection:"row",children:[W.jsxs(Pc,{flexBasis:0,flexGrow:1,children:[W.jsxs(Uc,{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:2,gap:0,children:[W.jsx(Fc,{children:W.jsx(Et,{fontSize:14,lineHeight:1.43,children:"Sales"})}),W.jsx(T5,{width:16,height:16,color:xt.mutedForeground})]}),W.jsxs(kc,{children:[W.jsx(Et,{fontSize:24,lineHeight:1.3333,children:"+12,234"}),W.jsx(Et,{fontSize:12,lineHeight:1.3333,color:xt.mutedForeground,children:"+19% from last month"})]})]}),W.jsxs(Pc,{flexBasis:0,flexGrow:1,children:[W.jsxs(Uc,{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:2,gap:0,children:[W.jsx(Fc,{children:W.jsx(Et,{fontSize:14,lineHeight:1.43,children:"Active Now"})}),W.jsx(x5,{width:16,height:16,color:xt.mutedForeground})]}),W.jsxs(kc,{children:[W.jsx(Et,{fontSize:24,lineHeight:1.3333,children:"+573"}),W.jsx(Et,{fontSize:12,lineHeight:1.3333,color:xt.mutedForeground,children:"+201 since last hour"})]})]})]})]}),W.jsxs(Ct,{lg:{flexDirection:"row"},flexDirection:"column",gap:16,children:[W.jsxs(Pc,{lg:{flexGrow:4},children:[W.jsx(Uc,{children:W.jsx(Fc,{children:W.jsx(Et,{children:"Overview"})})}),W.jsx(kc,{paddingLeft:8,children:W.jsx(l8,{})})]}),W.jsxs(Pc,{lg:{flexGrow:3},children:[W.jsxs(Uc,{children:[W.jsx(Fc,{children:W.jsx(Et,{children:"Recent Sales"})}),W.jsx(O5,{children:W.jsx(Et,{children:"You made 265 sales this month."})})]}),W.jsx(kc,{children:W.jsx(c8,{})})]})]})]})]})]})]})}gQ(document.getElementById("root")).render(W.jsx(Y.StrictMode,{children:W.jsx(d8,{})})); diff --git a/examples/dashboard/assets/index-Afxk2soT.js b/examples/dashboard/assets/index-Afxk2soT.js deleted file mode 100644 index 370e8899..00000000 --- a/examples/dashboard/assets/index-Afxk2soT.js +++ /dev/null @@ -1,4056 +0,0 @@ -var yD=Object.defineProperty;var CD=(n,e,t)=>e in n?yD(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var We=(n,e,t)=>(CD(n,typeof e!="symbol"?e+"":e,t),t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function OS(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var HS={exports:{}},Ig={},zS={exports:{}},zt={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var bh=Symbol.for("react.element"),ID=Symbol.for("react.portal"),vD=Symbol.for("react.fragment"),xD=Symbol.for("react.strict_mode"),BD=Symbol.for("react.profiler"),_D=Symbol.for("react.provider"),SD=Symbol.for("react.context"),wD=Symbol.for("react.forward_ref"),MD=Symbol.for("react.suspense"),QD=Symbol.for("react.memo"),RD=Symbol.for("react.lazy"),Ex=Symbol.iterator;function TD(n){return n===null||typeof n!="object"?null:(n=Ex&&n[Ex]||n["@@iterator"],typeof n=="function"?n:null)}var VS={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},WS=Object.assign,YS={};function Iu(n,e,t){this.props=n,this.context=e,this.refs=YS,this.updater=t||VS}Iu.prototype.isReactComponent={};Iu.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Iu.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function XS(){}XS.prototype=Iu.prototype;function XC(n,e,t){this.props=n,this.context=e,this.refs=YS,this.updater=t||VS}var JC=XC.prototype=new XS;JC.constructor=XC;WS(JC,Iu.prototype);JC.isPureReactComponent=!0;var yx=Array.isArray,JS=Object.prototype.hasOwnProperty,KC={current:null},KS={key:!0,ref:!0,__self:!0,__source:!0};function jS(n,e,t){var i,r={},s=null,o=null;if(e!=null)for(i in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)JS.call(e,i)&&!KS.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(a===1)r.children=t;else if(1>>1,Ce=U[ue];if(0>>1;uer(O,te))kr(F,O)?(U[ue]=F,U[k]=te,ue=k):(U[ue]=O,U[V]=te,ue=V);else if(kr(F,te))U[ue]=F,U[k]=te,ue=k;else break e}}return ee}function r(U,ee){var te=U.sortIndex-ee.sortIndex;return te!==0?te:U.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var c=[],A=[],h=1,f=null,d=3,m=!1,E=!1,x=!1,y=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C(U){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=U)i(A),ee.sortIndex=ee.expirationTime,e(c,ee);else break;ee=t(A)}}function B(U){if(x=!1,C(U),!E)if(t(c)!==null)E=!0,se(R);else{var ee=t(A);ee!==null&&fe(B,ee.startTime-U)}}function R(U,ee){E=!1,x&&(x=!1,g(P),P=-1),m=!0;var te=d;try{for(C(ee),f=t(c);f!==null&&(!(f.expirationTime>ee)||U&&!b());){var ue=f.callback;if(typeof ue=="function"){f.callback=null,d=f.priorityLevel;var Ce=ue(f.expirationTime<=ee);ee=n.unstable_now(),typeof Ce=="function"?f.callback=Ce:f===t(c)&&i(c),C(ee)}else i(c);f=t(c)}if(f!==null)var ke=!0;else{var V=t(A);V!==null&&fe(B,V.startTime-ee),ke=!1}return ke}finally{f=null,d=te,m=!1}}var w=!1,T=null,P=-1,K=5,M=-1;function b(){return!(n.unstable_now()-MU||125ue?(U.sortIndex=te,e(A,U),t(c)===null&&U===t(A)&&(x?(g(P),P=-1):x=!0,fe(B,te-ue))):(U.sortIndex=Ce,e(c,U),E||m||(E=!0,se(R))),U},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(U){var ee=d;return function(){var te=d;d=ee;try{return U.apply(this,arguments)}finally{d=te}}}})(ew);$S.exports=ew;var HD=$S.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var tw=j,xr=HD;function Fe(n){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+n,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),XE=Object.prototype.hasOwnProperty,zD=/^[: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]*$/,Ix={},vx={};function VD(n){return XE.call(vx,n)?!0:XE.call(Ix,n)?!1:zD.test(n)?vx[n]=!0:(Ix[n]=!0,!1)}function WD(n,e,t,i){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:t!==null?!t.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function YD(n,e,t,i){if(e===null||typeof e>"u"||WD(n,e,t,i))return!0;if(i)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Yi(n,e,t,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=n,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var mi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){mi[n]=new Yi(n,0,!1,n,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var e=n[0];mi[e]=new Yi(e,1,!1,n[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(n){mi[n]=new Yi(n,2,!1,n.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){mi[n]=new Yi(n,2,!1,n,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(n){mi[n]=new Yi(n,3,!1,n.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(n){mi[n]=new Yi(n,3,!0,n,null,!1,!1)});["capture","download"].forEach(function(n){mi[n]=new Yi(n,4,!1,n,null,!1,!1)});["cols","rows","size","span"].forEach(function(n){mi[n]=new Yi(n,6,!1,n,null,!1,!1)});["rowSpan","start"].forEach(function(n){mi[n]=new Yi(n,5,!1,n.toLowerCase(),null,!1,!1)});var qC=/[\-:]([a-z])/g;function ZC(n){return n[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(n){var e=n.replace(qC,ZC);mi[e]=new Yi(e,1,!1,n,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var e=n.replace(qC,ZC);mi[e]=new Yi(e,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(n){var e=n.replace(qC,ZC);mi[e]=new Yi(e,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(n){mi[n]=new Yi(n,1,!1,n.toLowerCase(),null,!1,!1)});mi.xlinkHref=new Yi("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(n){mi[n]=new Yi(n,1,!1,n.toLowerCase(),null,!0,!0)});function $C(n,e,t,i){var r=mi.hasOwnProperty(e)?mi[e]:null;(r!==null?r.type!==0:i||!(2a||r[o]!==s[a]){var c=` -`+r[o].replace(" at new "," at ");return n.displayName&&c.includes("")&&(c=c.replace("",n.displayName)),c}while(1<=o&&0<=a);break}}}finally{C0=!1,Error.prepareStackTrace=t}return(n=n?n.displayName||n.name:"")?IA(n):""}function XD(n){switch(n.tag){case 5:return IA(n.type);case 16:return IA("Lazy");case 13:return IA("Suspense");case 19:return IA("SuspenseList");case 0:case 2:case 15:return n=I0(n.type,!1),n;case 11:return n=I0(n.type.render,!1),n;case 1:return n=I0(n.type,!0),n;default:return""}}function qE(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case Oc:return"Fragment";case Gc:return"Portal";case JE:return"Profiler";case eI:return"StrictMode";case KE:return"Suspense";case jE:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case rw:return(n.displayName||"Context")+".Consumer";case iw:return(n._context.displayName||"Context")+".Provider";case tI:var e=n.render;return n=n.displayName,n||(n=e.displayName||e.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case nI:return e=n.displayName||null,e!==null?e:qE(n.type)||"Memo";case ko:e=n._payload,n=n._init;try{return qE(n(e))}catch{}}return null}function JD(n){var e=n.type;switch(n.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=e.render,n=n.displayName||n.name||"",e.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return qE(e);case 8:return e===eI?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function la(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function ow(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function KD(n){var e=ow(n)?"checked":"value",t=Object.getOwnPropertyDescriptor(n.constructor.prototype,e),i=""+n[e];if(!n.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,s=t.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(n,e,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function jf(n){n._valueTracker||(n._valueTracker=KD(n))}function aw(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=ow(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}function Op(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function ZE(n,e){var t=e.checked;return Tn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??n._wrapperState.initialChecked})}function Bx(n,e){var t=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;t=la(e.value!=null?e.value:t),n._wrapperState={initialChecked:i,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function lw(n,e){e=e.checked,e!=null&&$C(n,"checked",e,!1)}function $E(n,e){lw(n,e);var t=la(e.value),i=e.type;if(t!=null)i==="number"?(t===0&&n.value===""||n.value!=t)&&(n.value=""+t):n.value!==""+t&&(n.value=""+t);else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}e.hasOwnProperty("value")?ey(n,e.type,t):e.hasOwnProperty("defaultValue")&&ey(n,e.type,la(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(n.defaultChecked=!!e.defaultChecked)}function _x(n,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+n._wrapperState.initialValue,t||e===n.value||(n.value=e),n.defaultValue=e}t=n.name,t!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,t!==""&&(n.name=t)}function ey(n,e,t){(e!=="number"||Op(n.ownerDocument)!==n)&&(t==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+t&&(n.defaultValue=""+t))}var vA=Array.isArray;function iu(n,e,t,i){if(n=n.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=qf.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;e.firstChild;)n.appendChild(e.firstChild)}});function YA(n,e){if(e){var t=n.firstChild;if(t&&t===n.lastChild&&t.nodeType===3){t.nodeValue=e;return}}n.textContent=e}var RA={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},jD=["Webkit","ms","Moz","O"];Object.keys(RA).forEach(function(n){jD.forEach(function(e){e=e+n.charAt(0).toUpperCase()+n.substring(1),RA[e]=RA[n]})});function hw(n,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||RA.hasOwnProperty(n)&&RA[n]?(""+e).trim():e+"px"}function fw(n,e){n=n.style;for(var t in e)if(e.hasOwnProperty(t)){var i=t.indexOf("--")===0,r=hw(t,e[t],i);t==="float"&&(t="cssFloat"),i?n.setProperty(t,r):n[t]=r}}var qD=Tn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function iy(n,e){if(e){if(qD[n]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Fe(137,n));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Fe(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Fe(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Fe(62))}}function ry(n,e){if(n.indexOf("-")===-1)return typeof e.is=="string";switch(n){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!1;default:return!0}}var sy=null;function iI(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var oy=null,ru=null,su=null;function Mx(n){if(n=Ph(n)){if(typeof oy!="function")throw Error(Fe(280));var e=n.stateNode;e&&(e=Sg(e),oy(n.stateNode,n.type,e))}}function dw(n){ru?su?su.push(n):su=[n]:ru=n}function pw(){if(ru){var n=ru,e=su;if(su=ru=null,Mx(n),e)for(n=0;n>>=0,n===0?32:31-(lb(n)/cb|0)|0}var Zf=64,$f=4194304;function xA(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function Wp(n,e){var t=n.pendingLanes;if(t===0)return 0;var i=0,r=n.suspendedLanes,s=n.pingedLanes,o=t&268435455;if(o!==0){var a=o&~r;a!==0?i=xA(a):(s&=o,s!==0&&(i=xA(s)))}else o=t&~r,o!==0?i=xA(o):s!==0&&(i=xA(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=t&16),e=n.entangledLanes,e!==0)for(n=n.entanglements,e&=i;0t;t++)e.push(n);return e}function Nh(n,e,t){n.pendingLanes|=e,e!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,e=31-is(e),n[e]=t}function fb(n,e){var t=n.pendingLanes&~e;n.pendingLanes=e,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=e,n.mutableReadLanes&=e,n.entangledLanes&=e,e=n.entanglements;var i=n.eventTimes;for(n=n.expirationTimes;0=DA),Ux=" ",Fx=!1;function Lw(n,e){switch(n){case"keyup":return Ob.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Pw(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Hc=!1;function zb(n,e){switch(n){case"compositionend":return Pw(e);case"keypress":return e.which!==32?null:(Fx=!0,Ux);case"textInput":return n=e.data,n===Ux&&Fx?null:n;default:return null}}function Vb(n,e){if(Hc)return n==="compositionend"||!AI&&Lw(n,e)?(n=bw(),gp=lI=Wo=null,Hc=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=Hx(t)}}function Gw(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?Gw(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function Ow(){for(var n=window,e=Op();e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=Op(n.document)}return e}function hI(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}function $b(n){var e=Ow(),t=n.focusedElem,i=n.selectionRange;if(e!==t&&t&&t.ownerDocument&&Gw(t.ownerDocument.documentElement,t)){if(i!==null&&hI(t)){if(e=i.start,n=i.end,n===void 0&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if(n=(e=t.ownerDocument||document)&&e.defaultView||window,n.getSelection){n=n.getSelection();var r=t.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!n.extend&&s>i&&(r=i,i=s,s=r),r=zx(t,s);var o=zx(t,i);r&&o&&(n.rangeCount!==1||n.anchorNode!==r.node||n.anchorOffset!==r.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),n.removeAllRanges(),s>i?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}}for(e=[],n=t;n=n.parentNode;)n.nodeType===1&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,zc=null,hy=null,NA=null,fy=!1;function Vx(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;fy||zc==null||zc!==Op(i)||(i=zc,"selectionStart"in i&&hI(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),NA&&ZA(NA,i)||(NA=i,i=Jp(hy,"onSelect"),0Yc||(n.current=yy[Yc],yy[Yc]=null,Yc--)}function mn(n,e){Yc++,yy[Yc]=n.current,n.current=e}var ca={},Ti=fa(ca),nr=fa(!1),wl=ca;function hu(n,e){var t=n.type.contextTypes;if(!t)return ca;var i=n.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in t)r[s]=e[s];return i&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=e,n.__reactInternalMemoizedMaskedChildContext=r),r}function ir(n){return n=n.childContextTypes,n!=null}function jp(){vn(nr),vn(Ti)}function qx(n,e,t){if(Ti.current!==ca)throw Error(Fe(168));mn(Ti,e),mn(nr,t)}function jw(n,e,t){var i=n.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(Fe(108,JD(n)||"Unknown",r));return Tn({},t,i)}function qp(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||ca,wl=Ti.current,mn(Ti,n),mn(nr,nr.current),!0}function Zx(n,e,t){var i=n.stateNode;if(!i)throw Error(Fe(169));t?(n=jw(n,e,wl),i.__reactInternalMemoizedMergedChildContext=n,vn(nr),vn(Ti),mn(Ti,n)):vn(nr),mn(nr,t)}var eo=null,wg=!1,L0=!1;function qw(n){eo===null?eo=[n]:eo.push(n)}function A3(n){wg=!0,qw(n)}function da(){if(!L0&&eo!==null){L0=!0;var n=0,e=cn;try{var t=eo;for(cn=1;n>=o,r-=o,no=1<<32-is(e)+r|t<P?(K=T,T=null):K=T.sibling;var M=d(g,T,C[P],B);if(M===null){T===null&&(T=K);break}n&&T&&M.alternate===null&&e(g,T),v=s(M,v,P),w===null?R=M:w.sibling=M,w=M,T=K}if(P===C.length)return t(g,T),_n&&rl(g,P),R;if(T===null){for(;PP?(K=T,T=null):K=T.sibling;var b=d(g,T,M.value,B);if(b===null){T===null&&(T=K);break}n&&T&&b.alternate===null&&e(g,T),v=s(b,v,P),w===null?R=b:w.sibling=b,w=b,T=K}if(M.done)return t(g,T),_n&&rl(g,P),R;if(T===null){for(;!M.done;P++,M=C.next())M=f(g,M.value,B),M!==null&&(v=s(M,v,P),w===null?R=M:w.sibling=M,w=M);return _n&&rl(g,P),R}for(T=i(g,T);!M.done;P++,M=C.next())M=m(T,g,P,M.value,B),M!==null&&(n&&M.alternate!==null&&T.delete(M.key===null?P:M.key),v=s(M,v,P),w===null?R=M:w.sibling=M,w=M);return n&&T.forEach(function(q){return e(g,q)}),_n&&rl(g,P),R}function y(g,v,C,B){if(typeof C=="object"&&C!==null&&C.type===Oc&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case Kf:e:{for(var R=C.key,w=v;w!==null;){if(w.key===R){if(R=C.type,R===Oc){if(w.tag===7){t(g,w.sibling),v=r(w,C.props.children),v.return=g,g=v;break e}}else if(w.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===ko&&sB(R)===w.type){t(g,w.sibling),v=r(w,C.props),v.ref=rA(g,w,C),v.return=g,g=v;break e}t(g,w);break}else e(g,w);w=w.sibling}C.type===Oc?(v=Il(C.props.children,g.mode,B,C.key),v.return=g,g=v):(B=Bp(C.type,C.key,C.props,null,g.mode,B),B.ref=rA(g,v,C),B.return=g,g=B)}return o(g);case Gc:e:{for(w=C.key;v!==null;){if(v.key===w)if(v.tag===4&&v.stateNode.containerInfo===C.containerInfo&&v.stateNode.implementation===C.implementation){t(g,v.sibling),v=r(v,C.children||[]),v.return=g,g=v;break e}else{t(g,v);break}else e(g,v);v=v.sibling}v=z0(C,g.mode,B),v.return=g,g=v}return o(g);case ko:return w=C._init,y(g,v,w(C._payload),B)}if(vA(C))return E(g,v,C,B);if($u(C))return x(g,v,C,B);od(g,C)}return typeof C=="string"&&C!==""||typeof C=="number"?(C=""+C,v!==null&&v.tag===6?(t(g,v.sibling),v=r(v,C),v.return=g,g=v):(t(g,v),v=H0(C,g.mode,B),v.return=g,g=v),o(g)):t(g,v)}return y}var du=sM(!0),oM=sM(!1),Uh={},Ms=fa(Uh),nh=fa(Uh),ih=fa(Uh);function pl(n){if(n===Uh)throw Error(Fe(174));return n}function II(n,e){switch(mn(ih,e),mn(nh,n),mn(Ms,Uh),n=e.nodeType,n){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:ny(null,"");break;default:n=n===8?e.parentNode:e,e=n.namespaceURI||null,n=n.tagName,e=ny(e,n)}vn(Ms),mn(Ms,e)}function pu(){vn(Ms),vn(nh),vn(ih)}function aM(n){pl(ih.current);var e=pl(Ms.current),t=ny(e,n.type);e!==t&&(mn(nh,n),mn(Ms,t))}function vI(n){nh.current===n&&(vn(Ms),vn(nh))}var Mn=fa(0);function ig(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var P0=[];function xI(){for(var n=0;nt?t:4,n(!0);var i=U0.transition;U0.transition={};try{n(!1),e()}finally{cn=t,U0.transition=i}}function xM(){return zr().memoizedState}function p3(n,e,t){var i=ea(n);if(t={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null},BM(n))_M(e,t);else if(t=tM(n,e,t,i),t!==null){var r=Oi();rs(t,n,i,r),SM(t,e,i)}}function g3(n,e,t){var i=ea(n),r={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null};if(BM(n))_M(e,r);else{var s=n.alternate;if(n.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,t);if(r.hasEagerState=!0,r.eagerState=a,os(a,o)){var c=e.interleaved;c===null?(r.next=r,yI(e)):(r.next=c.next,c.next=r),e.interleaved=r;return}}catch{}finally{}t=tM(n,e,r,i),t!==null&&(r=Oi(),rs(t,n,i,r),SM(t,e,i))}}function BM(n){var e=n.alternate;return n===Rn||e!==null&&e===Rn}function _M(n,e){LA=rg=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function SM(n,e,t){if(t&4194240){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,sI(n,t)}}var sg={readContext:Hr,useCallback:xi,useContext:xi,useEffect:xi,useImperativeHandle:xi,useInsertionEffect:xi,useLayoutEffect:xi,useMemo:xi,useReducer:xi,useRef:xi,useState:xi,useDebugValue:xi,useDeferredValue:xi,useTransition:xi,useMutableSource:xi,useSyncExternalStore:xi,useId:xi,unstable_isNewReconciler:!1},m3={readContext:Hr,useCallback:function(n,e){return Is().memoizedState=[n,e===void 0?null:e],n},useContext:Hr,useEffect:aB,useImperativeHandle:function(n,e,t){return t=t!=null?t.concat([n]):null,Cp(4194308,4,EM.bind(null,e,n),t)},useLayoutEffect:function(n,e){return Cp(4194308,4,n,e)},useInsertionEffect:function(n,e){return Cp(4,2,n,e)},useMemo:function(n,e){var t=Is();return e=e===void 0?null:e,n=n(),t.memoizedState=[n,e],n},useReducer:function(n,e,t){var i=Is();return e=t!==void 0?t(e):e,i.memoizedState=i.baseState=e,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:e},i.queue=n,n=n.dispatch=p3.bind(null,Rn,n),[i.memoizedState,n]},useRef:function(n){var e=Is();return n={current:n},e.memoizedState=n},useState:oB,useDebugValue:MI,useDeferredValue:function(n){return Is().memoizedState=n},useTransition:function(){var n=oB(!1),e=n[0];return n=d3.bind(null,n[1]),Is().memoizedState=n,[e,n]},useMutableSource:function(){},useSyncExternalStore:function(n,e,t){var i=Rn,r=Is();if(_n){if(t===void 0)throw Error(Fe(407));t=t()}else{if(t=e(),ci===null)throw Error(Fe(349));Ql&30||uM(i,e,t)}r.memoizedState=t;var s={value:t,getSnapshot:e};return r.queue=s,aB(hM.bind(null,i,s,n),[n]),i.flags|=2048,oh(9,AM.bind(null,i,s,t,e),void 0,null),t},useId:function(){var n=Is(),e=ci.identifierPrefix;if(_n){var t=io,i=no;t=(i&~(1<<32-is(i)-1)).toString(32)+t,e=":"+e+"R"+t,t=rh++,0<\/script>",n=n.removeChild(n.firstChild)):typeof i.is=="string"?n=o.createElement(t,{is:i.is}):(n=o.createElement(t),t==="select"&&(o=n,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):n=o.createElementNS(n,t),n[xs]=e,n[th]=i,LM(n,e,!1,!1),e.stateNode=n;e:{switch(o=ry(t,i),t){case"dialog":Cn("cancel",n),Cn("close",n),r=i;break;case"iframe":case"object":case"embed":Cn("load",n),r=i;break;case"video":case"audio":for(r=0;rmu&&(e.flags|=128,i=!0,sA(s,!1),e.lanes=4194304)}else{if(!i)if(n=ig(o),n!==null){if(e.flags|=128,i=!0,t=n.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),sA(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!_n)return Bi(e),null}else 2*Hn()-s.renderingStartTime>mu&&t!==1073741824&&(e.flags|=128,i=!0,sA(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(t=s.last,t!==null?t.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Hn(),e.sibling=null,t=Mn.current,mn(Mn,i?t&1|2:t&1),e):(Bi(e),null);case 22:case 23:return NI(),i=e.memoizedState!==null,n!==null&&n.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?gr&1073741824&&(Bi(e),e.subtreeFlags&6&&(e.flags|=8192)):Bi(e),null;case 24:return null;case 25:return null}throw Error(Fe(156,e.tag))}function _3(n,e){switch(dI(e),e.tag){case 1:return ir(e.type)&&jp(),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return pu(),vn(nr),vn(Ti),xI(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 5:return vI(e),null;case 13:if(vn(Mn),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(Fe(340));fu()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return vn(Mn),null;case 4:return pu(),null;case 10:return EI(e.type._context),null;case 22:case 23:return NI(),null;case 24:return null;default:return null}}var ld=!1,Mi=!1,S3=typeof WeakSet=="function"?WeakSet:Set,nt=null;function jc(n,e){var t=n.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(i){Pn(n,e,i)}else t.current=null}function Ty(n,e,t){try{t()}catch(i){Pn(n,e,i)}}var gB=!1;function w3(n,e){if(dy=Yp,n=Ow(),hI(n)){if("selectionStart"in n)var t={start:n.selectionStart,end:n.selectionEnd};else e:{t=(t=n.ownerDocument)&&t.defaultView||window;var i=t.getSelection&&t.getSelection();if(i&&i.rangeCount!==0){t=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{t.nodeType,s.nodeType}catch{t=null;break e}var o=0,a=-1,c=-1,A=0,h=0,f=n,d=null;t:for(;;){for(var m;f!==t||r!==0&&f.nodeType!==3||(a=o+r),f!==s||i!==0&&f.nodeType!==3||(c=o+i),f.nodeType===3&&(o+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===n)break t;if(d===t&&++A===r&&(a=o),d===s&&++h===i&&(c=o),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}t=a===-1||c===-1?null:{start:a,end:c}}else t=null}t=t||{start:0,end:0}}else t=null;for(py={focusedElem:n,selectionRange:t},Yp=!1,nt=e;nt!==null;)if(e=nt,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,nt=n;else for(;nt!==null;){e=nt;try{var E=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var x=E.memoizedProps,y=E.memoizedState,g=e.stateNode,v=g.getSnapshotBeforeUpdate(e.elementType===e.type?x:Zr(e.type,x),y);g.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var C=e.stateNode.containerInfo;C.nodeType===1?C.textContent="":C.nodeType===9&&C.documentElement&&C.removeChild(C.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Fe(163))}}catch(B){Pn(e,e.return,B)}if(n=e.sibling,n!==null){n.return=e.return,nt=n;break}nt=e.return}return E=gB,gB=!1,E}function PA(n,e,t){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&n)===n){var s=r.destroy;r.destroy=void 0,s!==void 0&&Ty(e,t,s)}r=r.next}while(r!==i)}}function Rg(n,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&n)===n){var i=t.create;t.destroy=i()}t=t.next}while(t!==e)}}function Dy(n){var e=n.ref;if(e!==null){var t=n.stateNode;switch(n.tag){case 5:n=t;break;default:n=t}typeof e=="function"?e(n):e.current=n}}function FM(n){var e=n.alternate;e!==null&&(n.alternate=null,FM(e)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(e=n.stateNode,e!==null&&(delete e[xs],delete e[th],delete e[Ey],delete e[c3],delete e[u3])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function kM(n){return n.tag===5||n.tag===3||n.tag===4}function mB(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||kM(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function by(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(n,e):t.insertBefore(n,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(n,t)):(e=t,e.appendChild(n)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=Kp));else if(i!==4&&(n=n.child,n!==null))for(by(n,e,t),n=n.sibling;n!==null;)by(n,e,t),n=n.sibling}function Ny(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.insertBefore(n,e):t.appendChild(n);else if(i!==4&&(n=n.child,n!==null))for(Ny(n,e,t),n=n.sibling;n!==null;)Ny(n,e,t),n=n.sibling}var pi=null,es=!1;function Mo(n,e,t){for(t=t.child;t!==null;)GM(n,e,t),t=t.sibling}function GM(n,e,t){if(ws&&typeof ws.onCommitFiberUnmount=="function")try{ws.onCommitFiberUnmount(vg,t)}catch{}switch(t.tag){case 5:Mi||jc(t,e);case 6:var i=pi,r=es;pi=null,Mo(n,e,t),pi=i,es=r,pi!==null&&(es?(n=pi,t=t.stateNode,n.nodeType===8?n.parentNode.removeChild(t):n.removeChild(t)):pi.removeChild(t.stateNode));break;case 18:pi!==null&&(es?(n=pi,t=t.stateNode,n.nodeType===8?N0(n.parentNode,t):n.nodeType===1&&N0(n,t),jA(n)):N0(pi,t.stateNode));break;case 4:i=pi,r=es,pi=t.stateNode.containerInfo,es=!0,Mo(n,e,t),pi=i,es=r;break;case 0:case 11:case 14:case 15:if(!Mi&&(i=t.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&Ty(t,e,o),r=r.next}while(r!==i)}Mo(n,e,t);break;case 1:if(!Mi&&(jc(t,e),i=t.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=t.memoizedProps,i.state=t.memoizedState,i.componentWillUnmount()}catch(a){Pn(t,e,a)}Mo(n,e,t);break;case 21:Mo(n,e,t);break;case 22:t.mode&1?(Mi=(i=Mi)||t.memoizedState!==null,Mo(n,e,t),Mi=i):Mo(n,e,t);break;default:Mo(n,e,t)}}function EB(n){var e=n.updateQueue;if(e!==null){n.updateQueue=null;var t=n.stateNode;t===null&&(t=n.stateNode=new S3),e.forEach(function(i){var r=P3.bind(null,n,i);t.has(i)||(t.add(i),i.then(r,r))})}}function Jr(n,e){var t=e.deletions;if(t!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=Hn()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Q3(i/1960))-i,10n?16:n,Yo===null)var i=!1;else{if(n=Yo,Yo=null,lg=0,Kt&6)throw Error(Fe(331));var r=Kt;for(Kt|=4,nt=n.current;nt!==null;){var s=nt,o=s.child;if(nt.flags&16){var a=s.deletions;if(a!==null){for(var c=0;cHn()-DI?Cl(n,0):TI|=t),rr(n,e)}function JM(n,e){e===0&&(n.mode&1?(e=$f,$f<<=1,!($f&130023424)&&($f=4194304)):e=1);var t=Oi();n=uo(n,e),n!==null&&(Nh(n,e,t),rr(n,t))}function L3(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),JM(n,t)}function P3(n,e){var t=0;switch(n.tag){case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;default:throw Error(Fe(314))}i!==null&&i.delete(e),JM(n,t)}var KM;KM=function(n,e,t){if(n!==null)if(n.memoizedProps!==e.pendingProps||nr.current)tr=!0;else{if(!(n.lanes&t)&&!(e.flags&128))return tr=!1,x3(n,e,t);tr=!!(n.flags&131072)}else tr=!1,_n&&e.flags&1048576&&Zw(e,$p,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;Ip(n,e),n=e.pendingProps;var r=hu(e,Ti.current);au(e,t),r=_I(null,e,i,n,r,t);var s=SI();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,ir(i)?(s=!0,qp(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,CI(e),r.updater=Mg,e.stateNode=r,r._reactInternals=e,By(e,i,n,t),e=wy(null,e,i,!0,s,t)):(e.tag=0,_n&&s&&fI(e),Fi(null,e,r,t),e=e.child),e;case 16:i=e.elementType;e:{switch(Ip(n,e),n=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=F3(i),n=Zr(i,n),r){case 0:e=Sy(null,e,i,n,t);break e;case 1:e=fB(null,e,i,n,t);break e;case 11:e=AB(null,e,i,n,t);break e;case 14:e=hB(null,e,i,Zr(i.type,n),t);break e}throw Error(Fe(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Zr(i,r),Sy(n,e,i,r,t);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Zr(i,r),fB(n,e,i,r,t);case 3:e:{if(DM(e),n===null)throw Error(Fe(387));i=e.pendingProps,s=e.memoizedState,r=s.element,nM(n,e),ng(e,i,null,t);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=gu(Error(Fe(423)),e),e=dB(n,e,i,t,r);break e}else if(i!==r){r=gu(Error(Fe(424)),e),e=dB(n,e,i,t,r);break e}else for(yr=qo(e.stateNode.containerInfo.firstChild),Ir=e,_n=!0,ts=null,t=oM(e,null,i,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(fu(),i===r){e=Ao(n,e,t);break e}Fi(n,e,i,t)}e=e.child}return e;case 5:return aM(e),n===null&&Iy(e),i=e.type,r=e.pendingProps,s=n!==null?n.memoizedProps:null,o=r.children,gy(i,r)?o=null:s!==null&&gy(i,s)&&(e.flags|=32),TM(n,e),Fi(n,e,o,t),e.child;case 6:return n===null&&Iy(e),null;case 13:return bM(n,e,t);case 4:return II(e,e.stateNode.containerInfo),i=e.pendingProps,n===null?e.child=du(e,null,i,t):Fi(n,e,i,t),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Zr(i,r),AB(n,e,i,r,t);case 7:return Fi(n,e,e.pendingProps,t),e.child;case 8:return Fi(n,e,e.pendingProps.children,t),e.child;case 12:return Fi(n,e,e.pendingProps.children,t),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,mn(eg,i._currentValue),i._currentValue=o,s!==null)if(os(s.value,o)){if(s.children===r.children&&!nr.current){e=Ao(n,e,t);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var c=a.firstContext;c!==null;){if(c.context===i){if(s.tag===1){c=oo(-1,t&-t),c.tag=2;var A=s.updateQueue;if(A!==null){A=A.shared;var h=A.pending;h===null?c.next=c:(c.next=h.next,h.next=c),A.pending=c}}s.lanes|=t,c=s.alternate,c!==null&&(c.lanes|=t),vy(s.return,t,e),a.lanes|=t;break}c=c.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(Fe(341));o.lanes|=t,a=o.alternate,a!==null&&(a.lanes|=t),vy(o,t,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Fi(n,e,r.children,t),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,au(e,t),r=Hr(r),i=i(r),e.flags|=1,Fi(n,e,i,t),e.child;case 14:return i=e.type,r=Zr(i,e.pendingProps),r=Zr(i.type,r),hB(n,e,i,r,t);case 15:return QM(n,e,e.type,e.pendingProps,t);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:Zr(i,r),Ip(n,e),e.tag=1,ir(i)?(n=!0,qp(e)):n=!1,au(e,t),rM(e,i,r),By(e,i,r,t),wy(null,e,i,!0,n,t);case 19:return NM(n,e,t);case 22:return RM(n,e,t)}throw Error(Fe(156,e.tag))};function jM(n,e){return vw(n,e)}function U3(n,e,t,i){this.tag=n,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function kr(n,e,t,i){return new U3(n,e,t,i)}function PI(n){return n=n.prototype,!(!n||!n.isReactComponent)}function F3(n){if(typeof n=="function")return PI(n)?1:0;if(n!=null){if(n=n.$$typeof,n===tI)return 11;if(n===nI)return 14}return 2}function ta(n,e){var t=n.alternate;return t===null?(t=kr(n.tag,e,n.key,n.mode),t.elementType=n.elementType,t.type=n.type,t.stateNode=n.stateNode,t.alternate=n,n.alternate=t):(t.pendingProps=e,t.type=n.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=n.flags&14680064,t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=n.sibling,t.index=n.index,t.ref=n.ref,t}function Bp(n,e,t,i,r,s){var o=2;if(i=n,typeof n=="function")PI(n)&&(o=1);else if(typeof n=="string")o=5;else e:switch(n){case Oc:return Il(t.children,r,s,e);case eI:o=8,r|=8;break;case JE:return n=kr(12,t,e,r|2),n.elementType=JE,n.lanes=s,n;case KE:return n=kr(13,t,e,r),n.elementType=KE,n.lanes=s,n;case jE:return n=kr(19,t,e,r),n.elementType=jE,n.lanes=s,n;case sw:return Dg(t,r,s,e);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case iw:o=10;break e;case rw:o=9;break e;case tI:o=11;break e;case nI:o=14;break e;case ko:o=16,i=null;break e}throw Error(Fe(130,n==null?n:typeof n,""))}return e=kr(o,t,e,r),e.elementType=n,e.type=i,e.lanes=s,e}function Il(n,e,t,i){return n=kr(7,n,i,e),n.lanes=t,n}function Dg(n,e,t,i){return n=kr(22,n,i,e),n.elementType=sw,n.lanes=t,n.stateNode={isHidden:!1},n}function H0(n,e,t){return n=kr(6,n,null,e),n.lanes=t,n}function z0(n,e,t){return e=kr(4,n.children!==null?n.children:[],n.key,e),e.lanes=t,e.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},e}function k3(n,e,t,i,r){this.tag=e,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=x0(0),this.expirationTimes=x0(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=x0(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function UI(n,e,t,i,r,s,o,a,c){return n=new k3(n,e,t,a,c),e===1?(e=1,s===!0&&(e|=8)):e=0,s=kr(3,null,null,e),n.current=s,s.stateNode=n,s.memoizedState={element:i,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},CI(s),n}function G3(n,e,t){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(eQ)}catch(n){console.error(n)}}eQ(),ZS.exports=_r;var W3=ZS.exports,tQ,SB=W3;tQ=SB.createRoot,SB.hydrateRoot;/** - * @license - * Copyright 2010-2023 Three.js Authors - * SPDX-License-Identifier: MIT - */const Ug="161",Y3={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},X3={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},nQ=0,ky=1,iQ=2,J3=3,rQ=0,Fg=1,kA=2,$r=3,Vr=0,Hi=1,Bs=2,ao=0,vl=1,Gy=2,Oy=3,Hy=4,sQ=5,zo=100,oQ=101,aQ=102,zy=103,Vy=104,lQ=200,cQ=201,uQ=202,AQ=203,Ag=204,hg=205,hQ=206,fQ=207,dQ=208,pQ=209,gQ=210,mQ=211,EQ=212,yQ=213,CQ=214,IQ=0,vQ=1,xQ=2,lh=3,BQ=4,_Q=5,SQ=6,wQ=7,Fh=0,MQ=1,QQ=2,Qs=0,RQ=1,TQ=2,DQ=3,OI=4,bQ=5,NQ=6,Wy="attached",LQ="detached",kg=300,ho=301,ua=302,ch=303,uh=304,Bu=306,Ah=1e3,Qi=1001,hh=1002,Gn=1003,fg=1004,K3=1004,ul=1005,j3=1005,In=1006,GA=1007,q3=1007,_s=1008,Z3=1008,Rs=1009,PQ=1010,UQ=1011,Gg=1012,HI=1013,ro=1014,Fr=1015,Dl=1016,zI=1017,VI=1018,na=1020,FQ=1021,ki=1023,kQ=1024,GQ=1025,ia=1026,bl=1027,OQ=1028,WI=1029,HQ=1030,YI=1031,XI=1033,_p=33776,Sp=33777,wp=33778,Mp=33779,Yy=35840,Xy=35841,Jy=35842,Ky=35843,JI=36196,jy=37492,qy=37496,Zy=37808,$y=37809,eC=37810,tC=37811,nC=37812,iC=37813,rC=37814,sC=37815,oC=37816,aC=37817,lC=37818,cC=37819,uC=37820,AC=37821,Qp=36492,hC=36494,fC=36495,zQ=36283,dC=36284,pC=36285,gC=36286,VQ=2200,WQ=2201,YQ=2202,fh=2300,dh=2301,Rp=2302,gl=2400,ml=2401,ph=2402,Og=2500,KI=2501,$3=0,eN=1,tN=2,jI=3e3,ra=3001,XQ=3200,qI=3201,pa=0,JQ=1,mr="",On="srgb",Ds="srgb-linear",Hg="display-p3",kh="display-p3-linear",gh="linear",gn="srgb",mh="rec709",Eh="p3",nN=0,ol=7680,iN=7681,rN=7682,sN=7683,oN=34055,aN=34056,lN=5386,cN=512,uN=513,AN=514,hN=515,fN=516,dN=517,pN=518,mC=519,KQ=512,jQ=513,qQ=514,ZI=515,ZQ=516,$Q=517,e2=518,t2=519,yh=35044,Xo=35048,gN=35040,mN=35045,EN=35049,yN=35041,CN=35046,IN=35050,vN=35042,xN="100",EC="300 es",dg=1035,Ss=2e3,Ch=2001;class po{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const i=this._listeners[e.type];if(i!==void 0){e.target=this;const r=i.slice(0);for(let s=0,o=r.length;s>8&255]+_i[n>>16&255]+_i[n>>24&255]+"-"+_i[e&255]+_i[e>>8&255]+"-"+_i[e>>16&15|64]+_i[e>>24&255]+"-"+_i[t&63|128]+_i[t>>8&255]+"-"+_i[t>>16&255]+_i[t>>24&255]+_i[i&255]+_i[i>>8&255]+_i[i>>16&255]+_i[i>>24&255]).toLowerCase()}function Un(n,e,t){return Math.max(e,Math.min(t,n))}function $I(n,e){return(n%e+e)%e}function BN(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function _N(n,e,t){return n!==e?(t-n)/(e-n):0}function OA(n,e,t){return(1-t)*n+t*e}function SN(n,e,t,i){return OA(n,e,1-Math.exp(-t*i))}function wN(n,e=1){return e-Math.abs($I(n,e*2)-e)}function MN(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function QN(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function RN(n,e){return n+Math.floor(Math.random()*(e-n+1))}function TN(n,e){return n+Math.random()*(e-n)}function DN(n){return n*(.5-Math.random())}function bN(n){n!==void 0&&(wB=n);let e=wB+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function NN(n){return n*xl}function LN(n){return n*Eu}function yC(n){return(n&n-1)===0&&n!==0}function PN(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function pg(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function UN(n,e,t,i,r){const s=Math.cos,o=Math.sin,a=s(t/2),c=o(t/2),A=s((e+i)/2),h=o((e+i)/2),f=s((e-i)/2),d=o((e-i)/2),m=s((i-e)/2),E=o((i-e)/2);switch(r){case"XYX":n.set(a*h,c*f,c*d,a*A);break;case"YZY":n.set(c*d,a*h,c*f,a*A);break;case"ZXZ":n.set(c*f,c*d,a*h,a*A);break;case"XZX":n.set(a*h,c*E,c*m,a*A);break;case"YXY":n.set(c*m,a*h,c*E,a*A);break;case"ZYZ":n.set(c*E,c*m,a*h,a*A);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Gi(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function bt(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}const FN={DEG2RAD:xl,RAD2DEG:Eu,generateUUID:vr,clamp:Un,euclideanModulo:$I,mapLinear:BN,inverseLerp:_N,lerp:OA,damp:SN,pingpong:wN,smoothstep:MN,smootherstep:QN,randInt:RN,randFloat:TN,randFloatSpread:DN,seededRandom:bN,degToRad:NN,radToDeg:LN,isPowerOfTwo:yC,ceilPowerOfTwo:PN,floorPowerOfTwo:pg,setQuaternionFromProperEuler:UN,normalize:bt,denormalize:Gi};class _e{constructor(e=0,t=0){_e.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Un(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Rt{constructor(e,t,i,r,s,o,a,c,A){Rt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,c,A)}set(e,t,i,r,s,o,a,c,A){const h=this.elements;return h[0]=e,h[1]=r,h[2]=a,h[3]=t,h[4]=s,h[5]=c,h[6]=i,h[7]=o,h[8]=A,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[3],c=i[6],A=i[1],h=i[4],f=i[7],d=i[2],m=i[5],E=i[8],x=r[0],y=r[3],g=r[6],v=r[1],C=r[4],B=r[7],R=r[2],w=r[5],T=r[8];return s[0]=o*x+a*v+c*R,s[3]=o*y+a*C+c*w,s[6]=o*g+a*B+c*T,s[1]=A*x+h*v+f*R,s[4]=A*y+h*C+f*w,s[7]=A*g+h*B+f*T,s[2]=d*x+m*v+E*R,s[5]=d*y+m*C+E*w,s[8]=d*g+m*B+E*T,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8];return t*o*h-t*a*A-i*s*h+i*a*c+r*s*A-r*o*c}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8],f=h*o-a*A,d=a*c-h*s,m=A*s-o*c,E=t*f+i*d+r*m;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);const x=1/E;return e[0]=f*x,e[1]=(r*A-h*i)*x,e[2]=(a*i-r*o)*x,e[3]=d*x,e[4]=(h*t-r*c)*x,e[5]=(r*s-a*t)*x,e[6]=m*x,e[7]=(i*c-A*t)*x,e[8]=(o*t-i*s)*x,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,a){const c=Math.cos(s),A=Math.sin(s);return this.set(i*c,i*A,-i*(c*o+A*a)+o+e,-r*A,r*c,-r*(-A*o+c*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(V0.makeScale(e,t)),this}rotate(e){return this.premultiply(V0.makeRotation(-e)),this}translate(e,t){return this.premultiply(V0.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const V0=new Rt;function n2(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const kN={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function Zc(n,e){return new kN[n](e)}function Ih(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function i2(){const n=Ih("canvas");return n.style.display="block",n}const MB={};function Bl(n){n in MB||(MB[n]=!0,console.warn(n))}const QB=new Rt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),RB=new Rt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),Ad={[Ds]:{transfer:gh,primaries:mh,toReference:n=>n,fromReference:n=>n},[On]:{transfer:gn,primaries:mh,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[kh]:{transfer:gh,primaries:Eh,toReference:n=>n.applyMatrix3(RB),fromReference:n=>n.applyMatrix3(QB)},[Hg]:{transfer:gn,primaries:Eh,toReference:n=>n.convertSRGBToLinear().applyMatrix3(RB),fromReference:n=>n.applyMatrix3(QB).convertLinearToSRGB()}},GN=new Set([Ds,kh]),on={enabled:!0,_workingColorSpace:Ds,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!GN.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;const i=Ad[e].toReference,r=Ad[t].fromReference;return r(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return Ad[n].primaries},getTransfer:function(n){return n===mr?gh:Ad[n].transfer}};function cu(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function W0(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let cc;class ev{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{cc===void 0&&(cc=Ih("canvas")),cc.width=e.width,cc.height=e.height;const i=cc.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=cc}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=Ih("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==kg)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case Ah:e.x=e.x-Math.floor(e.x);break;case Qi:e.x=e.x<0?0:1;break;case hh:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case Ah:e.y=e.y-Math.floor(e.y);break;case Qi:e.y=e.y<0?0:1;break;case hh:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Bl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===On?ra:jI}set encoding(e){Bl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===ra?On:mr}}Sn.DEFAULT_IMAGE=null;Sn.DEFAULT_MAPPING=kg;Sn.DEFAULT_ANISOTROPY=1;class an{constructor(e=0,t=0,i=0,r=1){an.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const c=e.elements,A=c[0],h=c[4],f=c[8],d=c[1],m=c[5],E=c[9],x=c[2],y=c[6],g=c[10];if(Math.abs(h-d)<.01&&Math.abs(f-x)<.01&&Math.abs(E-y)<.01){if(Math.abs(h+d)<.1&&Math.abs(f+x)<.1&&Math.abs(E+y)<.1&&Math.abs(A+m+g-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const C=(A+1)/2,B=(m+1)/2,R=(g+1)/2,w=(h+d)/4,T=(f+x)/4,P=(E+y)/4;return C>B&&C>R?C<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(C),r=w/i,s=T/i):B>R?B<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(B),i=w/r,s=P/r):R<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(R),i=T/s,r=P/s),this.set(i,r,s,t),this}let v=Math.sqrt((y-E)*(y-E)+(f-x)*(f-x)+(d-h)*(d-h));return Math.abs(v)<.001&&(v=1),this.x=(y-E)/v,this.y=(f-x)/v,this.z=(d-h)/v,this.w=Math.acos((A+m+g-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class r2 extends po{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new an(0,0,e,t),this.scissorTest=!1,this.viewport=new an(0,0,e,t);const r={width:e,height:t,depth:1};i.encoding!==void 0&&(Bl("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===ra?On:mr),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:In,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},i),this.texture=new Sn(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps,this.texture.internalFormat=i.internalFormat,this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.depthTexture=i.depthTexture,this.samples=i.samples}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new El(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Wr extends r2{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}}class zg extends Sn{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Qi,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class zN extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new zg(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class tv extends Sn{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Qi,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class VN extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new tv(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class WN extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const s=this.texture;this.texture=[];for(let o=0;o=0?1:-1,C=1-g*g;if(C>Number.EPSILON){const R=Math.sqrt(C),w=Math.atan2(R,g*v);y=Math.sin(y*w)/R,a=Math.sin(a*w)/R}const B=a*v;if(c=c*y+d*B,A=A*y+m*B,h=h*y+E*B,f=f*y+x*B,y===1-a){const R=1/Math.sqrt(c*c+A*A+h*h+f*f);c*=R,A*=R,h*=R,f*=R}}e[t]=c,e[t+1]=A,e[t+2]=h,e[t+3]=f}static multiplyQuaternionsFlat(e,t,i,r,s,o){const a=i[r],c=i[r+1],A=i[r+2],h=i[r+3],f=s[o],d=s[o+1],m=s[o+2],E=s[o+3];return e[t]=a*E+h*f+c*m-A*d,e[t+1]=c*E+h*d+A*f-a*m,e[t+2]=A*E+h*m+a*d-c*f,e[t+3]=h*E-a*f-c*d-A*m,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,a=Math.cos,c=Math.sin,A=a(i/2),h=a(r/2),f=a(s/2),d=c(i/2),m=c(r/2),E=c(s/2);switch(o){case"XYZ":this._x=d*h*f+A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f-d*m*E;break;case"YXZ":this._x=d*h*f+A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f+d*m*E;break;case"ZXY":this._x=d*h*f-A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f-d*m*E;break;case"ZYX":this._x=d*h*f-A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f+d*m*E;break;case"YZX":this._x=d*h*f+A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f-d*m*E;break;case"XZY":this._x=d*h*f-A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f+d*m*E;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],a=t[5],c=t[9],A=t[2],h=t[6],f=t[10],d=i+a+f;if(d>0){const m=.5/Math.sqrt(d+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-A)*m,this._z=(o-r)*m}else if(i>a&&i>f){const m=2*Math.sqrt(1+i-a-f);this._w=(h-c)/m,this._x=.25*m,this._y=(r+o)/m,this._z=(s+A)/m}else if(a>f){const m=2*Math.sqrt(1+a-i-f);this._w=(s-A)/m,this._x=(r+o)/m,this._y=.25*m,this._z=(c+h)/m}else{const m=2*Math.sqrt(1+f-i-a);this._w=(o-r)/m,this._x=(s+A)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Un(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,a=t._x,c=t._y,A=t._z,h=t._w;return this._x=i*h+o*a+r*A-s*c,this._y=r*h+o*c+s*a-i*A,this._z=s*h+o*A+i*c-r*a,this._w=o*h-i*a-r*c-s*A,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let a=o*e._w+i*e._x+r*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const c=1-a*a;if(c<=Number.EPSILON){const m=1-t;return this._w=m*o+t*this._w,this._x=m*i+t*this._x,this._y=m*r+t*this._y,this._z=m*s+t*this._z,this.normalize(),this}const A=Math.sqrt(c),h=Math.atan2(A,a),f=Math.sin((1-t)*h)/A,d=Math.sin(t*h)/A;return this._w=o*f+this._w*d,this._x=i*f+this._x*d,this._y=r*f+this._y*d,this._z=s*f+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(s),i*Math.cos(s),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class G{constructor(e=0,t=0,i=0){G.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(TB.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(TB.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,a=e.z,c=e.w,A=2*(o*r-a*i),h=2*(a*t-s*r),f=2*(s*i-o*t);return this.x=t+c*A+o*f-a*h,this.y=i+c*h+a*A-s*f,this.z=r+c*f+s*h-o*A,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,a=t.y,c=t.z;return this.x=r*c-s*a,this.y=s*o-i*c,this.z=i*a-r*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return X0.copy(this).projectOnVector(e),this.sub(X0)}reflect(e){return this.sub(X0.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Un(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const X0=new G,TB=new zi;class ei{constructor(e=new G(1/0,1/0,1/0),t=new G(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,Kr),Kr.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(aA),fd.subVectors(this.max,aA),uc.subVectors(e.a,aA),Ac.subVectors(e.b,aA),hc.subVectors(e.c,aA),Qo.subVectors(Ac,uc),Ro.subVectors(hc,Ac),Ya.subVectors(uc,hc);let t=[0,-Qo.z,Qo.y,0,-Ro.z,Ro.y,0,-Ya.z,Ya.y,Qo.z,0,-Qo.x,Ro.z,0,-Ro.x,Ya.z,0,-Ya.x,-Qo.y,Qo.x,0,-Ro.y,Ro.x,0,-Ya.y,Ya.x,0];return!J0(t,uc,Ac,hc,fd)||(t=[1,0,0,0,1,0,0,0,1],!J0(t,uc,Ac,hc,fd))?!1:(dd.crossVectors(Qo,Ro),t=[dd.x,dd.y,dd.z],J0(t,uc,Ac,hc,fd))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Kr).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(Kr).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Ws[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Ws[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Ws[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Ws[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Ws[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Ws[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Ws[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Ws[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Ws),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const Ws=[new G,new G,new G,new G,new G,new G,new G,new G],Kr=new G,hd=new ei,uc=new G,Ac=new G,hc=new G,Qo=new G,Ro=new G,Ya=new G,aA=new G,fd=new G,dd=new G,Xa=new G;function J0(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){Xa.fromArray(n,s);const a=r.x*Math.abs(Xa.x)+r.y*Math.abs(Xa.y)+r.z*Math.abs(Xa.z),c=e.dot(Xa),A=t.dot(Xa),h=i.dot(Xa);if(Math.max(-Math.max(c,A,h),Math.min(c,A,h))>a)return!1}return!0}const YN=new ei,lA=new G,K0=new G;class ui{constructor(e=new G,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):YN.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;lA.subVectors(e,this.center);const t=lA.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(lA,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(K0.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(lA.copy(e.center).add(K0)),this.expandByPoint(lA.copy(e.center).sub(K0))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Ys=new G,j0=new G,pd=new G,To=new G,q0=new G,gd=new G,Z0=new G;class _u{constructor(e=new G,t=new G(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Ys)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Ys.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Ys.copy(this.origin).addScaledVector(this.direction,t),Ys.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){j0.copy(e).add(t).multiplyScalar(.5),pd.copy(t).sub(e).normalize(),To.copy(this.origin).sub(j0);const s=e.distanceTo(t)*.5,o=-this.direction.dot(pd),a=To.dot(this.direction),c=-To.dot(pd),A=To.lengthSq(),h=Math.abs(1-o*o);let f,d,m,E;if(h>0)if(f=o*c-a,d=o*a-c,E=s*h,f>=0)if(d>=-E)if(d<=E){const x=1/h;f*=x,d*=x,m=f*(f+o*d+2*a)+d*(o*f+d+2*c)+A}else d=s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;else d=-s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;else d<=-E?(f=Math.max(0,-(-o*s+a)),d=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+A):d<=E?(f=0,d=Math.min(Math.max(-s,-c),s),m=d*(d+2*c)+A):(f=Math.max(0,-(o*s+a)),d=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+A);else d=o>0?-s:s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;return i&&i.copy(this.origin).addScaledVector(this.direction,f),r&&r.copy(j0).addScaledVector(pd,d),m}intersectSphere(e,t){Ys.subVectors(e.center,this.origin);const i=Ys.dot(this.direction),r=Ys.dot(Ys)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=i-o,c=i+o;return c<0?null:a<0?this.at(c,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,a,c;const A=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,d=this.origin;return A>=0?(i=(e.min.x-d.x)*A,r=(e.max.x-d.x)*A):(i=(e.max.x-d.x)*A,r=(e.min.x-d.x)*A),h>=0?(s=(e.min.y-d.y)*h,o=(e.max.y-d.y)*h):(s=(e.max.y-d.y)*h,o=(e.min.y-d.y)*h),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(a=(e.min.z-d.z)*f,c=(e.max.z-d.z)*f):(a=(e.max.z-d.z)*f,c=(e.min.z-d.z)*f),i>c||a>r)||((a>i||i!==i)&&(i=a),(c=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,Ys)!==null}intersectTriangle(e,t,i,r,s){q0.subVectors(t,e),gd.subVectors(i,e),Z0.crossVectors(q0,gd);let o=this.direction.dot(Z0),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;To.subVectors(this.origin,e);const c=a*this.direction.dot(gd.crossVectors(To,gd));if(c<0)return null;const A=a*this.direction.dot(q0.cross(To));if(A<0||c+A>o)return null;const h=-a*To.dot(Z0);return h<0?null:this.at(h/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ft{constructor(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,y){ft.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,y)}set(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,y){const g=this.elements;return g[0]=e,g[4]=t,g[8]=i,g[12]=r,g[1]=s,g[5]=o,g[9]=a,g[13]=c,g[2]=A,g[6]=h,g[10]=f,g[14]=d,g[3]=m,g[7]=E,g[11]=x,g[15]=y,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ft().fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/fc.setFromMatrixColumn(e,0).length(),s=1/fc.setFromMatrixColumn(e,1).length(),o=1/fc.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),a=Math.sin(i),c=Math.cos(r),A=Math.sin(r),h=Math.cos(s),f=Math.sin(s);if(e.order==="XYZ"){const d=o*h,m=o*f,E=a*h,x=a*f;t[0]=c*h,t[4]=-c*f,t[8]=A,t[1]=m+E*A,t[5]=d-x*A,t[9]=-a*c,t[2]=x-d*A,t[6]=E+m*A,t[10]=o*c}else if(e.order==="YXZ"){const d=c*h,m=c*f,E=A*h,x=A*f;t[0]=d+x*a,t[4]=E*a-m,t[8]=o*A,t[1]=o*f,t[5]=o*h,t[9]=-a,t[2]=m*a-E,t[6]=x+d*a,t[10]=o*c}else if(e.order==="ZXY"){const d=c*h,m=c*f,E=A*h,x=A*f;t[0]=d-x*a,t[4]=-o*f,t[8]=E+m*a,t[1]=m+E*a,t[5]=o*h,t[9]=x-d*a,t[2]=-o*A,t[6]=a,t[10]=o*c}else if(e.order==="ZYX"){const d=o*h,m=o*f,E=a*h,x=a*f;t[0]=c*h,t[4]=E*A-m,t[8]=d*A+x,t[1]=c*f,t[5]=x*A+d,t[9]=m*A-E,t[2]=-A,t[6]=a*c,t[10]=o*c}else if(e.order==="YZX"){const d=o*c,m=o*A,E=a*c,x=a*A;t[0]=c*h,t[4]=x-d*f,t[8]=E*f+m,t[1]=f,t[5]=o*h,t[9]=-a*h,t[2]=-A*h,t[6]=m*f+E,t[10]=d-x*f}else if(e.order==="XZY"){const d=o*c,m=o*A,E=a*c,x=a*A;t[0]=c*h,t[4]=-f,t[8]=A*h,t[1]=d*f+x,t[5]=o*h,t[9]=m*f-E,t[2]=E*f-m,t[6]=a*h,t[10]=x*f+d}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(XN,e,JN)}lookAt(e,t,i){const r=this.elements;return dr.subVectors(e,t),dr.lengthSq()===0&&(dr.z=1),dr.normalize(),Do.crossVectors(i,dr),Do.lengthSq()===0&&(Math.abs(i.z)===1?dr.x+=1e-4:dr.z+=1e-4,dr.normalize(),Do.crossVectors(i,dr)),Do.normalize(),md.crossVectors(dr,Do),r[0]=Do.x,r[4]=md.x,r[8]=dr.x,r[1]=Do.y,r[5]=md.y,r[9]=dr.y,r[2]=Do.z,r[6]=md.z,r[10]=dr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[4],c=i[8],A=i[12],h=i[1],f=i[5],d=i[9],m=i[13],E=i[2],x=i[6],y=i[10],g=i[14],v=i[3],C=i[7],B=i[11],R=i[15],w=r[0],T=r[4],P=r[8],K=r[12],M=r[1],b=r[5],q=r[9],ge=r[13],X=r[2],ce=r[6],se=r[10],fe=r[14],U=r[3],ee=r[7],te=r[11],ue=r[15];return s[0]=o*w+a*M+c*X+A*U,s[4]=o*T+a*b+c*ce+A*ee,s[8]=o*P+a*q+c*se+A*te,s[12]=o*K+a*ge+c*fe+A*ue,s[1]=h*w+f*M+d*X+m*U,s[5]=h*T+f*b+d*ce+m*ee,s[9]=h*P+f*q+d*se+m*te,s[13]=h*K+f*ge+d*fe+m*ue,s[2]=E*w+x*M+y*X+g*U,s[6]=E*T+x*b+y*ce+g*ee,s[10]=E*P+x*q+y*se+g*te,s[14]=E*K+x*ge+y*fe+g*ue,s[3]=v*w+C*M+B*X+R*U,s[7]=v*T+C*b+B*ce+R*ee,s[11]=v*P+C*q+B*se+R*te,s[15]=v*K+C*ge+B*fe+R*ue,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],a=e[5],c=e[9],A=e[13],h=e[2],f=e[6],d=e[10],m=e[14],E=e[3],x=e[7],y=e[11],g=e[15];return E*(+s*c*f-r*A*f-s*a*d+i*A*d+r*a*m-i*c*m)+x*(+t*c*m-t*A*d+s*o*d-r*o*m+r*A*h-s*c*h)+y*(+t*A*f-t*a*m-s*o*f+i*o*m+s*a*h-i*A*h)+g*(-r*a*h-t*c*f+t*a*d+r*o*f-i*o*d+i*c*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8],f=e[9],d=e[10],m=e[11],E=e[12],x=e[13],y=e[14],g=e[15],v=f*y*A-x*d*A+x*c*m-a*y*m-f*c*g+a*d*g,C=E*d*A-h*y*A-E*c*m+o*y*m+h*c*g-o*d*g,B=h*x*A-E*f*A+E*a*m-o*x*m-h*a*g+o*f*g,R=E*f*c-h*x*c-E*a*d+o*x*d+h*a*y-o*f*y,w=t*v+i*C+r*B+s*R;if(w===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/w;return e[0]=v*T,e[1]=(x*d*s-f*y*s-x*r*m+i*y*m+f*r*g-i*d*g)*T,e[2]=(a*y*s-x*c*s+x*r*A-i*y*A-a*r*g+i*c*g)*T,e[3]=(f*c*s-a*d*s-f*r*A+i*d*A+a*r*m-i*c*m)*T,e[4]=C*T,e[5]=(h*y*s-E*d*s+E*r*m-t*y*m-h*r*g+t*d*g)*T,e[6]=(E*c*s-o*y*s-E*r*A+t*y*A+o*r*g-t*c*g)*T,e[7]=(o*d*s-h*c*s+h*r*A-t*d*A-o*r*m+t*c*m)*T,e[8]=B*T,e[9]=(E*f*s-h*x*s-E*i*m+t*x*m+h*i*g-t*f*g)*T,e[10]=(o*x*s-E*a*s+E*i*A-t*x*A-o*i*g+t*a*g)*T,e[11]=(h*a*s-o*f*s-h*i*A+t*f*A+o*i*m-t*a*m)*T,e[12]=R*T,e[13]=(h*x*r-E*f*r+E*i*d-t*x*d-h*i*y+t*f*y)*T,e[14]=(E*a*r-o*x*r-E*i*c+t*x*c+o*i*y-t*a*y)*T,e[15]=(o*f*r-h*a*r+h*i*c-t*f*c-o*i*d+t*a*d)*T,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,a=e.y,c=e.z,A=s*o,h=s*a;return this.set(A*o+i,A*a-r*c,A*c+r*a,0,A*a+r*c,h*a+i,h*c-r*o,0,A*c-r*a,h*c+r*o,s*c*c+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,a=t._z,c=t._w,A=s+s,h=o+o,f=a+a,d=s*A,m=s*h,E=s*f,x=o*h,y=o*f,g=a*f,v=c*A,C=c*h,B=c*f,R=i.x,w=i.y,T=i.z;return r[0]=(1-(x+g))*R,r[1]=(m+B)*R,r[2]=(E-C)*R,r[3]=0,r[4]=(m-B)*w,r[5]=(1-(d+g))*w,r[6]=(y+v)*w,r[7]=0,r[8]=(E+C)*T,r[9]=(y-v)*T,r[10]=(1-(d+x))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=fc.set(r[0],r[1],r[2]).length();const o=fc.set(r[4],r[5],r[6]).length(),a=fc.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],jr.copy(this);const A=1/s,h=1/o,f=1/a;return jr.elements[0]*=A,jr.elements[1]*=A,jr.elements[2]*=A,jr.elements[4]*=h,jr.elements[5]*=h,jr.elements[6]*=h,jr.elements[8]*=f,jr.elements[9]*=f,jr.elements[10]*=f,t.setFromRotationMatrix(jr),i.x=s,i.y=o,i.z=a,this}makePerspective(e,t,i,r,s,o,a=Ss){const c=this.elements,A=2*s/(t-e),h=2*s/(i-r),f=(t+e)/(t-e),d=(i+r)/(i-r);let m,E;if(a===Ss)m=-(o+s)/(o-s),E=-2*o*s/(o-s);else if(a===Ch)m=-o/(o-s),E=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return c[0]=A,c[4]=0,c[8]=f,c[12]=0,c[1]=0,c[5]=h,c[9]=d,c[13]=0,c[2]=0,c[6]=0,c[10]=m,c[14]=E,c[3]=0,c[7]=0,c[11]=-1,c[15]=0,this}makeOrthographic(e,t,i,r,s,o,a=Ss){const c=this.elements,A=1/(t-e),h=1/(i-r),f=1/(o-s),d=(t+e)*A,m=(i+r)*h;let E,x;if(a===Ss)E=(o+s)*f,x=-2*f;else if(a===Ch)E=s*f,x=-1*f;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return c[0]=2*A,c[4]=0,c[8]=0,c[12]=-d,c[1]=0,c[5]=2*h,c[9]=0,c[13]=-m,c[2]=0,c[6]=0,c[10]=x,c[14]=-E,c[3]=0,c[7]=0,c[11]=0,c[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const fc=new G,jr=new ft,XN=new G(0,0,0),JN=new G(1,1,1),Do=new G,md=new G,dr=new G,DB=new ft,bB=new zi;class Su{constructor(e=0,t=0,i=0,r=Su.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const r=e.elements,s=r[0],o=r[4],a=r[8],c=r[1],A=r[5],h=r[9],f=r[2],d=r[6],m=r[10];switch(t){case"XYZ":this._y=Math.asin(Un(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(d,A),this._z=0);break;case"YXZ":this._x=Math.asin(-Un(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,m),this._z=Math.atan2(c,A)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(Un(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-o,A)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-Un(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(d,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-o,A));break;case"YZX":this._z=Math.asin(Un(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,A),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(a,m));break;case"XZY":this._z=Math.asin(-Un(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,A),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return DB.makeRotationFromQuaternion(e),this.setFromRotationMatrix(DB,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return bB.setFromEuler(this),this.setFromQuaternion(bB,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Su.DEFAULT_ORDER="XYZ";class _l{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,c){return a[c.uuid]===void 0&&(a[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(e.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const c=a.shapes;if(Array.isArray(c))for(let A=0,h=c.length;A0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(i.geometries=a),c.length>0&&(i.materials=c),A.length>0&&(i.textures=A),h.length>0&&(i.images=h),f.length>0&&(i.shapes=f),d.length>0&&(i.skeletons=d),m.length>0&&(i.animations=m),E.length>0&&(i.nodes=E)}return i.object=r,i;function o(a){const c=[];for(const A in a){const h=a[A];delete h.metadata,c.push(h)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){qr.subVectors(r,t),Js.subVectors(i,t),$0.subVectors(e,t);const o=qr.dot(qr),a=qr.dot(Js),c=qr.dot($0),A=Js.dot(Js),h=Js.dot($0),f=o*A-a*a;if(f===0)return s.set(0,0,0),null;const d=1/f,m=(A*c-a*h)*d,E=(o*h-a*c)*d;return s.set(1-m-E,E,m)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,Ks)===null?!1:Ks.x>=0&&Ks.y>=0&&Ks.x+Ks.y<=1}static getInterpolation(e,t,i,r,s,o,a,c){return this.getBarycoord(e,t,i,r,Ks)===null?(c.x=0,c.y=0,"z"in c&&(c.z=0),"w"in c&&(c.w=0),null):(c.setScalar(0),c.addScaledVector(s,Ks.x),c.addScaledVector(o,Ks.y),c.addScaledVector(a,Ks.z),c)}static isFrontFacing(e,t,i,r){return qr.subVectors(i,t),Js.subVectors(e,t),qr.cross(Js).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return qr.subVectors(this.c,this.b),Js.subVectors(this.a,this.b),qr.cross(Js).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Er.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Er.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return Er.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return Er.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Er.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,a;pc.subVectors(r,i),gc.subVectors(s,i),eE.subVectors(e,i);const c=pc.dot(eE),A=gc.dot(eE);if(c<=0&&A<=0)return t.copy(i);tE.subVectors(e,r);const h=pc.dot(tE),f=gc.dot(tE);if(h>=0&&f<=h)return t.copy(r);const d=c*f-h*A;if(d<=0&&c>=0&&h<=0)return o=c/(c-h),t.copy(i).addScaledVector(pc,o);nE.subVectors(e,s);const m=pc.dot(nE),E=gc.dot(nE);if(E>=0&&m<=E)return t.copy(s);const x=m*A-c*E;if(x<=0&&A>=0&&E<=0)return a=A/(A-E),t.copy(i).addScaledVector(gc,a);const y=h*E-m*f;if(y<=0&&f-h>=0&&m-E>=0)return FB.subVectors(s,r),a=(f-h)/(f-h+(m-E)),t.copy(r).addScaledVector(FB,a);const g=1/(y+x+d);return o=x*g,a=d*g,t.copy(i).addScaledVector(pc,o).addScaledVector(gc,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const s2={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},bo={h:0,s:0,l:0},yd={h:0,s:0,l:0};function iE(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class Je{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=On){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,on.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=on.workingColorSpace){return this.r=e,this.g=t,this.b=i,on.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=on.workingColorSpace){if(e=$I(e,1),t=Un(t,0,1),i=Un(i,0,1),t===0)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=iE(o,s,e+1/3),this.g=iE(o,s,e),this.b=iE(o,s,e-1/3)}return on.toWorkingColorSpace(this,r),this}setStyle(e,t=On){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=On){const i=s2[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=cu(e.r),this.g=cu(e.g),this.b=cu(e.b),this}copyLinearToSRGB(e){return this.r=W0(e.r),this.g=W0(e.g),this.b=W0(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=On){return on.fromWorkingColorSpace(Si.copy(this),e),Math.round(Un(Si.r*255,0,255))*65536+Math.round(Un(Si.g*255,0,255))*256+Math.round(Un(Si.b*255,0,255))}getHexString(e=On){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=on.workingColorSpace){on.fromWorkingColorSpace(Si.copy(this),t);const i=Si.r,r=Si.g,s=Si.b,o=Math.max(i,r,s),a=Math.min(i,r,s);let c,A;const h=(a+o)/2;if(a===o)c=0,A=0;else{const f=o-a;switch(A=h<=.5?f/(o+a):f/(2-o-a),o){case i:c=(r-s)/f+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==vl&&(i.blending=this.blending),this.side!==Vr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==Ag&&(i.blendSrc=this.blendSrc),this.blendDst!==hg&&(i.blendDst=this.blendDst),this.blendEquation!==zo&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==lh&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==mC&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==ol&&(i.stencilFail=this.stencilFail),this.stencilZFail!==ol&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==ol&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(s){const o=[];for(const a in s){const c=s[a];delete c.metadata,o.push(c)}return o}if(t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(t!==null){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class sr extends Ai{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Fh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const to=tL();function tL(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let c=0;c<256;++c){const A=c-127;A<-27?(i[c]=0,i[c|256]=32768,r[c]=24,r[c|256]=24):A<-14?(i[c]=1024>>-A-14,i[c|256]=1024>>-A-14|32768,r[c]=-A-1,r[c|256]=-A-1):A<=15?(i[c]=A+15<<10,i[c|256]=A+15<<10|32768,r[c]=13,r[c|256]=13):A<128?(i[c]=31744,i[c|256]=64512,r[c]=24,r[c|256]=24):(i[c]=31744,i[c|256]=64512,r[c]=13,r[c|256]=13)}const s=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let c=1;c<1024;++c){let A=c<<13,h=0;for(;!(A&8388608);)A<<=1,h-=8388608;A&=-8388609,h+=947912704,s[c]=A|h}for(let c=1024;c<2048;++c)s[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)o[c]=c<<23;o[31]=1199570944,o[32]=2147483648;for(let c=33;c<63;++c)o[c]=2147483648+(c-32<<23);o[63]=3347054592;for(let c=1;c<64;++c)c!==32&&(a[c]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:o,offsetTable:a}}function $i(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Un(n,-65504,65504),to.floatView[0]=n;const e=to.uint32View[0],t=e>>23&511;return to.baseTable[t]+((e&8388607)>>to.shiftTable[t])}function _A(n){const e=n>>10;return to.uint32View[0]=to.mantissaTable[to.offsetTable[e]+(n&1023)]+to.exponentTable[e],to.floatView[0]}const nL={toHalfFloat:$i,fromHalfFloat:_A},Jn=new G,Cd=new _e;class sn{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=yh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Fr,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Bl("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const c=this.parameters;for(const A in c)c[A]!==void 0&&(e[A]=c[A]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const c in i){const A=i[c];e.data.attributes[c]=A.toJSON(e.data)}const r={};let s=!1;for(const c in this.morphAttributes){const A=this.morphAttributes[c],h=[];for(let f=0,d=A.length;f0&&(r[c]=h,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(t));const r=e.attributes;for(const A in r){const h=r[A];this.setAttribute(A,h.clone(t))}const s=e.morphAttributes;for(const A in s){const h=[],f=s[A];for(let d=0,m=f.length;d0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(kB.copy(s).invert(),Ja.copy(e.ray).applyMatrix4(kB),!(i.boundingBox!==null&&Ja.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,Ja)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,a=s.index,c=s.attributes.position,A=s.attributes.uv,h=s.attributes.uv1,f=s.attributes.normal,d=s.groups,m=s.drawRange;if(a!==null)if(Array.isArray(o))for(let E=0,x=d.length;Et.far?null:{distance:A,point:wd.clone(),object:n}}function Md(n,e,t,i,r,s,o,a,c,A){n.getVertexPosition(a,Ec),n.getVertexPosition(c,yc),n.getVertexPosition(A,Cc);const h=AL(n,e,t,i,Ec,yc,Cc,Sd);if(h){r&&(xd.fromBufferAttribute(r,a),Bd.fromBufferAttribute(r,c),_d.fromBufferAttribute(r,A),h.uv=Er.getInterpolation(Sd,Ec,yc,Cc,xd,Bd,_d,new _e)),s&&(xd.fromBufferAttribute(s,a),Bd.fromBufferAttribute(s,c),_d.fromBufferAttribute(s,A),h.uv1=Er.getInterpolation(Sd,Ec,yc,Cc,xd,Bd,_d,new _e),h.uv2=h.uv1),o&&(OB.fromBufferAttribute(o,a),HB.fromBufferAttribute(o,c),zB.fromBufferAttribute(o,A),h.normal=Er.getInterpolation(Sd,Ec,yc,Cc,OB,HB,zB,new G),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const f={a,b:c,c:A,normal:new G,materialIndex:0};Er.getNormal(Ec,yc,Cc,f.normal),h.face=f}return h}class Fl extends Nt{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const c=[],A=[],h=[],f=[];let d=0,m=0;E("z","y","x",-1,-1,i,t,e,o,s,0),E("z","y","x",1,-1,i,t,-e,o,s,1),E("x","z","y",1,1,e,i,t,r,o,2),E("x","z","y",1,-1,e,i,-t,r,o,3),E("x","y","z",1,-1,e,t,i,r,s,4),E("x","y","z",-1,-1,e,t,-i,r,s,5),this.setIndex(c),this.setAttribute("position",new st(A,3)),this.setAttribute("normal",new st(h,3)),this.setAttribute("uv",new st(f,2));function E(x,y,g,v,C,B,R,w,T,P,K){const M=B/T,b=R/P,q=B/2,ge=R/2,X=w/2,ce=T+1,se=P+1;let fe=0,U=0;const ee=new G;for(let te=0;te0?1:-1,h.push(ee.x,ee.y,ee.z),f.push(Ce/T),f.push(1-te/P),fe+=1}}for(let te=0;te0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class Gh extends en{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ft,this.projectionMatrix=new ft,this.projectionMatrixInverse=new ft,this.coordinateSystem=Ss}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const No=new G,VB=new _e,WB=new _e;class Zn extends Gh{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=Eu*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(xl*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Eu*2*Math.atan(Math.tan(xl*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){No.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(No.x,No.y).multiplyScalar(-e/No.z),No.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(No.x,No.y).multiplyScalar(-e/No.z)}getViewSize(e,t){return this.getViewBounds(e,VB,WB),t.subVectors(WB,VB)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(xl*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const c=o.fullWidth,A=o.fullHeight;s+=o.offsetX*r/c,t-=o.offsetY*i/A,r*=o.width/c,i*=o.height/A}const a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Ic=-90,vc=1;class l2 extends en{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Zn(Ic,vc,e,t);r.layers=this.layers,this.add(r);const s=new Zn(Ic,vc,e,t);s.layers=this.layers,this.add(s);const o=new Zn(Ic,vc,e,t);o.layers=this.layers,this.add(o);const a=new Zn(Ic,vc,e,t);a.layers=this.layers,this.add(a);const c=new Zn(Ic,vc,e,t);c.layers=this.layers,this.add(c);const A=new Zn(Ic,vc,e,t);A.layers=this.layers,this.add(A)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,a,c]=t;for(const A of t)this.remove(A);if(e===Ss)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(e===Ch)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const A of t)this.add(A),A.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,c,A,h]=this.children,f=e.getRenderTarget(),d=e.getActiveCubeFace(),m=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;const x=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,a),e.setRenderTarget(i,3,r),e.render(t,c),e.setRenderTarget(i,4,r),e.render(t,A),i.texture.generateMipmaps=x,e.setRenderTarget(i,5,r),e.render(t,h),e.setRenderTarget(f,d,m),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}}class Oh extends Sn{constructor(e,t,i,r,s,o,a,c,A,h){e=e!==void 0?e:[],t=t!==void 0?t:ho,super(e,t,i,r,s,o,a,c,A,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class c2 extends Wr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];t.encoding!==void 0&&(Bl("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===ra?On:mr),this.texture=new Oh(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:In}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:` - - varying vec3 vWorldDirection; - - vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); - - } - - void main() { - - vWorldDirection = transformDirection( position, modelMatrix ); - - #include - #include - - } - `,fragmentShader:` - - uniform sampler2D tEquirect; - - varying vec3 vWorldDirection; - - #include - - void main() { - - vec3 direction = normalize( vWorldDirection ); - - vec2 sampleUV = equirectUv( direction ); - - gl_FragColor = texture2D( tEquirect, sampleUV ); - - } - `},r=new Fl(5,5,5),s=new as({name:"CubemapFromEquirect",uniforms:yu(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Hi,blending:ao});s.uniforms.tEquirect.value=t;const o=new rn(r,s),a=t.minFilter;return t.minFilter===_s&&(t.minFilter=In),new l2(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,r){const s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,i,r);e.setRenderTarget(s)}}const oE=new G,pL=new G,gL=new Rt;class un{constructor(e=new G(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){const r=oE.subVectors(i,t).cross(pL.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const i=e.delta(oE),r=this.normal.dot(i);if(r===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const s=-(e.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||gL.getNormalMatrix(e),r=this.coplanarPoint(oE).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const Ka=new ui,Qd=new G;class Hh{constructor(e=new un,t=new un,i=new un,r=new un,s=new un,o=new un){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=Ss){const i=this.planes,r=e.elements,s=r[0],o=r[1],a=r[2],c=r[3],A=r[4],h=r[5],f=r[6],d=r[7],m=r[8],E=r[9],x=r[10],y=r[11],g=r[12],v=r[13],C=r[14],B=r[15];if(i[0].setComponents(c-s,d-A,y-m,B-g).normalize(),i[1].setComponents(c+s,d+A,y+m,B+g).normalize(),i[2].setComponents(c+o,d+h,y+E,B+v).normalize(),i[3].setComponents(c-o,d-h,y-E,B-v).normalize(),i[4].setComponents(c-a,d-f,y-x,B-C).normalize(),t===Ss)i[5].setComponents(c+a,d+f,y+x,B+C).normalize();else if(t===Ch)i[5].setComponents(a,f,x,C).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),Ka.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),Ka.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Ka)}intersectsSprite(e){return Ka.center.set(0,0,0),Ka.radius=.7071067811865476,Ka.applyMatrix4(e.matrixWorld),this.intersectsSphere(Ka)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,Qd.y=r.normal.y>0?e.max.y:e.min.y,Qd.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Qd)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function u2(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function mL(n,e){const t=e.isWebGL2,i=new WeakMap;function r(A,h){const f=A.array,d=A.usage,m=f.byteLength,E=n.createBuffer();n.bindBuffer(h,E),n.bufferData(h,f,d),A.onUploadCallback();let x;if(f instanceof Float32Array)x=n.FLOAT;else if(f instanceof Uint16Array)if(A.isFloat16BufferAttribute)if(t)x=n.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else x=n.UNSIGNED_SHORT;else if(f instanceof Int16Array)x=n.SHORT;else if(f instanceof Uint32Array)x=n.UNSIGNED_INT;else if(f instanceof Int32Array)x=n.INT;else if(f instanceof Int8Array)x=n.BYTE;else if(f instanceof Uint8Array)x=n.UNSIGNED_BYTE;else if(f instanceof Uint8ClampedArray)x=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:E,type:x,bytesPerElement:f.BYTES_PER_ELEMENT,version:A.version,size:m}}function s(A,h,f){const d=h.array,m=h._updateRange,E=h.updateRanges;if(n.bindBuffer(f,A),m.count===-1&&E.length===0&&n.bufferSubData(f,0,d),E.length!==0){for(let x=0,y=E.length;x 0 - vec4 plane; - #ifdef ALPHA_TO_COVERAGE - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - if ( clipOpacity == 0.0 ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - float unionClipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - } - #pragma unroll_loop_end - clipOpacity *= 1.0 - unionClipOpacity; - #endif - diffuseColor.a *= clipOpacity; - if ( diffuseColor.a == 0.0 ) discard; - #else - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - bool clipped = true; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; - } - #pragma unroll_loop_end - if ( clipped ) discard; - #endif - #endif -#endif`,NL=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; - uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,LL=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; -#endif`,PL=`#if NUM_CLIPPING_PLANES > 0 - vClipPosition = - mvPosition.xyz; -#endif`,UL=`#if defined( USE_COLOR_ALPHA ) - diffuseColor *= vColor; -#elif defined( USE_COLOR ) - diffuseColor.rgb *= vColor; -#endif`,FL=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) - varying vec3 vColor; -#endif`,kL=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) - varying vec3 vColor; -#endif`,GL=`#if defined( USE_COLOR_ALPHA ) - vColor = vec4( 1.0 ); -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) - vColor = vec3( 1.0 ); -#endif -#ifdef USE_COLOR - vColor *= color; -#endif -#ifdef USE_INSTANCING_COLOR - vColor.xyz *= instanceColor.xyz; -#endif`,OL=`#define PI 3.141592653589793 -#define PI2 6.283185307179586 -#define PI_HALF 1.5707963267948966 -#define RECIPROCAL_PI 0.3183098861837907 -#define RECIPROCAL_PI2 0.15915494309189535 -#define EPSILON 1e-6 -#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -#define whiteComplement( a ) ( 1.0 - saturate( a ) ) -float pow2( const in float x ) { return x*x; } -vec3 pow2( const in vec3 x ) { return x*x; } -float pow3( const in float x ) { return x*x*x; } -float pow4( const in float x ) { float x2 = x*x; return x2*x2; } -float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } -float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } -highp float rand( const in vec2 uv ) { - const highp float a = 12.9898, b = 78.233, c = 43758.5453; - highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); - return fract( sin( sn ) * c ); -} -#ifdef HIGH_PRECISION - float precisionSafeLength( vec3 v ) { return length( v ); } -#else - float precisionSafeLength( vec3 v ) { - float maxComponent = max3( abs( v ) ); - return length( v / maxComponent ) * maxComponent; - } -#endif -struct IncidentLight { - vec3 color; - vec3 direction; - bool visible; -}; -struct ReflectedLight { - vec3 directDiffuse; - vec3 directSpecular; - vec3 indirectDiffuse; - vec3 indirectSpecular; -}; -#ifdef USE_ALPHAHASH - varying vec3 vPosition; -#endif -vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); -} -vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); -} -mat3 transposeMat3( const in mat3 m ) { - mat3 tmp; - tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); - tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); - tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); - return tmp; -} -float luminance( const in vec3 rgb ) { - const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); - return dot( weights, rgb ); -} -bool isPerspectiveMatrix( mat4 m ) { - return m[ 2 ][ 3 ] == - 1.0; -} -vec2 equirectUv( in vec3 dir ) { - float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; - float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; - return vec2( u, v ); -} -vec3 BRDF_Lambert( const in vec3 diffuseColor ) { - return RECIPROCAL_PI * diffuseColor; -} -vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} -float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} // validated`,HL=`#ifdef ENVMAP_TYPE_CUBE_UV - #define cubeUV_minMipLevel 4.0 - #define cubeUV_minTileSize 16.0 - float getFace( vec3 direction ) { - vec3 absDirection = abs( direction ); - float face = - 1.0; - if ( absDirection.x > absDirection.z ) { - if ( absDirection.x > absDirection.y ) - face = direction.x > 0.0 ? 0.0 : 3.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } else { - if ( absDirection.z > absDirection.y ) - face = direction.z > 0.0 ? 2.0 : 5.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } - return face; - } - vec2 getUV( vec3 direction, float face ) { - vec2 uv; - if ( face == 0.0 ) { - uv = vec2( direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 1.0 ) { - uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); - } else if ( face == 2.0 ) { - uv = vec2( - direction.x, direction.y ) / abs( direction.z ); - } else if ( face == 3.0 ) { - uv = vec2( - direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 4.0 ) { - uv = vec2( - direction.x, direction.z ) / abs( direction.y ); - } else { - uv = vec2( direction.x, direction.y ) / abs( direction.z ); - } - return 0.5 * ( uv + 1.0 ); - } - vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { - float face = getFace( direction ); - float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); - mipInt = max( mipInt, cubeUV_minMipLevel ); - float faceSize = exp2( mipInt ); - highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; - if ( face > 2.0 ) { - uv.y += faceSize; - face -= 3.0; - } - uv.x += face * faceSize; - uv.x += filterInt * 3.0 * cubeUV_minTileSize; - uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); - uv.x *= CUBEUV_TEXEL_WIDTH; - uv.y *= CUBEUV_TEXEL_HEIGHT; - #ifdef texture2DGradEXT - return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; - #else - return texture2D( envMap, uv ).rgb; - #endif - } - #define cubeUV_r0 1.0 - #define cubeUV_m0 - 2.0 - #define cubeUV_r1 0.8 - #define cubeUV_m1 - 1.0 - #define cubeUV_r4 0.4 - #define cubeUV_m4 2.0 - #define cubeUV_r5 0.305 - #define cubeUV_m5 3.0 - #define cubeUV_r6 0.21 - #define cubeUV_m6 4.0 - float roughnessToMip( float roughness ) { - float mip = 0.0; - if ( roughness >= cubeUV_r1 ) { - mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; - } else if ( roughness >= cubeUV_r4 ) { - mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; - } else if ( roughness >= cubeUV_r5 ) { - mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; - } else if ( roughness >= cubeUV_r6 ) { - mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; - } else { - mip = - 2.0 * log2( 1.16 * roughness ); } - return mip; - } - vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { - float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); - float mipF = fract( mip ); - float mipInt = floor( mip ); - vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); - if ( mipF == 0.0 ) { - return vec4( color0, 1.0 ); - } else { - vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); - return vec4( mix( color0, color1, mipF ), 1.0 ); - } - } -#endif`,zL=`vec3 transformedNormal = objectNormal; -#ifdef USE_TANGENT - vec3 transformedTangent = objectTangent; -#endif -#ifdef USE_BATCHING - mat3 bm = mat3( batchingMatrix ); - transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); - transformedNormal = bm * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = bm * transformedTangent; - #endif -#endif -#ifdef USE_INSTANCING - mat3 im = mat3( instanceMatrix ); - transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); - transformedNormal = im * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = im * transformedTangent; - #endif -#endif -transformedNormal = normalMatrix * transformedNormal; -#ifdef FLIP_SIDED - transformedNormal = - transformedNormal; -#endif -#ifdef USE_TANGENT - transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; - #ifdef FLIP_SIDED - transformedTangent = - transformedTangent; - #endif -#endif`,VL=`#ifdef USE_DISPLACEMENTMAP - uniform sampler2D displacementMap; - uniform float displacementScale; - uniform float displacementBias; -#endif`,WL=`#ifdef USE_DISPLACEMENTMAP - transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,YL=`#ifdef USE_EMISSIVEMAP - vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); - totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,XL=`#ifdef USE_EMISSIVEMAP - uniform sampler2D emissiveMap; -#endif`,JL="gl_FragColor = linearToOutputTexel( gl_FragColor );",KL=` -const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( - vec3( 0.8224621, 0.177538, 0.0 ), - vec3( 0.0331941, 0.9668058, 0.0 ), - vec3( 0.0170827, 0.0723974, 0.9105199 ) -); -const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( - vec3( 1.2249401, - 0.2249404, 0.0 ), - vec3( - 0.0420569, 1.0420571, 0.0 ), - vec3( - 0.0196376, - 0.0786361, 1.0982735 ) -); -vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { - return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); -} -vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { - return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); -} -vec4 LinearTransferOETF( in vec4 value ) { - return value; -} -vec4 sRGBTransferOETF( in vec4 value ) { - return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); -} -vec4 LinearToLinear( in vec4 value ) { - return value; -} -vec4 LinearTosRGB( in vec4 value ) { - return sRGBTransferOETF( value ); -}`,jL=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vec3 cameraToFrag; - if ( isOrthographic ) { - cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToFrag = normalize( vWorldPosition - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vec3 reflectVec = reflect( cameraToFrag, worldNormal ); - #else - vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); - #endif - #else - vec3 reflectVec = vReflect; - #endif - #ifdef ENVMAP_TYPE_CUBE - vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); - #else - vec4 envColor = vec4( 0.0 ); - #endif - #ifdef ENVMAP_BLENDING_MULTIPLY - outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_MIX ) - outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_ADD ) - outgoingLight += envColor.xyz * specularStrength * reflectivity; - #endif -#endif`,qL=`#ifdef USE_ENVMAP - uniform float envMapIntensity; - uniform float flipEnvMap; - #ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; - #else - uniform sampler2D envMap; - #endif - -#endif`,ZL=`#ifdef USE_ENVMAP - uniform float reflectivity; - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - varying vec3 vWorldPosition; - uniform float refractionRatio; - #else - varying vec3 vReflect; - #endif -#endif`,$L=`#ifdef USE_ENVMAP - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - - varying vec3 vWorldPosition; - #else - varying vec3 vReflect; - uniform float refractionRatio; - #endif -#endif`,eP=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vWorldPosition = worldPosition.xyz; - #else - vec3 cameraToVertex; - if ( isOrthographic ) { - cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vReflect = reflect( cameraToVertex, worldNormal ); - #else - vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); - #endif - #endif -#endif`,tP=`#ifdef USE_FOG - vFogDepth = - mvPosition.z; -#endif`,nP=`#ifdef USE_FOG - varying float vFogDepth; -#endif`,iP=`#ifdef USE_FOG - #ifdef FOG_EXP2 - float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); - #else - float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); - #endif - gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); -#endif`,rP=`#ifdef USE_FOG - uniform vec3 fogColor; - varying float vFogDepth; - #ifdef FOG_EXP2 - uniform float fogDensity; - #else - uniform float fogNear; - uniform float fogFar; - #endif -#endif`,sP=`#ifdef USE_GRADIENTMAP - uniform sampler2D gradientMap; -#endif -vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { - float dotNL = dot( normal, lightDirection ); - vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); - #ifdef USE_GRADIENTMAP - return vec3( texture2D( gradientMap, coord ).r ); - #else - vec2 fw = fwidth( coord ) * 0.5; - return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); - #endif -}`,oP=`#ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - reflectedLight.indirectDiffuse += lightMapIrradiance; -#endif`,aP=`#ifdef USE_LIGHTMAP - uniform sampler2D lightMap; - uniform float lightMapIntensity; -#endif`,lP=`LambertMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,cP=`varying vec3 vViewPosition; -struct LambertMaterial { - vec3 diffuseColor; - float specularStrength; -}; -void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Lambert -#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,uP=`uniform bool receiveShadow; -uniform vec3 ambientLightColor; -#if defined( USE_LIGHT_PROBES ) - uniform vec3 lightProbe[ 9 ]; -#endif -vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { - float x = normal.x, y = normal.y, z = normal.z; - vec3 result = shCoefficients[ 0 ] * 0.886227; - result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; - result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; - result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; - result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; - result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; - result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); - result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; - result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); - return result; -} -vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); - return irradiance; -} -vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { - vec3 irradiance = ambientLightColor; - return irradiance; -} -float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { - #if defined ( LEGACY_LIGHTS ) - if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { - return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); - } - return 1.0; - #else - float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); - if ( cutoffDistance > 0.0 ) { - distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); - } - return distanceFalloff; - #endif -} -float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { - return smoothstep( coneCosine, penumbraCosine, angleCosine ); -} -#if NUM_DIR_LIGHTS > 0 - struct DirectionalLight { - vec3 direction; - vec3 color; - }; - uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; - void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { - light.color = directionalLight.color; - light.direction = directionalLight.direction; - light.visible = true; - } -#endif -#if NUM_POINT_LIGHTS > 0 - struct PointLight { - vec3 position; - vec3 color; - float distance; - float decay; - }; - uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; - void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = pointLight.position - geometryPosition; - light.direction = normalize( lVector ); - float lightDistance = length( lVector ); - light.color = pointLight.color; - light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } -#endif -#if NUM_SPOT_LIGHTS > 0 - struct SpotLight { - vec3 position; - vec3 direction; - vec3 color; - float distance; - float decay; - float coneCos; - float penumbraCos; - }; - uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; - void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = spotLight.position - geometryPosition; - light.direction = normalize( lVector ); - float angleCos = dot( light.direction, spotLight.direction ); - float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); - if ( spotAttenuation > 0.0 ) { - float lightDistance = length( lVector ); - light.color = spotLight.color * spotAttenuation; - light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } else { - light.color = vec3( 0.0 ); - light.visible = false; - } - } -#endif -#if NUM_RECT_AREA_LIGHTS > 0 - struct RectAreaLight { - vec3 color; - vec3 position; - vec3 halfWidth; - vec3 halfHeight; - }; - uniform sampler2D ltc_1; uniform sampler2D ltc_2; - uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; -#endif -#if NUM_HEMI_LIGHTS > 0 - struct HemisphereLight { - vec3 direction; - vec3 skyColor; - vec3 groundColor; - }; - uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; - vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { - float dotNL = dot( normal, hemiLight.direction ); - float hemiDiffuseWeight = 0.5 * dotNL + 0.5; - vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); - return irradiance; - } -#endif`,AP=`#ifdef USE_ENVMAP - vec3 getIBLIrradiance( const in vec3 normal ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); - return PI * envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 reflectVec = reflect( - viewDir, normal ); - reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); - reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); - return envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = normalize( cross( bentNormal, bitangent ) ); - bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); - return getIBLRadiance( viewDir, bentNormal, roughness ); - #else - return vec3( 0.0 ); - #endif - } - #endif -#endif`,hP=`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,fP=`varying vec3 vViewPosition; -struct ToonMaterial { - vec3 diffuseColor; -}; -void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Toon -#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,dP=`BlinnPhongMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularColor = specular; -material.specularShininess = shininess; -material.specularStrength = specularStrength;`,pP=`varying vec3 vViewPosition; -struct BlinnPhongMaterial { - vec3 diffuseColor; - vec3 specularColor; - float specularShininess; - float specularStrength; -}; -void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); - reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; -} -void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_BlinnPhong -#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,gP=`PhysicalMaterial material; -material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); -vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); -float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); -material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; -material.roughness = min( material.roughness, 1.0 ); -#ifdef IOR - material.ior = ior; - #ifdef USE_SPECULAR - float specularIntensityFactor = specularIntensity; - vec3 specularColorFactor = specularColor; - #ifdef USE_SPECULAR_COLORMAP - specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; - #endif - material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); - #else - float specularIntensityFactor = 1.0; - vec3 specularColorFactor = vec3( 1.0 ); - material.specularF90 = 1.0; - #endif - material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); -#else - material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); - material.specularF90 = 1.0; -#endif -#ifdef USE_CLEARCOAT - material.clearcoat = clearcoat; - material.clearcoatRoughness = clearcoatRoughness; - material.clearcoatF0 = vec3( 0.04 ); - material.clearcoatF90 = 1.0; - #ifdef USE_CLEARCOATMAP - material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; - #endif - #ifdef USE_CLEARCOAT_ROUGHNESSMAP - material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; - #endif - material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); - material.clearcoatRoughness += geometryRoughness; - material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); -#endif -#ifdef USE_IRIDESCENCE - material.iridescence = iridescence; - material.iridescenceIOR = iridescenceIOR; - #ifdef USE_IRIDESCENCEMAP - material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; - #endif - #ifdef USE_IRIDESCENCE_THICKNESSMAP - material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; - #else - material.iridescenceThickness = iridescenceThicknessMaximum; - #endif -#endif -#ifdef USE_SHEEN - material.sheenColor = sheenColor; - #ifdef USE_SHEEN_COLORMAP - material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; - #endif - material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); - #ifdef USE_SHEEN_ROUGHNESSMAP - material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; - #endif -#endif -#ifdef USE_ANISOTROPY - #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; - vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; - #else - vec2 anisotropyV = anisotropyVector; - #endif - material.anisotropy = length( anisotropyV ); - if( material.anisotropy == 0.0 ) { - anisotropyV = vec2( 1.0, 0.0 ); - } else { - anisotropyV /= material.anisotropy; - material.anisotropy = saturate( material.anisotropy ); - } - material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); - material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; - material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; -#endif`,mP=`struct PhysicalMaterial { - vec3 diffuseColor; - float roughness; - vec3 specularColor; - float specularF90; - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - #endif - #ifdef USE_SHEEN - vec3 sheenColor; - float sheenRoughness; - #endif - #ifdef IOR - float ior; - #endif - #ifdef USE_TRANSMISSION - float transmission; - float transmissionAlpha; - float thickness; - float attenuationDistance; - vec3 attenuationColor; - #endif - #ifdef USE_ANISOTROPY - float anisotropy; - float alphaT; - vec3 anisotropyT; - vec3 anisotropyB; - #endif -}; -vec3 clearcoatSpecularDirect = vec3( 0.0 ); -vec3 clearcoatSpecularIndirect = vec3( 0.0 ); -vec3 sheenSpecularDirect = vec3( 0.0 ); -vec3 sheenSpecularIndirect = vec3(0.0 ); -vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { - float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); - float x2 = x * x; - float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); - return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); -} -float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { - float a2 = pow2( alpha ); - float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); - float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); - return 0.5 / max( gv + gl, EPSILON ); -} -float D_GGX( const in float alpha, const in float dotNH ) { - float a2 = pow2( alpha ); - float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; - return RECIPROCAL_PI * a2 / pow2( denom ); -} -#ifdef USE_ANISOTROPY - float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { - float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); - float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); - float v = 0.5 / ( gv + gl ); - return saturate(v); - } - float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { - float a2 = alphaT * alphaB; - highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); - highp float v2 = dot( v, v ); - float w2 = a2 / v2; - return RECIPROCAL_PI * a2 * pow2 ( w2 ); - } -#endif -#ifdef USE_CLEARCOAT - vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { - vec3 f0 = material.clearcoatF0; - float f90 = material.clearcoatF90; - float roughness = material.clearcoatRoughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - return F * ( V * D ); - } -#endif -vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 f0 = material.specularColor; - float f90 = material.specularF90; - float roughness = material.roughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - #ifdef USE_IRIDESCENCE - F = mix( F, material.iridescenceFresnel, material.iridescence ); - #endif - #ifdef USE_ANISOTROPY - float dotTL = dot( material.anisotropyT, lightDir ); - float dotTV = dot( material.anisotropyT, viewDir ); - float dotTH = dot( material.anisotropyT, halfDir ); - float dotBL = dot( material.anisotropyB, lightDir ); - float dotBV = dot( material.anisotropyB, viewDir ); - float dotBH = dot( material.anisotropyB, halfDir ); - float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); - float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); - #else - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - #endif - return F * ( V * D ); -} -vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { - const float LUT_SIZE = 64.0; - const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; - const float LUT_BIAS = 0.5 / LUT_SIZE; - float dotNV = saturate( dot( N, V ) ); - vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); - uv = uv * LUT_SCALE + LUT_BIAS; - return uv; -} -float LTC_ClippedSphereFormFactor( const in vec3 f ) { - float l = length( f ); - return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); -} -vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { - float x = dot( v1, v2 ); - float y = abs( x ); - float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; - float b = 3.4175940 + ( 4.1616724 + y ) * y; - float v = a / b; - float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; - return cross( v1, v2 ) * theta_sintheta; -} -vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { - vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; - vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; - vec3 lightNormal = cross( v1, v2 ); - if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); - vec3 T1, T2; - T1 = normalize( V - N * dot( V, N ) ); - T2 = - cross( N, T1 ); - mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); - vec3 coords[ 4 ]; - coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); - coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); - coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); - coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); - coords[ 0 ] = normalize( coords[ 0 ] ); - coords[ 1 ] = normalize( coords[ 1 ] ); - coords[ 2 ] = normalize( coords[ 2 ] ); - coords[ 3 ] = normalize( coords[ 3 ] ); - vec3 vectorFormFactor = vec3( 0.0 ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); - float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); - return vec3( result ); -} -#if defined( USE_SHEEN ) -float D_Charlie( float roughness, float dotNH ) { - float alpha = pow2( roughness ); - float invAlpha = 1.0 / alpha; - float cos2h = dotNH * dotNH; - float sin2h = max( 1.0 - cos2h, 0.0078125 ); - return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); -} -float V_Neubelt( float dotNV, float dotNL ) { - return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); -} -vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float D = D_Charlie( sheenRoughness, dotNH ); - float V = V_Neubelt( dotNV, dotNL ); - return sheenColor * ( D * V ); -} -#endif -float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - float r2 = roughness * roughness; - float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; - float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; - float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); - return saturate( DG * RECIPROCAL_PI ); -} -vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); - const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); - vec4 r = roughness * c0 + c1; - float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; - vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; - return fab; -} -vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { - vec2 fab = DFGApprox( normal, viewDir, roughness ); - return specularColor * fab.x + specularF90 * fab.y; -} -#ifdef USE_IRIDESCENCE -void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#else -void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#endif - vec2 fab = DFGApprox( normal, viewDir, roughness ); - #ifdef USE_IRIDESCENCE - vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); - #else - vec3 Fr = specularColor; - #endif - vec3 FssEss = Fr * fab.x + specularF90 * fab.y; - float Ess = fab.x + fab.y; - float Ems = 1.0 - Ess; - vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); - singleScatter += FssEss; - multiScatter += Fms * Ems; -} -#if NUM_RECT_AREA_LIGHTS > 0 - void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - vec3 normal = geometryNormal; - vec3 viewDir = geometryViewDir; - vec3 position = geometryPosition; - vec3 lightPos = rectAreaLight.position; - vec3 halfWidth = rectAreaLight.halfWidth; - vec3 halfHeight = rectAreaLight.halfHeight; - vec3 lightColor = rectAreaLight.color; - float roughness = material.roughness; - vec3 rectCoords[ 4 ]; - rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; - rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; - rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; - vec2 uv = LTC_Uv( normal, viewDir, roughness ); - vec4 t1 = texture2D( ltc_1, uv ); - vec4 t2 = texture2D( ltc_2, uv ); - mat3 mInv = mat3( - vec3( t1.x, 0, t1.y ), - vec3( 0, 1, 0 ), - vec3( t1.z, 0, t1.w ) - ); - vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); - reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); - reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); - } -#endif -void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - #ifdef USE_CLEARCOAT - float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); - vec3 ccIrradiance = dotNLcc * directLight.color; - clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); - #endif - #ifdef USE_SHEEN - sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); - #endif - reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { - #ifdef USE_CLEARCOAT - clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); - #endif - #ifdef USE_SHEEN - sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - #endif - vec3 singleScattering = vec3( 0.0 ); - vec3 multiScattering = vec3( 0.0 ); - vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; - #ifdef USE_IRIDESCENCE - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); - #else - computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); - #endif - vec3 totalScattering = singleScattering + multiScattering; - vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); - reflectedLight.indirectSpecular += radiance * singleScattering; - reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; - reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; -} -#define RE_Direct RE_Direct_Physical -#define RE_Direct_RectArea RE_Direct_RectArea_Physical -#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical -#define RE_IndirectSpecular RE_IndirectSpecular_Physical -float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { - return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); -}`,EP=` -vec3 geometryPosition = - vViewPosition; -vec3 geometryNormal = normal; -vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); -vec3 geometryClearcoatNormal = vec3( 0.0 ); -#ifdef USE_CLEARCOAT - geometryClearcoatNormal = clearcoatNormal; -#endif -#ifdef USE_IRIDESCENCE - float dotNVi = saturate( dot( normal, geometryViewDir ) ); - if ( material.iridescenceThickness == 0.0 ) { - material.iridescence = 0.0; - } else { - material.iridescence = saturate( material.iridescence ); - } - if ( material.iridescence > 0.0 ) { - material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); - material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); - } -#endif -IncidentLight directLight; -#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) - PointLight pointLight; - #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { - pointLight = pointLights[ i ]; - getPointLightInfo( pointLight, geometryPosition, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) - pointLightShadow = pointLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) - SpotLight spotLight; - vec4 spotColor; - vec3 spotLightCoord; - bool inSpotLightMap; - #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { - spotLight = spotLights[ i ]; - getSpotLightInfo( spotLight, geometryPosition, directLight ); - #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX - #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS - #else - #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #endif - #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) - spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; - inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); - spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); - directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; - #endif - #undef SPOT_LIGHT_MAP_INDEX - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - spotLightShadow = spotLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) - DirectionalLight directionalLight; - #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { - directionalLight = directionalLights[ i ]; - getDirectionalLightInfo( directionalLight, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) - directionalLightShadow = directionalLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) - RectAreaLight rectAreaLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { - rectAreaLight = rectAreaLights[ i ]; - RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if defined( RE_IndirectDiffuse ) - vec3 iblIrradiance = vec3( 0.0 ); - vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); - #if defined( USE_LIGHT_PROBES ) - irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); - #endif - #if ( NUM_HEMI_LIGHTS > 0 ) - #pragma unroll_loop_start - for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { - irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); - } - #pragma unroll_loop_end - #endif -#endif -#if defined( RE_IndirectSpecular ) - vec3 radiance = vec3( 0.0 ); - vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,yP=`#if defined( RE_IndirectDiffuse ) - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - irradiance += lightMapIrradiance; - #endif - #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) - iblIrradiance += getIBLIrradiance( geometryNormal ); - #endif -#endif -#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); - #else - radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); - #endif - #ifdef USE_CLEARCOAT - clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); - #endif -#endif`,CP=`#if defined( RE_IndirectDiffuse ) - RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif -#if defined( RE_IndirectSpecular ) - RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif`,IP=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) - gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,vP=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) - uniform float logDepthBufFC; - varying float vFragDepth; - varying float vIsPerspective; -#endif`,xP=`#ifdef USE_LOGDEPTHBUF - #ifdef USE_LOGDEPTHBUF_EXT - varying float vFragDepth; - varying float vIsPerspective; - #else - uniform float logDepthBufFC; - #endif -#endif`,BP=`#ifdef USE_LOGDEPTHBUF - #ifdef USE_LOGDEPTHBUF_EXT - vFragDepth = 1.0 + gl_Position.w; - vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); - #else - if ( isPerspectiveMatrix( projectionMatrix ) ) { - gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; - gl_Position.z *= gl_Position.w; - } - #endif -#endif`,_P=`#ifdef USE_MAP - vec4 sampledDiffuseColor = texture2D( map, vMapUv ); - #ifdef DECODE_VIDEO_TEXTURE - sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); - - #endif - diffuseColor *= sampledDiffuseColor; -#endif`,SP=`#ifdef USE_MAP - uniform sampler2D map; -#endif`,wP=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - #if defined( USE_POINTS_UV ) - vec2 uv = vUv; - #else - vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; - #endif -#endif -#ifdef USE_MAP - diffuseColor *= texture2D( map, uv ); -#endif -#ifdef USE_ALPHAMAP - diffuseColor.a *= texture2D( alphaMap, uv ).g; -#endif`,MP=`#if defined( USE_POINTS_UV ) - varying vec2 vUv; -#else - #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - uniform mat3 uvTransform; - #endif -#endif -#ifdef USE_MAP - uniform sampler2D map; -#endif -#ifdef USE_ALPHAMAP - uniform sampler2D alphaMap; -#endif`,QP=`float metalnessFactor = metalness; -#ifdef USE_METALNESSMAP - vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); - metalnessFactor *= texelMetalness.b; -#endif`,RP=`#ifdef USE_METALNESSMAP - uniform sampler2D metalnessMap; -#endif`,TP=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) - vColor *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - #if defined( USE_COLOR_ALPHA ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; - #elif defined( USE_COLOR ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; - #endif - } -#endif`,DP=`#ifdef USE_MORPHNORMALS - objectNormal *= morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; - } - #else - objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; - objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; - objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; - objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; - #endif -#endif`,bP=`#ifdef USE_MORPHTARGETS - uniform float morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - uniform sampler2DArray morphTargetsTexture; - uniform ivec2 morphTargetsTextureSize; - vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { - int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; - int y = texelIndex / morphTargetsTextureSize.x; - int x = texelIndex - y * morphTargetsTextureSize.x; - ivec3 morphUV = ivec3( x, y, morphTargetIndex ); - return texelFetch( morphTargetsTexture, morphUV, 0 ); - } - #else - #ifndef USE_MORPHNORMALS - uniform float morphTargetInfluences[ 8 ]; - #else - uniform float morphTargetInfluences[ 4 ]; - #endif - #endif -#endif`,NP=`#ifdef USE_MORPHTARGETS - transformed *= morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; - } - #else - transformed += morphTarget0 * morphTargetInfluences[ 0 ]; - transformed += morphTarget1 * morphTargetInfluences[ 1 ]; - transformed += morphTarget2 * morphTargetInfluences[ 2 ]; - transformed += morphTarget3 * morphTargetInfluences[ 3 ]; - #ifndef USE_MORPHNORMALS - transformed += morphTarget4 * morphTargetInfluences[ 4 ]; - transformed += morphTarget5 * morphTargetInfluences[ 5 ]; - transformed += morphTarget6 * morphTargetInfluences[ 6 ]; - transformed += morphTarget7 * morphTargetInfluences[ 7 ]; - #endif - #endif -#endif`,LP=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; -#ifdef FLAT_SHADED - vec3 fdx = dFdx( vViewPosition ); - vec3 fdy = dFdy( vViewPosition ); - vec3 normal = normalize( cross( fdx, fdy ) ); -#else - vec3 normal = normalize( vNormal ); - #ifdef DOUBLE_SIDED - normal *= faceDirection; - #endif -#endif -#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) - #ifdef USE_TANGENT - mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn = getTangentFrame( - vViewPosition, normal, - #if defined( USE_NORMALMAP ) - vNormalMapUv - #elif defined( USE_CLEARCOAT_NORMALMAP ) - vClearcoatNormalMapUv - #else - vUv - #endif - ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn[0] *= faceDirection; - tbn[1] *= faceDirection; - #endif -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - #ifdef USE_TANGENT - mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn2[0] *= faceDirection; - tbn2[1] *= faceDirection; - #endif -#endif -vec3 nonPerturbedNormal = normal;`,PP=`#ifdef USE_NORMALMAP_OBJECTSPACE - normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - #ifdef FLIP_SIDED - normal = - normal; - #endif - #ifdef DOUBLE_SIDED - normal = normal * faceDirection; - #endif - normal = normalize( normalMatrix * normal ); -#elif defined( USE_NORMALMAP_TANGENTSPACE ) - vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - mapN.xy *= normalScale; - normal = normalize( tbn * mapN ); -#elif defined( USE_BUMPMAP ) - normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,UP=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,FP=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,kP=`#ifndef FLAT_SHADED - vNormal = normalize( transformedNormal ); - #ifdef USE_TANGENT - vTangent = normalize( transformedTangent ); - vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); - #endif -#endif`,GP=`#ifdef USE_NORMALMAP - uniform sampler2D normalMap; - uniform vec2 normalScale; -#endif -#ifdef USE_NORMALMAP_OBJECTSPACE - uniform mat3 normalMatrix; -#endif -#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) - mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { - vec3 q0 = dFdx( eye_pos.xyz ); - vec3 q1 = dFdy( eye_pos.xyz ); - vec2 st0 = dFdx( uv.st ); - vec2 st1 = dFdy( uv.st ); - vec3 N = surf_norm; - vec3 q1perp = cross( q1, N ); - vec3 q0perp = cross( N, q0 ); - vec3 T = q1perp * st0.x + q0perp * st1.x; - vec3 B = q1perp * st0.y + q0perp * st1.y; - float det = max( dot( T, T ), dot( B, B ) ); - float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); - return mat3( T * scale, B * scale, N ); - } -#endif`,OP=`#ifdef USE_CLEARCOAT - vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,HP=`#ifdef USE_CLEARCOAT_NORMALMAP - vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; - clearcoatMapN.xy *= clearcoatNormalScale; - clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,zP=`#ifdef USE_CLEARCOATMAP - uniform sampler2D clearcoatMap; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform sampler2D clearcoatNormalMap; - uniform vec2 clearcoatNormalScale; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform sampler2D clearcoatRoughnessMap; -#endif`,VP=`#ifdef USE_IRIDESCENCEMAP - uniform sampler2D iridescenceMap; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform sampler2D iridescenceThicknessMap; -#endif`,WP=`#ifdef OPAQUE -diffuseColor.a = 1.0; -#endif -#ifdef USE_TRANSMISSION -diffuseColor.a *= material.transmissionAlpha; -#endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,YP=`vec3 packNormalToRGB( const in vec3 normal ) { - return normalize( normal ) * 0.5 + 0.5; -} -vec3 unpackRGBToNormal( const in vec3 rgb ) { - return 2.0 * rgb.xyz - 1.0; -} -const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; -const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); -const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); -const float ShiftRight8 = 1. / 256.; -vec4 packDepthToRGBA( const in float v ) { - vec4 r = vec4( fract( v * PackFactors ), v ); - r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; -} -float unpackRGBAToDepth( const in vec4 v ) { - return dot( v, UnpackFactors ); -} -vec2 packDepthToRG( in highp float v ) { - return packDepthToRGBA( v ).yx; -} -float unpackRGToDepth( const in highp vec2 v ) { - return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); -} -vec4 pack2HalfToRGBA( vec2 v ) { - vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); - return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); -} -vec2 unpackRGBATo2Half( vec4 v ) { - return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); -} -float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { - return ( viewZ + near ) / ( near - far ); -} -float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { - return depth * ( near - far ) - near; -} -float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { - return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); -} -float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { - return ( near * far ) / ( ( far - near ) * depth - far ); -}`,XP=`#ifdef PREMULTIPLIED_ALPHA - gl_FragColor.rgb *= gl_FragColor.a; -#endif`,JP=`vec4 mvPosition = vec4( transformed, 1.0 ); -#ifdef USE_BATCHING - mvPosition = batchingMatrix * mvPosition; -#endif -#ifdef USE_INSTANCING - mvPosition = instanceMatrix * mvPosition; -#endif -mvPosition = modelViewMatrix * mvPosition; -gl_Position = projectionMatrix * mvPosition;`,KP=`#ifdef DITHERING - gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,jP=`#ifdef DITHERING - vec3 dithering( vec3 color ) { - float grid_position = rand( gl_FragCoord.xy ); - vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); - dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); - return color + dither_shift_RGB; - } -#endif`,qP=`float roughnessFactor = roughness; -#ifdef USE_ROUGHNESSMAP - vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); - roughnessFactor *= texelRoughness.g; -#endif`,ZP=`#ifdef USE_ROUGHNESSMAP - uniform sampler2D roughnessMap; -#endif`,$P=`#if NUM_SPOT_LIGHT_COORDS > 0 - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#if NUM_SPOT_LIGHT_MAPS > 0 - uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - struct SpotLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif - float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { - return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); - } - vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { - return unpackRGBATo2Half( texture2D( shadow, uv ) ); - } - float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ - float occlusion = 1.0; - vec2 distribution = texture2DDistribution( shadow, uv ); - float hard_shadow = step( compare , distribution.x ); - if (hard_shadow != 1.0 ) { - float distance = compare - distribution.x ; - float variance = max( 0.00000, distribution.y * distribution.y ); - float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); - } - return occlusion; - } - float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - shadowCoord.z += shadowBias; - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - #if defined( SHADOWMAP_TYPE_PCF ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx0 = - texelSize.x * shadowRadius; - float dy0 = - texelSize.y * shadowRadius; - float dx1 = + texelSize.x * shadowRadius; - float dy1 = + texelSize.y * shadowRadius; - float dx2 = dx0 / 2.0; - float dy2 = dy0 / 2.0; - float dx3 = dx1 / 2.0; - float dy3 = dy1 / 2.0; - shadow = ( - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) - ) * ( 1.0 / 17.0 ); - #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx = texelSize.x; - float dy = texelSize.y; - vec2 uv = shadowCoord.xy; - vec2 f = fract( uv * shadowMapSize + 0.5 ); - uv -= f * texelSize; - shadow = ( - texture2DCompare( shadowMap, uv, shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), - f.x ), - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), - f.x ), - f.y ) - ) * ( 1.0 / 9.0 ); - #elif defined( SHADOWMAP_TYPE_VSM ) - shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); - #else - shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); - #endif - } - return shadow; - } - vec2 cubeToUV( vec3 v, float texelSizeY ) { - vec3 absV = abs( v ); - float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); - absV *= scaleToCube; - v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); - vec2 planar = v.xy; - float almostATexel = 1.5 * texelSizeY; - float almostOne = 1.0 - almostATexel; - if ( absV.z >= almostOne ) { - if ( v.z > 0.0 ) - planar.x = 4.0 - v.x; - } else if ( absV.x >= almostOne ) { - float signX = sign( v.x ); - planar.x = v.z * signX + 2.0 * signX; - } else if ( absV.y >= almostOne ) { - float signY = sign( v.y ); - planar.x = v.x + 2.0 * signY + 2.0; - planar.y = v.z * signY - 2.0; - } - return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); - } - float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); - vec3 lightToPosition = shadowCoord.xyz; - float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; - vec3 bd3D = normalize( lightToPosition ); - #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) - vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; - return ( - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) - ) * ( 1.0 / 9.0 ); - #else - return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); - #endif - } -#endif`,eU=`#if NUM_SPOT_LIGHT_COORDS > 0 - uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - struct SpotLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif -#endif`,tU=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) - vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - vec4 shadowWorldPosition; -#endif -#if defined( USE_SHADOWMAP ) - #if NUM_DIR_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); - vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); - vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif -#endif -#if NUM_SPOT_LIGHT_COORDS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { - shadowWorldPosition = worldPosition; - #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; - #endif - vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end -#endif`,nU=`float getShadowMask() { - float shadow = 1.0; - #ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - directionalLight = directionalLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { - spotLight = spotLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - pointLight = pointLightShadows[ i ]; - shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; - } - #pragma unroll_loop_end - #endif - #endif - return shadow; -}`,iU=`#ifdef USE_SKINNING - mat4 boneMatX = getBoneMatrix( skinIndex.x ); - mat4 boneMatY = getBoneMatrix( skinIndex.y ); - mat4 boneMatZ = getBoneMatrix( skinIndex.z ); - mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,rU=`#ifdef USE_SKINNING - uniform mat4 bindMatrix; - uniform mat4 bindMatrixInverse; - uniform highp sampler2D boneTexture; - mat4 getBoneMatrix( const in float i ) { - int size = textureSize( boneTexture, 0 ).x; - int j = int( i ) * 4; - int x = j % size; - int y = j / size; - vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); - vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); - vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); - vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); - return mat4( v1, v2, v3, v4 ); - } -#endif`,sU=`#ifdef USE_SKINNING - vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); - vec4 skinned = vec4( 0.0 ); - skinned += boneMatX * skinVertex * skinWeight.x; - skinned += boneMatY * skinVertex * skinWeight.y; - skinned += boneMatZ * skinVertex * skinWeight.z; - skinned += boneMatW * skinVertex * skinWeight.w; - transformed = ( bindMatrixInverse * skinned ).xyz; -#endif`,oU=`#ifdef USE_SKINNING - mat4 skinMatrix = mat4( 0.0 ); - skinMatrix += skinWeight.x * boneMatX; - skinMatrix += skinWeight.y * boneMatY; - skinMatrix += skinWeight.z * boneMatZ; - skinMatrix += skinWeight.w * boneMatW; - skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; - objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; - #ifdef USE_TANGENT - objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; - #endif -#endif`,aU=`float specularStrength; -#ifdef USE_SPECULARMAP - vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); - specularStrength = texelSpecular.r; -#else - specularStrength = 1.0; -#endif`,lU=`#ifdef USE_SPECULARMAP - uniform sampler2D specularMap; -#endif`,cU=`#if defined( TONE_MAPPING ) - gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,uU=`#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -uniform float toneMappingExposure; -vec3 LinearToneMapping( vec3 color ) { - return saturate( toneMappingExposure * color ); -} -vec3 ReinhardToneMapping( vec3 color ) { - color *= toneMappingExposure; - return saturate( color / ( vec3( 1.0 ) + color ) ); -} -vec3 OptimizedCineonToneMapping( vec3 color ) { - color *= toneMappingExposure; - color = max( vec3( 0.0 ), color - 0.004 ); - return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); -} -vec3 RRTAndODTFit( vec3 v ) { - vec3 a = v * ( v + 0.0245786 ) - 0.000090537; - vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; - return a / b; -} -vec3 ACESFilmicToneMapping( vec3 color ) { - const mat3 ACESInputMat = mat3( - vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), - vec3( 0.04823, 0.01566, 0.83777 ) - ); - const mat3 ACESOutputMat = mat3( - vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), - vec3( -0.07367, -0.00605, 1.07602 ) - ); - color *= toneMappingExposure / 0.6; - color = ACESInputMat * color; - color = RRTAndODTFit( color ); - color = ACESOutputMat * color; - return saturate( color ); -} -const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( - vec3( 1.6605, - 0.1246, - 0.0182 ), - vec3( - 0.5876, 1.1329, - 0.1006 ), - vec3( - 0.0728, - 0.0083, 1.1187 ) -); -const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( - vec3( 0.6274, 0.0691, 0.0164 ), - vec3( 0.3293, 0.9195, 0.0880 ), - vec3( 0.0433, 0.0113, 0.8956 ) -); -vec3 agxDefaultContrastApprox( vec3 x ) { - vec3 x2 = x * x; - vec3 x4 = x2 * x2; - return + 15.5 * x4 * x2 - - 40.14 * x4 * x - + 31.96 * x4 - - 6.868 * x2 * x - + 0.4298 * x2 - + 0.1191 * x - - 0.00232; -} -vec3 AgXToneMapping( vec3 color ) { - const mat3 AgXInsetMatrix = mat3( - vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), - vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), - vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) - ); - const mat3 AgXOutsetMatrix = mat3( - vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), - vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), - vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) - ); - const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; - color *= toneMappingExposure; - color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; - color = AgXInsetMatrix * color; - color = max( color, 1e-10 ); color = log2( color ); - color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); - color = clamp( color, 0.0, 1.0 ); - color = agxDefaultContrastApprox( color ); - color = AgXOutsetMatrix * color; - color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); - color = LINEAR_REC2020_TO_LINEAR_SRGB * color; - color = clamp( color, 0.0, 1.0 ); - return color; -} -vec3 CustomToneMapping( vec3 color ) { return color; }`,AU=`#ifdef USE_TRANSMISSION - material.transmission = transmission; - material.transmissionAlpha = 1.0; - material.thickness = thickness; - material.attenuationDistance = attenuationDistance; - material.attenuationColor = attenuationColor; - #ifdef USE_TRANSMISSIONMAP - material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; - #endif - #ifdef USE_THICKNESSMAP - material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; - #endif - vec3 pos = vWorldPosition; - vec3 v = normalize( cameraPosition - pos ); - vec3 n = inverseTransformDirection( normal, viewMatrix ); - vec4 transmitted = getIBLVolumeRefraction( - n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, - pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, - material.attenuationColor, material.attenuationDistance ); - material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); - totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); -#endif`,hU=`#ifdef USE_TRANSMISSION - uniform float transmission; - uniform float thickness; - uniform float attenuationDistance; - uniform vec3 attenuationColor; - #ifdef USE_TRANSMISSIONMAP - uniform sampler2D transmissionMap; - #endif - #ifdef USE_THICKNESSMAP - uniform sampler2D thicknessMap; - #endif - uniform vec2 transmissionSamplerSize; - uniform sampler2D transmissionSamplerMap; - uniform mat4 modelMatrix; - uniform mat4 projectionMatrix; - varying vec3 vWorldPosition; - float w0( float a ) { - return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); - } - float w1( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); - } - float w2( float a ){ - return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); - } - float w3( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * a ); - } - float g0( float a ) { - return w0( a ) + w1( a ); - } - float g1( float a ) { - return w2( a ) + w3( a ); - } - float h0( float a ) { - return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); - } - float h1( float a ) { - return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); - } - vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { - uv = uv * texelSize.zw + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - float g0x = g0( fuv.x ); - float g1x = g1( fuv.x ); - float h0x = h0( fuv.x ); - float h1x = h1( fuv.x ); - float h0y = h0( fuv.y ); - float h1y = h1( fuv.y ); - vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + - g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); - } - vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { - vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); - vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); - vec2 fLodSizeInv = 1.0 / fLodSize; - vec2 cLodSizeInv = 1.0 / cLodSize; - vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); - vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); - return mix( fSample, cSample, fract( lod ) ); - } - vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { - vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); - vec3 modelScale; - modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); - modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); - modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); - return normalize( refractionVector ) * thickness * modelScale; - } - float applyIorToRoughness( const in float roughness, const in float ior ) { - return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); - } - vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { - float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); - return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); - } - vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { - if ( isinf( attenuationDistance ) ) { - return vec3( 1.0 ); - } else { - vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; - vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; - } - } - vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, - const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, - const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, - const in vec3 attenuationColor, const in float attenuationDistance ) { - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); - vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); - vec3 attenuatedColor = transmittance * transmittedLight.rgb; - vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); - float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; - return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); - } -#endif`,fU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - varying vec2 vNormalMapUv; -#endif -#ifdef USE_EMISSIVEMAP - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_SPECULARMAP - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,dU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - uniform mat3 mapTransform; - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - uniform mat3 alphaMapTransform; - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - uniform mat3 lightMapTransform; - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - uniform mat3 aoMapTransform; - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - uniform mat3 bumpMapTransform; - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - uniform mat3 normalMapTransform; - varying vec2 vNormalMapUv; -#endif -#ifdef USE_DISPLACEMENTMAP - uniform mat3 displacementMapTransform; - varying vec2 vDisplacementMapUv; -#endif -#ifdef USE_EMISSIVEMAP - uniform mat3 emissiveMapTransform; - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - uniform mat3 metalnessMapTransform; - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - uniform mat3 roughnessMapTransform; - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - uniform mat3 anisotropyMapTransform; - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - uniform mat3 clearcoatMapTransform; - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform mat3 clearcoatNormalMapTransform; - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform mat3 clearcoatRoughnessMapTransform; - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - uniform mat3 sheenColorMapTransform; - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - uniform mat3 sheenRoughnessMapTransform; - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - uniform mat3 iridescenceMapTransform; - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform mat3 iridescenceThicknessMapTransform; - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SPECULARMAP - uniform mat3 specularMapTransform; - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - uniform mat3 specularColorMapTransform; - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - uniform mat3 specularIntensityMapTransform; - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,pU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - vUv = vec3( uv, 1 ).xy; -#endif -#ifdef USE_MAP - vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ALPHAMAP - vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_LIGHTMAP - vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_AOMAP - vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_BUMPMAP - vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_NORMALMAP - vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_DISPLACEMENTMAP - vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_EMISSIVEMAP - vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_METALNESSMAP - vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ROUGHNESSMAP - vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ANISOTROPYMAP - vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOATMAP - vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCEMAP - vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_COLORMAP - vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULARMAP - vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_COLORMAP - vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_TRANSMISSIONMAP - vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_THICKNESSMAP - vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; -#endif`,gU=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 - vec4 worldPosition = vec4( transformed, 1.0 ); - #ifdef USE_BATCHING - worldPosition = batchingMatrix * worldPosition; - #endif - #ifdef USE_INSTANCING - worldPosition = instanceMatrix * worldPosition; - #endif - worldPosition = modelMatrix * worldPosition; -#endif`;const mU=`varying vec2 vUv; -uniform mat3 uvTransform; -void main() { - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,EU=`uniform sampler2D t2D; -uniform float backgroundIntensity; -varying vec2 vUv; -void main() { - vec4 texColor = texture2D( t2D, vUv ); - #ifdef DECODE_VIDEO_TEXTURE - texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,yU=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,CU=`#ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; -#elif defined( ENVMAP_TYPE_CUBE_UV ) - uniform sampler2D envMap; -#endif -uniform float flipEnvMap; -uniform float backgroundBlurriness; -uniform float backgroundIntensity; -varying vec3 vWorldDirection; -#include -void main() { - #ifdef ENVMAP_TYPE_CUBE - vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); - #elif defined( ENVMAP_TYPE_CUBE_UV ) - vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); - #else - vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,IU=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,vU=`uniform samplerCube tCube; -uniform float tFlip; -uniform float opacity; -varying vec3 vWorldDirection; -void main() { - vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); - gl_FragColor = texColor; - gl_FragColor.a *= opacity; - #include - #include -}`,xU=`#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vHighPrecisionZW = gl_Position.zw; -}`,BU=`#if DEPTH_PACKING == 3200 - uniform float opacity; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - vec4 diffuseColor = vec4( 1.0 ); - #include - #if DEPTH_PACKING == 3200 - diffuseColor.a = opacity; - #endif - #include - #include - #include - #include - #include - float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; - #if DEPTH_PACKING == 3200 - gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); - #elif DEPTH_PACKING == 3201 - gl_FragColor = packDepthToRGBA( fragCoordZ ); - #endif -}`,_U=`#define DISTANCE -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vWorldPosition = worldPosition.xyz; -}`,SU=`#define DISTANCE -uniform vec3 referencePosition; -uniform float nearDistance; -uniform float farDistance; -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -#include -void main () { - vec4 diffuseColor = vec4( 1.0 ); - #include - #include - #include - #include - #include - float dist = length( vWorldPosition - referencePosition ); - dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); - dist = saturate( dist ); - gl_FragColor = packDepthToRGBA( dist ); -}`,wU=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include -}`,MU=`uniform sampler2D tEquirect; -varying vec3 vWorldDirection; -#include -void main() { - vec3 direction = normalize( vWorldDirection ); - vec2 sampleUV = equirectUv( direction ); - gl_FragColor = texture2D( tEquirect, sampleUV ); - #include - #include -}`,QU=`uniform float scale; -attribute float lineDistance; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vLineDistance = scale * lineDistance; - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,RU=`uniform vec3 diffuse; -uniform float opacity; -uniform float dashSize; -uniform float totalSize; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - if ( mod( vLineDistance, totalSize ) > dashSize ) { - discard; - } - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,TU=`#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) - #include - #include - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,DU=`uniform vec3 diffuse; -uniform float opacity; -#ifndef FLAT_SHADED - varying vec3 vNormal; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; - #else - reflectedLight.indirectDiffuse += vec3( 1.0 ); - #endif - #include - reflectedLight.indirectDiffuse *= diffuseColor.rgb; - vec3 outgoingLight = reflectedLight.indirectDiffuse; - #include - #include - #include - #include - #include - #include - #include -}`,bU=`#define LAMBERT -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,NU=`#define LAMBERT -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,LU=`#define MATCAP -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; -}`,PU=`#define MATCAP -uniform vec3 diffuse; -uniform float opacity; -uniform sampler2D matcap; -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 viewDir = normalize( vViewPosition ); - vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); - vec3 y = cross( viewDir, x ); - vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; - #ifdef USE_MATCAP - vec4 matcapColor = texture2D( matcap, uv ); - #else - vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); - #endif - vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; - #include - #include - #include - #include - #include - #include -}`,UU=`#define NORMAL -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - vViewPosition = - mvPosition.xyz; -#endif -}`,FU=`#define NORMAL -uniform float opacity; -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); - #include - #include - #include - #include - gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); - #ifdef OPAQUE - gl_FragColor.a = 1.0; - #endif -}`,kU=`#define PHONG -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,GU=`#define PHONG -uniform vec3 diffuse; -uniform vec3 emissive; -uniform vec3 specular; -uniform float shininess; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,OU=`#define STANDARD -varying vec3 vViewPosition; -#ifdef USE_TRANSMISSION - varying vec3 vWorldPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -#ifdef USE_TRANSMISSION - vWorldPosition = worldPosition.xyz; -#endif -}`,HU=`#define STANDARD -#ifdef PHYSICAL - #define IOR - #define USE_SPECULAR -#endif -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float roughness; -uniform float metalness; -uniform float opacity; -#ifdef IOR - uniform float ior; -#endif -#ifdef USE_SPECULAR - uniform float specularIntensity; - uniform vec3 specularColor; - #ifdef USE_SPECULAR_COLORMAP - uniform sampler2D specularColorMap; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - uniform sampler2D specularIntensityMap; - #endif -#endif -#ifdef USE_CLEARCOAT - uniform float clearcoat; - uniform float clearcoatRoughness; -#endif -#ifdef USE_IRIDESCENCE - uniform float iridescence; - uniform float iridescenceIOR; - uniform float iridescenceThicknessMinimum; - uniform float iridescenceThicknessMaximum; -#endif -#ifdef USE_SHEEN - uniform vec3 sheenColor; - uniform float sheenRoughness; - #ifdef USE_SHEEN_COLORMAP - uniform sampler2D sheenColorMap; - #endif - #ifdef USE_SHEEN_ROUGHNESSMAP - uniform sampler2D sheenRoughnessMap; - #endif -#endif -#ifdef USE_ANISOTROPY - uniform vec2 anisotropyVector; - #ifdef USE_ANISOTROPYMAP - uniform sampler2D anisotropyMap; - #endif -#endif -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; - vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; - #include - vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; - #ifdef USE_SHEEN - float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); - outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; - #endif - #ifdef USE_CLEARCOAT - float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); - vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); - outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; - #endif - #include - #include - #include - #include - #include - #include -}`,zU=`#define TOON -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -}`,VU=`#define TOON -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include -}`,WU=`uniform float size; -uniform float scale; -#include -#include -#include -#include -#include -#include -#ifdef USE_POINTS_UV - varying vec2 vUv; - uniform mat3 uvTransform; -#endif -void main() { - #ifdef USE_POINTS_UV - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - #endif - #include - #include - #include - #include - #include - gl_PointSize = size; - #ifdef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); - #endif - #include - #include - #include - #include -}`,YU=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,XU=`#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,JU=`uniform vec3 color; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); - #include - #include - #include -}`,KU=`uniform float rotation; -uniform vec2 center; -#include -#include -#include -#include -#include -void main() { - #include - vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); - vec2 scale; - scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); - scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); - #ifndef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) scale *= - mvPosition.z; - #endif - vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; - vec2 rotatedPosition; - rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; - rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; - mvPosition.xy += rotatedPosition; - gl_Position = projectionMatrix * mvPosition; - #include - #include - #include -}`,jU=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include -}`,Pt={alphahash_fragment:EL,alphahash_pars_fragment:yL,alphamap_fragment:CL,alphamap_pars_fragment:IL,alphatest_fragment:vL,alphatest_pars_fragment:xL,aomap_fragment:BL,aomap_pars_fragment:_L,batching_pars_vertex:SL,batching_vertex:wL,begin_vertex:ML,beginnormal_vertex:QL,bsdfs:RL,iridescence_fragment:TL,bumpmap_pars_fragment:DL,clipping_planes_fragment:bL,clipping_planes_pars_fragment:NL,clipping_planes_pars_vertex:LL,clipping_planes_vertex:PL,color_fragment:UL,color_pars_fragment:FL,color_pars_vertex:kL,color_vertex:GL,common:OL,cube_uv_reflection_fragment:HL,defaultnormal_vertex:zL,displacementmap_pars_vertex:VL,displacementmap_vertex:WL,emissivemap_fragment:YL,emissivemap_pars_fragment:XL,colorspace_fragment:JL,colorspace_pars_fragment:KL,envmap_fragment:jL,envmap_common_pars_fragment:qL,envmap_pars_fragment:ZL,envmap_pars_vertex:$L,envmap_physical_pars_fragment:AP,envmap_vertex:eP,fog_vertex:tP,fog_pars_vertex:nP,fog_fragment:iP,fog_pars_fragment:rP,gradientmap_pars_fragment:sP,lightmap_fragment:oP,lightmap_pars_fragment:aP,lights_lambert_fragment:lP,lights_lambert_pars_fragment:cP,lights_pars_begin:uP,lights_toon_fragment:hP,lights_toon_pars_fragment:fP,lights_phong_fragment:dP,lights_phong_pars_fragment:pP,lights_physical_fragment:gP,lights_physical_pars_fragment:mP,lights_fragment_begin:EP,lights_fragment_maps:yP,lights_fragment_end:CP,logdepthbuf_fragment:IP,logdepthbuf_pars_fragment:vP,logdepthbuf_pars_vertex:xP,logdepthbuf_vertex:BP,map_fragment:_P,map_pars_fragment:SP,map_particle_fragment:wP,map_particle_pars_fragment:MP,metalnessmap_fragment:QP,metalnessmap_pars_fragment:RP,morphcolor_vertex:TP,morphnormal_vertex:DP,morphtarget_pars_vertex:bP,morphtarget_vertex:NP,normal_fragment_begin:LP,normal_fragment_maps:PP,normal_pars_fragment:UP,normal_pars_vertex:FP,normal_vertex:kP,normalmap_pars_fragment:GP,clearcoat_normal_fragment_begin:OP,clearcoat_normal_fragment_maps:HP,clearcoat_pars_fragment:zP,iridescence_pars_fragment:VP,opaque_fragment:WP,packing:YP,premultiplied_alpha_fragment:XP,project_vertex:JP,dithering_fragment:KP,dithering_pars_fragment:jP,roughnessmap_fragment:qP,roughnessmap_pars_fragment:ZP,shadowmap_pars_fragment:$P,shadowmap_pars_vertex:eU,shadowmap_vertex:tU,shadowmask_pars_fragment:nU,skinbase_vertex:iU,skinning_pars_vertex:rU,skinning_vertex:sU,skinnormal_vertex:oU,specularmap_fragment:aU,specularmap_pars_fragment:lU,tonemapping_fragment:cU,tonemapping_pars_fragment:uU,transmission_fragment:AU,transmission_pars_fragment:hU,uv_pars_fragment:fU,uv_pars_vertex:dU,uv_vertex:pU,worldpos_vertex:gU,background_vert:mU,background_frag:EU,backgroundCube_vert:yU,backgroundCube_frag:CU,cube_vert:IU,cube_frag:vU,depth_vert:xU,depth_frag:BU,distanceRGBA_vert:_U,distanceRGBA_frag:SU,equirect_vert:wU,equirect_frag:MU,linedashed_vert:QU,linedashed_frag:RU,meshbasic_vert:TU,meshbasic_frag:DU,meshlambert_vert:bU,meshlambert_frag:NU,meshmatcap_vert:LU,meshmatcap_frag:PU,meshnormal_vert:UU,meshnormal_frag:FU,meshphong_vert:kU,meshphong_frag:GU,meshphysical_vert:OU,meshphysical_frag:HU,meshtoon_vert:zU,meshtoon_frag:VU,points_vert:WU,points_frag:YU,shadow_vert:XU,shadow_frag:JU,sprite_vert:KU,sprite_frag:jU},Ye={common:{diffuse:{value:new Je(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Rt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Rt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Rt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Rt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Rt},normalScale:{value:new _e(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Rt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Rt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Rt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Rt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Je(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Je(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0},uvTransform:{value:new Rt}},sprite:{diffuse:{value:new Je(16777215)},opacity:{value:1},center:{value:new _e(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}}},ns={basic:{uniforms:Pi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.fog]),vertexShader:Pt.meshbasic_vert,fragmentShader:Pt.meshbasic_frag},lambert:{uniforms:Pi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:Pt.meshlambert_vert,fragmentShader:Pt.meshlambert_frag},phong:{uniforms:Pi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},specular:{value:new Je(1118481)},shininess:{value:30}}]),vertexShader:Pt.meshphong_vert,fragmentShader:Pt.meshphong_frag},standard:{uniforms:Pi([Ye.common,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.roughnessmap,Ye.metalnessmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Pt.meshphysical_vert,fragmentShader:Pt.meshphysical_frag},toon:{uniforms:Pi([Ye.common,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.gradientmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:Pt.meshtoon_vert,fragmentShader:Pt.meshtoon_frag},matcap:{uniforms:Pi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,{matcap:{value:null}}]),vertexShader:Pt.meshmatcap_vert,fragmentShader:Pt.meshmatcap_frag},points:{uniforms:Pi([Ye.points,Ye.fog]),vertexShader:Pt.points_vert,fragmentShader:Pt.points_frag},dashed:{uniforms:Pi([Ye.common,Ye.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Pt.linedashed_vert,fragmentShader:Pt.linedashed_frag},depth:{uniforms:Pi([Ye.common,Ye.displacementmap]),vertexShader:Pt.depth_vert,fragmentShader:Pt.depth_frag},normal:{uniforms:Pi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,{opacity:{value:1}}]),vertexShader:Pt.meshnormal_vert,fragmentShader:Pt.meshnormal_frag},sprite:{uniforms:Pi([Ye.sprite,Ye.fog]),vertexShader:Pt.sprite_vert,fragmentShader:Pt.sprite_frag},background:{uniforms:{uvTransform:{value:new Rt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Pt.background_vert,fragmentShader:Pt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Pt.backgroundCube_vert,fragmentShader:Pt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Pt.cube_vert,fragmentShader:Pt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Pt.equirect_vert,fragmentShader:Pt.equirect_frag},distanceRGBA:{uniforms:Pi([Ye.common,Ye.displacementmap,{referencePosition:{value:new G},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Pt.distanceRGBA_vert,fragmentShader:Pt.distanceRGBA_frag},shadow:{uniforms:Pi([Ye.lights,Ye.fog,{color:{value:new Je(0)},opacity:{value:1}}]),vertexShader:Pt.shadow_vert,fragmentShader:Pt.shadow_frag}};ns.physical={uniforms:Pi([ns.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Rt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Rt},clearcoatNormalScale:{value:new _e(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Rt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Rt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Rt},sheen:{value:0},sheenColor:{value:new Je(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Rt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Rt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Rt},transmissionSamplerSize:{value:new _e},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Rt},attenuationDistance:{value:0},attenuationColor:{value:new Je(0)},specularColor:{value:new Je(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Rt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Rt},anisotropyVector:{value:new _e},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Rt}}]),vertexShader:Pt.meshphysical_vert,fragmentShader:Pt.meshphysical_frag};const Rd={r:0,b:0,g:0};function qU(n,e,t,i,r,s,o){const a=new Je(0);let c=s===!0?0:1,A,h,f=null,d=0,m=null;function E(y,g){let v=!1,C=g.isScene===!0?g.background:null;C&&C.isTexture&&(C=(g.backgroundBlurriness>0?t:e).get(C)),C===null?x(a,c):C&&C.isColor&&(x(C,1),v=!0);const B=n.xr.getEnvironmentBlendMode();B==="additive"?i.buffers.color.setClear(0,0,0,1,o):B==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||v)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),C&&(C.isCubeTexture||C.mapping===Bu)?(h===void 0&&(h=new rn(new Fl(1,1,1),new as({name:"BackgroundCubeMaterial",uniforms:yu(ns.backgroundCube.uniforms),vertexShader:ns.backgroundCube.vertexShader,fragmentShader:ns.backgroundCube.fragmentShader,side:Hi,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,w,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=C,h.material.uniforms.flipEnvMap.value=C.isCubeTexture&&C.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=g.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=g.backgroundIntensity,h.material.toneMapped=on.getTransfer(C.colorSpace)!==gn,(f!==C||d!==C.version||m!==n.toneMapping)&&(h.material.needsUpdate=!0,f=C,d=C.version,m=n.toneMapping),h.layers.enableAll(),y.unshift(h,h.geometry,h.material,0,0,null)):C&&C.isTexture&&(A===void 0&&(A=new rn(new ga(2,2),new as({name:"BackgroundMaterial",uniforms:yu(ns.background.uniforms),vertexShader:ns.background.vertexShader,fragmentShader:ns.background.fragmentShader,side:Vr,depthTest:!1,depthWrite:!1,fog:!1})),A.geometry.deleteAttribute("normal"),Object.defineProperty(A.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(A)),A.material.uniforms.t2D.value=C,A.material.uniforms.backgroundIntensity.value=g.backgroundIntensity,A.material.toneMapped=on.getTransfer(C.colorSpace)!==gn,C.matrixAutoUpdate===!0&&C.updateMatrix(),A.material.uniforms.uvTransform.value.copy(C.matrix),(f!==C||d!==C.version||m!==n.toneMapping)&&(A.material.needsUpdate=!0,f=C,d=C.version,m=n.toneMapping),A.layers.enableAll(),y.unshift(A,A.geometry,A.material,0,0,null))}function x(y,g){y.getRGB(Rd,o2(n)),i.buffers.color.setClear(Rd.r,Rd.g,Rd.b,g,o)}return{getClearColor:function(){return a},setClearColor:function(y,g=1){a.set(y),c=g,x(a,c)},getClearAlpha:function(){return c},setClearAlpha:function(y){c=y,x(a,c)},render:E}}function ZU(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||s!==null,a={},c=y(null);let A=c,h=!1;function f(X,ce,se,fe,U){let ee=!1;if(o){const te=x(fe,se,ce);A!==te&&(A=te,m(A.object)),ee=g(X,fe,se,U),ee&&v(X,fe,se,U)}else{const te=ce.wireframe===!0;(A.geometry!==fe.id||A.program!==se.id||A.wireframe!==te)&&(A.geometry=fe.id,A.program=se.id,A.wireframe=te,ee=!0)}U!==null&&t.update(U,n.ELEMENT_ARRAY_BUFFER),(ee||h)&&(h=!1,P(X,ce,se,fe),U!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(U).buffer))}function d(){return i.isWebGL2?n.createVertexArray():s.createVertexArrayOES()}function m(X){return i.isWebGL2?n.bindVertexArray(X):s.bindVertexArrayOES(X)}function E(X){return i.isWebGL2?n.deleteVertexArray(X):s.deleteVertexArrayOES(X)}function x(X,ce,se){const fe=se.wireframe===!0;let U=a[X.id];U===void 0&&(U={},a[X.id]=U);let ee=U[ce.id];ee===void 0&&(ee={},U[ce.id]=ee);let te=ee[fe];return te===void 0&&(te=y(d()),ee[fe]=te),te}function y(X){const ce=[],se=[],fe=[];for(let U=0;U=0){const V=U[Ce];let O=ee[Ce];if(O===void 0&&(Ce==="instanceMatrix"&&X.instanceMatrix&&(O=X.instanceMatrix),Ce==="instanceColor"&&X.instanceColor&&(O=X.instanceColor)),V===void 0||V.attribute!==O||O&&V.data!==O.data)return!0;te++}return A.attributesNum!==te||A.index!==fe}function v(X,ce,se,fe){const U={},ee=ce.attributes;let te=0;const ue=se.getAttributes();for(const Ce in ue)if(ue[Ce].location>=0){let V=ee[Ce];V===void 0&&(Ce==="instanceMatrix"&&X.instanceMatrix&&(V=X.instanceMatrix),Ce==="instanceColor"&&X.instanceColor&&(V=X.instanceColor));const O={};O.attribute=V,V&&V.data&&(O.data=V.data),U[Ce]=O,te++}A.attributes=U,A.attributesNum=te,A.index=fe}function C(){const X=A.newAttributes;for(let ce=0,se=X.length;ce=0){let ke=U[ue];if(ke===void 0&&(ue==="instanceMatrix"&&X.instanceMatrix&&(ke=X.instanceMatrix),ue==="instanceColor"&&X.instanceColor&&(ke=X.instanceColor)),ke!==void 0){const V=ke.normalized,O=ke.itemSize,k=t.get(ke);if(k===void 0)continue;const F=k.buffer,me=k.type,ve=k.bytesPerElement,re=i.isWebGL2===!0&&(me===n.INT||me===n.UNSIGNED_INT||ke.gpuType===HI);if(ke.isInterleavedBufferAttribute){const Be=ke.data,H=Be.stride,Ee=ke.offset;if(Be.isInstancedInterleavedBuffer){for(let ne=0;ne0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext";let a=t.precision!==void 0?t.precision:"highp";const c=s(a);c!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",c,"instead."),a=c);const A=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,f=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),d=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),m=n.getParameter(n.MAX_TEXTURE_SIZE),E=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),x=n.getParameter(n.MAX_VERTEX_ATTRIBS),y=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),g=n.getParameter(n.MAX_VARYING_VECTORS),v=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),C=d>0,B=o||e.has("OES_texture_float"),R=C&&B,w=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:A,getMaxAnisotropy:r,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:d,maxTextureSize:m,maxCubemapSize:E,maxAttributes:x,maxVertexUniforms:y,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:C,floatFragmentTextures:B,floatVertexTextures:R,maxSamples:w}}function tF(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new un,a=new Rt,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,d){const m=f.length!==0||d||i!==0||r;return r=d,i=f.length,m},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(f,d){t=h(f,d,0)},this.setState=function(f,d,m){const E=f.clippingPlanes,x=f.clipIntersection,y=f.clipShadows,g=n.get(f);if(!r||E===null||E.length===0||s&&!y)s?h(null):A();else{const v=s?0:i,C=v*4;let B=g.clippingState||null;c.value=B,B=h(E,d,C,m);for(let R=0;R!==C;++R)B[R]=t[R];g.clippingState=B,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=v}};function A(){c.value!==t&&(c.value=t,c.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(f,d,m,E){const x=f!==null?f.length:0;let y=null;if(x!==0){if(y=c.value,E!==!0||y===null){const g=m+x*4,v=d.matrixWorldInverse;a.getNormalMatrix(v),(y===null||y.length0){const A=new c2(c.height);return A.fromEquirectangularTexture(n,o),e.set(o,A),o.addEventListener("dispose",r),t(A.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const c=e.get(a);c!==void 0&&(e.delete(a),c.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}class zh extends Gh{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,a=r+t,c=r-t;if(this.view!==null&&this.view.enabled){const A=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=A*this.view.offsetX,o=s+A*this.view.width,a-=h*this.view.offsetY,c=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,c,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}const $c=4,YB=[.125,.215,.35,.446,.526,.582],Al=20,aE=new zh,XB=new Je;let lE=null,cE=0,uE=0;const al=(1+Math.sqrt(5))/2,xc=1/al,JB=[new G(1,1,1),new G(-1,1,1),new G(1,1,-1),new G(-1,1,-1),new G(0,al,xc),new G(0,al,-xc),new G(xc,0,al),new G(-xc,0,al),new G(al,xc,0),new G(-al,xc,0)];class CC{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){lE=this._renderer.getRenderTarget(),cE=this._renderer.getActiveCubeFace(),uE=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=qB(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=jB(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?C:0,C,C),h.setRenderTarget(r),x&&h.render(E,a),h.render(e,a)}E.geometry.dispose(),E.material.dispose(),h.toneMapping=d,h.autoClear=f,e.background=y}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===ho||e.mapping===ua;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=qB()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=jB());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new rn(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;const c=this._cubeSize;Td(t,0,0,3*c,2*c),i.setRenderTarget(t),i.render(o,aE)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;rAl&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${y} samples when the maximum is set to ${Al}`);const g=[];let v=0;for(let T=0;TC-$c?r-C+$c:0),w=4*(this._cubeSize-B);Td(t,R,w,3*B,2*B),c.setRenderTarget(t),c.render(f,aE)}}function iF(n){const e=[],t=[],i=[];let r=n;const s=n-$c+1+YB.length;for(let o=0;on-$c?c=YB[o-n+$c-1]:o===0&&(c=0),i.push(c);const A=1/(a-2),h=-A,f=1+A,d=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,E=6,x=3,y=2,g=1,v=new Float32Array(x*E*m),C=new Float32Array(y*E*m),B=new Float32Array(g*E*m);for(let w=0;w2?0:-1,K=[T,P,0,T+2/3,P,0,T+2/3,P+1,0,T,P,0,T+2/3,P+1,0,T,P+1,0];v.set(K,x*E*w),C.set(d,y*E*w);const M=[w,w,w,w,w,w];B.set(M,g*E*w)}const R=new Nt;R.setAttribute("position",new sn(v,x)),R.setAttribute("uv",new sn(C,y)),R.setAttribute("faceIndex",new sn(B,g)),e.push(R),r>$c&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function KB(n,e,t){const i=new Wr(n,e,t);return i.texture.mapping=Bu,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function Td(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function rF(n,e,t){const i=new Float32Array(Al),r=new G(0,1,0);return new as({name:"SphericalGaussianBlur",defines:{n:Al,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:rv(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform int samples; - uniform float weights[ n ]; - uniform bool latitudinal; - uniform float dTheta; - uniform float mipInt; - uniform vec3 poleAxis; - - #define ENVMAP_TYPE_CUBE_UV - #include - - vec3 getSample( float theta, vec3 axis ) { - - float cosTheta = cos( theta ); - // Rodrigues' axis-angle rotation - vec3 sampleDirection = vOutputDirection * cosTheta - + cross( axis, vOutputDirection ) * sin( theta ) - + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); - - return bilinearCubeUV( envMap, sampleDirection, mipInt ); - - } - - void main() { - - vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); - - if ( all( equal( axis, vec3( 0.0 ) ) ) ) { - - axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); - - } - - axis = normalize( axis ); - - gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); - - for ( int i = 1; i < n; i++ ) { - - if ( i >= samples ) { - - break; - - } - - float theta = dTheta * float( i ); - gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); - gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); - - } - - } - `,blending:ao,depthTest:!1,depthWrite:!1})}function jB(){return new as({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:rv(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - - #include - - void main() { - - vec3 outputDirection = normalize( vOutputDirection ); - vec2 uv = equirectUv( outputDirection ); - - gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); - - } - `,blending:ao,depthTest:!1,depthWrite:!1})}function qB(){return new as({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:rv(),fragmentShader:` - - precision mediump float; - precision mediump int; - - uniform float flipEnvMap; - - varying vec3 vOutputDirection; - - uniform samplerCube envMap; - - void main() { - - gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); - - } - `,blending:ao,depthTest:!1,depthWrite:!1})}function rv(){return` - - precision mediump float; - precision mediump int; - - attribute float faceIndex; - - varying vec3 vOutputDirection; - - // RH coordinate system; PMREM face-indexing convention - vec3 getDirection( vec2 uv, float face ) { - - uv = 2.0 * uv - 1.0; - - vec3 direction = vec3( uv, 1.0 ); - - if ( face == 0.0 ) { - - direction = direction.zyx; // ( 1, v, u ) pos x - - } else if ( face == 1.0 ) { - - direction = direction.xzy; - direction.xz *= -1.0; // ( -u, 1, -v ) pos y - - } else if ( face == 2.0 ) { - - direction.x *= -1.0; // ( -u, v, 1 ) pos z - - } else if ( face == 3.0 ) { - - direction = direction.zyx; - direction.xz *= -1.0; // ( -1, v, -u ) neg x - - } else if ( face == 4.0 ) { - - direction = direction.xzy; - direction.xy *= -1.0; // ( -u, -1, v ) neg y - - } else if ( face == 5.0 ) { - - direction.z *= -1.0; // ( u, v, -1 ) neg z - - } - - return direction; - - } - - void main() { - - vOutputDirection = getDirection( uv, faceIndex ); - gl_Position = vec4( position, 1.0 ); - - } - `}function sF(n){let e=new WeakMap,t=null;function i(a){if(a&&a.isTexture){const c=a.mapping,A=c===ch||c===uh,h=c===ho||c===ua;if(A||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let f=e.get(a);return t===null&&(t=new CC(n)),f=A?t.fromEquirectangular(a,f):t.fromCubemap(a,f),e.set(a,f),f.texture}else{if(e.has(a))return e.get(a).texture;{const f=a.image;if(A&&f&&f.height>0||h&&f&&r(f)){t===null&&(t=new CC(n));const d=A?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,d),a.addEventListener("dispose",s),d.texture}else return null}}}return a}function r(a){let c=0;const A=6;for(let h=0;he.maxTextureSize&&(b=Math.ceil(M/e.maxTextureSize),M=e.maxTextureSize);const q=new Float32Array(M*b*4*x),ge=new zg(q,M,b,x);ge.type=Fr,ge.needsUpdate=!0;const X=K*4;for(let se=0;se0)return n;const r=e*t;let s=ZB[r];if(s===void 0&&(s=new Float32Array(r),ZB[r]=s),e!==0){i.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(s,a)}return s}function ni(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${a}: ${t[o]}`)}return i.join(` -`)}function ak(n){const e=on.getPrimaries(on.workingColorSpace),t=on.getPrimaries(n);let i;switch(e===t?i="":e===Eh&&t===mh?i="LinearDisplayP3ToLinearSRGB":e===mh&&t===Eh&&(i="LinearSRGBToLinearDisplayP3"),n){case Ds:case kh:return[i,"LinearTransferOETF"];case On:case Hg:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}function s_(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=n.getShaderInfoLog(e).trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` - -`+r+` - -`+ok(n.getShaderSource(e),o)}else return r}function lk(n,e){const t=ak(e);return`vec4 ${n}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function ck(n,e){let t;switch(e){case RQ:t="Linear";break;case TQ:t="Reinhard";break;case DQ:t="OptimizedCineon";break;case OI:t="ACESFilmic";break;case NQ:t="AgX";break;case bQ:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function uk(n){return[n.extensionDerivatives||n.envMapCubeUVHeight||n.bumpMap||n.normalMapTangentSpace||n.clearcoatNormalMap||n.flatShading||n.alphaToCoverage||n.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(n.extensionFragDepth||n.logarithmicDepthBuffer)&&n.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",n.extensionDrawBuffers&&n.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(n.extensionShaderTextureLOD||n.envMap||n.transmission)&&n.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(eu).join(` -`)}function Ak(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(eu).join(` -`)}function hk(n){const e=[];for(const t in n){const i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(` -`)}function fk(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function IC(n){return n.replace(dk,gk)}const pk=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function gk(n,e){let t=Pt[e];if(t===void 0){const i=pk.get(e);if(i!==void 0)t=Pt[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return IC(t)}const mk=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function l_(n){return n.replace(mk,Ek)}function Ek(n,e,t,i){let r="";for(let s=parseInt(e);s0&&(g+=` -`),v=[m,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x].filter(eu).join(` -`),v.length>0&&(v+=` -`)):(g=[c_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` -`].filter(eu).join(` -`),v=[m,c_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+A:"",t.envMap?"#define "+h:"",t.envMap?"#define "+f:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Qs?"#define TONE_MAPPING":"",t.toneMapping!==Qs?Pt.tonemapping_pars_fragment:"",t.toneMapping!==Qs?ck("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",Pt.colorspace_pars_fragment,lk("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` -`].filter(eu).join(` -`)),o=IC(o),o=o_(o,t),o=a_(o,t),a=IC(a),a=o_(a,t),a=a_(a,t),o=l_(o),a=l_(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(C=`#version 300 es -`,g=[E,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` -`)+` -`+g,v=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===EC?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===EC?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` -`)+` -`+v);const B=C+g+o,R=C+v+a,w=r_(r,r.VERTEX_SHADER,B),T=r_(r,r.FRAGMENT_SHADER,R);r.attachShader(y,w),r.attachShader(y,T),t.index0AttributeName!==void 0?r.bindAttribLocation(y,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(y,0,"position"),r.linkProgram(y);function P(q){if(n.debug.checkShaderErrors){const ge=r.getProgramInfoLog(y).trim(),X=r.getShaderInfoLog(w).trim(),ce=r.getShaderInfoLog(T).trim();let se=!0,fe=!0;if(r.getProgramParameter(y,r.LINK_STATUS)===!1)if(se=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,y,w,T);else{const U=s_(r,w,"vertex"),ee=s_(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(y,r.VALIDATE_STATUS)+` - -Material Name: `+q.name+` -Material Type: `+q.type+` - -Program Info Log: `+ge+` -`+U+` -`+ee)}else ge!==""?console.warn("THREE.WebGLProgram: Program Info Log:",ge):(X===""||ce==="")&&(fe=!1);fe&&(q.diagnostics={runnable:se,programLog:ge,vertexShader:{log:X,prefix:g},fragmentShader:{log:ce,prefix:v}})}r.deleteShader(w),r.deleteShader(T),K=new Tp(r,y),M=fk(r,y)}let K;this.getUniforms=function(){return K===void 0&&P(this),K};let M;this.getAttributes=function(){return M===void 0&&P(this),M};let b=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return b===!1&&(b=r.getProgramParameter(y,rk)),b},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(y),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=sk++,this.cacheKey=e,this.usedTimes=1,this.program=y,this.vertexShader=w,this.fragmentShader=T,this}let _k=0;class Sk{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new wk(e),t.set(e,i)),i}}class wk{constructor(e){this.id=_k++,this.code=e,this.usedTimes=0}}function Mk(n,e,t,i,r,s,o){const a=new _l,c=new Sk,A=new Set,h=[],f=r.isWebGL2,d=r.logarithmicDepthBuffer,m=r.vertexTextures;let E=r.precision;const x={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function y(M){return A.add(M),M===0?"uv":`uv${M}`}function g(M,b,q,ge,X){const ce=ge.fog,se=X.geometry,fe=M.isMeshStandardMaterial?ge.environment:null,U=(M.isMeshStandardMaterial?t:e).get(M.envMap||fe),ee=U&&U.mapping===Bu?U.image.height:null,te=x[M.type];M.precision!==null&&(E=r.getMaxPrecision(M.precision),E!==M.precision&&console.warn("THREE.WebGLProgram.getParameters:",M.precision,"not supported, using",E,"instead."));const ue=se.morphAttributes.position||se.morphAttributes.normal||se.morphAttributes.color,Ce=ue!==void 0?ue.length:0;let ke=0;se.morphAttributes.position!==void 0&&(ke=1),se.morphAttributes.normal!==void 0&&(ke=2),se.morphAttributes.color!==void 0&&(ke=3);let V,O,k,F;if(te){const Xt=ns[te];V=Xt.vertexShader,O=Xt.fragmentShader}else V=M.vertexShader,O=M.fragmentShader,c.update(M),k=c.getVertexShaderID(M),F=c.getFragmentShaderID(M);const me=n.getRenderTarget(),ve=X.isInstancedMesh===!0,re=X.isBatchedMesh===!0,Be=!!M.map,H=!!M.matcap,Ee=!!U,ne=!!M.aoMap,ae=!!M.lightMap,he=!!M.bumpMap,Te=!!M.normalMap,$=!!M.displacementMap,S=!!M.emissiveMap,D=!!M.metalnessMap,ie=!!M.roughnessMap,be=M.anisotropy>0,De=M.clearcoat>0,Qe=M.iridescence>0,Xe=M.sheen>0,ze=M.transmission>0,je=be&&!!M.anisotropyMap,at=De&&!!M.clearcoatMap,It=De&&!!M.clearcoatNormalMap,Le=De&&!!M.clearcoatRoughnessMap,Lt=Qe&&!!M.iridescenceMap,wt=Qe&&!!M.iridescenceThicknessMap,dt=Xe&&!!M.sheenColorMap,ot=Xe&&!!M.sheenRoughnessMap,tt=!!M.specularMap,Bt=!!M.specularColorMap,kt=!!M.specularIntensityMap,jt=ze&&!!M.transmissionMap,Mt=ze&&!!M.thicknessMap,Wt=!!M.gradientMap,J=!!M.alphaMap,Ge=M.alphaTest>0,Ue=!!M.alphaHash,it=!!M.extensions;let At=Qs;M.toneMapped&&(me===null||me.isXRRenderTarget===!0)&&(At=n.toneMapping);const Yt={isWebGL2:f,shaderID:te,shaderType:M.type,shaderName:M.name,vertexShader:V,fragmentShader:O,defines:M.defines,customVertexShaderID:k,customFragmentShaderID:F,isRawShaderMaterial:M.isRawShaderMaterial===!0,glslVersion:M.glslVersion,precision:E,batching:re,instancing:ve,instancingColor:ve&&X.instanceColor!==null,supportsVertexTextures:m,outputColorSpace:me===null?n.outputColorSpace:me.isXRRenderTarget===!0?me.texture.colorSpace:Ds,alphaToCoverage:!!M.alphaToCoverage,map:Be,matcap:H,envMap:Ee,envMapMode:Ee&&U.mapping,envMapCubeUVHeight:ee,aoMap:ne,lightMap:ae,bumpMap:he,normalMap:Te,displacementMap:m&&$,emissiveMap:S,normalMapObjectSpace:Te&&M.normalMapType===JQ,normalMapTangentSpace:Te&&M.normalMapType===pa,metalnessMap:D,roughnessMap:ie,anisotropy:be,anisotropyMap:je,clearcoat:De,clearcoatMap:at,clearcoatNormalMap:It,clearcoatRoughnessMap:Le,iridescence:Qe,iridescenceMap:Lt,iridescenceThicknessMap:wt,sheen:Xe,sheenColorMap:dt,sheenRoughnessMap:ot,specularMap:tt,specularColorMap:Bt,specularIntensityMap:kt,transmission:ze,transmissionMap:jt,thicknessMap:Mt,gradientMap:Wt,opaque:M.transparent===!1&&M.blending===vl&&M.alphaToCoverage===!1,alphaMap:J,alphaTest:Ge,alphaHash:Ue,combine:M.combine,mapUv:Be&&y(M.map.channel),aoMapUv:ne&&y(M.aoMap.channel),lightMapUv:ae&&y(M.lightMap.channel),bumpMapUv:he&&y(M.bumpMap.channel),normalMapUv:Te&&y(M.normalMap.channel),displacementMapUv:$&&y(M.displacementMap.channel),emissiveMapUv:S&&y(M.emissiveMap.channel),metalnessMapUv:D&&y(M.metalnessMap.channel),roughnessMapUv:ie&&y(M.roughnessMap.channel),anisotropyMapUv:je&&y(M.anisotropyMap.channel),clearcoatMapUv:at&&y(M.clearcoatMap.channel),clearcoatNormalMapUv:It&&y(M.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Le&&y(M.clearcoatRoughnessMap.channel),iridescenceMapUv:Lt&&y(M.iridescenceMap.channel),iridescenceThicknessMapUv:wt&&y(M.iridescenceThicknessMap.channel),sheenColorMapUv:dt&&y(M.sheenColorMap.channel),sheenRoughnessMapUv:ot&&y(M.sheenRoughnessMap.channel),specularMapUv:tt&&y(M.specularMap.channel),specularColorMapUv:Bt&&y(M.specularColorMap.channel),specularIntensityMapUv:kt&&y(M.specularIntensityMap.channel),transmissionMapUv:jt&&y(M.transmissionMap.channel),thicknessMapUv:Mt&&y(M.thicknessMap.channel),alphaMapUv:J&&y(M.alphaMap.channel),vertexTangents:!!se.attributes.tangent&&(Te||be),vertexColors:M.vertexColors,vertexAlphas:M.vertexColors===!0&&!!se.attributes.color&&se.attributes.color.itemSize===4,pointsUvs:X.isPoints===!0&&!!se.attributes.uv&&(Be||J),fog:!!ce,useFog:M.fog===!0,fogExp2:!!ce&&ce.isFogExp2,flatShading:M.flatShading===!0,sizeAttenuation:M.sizeAttenuation===!0,logarithmicDepthBuffer:d,skinning:X.isSkinnedMesh===!0,morphTargets:se.morphAttributes.position!==void 0,morphNormals:se.morphAttributes.normal!==void 0,morphColors:se.morphAttributes.color!==void 0,morphTargetsCount:Ce,morphTextureStride:ke,numDirLights:b.directional.length,numPointLights:b.point.length,numSpotLights:b.spot.length,numSpotLightMaps:b.spotLightMap.length,numRectAreaLights:b.rectArea.length,numHemiLights:b.hemi.length,numDirLightShadows:b.directionalShadowMap.length,numPointLightShadows:b.pointShadowMap.length,numSpotLightShadows:b.spotShadowMap.length,numSpotLightShadowsWithMaps:b.numSpotLightShadowsWithMaps,numLightProbes:b.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:M.dithering,shadowMapEnabled:n.shadowMap.enabled&&q.length>0,shadowMapType:n.shadowMap.type,toneMapping:At,useLegacyLights:n._useLegacyLights,decodeVideoTexture:Be&&M.map.isVideoTexture===!0&&on.getTransfer(M.map.colorSpace)===gn,premultipliedAlpha:M.premultipliedAlpha,doubleSided:M.side===Bs,flipSided:M.side===Hi,useDepthPacking:M.depthPacking>=0,depthPacking:M.depthPacking||0,index0AttributeName:M.index0AttributeName,extensionDerivatives:it&&M.extensions.derivatives===!0,extensionFragDepth:it&&M.extensions.fragDepth===!0,extensionDrawBuffers:it&&M.extensions.drawBuffers===!0,extensionShaderTextureLOD:it&&M.extensions.shaderTextureLOD===!0,extensionClipCullDistance:it&&M.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:it&&M.extensions.multiDraw===!0&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:f||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:f||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:f||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:M.customProgramCacheKey()};return Yt.vertexUv1s=A.has(1),Yt.vertexUv2s=A.has(2),Yt.vertexUv3s=A.has(3),A.clear(),Yt}function v(M){const b=[];if(M.shaderID?b.push(M.shaderID):(b.push(M.customVertexShaderID),b.push(M.customFragmentShaderID)),M.defines!==void 0)for(const q in M.defines)b.push(q),b.push(M.defines[q]);return M.isRawShaderMaterial===!1&&(C(b,M),B(b,M),b.push(n.outputColorSpace)),b.push(M.customProgramCacheKey),b.join()}function C(M,b){M.push(b.precision),M.push(b.outputColorSpace),M.push(b.envMapMode),M.push(b.envMapCubeUVHeight),M.push(b.mapUv),M.push(b.alphaMapUv),M.push(b.lightMapUv),M.push(b.aoMapUv),M.push(b.bumpMapUv),M.push(b.normalMapUv),M.push(b.displacementMapUv),M.push(b.emissiveMapUv),M.push(b.metalnessMapUv),M.push(b.roughnessMapUv),M.push(b.anisotropyMapUv),M.push(b.clearcoatMapUv),M.push(b.clearcoatNormalMapUv),M.push(b.clearcoatRoughnessMapUv),M.push(b.iridescenceMapUv),M.push(b.iridescenceThicknessMapUv),M.push(b.sheenColorMapUv),M.push(b.sheenRoughnessMapUv),M.push(b.specularMapUv),M.push(b.specularColorMapUv),M.push(b.specularIntensityMapUv),M.push(b.transmissionMapUv),M.push(b.thicknessMapUv),M.push(b.combine),M.push(b.fogExp2),M.push(b.sizeAttenuation),M.push(b.morphTargetsCount),M.push(b.morphAttributeCount),M.push(b.numDirLights),M.push(b.numPointLights),M.push(b.numSpotLights),M.push(b.numSpotLightMaps),M.push(b.numHemiLights),M.push(b.numRectAreaLights),M.push(b.numDirLightShadows),M.push(b.numPointLightShadows),M.push(b.numSpotLightShadows),M.push(b.numSpotLightShadowsWithMaps),M.push(b.numLightProbes),M.push(b.shadowMapType),M.push(b.toneMapping),M.push(b.numClippingPlanes),M.push(b.numClipIntersection),M.push(b.depthPacking)}function B(M,b){a.disableAll(),b.isWebGL2&&a.enable(0),b.supportsVertexTextures&&a.enable(1),b.instancing&&a.enable(2),b.instancingColor&&a.enable(3),b.matcap&&a.enable(4),b.envMap&&a.enable(5),b.normalMapObjectSpace&&a.enable(6),b.normalMapTangentSpace&&a.enable(7),b.clearcoat&&a.enable(8),b.iridescence&&a.enable(9),b.alphaTest&&a.enable(10),b.vertexColors&&a.enable(11),b.vertexAlphas&&a.enable(12),b.vertexUv1s&&a.enable(13),b.vertexUv2s&&a.enable(14),b.vertexUv3s&&a.enable(15),b.vertexTangents&&a.enable(16),b.anisotropy&&a.enable(17),b.alphaHash&&a.enable(18),b.batching&&a.enable(19),M.push(a.mask),a.disableAll(),b.fog&&a.enable(0),b.useFog&&a.enable(1),b.flatShading&&a.enable(2),b.logarithmicDepthBuffer&&a.enable(3),b.skinning&&a.enable(4),b.morphTargets&&a.enable(5),b.morphNormals&&a.enable(6),b.morphColors&&a.enable(7),b.premultipliedAlpha&&a.enable(8),b.shadowMapEnabled&&a.enable(9),b.useLegacyLights&&a.enable(10),b.doubleSided&&a.enable(11),b.flipSided&&a.enable(12),b.useDepthPacking&&a.enable(13),b.dithering&&a.enable(14),b.transmission&&a.enable(15),b.sheen&&a.enable(16),b.opaque&&a.enable(17),b.pointsUvs&&a.enable(18),b.decodeVideoTexture&&a.enable(19),b.alphaToCoverage&&a.enable(20),M.push(a.mask)}function R(M){const b=x[M.type];let q;if(b){const ge=ns[b];q=a2.clone(ge.uniforms)}else q=M.uniforms;return q}function w(M,b){let q;for(let ge=0,X=h.length;ge0?i.push(g):m.transparent===!0?r.push(g):t.push(g)}function c(f,d,m,E,x,y){const g=o(f,d,m,E,x,y);m.transmission>0?i.unshift(g):m.transparent===!0?r.unshift(g):t.unshift(g)}function A(f,d){t.length>1&&t.sort(f||Rk),i.length>1&&i.sort(d||u_),r.length>1&&r.sort(d||u_)}function h(){for(let f=e,d=n.length;f=s.length?(o=new A_,s.push(o)):o=s[r],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function Dk(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new G,color:new Je};break;case"SpotLight":t={position:new G,direction:new G,color:new Je,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new G,color:new Je,distance:0,decay:0};break;case"HemisphereLight":t={direction:new G,skyColor:new Je,groundColor:new Je};break;case"RectAreaLight":t={color:new Je,position:new G,halfWidth:new G,halfHeight:new G};break}return n[e.id]=t,t}}}function bk(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let Nk=0;function Lk(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function Pk(n,e){const t=new Dk,i=bk(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)r.probe.push(new G);const s=new G,o=new ft,a=new ft;function c(h,f){let d=0,m=0,E=0;for(let q=0;q<9;q++)r.probe[q].set(0,0,0);let x=0,y=0,g=0,v=0,C=0,B=0,R=0,w=0,T=0,P=0,K=0;h.sort(Lk);const M=f===!0?Math.PI:1;for(let q=0,ge=h.length;q0&&(e.isWebGL2?n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=d,r.ambient[1]=m,r.ambient[2]=E;const b=r.hash;(b.directionalLength!==x||b.pointLength!==y||b.spotLength!==g||b.rectAreaLength!==v||b.hemiLength!==C||b.numDirectionalShadows!==B||b.numPointShadows!==R||b.numSpotShadows!==w||b.numSpotMaps!==T||b.numLightProbes!==K)&&(r.directional.length=x,r.spot.length=g,r.rectArea.length=v,r.point.length=y,r.hemi.length=C,r.directionalShadow.length=B,r.directionalShadowMap.length=B,r.pointShadow.length=R,r.pointShadowMap.length=R,r.spotShadow.length=w,r.spotShadowMap.length=w,r.directionalShadowMatrix.length=B,r.pointShadowMatrix.length=R,r.spotLightMatrix.length=w+T-P,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=P,r.numLightProbes=K,b.directionalLength=x,b.pointLength=y,b.spotLength=g,b.rectAreaLength=v,b.hemiLength=C,b.numDirectionalShadows=B,b.numPointShadows=R,b.numSpotShadows=w,b.numSpotMaps=T,b.numLightProbes=K,r.version=Nk++)}function A(h,f){let d=0,m=0,E=0,x=0,y=0;const g=f.matrixWorldInverse;for(let v=0,C=h.length;v=a.length?(c=new h_(n,e),a.push(c)):c=a[o],c}function r(){t=new WeakMap}return{get:i,dispose:r}}class Wg extends Ai{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=XQ,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class Yg extends Ai{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const Fk=`void main() { - gl_Position = vec4( position, 1.0 ); -}`,kk=`uniform sampler2D shadow_pass; -uniform vec2 resolution; -uniform float radius; -#include -void main() { - const float samples = float( VSM_SAMPLES ); - float mean = 0.0; - float squared_mean = 0.0; - float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); - float uvStart = samples <= 1.0 ? 0.0 : - 1.0; - for ( float i = 0.0; i < samples; i ++ ) { - float uvOffset = uvStart + i * uvStride; - #ifdef HORIZONTAL_PASS - vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); - mean += distribution.x; - squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; - #else - float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); - mean += depth; - squared_mean += depth * depth; - #endif - } - mean = mean / samples; - squared_mean = squared_mean / samples; - float std_dev = sqrt( squared_mean - mean * mean ); - gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function Gk(n,e,t){let i=new Hh;const r=new _e,s=new _e,o=new an,a=new Wg({depthPacking:qI}),c=new Yg,A={},h=t.maxTextureSize,f={[Vr]:Hi,[Hi]:Vr,[Bs]:Bs},d=new as({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new _e},radius:{value:4}},vertexShader:Fk,fragmentShader:kk}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const E=new Nt;E.setAttribute("position",new sn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const x=new rn(E,d),y=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Fg;let g=this.type;this.render=function(w,T,P){if(y.enabled===!1||y.autoUpdate===!1&&y.needsUpdate===!1||w.length===0)return;const K=n.getRenderTarget(),M=n.getActiveCubeFace(),b=n.getActiveMipmapLevel(),q=n.state;q.setBlending(ao),q.buffers.color.setClear(1,1,1,1),q.buffers.depth.setTest(!0),q.setScissorTest(!1);const ge=g!==$r&&this.type===$r,X=g===$r&&this.type!==$r;for(let ce=0,se=w.length;ceh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/ee.x),r.x=s.x*ee.x,U.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/ee.y),r.y=s.y*ee.y,U.mapSize.y=s.y)),U.map===null||ge===!0||X===!0){const ue=this.type!==$r?{minFilter:Gn,magFilter:Gn}:{};U.map!==null&&U.map.dispose(),U.map=new Wr(r.x,r.y,ue),U.map.texture.name=fe.name+".shadowMap",U.camera.updateProjectionMatrix()}n.setRenderTarget(U.map),n.clear();const te=U.getViewportCount();for(let ue=0;ue0||T.map&&T.alphaTest>0){const q=M.uuid,ge=T.uuid;let X=A[q];X===void 0&&(X={},A[q]=X);let ce=X[ge];ce===void 0&&(ce=M.clone(),X[ge]=ce,T.addEventListener("dispose",R)),M=ce}if(M.visible=T.visible,M.wireframe=T.wireframe,K===$r?M.side=T.shadowSide!==null?T.shadowSide:T.side:M.side=T.shadowSide!==null?T.shadowSide:f[T.side],M.alphaMap=T.alphaMap,M.alphaTest=T.alphaTest,M.map=T.map,M.clipShadows=T.clipShadows,M.clippingPlanes=T.clippingPlanes,M.clipIntersection=T.clipIntersection,M.displacementMap=T.displacementMap,M.displacementScale=T.displacementScale,M.displacementBias=T.displacementBias,M.wireframeLinewidth=T.wireframeLinewidth,M.linewidth=T.linewidth,P.isPointLight===!0&&M.isMeshDistanceMaterial===!0){const q=n.properties.get(M);q.light=P}return M}function B(w,T,P,K,M){if(w.visible===!1)return;if(w.layers.test(T.layers)&&(w.isMesh||w.isLine||w.isPoints)&&(w.castShadow||w.receiveShadow&&M===$r)&&(!w.frustumCulled||i.intersectsObject(w))){w.modelViewMatrix.multiplyMatrices(P.matrixWorldInverse,w.matrixWorld);const ge=e.update(w),X=w.material;if(Array.isArray(X)){const ce=ge.groups;for(let se=0,fe=ce.length;se=1):te.indexOf("OpenGL ES")!==-1&&(ee=parseFloat(/^OpenGL ES (\d)/.exec(te)[1]),U=ee>=2);let ue=null,Ce={};const ke=n.getParameter(n.SCISSOR_BOX),V=n.getParameter(n.VIEWPORT),O=new an().fromArray(ke),k=new an().fromArray(V);function F(J,Ge,Ue,it){const At=new Uint8Array(4),Yt=n.createTexture();n.bindTexture(J,Yt),n.texParameteri(J,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(J,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Xt=0;Xt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new WeakMap;let f;const d=new WeakMap;let m=!1;try{m=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function E(S,D){return m?new OffscreenCanvas(S,D):Ih("canvas")}function x(S,D,ie,be){let De=1;if((S.width>be||S.height>be)&&(De=be/Math.max(S.width,S.height)),De<1||D===!0)if(typeof HTMLImageElement<"u"&&S instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&S instanceof ImageBitmap){const Qe=D?pg:Math.floor,Xe=Qe(De*S.width),ze=Qe(De*S.height);f===void 0&&(f=E(Xe,ze));const je=ie?E(Xe,ze):f;return je.width=Xe,je.height=ze,je.getContext("2d").drawImage(S,0,0,Xe,ze),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+S.width+"x"+S.height+") to ("+Xe+"x"+ze+")."),je}else return"data"in S&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+S.width+"x"+S.height+")."),S;return S}function y(S){return yC(S.width)&&yC(S.height)}function g(S){return a?!1:S.wrapS!==Qi||S.wrapT!==Qi||S.minFilter!==Gn&&S.minFilter!==In}function v(S,D){return S.generateMipmaps&&D&&S.minFilter!==Gn&&S.minFilter!==In}function C(S){n.generateMipmap(S)}function B(S,D,ie,be,De=!1){if(a===!1)return D;if(S!==null){if(n[S]!==void 0)return n[S];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+S+"'")}let Qe=D;if(D===n.RED&&(ie===n.FLOAT&&(Qe=n.R32F),ie===n.HALF_FLOAT&&(Qe=n.R16F),ie===n.UNSIGNED_BYTE&&(Qe=n.R8)),D===n.RED_INTEGER&&(ie===n.UNSIGNED_BYTE&&(Qe=n.R8UI),ie===n.UNSIGNED_SHORT&&(Qe=n.R16UI),ie===n.UNSIGNED_INT&&(Qe=n.R32UI),ie===n.BYTE&&(Qe=n.R8I),ie===n.SHORT&&(Qe=n.R16I),ie===n.INT&&(Qe=n.R32I)),D===n.RG&&(ie===n.FLOAT&&(Qe=n.RG32F),ie===n.HALF_FLOAT&&(Qe=n.RG16F),ie===n.UNSIGNED_BYTE&&(Qe=n.RG8)),D===n.RGBA){const Xe=De?gh:on.getTransfer(be);ie===n.FLOAT&&(Qe=n.RGBA32F),ie===n.HALF_FLOAT&&(Qe=n.RGBA16F),ie===n.UNSIGNED_BYTE&&(Qe=Xe===gn?n.SRGB8_ALPHA8:n.RGBA8),ie===n.UNSIGNED_SHORT_4_4_4_4&&(Qe=n.RGBA4),ie===n.UNSIGNED_SHORT_5_5_5_1&&(Qe=n.RGB5_A1)}return(Qe===n.R16F||Qe===n.R32F||Qe===n.RG16F||Qe===n.RG32F||Qe===n.RGBA16F||Qe===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Qe}function R(S,D,ie){return v(S,ie)===!0||S.isFramebufferTexture&&S.minFilter!==Gn&&S.minFilter!==In?Math.log2(Math.max(D.width,D.height))+1:S.mipmaps!==void 0&&S.mipmaps.length>0?S.mipmaps.length:S.isCompressedTexture&&Array.isArray(S.image)?D.mipmaps.length:1}function w(S){return S===Gn||S===fg||S===ul?n.NEAREST:n.LINEAR}function T(S){const D=S.target;D.removeEventListener("dispose",T),K(D),D.isVideoTexture&&h.delete(D)}function P(S){const D=S.target;D.removeEventListener("dispose",P),b(D)}function K(S){const D=i.get(S);if(D.__webglInit===void 0)return;const ie=S.source,be=d.get(ie);if(be){const De=be[D.__cacheKey];De.usedTimes--,De.usedTimes===0&&M(S),Object.keys(be).length===0&&d.delete(ie)}i.remove(S)}function M(S){const D=i.get(S);n.deleteTexture(D.__webglTexture);const ie=S.source,be=d.get(ie);delete be[D.__cacheKey],o.memory.textures--}function b(S){const D=S.texture,ie=i.get(S),be=i.get(D);if(be.__webglTexture!==void 0&&(n.deleteTexture(be.__webglTexture),o.memory.textures--),S.depthTexture&&S.depthTexture.dispose(),S.isWebGLCubeRenderTarget)for(let De=0;De<6;De++){if(Array.isArray(ie.__webglFramebuffer[De]))for(let Qe=0;Qe=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+S+" texture units while this GPU supports only "+r.maxTextures),q+=1,S}function ce(S){const D=[];return D.push(S.wrapS),D.push(S.wrapT),D.push(S.wrapR||0),D.push(S.magFilter),D.push(S.minFilter),D.push(S.anisotropy),D.push(S.internalFormat),D.push(S.format),D.push(S.type),D.push(S.generateMipmaps),D.push(S.premultiplyAlpha),D.push(S.flipY),D.push(S.unpackAlignment),D.push(S.colorSpace),D.join()}function se(S,D){const ie=i.get(S);if(S.isVideoTexture&&Te(S),S.isRenderTargetTexture===!1&&S.version>0&&ie.__version!==S.version){const be=S.image;if(be===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(be.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{O(ie,S,D);return}}t.bindTexture(n.TEXTURE_2D,ie.__webglTexture,n.TEXTURE0+D)}function fe(S,D){const ie=i.get(S);if(S.version>0&&ie.__version!==S.version){O(ie,S,D);return}t.bindTexture(n.TEXTURE_2D_ARRAY,ie.__webglTexture,n.TEXTURE0+D)}function U(S,D){const ie=i.get(S);if(S.version>0&&ie.__version!==S.version){O(ie,S,D);return}t.bindTexture(n.TEXTURE_3D,ie.__webglTexture,n.TEXTURE0+D)}function ee(S,D){const ie=i.get(S);if(S.version>0&&ie.__version!==S.version){k(ie,S,D);return}t.bindTexture(n.TEXTURE_CUBE_MAP,ie.__webglTexture,n.TEXTURE0+D)}const te={[Ah]:n.REPEAT,[Qi]:n.CLAMP_TO_EDGE,[hh]:n.MIRRORED_REPEAT},ue={[Gn]:n.NEAREST,[fg]:n.NEAREST_MIPMAP_NEAREST,[ul]:n.NEAREST_MIPMAP_LINEAR,[In]:n.LINEAR,[GA]:n.LINEAR_MIPMAP_NEAREST,[_s]:n.LINEAR_MIPMAP_LINEAR},Ce={[KQ]:n.NEVER,[t2]:n.ALWAYS,[jQ]:n.LESS,[ZI]:n.LEQUAL,[qQ]:n.EQUAL,[e2]:n.GEQUAL,[ZQ]:n.GREATER,[$Q]:n.NOTEQUAL};function ke(S,D,ie){if(D.type===Fr&&e.has("OES_texture_float_linear")===!1&&(D.magFilter===In||D.magFilter===GA||D.magFilter===ul||D.magFilter===_s||D.minFilter===In||D.minFilter===GA||D.minFilter===ul||D.minFilter===_s)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),ie?(n.texParameteri(S,n.TEXTURE_WRAP_S,te[D.wrapS]),n.texParameteri(S,n.TEXTURE_WRAP_T,te[D.wrapT]),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,te[D.wrapR]),n.texParameteri(S,n.TEXTURE_MAG_FILTER,ue[D.magFilter]),n.texParameteri(S,n.TEXTURE_MIN_FILTER,ue[D.minFilter])):(n.texParameteri(S,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(S,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(D.wrapS!==Qi||D.wrapT!==Qi)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(S,n.TEXTURE_MAG_FILTER,w(D.magFilter)),n.texParameteri(S,n.TEXTURE_MIN_FILTER,w(D.minFilter)),D.minFilter!==Gn&&D.minFilter!==In&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),D.compareFunction&&(n.texParameteri(S,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(S,n.TEXTURE_COMPARE_FUNC,Ce[D.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const be=e.get("EXT_texture_filter_anisotropic");if(D.magFilter===Gn||D.minFilter!==ul&&D.minFilter!==_s||D.type===Fr&&e.has("OES_texture_float_linear")===!1||a===!1&&D.type===Dl&&e.has("OES_texture_half_float_linear")===!1)return;(D.anisotropy>1||i.get(D).__currentAnisotropy)&&(n.texParameterf(S,be.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,r.getMaxAnisotropy())),i.get(D).__currentAnisotropy=D.anisotropy)}}function V(S,D){let ie=!1;S.__webglInit===void 0&&(S.__webglInit=!0,D.addEventListener("dispose",T));const be=D.source;let De=d.get(be);De===void 0&&(De={},d.set(be,De));const Qe=ce(D);if(Qe!==S.__cacheKey){De[Qe]===void 0&&(De[Qe]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,ie=!0),De[Qe].usedTimes++;const Xe=De[S.__cacheKey];Xe!==void 0&&(De[S.__cacheKey].usedTimes--,Xe.usedTimes===0&&M(D)),S.__cacheKey=Qe,S.__webglTexture=De[Qe].texture}return ie}function O(S,D,ie){let be=n.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&&(be=n.TEXTURE_2D_ARRAY),D.isData3DTexture&&(be=n.TEXTURE_3D);const De=V(S,D),Qe=D.source;t.bindTexture(be,S.__webglTexture,n.TEXTURE0+ie);const Xe=i.get(Qe);if(Qe.version!==Xe.__version||De===!0){t.activeTexture(n.TEXTURE0+ie);const ze=on.getPrimaries(on.workingColorSpace),je=D.colorSpace===mr?null:on.getPrimaries(D.colorSpace),at=D.colorSpace===mr||ze===je?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,D.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,D.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,at);const It=g(D)&&y(D.image)===!1;let Le=x(D.image,It,!1,r.maxTextureSize);Le=$(D,Le);const Lt=y(Le)||a,wt=s.convert(D.format,D.colorSpace);let dt=s.convert(D.type),ot=B(D.internalFormat,wt,dt,D.colorSpace,D.isVideoTexture);ke(be,D,Lt);let tt;const Bt=D.mipmaps,kt=a&&D.isVideoTexture!==!0&&ot!==JI,jt=Xe.__version===void 0||De===!0,Mt=Qe.dataReady,Wt=R(D,Le,Lt);if(D.isDepthTexture)ot=n.DEPTH_COMPONENT,a?D.type===Fr?ot=n.DEPTH_COMPONENT32F:D.type===ro?ot=n.DEPTH_COMPONENT24:D.type===na?ot=n.DEPTH24_STENCIL8:ot=n.DEPTH_COMPONENT16:D.type===Fr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),D.format===ia&&ot===n.DEPTH_COMPONENT&&D.type!==Gg&&D.type!==ro&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),D.type=ro,dt=s.convert(D.type)),D.format===bl&&ot===n.DEPTH_COMPONENT&&(ot=n.DEPTH_STENCIL,D.type!==na&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),D.type=na,dt=s.convert(D.type))),jt&&(kt?t.texStorage2D(n.TEXTURE_2D,1,ot,Le.width,Le.height):t.texImage2D(n.TEXTURE_2D,0,ot,Le.width,Le.height,0,wt,dt,null));else if(D.isDataTexture)if(Bt.length>0&&Lt){kt&&jt&&t.texStorage2D(n.TEXTURE_2D,Wt,ot,Bt[0].width,Bt[0].height);for(let J=0,Ge=Bt.length;J>=1,Ge>>=1}}else if(Bt.length>0&&Lt){kt&&jt&&t.texStorage2D(n.TEXTURE_2D,Wt,ot,Bt[0].width,Bt[0].height);for(let J=0,Ge=Bt.length;J0&&Mt++,t.texStorage2D(n.TEXTURE_CUBE_MAP,Mt,tt,Le[0].width,Le[0].height));for(let J=0;J<6;J++)if(It){Bt?jt&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,0,0,Le[J].width,Le[J].height,dt,ot,Le[J].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,tt,Le[J].width,Le[J].height,0,dt,ot,Le[J].data);for(let Ge=0;Ge>Qe),Le=Math.max(1,D.height>>Qe);De===n.TEXTURE_3D||De===n.TEXTURE_2D_ARRAY?t.texImage3D(De,Qe,je,It,Le,D.depth,0,Xe,ze,null):t.texImage2D(De,Qe,je,It,Le,0,Xe,ze,null)}t.bindFramebuffer(n.FRAMEBUFFER,S),he(D)?c.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,be,De,i.get(ie).__webglTexture,0,ae(D)):(De===n.TEXTURE_2D||De>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&De<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,be,De,i.get(ie).__webglTexture,Qe),t.bindFramebuffer(n.FRAMEBUFFER,null)}function me(S,D,ie){if(n.bindRenderbuffer(n.RENDERBUFFER,S),D.depthBuffer&&!D.stencilBuffer){let be=a===!0?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(ie||he(D)){const De=D.depthTexture;De&&De.isDepthTexture&&(De.type===Fr?be=n.DEPTH_COMPONENT32F:De.type===ro&&(be=n.DEPTH_COMPONENT24));const Qe=ae(D);he(D)?c.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Qe,be,D.width,D.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Qe,be,D.width,D.height)}else n.renderbufferStorage(n.RENDERBUFFER,be,D.width,D.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,S)}else if(D.depthBuffer&&D.stencilBuffer){const be=ae(D);ie&&he(D)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):he(D)?c.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,D.width,D.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,S)}else{const be=D.isWebGLMultipleRenderTargets===!0?D.texture:[D.texture];for(let De=0;De0){ie.__webglFramebuffer[ze]=[];for(let je=0;je0){ie.__webglFramebuffer=[];for(let ze=0;ze0&&he(S)===!1){const ze=Qe?D:[D];ie.__webglMultisampledFramebuffer=n.createFramebuffer(),ie.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,ie.__webglMultisampledFramebuffer);for(let je=0;je0)for(let je=0;je0)for(let je=0;je0&&he(S)===!1){const D=S.isWebGLMultipleRenderTargets?S.texture:[S.texture],ie=S.width,be=S.height;let De=n.COLOR_BUFFER_BIT;const Qe=[],Xe=S.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ze=i.get(S),je=S.isWebGLMultipleRenderTargets===!0;if(je)for(let at=0;at0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&D.__useRenderToTexture!==!1}function Te(S){const D=o.render.frame;h.get(S)!==D&&(h.set(S,D),S.update())}function $(S,D){const ie=S.colorSpace,be=S.format,De=S.type;return S.isCompressedTexture===!0||S.isVideoTexture===!0||S.format===dg||ie!==Ds&&ie!==mr&&(on.getTransfer(ie)===gn?a===!1?e.has("EXT_sRGB")===!0&&be===ki?(S.format=dg,S.minFilter=In,S.generateMipmaps=!1):D=ev.sRGBToLinear(D):(be!==ki||De!==Rs)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ie)),D}this.allocateTextureUnit=X,this.resetTextureUnits=ge,this.setTexture2D=se,this.setTexture2DArray=fe,this.setTexture3D=U,this.setTextureCube=ee,this.rebindTextures=Be,this.setupRenderTarget=H,this.updateRenderTargetMipmap=Ee,this.updateMultisampleRenderTarget=ne,this.setupDepthRenderbuffer=re,this.setupFrameBufferTexture=F,this.useMultisampledRTT=he}function g2(n,e,t){const i=t.isWebGL2;function r(s,o=mr){let a;const c=on.getTransfer(o);if(s===Rs)return n.UNSIGNED_BYTE;if(s===zI)return n.UNSIGNED_SHORT_4_4_4_4;if(s===VI)return n.UNSIGNED_SHORT_5_5_5_1;if(s===PQ)return n.BYTE;if(s===UQ)return n.SHORT;if(s===Gg)return n.UNSIGNED_SHORT;if(s===HI)return n.INT;if(s===ro)return n.UNSIGNED_INT;if(s===Fr)return n.FLOAT;if(s===Dl)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===FQ)return n.ALPHA;if(s===ki)return n.RGBA;if(s===kQ)return n.LUMINANCE;if(s===GQ)return n.LUMINANCE_ALPHA;if(s===ia)return n.DEPTH_COMPONENT;if(s===bl)return n.DEPTH_STENCIL;if(s===dg)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===OQ)return n.RED;if(s===WI)return n.RED_INTEGER;if(s===HQ)return n.RG;if(s===YI)return n.RG_INTEGER;if(s===XI)return n.RGBA_INTEGER;if(s===_p||s===Sp||s===wp||s===Mp)if(c===gn)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===_p)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===Sp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===wp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===Mp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===_p)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===Sp)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===wp)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===Mp)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===Yy||s===Xy||s===Jy||s===Ky)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===Yy)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Xy)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Jy)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===Ky)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===JI)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===jy||s===qy)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(s===jy)return c===gn?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===qy)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===Zy||s===$y||s===eC||s===tC||s===nC||s===iC||s===rC||s===sC||s===oC||s===aC||s===lC||s===cC||s===uC||s===AC)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(s===Zy)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===$y)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===eC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===tC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===nC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===iC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===rC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===sC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===oC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===aC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===lC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===cC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===uC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===AC)return c===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===Qp||s===hC||s===fC)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(s===Qp)return c===gn?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===hC)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===fC)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===zQ||s===dC||s===pC||s===gC)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(s===Qp)return a.COMPRESSED_RED_RGTC1_EXT;if(s===dC)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===pC)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===gC)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===na?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[s]!==void 0?n[s]:null}return{convert:r}}class m2 extends Zn{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class Gr extends en{constructor(){super(),this.isGroup=!0,this.type="Group"}}const zk={type:"move"};class hE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Gr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Gr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new G,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new G),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Gr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new G,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new G),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,s=null,o=null;const a=this._targetRay,c=this._grip,A=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(A&&e.hand){o=!0;for(const x of e.hand.values()){const y=t.getJointPose(x,i),g=this._getHandJoint(A,x);y!==null&&(g.matrix.fromArray(y.transform.matrix),g.matrix.decompose(g.position,g.rotation,g.scale),g.matrixWorldNeedsUpdate=!0,g.jointRadius=y.radius),g.visible=y!==null}const h=A.joints["index-finger-tip"],f=A.joints["thumb-tip"],d=h.position.distanceTo(f.position),m=.02,E=.005;A.inputState.pinching&&d>m+E?(A.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!A.inputState.pinching&&d<=m-E&&(A.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));a!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(zk)))}return a!==null&&(a.visible=r!==null),c!==null&&(c.visible=s!==null),A!==null&&(A.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new Gr;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}const Vk=` -void main() { - - gl_Position = vec4( position, 1.0 ); - -}`,Wk=` -uniform sampler2DArray depthColor; -uniform float depthWidth; -uniform float depthHeight; - -void main() { - - vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); - - if ( coord.x >= 1.0 ) { - - gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; - - } else { - - gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; - - } - -}`;class Yk{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,i){if(this.texture===null){const r=new Sn,s=e.properties.get(r);s.__webglTexture=t.texture,(t.depthNear!=i.depthNear||t.depthFar!=i.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}render(e,t){if(this.texture!==null){if(this.mesh===null){const i=t.cameras[0].viewport,r=new as({extensions:{fragDepth:!0},vertexShader:Vk,fragmentShader:Wk,uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new rn(new ga(20,20),r)}e.render(this.mesh,t)}}reset(){this.texture=null,this.mesh=null}}class Xk extends po{constructor(e,t){super();const i=this;let r=null,s=1,o=null,a="local-floor",c=1,A=null,h=null,f=null,d=null,m=null,E=null;const x=new Yk,y=t.getContextAttributes();let g=null,v=null;const C=[],B=[],R=new _e;let w=null;const T=new Zn;T.layers.enable(1),T.viewport=new an;const P=new Zn;P.layers.enable(2),P.viewport=new an;const K=[T,P],M=new m2;M.layers.enable(1),M.layers.enable(2);let b=null,q=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(V){let O=C[V];return O===void 0&&(O=new hE,C[V]=O),O.getTargetRaySpace()},this.getControllerGrip=function(V){let O=C[V];return O===void 0&&(O=new hE,C[V]=O),O.getGripSpace()},this.getHand=function(V){let O=C[V];return O===void 0&&(O=new hE,C[V]=O),O.getHandSpace()};function ge(V){const O=B.indexOf(V.inputSource);if(O===-1)return;const k=C[O];k!==void 0&&(k.update(V.inputSource,V.frame,A||o),k.dispatchEvent({type:V.type,data:V.inputSource}))}function X(){r.removeEventListener("select",ge),r.removeEventListener("selectstart",ge),r.removeEventListener("selectend",ge),r.removeEventListener("squeeze",ge),r.removeEventListener("squeezestart",ge),r.removeEventListener("squeezeend",ge),r.removeEventListener("end",X),r.removeEventListener("inputsourceschange",ce);for(let V=0;V=0&&(B[F]=null,C[F].disconnect(k))}for(let O=0;O=B.length){B.push(k),F=ve;break}else if(B[ve]===null){B[ve]=k,F=ve;break}if(F===-1)break}const me=C[F];me&&me.connect(k)}}const se=new G,fe=new G;function U(V,O,k){se.setFromMatrixPosition(O.matrixWorld),fe.setFromMatrixPosition(k.matrixWorld);const F=se.distanceTo(fe),me=O.projectionMatrix.elements,ve=k.projectionMatrix.elements,re=me[14]/(me[10]-1),Be=me[14]/(me[10]+1),H=(me[9]+1)/me[5],Ee=(me[9]-1)/me[5],ne=(me[8]-1)/me[0],ae=(ve[8]+1)/ve[0],he=re*ne,Te=re*ae,$=F/(-ne+ae),S=$*-ne;O.matrixWorld.decompose(V.position,V.quaternion,V.scale),V.translateX(S),V.translateZ($),V.matrixWorld.compose(V.position,V.quaternion,V.scale),V.matrixWorldInverse.copy(V.matrixWorld).invert();const D=re+$,ie=Be+$,be=he-S,De=Te+(F-S),Qe=H*Be/ie*D,Xe=Ee*Be/ie*D;V.projectionMatrix.makePerspective(be,De,Qe,Xe,D,ie),V.projectionMatrixInverse.copy(V.projectionMatrix).invert()}function ee(V,O){O===null?V.matrixWorld.copy(V.matrix):V.matrixWorld.multiplyMatrices(O.matrixWorld,V.matrix),V.matrixWorldInverse.copy(V.matrixWorld).invert()}this.updateCamera=function(V){if(r===null)return;x.texture!==null&&(V.near=x.depthNear,V.far=x.depthFar),M.near=P.near=T.near=V.near,M.far=P.far=T.far=V.far,(b!==M.near||q!==M.far)&&(r.updateRenderState({depthNear:M.near,depthFar:M.far}),b=M.near,q=M.far,T.near=b,T.far=q,P.near=b,P.far=q,T.updateProjectionMatrix(),P.updateProjectionMatrix(),V.updateProjectionMatrix());const O=V.parent,k=M.cameras;ee(M,O);for(let F=0;F0&&(y.alphaTest.value=g.alphaTest);const v=e.get(g).envMap;if(v&&(y.envMap.value=v,y.flipEnvMap.value=v.isCubeTexture&&v.isRenderTargetTexture===!1?-1:1,y.reflectivity.value=g.reflectivity,y.ior.value=g.ior,y.refractionRatio.value=g.refractionRatio),g.lightMap){y.lightMap.value=g.lightMap;const C=n._useLegacyLights===!0?Math.PI:1;y.lightMapIntensity.value=g.lightMapIntensity*C,t(g.lightMap,y.lightMapTransform)}g.aoMap&&(y.aoMap.value=g.aoMap,y.aoMapIntensity.value=g.aoMapIntensity,t(g.aoMap,y.aoMapTransform))}function o(y,g){y.diffuse.value.copy(g.color),y.opacity.value=g.opacity,g.map&&(y.map.value=g.map,t(g.map,y.mapTransform))}function a(y,g){y.dashSize.value=g.dashSize,y.totalSize.value=g.dashSize+g.gapSize,y.scale.value=g.scale}function c(y,g,v,C){y.diffuse.value.copy(g.color),y.opacity.value=g.opacity,y.size.value=g.size*v,y.scale.value=C*.5,g.map&&(y.map.value=g.map,t(g.map,y.uvTransform)),g.alphaMap&&(y.alphaMap.value=g.alphaMap,t(g.alphaMap,y.alphaMapTransform)),g.alphaTest>0&&(y.alphaTest.value=g.alphaTest)}function A(y,g){y.diffuse.value.copy(g.color),y.opacity.value=g.opacity,y.rotation.value=g.rotation,g.map&&(y.map.value=g.map,t(g.map,y.mapTransform)),g.alphaMap&&(y.alphaMap.value=g.alphaMap,t(g.alphaMap,y.alphaMapTransform)),g.alphaTest>0&&(y.alphaTest.value=g.alphaTest)}function h(y,g){y.specular.value.copy(g.specular),y.shininess.value=Math.max(g.shininess,1e-4)}function f(y,g){g.gradientMap&&(y.gradientMap.value=g.gradientMap)}function d(y,g){y.metalness.value=g.metalness,g.metalnessMap&&(y.metalnessMap.value=g.metalnessMap,t(g.metalnessMap,y.metalnessMapTransform)),y.roughness.value=g.roughness,g.roughnessMap&&(y.roughnessMap.value=g.roughnessMap,t(g.roughnessMap,y.roughnessMapTransform)),e.get(g).envMap&&(y.envMapIntensity.value=g.envMapIntensity)}function m(y,g,v){y.ior.value=g.ior,g.sheen>0&&(y.sheenColor.value.copy(g.sheenColor).multiplyScalar(g.sheen),y.sheenRoughness.value=g.sheenRoughness,g.sheenColorMap&&(y.sheenColorMap.value=g.sheenColorMap,t(g.sheenColorMap,y.sheenColorMapTransform)),g.sheenRoughnessMap&&(y.sheenRoughnessMap.value=g.sheenRoughnessMap,t(g.sheenRoughnessMap,y.sheenRoughnessMapTransform))),g.clearcoat>0&&(y.clearcoat.value=g.clearcoat,y.clearcoatRoughness.value=g.clearcoatRoughness,g.clearcoatMap&&(y.clearcoatMap.value=g.clearcoatMap,t(g.clearcoatMap,y.clearcoatMapTransform)),g.clearcoatRoughnessMap&&(y.clearcoatRoughnessMap.value=g.clearcoatRoughnessMap,t(g.clearcoatRoughnessMap,y.clearcoatRoughnessMapTransform)),g.clearcoatNormalMap&&(y.clearcoatNormalMap.value=g.clearcoatNormalMap,t(g.clearcoatNormalMap,y.clearcoatNormalMapTransform),y.clearcoatNormalScale.value.copy(g.clearcoatNormalScale),g.side===Hi&&y.clearcoatNormalScale.value.negate())),g.iridescence>0&&(y.iridescence.value=g.iridescence,y.iridescenceIOR.value=g.iridescenceIOR,y.iridescenceThicknessMinimum.value=g.iridescenceThicknessRange[0],y.iridescenceThicknessMaximum.value=g.iridescenceThicknessRange[1],g.iridescenceMap&&(y.iridescenceMap.value=g.iridescenceMap,t(g.iridescenceMap,y.iridescenceMapTransform)),g.iridescenceThicknessMap&&(y.iridescenceThicknessMap.value=g.iridescenceThicknessMap,t(g.iridescenceThicknessMap,y.iridescenceThicknessMapTransform))),g.transmission>0&&(y.transmission.value=g.transmission,y.transmissionSamplerMap.value=v.texture,y.transmissionSamplerSize.value.set(v.width,v.height),g.transmissionMap&&(y.transmissionMap.value=g.transmissionMap,t(g.transmissionMap,y.transmissionMapTransform)),y.thickness.value=g.thickness,g.thicknessMap&&(y.thicknessMap.value=g.thicknessMap,t(g.thicknessMap,y.thicknessMapTransform)),y.attenuationDistance.value=g.attenuationDistance,y.attenuationColor.value.copy(g.attenuationColor)),g.anisotropy>0&&(y.anisotropyVector.value.set(g.anisotropy*Math.cos(g.anisotropyRotation),g.anisotropy*Math.sin(g.anisotropyRotation)),g.anisotropyMap&&(y.anisotropyMap.value=g.anisotropyMap,t(g.anisotropyMap,y.anisotropyMapTransform))),y.specularIntensity.value=g.specularIntensity,y.specularColor.value.copy(g.specularColor),g.specularColorMap&&(y.specularColorMap.value=g.specularColorMap,t(g.specularColorMap,y.specularColorMapTransform)),g.specularIntensityMap&&(y.specularIntensityMap.value=g.specularIntensityMap,t(g.specularIntensityMap,y.specularIntensityMapTransform))}function E(y,g){g.matcap&&(y.matcap.value=g.matcap)}function x(y,g){const v=e.get(g).light;y.referencePosition.value.setFromMatrixPosition(v.matrixWorld),y.nearDistance.value=v.shadow.camera.near,y.farDistance.value=v.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function Kk(n,e,t,i){let r={},s={},o=[];const a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function c(v,C){const B=C.program;i.uniformBlockBinding(v,B)}function A(v,C){let B=r[v.id];B===void 0&&(E(v),B=h(v),r[v.id]=B,v.addEventListener("dispose",y));const R=C.program;i.updateUBOMapping(v,R);const w=e.render.frame;s[v.id]!==w&&(d(v),s[v.id]=w)}function h(v){const C=f();v.__bindingPointIndex=C;const B=n.createBuffer(),R=v.__size,w=v.usage;return n.bindBuffer(n.UNIFORM_BUFFER,B),n.bufferData(n.UNIFORM_BUFFER,R,w),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,C,B),B}function f(){for(let v=0;v0&&(B+=R-w),v.__size=B,v.__cache={},this}function x(v){const C={boundary:0,storage:0};return typeof v=="number"||typeof v=="boolean"?(C.boundary=4,C.storage=4):v.isVector2?(C.boundary=8,C.storage=8):v.isVector3||v.isColor?(C.boundary=16,C.storage=12):v.isVector4?(C.boundary=16,C.storage=16):v.isMatrix3?(C.boundary=48,C.storage=48):v.isMatrix4?(C.boundary=64,C.storage=64):v.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",v),C}function y(v){const C=v.target;C.removeEventListener("dispose",y);const B=o.indexOf(C.__bindingPointIndex);o.splice(B,1),n.deleteBuffer(r[C.id]),delete r[C.id],delete s[C.id]}function g(){for(const v in r)n.deleteBuffer(r[v]);o=[],r={},s={}}return{bind:c,update:A,dispose:g}}class ov{constructor(e={}){const{canvas:t=i2(),context:i=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:A=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:f=!1}=e;this.isWebGLRenderer=!0;let d;i!==null?d=i.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),E=new Int32Array(4);let x=null,y=null;const g=[],v=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=On,this._useLegacyLights=!1,this.toneMapping=Qs,this.toneMappingExposure=1;const C=this;let B=!1,R=0,w=0,T=null,P=-1,K=null;const M=new an,b=new an;let q=null;const ge=new Je(0);let X=0,ce=t.width,se=t.height,fe=1,U=null,ee=null;const te=new an(0,0,ce,se),ue=new an(0,0,ce,se);let Ce=!1;const ke=new Hh;let V=!1,O=!1,k=null;const F=new ft,me=new _e,ve=new G,re={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Be(){return T===null?fe:1}let H=i;function Ee(z,de){for(let xe=0;xe{function Ze(){if(Se.forEach(function(lt){$.get(lt).currentProgram.isReady()&&Se.delete(lt)}),Se.size===0){Ie(z);return}setTimeout(Ze,10)}ne.get("KHR_parallel_shader_compile")!==null?Ze():setTimeout(Ze,10)})};let Xt=null;function Dn(z){Xt&&Xt(z)}function hi(){An.stop()}function tn(){An.start()}const An=new u2;An.setAnimationLoop(Dn),typeof self<"u"&&An.setContext(self),this.setAnimationLoop=function(z){Xt=z,Mt.setAnimationLoop(z),z===null?An.stop():An.start()},Mt.addEventListener("sessionstart",hi),Mt.addEventListener("sessionend",tn),this.render=function(z,de){if(de!==void 0&&de.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(B===!0)return;z.matrixWorldAutoUpdate===!0&&z.updateMatrixWorld(),de.parent===null&&de.matrixWorldAutoUpdate===!0&&de.updateMatrixWorld(),Mt.enabled===!0&&Mt.isPresenting===!0&&(Mt.cameraAutoUpdate===!0&&Mt.updateCamera(de),de=Mt.getCamera()),z.isScene===!0&&z.onBeforeRender(C,z,de,T),y=at.get(z,v.length),y.init(),v.push(y),F.multiplyMatrices(de.projectionMatrix,de.matrixWorldInverse),ke.setFromProjectionMatrix(F),O=this.localClippingEnabled,V=It.init(this.clippingPlanes,O),x=je.get(z,g.length),x.init(),g.push(x),Ki(z,de,0,C.sortObjects),x.finish(),C.sortObjects===!0&&x.sort(U,ee),this.info.render.frame++,V===!0&&It.beginShadows();const xe=y.state.shadowsArray;if(Le.render(xe,z,de),V===!0&&It.endShadows(),this.info.autoReset===!0&&this.info.reset(),(Mt.enabled===!1||Mt.isPresenting===!1||Mt.hasDepthSensing()===!1)&&Lt.render(x,z),y.setupLights(C._useLegacyLights),de.isArrayCamera){const Se=de.cameras;for(let Ie=0,Ze=Se.length;Ie0?y=v[v.length-1]:y=null,g.pop(),g.length>0?x=g[g.length-1]:x=null};function Ki(z,de,xe,Se){if(z.visible===!1)return;if(z.layers.test(de.layers)){if(z.isGroup)xe=z.renderOrder;else if(z.isLOD)z.autoUpdate===!0&&z.update(de);else if(z.isLight)y.pushLight(z),z.castShadow&&y.pushShadow(z);else if(z.isSprite){if(!z.frustumCulled||ke.intersectsSprite(z)){Se&&ve.setFromMatrixPosition(z.matrixWorld).applyMatrix4(F);const lt=Qe.update(z),gt=z.material;gt.visible&&x.push(z,lt,gt,xe,ve.z,null)}}else if((z.isMesh||z.isLine||z.isPoints)&&(!z.frustumCulled||ke.intersectsObject(z))){const lt=Qe.update(z),gt=z.material;if(Se&&(z.boundingSphere!==void 0?(z.boundingSphere===null&&z.computeBoundingSphere(),ve.copy(z.boundingSphere.center)):(lt.boundingSphere===null&<.computeBoundingSphere(),ve.copy(lt.boundingSphere.center)),ve.applyMatrix4(z.matrixWorld).applyMatrix4(F)),Array.isArray(gt)){const pt=lt.groups;for(let Qt=0,_t=pt.length;Qt<_t;Qt++){const St=pt[Qt],En=gt[St.materialIndex];En&&En.visible&&x.push(z,lt,En,xe,ve.z,St)}}else gt.visible&&x.push(z,lt,gt,xe,ve.z,null)}}const Ze=z.children;for(let lt=0,gt=Ze.length;lt0&&fi(Ie,Ze,de,xe),Se&&he.viewport(M.copy(Se)),Ie.length>0&&Us(Ie,de,xe),Ze.length>0&&Us(Ze,de,xe),lt.length>0&&Us(lt,de,xe),he.buffers.depth.setTest(!0),he.buffers.depth.setMask(!0),he.buffers.color.setMask(!0),he.setPolygonOffset(!1)}function fi(z,de,xe,Se){if((xe.isScene===!0?xe.overrideMaterial:null)!==null)return;const Ze=ae.isWebGL2;k===null&&(k=new Wr(1,1,{generateMipmaps:!0,type:ne.has("EXT_color_buffer_half_float")?Dl:Rs,minFilter:_s,samples:Ze?4:0})),C.getDrawingBufferSize(me),Ze?k.setSize(me.x,me.y):k.setSize(pg(me.x),pg(me.y));const lt=C.getRenderTarget();C.setRenderTarget(k),C.getClearColor(ge),X=C.getClearAlpha(),X<1&&C.setClearColor(16777215,.5),C.clear();const gt=C.toneMapping;C.toneMapping=Qs,Us(z,xe,Se),S.updateMultisampleRenderTarget(k),S.updateRenderTargetMipmap(k);let pt=!1;for(let Qt=0,_t=de.length;Qt<_t;Qt++){const St=de[Qt],En=St.object,Vn=St.geometry,nn=St.material,Wn=St.group;if(nn.side===Bs&&En.layers.test(Se.layers)){const yt=nn.side;nn.side=Hi,nn.needsUpdate=!0,or(En,xe,Se,Vn,nn,Wn),nn.side=yt,nn.needsUpdate=!0,pt=!0}}pt===!0&&(S.updateMultisampleRenderTarget(k),S.updateRenderTargetMipmap(k)),C.setRenderTarget(lt),C.setClearColor(ge,X),C.toneMapping=gt}function Us(z,de,xe){const Se=de.isScene===!0?de.overrideMaterial:null;for(let Ie=0,Ze=z.length;Ie0),St=!!xe.morphAttributes.position,En=!!xe.morphAttributes.normal,Vn=!!xe.morphAttributes.color;let nn=Qs;Se.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&(nn=C.toneMapping);const Wn=xe.morphAttributes.position||xe.morphAttributes.normal||xe.morphAttributes.color,yt=Wn!==void 0?Wn.length:0,et=$.get(Se),Ei=y.state.lights;if(V===!0&&(O===!0||z!==K)){const we=z===K&&Se.id===P;It.setState(Se,z,we)}let vt=!1;Se.version===et.__version?(et.needsLights&&et.lightsStateVersion!==Ei.state.version||et.outputColorSpace!==gt||Ie.isBatchedMesh&&et.batching===!1||!Ie.isBatchedMesh&&et.batching===!0||Ie.isInstancedMesh&&et.instancing===!1||!Ie.isInstancedMesh&&et.instancing===!0||Ie.isSkinnedMesh&&et.skinning===!1||!Ie.isSkinnedMesh&&et.skinning===!0||Ie.isInstancedMesh&&et.instancingColor===!0&&Ie.instanceColor===null||Ie.isInstancedMesh&&et.instancingColor===!1&&Ie.instanceColor!==null||et.envMap!==pt||Se.fog===!0&&et.fog!==Ze||et.numClippingPlanes!==void 0&&(et.numClippingPlanes!==It.numPlanes||et.numIntersection!==It.numIntersection)||et.vertexAlphas!==Qt||et.vertexTangents!==_t||et.morphTargets!==St||et.morphNormals!==En||et.morphColors!==Vn||et.toneMapping!==nn||ae.isWebGL2===!0&&et.morphTargetsCount!==yt)&&(vt=!0):(vt=!0,et.__version=Se.version);let hn=et.currentProgram;vt===!0&&(hn=As(Se,de,Ie));let ar=!1,N=!1,L=!1;const Z=hn.getUniforms(),oe=et.uniforms;if(he.useProgram(hn.program)&&(ar=!0,N=!0,L=!0),Se.id!==P&&(P=Se.id,N=!0),ar||K!==z){Z.setValue(H,"projectionMatrix",z.projectionMatrix),Z.setValue(H,"viewMatrix",z.matrixWorldInverse);const we=Z.map.cameraPosition;we!==void 0&&we.setValue(H,ve.setFromMatrixPosition(z.matrixWorld)),ae.logarithmicDepthBuffer&&Z.setValue(H,"logDepthBufFC",2/(Math.log(z.far+1)/Math.LN2)),(Se.isMeshPhongMaterial||Se.isMeshToonMaterial||Se.isMeshLambertMaterial||Se.isMeshBasicMaterial||Se.isMeshStandardMaterial||Se.isShaderMaterial)&&Z.setValue(H,"isOrthographic",z.isOrthographicCamera===!0),K!==z&&(K=z,N=!0,L=!0)}if(Ie.isSkinnedMesh){Z.setOptional(H,Ie,"bindMatrix"),Z.setOptional(H,Ie,"bindMatrixInverse");const we=Ie.skeleton;we&&(ae.floatVertexTextures?(we.boneTexture===null&&we.computeBoneTexture(),Z.setValue(H,"boneTexture",we.boneTexture,S)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}Ie.isBatchedMesh&&(Z.setOptional(H,Ie,"batchingTexture"),Z.setValue(H,"batchingTexture",Ie._matricesTexture,S));const pe=xe.morphAttributes;if((pe.position!==void 0||pe.normal!==void 0||pe.color!==void 0&&ae.isWebGL2===!0)&&wt.update(Ie,xe,hn),(N||et.receiveShadow!==Ie.receiveShadow)&&(et.receiveShadow=Ie.receiveShadow,Z.setValue(H,"receiveShadow",Ie.receiveShadow)),Se.isMeshGouraudMaterial&&Se.envMap!==null&&(oe.envMap.value=pt,oe.flipEnvMap.value=pt.isCubeTexture&&pt.isRenderTargetTexture===!1?-1:1),N&&(Z.setValue(H,"toneMappingExposure",C.toneMappingExposure),et.needsLights&&Nu(oe,L),Ze&&Se.fog===!0&&ze.refreshFogUniforms(oe,Ze),ze.refreshMaterialUniforms(oe,Se,fe,se,k),Tp.upload(H,mo(et),oe,S)),Se.isShaderMaterial&&Se.uniformsNeedUpdate===!0&&(Tp.upload(H,mo(et),oe,S),Se.uniformsNeedUpdate=!1),Se.isSpriteMaterial&&Z.setValue(H,"center",Ie.center),Z.setValue(H,"modelViewMatrix",Ie.modelViewMatrix),Z.setValue(H,"normalMatrix",Ie.normalMatrix),Z.setValue(H,"modelMatrix",Ie.matrixWorld),Se.isShaderMaterial||Se.isRawShaderMaterial){const we=Se.uniformsGroups;for(let Pe=0,Ne=we.length;Pe0&&S.useMultisampledRTT(z)===!1?Ie=$.get(z).__webglMultisampledFramebuffer:Array.isArray(_t)?Ie=_t[xe]:Ie=_t,M.copy(z.viewport),b.copy(z.scissor),q=z.scissorTest}else M.copy(te).multiplyScalar(fe).floor(),b.copy(ue).multiplyScalar(fe).floor(),q=Ce;if(he.bindFramebuffer(H.FRAMEBUFFER,Ie)&&ae.drawBuffers&&Se&&he.drawBuffers(z,Ie),he.viewport(M),he.scissor(b),he.setScissorTest(q),Ze){const pt=$.get(z.texture);H.framebufferTexture2D(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_CUBE_MAP_POSITIVE_X+de,pt.__webglTexture,xe)}else if(lt){const pt=$.get(z.texture),Qt=de||0;H.framebufferTextureLayer(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,pt.__webglTexture,xe||0,Qt)}P=-1},this.readRenderTargetPixels=function(z,de,xe,Se,Ie,Ze,lt){if(!(z&&z.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let gt=$.get(z).__webglFramebuffer;if(z.isWebGLCubeRenderTarget&<!==void 0&&(gt=gt[lt]),gt){he.bindFramebuffer(H.FRAMEBUFFER,gt);try{const pt=z.texture,Qt=pt.format,_t=pt.type;if(Qt!==ki&&tt.convert(Qt)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const St=_t===Dl&&(ne.has("EXT_color_buffer_half_float")||ae.isWebGL2&&ne.has("EXT_color_buffer_float"));if(_t!==Rs&&tt.convert(_t)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_TYPE)&&!(_t===Fr&&(ae.isWebGL2||ne.has("OES_texture_float")||ne.has("WEBGL_color_buffer_float")))&&!St){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}de>=0&&de<=z.width-Se&&xe>=0&&xe<=z.height-Ie&&H.readPixels(de,xe,Se,Ie,tt.convert(Qt),tt.convert(_t),Ze)}finally{const pt=T!==null?$.get(T).__webglFramebuffer:null;he.bindFramebuffer(H.FRAMEBUFFER,pt)}}},this.copyFramebufferToTexture=function(z,de,xe=0){const Se=Math.pow(2,-xe),Ie=Math.floor(de.image.width*Se),Ze=Math.floor(de.image.height*Se);S.setTexture2D(de,0),H.copyTexSubImage2D(H.TEXTURE_2D,xe,0,0,z.x,z.y,Ie,Ze),he.unbindTexture()},this.copyTextureToTexture=function(z,de,xe,Se=0){const Ie=de.image.width,Ze=de.image.height,lt=tt.convert(xe.format),gt=tt.convert(xe.type);S.setTexture2D(xe,0),H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,xe.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,xe.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,xe.unpackAlignment),de.isDataTexture?H.texSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,Ie,Ze,lt,gt,de.image.data):de.isCompressedTexture?H.compressedTexSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,de.mipmaps[0].width,de.mipmaps[0].height,lt,de.mipmaps[0].data):H.texSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,lt,gt,de.image),Se===0&&xe.generateMipmaps&&H.generateMipmap(H.TEXTURE_2D),he.unbindTexture()},this.copyTextureToTexture3D=function(z,de,xe,Se,Ie=0){if(C.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Ze=z.max.x-z.min.x+1,lt=z.max.y-z.min.y+1,gt=z.max.z-z.min.z+1,pt=tt.convert(Se.format),Qt=tt.convert(Se.type);let _t;if(Se.isData3DTexture)S.setTexture3D(Se,0),_t=H.TEXTURE_3D;else if(Se.isDataArrayTexture||Se.isCompressedArrayTexture)S.setTexture2DArray(Se,0),_t=H.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,Se.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Se.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,Se.unpackAlignment);const St=H.getParameter(H.UNPACK_ROW_LENGTH),En=H.getParameter(H.UNPACK_IMAGE_HEIGHT),Vn=H.getParameter(H.UNPACK_SKIP_PIXELS),nn=H.getParameter(H.UNPACK_SKIP_ROWS),Wn=H.getParameter(H.UNPACK_SKIP_IMAGES),yt=xe.isCompressedTexture?xe.mipmaps[Ie]:xe.image;H.pixelStorei(H.UNPACK_ROW_LENGTH,yt.width),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,yt.height),H.pixelStorei(H.UNPACK_SKIP_PIXELS,z.min.x),H.pixelStorei(H.UNPACK_SKIP_ROWS,z.min.y),H.pixelStorei(H.UNPACK_SKIP_IMAGES,z.min.z),xe.isDataTexture||xe.isData3DTexture?H.texSubImage3D(_t,Ie,de.x,de.y,de.z,Ze,lt,gt,pt,Qt,yt.data):xe.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),H.compressedTexSubImage3D(_t,Ie,de.x,de.y,de.z,Ze,lt,gt,pt,yt.data)):H.texSubImage3D(_t,Ie,de.x,de.y,de.z,Ze,lt,gt,pt,Qt,yt),H.pixelStorei(H.UNPACK_ROW_LENGTH,St),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,En),H.pixelStorei(H.UNPACK_SKIP_PIXELS,Vn),H.pixelStorei(H.UNPACK_SKIP_ROWS,nn),H.pixelStorei(H.UNPACK_SKIP_IMAGES,Wn),Ie===0&&Se.generateMipmaps&&H.generateMipmap(_t),he.unbindTexture()},this.initTexture=function(z){z.isCubeTexture?S.setTextureCube(z,0):z.isData3DTexture?S.setTexture3D(z,0):z.isDataArrayTexture||z.isCompressedArrayTexture?S.setTexture2DArray(z,0):S.setTexture2D(z,0),he.unbindTexture()},this.resetState=function(){R=0,w=0,T=null,he.reset(),Bt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Ss}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===Hg?"display-p3":"srgb",t.unpackColorSpace=on.workingColorSpace===kh?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===On?ra:jI}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===ra?On:Ds}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class E2 extends ov{}E2.prototype.isWebGL1Renderer=!0;class Xg{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Je(e),this.density=t}clone(){return new Xg(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Jg{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Je(e),this.near=t,this.far=i}clone(){return new Jg(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class vh extends en{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}}class Kg{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=yh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=vr()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Bl("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:c,point:AA.clone(),uv:Er.getInterpolation(AA,Dd,fA,bd,f_,fE,d_,new _e),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function Nd(n,e,t,i,r,s){wc.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(hA.x=s*wc.x-r*wc.y,hA.y=r*wc.x+s*wc.y):hA.copy(wc),n.copy(e),n.x+=hA.x,n.y+=hA.y,n.applyMatrix4(y2)}const Ld=new G,p_=new G;class I2 extends en{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){Ld.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(Ld);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Ld.setFromMatrixPosition(e.matrixWorld),p_.setFromMatrixPosition(this.matrixWorld);const i=Ld.distanceTo(p_)/e.zoom;t[0].object.visible=!0;let r,s;for(r=1,s=t.length;r=o)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const Qc="batchId",Lo=new ft,B_=new ft,n4=new ft,__=new ft,gE=new Hh,Fd=new ei,ja=new ui,gA=new G,mE=new t4,wi=new rn,kd=[];function i4(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new sn(a,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(Qc,new sn(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(Qc))throw new Error(`BatchedMesh: Geometry cannot use attribute "${Qc}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===Qc)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ei);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,a=this._drawRanges,c=this._bounds;this._geometryCount!==0&&(s=o[o.length-1]),t===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=t,s===null?r.vertexStart=0:r.vertexStart=s.vertexStart+s.vertexCount;const A=e.getIndex(),h=A!==null;if(h&&(i===-1?r.indexCount=A.count:r.indexCount=i,s===null?r.indexStart=0:r.indexStart=s.indexStart+s.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const f=this._visibility,d=this._active,m=this._matricesTexture,E=this._matricesTexture.image.data;f.push(!0),d.push(!0);const x=this._geometryCount;this._geometryCount++,n4.toArray(E,x*16),m.needsUpdate=!0,o.push(r),a.push({start:h?r.indexStart:r.vertexStart,count:-1}),c.push({boxInitialized:!1,box:new ei,sphereInitialized:!1,sphere:new ui});const y=this.geometry.getAttribute(Qc);for(let g=0;g=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=i.getIndex()!==null,s=i.getIndex(),o=t.getIndex(),a=this._reservedRanges[e];if(r&&o.count>a.indexCount||t.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const c=a.vertexStart,A=a.vertexCount;for(const m in i.attributes){if(m===Qc)continue;const E=t.getAttribute(m),x=i.getAttribute(m);i4(E,x,c);const y=E.itemSize;for(let g=E.count,v=A;g=t.length||t[e]===!1?this:(t[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,t){if(this._active[e]===!1)return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(r.boxInitialized===!1){s.makeEmpty();const a=o.index,c=o.attributes.position,A=this._drawRanges[e];for(let h=A.start,f=A.start+A.count;h=o||i[e]===!1?this:(t.toArray(s,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,t){const i=this._active,r=this._matricesTexture.image.data,s=this._geometryCount;return e>=s||i[e]===!1?null:t.fromArray(r,e*16)}setVisibleAt(e,t){const i=this._visibility,r=this._active,s=this._geometryCount;return e>=s||r[e]===!1||i[e]===t?this:(i[e]=t,this._visibilityChanged=!0,this)}getVisibleAt(e){const t=this._visibility,i=this._active,r=this._geometryCount;return e>=r||i[e]===!1?!1:t[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,a=this.matrixWorld,c=this.geometry;wi.material=this.material,wi.geometry.index=c.index,wi.geometry.attributes=c.attributes,wi.geometry.boundingBox===null&&(wi.geometry.boundingBox=new ei),wi.geometry.boundingSphere===null&&(wi.geometry.boundingSphere=new ui);for(let A=0;A({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),a=o===null?1:o.array.BYTES_PER_ELEMENT,c=this._active,A=this._visibility,h=this._multiDrawStarts,f=this._multiDrawCounts,d=this._drawRanges,m=this.perObjectFrustumCulled;m&&(__.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),gE.setFromProjectionMatrix(__,e.coordinateSystem));let E=0;if(this.sortObjects){B_.copy(this.matrixWorld).invert(),gA.setFromMatrixPosition(i.matrixWorld).applyMatrix4(B_);for(let g=0,v=A.length;gc)continue;d.applyMatrix4(this.matrixWorld);const P=e.ray.origin.distanceTo(d);Pe.far||t.push({distance:P,point:f.clone().applyMatrix4(this.matrixWorld),index:C,face:null,faceIndex:null,object:this})}}else{const g=Math.max(0,o.start),v=Math.min(y.count,o.start+o.count);for(let C=g,B=v-1;Cc)continue;d.applyMatrix4(this.matrixWorld);const w=e.ray.origin.distanceTo(d);we.far||t.push({distance:w,point:f.clone().applyMatrix4(this.matrixWorld),index:C,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:A,distanceToRay:Math.sqrt(a),point:c,index:e,face:null,object:o})}}class r4 extends Sn{constructor(e,t,i,r,s,o,a,c,A){super(e,t,i,r,s,o,a,c,A),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:In,this.magFilter=s!==void 0?s:In,this.generateMipmaps=!1;const h=this;function f(){h.needsUpdate=!0,e.requestVideoFrameCallback(f)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(f)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class s4 extends Sn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=Gn,this.minFilter=Gn,this.generateMipmaps=!1,this.needsUpdate=!0}}class qg extends Sn{constructor(e,t,i,r,s,o,a,c,A,h,f,d){super(null,o,a,c,A,h,r,s,f,d),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class o4 extends qg{constructor(e,t,i,r,s,o){super(e,t,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=Qi}}class a4 extends qg{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,ho),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class l4 extends Sn{constructor(e,t,i,r,s,o,a,c,A){super(e,t,i,r,s,o,a,c,A),this.isCanvasTexture=!0,this.needsUpdate=!0}}class cs{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;t?o=t:o=e*i[s-1];let a=0,c=s-1,A;for(;a<=c;)if(r=Math.floor(a+(c-a)/2),A=i[r]-o,A<0)a=r+1;else if(A>0)c=r-1;else{c=r;break}if(r=c,i[r]===o)return r/(s-1);const h=i[r],d=i[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),c=t||(o.isVector2?new _e:new G);return c.copy(a).sub(o).normalize(),c}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new G,r=[],s=[],o=[],a=new G,c=new ft;for(let m=0;m<=e;m++){const E=m/e;r[m]=this.getTangentAt(E,new G)}s[0]=new G,o[0]=new G;let A=Number.MAX_VALUE;const h=Math.abs(r[0].x),f=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=A&&(A=h,i.set(1,0,0)),f<=A&&(A=f,i.set(0,1,0)),d<=A&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=e;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const E=Math.acos(Un(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(c.makeRotationAxis(a,E))}o[m].crossVectors(r[m],s[m])}if(t===!0){let m=Math.acos(Un(s[0].dot(s[e]),-1,1));m/=e,r[0].dot(a.crossVectors(s[0],s[e]))>0&&(m=-m);for(let E=1;E<=e;E++)s[E].applyMatrix4(c.makeRotationAxis(r[E],m*E)),o[E].crossVectors(r[E],s[E])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class Zg extends cs{constructor(e=0,t=0,i=1,r=1,s=0,o=Math.PI*2,a=!1,c=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=c}getPoint(e,t){const i=t||new _e,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:c===0&&a===s-1&&(a=s-2,c=1);let A,h;this.closed||a>0?A=r[(a-1)%s]:(zd.subVectors(r[0],r[1]).add(r[0]),A=zd);const f=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],f=r[o>r.length-3?r.length-1:o+2];return i.set(b_(a,c.x,A.x,h.x,f.x),b_(a,c.y,A.y,h.y,f.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,a=this.curves[s],c=a.getLength(),A=c===0?0:1-o/c;return a.getPointAt(A,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const f=A.getPoint(0);f.equals(this.currentPoint)||this.lineTo(f.x,f.y)}this.curves.push(A);const h=A.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class Vh extends Nt{constructor(e=[new _e(0,-.5),new _e(.5,0),new _e(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Un(r,0,Math.PI*2);const s=[],o=[],a=[],c=[],A=[],h=1/t,f=new G,d=new _e,m=new G,E=new G,x=new G;let y=0,g=0;for(let v=0;v<=e.length-1;v++)switch(v){case 0:y=e[v+1].x-e[v].x,g=e[v+1].y-e[v].y,m.x=g*1,m.y=-y,m.z=g*0,x.copy(m),m.normalize(),c.push(m.x,m.y,m.z);break;case e.length-1:c.push(x.x,x.y,x.z);break;default:y=e[v+1].x-e[v].x,g=e[v+1].y-e[v].y,m.x=g*1,m.y=-y,m.z=g*0,E.copy(m),m.x+=x.x,m.y+=x.y,m.z+=x.z,m.normalize(),c.push(m.x,m.y,m.z),x.copy(E)}for(let v=0;v<=t;v++){const C=i+v*h*r,B=Math.sin(C),R=Math.cos(C);for(let w=0;w<=e.length-1;w++){f.x=e[w].x*B,f.y=e[w].y,f.z=e[w].x*R,o.push(f.x,f.y,f.z),d.x=v/t,d.y=w/(e.length-1),a.push(d.x,d.y);const T=c[3*w+0]*B,P=c[3*w+1],K=c[3*w+0]*R;A.push(T,P,K)}}for(let v=0;v0&&C(!0),t>0&&C(!1)),this.setIndex(h),this.setAttribute("position",new st(f,3)),this.setAttribute("normal",new st(d,3)),this.setAttribute("uv",new st(m,2));function v(){const B=new G,R=new G;let w=0;const T=(t-e)/i;for(let P=0;P<=s;P++){const K=[],M=P/s,b=M*(t-e)+e;for(let q=0;q<=r;q++){const ge=q/r,X=ge*c+a,ce=Math.sin(X),se=Math.cos(X);R.x=b*ce,R.y=-M*i+y,R.z=b*se,f.push(R.x,R.y,R.z),B.set(ce,T,se).normalize(),d.push(B.x,B.y,B.z),m.push(ge,1-M),K.push(E++)}x.push(K)}for(let P=0;P.9&&T<.1&&(C<.2&&(o[v+0]+=1),B<.2&&(o[v+2]+=1),R<.2&&(o[v+4]+=1))}}function d(v){s.push(v.x,v.y,v.z)}function m(v,C){const B=v*3;C.x=e[B+0],C.y=e[B+1],C.z=e[B+2]}function E(){const v=new G,C=new G,B=new G,R=new G,w=new _e,T=new _e,P=new _e;for(let K=0,M=0;K80*t){a=A=n[0],c=h=n[1];for(let E=t;EA&&(A=f),d>h&&(h=d);m=Math.max(A-a,h-c),m=m!==0?32767/m:0}return xh(s,o,t,a,c,m,0),o}};function b2(n,e,t,i,r){let s,o;if(r===D4(n,e,t,i)>0)for(s=e;s=e;s-=i)o=N_(s,n[s],n[s+1],o);return o&&im(o,o.next)&&(_h(o),o=o.next),o}function Ll(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(im(t,t.next)||Qn(t.prev,t,t.next)===0)){if(_h(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function xh(n,e,t,i,r,s,o){if(!n)return;!o&&s&&S4(n,i,r,s);let a=n,c,A;for(;n.prev!==n.next;){if(c=n.prev,A=n.next,s?E4(n,i,r,s):m4(n)){e.push(c.i/t|0),e.push(n.i/t|0),e.push(A.i/t|0),_h(n),n=A.next,a=A.next;continue}if(n=A,n===a){o?o===1?(n=y4(Ll(n),e,t),xh(n,e,t,i,r,s,2)):o===2&&C4(n,e,t,i,r,s):xh(Ll(n),e,t,i,r,s,1);break}}}function m4(n){const e=n.prev,t=n,i=n.next;if(Qn(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,a=e.y,c=t.y,A=i.y,h=rs?r>o?r:o:s>o?s:o,m=a>c?a>A?a:A:c>A?c:A;let E=i.next;for(;E!==e;){if(E.x>=h&&E.x<=d&&E.y>=f&&E.y<=m&&tu(r,a,s,c,o,A,E.x,E.y)&&Qn(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function E4(n,e,t,i){const r=n.prev,s=n,o=n.next;if(Qn(r,s,o)>=0)return!1;const a=r.x,c=s.x,A=o.x,h=r.y,f=s.y,d=o.y,m=ac?a>A?a:A:c>A?c:A,y=h>f?h>d?h:d:f>d?f:d,g=xC(m,E,e,t,i),v=xC(x,y,e,t,i);let C=n.prevZ,B=n.nextZ;for(;C&&C.z>=g&&B&&B.z<=v;){if(C.x>=m&&C.x<=x&&C.y>=E&&C.y<=y&&C!==r&&C!==o&&tu(a,h,c,f,A,d,C.x,C.y)&&Qn(C.prev,C,C.next)>=0||(C=C.prevZ,B.x>=m&&B.x<=x&&B.y>=E&&B.y<=y&&B!==r&&B!==o&&tu(a,h,c,f,A,d,B.x,B.y)&&Qn(B.prev,B,B.next)>=0))return!1;B=B.nextZ}for(;C&&C.z>=g;){if(C.x>=m&&C.x<=x&&C.y>=E&&C.y<=y&&C!==r&&C!==o&&tu(a,h,c,f,A,d,C.x,C.y)&&Qn(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;B&&B.z<=v;){if(B.x>=m&&B.x<=x&&B.y>=E&&B.y<=y&&B!==r&&B!==o&&tu(a,h,c,f,A,d,B.x,B.y)&&Qn(B.prev,B,B.next)>=0)return!1;B=B.nextZ}return!0}function y4(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!im(r,s)&&N2(r,i,i.next,s)&&Bh(r,s)&&Bh(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),_h(i),_h(i.next),i=n=s),i=i.next}while(i!==n);return Ll(i)}function C4(n,e,t,i,r,s){let o=n;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&Q4(o,a)){let c=L2(o,a);o=Ll(o,o.next),c=Ll(c,c.next),xh(o,e,t,i,r,s,0),xh(c,e,t,i,r,s,0);return}a=a.next}o=o.next}while(o!==n)}function I4(n,e,t,i){const r=[];let s,o,a,c,A;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){const d=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=s&&d>i&&(i=d,r=t.x=t.x&&t.x>=c&&s!==t.x&&tu(or.x||t.x===r.x&&_4(r,t)))&&(r=t,h=f)),t=t.next;while(t!==a);return r}function _4(n,e){return Qn(n.prev,n,e.prev)<0&&Qn(e.next,n,n.next)<0}function S4(n,e,t,i){let r=n;do r.z===0&&(r.z=xC(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,w4(r)}function w4(n){let e,t,i,r,s,o,a,c,A=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||c>0&&i;)a!==0&&(c===0||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,c--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,A*=2}while(o>1);return n}function xC(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function M4(n){let e=n,t=n;do(e.x=(n-o)*(s-a)&&(n-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(r-o)*(i-a)}function Q4(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!R4(n,e)&&(Bh(n,e)&&Bh(e,n)&&T4(n,e)&&(Qn(n.prev,n,e.prev)||Qn(n,e.prev,e))||im(n,e)&&Qn(n.prev,n,n.next)>0&&Qn(e.prev,e,e.next)>0)}function Qn(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function im(n,e){return n.x===e.x&&n.y===e.y}function N2(n,e,t,i){const r=Jd(Qn(n,e,t)),s=Jd(Qn(n,e,i)),o=Jd(Qn(t,i,n)),a=Jd(Qn(t,i,e));return!!(r!==s&&o!==a||r===0&&Xd(n,t,e)||s===0&&Xd(n,i,e)||o===0&&Xd(t,n,i)||a===0&&Xd(t,e,i))}function Xd(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function Jd(n){return n>0?1:n<0?-1:0}function R4(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&N2(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function Bh(n,e){return Qn(n.prev,n,n.next)<0?Qn(n,e,n.next)>=0&&Qn(n,n.prev,e)>=0:Qn(n,e,n.prev)<0||Qn(n,n.next,e)<0}function T4(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function L2(n,e){const t=new BC(n.i,n.x,n.y),i=new BC(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function N_(n,e,t,i){const r=new BC(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function _h(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function BC(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function D4(n,e,t,i){let r=0;for(let s=e,o=t-i;s2&&n[e-1].equals(n[0])&&n.pop()}function P_(n,e){for(let t=0;tNumber.EPSILON){const Qe=Math.sqrt(be),Xe=Math.sqrt(D*D+ie*ie),ze=Ee.x-S/Qe,je=Ee.y+$/Qe,at=ne.x-ie/Xe,It=ne.y+D/Xe,Le=((at-ze)*ie-(It-je)*D)/($*ie-S*D);ae=ze+$*Le-H.x,he=je+S*Le-H.y;const Lt=ae*ae+he*he;if(Lt<=2)return new _e(ae,he);Te=Math.sqrt(Lt/2)}else{let Qe=!1;$>Number.EPSILON?D>Number.EPSILON&&(Qe=!0):$<-Number.EPSILON?D<-Number.EPSILON&&(Qe=!0):Math.sign(S)===Math.sign(ie)&&(Qe=!0),Qe?(ae=-S,he=$,Te=Math.sqrt(be)):(ae=$,he=S,Te=Math.sqrt(be/2))}return new _e(ae/Te,he/Te)}const ee=[];for(let H=0,Ee=X.length,ne=Ee-1,ae=H+1;H=0;H--){const Ee=H/y,ne=m*Math.cos(Ee*Math.PI/2),ae=E*Math.sin(Ee*Math.PI/2)+x;for(let he=0,Te=X.length;he=0;){const ae=ne;let he=ne-1;he<0&&(he=H.length-1);for(let Te=0,$=h+y*2;Te<$;Te++){const S=se*Te,D=se*(Te+1),ie=Ee+ae+S,be=Ee+he+S,De=Ee+he+D,Qe=Ee+ae+D;ve(ie,be,De,Qe)}}}function F(H,Ee,ne){c.push(H),c.push(Ee),c.push(ne)}function me(H,Ee,ne){re(H),re(Ee),re(ne);const ae=r.length/3,he=v.generateTopUV(i,r,ae-3,ae-2,ae-1);Be(he[0]),Be(he[1]),Be(he[2])}function ve(H,Ee,ne,ae){re(H),re(Ee),re(ae),re(Ee),re(ne),re(ae);const he=r.length/3,Te=v.generateSideWallUV(i,r,he-6,he-3,he-2,he-1);Be(Te[0]),Be(Te[1]),Be(Te[3]),Be(Te[1]),Be(Te[2]),Be(Te[3])}function re(H){r.push(c[H*3+0]),r.push(c[H*3+1]),r.push(c[H*3+2])}function Be(H){s.push(H.x),s.push(H.y)}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){const e=super.toJSON(),t=this.parameters.shapes,i=this.parameters.options;return N4(t,i,e)}static fromJSON(e,t){const i=[];for(let s=0,o=e.shapes.length;s0)&&m.push(C,B,w),(g!==i-1||c0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class G2 extends Ai{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Je(16777215),this.specular=new Je(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=pa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Fh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class O2 extends Ai{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Je(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=pa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class H2 extends Ai{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=pa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class z2 extends Ai{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=pa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Fh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class V2 extends Ai{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Je(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=pa,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class W2 extends Xi{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function yl(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function Y2(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function X2(n){function e(r,s){return n[r]-n[s]}const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function _C(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const a=t[s]*e;for(let c=0;c!==e;++c)r[o++]=n[a+c]}return r}function mv(n,e,t,i){let r=1,s=n[0];for(;s!==void 0&&s[i]===void 0;)s=n[r++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&&(e.push(s.time),t.push.apply(t,o)),s=n[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++];while(s!==void 0);else do o=s[i],o!==void 0&&(e.push(s.time),t.push(o)),s=n[r++];while(s!==void 0)}function P4(n,e,t,i,r=30){const s=n.clone();s.name=e;const o=[];for(let c=0;c=i)){f.push(A.times[m]);for(let x=0;xs.tracks[c].times[0]&&(a=s.tracks[c].times[0]);for(let c=0;c=a.times[E]){const g=E*f+h,v=g+f-h;x=a.values.slice(g,v)}else{const g=a.createInterpolant(),v=h,C=f-h;g.evaluate(s),x=g.resultBuffer.slice(v,C)}c==="quaternion"&&new zi().fromArray(x).normalize().conjugate().toArray(x);const y=A.times.length;for(let g=0;g=s)){const a=t[1];e=s)break t}o=i,i=0;break n}break e}for(;i>>1;et;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){const c=i[a];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,c),e=!1;break}if(o!==null&&o>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,c,o),e=!1;break}o=c}if(r!==void 0&&Y2(r))for(let a=0,c=r.length;a!==c;++a){const A=r[a];if(isNaN(A)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,A),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===Rp,s=e.length-1;let o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*i,c=o*i,A=0;A!==i;++A)t[c+A]=t[a+A];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}us.prototype.TimeBufferType=Float32Array;us.prototype.ValueBufferType=Float32Array;us.prototype.DefaultInterpolation=dh;class kl extends us{}kl.prototype.ValueTypeName="bool";kl.prototype.ValueBufferType=Array;kl.prototype.DefaultInterpolation=fh;kl.prototype.InterpolantFactoryMethodLinear=void 0;kl.prototype.InterpolantFactoryMethodSmooth=void 0;class yv extends us{}yv.prototype.ValueTypeName="color";class Sh extends us{}Sh.prototype.ValueTypeName="number";class j2 extends Xh{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=(i-t)/(r-t);let A=e*a;for(let h=A+a;A!==h;A+=4)zi.slerpFlat(s,0,o,A-a,o,A,c);return s}}class Ru extends us{InterpolantFactoryMethodLinear(e){return new j2(this.times,this.values,this.getValueSize(),e)}}Ru.prototype.ValueTypeName="quaternion";Ru.prototype.DefaultInterpolation=dh;Ru.prototype.InterpolantFactoryMethodSmooth=void 0;class Gl extends us{}Gl.prototype.ValueTypeName="string";Gl.prototype.ValueBufferType=Array;Gl.prototype.DefaultInterpolation=fh;Gl.prototype.InterpolantFactoryMethodLinear=void 0;Gl.prototype.InterpolantFactoryMethodSmooth=void 0;class wh extends us{}wh.prototype.ValueTypeName="vector";class Mh{constructor(e,t=-1,i,r=Og){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=vr(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(G4(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(us.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let a=0;a1){const f=h[1];let d=r[f];d||(r[f]=d=[]),d.push(A)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(f,d,m,E,x){if(m.length!==0){const y=[],g=[];mv(m,y,g,E),y.length!==0&&x.push(new f(d,y,g))}},r=[],s=e.name||"default",o=e.fps||30,a=e.blendMode;let c=e.length||-1;const A=e.hierarchy||[];for(let f=0;f{t&&t(s),this.manager.itemEnd(e)},0),s;if(js[e]!==void 0){js[e].push({onLoad:t,onProgress:i,onError:r});return}js[e]=[],js[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,c=this.responseType;fetch(o).then(A=>{if(A.status===200||A.status===0){if(A.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||A.body===void 0||A.body.getReader===void 0)return A;const h=js[e],f=A.body.getReader(),d=A.headers.get("Content-Length")||A.headers.get("X-File-Size"),m=d?parseInt(d):0,E=m!==0;let x=0;const y=new ReadableStream({start(g){v();function v(){f.read().then(({done:C,value:B})=>{if(C)g.close();else{x+=B.byteLength;const R=new ProgressEvent("progress",{lengthComputable:E,loaded:x,total:m});for(let w=0,T=h.length;w{switch(c){case"arraybuffer":return A.arrayBuffer();case"blob":return A.blob();case"document":return A.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return A.json();default:if(a===void 0)return A.text();{const f=/charset="?([^;"\s]*)"?/i.exec(a),d=f&&f[1]?f[1].toLowerCase():void 0,m=new TextDecoder(d);return A.arrayBuffer().then(E=>m.decode(E))}}}).then(A=>{so.add(e,A);const h=js[e];delete js[e];for(let f=0,d=h.length;f{const h=js[e];if(h===void 0)throw this.manager.itemError(e),A;delete js[e];for(let f=0,d=h.length;f{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class H4 extends Ji{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new bs(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{t(s.parse(JSON.parse(a)))}catch(c){r?r(c):console.error(c),s.manager.itemError(e)}},i,r)}parse(e){const t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=new Je().setHex(o.value);break;case"v2":r.uniforms[s].value=new _e().fromArray(o.value);break;case"v3":r.uniforms[s].value=new G().fromArray(o.value);break;case"v4":r.uniforms[s].value=new an().fromArray(o.value);break;case"m3":r.uniforms[s].value=new Rt().fromArray(o.value);break;case"m4":r.uniforms[s].value=new ft().fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=i(e.map)),e.matcap!==void 0&&(r.matcap=i(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),r.normalScale=new _e().fromArray(s)}return e.displacementMap!==void 0&&(r.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=i(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new _e().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const t={ShadowMaterial:U2,SpriteMaterial:av,RawShaderMaterial:F2,ShaderMaterial:as,PointsMaterial:cv,MeshPhysicalMaterial:k2,MeshStandardMaterial:gv,MeshPhongMaterial:G2,MeshToonMaterial:O2,MeshNormalMaterial:H2,MeshLambertMaterial:z2,MeshDepthMaterial:Wg,MeshDistanceMaterial:Yg,MeshBasicMaterial:sr,MeshMatcapMaterial:V2,LineDashedMaterial:W2,LineBasicMaterial:Xi,Material:Ai};return new t[e]}}class SC{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,r=e.length;i0){const c=new Cv(t);s=new Qh(c),s.setCrossOrigin(this.crossOrigin);for(let A=0,h=e.length;A0){r=new Qh(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;o{const y=new ei;y.min.fromArray(x.boxMin),y.max.fromArray(x.boxMax);const g=new ui;return g.radius=x.sphereRadius,g.center.fromArray(x.sphereCenter),{boxInitialized:x.boxInitialized,box:y,sphereInitialized:x.sphereInitialized,sphere:g}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=A(e.matricesTexture.uuid);break;case"LOD":o=new I2;break;case"Line":o=new Aa(a(e.geometry),c(e.material));break;case"LineLoop":o=new _2(a(e.geometry),c(e.material));break;case"LineSegments":o=new Ns(a(e.geometry),c(e.material));break;case"PointCloud":case"Points":o=new S2(a(e.geometry),c(e.material));break;case"Sprite":o=new C2(c(e.material));break;case"Group":o=new Gr;break;case"Bone":o=new lv;break;default:o=new en}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const d=e.children;for(let m=0;m"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=so.get(e);if(o!==void 0){if(s.manager.itemStart(e),o.then){o.then(A=>{t&&t(A),s.manager.itemEnd(e)}).catch(A=>{r&&r(A)});return}return setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const c=fetch(e,a).then(function(A){return A.blob()}).then(function(A){return createImageBitmap(A,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(A){return so.add(e,A),t&&t(A),s.manager.itemEnd(e),A}).catch(function(A){r&&r(A),so.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});so.add(e,c),s.manager.itemStart(e)}}let Kd;class xv{static getContext(){return Kd===void 0&&(Kd=new(window.AudioContext||window.webkitAudioContext)),Kd}static setContext(e){Kd=e}}class Z4 extends Ji{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new bs(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(c){try{const A=c.slice(0);xv.getContext().decodeAudioData(A,function(f){t(f)}).catch(a)}catch(A){a(A)}},i,r);function a(c){r?r(c):console.error(c),s.manager.itemError(e)}}}const V_=new ft,W_=new ft,qa=new ft;class $4{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Zn,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Zn,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,qa.copy(e.projectionMatrix);const r=t.eyeSep/2,s=r*t.near/t.focus,o=t.near*Math.tan(xl*t.fov*.5)/t.zoom;let a,c;W_.elements[12]=-r,V_.elements[12]=r,a=-o*t.aspect+s,c=o*t.aspect+s,qa.elements[0]=2*t.near/(c-a),qa.elements[8]=(c+a)/(c-a),this.cameraL.projectionMatrix.copy(qa),a=-o*t.aspect-s,c=o*t.aspect-s,qa.elements[0]=2*t.near/(c-a),qa.elements[8]=(c+a)/(c-a),this.cameraR.projectionMatrix.copy(qa)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(W_),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(V_)}}class Bv{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Y_(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=Y_();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function Y_(){return(typeof performance>"u"?Date:performance).now()}const Za=new G,X_=new zi,eG=new G,$a=new G;class tG extends en{constructor(){super(),this.type="AudioListener",this.context=xv.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Bv}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Za,X_,eG),$a.set(0,0,-1).applyQuaternion(X_),t.positionX){const r=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(Za.x,r),t.positionY.linearRampToValueAtTime(Za.y,r),t.positionZ.linearRampToValueAtTime(Za.z,r),t.forwardX.linearRampToValueAtTime($a.x,r),t.forwardY.linearRampToValueAtTime($a.y,r),t.forwardZ.linearRampToValueAtTime($a.z,r),t.upX.linearRampToValueAtTime(i.x,r),t.upY.linearRampToValueAtTime(i.y,r),t.upZ.linearRampToValueAtTime(i.z,r)}else t.setPosition(Za.x,Za.y,Za.z),t.setOrientation($a.x,$a.y,$a.z,i.x,i.y,i.z)}}class lR extends en{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let c=t,A=t+t;c!==A;++c)if(i[c]!==i[c+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let s=i,o=r;s!==o;++s)t[s]=t[r+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let o=0;o!==s;++o)e[t+o]=e[i+o]}_slerp(e,t,i,r){zi.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,s){const o=this._workIndex*s;zi.multiplyQuaternionsFlat(e,o,e,t,e,i),zi.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,i,r,s){const o=1-r;for(let a=0;a!==s;++a){const c=t+a;e[c]=e[c]*o+e[i+a]*r}}_lerpAdditive(e,t,i,r,s){for(let o=0;o!==s;++o){const a=t+o;e[a]=e[a]+e[i+o]*r}}}const _v="\\[\\]\\.:\\/",sG=new RegExp("["+_v+"]","g"),Sv="[^"+_v+"]",oG="[^"+_v.replace("\\.","")+"]",aG=/((?:WC+[\/:])*)/.source.replace("WC",Sv),lG=/(WCOD+)?/.source.replace("WCOD",oG),cG=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Sv),uG=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Sv),AG=new RegExp("^"+aG+lG+cG+uG+"$"),hG=["material","materials","bones","map"];class fG{constructor(e,t,i){const r=i||Jt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class Jt{constructor(e,t,i){this.path=t,this.parsedPath=i||Jt.parseTrackName(t),this.node=Jt.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new Jt.Composite(e,t,i):new Jt(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(sG,"")}static parseTrackName(e){const t=AG.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=i.nodeName.substring(r+1);hG.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(s){for(let o=0;o=s){const f=s++,d=e[f];t[d.uuid]=h,e[h]=d,t[A]=f,e[f]=c;for(let m=0,E=r;m!==E;++m){const x=i[m],y=x[f],g=x[h];x[h]=y,x[f]=g}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let s=this.nCachedObjects_,o=e.length;for(let a=0,c=arguments.length;a!==c;++a){const A=arguments[a],h=A.uuid,f=t[h];if(f!==void 0)if(delete t[h],f0&&(t[m.uuid]=f),e[f]=m,e.pop();for(let E=0,x=r;E!==x;++E){const y=i[E];y[f]=y[d],y.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const s=this._bindings;if(r!==void 0)return s[r];const o=this._paths,a=this._parsedPaths,c=this._objects,A=c.length,h=this.nCachedObjects_,f=new Array(A);r=s.length,i[e]=r,o.push(e),a.push(t),s.push(f);for(let d=h,m=c.length;d!==m;++d){const E=c[d];f[d]=new Jt(E,e,t)}return f}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,c=o[a],A=e[a];t[A]=i,o[i]=c,o.pop(),s[i]=s[a],s.pop(),r[i]=r[a],r.pop()}}}class uR{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const s=t.tracks,o=s.length,a=new Array(o),c={endingStart:gl,endingEnd:gl};for(let A=0;A!==o;++A){const h=s[A].createInterpolant(null);a[A]=h,h.settings=c}this._interpolantSettings=c,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=WQ,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const r=this._clip.duration,s=e._clip.duration,o=s/r,a=r/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,s=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const c=a.parameterPositions,A=a.sampleValues;return c[0]=s,c[1]=s+i,A[0]=e/o,A[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const c=(e-s)*i;c<0||i===0?t=0:(this._startTime=null,t=i*c)}t*=this._updateTimeScale(e);const o=this._updateTime(t),a=this._updateWeight(e);if(a>0){const c=this._interpolants,A=this._propertyBindings;switch(this.blendMode){case KI:for(let h=0,f=c.length;h!==f;++h)c[h].evaluate(o),A[h].accumulateAdditive(a);break;case Og:default:for(let h=0,f=c.length;h!==f;++h)c[h].evaluate(o),A[h].accumulate(r,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,s=this._loopCount;const o=i===YQ;if(e===0)return s===-1?r:o&&(s&1)===1?t-r:r;if(i===VQ){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=t||r<0){const a=Math.floor(r/t);r-=t*a,s+=Math.abs(a);const c=this.repetitions-s;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){const A=e<0;this._setEndings(A,!A,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&(s&1)===1)return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=ml,r.endingEnd=ml):(e?r.endingStart=this.zeroSlopeAtStart?ml:gl:r.endingStart=ph,t?r.endingEnd=this.zeroSlopeAtEnd?ml:gl:r.endingEnd=ph)}_scheduleFading(e,t,i){const r=this._mixer,s=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,c=o.sampleValues;return a[0]=s,c[0]=t,a[1]=s+e,c[1]=i,this}}const pG=new Float32Array(1);class gG extends po{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,s=r.length,o=e._propertyBindings,a=e._interpolants,c=i.uuid,A=this._bindingsByRootAndName;let h=A[c];h===void 0&&(h={},A[c]=h);for(let f=0;f!==s;++f){const d=r[f],m=d.name;let E=h[m];if(E!==void 0)++E.referenceCount,o[f]=E;else{if(E=o[f],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,c,m));continue}const x=t&&t._propertyBindings[f].binding.parsedPath;E=new cR(Jt.create(i,m,x),d.ValueTypeName,d.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,c,m),o[f]=E}a[f].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,r=e._clip.uuid,s=this._actionsByClip[r];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,r,i)}const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let A=0;A!==i;++A)t[A]._update(r,e,s,o);const a=this._bindings,c=this._nActiveBindings;for(let A=0;A!==c;++A)a[A].apply(o);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,j_).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const q_=new G,jd=new G;class xG{constructor(e=new G,t=new G){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){q_.subVectors(e,this.start),jd.subVectors(this.end,this.start);const i=jd.dot(jd);let s=jd.dot(q_)/i;return t&&(s=Un(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const Z_=new G;class BG extends en{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new Nt,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,a=1,c=32;o1)for(let f=0;f.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{iS.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(iS,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class UG extends Ns{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Nt;r.setAttribute("position",new st(t,3)),r.setAttribute("color",new st(i,3));const s=new Xi({vertexColors:!0,toneMapped:!1});super(r,s),this.type="AxesHelper"}setColors(e,t,i){const r=new Je,s=this.geometry.attributes.color.array;return r.set(e),r.toArray(s,0),r.toArray(s,3),r.set(t),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Fo{constructor(){this.type="ShapePath",this.color=new Je,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new sa,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,s,o){return this.currentPath.bezierCurveTo(e,t,i,r,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(g){const v=[];for(let C=0,B=g.length;CNumber.EPSILON){if(M<0&&(T=v[w],K=-K,P=v[R],M=-M),g.yP.y)continue;if(g.y===T.y){if(g.x===T.x)return!0}else{const b=M*(g.x-T.x)-K*(g.y-T.y);if(b===0)return!0;if(b<0)continue;B=!B}}else{if(g.y!==T.y)continue;if(P.x<=g.x&&g.x<=T.x||T.x<=g.x&&g.x<=P.x)return!0}}return B}const r=ss.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,c;const A=[];if(s.length===1)return a=s[0],c=new oa,c.curves=a.curves,A.push(c),A;let h=!r(s[0].getPoints());h=e?!h:h;const f=[],d=[];let m=[],E=0,x;d[E]=void 0,m[E]=[];for(let g=0,v=s.length;g1){let g=!1,v=0;for(let C=0,B=d.length;C0&&g===!1&&(m=f)}let y;for(let g=0,v=d.length;g{const f=typeof A=="function"?A(e):A;if(f!==e){const d=e;e=h?f:Object.assign({},e,f),t.forEach(m=>m(e,d))}},r=()=>e,s=(A,h=r,f=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let d=h(e);function m(){const E=h(e);if(!f(d,E)){const x=d;A(d=E,x)}}return t.add(m),()=>t.delete(m)},c={setState:i,getState:r,subscribe:(A,h,f)=>h||f?s(A,h,f):(t.add(A),()=>t.delete(A)),destroy:()=>t.clear()};return e=n(i,r,c),c}const GG=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),rS=GG?j.useEffect:j.useLayoutEffect;function dR(n){const e=typeof n=="function"?kG(n):n,t=(i=e.getState,r=Object.is)=>{const[,s]=j.useReducer(y=>y+1,0),o=e.getState(),a=j.useRef(o),c=j.useRef(i),A=j.useRef(r),h=j.useRef(!1),f=j.useRef();f.current===void 0&&(f.current=i(o));let d,m=!1;(a.current!==o||c.current!==i||A.current!==r||h.current)&&(d=i(o),m=!r(f.current,d)),rS(()=>{m&&(f.current=d),a.current=o,c.current=i,A.current=r,h.current=!1});const E=j.useRef(o);rS(()=>{const y=()=>{try{const v=e.getState(),C=c.current(v);A.current(f.current,C)||(a.current=v,f.current=C,s())}catch{h.current=!0,s()}},g=e.subscribe(y);return e.getState()!==E.current&&y(),g},[]);const x=m?d:f.current;return j.useDebugValue(x),x};return Object.assign(t,e),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,e];return{next(){const r=i.length<=0;return{value:i.shift(),done:r}}}},t}var pR={exports:{}},gR={exports:{}},mR={};/** - * @license React - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */(function(n){function e(U,ee){var te=U.length;U.push(ee);e:for(;0>>1,Ce=U[ue];if(0>>1;uer(O,te))kr(F,O)?(U[ue]=F,U[k]=te,ue=k):(U[ue]=O,U[V]=te,ue=V);else if(kr(F,te))U[ue]=F,U[k]=te,ue=k;else break e}}return ee}function r(U,ee){var te=U.sortIndex-ee.sortIndex;return te!==0?te:U.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var c=[],A=[],h=1,f=null,d=3,m=!1,E=!1,x=!1,y=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C(U){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=U)i(A),ee.sortIndex=ee.expirationTime,e(c,ee);else break;ee=t(A)}}function B(U){if(x=!1,C(U),!E)if(t(c)!==null)E=!0,se(R);else{var ee=t(A);ee!==null&&fe(B,ee.startTime-U)}}function R(U,ee){E=!1,x&&(x=!1,g(P),P=-1),m=!0;var te=d;try{for(C(ee),f=t(c);f!==null&&(!(f.expirationTime>ee)||U&&!b());){var ue=f.callback;if(typeof ue=="function"){f.callback=null,d=f.priorityLevel;var Ce=ue(f.expirationTime<=ee);ee=n.unstable_now(),typeof Ce=="function"?f.callback=Ce:f===t(c)&&i(c),C(ee)}else i(c);f=t(c)}if(f!==null)var ke=!0;else{var V=t(A);V!==null&&fe(B,V.startTime-ee),ke=!1}return ke}finally{f=null,d=te,m=!1}}var w=!1,T=null,P=-1,K=5,M=-1;function b(){return!(n.unstable_now()-MU||125ue?(U.sortIndex=te,e(A,U),t(c)===null&&U===t(A)&&(x?(g(P),P=-1):x=!0,fe(B,te-ue))):(U.sortIndex=Ce,e(c,U),E||m||(E=!0,se(R))),U},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(U){var ee=d;return function(){var te=d;d=ee;try{return U.apply(this,arguments)}finally{d=te}}}})(mR);gR.exports=mR;var MC=gR.exports;/** - * @license React - * react-reconciler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var OG=function(e){var t={},i=j,r=MC,s=Object.assign;function o(l){for(var u="https://reactjs.org/docs/error-decoder.html?invariant="+l,p=1;ple||_[Y]!==Q[le]){var Re=` -`+_[Y].replace(" at new "," at ");return l.displayName&&Re.includes("")&&(Re=Re.replace("",l.displayName)),Re}while(1<=Y&&0<=le);break}}}finally{_t=!1,Error.prepareStackTrace=p}return(l=l?l.displayName||l.name:"")?Qt(l):""}var En=Object.prototype.hasOwnProperty,Vn=[],nn=-1;function Wn(l){return{current:l}}function yt(l){0>nn||(l.current=Vn[nn],Vn[nn]=null,nn--)}function et(l,u){nn++,Vn[nn]=l.current,l.current=u}var Ei={},vt=Wn(Ei),hn=Wn(!1),ar=Ei;function N(l,u){var p=l.type.contextTypes;if(!p)return Ei;var I=l.stateNode;if(I&&I.__reactInternalMemoizedUnmaskedChildContext===u)return I.__reactInternalMemoizedMaskedChildContext;var _={},Q;for(Q in p)_[Q]=u[Q];return I&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=u,l.__reactInternalMemoizedMaskedChildContext=_),_}function L(l){return l=l.childContextTypes,l!=null}function Z(){yt(hn),yt(vt)}function oe(l,u,p){if(vt.current!==Ei)throw Error(o(168));et(vt,u),et(hn,p)}function pe(l,u,p){var I=l.stateNode;if(u=u.childContextTypes,typeof I.getChildContext!="function")return p;I=I.getChildContext();for(var _ in I)if(!(_ in u))throw Error(o(108,P(l)||"Unknown",_));return s({},p,I)}function we(l){return l=(l=l.stateNode)&&l.__reactInternalMemoizedMergedChildContext||Ei,ar=vt.current,et(vt,l),et(hn,hn.current),!0}function Pe(l,u,p){var I=l.stateNode;if(!I)throw Error(o(169));p?(l=pe(l,u,ar),I.__reactInternalMemoizedMergedChildContext=l,yt(hn),yt(vt),et(vt,l)):yt(hn),et(hn,p)}var Ne=Math.clz32?Math.clz32:$e,Ve=Math.log,Oe=Math.LN2;function $e(l){return l>>>=0,l===0?32:31-(Ve(l)/Oe|0)|0}var ht=64,Ht=4194304;function pn(l){switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return l&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return l}}function Vt(l,u){var p=l.pendingLanes;if(p===0)return 0;var I=0,_=l.suspendedLanes,Q=l.pingedLanes,Y=p&268435455;if(Y!==0){var le=Y&~_;le!==0?I=pn(le):(Q&=Y,Q!==0&&(I=pn(Q)))}else Y=p&~_,Y!==0?I=pn(Y):Q!==0&&(I=pn(Q));if(I===0)return 0;if(u!==0&&u!==I&&!(u&_)&&(_=I&-I,Q=u&-u,_>=Q||_===16&&(Q&4194240)!==0))return u;if(I&4&&(I|=p&16),u=l.entangledLanes,u!==0)for(l=l.entanglements,u&=I;0p;p++)u.push(l);return u}function yo(l,u,p){l.pendingLanes|=u,u!==536870912&&(l.suspendedLanes=0,l.pingedLanes=0),l=l.eventTimes,u=31-Ne(u),l[u]=p}function rf(l,u){var p=l.pendingLanes&~u;l.pendingLanes=u,l.suspendedLanes=0,l.pingedLanes=0,l.expiredLanes&=u,l.mutableReadLanes&=u,l.entangledLanes&=u,u=l.entanglements;var I=l.eventTimes;for(l=l.expirationTimes;0>=Y,_-=Y,Os=1<<32-Ne(u)+_|p<<_|I,Hs=Q+l}else Os=1<Zt?(oi=Dt,Dt=null):oi=Dt.sibling;var $t=mt(ye,Dt,Me[Zt],qe);if($t===null){Dt===null&&(Dt=oi);break}l&&Dt&&$t.alternate===null&&u(ye,Dt),Ae=Q($t,Ae,Zt),Ft===null?ct=$t:Ft.sibling=$t,Ft=$t,Dt=oi}if(Zt===Me.length)return p(ye,Dt),xn&&Fa(ye,Zt),ct;if(Dt===null){for(;ZtZt?(oi=Dt,Dt=null):oi=Dt.sibling;var wo=mt(ye,Dt,$t.value,qe);if(wo===null){Dt===null&&(Dt=oi);break}l&&Dt&&wo.alternate===null&&u(ye,Dt),Ae=Q(wo,Ae,Zt),Ft===null?ct=wo:Ft.sibling=wo,Ft=wo,Dt=oi}if($t.done)return p(ye,Dt),xn&&Fa(ye,Zt),ct;if(Dt===null){for(;!$t.done;Zt++,$t=Me.next())$t=Tt(ye,$t.value,qe),$t!==null&&(Ae=Q($t,Ae,Zt),Ft===null?ct=$t:Ft.sibling=$t,Ft=$t);return xn&&Fa(ye,Zt),ct}for(Dt=I(ye,Dt);!$t.done;Zt++,$t=Me.next())$t=fn(Dt,ye,Zt,$t.value,qe),$t!==null&&(l&&$t.alternate!==null&&Dt.delete($t.key===null?Zt:$t.key),Ae=Q($t,Ae,Zt),Ft===null?ct=$t:Ft.sibling=$t,Ft=$t);return l&&Dt.forEach(function(ED){return u(ye,ED)}),xn&&Fa(ye,Zt),ct}function Nr(ye,Ae,Me,qe){if(typeof Me=="object"&&Me!==null&&Me.type===h&&Me.key===null&&(Me=Me.props.children),typeof Me=="object"&&Me!==null){switch(Me.$$typeof){case c:e:{for(var ct=Me.key,Ft=Ae;Ft!==null;){if(Ft.key===ct){if(ct=Me.type,ct===h){if(Ft.tag===7){p(ye,Ft.sibling),Ae=_(Ft,Me.props.children),Ae.return=ye,ye=Ae;break e}}else if(Ft.elementType===ct||typeof ct=="object"&&ct!==null&&ct.$$typeof===C&&n1(ct)===Ft.type){p(ye,Ft.sibling),Ae=_(Ft,Me.props),Ae.ref=Fu(ye,Ft,Me),Ae.return=ye,ye=Ae;break e}p(ye,Ft);break}else u(ye,Ft);Ft=Ft.sibling}Me.type===h?(Ae=Wa(Me.props.children,ye.mode,qe,Me.key),Ae.return=ye,ye=Ae):(qe=Yf(Me.type,Me.key,Me.props,null,ye.mode,qe),qe.ref=Fu(ye,Ae,Me),qe.return=ye,ye=qe)}return Y(ye);case A:e:{for(Ft=Me.key;Ae!==null;){if(Ae.key===Ft)if(Ae.tag===4&&Ae.stateNode.containerInfo===Me.containerInfo&&Ae.stateNode.implementation===Me.implementation){p(ye,Ae.sibling),Ae=_(Ae,Me.children||[]),Ae.return=ye,ye=Ae;break e}else{p(ye,Ae);break}else u(ye,Ae);Ae=Ae.sibling}Ae=g0(Me,ye.mode,qe),Ae.return=ye,ye=Ae}return Y(ye);case C:return Ft=Me._init,Nr(ye,Ae,Ft(Me._payload),qe)}if(ce(Me))return ut(ye,Ae,Me,qe);if(w(Me))return vi(ye,Ae,Me,qe);pf(ye,Me)}return typeof Me=="string"&&Me!==""||typeof Me=="number"?(Me=""+Me,Ae!==null&&Ae.tag===6?(p(ye,Ae.sibling),Ae=_(Ae,Me),Ae.return=ye,ye=Ae):(p(ye,Ae),Ae=p0(Me,ye.mode,qe),Ae.return=ye,ye=Ae),Y(ye)):p(ye,Ae)}return Nr}var tc=i1(!0),r1=i1(!1),ku={},Rr=Wn(ku),Gu=Wn(ku),nc=Wn(ku);function gs(l){if(l===ku)throw Error(o(174));return l}function bm(l,u){et(nc,u),et(Gu,l),et(Rr,ku),l=fe(u),yt(Rr),et(Rr,l)}function ic(){yt(Rr),yt(Gu),yt(nc)}function s1(l){var u=gs(nc.current),p=gs(Rr.current);u=U(p,l.type,u),p!==u&&(et(Gu,l),et(Rr,u))}function Nm(l){Gu.current===l&&(yt(Rr),yt(Gu))}var wn=Wn(0);function gf(l){for(var u=l;u!==null;){if(u.tag===13){var p=u.memoizedState;if(p!==null&&(p=p.dehydrated,p===null||La(p)||fi(p)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!==void 0){if(u.flags&128)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break;for(;u.sibling===null;){if(u.return===null||u.return===l)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var Lm=[];function Pm(){for(var l=0;lp?p:4,l(!0);var I=Tr.transition;Tr.transition={};try{l(!1),u()}finally{qt=p,Tr.transition=I}}function y1(){return ms().memoizedState}function WT(l,u,p){var I=Bo(l);p={lane:I,action:p,hasEagerState:!1,eagerState:null,next:null},C1(l)?I1(u,p):(v1(l,u,p),p=Ni(),l=Dr(l,I,p),l!==null&&x1(l,u,I))}function YT(l,u,p){var I=Bo(l),_={lane:I,action:p,hasEagerState:!1,eagerState:null,next:null};if(C1(l))I1(u,_);else{v1(l,u,_);var Q=l.alternate;if(l.lanes===0&&(Q===null||Q.lanes===0)&&(Q=u.lastRenderedReducer,Q!==null))try{var Y=u.lastRenderedState,le=Q(Y,p);if(_.hasEagerState=!0,_.eagerState=le,fs(le,Y))return}catch{}finally{}p=Ni(),l=Dr(l,I,p),l!==null&&x1(l,u,I)}}function C1(l){var u=l.alternate;return l===bn||u!==null&&u===bn}function I1(l,u){Ou=Ef=!0;var p=l.pending;p===null?u.next=u:(u.next=p.next,p.next=u),l.pending=u}function v1(l,u,p){Yn!==null&&l.mode&1&&!(Gt&2)?(l=u.interleaved,l===null?(p.next=p,ps===null?ps=[u]:ps.push(u)):(p.next=l.next,l.next=p),u.interleaved=p):(l=u.pending,l===null?p.next=p:(p.next=l.next,l.next=p),u.pending=p)}function x1(l,u,p){if(p&4194240){var I=u.lanes;I&=l.pendingLanes,p|=I,u.lanes=p,gm(l,p)}}var xf={readContext:wr,useCallback:Ci,useContext:Ci,useEffect:Ci,useImperativeHandle:Ci,useInsertionEffect:Ci,useLayoutEffect:Ci,useMemo:Ci,useReducer:Ci,useRef:Ci,useState:Ci,useDebugValue:Ci,useDeferredValue:Ci,useTransition:Ci,useMutableSource:Ci,useSyncExternalStore:Ci,useId:Ci,unstable_isNewReconciler:!1},XT={readContext:wr,useCallback:function(l,u){return zs().memoizedState=[l,u===void 0?null:u],l},useContext:wr,useEffect:Om,useImperativeHandle:function(l,u,p){return p=p!=null?p.concat([l]):null,If(4194308,4,p1.bind(null,u,l),p)},useLayoutEffect:function(l,u){return If(4194308,4,l,u)},useInsertionEffect:function(l,u){return If(4,2,l,u)},useMemo:function(l,u){var p=zs();return u=u===void 0?null:u,l=l(),p.memoizedState=[l,u],l},useReducer:function(l,u,p){var I=zs();return u=p!==void 0?p(u):u,I.memoizedState=I.baseState=u,l={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},I.queue=l,l=l.dispatch=WT.bind(null,bn,l),[I.memoizedState,l]},useRef:function(l){var u=zs();return l={current:l},u.memoizedState=l},useState:Gm,useDebugValue:Hm,useDeferredValue:function(l){var u=Gm(l),p=u[0],I=u[1];return Om(function(){var _=Tr.transition;Tr.transition={};try{I(l)}finally{Tr.transition=_}},[l]),p},useTransition:function(){var l=Gm(!1),u=l[0];return l=VT.bind(null,l[1]),zs().memoizedState=l,[u,l]},useMutableSource:function(){},useSyncExternalStore:function(l,u,p){var I=bn,_=zs();if(xn){if(p===void 0)throw Error(o(407));p=p()}else{if(p=u(),Yn===null)throw Error(o(349));rc&30||l1(I,u,p)}_.memoizedState=p;var Q={value:p,getSnapshot:u};return _.queue=Q,Om(u1.bind(null,I,Q,l),[l]),I.flags|=2048,zu(9,c1.bind(null,I,Q,p,u),void 0,null),p},useId:function(){var l=zs(),u=Yn.identifierPrefix;if(xn){var p=Hs,I=Os;p=(I&~(1<<32-Ne(I)-1)).toString(32)+p,u=":"+u+"R"+p,p=Hu++,0a0&&(u.flags|=128,I=!0,Xu(_,!1),u.lanes=4194304)}else{if(!I)if(l=gf(Q),l!==null){if(u.flags|=128,I=!0,l=l.updateQueue,l!==null&&(u.updateQueue=l,u.flags|=4),Xu(_,!0),_.tail===null&&_.tailMode==="hidden"&&!Q.alternate&&!xn)return Ii(u),null}else 2*ri()-_.renderingStartTime>a0&&p!==1073741824&&(u.flags|=128,I=!0,Xu(_,!1),u.lanes=4194304);_.isBackwards?(Q.sibling=u.child,u.child=Q):(l=_.last,l!==null?l.sibling=Q:u.child=Q,_.last=Q)}return _.tail!==null?(u=_.tail,_.rendering=u,_.tail=u.sibling,_.renderingStartTime=ri(),u.sibling=null,l=wn.current,et(wn,I?l&1|2:l&1),u):(Ii(u),null);case 22:case 23:return h0(),I=u.memoizedState!==null,l!==null&&l.memoizedState!==null!==I&&(u.flags|=8192),I&&u.mode&1?fr&1073741824&&(Ii(u),Be&&u.subtreeFlags&6&&(u.flags|=8192)):Ii(u),null;case 24:return null;case 25:return null}throw Error(o(156,u.tag))}var ZT=a.ReactCurrentOwner,hr=!1;function bi(l,u,p,I){u.child=l===null?r1(u,null,p,I):tc(u,l.child,p,I)}function T1(l,u,p,I,_){p=p.render;var Q=u.ref;return ql(u,_),I=Fm(l,u,p,I,Q,_),p=km(),l!==null&&!hr?(u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~_,Vs(l,u,_)):(xn&&p&&Mm(u),u.flags|=1,bi(l,u,I,_),u.child)}function D1(l,u,p,I,_){if(l===null){var Q=p.type;return typeof Q=="function"&&!d0(Q)&&Q.defaultProps===void 0&&p.compare===null&&p.defaultProps===void 0?(u.tag=15,u.type=Q,b1(l,u,Q,I,_)):(l=Yf(p.type,null,I,u,u.mode,_),l.ref=u.ref,l.return=u,u.child=l)}if(Q=l.child,!(l.lanes&_)){var Y=Q.memoizedProps;if(p=p.compare,p=p!==null?p:af,p(Y,I)&&l.ref===u.ref)return Vs(l,u,_)}return u.flags|=1,l=So(Q,I),l.ref=u.ref,l.return=u,u.child=l}function b1(l,u,p,I,_){if(l!==null&&af(l.memoizedProps,I)&&l.ref===u.ref)if(hr=!1,(l.lanes&_)!==0)l.flags&131072&&(hr=!0);else return u.lanes=l.lanes,Vs(l,u,_);return Wm(l,u,p,I,_)}function N1(l,u,p){var I=u.pendingProps,_=I.children,Q=l!==null?l.memoizedState:null;if(I.mode==="hidden")if(!(u.mode&1))u.memoizedState={baseLanes:0,cachePool:null},et(sc,fr),fr|=p;else if(p&1073741824)u.memoizedState={baseLanes:0,cachePool:null},I=Q!==null?Q.baseLanes:p,et(sc,fr),fr|=I;else return l=Q!==null?Q.baseLanes|p:p,u.lanes=u.childLanes=1073741824,u.memoizedState={baseLanes:l,cachePool:null},u.updateQueue=null,et(sc,fr),fr|=l,null;else Q!==null?(I=Q.baseLanes|p,u.memoizedState=null):I=p,et(sc,fr),fr|=I;return bi(l,u,_,p),u.child}function L1(l,u){var p=u.ref;(l===null&&p!==null||l!==null&&l.ref!==p)&&(u.flags|=512,u.flags|=2097152)}function Wm(l,u,p,I,_){var Q=L(p)?ar:vt.current;return Q=N(u,Q),ql(u,_),p=Fm(l,u,p,I,Q,_),I=km(),l!==null&&!hr?(u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~_,Vs(l,u,_)):(xn&&I&&Mm(u),u.flags|=1,bi(l,u,p,_),u.child)}function P1(l,u,p,I,_){if(L(p)){var Q=!0;we(u)}else Q=!1;if(ql(u,_),u.stateNode===null)l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),jv(u,p,I),wm(u,p,I,_),I=!0;else if(l===null){var Y=u.stateNode,le=u.memoizedProps;Y.props=le;var Re=Y.context,He=p.contextType;typeof He=="object"&&He!==null?He=wr(He):(He=L(p)?ar:vt.current,He=N(u,He));var rt=p.getDerivedStateFromProps,Tt=typeof rt=="function"||typeof Y.getSnapshotBeforeUpdate=="function";Tt||typeof Y.UNSAFE_componentWillReceiveProps!="function"&&typeof Y.componentWillReceiveProps!="function"||(le!==I||Re!==He)&&qv(u,Y,I,He),Co=!1;var mt=u.memoizedState;Y.state=mt,Af(u,I,Y,_),Re=u.memoizedState,le!==I||mt!==Re||hn.current||Co?(typeof rt=="function"&&(Sm(u,p,rt,I),Re=u.memoizedState),(le=Co||Kv(u,p,le,I,mt,Re,He))?(Tt||typeof Y.UNSAFE_componentWillMount!="function"&&typeof Y.componentWillMount!="function"||(typeof Y.componentWillMount=="function"&&Y.componentWillMount(),typeof Y.UNSAFE_componentWillMount=="function"&&Y.UNSAFE_componentWillMount()),typeof Y.componentDidMount=="function"&&(u.flags|=4194308)):(typeof Y.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=I,u.memoizedState=Re),Y.props=I,Y.state=Re,Y.context=He,I=le):(typeof Y.componentDidMount=="function"&&(u.flags|=4194308),I=!1)}else{Y=u.stateNode,Wv(l,u),le=u.memoizedProps,He=u.type===u.elementType?le:Yr(u.type,le),Y.props=He,Tt=u.pendingProps,mt=Y.context,Re=p.contextType,typeof Re=="object"&&Re!==null?Re=wr(Re):(Re=L(p)?ar:vt.current,Re=N(u,Re));var fn=p.getDerivedStateFromProps;(rt=typeof fn=="function"||typeof Y.getSnapshotBeforeUpdate=="function")||typeof Y.UNSAFE_componentWillReceiveProps!="function"&&typeof Y.componentWillReceiveProps!="function"||(le!==Tt||mt!==Re)&&qv(u,Y,I,Re),Co=!1,mt=u.memoizedState,Y.state=mt,Af(u,I,Y,_);var ut=u.memoizedState;le!==Tt||mt!==ut||hn.current||Co?(typeof fn=="function"&&(Sm(u,p,fn,I),ut=u.memoizedState),(He=Co||Kv(u,p,He,I,mt,ut,Re)||!1)?(rt||typeof Y.UNSAFE_componentWillUpdate!="function"&&typeof Y.componentWillUpdate!="function"||(typeof Y.componentWillUpdate=="function"&&Y.componentWillUpdate(I,ut,Re),typeof Y.UNSAFE_componentWillUpdate=="function"&&Y.UNSAFE_componentWillUpdate(I,ut,Re)),typeof Y.componentDidUpdate=="function"&&(u.flags|=4),typeof Y.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof Y.componentDidUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=4),typeof Y.getSnapshotBeforeUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=1024),u.memoizedProps=I,u.memoizedState=ut),Y.props=I,Y.state=ut,Y.context=Re,I=He):(typeof Y.componentDidUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=4),typeof Y.getSnapshotBeforeUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=1024),I=!1)}return Ym(l,u,p,I,Q,_)}function Ym(l,u,p,I,_,Q){L1(l,u);var Y=(u.flags&128)!==0;if(!I&&!Y)return _&&Pe(u,p,!1),Vs(l,u,Q);I=u.stateNode,ZT.current=u;var le=Y&&typeof p.getDerivedStateFromError!="function"?null:I.render();return u.flags|=1,l!==null&&Y?(u.child=tc(u,l.child,null,Q),u.child=tc(u,null,le,Q)):bi(l,u,le,Q),u.memoizedState=I.state,_&&Pe(u,p,!0),u.child}function U1(l){var u=l.stateNode;u.pendingContext?oe(l,u.pendingContext,u.pendingContext!==u.context):u.context&&oe(l,u.context,!1),bm(l,u.containerInfo)}function F1(l,u,p,I,_){return ec(),Dm(_),u.flags|=256,bi(l,u,p,I),u.child}var Sf={dehydrated:null,treeContext:null,retryLane:0};function wf(l){return{baseLanes:l,cachePool:null}}function k1(l,u,p){var I=u.pendingProps,_=wn.current,Q=!1,Y=(u.flags&128)!==0,le;if((le=Y)||(le=l!==null&&l.memoizedState===null?!1:(_&2)!==0),le?(Q=!0,u.flags&=-129):(l===null||l.memoizedState!==null)&&(_|=1),et(wn,_&1),l===null)return Tm(u),l=u.memoizedState,l!==null&&(l=l.dehydrated,l!==null)?(u.mode&1?fi(l)?u.lanes=8:u.lanes=1073741824:u.lanes=1,null):(_=I.children,l=I.fallback,Q?(I=u.mode,Q=u.child,_={mode:"hidden",children:_},!(I&1)&&Q!==null?(Q.childLanes=0,Q.pendingProps=_):Q=Xf(_,I,0,null),l=Wa(l,I,p,null),Q.return=u,l.return=u,Q.sibling=l,u.child=Q,u.child.memoizedState=wf(p),u.memoizedState=Sf,l):Xm(u,_));if(_=l.memoizedState,_!==null){if(le=_.dehydrated,le!==null){if(Y)return u.flags&256?(u.flags&=-257,Mf(l,u,p,Error(o(422)))):u.memoizedState!==null?(u.child=l.child,u.flags|=128,null):(Q=I.fallback,_=u.mode,I=Xf({mode:"visible",children:I.children},_,0,null),Q=Wa(Q,_,p,null),Q.flags|=2,I.return=u,Q.return=u,I.sibling=Q,u.child=I,u.mode&1&&tc(u,l.child,null,p),u.child.memoizedState=wf(p),u.memoizedState=Sf,Q);if(!(u.mode&1))u=Mf(l,u,p,null);else if(fi(le))u=Mf(l,u,p,Error(o(419)));else if(I=(p&l.childLanes)!==0,hr||I){if(I=Yn,I!==null){switch(p&-p){case 4:Q=2;break;case 16:Q=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:Q=32;break;case 536870912:Q=268435456;break;default:Q=0}I=Q&(I.suspendedLanes|p)?0:Q,I!==0&&I!==_.retryLane&&(_.retryLane=I,Dr(l,I,-1))}f0(),u=Mf(l,u,p,Error(o(421)))}else La(le)?(u.flags|=128,u.child=l.child,u=AD.bind(null,l),Us(le,u),u=null):(p=_.treeContext,Ee&&(Ar=Eo(le),ur=u,xn=!0,Xr=null,Pu=!1,p!==null&&(Mr[Qr++]=Os,Mr[Qr++]=Hs,Mr[Qr++]=Ua,Os=p.id,Hs=p.overflow,Ua=u)),u=Xm(u,u.pendingProps.children),u.flags|=4096);return u}return Q?(I=O1(l,u,I.children,I.fallback,p),Q=u.child,_=l.child.memoizedState,Q.memoizedState=_===null?wf(p):{baseLanes:_.baseLanes|p,cachePool:null},Q.childLanes=l.childLanes&~p,u.memoizedState=Sf,I):(p=G1(l,u,I.children,p),u.memoizedState=null,p)}return Q?(I=O1(l,u,I.children,I.fallback,p),Q=u.child,_=l.child.memoizedState,Q.memoizedState=_===null?wf(p):{baseLanes:_.baseLanes|p,cachePool:null},Q.childLanes=l.childLanes&~p,u.memoizedState=Sf,I):(p=G1(l,u,I.children,p),u.memoizedState=null,p)}function Xm(l,u){return u=Xf({mode:"visible",children:u},l.mode,0,null),u.return=l,l.child=u}function G1(l,u,p,I){var _=l.child;return l=_.sibling,p=So(_,{mode:"visible",children:p}),!(u.mode&1)&&(p.lanes=I),p.return=u,p.sibling=null,l!==null&&(I=u.deletions,I===null?(u.deletions=[l],u.flags|=16):I.push(l)),u.child=p}function O1(l,u,p,I,_){var Q=u.mode;l=l.child;var Y=l.sibling,le={mode:"hidden",children:p};return!(Q&1)&&u.child!==l?(p=u.child,p.childLanes=0,p.pendingProps=le,u.deletions=null):(p=So(l,le),p.subtreeFlags=l.subtreeFlags&14680064),Y!==null?I=So(Y,I):(I=Wa(I,Q,_,null),I.flags|=2),I.return=u,p.return=u,p.sibling=I,u.child=p,I}function Mf(l,u,p,I){return I!==null&&Dm(I),tc(u,l.child,null,p),l=Xm(u,u.pendingProps.children),l.flags|=2,u.memoizedState=null,l}function H1(l,u,p){l.lanes|=u;var I=l.alternate;I!==null&&(I.lanes|=u),Bm(l.return,u,p)}function Jm(l,u,p,I,_){var Q=l.memoizedState;Q===null?l.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:I,tail:p,tailMode:_}:(Q.isBackwards=u,Q.rendering=null,Q.renderingStartTime=0,Q.last=I,Q.tail=p,Q.tailMode=_)}function z1(l,u,p){var I=u.pendingProps,_=I.revealOrder,Q=I.tail;if(bi(l,u,I.children,p),I=wn.current,I&2)I=I&1|2,u.flags|=128;else{if(l!==null&&l.flags&128)e:for(l=u.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&H1(l,p,u);else if(l.tag===19)H1(l,p,u);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===u)break e;for(;l.sibling===null;){if(l.return===null||l.return===u)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}I&=1}if(et(wn,I),!(u.mode&1))u.memoizedState=null;else switch(_){case"forwards":for(p=u.child,_=null;p!==null;)l=p.alternate,l!==null&&gf(l)===null&&(_=p),p=p.sibling;p=_,p===null?(_=u.child,u.child=null):(_=p.sibling,p.sibling=null),Jm(u,!1,_,p,Q);break;case"backwards":for(p=null,_=u.child,u.child=null;_!==null;){if(l=_.alternate,l!==null&&gf(l)===null){u.child=_;break}l=_.sibling,_.sibling=p,p=_,_=l}Jm(u,!0,p,null,Q);break;case"together":Jm(u,!1,null,null,void 0);break;default:u.memoizedState=null}return u.child}function Vs(l,u,p){if(l!==null&&(u.dependencies=l.dependencies),oc|=u.lanes,!(p&u.childLanes))return null;if(l!==null&&u.child!==l.child)throw Error(o(153));if(u.child!==null){for(l=u.child,p=So(l,l.pendingProps),u.child=p,p.return=u;l.sibling!==null;)l=l.sibling,p=p.sibling=So(l,l.pendingProps),p.return=u;p.sibling=null}return u.child}function $T(l,u,p){switch(u.tag){case 3:U1(u),ec();break;case 5:s1(u);break;case 1:L(u.type)&&we(u);break;case 4:bm(u,u.stateNode.containerInfo);break;case 10:Vv(u,u.type._context,u.memoizedProps.value);break;case 13:var I=u.memoizedState;if(I!==null)return I.dehydrated!==null?(et(wn,wn.current&1),u.flags|=128,null):p&u.child.childLanes?k1(l,u,p):(et(wn,wn.current&1),l=Vs(l,u,p),l!==null?l.sibling:null);et(wn,wn.current&1);break;case 19:if(I=(p&u.childLanes)!==0,l.flags&128){if(I)return z1(l,u,p);u.flags|=128}var _=u.memoizedState;if(_!==null&&(_.rendering=null,_.tail=null,_.lastEffect=null),et(wn,wn.current),I)break;return null;case 22:case 23:return u.lanes=0,N1(l,u,p)}return Vs(l,u,p)}function eD(l,u){switch(Qm(u),u.tag){case 1:return L(u.type)&&Z(),l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 3:return ic(),yt(hn),yt(vt),Pm(),l=u.flags,l&65536&&!(l&128)?(u.flags=l&-65537|128,u):null;case 5:return Nm(u),null;case 13:if(yt(wn),l=u.memoizedState,l!==null&&l.dehydrated!==null){if(u.alternate===null)throw Error(o(340));ec()}return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 19:return yt(wn),null;case 4:return ic(),null;case 10:return xm(u.type._context),null;case 22:case 23:return h0(),null;case 24:return null;default:return null}}var Qf=!1,Ga=!1,tD=typeof WeakSet=="function"?WeakSet:Set,Ke=null;function Rf(l,u){var p=l.ref;if(p!==null)if(typeof p=="function")try{p(null)}catch(I){Zi(l,u,I)}else p.current=null}function Km(l,u,p){try{p()}catch(I){Zi(l,u,I)}}var V1=!1;function nD(l,u){for(ee(l.containerInfo),Ke=u;Ke!==null;)if(l=Ke,u=l.child,(l.subtreeFlags&1028)!==0&&u!==null)u.return=l,Ke=u;else for(;Ke!==null;){l=Ke;try{var p=l.alternate;if(l.flags&1024)switch(l.tag){case 0:case 11:case 15:break;case 1:if(p!==null){var I=p.memoizedProps,_=p.memoizedState,Q=l.stateNode,Y=Q.getSnapshotBeforeUpdate(l.elementType===l.type?I:Yr(l.type,I),_);Q.__reactInternalSnapshotBeforeUpdate=Y}break;case 3:Be&&Ge(l.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(le){Zi(l,l.return,le)}if(u=l.sibling,u!==null){u.return=l.return,Ke=u;break}Ke=l.return}return p=V1,V1=!1,p}function Oa(l,u,p){var I=u.updateQueue;if(I=I!==null?I.lastEffect:null,I!==null){var _=I=I.next;do{if((_.tag&l)===l){var Q=_.destroy;_.destroy=void 0,Q!==void 0&&Km(u,p,Q)}_=_.next}while(_!==I)}}function Ju(l,u){if(u=u.updateQueue,u=u!==null?u.lastEffect:null,u!==null){var p=u=u.next;do{if((p.tag&l)===l){var I=p.create;p.destroy=I()}p=p.next}while(p!==u)}}function jm(l){var u=l.ref;if(u!==null){var p=l.stateNode;switch(l.tag){case 5:l=se(p);break;default:l=p}typeof u=="function"?u(l):u.current=l}}function W1(l,u,p){if(hs&&typeof hs.onCommitFiberUnmount=="function")try{hs.onCommitFiberUnmount(sf,u)}catch{}switch(u.tag){case 0:case 11:case 14:case 15:if(l=u.updateQueue,l!==null&&(l=l.lastEffect,l!==null)){var I=l=l.next;do{var _=I,Q=_.destroy;_=_.tag,Q!==void 0&&(_&2||_&4)&&Km(u,p,Q),I=I.next}while(I!==l)}break;case 1:if(Rf(u,p),l=u.stateNode,typeof l.componentWillUnmount=="function")try{l.props=u.memoizedProps,l.state=u.memoizedState,l.componentWillUnmount()}catch(Y){Zi(u,p,Y)}break;case 5:Rf(u,p);break;case 4:Be?q1(l,u,p):H&&H&&(u=u.stateNode.containerInfo,p=it(u),Xt(u,p))}}function Y1(l,u,p){for(var I=u;;)if(W1(l,I,p),I.child===null||Be&&I.tag===4){if(I===u)break;for(;I.sibling===null;){if(I.return===null||I.return===u)return;I=I.return}I.sibling.return=I.return,I=I.sibling}else I.child.return=I,I=I.child}function X1(l){var u=l.alternate;u!==null&&(l.alternate=null,X1(u)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(u=l.stateNode,u!==null&&Te(u)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}function J1(l){return l.tag===5||l.tag===3||l.tag===4}function K1(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||J1(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function j1(l){if(Be){e:{for(var u=l.return;u!==null;){if(J1(u))break e;u=u.return}throw Error(o(160))}var p=u;switch(p.tag){case 5:u=p.stateNode,p.flags&32&&(kt(u),p.flags&=-33),p=K1(l),Zm(l,p,u);break;case 3:case 4:u=p.stateNode.containerInfo,p=K1(l),qm(l,p,u);break;default:throw Error(o(161))}}}function qm(l,u,p){var I=l.tag;if(I===5||I===6)l=l.stateNode,u?ot(p,l,u):It(p,l);else if(I!==4&&(l=l.child,l!==null))for(qm(l,u,p),l=l.sibling;l!==null;)qm(l,u,p),l=l.sibling}function Zm(l,u,p){var I=l.tag;if(I===5||I===6)l=l.stateNode,u?dt(p,l,u):at(p,l);else if(I!==4&&(l=l.child,l!==null))for(Zm(l,u,p),l=l.sibling;l!==null;)Zm(l,u,p),l=l.sibling}function q1(l,u,p){for(var I=u,_=!1,Q,Y;;){if(!_){_=I.return;e:for(;;){if(_===null)throw Error(o(160));switch(Q=_.stateNode,_.tag){case 5:Y=!1;break e;case 3:Q=Q.containerInfo,Y=!0;break e;case 4:Q=Q.containerInfo,Y=!0;break e}_=_.return}_=!0}if(I.tag===5||I.tag===6)Y1(l,I,p),Y?Bt(Q,I.stateNode):tt(Q,I.stateNode);else if(I.tag===18)Y?Ie(Q,I.stateNode):Se(Q,I.stateNode);else if(I.tag===4){if(I.child!==null){Q=I.stateNode.containerInfo,Y=!0,I.child.return=I,I=I.child;continue}}else if(W1(l,I,p),I.child!==null){I.child.return=I,I=I.child;continue}if(I===u)break;for(;I.sibling===null;){if(I.return===null||I.return===u)return;I=I.return,I.tag===4&&(_=!1)}I.sibling.return=I.return,I=I.sibling}}function $m(l,u){if(Be){switch(u.tag){case 0:case 11:case 14:case 15:Oa(3,u,u.return),Ju(3,u),Oa(5,u,u.return);return;case 1:return;case 5:var p=u.stateNode;if(p!=null){var I=u.memoizedProps;l=l!==null?l.memoizedProps:I;var _=u.type,Q=u.updateQueue;u.updateQueue=null,Q!==null&&wt(p,Q,_,l,I,u)}return;case 6:if(u.stateNode===null)throw Error(o(162));p=u.memoizedProps,Le(u.stateNode,l!==null?l.memoizedProps:p,p);return;case 3:Ee&&l!==null&&l.memoizedState.isDehydrated&&de(u.stateNode.containerInfo);return;case 12:return;case 13:Tf(u);return;case 19:Tf(u);return;case 17:return}throw Error(o(163))}switch(u.tag){case 0:case 11:case 14:case 15:Oa(3,u,u.return),Ju(3,u),Oa(5,u,u.return);return;case 12:return;case 13:Tf(u);return;case 19:Tf(u);return;case 3:Ee&&l!==null&&l.memoizedState.isDehydrated&&de(u.stateNode.containerInfo);break;case 22:case 23:return}e:if(H){switch(u.tag){case 1:case 5:case 6:break e;case 3:case 4:u=u.stateNode,Xt(u.containerInfo,u.pendingChildren);break e}throw Error(o(163))}}function Tf(l){var u=l.updateQueue;if(u!==null){l.updateQueue=null;var p=l.stateNode;p===null&&(p=l.stateNode=new tD),u.forEach(function(I){var _=hD.bind(null,l,I);p.has(I)||(p.add(I),I.then(_,_))})}}function iD(l,u){for(Ke=u;Ke!==null;){u=Ke;var p=u.deletions;if(p!==null)for(var I=0;I";case bf:return":has("+(n0(l)||"")+")";case Nf:return'[role="'+l.value+'"]';case Pf:return'"'+l.value+'"';case Lf:return'[data-testname="'+l.value+'"]';default:throw Error(o(365))}}function nx(l,u){var p=[];l=[l,0];for(var I=0;I_&&(_=Y),I&=~Q}if(I=_,I=ri()-I,I=(120>I?120:480>I?480:1080>I?1080:1920>I?1920:3e3>I?3e3:4320>I?4320:1960*sD(I/1960))-I,10l?16:l,xo===null)var I=!1;else{if(l=xo,xo=null,Of=0,Gt&6)throw Error(o(331));var _=Gt;for(Gt|=4,Ke=l.current;Ke!==null;){var Q=Ke,Y=Q.child;if(Ke.flags&16){var le=Q.deletions;if(le!==null){for(var Re=0;Reri()-o0?Ha(l,0):s0|=p),qi(l,u)}function Ax(l,u){u===0&&(l.mode&1?(u=Ht,Ht<<=1,!(Ht&130023424)&&(Ht=4194304)):u=1);var p=Ni();l=Vf(l,u),l!==null&&(yo(l,u,p),qi(l,p))}function AD(l){var u=l.memoizedState,p=0;u!==null&&(p=u.retryLane),Ax(l,p)}function hD(l,u){var p=0;switch(l.tag){case 13:var I=l.stateNode,_=l.memoizedState;_!==null&&(p=_.retryLane);break;case 19:I=l.stateNode;break;default:throw Error(o(314))}I!==null&&I.delete(u),Ax(l,p)}var hx;hx=function(l,u,p){if(l!==null)if(l.memoizedProps!==u.pendingProps||hn.current)hr=!0;else{if(!(l.lanes&p)&&!(u.flags&128))return hr=!1,$T(l,u,p);hr=!!(l.flags&131072)}else hr=!1,xn&&u.flags&1048576&&Zv(u,df,u.index);switch(u.lanes=0,u.tag){case 2:var I=u.type;l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),l=u.pendingProps;var _=N(u,vt.current);ql(u,p),_=Fm(null,u,I,l,_,p);var Q=km();return u.flags|=1,typeof _=="object"&&_!==null&&typeof _.render=="function"&&_.$$typeof===void 0?(u.tag=1,u.memoizedState=null,u.updateQueue=null,L(I)?(Q=!0,we(u)):Q=!1,u.memoizedState=_.state!==null&&_.state!==void 0?_.state:null,_m(u),_.updater=hf,u.stateNode=_,_._reactInternals=u,wm(u,I,l,p),u=Ym(null,u,I,!0,Q,p)):(u.tag=0,xn&&Q&&Mm(u),bi(null,u,_,p),u=u.child),u;case 16:I=u.elementType;e:{switch(l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),l=u.pendingProps,_=I._init,I=_(I._payload),u.type=I,_=u.tag=dD(I),l=Yr(I,l),_){case 0:u=Wm(null,u,I,l,p);break e;case 1:u=P1(null,u,I,l,p);break e;case 11:u=T1(null,u,I,l,p);break e;case 14:u=D1(null,u,I,Yr(I.type,l),p);break e}throw Error(o(306,I,""))}return u;case 0:return I=u.type,_=u.pendingProps,_=u.elementType===I?_:Yr(I,_),Wm(l,u,I,_,p);case 1:return I=u.type,_=u.pendingProps,_=u.elementType===I?_:Yr(I,_),P1(l,u,I,_,p);case 3:e:{if(U1(u),l===null)throw Error(o(387));I=u.pendingProps,Q=u.memoizedState,_=Q.element,Wv(l,u),Af(u,I,null,p);var Y=u.memoizedState;if(I=Y.element,Ee&&Q.isDehydrated)if(Q={element:I,isDehydrated:!1,cache:Y.cache,transitions:Y.transitions},u.updateQueue.baseState=Q,u.memoizedState=Q,u.flags&256){_=Error(o(423)),u=F1(l,u,I,p,_);break e}else if(I!==_){_=Error(o(424)),u=F1(l,u,I,p,_);break e}else for(Ee&&(Ar=mo(u.stateNode.containerInfo),ur=u,xn=!0,Xr=null,Pu=!1),p=r1(u,null,I,p),u.child=p;p;)p.flags=p.flags&-3|4096,p=p.sibling;else{if(ec(),I===_){u=Vs(l,u,p);break e}bi(l,u,I,p)}u=u.child}return u;case 5:return s1(u),l===null&&Tm(u),I=u.type,_=u.pendingProps,Q=l!==null?l.memoizedProps:null,Y=_.children,O(I,_)?Y=null:Q!==null&&O(I,Q)&&(u.flags|=32),L1(l,u),bi(l,u,Y,p),u.child;case 6:return l===null&&Tm(u),null;case 13:return k1(l,u,p);case 4:return bm(u,u.stateNode.containerInfo),I=u.pendingProps,l===null?u.child=tc(u,null,I,p):bi(l,u,I,p),u.child;case 11:return I=u.type,_=u.pendingProps,_=u.elementType===I?_:Yr(I,_),T1(l,u,I,_,p);case 7:return bi(l,u,u.pendingProps,p),u.child;case 8:return bi(l,u,u.pendingProps.children,p),u.child;case 12:return bi(l,u,u.pendingProps.children,p),u.child;case 10:e:{if(I=u.type._context,_=u.pendingProps,Q=u.memoizedProps,Y=_.value,Vv(u,I,Y),Q!==null)if(fs(Q.value,Y)){if(Q.children===_.children&&!hn.current){u=Vs(l,u,p);break e}}else for(Q=u.child,Q!==null&&(Q.return=u);Q!==null;){var le=Q.dependencies;if(le!==null){Y=Q.child;for(var Re=le.firstContext;Re!==null;){if(Re.context===I){if(Q.tag===1){Re=Gs(-1,p&-p),Re.tag=2;var He=Q.updateQueue;if(He!==null){He=He.shared;var rt=He.pending;rt===null?Re.next=Re:(Re.next=rt.next,rt.next=Re),He.pending=Re}}Q.lanes|=p,Re=Q.alternate,Re!==null&&(Re.lanes|=p),Bm(Q.return,p,u),le.lanes|=p;break}Re=Re.next}}else if(Q.tag===10)Y=Q.type===u.type?null:Q.child;else if(Q.tag===18){if(Y=Q.return,Y===null)throw Error(o(341));Y.lanes|=p,le=Y.alternate,le!==null&&(le.lanes|=p),Bm(Y,p,u),Y=Q.sibling}else Y=Q.child;if(Y!==null)Y.return=Q;else for(Y=Q;Y!==null;){if(Y===u){Y=null;break}if(Q=Y.sibling,Q!==null){Q.return=Y.return,Y=Q;break}Y=Y.return}Q=Y}bi(l,u,_.children,p),u=u.child}return u;case 9:return _=u.type,I=u.pendingProps.children,ql(u,p),_=wr(_),I=I(_),u.flags|=1,bi(l,u,I,p),u.child;case 14:return I=u.type,_=Yr(I,u.pendingProps),_=Yr(I.type,_),D1(l,u,I,_,p);case 15:return b1(l,u,u.type,u.pendingProps,p);case 17:return I=u.type,_=u.pendingProps,_=u.elementType===I?_:Yr(I,_),l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),u.tag=1,L(I)?(l=!0,we(u)):l=!1,ql(u,p),jv(u,I,_),wm(u,I,_,p),Ym(null,u,I,!0,l,p);case 19:return z1(l,u,p);case 22:return N1(l,u,p)}throw Error(o(156,u.tag))};function fx(l,u){return mm(l,u)}function fD(l,u,p,I){this.tag=l,this.key=p,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=I,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function br(l,u,p,I){return new fD(l,u,p,I)}function d0(l){return l=l.prototype,!(!l||!l.isReactComponent)}function dD(l){if(typeof l=="function")return d0(l)?1:0;if(l!=null){if(l=l.$$typeof,l===x)return 11;if(l===v)return 14}return 2}function So(l,u){var p=l.alternate;return p===null?(p=br(l.tag,u,l.key,l.mode),p.elementType=l.elementType,p.type=l.type,p.stateNode=l.stateNode,p.alternate=l,l.alternate=p):(p.pendingProps=u,p.type=l.type,p.flags=0,p.subtreeFlags=0,p.deletions=null),p.flags=l.flags&14680064,p.childLanes=l.childLanes,p.lanes=l.lanes,p.child=l.child,p.memoizedProps=l.memoizedProps,p.memoizedState=l.memoizedState,p.updateQueue=l.updateQueue,u=l.dependencies,p.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},p.sibling=l.sibling,p.index=l.index,p.ref=l.ref,p}function Yf(l,u,p,I,_,Q){var Y=2;if(I=l,typeof l=="function")d0(l)&&(Y=1);else if(typeof l=="string")Y=5;else e:switch(l){case h:return Wa(p.children,_,Q,u);case f:Y=8,_|=8;break;case d:return l=br(12,p,u,_|2),l.elementType=d,l.lanes=Q,l;case y:return l=br(13,p,u,_),l.elementType=y,l.lanes=Q,l;case g:return l=br(19,p,u,_),l.elementType=g,l.lanes=Q,l;case B:return Xf(p,_,Q,u);default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case m:Y=10;break e;case E:Y=9;break e;case x:Y=11;break e;case v:Y=14;break e;case C:Y=16,I=null;break e}throw Error(o(130,l==null?l:typeof l,""))}return u=br(Y,p,u,_),u.elementType=l,u.type=I,u.lanes=Q,u}function Wa(l,u,p,I){return l=br(7,l,I,u),l.lanes=p,l}function Xf(l,u,p,I){return l=br(22,l,I,u),l.elementType=B,l.lanes=p,l.stateNode={},l}function p0(l,u,p){return l=br(6,l,null,u),l.lanes=p,l}function g0(l,u,p){return u=br(4,l.children!==null?l.children:[],l.key,u),u.lanes=p,u.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},u}function pD(l,u,p,I,_){this.tag=u,this.containerInfo=l,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=ve,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=cr(0),this.expirationTimes=cr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=cr(0),this.identifierPrefix=I,this.onRecoverableError=_,Ee&&(this.mutableSourceEagerHydrationData=null)}function dx(l,u,p,I,_,Q,Y,le,Re){return l=new pD(l,u,p,le,Re),u===1?(u=1,Q===!0&&(u|=8)):u=0,Q=br(3,null,null,u),l.current=Q,Q.stateNode=l,Q.memoizedState={element:I,isDehydrated:p,cache:null,transitions:null},_m(Q),l}function px(l){if(!l)return Ei;l=l._reactInternals;e:{if(K(l)!==l||l.tag!==1)throw Error(o(170));var u=l;do{switch(u.tag){case 3:u=u.stateNode.context;break e;case 1:if(L(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break e}}u=u.return}while(u!==null);throw Error(o(171))}if(l.tag===1){var p=l.type;if(L(p))return pe(l,p,u)}return u}function gx(l){var u=l._reactInternals;if(u===void 0)throw typeof l.render=="function"?Error(o(188)):(l=Object.keys(l).join(","),Error(o(268,l)));return l=q(u),l===null?null:l.stateNode}function mx(l,u){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var p=l.retryLane;l.retryLane=p!==0&&p=He&&Q>=Tt&&_<=rt&&Y<=mt){l.splice(u,1);break}else if(I!==He||p.width!==Re.width||mtY){if(!(Q!==Tt||p.height!==Re.height||rt_)){He>I&&(Re.width+=He-I,Re.x=I),rt<_&&(Re.width=_-He),l.splice(u,1);break}}else{Tt>Q&&(Re.height+=Tt-Q,Re.y=Q),mtp&&(p=Y)),Y ")+` - -No matching component was found for: - `)+l.join(" > ")}return null},t.getPublicRootInstance=function(l){if(l=l.current,!l.child)return null;switch(l.child.tag){case 5:return se(l.child.stateNode);default:return l.child.stateNode}},t.injectIntoDevTools=function(l){if(l={bundleType:l.bundleType,version:l.version,rendererPackageName:l.rendererPackageName,rendererConfig:l.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:a.ReactCurrentDispatcher,findHostInstanceByFiber:gD,findFiberByHostInstance:l.findFiberByHostInstance||mD,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")l=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)l=!0;else{try{sf=u.inject(l),hs=u}catch{}l=!!u.checkDCE}}return l},t.isAlreadyRendering=function(){return!1},t.observeVisibleRects=function(l,u,p,I){if(!D)throw Error(o(363));l=i0(l,u);var _=je(l,p,I).disconnect;return{disconnect:function(){_()}}},t.registerMutableSourceForHydration=function(l,u){var p=u._getVersion;p=p(u._source),l.mutableSourceEagerHydrationData==null?l.mutableSourceEagerHydrationData=[u,p]:l.mutableSourceEagerHydrationData.push(u,p)},t.runWithPriority=function(l,u){var p=qt;try{return qt=l,u()}finally{qt=p}},t.shouldError=function(){return null},t.shouldSuspend=function(){return!1},t.updateContainer=function(l,u,p,I){var _=u.current,Q=Ni(),Y=Bo(_);return p=px(p),u.context===null?u.context=p:u.pendingContext=p,u=Gs(Q,Y),u.payload={element:l},I=I===void 0?null:I,I!==null&&(u.callback=I),Io(_,u),l=Dr(_,Y,Q),l!==null&&uf(l,_,Y),Y},t};pR.exports=OG;var HG=pR.exports;const zG=OS(HG),Qv={},VG=n=>void Object.assign(Qv,n);function WG(n,e){function t(h,{args:f=[],attach:d,...m},E){let x=`${h[0].toUpperCase()}${h.slice(1)}`,y;if(h==="primitive"){if(m.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const g=m.object;y=Uc(g,{type:h,root:E,attach:d,primitive:!0})}else{const g=Qv[x];if(!g)throw new Error(`R3F: ${x} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(f))throw new Error("R3F: The args prop must be an array!");y=Uc(new g(...f),{type:h,root:E,attach:d,memoizedProps:{args:f}})}return y.__r3f.attach===void 0&&(y instanceof Nt?y.__r3f.attach="geometry":y instanceof Ai&&(y.__r3f.attach="material")),x!=="inject"&&QE(y,m),y}function i(h,f){let d=!1;if(f){var m,E;(m=f.__r3f)!=null&&m.attach?ME(h,f,f.__r3f.attach):f.isObject3D&&h.isObject3D&&(h.add(f),d=!0),d||(E=h.__r3f)==null||E.objects.push(f),f.__r3f||Uc(f,{}),f.__r3f.parent=h,RC(f),Fc(f)}}function r(h,f,d){let m=!1;if(f){var E,x;if((E=f.__r3f)!=null&&E.attach)ME(h,f,f.__r3f.attach);else if(f.isObject3D&&h.isObject3D){f.parent=h,f.dispatchEvent({type:"added"});const y=h.children.filter(v=>v!==f),g=y.indexOf(d);h.children=[...y.slice(0,g),f,...y.slice(g)],m=!0}m||(x=h.__r3f)==null||x.objects.push(f),f.__r3f||Uc(f,{}),f.__r3f.parent=h,RC(f),Fc(f)}}function s(h,f,d=!1){h&&[...h].forEach(m=>o(f,m,d))}function o(h,f,d){if(f){var m,E,x;if(f.__r3f&&(f.__r3f.parent=null),(m=h.__r3f)!=null&&m.objects&&(h.__r3f.objects=h.__r3f.objects.filter(B=>B!==f)),(E=f.__r3f)!=null&&E.attach)cS(h,f,f.__r3f.attach);else if(f.isObject3D&&h.isObject3D){var y;h.remove(f),(y=f.__r3f)!=null&&y.root&&ZG(f.__r3f.root,f)}const v=(x=f.__r3f)==null?void 0:x.primitive,C=!v&&(d===void 0?f.dispose!==null:d);if(!v){var g;s((g=f.__r3f)==null?void 0:g.objects,f,C),s(f.children,f,C)}if(delete f.__r3f,C&&f.dispose&&f.type!=="Scene"){const B=()=>{try{f.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?MC.unstable_scheduleCallback(MC.unstable_IdlePriority,B):B()}Fc(h)}}function a(h,f,d,m){var E;const x=(E=h.__r3f)==null?void 0:E.parent;if(!x)return;const y=t(f,d,h.__r3f.root);if(h.children){for(const g of h.children)g.__r3f&&i(y,g);h.children=h.children.filter(g=>!g.__r3f)}h.__r3f.objects.forEach(g=>i(y,g)),h.__r3f.objects=[],h.__r3f.autoRemovedBeforeAppend||o(x,h),y.parent&&(y.__r3f.autoRemovedBeforeAppend=!0),i(x,y),y.raycast&&y.__r3f.eventCount&&y.__r3f.root.getState().internal.interaction.push(y),[m,m.alternate].forEach(g=>{g!==null&&(g.stateNode=y,g.ref&&(typeof g.ref=="function"?g.ref(y):g.ref.current=y))})}const c=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:zG({createInstance:t,removeChild:o,appendChild:i,appendInitialChild:i,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(h,f)=>{if(!f)return;const d=h.getState().scene;d.__r3f&&(d.__r3f.root=h,i(d,f))},removeChildFromContainer:(h,f)=>{f&&o(h.getState().scene,f)},insertInContainerBefore:(h,f,d)=>{if(!f||!d)return;const m=h.getState().scene;m.__r3f&&r(m,f,d)},getRootHostContext:()=>null,getChildHostContext:h=>h,finalizeInitialChildren(h){var f;return!!((f=h==null?void 0:h.__r3f)!=null?f:{}).handlers},prepareUpdate(h,f,d,m){var E;if(((E=h==null?void 0:h.__r3f)!=null?E:{}).primitive&&m.object&&m.object!==h)return[!0];{const{args:y=[],children:g,...v}=m,{args:C=[],children:B,...R}=d;if(!Array.isArray(y))throw new Error("R3F: the args prop must be an array!");if(y.some((T,P)=>T!==C[P]))return[!0];const w=BR(h,v,R,!0);return w.changes.length?[!1,w]:null}},commitUpdate(h,[f,d],m,E,x,y){f?a(h,m,x,y):QE(h,d)},commitMount(h,f,d,m){var E;const x=(E=h.__r3f)!=null?E:{};h.raycast&&x.handlers&&x.eventCount&&h.__r3f.root.getState().internal.interaction.push(h)},getPublicInstance:h=>h,prepareForCommit:()=>null,preparePortalMount:h=>Uc(h.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(h){var f;const{attach:d,parent:m}=(f=h.__r3f)!=null?f:{};d&&m&&cS(m,h,d),h.isObject3D&&(h.visible=!1),Fc(h)},unhideInstance(h,f){var d;const{attach:m,parent:E}=(d=h.__r3f)!=null?d:{};m&&E&&ME(E,h,m),(h.isObject3D&&f.visible==null||f.visible)&&(h.visible=!0),Fc(h)},createTextInstance:c,hideTextInstance:c,unhideTextInstance:c,getCurrentEventPriority:()=>e?e():nu.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&Bn.fun(performance.now)?performance.now:Bn.fun(Date.now)?Date.now:()=>0,scheduleTimeout:Bn.fun(setTimeout)?setTimeout:void 0,cancelTimeout:Bn.fun(clearTimeout)?clearTimeout:void 0}),applyProps:QE}}var sS,oS;const wE=n=>"colorSpace"in n||"outputColorSpace"in n,ER=()=>{var n;return(n=Qv.ColorManagement)!=null?n:null},yR=n=>n&&n.isOrthographicCamera,YG=n=>n&&n.hasOwnProperty("current"),Jh=typeof window<"u"&&((sS=window.document)!=null&&sS.createElement||((oS=window.navigator)==null?void 0:oS.product)==="ReactNative")?j.useLayoutEffect:j.useEffect;function CR(n){const e=j.useRef(n);return Jh(()=>void(e.current=n),[n]),e}function XG({set:n}){return Jh(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}class IR extends j.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}IR.getDerivedStateFromError=()=>({error:!0});const vR="__default",aS=new Map,JG=n=>n&&!!n.memoized&&!!n.changes;function xR(n){var e;const t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}const EA=n=>{var e;return(e=n.__r3f)==null?void 0:e.root.getState()},Bn={obj:n=>n===Object(n)&&!Bn.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(Bn.str(n)||Bn.num(n))return n===e;const s=Bn.obj(n);if(s&&i==="reference")return n===e;const o=Bn.arr(n);if(o&&t==="reference")return n===e;if((o||s)&&n===e)return!0;let a;for(a in n)if(!(a in e))return!1;if(s&&t==="shallow"&&i==="shallow"){for(a in r?e:n)if(!Bn.equ(n[a],e[a],{strict:r,objects:"reference"}))return!1}else for(a in r?e:n)if(n[a]!==e[a])return!1;if(Bn.und(a)){if(o&&n.length===0&&e.length===0||s&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function KG(n){n.dispose&&n.type!=="Scene"&&n.dispose();for(const e in n)e.dispose==null||e.dispose(),delete n[e]}function Uc(n,e){const t=n;return t.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},n}function QC(n,e){let t=n;if(e.includes("-")){const i=e.split("-"),r=i.pop();return t=i.reduce((s,o)=>s[o],n),{target:t,key:r}}else return{target:t,key:e}}const lS=/-\d+$/;function ME(n,e,t){if(Bn.str(t)){if(lS.test(t)){const s=t.replace(lS,""),{target:o,key:a}=QC(n,s);Array.isArray(o[a])||(o[a]=[])}const{target:i,key:r}=QC(n,t);e.__r3f.previousAttach=i[r],i[r]=e}else e.__r3f.previousAttach=t(n,e)}function cS(n,e,t){var i,r;if(Bn.str(t)){const{target:s,key:o}=QC(n,t),a=e.__r3f.previousAttach;a===void 0?delete s[o]:s[o]=a}else(i=e.__r3f)==null||i.previousAttach==null||i.previousAttach(n,e);(r=e.__r3f)==null||delete r.previousAttach}function BR(n,{children:e,key:t,ref:i,...r},{children:s,key:o,ref:a,...c}={},A=!1){var h;const f=(h=n==null?void 0:n.__r3f)!=null?h:{},d=Object.entries(r),m=[];if(A){const x=Object.keys(c);for(let y=0;y{var g;if((g=n.__r3f)!=null&&g.primitive&&x==="object"||Bn.equ(y,c[x]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(x))return m.push([x,y,!0,[]]);let v=[];x.includes("-")&&(v=x.split("-")),m.push([x,y,!1,v]);for(const C in r){const B=r[C];C.startsWith(`${x}-`)&&m.push([C,B,!1,C.split("-")])}});const E={...r};return f.memoizedProps&&f.memoizedProps.args&&(E.args=f.memoizedProps.args),f.memoizedProps&&f.memoizedProps.attach&&(E.attach=f.memoizedProps.attach),{memoized:E,changes:m}}const jG=typeof process<"u"&&!1;function QE(n,e){var t,i,r;const s=(t=n.__r3f)!=null?t:{},o=s.root,a=(i=o==null||o.getState==null?void 0:o.getState())!=null?i:{},{memoized:c,changes:A}=JG(e)?e:BR(n,e),h=s.eventCount;n.__r3f&&(n.__r3f.memoizedProps=c);for(let d=0;dC[B],n),!(v&&v.set))){const[C,...B]=y.reverse();g=B.reverse().reduce((R,w)=>R[w],n),m=C}if(E===vR+"remove")if(g.constructor){let C=aS.get(g.constructor);C||(C=new g.constructor,aS.set(g.constructor,C)),E=C[m]}else E=0;if(x)E?s.handlers[m]=E:delete s.handlers[m],s.eventCount=Object.keys(s.handlers).length;else if(v&&v.set&&(v.copy||v instanceof _l)){if(Array.isArray(E))v.fromArray?v.fromArray(E):v.set(...E);else if(v.copy&&E&&E.constructor&&(jG?v.constructor.name===E.constructor.name:v.constructor===E.constructor))v.copy(E);else if(E!==void 0){const C=v instanceof Je;!C&&v.setScalar?v.setScalar(E):v instanceof _l&&E instanceof _l?v.mask=E.mask:v.set(E),!ER()&&!a.linear&&C&&v.convertSRGBToLinear()}}else if(g[m]=E,g[m]instanceof Sn&&g[m].format===ki&&g[m].type===Rs){const C=g[m];wE(C)&&wE(a.gl)?C.colorSpace=a.gl.outputColorSpace:C.encoding=a.gl.outputEncoding}Fc(n)}if(s.parent&&a.internal&&n.raycast&&h!==s.eventCount){const d=a.internal.interaction.indexOf(n);d>-1&&a.internal.interaction.splice(d,1),s.eventCount&&a.internal.interaction.push(n)}return!(A.length===1&&A[0][0]==="onUpdate")&&A.length&&(r=n.__r3f)!=null&&r.parent&&RC(n),n}function Fc(n){var e,t;const i=(e=n.__r3f)==null||(t=e.root)==null||t.getState==null?void 0:t.getState();i&&i.internal.frames===0&&i.invalidate()}function RC(n){n.onUpdate==null||n.onUpdate(n)}function _R(n,e){n.manual||(yR(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix(),n.updateMatrixWorld())}function np(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function qG(){var n;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return nu.DefaultEventPriority;switch((n=e.event)==null?void 0:n.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return nu.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return nu.ContinuousEventPriority;default:return nu.DefaultEventPriority}}function SR(n,e,t,i){const r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function ZG(n,e){const{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{SR(t.capturedMap,e,i,r)})}function $G(n){function e(c){const{internal:A}=n.getState(),h=c.offsetX-A.initialClick[0],f=c.offsetY-A.initialClick[1];return Math.round(Math.sqrt(h*h+f*f))}function t(c){return c.filter(A=>["Move","Over","Enter","Out","Leave"].some(h=>{var f;return(f=A.__r3f)==null?void 0:f.handlers["onPointer"+h]}))}function i(c,A){const h=n.getState(),f=new Set,d=[],m=A?A(h.internal.interaction):h.internal.interaction;for(let g=0;g{const C=EA(g.object),B=EA(v.object);return!C||!B?g.distance-v.distance:B.events.priority-C.events.priority||g.distance-v.distance}).filter(g=>{const v=np(g);return f.has(v)?!1:(f.add(v),!0)});h.events.filter&&(x=h.events.filter(x,h));for(const g of x){let v=g.object;for(;v;){var y;(y=v.__r3f)!=null&&y.eventCount&&d.push({...g,eventObject:v}),v=v.parent}}if("pointerId"in c&&h.internal.capturedMap.has(c.pointerId))for(let g of h.internal.capturedMap.get(c.pointerId).values())f.has(np(g.intersection))||d.push(g.intersection);return d}function r(c,A,h,f){const d=n.getState();if(c.length){const m={stopped:!1};for(const E of c){const x=EA(E.object)||d,{raycaster:y,pointer:g,camera:v,internal:C}=x,B=new G(g.x,g.y,0).unproject(v),R=M=>{var b,q;return(b=(q=C.capturedMap.get(M))==null?void 0:q.has(E.eventObject))!=null?b:!1},w=M=>{const b={intersection:E,target:A.target};C.capturedMap.has(M)?C.capturedMap.get(M).set(E.eventObject,b):C.capturedMap.set(M,new Map([[E.eventObject,b]])),A.target.setPointerCapture(M)},T=M=>{const b=C.capturedMap.get(M);b&&SR(C.capturedMap,E.eventObject,b,M)};let P={};for(let M in A){let b=A[M];typeof b!="function"&&(P[M]=b)}let K={...E,...P,pointer:g,intersections:c,stopped:m.stopped,delta:h,unprojectedPoint:B,ray:y.ray,camera:v,stopPropagation(){const M="pointerId"in A&&C.capturedMap.get(A.pointerId);if((!M||M.has(E.eventObject))&&(K.stopped=m.stopped=!0,C.hovered.size&&Array.from(C.hovered.values()).find(b=>b.eventObject===E.eventObject))){const b=c.slice(0,c.indexOf(E));s([...b,E])}},target:{hasPointerCapture:R,setPointerCapture:w,releasePointerCapture:T},currentTarget:{hasPointerCapture:R,setPointerCapture:w,releasePointerCapture:T},nativeEvent:A};if(f(K),m.stopped===!0)break}}return c}function s(c){const{internal:A}=n.getState();for(const h of A.hovered.values())if(!c.length||!c.find(f=>f.object===h.object&&f.index===h.index&&f.instanceId===h.instanceId)){const d=h.eventObject.__r3f,m=d==null?void 0:d.handlers;if(A.hovered.delete(np(h)),d!=null&&d.eventCount){const E={...h,intersections:c};m.onPointerOut==null||m.onPointerOut(E),m.onPointerLeave==null||m.onPointerLeave(E)}}}function o(c,A){for(let h=0;hs([]);case"onLostPointerCapture":return A=>{const{internal:h}=n.getState();"pointerId"in A&&h.capturedMap.has(A.pointerId)&&requestAnimationFrame(()=>{h.capturedMap.has(A.pointerId)&&(h.capturedMap.delete(A.pointerId),s([]))})}}return function(h){const{onPointerMissed:f,internal:d}=n.getState();d.lastEvent.current=h;const m=c==="onPointerMove",E=c==="onClick"||c==="onContextMenu"||c==="onDoubleClick",y=i(h,m?t:void 0),g=E?e(h):0;c==="onPointerDown"&&(d.initialClick=[h.offsetX,h.offsetY],d.initialHits=y.map(C=>C.eventObject)),E&&!y.length&&g<=2&&(o(h,d.interaction),f&&f(h)),m&&s(y);function v(C){const B=C.eventObject,R=B.__r3f,w=R==null?void 0:R.handlers;if(R!=null&&R.eventCount)if(m){if(w.onPointerOver||w.onPointerEnter||w.onPointerOut||w.onPointerLeave){const T=np(C),P=d.hovered.get(T);P?P.stopped&&C.stopPropagation():(d.hovered.set(T,C),w.onPointerOver==null||w.onPointerOver(C),w.onPointerEnter==null||w.onPointerEnter(C))}w.onPointerMove==null||w.onPointerMove(C)}else{const T=w[c];T?(!E||d.initialHits.includes(B))&&(o(h,d.interaction.filter(P=>!d.initialHits.includes(P))),T(C)):E&&d.initialHits.includes(B)&&o(h,d.interaction.filter(P=>!d.initialHits.includes(P)))}}r(y,h,g,v)}}return{handlePointer:a}}const eO=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],wR=n=>!!(n!=null&&n.render),Rv=j.createContext(null),tO=(n,e)=>{const t=dR((a,c)=>{const A=new G,h=new G,f=new G;function d(g=c().camera,v=h,C=c().size){const{width:B,height:R,top:w,left:T}=C,P=B/R;v instanceof G?f.copy(v):f.set(...v);const K=g.getWorldPosition(A).distanceTo(f);if(yR(g))return{width:B/g.zoom,height:R/g.zoom,top:w,left:T,factor:1,distance:K,aspect:P};{const M=g.fov*Math.PI/180,b=2*Math.tan(M/2)*K,q=b*(B/R);return{width:q,height:b,top:w,left:T,factor:B/q,distance:K,aspect:P}}}let m;const E=g=>a(v=>({performance:{...v.performance,current:g}})),x=new _e;return{set:a,get:c,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(g=1)=>n(c(),g),advance:(g,v)=>e(g,v,c()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new Bv,pointer:x,mouse:x,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const g=c();m&&clearTimeout(m),g.performance.current!==g.performance.min&&E(g.performance.min),m=setTimeout(()=>E(c().performance.max),g.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:d},setEvents:g=>a(v=>({...v,events:{...v.events,...g}})),setSize:(g,v,C,B,R)=>{const w=c().camera,T={width:g,height:v,top:B||0,left:R||0,updateStyle:C};a(P=>({size:T,viewport:{...P.viewport,...d(w,h,T)}}))},setDpr:g=>a(v=>{const C=xR(g);return{viewport:{...v.viewport,dpr:C,initialDpr:v.viewport.initialDpr||C}}}),setFrameloop:(g="always")=>{const v=c().clock;v.stop(),v.elapsedTime=0,g!=="never"&&(v.start(),v.elapsedTime=0),a(()=>({frameloop:g}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:j.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(g,v,C)=>{const B=c().internal;return B.priority=B.priority+(v>0?1:0),B.subscribers.push({ref:g,priority:v,store:C}),B.subscribers=B.subscribers.sort((R,w)=>R.priority-w.priority),()=>{const R=c().internal;R!=null&&R.subscribers&&(R.priority=R.priority-(v>0?1:0),R.subscribers=R.subscribers.filter(w=>w.ref!==g))}}}}}),i=t.getState();let r=i.size,s=i.viewport.dpr,o=i.camera;return t.subscribe(()=>{const{camera:a,size:c,viewport:A,gl:h,set:f}=t.getState();if(c.width!==r.width||c.height!==r.height||A.dpr!==s){var d;r=c,s=A.dpr,_R(a,c),h.setPixelRatio(A.dpr);const m=(d=c.updateStyle)!=null?d:typeof HTMLCanvasElement<"u"&&h.domElement instanceof HTMLCanvasElement;h.setSize(c.width,c.height,m)}a!==o&&(o=a,f(m=>({viewport:{...m.viewport,...m.viewport.getCurrentViewport(a)}})))}),t.subscribe(a=>n(a)),t};let ip,nO=new Set,iO=new Set,rO=new Set;function RE(n,e){if(n.size)for(const{callback:t}of n.values())t(e)}function yA(n,e){switch(n){case"before":return RE(nO,e);case"after":return RE(iO,e);case"tail":return RE(rO,e)}}let TE,DE;function bE(n,e,t){let i=e.clock.getDelta();for(e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),TE=e.internal.subscribers,ip=0;ip0)&&!((A=r.gl.xr)!=null&&A.isPresenting)&&(t+=bE(c,r))}if(yA("after",c),t===0)return yA("tail",c),e=!1,cancelAnimationFrame(i)}function o(c,A=1){var h;if(!c)return n.forEach(f=>o(f.store.getState()),A);(h=c.gl.xr)!=null&&h.isPresenting||!c.internal.active||c.frameloop==="never"||(c.internal.frames=Math.min(60,c.internal.frames+A),e||(e=!0,requestAnimationFrame(s)))}function a(c,A=!0,h,f){if(A&&yA("before",c),h)bE(c,h,f);else for(const d of n.values())bE(c,d.store.getState());A&&yA("after",c)}return{loop:s,invalidate:o,advance:a}}function Kh(){const n=j.useContext(Rv);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function Tv(n=t=>t,e){return Kh()(n,e)}function ya(n,e=0){const t=Kh(),i=t.getState().internal.subscribe,r=CR(n);return Jh(()=>i(r,e,t),[e,i,t]),null}const Cu=new Map,{invalidate:uS,advance:AS}=sO(Cu),{reconciler:Rh,applyProps:Rc}=WG(Cu,qG),Tc={objects:"shallow",strict:!1},oO=(n,e)=>{const t=typeof n=="function"?n(e):n;return wR(t)?t:new ov({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...n})};function aO(n,e){const t=typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement;if(e){const{width:i,height:r,top:s,left:o,updateStyle:a=t}=e;return{width:i,height:r,top:s,left:o,updateStyle:a}}else if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){const{width:i,height:r,top:s,left:o}=n.parentElement.getBoundingClientRect();return{width:i,height:r,top:s,left:o,updateStyle:t}}else if(typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0,updateStyle:t};return{width:0,height:0,top:0,left:0}}function lO(n){const e=Cu.get(n),t=e==null?void 0:e.fiber,i=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,s=i||tO(uS,AS),o=t||Rh.createContainer(s,nu.ConcurrentRoot,null,!1,null,"",r,null);e||Cu.set(n,{fiber:o,store:s});let a,c=!1,A;return{configure(h={}){let{gl:f,size:d,scene:m,events:E,onCreated:x,shadows:y=!1,linear:g=!1,flat:v=!1,legacy:C=!1,orthographic:B=!1,frameloop:R="always",dpr:w=[1,2],performance:T,raycaster:P,camera:K,onPointerMissed:M}=h,b=s.getState(),q=b.gl;b.gl||b.set({gl:q=oO(f,n)});let ge=b.raycaster;ge||b.set({raycaster:ge=new Mv});const{params:X,...ce}=P||{};if(Bn.equ(ce,ge,Tc)||Rc(ge,{...ce}),Bn.equ(X,ge.params,Tc)||Rc(ge,{params:{...ge.params,...X}}),!b.camera||b.camera===A&&!Bn.equ(A,K,Tc)){A=K;const Ce=K instanceof Gh,ke=Ce?K:B?new zh(0,0,0,0,.1,1e3):new Zn(75,0,.1,1e3);Ce||(ke.position.z=5,K&&Rc(ke,K),!b.camera&&!(K!=null&&K.rotation)&&ke.lookAt(0,0,0)),b.set({camera:ke}),ge.camera=ke}if(!b.scene){let Ce;m instanceof vh?Ce=m:(Ce=new vh,m&&Rc(Ce,m)),b.set({scene:Uc(Ce)})}if(!b.xr){var se;const Ce=(O,k)=>{const F=s.getState();F.frameloop!=="never"&&AS(O,!0,F,k)},ke=()=>{const O=s.getState();O.gl.xr.enabled=O.gl.xr.isPresenting,O.gl.xr.setAnimationLoop(O.gl.xr.isPresenting?Ce:null),O.gl.xr.isPresenting||uS(O)},V={connect(){const O=s.getState().gl;O.xr.addEventListener("sessionstart",ke),O.xr.addEventListener("sessionend",ke)},disconnect(){const O=s.getState().gl;O.xr.removeEventListener("sessionstart",ke),O.xr.removeEventListener("sessionend",ke)}};typeof((se=q.xr)==null?void 0:se.addEventListener)=="function"&&V.connect(),b.set({xr:V})}if(q.shadowMap){const Ce=q.shadowMap.enabled,ke=q.shadowMap.type;if(q.shadowMap.enabled=!!y,Bn.boo(y))q.shadowMap.type=kA;else if(Bn.str(y)){var fe;const V={basic:rQ,percentage:Fg,soft:kA,variance:$r};q.shadowMap.type=(fe=V[y])!=null?fe:kA}else Bn.obj(y)&&Object.assign(q.shadowMap,y);(Ce!==q.shadowMap.enabled||ke!==q.shadowMap.type)&&(q.shadowMap.needsUpdate=!0)}const U=ER();U&&("enabled"in U?U.enabled=!C:"legacyMode"in U&&(U.legacyMode=C)),Rc(q,{outputEncoding:g?3e3:3001,toneMapping:v?Qs:OI}),b.legacy!==C&&b.set(()=>({legacy:C})),b.linear!==g&&b.set(()=>({linear:g})),b.flat!==v&&b.set(()=>({flat:v})),f&&!Bn.fun(f)&&!wR(f)&&!Bn.equ(f,q,Tc)&&Rc(q,f),E&&!b.events.handlers&&b.set({events:E(s)});const ue=aO(n,d);return Bn.equ(ue,b.size,Tc)||b.setSize(ue.width,ue.height,ue.updateStyle,ue.top,ue.left),w&&b.viewport.dpr!==xR(w)&&b.setDpr(w),b.frameloop!==R&&b.setFrameloop(R),b.onPointerMissed||b.set({onPointerMissed:M}),T&&!Bn.equ(T,b.performance,Tc)&&b.set(Ce=>({performance:{...Ce.performance,...T}})),a=x,c=!0,this},render(h){return c||this.configure(),Rh.updateContainer(j.createElement(cO,{store:s,children:h,onCreated:a,rootElement:n}),o,null,()=>{}),s},unmount(){MR(n)}}}function cO({store:n,children:e,onCreated:t,rootElement:i}){return Jh(()=>{const r=n.getState();r.set(s=>({internal:{...s.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),j.createElement(Rv.Provider,{value:n},e)}function MR(n,e){const t=Cu.get(n),i=t==null?void 0:t.fiber;if(i){const r=t==null?void 0:t.store.getState();r&&(r.internal.active=!1),Rh.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{var s,o,a,c;r.events.disconnect==null||r.events.disconnect(),(s=r.gl)==null||(o=s.renderLists)==null||o.dispose==null||o.dispose(),(a=r.gl)==null||a.forceContextLoss==null||a.forceContextLoss(),(c=r.gl)!=null&&c.xr&&r.xr.disconnect(),KG(r),Cu.delete(n),e&&e(n)}catch{}},500)})}}function QR(n,e,t){return j.createElement(uO,{key:e.uuid,children:n,container:e,state:t})}function uO({state:n={},children:e,container:t}){const{events:i,size:r,...s}=n,o=Kh(),[a]=j.useState(()=>new Mv),[c]=j.useState(()=>new _e),A=j.useCallback((f,d)=>{const m={...f};Object.keys(f).forEach(x=>{(eO.includes(x)||f[x]!==d[x]&&d[x])&&delete m[x]});let E;if(d&&r){const x=d.camera;E=f.viewport.getCurrentViewport(x,new G,r),x!==f.camera&&_R(x,r)}return{...m,scene:t,raycaster:a,pointer:c,mouse:c,previousRoot:o,events:{...f.events,...d==null?void 0:d.events,...i},size:{...f.size,...r},viewport:{...f.viewport,...E},...s}},[n]),[h]=j.useState(()=>{const f=o.getState();return dR((m,E)=>({...f,scene:t,raycaster:a,pointer:c,mouse:c,previousRoot:o,events:{...f.events,...i},size:{...f.size,...r},...s,set:m,get:E,setEvents:x=>m(y=>({...y,events:{...y.events,...x}}))}))});return j.useEffect(()=>{const f=o.subscribe(d=>h.setState(m=>A(d,m)));return()=>{f(),h.destroy()}},[]),j.useEffect(()=>{h.setState(f=>A(o.getState(),f))},[A]),j.createElement(j.Fragment,null,Rh.createPortal(j.createElement(Rv.Provider,{value:h},e),h,null))}Rh.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:j.version});function mg(){return mg=Object.assign?Object.assign.bind():function(n){for(var e=1;e=0?i=setTimeout(c,e-h):(i=null,t||(a=n.apply(s,r),s=r=null))}var A=function(){s=this,r=arguments,o=Date.now();var h=t&&!i;return i||(i=setTimeout(c,e)),h&&(a=n.apply(s,r),s=r=null),a};return A.clear=function(){i&&(clearTimeout(i),i=null)},A.flush=function(){i&&(a=n.apply(s,r),s=r=null,clearTimeout(i),i=null)},A}TC.debounce=TC;var AO=TC;const hS=OS(AO);function hO(n){let{debounce:e,scroll:t,polyfill:i,offsetSize:r}=n===void 0?{debounce:0,scroll:!1,offsetSize:!1}:n;const s=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!s)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,a]=j.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),c=j.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),A=e?typeof e=="number"?e:e.scroll:null,h=e?typeof e=="number"?e:e.resize:null,f=j.useRef(!1);j.useEffect(()=>(f.current=!0,()=>void(f.current=!1)));const[d,m,E]=j.useMemo(()=>{const v=()=>{if(!c.current.element)return;const{left:C,top:B,width:R,height:w,bottom:T,right:P,x:K,y:M}=c.current.element.getBoundingClientRect(),b={left:C,top:B,width:R,height:w,bottom:T,right:P,x:K,y:M};c.current.element instanceof HTMLElement&&r&&(b.height=c.current.element.offsetHeight,b.width=c.current.element.offsetWidth),Object.freeze(b),f.current&&!gO(c.current.lastBounds,b)&&a(c.current.lastBounds=b)};return[v,h?hS(v,h):v,A?hS(v,A):v]},[a,r,A,h]);function x(){c.current.scrollContainers&&(c.current.scrollContainers.forEach(v=>v.removeEventListener("scroll",E,!0)),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null)}function y(){c.current.element&&(c.current.resizeObserver=new s(E),c.current.resizeObserver.observe(c.current.element),t&&c.current.scrollContainers&&c.current.scrollContainers.forEach(v=>v.addEventListener("scroll",E,{capture:!0,passive:!0})))}const g=v=>{!v||v===c.current.element||(x(),c.current.element=v,c.current.scrollContainers=RR(v),y())};return dO(E,!!t),fO(m),j.useEffect(()=>{x(),y()},[t,E,m]),j.useEffect(()=>x,[]),[g,o,d]}function fO(n){j.useEffect(()=>{const e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function dO(n,e){j.useEffect(()=>{if(e){const t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function RR(n){const e=[];if(!n||n===document.body)return e;const{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(s=>s==="auto"||s==="scroll")&&e.push(n),[...e,...RR(n.parentElement)]}const pO=["x","y","top","bottom","left","right","width","height"],gO=(n,e)=>pO.every(t=>n[t]===e[t]);var mO=Object.defineProperty,EO=Object.defineProperties,yO=Object.getOwnPropertyDescriptors,fS=Object.getOwnPropertySymbols,CO=Object.prototype.hasOwnProperty,IO=Object.prototype.propertyIsEnumerable,dS=(n,e,t)=>e in n?mO(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,pS=(n,e)=>{for(var t in e||(e={}))CO.call(e,t)&&dS(n,t,e[t]);if(fS)for(var t of fS(e))IO.call(e,t)&&dS(n,t,e[t]);return n},vO=(n,e)=>EO(n,yO(e));function TR(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){const r=TR(i,e,t);if(r)return r;i=e?null:i.sibling}}function DR(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}const Dv=DR(j.createContext(null));class bR extends j.Component{render(){return j.createElement(Dv.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:gS,ReactCurrentDispatcher:mS}=j.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function xO(){const n=j.useContext(Dv);if(n===null)throw new Error("its-fine: useFiber must be called within a !");const e=j.useId();return j.useMemo(()=>{for(const i of[gS==null?void 0:gS.current,n,n==null?void 0:n.alternate]){if(!i)continue;const r=TR(i,!1,s=>{let o=s.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[n,e])}function BO(){var n,e;const t=xO(),[i]=j.useState(()=>new Map);i.clear();let r=t;for(;r;){const s=(n=r.type)==null?void 0:n._context;s&&s!==Dv&&!i.has(s)&&i.set(s,(e=mS==null?void 0:mS.current)==null?void 0:e.readContext(DR(s))),r=r.return}return i}function _O(){const n=BO();return j.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>j.createElement(e,null,j.createElement(t.Provider,vO(pS({},i),{value:n.get(t)}))),e=>j.createElement(bR,pS({},e))),[n])}const NE={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function SO(n){const{handlePointer:e}=$G(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(NE).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;const{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{var i;const{set:r,events:s}=n.getState();s.disconnect==null||s.disconnect(),r(o=>({events:{...o.events,connected:t}})),Object.entries((i=s.handlers)!=null?i:[]).forEach(([o,a])=>{const[c,A]=NE[o];t.addEventListener(c,a,{passive:A})})},disconnect:()=>{const{set:t,events:i}=n.getState();if(i.connected){var r;Object.entries((r=i.handlers)!=null?r:[]).forEach(([s,o])=>{if(i&&i.connected instanceof HTMLElement){const[a]=NE[s];i.connected.removeEventListener(a,o)}}),t(s=>({events:{...s.events,connected:void 0}}))}}}}const wO=j.forwardRef(function({children:e,fallback:t,resize:i,style:r,gl:s,events:o=SO,eventSource:a,eventPrefix:c,shadows:A,linear:h,flat:f,legacy:d,orthographic:m,frameloop:E,dpr:x,performance:y,raycaster:g,camera:v,scene:C,onPointerMissed:B,onCreated:R,...w},T){j.useMemo(()=>VG(FG),[]);const P=_O(),[K,M]=hO({scroll:!0,debounce:{scroll:50,resize:0},...i}),b=j.useRef(null),q=j.useRef(null);j.useImperativeHandle(T,()=>b.current);const ge=CR(B),[X,ce]=j.useState(!1),[se,fe]=j.useState(!1);if(X)throw X;if(se)throw se;const U=j.useRef(null);Jh(()=>{const te=b.current;M.width>0&&M.height>0&&te&&(U.current||(U.current=lO(te)),U.current.configure({gl:s,events:o,shadows:A,linear:h,flat:f,legacy:d,orthographic:m,frameloop:E,dpr:x,performance:y,raycaster:g,camera:v,scene:C,size:M,onPointerMissed:(...ue)=>ge.current==null?void 0:ge.current(...ue),onCreated:ue=>{ue.events.connect==null||ue.events.connect(a?YG(a)?a.current:a:q.current),c&&ue.setEvents({compute:(Ce,ke)=>{const V=Ce[c+"X"],O=Ce[c+"Y"];ke.pointer.set(V/ke.size.width*2-1,-(O/ke.size.height)*2+1),ke.raycaster.setFromCamera(ke.pointer,ke.camera)}}),R==null||R(ue)}}),U.current.render(j.createElement(P,null,j.createElement(IR,{set:fe},j.createElement(j.Suspense,{fallback:j.createElement(XG,{set:ce})},e)))))}),j.useEffect(()=>{const te=b.current;if(te)return()=>MR(te)},[]);const ee=a?"none":"auto";return j.createElement("div",mg({ref:q,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ee,...r}},w),j.createElement("div",{ref:K,style:{width:"100%",height:"100%"}},j.createElement("canvas",{ref:b,style:{display:"block"}},t)))}),MO=j.forwardRef(function(e,t){return j.createElement(bR,null,j.createElement(wO,mg({},e,{ref:t})))});function hm(){throw new Error("Cycle detected")}var QO=Symbol.for("preact-signals");function fm(){if(aa>1)aa--;else{for(var n,e=!1;VA!==void 0;){var t=VA;for(VA=void 0,DC++;t!==void 0;){var i=t.o;if(t.o=void 0,t.f&=-3,!(8&t.f)&&PR(t))try{t.c()}catch(r){e||(n=r,e=!0)}t=i}}if(DC=0,aa--,e)throw n}}function NR(n){if(aa>0)return n();aa++;try{return n()}finally{fm()}}var Ln=void 0,VA=void 0,aa=0,DC=0,Eg=0;function LR(n){if(Ln!==void 0){var e=n.n;if(e===void 0||e.t!==Ln)return e={i:0,S:n,p:Ln.s,n:void 0,t:Ln,e:void 0,x:void 0,r:e},Ln.s!==void 0&&(Ln.s.n=e),Ln.s=e,n.n=e,32&Ln.f&&n.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=Ln.s,e.n=void 0,Ln.s.n=e,Ln.s=e),e}}function zn(n){this.v=n,this.i=0,this.n=void 0,this.t=void 0}zn.prototype.brand=QO;zn.prototype.h=function(){return!0};zn.prototype.S=function(n){this.t!==n&&n.e===void 0&&(n.x=this.t,this.t!==void 0&&(this.t.e=n),this.t=n)};zn.prototype.U=function(n){if(this.t!==void 0){var e=n.e,t=n.x;e!==void 0&&(e.x=t,n.e=void 0),t!==void 0&&(t.e=e,n.x=void 0),n===this.t&&(this.t=t)}};zn.prototype.subscribe=function(n){var e=this;return ln(function(){var t=e.value,i=32&this.f;this.f&=-33;try{n(t)}finally{this.f|=i}})};zn.prototype.valueOf=function(){return this.value};zn.prototype.toString=function(){return this.value+""};zn.prototype.toJSON=function(){return this.value};zn.prototype.peek=function(){return this.v};Object.defineProperty(zn.prototype,"value",{get:function(){var n=LR(this);return n!==void 0&&(n.i=this.i),this.v},set:function(n){if(Ln instanceof Ca&&function(){throw new Error("Computed cannot have side-effects")}(),n!==this.v){DC>100&&hm(),this.v=n,this.i++,Eg++,aa++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{fm()}}}});function dn(n){return new zn(n)}function PR(n){for(var e=n.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function UR(n){for(var e=n.s;e!==void 0;e=e.n){var t=e.S.n;if(t!==void 0&&(e.r=t),e.S.n=e,e.i=-1,e.n===void 0){n.s=e;break}}}function FR(n){for(var e=n.s,t=void 0;e!==void 0;){var i=e.p;e.i===-1?(e.S.U(e),i!==void 0&&(i.n=e.n),e.n!==void 0&&(e.n.p=i)):t=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=i}n.s=t}function Ca(n){zn.call(this,void 0),this.x=n,this.s=void 0,this.g=Eg-1,this.f=4}(Ca.prototype=new zn).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Eg))return!0;if(this.g=Eg,this.f|=1,this.i>0&&!PR(this))return this.f&=-2,!0;var n=Ln;try{UR(this),Ln=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(t){this.v=t,this.f|=16,this.i++}return Ln=n,FR(this),this.f&=-2,!0};Ca.prototype.S=function(n){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}zn.prototype.S.call(this,n)};Ca.prototype.U=function(n){if(this.t!==void 0&&(zn.prototype.U.call(this,n),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};Ca.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var n=this.t;n!==void 0;n=n.x)n.t.N()}};Ca.prototype.peek=function(){if(this.h()||hm(),16&this.f)throw this.v;return this.v};Object.defineProperty(Ca.prototype,"value",{get:function(){1&this.f&&hm();var n=LR(this);if(this.h(),n!==void 0&&(n.i=this.i),16&this.f)throw this.v;return this.v}});function ti(n){return new Ca(n)}function kR(n){var e=n.u;if(n.u=void 0,typeof e=="function"){aa++;var t=Ln;Ln=void 0;try{e()}catch(i){throw n.f&=-2,n.f|=8,bv(n),i}finally{Ln=t,fm()}}}function bv(n){for(var e=n.s;e!==void 0;e=e.n)e.S.U(e);n.x=void 0,n.s=void 0,kR(n)}function RO(n){if(Ln!==this)throw new Error("Out-of-order effect");FR(this),Ln=n,this.f&=-2,8&this.f&&bv(this),fm()}function jh(n){this.x=n,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}jh.prototype.c=function(){var n=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{n()}};jh.prototype.S=function(){1&this.f&&hm(),this.f|=1,this.f&=-9,kR(this),UR(this),aa++;var n=Ln;return Ln=this,RO.bind(this,n)};jh.prototype.N=function(){2&this.f||(this.f|=2,this.o=VA,VA=this)};jh.prototype.d=function(){this.f|=8,1&this.f||bv(this)};function ln(n){var e=new jh(n);try{e.c()}catch(t){throw e.d(),t}return e.d.bind(e)}function Nv(n,e,t){const i=j.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=j.useMemo(()=>{let s={};return(o,a)=>{let c=0,A=!1;for(const h in s){if(!OR(s[h],o[h])){A=!0;break}++c}A||(A=c!=a),s=o,!(!A&&e.getProperty.peek()!=null)&&(e.getProperty.value=h=>bC(o[h]))}},[e]);GR(n,i,r,t)}function TO(n,e){const t=n.length;for(const i in e)for(let r=0;r{let r={},s=0;const o=(c,A)=>{if(A===void 0)return;const h=r[c];if(h===void 0&&++s,h==null||!(A instanceof zn)){r[c]=A;return}if(Array.isArray(h)){h.push(A);return}r[c]=[h,A]};return{add:(c,A)=>{if(A!==void 0){if(i!=null){i(c,A,e,o);return}e(c)&&o(c,A)}},finish:()=>{t(r,s),s=0,r={}}}},[e,t,i]))}function OR(n,e){if(!Array.isArray(n))return n===e;if(!Array.isArray(e))return!1;const t=n.length;if(t!=e.length)return!1;for(let i=0;idn(void 0),[]),r=j.useMemo(()=>({hasBatchedProperty:s=>e.includes(s),getProperty:i}),[e]);return Nv(n,r,t),i}const NC=j.createContext(null);function qh(n,e){const t=j.useContext(NC);t!=null&&e(t);const{classes:i}=n;if(Array.isArray(i)){const r=i.length;for(let s=0;sTO(n,t))}function Ls(n){const t={...j.useContext(NC)};for(const i in n){if(i==="children")continue;const r=n[i];r!=null&&(t[i]=r)}return W.jsx(NC.Provider,{value:t,children:n.children})}var Ui={},Lv={},Ut={};Object.defineProperty(Ut,"__esModule",{value:!0});Ut.default=Ut.Wrap=Ut.Unit=Ut.PrintOptions=Ut.PositionType=Ut.Overflow=Ut.NodeType=Ut.MeasureMode=Ut.LogLevel=Ut.Justify=Ut.Gutter=Ut.FlexDirection=Ut.ExperimentalFeature=Ut.Errata=Ut.Edge=Ut.Display=Ut.Direction=Ut.Dimension=Ut.Align=void 0;let Zs=function(n){return n[n.Auto=0]="Auto",n[n.FlexStart=1]="FlexStart",n[n.Center=2]="Center",n[n.FlexEnd=3]="FlexEnd",n[n.Stretch=4]="Stretch",n[n.Baseline=5]="Baseline",n[n.SpaceBetween=6]="SpaceBetween",n[n.SpaceAround=7]="SpaceAround",n}({});Ut.Align=Zs;let LC=function(n){return n[n.Width=0]="Width",n[n.Height=1]="Height",n}({});Ut.Dimension=LC;let Dp=function(n){return n[n.Inherit=0]="Inherit",n[n.LTR=1]="LTR",n[n.RTL=2]="RTL",n}({});Ut.Direction=Dp;let PC=function(n){return n[n.Flex=0]="Flex",n[n.None=1]="None",n}({});Ut.Display=PC;let Cs=function(n){return n[n.Left=0]="Left",n[n.Top=1]="Top",n[n.Right=2]="Right",n[n.Bottom=3]="Bottom",n[n.Start=4]="Start",n[n.End=5]="End",n[n.Horizontal=6]="Horizontal",n[n.Vertical=7]="Vertical",n[n.All=8]="All",n}({});Ut.Edge=Cs;let SA=function(n){return n[n.None=0]="None",n[n.StretchFlexBasis=1]="StretchFlexBasis",n[n.All=2147483647]="All",n[n.Classic=2147483646]="Classic",n}({});Ut.Errata=SA;let bp=function(n){return n[n.WebFlexBasis=0]="WebFlexBasis",n[n.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",n[n.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",n}({});Ut.ExperimentalFeature=bp;let wA=function(n){return n[n.Column=0]="Column",n[n.ColumnReverse=1]="ColumnReverse",n[n.Row=2]="Row",n[n.RowReverse=3]="RowReverse",n}({});Ut.FlexDirection=wA;let Np=function(n){return n[n.Column=0]="Column",n[n.Row=1]="Row",n[n.All=2]="All",n}({});Ut.Gutter=Np;let ll=function(n){return n[n.FlexStart=0]="FlexStart",n[n.Center=1]="Center",n[n.FlexEnd=2]="FlexEnd",n[n.SpaceBetween=3]="SpaceBetween",n[n.SpaceAround=4]="SpaceAround",n[n.SpaceEvenly=5]="SpaceEvenly",n}({});Ut.Justify=ll;let cl=function(n){return n[n.Error=0]="Error",n[n.Warn=1]="Warn",n[n.Info=2]="Info",n[n.Debug=3]="Debug",n[n.Verbose=4]="Verbose",n[n.Fatal=5]="Fatal",n}({});Ut.LogLevel=cl;let Lp=function(n){return n[n.Undefined=0]="Undefined",n[n.Exactly=1]="Exactly",n[n.AtMost=2]="AtMost",n}({});Ut.MeasureMode=Lp;let UC=function(n){return n[n.Default=0]="Default",n[n.Text=1]="Text",n}({});Ut.NodeType=UC;let Pp=function(n){return n[n.Visible=0]="Visible",n[n.Hidden=1]="Hidden",n[n.Scroll=2]="Scroll",n}({});Ut.Overflow=Pp;let Up=function(n){return n[n.Static=0]="Static",n[n.Relative=1]="Relative",n[n.Absolute=2]="Absolute",n}({});Ut.PositionType=Up;let Fp=function(n){return n[n.Layout=1]="Layout",n[n.Style=2]="Style",n[n.Children=4]="Children",n}({});Ut.PrintOptions=Fp;let MA=function(n){return n[n.Undefined=0]="Undefined",n[n.Point=1]="Point",n[n.Percent=2]="Percent",n[n.Auto=3]="Auto",n}({});Ut.Unit=MA;let kp=function(n){return n[n.NoWrap=0]="NoWrap",n[n.Wrap=1]="Wrap",n[n.WrapReverse=2]="WrapReverse",n}({});Ut.Wrap=kp;const DO={ALIGN_AUTO:Zs.Auto,ALIGN_FLEX_START:Zs.FlexStart,ALIGN_CENTER:Zs.Center,ALIGN_FLEX_END:Zs.FlexEnd,ALIGN_STRETCH:Zs.Stretch,ALIGN_BASELINE:Zs.Baseline,ALIGN_SPACE_BETWEEN:Zs.SpaceBetween,ALIGN_SPACE_AROUND:Zs.SpaceAround,DIMENSION_WIDTH:LC.Width,DIMENSION_HEIGHT:LC.Height,DIRECTION_INHERIT:Dp.Inherit,DIRECTION_LTR:Dp.LTR,DIRECTION_RTL:Dp.RTL,DISPLAY_FLEX:PC.Flex,DISPLAY_NONE:PC.None,EDGE_LEFT:Cs.Left,EDGE_TOP:Cs.Top,EDGE_RIGHT:Cs.Right,EDGE_BOTTOM:Cs.Bottom,EDGE_START:Cs.Start,EDGE_END:Cs.End,EDGE_HORIZONTAL:Cs.Horizontal,EDGE_VERTICAL:Cs.Vertical,EDGE_ALL:Cs.All,ERRATA_NONE:SA.None,ERRATA_STRETCH_FLEX_BASIS:SA.StretchFlexBasis,ERRATA_ALL:SA.All,ERRATA_CLASSIC:SA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:bp.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:bp.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:bp.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:wA.Column,FLEX_DIRECTION_COLUMN_REVERSE:wA.ColumnReverse,FLEX_DIRECTION_ROW:wA.Row,FLEX_DIRECTION_ROW_REVERSE:wA.RowReverse,GUTTER_COLUMN:Np.Column,GUTTER_ROW:Np.Row,GUTTER_ALL:Np.All,JUSTIFY_FLEX_START:ll.FlexStart,JUSTIFY_CENTER:ll.Center,JUSTIFY_FLEX_END:ll.FlexEnd,JUSTIFY_SPACE_BETWEEN:ll.SpaceBetween,JUSTIFY_SPACE_AROUND:ll.SpaceAround,JUSTIFY_SPACE_EVENLY:ll.SpaceEvenly,LOG_LEVEL_ERROR:cl.Error,LOG_LEVEL_WARN:cl.Warn,LOG_LEVEL_INFO:cl.Info,LOG_LEVEL_DEBUG:cl.Debug,LOG_LEVEL_VERBOSE:cl.Verbose,LOG_LEVEL_FATAL:cl.Fatal,MEASURE_MODE_UNDEFINED:Lp.Undefined,MEASURE_MODE_EXACTLY:Lp.Exactly,MEASURE_MODE_AT_MOST:Lp.AtMost,NODE_TYPE_DEFAULT:UC.Default,NODE_TYPE_TEXT:UC.Text,OVERFLOW_VISIBLE:Pp.Visible,OVERFLOW_HIDDEN:Pp.Hidden,OVERFLOW_SCROLL:Pp.Scroll,POSITION_TYPE_STATIC:Up.Static,POSITION_TYPE_RELATIVE:Up.Relative,POSITION_TYPE_ABSOLUTE:Up.Absolute,PRINT_OPTIONS_LAYOUT:Fp.Layout,PRINT_OPTIONS_STYLE:Fp.Style,PRINT_OPTIONS_CHILDREN:Fp.Children,UNIT_UNDEFINED:MA.Undefined,UNIT_POINT:MA.Point,UNIT_PERCENT:MA.Percent,UNIT_AUTO:MA.Auto,WRAP_NO_WRAP:kp.NoWrap,WRAP_WRAP:kp.Wrap,WRAP_WRAP_REVERSE:kp.WrapReverse};var bO=DO;Ut.default=bO;Object.defineProperty(Lv,"__esModule",{value:!0});Lv.default=LO;var Uo=NO(Ut);function HR(n){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(HR=function(i){return i?t:e})(n)}function NO(n,e){if(!e&&n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=HR(e);if(t&&t.has(n))return t.get(n);var i={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if(s!=="default"&&Object.prototype.hasOwnProperty.call(n,s)){var o=r?Object.getOwnPropertyDescriptor(n,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=n[s]}return i.default=n,t&&t.set(n,i),i}function LO(n){function e(r,s,o){const a=r[s];r[s]=function(){for(var c=arguments.length,A=new Array(c),h=0;h1?a-1:0),A=1;As?n.Node.createWithConfig(s):n.Node.createDefault()),e(n.Node.prototype,"free",function(){n.Node.destroy(this)}),e(n.Node.prototype,"freeRecursive",function(){for(let r=0,s=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Uo.Direction.LTR;return r.call(this,s,o,a)}),{Config:n.Config,Node:n.Node,...Uo.default}}var zR={exports:{}};(function(n,e){var t=(()=>{var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var s;s||(s=typeof r<"u"?r:{});var o,a;s.ready=new Promise(function(N,L){o=N,a=L});var c=Object.assign({},s),A="";typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),i&&(A=i),A.indexOf("blob:")!==0?A=A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):A="";var h=s.print||console.log.bind(console),f=s.printErr||console.warn.bind(console);Object.assign(s,c),c=null;var d;s.wasmBinary&&(d=s.wasmBinary),s.noExitRuntime,typeof WebAssembly!="object"&&fe("no native wasm support detected");var m,E=!1;function x(N,L,Z){Z=L+Z;for(var oe="";!(L>=Z);){var pe=N[L++];if(!pe)break;if(pe&128){var we=N[L++]&63;if((pe&224)==192)oe+=String.fromCharCode((pe&31)<<6|we);else{var Pe=N[L++]&63;pe=(pe&240)==224?(pe&15)<<12|we<<6|Pe:(pe&7)<<18|we<<12|Pe<<6|N[L++]&63,65536>pe?oe+=String.fromCharCode(pe):(pe-=65536,oe+=String.fromCharCode(55296|pe>>10,56320|pe&1023))}}else oe+=String.fromCharCode(pe)}return oe}var y,g,v,C,B,R,w,T,P;function K(){var N=m.buffer;y=N,s.HEAP8=g=new Int8Array(N),s.HEAP16=C=new Int16Array(N),s.HEAP32=R=new Int32Array(N),s.HEAPU8=v=new Uint8Array(N),s.HEAPU16=B=new Uint16Array(N),s.HEAPU32=w=new Uint32Array(N),s.HEAPF32=T=new Float32Array(N),s.HEAPF64=P=new Float64Array(N)}var M,b=[],q=[],ge=[];function X(){var N=s.preRun.shift();b.unshift(N)}var ce=0,se=null;function fe(N){throw s.onAbort&&s.onAbort(N),N="Aborted("+N+")",f(N),E=!0,N=new WebAssembly.RuntimeError(N+". Build with -sASSERTIONS for more info."),a(N),N}function U(N){return N.startsWith("data:application/octet-stream;base64,")}var ee;if(ee="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgBDaGlsZCBhbHJlYWR5IGhhcyBhIG93bmVyLCBpdCBtdXN0IGJlIHJlbW92ZWQgZmlyc3QuAENhbm5vdCBzZXQgbWVhc3VyZSBmdW5jdGlvbjogTm9kZXMgd2l0aCBtZWFzdXJlIGZ1bmN0aW9ucyBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4AQ2Fubm90IGFkZCBjaGlsZDogTm9kZXMgd2l0aCBtZWFzdXJlIGZ1bmN0aW9ucyBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4AKG51bGwpACVzCgABAAAAAwAAAAAAAAACAAAAAwAAAAEAAAACAAAAAAAAAAEAAAABAEHyIQsVwH8DAAAAAADAfwAAAABpaQB2AHZpAEGQIgs3exsAAHkbAAC5GwAAsxsAALkbAACzGwAAaWlpZmlmaQCsGwAAfBsAAHZpaQB9GwAAwBsAAGlpaQBB0CILCccAAADIAAAAyQBB5CILDscAAADKAAAAywAAAKwbAEGAIws+exsAALkbAACzGwAAuRsAALMbAADAGwAAuxsAAMAbAABpaWlpAAAAAKwbAACRGwAArBsAAJMbAACUGwAAwBsAQcgjCwnMAAAAzQAAAM4AQdwjCxbMAAAAzwAAAMsAAACXGwAArBsAAJcbAEGAJAuiA6wbAACXGwAAsxsAAK0bAAB2aWlpaQAAAKwbAACXGwAAuRsAAHZpaWYAAAAArBsAAJcbAACtGwAAdmlpaQAAAACsGwAAlxsAALMbAACtGwAAmBsAALMbAACtGwAAmBsAALMbAACYGwAAaQBkaWkAdmlpZAAAnBsAAJwbAACXGwAArBsAAJwbAACsGwAAnBsAAJsbAACsGwAAnBsAALMbAACsGwAAnBsAALMbAAC6GwAAdmlpaWQAAACsGwAAnBsAALobAACzGwAAnRsAAJobAACdGwAAsxsAAJobAACdGwAAuhsAAJ0bAAC6GwAAnRsAALMbAABkaWlpAAAAALkbAACcGwAAsxsAAGZpaWkAAAAArBsAAJwbAACcGwAAtBsAAKwbAACcGwAAnBsAALQbAACdGwAAnBsAAJwbAACcGwAAnBsAALQbAACtGwAAnBsAAKwbAACcGwAArRsAAKwbAACcGwAAeRsAAKwbAACcGwAAkRsAAK0bAACdGwAAAAAAAKwbAACcGwAAuhsAALobAACzGwAAdmlpZGRpAACZGwAAnRsAQbAnC0EZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBgSgLIQ4AAAAAAAAAABkACg0ZGRkADQAAAgAJDgAAAAkADgAADgBBuygLAQwAQccoCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQfUoCwEQAEGBKQsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEGvKQsBEgBBuykLHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBB8ikLDhoAAAAaGhoAAAAAAAAJAEGjKgsBFABBryoLFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABB3SoLARYAQekqCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQbQrCwHVAEHcKwsI//////////8AQaAsCwnwHwEAAAAAAAUAQbQsCwHQAEHMLAsK0QAAANIAAADUGwBB5CwLAQIAQfQsCwj//////////wBBuC0LAQUAQcQtCwHTAEHcLQsO0QAAANQAAADoGwAAAAQAQfQtCwEBAEGELgsF/////woAQcguCwHW",!U(ee)){var te=ee;ee=s.locateFile?s.locateFile(te,A):A+te}function ue(){var N=ee;try{if(N==ee&&d)return new Uint8Array(d);if(U(N))try{var L=Wn(N.slice(37)),Z=new Uint8Array(L.length);for(N=0;N=L?"_"+N:N}function O(N,L){return N=V(N),function(){return L.apply(this,arguments)}}var k=[{},{value:void 0},{value:null},{value:!0},{value:!1}],F=[];function me(N){var L=Error,Z=O(N,function(oe){this.name=N,this.message=oe,oe=Error(oe).stack,oe!==void 0&&(this.stack=this.toString()+` -`+oe.replace(/^Error(:[^\n]*)?\n/,""))});return Z.prototype=Object.create(L.prototype),Z.prototype.constructor=Z,Z.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Z}var ve=void 0;function re(N){throw new ve(N)}var Be=N=>(N||re("Cannot use deleted val. handle = "+N),k[N].value),H=N=>{switch(N){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var L=F.length?F.pop():k.length;return k[L]={fa:1,value:N},L}},Ee=void 0,ne=void 0;function ae(N){for(var L="";v[N];)L+=ne[v[N++]];return L}var he=[];function Te(){for(;he.length;){var N=he.pop();N.L.Z=!1,N.delete()}}var $=void 0,S={};function D(N,L){for(L===void 0&&re("ptr should not be undefined");N.P;)L=N.aa(L),N=N.P;return L}var ie={};function be(N){N=et(N);var L=ae(N);return vt(N),L}function De(N,L){var Z=ie[N];return Z===void 0&&re(L+" has unknown type "+be(N)),Z}function Qe(){}var Xe=!1;function ze(N){--N.count.value,N.count.value===0&&(N.S?N.T.V(N.S):N.O.M.V(N.N))}function je(N,L,Z){return L===Z?N:Z.P===void 0?null:(N=je(N,L,Z.P),N===null?null:Z.ma(N))}var at={};function It(N,L){return L=D(N,L),S[L]}var Le=void 0;function Lt(N){throw new Le(N)}function wt(N,L){return L.O&&L.N||Lt("makeClassHandle requires ptr and ptrType"),!!L.T!=!!L.S&&Lt("Both smartPtrType and smartPtr must be specified"),L.count={value:1},dt(Object.create(N,{L:{value:L}}))}function dt(N){return typeof FinalizationRegistry>"u"?(dt=L=>L,N):(Xe=new FinalizationRegistry(L=>{ze(L.L)}),dt=L=>{var Z=L.L;return Z.S&&Xe.register(L,{L:Z},L),L},Qe=L=>{Xe.unregister(L)},dt(N))}var ot={};function tt(N){for(;N.length;){var L=N.pop();N.pop()(L)}}function Bt(N){return this.fromWireType(R[N>>2])}var kt={},jt={};function Mt(N,L,Z){function oe(Ne){Ne=Z(Ne),Ne.length!==N.length&&Lt("Mismatched type converter count");for(var Ve=0;Ve{ie.hasOwnProperty(Ne)?pe[Ve]=ie[Ne]:(we.push(Ne),kt.hasOwnProperty(Ne)||(kt[Ne]=[]),kt[Ne].push(()=>{pe[Ve]=ie[Ne],++Pe,Pe===we.length&&oe(pe)}))}),we.length===0&&oe(pe)}function Wt(N){switch(N){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+N)}}function J(N,L,Z={}){if(!("argPackAdvance"in L))throw new TypeError("registerType registeredInstance requires argPackAdvance");var oe=L.name;if(N||re('type "'+oe+'" must have a positive integer typeid pointer'),ie.hasOwnProperty(N)){if(Z.ta)return;re("Cannot register type '"+oe+"' twice")}ie[N]=L,delete jt[N],kt.hasOwnProperty(N)&&(L=kt[N],delete kt[N],L.forEach(pe=>pe()))}function Ge(N){re(N.L.O.M.name+" instance already deleted")}function Ue(){}function it(N,L,Z){if(N[L].R===void 0){var oe=N[L];N[L]=function(){return N[L].R.hasOwnProperty(arguments.length)||re("Function '"+Z+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+N[L].R+")!"),N[L].R[arguments.length].apply(this,arguments)},N[L].R=[],N[L].R[oe.Y]=oe}}function At(N,L){s.hasOwnProperty(N)?(re("Cannot register public name '"+N+"' twice"),it(s,N,N),s.hasOwnProperty(void 0)&&re("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),s[N].R[void 0]=L):s[N]=L}function Yt(N,L,Z,oe,pe,we,Pe,Ne){this.name=N,this.constructor=L,this.W=Z,this.V=oe,this.P=pe,this.oa=we,this.aa=Pe,this.ma=Ne,this.ia=[]}function Xt(N,L,Z){for(;L!==Z;)L.aa||re("Expected null or instance of "+Z.name+", got an instance of "+L.name),N=L.aa(N),L=L.P;return N}function Dn(N,L){return L===null?(this.da&&re("null is not a valid "+this.name),0):(L.L||re('Cannot pass "'+Pa(L)+'" as a '+this.name),L.L.N||re("Cannot pass deleted object as a pointer of type "+this.name),Xt(L.L.N,L.L.O.M,this.M))}function hi(N,L){if(L===null){if(this.da&&re("null is not a valid "+this.name),this.ca){var Z=this.ea();return N!==null&&N.push(this.V,Z),Z}return 0}if(L.L||re('Cannot pass "'+Pa(L)+'" as a '+this.name),L.L.N||re("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&L.L.O.ba&&re("Cannot convert argument of type "+(L.L.T?L.L.T.name:L.L.O.name)+" to parameter type "+this.name),Z=Xt(L.L.N,L.L.O.M,this.M),this.ca)switch(L.L.S===void 0&&re("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:L.L.T===this?Z=L.L.S:re("Cannot convert argument of type "+(L.L.T?L.L.T.name:L.L.O.name)+" to parameter type "+this.name);break;case 1:Z=L.L.S;break;case 2:if(L.L.T===this)Z=L.L.S;else{var oe=L.clone();Z=this.wa(Z,H(function(){oe.delete()})),N!==null&&N.push(this.V,Z)}break;default:re("Unsupporting sharing policy")}return Z}function tn(N,L){return L===null?(this.da&&re("null is not a valid "+this.name),0):(L.L||re('Cannot pass "'+Pa(L)+'" as a '+this.name),L.L.N||re("Cannot pass deleted object as a pointer of type "+this.name),L.L.O.ba&&re("Cannot convert argument of type "+L.L.O.name+" to parameter type "+this.name),Xt(L.L.N,L.L.O.M,this.M))}function An(N,L,Z,oe){this.name=N,this.M=L,this.da=Z,this.ba=oe,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,L.P!==void 0?this.toWireType=hi:(this.toWireType=oe?Dn:tn,this.U=null)}function Ki(N,L){s.hasOwnProperty(N)||Lt("Replacing nonexistant public symbol"),s[N]=L,s[N].Y=void 0}function La(N,L){var Z=[];return function(){if(Z.length=0,Object.assign(Z,arguments),N.includes("j")){var oe=s["dynCall_"+N];oe=Z&&Z.length?oe.apply(null,[L].concat(Z)):oe.call(null,L)}else oe=M.get(L).apply(null,Z);return oe}}function fi(N,L){N=ae(N);var Z=N.includes("j")?La(N,L):M.get(L);return typeof Z!="function"&&re("unknown function pointer with signature "+N+": "+L),Z}var Us=void 0;function or(N,L){function Z(we){pe[we]||ie[we]||(jt[we]?jt[we].forEach(Z):(oe.push(we),pe[we]=!0))}var oe=[],pe={};throw L.forEach(Z),new Us(N+": "+oe.map(be).join([", "]))}function As(N,L,Z,oe,pe){var we=L.length;2>we&&re("argTypes array size mismatch! Must at least get return value and 'this' types!");var Pe=L[1]!==null&&Z!==null,Ne=!1;for(Z=1;Z>2]);return Z}function Eo(N){4>2])};case 3:return function(Z){return this.fromWireType(P[Z>>3])};default:throw new TypeError("Unknown float type: "+N)}}function Lu(N,L,Z){switch(L){case 0:return Z?function(oe){return g[oe]}:function(oe){return v[oe]};case 1:return Z?function(oe){return C[oe>>1]}:function(oe){return B[oe>>1]};case 2:return Z?function(oe){return R[oe>>2]}:function(oe){return w[oe>>2]};default:throw new TypeError("Unknown integer type: "+N)}}function z(N,L){for(var Z="",oe=0;!(oe>=L/2);++oe){var pe=C[N+2*oe>>1];if(pe==0)break;Z+=String.fromCharCode(pe)}return Z}function de(N,L,Z){if(Z===void 0&&(Z=2147483647),2>Z)return 0;Z-=2;var oe=L;Z=Z<2*N.length?Z/2:N.length;for(var pe=0;pe>1]=N.charCodeAt(pe),L+=2;return C[L>>1]=0,L-oe}function xe(N){return 2*N.length}function Se(N,L){for(var Z=0,oe="";!(Z>=L/4);){var pe=R[N+4*Z>>2];if(pe==0)break;++Z,65536<=pe?(pe-=65536,oe+=String.fromCharCode(55296|pe>>10,56320|pe&1023)):oe+=String.fromCharCode(pe)}return oe}function Ie(N,L,Z){if(Z===void 0&&(Z=2147483647),4>Z)return 0;var oe=L;Z=oe+Z-4;for(var pe=0;pe=we){var Pe=N.charCodeAt(++pe);we=65536+((we&1023)<<10)|Pe&1023}if(R[L>>2]=we,L+=4,L+4>Z)break}return R[L>>2]=0,L-oe}function Ze(N){for(var L=0,Z=0;Z=oe&&++Z,L+=4}return L}var lt={};function gt(N){var L=lt[N];return L===void 0?ae(N):L}var pt=[];function Qt(N){var L=pt.length;return pt.push(N),L}function _t(N,L){for(var Z=Array(N),oe=0;oe>2],"parameter "+oe);return Z}var St=[],En=[null,[],[]];ve=s.BindingError=me("BindingError"),s.count_emval_handles=function(){for(var N=0,L=5;Lnn;++nn)Vn[nn]=String.fromCharCode(nn);ne=Vn,s.getInheritedInstanceCount=function(){return Object.keys(S).length},s.getLiveInheritedInstances=function(){var N=[],L;for(L in S)S.hasOwnProperty(L)&&N.push(S[L]);return N},s.flushPendingDeletes=Te,s.setDelayFunction=function(N){$=N,he.length&&$&&$(Te)},Le=s.InternalError=me("InternalError"),Ue.prototype.isAliasOf=function(N){if(!(this instanceof Ue&&N instanceof Ue))return!1;var L=this.L.O.M,Z=this.L.N,oe=N.L.O.M;for(N=N.L.N;L.P;)Z=L.aa(Z),L=L.P;for(;oe.P;)N=oe.aa(N),oe=oe.P;return L===oe&&Z===N},Ue.prototype.clone=function(){if(this.L.N||Ge(this),this.L.$)return this.L.count.value+=1,this;var N=dt,L=Object,Z=L.create,oe=Object.getPrototypeOf(this),pe=this.L;return N=N(Z.call(L,oe,{L:{value:{count:pe.count,Z:pe.Z,$:pe.$,N:pe.N,O:pe.O,S:pe.S,T:pe.T}}})),N.L.count.value+=1,N.L.Z=!1,N},Ue.prototype.delete=function(){this.L.N||Ge(this),this.L.Z&&!this.L.$&&re("Object already scheduled for deletion"),Qe(this),ze(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},Ue.prototype.isDeleted=function(){return!this.L.N},Ue.prototype.deleteLater=function(){return this.L.N||Ge(this),this.L.Z&&!this.L.$&&re("Object already scheduled for deletion"),he.push(this),he.length===1&&$&&$(Te),this.L.Z=!0,this},An.prototype.pa=function(N){return this.ja&&(N=this.ja(N)),N},An.prototype.ga=function(N){this.V&&this.V(N)},An.prototype.argPackAdvance=8,An.prototype.readValueFromPointer=Bt,An.prototype.deleteObject=function(N){N!==null&&N.delete()},An.prototype.fromWireType=function(N){function L(){return this.ca?wt(this.M.W,{O:this.va,N:Z,T:this,S:N}):wt(this.M.W,{O:this,N})}var Z=this.pa(N);if(!Z)return this.ga(N),null;var oe=It(this.M,Z);if(oe!==void 0)return oe.L.count.value===0?(oe.L.N=Z,oe.L.S=N,oe.clone()):(oe=oe.clone(),this.ga(N),oe);if(oe=this.M.oa(Z),oe=at[oe],!oe)return L.call(this);oe=this.ba?oe.ka:oe.pointerType;var pe=je(Z,this.M,oe.M);return pe===null?L.call(this):this.ca?wt(oe.M.W,{O:oe,N:pe,T:this,S:N}):wt(oe.M.W,{O:oe,N:pe})},Us=s.UnboundTypeError=me("UnboundTypeError");var Wn=typeof atob=="function"?atob:function(N){var L="",Z=0;N=N.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var oe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),Pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++));oe=oe<<2|pe>>4,pe=(pe&15)<<4|we>>2;var Ne=(we&3)<<6|Pe;L+=String.fromCharCode(oe),we!==64&&(L+=String.fromCharCode(pe)),Pe!==64&&(L+=String.fromCharCode(Ne))}while(ZPe.sa).concat(pe.map(Pe=>Pe.ya));Mt([N],we,Pe=>{var Ne={};return pe.forEach((Ve,Oe)=>{var $e=Pe[Oe],ht=Ve.qa,Ht=Ve.ra,pn=Pe[Oe+pe.length],Vt=Ve.xa,Di=Ve.za;Ne[Ve.na]={read:lr=>$e.fromWireType(ht(Ht,lr)),write:(lr,Fs)=>{var cr=[];Vt(Di,lr,pn.toWireType(cr,Fs)),tt(cr)}}}),[{name:L.name,fromWireType:function(Ve){var Oe={},$e;for($e in Ne)Oe[$e]=Ne[$e].read(Ve);return oe(Ve),Oe},toWireType:function(Ve,Oe){for(var $e in Ne)if(!($e in Oe))throw new TypeError('Missing field: "'+$e+'"');var ht=Z();for($e in Ne)Ne[$e].write(ht,Oe[$e]);return Ve!==null&&Ve.push(oe,ht),ht},argPackAdvance:8,readValueFromPointer:Bt,U:oe}]})},v:function(){},B:function(N,L,Z,oe,pe){var we=Wt(Z);L=ae(L),J(N,{name:L,fromWireType:function(Pe){return!!Pe},toWireType:function(Pe,Ne){return Ne?oe:pe},argPackAdvance:8,readValueFromPointer:function(Pe){if(Z===1)var Ne=g;else if(Z===2)Ne=C;else if(Z===4)Ne=R;else throw new TypeError("Unknown boolean type size: "+L);return this.fromWireType(Ne[Pe>>we])},U:null})},f:function(N,L,Z,oe,pe,we,Pe,Ne,Ve,Oe,$e,ht,Ht){$e=ae($e),we=fi(pe,we),Ne&&(Ne=fi(Pe,Ne)),Oe&&(Oe=fi(Ve,Oe)),Ht=fi(ht,Ht);var pn=V($e);At(pn,function(){or("Cannot construct "+$e+" due to unbound types",[oe])}),Mt([N,L,Z],oe?[oe]:[],function(Vt){if(Vt=Vt[0],oe)var Di=Vt.M,lr=Di.W;else lr=Ue.prototype;Vt=O(pn,function(){if(Object.getPrototypeOf(this)!==Fs)throw new ve("Use 'new' to construct "+$e);if(cr.X===void 0)throw new ve($e+" has no accessible constructor");var rf=cr.X[arguments.length];if(rf===void 0)throw new ve("Tried to invoke ctor of "+$e+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(cr.X).toString()+") parameters instead!");return rf.apply(this,arguments)});var Fs=Object.create(lr,{constructor:{value:Vt}});Vt.prototype=Fs;var cr=new Yt($e,Vt,Fs,Ht,Di,we,Ne,Oe);Di=new An($e,cr,!0,!1),lr=new An($e+"*",cr,!1,!1);var yo=new An($e+" const*",cr,!1,!0);return at[N]={pointerType:lr,ka:yo},Ki(pn,Vt),[Di,lr,yo]})},c:function(N,L,Z,oe,pe,we,Pe){var Ne=mo(Z,oe);L=ae(L),we=fi(pe,we),Mt([],[N],function(Ve){function Oe(){or("Cannot call "+$e+" due to unbound types",Ne)}Ve=Ve[0];var $e=Ve.name+"."+L;L.startsWith("@@")&&(L=Symbol[L.substring(2)]);var ht=Ve.M.constructor;return ht[L]===void 0?(Oe.Y=Z-1,ht[L]=Oe):(it(ht,L,$e),ht[L].R[Z-1]=Oe),Mt([],Ne,function(Ht){return Ht=As($e,[Ht[0],null].concat(Ht.slice(1)),null,we,Pe),ht[L].R===void 0?(Ht.Y=Z-1,ht[L]=Ht):ht[L].R[Z-1]=Ht,[]}),[]})},o:function(N,L,Z,oe,pe,we){0{or("Cannot construct "+Ne.name+" due to unbound types",Pe)},Mt([],Pe,function(Oe){return Oe.splice(1,0,null),Ne.M.X[L-1]=As(Ve,Oe,null,pe,we),[]}),[]})},a:function(N,L,Z,oe,pe,we,Pe,Ne){var Ve=mo(Z,oe);L=ae(L),we=fi(pe,we),Mt([],[N],function(Oe){function $e(){or("Cannot call "+ht+" due to unbound types",Ve)}Oe=Oe[0];var ht=Oe.name+"."+L;L.startsWith("@@")&&(L=Symbol[L.substring(2)]),Ne&&Oe.M.ia.push(L);var Ht=Oe.M.W,pn=Ht[L];return pn===void 0||pn.R===void 0&&pn.className!==Oe.name&&pn.Y===Z-2?($e.Y=Z-2,$e.className=Oe.name,Ht[L]=$e):(it(Ht,L,ht),Ht[L].R[Z-2]=$e),Mt([],Ve,function(Vt){return Vt=As(ht,Vt,Oe,we,Pe),Ht[L].R===void 0?(Vt.Y=Z-2,Ht[L]=Vt):Ht[L].R[Z-2]=Vt,[]}),[]})},A:function(N,L){L=ae(L),J(N,{name:L,fromWireType:function(Z){var oe=Be(Z);return Eo(Z),oe},toWireType:function(Z,oe){return H(oe)},argPackAdvance:8,readValueFromPointer:Bt,U:null})},m:function(N,L,Z){Z=Wt(Z),L=ae(L),J(N,{name:L,fromWireType:function(oe){return oe},toWireType:function(oe,pe){return pe},argPackAdvance:8,readValueFromPointer:Nu(L,Z),U:null})},d:function(N,L,Z,oe,pe){L=ae(L),pe===-1&&(pe=4294967295),pe=Wt(Z);var we=Ne=>Ne;if(oe===0){var Pe=32-8*Z;we=Ne=>Ne<>>Pe}Z=L.includes("unsigned")?function(Ne,Ve){return Ve>>>0}:function(Ne,Ve){return Ve},J(N,{name:L,fromWireType:we,toWireType:Z,argPackAdvance:8,readValueFromPointer:Lu(L,pe,oe!==0),U:null})},b:function(N,L,Z){function oe(we){we>>=2;var Pe=w;return new pe(y,Pe[we+1],Pe[we])}var pe=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][L];Z=ae(Z),J(N,{name:Z,fromWireType:oe,argPackAdvance:8,readValueFromPointer:oe},{ta:!0})},n:function(N,L){L=ae(L);var Z=L==="std::string";J(N,{name:L,fromWireType:function(oe){var pe=w[oe>>2],we=oe+4;if(Z)for(var Pe=we,Ne=0;Ne<=pe;++Ne){var Ve=we+Ne;if(Ne==pe||v[Ve]==0){if(Pe=Pe?x(v,Pe,Ve-Pe):"",Oe===void 0)var Oe=Pe;else Oe+="\0",Oe+=Pe;Pe=Ve+1}}else{for(Oe=Array(pe),Ne=0;Ne=Ve?Ne++:2047>=Ve?Ne+=2:55296<=Ve&&57343>=Ve?(Ne+=4,++we):Ne+=3}we=Ne}else we=pe.length;if(Ne=Ei(4+we+1),Ve=Ne+4,w[Ne>>2]=we,Z&&Pe){if(Pe=Ve,Ve=we+1,we=v,0=$e){var ht=pe.charCodeAt(++Oe);$e=65536+(($e&1023)<<10)|ht&1023}if(127>=$e){if(Pe>=Ve)break;we[Pe++]=$e}else{if(2047>=$e){if(Pe+1>=Ve)break;we[Pe++]=192|$e>>6}else{if(65535>=$e){if(Pe+2>=Ve)break;we[Pe++]=224|$e>>12}else{if(Pe+3>=Ve)break;we[Pe++]=240|$e>>18,we[Pe++]=128|$e>>12&63}we[Pe++]=128|$e>>6&63}we[Pe++]=128|$e&63}}we[Pe]=0}}else if(Pe)for(Pe=0;PeB,Ne=1;else L===4&&(oe=Se,pe=Ie,we=Ze,Pe=()=>w,Ne=2);J(N,{name:Z,fromWireType:function(Ve){for(var Oe=w[Ve>>2],$e=Pe(),ht,Ht=Ve+4,pn=0;pn<=Oe;++pn){var Vt=Ve+4+pn*L;(pn==Oe||$e[Vt>>Ne]==0)&&(Ht=oe(Ht,Vt-Ht),ht===void 0?ht=Ht:(ht+="\0",ht+=Ht),Ht=Vt+L)}return vt(Ve),ht},toWireType:function(Ve,Oe){typeof Oe!="string"&&re("Cannot pass non-string to C++ string type "+Z);var $e=we(Oe),ht=Ei(4+$e+L);return w[ht>>2]=$e>>Ne,pe(Oe,ht+4,$e+L),Ve!==null&&Ve.push(vt,ht),ht},argPackAdvance:8,readValueFromPointer:Bt,U:function(Ve){vt(Ve)}})},k:function(N,L,Z,oe,pe,we){ot[N]={name:ae(L),ea:fi(Z,oe),V:fi(pe,we),ha:[]}},h:function(N,L,Z,oe,pe,we,Pe,Ne,Ve,Oe){ot[N].ha.push({na:ae(L),sa:Z,qa:fi(oe,pe),ra:we,ya:Pe,xa:fi(Ne,Ve),za:Oe})},C:function(N,L){L=ae(L),J(N,{ua:!0,name:L,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(N,L,Z,oe,pe){N=pt[N],L=Be(L),Z=gt(Z);var we=[];return w[oe>>2]=H(we),N(L,Z,we,pe)},t:function(N,L,Z,oe){N=pt[N],L=Be(L),Z=gt(Z),N(L,Z,null,oe)},g:Eo,l:function(N,L){var Z=_t(N,L),oe=Z[0];L=oe.name+"_$"+Z.slice(1).map(function(Pe){return Pe.name}).join("_")+"$";var pe=St[L];if(pe!==void 0)return pe;var we=Array(N-1);return pe=Qt((Pe,Ne,Ve,Oe)=>{for(var $e=0,ht=0;ht>>=0,2147483648=Z;Z*=2){var oe=L*(1+.2/Z);oe=Math.min(oe,N+100663296);var pe=Math;oe=Math.max(N,oe),pe=pe.min.call(pe,2147483648,oe+(65536-oe%65536)%65536);e:{try{m.grow(pe-y.byteLength+65535>>>16),K();var we=1;break e}catch{}we=void 0}if(we)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(N,L,Z,oe){for(var pe=0,we=0;we>2],Ne=w[L+4>>2];L+=8;for(var Ve=0;Ve>2]=pe,0}};(function(){function N(pe){s.asm=pe.exports,m=s.asm.D,K(),M=s.asm.I,q.unshift(s.asm.E),ce--,s.monitorRunDependencies&&s.monitorRunDependencies(ce),ce==0&&se&&(pe=se,se=null,pe())}function L(pe){N(pe.instance)}function Z(pe){return Ce().then(function(we){return WebAssembly.instantiate(we,oe)}).then(function(we){return we}).then(pe,function(we){f("failed to asynchronously prepare wasm: "+we),fe(we)})}var oe={a:yt};if(ce++,s.monitorRunDependencies&&s.monitorRunDependencies(ce),s.instantiateWasm)try{return s.instantiateWasm(oe,N)}catch(pe){f("Module.instantiateWasm callback failed with error: "+pe),a(pe)}return function(){return d||typeof WebAssembly.instantiateStreaming!="function"||U(ee)||typeof fetch!="function"?Z(L):fetch(ee,{credentials:"same-origin"}).then(function(pe){return WebAssembly.instantiateStreaming(pe,oe).then(L,function(we){return f("wasm streaming compile failed: "+we),f("falling back to ArrayBuffer instantiation"),Z(L)})})}().catch(a),{}})(),s.___wasm_call_ctors=function(){return(s.___wasm_call_ctors=s.asm.E).apply(null,arguments)};var et=s.___getTypeName=function(){return(et=s.___getTypeName=s.asm.F).apply(null,arguments)};s.__embind_initialize_bindings=function(){return(s.__embind_initialize_bindings=s.asm.G).apply(null,arguments)};var Ei=s._malloc=function(){return(Ei=s._malloc=s.asm.H).apply(null,arguments)},vt=s._free=function(){return(vt=s._free=s.asm.J).apply(null,arguments)};s.dynCall_jiji=function(){return(s.dynCall_jiji=s.asm.K).apply(null,arguments)};var hn;se=function N(){hn||ar(),hn||(se=N)};function ar(){function N(){if(!hn&&(hn=!0,s.calledRun=!0,!E)){if(ke(q),o(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;){var L=s.postRun.shift();ge.unshift(L)}ke(ge)}}if(!(0ln(n),e);j.useEffect(()=>t,[t])}let LE;function FO(){if(LE==null){const n=LE=dn(void 0);Ui.loadYoga().then(e=>n.value=e)}return LE}function YR(n,e,...t){const i=j.useMemo(()=>dn(void 0),[]);return j.useEffect(()=>{if(!(e instanceof zn)){let r=!1;return n(e,...t).then(s=>r?void 0:i.value=s),()=>r=!0}return ln(()=>{let r=!1;return n(e.value,...t).then(s=>r?void 0:i.value=s).catch(console.error),()=>r=!0})},[e,...t]),i}function XR(n,e,t,i,r){const[s,o]=n.value,[a,c,A,h]=e.value,[f,d,m,E]=t.value,x=a+f,y=c+d,g=A+m,v=h+E,C=s-v-y,B=o-x-g,R=C/B;let w=1;return R>r?w=B*i:w=C*i/r,[(v-y)*.5*i,(g-x)*.5*i,w]}const ES=new Je;function FC(n,e,t,i=0){const r=e*n.itemSize+i;n.addUpdateRange(r,3),Array.isArray(t)?n.set(t,r):(ES.set(t),ES.toArray(n.array,r)),n.needsUpdate=!0}function kC(n){return n instanceof zn?n.value:n}const JR=j.createContext(null);function Hl(){return j.useContext(JR)}const kO=JR.Provider;function Vo(n){const e=new Map;return(t,i)=>{const r=t.length;for(const s in i){const o=i[s];if(o===void 0)return;let a=e.get(o);a==null&&e.set(o,a=ti(()=>n()?kC(o):void 0));for(let c=0;c"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),KR=dn((uu==null?void 0:uu.matches)??!1);uu==null||uu.addEventListener("change",n=>KR.value=n.matches);const jR=dn("system"),qR=ti(()=>{switch(jR.value){case"system":return KR.value;case"dark":return!0;case"light":return!1}});function GO(n){jR.value=n}const OO=Vo(()=>qR.value);function Ba(n,e){qh(e,t=>{const i=t.dark;i!=null&&OO(n,i)})}function HO({dark:n,light:e}){const t={};for(const i in n)t[i]=ti(()=>qR.value?n[i]:e[i]);return t}const zO=Math.cos(45/180*Math.PI),PE=[new un,new un,new un,new un],yS=new G;class VO{constructor(e,t,i,r,s){We(this,"planes");We(this,"facePlane");We(this,"originalCenter");this.originalCenter=new G(t,i,0).applyMatrix4(e),this.facePlane=new un(new G(0,0,1),0).applyMatrix4(e);const o=r/2,a=s/2,c=i+a,A=t+o,h=-i+a,f=-t+o;this.planes=[new un(new G(0,-1,0),h).applyMatrix4(e),new un(new G(-1,0,0),f).applyMatrix4(e),new un(new G(0,1,0),c).applyMatrix4(e),new un(new G(1,0,0),A).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const s=this.facePlane,o=e[r],a=s.normal.dot(o.normal);if(Math.abs(a)>.99)return this;const c=PE[r];if(Math.abs(a)<.01){c.copy(o);continue}c.normal.crossVectors(s.normal,o.normal).normalize().cross(s.normal).negate();const A=1-a*a,h=(s.constant-o.constant*a)/A,f=(o.constant-s.constant*a)/A;yS.copy(s.normal).multiplyScalar(h).addScaledVector(o.normal,f),c.constant=-yS.dot(c.normal)}let t=0;const i=this.planes[0].normal;for(;PE[t].normal.dot(i)>zO;)break;for(let r=0;r<4;r++){const s=this.planes[r],o=(r+t)%4;PE[o].distanceToPoint(this.originalCenter)ti(()=>{const r=e.value,s=n==null?void 0:n.value;if(s==null||r==null)return!1;const[o,a]=t.value;for(let h=0;h<4;h++){const[f,d]=XO[h];CS[h].set(f*i.pixelSize*o,d*i.pixelSize*a,0).applyMatrix4(r)}const{planes:c}=s;let A;for(let h=0;h<4;h++){const f=c[h];A=!0;for(let d=0;d<4;d++){const m=CS[d];f.distanceToPoint(m)>=0&&(A=!1)}if(A)return!0}return!1}),[e,n,i,t])}function JO(n,e,t,i,r,s){return j.useMemo(()=>ti(()=>{const o=n.value;if(o==null||i.value===Ui.Overflow.Visible)return s==null?void 0:s.value;const[a,c]=e.value,[A,h,f,d]=t.value,m=new VO(o,(h-d)*r.pixelSize/2,(A-f)*r.pixelSize/2,(a-d-h)*r.pixelSize,(c-A-f)*r.pixelSize);return(s==null?void 0:s.value)!=null&&m.min(s.value),m}),[n,e,t,r,i,s])}const GC=new un(new G(-1,0,0),Number.MAX_SAFE_INTEGER),yg=new Float32Array(16);for(let n=0;n<4;n++)GC.normal.toArray(yg,n*4),yg[n*4+3]=GC.constant;function Zh(n,e){const t=j.useMemo(()=>[new un,new un,new un,new un],[]);return ya(()=>{var s;const i=e.current;if(i==null)return;const r=(s=n==null?void 0:n.value)==null?void 0:s.planes;if(r==null){for(let o=0;o<4;o++)t[o].copy(GC);return}for(let o=0;o<4;o++)t[o].copy(r[o]).applyMatrix4(i.matrixWorld)}),t}class KO{constructor(e,t){We(this,"glyphInfoMap",new Map);We(this,"kerningMap",new Map);We(this,"questionmarkGlyphInfo");We(this,"pageWidth");We(this,"pageHeight");We(this,"distanceRange");this.page=t;const{scaleW:i,scaleH:r,lineHeight:s}=e.common;this.pageWidth=i,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const c of e.chars)c.uvX=c.x/i,c.uvY=c.y/r,c.uvWidth=c.width/i,c.uvHeight=c.height/r,c.width/=o,c.height/=o,c.xadvance/=o,c.xoffset/=o,c.yoffset-=s-o,c.yoffset/=o,this.glyphInfoMap.set(c.char,c);for(const{first:c,second:A,amount:h}of e.kernings)this.kerningMap.set(`${c}/${A}`,h/o);const a=this.glyphInfoMap.get("?");if(a==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=a}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` -`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,t){return this.kerningMap.get(`${e}/${t}`)??0}}function jO(n,e,t){e[t+0]=n.uvX,e[t+1]=n.uvY+n.uvHeight,e[t+2]=n.uvWidth,e[t+3]=-n.uvHeight}const IS=new ft,qO=new ft;class ZO{constructor(e,t,i,r,s){We(this,"index");We(this,"hidden",!0);We(this,"glyphInfo");We(this,"x",0);We(this,"y",0);We(this,"fontSize",0);this.group=e,this.baseMatrix=t,this.color=i,this.opacity=r,this.clippingRect=s}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const t=this.index*16,{instanceClipping:i}=this.group;this.clippingRect==null?i.set(yg,t):this.clippingRect.toArray(i.array,t),i.addUpdateRange(t,16),i.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&FC(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:t}=this.group,i=this.index*4+3;t.array[i]=e,t.addUpdateRange(i,1),t.needsUpdate=!0}updateGlyphAndTransformation(e,t,i,r){this.glyphInfo===e&&this.x===t&&this.y===i&&this.fontSize===r||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=t,this.y=i,this.fontSize=r,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:t}=this.group;jO(this.glyphInfo,t.array,e),t.addUpdateRange(e,4),t.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:t}=this.group;t.addUpdateRange(e,16),IS.makeTranslation(this.x,this.y,0).multiply(qO.makeScale(this.fontSize*this.glyphInfo.width,this.fontSize*this.glyphInfo.height,1)).premultiply(this.baseMatrix),IS.toArray(t.array,e),t.needsUpdate=!0}}function $O(n,e,t,i){return((i==null?0:n.getKerning(i,t.id))+t.xoffset)*e}function eH(n,e,t){return(t.yoffset+(e-1)/2)*n}function dm(n,e,t){return e.xadvance*n+t}function tH(n,e){return n*e}function OC(n,{lineHeight:e,fontSize:t}){return Math.max(n,1)*t*e}class nH{constructor(e,t,i,r,s,o,a){We(this,"glyphLines",[]);We(this,"unsubscribe");We(this,"unsubscribeList",[]);We(this,"opacity",1);We(this,"color",16777215);this.group=e,this.getAlignmentProperties=t,this.getAppearanceProperties=i,this.layout=r,this.matrix=s,this.parentClippingRect=a,this.unsubscribe=ln(()=>{const c=i.value;if(c==null||(o==null?void 0:o.value)===!0||(c("opacity")??1)<.01){this.hide();return}this.show()})}show(){this.unsubscribeList.length>0||(nl(this.glyphLines,e=>e.show()),this.unsubscribeList.push(ln(()=>{const e=this.matrix.value;e!=null&&nl(this.glyphLines,t=>t.updateBaseMatrix(e))}),ln(()=>{var t;const e=(t=this.parentClippingRect)==null?void 0:t.value;nl(this.glyphLines,i=>i.updateClippingRect(e))}),ln(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.color=e("color")??16777215;nl(this.glyphLines,i=>i.updateColor(t))}),ln(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.opacity=e("opacity")??1;nl(this.glyphLines,i=>i.updateOpacity(t))}),ln(()=>{var x;const e=this.layout.value,t=this.getAlignmentProperties.value;if(e==null||t==null)return;const{text:i,font:r,lines:s,letterSpacing:o=0,fontSize:a=16,lineHeight:c=1.2,availableHeight:A,availableWidth:h}=e;let f=-A/2;switch(t("verticalAlign")){case"center":f+=(A-OC(e.lines.length,e))/2;break;case"bottom":f+=A-OC(e.lines.length,e);break}const d=t("horizontalAlign")??"left",m=s.length,E=this.group.pixelSize;for(let y=0;yy.hide(),m),this.glyphLines.length=m})))}hide(){const e=this.unsubscribeList.length;if(e!==0){for(let t=0;tt.hide())}}destroy(){this.hide(),this.glyphLines.length=0,this.unsubscribe()}}function nl(n,e,t=0){const i=n.length;for(let r=t;r{t.uniforms.fontPage={value:e.page},t.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},t.uniforms.distanceRange={value:e.distanceRange},t.uniforms.v_weight={value:.3},t.vertexShader=`attribute vec4 instanceUVOffset; - varying vec2 fontUv; - attribute vec4 instanceRGBA; - varying vec4 rgba; - attribute mat4 instanceClipping; - varying mat4 clipping; - varying vec3 localPosition; - `+t.vertexShader,t.vertexShader=t.vertexShader.replace("#include ",`#include - fontUv = instanceUVOffset.xy + uv * instanceUVOffset.zw; - rgba = instanceRGBA; - clipping = instanceClipping; - localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`),t.fragmentShader=`uniform sampler2D fontPage; - uniform vec2 pageSize; - uniform int distanceRange; - uniform float v_weight; - varying vec2 fontUv; - varying vec4 rgba; - varying mat4 clipping; - varying vec3 localPosition; - float median(float r, float g, float b) { - return max(min(r, g), min(max(r, g), b)); - } - float getDistance() { - vec3 msdf = texture(fontPage, fontUv).rgb; - return median(msdf.r, msdf.g, msdf.b); - } - `+t.fragmentShader,t.fragmentShader=t.fragmentShader.replace("#include ",` #include - vec4 plane; - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - for(int i = 0; i < 4; i++) { - plane = clipping[ i ]; - distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - - if ( clipOpacity == 0.0 ) discard; - } - vec2 dxdy = fwidth(fontUv) * pageSize; - float dist = getDistance() + min(float(v_weight), 0.5 - 1.0 / float(distanceRange)) - 0.5; - float multiplier = clamp(dist * float(distanceRange) / length(dxdy) + 0.5, 0.0, 1.0); - if(multiplier <= 0.5) { - discard; - } - diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); - diffuseColor *= rgba; - `)}}}const HC=Symbol("camera-distance-key"),zC=Symbol("order-info-key");function sH(n,e){if(n.groupOrder!==e.groupOrder)return n.groupOrder-e.groupOrder;if(n.renderOrder!==e.renderOrder)return n.renderOrder-e.renderOrder;const t=n.object[HC],i=e.object[HC];return t==null||i==null?n.z!==e.z?e.z-n.z:n.id-e.id:t===i?aH(n.object[zC],e.object[zC]):i.current-t.current}function oH(n){n.setTransparentSort(sH)}const Vi={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function aH(n,e){let t=n.majorIndex-e.majorIndex;return t!=0||(t=n.elementType-e.elementType,t!=0)?t:n.minorIndex-e.minorIndex}const $R=j.createContext(null),lH=$R.Provider;function Br(n,e,t,i){const r=i??j.useContext($R),s=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return j.useMemo(()=>{let a,c;return r==null?(a=0,c=0):n>r.elementType?(a=r.majorIndex,c=0):n!=r.elementType||!cH(t,r.instancedGroupDependencies)?(a=r.majorIndex+1,c=0):(a=r.majorIndex,c=r.minorIndex+1),s>0&&(a+=s,c=0),c+=o,{instancedGroupDependencies:t,elementType:n,majorIndex:a,minorIndex:c}},[s,o,r,n,t])}function cH(n,e){if(n===e)return!0;if(n==null||e==null)return!1;let t=0;for(const i in n){if(n[i]!=e[i])return!1;++t}return t===Object.keys(e).length}function Vl(n,e,t){return n[HC]=e,n[zC]=t,n}class uH extends Gr{constructor(t,i,r,s){super();We(this,"instanceMatrix");We(this,"instanceUV");We(this,"instanceRGBA");We(this,"instanceClipping");We(this,"glyphs",[]);We(this,"requestedGlyphs",[]);We(this,"holeIndicies",[]);We(this,"mesh");We(this,"material");We(this,"timeTillDecimate");this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.material=new rH(t)}requestActivate(t){const i=this.holeIndicies.shift();if(i!=null){this.glyphs[i]=t,t.activate(i);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(t);return}const r=this.mesh.count;this.glyphs[r]=t,t.activate(r),this.mesh.count+=1}delete(t){if(t.index==null){const s=this.requestedGlyphs.indexOf(t);if(s===-1)return;this.requestedGlyphs.splice(s,1);return}const i=this.requestedGlyphs.shift();if(i!=null){i.activate(t.index),this.glyphs[t.index]=i,t.index=void 0;return}if(t.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,t.index=void 0;return}const r=t.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(t.index),this.glyphs[t.index]=void 0,t.index=void 0}onFrame(t){var a;const i=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(i===0){this.visible=!1;return}this.visible=!0;const r=((a=this.instanceMatrix)==null?void 0:a.count)??0;if(i0)&&i<=r)return;this.timeTillDecimate=void 0,this.resize(i);const s=this.mesh.count,o=this.requestedGlyphs.length;for(let c=0;cd-m);const A=this.holeIndicies.length;let h=0,f=0;for(;f0)for(let d=this.holeIndicies[0];d{for(const o of r)o(s);UE.set(n,s)}).catch(console.error)}async function fH(n,e){const t=await(await fetch(n)).json();if(t.pages.length!==1)throw new Error("only supporting exactly 1 page");const i=await AH.loadAsync(new URL(t.pages[0],n).href);return i.anisotropy=e.capabilities.getMaxAnisotropy(),i.flipY=!1,new KO(t,i)}const dH=({text:n,fontSize:e,font:t,letterSpacing:i},r,s)=>{let o={start:s,end:s,whitespaces:0,width:0},a=s,c=0,A=0;for(;ar)break;c+=f,++a,h===" "?A+=1:(o.width=c,o.end=a,o.whitespaces=A)}return o},pH=({text:n,fontSize:e,font:t,letterSpacing:i},r,s)=>{let o={start:s,end:s,whitespaces:0,width:0},a=0,c=0,A=s;for(;A{let o={start:s,end:s,whitespaces:0,width:0},a=0,c=0,A=s;for(;A0&&a+f>r)break;if(++A,a+=f,h===" "){c+=1;continue}const d=n[A];d!=" "&&d!=` -`&&Anew Map,[]),r=j.useCallback((s,o)=>{let a=i.get(o);a==null&&i.set(o,a=new Map);let c=a==null?void 0:a.get(s);return c==null&&(a.set(s,c=new uH(o,n,e,{majorIndex:s,elementType:Vi.Text,minorIndex:0})),t.add(c)),c},[n,e,t]);return ya((s,o)=>{for(const a of i.values())for(const c of a.values())c.onFrame(o)}),r}const IH=j.createContext(null),vH={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},VC={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},xH=["horizontalAlign","verticalAlign"],BH=["color","opacity"],_H=["fontSize","letterSpacing","lineHeight","wordBreak"];function SH(n,e,t,i,r,s,o){const a=j.useContext(tT),c=MH(n),A=j.useMemo(()=>dn(e),[]);A.value=e;const h=j.useRef(void 0),f=TH(n,c,A,h),d=ls(n,xH),m=ls(n,BH),E=j.useMemo(()=>dn(void 0),[]);return j.useEffect(()=>i.addLayoutChangeListener(()=>{const x=h.current;if(x==null)return;const{size:y,paddingInset:g,borderInset:v}=i,[C,B]=y.value,[R,w,T,P]=g.value,[K,M,b,q]=v.value,ge=C-w-P-M-q,X=B-R-T-K-b;E.value=EH(x,ge,X)}),[i]),Ri(()=>{const x=c.value;if(x==null)return;const y=new nH(a(o.majorIndex,x),d,m,E,t,r,s);return()=>y.destroy()},[a,t,i,r,s,o.majorIndex]),f}const wH=["fontFamily","fontWeight"];function MH(n){const e=j.useMemo(()=>dn(void 0),[]),t=j.useContext(IH)??vH,i=ls(n,wH),r=Tv(({gl:s})=>s);return Ri(()=>{const s=i.value;if(s==null)return;let o=s("fontWeight")??"normal";typeof o=="string"&&(o=VC[o]);let a=s("fontFamily");a==null&&(a=Object.keys(t)[0]);const c=QH(t[a],o);let A=!1;return hH(c,r,h=>A?void 0:e.value=h),()=>A=!0},[t,r]),e}function QH(n,e){let t=1/0,i;for(const r in n){const s=Math.abs(e-RH(r));if(s===0)return n[r];sti(()=>{const o=e.value,a=r.value;if(o==null||a==null)return;const c=t.value,A=Array.isArray(c)?c.map(E=>kC(E)).join(""):kC(c),h=a("letterSpacing")??0,f=a("lineHeight")??1.2,d=a("fontSize")??16,m=a("wordBreak")??"break-word";return(E,x)=>{const y=x===Ui.MeasureMode.Undefined?void 0:E;return mH(i.current={font:o,fontSize:d,letterSpacing:h,lineHeight:f,text:A,wordBreak:m},y)}}),[e,r,i,t])}const kc={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},nT=Object.keys(kc),DH=nT.length,iT=j.createContext(null),bH=iT.Provider;function _a(n,e,t){const i=t??j.useContext(iT),r=j.useMemo(()=>({sm:Vo(()=>i.value[0]>kc.sm),md:Vo(()=>i.value[0]>kc.md),lg:Vo(()=>i.value[0]>kc.lg),xl:Vo(()=>i.value[0]>kc.xl),"2xl":Vo(()=>i.value[0]>kc["2xl"])}),[i]);qh(e,s=>{for(let o=0;oe.createChild(n),[n,e]);return j.useEffect(()=>(e.addChild(t),()=>{e.removeChild(t),t.destroy()}),[e,t]),t}function LH(){let n=j.useRef(void 0);return ya(()=>{if(n.current==null)return;const e=n.current;n.current=void 0,e.calculateLayout()}),j.useCallback(e=>{n.current!=null||e.yogaNode==null||(n.current=e)},[])}const Pv=rT.Provider,vs=new un,sp=new G,PH=[new un().setFromNormalAndCoplanarPoint(new G(1,0,0),new G(-.5,0,0)),new un().setFromNormalAndCoplanarPoint(new G(-1,0,0),new G(.5,0,0)),new un().setFromNormalAndCoplanarPoint(new G(0,1,0),new G(0,-.5,0)),new un().setFromNormalAndCoplanarPoint(new G(0,-1,0),new G(0,.5,0))];function sT(n){return(e,t)=>{const i=n.matrixWorld;if(vs.constant=0,vs.normal.set(0,0,1),vs.applyMatrix4(i),vs.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(vs,sp)==null)return;const r=vs.normal.clone();for(let s=0;s<4;s++){const o=PH[s];if(vs.copy(o).applyMatrix4(i),vs.distanceToPoint(sp)<0)return}t.push({distance:sp.distanceTo(e.ray.origin),object:n,point:sp.clone(),normal:r})}}function Tu(n,e,t,i,r){return(s,o)=>{var f;const a=t.current;if(a==null)return;const c=o.length;e.call(n,s,o);const A=(f=i==null?void 0:i.value)==null?void 0:f.planes,h=a.matrixWorld;e:for(let d=o.length-1;d>=c;d--){const m=o[d];if(m.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,A!=null){for(let E=0;E<4;E++)if(vs.copy(A[E]).applyMatrix4(h),vs.distanceToPoint(m.point)<0){o.splice(d,1);continue e}}}}}function oT(n,e){for(;e>=n.length;){let t=0,i=0;if(n.length>0){const r=n[n.length-1];t+=r.offset+r.elements.length,i=Math.min(0,r.missingSpace),r.missingSpace-=i}n.push({add:[],missingSpace:i,offset:t,elements:[]})}}function UH(n,e,t){oT(n,0);const i=n[n.length-1];i.missingSpace+=e-t}function FH(n,e,t,i){oT(n,e);const r=n[e];return r.missingSpace+=1,r.missingSpace<=0?(i(t,r,r.elements.length),r.elements.push(t),!1):(r.add.push(t),!0)}function kH(n,e,t,i,r,s,o,a){if(e>=n.length)throw new Error(`no bucket at index ${e}`);const c=n[e];c.missingSpace-=1;const A=c.add.indexOf(t);if(A!=-1)return c.add.splice(A,1),!1;if(i==null||i>=c.elements.length)throw new Error(`no element at index ${i}`);if(c.add.length>0){const m=c.add.shift();return c.elements[i]=m,r(m,c,i),!1}const h=c.offset,f=c.elements.length-1;if(f!=i){const m=h+f,E=h+i;a(E,m,m+1);const x=c.elements[f];c.elements[i]=x,o(x,i)}if(s(h+f),c.elements.length-=1,e0;){const m=n[e-1];m.missingSpace+=d.missingSpace,d=n[--e]}return n.length=e+1,!1}function GH(n,e,t){let i=n.length,r=-1;for(let o=0;o0&&(r=o);const c=o===i-1;if(!c&&a.missingSpace===0)continue;const A=a.missingSpace<0;for(let h=o-1;h>=0;h--){const f=n[h];if(f.missingSpace===0)continue;const d=f.missingSpace<0;if(d&&(c||A)){xS(n,t,h,o,Math.abs(f.missingSpace));continue}if(!A&&!d)continue;const m=Math.min(Math.abs(f.missingSpace),Math.abs(a.missingSpace));A?OH(n,t,h,o,m):xS(n,t,h,o,m)}}const s=n[r];for(let o=r+1;oh>0)&&(i==null||i>0),[a,c]=e.value;return!(a>0&&c>0&&(r==null||r>0)&&s!=null)&&!o?!1:t==null?!0:!t.value}function QA(n,e,t,i,r){n[e]=HH(n[e],t,Uv(Math.ceil((i??0)/r*100),0,49))}const op=new Je,cT=new Je(-1,-1,-1),BS={backgroundColor:(n,e)=>(Array.isArray(e)?op.setRGB(...e):op.set(e??cT)).toArray(n,4),borderBottomLeftRadius:(n,e,t)=>QA(n,7,0,e,t.value[1]),borderBottomRightRadius:(n,e,t)=>QA(n,7,1,e,t.value[1]),borderTopRightRadius:(n,e,t)=>QA(n,7,2,e,t.value[1]),borderTopLeftRadius:(n,e,t)=>QA(n,7,3,e,t.value[1]),borderColor:(n,e)=>(Array.isArray(e)?op.setRGB(...e):op.set(e??16777215)).toArray(n,8),borderBend:(n,e)=>n[11]=e??0,borderOpacity:(n,e)=>n[12]=e??1,backgroundOpacity:(n,e)=>n[15]=e??-1},uT=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],zH=["borderOpacity","backgroundColor","backgroundOpacity"];class VH{constructor(e,t,i){We(this,"data",new Float32Array(16));We(this,"unsubscribeList",[]);We(this,"unsubscribe");We(this,"visible",!1);We(this,"materials",[]);We(this,"active",dn(!1));We(this,"getProperty",dn(void 0));this.size=e,this.size=e,this.unsubscribe=ln(()=>{const r=this.getProperty.value,s=r!=null&&lT(t,e,i,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=s,!s){this.deactivate();return}this.activate(e,t)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return zH.includes(e)}hasImmediateProperty(e){return e in BS}setProperty(e,t){const i=BS[e];i(this.data,t,this.size)}activate(e,t){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(uT),this.unsubscribeList.push(ln(()=>this.data.set(e.value,13)),ln(()=>this.data.set(t.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let t=0;t{i.call(t,r,s),e.type==="normal"&&(r.uniforms.data={value:e.data}),XH(r,e.type==="instanced")},t}class hT extends Yg{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),dT(e,this.info.type==="instanced")}}class fT extends Wg{constructor(e){super({depthPacking:qI}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),dT(e,this.info.type==="instanced")}}const WH=new fT({type:"instanced"}),YH=new hT({type:"instanced"});function dT(n,e){pT(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",`#include - ${gT(e,void 0)} - `)}function pT(n,e){n.vertexShader=n.vertexShader.replace("#include ",` #include - out vec4 borderRadius; - ${e?"":"uniform highp mat4 data;"}`),n.vertexShader=n.vertexShader.replace("#include ",` #include - highp int packedBorderRadius = int(data[1].w); - borderRadius = vec4( - packedBorderRadius / 125000 % 50, - packedBorderRadius / 2500 % 50, - packedBorderRadius / 50 % 50, - packedBorderRadius % 50 - ) * vec4(0.5 / 50.0);`),e&&(n.vertexShader=n.vertexShader.replace("#include ",` #include - attribute highp mat4 aData; - attribute mat4 aClipping; - out mat4 data; - out mat4 clipping; - out vec3 localPosition;`),n.vertexShader=n.vertexShader.replace("#include ",` #include - data = aData; - clipping = aClipping; - localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`)),n.fragmentShader=`${e?"in":"uniform"} highp mat4 data; - in vec4 borderRadius; - ${e?` - in vec3 localPosition; - in mat4 clipping; - `:""} - - float min4 (vec4 v) { - return min(min(min(v.x,v.y),v.z),v.w); - } - float max4 (vec4 v) { - return max(max(max(v.x,v.y),v.z),v.w); - } - vec2 radiusDistance(float radius, vec2 outside, vec2 border, vec2 borderSize) { - vec2 outerRadiusXX = vec2(radius, radius); - vec2 innerRadiusXX = outerRadiusXX - borderSize; - vec2 radiusWeightUnnormalized = abs(innerRadiusXX - border); - vec2 radiusWeight = radiusWeightUnnormalized / vec2(radiusWeightUnnormalized.x + radiusWeightUnnormalized.y); - return vec2( - radius - distance(outside, outerRadiusXX), - dot(radiusWeight, innerRadiusXX) - distance(border, innerRadiusXX) - ); - } - `+n.fragmentShader,n.fragmentShader=n.fragmentShader.replace("#include ",` ${e?` - vec4 plane; - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - - for(int i = 0; i < 4; i++) { - plane = clipping[ i ]; - distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - - if ( clipOpacity < 0.01 ) discard; - } - `:""} - vec4 absoluteBorderSize = data[0]; - vec3 backgroundColor = data[1].xyz; - vec3 borderColor = data[2].xyz; - float borderBend = data[2].w; - float borderOpacity = data[3].x; - float width = data[3].y; - float height = data[3].z; - float backgroundOpacity = data[3].w; - float ratio = width / height; - vec4 relative = vec4(height, height, height, height); - vec4 borderSize = absoluteBorderSize / relative; - vec4 v_outsideDistance = vec4(1.0 - vUv.y, (1.0 - vUv.x) * ratio, vUv.y, vUv.x * ratio); - vec4 v_borderDistance = v_outsideDistance - borderSize; - - vec2 distance = vec2(min4(v_outsideDistance), min4(v_borderDistance)); - vec4 negateBorderDistance = vec4(1.0) - v_borderDistance; - float maxWeight = max4(negateBorderDistance); - vec4 borderWeight = step(maxWeight, negateBorderDistance); - - vec4 insideBorder; - - if(all(lessThan(v_outsideDistance.xw, borderRadius.xx))) { - distance = radiusDistance(borderRadius.x, v_outsideDistance.xw, v_borderDistance.xw, borderSize.xw); - - float tmp = borderRadius.x - borderSize.w; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.x - borderSize.x; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.yz = vec2(0.0); - insideBorder.xw = max(vec2(0.0), lineIntersection - v_borderDistance.xw); - - } else if(all(lessThan(v_outsideDistance.xy, borderRadius.yy))) { - distance = radiusDistance(borderRadius.y, v_outsideDistance.xy, v_borderDistance.xy, borderSize.xy); - - float tmp = borderRadius.y - borderSize.y; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.y - borderSize.x; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.zw = vec2(0.0); - insideBorder.xy = max(vec2(0.0), lineIntersection - v_borderDistance.xy); - - } else if(all(lessThan(v_outsideDistance.zy, borderRadius.zz))) { - distance = radiusDistance(borderRadius.z, v_outsideDistance.zy, v_borderDistance.zy, borderSize.zy); - - float tmp = borderRadius.z - borderSize.y; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.z - borderSize.z; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.xw = vec2(0.0); - insideBorder.zy =max(vec2(0.0), lineIntersection - v_borderDistance.zy); - - } else if(all(lessThan(v_outsideDistance.zw, borderRadius.ww))) { - distance = radiusDistance(borderRadius.w, v_outsideDistance.zw, v_borderDistance.zw, borderSize.zw); - - float tmp = borderRadius.w - borderSize.w; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.w - borderSize.z; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.xy = vec2(0.0); - insideBorder.zw = max(vec2(0.0), lineIntersection - v_borderDistance.zw); - - } - - if(insideBorder.x + insideBorder.y + insideBorder.z + insideBorder.w > 0.0) { - borderWeight = normalize(insideBorder); - } - - #include `)}function gT(n,e){return`float ddx = fwidth(distance.x); - float outer = smoothstep(-ddx, ddx, distance.x); - - float ddy = fwidth(distance.y); - float inner = smoothstep(-ddy, ddy, distance.y); - - float transition = 1.0 - step(0.1, outer - inner) * (1.0 - inner); - - if(backgroundColor.r < 0.0 && backgroundOpacity >= 0.0) { - backgroundColor = vec3(1.0); - } - if(backgroundOpacity < 0.0) { - backgroundOpacity = backgroundColor.r >= 0.0 ? 1.0 : 0.0; - } - - if(backgroundOpacity < 0.0) { - backgroundOpacity = 0.0; - } - - float outOpacity = ${n?"clipOpacity * ":""} outer * mix(borderOpacity, ${e==null?"":`${e} *`} backgroundOpacity, transition); - - if(outOpacity < 0.01) { - discard; - }`}function XH(n,e){pT(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",` #include - ${gT(e,"diffuseColor.a")} - diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); - diffuseColor.a = outOpacity; - `),n.fragmentShader=n.fragmentShader.replace("#include ",` #include - vec3 b = normalize(vBitangent); - vec3 t = normalize(vTangent); - mat4 directions = mat4(vec4(b, 1.0), vec4(t, 1.0), vec4(-b, 1.0), vec4(-t, 1.0)); - float currentBorderSize = distance.x - distance.y; - float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; - vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; - normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); - `)}class JH extends rn{constructor(t,i,r){const s=aT();super(s);We(this,"count",0);We(this,"isInstancedMesh",!0);We(this,"instanceColor",null);We(this,"morphTexture",null);We(this,"boundingBox",new ei);We(this,"boundingSphere",new ui);this.instanceMatrix=t,this.frustumCulled=!1,s.attributes.aData=i,s.attributes.aClipping=r,this.customDepthMaterial=WH,this.customDistanceMaterial=YH}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class KH extends Gr{constructor(t,i,r,s,o,a){super();We(this,"mesh");We(this,"instanceMatrix");We(this,"instanceData");We(this,"instanceClipping");We(this,"buckets",[]);We(this,"elementCount",0);We(this,"bufferElementSize",0);We(this,"timeToNextUpdate");We(this,"activateElement",(t,i,r)=>{const s=i.offset+r;this.instanceData.set(uT,16*s),this.instanceData.addUpdateRange(16*s,16),this.instanceData.needsUpdate=!0,t.activate(i,r)});We(this,"setElementIndex",(t,i)=>{t.setIndexInBucket(i)});We(this,"bufferCopyWithin",(t,i,r)=>{FE(this.instanceMatrix,t,i,r),FE(this.instanceData,t,i,r),FE(this.instanceClipping,t,i,r)});We(this,"clearBufferAt",t=>{const i=t*16;this.instanceMatrix.array.fill(0,i,i+16),this.instanceMatrix.addUpdateRange(i,16),this.instanceMatrix.needsUpdate=!0});this.material=t,this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.meshReceiveShadow=o,this.meshCastShadow=a}updateCount(){const t=this.buckets[this.buckets.length-1],i=t.offset+t.elements.length;this.mesh!=null&&(this.mesh.count=i),this.visible=i>0}insert(t,i){if(this.elementCount+=1,!FH(this.buckets,t,i,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(t,i,r){if(this.elementCount-=1,!kH(this.buckets,t,r,i,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(t){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=t,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(t){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,t)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),GH(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const t=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),UH(this.buckets,t,this.bufferElementSize);const i=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&i.set(this.instanceMatrix.array.subarray(0,i.length)),this.instanceMatrix=new Cr(i,16,!1),this.instanceMatrix.setUsage(Xo);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new Cr(r,16,!1),this.instanceData.setUsage(Xo);const s=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&s.set(this.instanceClipping.array.subarray(0,s.length)),this.instanceClipping=new Cr(s,16,!1),this.instanceClipping.setUsage(Xo),this.mesh=new JH(this.instanceMatrix,this.instanceData,this.instanceClipping),Vl(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function FE(n,e,t,i){const r=n.itemSize,s=t*r,o=i*r,a=e*r;n.array.copyWithin(a,s,o);const c=o-s;n.addUpdateRange(s,c),n.addUpdateRange(a,c),n.needsUpdate=!0}const _S={backgroundColor:(n,e,t)=>FC(n.instanceData,e,t??cT,4),borderBottomLeftRadius:(n,e,t,{value:i})=>lp(n.instanceData,e,7,0,t,i[1]),borderBottomRightRadius:(n,e,t,{value:i})=>lp(n.instanceData,e,7,1,t,i[1]),borderTopRightRadius:(n,e,t,{value:i})=>lp(n.instanceData,e,7,2,t,i[1]),borderTopLeftRadius:(n,e,t,{value:i})=>lp(n.instanceData,e,7,3,t,i[1]),borderColor:(n,e,t)=>FC(n.instanceData,e,t??16777215,8),borderBend:(n,e,t)=>kE(n.instanceData,e,11,t??0),borderOpacity:(n,e,t)=>kE(n.instanceData,e,12,t??1),backgroundOpacity:(n,e,t)=>kE(n.instanceData,e,15,t??-1)},jH=["borderOpacity","backgroundColor","backgroundOpacity"],ap=new ft,qH=new ft;class ZH{constructor(e,t,i,r,s,o,a,c){We(this,"indexInBucket");We(this,"bucket");We(this,"unsubscribeList",[]);We(this,"unsubscribeVisible");We(this,"destroyed",!1);We(this,"insertedIntoGroup",!1);We(this,"active",dn(!1));We(this,"getProperty",dn(void 0));this.group=e,this.matrix=t,this.size=i,this.offset=r,this.borderInset=s,this.clippingRect=o,this.minorIndex=c,this.unsubscribeVisible=ln(()=>{const A=this.getProperty.value;if(A!=null&&lT(s,i,a,A("borderOpacity"),A("backgroundOpacity"),A("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return jH.includes(e)}hasImmediateProperty(e){return e in _S}setProperty(e,t){const i=this.getIndexInBuffer();i!=null&&_S[e](this.group,i,t,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,t){this.bucket=e,this.indexInBucket=t,this.active.value=!0,this.unsubscribeList.push(ln(()=>{const i=this.matrix.value;if(i==null)return;const{instanceMatrix:r,pixelSize:s}=this.group,o=this.getIndexInBuffer();if(o==null)return;const a=o*16,[c,A]=this.size.value;if(ap.makeScale(c*s,A*s,1),this.offset!=null){const[h,f]=this.offset.value;ap.premultiply(qH.makeTranslation(h*s,f*s,0))}ap.premultiply(i),ap.toArray(r.array,a),r.addUpdateRange(a,16),r.needsUpdate=!0}),ln(()=>{const[i,r]=this.size.value,{instanceData:s}=this.group,{array:o}=s,a=this.getIndexInBuffer();if(a==null)return;const c=a*16+13;o[c]=i,o[c+1]=r,s.addUpdateRange(c,2),s.needsUpdate=!0}),ln(()=>{const{instanceData:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16+0;i.array.set(this.borderInset.value,s),i.addUpdateRange(s,4),i.needsUpdate=!0}),ln(()=>{var a;const{instanceClipping:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16,o=(a=this.clippingRect)==null?void 0:a.value;o!=null?o.toArray(i.array,s):i.array.set(yg,s),i.addUpdateRange(s,16),i.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let t=0;te.hasImmediateProperty.bind(e),[e]),a=j.useCallback(c=>{if(!i.current){r.current=c;return}SS(c,r.current,s.current,e),r.current=c},[e]);Ri(()=>{if(i.current=e.active.value,!i.current){wS(s.current),s.current={};return}return SS(r.current,$H,s.current,e),()=>{wS(s.current),s.current={}}},[e]),GR(n,o,a,t)}function SS(n,e,t,i){var r,s;for(const o in n){const a=n[o];if(o in e){const c=e[o];if(delete e[o],OR(a,c))continue;(r=t[o])==null||r.call(t)}t[o]=ln(()=>{const c=bC(a);i.setProperty(o,c)})}for(const o in e)(s=t[o])==null||s.call(t),delete t[o],bC(e[o])!==void 0&&i.setProperty(o,void 0)}function wS(n){for(const e in n)n[e]()}function Sa({handlers:n,hoverHandlers:e,activeHandlers:t,matrix:i,children:r,groupRef:s}){return j.useEffect(()=>{const o=s.current;if(o!=null)return ln(()=>i.value!=null&&o.matrix.copy(i.value))},[s,i]),W.jsx("group",{ref:s,onPointerOut:CA(n.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:CA(n.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:CA(n.onPointerUp,t==null?void 0:t.onPointerUp),onPointerDown:CA(n.onPointerDown,t==null?void 0:t.onPointerDown),onPointerLeave:CA(n.onPointerLeave,t==null?void 0:t.onPointerLeave),onPointerMove:n.onPointerMove,onWheel:n.onWheel,onClick:n.onClick,onContextMenu:n.onContextMenu,onDoubleClick:n.onDoubleClick,onPointerCancel:n.onPointerCancel,onPointerEnter:n.onPointerEnter,onPointerMissed:n.onPointerMissed,matrixAutoUpdate:!1,children:r})}function CA(n,e){return n==null?e:e==null?n:t=>{e(t),!t.stopped&&n(t)}}function Du(n,e,t,i){const r=go(),s=j.useMemo(()=>{const o=new rn(Fv);return o.matrixAutoUpdate=!1,o.raycast=Tu(o,sT(o),i,r,t),o.visible=!1,o},[r,t,i]);return Ri(()=>{const[o,a]=n.value;s.scale.set(o*e.pixelSize,a*e.pixelSize,1),s.updateMatrix()},[n,e]),s}const mT=j.createContext(null);function ez(n,e,t,i,r,s,o){const{materials:a,setter:c}=j.useMemo(()=>{const A=new VH(e,t,i),h={data:A.data,type:"normal"},f=AT(r??sr,h),d=new fT(h),m=new hT(h);return f.clippingPlanes=s,d.clippingPlanes=s,m.clippingPlanes=s,{materials:[f,d,m],setter:A}},[e,t,i,r,s]);return Ps(n,c,o),Nv(n,c,o),j.useEffect(()=>()=>c.destroy(),[c]),a}function Yl(n=sr,{castShadow:e=!1,receiveShadow:t=!1}){return j.useMemo(()=>({materialClass:n,castShadow:e,receiveShadow:t}),[n,e,t])}function Xl(n,e,t,i,r,s,o,a,c,A,h){const f=h??j.useContext(mT),d=j.useMemo(()=>new ZH(f(o.majorIndex,c),e,t,i,r,a,s,o.minorIndex),[f,e,t,r,a,s,o,i,c]);j.useEffect(()=>()=>d.destroy(),[d]),Ps(n,d,A),Nv(n,d,A)}function tz(n,e,t){const i=j.useMemo(()=>new Map,[]),r=j.useCallback((s,{materialClass:o,receiveShadow:a,castShadow:c})=>{let A=i.get(o);A==null&&i.set(o,A=new Map);const h=(s<<2)+((a?1:0)<<1)+(c?1:0);let f=A.get(h);if(f==null){const d=AT(o,{type:"instanced"});A.set(h,f=new KH(d,n,e,{elementType:Vi.Panel,majorIndex:s,minorIndex:0},a,c)),t.add(f)}return f},[n,i,e,t]);return ya((s,o)=>{for(const a of i.values())for(const c of a.values())c.onFrame(o)}),r}const nz=mT.Provider,WC=[],Gp=[];function iz(n,e){WC.push(n),Gp.push(e),document.body.style.cursor=e}function MS(n){const e=WC.indexOf(n);e!=-1&&(WC.splice(e,1),Gp.splice(e,1),document.body.style.cursor=Gp[Gp.length-1]??"default")}function wa(n,e){const t=j.useMemo(()=>dn([]),[]),i=j.useMemo(()=>Vo(()=>t.value.length>0),[]);let r=!1;if(qh(e,s=>{s.hover!=null&&(r=!0,i(n,s.hover))}),j.useEffect(()=>()=>MS(t),[]),!r&&e.onHoverChange==null&&e.cursor==null){t.value.length=0;return}return{onPointerOver:s=>{t.value=[s.pointerId,...t.value],e.onHoverChange!=null&&t.value.length===1&&e.onHoverChange(!0),e.cursor!=null&&iz(t,e.cursor)},onPointerOut:s=>{t.value=t.value.filter(o=>o!=s.pointerId),e.onHoverChange!=null&&t.value.length===0&&e.onHoverChange(!1),MS(t)}}}function pm(n){return(e,t,i,r)=>{if(i(e)){r(e,t);return}const s=n[e];if(s==null)return;const o=s.length;if(i(s[0]))for(let a=0;adn([0,0]),[])}function cz(n,e,t){return j.useMemo(()=>ti(()=>{const i=t.value;if(i==null)return;const[r,s]=n.value,{pixelSize:o}=e;return new ft().makeTranslation(-r*o,s*o,0).premultiply(i)}),[n,e,t])}function uz({node:n,scrollPosition:e,children:t}){const i=j.useRef(null);return j.useEffect(()=>ln(()=>{var a,c;const[r,s]=e.value,{pixelSize:o}=n;(a=i.current)==null||a.position.set(-r*o,s*o,0),(c=i.current)==null||c.updateMatrix()}),[n,e]),W.jsx("group",{ref:i,children:t})}function ef({listeners:n,node:e,scrollPosition:t,children:i}){const[r,s]=j.useState(()=>e.scrollable.value.some(f=>f));Ri(()=>s(e.scrollable.value.some(f=>f)),[e]);const o=j.useRef(n.onScroll);o.current=n.onScroll;const a=j.useMemo(()=>new Map,[]),c=j.useMemo(()=>new _e,[]),A=j.useCallback((f,d,m,E,x)=>{var b,q;const[y,g]=f==null?[!1,!1]:Az(f.nativeEvent);y&&(d=0),g&&(m=0);const[v,C]=t.value,[B,R]=e.maxScrollPosition.value;let[w,T]=t.value;const[P,K]=((b=e.anyAncestorScrollable)==null?void 0:b.value)??[!1,!1];w=QS(v,B,d,x&&!P),T=QS(C,R,m,x&&!K),E!=null&&E>0&&c.set(d,m).divideScalar(E),f!=null&&hz(f.nativeEvent,y||Math.min(v,(B??0)-v)>5,g||Math.min(C,(R??0)-C)>5),!(((q=o.current)==null?void 0:q.call(o,w,T,t,f))===!1||v===w&&C===T)&&(t.value=[w,T])},[e,t,c]);ya((f,d)=>{if(a.size>0)return;let m=0,E=0;const[x,y]=t.value,[g,v]=e.maxScrollPosition.value;m+=YC(x,0,g??0)*-.3,E+=YC(y,0,v??0)*-.3,m+=c.x*d,E+=c.y*d,c.multiplyScalar(.9),Math.abs(c.x)<.01&&(c.x=0),Math.abs(c.y)<.01&&(c.y=0),!(m===0&&E===0)&&A(void 0,m,E,void 0,!0)});const h=j.useRef(null);return r?W.jsx("group",{ref:h,matrixAutoUpdate:!1,onPointerDown:f=>{let d=a.get(f.pointerId);d==null&&a.set(f.pointerId,d={timestamp:0,point:new G}),d.timestamp=performance.now()/1e3,h.current.worldToLocal(d.point.copy(f.point))},onPointerUp:f=>{a.delete(f.pointerId)},onPointerLeave:f=>{a.delete(f.pointerId)},onPointerCancel:f=>{a.delete(f.pointerId)},onContextMenu:f=>f.nativeEvent.preventDefault(),onPointerMove:f=>{const d=a.get(f.pointerId);if(d==null)return;h.current.worldToLocal(OE.copy(f.point)),GE.copy(OE).sub(d.point).divideScalar(e.pixelSize);const m=performance.now()/1e3,E=m-d.timestamp;d.point.copy(OE),d.timestamp=m,!f.defaultPrevented&&A(f,-GE.x,GE.y,E,!0)},onWheel:f=>{f.defaultPrevented||A(f,f.deltaX,f.deltaY,void 0,!1)},children:i}):W.jsx("group",{matrixAutoUpdate:!1,children:i})}const yT=Symbol("was-scrolled");function Az(n){return n[yT]??[!1,!1]}function hz(n,e,t){n[yT]=[e,t]}function QS(n,e,t,i){if(t===0)return n;const r=YC(n,0,e??0);RS(t)===RS(r)&&(t*=Math.max(0,1-Math.abs(r)/100));let s=n+t;return i&&e!=null?s:Uv(s,0,e??0)}function RS(n){return n>=0}function YC(n,e,t){return nt?n-t:0}const TS=9;function CT(n){return n[TS].toLowerCase()+n.slice(TS+1)}const fz=(n,e,t,i)=>{if(n.startsWith("scrollbarBorder")){if(n=CT(n),t(n)){i(n,e);return}rz(n,e,t,i)}},dz=(n,e,t,i)=>{if(n.startsWith("scrollbar")){if(n==="scrollbarOpacity"){i("backgroundOpacity",e);return}if(n==="scrollbarColor"){i("backgroundColor",e);return}if(n=CT(n),t(n)){i(n,e);return}Qa(n,e,t,i)}};function tf(n,e,t,i,r,s,o,a,c){const A=Yl(s,{castShadow:!1,receiveShadow:!1}),h=Br(Vi.Panel,void 0,A,a),f=ls(n,pz),d=ls(n,gz,fz),m=j.useMemo(()=>ti(()=>{const y=d.value;return[(y==null?void 0:y("scrollbarBorderTop"))??0,(y==null?void 0:y("scrollbarBorderRight"))??0,(y==null?void 0:y("scrollbarBorderBottom"))??0,(y==null?void 0:y("scrollbarBorderLeft"))??0]}),[d]),E=n.length;DS(n,0,e,t,i,r,s,o,h,c,f,m),DS(n,1,e,t,i,r,s,o,h,c,f,m);const x=n.length;for(let y=E;y{const x=ti(()=>{const y=h.value;if(y!=null)return mz(e,y("scrollbarWidth")??10,i.size.value,i.maxScrollPosition.value,i.borderInset.value,t.value)});return[ti(()=>{var y;return((y=x.value)==null?void 0:y.slice(0,2))??[0,0]}),ti(()=>{var y;return((y=x.value)==null?void 0:y.slice(2,4))??[0,0]})]},[e,i,t,h]),E=j.useMemo(()=>({materialClass:o??sr,receiveShadow:!1,castShadow:!1}),[o]);Xl(n,r,m,d,f,s,c,a,E,dz,A)}function mz(n,e,t,i,r,s){const o=[0,0,0,0],a=i[n];if(a==null)return o;const c=1-n,A=t[n]-r[c]-r[c+2],h=Math.max(e,A*A/(a+A)),f=A-h,d=s[n];return o[n]=t[n]*.5-h*.5-r[(n+3)%4]-f*Uv(d/a,0,1),o[c]=t[c]*.5-e*.5-r[c+1],n===0&&(o[0]*=-1,o[1]*=-1),o[n+2]=h,o[c+2]=e,o}function Ra(n,e,t,i){j.useImperativeHandle(n,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:t instanceof rn?t:t.current,scrollPosition:i}),[t,e,i])}function Ta({onSizeChange:n},e){const t=j.useMemo(()=>{if(n==null)return;let i=!0;return ln(()=>{const r=e.value;if(i){i=!1;return}n(...r)})},[n,e]);j.useEffect(()=>t,[t])}function Jl({onIsInViewportChange:n},e){const t=j.useMemo(()=>{if(n==null)return;let i=!0;return ln(()=>{const r=!e.value;if(i){i=!1;return}n(r)})},[e,n]);j.useEffect(()=>t,[t])}function Kl(n){const e=j.useContext(IT);return j.useMemo(()=>ti(()=>{const t=n.value,i=e.value;if(!(t==null||i==null))return i.clone().multiply(t)}),[n,e])}const IT=j.createContext(null),Ez=IT.Provider;function nf({globalMatrix:n,node:e,scrollPosition:t,children:i,orderInfo:r}){const s=go(),o=JO(n,e.size,e.borderInset,e.overflow,e,s),a=cz(t,e,n);return W.jsx(uz,{node:e,scrollPosition:t,children:W.jsx(Ez,{value:a,children:W.jsx(Pv,{value:e,children:W.jsx(YO,{value:o,children:W.jsx(lH,{value:r,children:i})})})})})}const vT="transformTranslateX",xT="transformTranslateY",BT="transformTranslateZ",_T="transformRotateX",ST="transformRotateY",wT="transformRotateZ",MT="transformScaleX",QT="transformScaleY",RT="transformScaleZ",yz=[vT,xT,BT,_T,ST,wT,MT,QT,RT],Cz=new G,Iz=new G,cp=new G,HE=new ft,vz=new Su,xz=new zi,zE=Math.PI/180;function Bz([n,e,t]){return xz.setFromEuler(vz.set(n*zE,e*zE,t*zE))}function Da(n,e){const t=ls(n,yz,lz);return j.useMemo(()=>ti(()=>{const i=t.value;if(i==null)return;const{pixelSize:r,relativeCenter:s}=e,[o,a]=s.value,c=new ft().makeTranslation(o*r,a*r,0),A=i("transformOriginX")??"center",h=i("transformOriginY")??"center";let f=!0;if(A!="center"||h!="center"){const[x,y]=e.size.value;f=!1,cp.set(-VR[A]*x*r,-WR[h]*y*r,0),c.multiply(HE.makeTranslation(cp)),cp.negate()}const d=[i(_T)??0,i(ST)??0,i(wT)??0],m=[i(vT)??0,-(i(xT)??0),i(BT)??0],E=[i(MT)??1,i(QT)??1,i(RT)??1];return(m.some(x=>x!=0)||d.some(x=>x!=0)||E.some(x=>x!=1))&&c.multiply(HE.compose(Cz.fromArray(m).multiplyScalar(r),Bz(d),Iz.fromArray(E))),f||c.multiply(HE.makeTranslation(cp)),c}),[t,e])}function ba(n,e){const t=j.useMemo(()=>dn([]),[]),i=j.useMemo(()=>Vo(()=>t.value.length>0),[]);let r=!1;if(qh(e,o=>{o.active!=null&&(r=!0,i(n,o.active))}),!r&&e.onActiveChange==null){t.value.length=0;return}const s=o=>{t.value=t.value.filter(a=>a!=o.pointerId),!(e.onActiveChange==null||t.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{t.value=[o.pointerId,...t.value],!(e.onActiveChange==null||t.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:s,onPointerLeave:s}}j.forwardRef((n,e)=>{const t=Ia(),i=j.useRef(null),r=Wl(i);Ps(t,r,Ma);const s=Da(t,r),o=Kl(s),a=go(),c=zl(a,o,r.size,r);Ta(n,r.size),Jl(n,c);const A=Yl(n.panelMaterialClass,n),h=Br(Vi.Panel,n.zIndexOffset,A);Xl(t,o,r.size,void 0,r.borderInset,c,h,a,A,Qa);const f=j.useRef(null),d=Hl(),m=Br(Vi.Object,void 0,void 0,h),E=wz(t,f,d,r.cameraDistance,a,m);xa(t,n),Ba(t,n),_a(t,n);const x=wa(t,n),y=ba(t,n),g=j.useMemo(()=>ti(()=>{const[B,R]=E.value;return B/R}),[E]);(n.keepAspectRatio??!0)&&Ts(t,"aspectRatio",g),va(t);const v=j.useRef(null);j.useEffect(()=>ln(()=>{const[B,R]=r.size.value,[w,T,P,K]=r.paddingInset.value,[M,b,q,ge]=r.borderInset.value,X=w+M,ce=T+b,se=P+q,fe=K+ge,U=B-fe-ce,ee=R-X-se,{pixelSize:te}=r,{current:ue}=v;ue==null||ue.position.set((fe-ce)*.5*te,(se-X)*.5*te,0);const[,Ce,ke]=E.value;ue==null||ue.scale.set(U*te,ee*te,n.keepAspectRatio?ee*te*ke/Ce:ke),ue==null||ue.updateMatrix()}),[r,n.keepAspectRatio,E]);const C=Du(r.size,r,h,d);return Ra(e,r,C),W.jsxs(Sa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:x,activeHandlers:y,children:[W.jsx("primitive",{object:C}),W.jsx("group",{matrixAutoUpdate:!1,ref:v,children:W.jsx("group",{ref:f,matrixAutoUpdate:!1,children:W.jsx(Pv,{value:void 0,children:n.children})})})]})});const VE=new ei,_z=new G().setScalar(.001),Sz=["depthAlign"];function wz(n,e,t,i,r,s){const o=j.useMemo(()=>dn(new G(1,1,1)),[]),a=Zh(r,t),c=ls(n,Sz);return j.useEffect(()=>{const A=e.current;if(A==null)return;A.traverse(m=>{m instanceof rn&&(Vl(m,i,s),m.material.clippingPlanes=a,m.material.needsUpdate=!0,m.raycast=Tu(m,m.raycast,t,r,s))});const h=A.parent;h==null||h.remove(A),VE.setFromObject(A);const f=new G,d=new G;return VE.getSize(f).max(_z),o.value=f,A.scale.set(1,1,1).divide(f),h!=null&&h.add(A),VE.getCenter(d),ln(()=>{const m=c.value;m!=null&&(A.position.copy(d).negate(),A.position.z-=UO[m("depthAlign")??"back"]*f.z,A.position.divide(f),A.updateMatrix())})},[c,i,a,t]),o}const Ct=j.forwardRef((n,e)=>{const t=Ia(),i=j.useRef(null),r=Wl(i);Ps(t,r,Ma);const s=Da(t,r),o=go(),a=Kl(s),c=zl(o,a,r.size,r),A=Yl(n.panelMaterialClass,n),h=Br(Vi.Panel,n.zIndexOffset,A);Xl(t,a,r.size,void 0,r.borderInset,c,h,o,A,Qa);const f=$h();tf(t,f,r,a,c,n.scrollbarPanelMaterialClass,o,h),xa(t,n),Ba(t,n),_a(t,n);const d=wa(t,n),m=ba(t,n);va(t),Ta(n,r.size),Jl(n,c);const E=Hl(),x=Du(r.size,r,h,E);return Ra(e,r,x,f),W.jsxs(Sa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:d,activeHandlers:m,children:[W.jsx(ef,{listeners:n,node:r,scrollPosition:f,children:W.jsx("primitive",{object:x})}),W.jsx(nf,{globalMatrix:a,node:r,orderInfo:h,scrollPosition:f,children:n.children})]})}),Mz=j.forwardRef((n,e)=>{const t=Ia(),i=j.useRef(null),r=Wl(i);Ps(t,r,Ma);const s=Da(t,r),o=go(),a=Hl(),c=Zh(o,a),A=Br(Vi.Custom,n.zIndexOffset,void 0),h=j.useRef(null),f=Kl(s),d=zl(o,f,r.size,r);j.useEffect(()=>{const x=h.current;if(x==null)return;x.raycast=Tu(x,x.raycast,a,o,A),Vl(x,r.cameraDistance,A),x.material instanceof Ai&&(x.material.clippingPlanes=c,x.material.needsUpdate=!0,x.material.shadowSide=Vr);const y=ln(()=>{const[v,C]=r.size.value;x.scale.set(v*r.pixelSize,C*r.pixelSize,1),x.updateMatrix()}),g=ln(()=>void(x.visible=!d.value));return()=>{y(),g()}},[c,r,d,o,A,a]),xa(t,n),Ba(t,n),_a(t,n);const m=wa(t,n),E=ba(t,n);return va(t),Ta(n,r.size),Jl(n,d),Ra(e,r,h),W.jsx(Sa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:m,activeHandlers:E,children:W.jsx("mesh",{receiveShadow:n.receiveShadow,castShadow:n.castShadow,customDepthMaterial:n.customDepthMaterial,customDistanceMaterial:n.customDistanceMaterial,ref:h,matrixAutoUpdate:!1,geometry:Fv,children:W.jsx(Pv,{value:void 0,children:n.children})})})}),Qz="fill",Rz=(n,e,t,i)=>{if(n==="opacity"){i("backgroundOpacity",e);return}Qa(n,e,t,i)},TT=j.forwardRef((n,e)=>{const t=Ia(),i=YR(Nz,n.src),r=j.useMemo(()=>ti(()=>{const C=i.value;if(C==null)return;const B=C.source.data;return B.width/B.height}),[i]),s=j.useRef(null),o=Wl(s);Ps(t,o,Ma),Dz(t,i,o.borderInset,o.size);const a=Da(t,o),c=go(),A=Hl(),h=Zh(c,A),f=Kl(a),d=zl(c,f,o.size,o),m=ez(t,o.size,o.borderInset,d,n.materialClass,h,Rz),E=Br(Vi.Image,n.zIndexOffset,void 0),x=j.useMemo(()=>{const[C,B,R]=m,w=new rn(Fv,C);return w.matrixAutoUpdate=!1,w.castShadow=n.castShadow??!1,w.receiveShadow=n.receiveShadow??!1,w.customDepthMaterial=B,w.customDistanceMaterial=R,w.raycast=Tu(w,sT(w),A,c,E),Vl(w,o.cameraDistance,E),w},[o,m,A,c,E,n.receiveShadow,n.castShadow]),y=$h();tf(t,y,o,f,d,n.scrollbarPanelMaterialClass,c,E),xa(t,n),Ba(t,n),_a(t,n);const g=wa(t,n),v=ba(t,n);return Ts(t,"backgroundColor",16777215),(n.keepAspectRatio??!0)&&Ts(t,"aspectRatio",r),va(t),Ta(n,o.size),Jl(n,d),Ri(()=>{const C=i.value??null;x.material.map!==C&&(x.material.map=C,x.material.needsUpdate=!0)},[x,i]),Ri(()=>{const[C,B]=o.size.value;x.scale.set(C*o.pixelSize,B*o.pixelSize,1),x.updateMatrix()},[x]),Ri(()=>void(x.visible=!d.value),[x,d]),Ra(e,o,x,y),W.jsxs(Sa,{groupRef:s,hoverHandlers:g,handlers:n,matrix:a,activeHandlers:v,children:[W.jsx(ef,{listeners:n,node:o,scrollPosition:y,children:W.jsx("primitive",{object:x})}),W.jsx(nf,{globalMatrix:f,node:o,orderInfo:E,scrollPosition:y,children:n.children})]})}),Tz=["fit"];function Dz(n,e,t,i){const r=ls(n,Tz);Ri(()=>{const s=r.value,o=e.value;if(o==null||s==null)return;const a=s("fit")??Qz;if(o.matrix.identity(),a==="fill"||o==null){bS(t,i,o);return}const{width:c,height:A}=o.source.data,h=c/A,[f,d]=i.value,[m,E,x,y]=t.value,g=(f-y-E)/(d-m-x);h>g?o.matrix.translate(-(.5*(g-h))/g,0).scale(g/h,1):o.matrix.translate(0,-(.5*(h-g))/h).scale(1,h/g),bS(t,i,o)},[e,t,i])}function bS(n,e,t){const[i,r]=e.value,[s,o,a,c]=n.value,A=i-c-o,h=r-s-a;t.matrix.translate(-1+(c+A)/i,-1+(s+h)/r).scale(i/A,r/h)}const bz=new Iv;async function Nz(n){if(n==null)return Promise.resolve(void 0);if(n instanceof Sn)return Promise.resolve(n);try{const e=await bz.loadAsync(n);return e.colorSpace=On,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function qs(n,e,t){if(e==null)return t;const i=n[e];if(i==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(n).join(", ")}`);return i}function yn(n,e,t){return typeof n=="number"?Math.round(n/e):n??t}const Lz={static:0,relative:1,absolute:2},WE={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},Pz={column:0,"column-reverse":1,row:2,"row-reverse":3},Uz={"no-wrap":0,wrap:1,"wrap-reverse":2},Fz={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},kz={visible:0,hidden:1,scroll:2},Gz={flex:0,none:1},NS={positionType:(n,e,t)=>n.setPositionType(qs(Lz,t,0)),positionTop:(n,e,t)=>n.setPosition(1,yn(t,e,NaN)),positionLeft:(n,e,t)=>n.setPosition(0,yn(t,e,NaN)),positionRight:(n,e,t)=>n.setPosition(2,yn(t,e,NaN)),positionBottom:(n,e,t)=>n.setPosition(3,yn(t,e,NaN)),alignContent:(n,e,t)=>n.setAlignContent(qs(WE,t,1)),alignItems:(n,e,t)=>n.setAlignItems(qs(WE,t,4)),alignSelf:(n,e,t)=>n.setAlignSelf(qs(WE,t,0)),flexDirection:(n,e,t)=>n.setFlexDirection(qs(Pz,t,0)),flexWrap:(n,e,t)=>n.setFlexWrap(qs(Uz,t,0)),justifyContent:(n,e,t)=>n.setJustifyContent(qs(Fz,t,0)),marginTop:(n,e,t)=>n.setMargin(1,yn(t,e,NaN)),marginLeft:(n,e,t)=>n.setMargin(0,yn(t,e,NaN)),marginRight:(n,e,t)=>n.setMargin(2,yn(t,e,NaN)),marginBottom:(n,e,t)=>n.setMargin(3,yn(t,e,NaN)),flexBasis:(n,e,t)=>n.setFlexBasis(yn(t,e,NaN)),flexGrow:(n,e,t)=>n.setFlexGrow(t??0),flexShrink:(n,e,t)=>n.setFlexShrink(t??0),width:(n,e,t)=>n.setWidth(yn(t,e,NaN)),height:(n,e,t)=>n.setHeight(yn(t,e,NaN)),minWidth:(n,e,t)=>n.setMinWidth(yn(t,e,NaN)),minHeight:(n,e,t)=>n.setMinHeight(yn(t,e,NaN)),maxWidth:(n,e,t)=>n.setMaxWidth(yn(t,e,NaN)),maxHeight:(n,e,t)=>n.setMaxHeight(yn(t,e,NaN)),aspectRatio:(n,e,t)=>n.setAspectRatio(t??NaN),borderTop:(n,e,t)=>n.setBorder(1,yn(t,e,NaN)),borderLeft:(n,e,t)=>n.setBorder(0,yn(t,e,NaN)),borderRight:(n,e,t)=>n.setBorder(2,yn(t,e,NaN)),borderBottom:(n,e,t)=>n.setBorder(3,yn(t,e,NaN)),overflow:(n,e,t)=>n.setOverflow(qs(kz,t,0)),display:(n,e,t)=>n.setDisplay(qs(Gz,t,0)),paddingTop:(n,e,t)=>n.setPadding(1,yn(t,e,NaN)),paddingLeft:(n,e,t)=>n.setPadding(0,yn(t,e,NaN)),paddingRight:(n,e,t)=>n.setPadding(2,yn(t,e,NaN)),paddingBottom:(n,e,t)=>n.setPadding(3,yn(t,e,NaN)),gapRow:(n,e,t)=>n.setGap(1,yn(t,e,NaN)),gapColumn:(n,e,t)=>n.setGap(0,yn(t,e,NaN))};function Oz(n,e){return n.L===e.L}function Hz(n,e,t){if(t==null){n.setMeasureFunc(null);return}n.setMeasureFunc((i,r,s,o)=>{const a=t(i*e,r,s*e,o);return{width:Math.ceil(Math.ceil(a.width)/e),height:Math.ceil(Math.ceil(a.height)/e)}}),n.markDirty()}class kv{constructor(e,t,i,r,s,o,a){We(this,"size",dn([0,0]));We(this,"relativeCenter",dn([0,0]));We(this,"borderInset",dn([0,0,0,0]));We(this,"paddingInset",dn([0,0,0,0]));We(this,"overflow",dn(Ui.Overflow.Visible));We(this,"maxScrollPosition",dn([void 0,void 0]));We(this,"scrollable",dn([!1,!1]));We(this,"children",[]);We(this,"yogaNode");We(this,"unsubscribeYoga");We(this,"layoutChangeListeners",new Set);We(this,"requestCalculateLayout");We(this,"active",dn(!1));this.groupRef=e,this.cameraDistance=t,this.yoga=i,this.precision=r,this.pixelSize=s,this.anyAncestorScrollable=a,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=ln(()=>{var c;i.value!=null&&((c=this.unsubscribeYoga)==null||c.call(this),this.unsubscribeYoga=void 0,this.yogaNode=i.value.Node.create(),this.active.value=!0)})}setProperty(e,t){e==="measureFunc"?Hz(this.yogaNode,this.precision,t):NS[e](this.yogaNode,this.precision,t),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in NS}destroy(){var e,t;(e=this.unsubscribeYoga)==null||e.call(this),(t=this.yogaNode)==null||t.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),NR(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new kv(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,ti(()=>{var a;const[i,r]=((a=this.anyAncestorScrollable)==null?void 0:a.value)??[!1,!1],[s,o]=this.scrollable.value;return[i||s,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((a,c)=>{var m,E;if(e??(e=(E=(m=a.groupRef.current)==null?void 0:m.parent)==null?void 0:E.children),e==null)return 0;const A=a.groupRef.current,h=c.groupRef.current;if(A==null||h==null)return 0;const f=e.indexOf(A);if(f===-1)throw new Error("parent mismatch");const d=e.indexOf(h);if(d===-1)throw new Error("parent mismatch");return f-d});let t=0,i=this.yogaNode.getChild(t),r=this.children[t];for(;r!=null||i!=null;){if(r!=null&&i!=null&&Oz(i,PS(r.yogaNode))){r=this.children[++t],i=this.yogaNode.getChild(t);continue}if(i!=null&&this.yogaNode.removeChild(i),r!=null){const a=PS(r.yogaNode);(o=a.getParent())==null||o.removeChild(a),this.yogaNode.insertChild(a,t),r=this.children[++t]}i=this.yogaNode.getChild(t)}const s=this.children.length;for(let a=0;a0,P>0)}else Dc(this.maxScrollPosition,void 0,void 0),Dc(this.scrollable,!1,!1);const B=this.overflow.value===Ui.Overflow.Visible;return[s+Math.max(i,B?v:0),o+Math.max(r,B?C:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function Dc(n,e,t){const[i,r]=n.value;i===e&&r===t||(n.value=[e,t])}function LS(n,e,t,i,r){const[s,o,a,c]=n.value;s==e&&o==t&&a==i&&c==r||(n.value=[e,t,i,r])}function PS(n){if(n==null)throw new Error("commit cannot be called with a children that miss a yoga node");return n}const zz=.1,DT=.002,up=new un,US=new G,Vz=j.forwardRef((n,e)=>{const t=Ia(),i=Tv(P=>P.gl);j.useEffect(()=>oH(i),[i]);const{sizeX:r,sizeY:s}=n,[o,a]=j.useMemo(()=>[n.precision??zz,n.pixelSize??DT],[]),c=FO(),A=j.useMemo(()=>({current:0}),[]),h=j.useRef(null),f=LH(),d=j.useMemo(()=>new kv(h,A,c,o,a,f,void 0),[f,h,c]);Ps(t,d,Ma),j.useEffect(()=>()=>d.destroy(),[d]);const m=Da(t,d),E=j.useMemo(()=>{const P=new Gr;return P.matrixAutoUpdate=!1,P},[]),x=tz(a,d.cameraDistance,E),y=CH(a,d.cameraDistance,E),g=Yl(n.panelMaterialClass,n),v=Br(Vi.Panel,void 0,g),C=Yz(m,d.size,a,n),B=$h();tf(t,B,d,C,void 0,n.scrollbarPanelMaterialClass,void 0,v,x),Xl(t,C,d.size,void 0,d.borderInset,void 0,v,void 0,g,Qa,x),xa(t,n),Ba(t,n),_a(t,n,d.size);const R=wa(t,n),w=ba(t,n);Ts(t,"width",FS(r,a)),Ts(t,"height",FS(s,a)),va(t),Ta(n,d.size);const T=Du(d.size,d,v,h);return Ra(e,d,T,B),ya(({camera:P})=>{up.normal.set(0,0,1),up.constant=0,up.applyMatrix4(T.matrixWorld),US.setFromMatrixPosition(P.matrixWorld),A.current=up.distanceToPoint(US)}),W.jsxs(W.Fragment,{children:[W.jsx("primitive",{object:E}),W.jsx(Sa,{groupRef:h,matrix:C,handlers:n,hoverHandlers:R,activeHandlers:w,children:W.jsx(kO,{value:h,children:W.jsx(yH,{value:y,children:W.jsxs(nz,{value:x,children:[W.jsx(ef,{node:d,scrollPosition:B,listeners:n,children:W.jsx("primitive",{object:T})}),W.jsx(bH,{value:d.size,children:W.jsx(nf,{globalMatrix:C,node:d,orderInfo:v,scrollPosition:B,children:n.children})})]})})})})]})});function FS(n,e){return j.useMemo(()=>n===void 0?void 0:n instanceof zn?ti(()=>{const t=n.value;if(t!=null)return t/e}):n/e,[n,e])}const Wz=new ft;function Yz(n,e,t,{anchorX:i="center",anchorY:r="center"}){return j.useMemo(()=>ti(()=>{var a;const[s,o]=e.value;return(a=n.value)==null?void 0:a.clone().premultiply(Wz.makeTranslation(VR[i]*s*t,WR[r]*o*t,0))}),[n,e,i,r,t])}const Xz=On;class bu extends Ji{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,i,r){const s=this,o=new bs(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(a){try{t(s.parse(a))}catch(c){r?r(c):console.error(c),s.manager.itemError(e)}},i,r)}parse(e){const t=this;function i(V,O){if(V.nodeType!==1)return;const k=B(V);let F=!1,me=null;switch(V.nodeName){case"svg":O=E(V,O);break;case"style":s(V);break;case"g":O=E(V,O);break;case"path":O=E(V,O),V.hasAttribute("d")&&(me=r(V));break;case"rect":O=E(V,O),me=c(V);break;case"polygon":O=E(V,O),me=A(V);break;case"polyline":O=E(V,O),me=h(V);break;case"circle":O=E(V,O),me=f(V);break;case"ellipse":O=E(V,O),me=d(V);break;case"line":O=E(V,O),me=m(V);break;case"defs":F=!0;break;case"use":O=E(V,O);const Be=(V.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),H=V.viewportElement.getElementById(Be);H?i(H,O):console.warn("SVGLoader: 'use node' references non-existent node id: "+Be);break}me&&(O.fill!==void 0&&O.fill!=="none"&&me.color.setStyle(O.fill,Xz),w(me,ue),q.push(me),me.userData={node:V,style:O});const ve=V.childNodes;for(let re=0;re0?ue.copy(X[X.length-1]):ue.identity())}function r(V){const O=new Fo,k=new _e,F=new _e,me=new _e;let ve=!0,re=!1;const Be=V.getAttribute("d");if(Be===""||Be==="none")return null;const H=Be.match(/[a-df-z][^a-df-z]*/ig);for(let Ee=0,ne=H.length;Ee0&&(k.copy(me),O.currentPath.currentPoint.copy(k),ve=!0);break;default:console.warn(ae)}re=!1}return O}function s(V){if(!(!V.sheet||!V.sheet.cssRules||!V.sheet.cssRules.length))for(let O=0;Ome.trim());for(let me=0;mere!==""));ge[F[me]]=Object.assign(ge[F[me]]||{},ve)}}}function o(V,O,k,F,me,ve,re,Be){if(O==0||k==0){V.lineTo(Be.x,Be.y);return}F=F*Math.PI/180,O=Math.abs(O),k=Math.abs(k);const H=(re.x-Be.x)/2,Ee=(re.y-Be.y)/2,ne=Math.cos(F)*H+Math.sin(F)*Ee,ae=-Math.sin(F)*H+Math.cos(F)*Ee;let he=O*O,Te=k*k;const $=ne*ne,S=ae*ae,D=$/he+S/Te;if(D>1){const Le=Math.sqrt(D);O=Le*O,k=Le*k,he=O*O,Te=k*k}const ie=he*S+Te*$,be=(he*Te-ie)/ie;let De=Math.sqrt(Math.max(0,be));me===ve&&(De=-De);const Qe=De*O*ae/k,Xe=-De*k*ne/O,ze=Math.cos(F)*Qe-Math.sin(F)*Xe+(re.x+Be.x)/2,je=Math.sin(F)*Qe+Math.cos(F)*Xe+(re.y+Be.y)/2,at=a(1,0,(ne-Qe)/O,(ae-Xe)/k),It=a((ne-Qe)/O,(ae-Xe)/k,(-ne-Qe)/O,(-ae-Xe)/k)%(Math.PI*2);V.currentPath.absellipse(ze,je,O,k,at,at+It,ve===0,F)}function a(V,O,k,F){const me=V*k+O*F,ve=Math.sqrt(V*V+O*O)*Math.sqrt(k*k+F*F);let re=Math.acos(Math.max(-1,Math.min(1,me/ve)));return V*F-O*k<0&&(re=-re),re}function c(V){const O=C(V.getAttribute("x")||0),k=C(V.getAttribute("y")||0),F=C(V.getAttribute("rx")||V.getAttribute("ry")||0),me=C(V.getAttribute("ry")||V.getAttribute("rx")||0),ve=C(V.getAttribute("width")),re=C(V.getAttribute("height")),Be=1-.551915024494,H=new Fo;return H.moveTo(O+F,k),H.lineTo(O+ve-F,k),(F!==0||me!==0)&&H.bezierCurveTo(O+ve-F*Be,k,O+ve,k+me*Be,O+ve,k+me),H.lineTo(O+ve,k+re-me),(F!==0||me!==0)&&H.bezierCurveTo(O+ve,k+re-me*Be,O+ve-F*Be,k+re,O+ve-F,k+re),H.lineTo(O+F,k+re),(F!==0||me!==0)&&H.bezierCurveTo(O+F*Be,k+re,O,k+re-me*Be,O,k+re-me),H.lineTo(O,k+me),(F!==0||me!==0)&&H.bezierCurveTo(O,k+me*Be,O+F*Be,k,O+F,k),H}function A(V){function O(ve,re,Be){const H=C(re),Ee=C(Be);me===0?F.moveTo(H,Ee):F.lineTo(H,Ee),me++}const k=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new Fo;let me=0;return V.getAttribute("points").replace(k,O),F.currentPath.autoClose=!0,F}function h(V){function O(ve,re,Be){const H=C(re),Ee=C(Be);me===0?F.moveTo(H,Ee):F.lineTo(H,Ee),me++}const k=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new Fo;let me=0;return V.getAttribute("points").replace(k,O),F.currentPath.autoClose=!1,F}function f(V){const O=C(V.getAttribute("cx")||0),k=C(V.getAttribute("cy")||0),F=C(V.getAttribute("r")||0),me=new sa;me.absarc(O,k,F,0,Math.PI*2);const ve=new Fo;return ve.subPaths.push(me),ve}function d(V){const O=C(V.getAttribute("cx")||0),k=C(V.getAttribute("cy")||0),F=C(V.getAttribute("rx")||0),me=C(V.getAttribute("ry")||0),ve=new sa;ve.absellipse(O,k,F,me,0,Math.PI*2);const re=new Fo;return re.subPaths.push(ve),re}function m(V){const O=C(V.getAttribute("x1")||0),k=C(V.getAttribute("y1")||0),F=C(V.getAttribute("x2")||0),me=C(V.getAttribute("y2")||0),ve=new Fo;return ve.moveTo(O,k),ve.lineTo(F,me),ve.currentPath.autoClose=!1,ve}function E(V,O){O=Object.assign({},O);let k={};if(V.hasAttribute("class")){const re=V.getAttribute("class").split(/\s/).filter(Boolean).map(Be=>Be.trim());for(let Be=0;Be0&&O.premultiply(X[X.length-1]),ue.copy(O),X.push(O),O}function R(V){const O=new Rt,k=ce;if(V.nodeName==="use"&&(V.hasAttribute("x")||V.hasAttribute("y"))){const F=C(V.getAttribute("x")),me=C(V.getAttribute("y"));O.translate(F,me)}if(V.hasAttribute("transform")){const F=V.getAttribute("transform").split(")");for(let me=F.length-1;me>=0;me--){const ve=F[me].trim();if(ve==="")continue;const re=ve.indexOf("("),Be=ve.length;if(re>0&&re=1){const ne=Ee[0];let ae=0;Ee.length>=2&&(ae=Ee[1]),k.translate(ne,ae)}break;case"rotate":if(Ee.length>=1){let ne=0,ae=0,he=0;ne=Ee[0]*Math.PI/180,Ee.length>=3&&(ae=Ee[1],he=Ee[2]),se.makeTranslation(-ae,-he),fe.makeRotation(ne),U.multiplyMatrices(fe,se),se.makeTranslation(ae,he),k.multiplyMatrices(se,U)}break;case"scale":if(Ee.length>=1){const ne=Ee[0];let ae=ne;Ee.length>=2&&(ae=Ee[1]),k.scale(ne,ae)}break;case"skewX":Ee.length===1&&k.set(1,Math.tan(Ee[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":Ee.length===1&&k.set(1,0,0,Math.tan(Ee[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":Ee.length===6&&k.set(Ee[0],Ee[2],Ee[4],Ee[1],Ee[3],Ee[5],0,0,1);break}}O.premultiply(k)}}return O}function w(V,O){function k(re){te.set(re.x,re.y,1).applyMatrix3(O),re.set(te.x,te.y)}function F(re){const Be=re.xRadius,H=re.yRadius,Ee=Math.cos(re.aRotation),ne=Math.sin(re.aRotation),ae=new G(Be*Ee,Be*ne,0),he=new G(-H*ne,H*Ee,0),Te=ae.applyMatrix3(O),$=he.applyMatrix3(O),S=ce.set(Te.x,$.x,0,Te.y,$.y,0,0,0,1),D=se.copy(S).invert(),De=fe.copy(D).transpose().multiply(D).elements,Qe=b(De[0],De[1],De[4]),Xe=Math.sqrt(Qe.rt1),ze=Math.sqrt(Qe.rt2);if(re.xRadius=1/Xe,re.yRadius=1/ze,re.aRotation=Math.atan2(Qe.sn,Qe.cs),!((re.aEndAngle-re.aStartAngle)%(2*Math.PI){const{x:dt,y:ot}=new G(Math.cos(wt),Math.sin(wt),0).applyMatrix3(Le);return Math.atan2(ot,dt)};re.aStartAngle=Lt(re.aStartAngle),re.aEndAngle=Lt(re.aEndAngle),T(O)&&(re.aClockwise=!re.aClockwise)}}function me(re){const Be=K(O),H=M(O);re.xRadius*=Be,re.yRadius*=H;const Ee=Be>Number.EPSILON?Math.atan2(O.elements[1],O.elements[0]):Math.atan2(-O.elements[3],O.elements[4]);re.aRotation+=Ee,T(O)&&(re.aStartAngle*=-1,re.aEndAngle*=-1,re.aClockwise=!re.aClockwise)}const ve=V.subPaths;for(let re=0,Be=ve.length;reNumber.EPSILON}function K(V){const O=V.elements;return Math.sqrt(O[0]*O[0]+O[1]*O[1])}function M(V){const O=V.elements;return Math.sqrt(O[3]*O[3]+O[4]*O[4])}function b(V,O,k){let F,me,ve,re,Be;const H=V+k,Ee=V-k,ne=Math.sqrt(Ee*Ee+4*O*O);return H>0?(F=.5*(H+ne),Be=1/F,me=V*Be*k-O*Be*O):H<0?me=.5*(H-ne):(F=.5*ne,me=-.5*ne),Ee>0?ve=Ee+ne:ve=Ee-ne,Math.abs(ve)>2*Math.abs(O)?(Be=-2*O/ve,re=1/Math.sqrt(1+Be*Be),ve=Be*re):Math.abs(O)===0?(ve=1,re=0):(Be=-.5*ve/O,ve=1/Math.sqrt(1+Be*Be),re=Be*ve),Ee>0&&(Be=ve,ve=-re,re=Be),{rt1:F,rt2:me,cs:ve,sn:re}}const q=[],ge={},X=[],ce=new Rt,se=new Rt,fe=new Rt,U=new Rt,ee=new _e,te=new G,ue=new Rt,Ce=new DOMParser().parseFromString(e,"image/svg+xml");return i(Ce.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:q,xml:Ce.documentElement}}static createShapes(e){const i={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:i.ORIGIN,t:0};function s(x,y,g,v){const C=x.x,B=y.x,R=g.x,w=v.x,T=x.y,P=y.y,K=g.y,M=v.y,b=(w-R)*(T-K)-(M-K)*(C-R),q=(B-C)*(T-K)-(P-T)*(C-R),ge=(M-K)*(B-C)-(w-R)*(P-T),X=b/ge,ce=q/ge;if(ge===0&&b!==0||X<=0||X>=1||ce<0||ce>1)return null;if(b===0&&ge===0){for(let se=0;se<2;se++)if(o(se===0?g:v,x,y),r.loc==i.ORIGIN){const fe=se===0?g:v;return{x:fe.x,y:fe.y,t:r.t}}else if(r.loc==i.BETWEEN){const fe=+(C+r.t*(B-C)).toPrecision(10),U=+(T+r.t*(P-T)).toPrecision(10);return{x:fe,y:U,t:r.t}}return null}else{for(let U=0;U<2;U++)if(o(U===0?g:v,x,y),r.loc==i.ORIGIN){const ee=U===0?g:v;return{x:ee.x,y:ee.y,t:r.t}}const se=+(C+X*(B-C)).toPrecision(10),fe=+(T+X*(P-T)).toPrecision(10);return{x:se,y:fe,t:X}}}function o(x,y,g){const v=g.x-y.x,C=g.y-y.y,B=x.x-y.x,R=x.y-y.y,w=v*R-B*C;if(x.x===y.x&&x.y===y.y){r.loc=i.ORIGIN,r.t=0;return}if(x.x===g.x&&x.y===g.y){r.loc=i.DESTINATION,r.t=1;return}if(w<-Number.EPSILON){r.loc=i.LEFT;return}if(w>Number.EPSILON){r.loc=i.RIGHT;return}if(v*B<0||C*R<0){r.loc=i.BEHIND;return}if(Math.sqrt(v*v+C*C)M.t<=K.t+Number.EPSILON&&M.t>=K.t-Number.EPSILON)===void 0&&(g.push(K),v.push(new _e(K.x,K.y)))}}return v}function c(x,y,g){const v=new _e;y.getCenter(v);const C=[];return g.forEach(B=>{B.boundingBox.containsPoint(v)&&a(x,B.points).forEach(w=>{C.push({identifier:B.identifier,isCW:B.isCW,point:w})})}),C.sort((B,R)=>B.point.x-R.point.x),C}function A(x,y,g,v,C){(C==null||C==="")&&(C="nonzero");const B=new _e;x.boundingBox.getCenter(B);const R=[new _e(g,B.y),new _e(v,B.y)],w=c(R,x.boundingBox,y);w.sort((q,ge)=>q.point.x-ge.point.x);const T=[],P=[];w.forEach(q=>{q.identifier===x.identifier?T.push(q):P.push(q)});const K=T[0].point.x,M=[];let b=0;for(;b0&&M[M.length-1]===P[b].identifier?M.pop():M.push(P[b].identifier),b++;if(M.push(x.identifier),C==="evenodd"){const q=M.length%2===0,ge=M[M.length-2];return{identifier:x.identifier,isHole:q,for:ge}}else if(C==="nonzero"){let q=!0,ge=null,X=null;for(let ce=0;ce{const y=x.getPoints();let g=-999999999,v=999999999,C=-999999999,B=999999999;for(let R=0;Rg&&(g=w.y),w.yC&&(C=w.x),w.x=B&&(h=B-1),{curves:x.curves,points:y,isCW:ss.isClockWise(y),identifier:-1,boundingBox:new AR(new _e(B,v),new _e(C,g))}});d=d.filter(x=>x.points.length>1);for(let x=0;xA(x,d,h,f,e.userData?e.userData.style.fillRule:void 0)),E=[];return d.forEach(x=>{if(!m[x.identifier].isHole){const g=new oa;g.curves=x.curves,m.filter(C=>C.isHole&&C.for===x.identifier).forEach(C=>{const B=d[C.identifier],R=new sa;R.curves=B.curves,g.holes.push(R)}),E.push(g)}}),E}static getStrokeStyle(e,t,i,r,s){return e=e!==void 0?e:1,t=t!==void 0?t:"#000",i=i!==void 0?i:"miter",r=r!==void 0?r:"butt",s=s!==void 0?s:4,{strokeColor:t,strokeWidth:e,strokeLineJoin:i,strokeLineCap:r,strokeMiterLimit:s}}static pointsToStroke(e,t,i,r){const s=[],o=[],a=[];if(bu.pointsToStrokeWithBuffers(e,t,i,r,s,o,a)===0)return null;const c=new Nt;return c.setAttribute("position",new st(s,3)),c.setAttribute("normal",new st(o,3)),c.setAttribute("uv",new st(a,2)),c}static pointsToStrokeWithBuffers(e,t,i,r,s,o,a,c){const A=new _e,h=new _e,f=new _e,d=new _e,m=new _e,E=new _e,x=new _e,y=new _e,g=new _e,v=new _e,C=new _e,B=new _e,R=new _e,w=new _e,T=new _e,P=new _e,K=new _e;i=i!==void 0?i:12,r=r!==void 0?r:.001,c=c!==void 0?c:0,e=Ee(e);const M=e.length;if(M<2)return 0;const b=e[0].equals(e[M-1]);let q,ge=e[0],X;const ce=t.strokeWidth/2,se=1/(M-1);let fe=0,U,ee,te,ue,Ce=!1,ke=0,V=c*3,O=c*2;k(e[0],e[1],A).multiplyScalar(ce),y.copy(e[0]).sub(A),g.copy(e[0]).add(A),v.copy(y),C.copy(g);for(let ne=1;neNumber.EPSILON){const Te=ce/he;f.multiplyScalar(-Te),d.subVectors(q,ge),m.copy(d).setLength(Te).add(f),P.copy(m).negate();const $=m.length(),S=d.length();d.divideScalar(S),E.subVectors(X,q);const D=E.length();switch(E.divideScalar(D),d.dot(P)=r&&he.push(ne[Te]);return he.push(ne[ne.length-1]),he}}}const Jz=new bu,Ap=new ei,il=new G;async function Kz(n,e,t=sr,i,r,s,o){const a=new Gr;a.matrixAutoUpdate=!1;const c=await Jz.loadAsync(n);Ap.makeEmpty();for(const f of c.paths){const d=bu.createShapes(f),m=new t;m.transparent=!0,m.depthWrite=!1,m.toneMapped=!1,m.clippingPlanes=i;for(const E of d){const x=new Qu(E);x.computeBoundingBox(),Ap.union(x.boundingBox);const y=new rn(x,m);y.matrixAutoUpdate=!1,y.raycast=Tu(y,y.raycast,s,r,o),Vl(y,e,o),y.userData.color=f.color,y.scale.y=-1,y.updateMatrix(),a.add(y)}}Ap.getSize(il);const A=il.x/il.y,h=1/il.y;return a.scale.set(1,1,1).multiplyScalar(h),Ap.getCenter(il),il.y*=-1,a.position.copy(il).negate().multiplyScalar(h),a.updateMatrix(),Object.assign(a,{aspectRatio:A})}const kS=new Je,jz=["color","opacity"];j.forwardRef((n,e)=>{const t=Ia(),i=j.useRef(null),r=Wl(i);Ps(t,r,Ma);const s=Da(t,r),o=Kl(s),a=go(),c=zl(a,o,r.size,r),A=Yl(n.panelMaterialClass,n),h=Br(Vi.Panel,n.zIndexOffset,A);Xl(t,o,r.size,void 0,r.borderInset,c,h,a,A,Qa);const f=Hl(),d=Zh(a,f),m=Br(Vi.Svg,void 0,void 0,h),E=YR(Kz,n.src,r.cameraDistance,n.materialClass,d,a,f,m),x=ls(t,jz);Ri(()=>{var M;const w=x.value;if(w==null)return;const T=w("color"),P=w("opacity");let K;Array.isArray(T)?K=kS.setRGB(...T):T!=null&&(K=kS.set(T)),(M=E.value)==null||M.traverse(b=>{if(!(b instanceof rn))return;b.receiveShadow=n.receiveShadow??!1,b.castShadow=n.castShadow??!1;const q=b.material;q.color.copy(K??b.userData.color),q.opacity=P??1})},[E,n.color,n.receiveShadow,n.castShadow]);const y=j.useMemo(()=>ti(()=>{var w;return(w=E.value)==null?void 0:w.aspectRatio}),[E]),g=$h();tf(t,g,r,o,c,n.scrollbarPanelMaterialClass,a,m),xa(t,n),Ba(t,n),_a(t,n);const v=wa(t,n),C=ba(t,n);Ts(t,"aspectRatio",y),va(t),Ta(n,r.size),Jl(n,c);const B=j.useMemo(()=>{const w=new Gr;return w.matrixAutoUpdate=!1,w},[]);Ri(()=>{var K;const[w,T,P]=XR(r.size,r.paddingInset,r.borderInset,r.pixelSize,((K=E.value)==null?void 0:K.aspectRatio)??1);B.position.set(w,T,0),B.scale.setScalar(P),B.updateMatrix()},[r,E]),Ri(()=>{const w=E.value;if(w!=null)return B.add(w),()=>B.remove(w)},[E,B]),Ri(()=>void(B.visible=!c.value),[]);const R=Du(r.size,r,h,f);return Ra(e,r,R,g),W.jsxs(Sa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:v,activeHandlers:C,children:[W.jsxs(ef,{listeners:n,node:r,scrollPosition:g,children:[W.jsx("primitive",{object:R}),W.jsx("primitive",{object:B})]}),W.jsx(nf,{globalMatrix:o,node:r,orderInfo:m,scrollPosition:g,children:n.children})]})});const Et=j.forwardRef((n,e)=>{const t=Ia(),i=j.useRef(null),r=Wl(i);Ps(t,r,Ma);const s=Da(t,r),o=Hl(),a=Kl(s),c=go(),A=zl(c,a,r.size,r);Ta(n,r.size),Jl(n,A);const h=Yl(n.panelMaterialClass,n),f=Br(Vi.Panel,n.zIndexOffset,h);Xl(t,a,r.size,void 0,r.borderInset,A,f,c,h,Qa);const d=Br(Vi.Text,void 0,void 0,f),m=SH(t,n.children,a,r,A,c,d);xa(t,n),Ba(t,n),_a(t,n);const E=wa(t,n),x=ba(t,n);Ts(t,"measureFunc",m),va(t);const y=Du(r.size,r,f,o);return Ra(e,r,y),W.jsx(Sa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:E,activeHandlers:x,children:W.jsx("primitive",{object:y})})}),qz=j.forwardRef((n,e)=>{const t=Kh(),i=n.pixelSize??DT,[r,s]=j.useMemo(()=>{const{width:A,height:h}=t.getState().size;return[dn(A*i),dn(h*i)]},[i,t]);j.useEffect(()=>{const A=h=>{NR(()=>{r.value=h.size.width*i,s.value=h.size.height*i})};return A(t.getState()),t.subscribe(A)},[i,r,s,t]);const o=Tv(A=>A.camera),a=j.useRef(null);ya(()=>{if(a.current==null)return;let A=1;o instanceof Zn&&(A=s.peek()/(2*Math.tan(o.fov/360*Math.PI))),a.current.position.z=-A,a.current.updateMatrix()});const c=n.attachCamera??!0;return W.jsxs(W.Fragment,{children:[c&&W.jsx("primitive",{object:o}),QR(W.jsx("group",{ref:a,matrixAutoUpdate:!1,children:W.jsx(Vz,{ref:e,...n,sizeX:r,sizeY:s,children:n.children})}),o)]})}),GS=new Je,Zz=["color","opacity"],$z=new bu,Na=j.forwardRef((n,e)=>{const t=Ia(),i=j.useRef(null),r=Wl(i);Ps(t,r,Ma);const s=Da(t,r),o=Kl(s),a=go(),c=zl(a,o,r.size,r),A=Yl(n.panelMaterialClass,n),h=Br(Vi.Panel,n.zIndexOffset,A);Xl(t,o,r.size,void 0,r.borderInset,c,h,a,A,Qa);const f=Hl(),d=Zh(a,f),m=Br(Vi.Svg,void 0,void 0,h),E=j.useMemo(()=>{const B=new Gr;B.matrixAutoUpdate=!1;const R=$z.parse(n.text);for(const w of R.paths){const T=bu.createShapes(w),P=new(n.materialClass??sr);P.transparent=!0,P.depthWrite=!1,P.toneMapped=!1,P.clippingPlanes=d;for(const K of T){const M=new Qu(K);M.computeBoundingBox();const b=new rn(M,P);b.matrixAutoUpdate=!1,b.raycast=Tu(b,b.raycast,f,a,m),Vl(b,r.cameraDistance,m),b.userData.color=w.color,b.scale.y=-1,b.updateMatrix(),B.add(b)}}return B},[n.text,n.materialClass,d,f,a,r,m]),x=ls(t,Zz);Ri(()=>{const B=x.value;if(B==null)return;const R=B("color"),w=B("opacity");let T;Array.isArray(R)?T=GS.setRGB(...R):R!=null&&(T=GS.set(R)),E.traverse(P=>{if(!(P instanceof rn))return;P.receiveShadow=n.receiveShadow??!1,P.castShadow=n.castShadow??!1;const K=P.material;K.color.copy(T??P.userData.color),K.opacity=w??1})},[E,n.color,n.receiveShadow,n.castShadow]);const y=$h();tf(t,y,r,o,c,n.scrollbarPanelMaterialClass,a,m),Ts(t,"width",n.svgWidth),Ts(t,"height",n.svgHeight),xa(t,n),Ba(t,n),_a(t,n);const g=wa(t,n),v=ba(t,n);Ts(t,"aspectRatio",n.svgWidth/n.svgHeight),va(t),Ta(n,r.size),Jl(n,c),Ri(()=>{const B=n.svgWidth/n.svgHeight,[R,w,T]=XR(r.size,r.paddingInset,r.borderInset,r.pixelSize,n.svgWidth/n.svgHeight);E.position.set(R-T*B/2,w+T/2,0),E.scale.setScalar(T/n.svgHeight),E.updateMatrix()},[r,E,n.svgWidth,n.svgHeight]),Ri(()=>void(E.visible=!c.value),[]);const C=Du(r.size,r,h,f);return Ra(e,r,C,y),W.jsxs(Sa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:g,activeHandlers:v,children:[W.jsxs(ef,{listeners:n,node:r,scrollPosition:y,children:[W.jsx("primitive",{object:C}),W.jsx("primitive",{object:E})]}),W.jsx(nf,{globalMatrix:o,node:r,orderInfo:m,scrollPosition:y,children:n.children})]})});j.forwardRef(({children:n,resolution:e=1,frames:t=1/0,renderPriority:i=0,eventPriority:r=0,...s},o)=>{const a=j.useMemo(()=>new Wr(1,1,{minFilter:In,magFilter:In,type:Dl}),[]),c=j.useRef(null),A=j.useMemo(()=>({events:{compute:e5.bind(null,c),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);j.useEffect(()=>{if(c.current==null)return;const{size:f}=c.current,d=ln(()=>{const[m,E]=f.value;a.setSize(m,E),A.size.width=m,A.size.height=E});return()=>{d(),a.dispose()}},[a,A]),j.useImperativeHandle(o,()=>c.current,[]);const h=j.useMemo(()=>new vh,[]);return W.jsxs(W.Fragment,{children:[QR(W.jsxs(t5,{imageRef:c,renderPriority:i,frames:t,fbo:a,children:[n,W.jsx("group",{onPointerOver:()=>null})]}),h,A),W.jsx(TT,{...s,src:a.texture,fit:"fill",keepAspectRatio:!1,ref:c})]})});function e5({current:n},e,t,i){var o,a,c;if(n==null||i==null)return!1;i.raycaster.camera||(c=(a=i.events).compute)==null||c.call(a,e,i,(o=i.previousRoot)==null?void 0:o.getState());const[r]=i.raycaster.intersectObject(n.interactionPanel);if(!r)return!1;const s=r.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(s.x*2-1,s.y*2-1),t.camera)}function t5({frames:n,renderPriority:e,children:t,fbo:i,imageRef:r}){const s=Kh();j.useEffect(()=>{if(r.current==null)return;const{size:A}=r.current;return ln(()=>{const[h,f]=A.value;s.setState({size:{width:h,height:f,top:0,left:0}})})});let o=0,a,c;return ya(A=>{(n===1/0||oW.jsx(Na,{...n,ref:e,text:n5,svgWidth:24,svgHeight:24})),r5='',s5=j.forwardRef((n,e)=>W.jsx(Na,{...n,ref:e,text:r5,svgWidth:24,svgHeight:24})),o5='',a5=j.forwardRef((n,e)=>W.jsx(Na,{...n,ref:e,text:o5,svgWidth:24,svgHeight:24})),l5='',c5=j.forwardRef((n,e)=>W.jsx(Na,{...n,ref:e,text:l5,svgWidth:24,svgHeight:24})),u5='',A5=j.forwardRef((n,e)=>W.jsx(Na,{...n,ref:e,text:u5,svgWidth:24,svgHeight:24})),h5='',f5=j.forwardRef((n,e)=>W.jsx(Na,{...n,ref:e,text:h5,svgWidth:24,svgHeight:24})),d5='',p5=j.forwardRef((n,e)=>W.jsx(Na,{...n,ref:e,text:d5,svgWidth:24,svgHeight:24})),g5='',m5=j.forwardRef((n,e)=>W.jsx(Na,{...n,ref:e,text:g5,svgWidth:24,svgHeight:24}));function Ot(n,e,t){return new Je().setHSL(n/360,e/100,t/100,"srgb")}const xt=HO({light:{background:Ot(0,0,100),foreground:Ot(222.2,84,4.9),card:Ot(0,0,100),cardForeground:Ot(222.2,84,4.9),popover:Ot(0,0,100),popoverForeground:Ot(222.2,84,4.9),primary:Ot(222.2,47.4,11.2),primaryForeground:Ot(210,40,98),secondary:Ot(210,40,96.1),secondaryForeground:Ot(222.2,47.4,11.2),muted:Ot(210,40,96.1),mutedForeground:Ot(215.4,16.3,46.9),accent:Ot(210,40,96.1),accentForeground:Ot(222.2,47.4,11.2),destructive:Ot(0,72.22,50.59),destructiveForeground:Ot(210,40,98),border:Ot(214.3,31.8,91.4),input:Ot(214.3,31.8,91.4),ring:Ot(222.2,84,4.9)},dark:{background:Ot(222.2,84,4.9),foreground:Ot(210,40,98),card:Ot(222.2,84,4.9),cardForeground:Ot(210,40,98),popover:Ot(222.2,84,4.9),popoverForeground:Ot(210,40,98),primary:Ot(210,40,98),primaryForeground:Ot(222.2,47.4,11.2),secondary:Ot(217.2,32.6,17.5),secondaryForeground:Ot(210,40,98),muted:Ot(217.2,32.6,17.5),mutedForeground:Ot(215,20.2,65.1),accent:Ot(217.2,32.6,17.5),accentForeground:Ot(210,40,98),destructive:Ot(0,62.8,30.6),destructiveForeground:Ot(210,40,98),border:Ot(217.2,32.6,17.5),input:Ot(217.2,32.6,17.5),ring:Ot(212.7,26.8,83.9)}});function E5(n){return W.jsx(Ls,{scrollbarColor:xt.foreground,scrollbarBorderRadius:4,scrollbarOpacity:.3,borderColor:xt.border,color:xt.foreground,...n})}const y5={default:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:xt.primary},defaultProps:{color:xt.primaryForeground}},destructive:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:xt.destructive},defaultProps:{color:xt.destructiveForeground}},outline:{containerHoverProps:{backgroundColor:xt.accent},containerProps:{border:1,borderColor:xt.input,backgroundColor:xt.background}},secondary:{containerHoverProps:{backgroundOpacity:.8},containerProps:{backgroundColor:xt.secondary},defaultProps:{color:xt.secondaryForeground}},ghost:{containerHoverProps:{backgroundColor:xt.accent},defaultProps:{}},link:{containerProps:{},defaultProps:{color:xt.primary}}},C5={default:{height:40,paddingX:16,paddingY:8},sm:{height:36,paddingX:12},lg:{height:42,paddingX:32},icon:{height:40,width:40}};function Th({children:n,variant:e="default",size:t="default",disabled:i=!1,hover:r,...s}){const{containerProps:o,defaultProps:a,containerHoverProps:c}=y5[e],A=C5[t];return W.jsx(Ct,{borderRadius:6,alignItems:"center",justifyContent:"center",...o,...A,borderOpacity:i?.5:void 0,backgroundOpacity:i?.5:void 0,cursor:i?void 0:"pointer",flexDirection:"row",hover:{...c,...r},...s,children:W.jsx(Ls,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",...a,opacity:i?.5:void 0,children:n})})}function bc({children:n,...e}){return W.jsx(Ct,{borderRadius:8,border:1,backgroundColor:xt.card,...e,children:W.jsx(Ls,{color:xt.cardForeground,children:n})})}function Nc(n){return W.jsx(Ct,{padding:24,flexDirection:"column",gap:6,...n})}function Lc({children:n}){return W.jsx(Ls,{fontWeight:"semi-bold",letterSpacing:-.4,fontSize:24,lineHeight:1,children:n})}function I5({children:n}){return W.jsx(Ls,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:n})}function Pc(n){return W.jsx(Ct,{padding:24,paddingTop:0,...n})}const Gv=j.createContext(null);function v5({value:n,onValueChange:e,defaultValue:t,children:i,...r}){const[s,o]=j.useState(t),a=j.useMemo(()=>n==null?{value:s,setValue:c=>{o(c),e==null||e(c)}}:{value:n,setValue:e},[s,e,n]);return W.jsx(Ct,{...r,children:W.jsx(Gv.Provider,{value:a,children:i})})}function x5({children:n,...e}){return W.jsx(Ct,{height:40,flexDirection:"row",alignItems:"center",borderRadius:6,backgroundColor:xt.muted,padding:4,...e,children:W.jsx(Ls,{color:xt.mutedForeground,children:n})})}function hp({children:n,value:e,disabled:t=!1,...i}){const{setValue:r,value:s}=j.useContext(Gv),o=e===s;return W.jsx(Ct,{onClick:t?void 0:a=>r==null?void 0:r(e),cursor:t?void 0:"pointer",flexDirection:"row",alignItems:"center",borderRadius:2,paddingX:12,backgroundOpacity:t?.5:void 0,backgroundColor:o?xt.background:void 0,paddingY:6,justifyContent:"center",...i,children:W.jsx(Ls,{opacity:t?.5:void 0,color:o?xt.foreground:void 0,fontSize:14,fontWeight:"medium",lineHeight:1.43,wordBreak:"keep-all",children:n})})}function B5({value:n,...e}){const{value:t}=j.useContext(Gv);return n!=t?null:W.jsx(Ct,{marginTop:8,...e})}const bT=j.createContext(null);function _5({children:n}){const[e,t]=j.useState(void 0),i=j.useCallback((r,s)=>t(o=>o===r?s:o),[]);return W.jsxs(W.Fragment,{children:[W.jsx(S5,{set:i,children:n}),e]})}const S5=j.memo(({children:n,set:e})=>W.jsx(bT.Provider,{value:e,children:n})),Dh=j.createContext(null);function w5({children:n,open:e,onOpenChange:t,defaultOpen:i}){const[r,s]=j.useState(i??!1),o=e??r,a=j.useContext(bT),c=j.useRef(void 0),A=j.useRef(void 0);j.useEffect(()=>{if(!o){a(A.current,void 0),A.current=void 0;return}c.current!=null&&(a(void 0,c.current),A.current=c.current)},[o,a]);const h=j.useRef(t);h.current=t;const f=e!=null,d=j.useMemo(()=>({setContent(m){A.current!=null&&(a(A.current,m),A.current=m),c.current=m},setOpen(m){var E;f||s(m),(E=h.current)==null||E.call(h,m)}}),[f,a]);return W.jsx(Dh.Provider,{value:d,children:n})}function M5({children:n}){const{setOpen:e}=j.useContext(Dh);return W.jsx(Ct,{onClick:()=>e(!0),children:n})}function Q5(n){return W.jsx(Ct,{onPointerMove:e=>e.stopPropagation(),onWheel:e=>e.stopPropagation(),positionType:"absolute",inset:0,zIndexOffset:50,backgroundColor:"black",backgroundOpacity:.8,...n})}function R5(){const{setOpen:n}=j.useContext(Dh);return j.useCallback(()=>n(!1),[n])}function T5({children:n}){const e=j.useContext(Dh);return j.useEffect(()=>e.setContent(W.jsx(Dh.Provider,{value:e,children:n}))),null}function D5({children:n,sm:e,...t}){const i=R5();return W.jsx(T5,{children:W.jsx(Q5,{onClick:r=>{i(),r.stopPropagation()},alignItems:"center",justifyContent:"center",children:W.jsxs(Ct,{onClick:r=>r.stopPropagation(),positionType:"relative",width:"100%",gap:16,border:1,backgroundColor:xt.background,padding:24,sm:{borderRadius:8,...e},...t,children:[n,W.jsx(m5,{color:xt.mutedForeground,onClick:i,cursor:"pointer",positionType:"absolute",positionRight:16,positionTop:16,borderRadius:2,opacity:.7,backgroundOpacity:.7,hover:{opacity:1,backgroundOpacity:1},width:16,height:16})]})})})}function b5({children:n,...e}){return W.jsx(Ct,{flexDirection:"column",gap:6,...e,children:W.jsx(Ls,{horizontalAlign:"center",sm:{horizontalAlign:"left"},children:n})})}function N5(n){return W.jsx(Ct,{flexDirection:"column-reverse",sm:{flexDirection:"row",justifyContent:"flex-end"},gap:8,...n})}function L5({children:n}){return W.jsx(Ls,{fontSize:18,lineHeight:1,letterSpacing:-.4,fontWeight:"semi-bold",children:n})}function P5({children:n}){return W.jsx(Ls,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:n})}function U5(){return W.jsxs(Th,{variant:"outline",width:260,justifyContent:"flex-start",children:[W.jsx(a5,{marginRight:8,width:16,height:16}),W.jsx(Et,{fontWeight:"normal",children:"Jan 20, 2023 - Feb 09, 2023"})]})}function F5(n){return W.jsxs(Ct,{alignItems:"center",flexDirection:"row",gap:16,lg:{gap:24},...n,children:[W.jsx(Et,{fontSize:14,lineHeight:1.43,fontWeight:"medium",hover:{color:xt.primary},children:"Overview"}),W.jsx(Et,{color:xt.mutedForeground,fontSize:14,lineHeight:1.43,fontWeight:"medium",children:"Customers"}),W.jsx(Et,{color:xt.mutedForeground,fontSize:14,lineHeight:1.43,fontWeight:"medium",children:"Products"}),W.jsx(Et,{color:xt.mutedForeground,fontSize:14,lineHeight:1.43,fontWeight:"medium",children:"Settings"})]})}const k5=[{name:"Jan",total:Math.floor(Math.random()*5e3)+1e3},{name:"Feb",total:Math.floor(Math.random()*5e3)+1e3},{name:"Mar",total:Math.floor(Math.random()*5e3)+1e3},{name:"Apr",total:Math.floor(Math.random()*5e3)+1e3},{name:"May",total:Math.floor(Math.random()*5e3)+1e3},{name:"Jun",total:Math.floor(Math.random()*5e3)+1e3},{name:"Jul",total:Math.floor(Math.random()*5e3)+1e3},{name:"Aug",total:Math.floor(Math.random()*5e3)+1e3},{name:"Sep",total:Math.floor(Math.random()*5e3)+1e3},{name:"Oct",total:Math.floor(Math.random()*5e3)+1e3},{name:"Nov",total:Math.floor(Math.random()*5e3)+1e3},{name:"Dec",total:Math.floor(Math.random()*5e3)+1e3}],G5=6e3,O5=["$6000","$4500","$3000","$1500","$0"];function H5(){return W.jsxs(Ct,{paddingX:16,gap:16,width:"100%",height:350,flexDirection:"row",children:[W.jsx(Ct,{paddingBottom:12*1.333+8,flexDirection:"column",alignItems:"flex-end",justifyContent:"space-between",children:O5.map(n=>W.jsx(Et,{color:xt.mutedForeground,fontSize:12,lineHeight:1.3333,children:n},n))}),W.jsx(Ct,{gap:16,height:"100%",flexGrow:1,flexDirection:"row",children:k5.map(({name:n,total:e})=>W.jsxs(Ct,{gap:8,flexGrow:1,alignItems:"center",children:[W.jsx(Ct,{flexGrow:1,flexShrink:1,justifyContent:"flex-end",width:"100%",children:W.jsx(Ct,{borderTopRadius:4,height:`${Math.min(1,e/G5)*100}%`,backgroundColor:xt.primary,width:"100%"})}),W.jsx(Et,{color:xt.mutedForeground,fontSize:12,lineHeight:1.3333,children:n})]},n))})]})}function hl(n){return W.jsx(TT,{width:40,height:40,flexShrink:0,aspectRatio:1,fit:"cover",borderRadius:20,...n})}function z5(){return W.jsxs(Ct,{gap:32,children:[W.jsxs(Ct,{flexDirection:"row",alignItems:"center",children:[W.jsx(hl,{height:36,width:36,src:"/uikit/examples/dashboard/01.png"}),W.jsxs(Ct,{marginLeft:16,gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,fontWeight:"medium",children:"Olivia Martin"}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"olivia.martin@email.com"})]}),W.jsx(Et,{marginLeft:"auto",fontWeight:"medium",children:"+$1,999.00"})]}),W.jsxs(Ct,{flexDirection:"row",alignItems:"center",children:[W.jsx(hl,{height:36,width:36,alignItems:"center",justifyContent:"center",border:1,gap:0,src:"/uikit/examples/dashboard/02.png"}),W.jsxs(Ct,{marginLeft:16,gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,fontWeight:"medium",children:"Jackson Lee"}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"jackson.lee@email.com"})]}),W.jsx(Et,{marginLeft:"auto",fontWeight:"medium",children:"+$39.00"})]}),W.jsxs(Ct,{flexDirection:"row",alignItems:"center",children:[W.jsx(hl,{width:36,height:36,src:"/uikit/examples/dashboard/03.png"}),W.jsxs(Ct,{marginLeft:16,gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,fontWeight:"medium",children:"Isabella Nguyen"}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"isabella.nguyen@email.com"})]}),W.jsx(Et,{marginLeft:"auto",fontWeight:"medium",children:"+$299.00"})]}),W.jsxs(Ct,{flexDirection:"row",alignItems:"center",children:[W.jsx(hl,{width:36,height:36,src:"/uikit/examples/dashboard/04.png"}),W.jsxs(Ct,{marginLeft:16,gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,fontWeight:"medium",children:"William Kim"}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"will@email.com"})]}),W.jsx(Et,{marginLeft:"auto",fontWeight:"medium",children:"+$99.00"})]}),W.jsxs(Ct,{flexDirection:"row",alignItems:"center",children:[W.jsx(hl,{width:36,height:36,src:"/uikit/examples/dashboard/05.png"}),W.jsxs(Ct,{marginLeft:16,gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,fontWeight:"medium",children:"Sofia Davis"}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"sofia.davis@email.com"})]}),W.jsx(Et,{marginLeft:"auto",fontWeight:"medium",children:"+$39.00"})]})]})}const V5=[{label:"Personal Account",teams:[{label:"Alicia Koch",value:"personal"}]},{label:"Teams",teams:[{label:"Acme Inc.",value:"acme-inc"},{label:"Monsters Inc.",value:"monsters"}]}];function W5(n){const e=V5[0].teams[0];return W.jsxs(Th,{variant:"outline",width:200,justifyContent:"space-between",...n,children:[W.jsx(hl,{marginRight:8,height:20,width:20,src:`/uikit/examples/dashboard/${e.value}.png`}),W.jsx(Et,{children:e.label}),W.jsx(c5,{marginLeft:"auto",height:20,width:20,flexShrink:0,opacity:.5})]})}function Y5({defaultChecked:n,checked:e,disabled:t=!1,onCheckedChange:i,...r}){const[s,o]=j.useState(n??!1),a=e??s;return W.jsx(Ct,{height:24,width:44,flexShrink:0,flexDirection:"row",padding:2,alignItems:"center",backgroundOpacity:t?.5:void 0,borderRadius:1e3,backgroundColor:a?xt.primary:xt.input,cursor:t?void 0:"pointer",onClick:t?void 0:()=>{e==null&&o(!a),i==null||i(!a)},...r,children:W.jsx(Ct,{width:20,height:20,borderRadius:1e3,transformTranslateX:a?20:0,backgroundColor:xt.background})})}const YE=[{title:"Your call has been confirmed.",description:"1 hour ago"},{title:"You have a new message!",description:"1 hour ago"},{title:"Your subscription is expiring soon!",description:"2 hours ago"}];function X5({open:n,setOpen:e}){return W.jsxs(w5,{open:n,onOpenChange:e,children:[W.jsx(M5,{children:W.jsx(hl,{cursor:"pointer",src:"/uikit/examples/dashboard/01.png",height:32,width:32})}),W.jsxs(D5,{positionType:"relative",transformTranslateZ:200,sm:{maxWidth:425},children:[W.jsx(Mz,{transformTranslateZ:-1,positionType:"absolute",inset:0,children:W.jsx("meshBasicMaterial",{colorWrite:!1})}),W.jsxs(b5,{children:[W.jsx(L5,{children:W.jsx(Et,{children:"Edit profile"})}),W.jsx(P5,{children:W.jsx(Et,{children:"Make changes to your profile here. Click save when you're done."})})]}),W.jsxs(Ct,{flexDirection:"row",alignItems:"center",gap:16,borderRadius:6,border:1,padding:16,children:[W.jsx(s5,{}),W.jsxs(Ct,{gap:4,children:[W.jsx(Et,{fontWeight:"medium",fontSize:14,lineHeight:1,children:"Push Notifications"}),W.jsx(Et,{fontWeight:"medium",fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:"Send notifications to device."})]}),W.jsx(Y5,{})]}),W.jsx(Ct,{children:YE.map((t,i)=>W.jsxs(Ct,{marginBottom:i===YE.length-1?0:16,paddingBottom:i===YE.length-1?0:16,alignItems:"flex-start",flexDirection:"row",gap:17,children:[W.jsx(Ct,{height:8,width:8,transformTranslateY:4,borderRadius:1e3,backgroundColor:959977}),W.jsxs(Ct,{gap:4,children:[W.jsx(Et,{fontSize:14,lineHeight:1,children:t.title}),W.jsx(Et,{fontSize:14,lineHeight:1.43,color:xt.mutedForeground,children:t.description})]})]},i))}),W.jsx(N5,{children:W.jsx(Th,{onClick:()=>e(!1),children:W.jsx(Et,{children:"Save changes"})})})]})]})}GO("light");function J5(){const[n,e]=j.useState(!1);return W.jsx(MO,{flat:!0,camera:{position:[0,0,18],fov:35},style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:W.jsx(qz,{backgroundColor:16777215,dark:{backgroundColor:0},children:W.jsx(E5,{children:W.jsx(_5,{children:W.jsx(Ct,{width:"100%",height:"100%",overflow:"scroll",children:W.jsx(K5,{open:n,setOpen:e})})})})})})}function K5({open:n,setOpen:e}){return W.jsxs(Ct,{flexDirection:"column",children:[W.jsx(Ct,{borderBottom:1,children:W.jsxs(Ct,{height:64,alignItems:"center",flexDirection:"row",paddingX:16,children:[W.jsx(W5,{}),W.jsx(F5,{marginX:24}),W.jsxs(Ct,{marginLeft:"auto",flexDirection:"row",alignItems:"center",gap:16,children:[W.jsx(Th,{variant:"secondary",size:"sm",onClick:()=>window.open("https://github.com/pmndrs/uikit/tree/main/examples/dashboard","_blank"),children:W.jsx(Et,{children:"Source Code"})}),W.jsx(X5,{open:n,setOpen:e})]})]})}),W.jsxs(Ct,{flexGrow:1,gap:16,padding:32,paddingTop:24,children:[W.jsxs(Ct,{flexDirection:"row",justifyContent:"space-between",gap:8,children:[W.jsx(Et,{fontSize:30,lineHeight:1,children:"Dashboard"}),W.jsxs(Ct,{flexDirection:"row",gap:8,alignItems:"center",children:[W.jsx(U5,{}),W.jsx(Th,{children:W.jsx(Et,{children:"Download"})})]})]}),W.jsxs(v5,{defaultValue:"overview",gap:16,children:[W.jsxs(x5,{alignSelf:"flex-start",children:[W.jsx(hp,{value:"overview",children:W.jsx(Et,{children:"Overview"})}),W.jsx(hp,{value:"analytics",disabled:!0,children:W.jsx(Et,{children:"Analytics"})}),W.jsx(hp,{value:"reports",disabled:!0,children:W.jsx(Et,{children:"Reports"})}),W.jsx(hp,{value:"notifications",disabled:!0,children:W.jsx(Et,{children:"Notifications"})})]}),W.jsxs(B5,{value:"overview",gap:16,children:[W.jsxs(Ct,{gap:16,lg:{flexDirection:"row"},children:[W.jsxs(Ct,{flexGrow:1,gap:16,flexDirection:"row",children:[W.jsxs(bc,{flexBasis:0,flexGrow:1,children:[W.jsxs(Nc,{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:8,children:[W.jsx(Lc,{children:W.jsx(Et,{fontSize:14,lineHeight:1.43,children:"Total Revenue"})}),W.jsx(f5,{width:16,height:16,color:xt.mutedForeground})]}),W.jsxs(Pc,{children:[W.jsx(Et,{fontSize:24,lineHeight:1.3333,children:"$45,231.89"}),W.jsx(Et,{fontSize:12,lineHeight:1.3333,color:xt.mutedForeground,children:"+20.1% from last month"})]})]}),W.jsxs(bc,{flexBasis:0,flexGrow:1,children:[W.jsxs(Nc,{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:8,gap:0,children:[W.jsx(Lc,{children:W.jsx(Et,{fontSize:14,lineHeight:1.43,children:"Subscriptions"})}),W.jsx(p5,{height:16,width:16,color:xt.mutedForeground})]}),W.jsxs(Pc,{children:[W.jsx(Et,{fontSize:24,lineHeight:1.3333,children:"+2350"}),W.jsx(Et,{fontSize:12,lineHeight:1.3333,color:xt.mutedForeground,children:"+180.1% from last month"})]})]})]}),W.jsxs(Ct,{flexGrow:1,gap:16,flexDirection:"row",children:[W.jsxs(bc,{flexBasis:0,flexGrow:1,children:[W.jsxs(Nc,{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:2,gap:0,children:[W.jsx(Lc,{children:W.jsx(Et,{fontSize:14,lineHeight:1.43,children:"Sales"})}),W.jsx(A5,{width:16,height:16,color:xt.mutedForeground})]}),W.jsxs(Pc,{children:[W.jsx(Et,{fontSize:24,lineHeight:1.3333,children:"+12,234"}),W.jsx(Et,{fontSize:12,lineHeight:1.3333,color:xt.mutedForeground,children:"+19% from last month"})]})]}),W.jsxs(bc,{flexBasis:0,flexGrow:1,children:[W.jsxs(Nc,{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:2,gap:0,children:[W.jsx(Lc,{children:W.jsx(Et,{fontSize:14,lineHeight:1.43,children:"Active Now"})}),W.jsx(i5,{width:16,height:16,color:xt.mutedForeground})]}),W.jsxs(Pc,{children:[W.jsx(Et,{fontSize:24,lineHeight:1.3333,children:"+573"}),W.jsx(Et,{fontSize:12,lineHeight:1.3333,color:xt.mutedForeground,children:"+201 since last hour"})]})]})]})]}),W.jsxs(Ct,{lg:{flexDirection:"row"},flexDirection:"column",gap:16,children:[W.jsxs(bc,{lg:{flexGrow:4},children:[W.jsx(Nc,{children:W.jsx(Lc,{children:W.jsx(Et,{children:"Overview"})})}),W.jsx(Pc,{paddingLeft:8,children:W.jsx(H5,{})})]}),W.jsxs(bc,{lg:{flexGrow:3},children:[W.jsxs(Nc,{children:[W.jsx(Lc,{children:W.jsx(Et,{children:"Recent Sales"})}),W.jsx(I5,{children:W.jsx(Et,{children:"You made 265 sales this month."})})]}),W.jsx(Pc,{children:W.jsx(z5,{})})]})]})]})]})]})]})}tQ(document.getElementById("root")).render(W.jsx(j.StrictMode,{children:W.jsx(J5,{})})); diff --git a/examples/dashboard/index.html b/examples/dashboard/index.html index b837b88b..ffa6cfd5 100644 --- a/examples/dashboard/index.html +++ b/examples/dashboard/index.html @@ -5,7 +5,7 @@ Document - +
diff --git a/examples/default/assets/index-bLw7rsqH.js b/examples/default/assets/index-Ttf9QqEA.js similarity index 50% rename from examples/default/assets/index-bLw7rsqH.js rename to examples/default/assets/index-Ttf9QqEA.js index 719b0751..424ade48 100644 --- a/examples/default/assets/index-bLw7rsqH.js +++ b/examples/default/assets/index-Ttf9QqEA.js @@ -1,4 +1,4 @@ -var V3=Object.defineProperty;var W3=(n,e,t)=>e in n?V3(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Pe=(n,e,t)=>(W3(n,typeof e!="symbol"?e+"":e,t),t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function L1(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Jw={exports:{}},Dg={},jw={exports:{}},Vt={};/** +var ob=Object.defineProperty;var ab=(n,e,t)=>e in n?ob(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var be=(n,e,t)=>(ab(n,typeof e!="symbol"?e+"":e,t),t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function H1(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var cM={exports:{}},Ng={},uM={exports:{}},Wt={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var V3=Object.defineProperty;var W3=(n,e,t)=>e in n?V3(n,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Oh=Symbol.for("react.element"),Y3=Symbol.for("react.portal"),X3=Symbol.for("react.fragment"),J3=Symbol.for("react.strict_mode"),j3=Symbol.for("react.profiler"),K3=Symbol.for("react.provider"),q3=Symbol.for("react.context"),Z3=Symbol.for("react.forward_ref"),$3=Symbol.for("react.suspense"),eb=Symbol.for("react.memo"),tb=Symbol.for("react.lazy"),uB=Symbol.iterator;function nb(n){return n===null||typeof n!="object"?null:(n=uB&&n[uB]||n["@@iterator"],typeof n=="function"?n:null)}var Kw={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},qw=Object.assign,Zw={};function wu(n,e,t){this.props=n,this.context=e,this.refs=Zw,this.updater=t||Kw}wu.prototype.isReactComponent={};wu.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};wu.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function $w(){}$w.prototype=wu.prototype;function U1(n,e,t){this.props=n,this.context=e,this.refs=Zw,this.updater=t||Kw}var F1=U1.prototype=new $w;F1.constructor=U1;qw(F1,wu.prototype);F1.isPureReactComponent=!0;var AB=Array.isArray,eM=Object.prototype.hasOwnProperty,k1={current:null},tM={key:!0,ref:!0,__self:!0,__source:!0};function nM(n,e,t){var i,r={},s=null,o=null;if(e!=null)for(i in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)eM.call(e,i)&&!tM.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(a===1)r.children=t;else if(1e in n?V3(n,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var ab=H,lb=Symbol.for("react.element"),cb=Symbol.for("react.fragment"),ub=Object.prototype.hasOwnProperty,Ab=ab.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,hb={key:!0,ref:!0,__self:!0,__source:!0};function iM(n,e,t){var i,r={},s=null,o=null;t!==void 0&&(s=""+t),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(i in e)ub.call(e,i)&&!hb.hasOwnProperty(i)&&(r[i]=e[i]);if(n&&n.defaultProps)for(i in e=n.defaultProps,e)r[i]===void 0&&(r[i]=e[i]);return{$$typeof:lb,type:n,key:s,ref:o,props:r,_owner:Ab.current}}Dg.Fragment=cb;Dg.jsx=iM;Dg.jsxs=iM;Jw.exports=Dg;var b=Jw.exports,rM={exports:{}},wr={},sM={exports:{}},oM={};/** + */var xb=k,Bb=Symbol.for("react.element"),Sb=Symbol.for("react.fragment"),_b=Object.prototype.hasOwnProperty,wb=xb.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Mb={key:!0,ref:!0,__self:!0,__source:!0};function EM(n,e,t){var i,r={},s=null,o=null;t!==void 0&&(s=""+t),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(i in e)_b.call(e,i)&&!Mb.hasOwnProperty(i)&&(r[i]=e[i]);if(n&&n.defaultProps)for(i in e=n.defaultProps,e)r[i]===void 0&&(r[i]=e[i]);return{$$typeof:Bb,type:n,key:s,ref:o,props:r,_owner:wb.current}}Ng.Fragment=Sb;Ng.jsx=EM;Ng.jsxs=EM;cM.exports=Ng;var D=cM.exports,CM={exports:{}},wr={},yM={exports:{}},vM={};/** * @license React * scheduler.production.min.js * @@ -22,7 +22,7 @@ var V3=Object.defineProperty;var W3=(n,e,t)=>e in n?V3(n,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(n){function e(F,ee){var te=F.length;F.push(ee);e:for(;0>>1,ye=F[ue];if(0>>1;uer(z,te))Or(k,z)?(F[ue]=k,F[O]=te,ue=O):(F[ue]=z,F[Y]=te,ue=Y);else if(Or(k,te))F[ue]=k,F[O]=te,ue=O;else break e}}return ee}function r(F,ee){var te=F.sortIndex-ee.sortIndex;return te!==0?te:F.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var l=[],A=[],h=1,d=null,f=3,g=!1,E=!1,v=!1,C=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(F){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=F)i(A),ee.sortIndex=ee.expirationTime,e(l,ee);else break;ee=t(A)}}function B(F){if(v=!1,I(F),!E)if(t(l)!==null)E=!0,se(R);else{var ee=t(A);ee!==null&&de(B,ee.startTime-F)}}function R(F,ee){E=!1,v&&(v=!1,p(U),U=-1),g=!0;var te=f;try{for(I(ee),d=t(l);d!==null&&(!(d.expirationTime>ee)||F&&!P());){var ue=d.callback;if(typeof ue=="function"){d.callback=null,f=d.priorityLevel;var ye=ue(d.expirationTime<=ee);ee=n.unstable_now(),typeof ye=="function"?d.callback=ye:d===t(l)&&i(l),I(ee)}else i(l);d=t(l)}if(d!==null)var Oe=!0;else{var Y=t(A);Y!==null&&de(B,Y.startTime-ee),Oe=!1}return Oe}finally{d=null,f=te,g=!1}}var w=!1,T=null,U=-1,K=5,M=-1;function P(){return!(n.unstable_now()-MF||125ue?(F.sortIndex=te,e(A,F),t(l)===null&&F===t(A)&&(v?(p(U),U=-1):v=!0,de(B,te-ue))):(F.sortIndex=ye,e(l,F),E||g||(E=!0,se(R))),F},n.unstable_shouldYield=P,n.unstable_wrapCallback=function(F){var ee=f;return function(){var te=f;f=ee;try{return F.apply(this,arguments)}finally{f=te}}}})(oM);sM.exports=oM;var db=sM.exports;/** + */(function(n){function e(F,ee){var te=F.length;F.push(ee);e:for(;0>>1,ye=F[Ae];if(0>>1;Aer(z,te))Gr(O,z)?(F[Ae]=O,F[G]=te,Ae=G):(F[Ae]=z,F[Y]=te,Ae=Y);else if(Gr(O,te))F[Ae]=O,F[G]=te,Ae=G;else break e}}return ee}function r(F,ee){var te=F.sortIndex-ee.sortIndex;return te!==0?te:F.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var l=[],A=[],h=1,d=null,f=3,g=!1,E=!1,v=!1,C=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(F){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=F)i(A),ee.sortIndex=ee.expirationTime,e(l,ee);else break;ee=t(A)}}function B(F){if(v=!1,I(F),!E)if(t(l)!==null)E=!0,ne(R);else{var ee=t(A);ee!==null&&ue(B,ee.startTime-F)}}function R(F,ee){E=!1,v&&(v=!1,p(U),U=-1),g=!0;var te=f;try{for(I(ee),d=t(l);d!==null&&(!(d.expirationTime>ee)||F&&!P());){var Ae=d.callback;if(typeof Ae=="function"){d.callback=null,f=d.priorityLevel;var ye=Ae(d.expirationTime<=ee);ee=n.unstable_now(),typeof ye=="function"?d.callback=ye:d===t(l)&&i(l),I(ee)}else i(l);d=t(l)}if(d!==null)var Oe=!0;else{var Y=t(A);Y!==null&&ue(B,Y.startTime-ee),Oe=!1}return Oe}finally{d=null,f=te,g=!1}}var M=!1,T=null,U=-1,K=5,w=-1;function P(){return!(n.unstable_now()-wF||125Ae?(F.sortIndex=te,e(A,F),t(l)===null&&F===t(A)&&(v?(p(U),U=-1):v=!0,ue(B,te-Ae))):(F.sortIndex=ye,e(l,F),E||g||(E=!0,ne(R))),F},n.unstable_shouldYield=P,n.unstable_wrapCallback=function(F){var ee=f;return function(){var te=f;f=ee;try{return F.apply(this,arguments)}finally{f=te}}}})(vM);yM.exports=vM;var Qb=yM.exports;/** * @license React * react-dom.production.min.js * @@ -30,22 +30,22 @@ var V3=Object.defineProperty;var W3=(n,e,t)=>e in n?V3(n,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var aM=H,Sr=db;function ke(n){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+n,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),MC=Object.prototype.hasOwnProperty,fb=/^[: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]*$/,dB={},fB={};function pb(n){return MC.call(fB,n)?!0:MC.call(dB,n)?!1:fb.test(n)?fB[n]=!0:(dB[n]=!0,!1)}function gb(n,e,t,i){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:t!==null?!t.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function mb(n,e,t,i){if(e===null||typeof e>"u"||gb(n,e,t,i))return!0;if(i)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Xi(n,e,t,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=n,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var Ci={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){Ci[n]=new Xi(n,0,!1,n,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var e=n[0];Ci[e]=new Xi(e,1,!1,n[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(n){Ci[n]=new Xi(n,2,!1,n.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){Ci[n]=new Xi(n,2,!1,n,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(n){Ci[n]=new Xi(n,3,!1,n.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(n){Ci[n]=new Xi(n,3,!0,n,null,!1,!1)});["capture","download"].forEach(function(n){Ci[n]=new Xi(n,4,!1,n,null,!1,!1)});["cols","rows","size","span"].forEach(function(n){Ci[n]=new Xi(n,6,!1,n,null,!1,!1)});["rowSpan","start"].forEach(function(n){Ci[n]=new Xi(n,5,!1,n.toLowerCase(),null,!1,!1)});var H1=/[\-:]([a-z])/g;function z1(n){return n[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(n){var e=n.replace(H1,z1);Ci[e]=new Xi(e,1,!1,n,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var e=n.replace(H1,z1);Ci[e]=new Xi(e,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(n){var e=n.replace(H1,z1);Ci[e]=new Xi(e,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(n){Ci[n]=new Xi(n,1,!1,n.toLowerCase(),null,!1,!1)});Ci.xlinkHref=new Xi("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(n){Ci[n]=new Xi(n,1,!1,n.toLowerCase(),null,!0,!0)});function V1(n,e,t,i){var r=Ci.hasOwnProperty(e)?Ci[e]:null;(r!==null?r.type!==0:i||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),LC=Object.prototype.hasOwnProperty,Rb=/^[: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]*$/,xB={},BB={};function Tb(n){return LC.call(BB,n)?!0:LC.call(xB,n)?!1:Rb.test(n)?BB[n]=!0:(xB[n]=!0,!1)}function Db(n,e,t,i){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:t!==null?!t.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function bb(n,e,t,i){if(e===null||typeof e>"u"||Db(n,e,t,i))return!0;if(i)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Ji(n,e,t,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=n,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var vi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){vi[n]=new Ji(n,0,!1,n,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var e=n[0];vi[e]=new Ji(e,1,!1,n[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(n){vi[n]=new Ji(n,2,!1,n.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){vi[n]=new Ji(n,2,!1,n,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(n){vi[n]=new Ji(n,3,!1,n.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(n){vi[n]=new Ji(n,3,!0,n,null,!1,!1)});["capture","download"].forEach(function(n){vi[n]=new Ji(n,4,!1,n,null,!1,!1)});["cols","rows","size","span"].forEach(function(n){vi[n]=new Ji(n,6,!1,n,null,!1,!1)});["rowSpan","start"].forEach(function(n){vi[n]=new Ji(n,5,!1,n.toLowerCase(),null,!1,!1)});var J1=/[\-:]([a-z])/g;function j1(n){return n[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(n){var e=n.replace(J1,j1);vi[e]=new Ji(e,1,!1,n,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var e=n.replace(J1,j1);vi[e]=new Ji(e,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(n){var e=n.replace(J1,j1);vi[e]=new Ji(e,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(n){vi[n]=new Ji(n,1,!1,n.toLowerCase(),null,!1,!1)});vi.xlinkHref=new Ji("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(n){vi[n]=new Ji(n,1,!1,n.toLowerCase(),null,!0,!0)});function K1(n,e,t,i){var r=vi.hasOwnProperty(e)?vi[e]:null;(r!==null?r.type!==0:i||!(2a||r[o]!==s[a]){var l=` -`+r[o].replace(" at new "," at ");return n.displayName&&l.includes("")&&(l=l.replace("",n.displayName)),l}while(1<=o&&0<=a);break}}}finally{U0=!1,Error.prepareStackTrace=t}return(n=n?n.displayName||n.name:"")?MA(n):""}function Eb(n){switch(n.tag){case 5:return MA(n.type);case 16:return MA("Lazy");case 13:return MA("Suspense");case 19:return MA("SuspenseList");case 0:case 2:case 15:return n=F0(n.type,!1),n;case 11:return n=F0(n.type.render,!1),n;case 1:return n=F0(n.type,!0),n;default:return""}}function DC(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case Wc:return"Fragment";case Vc:return"Portal";case QC:return"Profiler";case W1:return"StrictMode";case RC:return"Suspense";case TC:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case uM:return(n.displayName||"Context")+".Consumer";case cM:return(n._context.displayName||"Context")+".Provider";case Y1:var e=n.render;return n=n.displayName,n||(n=e.displayName||e.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case X1:return e=n.displayName||null,e!==null?e:DC(n.type)||"Memo";case Jo:e=n._payload,n=n._init;try{return DC(n(e))}catch{}}return null}function Cb(n){var e=n.type;switch(n.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=e.render,n=n.displayName||n.name||"",e.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return DC(e);case 8:return e===W1?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function ma(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function hM(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function yb(n){var e=hM(n)?"checked":"value",t=Object.getOwnPropertyDescriptor(n.constructor.prototype,e),i=""+n[e];if(!n.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,s=t.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(n,e,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function rf(n){n._valueTracker||(n._valueTracker=yb(n))}function dM(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=hM(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}function Kp(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function bC(n,e){var t=e.checked;return Dn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??n._wrapperState.initialChecked})}function gB(n,e){var t=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;t=ma(e.value!=null?e.value:t),n._wrapperState={initialChecked:i,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function fM(n,e){e=e.checked,e!=null&&V1(n,"checked",e,!1)}function PC(n,e){fM(n,e);var t=ma(e.value),i=e.type;if(t!=null)i==="number"?(t===0&&n.value===""||n.value!=t)&&(n.value=""+t):n.value!==""+t&&(n.value=""+t);else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}e.hasOwnProperty("value")?NC(n,e.type,t):e.hasOwnProperty("defaultValue")&&NC(n,e.type,ma(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(n.defaultChecked=!!e.defaultChecked)}function mB(n,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+n._wrapperState.initialValue,t||e===n.value||(n.value=e),n.defaultValue=e}t=n.name,t!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,t!==""&&(n.name=t)}function NC(n,e,t){(e!=="number"||Kp(n.ownerDocument)!==n)&&(t==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+t&&(n.defaultValue=""+t))}var QA=Array.isArray;function au(n,e,t,i){if(n=n.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=sf.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;e.firstChild;)n.appendChild(e.firstChild)}});function eh(n,e){if(e){var t=n.firstChild;if(t&&t===n.lastChild&&t.nodeType===3){t.nodeValue=e;return}}n.textContent=e}var UA={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},vb=["Webkit","ms","Moz","O"];Object.keys(UA).forEach(function(n){vb.forEach(function(e){e=e+n.charAt(0).toUpperCase()+n.substring(1),UA[e]=UA[n]})});function EM(n,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||UA.hasOwnProperty(n)&&UA[n]?(""+e).trim():e+"px"}function CM(n,e){n=n.style;for(var t in e)if(e.hasOwnProperty(t)){var i=t.indexOf("--")===0,r=EM(t,e[t],i);t==="float"&&(t="cssFloat"),i?n.setProperty(t,r):n[t]=r}}var Ib=Dn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function FC(n,e){if(e){if(Ib[n]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(ke(137,n));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(ke(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(ke(61))}if(e.style!=null&&typeof e.style!="object")throw Error(ke(62))}}function kC(n,e){if(n.indexOf("-")===-1)return typeof e.is=="string";switch(n){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!1;default:return!0}}var OC=null;function J1(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var GC=null,lu=null,cu=null;function yB(n){if(n=zh(n)){if(typeof GC!="function")throw Error(ke(280));var e=n.stateNode;e&&(e=Ug(e),GC(n.stateNode,n.type,e))}}function yM(n){lu?cu?cu.push(n):cu=[n]:lu=n}function vM(){if(lu){var n=lu,e=cu;if(cu=lu=null,yB(n),e)for(n=0;n>>=0,n===0?32:31-(bb(n)/Pb|0)|0}var of=64,af=4194304;function RA(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function eg(n,e){var t=n.pendingLanes;if(t===0)return 0;var i=0,r=n.suspendedLanes,s=n.pingedLanes,o=t&268435455;if(o!==0){var a=o&~r;a!==0?i=RA(a):(s&=o,s!==0&&(i=RA(s)))}else o=t&~r,o!==0?i=RA(o):s!==0&&(i=RA(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=t&16),e=n.entangledLanes,e!==0)for(n=n.entanglements,e&=i;0t;t++)e.push(n);return e}function Gh(n,e,t){n.pendingLanes|=e,e!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,e=31-ls(e),n[e]=t}function Fb(n,e){var t=n.pendingLanes&~e;n.pendingLanes=e,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=e,n.mutableReadLanes&=e,n.entangledLanes&=e,e=n.entanglements;var i=n.eventTimes;for(n=n.expirationTimes;0=kA),QB=" ",RB=!1;function GM(n,e){switch(n){case"keyup":return hP.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function HM(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Yc=!1;function fP(n,e){switch(n){case"compositionend":return HM(e);case"keypress":return e.which!==32?null:(RB=!0,QB);case"textInput":return n=e.data,n===QB&&RB?null:n;default:return null}}function pP(n,e){if(Yc)return n==="compositionend"||!nv&&GM(n,e)?(n=kM(),Bp=$1=ea=null,Yc=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=PB(t)}}function YM(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?YM(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function XM(){for(var n=window,e=Kp();e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=Kp(n.document)}return e}function iv(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}function BP(n){var e=XM(),t=n.focusedElem,i=n.selectionRange;if(e!==t&&t&&t.ownerDocument&&YM(t.ownerDocument.documentElement,t)){if(i!==null&&iv(t)){if(e=i.start,n=i.end,n===void 0&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if(n=(e=t.ownerDocument||document)&&e.defaultView||window,n.getSelection){n=n.getSelection();var r=t.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!n.extend&&s>i&&(r=i,i=s,s=r),r=NB(t,s);var o=NB(t,i);r&&o&&(n.rangeCount!==1||n.anchorNode!==r.node||n.anchorOffset!==r.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),n.removeAllRanges(),s>i?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}}for(e=[],n=t;n=n.parentNode;)n.nodeType===1&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,Xc=null,XC=null,GA=null,JC=!1;function LB(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;JC||Xc==null||Xc!==Kp(i)||(i=Xc,"selectionStart"in i&&iv(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),GA&&oh(GA,i)||(GA=i,i=ig(XC,"onSelect"),0Kc||(n.current=ey[Kc],ey[Kc]=null,Kc--)}function mn(n,e){Kc++,ey[Kc]=n.current,n.current=e}var Ea={},bi=Ia(Ea),rr=Ia(!1),Pl=Ea;function Eu(n,e){var t=n.type.contextTypes;if(!t)return Ea;var i=n.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in t)r[s]=e[s];return i&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=e,n.__reactInternalMemoizedMaskedChildContext=r),r}function sr(n){return n=n.childContextTypes,n!=null}function sg(){In(rr),In(bi)}function zB(n,e,t){if(bi.current!==Ea)throw Error(ke(168));mn(bi,e),mn(rr,t)}function n2(n,e,t){var i=n.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(ke(108,Cb(n)||"Unknown",r));return Dn({},t,i)}function og(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||Ea,Pl=bi.current,mn(bi,n),mn(rr,rr.current),!0}function VB(n,e,t){var i=n.stateNode;if(!i)throw Error(ke(169));t?(n=n2(n,e,Pl),i.__reactInternalMemoizedMergedChildContext=n,In(rr),In(bi),mn(bi,n)):In(rr),mn(rr,t)}var ao=null,Fg=!1,Z0=!1;function i2(n){ao===null?ao=[n]:ao.push(n)}function LP(n){Fg=!0,i2(n)}function xa(){if(!Z0&&ao!==null){Z0=!0;var n=0,e=un;try{var t=ao;for(un=1;n>=o,r-=o,uo=1<<32-ls(e)+r|t<U?(K=T,T=null):K=T.sibling;var M=f(p,T,I[U],B);if(M===null){T===null&&(T=K);break}n&&T&&M.alternate===null&&e(p,T),y=s(M,y,U),w===null?R=M:w.sibling=M,w=M,T=K}if(U===I.length)return t(p,T),_n&&hl(p,U),R;if(T===null){for(;UU?(K=T,T=null):K=T.sibling;var P=f(p,T,M.value,B);if(P===null){T===null&&(T=K);break}n&&T&&P.alternate===null&&e(p,T),y=s(P,y,U),w===null?R=P:w.sibling=P,w=P,T=K}if(M.done)return t(p,T),_n&&hl(p,U),R;if(T===null){for(;!M.done;U++,M=I.next())M=d(p,M.value,B),M!==null&&(y=s(M,y,U),w===null?R=M:w.sibling=M,w=M);return _n&&hl(p,U),R}for(T=i(p,T);!M.done;U++,M=I.next())M=g(T,p,U,M.value,B),M!==null&&(n&&M.alternate!==null&&T.delete(M.key===null?U:M.key),y=s(M,y,U),w===null?R=M:w.sibling=M,w=M);return n&&T.forEach(function(q){return e(p,q)}),_n&&hl(p,U),R}function C(p,y,I,B){if(typeof I=="object"&&I!==null&&I.type===Wc&&I.key===null&&(I=I.props.children),typeof I=="object"&&I!==null){switch(I.$$typeof){case nf:e:{for(var R=I.key,w=y;w!==null;){if(w.key===R){if(R=I.type,R===Wc){if(w.tag===7){t(p,w.sibling),y=r(w,I.props.children),y.return=p,p=y;break e}}else if(w.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Jo&&qB(R)===w.type){t(p,w.sibling),y=r(w,I.props),y.ref=cA(p,w,I),y.return=p,p=y;break e}t(p,w);break}else e(p,w);w=w.sibling}I.type===Wc?(y=Ml(I.props.children,p.mode,B,I.key),y.return=p,p=y):(B=Dp(I.type,I.key,I.props,null,p.mode,B),B.ref=cA(p,y,I),B.return=p,p=B)}return o(p);case Vc:e:{for(w=I.key;y!==null;){if(y.key===w)if(y.tag===4&&y.stateNode.containerInfo===I.containerInfo&&y.stateNode.implementation===I.implementation){t(p,y.sibling),y=r(y,I.children||[]),y.return=p,p=y;break e}else{t(p,y);break}else e(p,y);y=y.sibling}y=oE(I,p.mode,B),y.return=p,p=y}return o(p);case Jo:return w=I._init,C(p,y,w(I._payload),B)}if(QA(I))return E(p,y,I,B);if(rA(I))return v(p,y,I,B);ff(p,I)}return typeof I=="string"&&I!==""||typeof I=="number"?(I=""+I,y!==null&&y.tag===6?(t(p,y.sibling),y=r(y,I),y.return=p,p=y):(t(p,y),y=sE(I,p.mode,B),y.return=p,p=y),o(p)):t(p,y)}return C}var yu=A2(!0),h2=A2(!1),Vh={},Ps=Ia(Vh),uh=Ia(Vh),Ah=Ia(Vh);function Il(n){if(n===Vh)throw Error(ke(174));return n}function hv(n,e){switch(mn(Ah,e),mn(uh,n),mn(Ps,Vh),n=e.nodeType,n){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:UC(null,"");break;default:n=n===8?e.parentNode:e,e=n.namespaceURI||null,n=n.tagName,e=UC(e,n)}In(Ps),mn(Ps,e)}function vu(){In(Ps),In(uh),In(Ah)}function d2(n){Il(Ah.current);var e=Il(Ps.current),t=UC(e,n.type);e!==t&&(mn(uh,n),mn(Ps,t))}function dv(n){uh.current===n&&(In(Ps),In(uh))}var Qn=Ia(0);function hg(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var $0=[];function fv(){for(var n=0;n<$0.length;n++)$0[n]._workInProgressVersionPrimary=null;$0.length=0}var wp=Io.ReactCurrentDispatcher,eE=Io.ReactCurrentBatchConfig,Ll=0,Tn=null,ti=null,Ai=null,dg=!1,HA=!1,hh=0,FP=0;function Si(){throw Error(ke(321))}function pv(n,e){if(e===null)return!1;for(var t=0;tt?t:4,n(!0);var i=eE.transition;eE.transition={};try{n(!1),e()}finally{un=t,eE.transition=i}}function Q2(){return Yr().memoizedState}function OP(n,e,t){var i=ca(n);if(t={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null},R2(n))T2(e,t);else if(t=a2(n,e,t,i),t!==null){var r=zi();cs(t,n,i,r),D2(t,e,i)}}function GP(n,e,t){var i=ca(n),r={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null};if(R2(n))T2(e,r);else{var s=n.alternate;if(n.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,t);if(r.hasEagerState=!0,r.eagerState=a,As(a,o)){var l=e.interleaved;l===null?(r.next=r,uv(e)):(r.next=l.next,l.next=r),e.interleaved=r;return}}catch{}finally{}t=a2(n,e,r,i),t!==null&&(r=zi(),cs(t,n,i,r),D2(t,e,i))}}function R2(n){var e=n.alternate;return n===Tn||e!==null&&e===Tn}function T2(n,e){HA=dg=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function D2(n,e,t){if(t&4194240){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,K1(n,t)}}var fg={readContext:Wr,useCallback:Si,useContext:Si,useEffect:Si,useImperativeHandle:Si,useInsertionEffect:Si,useLayoutEffect:Si,useMemo:Si,useReducer:Si,useRef:Si,useState:Si,useDebugValue:Si,useDeferredValue:Si,useTransition:Si,useMutableSource:Si,useSyncExternalStore:Si,useId:Si,unstable_isNewReconciler:!1},HP={readContext:Wr,useCallback:function(n,e){return _s().memoizedState=[n,e===void 0?null:e],n},useContext:Wr,useEffect:$B,useImperativeHandle:function(n,e,t){return t=t!=null?t.concat([n]):null,Mp(4194308,4,B2.bind(null,e,n),t)},useLayoutEffect:function(n,e){return Mp(4194308,4,n,e)},useInsertionEffect:function(n,e){return Mp(4,2,n,e)},useMemo:function(n,e){var t=_s();return e=e===void 0?null:e,n=n(),t.memoizedState=[n,e],n},useReducer:function(n,e,t){var i=_s();return e=t!==void 0?t(e):e,i.memoizedState=i.baseState=e,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:e},i.queue=n,n=n.dispatch=OP.bind(null,Tn,n),[i.memoizedState,n]},useRef:function(n){var e=_s();return n={current:n},e.memoizedState=n},useState:ZB,useDebugValue:Cv,useDeferredValue:function(n){return _s().memoizedState=n},useTransition:function(){var n=ZB(!1),e=n[0];return n=kP.bind(null,n[1]),_s().memoizedState=n,[e,n]},useMutableSource:function(){},useSyncExternalStore:function(n,e,t){var i=Tn,r=_s();if(_n){if(t===void 0)throw Error(ke(407));t=t()}else{if(t=e(),hi===null)throw Error(ke(349));Ll&30||g2(i,e,t)}r.memoizedState=t;var s={value:t,getSnapshot:e};return r.queue=s,$B(E2.bind(null,i,s,n),[n]),i.flags|=2048,fh(9,m2.bind(null,i,s,t,e),void 0,null),t},useId:function(){var n=_s(),e=hi.identifierPrefix;if(_n){var t=Ao,i=uo;t=(i&~(1<<32-ls(i)-1)).toString(32)+t,e=":"+e+"R"+t,t=hh++,0")&&(l=l.replace("",n.displayName)),l}while(1<=o&&0<=a);break}}}finally{G0=!1,Error.prepareStackTrace=t}return(n=n?n.displayName||n.name:"")?RA(n):""}function Pb(n){switch(n.tag){case 5:return RA(n.type);case 16:return RA("Lazy");case 13:return RA("Suspense");case 19:return RA("SuspenseList");case 0:case 2:case 15:return n=H0(n.type,!1),n;case 11:return n=H0(n.type.render,!1),n;case 1:return n=H0(n.type,!0),n;default:return""}}function kC(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case Jc:return"Fragment";case Xc:return"Portal";case NC:return"Profiler";case q1:return"StrictMode";case UC:return"Suspense";case FC:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case SM:return(n.displayName||"Context")+".Consumer";case BM:return(n._context.displayName||"Context")+".Provider";case Z1:var e=n.render;return n=n.displayName,n||(n=e.displayName||e.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case $1:return e=n.displayName||null,e!==null?e:kC(n.type)||"Memo";case ca:e=n._payload,n=n._init;try{return kC(n(e))}catch{}}return null}function Lb(n){var e=n.type;switch(n.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=e.render,n=n.displayName||n.name||"",e.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return kC(e);case 8:return e===q1?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Ta(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function wM(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Nb(n){var e=wM(n)?"checked":"value",t=Object.getOwnPropertyDescriptor(n.constructor.prototype,e),i=""+n[e];if(!n.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,s=t.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(n,e,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function sf(n){n._valueTracker||(n._valueTracker=Nb(n))}function MM(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=wM(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}function eg(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function OC(n,e){var t=e.checked;return Pn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??n._wrapperState.initialChecked})}function _B(n,e){var t=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;t=Ta(e.value!=null?e.value:t),n._wrapperState={initialChecked:i,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function QM(n,e){e=e.checked,e!=null&&K1(n,"checked",e,!1)}function GC(n,e){QM(n,e);var t=Ta(e.value),i=e.type;if(t!=null)i==="number"?(t===0&&n.value===""||n.value!=t)&&(n.value=""+t):n.value!==""+t&&(n.value=""+t);else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}e.hasOwnProperty("value")?HC(n,e.type,t):e.hasOwnProperty("defaultValue")&&HC(n,e.type,Ta(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(n.defaultChecked=!!e.defaultChecked)}function wB(n,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+n._wrapperState.initialValue,t||e===n.value||(n.value=e),n.defaultValue=e}t=n.name,t!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,t!==""&&(n.name=t)}function HC(n,e,t){(e!=="number"||eg(n.ownerDocument)!==n)&&(t==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+t&&(n.defaultValue=""+t))}var TA=Array.isArray;function uu(n,e,t,i){if(n=n.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=of.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;e.firstChild;)n.appendChild(e.firstChild)}});function nh(n,e){if(e){var t=n.firstChild;if(t&&t===n.lastChild&&t.nodeType===3){t.nodeValue=e;return}}n.textContent=e}var kA={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},Ub=["Webkit","ms","Moz","O"];Object.keys(kA).forEach(function(n){Ub.forEach(function(e){e=e+n.charAt(0).toUpperCase()+n.substring(1),kA[e]=kA[n]})});function bM(n,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||kA.hasOwnProperty(n)&&kA[n]?(""+e).trim():e+"px"}function PM(n,e){n=n.style;for(var t in e)if(e.hasOwnProperty(t)){var i=t.indexOf("--")===0,r=bM(t,e[t],i);t==="float"&&(t="cssFloat"),i?n.setProperty(t,r):n[t]=r}}var Fb=Pn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function WC(n,e){if(e){if(Fb[n]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(ke(137,n));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(ke(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(ke(61))}if(e.style!=null&&typeof e.style!="object")throw Error(ke(62))}}function YC(n,e){if(n.indexOf("-")===-1)return typeof e.is=="string";switch(n){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!1;default:return!0}}var XC=null;function ev(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var JC=null,Au=null,hu=null;function RB(n){if(n=Wh(n)){if(typeof JC!="function")throw Error(ke(280));var e=n.stateNode;e&&(e=Gg(e),JC(n.stateNode,n.type,e))}}function LM(n){Au?hu?hu.push(n):hu=[n]:Au=n}function NM(){if(Au){var n=Au,e=hu;if(hu=Au=null,RB(n),e)for(n=0;n>>=0,n===0?32:31-(jb(n)/Kb|0)|0}var af=64,lf=4194304;function DA(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function rg(n,e){var t=n.pendingLanes;if(t===0)return 0;var i=0,r=n.suspendedLanes,s=n.pingedLanes,o=t&268435455;if(o!==0){var a=o&~r;a!==0?i=DA(a):(s&=o,s!==0&&(i=DA(s)))}else o=t&~r,o!==0?i=DA(o):s!==0&&(i=DA(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=t&16),e=n.entangledLanes,e!==0)for(n=n.entanglements,e&=i;0t;t++)e.push(n);return e}function zh(n,e,t){n.pendingLanes|=e,e!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,e=31-cs(e),n[e]=t}function eP(n,e){var t=n.pendingLanes&~e;n.pendingLanes=e,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=e,n.mutableReadLanes&=e,n.entangledLanes&=e,e=n.entanglements;var i=n.eventTimes;for(n=n.expirationTimes;0=GA),kB=" ",OB=!1;function n2(n,e){switch(n){case"keyup":return MP.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function i2(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var jc=!1;function RP(n,e){switch(n){case"compositionend":return i2(e);case"keypress":return e.which!==32?null:(OB=!0,kB);case"textInput":return n=e.data,n===kB&&OB?null:n;default:return null}}function TP(n,e){if(jc)return n==="compositionend"||!lv&&n2(n,e)?(n=e2(),Mp=sv=fa=null,jc=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=VB(t)}}function a2(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?a2(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function l2(){for(var n=window,e=eg();e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=eg(n.document)}return e}function cv(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}function OP(n){var e=l2(),t=n.focusedElem,i=n.selectionRange;if(e!==t&&t&&t.ownerDocument&&a2(t.ownerDocument.documentElement,t)){if(i!==null&&cv(t)){if(e=i.start,n=i.end,n===void 0&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if(n=(e=t.ownerDocument||document)&&e.defaultView||window,n.getSelection){n=n.getSelection();var r=t.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!n.extend&&s>i&&(r=i,i=s,s=r),r=WB(t,s);var o=WB(t,i);r&&o&&(n.rangeCount!==1||n.anchorNode!==r.node||n.anchorOffset!==r.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),n.removeAllRanges(),s>i?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}}for(e=[],n=t;n=n.parentNode;)n.nodeType===1&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,Kc=null,ey=null,zA=null,ty=!1;function YB(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;ty||Kc==null||Kc!==eg(i)||(i=Kc,"selectionStart"in i&&cv(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),zA&&lh(zA,i)||(zA=i,i=ag(ey,"onSelect"),0$c||(n.current=ay[$c],ay[$c]=null,$c--)}function mn(n,e){$c++,ay[$c]=n.current,n.current=e}var Da={},Pi=Na(Da),sr=Na(!1),zl=Da;function vu(n,e){var t=n.type.contextTypes;if(!t)return Da;var i=n.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in t)r[s]=e[s];return i&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=e,n.__reactInternalMemoizedMaskedChildContext=r),r}function or(n){return n=n.childContextTypes,n!=null}function cg(){Bn(sr),Bn(Pi)}function $B(n,e,t){if(Pi.current!==Da)throw Error(ke(168));mn(Pi,e),mn(sr,t)}function m2(n,e,t){var i=n.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(ke(108,Lb(n)||"Unknown",r));return Pn({},t,i)}function ug(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||Da,zl=Pi.current,mn(Pi,n),mn(sr,sr.current),!0}function eS(n,e,t){var i=n.stateNode;if(!i)throw Error(ke(169));t?(n=m2(n,e,zl),i.__reactInternalMemoizedMergedChildContext=n,Bn(sr),Bn(Pi),mn(Pi,n)):Bn(sr),mn(sr,t)}var co=null,Hg=!1,nE=!1;function E2(n){co===null?co=[n]:co.push(n)}function ZP(n){Hg=!0,E2(n)}function Ua(){if(!nE&&co!==null){nE=!0;var n=0,e=An;try{var t=co;for(An=1;n>=o,r-=o,fo=1<<32-cs(e)+r|t<U?(K=T,T=null):K=T.sibling;var w=f(p,T,I[U],B);if(w===null){T===null&&(T=K);break}n&&T&&w.alternate===null&&e(p,T),y=s(w,y,U),M===null?R=w:M.sibling=w,M=w,T=K}if(U===I.length)return t(p,T),wn&&vl(p,U),R;if(T===null){for(;UU?(K=T,T=null):K=T.sibling;var P=f(p,T,w.value,B);if(P===null){T===null&&(T=K);break}n&&T&&P.alternate===null&&e(p,T),y=s(P,y,U),M===null?R=P:M.sibling=P,M=P,T=K}if(w.done)return t(p,T),wn&&vl(p,U),R;if(T===null){for(;!w.done;U++,w=I.next())w=d(p,w.value,B),w!==null&&(y=s(w,y,U),M===null?R=w:M.sibling=w,M=w);return wn&&vl(p,U),R}for(T=i(p,T);!w.done;U++,w=I.next())w=g(T,p,U,w.value,B),w!==null&&(n&&w.alternate!==null&&T.delete(w.key===null?U:w.key),y=s(w,y,U),M===null?R=w:M.sibling=w,M=w);return n&&T.forEach(function(q){return e(p,q)}),wn&&vl(p,U),R}function C(p,y,I,B){if(typeof I=="object"&&I!==null&&I.type===Jc&&I.key===null&&(I=I.props.children),typeof I=="object"&&I!==null){switch(I.$$typeof){case rf:e:{for(var R=I.key,M=y;M!==null;){if(M.key===R){if(R=I.type,R===Jc){if(M.tag===7){t(p,M.sibling),y=r(M,I.props.children),y.return=p,p=y;break e}}else if(M.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===ca&&aS(R)===M.type){t(p,M.sibling),y=r(M,I.props),y.ref=hA(p,M,I),y.return=p,p=y;break e}t(p,M);break}else e(p,M);M=M.sibling}I.type===Jc?(y=Ul(I.props.children,p.mode,B,I.key),y.return=p,p=y):(B=Np(I.type,I.key,I.props,null,p.mode,B),B.ref=hA(p,y,I),B.return=p,p=B)}return o(p);case Xc:e:{for(M=I.key;y!==null;){if(y.key===M)if(y.tag===4&&y.stateNode.containerInfo===I.containerInfo&&y.stateNode.implementation===I.implementation){t(p,y.sibling),y=r(y,I.children||[]),y.return=p,p=y;break e}else{t(p,y);break}else e(p,y);y=y.sibling}y=uE(I,p.mode,B),y.return=p,p=y}return o(p);case ca:return M=I._init,C(p,y,M(I._payload),B)}if(TA(I))return E(p,y,I,B);if(aA(I))return v(p,y,I,B);pf(p,I)}return typeof I=="string"&&I!==""||typeof I=="number"?(I=""+I,y!==null&&y.tag===6?(t(p,y.sibling),y=r(y,I),y.return=p,p=y):(t(p,y),y=cE(I,p.mode,B),y.return=p,p=y),o(p)):t(p,y)}return C}var xu=_2(!0),w2=_2(!1),Yh={},Ns=Na(Yh),hh=Na(Yh),dh=Na(Yh);function Tl(n){if(n===Yh)throw Error(ke(174));return n}function Ev(n,e){switch(mn(dh,e),mn(hh,n),mn(Ns,Yh),n=e.nodeType,n){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:VC(null,"");break;default:n=n===8?e.parentNode:e,e=n.namespaceURI||null,n=n.tagName,e=VC(e,n)}Bn(Ns),mn(Ns,e)}function Bu(){Bn(Ns),Bn(hh),Bn(dh)}function M2(n){Tl(dh.current);var e=Tl(Ns.current),t=VC(e,n.type);e!==t&&(mn(hh,n),mn(Ns,t))}function Cv(n){hh.current===n&&(Bn(Ns),Bn(hh))}var Rn=Na(0);function gg(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var iE=[];function yv(){for(var n=0;nt?t:4,n(!0);var i=rE.transition;rE.transition={};try{n(!1),e()}finally{An=t,rE.transition=i}}function V2(){return Yr().memoizedState}function nL(n,e,t){var i=xa(n);if(t={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null},W2(n))Y2(e,t);else if(t=I2(n,e,t,i),t!==null){var r=Wi();us(t,n,i,r),X2(t,e,i)}}function iL(n,e,t){var i=xa(n),r={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null};if(W2(n))Y2(e,r);else{var s=n.alternate;if(n.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,t);if(r.hasEagerState=!0,r.eagerState=a,ds(a,o)){var l=e.interleaved;l===null?(r.next=r,gv(e)):(r.next=l.next,l.next=r),e.interleaved=r;return}}catch{}finally{}t=I2(n,e,r,i),t!==null&&(r=Wi(),us(t,n,i,r),X2(t,e,i))}}function W2(n){var e=n.alternate;return n===Dn||e!==null&&e===Dn}function Y2(n,e){VA=mg=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function X2(n,e,t){if(t&4194240){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,nv(n,t)}}var Eg={readContext:Wr,useCallback:wi,useContext:wi,useEffect:wi,useImperativeHandle:wi,useInsertionEffect:wi,useLayoutEffect:wi,useMemo:wi,useReducer:wi,useRef:wi,useState:wi,useDebugValue:wi,useDeferredValue:wi,useTransition:wi,useMutableSource:wi,useSyncExternalStore:wi,useId:wi,unstable_isNewReconciler:!1},rL={readContext:Wr,useCallback:function(n,e){return Ms().memoizedState=[n,e===void 0?null:e],n},useContext:Wr,useEffect:cS,useImperativeHandle:function(n,e,t){return t=t!=null?t.concat([n]):null,Dp(4194308,4,k2.bind(null,e,n),t)},useLayoutEffect:function(n,e){return Dp(4194308,4,n,e)},useInsertionEffect:function(n,e){return Dp(4,2,n,e)},useMemo:function(n,e){var t=Ms();return e=e===void 0?null:e,n=n(),t.memoizedState=[n,e],n},useReducer:function(n,e,t){var i=Ms();return e=t!==void 0?t(e):e,i.memoizedState=i.baseState=e,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:e},i.queue=n,n=n.dispatch=nL.bind(null,Dn,n),[i.memoizedState,n]},useRef:function(n){var e=Ms();return n={current:n},e.memoizedState=n},useState:lS,useDebugValue:Sv,useDeferredValue:function(n){return Ms().memoizedState=n},useTransition:function(){var n=lS(!1),e=n[0];return n=tL.bind(null,n[1]),Ms().memoizedState=n,[e,n]},useMutableSource:function(){},useSyncExternalStore:function(n,e,t){var i=Dn,r=Ms();if(wn){if(t===void 0)throw Error(ke(407));t=t()}else{if(t=e(),hi===null)throw Error(ke(349));Wl&30||T2(i,e,t)}r.memoizedState=t;var s={value:t,getSnapshot:e};return r.queue=s,cS(b2.bind(null,i,s,n),[n]),i.flags|=2048,gh(9,D2.bind(null,i,s,t,e),void 0,null),t},useId:function(){var n=Ms(),e=hi.identifierPrefix;if(wn){var t=po,i=fo;t=(i&~(1<<32-cs(i)-1)).toString(32)+t,e=":"+e+"R"+t,t=fh++,0<\/script>",n=n.removeChild(n.firstChild)):typeof i.is=="string"?n=o.createElement(t,{is:i.is}):(n=o.createElement(t),t==="select"&&(o=n,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):n=o.createElementNS(n,t),n[Ms]=e,n[ch]=i,G2(n,e,!1,!1),e.stateNode=n;e:{switch(o=kC(t,i),t){case"dialog":yn("cancel",n),yn("close",n),r=i;break;case"iframe":case"object":case"embed":yn("load",n),r=i;break;case"video":case"audio":for(r=0;rxu&&(e.flags|=128,i=!0,uA(s,!1),e.lanes=4194304)}else{if(!i)if(n=hg(o),n!==null){if(e.flags|=128,i=!0,t=n.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),uA(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!_n)return _i(e),null}else 2*zn()-s.renderingStartTime>xu&&t!==1073741824&&(e.flags|=128,i=!0,uA(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(t=s.last,t!==null?t.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=zn(),e.sibling=null,t=Qn.current,mn(Qn,i?t&1|2:t&1),e):(_i(e),null);case 22:case 23:return Sv(),i=e.memoizedState!==null,n!==null&&n.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?Er&1073741824&&(_i(e),e.subtreeFlags&6&&(e.flags|=8192)):_i(e),null;case 24:return null;case 25:return null}throw Error(ke(156,e.tag))}function KP(n,e){switch(sv(e),e.tag){case 1:return sr(e.type)&&sg(),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return vu(),In(rr),In(bi),fv(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 5:return dv(e),null;case 13:if(In(Qn),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(ke(340));Cu()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return In(Qn),null;case 4:return vu(),null;case 10:return cv(e.type._context),null;case 22:case 23:return Sv(),null;case 24:return null;default:return null}}var gf=!1,Ri=!1,qP=typeof WeakSet=="function"?WeakSet:Set,rt=null;function eu(n,e){var t=n.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(i){Un(n,e,i)}else t.current=null}function hy(n,e,t){try{t()}catch(i){Un(n,e,i)}}var lS=!1;function ZP(n,e){if(jC=tg,n=XM(),iv(n)){if("selectionStart"in n)var t={start:n.selectionStart,end:n.selectionEnd};else e:{t=(t=n.ownerDocument)&&t.defaultView||window;var i=t.getSelection&&t.getSelection();if(i&&i.rangeCount!==0){t=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{t.nodeType,s.nodeType}catch{t=null;break e}var o=0,a=-1,l=-1,A=0,h=0,d=n,f=null;t:for(;;){for(var g;d!==t||r!==0&&d.nodeType!==3||(a=o+r),d!==s||i!==0&&d.nodeType!==3||(l=o+i),d.nodeType===3&&(o+=d.nodeValue.length),(g=d.firstChild)!==null;)f=d,d=g;for(;;){if(d===n)break t;if(f===t&&++A===r&&(a=o),f===s&&++h===i&&(l=o),(g=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=g}t=a===-1||l===-1?null:{start:a,end:l}}else t=null}t=t||{start:0,end:0}}else t=null;for(KC={focusedElem:n,selectionRange:t},tg=!1,rt=e;rt!==null;)if(e=rt,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,rt=n;else for(;rt!==null;){e=rt;try{var E=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var v=E.memoizedProps,C=E.memoizedState,p=e.stateNode,y=p.getSnapshotBeforeUpdate(e.elementType===e.type?v:ns(e.type,v),C);p.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var I=e.stateNode.containerInfo;I.nodeType===1?I.textContent="":I.nodeType===9&&I.documentElement&&I.removeChild(I.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ke(163))}}catch(B){Un(e,e.return,B)}if(n=e.sibling,n!==null){n.return=e.return,rt=n;break}rt=e.return}return E=lS,lS=!1,E}function zA(n,e,t){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&n)===n){var s=r.destroy;r.destroy=void 0,s!==void 0&&hy(e,t,s)}r=r.next}while(r!==i)}}function Gg(n,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&n)===n){var i=t.create;t.destroy=i()}t=t.next}while(t!==e)}}function dy(n){var e=n.ref;if(e!==null){var t=n.stateNode;switch(n.tag){case 5:n=t;break;default:n=t}typeof e=="function"?e(n):e.current=n}}function V2(n){var e=n.alternate;e!==null&&(n.alternate=null,V2(e)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(e=n.stateNode,e!==null&&(delete e[Ms],delete e[ch],delete e[$C],delete e[PP],delete e[NP])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function W2(n){return n.tag===5||n.tag===3||n.tag===4}function cS(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||W2(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function fy(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(n,e):t.insertBefore(n,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(n,t)):(e=t,e.appendChild(n)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=rg));else if(i!==4&&(n=n.child,n!==null))for(fy(n,e,t),n=n.sibling;n!==null;)fy(n,e,t),n=n.sibling}function py(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.insertBefore(n,e):t.appendChild(n);else if(i!==4&&(n=n.child,n!==null))for(py(n,e,t),n=n.sibling;n!==null;)py(n,e,t),n=n.sibling}var mi=null,rs=!1;function Uo(n,e,t){for(t=t.child;t!==null;)Y2(n,e,t),t=t.sibling}function Y2(n,e,t){if(bs&&typeof bs.onCommitFiberUnmount=="function")try{bs.onCommitFiberUnmount(bg,t)}catch{}switch(t.tag){case 5:Ri||eu(t,e);case 6:var i=mi,r=rs;mi=null,Uo(n,e,t),mi=i,rs=r,mi!==null&&(rs?(n=mi,t=t.stateNode,n.nodeType===8?n.parentNode.removeChild(t):n.removeChild(t)):mi.removeChild(t.stateNode));break;case 18:mi!==null&&(rs?(n=mi,t=t.stateNode,n.nodeType===8?q0(n.parentNode,t):n.nodeType===1&&q0(n,t),rh(n)):q0(mi,t.stateNode));break;case 4:i=mi,r=rs,mi=t.stateNode.containerInfo,rs=!0,Uo(n,e,t),mi=i,rs=r;break;case 0:case 11:case 14:case 15:if(!Ri&&(i=t.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&hy(t,e,o),r=r.next}while(r!==i)}Uo(n,e,t);break;case 1:if(!Ri&&(eu(t,e),i=t.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=t.memoizedProps,i.state=t.memoizedState,i.componentWillUnmount()}catch(a){Un(t,e,a)}Uo(n,e,t);break;case 21:Uo(n,e,t);break;case 22:t.mode&1?(Ri=(i=Ri)||t.memoizedState!==null,Uo(n,e,t),Ri=i):Uo(n,e,t);break;default:Uo(n,e,t)}}function uS(n){var e=n.updateQueue;if(e!==null){n.updateQueue=null;var t=n.stateNode;t===null&&(t=n.stateNode=new qP),e.forEach(function(i){var r=aN.bind(null,n,i);t.has(i)||(t.add(i),i.then(r,r))})}}function Zr(n,e){var t=e.deletions;if(t!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=zn()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*eN(i/1960))-i,10n?16:n,ta===null)var i=!1;else{if(n=ta,ta=null,mg=0,Kt&6)throw Error(ke(331));var r=Kt;for(Kt|=4,rt=n.current;rt!==null;){var s=rt,o=s.child;if(rt.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lzn()-xv?wl(n,0):Iv|=t),or(n,e)}function eQ(n,e){e===0&&(n.mode&1?(e=af,af<<=1,!(af&130023424)&&(af=4194304)):e=1);var t=zi();n=Co(n,e),n!==null&&(Gh(n,e,t),or(n,t))}function oN(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),eQ(n,t)}function aN(n,e){var t=0;switch(n.tag){case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;default:throw Error(ke(314))}i!==null&&i.delete(e),eQ(n,t)}var tQ;tQ=function(n,e,t){if(n!==null)if(n.memoizedProps!==e.pendingProps||rr.current)ir=!0;else{if(!(n.lanes&t)&&!(e.flags&128))return ir=!1,JP(n,e,t);ir=!!(n.flags&131072)}else ir=!1,_n&&e.flags&1048576&&r2(e,lg,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;Qp(n,e),n=e.pendingProps;var r=Eu(e,bi.current);Au(e,t),r=gv(null,e,i,n,r,t);var s=mv();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,sr(i)?(s=!0,og(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,Av(e),r.updater=kg,e.stateNode=r,r._reactInternals=e,sy(e,i,n,t),e=ly(null,e,i,!0,s,t)):(e.tag=0,_n&&s&&rv(e),Oi(null,e,r,t),e=e.child),e;case 16:i=e.elementType;e:{switch(Qp(n,e),n=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=cN(i),n=ns(i,n),r){case 0:e=ay(null,e,i,n,t);break e;case 1:e=sS(null,e,i,n,t);break e;case 11:e=iS(null,e,i,n,t);break e;case 14:e=rS(null,e,i,ns(i.type,n),t);break e}throw Error(ke(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:ns(i,r),ay(n,e,i,r,t);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:ns(i,r),sS(n,e,i,r,t);case 3:e:{if(F2(e),n===null)throw Error(ke(387));i=e.pendingProps,s=e.memoizedState,r=s.element,l2(n,e),Ag(e,i,null,t);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=Iu(Error(ke(423)),e),e=oS(n,e,i,t,r);break e}else if(i!==r){r=Iu(Error(ke(424)),e),e=oS(n,e,i,t,r);break e}else for(vr=oa(e.stateNode.containerInfo.firstChild),xr=e,_n=!0,ss=null,t=h2(e,null,i,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(Cu(),i===r){e=yo(n,e,t);break e}Oi(n,e,i,t)}e=e.child}return e;case 5:return d2(e),n===null&&ny(e),i=e.type,r=e.pendingProps,s=n!==null?n.memoizedProps:null,o=r.children,qC(i,r)?o=null:s!==null&&qC(i,s)&&(e.flags|=32),U2(n,e),Oi(n,e,o,t),e.child;case 6:return n===null&&ny(e),null;case 13:return k2(n,e,t);case 4:return hv(e,e.stateNode.containerInfo),i=e.pendingProps,n===null?e.child=yu(e,null,i,t):Oi(n,e,i,t),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:ns(i,r),iS(n,e,i,r,t);case 7:return Oi(n,e,e.pendingProps,t),e.child;case 8:return Oi(n,e,e.pendingProps.children,t),e.child;case 12:return Oi(n,e,e.pendingProps.children,t),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,mn(cg,i._currentValue),i._currentValue=o,s!==null)if(As(s.value,o)){if(s.children===r.children&&!rr.current){e=yo(n,e,t);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===i){if(s.tag===1){l=po(-1,t&-t),l.tag=2;var A=s.updateQueue;if(A!==null){A=A.shared;var h=A.pending;h===null?l.next=l:(l.next=h.next,h.next=l),A.pending=l}}s.lanes|=t,l=s.alternate,l!==null&&(l.lanes|=t),iy(s.return,t,e),a.lanes|=t;break}l=l.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(ke(341));o.lanes|=t,a=o.alternate,a!==null&&(a.lanes|=t),iy(o,t,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Oi(n,e,r.children,t),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,Au(e,t),r=Wr(r),i=i(r),e.flags|=1,Oi(n,e,i,t),e.child;case 14:return i=e.type,r=ns(i,e.pendingProps),r=ns(i.type,r),rS(n,e,i,r,t);case 15:return N2(n,e,e.type,e.pendingProps,t);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:ns(i,r),Qp(n,e),e.tag=1,sr(i)?(n=!0,og(e)):n=!1,Au(e,t),u2(e,i,r),sy(e,i,r,t),ly(null,e,i,!0,n,t);case 19:return O2(n,e,t);case 22:return L2(n,e,t)}throw Error(ke(156,e.tag))};function nQ(n,e){return MM(n,e)}function lN(n,e,t,i){this.tag=n,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Gr(n,e,t,i){return new lN(n,e,t,i)}function wv(n){return n=n.prototype,!(!n||!n.isReactComponent)}function cN(n){if(typeof n=="function")return wv(n)?1:0;if(n!=null){if(n=n.$$typeof,n===Y1)return 11;if(n===X1)return 14}return 2}function ua(n,e){var t=n.alternate;return t===null?(t=Gr(n.tag,e,n.key,n.mode),t.elementType=n.elementType,t.type=n.type,t.stateNode=n.stateNode,t.alternate=n,n.alternate=t):(t.pendingProps=e,t.type=n.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=n.flags&14680064,t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=n.sibling,t.index=n.index,t.ref=n.ref,t}function Dp(n,e,t,i,r,s){var o=2;if(i=n,typeof n=="function")wv(n)&&(o=1);else if(typeof n=="string")o=5;else e:switch(n){case Wc:return Ml(t.children,r,s,e);case W1:o=8,r|=8;break;case QC:return n=Gr(12,t,e,r|2),n.elementType=QC,n.lanes=s,n;case RC:return n=Gr(13,t,e,r),n.elementType=RC,n.lanes=s,n;case TC:return n=Gr(19,t,e,r),n.elementType=TC,n.lanes=s,n;case AM:return zg(t,r,s,e);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case cM:o=10;break e;case uM:o=9;break e;case Y1:o=11;break e;case X1:o=14;break e;case Jo:o=16,i=null;break e}throw Error(ke(130,n==null?n:typeof n,""))}return e=Gr(o,t,e,r),e.elementType=n,e.type=i,e.lanes=s,e}function Ml(n,e,t,i){return n=Gr(7,n,i,e),n.lanes=t,n}function zg(n,e,t,i){return n=Gr(22,n,i,e),n.elementType=AM,n.lanes=t,n.stateNode={isHidden:!1},n}function sE(n,e,t){return n=Gr(6,n,null,e),n.lanes=t,n}function oE(n,e,t){return e=Gr(4,n.children!==null?n.children:[],n.key,e),e.lanes=t,e.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},e}function uN(n,e,t,i,r){this.tag=e,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=O0(0),this.expirationTimes=O0(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=O0(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function Mv(n,e,t,i,r,s,o,a,l){return n=new uN(n,e,t,a,l),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Gr(3,null,null,e),n.current=s,s.stateNode=n,s.memoizedState={element:i,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},Av(s),n}function AN(n,e,t){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(oQ)}catch(n){console.error(n)}}oQ(),rM.exports=wr;var gN=rM.exports,aQ,ES=gN;aQ=ES.createRoot,ES.hydrateRoot;/** +`+s.stack}return{value:n,source:e,stack:r,digest:null}}function aE(n,e,t){return{value:n,source:null,stack:t??null,digest:e??null}}function dy(n,e){try{console.error(e.value)}catch(t){setTimeout(function(){throw t})}}var aL=typeof WeakMap=="function"?WeakMap:Map;function J2(n,e,t){t=Eo(-1,t),t.tag=3,t.payload={element:null};var i=e.value;return t.callback=function(){yg||(yg=!0,xy=i),dy(n,e)},t}function j2(n,e,t){t=Eo(-1,t),t.tag=3;var i=n.type.getDerivedStateFromError;if(typeof i=="function"){var r=e.value;t.payload=function(){return i(r)},t.callback=function(){dy(n,e)}}var s=n.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(t.callback=function(){dy(n,e),typeof i!="function"&&(Ia===null?Ia=new Set([this]):Ia.add(this));var o=e.stack;this.componentDidCatch(e.value,{componentStack:o!==null?o:""})}),t}function uS(n,e,t){var i=n.pingCache;if(i===null){i=n.pingCache=new aL;var r=new Set;i.set(e,r)}else r=i.get(e),r===void 0&&(r=new Set,i.set(e,r));r.has(t)||(r.add(t),n=vL.bind(null,n,e,t),e.then(n,n))}function AS(n){do{var e;if((e=n.tag===13)&&(e=n.memoizedState,e=e!==null?e.dehydrated!==null:!0),e)return n;n=n.return}while(n!==null);return null}function hS(n,e,t,i,r){return n.mode&1?(n.flags|=65536,n.lanes=r,n):(n===e?n.flags|=65536:(n.flags|=128,t.flags|=131072,t.flags&=-52805,t.tag===1&&(t.alternate===null?t.tag=17:(e=Eo(-1,1),e.tag=2,va(t,e,1))),t.lanes|=1),n)}var lL=So.ReactCurrentOwner,rr=!1;function Hi(n,e,t,i){e.child=n===null?w2(e,null,t,i):xu(e,n.child,t,i)}function dS(n,e,t,i,r){t=t.render;var s=e.ref;return fu(e,r),i=Iv(n,e,t,i,s,r),t=xv(),n!==null&&!rr?(e.updateQueue=n.updateQueue,e.flags&=-2053,n.lanes&=~r,xo(n,e,r)):(wn&&t&&uv(e),e.flags|=1,Hi(n,e,i,r),e.child)}function fS(n,e,t,i,r){if(n===null){var s=t.type;return typeof s=="function"&&!bv(s)&&s.defaultProps===void 0&&t.compare===null&&t.defaultProps===void 0?(e.tag=15,e.type=s,K2(n,e,s,i,r)):(n=Np(t.type,null,i,e,e.mode,r),n.ref=e.ref,n.return=e,e.child=n)}if(s=n.child,!(n.lanes&r)){var o=s.memoizedProps;if(t=t.compare,t=t!==null?t:lh,t(o,i)&&n.ref===e.ref)return xo(n,e,r)}return e.flags|=1,n=Ba(s,i),n.ref=e.ref,n.return=e,e.child=n}function K2(n,e,t,i,r){if(n!==null){var s=n.memoizedProps;if(lh(s,i)&&n.ref===e.ref)if(rr=!1,e.pendingProps=i=s,(n.lanes&r)!==0)n.flags&131072&&(rr=!0);else return e.lanes=n.lanes,xo(n,e,r)}return fy(n,e,t,i,r)}function q2(n,e,t){var i=e.pendingProps,r=i.children,s=n!==null?n.memoizedState:null;if(i.mode==="hidden")if(!(e.mode&1))e.memoizedState={baseLanes:0,cachePool:null,transitions:null},mn(ru,Cr),Cr|=t;else{if(!(t&1073741824))return n=s!==null?s.baseLanes|t:t,e.lanes=e.childLanes=1073741824,e.memoizedState={baseLanes:n,cachePool:null,transitions:null},e.updateQueue=null,mn(ru,Cr),Cr|=n,null;e.memoizedState={baseLanes:0,cachePool:null,transitions:null},i=s!==null?s.baseLanes:t,mn(ru,Cr),Cr|=i}else s!==null?(i=s.baseLanes|t,e.memoizedState=null):i=t,mn(ru,Cr),Cr|=i;return Hi(n,e,r,t),e.child}function Z2(n,e){var t=e.ref;(n===null&&t!==null||n!==null&&n.ref!==t)&&(e.flags|=512,e.flags|=2097152)}function fy(n,e,t,i,r){var s=or(t)?zl:Pi.current;return s=vu(e,s),fu(e,r),t=Iv(n,e,t,i,s,r),i=xv(),n!==null&&!rr?(e.updateQueue=n.updateQueue,e.flags&=-2053,n.lanes&=~r,xo(n,e,r)):(wn&&i&&uv(e),e.flags|=1,Hi(n,e,t,r),e.child)}function pS(n,e,t,i,r){if(or(t)){var s=!0;ug(e)}else s=!1;if(fu(e,r),e.stateNode===null)bp(n,e),S2(e,t,i),hy(e,t,i,r),i=!0;else if(n===null){var o=e.stateNode,a=e.memoizedProps;o.props=a;var l=o.context,A=t.contextType;typeof A=="object"&&A!==null?A=Wr(A):(A=or(t)?zl:Pi.current,A=vu(e,A));var h=t.getDerivedStateFromProps,d=typeof h=="function"||typeof o.getSnapshotBeforeUpdate=="function";d||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==i||l!==A)&&oS(e,o,i,A),ua=!1;var f=e.memoizedState;o.state=f,pg(e,i,o,r),l=e.memoizedState,a!==i||f!==l||sr.current||ua?(typeof h=="function"&&(Ay(e,t,h,i),l=e.memoizedState),(a=ua||sS(e,t,a,i,f,l,A))?(d||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(e.flags|=4194308)):(typeof o.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=i,e.memoizedState=l),o.props=i,o.state=l,o.context=A,i=a):(typeof o.componentDidMount=="function"&&(e.flags|=4194308),i=!1)}else{o=e.stateNode,x2(n,e),a=e.memoizedProps,A=e.type===e.elementType?a:is(e.type,a),o.props=A,d=e.pendingProps,f=o.context,l=t.contextType,typeof l=="object"&&l!==null?l=Wr(l):(l=or(t)?zl:Pi.current,l=vu(e,l));var g=t.getDerivedStateFromProps;(h=typeof g=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==d||f!==l)&&oS(e,o,i,l),ua=!1,f=e.memoizedState,o.state=f,pg(e,i,o,r);var E=e.memoizedState;a!==d||f!==E||sr.current||ua?(typeof g=="function"&&(Ay(e,t,g,i),E=e.memoizedState),(A=ua||sS(e,t,A,i,f,E,l)||!1)?(h||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(i,E,l),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(i,E,l)),typeof o.componentDidUpdate=="function"&&(e.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof o.componentDidUpdate!="function"||a===n.memoizedProps&&f===n.memoizedState||(e.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===n.memoizedProps&&f===n.memoizedState||(e.flags|=1024),e.memoizedProps=i,e.memoizedState=E),o.props=i,o.state=E,o.context=l,i=A):(typeof o.componentDidUpdate!="function"||a===n.memoizedProps&&f===n.memoizedState||(e.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===n.memoizedProps&&f===n.memoizedState||(e.flags|=1024),i=!1)}return py(n,e,t,i,s,r)}function py(n,e,t,i,r,s){Z2(n,e);var o=(e.flags&128)!==0;if(!i&&!o)return r&&eS(e,t,!1),xo(n,e,s);i=e.stateNode,lL.current=e;var a=o&&typeof t.getDerivedStateFromError!="function"?null:i.render();return e.flags|=1,n!==null&&o?(e.child=xu(e,n.child,null,s),e.child=xu(e,null,a,s)):Hi(n,e,a,s),e.memoizedState=i.state,r&&eS(e,t,!0),e.child}function $2(n){var e=n.stateNode;e.pendingContext?$B(n,e.pendingContext,e.pendingContext!==e.context):e.context&&$B(n,e.context,!1),Ev(n,e.containerInfo)}function gS(n,e,t,i,r){return Iu(),hv(r),e.flags|=256,Hi(n,e,t,i),e.child}var gy={dehydrated:null,treeContext:null,retryLane:0};function my(n){return{baseLanes:n,cachePool:null,transitions:null}}function eQ(n,e,t){var i=e.pendingProps,r=Rn.current,s=!1,o=(e.flags&128)!==0,a;if((a=o)||(a=n!==null&&n.memoizedState===null?!1:(r&2)!==0),a?(s=!0,e.flags&=-129):(n===null||n.memoizedState!==null)&&(r|=1),mn(Rn,r&1),n===null)return cy(e),n=e.memoizedState,n!==null&&(n=n.dehydrated,n!==null)?(e.mode&1?n.data==="$!"?e.lanes=8:e.lanes=1073741824:e.lanes=1,null):(o=i.children,n=i.fallback,s?(i=e.mode,s=e.child,o={mode:"hidden",children:o},!(i&1)&&s!==null?(s.childLanes=0,s.pendingProps=o):s=Xg(o,i,0,null),n=Ul(n,i,t,null),s.return=e,n.return=e,s.sibling=n,e.child=s,e.child.memoizedState=my(t),e.memoizedState=gy,n):_v(e,o));if(r=n.memoizedState,r!==null&&(a=r.dehydrated,a!==null))return cL(n,e,o,i,a,r,t);if(s){s=i.fallback,o=e.mode,r=n.child,a=r.sibling;var l={mode:"hidden",children:i.children};return!(o&1)&&e.child!==r?(i=e.child,i.childLanes=0,i.pendingProps=l,e.deletions=null):(i=Ba(r,l),i.subtreeFlags=r.subtreeFlags&14680064),a!==null?s=Ba(a,s):(s=Ul(s,o,t,null),s.flags|=2),s.return=e,i.return=e,i.sibling=s,e.child=i,i=s,s=e.child,o=n.child.memoizedState,o=o===null?my(t):{baseLanes:o.baseLanes|t,cachePool:null,transitions:o.transitions},s.memoizedState=o,s.childLanes=n.childLanes&~t,e.memoizedState=gy,i}return s=n.child,n=s.sibling,i=Ba(s,{mode:"visible",children:i.children}),!(e.mode&1)&&(i.lanes=t),i.return=e,i.sibling=null,n!==null&&(t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)),e.child=i,e.memoizedState=null,i}function _v(n,e){return e=Xg({mode:"visible",children:e},n.mode,0,null),e.return=n,n.child=e}function gf(n,e,t,i){return i!==null&&hv(i),xu(e,n.child,null,t),n=_v(e,e.pendingProps.children),n.flags|=2,e.memoizedState=null,n}function cL(n,e,t,i,r,s,o){if(t)return e.flags&256?(e.flags&=-257,i=aE(Error(ke(422))),gf(n,e,o,i)):e.memoizedState!==null?(e.child=n.child,e.flags|=128,null):(s=i.fallback,r=e.mode,i=Xg({mode:"visible",children:i.children},r,0,null),s=Ul(s,r,o,null),s.flags|=2,i.return=e,s.return=e,i.sibling=s,e.child=i,e.mode&1&&xu(e,n.child,null,o),e.child.memoizedState=my(o),e.memoizedState=gy,s);if(!(e.mode&1))return gf(n,e,o,null);if(r.data==="$!"){if(i=r.nextSibling&&r.nextSibling.dataset,i)var a=i.dgst;return i=a,s=Error(ke(419)),i=aE(s,i,void 0),gf(n,e,o,i)}if(a=(o&n.childLanes)!==0,rr||a){if(i=hi,i!==null){switch(o&-o){case 4:r=2;break;case 16:r=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:r=32;break;case 536870912:r=268435456;break;default:r=0}r=r&(i.suspendedLanes|o)?0:r,r!==0&&r!==s.retryLane&&(s.retryLane=r,Io(n,r),us(i,n,r,-1))}return Dv(),i=aE(Error(ke(421))),gf(n,e,o,i)}return r.data==="$?"?(e.flags|=128,e.child=n.child,e=IL.bind(null,n),r._reactRetry=e,null):(n=s.treeContext,Ir=ya(r.nextSibling),Br=e,wn=!0,os=null,n!==null&&(Fr[kr++]=fo,Fr[kr++]=po,Fr[kr++]=Vl,fo=n.id,po=n.overflow,Vl=e),e=_v(e,i.children),e.flags|=4096,e)}function mS(n,e,t){n.lanes|=e;var i=n.alternate;i!==null&&(i.lanes|=e),uy(n.return,e,t)}function lE(n,e,t,i,r){var s=n.memoizedState;s===null?n.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:i,tail:t,tailMode:r}:(s.isBackwards=e,s.rendering=null,s.renderingStartTime=0,s.last=i,s.tail=t,s.tailMode=r)}function tQ(n,e,t){var i=e.pendingProps,r=i.revealOrder,s=i.tail;if(Hi(n,e,i.children,t),i=Rn.current,i&2)i=i&1|2,e.flags|=128;else{if(n!==null&&n.flags&128)e:for(n=e.child;n!==null;){if(n.tag===13)n.memoizedState!==null&&mS(n,t,e);else if(n.tag===19)mS(n,t,e);else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break e;for(;n.sibling===null;){if(n.return===null||n.return===e)break e;n=n.return}n.sibling.return=n.return,n=n.sibling}i&=1}if(mn(Rn,i),!(e.mode&1))e.memoizedState=null;else switch(r){case"forwards":for(t=e.child,r=null;t!==null;)n=t.alternate,n!==null&&gg(n)===null&&(r=t),t=t.sibling;t=r,t===null?(r=e.child,e.child=null):(r=t.sibling,t.sibling=null),lE(e,!1,r,t,s);break;case"backwards":for(t=null,r=e.child,e.child=null;r!==null;){if(n=r.alternate,n!==null&&gg(n)===null){e.child=r;break}n=r.sibling,r.sibling=t,t=r,r=n}lE(e,!0,t,null,s);break;case"together":lE(e,!1,null,null,void 0);break;default:e.memoizedState=null}return e.child}function bp(n,e){!(e.mode&1)&&n!==null&&(n.alternate=null,e.alternate=null,e.flags|=2)}function xo(n,e,t){if(n!==null&&(e.dependencies=n.dependencies),Yl|=e.lanes,!(t&e.childLanes))return null;if(n!==null&&e.child!==n.child)throw Error(ke(153));if(e.child!==null){for(n=e.child,t=Ba(n,n.pendingProps),e.child=t,t.return=e;n.sibling!==null;)n=n.sibling,t=t.sibling=Ba(n,n.pendingProps),t.return=e;t.sibling=null}return e.child}function uL(n,e,t){switch(e.tag){case 3:$2(e),Iu();break;case 5:M2(e);break;case 1:or(e.type)&&ug(e);break;case 4:Ev(e,e.stateNode.containerInfo);break;case 10:var i=e.type._context,r=e.memoizedProps.value;mn(dg,i._currentValue),i._currentValue=r;break;case 13:if(i=e.memoizedState,i!==null)return i.dehydrated!==null?(mn(Rn,Rn.current&1),e.flags|=128,null):t&e.child.childLanes?eQ(n,e,t):(mn(Rn,Rn.current&1),n=xo(n,e,t),n!==null?n.sibling:null);mn(Rn,Rn.current&1);break;case 19:if(i=(t&e.childLanes)!==0,n.flags&128){if(i)return tQ(n,e,t);e.flags|=128}if(r=e.memoizedState,r!==null&&(r.rendering=null,r.tail=null,r.lastEffect=null),mn(Rn,Rn.current),i)break;return null;case 22:case 23:return e.lanes=0,q2(n,e,t)}return xo(n,e,t)}var nQ,Ey,iQ,rQ;nQ=function(n,e){for(var t=e.child;t!==null;){if(t.tag===5||t.tag===6)n.appendChild(t.stateNode);else if(t.tag!==4&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return;t=t.return}t.sibling.return=t.return,t=t.sibling}};Ey=function(){};iQ=function(n,e,t,i){var r=n.memoizedProps;if(r!==i){n=e.stateNode,Tl(Ns.current);var s=null;switch(t){case"input":r=OC(n,r),i=OC(n,i),s=[];break;case"select":r=Pn({},r,{value:void 0}),i=Pn({},i,{value:void 0}),s=[];break;case"textarea":r=zC(n,r),i=zC(n,i),s=[];break;default:typeof r.onClick!="function"&&typeof i.onClick=="function"&&(n.onclick=lg)}WC(t,i);var o;t=null;for(A in r)if(!i.hasOwnProperty(A)&&r.hasOwnProperty(A)&&r[A]!=null)if(A==="style"){var a=r[A];for(o in a)a.hasOwnProperty(o)&&(t||(t={}),t[o]="")}else A!=="dangerouslySetInnerHTML"&&A!=="children"&&A!=="suppressContentEditableWarning"&&A!=="suppressHydrationWarning"&&A!=="autoFocus"&&(th.hasOwnProperty(A)?s||(s=[]):(s=s||[]).push(A,null));for(A in i){var l=i[A];if(a=r!=null?r[A]:void 0,i.hasOwnProperty(A)&&l!==a&&(l!=null||a!=null))if(A==="style")if(a){for(o in a)!a.hasOwnProperty(o)||l&&l.hasOwnProperty(o)||(t||(t={}),t[o]="");for(o in l)l.hasOwnProperty(o)&&a[o]!==l[o]&&(t||(t={}),t[o]=l[o])}else t||(s||(s=[]),s.push(A,t)),t=l;else A==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,a=a?a.__html:void 0,l!=null&&a!==l&&(s=s||[]).push(A,l)):A==="children"?typeof l!="string"&&typeof l!="number"||(s=s||[]).push(A,""+l):A!=="suppressContentEditableWarning"&&A!=="suppressHydrationWarning"&&(th.hasOwnProperty(A)?(l!=null&&A==="onScroll"&&vn("scroll",n),s||a===l||(s=[])):(s=s||[]).push(A,l))}t&&(s=s||[]).push("style",t);var A=s;(e.updateQueue=A)&&(e.flags|=4)}};rQ=function(n,e,t,i){t!==i&&(e.flags|=4)};function dA(n,e){if(!wn)switch(n.tailMode){case"hidden":e=n.tail;for(var t=null;e!==null;)e.alternate!==null&&(t=e),e=e.sibling;t===null?n.tail=null:t.sibling=null;break;case"collapsed":t=n.tail;for(var i=null;t!==null;)t.alternate!==null&&(i=t),t=t.sibling;i===null?e||n.tail===null?n.tail=null:n.tail.sibling=null:i.sibling=null}}function Mi(n){var e=n.alternate!==null&&n.alternate.child===n.child,t=0,i=0;if(e)for(var r=n.child;r!==null;)t|=r.lanes|r.childLanes,i|=r.subtreeFlags&14680064,i|=r.flags&14680064,r.return=n,r=r.sibling;else for(r=n.child;r!==null;)t|=r.lanes|r.childLanes,i|=r.subtreeFlags,i|=r.flags,r.return=n,r=r.sibling;return n.subtreeFlags|=i,n.childLanes=t,e}function AL(n,e,t){var i=e.pendingProps;switch(Av(e),e.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Mi(e),null;case 1:return or(e.type)&&cg(),Mi(e),null;case 3:return i=e.stateNode,Bu(),Bn(sr),Bn(Pi),yv(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(n===null||n.child===null)&&(ff(e)?e.flags|=4:n===null||n.memoizedState.isDehydrated&&!(e.flags&256)||(e.flags|=1024,os!==null&&(_y(os),os=null))),Ey(n,e),Mi(e),null;case 5:Cv(e);var r=Tl(dh.current);if(t=e.type,n!==null&&e.stateNode!=null)iQ(n,e,t,i,r),n.ref!==e.ref&&(e.flags|=512,e.flags|=2097152);else{if(!i){if(e.stateNode===null)throw Error(ke(166));return Mi(e),null}if(n=Tl(Ns.current),ff(e)){i=e.stateNode,t=e.type;var s=e.memoizedProps;switch(i[Rs]=e,i[Ah]=s,n=(e.mode&1)!==0,t){case"dialog":vn("cancel",i),vn("close",i);break;case"iframe":case"object":case"embed":vn("load",i);break;case"video":case"audio":for(r=0;r<\/script>",n=n.removeChild(n.firstChild)):typeof i.is=="string"?n=o.createElement(t,{is:i.is}):(n=o.createElement(t),t==="select"&&(o=n,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):n=o.createElementNS(n,t),n[Rs]=e,n[Ah]=i,nQ(n,e,!1,!1),e.stateNode=n;e:{switch(o=YC(t,i),t){case"dialog":vn("cancel",n),vn("close",n),r=i;break;case"iframe":case"object":case"embed":vn("load",n),r=i;break;case"video":case"audio":for(r=0;r_u&&(e.flags|=128,i=!0,dA(s,!1),e.lanes=4194304)}else{if(!i)if(n=gg(o),n!==null){if(e.flags|=128,i=!0,t=n.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),dA(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!wn)return Mi(e),null}else 2*Wn()-s.renderingStartTime>_u&&t!==1073741824&&(e.flags|=128,i=!0,dA(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(t=s.last,t!==null?t.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Wn(),e.sibling=null,t=Rn.current,mn(Rn,i?t&1|2:t&1),e):(Mi(e),null);case 22:case 23:return Tv(),i=e.memoizedState!==null,n!==null&&n.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?Cr&1073741824&&(Mi(e),e.subtreeFlags&6&&(e.flags|=8192)):Mi(e),null;case 24:return null;case 25:return null}throw Error(ke(156,e.tag))}function hL(n,e){switch(Av(e),e.tag){case 1:return or(e.type)&&cg(),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return Bu(),Bn(sr),Bn(Pi),yv(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 5:return Cv(e),null;case 13:if(Bn(Rn),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(ke(340));Iu()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return Bn(Rn),null;case 4:return Bu(),null;case 10:return pv(e.type._context),null;case 22:case 23:return Tv(),null;case 24:return null;default:return null}}var mf=!1,Di=!1,dL=typeof WeakSet=="function"?WeakSet:Set,rt=null;function iu(n,e){var t=n.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(i){Fn(n,e,i)}else t.current=null}function Cy(n,e,t){try{t()}catch(i){Fn(n,e,i)}}var ES=!1;function fL(n,e){if(ny=sg,n=l2(),cv(n)){if("selectionStart"in n)var t={start:n.selectionStart,end:n.selectionEnd};else e:{t=(t=n.ownerDocument)&&t.defaultView||window;var i=t.getSelection&&t.getSelection();if(i&&i.rangeCount!==0){t=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{t.nodeType,s.nodeType}catch{t=null;break e}var o=0,a=-1,l=-1,A=0,h=0,d=n,f=null;t:for(;;){for(var g;d!==t||r!==0&&d.nodeType!==3||(a=o+r),d!==s||i!==0&&d.nodeType!==3||(l=o+i),d.nodeType===3&&(o+=d.nodeValue.length),(g=d.firstChild)!==null;)f=d,d=g;for(;;){if(d===n)break t;if(f===t&&++A===r&&(a=o),f===s&&++h===i&&(l=o),(g=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=g}t=a===-1||l===-1?null:{start:a,end:l}}else t=null}t=t||{start:0,end:0}}else t=null;for(iy={focusedElem:n,selectionRange:t},sg=!1,rt=e;rt!==null;)if(e=rt,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,rt=n;else for(;rt!==null;){e=rt;try{var E=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var v=E.memoizedProps,C=E.memoizedState,p=e.stateNode,y=p.getSnapshotBeforeUpdate(e.elementType===e.type?v:is(e.type,v),C);p.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var I=e.stateNode.containerInfo;I.nodeType===1?I.textContent="":I.nodeType===9&&I.documentElement&&I.removeChild(I.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ke(163))}}catch(B){Fn(e,e.return,B)}if(n=e.sibling,n!==null){n.return=e.return,rt=n;break}rt=e.return}return E=ES,ES=!1,E}function WA(n,e,t){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&n)===n){var s=r.destroy;r.destroy=void 0,s!==void 0&&Cy(e,t,s)}r=r.next}while(r!==i)}}function Wg(n,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&n)===n){var i=t.create;t.destroy=i()}t=t.next}while(t!==e)}}function yy(n){var e=n.ref;if(e!==null){var t=n.stateNode;switch(n.tag){case 5:n=t;break;default:n=t}typeof e=="function"?e(n):e.current=n}}function sQ(n){var e=n.alternate;e!==null&&(n.alternate=null,sQ(e)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(e=n.stateNode,e!==null&&(delete e[Rs],delete e[Ah],delete e[oy],delete e[KP],delete e[qP])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function oQ(n){return n.tag===5||n.tag===3||n.tag===4}function CS(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||oQ(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function vy(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(n,e):t.insertBefore(n,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(n,t)):(e=t,e.appendChild(n)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=lg));else if(i!==4&&(n=n.child,n!==null))for(vy(n,e,t),n=n.sibling;n!==null;)vy(n,e,t),n=n.sibling}function Iy(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.insertBefore(n,e):t.appendChild(n);else if(i!==4&&(n=n.child,n!==null))for(Iy(n,e,t),n=n.sibling;n!==null;)Iy(n,e,t),n=n.sibling}var Ei=null,ss=!1;function qo(n,e,t){for(t=t.child;t!==null;)aQ(n,e,t),t=t.sibling}function aQ(n,e,t){if(Ls&&typeof Ls.onCommitFiberUnmount=="function")try{Ls.onCommitFiberUnmount(Ug,t)}catch{}switch(t.tag){case 5:Di||iu(t,e);case 6:var i=Ei,r=ss;Ei=null,qo(n,e,t),Ei=i,ss=r,Ei!==null&&(ss?(n=Ei,t=t.stateNode,n.nodeType===8?n.parentNode.removeChild(t):n.removeChild(t)):Ei.removeChild(t.stateNode));break;case 18:Ei!==null&&(ss?(n=Ei,t=t.stateNode,n.nodeType===8?tE(n.parentNode,t):n.nodeType===1&&tE(n,t),oh(n)):tE(Ei,t.stateNode));break;case 4:i=Ei,r=ss,Ei=t.stateNode.containerInfo,ss=!0,qo(n,e,t),Ei=i,ss=r;break;case 0:case 11:case 14:case 15:if(!Di&&(i=t.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&Cy(t,e,o),r=r.next}while(r!==i)}qo(n,e,t);break;case 1:if(!Di&&(iu(t,e),i=t.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=t.memoizedProps,i.state=t.memoizedState,i.componentWillUnmount()}catch(a){Fn(t,e,a)}qo(n,e,t);break;case 21:qo(n,e,t);break;case 22:t.mode&1?(Di=(i=Di)||t.memoizedState!==null,qo(n,e,t),Di=i):qo(n,e,t);break;default:qo(n,e,t)}}function yS(n){var e=n.updateQueue;if(e!==null){n.updateQueue=null;var t=n.stateNode;t===null&&(t=n.stateNode=new dL),e.forEach(function(i){var r=xL.bind(null,n,i);t.has(i)||(t.add(i),i.then(r,r))})}}function $r(n,e){var t=e.deletions;if(t!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=Wn()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*gL(i/1960))-i,10n?16:n,pa===null)var i=!1;else{if(n=pa,pa=null,vg=0,Zt&6)throw Error(ke(331));var r=Zt;for(Zt|=4,rt=n.current;rt!==null;){var s=rt,o=s.child;if(rt.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lWn()-Qv?Nl(n,0):Mv|=t),ar(n,e)}function pQ(n,e){e===0&&(n.mode&1?(e=lf,lf<<=1,!(lf&130023424)&&(lf=4194304)):e=1);var t=Wi();n=Io(n,e),n!==null&&(zh(n,e,t),ar(n,t))}function IL(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),pQ(n,t)}function xL(n,e){var t=0;switch(n.tag){case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;default:throw Error(ke(314))}i!==null&&i.delete(e),pQ(n,t)}var gQ;gQ=function(n,e,t){if(n!==null)if(n.memoizedProps!==e.pendingProps||sr.current)rr=!0;else{if(!(n.lanes&t)&&!(e.flags&128))return rr=!1,uL(n,e,t);rr=!!(n.flags&131072)}else rr=!1,wn&&e.flags&1048576&&C2(e,hg,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;bp(n,e),n=e.pendingProps;var r=vu(e,Pi.current);fu(e,t),r=Iv(null,e,i,n,r,t);var s=xv();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,or(i)?(s=!0,ug(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,mv(e),r.updater=zg,e.stateNode=r,r._reactInternals=e,hy(e,i,n,t),e=py(null,e,i,!0,s,t)):(e.tag=0,wn&&s&&uv(e),Hi(null,e,r,t),e=e.child),e;case 16:i=e.elementType;e:{switch(bp(n,e),n=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=SL(i),n=is(i,n),r){case 0:e=fy(null,e,i,n,t);break e;case 1:e=pS(null,e,i,n,t);break e;case 11:e=dS(null,e,i,n,t);break e;case 14:e=fS(null,e,i,is(i.type,n),t);break e}throw Error(ke(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:is(i,r),fy(n,e,i,r,t);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:is(i,r),pS(n,e,i,r,t);case 3:e:{if($2(e),n===null)throw Error(ke(387));i=e.pendingProps,s=e.memoizedState,r=s.element,x2(n,e),pg(e,i,null,t);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=Su(Error(ke(423)),e),e=gS(n,e,i,t,r);break e}else if(i!==r){r=Su(Error(ke(424)),e),e=gS(n,e,i,t,r);break e}else for(Ir=ya(e.stateNode.containerInfo.firstChild),Br=e,wn=!0,os=null,t=w2(e,null,i,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(Iu(),i===r){e=xo(n,e,t);break e}Hi(n,e,i,t)}e=e.child}return e;case 5:return M2(e),n===null&&cy(e),i=e.type,r=e.pendingProps,s=n!==null?n.memoizedProps:null,o=r.children,ry(i,r)?o=null:s!==null&&ry(i,s)&&(e.flags|=32),Z2(n,e),Hi(n,e,o,t),e.child;case 6:return n===null&&cy(e),null;case 13:return eQ(n,e,t);case 4:return Ev(e,e.stateNode.containerInfo),i=e.pendingProps,n===null?e.child=xu(e,null,i,t):Hi(n,e,i,t),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:is(i,r),dS(n,e,i,r,t);case 7:return Hi(n,e,e.pendingProps,t),e.child;case 8:return Hi(n,e,e.pendingProps.children,t),e.child;case 12:return Hi(n,e,e.pendingProps.children,t),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,mn(dg,i._currentValue),i._currentValue=o,s!==null)if(ds(s.value,o)){if(s.children===r.children&&!sr.current){e=xo(n,e,t);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===i){if(s.tag===1){l=Eo(-1,t&-t),l.tag=2;var A=s.updateQueue;if(A!==null){A=A.shared;var h=A.pending;h===null?l.next=l:(l.next=h.next,h.next=l),A.pending=l}}s.lanes|=t,l=s.alternate,l!==null&&(l.lanes|=t),uy(s.return,t,e),a.lanes|=t;break}l=l.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(ke(341));o.lanes|=t,a=o.alternate,a!==null&&(a.lanes|=t),uy(o,t,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Hi(n,e,r.children,t),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,fu(e,t),r=Wr(r),i=i(r),e.flags|=1,Hi(n,e,i,t),e.child;case 14:return i=e.type,r=is(i,e.pendingProps),r=is(i.type,r),fS(n,e,i,r,t);case 15:return K2(n,e,e.type,e.pendingProps,t);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:is(i,r),bp(n,e),e.tag=1,or(i)?(n=!0,ug(e)):n=!1,fu(e,t),S2(e,i,r),hy(e,i,r,t),py(null,e,i,!0,n,t);case 19:return tQ(n,e,t);case 22:return q2(n,e,t)}throw Error(ke(156,e.tag))};function mQ(n,e){return zM(n,e)}function BL(n,e,t,i){this.tag=n,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Gr(n,e,t,i){return new BL(n,e,t,i)}function bv(n){return n=n.prototype,!(!n||!n.isReactComponent)}function SL(n){if(typeof n=="function")return bv(n)?1:0;if(n!=null){if(n=n.$$typeof,n===Z1)return 11;if(n===$1)return 14}return 2}function Ba(n,e){var t=n.alternate;return t===null?(t=Gr(n.tag,e,n.key,n.mode),t.elementType=n.elementType,t.type=n.type,t.stateNode=n.stateNode,t.alternate=n,n.alternate=t):(t.pendingProps=e,t.type=n.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=n.flags&14680064,t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=n.sibling,t.index=n.index,t.ref=n.ref,t}function Np(n,e,t,i,r,s){var o=2;if(i=n,typeof n=="function")bv(n)&&(o=1);else if(typeof n=="string")o=5;else e:switch(n){case Jc:return Ul(t.children,r,s,e);case q1:o=8,r|=8;break;case NC:return n=Gr(12,t,e,r|2),n.elementType=NC,n.lanes=s,n;case UC:return n=Gr(13,t,e,r),n.elementType=UC,n.lanes=s,n;case FC:return n=Gr(19,t,e,r),n.elementType=FC,n.lanes=s,n;case _M:return Xg(t,r,s,e);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case BM:o=10;break e;case SM:o=9;break e;case Z1:o=11;break e;case $1:o=14;break e;case ca:o=16,i=null;break e}throw Error(ke(130,n==null?n:typeof n,""))}return e=Gr(o,t,e,r),e.elementType=n,e.type=i,e.lanes=s,e}function Ul(n,e,t,i){return n=Gr(7,n,i,e),n.lanes=t,n}function Xg(n,e,t,i){return n=Gr(22,n,i,e),n.elementType=_M,n.lanes=t,n.stateNode={isHidden:!1},n}function cE(n,e,t){return n=Gr(6,n,null,e),n.lanes=t,n}function uE(n,e,t){return e=Gr(4,n.children!==null?n.children:[],n.key,e),e.lanes=t,e.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},e}function _L(n,e,t,i,r){this.tag=e,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=V0(0),this.expirationTimes=V0(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=V0(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function Pv(n,e,t,i,r,s,o,a,l){return n=new _L(n,e,t,a,l),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Gr(3,null,null,e),n.current=s,s.stateNode=n,s.memoizedState={element:i,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},mv(s),n}function wL(n,e,t){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(vQ)}catch(n){console.error(n)}}vQ(),CM.exports=wr;var DL=CM.exports,IQ,MS=DL;IQ=MS.createRoot,MS.hydrateRoot;/** * @license * Copyright 2010-2023 Three.js Authors * SPDX-License-Identifier: MIT - */const Jg="161",mN={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},EN={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},lQ=0,yy=1,cQ=2,CN=3,uQ=0,jg=1,YA=2,is=3,Xr=0,Vi=1,Qs=2,go=0,Ql=1,vy=2,Iy=3,xy=4,AQ=5,Zo=100,hQ=101,dQ=102,By=103,Sy=104,fQ=200,pQ=201,gQ=202,mQ=203,yg=204,vg=205,EQ=206,CQ=207,yQ=208,vQ=209,IQ=210,xQ=211,BQ=212,SQ=213,_Q=214,wQ=0,MQ=1,QQ=2,gh=3,RQ=4,TQ=5,DQ=6,bQ=7,Wh=0,PQ=1,NQ=2,Ns=0,LQ=1,UQ=2,FQ=3,Dv=4,kQ=5,OQ=6,_y="attached",GQ="detached",Kg=300,vo=301,Ca=302,mh=303,Eh=304,Ru=306,Ch=1e3,Ti=1001,yh=1002,Gn=1003,Ig=1004,yN=1004,El=1005,vN=1005,vn=1006,XA=1007,IN=1007,Rs=1008,xN=1008,Ls=1009,HQ=1010,zQ=1011,qg=1012,bv=1013,ho=1014,Or=1015,kl=1016,Pv=1017,Nv=1018,Aa=1020,VQ=1021,Gi=1023,WQ=1024,YQ=1025,ha=1026,Ol=1027,XQ=1028,Lv=1029,JQ=1030,Uv=1031,Fv=1033,bp=33776,Pp=33777,Np=33778,Lp=33779,wy=35840,My=35841,Qy=35842,Ry=35843,kv=36196,Ty=37492,Dy=37496,by=37808,Py=37809,Ny=37810,Ly=37811,Uy=37812,Fy=37813,ky=37814,Oy=37815,Gy=37816,Hy=37817,zy=37818,Vy=37819,Wy=37820,Yy=37821,Up=36492,Xy=36494,Jy=36495,jQ=36283,jy=36284,Ky=36285,qy=36286,KQ=2200,qQ=2201,ZQ=2202,vh=2300,Ih=2301,Fp=2302,xl=2400,Bl=2401,xh=2402,Zg=2500,Ov=2501,BN=0,SN=1,_N=2,Gv=3e3,da=3001,$Q=3200,Hv=3201,Ba=0,eR=1,Cr="",Hn="srgb",Fs="srgb-linear",$g="display-p3",Yh="display-p3-linear",Bh="linear",gn="srgb",Sh="rec709",_h="p3",wN=0,fl=7680,MN=7681,QN=7682,RN=7683,TN=34055,DN=34056,bN=5386,PN=512,NN=513,LN=514,UN=515,FN=516,kN=517,ON=518,Zy=519,tR=512,nR=513,iR=514,zv=515,rR=516,sR=517,oR=518,aR=519,wh=35044,na=35048,GN=35040,HN=35045,zN=35049,VN=35041,WN=35046,YN=35050,XN=35042,JN="100",$y="300 es",xg=1035,Ts=2e3,Mh=2001;class xo{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const i=this._listeners[e.type];if(i!==void 0){e.target=this;const r=i.slice(0);for(let s=0,o=r.length;s>8&255]+wi[n>>16&255]+wi[n>>24&255]+"-"+wi[e&255]+wi[e>>8&255]+"-"+wi[e>>16&15|64]+wi[e>>24&255]+"-"+wi[t&63|128]+wi[t>>8&255]+"-"+wi[t>>16&255]+wi[t>>24&255]+wi[i&255]+wi[i>>8&255]+wi[i>>16&255]+wi[i>>24&255]).toLowerCase()}function Fn(n,e,t){return Math.max(e,Math.min(t,n))}function Vv(n,e){return(n%e+e)%e}function jN(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function KN(n,e,t){return n!==e?(t-n)/(e-n):0}function JA(n,e,t){return(1-t)*n+t*e}function qN(n,e,t,i){return JA(n,e,1-Math.exp(-t*i))}function ZN(n,e=1){return e-Math.abs(Vv(n,e*2)-e)}function $N(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function eL(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function tL(n,e){return n+Math.floor(Math.random()*(e-n+1))}function nL(n,e){return n+Math.random()*(e-n)}function iL(n){return n*(.5-Math.random())}function rL(n){n!==void 0&&(CS=n);let e=CS+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function sL(n){return n*Rl}function oL(n){return n*Bu}function e1(n){return(n&n-1)===0&&n!==0}function aL(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function Bg(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function lL(n,e,t,i,r){const s=Math.cos,o=Math.sin,a=s(t/2),l=o(t/2),A=s((e+i)/2),h=o((e+i)/2),d=s((e-i)/2),f=o((e-i)/2),g=s((i-e)/2),E=o((i-e)/2);switch(r){case"XYX":n.set(a*h,l*d,l*f,a*A);break;case"YZY":n.set(l*f,a*h,l*d,a*A);break;case"ZXZ":n.set(l*d,l*f,a*h,a*A);break;case"XZX":n.set(a*h,l*E,l*g,a*A);break;case"YXY":n.set(l*g,a*h,l*E,a*A);break;case"ZYZ":n.set(l*E,l*g,a*h,a*A);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Hi(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function bt(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}const cL={DEG2RAD:Rl,RAD2DEG:Bu,generateUUID:Br,clamp:Fn,euclideanModulo:Vv,mapLinear:jN,inverseLerp:KN,lerp:JA,damp:qN,pingpong:ZN,smoothstep:$N,smootherstep:eL,randInt:tL,randFloat:nL,randFloatSpread:iL,seededRandom:rL,degToRad:sL,radToDeg:oL,isPowerOfTwo:e1,ceilPowerOfTwo:aL,floorPowerOfTwo:Bg,setQuaternionFromProperEuler:lL,normalize:bt,denormalize:Hi};class Se{constructor(e=0,t=0){Se.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Fn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Rt{constructor(e,t,i,r,s,o,a,l,A){Rt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,l,A)}set(e,t,i,r,s,o,a,l,A){const h=this.elements;return h[0]=e,h[1]=r,h[2]=a,h[3]=t,h[4]=s,h[5]=l,h[6]=i,h[7]=o,h[8]=A,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[3],l=i[6],A=i[1],h=i[4],d=i[7],f=i[2],g=i[5],E=i[8],v=r[0],C=r[3],p=r[6],y=r[1],I=r[4],B=r[7],R=r[2],w=r[5],T=r[8];return s[0]=o*v+a*y+l*R,s[3]=o*C+a*I+l*w,s[6]=o*p+a*B+l*T,s[1]=A*v+h*y+d*R,s[4]=A*C+h*I+d*w,s[7]=A*p+h*B+d*T,s[2]=f*v+g*y+E*R,s[5]=f*C+g*I+E*w,s[8]=f*p+g*B+E*T,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8];return t*o*h-t*a*A-i*s*h+i*a*l+r*s*A-r*o*l}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8],d=h*o-a*A,f=a*l-h*s,g=A*s-o*l,E=t*d+i*f+r*g;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);const v=1/E;return e[0]=d*v,e[1]=(r*A-h*i)*v,e[2]=(a*i-r*o)*v,e[3]=f*v,e[4]=(h*t-r*l)*v,e[5]=(r*s-a*t)*v,e[6]=g*v,e[7]=(i*l-A*t)*v,e[8]=(o*t-i*s)*v,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,a){const l=Math.cos(s),A=Math.sin(s);return this.set(i*l,i*A,-i*(l*o+A*a)+o+e,-r*A,r*l,-r*(-A*o+l*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(aE.makeScale(e,t)),this}rotate(e){return this.premultiply(aE.makeRotation(-e)),this}translate(e,t){return this.premultiply(aE.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const aE=new Rt;function lR(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const uL={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function nu(n,e){return new uL[n](e)}function Qh(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function cR(){const n=Qh("canvas");return n.style.display="block",n}const yS={};function Tl(n){n in yS||(yS[n]=!0,console.warn(n))}const vS=new Rt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),IS=new Rt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),Cf={[Fs]:{transfer:Bh,primaries:Sh,toReference:n=>n,fromReference:n=>n},[Hn]:{transfer:gn,primaries:Sh,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[Yh]:{transfer:Bh,primaries:_h,toReference:n=>n.applyMatrix3(IS),fromReference:n=>n.applyMatrix3(vS)},[$g]:{transfer:gn,primaries:_h,toReference:n=>n.convertSRGBToLinear().applyMatrix3(IS),fromReference:n=>n.applyMatrix3(vS).convertLinearToSRGB()}},AL=new Set([Fs,Yh]),an={enabled:!0,_workingColorSpace:Fs,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!AL.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;const i=Cf[e].toReference,r=Cf[t].fromReference;return r(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return Cf[n].primaries},getTransfer:function(n){return n===Cr?Bh:Cf[n].transfer}};function du(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function lE(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let gc;class Wv{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{gc===void 0&&(gc=Qh("canvas")),gc.width=e.width,gc.height=e.height;const i=gc.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=gc}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=Qh("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==Kg)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case Ch:e.x=e.x-Math.floor(e.x);break;case Ti:e.x=e.x<0?0:1;break;case yh:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case Ch:e.y=e.y-Math.floor(e.y);break;case Ti:e.y=e.y<0?0:1;break;case yh:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Tl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===Hn?da:Gv}set encoding(e){Tl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===da?Hn:Cr}}wn.DEFAULT_IMAGE=null;wn.DEFAULT_MAPPING=Kg;wn.DEFAULT_ANISOTROPY=1;class ln{constructor(e=0,t=0,i=0,r=1){ln.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const l=e.elements,A=l[0],h=l[4],d=l[8],f=l[1],g=l[5],E=l[9],v=l[2],C=l[6],p=l[10];if(Math.abs(h-f)<.01&&Math.abs(d-v)<.01&&Math.abs(E-C)<.01){if(Math.abs(h+f)<.1&&Math.abs(d+v)<.1&&Math.abs(E+C)<.1&&Math.abs(A+g+p-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const I=(A+1)/2,B=(g+1)/2,R=(p+1)/2,w=(h+f)/4,T=(d+v)/4,U=(E+C)/4;return I>B&&I>R?I<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(I),r=w/i,s=T/i):B>R?B<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(B),i=w/r,s=U/r):R<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(R),i=T/s,r=U/s),this.set(i,r,s,t),this}let y=Math.sqrt((C-E)*(C-E)+(d-v)*(d-v)+(f-h)*(f-h));return Math.abs(y)<.001&&(y=1),this.x=(C-E)/y,this.y=(d-v)/y,this.z=(f-h)/y,this.w=Math.acos((A+g+p-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class uR extends xo{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new ln(0,0,e,t),this.scissorTest=!1,this.viewport=new ln(0,0,e,t);const r={width:e,height:t,depth:1};i.encoding!==void 0&&(Tl("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===da?Hn:Cr),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:vn,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},i),this.texture=new wn(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps,this.texture.internalFormat=i.internalFormat,this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.depthTexture=i.depthTexture,this.samples=i.samples}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new Sl(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Jr extends uR{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}}class em extends wn{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Ti,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class fL extends Jr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new em(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class Yv extends wn{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Ti,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class pL extends Jr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new Yv(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class gL extends Jr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const s=this.texture;this.texture=[];for(let o=0;o=0?1:-1,I=1-p*p;if(I>Number.EPSILON){const R=Math.sqrt(I),w=Math.atan2(R,p*y);C=Math.sin(C*w)/R,a=Math.sin(a*w)/R}const B=a*y;if(l=l*C+f*B,A=A*C+g*B,h=h*C+E*B,d=d*C+v*B,C===1-a){const R=1/Math.sqrt(l*l+A*A+h*h+d*d);l*=R,A*=R,h*=R,d*=R}}e[t]=l,e[t+1]=A,e[t+2]=h,e[t+3]=d}static multiplyQuaternionsFlat(e,t,i,r,s,o){const a=i[r],l=i[r+1],A=i[r+2],h=i[r+3],d=s[o],f=s[o+1],g=s[o+2],E=s[o+3];return e[t]=a*E+h*d+l*g-A*f,e[t+1]=l*E+h*f+A*d-a*g,e[t+2]=A*E+h*g+a*f-l*d,e[t+3]=h*E-a*d-l*f-A*g,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,a=Math.cos,l=Math.sin,A=a(i/2),h=a(r/2),d=a(s/2),f=l(i/2),g=l(r/2),E=l(s/2);switch(o){case"XYZ":this._x=f*h*d+A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d-f*g*E;break;case"YXZ":this._x=f*h*d+A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d+f*g*E;break;case"ZXY":this._x=f*h*d-A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d-f*g*E;break;case"ZYX":this._x=f*h*d-A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d+f*g*E;break;case"YZX":this._x=f*h*d+A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d-f*g*E;break;case"XZY":this._x=f*h*d-A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d+f*g*E;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],a=t[5],l=t[9],A=t[2],h=t[6],d=t[10],f=i+a+d;if(f>0){const g=.5/Math.sqrt(f+1);this._w=.25/g,this._x=(h-l)*g,this._y=(s-A)*g,this._z=(o-r)*g}else if(i>a&&i>d){const g=2*Math.sqrt(1+i-a-d);this._w=(h-l)/g,this._x=.25*g,this._y=(r+o)/g,this._z=(s+A)/g}else if(a>d){const g=2*Math.sqrt(1+a-i-d);this._w=(s-A)/g,this._x=(r+o)/g,this._y=.25*g,this._z=(l+h)/g}else{const g=2*Math.sqrt(1+d-i-a);this._w=(o-r)/g,this._x=(s+A)/g,this._y=(l+h)/g,this._z=.25*g}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Fn(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,a=t._x,l=t._y,A=t._z,h=t._w;return this._x=i*h+o*a+r*A-s*l,this._y=r*h+o*l+s*a-i*A,this._z=s*h+o*A+i*l-r*a,this._w=o*h-i*a-r*l-s*A,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let a=o*e._w+i*e._x+r*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const l=1-a*a;if(l<=Number.EPSILON){const g=1-t;return this._w=g*o+t*this._w,this._x=g*i+t*this._x,this._y=g*r+t*this._y,this._z=g*s+t*this._z,this.normalize(),this}const A=Math.sqrt(l),h=Math.atan2(A,a),d=Math.sin((1-t)*h)/A,f=Math.sin(t*h)/A;return this._w=o*d+this._w*f,this._x=i*d+this._x*f,this._y=r*d+this._y*f,this._z=s*d+this._z*f,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(s),i*Math.cos(s),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class G{constructor(e=0,t=0,i=0){G.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(xS.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(xS.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,a=e.z,l=e.w,A=2*(o*r-a*i),h=2*(a*t-s*r),d=2*(s*i-o*t);return this.x=t+l*A+o*d-a*h,this.y=i+l*h+a*A-s*d,this.z=r+l*d+s*h-o*A,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,a=t.y,l=t.z;return this.x=r*l-s*a,this.y=s*o-i*l,this.z=i*a-r*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return uE.copy(this).projectOnVector(e),this.sub(uE)}reflect(e){return this.sub(uE.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Fn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const uE=new G,xS=new Vn;class ri{constructor(e=new G(1/0,1/0,1/0),t=new G(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,$r),$r.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(hA),vf.subVectors(this.max,hA),mc.subVectors(e.a,hA),Ec.subVectors(e.b,hA),Cc.subVectors(e.c,hA),Fo.subVectors(Ec,mc),ko.subVectors(Cc,Ec),el.subVectors(mc,Cc);let t=[0,-Fo.z,Fo.y,0,-ko.z,ko.y,0,-el.z,el.y,Fo.z,0,-Fo.x,ko.z,0,-ko.x,el.z,0,-el.x,-Fo.y,Fo.x,0,-ko.y,ko.x,0,-el.y,el.x,0];return!AE(t,mc,Ec,Cc,vf)||(t=[1,0,0,0,1,0,0,0,1],!AE(t,mc,Ec,Cc,vf))?!1:(If.crossVectors(Fo,ko),t=[If.x,If.y,If.z],AE(t,mc,Ec,Cc,vf))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,$r).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize($r).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(qs[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),qs[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),qs[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),qs[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),qs[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),qs[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),qs[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),qs[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(qs),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const qs=[new G,new G,new G,new G,new G,new G,new G,new G],$r=new G,yf=new ri,mc=new G,Ec=new G,Cc=new G,Fo=new G,ko=new G,el=new G,hA=new G,vf=new G,If=new G,tl=new G;function AE(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){tl.fromArray(n,s);const a=r.x*Math.abs(tl.x)+r.y*Math.abs(tl.y)+r.z*Math.abs(tl.z),l=e.dot(tl),A=t.dot(tl),h=i.dot(tl);if(Math.max(-Math.max(l,A,h),Math.min(l,A,h))>a)return!1}return!0}const mL=new ri,dA=new G,hE=new G;class Zn{constructor(e=new G,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):mL.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;dA.subVectors(e,this.center);const t=dA.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(dA,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(hE.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(dA.copy(e.center).add(hE)),this.expandByPoint(dA.copy(e.center).sub(hE))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Zs=new G,dE=new G,xf=new G,Oo=new G,fE=new G,Bf=new G,pE=new G;class Sa{constructor(e=new G,t=new G(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Zs)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Zs.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Zs.copy(this.origin).addScaledVector(this.direction,t),Zs.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){dE.copy(e).add(t).multiplyScalar(.5),xf.copy(t).sub(e).normalize(),Oo.copy(this.origin).sub(dE);const s=e.distanceTo(t)*.5,o=-this.direction.dot(xf),a=Oo.dot(this.direction),l=-Oo.dot(xf),A=Oo.lengthSq(),h=Math.abs(1-o*o);let d,f,g,E;if(h>0)if(d=o*l-a,f=o*a-l,E=s*h,d>=0)if(f>=-E)if(f<=E){const v=1/h;d*=v,f*=v,g=d*(d+o*f+2*a)+f*(o*d+f+2*l)+A}else f=s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;else f=-s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;else f<=-E?(d=Math.max(0,-(-o*s+a)),f=d>0?-s:Math.min(Math.max(-s,-l),s),g=-d*d+f*(f+2*l)+A):f<=E?(d=0,f=Math.min(Math.max(-s,-l),s),g=f*(f+2*l)+A):(d=Math.max(0,-(o*s+a)),f=d>0?s:Math.min(Math.max(-s,-l),s),g=-d*d+f*(f+2*l)+A);else f=o>0?-s:s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;return i&&i.copy(this.origin).addScaledVector(this.direction,d),r&&r.copy(dE).addScaledVector(xf,f),g}intersectSphere(e,t){Zs.subVectors(e.center,this.origin);const i=Zs.dot(this.direction),r=Zs.dot(Zs)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=i-o,l=i+o;return l<0?null:a<0?this.at(l,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,a,l;const A=1/this.direction.x,h=1/this.direction.y,d=1/this.direction.z,f=this.origin;return A>=0?(i=(e.min.x-f.x)*A,r=(e.max.x-f.x)*A):(i=(e.max.x-f.x)*A,r=(e.min.x-f.x)*A),h>=0?(s=(e.min.y-f.y)*h,o=(e.max.y-f.y)*h):(s=(e.max.y-f.y)*h,o=(e.min.y-f.y)*h),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(a=(e.min.z-f.z)*d,l=(e.max.z-f.z)*d):(a=(e.max.z-f.z)*d,l=(e.min.z-f.z)*d),i>l||a>r)||((a>i||i!==i)&&(i=a),(l=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,Zs)!==null}intersectTriangle(e,t,i,r,s){fE.subVectors(t,e),Bf.subVectors(i,e),pE.crossVectors(fE,Bf);let o=this.direction.dot(pE),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;Oo.subVectors(this.origin,e);const l=a*this.direction.dot(Bf.crossVectors(Oo,Bf));if(l<0)return null;const A=a*this.direction.dot(fE.cross(Oo));if(A<0||l+A>o)return null;const h=-a*Oo.dot(pE);return h<0?null:this.at(h/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ht{constructor(e,t,i,r,s,o,a,l,A,h,d,f,g,E,v,C){ht.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,l,A,h,d,f,g,E,v,C)}set(e,t,i,r,s,o,a,l,A,h,d,f,g,E,v,C){const p=this.elements;return p[0]=e,p[4]=t,p[8]=i,p[12]=r,p[1]=s,p[5]=o,p[9]=a,p[13]=l,p[2]=A,p[6]=h,p[10]=d,p[14]=f,p[3]=g,p[7]=E,p[11]=v,p[15]=C,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ht().fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/yc.setFromMatrixColumn(e,0).length(),s=1/yc.setFromMatrixColumn(e,1).length(),o=1/yc.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),a=Math.sin(i),l=Math.cos(r),A=Math.sin(r),h=Math.cos(s),d=Math.sin(s);if(e.order==="XYZ"){const f=o*h,g=o*d,E=a*h,v=a*d;t[0]=l*h,t[4]=-l*d,t[8]=A,t[1]=g+E*A,t[5]=f-v*A,t[9]=-a*l,t[2]=v-f*A,t[6]=E+g*A,t[10]=o*l}else if(e.order==="YXZ"){const f=l*h,g=l*d,E=A*h,v=A*d;t[0]=f+v*a,t[4]=E*a-g,t[8]=o*A,t[1]=o*d,t[5]=o*h,t[9]=-a,t[2]=g*a-E,t[6]=v+f*a,t[10]=o*l}else if(e.order==="ZXY"){const f=l*h,g=l*d,E=A*h,v=A*d;t[0]=f-v*a,t[4]=-o*d,t[8]=E+g*a,t[1]=g+E*a,t[5]=o*h,t[9]=v-f*a,t[2]=-o*A,t[6]=a,t[10]=o*l}else if(e.order==="ZYX"){const f=o*h,g=o*d,E=a*h,v=a*d;t[0]=l*h,t[4]=E*A-g,t[8]=f*A+v,t[1]=l*d,t[5]=v*A+f,t[9]=g*A-E,t[2]=-A,t[6]=a*l,t[10]=o*l}else if(e.order==="YZX"){const f=o*l,g=o*A,E=a*l,v=a*A;t[0]=l*h,t[4]=v-f*d,t[8]=E*d+g,t[1]=d,t[5]=o*h,t[9]=-a*h,t[2]=-A*h,t[6]=g*d+E,t[10]=f-v*d}else if(e.order==="XZY"){const f=o*l,g=o*A,E=a*l,v=a*A;t[0]=l*h,t[4]=-d,t[8]=A*h,t[1]=f*d+v,t[5]=o*h,t[9]=g*d-E,t[2]=E*d-g,t[6]=a*h,t[10]=v*d+f}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(EL,e,CL)}lookAt(e,t,i){const r=this.elements;return gr.subVectors(e,t),gr.lengthSq()===0&&(gr.z=1),gr.normalize(),Go.crossVectors(i,gr),Go.lengthSq()===0&&(Math.abs(i.z)===1?gr.x+=1e-4:gr.z+=1e-4,gr.normalize(),Go.crossVectors(i,gr)),Go.normalize(),Sf.crossVectors(gr,Go),r[0]=Go.x,r[4]=Sf.x,r[8]=gr.x,r[1]=Go.y,r[5]=Sf.y,r[9]=gr.y,r[2]=Go.z,r[6]=Sf.z,r[10]=gr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[4],l=i[8],A=i[12],h=i[1],d=i[5],f=i[9],g=i[13],E=i[2],v=i[6],C=i[10],p=i[14],y=i[3],I=i[7],B=i[11],R=i[15],w=r[0],T=r[4],U=r[8],K=r[12],M=r[1],P=r[5],q=r[9],ge=r[13],J=r[2],ce=r[6],se=r[10],de=r[14],F=r[3],ee=r[7],te=r[11],ue=r[15];return s[0]=o*w+a*M+l*J+A*F,s[4]=o*T+a*P+l*ce+A*ee,s[8]=o*U+a*q+l*se+A*te,s[12]=o*K+a*ge+l*de+A*ue,s[1]=h*w+d*M+f*J+g*F,s[5]=h*T+d*P+f*ce+g*ee,s[9]=h*U+d*q+f*se+g*te,s[13]=h*K+d*ge+f*de+g*ue,s[2]=E*w+v*M+C*J+p*F,s[6]=E*T+v*P+C*ce+p*ee,s[10]=E*U+v*q+C*se+p*te,s[14]=E*K+v*ge+C*de+p*ue,s[3]=y*w+I*M+B*J+R*F,s[7]=y*T+I*P+B*ce+R*ee,s[11]=y*U+I*q+B*se+R*te,s[15]=y*K+I*ge+B*de+R*ue,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],a=e[5],l=e[9],A=e[13],h=e[2],d=e[6],f=e[10],g=e[14],E=e[3],v=e[7],C=e[11],p=e[15];return E*(+s*l*d-r*A*d-s*a*f+i*A*f+r*a*g-i*l*g)+v*(+t*l*g-t*A*f+s*o*f-r*o*g+r*A*h-s*l*h)+C*(+t*A*d-t*a*g-s*o*d+i*o*g+s*a*h-i*A*h)+p*(-r*a*h-t*l*d+t*a*f+r*o*d-i*o*f+i*l*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8],d=e[9],f=e[10],g=e[11],E=e[12],v=e[13],C=e[14],p=e[15],y=d*C*A-v*f*A+v*l*g-a*C*g-d*l*p+a*f*p,I=E*f*A-h*C*A-E*l*g+o*C*g+h*l*p-o*f*p,B=h*v*A-E*d*A+E*a*g-o*v*g-h*a*p+o*d*p,R=E*d*l-h*v*l-E*a*f+o*v*f+h*a*C-o*d*C,w=t*y+i*I+r*B+s*R;if(w===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/w;return e[0]=y*T,e[1]=(v*f*s-d*C*s-v*r*g+i*C*g+d*r*p-i*f*p)*T,e[2]=(a*C*s-v*l*s+v*r*A-i*C*A-a*r*p+i*l*p)*T,e[3]=(d*l*s-a*f*s-d*r*A+i*f*A+a*r*g-i*l*g)*T,e[4]=I*T,e[5]=(h*C*s-E*f*s+E*r*g-t*C*g-h*r*p+t*f*p)*T,e[6]=(E*l*s-o*C*s-E*r*A+t*C*A+o*r*p-t*l*p)*T,e[7]=(o*f*s-h*l*s+h*r*A-t*f*A-o*r*g+t*l*g)*T,e[8]=B*T,e[9]=(E*d*s-h*v*s-E*i*g+t*v*g+h*i*p-t*d*p)*T,e[10]=(o*v*s-E*a*s+E*i*A-t*v*A-o*i*p+t*a*p)*T,e[11]=(h*a*s-o*d*s-h*i*A+t*d*A+o*i*g-t*a*g)*T,e[12]=R*T,e[13]=(h*v*r-E*d*r+E*i*f-t*v*f-h*i*C+t*d*C)*T,e[14]=(E*a*r-o*v*r-E*i*l+t*v*l+o*i*C-t*a*C)*T,e[15]=(o*d*r-h*a*r+h*i*l-t*d*l-o*i*f+t*a*f)*T,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,a=e.y,l=e.z,A=s*o,h=s*a;return this.set(A*o+i,A*a-r*l,A*l+r*a,0,A*a+r*l,h*a+i,h*l-r*o,0,A*l-r*a,h*l+r*o,s*l*l+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,a=t._z,l=t._w,A=s+s,h=o+o,d=a+a,f=s*A,g=s*h,E=s*d,v=o*h,C=o*d,p=a*d,y=l*A,I=l*h,B=l*d,R=i.x,w=i.y,T=i.z;return r[0]=(1-(v+p))*R,r[1]=(g+B)*R,r[2]=(E-I)*R,r[3]=0,r[4]=(g-B)*w,r[5]=(1-(f+p))*w,r[6]=(C+y)*w,r[7]=0,r[8]=(E+I)*T,r[9]=(C-y)*T,r[10]=(1-(f+v))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=yc.set(r[0],r[1],r[2]).length();const o=yc.set(r[4],r[5],r[6]).length(),a=yc.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],es.copy(this);const A=1/s,h=1/o,d=1/a;return es.elements[0]*=A,es.elements[1]*=A,es.elements[2]*=A,es.elements[4]*=h,es.elements[5]*=h,es.elements[6]*=h,es.elements[8]*=d,es.elements[9]*=d,es.elements[10]*=d,t.setFromRotationMatrix(es),i.x=s,i.y=o,i.z=a,this}makePerspective(e,t,i,r,s,o,a=Ts){const l=this.elements,A=2*s/(t-e),h=2*s/(i-r),d=(t+e)/(t-e),f=(i+r)/(i-r);let g,E;if(a===Ts)g=-(o+s)/(o-s),E=-2*o*s/(o-s);else if(a===Mh)g=-o/(o-s),E=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return l[0]=A,l[4]=0,l[8]=d,l[12]=0,l[1]=0,l[5]=h,l[9]=f,l[13]=0,l[2]=0,l[6]=0,l[10]=g,l[14]=E,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,i,r,s,o,a=Ts){const l=this.elements,A=1/(t-e),h=1/(i-r),d=1/(o-s),f=(t+e)*A,g=(i+r)*h;let E,v;if(a===Ts)E=(o+s)*d,v=-2*d;else if(a===Mh)E=s*d,v=-1*d;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return l[0]=2*A,l[4]=0,l[8]=0,l[12]=-f,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-g,l[2]=0,l[6]=0,l[10]=v,l[14]=-E,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const yc=new G,es=new ht,EL=new G(0,0,0),CL=new G(1,1,1),Go=new G,Sf=new G,gr=new G,BS=new ht,SS=new Vn;class Tu{constructor(e=0,t=0,i=0,r=Tu.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const r=e.elements,s=r[0],o=r[4],a=r[8],l=r[1],A=r[5],h=r[9],d=r[2],f=r[6],g=r[10];switch(t){case"XYZ":this._y=Math.asin(Fn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,g),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(f,A),this._z=0);break;case"YXZ":this._x=Math.asin(-Fn(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,g),this._z=Math.atan2(l,A)):(this._y=Math.atan2(-d,s),this._z=0);break;case"ZXY":this._x=Math.asin(Fn(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-d,g),this._z=Math.atan2(-o,A)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-Fn(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(f,g),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-o,A));break;case"YZX":this._z=Math.asin(Fn(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,A),this._y=Math.atan2(-d,s)):(this._x=0,this._y=Math.atan2(a,g));break;case"XZY":this._z=Math.asin(-Fn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(f,A),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,g),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return BS.makeRotationFromQuaternion(e),this.setFromRotationMatrix(BS,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return SS.setFromEuler(this),this.setFromQuaternion(SS,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Tu.DEFAULT_ORDER="XYZ";class Dl{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,l){return a[l.uuid]===void 0&&(a[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(e.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const l=a.shapes;if(Array.isArray(l))for(let A=0,h=l.length;A0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(i.geometries=a),l.length>0&&(i.materials=l),A.length>0&&(i.textures=A),h.length>0&&(i.images=h),d.length>0&&(i.shapes=d),f.length>0&&(i.skeletons=f),g.length>0&&(i.animations=g),E.length>0&&(i.nodes=E)}return i.object=r,i;function o(a){const l=[];for(const A in a){const h=a[A];delete h.metadata,l.push(h)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){ts.subVectors(r,t),eo.subVectors(i,t),gE.subVectors(e,t);const o=ts.dot(ts),a=ts.dot(eo),l=ts.dot(gE),A=eo.dot(eo),h=eo.dot(gE),d=o*A-a*a;if(d===0)return s.set(0,0,0),null;const f=1/d,g=(A*l-a*h)*f,E=(o*h-a*l)*f;return s.set(1-g-E,E,g)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,to)===null?!1:to.x>=0&&to.y>=0&&to.x+to.y<=1}static getInterpolation(e,t,i,r,s,o,a,l){return this.getBarycoord(e,t,i,r,to)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(s,to.x),l.addScaledVector(o,to.y),l.addScaledVector(a,to.z),l)}static isFrontFacing(e,t,i,r){return ts.subVectors(i,t),eo.subVectors(e,t),ts.cross(eo).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return ts.subVectors(this.c,this.b),eo.subVectors(this.a,this.b),ts.cross(eo).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return yr.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return yr.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return yr.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return yr.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return yr.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,a;Ic.subVectors(r,i),xc.subVectors(s,i),mE.subVectors(e,i);const l=Ic.dot(mE),A=xc.dot(mE);if(l<=0&&A<=0)return t.copy(i);EE.subVectors(e,r);const h=Ic.dot(EE),d=xc.dot(EE);if(h>=0&&d<=h)return t.copy(r);const f=l*d-h*A;if(f<=0&&l>=0&&h<=0)return o=l/(l-h),t.copy(i).addScaledVector(Ic,o);CE.subVectors(e,s);const g=Ic.dot(CE),E=xc.dot(CE);if(E>=0&&g<=E)return t.copy(s);const v=g*A-l*E;if(v<=0&&A>=0&&E<=0)return a=A/(A-E),t.copy(i).addScaledVector(xc,a);const C=h*E-g*d;if(C<=0&&d-h>=0&&g-E>=0)return RS.subVectors(s,r),a=(d-h)/(d-h+(g-E)),t.copy(r).addScaledVector(RS,a);const p=1/(C+v+f);return o=v*p,a=f*p,t.copy(i).addScaledVector(Ic,o).addScaledVector(xc,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const AR={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ho={h:0,s:0,l:0},wf={h:0,s:0,l:0};function yE(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class je{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Hn){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,an.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=an.workingColorSpace){return this.r=e,this.g=t,this.b=i,an.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=an.workingColorSpace){if(e=Vv(e,1),t=Fn(t,0,1),i=Fn(i,0,1),t===0)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=yE(o,s,e+1/3),this.g=yE(o,s,e),this.b=yE(o,s,e-1/3)}return an.toWorkingColorSpace(this,r),this}setStyle(e,t=Hn){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=Hn){const i=AR[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=du(e.r),this.g=du(e.g),this.b=du(e.b),this}copyLinearToSRGB(e){return this.r=lE(e.r),this.g=lE(e.g),this.b=lE(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Hn){return an.fromWorkingColorSpace(Mi.copy(this),e),Math.round(Fn(Mi.r*255,0,255))*65536+Math.round(Fn(Mi.g*255,0,255))*256+Math.round(Fn(Mi.b*255,0,255))}getHexString(e=Hn){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=an.workingColorSpace){an.fromWorkingColorSpace(Mi.copy(this),t);const i=Mi.r,r=Mi.g,s=Mi.b,o=Math.max(i,r,s),a=Math.min(i,r,s);let l,A;const h=(a+o)/2;if(a===o)l=0,A=0;else{const d=o-a;switch(A=h<=.5?d/(o+a):d/(2-o-a),o){case i:l=(r-s)/d+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Ql&&(i.blending=this.blending),this.side!==Xr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==yg&&(i.blendSrc=this.blendSrc),this.blendDst!==vg&&(i.blendDst=this.blendDst),this.blendEquation!==Zo&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==gh&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==Zy&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==fl&&(i.stencilFail=this.stencilFail),this.stencilZFail!==fl&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==fl&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(s){const o=[];for(const a in s){const l=s[a];delete l.metadata,o.push(l)}return o}if(t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(t!==null){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class ar extends di{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Wh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const lo=_L();function _L(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let l=0;l<256;++l){const A=l-127;A<-27?(i[l]=0,i[l|256]=32768,r[l]=24,r[l|256]=24):A<-14?(i[l]=1024>>-A-14,i[l|256]=1024>>-A-14|32768,r[l]=-A-1,r[l|256]=-A-1):A<=15?(i[l]=A+15<<10,i[l|256]=A+15<<10|32768,r[l]=13,r[l|256]=13):A<128?(i[l]=31744,i[l|256]=64512,r[l]=24,r[l|256]=24):(i[l]=31744,i[l|256]=64512,r[l]=13,r[l|256]=13)}const s=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let l=1;l<1024;++l){let A=l<<13,h=0;for(;!(A&8388608);)A<<=1,h-=8388608;A&=-8388609,h+=947912704,s[l]=A|h}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)o[l]=l<<23;o[31]=1199570944,o[32]=2147483648;for(let l=33;l<63;++l)o[l]=2147483648+(l-32<<23);o[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(a[l]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:o,offsetTable:a}}function tr(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Fn(n,-65504,65504),lo.floatView[0]=n;const e=lo.uint32View[0],t=e>>23&511;return lo.baseTable[t]+((e&8388607)>>lo.shiftTable[t])}function DA(n){const e=n>>10;return lo.uint32View[0]=lo.mantissaTable[lo.offsetTable[e]+(n&1023)]+lo.exponentTable[e],lo.floatView[0]}const wL={toHalfFloat:tr,fromHalfFloat:DA},Kn=new G,Mf=new Se;class on{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=wh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Or,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Tl("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const A in l)l[A]!==void 0&&(e[A]=l[A]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const l in i){const A=i[l];e.data.attributes[l]=A.toJSON(e.data)}const r={};let s=!1;for(const l in this.morphAttributes){const A=this.morphAttributes[l],h=[];for(let d=0,f=A.length;d0&&(r[l]=h,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(t));const r=e.attributes;for(const A in r){const h=r[A];this.setAttribute(A,h.clone(t))}const s=e.morphAttributes;for(const A in s){const h=[],d=s[A];for(let f=0,g=d.length;f0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(TS.copy(s).invert(),nl.copy(e.ray).applyMatrix4(TS),!(i.boundingBox!==null&&nl.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,nl)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,a=s.index,l=s.attributes.position,A=s.attributes.uv,h=s.attributes.uv1,d=s.attributes.normal,f=s.groups,g=s.drawRange;if(a!==null)if(Array.isArray(o))for(let E=0,v=f.length;Et.far?null:{distance:A,point:Nf.clone(),object:n}}function Lf(n,e,t,i,r,s,o,a,l,A){n.getVertexPosition(a,Sc),n.getVertexPosition(l,_c),n.getVertexPosition(A,wc);const h=LL(n,e,t,i,Sc,_c,wc,Pf);if(h){r&&(Tf.fromBufferAttribute(r,a),Df.fromBufferAttribute(r,l),bf.fromBufferAttribute(r,A),h.uv=yr.getInterpolation(Pf,Sc,_c,wc,Tf,Df,bf,new Se)),s&&(Tf.fromBufferAttribute(s,a),Df.fromBufferAttribute(s,l),bf.fromBufferAttribute(s,A),h.uv1=yr.getInterpolation(Pf,Sc,_c,wc,Tf,Df,bf,new Se),h.uv2=h.uv1),o&&(bS.fromBufferAttribute(o,a),PS.fromBufferAttribute(o,l),NS.fromBufferAttribute(o,A),h.normal=yr.getInterpolation(Pf,Sc,_c,wc,bS,PS,NS,new G),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const d={a,b:l,c:A,normal:new G,materialIndex:0};yr.getNormal(Sc,_c,wc,d.normal),h.face=d}return h}class Wl extends Pt{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const l=[],A=[],h=[],d=[];let f=0,g=0;E("z","y","x",-1,-1,i,t,e,o,s,0),E("z","y","x",1,-1,i,t,-e,o,s,1),E("x","z","y",1,1,e,i,t,r,o,2),E("x","z","y",1,-1,e,i,-t,r,o,3),E("x","y","z",1,-1,e,t,i,r,s,4),E("x","y","z",-1,-1,e,t,-i,r,s,5),this.setIndex(l),this.setAttribute("position",new at(A,3)),this.setAttribute("normal",new at(h,3)),this.setAttribute("uv",new at(d,2));function E(v,C,p,y,I,B,R,w,T,U,K){const M=B/T,P=R/U,q=B/2,ge=R/2,J=w/2,ce=T+1,se=U+1;let de=0,F=0;const ee=new G;for(let te=0;te0?1:-1,h.push(ee.x,ee.y,ee.z),d.push(ye/T),d.push(1-te/U),de+=1}}for(let te=0;te>8&255]+Qi[n>>16&255]+Qi[n>>24&255]+"-"+Qi[e&255]+Qi[e>>8&255]+"-"+Qi[e>>16&15|64]+Qi[e>>24&255]+"-"+Qi[t&63|128]+Qi[t>>8&255]+"-"+Qi[t>>16&255]+Qi[t>>24&255]+Qi[i&255]+Qi[i>>8&255]+Qi[i>>16&255]+Qi[i>>24&255]).toLowerCase()}function kn(n,e,t){return Math.max(e,Math.min(t,n))}function Kv(n,e){return(n%e+e)%e}function AN(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function hN(n,e,t){return n!==e?(t-n)/(e-n):0}function KA(n,e,t){return(1-t)*n+t*e}function dN(n,e,t,i){return KA(n,e,1-Math.exp(-t*i))}function fN(n,e=1){return e-Math.abs(Kv(n,e*2)-e)}function pN(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function gN(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function mN(n,e){return n+Math.floor(Math.random()*(e-n+1))}function EN(n,e){return n+Math.random()*(e-n)}function CN(n){return n*(.5-Math.random())}function yN(n){n!==void 0&&(QS=n);let e=QS+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function vN(n){return n*kl}function IN(n){return n*wu}function a1(n){return(n&n-1)===0&&n!==0}function xN(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function Mg(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function BN(n,e,t,i,r){const s=Math.cos,o=Math.sin,a=s(t/2),l=o(t/2),A=s((e+i)/2),h=o((e+i)/2),d=s((e-i)/2),f=o((e-i)/2),g=s((i-e)/2),E=o((i-e)/2);switch(r){case"XYX":n.set(a*h,l*d,l*f,a*A);break;case"YZY":n.set(l*f,a*h,l*d,a*A);break;case"ZXZ":n.set(l*d,l*f,a*h,a*A);break;case"XZX":n.set(a*h,l*E,l*g,a*A);break;case"YXY":n.set(l*g,a*h,l*E,a*A);break;case"ZYZ":n.set(l*E,l*g,a*h,a*A);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Vi(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function bt(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}const SN={DEG2RAD:kl,RAD2DEG:wu,generateUUID:Sr,clamp:kn,euclideanModulo:Kv,mapLinear:AN,inverseLerp:hN,lerp:KA,damp:dN,pingpong:fN,smoothstep:pN,smootherstep:gN,randInt:mN,randFloat:EN,randFloatSpread:CN,seededRandom:yN,degToRad:vN,radToDeg:IN,isPowerOfTwo:a1,ceilPowerOfTwo:xN,floorPowerOfTwo:Mg,setQuaternionFromProperEuler:BN,normalize:bt,denormalize:Vi};class Be{constructor(e=0,t=0){Be.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(kn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Rt{constructor(e,t,i,r,s,o,a,l,A){Rt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,l,A)}set(e,t,i,r,s,o,a,l,A){const h=this.elements;return h[0]=e,h[1]=r,h[2]=a,h[3]=t,h[4]=s,h[5]=l,h[6]=i,h[7]=o,h[8]=A,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[3],l=i[6],A=i[1],h=i[4],d=i[7],f=i[2],g=i[5],E=i[8],v=r[0],C=r[3],p=r[6],y=r[1],I=r[4],B=r[7],R=r[2],M=r[5],T=r[8];return s[0]=o*v+a*y+l*R,s[3]=o*C+a*I+l*M,s[6]=o*p+a*B+l*T,s[1]=A*v+h*y+d*R,s[4]=A*C+h*I+d*M,s[7]=A*p+h*B+d*T,s[2]=f*v+g*y+E*R,s[5]=f*C+g*I+E*M,s[8]=f*p+g*B+E*T,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8];return t*o*h-t*a*A-i*s*h+i*a*l+r*s*A-r*o*l}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8],d=h*o-a*A,f=a*l-h*s,g=A*s-o*l,E=t*d+i*f+r*g;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);const v=1/E;return e[0]=d*v,e[1]=(r*A-h*i)*v,e[2]=(a*i-r*o)*v,e[3]=f*v,e[4]=(h*t-r*l)*v,e[5]=(r*s-a*t)*v,e[6]=g*v,e[7]=(i*l-A*t)*v,e[8]=(o*t-i*s)*v,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,a){const l=Math.cos(s),A=Math.sin(s);return this.set(i*l,i*A,-i*(l*o+A*a)+o+e,-r*A,r*l,-r*(-A*o+l*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(AE.makeScale(e,t)),this}rotate(e){return this.premultiply(AE.makeRotation(-e)),this}translate(e,t){return this.premultiply(AE.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const AE=new Rt;function xR(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const _N={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function su(n,e){return new _N[n](e)}function Th(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function BR(){const n=Th("canvas");return n.style.display="block",n}const RS={};function Ol(n){n in RS||(RS[n]=!0,console.warn(n))}const TS=new Rt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),DS=new Rt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),yf={[ks]:{transfer:_h,primaries:wh,toReference:n=>n,fromReference:n=>n},[Vn]:{transfer:gn,primaries:wh,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[Jh]:{transfer:_h,primaries:Mh,toReference:n=>n.applyMatrix3(DS),fromReference:n=>n.applyMatrix3(TS)},[im]:{transfer:gn,primaries:Mh,toReference:n=>n.convertSRGBToLinear().applyMatrix3(DS),fromReference:n=>n.applyMatrix3(TS).convertLinearToSRGB()}},wN=new Set([ks,Jh]),cn={enabled:!0,_workingColorSpace:ks,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!wN.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;const i=yf[e].toReference,r=yf[t].fromReference;return r(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return yf[n].primaries},getTransfer:function(n){return n===yr?_h:yf[n].transfer}};function gu(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function hE(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let Cc;class qv{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{Cc===void 0&&(Cc=Th("canvas")),Cc.width=e.width,Cc.height=e.height;const i=Cc.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=Cc}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=Th("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==em)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case vh:e.x=e.x-Math.floor(e.x);break;case bi:e.x=e.x<0?0:1;break;case Ih:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case vh:e.y=e.y-Math.floor(e.y);break;case bi:e.y=e.y<0?0:1;break;case Ih:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Ol("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===Vn?wa:Xv}set encoding(e){Ol("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===wa?Vn:yr}}Mn.DEFAULT_IMAGE=null;Mn.DEFAULT_MAPPING=em;Mn.DEFAULT_ANISOTROPY=1;class un{constructor(e=0,t=0,i=0,r=1){un.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const l=e.elements,A=l[0],h=l[4],d=l[8],f=l[1],g=l[5],E=l[9],v=l[2],C=l[6],p=l[10];if(Math.abs(h-f)<.01&&Math.abs(d-v)<.01&&Math.abs(E-C)<.01){if(Math.abs(h+f)<.1&&Math.abs(d+v)<.1&&Math.abs(E+C)<.1&&Math.abs(A+g+p-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const I=(A+1)/2,B=(g+1)/2,R=(p+1)/2,M=(h+f)/4,T=(d+v)/4,U=(E+C)/4;return I>B&&I>R?I<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(I),r=M/i,s=T/i):B>R?B<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(B),i=M/r,s=U/r):R<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(R),i=T/s,r=U/s),this.set(i,r,s,t),this}let y=Math.sqrt((C-E)*(C-E)+(d-v)*(d-v)+(f-h)*(f-h));return Math.abs(y)<.001&&(y=1),this.x=(C-E)/y,this.y=(d-v)/y,this.z=(f-h)/y,this.w=Math.acos((A+g+p-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class SR extends _o{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new un(0,0,e,t),this.scissorTest=!1,this.viewport=new un(0,0,e,t);const r={width:e,height:t,depth:1};i.encoding!==void 0&&(Ol("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===wa?Vn:yr),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:xn,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},i),this.texture=new Mn(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps,this.texture.internalFormat=i.internalFormat,this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.depthTexture=i.depthTexture,this.samples=i.samples}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new Pl(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Jr extends SR{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}}class rm extends Mn{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=zn,this.minFilter=zn,this.wrapR=bi,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class RN extends Jr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new rm(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class Zv extends Mn{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=zn,this.minFilter=zn,this.wrapR=bi,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class TN extends Jr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new Zv(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class DN extends Jr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const s=this.texture;this.texture=[];for(let o=0;o=0?1:-1,I=1-p*p;if(I>Number.EPSILON){const R=Math.sqrt(I),M=Math.atan2(R,p*y);C=Math.sin(C*M)/R,a=Math.sin(a*M)/R}const B=a*y;if(l=l*C+f*B,A=A*C+g*B,h=h*C+E*B,d=d*C+v*B,C===1-a){const R=1/Math.sqrt(l*l+A*A+h*h+d*d);l*=R,A*=R,h*=R,d*=R}}e[t]=l,e[t+1]=A,e[t+2]=h,e[t+3]=d}static multiplyQuaternionsFlat(e,t,i,r,s,o){const a=i[r],l=i[r+1],A=i[r+2],h=i[r+3],d=s[o],f=s[o+1],g=s[o+2],E=s[o+3];return e[t]=a*E+h*d+l*g-A*f,e[t+1]=l*E+h*f+A*d-a*g,e[t+2]=A*E+h*g+a*f-l*d,e[t+3]=h*E-a*d-l*f-A*g,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,a=Math.cos,l=Math.sin,A=a(i/2),h=a(r/2),d=a(s/2),f=l(i/2),g=l(r/2),E=l(s/2);switch(o){case"XYZ":this._x=f*h*d+A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d-f*g*E;break;case"YXZ":this._x=f*h*d+A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d+f*g*E;break;case"ZXY":this._x=f*h*d-A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d-f*g*E;break;case"ZYX":this._x=f*h*d-A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d+f*g*E;break;case"YZX":this._x=f*h*d+A*g*E,this._y=A*g*d+f*h*E,this._z=A*h*E-f*g*d,this._w=A*h*d-f*g*E;break;case"XZY":this._x=f*h*d-A*g*E,this._y=A*g*d-f*h*E,this._z=A*h*E+f*g*d,this._w=A*h*d+f*g*E;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],a=t[5],l=t[9],A=t[2],h=t[6],d=t[10],f=i+a+d;if(f>0){const g=.5/Math.sqrt(f+1);this._w=.25/g,this._x=(h-l)*g,this._y=(s-A)*g,this._z=(o-r)*g}else if(i>a&&i>d){const g=2*Math.sqrt(1+i-a-d);this._w=(h-l)/g,this._x=.25*g,this._y=(r+o)/g,this._z=(s+A)/g}else if(a>d){const g=2*Math.sqrt(1+a-i-d);this._w=(s-A)/g,this._x=(r+o)/g,this._y=.25*g,this._z=(l+h)/g}else{const g=2*Math.sqrt(1+d-i-a);this._w=(o-r)/g,this._x=(s+A)/g,this._y=(l+h)/g,this._z=.25*g}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(kn(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,a=t._x,l=t._y,A=t._z,h=t._w;return this._x=i*h+o*a+r*A-s*l,this._y=r*h+o*l+s*a-i*A,this._z=s*h+o*A+i*l-r*a,this._w=o*h-i*a-r*l-s*A,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let a=o*e._w+i*e._x+r*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const l=1-a*a;if(l<=Number.EPSILON){const g=1-t;return this._w=g*o+t*this._w,this._x=g*i+t*this._x,this._y=g*r+t*this._y,this._z=g*s+t*this._z,this.normalize(),this}const A=Math.sqrt(l),h=Math.atan2(A,a),d=Math.sin((1-t)*h)/A,f=Math.sin(t*h)/A;return this._w=o*d+this._w*f,this._x=i*d+this._x*f,this._y=r*d+this._y*f,this._z=s*d+this._z*f,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(s),i*Math.cos(s),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class H{constructor(e=0,t=0,i=0){H.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(bS.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(bS.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,a=e.z,l=e.w,A=2*(o*r-a*i),h=2*(a*t-s*r),d=2*(s*i-o*t);return this.x=t+l*A+o*d-a*h,this.y=i+l*h+a*A-s*d,this.z=r+l*d+s*h-o*A,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,a=t.y,l=t.z;return this.x=r*l-s*a,this.y=s*o-i*l,this.z=i*a-r*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return fE.copy(this).projectOnVector(e),this.sub(fE)}reflect(e){return this.sub(fE.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(kn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const fE=new H,bS=new Yn;class ri{constructor(e=new H(1/0,1/0,1/0),t=new H(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,es),es.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(pA),If.subVectors(this.max,pA),yc.subVectors(e.a,pA),vc.subVectors(e.b,pA),Ic.subVectors(e.c,pA),Zo.subVectors(vc,yc),$o.subVectors(Ic,vc),ll.subVectors(yc,Ic);let t=[0,-Zo.z,Zo.y,0,-$o.z,$o.y,0,-ll.z,ll.y,Zo.z,0,-Zo.x,$o.z,0,-$o.x,ll.z,0,-ll.x,-Zo.y,Zo.x,0,-$o.y,$o.x,0,-ll.y,ll.x,0];return!pE(t,yc,vc,Ic,If)||(t=[1,0,0,0,1,0,0,0,1],!pE(t,yc,vc,Ic,If))?!1:(xf.crossVectors(Zo,$o),t=[xf.x,xf.y,xf.z],pE(t,yc,vc,Ic,If))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,es).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(es).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:($s[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),$s[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),$s[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),$s[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),$s[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),$s[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),$s[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),$s[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints($s),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const $s=[new H,new H,new H,new H,new H,new H,new H,new H],es=new H,vf=new ri,yc=new H,vc=new H,Ic=new H,Zo=new H,$o=new H,ll=new H,pA=new H,If=new H,xf=new H,cl=new H;function pE(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){cl.fromArray(n,s);const a=r.x*Math.abs(cl.x)+r.y*Math.abs(cl.y)+r.z*Math.abs(cl.z),l=e.dot(cl),A=t.dot(cl),h=i.dot(cl);if(Math.max(-Math.max(l,A,h),Math.min(l,A,h))>a)return!1}return!0}const bN=new ri,gA=new H,gE=new H;class $n{constructor(e=new H,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):bN.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;gA.subVectors(e,this.center);const t=gA.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(gA,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(gE.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(gA.copy(e.center).add(gE)),this.expandByPoint(gA.copy(e.center).sub(gE))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const eo=new H,mE=new H,Bf=new H,ea=new H,EE=new H,Sf=new H,CE=new H;class ka{constructor(e=new H,t=new H(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,eo)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=eo.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(eo.copy(this.origin).addScaledVector(this.direction,t),eo.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){mE.copy(e).add(t).multiplyScalar(.5),Bf.copy(t).sub(e).normalize(),ea.copy(this.origin).sub(mE);const s=e.distanceTo(t)*.5,o=-this.direction.dot(Bf),a=ea.dot(this.direction),l=-ea.dot(Bf),A=ea.lengthSq(),h=Math.abs(1-o*o);let d,f,g,E;if(h>0)if(d=o*l-a,f=o*a-l,E=s*h,d>=0)if(f>=-E)if(f<=E){const v=1/h;d*=v,f*=v,g=d*(d+o*f+2*a)+f*(o*d+f+2*l)+A}else f=s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;else f=-s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;else f<=-E?(d=Math.max(0,-(-o*s+a)),f=d>0?-s:Math.min(Math.max(-s,-l),s),g=-d*d+f*(f+2*l)+A):f<=E?(d=0,f=Math.min(Math.max(-s,-l),s),g=f*(f+2*l)+A):(d=Math.max(0,-(o*s+a)),f=d>0?s:Math.min(Math.max(-s,-l),s),g=-d*d+f*(f+2*l)+A);else f=o>0?-s:s,d=Math.max(0,-(o*f+a)),g=-d*d+f*(f+2*l)+A;return i&&i.copy(this.origin).addScaledVector(this.direction,d),r&&r.copy(mE).addScaledVector(Bf,f),g}intersectSphere(e,t){eo.subVectors(e.center,this.origin);const i=eo.dot(this.direction),r=eo.dot(eo)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=i-o,l=i+o;return l<0?null:a<0?this.at(l,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,a,l;const A=1/this.direction.x,h=1/this.direction.y,d=1/this.direction.z,f=this.origin;return A>=0?(i=(e.min.x-f.x)*A,r=(e.max.x-f.x)*A):(i=(e.max.x-f.x)*A,r=(e.min.x-f.x)*A),h>=0?(s=(e.min.y-f.y)*h,o=(e.max.y-f.y)*h):(s=(e.max.y-f.y)*h,o=(e.min.y-f.y)*h),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(a=(e.min.z-f.z)*d,l=(e.max.z-f.z)*d):(a=(e.max.z-f.z)*d,l=(e.min.z-f.z)*d),i>l||a>r)||((a>i||i!==i)&&(i=a),(l=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,eo)!==null}intersectTriangle(e,t,i,r,s){EE.subVectors(t,e),Sf.subVectors(i,e),CE.crossVectors(EE,Sf);let o=this.direction.dot(CE),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;ea.subVectors(this.origin,e);const l=a*this.direction.dot(Sf.crossVectors(ea,Sf));if(l<0)return null;const A=a*this.direction.dot(EE.cross(ea));if(A<0||l+A>o)return null;const h=-a*ea.dot(CE);return h<0?null:this.at(h/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ht{constructor(e,t,i,r,s,o,a,l,A,h,d,f,g,E,v,C){ht.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,l,A,h,d,f,g,E,v,C)}set(e,t,i,r,s,o,a,l,A,h,d,f,g,E,v,C){const p=this.elements;return p[0]=e,p[4]=t,p[8]=i,p[12]=r,p[1]=s,p[5]=o,p[9]=a,p[13]=l,p[2]=A,p[6]=h,p[10]=d,p[14]=f,p[3]=g,p[7]=E,p[11]=v,p[15]=C,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ht().fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/xc.setFromMatrixColumn(e,0).length(),s=1/xc.setFromMatrixColumn(e,1).length(),o=1/xc.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),a=Math.sin(i),l=Math.cos(r),A=Math.sin(r),h=Math.cos(s),d=Math.sin(s);if(e.order==="XYZ"){const f=o*h,g=o*d,E=a*h,v=a*d;t[0]=l*h,t[4]=-l*d,t[8]=A,t[1]=g+E*A,t[5]=f-v*A,t[9]=-a*l,t[2]=v-f*A,t[6]=E+g*A,t[10]=o*l}else if(e.order==="YXZ"){const f=l*h,g=l*d,E=A*h,v=A*d;t[0]=f+v*a,t[4]=E*a-g,t[8]=o*A,t[1]=o*d,t[5]=o*h,t[9]=-a,t[2]=g*a-E,t[6]=v+f*a,t[10]=o*l}else if(e.order==="ZXY"){const f=l*h,g=l*d,E=A*h,v=A*d;t[0]=f-v*a,t[4]=-o*d,t[8]=E+g*a,t[1]=g+E*a,t[5]=o*h,t[9]=v-f*a,t[2]=-o*A,t[6]=a,t[10]=o*l}else if(e.order==="ZYX"){const f=o*h,g=o*d,E=a*h,v=a*d;t[0]=l*h,t[4]=E*A-g,t[8]=f*A+v,t[1]=l*d,t[5]=v*A+f,t[9]=g*A-E,t[2]=-A,t[6]=a*l,t[10]=o*l}else if(e.order==="YZX"){const f=o*l,g=o*A,E=a*l,v=a*A;t[0]=l*h,t[4]=v-f*d,t[8]=E*d+g,t[1]=d,t[5]=o*h,t[9]=-a*h,t[2]=-A*h,t[6]=g*d+E,t[10]=f-v*d}else if(e.order==="XZY"){const f=o*l,g=o*A,E=a*l,v=a*A;t[0]=l*h,t[4]=-d,t[8]=A*h,t[1]=f*d+v,t[5]=o*h,t[9]=g*d-E,t[2]=E*d-g,t[6]=a*h,t[10]=v*d+f}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(PN,e,LN)}lookAt(e,t,i){const r=this.elements;return mr.subVectors(e,t),mr.lengthSq()===0&&(mr.z=1),mr.normalize(),ta.crossVectors(i,mr),ta.lengthSq()===0&&(Math.abs(i.z)===1?mr.x+=1e-4:mr.z+=1e-4,mr.normalize(),ta.crossVectors(i,mr)),ta.normalize(),_f.crossVectors(mr,ta),r[0]=ta.x,r[4]=_f.x,r[8]=mr.x,r[1]=ta.y,r[5]=_f.y,r[9]=mr.y,r[2]=ta.z,r[6]=_f.z,r[10]=mr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[4],l=i[8],A=i[12],h=i[1],d=i[5],f=i[9],g=i[13],E=i[2],v=i[6],C=i[10],p=i[14],y=i[3],I=i[7],B=i[11],R=i[15],M=r[0],T=r[4],U=r[8],K=r[12],w=r[1],P=r[5],q=r[9],fe=r[13],J=r[2],re=r[6],ne=r[10],ue=r[14],F=r[3],ee=r[7],te=r[11],Ae=r[15];return s[0]=o*M+a*w+l*J+A*F,s[4]=o*T+a*P+l*re+A*ee,s[8]=o*U+a*q+l*ne+A*te,s[12]=o*K+a*fe+l*ue+A*Ae,s[1]=h*M+d*w+f*J+g*F,s[5]=h*T+d*P+f*re+g*ee,s[9]=h*U+d*q+f*ne+g*te,s[13]=h*K+d*fe+f*ue+g*Ae,s[2]=E*M+v*w+C*J+p*F,s[6]=E*T+v*P+C*re+p*ee,s[10]=E*U+v*q+C*ne+p*te,s[14]=E*K+v*fe+C*ue+p*Ae,s[3]=y*M+I*w+B*J+R*F,s[7]=y*T+I*P+B*re+R*ee,s[11]=y*U+I*q+B*ne+R*te,s[15]=y*K+I*fe+B*ue+R*Ae,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],a=e[5],l=e[9],A=e[13],h=e[2],d=e[6],f=e[10],g=e[14],E=e[3],v=e[7],C=e[11],p=e[15];return E*(+s*l*d-r*A*d-s*a*f+i*A*f+r*a*g-i*l*g)+v*(+t*l*g-t*A*f+s*o*f-r*o*g+r*A*h-s*l*h)+C*(+t*A*d-t*a*g-s*o*d+i*o*g+s*a*h-i*A*h)+p*(-r*a*h-t*l*d+t*a*f+r*o*d-i*o*f+i*l*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],A=e[7],h=e[8],d=e[9],f=e[10],g=e[11],E=e[12],v=e[13],C=e[14],p=e[15],y=d*C*A-v*f*A+v*l*g-a*C*g-d*l*p+a*f*p,I=E*f*A-h*C*A-E*l*g+o*C*g+h*l*p-o*f*p,B=h*v*A-E*d*A+E*a*g-o*v*g-h*a*p+o*d*p,R=E*d*l-h*v*l-E*a*f+o*v*f+h*a*C-o*d*C,M=t*y+i*I+r*B+s*R;if(M===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/M;return e[0]=y*T,e[1]=(v*f*s-d*C*s-v*r*g+i*C*g+d*r*p-i*f*p)*T,e[2]=(a*C*s-v*l*s+v*r*A-i*C*A-a*r*p+i*l*p)*T,e[3]=(d*l*s-a*f*s-d*r*A+i*f*A+a*r*g-i*l*g)*T,e[4]=I*T,e[5]=(h*C*s-E*f*s+E*r*g-t*C*g-h*r*p+t*f*p)*T,e[6]=(E*l*s-o*C*s-E*r*A+t*C*A+o*r*p-t*l*p)*T,e[7]=(o*f*s-h*l*s+h*r*A-t*f*A-o*r*g+t*l*g)*T,e[8]=B*T,e[9]=(E*d*s-h*v*s-E*i*g+t*v*g+h*i*p-t*d*p)*T,e[10]=(o*v*s-E*a*s+E*i*A-t*v*A-o*i*p+t*a*p)*T,e[11]=(h*a*s-o*d*s-h*i*A+t*d*A+o*i*g-t*a*g)*T,e[12]=R*T,e[13]=(h*v*r-E*d*r+E*i*f-t*v*f-h*i*C+t*d*C)*T,e[14]=(E*a*r-o*v*r-E*i*l+t*v*l+o*i*C-t*a*C)*T,e[15]=(o*d*r-h*a*r+h*i*l-t*d*l-o*i*f+t*a*f)*T,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,a=e.y,l=e.z,A=s*o,h=s*a;return this.set(A*o+i,A*a-r*l,A*l+r*a,0,A*a+r*l,h*a+i,h*l-r*o,0,A*l-r*a,h*l+r*o,s*l*l+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,a=t._z,l=t._w,A=s+s,h=o+o,d=a+a,f=s*A,g=s*h,E=s*d,v=o*h,C=o*d,p=a*d,y=l*A,I=l*h,B=l*d,R=i.x,M=i.y,T=i.z;return r[0]=(1-(v+p))*R,r[1]=(g+B)*R,r[2]=(E-I)*R,r[3]=0,r[4]=(g-B)*M,r[5]=(1-(f+p))*M,r[6]=(C+y)*M,r[7]=0,r[8]=(E+I)*T,r[9]=(C-y)*T,r[10]=(1-(f+v))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=xc.set(r[0],r[1],r[2]).length();const o=xc.set(r[4],r[5],r[6]).length(),a=xc.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],ts.copy(this);const A=1/s,h=1/o,d=1/a;return ts.elements[0]*=A,ts.elements[1]*=A,ts.elements[2]*=A,ts.elements[4]*=h,ts.elements[5]*=h,ts.elements[6]*=h,ts.elements[8]*=d,ts.elements[9]*=d,ts.elements[10]*=d,t.setFromRotationMatrix(ts),i.x=s,i.y=o,i.z=a,this}makePerspective(e,t,i,r,s,o,a=bs){const l=this.elements,A=2*s/(t-e),h=2*s/(i-r),d=(t+e)/(t-e),f=(i+r)/(i-r);let g,E;if(a===bs)g=-(o+s)/(o-s),E=-2*o*s/(o-s);else if(a===Rh)g=-o/(o-s),E=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return l[0]=A,l[4]=0,l[8]=d,l[12]=0,l[1]=0,l[5]=h,l[9]=f,l[13]=0,l[2]=0,l[6]=0,l[10]=g,l[14]=E,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,i,r,s,o,a=bs){const l=this.elements,A=1/(t-e),h=1/(i-r),d=1/(o-s),f=(t+e)*A,g=(i+r)*h;let E,v;if(a===bs)E=(o+s)*d,v=-2*d;else if(a===Rh)E=s*d,v=-1*d;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return l[0]=2*A,l[4]=0,l[8]=0,l[12]=-f,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-g,l[2]=0,l[6]=0,l[10]=v,l[14]=-E,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const xc=new H,ts=new ht,PN=new H(0,0,0),LN=new H(1,1,1),ta=new H,_f=new H,mr=new H,PS=new ht,LS=new Yn;class Pu{constructor(e=0,t=0,i=0,r=Pu.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const r=e.elements,s=r[0],o=r[4],a=r[8],l=r[1],A=r[5],h=r[9],d=r[2],f=r[6],g=r[10];switch(t){case"XYZ":this._y=Math.asin(kn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,g),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(f,A),this._z=0);break;case"YXZ":this._x=Math.asin(-kn(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,g),this._z=Math.atan2(l,A)):(this._y=Math.atan2(-d,s),this._z=0);break;case"ZXY":this._x=Math.asin(kn(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-d,g),this._z=Math.atan2(-o,A)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-kn(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(f,g),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-o,A));break;case"YZX":this._z=Math.asin(kn(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,A),this._y=Math.atan2(-d,s)):(this._x=0,this._y=Math.atan2(a,g));break;case"XZY":this._z=Math.asin(-kn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(f,A),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,g),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return PS.makeRotationFromQuaternion(e),this.setFromRotationMatrix(PS,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return LS.setFromEuler(this),this.setFromQuaternion(LS,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Pu.DEFAULT_ORDER="XYZ";class Gl{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,l){return a[l.uuid]===void 0&&(a[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(e.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const l=a.shapes;if(Array.isArray(l))for(let A=0,h=l.length;A0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(i.geometries=a),l.length>0&&(i.materials=l),A.length>0&&(i.textures=A),h.length>0&&(i.images=h),d.length>0&&(i.shapes=d),f.length>0&&(i.skeletons=f),g.length>0&&(i.animations=g),E.length>0&&(i.nodes=E)}return i.object=r,i;function o(a){const l=[];for(const A in a){const h=a[A];delete h.metadata,l.push(h)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){ns.subVectors(r,t),no.subVectors(i,t),yE.subVectors(e,t);const o=ns.dot(ns),a=ns.dot(no),l=ns.dot(yE),A=no.dot(no),h=no.dot(yE),d=o*A-a*a;if(d===0)return s.set(0,0,0),null;const f=1/d,g=(A*l-a*h)*f,E=(o*h-a*l)*f;return s.set(1-g-E,E,g)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,io)===null?!1:io.x>=0&&io.y>=0&&io.x+io.y<=1}static getInterpolation(e,t,i,r,s,o,a,l){return this.getBarycoord(e,t,i,r,io)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(s,io.x),l.addScaledVector(o,io.y),l.addScaledVector(a,io.z),l)}static isFrontFacing(e,t,i,r){return ns.subVectors(i,t),no.subVectors(e,t),ns.cross(no).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return ns.subVectors(this.c,this.b),no.subVectors(this.a,this.b),ns.cross(no).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return vr.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return vr.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return vr.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return vr.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return vr.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,a;Sc.subVectors(r,i),_c.subVectors(s,i),vE.subVectors(e,i);const l=Sc.dot(vE),A=_c.dot(vE);if(l<=0&&A<=0)return t.copy(i);IE.subVectors(e,r);const h=Sc.dot(IE),d=_c.dot(IE);if(h>=0&&d<=h)return t.copy(r);const f=l*d-h*A;if(f<=0&&l>=0&&h<=0)return o=l/(l-h),t.copy(i).addScaledVector(Sc,o);xE.subVectors(e,s);const g=Sc.dot(xE),E=_c.dot(xE);if(E>=0&&g<=E)return t.copy(s);const v=g*A-l*E;if(v<=0&&A>=0&&E<=0)return a=A/(A-E),t.copy(i).addScaledVector(_c,a);const C=h*E-g*d;if(C<=0&&d-h>=0&&g-E>=0)return OS.subVectors(s,r),a=(d-h)/(d-h+(g-E)),t.copy(r).addScaledVector(OS,a);const p=1/(C+v+f);return o=v*p,a=f*p,t.copy(i).addScaledVector(Sc,o).addScaledVector(_c,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const _R={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},na={h:0,s:0,l:0},Mf={h:0,s:0,l:0};function BE(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class Ke{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Vn){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,cn.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=cn.workingColorSpace){return this.r=e,this.g=t,this.b=i,cn.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=cn.workingColorSpace){if(e=Kv(e,1),t=kn(t,0,1),i=kn(i,0,1),t===0)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=BE(o,s,e+1/3),this.g=BE(o,s,e),this.b=BE(o,s,e-1/3)}return cn.toWorkingColorSpace(this,r),this}setStyle(e,t=Vn){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=Vn){const i=_R[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=gu(e.r),this.g=gu(e.g),this.b=gu(e.b),this}copyLinearToSRGB(e){return this.r=hE(e.r),this.g=hE(e.g),this.b=hE(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Vn){return cn.fromWorkingColorSpace(Ri.copy(this),e),Math.round(kn(Ri.r*255,0,255))*65536+Math.round(kn(Ri.g*255,0,255))*256+Math.round(kn(Ri.b*255,0,255))}getHexString(e=Vn){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=cn.workingColorSpace){cn.fromWorkingColorSpace(Ri.copy(this),t);const i=Ri.r,r=Ri.g,s=Ri.b,o=Math.max(i,r,s),a=Math.min(i,r,s);let l,A;const h=(a+o)/2;if(a===o)l=0,A=0;else{const d=o-a;switch(A=h<=.5?d/(o+a):d/(2-o-a),o){case i:l=(r-s)/d+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Fl&&(i.blending=this.blending),this.side!==Xr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==Bg&&(i.blendSrc=this.blendSrc),this.blendDst!==Sg&&(i.blendDst=this.blendDst),this.blendEquation!==da&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==Eh&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==s1&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==xl&&(i.stencilFail=this.stencilFail),this.stencilZFail!==xl&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==xl&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(s){const o=[];for(const a in s){const l=s[a];delete l.metadata,o.push(l)}return o}if(t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(t!==null){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class lr extends fi{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Ke(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Xh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const uo=HN();function HN(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let l=0;l<256;++l){const A=l-127;A<-27?(i[l]=0,i[l|256]=32768,r[l]=24,r[l|256]=24):A<-14?(i[l]=1024>>-A-14,i[l|256]=1024>>-A-14|32768,r[l]=-A-1,r[l|256]=-A-1):A<=15?(i[l]=A+15<<10,i[l|256]=A+15<<10|32768,r[l]=13,r[l|256]=13):A<128?(i[l]=31744,i[l|256]=64512,r[l]=24,r[l|256]=24):(i[l]=31744,i[l|256]=64512,r[l]=13,r[l|256]=13)}const s=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let l=1;l<1024;++l){let A=l<<13,h=0;for(;!(A&8388608);)A<<=1,h-=8388608;A&=-8388609,h+=947912704,s[l]=A|h}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)o[l]=l<<23;o[31]=1199570944,o[32]=2147483648;for(let l=33;l<63;++l)o[l]=2147483648+(l-32<<23);o[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(a[l]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:o,offsetTable:a}}function nr(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=kn(n,-65504,65504),uo.floatView[0]=n;const e=uo.uint32View[0],t=e>>23&511;return uo.baseTable[t]+((e&8388607)>>uo.shiftTable[t])}function PA(n){const e=n>>10;return uo.uint32View[0]=uo.mantissaTable[uo.offsetTable[e]+(n&1023)]+uo.exponentTable[e],uo.floatView[0]}const zN={toHalfFloat:nr,fromHalfFloat:PA},qn=new H,Qf=new Be;class ln{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=Qh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Or,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Ol("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const A in l)l[A]!==void 0&&(e[A]=l[A]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const l in i){const A=i[l];e.data.attributes[l]=A.toJSON(e.data)}const r={};let s=!1;for(const l in this.morphAttributes){const A=this.morphAttributes[l],h=[];for(let d=0,f=A.length;d0&&(r[l]=h,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(t));const r=e.attributes;for(const A in r){const h=r[A];this.setAttribute(A,h.clone(t))}const s=e.morphAttributes;for(const A in s){const h=[],d=s[A];for(let f=0,g=d.length;f0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(GS.copy(s).invert(),ul.copy(e.ray).applyMatrix4(GS),!(i.boundingBox!==null&&ul.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,ul)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,a=s.index,l=s.attributes.position,A=s.attributes.uv,h=s.attributes.uv1,d=s.attributes.normal,f=s.groups,g=s.drawRange;if(a!==null)if(Array.isArray(o))for(let E=0,v=f.length;Et.far?null:{distance:A,point:Nf.clone(),object:n}}function Uf(n,e,t,i,r,s,o,a,l,A){n.getVertexPosition(a,Mc),n.getVertexPosition(l,Qc),n.getVertexPosition(A,Rc);const h=ZN(n,e,t,i,Mc,Qc,Rc,Lf);if(h){r&&(Df.fromBufferAttribute(r,a),bf.fromBufferAttribute(r,l),Pf.fromBufferAttribute(r,A),h.uv=vr.getInterpolation(Lf,Mc,Qc,Rc,Df,bf,Pf,new Be)),s&&(Df.fromBufferAttribute(s,a),bf.fromBufferAttribute(s,l),Pf.fromBufferAttribute(s,A),h.uv1=vr.getInterpolation(Lf,Mc,Qc,Rc,Df,bf,Pf,new Be),h.uv2=h.uv1),o&&(zS.fromBufferAttribute(o,a),VS.fromBufferAttribute(o,l),WS.fromBufferAttribute(o,A),h.normal=vr.getInterpolation(Lf,Mc,Qc,Rc,zS,VS,WS,new H),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const d={a,b:l,c:A,normal:new H,materialIndex:0};vr.getNormal(Mc,Qc,Rc,d.normal),h.face=d}return h}class ec extends Pt{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const l=[],A=[],h=[],d=[];let f=0,g=0;E("z","y","x",-1,-1,i,t,e,o,s,0),E("z","y","x",1,-1,i,t,-e,o,s,1),E("x","z","y",1,1,e,i,t,r,o,2),E("x","z","y",1,-1,e,i,-t,r,o,3),E("x","y","z",1,-1,e,t,i,r,s,4),E("x","y","z",-1,-1,e,t,-i,r,s,5),this.setIndex(l),this.setAttribute("position",new at(A,3)),this.setAttribute("normal",new at(h,3)),this.setAttribute("uv",new at(d,2));function E(v,C,p,y,I,B,R,M,T,U,K){const w=B/T,P=R/U,q=B/2,fe=R/2,J=M/2,re=T+1,ne=U+1;let ue=0,F=0;const ee=new H;for(let te=0;te0?1:-1,h.push(ee.x,ee.y,ee.z),d.push(ye/T),d.push(1-te/U),ue+=1}}for(let te=0;te0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class Xh extends zt{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ht,this.projectionMatrix=new ht,this.projectionMatrixInverse=new ht,this.coordinateSystem=Ts}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const zo=new G,LS=new Se,US=new Se;class ni extends Xh{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=Bu*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(Rl*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Bu*2*Math.atan(Math.tan(Rl*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){zo.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(zo.x,zo.y).multiplyScalar(-e/zo.z),zo.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(zo.x,zo.y).multiplyScalar(-e/zo.z)}getViewSize(e,t){return this.getViewBounds(e,LS,US),t.subVectors(US,LS)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(Rl*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const l=o.fullWidth,A=o.fullHeight;s+=o.offsetX*r/l,t-=o.offsetY*i/A,r*=o.width/l,i*=o.height/A}const a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Mc=-90,Qc=1;class fR extends zt{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new ni(Mc,Qc,e,t);r.layers=this.layers,this.add(r);const s=new ni(Mc,Qc,e,t);s.layers=this.layers,this.add(s);const o=new ni(Mc,Qc,e,t);o.layers=this.layers,this.add(o);const a=new ni(Mc,Qc,e,t);a.layers=this.layers,this.add(a);const l=new ni(Mc,Qc,e,t);l.layers=this.layers,this.add(l);const A=new ni(Mc,Qc,e,t);A.layers=this.layers,this.add(A)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,a,l]=t;for(const A of t)this.remove(A);if(e===Ts)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===Mh)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const A of t)this.add(A),A.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,l,A,h]=this.children,d=e.getRenderTarget(),f=e.getActiveCubeFace(),g=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;const v=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,a),e.setRenderTarget(i,3,r),e.render(t,l),e.setRenderTarget(i,4,r),e.render(t,A),i.texture.generateMipmaps=v,e.setRenderTarget(i,5,r),e.render(t,h),e.setRenderTarget(d,f,g),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}}class Jh extends wn{constructor(e,t,i,r,s,o,a,l,A,h){e=e!==void 0?e:[],t=t!==void 0?t:vo,super(e,t,i,r,s,o,a,l,A,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class pR extends Jr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];t.encoding!==void 0&&(Tl("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===da?Hn:Cr),this.texture=new Jh(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:vn}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:` +}`;class fs extends fi{constructor(e){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=e4,this.fragmentShader=t4,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1,clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&this.setValues(e)}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=Mu(e.uniforms),this.uniformsGroups=$N(e.uniformsGroups),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.fog=e.fog,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this}toJSON(e){const t=super.toJSON(e);t.glslVersion=this.glslVersion,t.uniforms={};for(const r in this.uniforms){const o=this.uniforms[r].value;o&&o.isTexture?t.uniforms[r]={type:"t",value:o.toJSON(e).uuid}:o&&o.isColor?t.uniforms[r]={type:"c",value:o.getHex()}:o&&o.isVector2?t.uniforms[r]={type:"v2",value:o.toArray()}:o&&o.isVector3?t.uniforms[r]={type:"v3",value:o.toArray()}:o&&o.isVector4?t.uniforms[r]={type:"v4",value:o.toArray()}:o&&o.isMatrix3?t.uniforms[r]={type:"m3",value:o.toArray()}:o&&o.isMatrix4?t.uniforms[r]={type:"m4",value:o.toArray()}:t.uniforms[r]={value:o}}Object.keys(this.defines).length>0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class jh extends Vt{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ht,this.projectionMatrix=new ht,this.projectionMatrixInverse=new ht,this.coordinateSystem=bs}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const ia=new H,YS=new Be,XS=new Be;class ni extends jh{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=wu*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(kl*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return wu*2*Math.atan(Math.tan(kl*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){ia.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(ia.x,ia.y).multiplyScalar(-e/ia.z),ia.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(ia.x,ia.y).multiplyScalar(-e/ia.z)}getViewSize(e,t){return this.getViewBounds(e,YS,XS),t.subVectors(XS,YS)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(kl*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const l=o.fullWidth,A=o.fullHeight;s+=o.offsetX*r/l,t-=o.offsetY*i/A,r*=o.width/l,i*=o.height/A}const a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Tc=-90,Dc=1;class QR extends Vt{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new ni(Tc,Dc,e,t);r.layers=this.layers,this.add(r);const s=new ni(Tc,Dc,e,t);s.layers=this.layers,this.add(s);const o=new ni(Tc,Dc,e,t);o.layers=this.layers,this.add(o);const a=new ni(Tc,Dc,e,t);a.layers=this.layers,this.add(a);const l=new ni(Tc,Dc,e,t);l.layers=this.layers,this.add(l);const A=new ni(Tc,Dc,e,t);A.layers=this.layers,this.add(A)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,a,l]=t;for(const A of t)this.remove(A);if(e===bs)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===Rh)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const A of t)this.add(A),A.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,l,A,h]=this.children,d=e.getRenderTarget(),f=e.getActiveCubeFace(),g=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;const v=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,a),e.setRenderTarget(i,3,r),e.render(t,l),e.setRenderTarget(i,4,r),e.render(t,A),i.texture.generateMipmaps=v,e.setRenderTarget(i,5,r),e.render(t,h),e.setRenderTarget(d,f,g),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}}class Kh extends Mn{constructor(e,t,i,r,s,o,a,l,A,h){e=e!==void 0?e:[],t=t!==void 0?t:Bo,super(e,t,i,r,s,o,a,l,A,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class RR extends Jr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];t.encoding!==void 0&&(Ol("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===wa?Vn:yr),this.texture=new Kh(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:xn}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:` varying vec3 vWorldDirection; @@ -80,9 +80,9 @@ Error generating stack: `+s.message+` gl_FragColor = texture2D( tEquirect, sampleUV ); } - `},r=new Wl(5,5,5),s=new hs({name:"CubemapFromEquirect",uniforms:Su(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Vi,blending:go});s.uniforms.tEquirect.value=t;const o=new qt(r,s),a=t.minFilter;return t.minFilter===Rs&&(t.minFilter=vn),new fR(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,r){const s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,i,r);e.setRenderTarget(s)}}const xE=new G,OL=new G,GL=new Rt;class nn{constructor(e=new G(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){const r=xE.subVectors(i,t).cross(OL.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const i=e.delta(xE),r=this.normal.dot(i);if(r===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const s=-(e.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||GL.getNormalMatrix(e),r=this.coplanarPoint(xE).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const il=new Zn,Uf=new G;class jh{constructor(e=new nn,t=new nn,i=new nn,r=new nn,s=new nn,o=new nn){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=Ts){const i=this.planes,r=e.elements,s=r[0],o=r[1],a=r[2],l=r[3],A=r[4],h=r[5],d=r[6],f=r[7],g=r[8],E=r[9],v=r[10],C=r[11],p=r[12],y=r[13],I=r[14],B=r[15];if(i[0].setComponents(l-s,f-A,C-g,B-p).normalize(),i[1].setComponents(l+s,f+A,C+g,B+p).normalize(),i[2].setComponents(l+o,f+h,C+E,B+y).normalize(),i[3].setComponents(l-o,f-h,C-E,B-y).normalize(),i[4].setComponents(l-a,f-d,C-v,B-I).normalize(),t===Ts)i[5].setComponents(l+a,f+d,C+v,B+I).normalize();else if(t===Mh)i[5].setComponents(a,d,v,I).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),il.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),il.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(il)}intersectsSprite(e){return il.center.set(0,0,0),il.radius=.7071067811865476,il.applyMatrix4(e.matrixWorld),this.intersectsSphere(il)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,Uf.y=r.normal.y>0?e.max.y:e.min.y,Uf.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Uf)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function gR(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function HL(n,e){const t=e.isWebGL2,i=new WeakMap;function r(A,h){const d=A.array,f=A.usage,g=d.byteLength,E=n.createBuffer();n.bindBuffer(h,E),n.bufferData(h,d,f),A.onUploadCallback();let v;if(d instanceof Float32Array)v=n.FLOAT;else if(d instanceof Uint16Array)if(A.isFloat16BufferAttribute)if(t)v=n.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else v=n.UNSIGNED_SHORT;else if(d instanceof Int16Array)v=n.SHORT;else if(d instanceof Uint32Array)v=n.UNSIGNED_INT;else if(d instanceof Int32Array)v=n.INT;else if(d instanceof Int8Array)v=n.BYTE;else if(d instanceof Uint8Array)v=n.UNSIGNED_BYTE;else if(d instanceof Uint8ClampedArray)v=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+d);return{buffer:E,type:v,bytesPerElement:d.BYTES_PER_ELEMENT,version:A.version,size:g}}function s(A,h,d){const f=h.array,g=h._updateRange,E=h.updateRanges;if(n.bindBuffer(d,A),g.count===-1&&E.length===0&&n.bufferSubData(d,0,f),E.length!==0){for(let v=0,C=E.length;v1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||i4.getNormalMatrix(e),r=this.coplanarPoint(wE).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const Al=new $n,Ff=new H;class qh{constructor(e=new sn,t=new sn,i=new sn,r=new sn,s=new sn,o=new sn){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=bs){const i=this.planes,r=e.elements,s=r[0],o=r[1],a=r[2],l=r[3],A=r[4],h=r[5],d=r[6],f=r[7],g=r[8],E=r[9],v=r[10],C=r[11],p=r[12],y=r[13],I=r[14],B=r[15];if(i[0].setComponents(l-s,f-A,C-g,B-p).normalize(),i[1].setComponents(l+s,f+A,C+g,B+p).normalize(),i[2].setComponents(l+o,f+h,C+E,B+y).normalize(),i[3].setComponents(l-o,f-h,C-E,B-y).normalize(),i[4].setComponents(l-a,f-d,C-v,B-I).normalize(),t===bs)i[5].setComponents(l+a,f+d,C+v,B+I).normalize();else if(t===Rh)i[5].setComponents(a,d,v,I).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),Al.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),Al.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Al)}intersectsSprite(e){return Al.center.set(0,0,0),Al.radius=.7071067811865476,Al.applyMatrix4(e.matrixWorld),this.intersectsSphere(Al)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,Ff.y=r.normal.y>0?e.max.y:e.min.y,Ff.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Ff)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function TR(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function r4(n,e){const t=e.isWebGL2,i=new WeakMap;function r(A,h){const d=A.array,f=A.usage,g=d.byteLength,E=n.createBuffer();n.bindBuffer(h,E),n.bufferData(h,d,f),A.onUploadCallback();let v;if(d instanceof Float32Array)v=n.FLOAT;else if(d instanceof Uint16Array)if(A.isFloat16BufferAttribute)if(t)v=n.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else v=n.UNSIGNED_SHORT;else if(d instanceof Int16Array)v=n.SHORT;else if(d instanceof Uint32Array)v=n.UNSIGNED_INT;else if(d instanceof Int32Array)v=n.INT;else if(d instanceof Int8Array)v=n.BYTE;else if(d instanceof Uint8Array)v=n.UNSIGNED_BYTE;else if(d instanceof Uint8ClampedArray)v=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+d);return{buffer:E,type:v,bytesPerElement:d.BYTES_PER_ELEMENT,version:A.version,size:g}}function s(A,h,d){const f=h.array,g=h._updateRange,E=h.updateRanges;if(n.bindBuffer(d,A),g.count===-1&&E.length===0&&n.bufferSubData(d,0,f),E.length!==0){for(let v=0,C=E.length;v 0 +#endif`,y4=`#if NUM_CLIPPING_PLANES > 0 vec4 plane; #ifdef ALPHA_TO_COVERAGE float distanceToPlane, distanceGradient; @@ -312,26 +312,26 @@ vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in ve if ( clipped ) discard; #endif #endif -#endif`,s4=`#if NUM_CLIPPING_PLANES > 0 +#endif`,v4=`#if NUM_CLIPPING_PLANES > 0 varying vec3 vClipPosition; uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,o4=`#if NUM_CLIPPING_PLANES > 0 +#endif`,I4=`#if NUM_CLIPPING_PLANES > 0 varying vec3 vClipPosition; -#endif`,a4=`#if NUM_CLIPPING_PLANES > 0 +#endif`,x4=`#if NUM_CLIPPING_PLANES > 0 vClipPosition = - mvPosition.xyz; -#endif`,l4=`#if defined( USE_COLOR_ALPHA ) +#endif`,B4=`#if defined( USE_COLOR_ALPHA ) diffuseColor *= vColor; #elif defined( USE_COLOR ) diffuseColor.rgb *= vColor; -#endif`,c4=`#if defined( USE_COLOR_ALPHA ) +#endif`,S4=`#if defined( USE_COLOR_ALPHA ) varying vec4 vColor; #elif defined( USE_COLOR ) varying vec3 vColor; -#endif`,u4=`#if defined( USE_COLOR_ALPHA ) +#endif`,_4=`#if defined( USE_COLOR_ALPHA ) varying vec4 vColor; #elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) varying vec3 vColor; -#endif`,A4=`#if defined( USE_COLOR_ALPHA ) +#endif`,w4=`#if defined( USE_COLOR_ALPHA ) vColor = vec4( 1.0 ); #elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) vColor = vec3( 1.0 ); @@ -341,7 +341,7 @@ vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in ve #endif #ifdef USE_INSTANCING_COLOR vColor.xyz *= instanceColor.xyz; -#endif`,h4=`#define PI 3.141592653589793 +#endif`,M4=`#define PI 3.141592653589793 #define PI2 6.283185307179586 #define PI_HALF 1.5707963267948966 #define RECIPROCAL_PI 0.3183098861837907 @@ -419,7 +419,7 @@ vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} // validated`,d4=`#ifdef ENVMAP_TYPE_CUBE_UV +} // validated`,Q4=`#ifdef ENVMAP_TYPE_CUBE_UV #define cubeUV_minMipLevel 4.0 #define cubeUV_minTileSize 16.0 float getFace( vec3 direction ) { @@ -512,7 +512,7 @@ float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { return vec4( mix( color0, color1, mipF ), 1.0 ); } } -#endif`,f4=`vec3 transformedNormal = objectNormal; +#endif`,R4=`vec3 transformedNormal = objectNormal; #ifdef USE_TANGENT vec3 transformedTangent = objectTangent; #endif @@ -541,18 +541,18 @@ transformedNormal = normalMatrix * transformedNormal; #ifdef FLIP_SIDED transformedTangent = - transformedTangent; #endif -#endif`,p4=`#ifdef USE_DISPLACEMENTMAP +#endif`,T4=`#ifdef USE_DISPLACEMENTMAP uniform sampler2D displacementMap; uniform float displacementScale; uniform float displacementBias; -#endif`,g4=`#ifdef USE_DISPLACEMENTMAP +#endif`,D4=`#ifdef USE_DISPLACEMENTMAP transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,m4=`#ifdef USE_EMISSIVEMAP +#endif`,b4=`#ifdef USE_EMISSIVEMAP vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,E4=`#ifdef USE_EMISSIVEMAP +#endif`,P4=`#ifdef USE_EMISSIVEMAP uniform sampler2D emissiveMap; -#endif`,C4="gl_FragColor = linearToOutputTexel( gl_FragColor );",y4=` +#endif`,L4="gl_FragColor = linearToOutputTexel( gl_FragColor );",N4=` const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( vec3( 0.8224621, 0.177538, 0.0 ), vec3( 0.0331941, 0.9668058, 0.0 ), @@ -580,7 +580,7 @@ vec4 LinearToLinear( in vec4 value ) { } vec4 LinearTosRGB( in vec4 value ) { return sRGBTransferOETF( value ); -}`,v4=`#ifdef USE_ENVMAP +}`,U4=`#ifdef USE_ENVMAP #ifdef ENV_WORLDPOS vec3 cameraToFrag; if ( isOrthographic ) { @@ -609,7 +609,7 @@ vec4 LinearTosRGB( in vec4 value ) { #elif defined( ENVMAP_BLENDING_ADD ) outgoingLight += envColor.xyz * specularStrength * reflectivity; #endif -#endif`,I4=`#ifdef USE_ENVMAP +#endif`,F4=`#ifdef USE_ENVMAP uniform float envMapIntensity; uniform float flipEnvMap; #ifdef ENVMAP_TYPE_CUBE @@ -618,7 +618,7 @@ vec4 LinearTosRGB( in vec4 value ) { uniform sampler2D envMap; #endif -#endif`,x4=`#ifdef USE_ENVMAP +#endif`,k4=`#ifdef USE_ENVMAP uniform float reflectivity; #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) #define ENV_WORLDPOS @@ -629,7 +629,7 @@ vec4 LinearTosRGB( in vec4 value ) { #else varying vec3 vReflect; #endif -#endif`,B4=`#ifdef USE_ENVMAP +#endif`,O4=`#ifdef USE_ENVMAP #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) #define ENV_WORLDPOS #endif @@ -640,7 +640,7 @@ vec4 LinearTosRGB( in vec4 value ) { varying vec3 vReflect; uniform float refractionRatio; #endif -#endif`,S4=`#ifdef USE_ENVMAP +#endif`,G4=`#ifdef USE_ENVMAP #ifdef ENV_WORLDPOS vWorldPosition = worldPosition.xyz; #else @@ -657,18 +657,18 @@ vec4 LinearTosRGB( in vec4 value ) { vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); #endif #endif -#endif`,_4=`#ifdef USE_FOG +#endif`,H4=`#ifdef USE_FOG vFogDepth = - mvPosition.z; -#endif`,w4=`#ifdef USE_FOG +#endif`,z4=`#ifdef USE_FOG varying float vFogDepth; -#endif`,M4=`#ifdef USE_FOG +#endif`,V4=`#ifdef USE_FOG #ifdef FOG_EXP2 float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); #else float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); #endif gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); -#endif`,Q4=`#ifdef USE_FOG +#endif`,W4=`#ifdef USE_FOG uniform vec3 fogColor; varying float vFogDepth; #ifdef FOG_EXP2 @@ -677,7 +677,7 @@ vec4 LinearTosRGB( in vec4 value ) { uniform float fogNear; uniform float fogFar; #endif -#endif`,R4=`#ifdef USE_GRADIENTMAP +#endif`,Y4=`#ifdef USE_GRADIENTMAP uniform sampler2D gradientMap; #endif vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { @@ -689,16 +689,16 @@ vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { vec2 fw = fwidth( coord ) * 0.5; return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); #endif -}`,T4=`#ifdef USE_LIGHTMAP +}`,X4=`#ifdef USE_LIGHTMAP vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; reflectedLight.indirectDiffuse += lightMapIrradiance; -#endif`,D4=`#ifdef USE_LIGHTMAP +#endif`,J4=`#ifdef USE_LIGHTMAP uniform sampler2D lightMap; uniform float lightMapIntensity; -#endif`,b4=`LambertMaterial material; +#endif`,j4=`LambertMaterial material; material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,P4=`varying vec3 vViewPosition; +material.specularStrength = specularStrength;`,K4=`varying vec3 vViewPosition; struct LambertMaterial { vec3 diffuseColor; float specularStrength; @@ -712,7 +712,7 @@ void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometr reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_Lambert -#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,N4=`uniform bool receiveShadow; +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,q4=`uniform bool receiveShadow; uniform vec3 ambientLightColor; #if defined( USE_LIGHT_PROBES ) uniform vec3 lightProbe[ 9 ]; @@ -835,7 +835,7 @@ float getSpotAttenuation( const in float coneCosine, const in float penumbraCosi vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); return irradiance; } -#endif`,L4=`#ifdef USE_ENVMAP +#endif`,Z4=`#ifdef USE_ENVMAP vec3 getIBLIrradiance( const in vec3 normal ) { #ifdef ENVMAP_TYPE_CUBE_UV vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); @@ -868,8 +868,8 @@ float getSpotAttenuation( const in float coneCosine, const in float penumbraCosi #endif } #endif -#endif`,U4=`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,F4=`varying vec3 vViewPosition; +#endif`,$4=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,eU=`varying vec3 vViewPosition; struct ToonMaterial { vec3 diffuseColor; }; @@ -881,11 +881,11 @@ void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPo reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_Toon -#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,k4=`BlinnPhongMaterial material; +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,tU=`BlinnPhongMaterial material; material.diffuseColor = diffuseColor.rgb; material.specularColor = specular; material.specularShininess = shininess; -material.specularStrength = specularStrength;`,O4=`varying vec3 vViewPosition; +material.specularStrength = specularStrength;`,nU=`varying vec3 vViewPosition; struct BlinnPhongMaterial { vec3 diffuseColor; vec3 specularColor; @@ -902,7 +902,7 @@ void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geom reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_BlinnPhong -#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,G4=`PhysicalMaterial material; +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,iU=`PhysicalMaterial material; material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); @@ -985,7 +985,7 @@ material.roughness = min( material.roughness, 1.0 ); material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; -#endif`,H4=`struct PhysicalMaterial { +#endif`,rU=`struct PhysicalMaterial { vec3 diffuseColor; float roughness; vec3 specularColor; @@ -1285,7 +1285,7 @@ void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradia #define RE_IndirectSpecular RE_IndirectSpecular_Physical float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); -}`,z4=` +}`,sU=` vec3 geometryPosition = - vViewPosition; vec3 geometryNormal = normal; vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); @@ -1400,7 +1400,7 @@ IncidentLight directLight; #if defined( RE_IndirectSpecular ) vec3 radiance = vec3( 0.0 ); vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,V4=`#if defined( RE_IndirectDiffuse ) +#endif`,oU=`#if defined( RE_IndirectDiffuse ) #ifdef USE_LIGHTMAP vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; @@ -1419,25 +1419,25 @@ IncidentLight directLight; #ifdef USE_CLEARCOAT clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); #endif -#endif`,W4=`#if defined( RE_IndirectDiffuse ) +#endif`,aU=`#if defined( RE_IndirectDiffuse ) RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); #endif #if defined( RE_IndirectSpecular ) RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif`,Y4=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) +#endif`,lU=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,X4=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) +#endif`,cU=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) uniform float logDepthBufFC; varying float vFragDepth; varying float vIsPerspective; -#endif`,J4=`#ifdef USE_LOGDEPTHBUF +#endif`,uU=`#ifdef USE_LOGDEPTHBUF #ifdef USE_LOGDEPTHBUF_EXT varying float vFragDepth; varying float vIsPerspective; #else uniform float logDepthBufFC; #endif -#endif`,j4=`#ifdef USE_LOGDEPTHBUF +#endif`,AU=`#ifdef USE_LOGDEPTHBUF #ifdef USE_LOGDEPTHBUF_EXT vFragDepth = 1.0 + gl_Position.w; vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); @@ -1447,16 +1447,16 @@ IncidentLight directLight; gl_Position.z *= gl_Position.w; } #endif -#endif`,K4=`#ifdef USE_MAP +#endif`,hU=`#ifdef USE_MAP vec4 sampledDiffuseColor = texture2D( map, vMapUv ); #ifdef DECODE_VIDEO_TEXTURE sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); #endif diffuseColor *= sampledDiffuseColor; -#endif`,q4=`#ifdef USE_MAP +#endif`,dU=`#ifdef USE_MAP uniform sampler2D map; -#endif`,Z4=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) +#endif`,fU=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) #if defined( USE_POINTS_UV ) vec2 uv = vUv; #else @@ -1468,7 +1468,7 @@ IncidentLight directLight; #endif #ifdef USE_ALPHAMAP diffuseColor.a *= texture2D( alphaMap, uv ).g; -#endif`,$4=`#if defined( USE_POINTS_UV ) +#endif`,pU=`#if defined( USE_POINTS_UV ) varying vec2 vUv; #else #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) @@ -1480,13 +1480,13 @@ IncidentLight directLight; #endif #ifdef USE_ALPHAMAP uniform sampler2D alphaMap; -#endif`,eU=`float metalnessFactor = metalness; +#endif`,gU=`float metalnessFactor = metalness; #ifdef USE_METALNESSMAP vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); metalnessFactor *= texelMetalness.b; -#endif`,tU=`#ifdef USE_METALNESSMAP +#endif`,mU=`#ifdef USE_METALNESSMAP uniform sampler2D metalnessMap; -#endif`,nU=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) +#endif`,EU=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) vColor *= morphTargetBaseInfluence; for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { #if defined( USE_COLOR_ALPHA ) @@ -1495,7 +1495,7 @@ IncidentLight directLight; if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; #endif } -#endif`,iU=`#ifdef USE_MORPHNORMALS +#endif`,CU=`#ifdef USE_MORPHNORMALS objectNormal *= morphTargetBaseInfluence; #ifdef MORPHTARGETS_TEXTURE for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { @@ -1507,7 +1507,7 @@ IncidentLight directLight; objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; #endif -#endif`,rU=`#ifdef USE_MORPHTARGETS +#endif`,yU=`#ifdef USE_MORPHTARGETS uniform float morphTargetBaseInfluence; #ifdef MORPHTARGETS_TEXTURE uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; @@ -1527,7 +1527,7 @@ IncidentLight directLight; uniform float morphTargetInfluences[ 4 ]; #endif #endif -#endif`,sU=`#ifdef USE_MORPHTARGETS +#endif`,vU=`#ifdef USE_MORPHTARGETS transformed *= morphTargetBaseInfluence; #ifdef MORPHTARGETS_TEXTURE for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { @@ -1545,7 +1545,7 @@ IncidentLight directLight; transformed += morphTarget7 * morphTargetInfluences[ 7 ]; #endif #endif -#endif`,oU=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#endif`,IU=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; #ifdef FLAT_SHADED vec3 fdx = dFdx( vViewPosition ); vec3 fdy = dFdy( vViewPosition ); @@ -1586,7 +1586,7 @@ IncidentLight directLight; tbn2[1] *= faceDirection; #endif #endif -vec3 nonPerturbedNormal = normal;`,aU=`#ifdef USE_NORMALMAP_OBJECTSPACE +vec3 nonPerturbedNormal = normal;`,xU=`#ifdef USE_NORMALMAP_OBJECTSPACE normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; #ifdef FLIP_SIDED normal = - normal; @@ -1601,25 +1601,25 @@ vec3 nonPerturbedNormal = normal;`,aU=`#ifdef USE_NORMALMAP_OBJECTSPACE normal = normalize( tbn * mapN ); #elif defined( USE_BUMPMAP ) normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,lU=`#ifndef FLAT_SHADED +#endif`,BU=`#ifndef FLAT_SHADED varying vec3 vNormal; #ifdef USE_TANGENT varying vec3 vTangent; varying vec3 vBitangent; #endif -#endif`,cU=`#ifndef FLAT_SHADED +#endif`,SU=`#ifndef FLAT_SHADED varying vec3 vNormal; #ifdef USE_TANGENT varying vec3 vTangent; varying vec3 vBitangent; #endif -#endif`,uU=`#ifndef FLAT_SHADED +#endif`,_U=`#ifndef FLAT_SHADED vNormal = normalize( transformedNormal ); #ifdef USE_TANGENT vTangent = normalize( transformedTangent ); vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); #endif -#endif`,AU=`#ifdef USE_NORMALMAP +#endif`,wU=`#ifdef USE_NORMALMAP uniform sampler2D normalMap; uniform vec2 normalScale; #endif @@ -1641,13 +1641,13 @@ vec3 nonPerturbedNormal = normal;`,aU=`#ifdef USE_NORMALMAP_OBJECTSPACE float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); return mat3( T * scale, B * scale, N ); } -#endif`,hU=`#ifdef USE_CLEARCOAT +#endif`,MU=`#ifdef USE_CLEARCOAT vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,dU=`#ifdef USE_CLEARCOAT_NORMALMAP +#endif`,QU=`#ifdef USE_CLEARCOAT_NORMALMAP vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; clearcoatMapN.xy *= clearcoatNormalScale; clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,fU=`#ifdef USE_CLEARCOATMAP +#endif`,RU=`#ifdef USE_CLEARCOATMAP uniform sampler2D clearcoatMap; #endif #ifdef USE_CLEARCOAT_NORMALMAP @@ -1656,18 +1656,18 @@ vec3 nonPerturbedNormal = normal;`,aU=`#ifdef USE_NORMALMAP_OBJECTSPACE #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP uniform sampler2D clearcoatRoughnessMap; -#endif`,pU=`#ifdef USE_IRIDESCENCEMAP +#endif`,TU=`#ifdef USE_IRIDESCENCEMAP uniform sampler2D iridescenceMap; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP uniform sampler2D iridescenceThicknessMap; -#endif`,gU=`#ifdef OPAQUE +#endif`,DU=`#ifdef OPAQUE diffuseColor.a = 1.0; #endif #ifdef USE_TRANSMISSION diffuseColor.a *= material.transmissionAlpha; #endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,mU=`vec3 packNormalToRGB( const in vec3 normal ) { +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,bU=`vec3 packNormalToRGB( const in vec3 normal ) { return normalize( normal ) * 0.5 + 0.5; } vec3 unpackRGBToNormal( const in vec3 rgb ) { @@ -1708,9 +1708,9 @@ float viewZToPerspectiveDepth( const in float viewZ, const in float near, const } float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { return ( near * far ) / ( ( far - near ) * depth - far ); -}`,EU=`#ifdef PREMULTIPLIED_ALPHA +}`,PU=`#ifdef PREMULTIPLIED_ALPHA gl_FragColor.rgb *= gl_FragColor.a; -#endif`,CU=`vec4 mvPosition = vec4( transformed, 1.0 ); +#endif`,LU=`vec4 mvPosition = vec4( transformed, 1.0 ); #ifdef USE_BATCHING mvPosition = batchingMatrix * mvPosition; #endif @@ -1718,22 +1718,22 @@ float perspectiveDepthToViewZ( const in float depth, const in float near, const mvPosition = instanceMatrix * mvPosition; #endif mvPosition = modelViewMatrix * mvPosition; -gl_Position = projectionMatrix * mvPosition;`,yU=`#ifdef DITHERING +gl_Position = projectionMatrix * mvPosition;`,NU=`#ifdef DITHERING gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,vU=`#ifdef DITHERING +#endif`,UU=`#ifdef DITHERING vec3 dithering( vec3 color ) { float grid_position = rand( gl_FragCoord.xy ); vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); return color + dither_shift_RGB; } -#endif`,IU=`float roughnessFactor = roughness; +#endif`,FU=`float roughnessFactor = roughness; #ifdef USE_ROUGHNESSMAP vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); roughnessFactor *= texelRoughness.g; -#endif`,xU=`#ifdef USE_ROUGHNESSMAP +#endif`,kU=`#ifdef USE_ROUGHNESSMAP uniform sampler2D roughnessMap; -#endif`,BU=`#if NUM_SPOT_LIGHT_COORDS > 0 +#endif`,OU=`#if NUM_SPOT_LIGHT_COORDS > 0 varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; #endif #if NUM_SPOT_LIGHT_MAPS > 0 @@ -1910,7 +1910,7 @@ gl_Position = projectionMatrix * mvPosition;`,yU=`#ifdef DITHERING return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); #endif } -#endif`,SU=`#if NUM_SPOT_LIGHT_COORDS > 0 +#endif`,GU=`#if NUM_SPOT_LIGHT_COORDS > 0 uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; #endif @@ -1948,7 +1948,7 @@ gl_Position = projectionMatrix * mvPosition;`,yU=`#ifdef DITHERING }; uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; #endif -#endif`,_U=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) +#endif`,HU=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); vec4 shadowWorldPosition; #endif @@ -1980,7 +1980,7 @@ gl_Position = projectionMatrix * mvPosition;`,yU=`#ifdef DITHERING vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; } #pragma unroll_loop_end -#endif`,wU=`float getShadowMask() { +#endif`,zU=`float getShadowMask() { float shadow = 1.0; #ifdef USE_SHADOWMAP #if NUM_DIR_LIGHT_SHADOWS > 0 @@ -2012,12 +2012,12 @@ gl_Position = projectionMatrix * mvPosition;`,yU=`#ifdef DITHERING #endif #endif return shadow; -}`,MU=`#ifdef USE_SKINNING +}`,VU=`#ifdef USE_SKINNING mat4 boneMatX = getBoneMatrix( skinIndex.x ); mat4 boneMatY = getBoneMatrix( skinIndex.y ); mat4 boneMatZ = getBoneMatrix( skinIndex.z ); mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,QU=`#ifdef USE_SKINNING +#endif`,WU=`#ifdef USE_SKINNING uniform mat4 bindMatrix; uniform mat4 bindMatrixInverse; uniform highp sampler2D boneTexture; @@ -2032,7 +2032,7 @@ gl_Position = projectionMatrix * mvPosition;`,yU=`#ifdef DITHERING vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); return mat4( v1, v2, v3, v4 ); } -#endif`,RU=`#ifdef USE_SKINNING +#endif`,YU=`#ifdef USE_SKINNING vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); vec4 skinned = vec4( 0.0 ); skinned += boneMatX * skinVertex * skinWeight.x; @@ -2040,7 +2040,7 @@ gl_Position = projectionMatrix * mvPosition;`,yU=`#ifdef DITHERING skinned += boneMatZ * skinVertex * skinWeight.z; skinned += boneMatW * skinVertex * skinWeight.w; transformed = ( bindMatrixInverse * skinned ).xyz; -#endif`,TU=`#ifdef USE_SKINNING +#endif`,XU=`#ifdef USE_SKINNING mat4 skinMatrix = mat4( 0.0 ); skinMatrix += skinWeight.x * boneMatX; skinMatrix += skinWeight.y * boneMatY; @@ -2051,17 +2051,17 @@ gl_Position = projectionMatrix * mvPosition;`,yU=`#ifdef DITHERING #ifdef USE_TANGENT objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; #endif -#endif`,DU=`float specularStrength; +#endif`,JU=`float specularStrength; #ifdef USE_SPECULARMAP vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); specularStrength = texelSpecular.r; #else specularStrength = 1.0; -#endif`,bU=`#ifdef USE_SPECULARMAP +#endif`,jU=`#ifdef USE_SPECULARMAP uniform sampler2D specularMap; -#endif`,PU=`#if defined( TONE_MAPPING ) +#endif`,KU=`#if defined( TONE_MAPPING ) gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,NU=`#ifndef saturate +#endif`,qU=`#ifndef saturate #define saturate( a ) clamp( a, 0.0, 1.0 ) #endif uniform float toneMappingExposure; @@ -2143,7 +2143,7 @@ vec3 AgXToneMapping( vec3 color ) { color = clamp( color, 0.0, 1.0 ); return color; } -vec3 CustomToneMapping( vec3 color ) { return color; }`,LU=`#ifdef USE_TRANSMISSION +vec3 CustomToneMapping( vec3 color ) { return color; }`,ZU=`#ifdef USE_TRANSMISSION material.transmission = transmission; material.transmissionAlpha = 1.0; material.thickness = thickness; @@ -2164,7 +2164,7 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,LU=`#ifdef USE_TRANSMISS material.attenuationColor, material.attenuationDistance ); material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); -#endif`,UU=`#ifdef USE_TRANSMISSION +#endif`,$U=`#ifdef USE_TRANSMISSION uniform float transmission; uniform float thickness; uniform float attenuationDistance; @@ -2270,7 +2270,7 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,LU=`#ifdef USE_TRANSMISS float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); } -#endif`,FU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) +#endif`,eF=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) varying vec2 vUv; #endif #ifdef USE_MAP @@ -2340,7 +2340,7 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,LU=`#ifdef USE_TRANSMISS #ifdef USE_THICKNESSMAP uniform mat3 thicknessMapTransform; varying vec2 vThicknessMapUv; -#endif`,kU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) +#endif`,tF=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) varying vec2 vUv; #endif #ifdef USE_MAP @@ -2434,7 +2434,7 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,LU=`#ifdef USE_TRANSMISS #ifdef USE_THICKNESSMAP uniform mat3 thicknessMapTransform; varying vec2 vThicknessMapUv; -#endif`,OU=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) +#endif`,nF=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) vUv = vec3( uv, 1 ).xy; #endif #ifdef USE_MAP @@ -2505,7 +2505,7 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,LU=`#ifdef USE_TRANSMISS #endif #ifdef USE_THICKNESSMAP vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; -#endif`,GU=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 +#endif`,iF=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 vec4 worldPosition = vec4( transformed, 1.0 ); #ifdef USE_BATCHING worldPosition = batchingMatrix * worldPosition; @@ -2514,12 +2514,12 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,LU=`#ifdef USE_TRANSMISS worldPosition = instanceMatrix * worldPosition; #endif worldPosition = modelMatrix * worldPosition; -#endif`;const HU=`varying vec2 vUv; +#endif`;const rF=`varying vec2 vUv; uniform mat3 uvTransform; void main() { vUv = ( uvTransform * vec3( uv, 1 ) ).xy; gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,zU=`uniform sampler2D t2D; +}`,sF=`uniform sampler2D t2D; uniform float backgroundIntensity; varying vec2 vUv; void main() { @@ -2531,14 +2531,14 @@ void main() { gl_FragColor = texColor; #include #include -}`,VU=`varying vec3 vWorldDirection; +}`,oF=`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include gl_Position.z = gl_Position.w; -}`,WU=`#ifdef ENVMAP_TYPE_CUBE +}`,aF=`#ifdef ENVMAP_TYPE_CUBE uniform samplerCube envMap; #elif defined( ENVMAP_TYPE_CUBE_UV ) uniform sampler2D envMap; @@ -2560,14 +2560,14 @@ void main() { gl_FragColor = texColor; #include #include -}`,YU=`varying vec3 vWorldDirection; +}`,lF=`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include gl_Position.z = gl_Position.w; -}`,XU=`uniform samplerCube tCube; +}`,cF=`uniform samplerCube tCube; uniform float tFlip; uniform float opacity; varying vec3 vWorldDirection; @@ -2577,7 +2577,7 @@ void main() { gl_FragColor.a *= opacity; #include #include -}`,JU=`#include +}`,uF=`#include #include #include #include @@ -2603,7 +2603,7 @@ void main() { #include #include vHighPrecisionZW = gl_Position.zw; -}`,jU=`#if DEPTH_PACKING == 3200 +}`,AF=`#if DEPTH_PACKING == 3200 uniform float opacity; #endif #include @@ -2633,7 +2633,7 @@ void main() { #elif DEPTH_PACKING == 3201 gl_FragColor = packDepthToRGBA( fragCoordZ ); #endif -}`,KU=`#define DISTANCE +}`,hF=`#define DISTANCE varying vec3 vWorldPosition; #include #include @@ -2659,7 +2659,7 @@ void main() { #include #include vWorldPosition = worldPosition.xyz; -}`,qU=`#define DISTANCE +}`,dF=`#define DISTANCE uniform vec3 referencePosition; uniform float nearDistance; uniform float farDistance; @@ -2683,13 +2683,13 @@ void main () { dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); dist = saturate( dist ); gl_FragColor = packDepthToRGBA( dist ); -}`,ZU=`varying vec3 vWorldDirection; +}`,fF=`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include -}`,$U=`uniform sampler2D tEquirect; +}`,pF=`uniform sampler2D tEquirect; varying vec3 vWorldDirection; #include void main() { @@ -2698,7 +2698,7 @@ void main() { gl_FragColor = texture2D( tEquirect, sampleUV ); #include #include -}`,eF=`uniform float scale; +}`,gF=`uniform float scale; attribute float lineDistance; varying float vLineDistance; #include @@ -2719,7 +2719,7 @@ void main() { #include #include #include -}`,tF=`uniform vec3 diffuse; +}`,mF=`uniform vec3 diffuse; uniform float opacity; uniform float dashSize; uniform float totalSize; @@ -2747,7 +2747,7 @@ void main() { #include #include #include -}`,nF=`#include +}`,EF=`#include #include #include #include @@ -2778,7 +2778,7 @@ void main() { #include #include #include -}`,iF=`uniform vec3 diffuse; +}`,CF=`uniform vec3 diffuse; uniform float opacity; #ifndef FLAT_SHADED varying vec3 vNormal; @@ -2826,7 +2826,7 @@ void main() { #include #include #include -}`,rF=`#define LAMBERT +}`,yF=`#define LAMBERT varying vec3 vViewPosition; #include #include @@ -2864,7 +2864,7 @@ void main() { #include #include #include -}`,sF=`#define LAMBERT +}`,vF=`#define LAMBERT uniform vec3 diffuse; uniform vec3 emissive; uniform float opacity; @@ -2921,7 +2921,7 @@ void main() { #include #include #include -}`,oF=`#define MATCAP +}`,IF=`#define MATCAP varying vec3 vViewPosition; #include #include @@ -2954,7 +2954,7 @@ void main() { #include #include vViewPosition = - mvPosition.xyz; -}`,aF=`#define MATCAP +}`,xF=`#define MATCAP uniform vec3 diffuse; uniform float opacity; uniform sampler2D matcap; @@ -3000,7 +3000,7 @@ void main() { #include #include #include -}`,lF=`#define NORMAL +}`,BF=`#define NORMAL #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) varying vec3 vViewPosition; #endif @@ -3032,7 +3032,7 @@ void main() { #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) vViewPosition = - mvPosition.xyz; #endif -}`,cF=`#define NORMAL +}`,SF=`#define NORMAL uniform float opacity; #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) varying vec3 vViewPosition; @@ -3054,7 +3054,7 @@ void main() { #ifdef OPAQUE gl_FragColor.a = 1.0; #endif -}`,uF=`#define PHONG +}`,_F=`#define PHONG varying vec3 vViewPosition; #include #include @@ -3092,7 +3092,7 @@ void main() { #include #include #include -}`,AF=`#define PHONG +}`,wF=`#define PHONG uniform vec3 diffuse; uniform vec3 emissive; uniform vec3 specular; @@ -3151,7 +3151,7 @@ void main() { #include #include #include -}`,hF=`#define STANDARD +}`,MF=`#define STANDARD varying vec3 vViewPosition; #ifdef USE_TRANSMISSION varying vec3 vWorldPosition; @@ -3193,7 +3193,7 @@ void main() { #ifdef USE_TRANSMISSION vWorldPosition = worldPosition.xyz; #endif -}`,dF=`#define STANDARD +}`,QF=`#define STANDARD #ifdef PHYSICAL #define IOR #define USE_SPECULAR @@ -3315,7 +3315,7 @@ void main() { #include #include #include -}`,fF=`#define TOON +}`,RF=`#define TOON varying vec3 vViewPosition; #include #include @@ -3351,7 +3351,7 @@ void main() { #include #include #include -}`,pF=`#define TOON +}`,TF=`#define TOON uniform vec3 diffuse; uniform vec3 emissive; uniform float opacity; @@ -3404,7 +3404,7 @@ void main() { #include #include #include -}`,gF=`uniform float size; +}`,DF=`uniform float size; uniform float scale; #include #include @@ -3434,7 +3434,7 @@ void main() { #include #include #include -}`,mF=`uniform vec3 diffuse; +}`,bF=`uniform vec3 diffuse; uniform float opacity; #include #include @@ -3459,7 +3459,7 @@ void main() { #include #include #include -}`,EF=`#include +}`,PF=`#include #include #include #include @@ -3481,7 +3481,7 @@ void main() { #include #include #include -}`,CF=`uniform vec3 color; +}`,LF=`uniform vec3 color; uniform float opacity; #include #include @@ -3497,7 +3497,7 @@ void main() { #include #include #include -}`,yF=`uniform float rotation; +}`,NF=`uniform float rotation; uniform vec2 center; #include #include @@ -3523,7 +3523,7 @@ void main() { #include #include #include -}`,vF=`uniform vec3 diffuse; +}`,UF=`uniform vec3 diffuse; uniform float opacity; #include #include @@ -3548,7 +3548,7 @@ void main() { #include #include #include -}`,Lt={alphahash_fragment:zL,alphahash_pars_fragment:VL,alphamap_fragment:WL,alphamap_pars_fragment:YL,alphatest_fragment:XL,alphatest_pars_fragment:JL,aomap_fragment:jL,aomap_pars_fragment:KL,batching_pars_vertex:qL,batching_vertex:ZL,begin_vertex:$L,beginnormal_vertex:e4,bsdfs:t4,iridescence_fragment:n4,bumpmap_pars_fragment:i4,clipping_planes_fragment:r4,clipping_planes_pars_fragment:s4,clipping_planes_pars_vertex:o4,clipping_planes_vertex:a4,color_fragment:l4,color_pars_fragment:c4,color_pars_vertex:u4,color_vertex:A4,common:h4,cube_uv_reflection_fragment:d4,defaultnormal_vertex:f4,displacementmap_pars_vertex:p4,displacementmap_vertex:g4,emissivemap_fragment:m4,emissivemap_pars_fragment:E4,colorspace_fragment:C4,colorspace_pars_fragment:y4,envmap_fragment:v4,envmap_common_pars_fragment:I4,envmap_pars_fragment:x4,envmap_pars_vertex:B4,envmap_physical_pars_fragment:L4,envmap_vertex:S4,fog_vertex:_4,fog_pars_vertex:w4,fog_fragment:M4,fog_pars_fragment:Q4,gradientmap_pars_fragment:R4,lightmap_fragment:T4,lightmap_pars_fragment:D4,lights_lambert_fragment:b4,lights_lambert_pars_fragment:P4,lights_pars_begin:N4,lights_toon_fragment:U4,lights_toon_pars_fragment:F4,lights_phong_fragment:k4,lights_phong_pars_fragment:O4,lights_physical_fragment:G4,lights_physical_pars_fragment:H4,lights_fragment_begin:z4,lights_fragment_maps:V4,lights_fragment_end:W4,logdepthbuf_fragment:Y4,logdepthbuf_pars_fragment:X4,logdepthbuf_pars_vertex:J4,logdepthbuf_vertex:j4,map_fragment:K4,map_pars_fragment:q4,map_particle_fragment:Z4,map_particle_pars_fragment:$4,metalnessmap_fragment:eU,metalnessmap_pars_fragment:tU,morphcolor_vertex:nU,morphnormal_vertex:iU,morphtarget_pars_vertex:rU,morphtarget_vertex:sU,normal_fragment_begin:oU,normal_fragment_maps:aU,normal_pars_fragment:lU,normal_pars_vertex:cU,normal_vertex:uU,normalmap_pars_fragment:AU,clearcoat_normal_fragment_begin:hU,clearcoat_normal_fragment_maps:dU,clearcoat_pars_fragment:fU,iridescence_pars_fragment:pU,opaque_fragment:gU,packing:mU,premultiplied_alpha_fragment:EU,project_vertex:CU,dithering_fragment:yU,dithering_pars_fragment:vU,roughnessmap_fragment:IU,roughnessmap_pars_fragment:xU,shadowmap_pars_fragment:BU,shadowmap_pars_vertex:SU,shadowmap_vertex:_U,shadowmask_pars_fragment:wU,skinbase_vertex:MU,skinning_pars_vertex:QU,skinning_vertex:RU,skinnormal_vertex:TU,specularmap_fragment:DU,specularmap_pars_fragment:bU,tonemapping_fragment:PU,tonemapping_pars_fragment:NU,transmission_fragment:LU,transmission_pars_fragment:UU,uv_pars_fragment:FU,uv_pars_vertex:kU,uv_vertex:OU,worldpos_vertex:GU,background_vert:HU,background_frag:zU,backgroundCube_vert:VU,backgroundCube_frag:WU,cube_vert:YU,cube_frag:XU,depth_vert:JU,depth_frag:jU,distanceRGBA_vert:KU,distanceRGBA_frag:qU,equirect_vert:ZU,equirect_frag:$U,linedashed_vert:eF,linedashed_frag:tF,meshbasic_vert:nF,meshbasic_frag:iF,meshlambert_vert:rF,meshlambert_frag:sF,meshmatcap_vert:oF,meshmatcap_frag:aF,meshnormal_vert:lF,meshnormal_frag:cF,meshphong_vert:uF,meshphong_frag:AF,meshphysical_vert:hF,meshphysical_frag:dF,meshtoon_vert:fF,meshtoon_frag:pF,points_vert:gF,points_frag:mF,shadow_vert:EF,shadow_frag:CF,sprite_vert:yF,sprite_frag:vF},Ye={common:{diffuse:{value:new je(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Rt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Rt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Rt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Rt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Rt},normalScale:{value:new Se(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Rt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Rt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Rt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Rt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new je(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new je(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0},uvTransform:{value:new Rt}},sprite:{diffuse:{value:new je(16777215)},opacity:{value:1},center:{value:new Se(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}}},os={basic:{uniforms:Fi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.fog]),vertexShader:Lt.meshbasic_vert,fragmentShader:Lt.meshbasic_frag},lambert:{uniforms:Fi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new je(0)}}]),vertexShader:Lt.meshlambert_vert,fragmentShader:Lt.meshlambert_frag},phong:{uniforms:Fi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new je(0)},specular:{value:new je(1118481)},shininess:{value:30}}]),vertexShader:Lt.meshphong_vert,fragmentShader:Lt.meshphong_frag},standard:{uniforms:Fi([Ye.common,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.roughnessmap,Ye.metalnessmap,Ye.fog,Ye.lights,{emissive:{value:new je(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Lt.meshphysical_vert,fragmentShader:Lt.meshphysical_frag},toon:{uniforms:Fi([Ye.common,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.gradientmap,Ye.fog,Ye.lights,{emissive:{value:new je(0)}}]),vertexShader:Lt.meshtoon_vert,fragmentShader:Lt.meshtoon_frag},matcap:{uniforms:Fi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,{matcap:{value:null}}]),vertexShader:Lt.meshmatcap_vert,fragmentShader:Lt.meshmatcap_frag},points:{uniforms:Fi([Ye.points,Ye.fog]),vertexShader:Lt.points_vert,fragmentShader:Lt.points_frag},dashed:{uniforms:Fi([Ye.common,Ye.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Lt.linedashed_vert,fragmentShader:Lt.linedashed_frag},depth:{uniforms:Fi([Ye.common,Ye.displacementmap]),vertexShader:Lt.depth_vert,fragmentShader:Lt.depth_frag},normal:{uniforms:Fi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,{opacity:{value:1}}]),vertexShader:Lt.meshnormal_vert,fragmentShader:Lt.meshnormal_frag},sprite:{uniforms:Fi([Ye.sprite,Ye.fog]),vertexShader:Lt.sprite_vert,fragmentShader:Lt.sprite_frag},background:{uniforms:{uvTransform:{value:new Rt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Lt.background_vert,fragmentShader:Lt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Lt.backgroundCube_vert,fragmentShader:Lt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Lt.cube_vert,fragmentShader:Lt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Lt.equirect_vert,fragmentShader:Lt.equirect_frag},distanceRGBA:{uniforms:Fi([Ye.common,Ye.displacementmap,{referencePosition:{value:new G},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Lt.distanceRGBA_vert,fragmentShader:Lt.distanceRGBA_frag},shadow:{uniforms:Fi([Ye.lights,Ye.fog,{color:{value:new je(0)},opacity:{value:1}}]),vertexShader:Lt.shadow_vert,fragmentShader:Lt.shadow_frag}};os.physical={uniforms:Fi([os.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Rt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Rt},clearcoatNormalScale:{value:new Se(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Rt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Rt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Rt},sheen:{value:0},sheenColor:{value:new je(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Rt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Rt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Rt},transmissionSamplerSize:{value:new Se},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Rt},attenuationDistance:{value:0},attenuationColor:{value:new je(0)},specularColor:{value:new je(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Rt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Rt},anisotropyVector:{value:new Se},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Rt}}]),vertexShader:Lt.meshphysical_vert,fragmentShader:Lt.meshphysical_frag};const Ff={r:0,b:0,g:0};function IF(n,e,t,i,r,s,o){const a=new je(0);let l=s===!0?0:1,A,h,d=null,f=0,g=null;function E(C,p){let y=!1,I=p.isScene===!0?p.background:null;I&&I.isTexture&&(I=(p.backgroundBlurriness>0?t:e).get(I)),I===null?v(a,l):I&&I.isColor&&(v(I,1),y=!0);const B=n.xr.getEnvironmentBlendMode();B==="additive"?i.buffers.color.setClear(0,0,0,1,o):B==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||y)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),I&&(I.isCubeTexture||I.mapping===Ru)?(h===void 0&&(h=new qt(new Wl(1,1,1),new hs({name:"BackgroundCubeMaterial",uniforms:Su(os.backgroundCube.uniforms),vertexShader:os.backgroundCube.vertexShader,fragmentShader:os.backgroundCube.fragmentShader,side:Vi,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,w,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=I,h.material.uniforms.flipEnvMap.value=I.isCubeTexture&&I.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=p.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,h.material.toneMapped=an.getTransfer(I.colorSpace)!==gn,(d!==I||f!==I.version||g!==n.toneMapping)&&(h.material.needsUpdate=!0,d=I,f=I.version,g=n.toneMapping),h.layers.enableAll(),C.unshift(h,h.geometry,h.material,0,0,null)):I&&I.isTexture&&(A===void 0&&(A=new qt(new _a(2,2),new hs({name:"BackgroundMaterial",uniforms:Su(os.background.uniforms),vertexShader:os.background.vertexShader,fragmentShader:os.background.fragmentShader,side:Xr,depthTest:!1,depthWrite:!1,fog:!1})),A.geometry.deleteAttribute("normal"),Object.defineProperty(A.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(A)),A.material.uniforms.t2D.value=I,A.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,A.material.toneMapped=an.getTransfer(I.colorSpace)!==gn,I.matrixAutoUpdate===!0&&I.updateMatrix(),A.material.uniforms.uvTransform.value.copy(I.matrix),(d!==I||f!==I.version||g!==n.toneMapping)&&(A.material.needsUpdate=!0,d=I,f=I.version,g=n.toneMapping),A.layers.enableAll(),C.unshift(A,A.geometry,A.material,0,0,null))}function v(C,p){C.getRGB(Ff,hR(n)),i.buffers.color.setClear(Ff.r,Ff.g,Ff.b,p,o)}return{getClearColor:function(){return a},setClearColor:function(C,p=1){a.set(C),l=p,v(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(C){l=C,v(a,l)},render:E}}function xF(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||s!==null,a={},l=C(null);let A=l,h=!1;function d(J,ce,se,de,F){let ee=!1;if(o){const te=v(de,se,ce);A!==te&&(A=te,g(A.object)),ee=p(J,de,se,F),ee&&y(J,de,se,F)}else{const te=ce.wireframe===!0;(A.geometry!==de.id||A.program!==se.id||A.wireframe!==te)&&(A.geometry=de.id,A.program=se.id,A.wireframe=te,ee=!0)}F!==null&&t.update(F,n.ELEMENT_ARRAY_BUFFER),(ee||h)&&(h=!1,U(J,ce,se,de),F!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(F).buffer))}function f(){return i.isWebGL2?n.createVertexArray():s.createVertexArrayOES()}function g(J){return i.isWebGL2?n.bindVertexArray(J):s.bindVertexArrayOES(J)}function E(J){return i.isWebGL2?n.deleteVertexArray(J):s.deleteVertexArrayOES(J)}function v(J,ce,se){const de=se.wireframe===!0;let F=a[J.id];F===void 0&&(F={},a[J.id]=F);let ee=F[ce.id];ee===void 0&&(ee={},F[ce.id]=ee);let te=ee[de];return te===void 0&&(te=C(f()),ee[de]=te),te}function C(J){const ce=[],se=[],de=[];for(let F=0;F=0){const Y=F[ye];let z=ee[ye];if(z===void 0&&(ye==="instanceMatrix"&&J.instanceMatrix&&(z=J.instanceMatrix),ye==="instanceColor"&&J.instanceColor&&(z=J.instanceColor)),Y===void 0||Y.attribute!==z||z&&Y.data!==z.data)return!0;te++}return A.attributesNum!==te||A.index!==de}function y(J,ce,se,de){const F={},ee=ce.attributes;let te=0;const ue=se.getAttributes();for(const ye in ue)if(ue[ye].location>=0){let Y=ee[ye];Y===void 0&&(ye==="instanceMatrix"&&J.instanceMatrix&&(Y=J.instanceMatrix),ye==="instanceColor"&&J.instanceColor&&(Y=J.instanceColor));const z={};z.attribute=Y,Y&&Y.data&&(z.data=Y.data),F[ye]=z,te++}A.attributes=F,A.attributesNum=te,A.index=de}function I(){const J=A.newAttributes;for(let ce=0,se=J.length;ce=0){let Oe=F[ue];if(Oe===void 0&&(ue==="instanceMatrix"&&J.instanceMatrix&&(Oe=J.instanceMatrix),ue==="instanceColor"&&J.instanceColor&&(Oe=J.instanceColor)),Oe!==void 0){const Y=Oe.normalized,z=Oe.itemSize,O=t.get(Oe);if(O===void 0)continue;const k=O.buffer,me=O.type,Ie=O.bytesPerElement,re=i.isWebGL2===!0&&(me===n.INT||me===n.UNSIGNED_INT||Oe.gpuType===bv);if(Oe.isInterleavedBufferAttribute){const Be=Oe.data,V=Be.stride,Ee=Oe.offset;if(Be.isInstancedInterleavedBuffer){for(let ne=0;ne0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext";let a=t.precision!==void 0?t.precision:"highp";const l=s(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);const A=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,d=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),f=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),g=n.getParameter(n.MAX_TEXTURE_SIZE),E=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),v=n.getParameter(n.MAX_VERTEX_ATTRIBS),C=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),p=n.getParameter(n.MAX_VARYING_VECTORS),y=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),I=f>0,B=o||e.has("OES_texture_float"),R=I&&B,w=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:A,getMaxAnisotropy:r,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:d,maxVertexTextures:f,maxTextureSize:g,maxCubemapSize:E,maxAttributes:v,maxVertexUniforms:C,maxVaryings:p,maxFragmentUniforms:y,vertexTextures:I,floatFragmentTextures:B,floatVertexTextures:R,maxSamples:w}}function _F(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new nn,a=new Rt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(d,f){const g=d.length!==0||f||i!==0||r;return r=f,i=d.length,g},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(d,f){t=h(d,f,0)},this.setState=function(d,f,g){const E=d.clippingPlanes,v=d.clipIntersection,C=d.clipShadows,p=n.get(d);if(!r||E===null||E.length===0||s&&!C)s?h(null):A();else{const y=s?0:i,I=y*4;let B=p.clippingState||null;l.value=B,B=h(E,f,I,g);for(let R=0;R!==I;++R)B[R]=t[R];p.clippingState=B,this.numIntersection=v?this.numPlanes:0,this.numPlanes+=y}};function A(){l.value!==t&&(l.value=t,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(d,f,g,E){const v=d!==null?d.length:0;let C=null;if(v!==0){if(C=l.value,E!==!0||C===null){const p=g+v*4,y=f.matrixWorldInverse;a.getNormalMatrix(y),(C===null||C.length0){const A=new pR(l.height);return A.fromEquirectangularTexture(n,o),e.set(o,A),o.addEventListener("dispose",r),t(A.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}class Kh extends Xh{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,a=r+t,l=r-t;if(this.view!==null&&this.view.enabled){const A=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=A*this.view.offsetX,o=s+A*this.view.width,a-=h*this.view.offsetY,l=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}const iu=4,FS=[.125,.215,.35,.446,.526,.582],Cl=20,BE=new Kh,kS=new je;let SE=null,_E=0,wE=0;const pl=(1+Math.sqrt(5))/2,Rc=1/pl,OS=[new G(1,1,1),new G(-1,1,1),new G(1,1,-1),new G(-1,1,-1),new G(0,pl,Rc),new G(0,pl,-Rc),new G(Rc,0,pl),new G(-Rc,0,pl),new G(pl,Rc,0),new G(-pl,Rc,0)];class t1{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){SE=this._renderer.getRenderTarget(),_E=this._renderer.getActiveCubeFace(),wE=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=zS(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=HS(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?I:0,I,I),h.setRenderTarget(r),v&&h.render(E,a),h.render(e,a)}E.geometry.dispose(),E.material.dispose(),h.toneMapping=f,h.autoClear=d,e.background=C}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===vo||e.mapping===Ca;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=zS()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=HS());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new qt(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;const l=this._cubeSize;kf(t,0,0,3*l,2*l),i.setRenderTarget(t),i.render(o,BE)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;rCl&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${C} samples when the maximum is set to ${Cl}`);const p=[];let y=0;for(let T=0;TI-iu?r-I+iu:0),w=4*(this._cubeSize-B);kf(t,R,w,3*B,2*B),l.setRenderTarget(t),l.render(d,BE)}}function MF(n){const e=[],t=[],i=[];let r=n;const s=n-iu+1+FS.length;for(let o=0;on-iu?l=FS[o-n+iu-1]:o===0&&(l=0),i.push(l);const A=1/(a-2),h=-A,d=1+A,f=[h,h,d,h,d,d,h,h,d,d,h,d],g=6,E=6,v=3,C=2,p=1,y=new Float32Array(v*E*g),I=new Float32Array(C*E*g),B=new Float32Array(p*E*g);for(let w=0;w2?0:-1,K=[T,U,0,T+2/3,U,0,T+2/3,U+1,0,T,U,0,T+2/3,U+1,0,T,U+1,0];y.set(K,v*E*w),I.set(f,C*E*w);const M=[w,w,w,w,w,w];B.set(M,p*E*w)}const R=new Pt;R.setAttribute("position",new on(y,v)),R.setAttribute("uv",new on(I,C)),R.setAttribute("faceIndex",new on(B,p)),e.push(R),r>iu&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function GS(n,e,t){const i=new Jr(n,e,t);return i.texture.mapping=Ru,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function kf(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function QF(n,e,t){const i=new Float32Array(Cl),r=new G(0,1,0);return new hs({name:"SphericalGaussianBlur",defines:{n:Cl,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:jv(),fragmentShader:` +}`,Nt={alphahash_fragment:s4,alphahash_pars_fragment:o4,alphamap_fragment:a4,alphamap_pars_fragment:l4,alphatest_fragment:c4,alphatest_pars_fragment:u4,aomap_fragment:A4,aomap_pars_fragment:h4,batching_pars_vertex:d4,batching_vertex:f4,begin_vertex:p4,beginnormal_vertex:g4,bsdfs:m4,iridescence_fragment:E4,bumpmap_pars_fragment:C4,clipping_planes_fragment:y4,clipping_planes_pars_fragment:v4,clipping_planes_pars_vertex:I4,clipping_planes_vertex:x4,color_fragment:B4,color_pars_fragment:S4,color_pars_vertex:_4,color_vertex:w4,common:M4,cube_uv_reflection_fragment:Q4,defaultnormal_vertex:R4,displacementmap_pars_vertex:T4,displacementmap_vertex:D4,emissivemap_fragment:b4,emissivemap_pars_fragment:P4,colorspace_fragment:L4,colorspace_pars_fragment:N4,envmap_fragment:U4,envmap_common_pars_fragment:F4,envmap_pars_fragment:k4,envmap_pars_vertex:O4,envmap_physical_pars_fragment:Z4,envmap_vertex:G4,fog_vertex:H4,fog_pars_vertex:z4,fog_fragment:V4,fog_pars_fragment:W4,gradientmap_pars_fragment:Y4,lightmap_fragment:X4,lightmap_pars_fragment:J4,lights_lambert_fragment:j4,lights_lambert_pars_fragment:K4,lights_pars_begin:q4,lights_toon_fragment:$4,lights_toon_pars_fragment:eU,lights_phong_fragment:tU,lights_phong_pars_fragment:nU,lights_physical_fragment:iU,lights_physical_pars_fragment:rU,lights_fragment_begin:sU,lights_fragment_maps:oU,lights_fragment_end:aU,logdepthbuf_fragment:lU,logdepthbuf_pars_fragment:cU,logdepthbuf_pars_vertex:uU,logdepthbuf_vertex:AU,map_fragment:hU,map_pars_fragment:dU,map_particle_fragment:fU,map_particle_pars_fragment:pU,metalnessmap_fragment:gU,metalnessmap_pars_fragment:mU,morphcolor_vertex:EU,morphnormal_vertex:CU,morphtarget_pars_vertex:yU,morphtarget_vertex:vU,normal_fragment_begin:IU,normal_fragment_maps:xU,normal_pars_fragment:BU,normal_pars_vertex:SU,normal_vertex:_U,normalmap_pars_fragment:wU,clearcoat_normal_fragment_begin:MU,clearcoat_normal_fragment_maps:QU,clearcoat_pars_fragment:RU,iridescence_pars_fragment:TU,opaque_fragment:DU,packing:bU,premultiplied_alpha_fragment:PU,project_vertex:LU,dithering_fragment:NU,dithering_pars_fragment:UU,roughnessmap_fragment:FU,roughnessmap_pars_fragment:kU,shadowmap_pars_fragment:OU,shadowmap_pars_vertex:GU,shadowmap_vertex:HU,shadowmask_pars_fragment:zU,skinbase_vertex:VU,skinning_pars_vertex:WU,skinning_vertex:YU,skinnormal_vertex:XU,specularmap_fragment:JU,specularmap_pars_fragment:jU,tonemapping_fragment:KU,tonemapping_pars_fragment:qU,transmission_fragment:ZU,transmission_pars_fragment:$U,uv_pars_fragment:eF,uv_pars_vertex:tF,uv_vertex:nF,worldpos_vertex:iF,background_vert:rF,background_frag:sF,backgroundCube_vert:oF,backgroundCube_frag:aF,cube_vert:lF,cube_frag:cF,depth_vert:uF,depth_frag:AF,distanceRGBA_vert:hF,distanceRGBA_frag:dF,equirect_vert:fF,equirect_frag:pF,linedashed_vert:gF,linedashed_frag:mF,meshbasic_vert:EF,meshbasic_frag:CF,meshlambert_vert:yF,meshlambert_frag:vF,meshmatcap_vert:IF,meshmatcap_frag:xF,meshnormal_vert:BF,meshnormal_frag:SF,meshphong_vert:_F,meshphong_frag:wF,meshphysical_vert:MF,meshphysical_frag:QF,meshtoon_vert:RF,meshtoon_frag:TF,points_vert:DF,points_frag:bF,shadow_vert:PF,shadow_frag:LF,sprite_vert:NF,sprite_frag:UF},Ye={common:{diffuse:{value:new Ke(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Rt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Rt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Rt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Rt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Rt},normalScale:{value:new Be(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Rt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Rt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Rt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Rt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ke(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ke(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0},uvTransform:{value:new Rt}},sprite:{diffuse:{value:new Ke(16777215)},opacity:{value:1},center:{value:new Be(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}}},as={basic:{uniforms:Oi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.fog]),vertexShader:Nt.meshbasic_vert,fragmentShader:Nt.meshbasic_frag},lambert:{uniforms:Oi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Ke(0)}}]),vertexShader:Nt.meshlambert_vert,fragmentShader:Nt.meshlambert_frag},phong:{uniforms:Oi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Ke(0)},specular:{value:new Ke(1118481)},shininess:{value:30}}]),vertexShader:Nt.meshphong_vert,fragmentShader:Nt.meshphong_frag},standard:{uniforms:Oi([Ye.common,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.roughnessmap,Ye.metalnessmap,Ye.fog,Ye.lights,{emissive:{value:new Ke(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Nt.meshphysical_vert,fragmentShader:Nt.meshphysical_frag},toon:{uniforms:Oi([Ye.common,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.gradientmap,Ye.fog,Ye.lights,{emissive:{value:new Ke(0)}}]),vertexShader:Nt.meshtoon_vert,fragmentShader:Nt.meshtoon_frag},matcap:{uniforms:Oi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,{matcap:{value:null}}]),vertexShader:Nt.meshmatcap_vert,fragmentShader:Nt.meshmatcap_frag},points:{uniforms:Oi([Ye.points,Ye.fog]),vertexShader:Nt.points_vert,fragmentShader:Nt.points_frag},dashed:{uniforms:Oi([Ye.common,Ye.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Nt.linedashed_vert,fragmentShader:Nt.linedashed_frag},depth:{uniforms:Oi([Ye.common,Ye.displacementmap]),vertexShader:Nt.depth_vert,fragmentShader:Nt.depth_frag},normal:{uniforms:Oi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,{opacity:{value:1}}]),vertexShader:Nt.meshnormal_vert,fragmentShader:Nt.meshnormal_frag},sprite:{uniforms:Oi([Ye.sprite,Ye.fog]),vertexShader:Nt.sprite_vert,fragmentShader:Nt.sprite_frag},background:{uniforms:{uvTransform:{value:new Rt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Nt.background_vert,fragmentShader:Nt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Nt.backgroundCube_vert,fragmentShader:Nt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Nt.cube_vert,fragmentShader:Nt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Nt.equirect_vert,fragmentShader:Nt.equirect_frag},distanceRGBA:{uniforms:Oi([Ye.common,Ye.displacementmap,{referencePosition:{value:new H},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Nt.distanceRGBA_vert,fragmentShader:Nt.distanceRGBA_frag},shadow:{uniforms:Oi([Ye.lights,Ye.fog,{color:{value:new Ke(0)},opacity:{value:1}}]),vertexShader:Nt.shadow_vert,fragmentShader:Nt.shadow_frag}};as.physical={uniforms:Oi([as.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Rt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Rt},clearcoatNormalScale:{value:new Be(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Rt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Rt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Rt},sheen:{value:0},sheenColor:{value:new Ke(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Rt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Rt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Rt},transmissionSamplerSize:{value:new Be},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Rt},attenuationDistance:{value:0},attenuationColor:{value:new Ke(0)},specularColor:{value:new Ke(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Rt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Rt},anisotropyVector:{value:new Be},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Rt}}]),vertexShader:Nt.meshphysical_vert,fragmentShader:Nt.meshphysical_frag};const kf={r:0,b:0,g:0};function FF(n,e,t,i,r,s,o){const a=new Ke(0);let l=s===!0?0:1,A,h,d=null,f=0,g=null;function E(C,p){let y=!1,I=p.isScene===!0?p.background:null;I&&I.isTexture&&(I=(p.backgroundBlurriness>0?t:e).get(I)),I===null?v(a,l):I&&I.isColor&&(v(I,1),y=!0);const B=n.xr.getEnvironmentBlendMode();B==="additive"?i.buffers.color.setClear(0,0,0,1,o):B==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||y)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),I&&(I.isCubeTexture||I.mapping===bu)?(h===void 0&&(h=new $t(new ec(1,1,1),new fs({name:"BackgroundCubeMaterial",uniforms:Mu(as.backgroundCube.uniforms),vertexShader:as.backgroundCube.vertexShader,fragmentShader:as.backgroundCube.fragmentShader,side:Yi,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,M,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=I,h.material.uniforms.flipEnvMap.value=I.isCubeTexture&&I.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=p.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,h.material.toneMapped=cn.getTransfer(I.colorSpace)!==gn,(d!==I||f!==I.version||g!==n.toneMapping)&&(h.material.needsUpdate=!0,d=I,f=I.version,g=n.toneMapping),h.layers.enableAll(),C.unshift(h,h.geometry,h.material,0,0,null)):I&&I.isTexture&&(A===void 0&&(A=new $t(new Oa(2,2),new fs({name:"BackgroundMaterial",uniforms:Mu(as.background.uniforms),vertexShader:as.background.vertexShader,fragmentShader:as.background.fragmentShader,side:Xr,depthTest:!1,depthWrite:!1,fog:!1})),A.geometry.deleteAttribute("normal"),Object.defineProperty(A.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(A)),A.material.uniforms.t2D.value=I,A.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,A.material.toneMapped=cn.getTransfer(I.colorSpace)!==gn,I.matrixAutoUpdate===!0&&I.updateMatrix(),A.material.uniforms.uvTransform.value.copy(I.matrix),(d!==I||f!==I.version||g!==n.toneMapping)&&(A.material.needsUpdate=!0,d=I,f=I.version,g=n.toneMapping),A.layers.enableAll(),C.unshift(A,A.geometry,A.material,0,0,null))}function v(C,p){C.getRGB(kf,wR(n)),i.buffers.color.setClear(kf.r,kf.g,kf.b,p,o)}return{getClearColor:function(){return a},setClearColor:function(C,p=1){a.set(C),l=p,v(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(C){l=C,v(a,l)},render:E}}function kF(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||s!==null,a={},l=C(null);let A=l,h=!1;function d(J,re,ne,ue,F){let ee=!1;if(o){const te=v(ue,ne,re);A!==te&&(A=te,g(A.object)),ee=p(J,ue,ne,F),ee&&y(J,ue,ne,F)}else{const te=re.wireframe===!0;(A.geometry!==ue.id||A.program!==ne.id||A.wireframe!==te)&&(A.geometry=ue.id,A.program=ne.id,A.wireframe=te,ee=!0)}F!==null&&t.update(F,n.ELEMENT_ARRAY_BUFFER),(ee||h)&&(h=!1,U(J,re,ne,ue),F!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(F).buffer))}function f(){return i.isWebGL2?n.createVertexArray():s.createVertexArrayOES()}function g(J){return i.isWebGL2?n.bindVertexArray(J):s.bindVertexArrayOES(J)}function E(J){return i.isWebGL2?n.deleteVertexArray(J):s.deleteVertexArrayOES(J)}function v(J,re,ne){const ue=ne.wireframe===!0;let F=a[J.id];F===void 0&&(F={},a[J.id]=F);let ee=F[re.id];ee===void 0&&(ee={},F[re.id]=ee);let te=ee[ue];return te===void 0&&(te=C(f()),ee[ue]=te),te}function C(J){const re=[],ne=[],ue=[];for(let F=0;F=0){const Y=F[ye];let z=ee[ye];if(z===void 0&&(ye==="instanceMatrix"&&J.instanceMatrix&&(z=J.instanceMatrix),ye==="instanceColor"&&J.instanceColor&&(z=J.instanceColor)),Y===void 0||Y.attribute!==z||z&&Y.data!==z.data)return!0;te++}return A.attributesNum!==te||A.index!==ue}function y(J,re,ne,ue){const F={},ee=re.attributes;let te=0;const Ae=ne.getAttributes();for(const ye in Ae)if(Ae[ye].location>=0){let Y=ee[ye];Y===void 0&&(ye==="instanceMatrix"&&J.instanceMatrix&&(Y=J.instanceMatrix),ye==="instanceColor"&&J.instanceColor&&(Y=J.instanceColor));const z={};z.attribute=Y,Y&&Y.data&&(z.data=Y.data),F[ye]=z,te++}A.attributes=F,A.attributesNum=te,A.index=ue}function I(){const J=A.newAttributes;for(let re=0,ne=J.length;re=0){let Oe=F[Ae];if(Oe===void 0&&(Ae==="instanceMatrix"&&J.instanceMatrix&&(Oe=J.instanceMatrix),Ae==="instanceColor"&&J.instanceColor&&(Oe=J.instanceColor)),Oe!==void 0){const Y=Oe.normalized,z=Oe.itemSize,G=t.get(Oe);if(G===void 0)continue;const O=G.buffer,me=G.type,Ie=G.bytesPerElement,oe=i.isWebGL2===!0&&(me===n.INT||me===n.UNSIGNED_INT||Oe.gpuType===kv);if(Oe.isInterleavedBufferAttribute){const Se=Oe.data,V=Se.stride,Ee=Oe.offset;if(Se.isInstancedInterleavedBuffer){for(let ie=0;ie0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext";let a=t.precision!==void 0?t.precision:"highp";const l=s(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);const A=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,d=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),f=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),g=n.getParameter(n.MAX_TEXTURE_SIZE),E=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),v=n.getParameter(n.MAX_VERTEX_ATTRIBS),C=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),p=n.getParameter(n.MAX_VARYING_VECTORS),y=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),I=f>0,B=o||e.has("OES_texture_float"),R=I&&B,M=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:A,getMaxAnisotropy:r,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:d,maxVertexTextures:f,maxTextureSize:g,maxCubemapSize:E,maxAttributes:v,maxVertexUniforms:C,maxVaryings:p,maxFragmentUniforms:y,vertexTextures:I,floatFragmentTextures:B,floatVertexTextures:R,maxSamples:M}}function HF(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new sn,a=new Rt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(d,f){const g=d.length!==0||f||i!==0||r;return r=f,i=d.length,g},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(d,f){t=h(d,f,0)},this.setState=function(d,f,g){const E=d.clippingPlanes,v=d.clipIntersection,C=d.clipShadows,p=n.get(d);if(!r||E===null||E.length===0||s&&!C)s?h(null):A();else{const y=s?0:i,I=y*4;let B=p.clippingState||null;l.value=B,B=h(E,f,I,g);for(let R=0;R!==I;++R)B[R]=t[R];p.clippingState=B,this.numIntersection=v?this.numPlanes:0,this.numPlanes+=y}};function A(){l.value!==t&&(l.value=t,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(d,f,g,E){const v=d!==null?d.length:0;let C=null;if(v!==0){if(C=l.value,E!==!0||C===null){const p=g+v*4,y=f.matrixWorldInverse;a.getNormalMatrix(y),(C===null||C.length0){const A=new RR(l.height);return A.fromEquirectangularTexture(n,o),e.set(o,A),o.addEventListener("dispose",r),t(A.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}class Zh extends jh{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,a=r+t,l=r-t;if(this.view!==null&&this.view.enabled){const A=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=A*this.view.offsetX,o=s+A*this.view.width,a-=h*this.view.offsetY,l=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}const ou=4,JS=[.125,.215,.35,.446,.526,.582],Ml=20,ME=new Zh,jS=new Ke;let QE=null,RE=0,TE=0;const Bl=(1+Math.sqrt(5))/2,bc=1/Bl,KS=[new H(1,1,1),new H(-1,1,1),new H(1,1,-1),new H(-1,1,-1),new H(0,Bl,bc),new H(0,Bl,-bc),new H(bc,0,Bl),new H(-bc,0,Bl),new H(Bl,bc,0),new H(-Bl,bc,0)];class l1{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){QE=this._renderer.getRenderTarget(),RE=this._renderer.getActiveCubeFace(),TE=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=$S(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=ZS(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?I:0,I,I),h.setRenderTarget(r),v&&h.render(E,a),h.render(e,a)}E.geometry.dispose(),E.material.dispose(),h.toneMapping=f,h.autoClear=d,e.background=C}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===Bo||e.mapping===ba;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=$S()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=ZS());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new $t(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;const l=this._cubeSize;Of(t,0,0,3*l,2*l),i.setRenderTarget(t),i.render(o,ME)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;rMl&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${C} samples when the maximum is set to ${Ml}`);const p=[];let y=0;for(let T=0;TI-ou?r-I+ou:0),M=4*(this._cubeSize-B);Of(t,R,M,3*B,2*B),l.setRenderTarget(t),l.render(d,ME)}}function VF(n){const e=[],t=[],i=[];let r=n;const s=n-ou+1+JS.length;for(let o=0;on-ou?l=JS[o-n+ou-1]:o===0&&(l=0),i.push(l);const A=1/(a-2),h=-A,d=1+A,f=[h,h,d,h,d,d,h,h,d,d,h,d],g=6,E=6,v=3,C=2,p=1,y=new Float32Array(v*E*g),I=new Float32Array(C*E*g),B=new Float32Array(p*E*g);for(let M=0;M2?0:-1,K=[T,U,0,T+2/3,U,0,T+2/3,U+1,0,T,U,0,T+2/3,U+1,0,T,U+1,0];y.set(K,v*E*M),I.set(f,C*E*M);const w=[M,M,M,M,M,M];B.set(w,p*E*M)}const R=new Pt;R.setAttribute("position",new ln(y,v)),R.setAttribute("uv",new ln(I,C)),R.setAttribute("faceIndex",new ln(B,p)),e.push(R),r>ou&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function qS(n,e,t){const i=new Jr(n,e,t);return i.texture.mapping=bu,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function Of(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function WF(n,e,t){const i=new Float32Array(Ml),r=new H(0,1,0);return new fs({name:"SphericalGaussianBlur",defines:{n:Ml,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:tI(),fragmentShader:` precision mediump float; precision mediump int; @@ -3608,7 +3608,7 @@ void main() { } } - `,blending:go,depthTest:!1,depthWrite:!1})}function HS(){return new hs({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:jv(),fragmentShader:` + `,blending:Co,depthTest:!1,depthWrite:!1})}function ZS(){return new fs({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:tI(),fragmentShader:` precision mediump float; precision mediump int; @@ -3627,7 +3627,7 @@ void main() { gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); } - `,blending:go,depthTest:!1,depthWrite:!1})}function zS(){return new hs({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:jv(),fragmentShader:` + `,blending:Co,depthTest:!1,depthWrite:!1})}function $S(){return new fs({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:tI(),fragmentShader:` precision mediump float; precision mediump int; @@ -3643,7 +3643,7 @@ void main() { gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); } - `,blending:go,depthTest:!1,depthWrite:!1})}function jv(){return` + `,blending:Co,depthTest:!1,depthWrite:!1})}function tI(){return` precision mediump float; precision mediump int; @@ -3698,16 +3698,16 @@ void main() { gl_Position = vec4( position, 1.0 ); } - `}function RF(n){let e=new WeakMap,t=null;function i(a){if(a&&a.isTexture){const l=a.mapping,A=l===mh||l===Eh,h=l===vo||l===Ca;if(A||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let d=e.get(a);return t===null&&(t=new t1(n)),d=A?t.fromEquirectangular(a,d):t.fromCubemap(a,d),e.set(a,d),d.texture}else{if(e.has(a))return e.get(a).texture;{const d=a.image;if(A&&d&&d.height>0||h&&d&&r(d)){t===null&&(t=new t1(n));const f=A?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,f),a.addEventListener("dispose",s),f.texture}else return null}}}return a}function r(a){let l=0;const A=6;for(let h=0;he.maxTextureSize&&(P=Math.ceil(M/e.maxTextureSize),M=e.maxTextureSize);const q=new Float32Array(M*P*4*v),ge=new em(q,M,P,v);ge.type=Or,ge.needsUpdate=!0;const J=K*4;for(let se=0;se0)return n;const r=e*t;let s=VS[r];if(s===void 0&&(s=new Float32Array(r),VS[r]=s),e!==0){i.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(s,a)}return s}function si(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t0||h&&d&&r(d)){t===null&&(t=new l1(n));const f=A?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,f),a.addEventListener("dispose",s),f.texture}else return null}}}return a}function r(a){let l=0;const A=6;for(let h=0;he.maxTextureSize&&(P=Math.ceil(w/e.maxTextureSize),w=e.maxTextureSize);const q=new Float32Array(w*P*4*v),fe=new rm(q,w,P,v);fe.type=Or,fe.needsUpdate=!0;const J=K*4;for(let ne=0;ne0)return n;const r=e*t;let s=e_[r];if(s===void 0&&(s=new Float32Array(r),e_[r]=s),e!==0){i.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(s,a)}return s}function si(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${a}: ${t[o]}`)}return i.join(` -`)}function Dk(n){const e=an.getPrimaries(an.workingColorSpace),t=an.getPrimaries(n);let i;switch(e===t?i="":e===_h&&t===Sh?i="LinearDisplayP3ToLinearSRGB":e===Sh&&t===_h&&(i="LinearSRGBToLinearDisplayP3"),n){case Fs:case Yh:return[i,"LinearTransferOETF"];case Hn:case $g:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}function qS(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=n.getShaderInfoLog(e).trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` +`)}function Jk(n){const e=cn.getPrimaries(cn.workingColorSpace),t=cn.getPrimaries(n);let i;switch(e===t?i="":e===Mh&&t===wh?i="LinearDisplayP3ToLinearSRGB":e===wh&&t===Mh&&(i="LinearSRGBToLinearDisplayP3"),n){case ks:case Jh:return[i,"LinearTransferOETF"];case Vn:case im:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}function a_(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=n.getShaderInfoLog(e).trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` `+r+` -`+Tk(n.getShaderSource(e),o)}else return r}function bk(n,e){const t=Dk(e);return`vec4 ${n}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function Pk(n,e){let t;switch(e){case LQ:t="Linear";break;case UQ:t="Reinhard";break;case FQ:t="OptimizedCineon";break;case Dv:t="ACESFilmic";break;case OQ:t="AgX";break;case kQ:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function Nk(n){return[n.extensionDerivatives||n.envMapCubeUVHeight||n.bumpMap||n.normalMapTangentSpace||n.clearcoatNormalMap||n.flatShading||n.alphaToCoverage||n.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(n.extensionFragDepth||n.logarithmicDepthBuffer)&&n.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",n.extensionDrawBuffers&&n.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(n.extensionShaderTextureLOD||n.envMap||n.transmission)&&n.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(ru).join(` -`)}function Lk(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(ru).join(` -`)}function Uk(n){const e=[];for(const t in n){const i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(` -`)}function Fk(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function n1(n){return n.replace(kk,Gk)}const Ok=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function Gk(n,e){let t=Lt[e];if(t===void 0){const i=Ok.get(e);if(i!==void 0)t=Lt[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return n1(t)}const Hk=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function e_(n){return n.replace(Hk,zk)}function zk(n,e,t,i){let r="";for(let s=parseInt(e);s/gm;function c1(n){return n.replace(t8,i8)}const n8=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function i8(n,e){let t=Nt[e];if(t===void 0){const i=n8.get(e);if(i!==void 0)t=Nt[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return c1(t)}const r8=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function u_(n){return n.replace(r8,s8)}function s8(n,e,t,i){let r="";for(let s=parseInt(e);s0&&(p+=` -`),y=[g,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,v].filter(ru).join(` +`),y=[g,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,v].filter(au).join(` `),y.length>0&&(y+=` -`)):(p=[t_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,v,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` -`].filter(ru).join(` -`),y=[g,t_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,v,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+A:"",t.envMap?"#define "+h:"",t.envMap?"#define "+d:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Ns?"#define TONE_MAPPING":"",t.toneMapping!==Ns?Lt.tonemapping_pars_fragment:"",t.toneMapping!==Ns?Pk("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",Lt.colorspace_pars_fragment,bk("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` -`].filter(ru).join(` -`)),o=n1(o),o=ZS(o,t),o=$S(o,t),a=n1(a),a=ZS(a,t),a=$S(a,t),o=e_(o),a=e_(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(I=`#version 300 es +`)):(p=[A_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,v,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(au).join(` +`),y=[g,A_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,v,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+A:"",t.envMap?"#define "+h:"",t.envMap?"#define "+d:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Us?"#define TONE_MAPPING":"",t.toneMapping!==Us?Nt.tonemapping_pars_fragment:"",t.toneMapping!==Us?Kk("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",Nt.colorspace_pars_fragment,jk("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(au).join(` +`)),o=c1(o),o=l_(o,t),o=c_(o,t),a=c1(a),a=l_(a,t),a=c_(a,t),o=u_(o),a=u_(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(I=`#version 300 es `,p=[E,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` `)+` -`+p,y=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===$y?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===$y?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`+p,y=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===o1?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===o1?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` `)+` -`+y);const B=I+p+o,R=I+y+a,w=KS(r,r.VERTEX_SHADER,B),T=KS(r,r.FRAGMENT_SHADER,R);r.attachShader(C,w),r.attachShader(C,T),t.index0AttributeName!==void 0?r.bindAttribLocation(C,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(C,0,"position"),r.linkProgram(C);function U(q){if(n.debug.checkShaderErrors){const ge=r.getProgramInfoLog(C).trim(),J=r.getShaderInfoLog(w).trim(),ce=r.getShaderInfoLog(T).trim();let se=!0,de=!0;if(r.getProgramParameter(C,r.LINK_STATUS)===!1)if(se=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,C,w,T);else{const F=qS(r,w,"vertex"),ee=qS(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(C,r.VALIDATE_STATUS)+` +`+y);const B=I+p+o,R=I+y+a,M=o_(r,r.VERTEX_SHADER,B),T=o_(r,r.FRAGMENT_SHADER,R);r.attachShader(C,M),r.attachShader(C,T),t.index0AttributeName!==void 0?r.bindAttribLocation(C,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(C,0,"position"),r.linkProgram(C);function U(q){if(n.debug.checkShaderErrors){const fe=r.getProgramInfoLog(C).trim(),J=r.getShaderInfoLog(M).trim(),re=r.getShaderInfoLog(T).trim();let ne=!0,ue=!0;if(r.getProgramParameter(C,r.LINK_STATUS)===!1)if(ne=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,C,M,T);else{const F=a_(r,M,"vertex"),ee=a_(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(C,r.VALIDATE_STATUS)+` Material Name: `+q.name+` Material Type: `+q.type+` -Program Info Log: `+ge+` +Program Info Log: `+fe+` `+F+` -`+ee)}else ge!==""?console.warn("THREE.WebGLProgram: Program Info Log:",ge):(J===""||ce==="")&&(de=!1);de&&(q.diagnostics={runnable:se,programLog:ge,vertexShader:{log:J,prefix:p},fragmentShader:{log:ce,prefix:y}})}r.deleteShader(w),r.deleteShader(T),K=new kp(r,C),M=Fk(r,C)}let K;this.getUniforms=function(){return K===void 0&&U(this),K};let M;this.getAttributes=function(){return M===void 0&&U(this),M};let P=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return P===!1&&(P=r.getProgramParameter(C,Qk)),P},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(C),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=Rk++,this.cacheKey=e,this.usedTimes=1,this.program=C,this.vertexShader=w,this.fragmentShader=T,this}let Kk=0;class qk{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new Zk(e),t.set(e,i)),i}}class Zk{constructor(e){this.id=Kk++,this.code=e,this.usedTimes=0}}function $k(n,e,t,i,r,s,o){const a=new Dl,l=new qk,A=new Set,h=[],d=r.isWebGL2,f=r.logarithmicDepthBuffer,g=r.vertexTextures;let E=r.precision;const v={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function C(M){return A.add(M),M===0?"uv":`uv${M}`}function p(M,P,q,ge,J){const ce=ge.fog,se=J.geometry,de=M.isMeshStandardMaterial?ge.environment:null,F=(M.isMeshStandardMaterial?t:e).get(M.envMap||de),ee=F&&F.mapping===Ru?F.image.height:null,te=v[M.type];M.precision!==null&&(E=r.getMaxPrecision(M.precision),E!==M.precision&&console.warn("THREE.WebGLProgram.getParameters:",M.precision,"not supported, using",E,"instead."));const ue=se.morphAttributes.position||se.morphAttributes.normal||se.morphAttributes.color,ye=ue!==void 0?ue.length:0;let Oe=0;se.morphAttributes.position!==void 0&&(Oe=1),se.morphAttributes.normal!==void 0&&(Oe=2),se.morphAttributes.color!==void 0&&(Oe=3);let Y,z,O,k;if(te){const Jt=os[te];Y=Jt.vertexShader,z=Jt.fragmentShader}else Y=M.vertexShader,z=M.fragmentShader,l.update(M),O=l.getVertexShaderID(M),k=l.getFragmentShaderID(M);const me=n.getRenderTarget(),Ie=J.isInstancedMesh===!0,re=J.isBatchedMesh===!0,Be=!!M.map,V=!!M.matcap,Ee=!!F,ne=!!M.aoMap,ae=!!M.lightMap,he=!!M.bumpMap,Te=!!M.normalMap,$=!!M.displacementMap,_=!!M.emissiveMap,D=!!M.metalnessMap,ie=!!M.roughnessMap,be=M.anisotropy>0,De=M.clearcoat>0,Qe=M.iridescence>0,Je=M.sheen>0,Ve=M.transmission>0,Ze=be&&!!M.anisotropyMap,ut=De&&!!M.clearcoatMap,It=De&&!!M.clearcoatNormalMap,Le=De&&!!M.clearcoatRoughnessMap,Nt=Qe&&!!M.iridescenceMap,wt=Qe&&!!M.iridescenceThicknessMap,mt=Je&&!!M.sheenColorMap,ct=Je&&!!M.sheenRoughnessMap,it=!!M.specularMap,Bt=!!M.specularColorMap,kt=!!M.specularIntensityMap,Zt=Ve&&!!M.transmissionMap,Mt=Ve&&!!M.thicknessMap,Yt=!!M.gradientMap,j=!!M.alphaMap,Ge=M.alphaTest>0,Fe=!!M.alphaHash,st=!!M.extensions;let pt=Ns;M.toneMapped&&(me===null||me.isXRRenderTarget===!0)&&(pt=n.toneMapping);const Xt={isWebGL2:d,shaderID:te,shaderType:M.type,shaderName:M.name,vertexShader:Y,fragmentShader:z,defines:M.defines,customVertexShaderID:O,customFragmentShaderID:k,isRawShaderMaterial:M.isRawShaderMaterial===!0,glslVersion:M.glslVersion,precision:E,batching:re,instancing:Ie,instancingColor:Ie&&J.instanceColor!==null,supportsVertexTextures:g,outputColorSpace:me===null?n.outputColorSpace:me.isXRRenderTarget===!0?me.texture.colorSpace:Fs,alphaToCoverage:!!M.alphaToCoverage,map:Be,matcap:V,envMap:Ee,envMapMode:Ee&&F.mapping,envMapCubeUVHeight:ee,aoMap:ne,lightMap:ae,bumpMap:he,normalMap:Te,displacementMap:g&&$,emissiveMap:_,normalMapObjectSpace:Te&&M.normalMapType===eR,normalMapTangentSpace:Te&&M.normalMapType===Ba,metalnessMap:D,roughnessMap:ie,anisotropy:be,anisotropyMap:Ze,clearcoat:De,clearcoatMap:ut,clearcoatNormalMap:It,clearcoatRoughnessMap:Le,iridescence:Qe,iridescenceMap:Nt,iridescenceThicknessMap:wt,sheen:Je,sheenColorMap:mt,sheenRoughnessMap:ct,specularMap:it,specularColorMap:Bt,specularIntensityMap:kt,transmission:Ve,transmissionMap:Zt,thicknessMap:Mt,gradientMap:Yt,opaque:M.transparent===!1&&M.blending===Ql&&M.alphaToCoverage===!1,alphaMap:j,alphaTest:Ge,alphaHash:Fe,combine:M.combine,mapUv:Be&&C(M.map.channel),aoMapUv:ne&&C(M.aoMap.channel),lightMapUv:ae&&C(M.lightMap.channel),bumpMapUv:he&&C(M.bumpMap.channel),normalMapUv:Te&&C(M.normalMap.channel),displacementMapUv:$&&C(M.displacementMap.channel),emissiveMapUv:_&&C(M.emissiveMap.channel),metalnessMapUv:D&&C(M.metalnessMap.channel),roughnessMapUv:ie&&C(M.roughnessMap.channel),anisotropyMapUv:Ze&&C(M.anisotropyMap.channel),clearcoatMapUv:ut&&C(M.clearcoatMap.channel),clearcoatNormalMapUv:It&&C(M.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Le&&C(M.clearcoatRoughnessMap.channel),iridescenceMapUv:Nt&&C(M.iridescenceMap.channel),iridescenceThicknessMapUv:wt&&C(M.iridescenceThicknessMap.channel),sheenColorMapUv:mt&&C(M.sheenColorMap.channel),sheenRoughnessMapUv:ct&&C(M.sheenRoughnessMap.channel),specularMapUv:it&&C(M.specularMap.channel),specularColorMapUv:Bt&&C(M.specularColorMap.channel),specularIntensityMapUv:kt&&C(M.specularIntensityMap.channel),transmissionMapUv:Zt&&C(M.transmissionMap.channel),thicknessMapUv:Mt&&C(M.thicknessMap.channel),alphaMapUv:j&&C(M.alphaMap.channel),vertexTangents:!!se.attributes.tangent&&(Te||be),vertexColors:M.vertexColors,vertexAlphas:M.vertexColors===!0&&!!se.attributes.color&&se.attributes.color.itemSize===4,pointsUvs:J.isPoints===!0&&!!se.attributes.uv&&(Be||j),fog:!!ce,useFog:M.fog===!0,fogExp2:!!ce&&ce.isFogExp2,flatShading:M.flatShading===!0,sizeAttenuation:M.sizeAttenuation===!0,logarithmicDepthBuffer:f,skinning:J.isSkinnedMesh===!0,morphTargets:se.morphAttributes.position!==void 0,morphNormals:se.morphAttributes.normal!==void 0,morphColors:se.morphAttributes.color!==void 0,morphTargetsCount:ye,morphTextureStride:Oe,numDirLights:P.directional.length,numPointLights:P.point.length,numSpotLights:P.spot.length,numSpotLightMaps:P.spotLightMap.length,numRectAreaLights:P.rectArea.length,numHemiLights:P.hemi.length,numDirLightShadows:P.directionalShadowMap.length,numPointLightShadows:P.pointShadowMap.length,numSpotLightShadows:P.spotShadowMap.length,numSpotLightShadowsWithMaps:P.numSpotLightShadowsWithMaps,numLightProbes:P.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:M.dithering,shadowMapEnabled:n.shadowMap.enabled&&q.length>0,shadowMapType:n.shadowMap.type,toneMapping:pt,useLegacyLights:n._useLegacyLights,decodeVideoTexture:Be&&M.map.isVideoTexture===!0&&an.getTransfer(M.map.colorSpace)===gn,premultipliedAlpha:M.premultipliedAlpha,doubleSided:M.side===Qs,flipSided:M.side===Vi,useDepthPacking:M.depthPacking>=0,depthPacking:M.depthPacking||0,index0AttributeName:M.index0AttributeName,extensionDerivatives:st&&M.extensions.derivatives===!0,extensionFragDepth:st&&M.extensions.fragDepth===!0,extensionDrawBuffers:st&&M.extensions.drawBuffers===!0,extensionShaderTextureLOD:st&&M.extensions.shaderTextureLOD===!0,extensionClipCullDistance:st&&M.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:st&&M.extensions.multiDraw===!0&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:d||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:d||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:d||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:M.customProgramCacheKey()};return Xt.vertexUv1s=A.has(1),Xt.vertexUv2s=A.has(2),Xt.vertexUv3s=A.has(3),A.clear(),Xt}function y(M){const P=[];if(M.shaderID?P.push(M.shaderID):(P.push(M.customVertexShaderID),P.push(M.customFragmentShaderID)),M.defines!==void 0)for(const q in M.defines)P.push(q),P.push(M.defines[q]);return M.isRawShaderMaterial===!1&&(I(P,M),B(P,M),P.push(n.outputColorSpace)),P.push(M.customProgramCacheKey),P.join()}function I(M,P){M.push(P.precision),M.push(P.outputColorSpace),M.push(P.envMapMode),M.push(P.envMapCubeUVHeight),M.push(P.mapUv),M.push(P.alphaMapUv),M.push(P.lightMapUv),M.push(P.aoMapUv),M.push(P.bumpMapUv),M.push(P.normalMapUv),M.push(P.displacementMapUv),M.push(P.emissiveMapUv),M.push(P.metalnessMapUv),M.push(P.roughnessMapUv),M.push(P.anisotropyMapUv),M.push(P.clearcoatMapUv),M.push(P.clearcoatNormalMapUv),M.push(P.clearcoatRoughnessMapUv),M.push(P.iridescenceMapUv),M.push(P.iridescenceThicknessMapUv),M.push(P.sheenColorMapUv),M.push(P.sheenRoughnessMapUv),M.push(P.specularMapUv),M.push(P.specularColorMapUv),M.push(P.specularIntensityMapUv),M.push(P.transmissionMapUv),M.push(P.thicknessMapUv),M.push(P.combine),M.push(P.fogExp2),M.push(P.sizeAttenuation),M.push(P.morphTargetsCount),M.push(P.morphAttributeCount),M.push(P.numDirLights),M.push(P.numPointLights),M.push(P.numSpotLights),M.push(P.numSpotLightMaps),M.push(P.numHemiLights),M.push(P.numRectAreaLights),M.push(P.numDirLightShadows),M.push(P.numPointLightShadows),M.push(P.numSpotLightShadows),M.push(P.numSpotLightShadowsWithMaps),M.push(P.numLightProbes),M.push(P.shadowMapType),M.push(P.toneMapping),M.push(P.numClippingPlanes),M.push(P.numClipIntersection),M.push(P.depthPacking)}function B(M,P){a.disableAll(),P.isWebGL2&&a.enable(0),P.supportsVertexTextures&&a.enable(1),P.instancing&&a.enable(2),P.instancingColor&&a.enable(3),P.matcap&&a.enable(4),P.envMap&&a.enable(5),P.normalMapObjectSpace&&a.enable(6),P.normalMapTangentSpace&&a.enable(7),P.clearcoat&&a.enable(8),P.iridescence&&a.enable(9),P.alphaTest&&a.enable(10),P.vertexColors&&a.enable(11),P.vertexAlphas&&a.enable(12),P.vertexUv1s&&a.enable(13),P.vertexUv2s&&a.enable(14),P.vertexUv3s&&a.enable(15),P.vertexTangents&&a.enable(16),P.anisotropy&&a.enable(17),P.alphaHash&&a.enable(18),P.batching&&a.enable(19),M.push(a.mask),a.disableAll(),P.fog&&a.enable(0),P.useFog&&a.enable(1),P.flatShading&&a.enable(2),P.logarithmicDepthBuffer&&a.enable(3),P.skinning&&a.enable(4),P.morphTargets&&a.enable(5),P.morphNormals&&a.enable(6),P.morphColors&&a.enable(7),P.premultipliedAlpha&&a.enable(8),P.shadowMapEnabled&&a.enable(9),P.useLegacyLights&&a.enable(10),P.doubleSided&&a.enable(11),P.flipSided&&a.enable(12),P.useDepthPacking&&a.enable(13),P.dithering&&a.enable(14),P.transmission&&a.enable(15),P.sheen&&a.enable(16),P.opaque&&a.enable(17),P.pointsUvs&&a.enable(18),P.decodeVideoTexture&&a.enable(19),P.alphaToCoverage&&a.enable(20),M.push(a.mask)}function R(M){const P=v[M.type];let q;if(P){const ge=os[P];q=dR.clone(ge.uniforms)}else q=M.uniforms;return q}function w(M,P){let q;for(let ge=0,J=h.length;ge0?i.push(p):g.transparent===!0?r.push(p):t.push(p)}function l(d,f,g,E,v,C){const p=o(d,f,g,E,v,C);g.transmission>0?i.unshift(p):g.transparent===!0?r.unshift(p):t.unshift(p)}function A(d,f){t.length>1&&t.sort(d||t8),i.length>1&&i.sort(f||n_),r.length>1&&r.sort(f||n_)}function h(){for(let d=e,f=n.length;d=s.length?(o=new i_,s.push(o)):o=s[r],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function i8(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new G,color:new je};break;case"SpotLight":t={position:new G,direction:new G,color:new je,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new G,color:new je,distance:0,decay:0};break;case"HemisphereLight":t={direction:new G,skyColor:new je,groundColor:new je};break;case"RectAreaLight":t={color:new je,position:new G,halfWidth:new G,halfHeight:new G};break}return n[e.id]=t,t}}}function r8(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Se};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Se};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Se,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let s8=0;function o8(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function a8(n,e){const t=new i8,i=r8(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)r.probe.push(new G);const s=new G,o=new ht,a=new ht;function l(h,d){let f=0,g=0,E=0;for(let q=0;q<9;q++)r.probe[q].set(0,0,0);let v=0,C=0,p=0,y=0,I=0,B=0,R=0,w=0,T=0,U=0,K=0;h.sort(o8);const M=d===!0?Math.PI:1;for(let q=0,ge=h.length;q0&&(e.isWebGL2?n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=f,r.ambient[1]=g,r.ambient[2]=E;const P=r.hash;(P.directionalLength!==v||P.pointLength!==C||P.spotLength!==p||P.rectAreaLength!==y||P.hemiLength!==I||P.numDirectionalShadows!==B||P.numPointShadows!==R||P.numSpotShadows!==w||P.numSpotMaps!==T||P.numLightProbes!==K)&&(r.directional.length=v,r.spot.length=p,r.rectArea.length=y,r.point.length=C,r.hemi.length=I,r.directionalShadow.length=B,r.directionalShadowMap.length=B,r.pointShadow.length=R,r.pointShadowMap.length=R,r.spotShadow.length=w,r.spotShadowMap.length=w,r.directionalShadowMatrix.length=B,r.pointShadowMatrix.length=R,r.spotLightMatrix.length=w+T-U,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=U,r.numLightProbes=K,P.directionalLength=v,P.pointLength=C,P.spotLength=p,P.rectAreaLength=y,P.hemiLength=I,P.numDirectionalShadows=B,P.numPointShadows=R,P.numSpotShadows=w,P.numSpotMaps=T,P.numLightProbes=K,r.version=s8++)}function A(h,d){let f=0,g=0,E=0,v=0,C=0;const p=d.matrixWorldInverse;for(let y=0,I=h.length;y=a.length?(l=new r_(n,e),a.push(l)):l=a[o],l}function r(){t=new WeakMap}return{get:i,dispose:r}}class nm extends di{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=$Q,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class im extends di{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const c8=`void main() { +`+ee)}else fe!==""?console.warn("THREE.WebGLProgram: Program Info Log:",fe):(J===""||re==="")&&(ue=!1);ue&&(q.diagnostics={runnable:ne,programLog:fe,vertexShader:{log:J,prefix:p},fragmentShader:{log:re,prefix:y}})}r.deleteShader(M),r.deleteShader(T),K=new zp(r,C),w=e8(r,C)}let K;this.getUniforms=function(){return K===void 0&&U(this),K};let w;this.getAttributes=function(){return w===void 0&&U(this),w};let P=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return P===!1&&(P=r.getProgramParameter(C,Wk)),P},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(C),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=Yk++,this.cacheKey=e,this.usedTimes=1,this.program=C,this.vertexShader=M,this.fragmentShader=T,this}let h8=0;class d8{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new f8(e),t.set(e,i)),i}}class f8{constructor(e){this.id=h8++,this.code=e,this.usedTimes=0}}function p8(n,e,t,i,r,s,o){const a=new Gl,l=new d8,A=new Set,h=[],d=r.isWebGL2,f=r.logarithmicDepthBuffer,g=r.vertexTextures;let E=r.precision;const v={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function C(w){return A.add(w),w===0?"uv":`uv${w}`}function p(w,P,q,fe,J){const re=fe.fog,ne=J.geometry,ue=w.isMeshStandardMaterial?fe.environment:null,F=(w.isMeshStandardMaterial?t:e).get(w.envMap||ue),ee=F&&F.mapping===bu?F.image.height:null,te=v[w.type];w.precision!==null&&(E=r.getMaxPrecision(w.precision),E!==w.precision&&console.warn("THREE.WebGLProgram.getParameters:",w.precision,"not supported, using",E,"instead."));const Ae=ne.morphAttributes.position||ne.morphAttributes.normal||ne.morphAttributes.color,ye=Ae!==void 0?Ae.length:0;let Oe=0;ne.morphAttributes.position!==void 0&&(Oe=1),ne.morphAttributes.normal!==void 0&&(Oe=2),ne.morphAttributes.color!==void 0&&(Oe=3);let Y,z,G,O;if(te){const jt=as[te];Y=jt.vertexShader,z=jt.fragmentShader}else Y=w.vertexShader,z=w.fragmentShader,l.update(w),G=l.getVertexShaderID(w),O=l.getFragmentShaderID(w);const me=n.getRenderTarget(),Ie=J.isInstancedMesh===!0,oe=J.isBatchedMesh===!0,Se=!!w.map,V=!!w.matcap,Ee=!!F,ie=!!w.aoMap,le=!!w.lightMap,de=!!w.bumpMap,Te=!!w.normalMap,$=!!w.displacementMap,_=!!w.emissiveMap,b=!!w.metalnessMap,se=!!w.roughnessMap,Pe=w.anisotropy>0,De=w.clearcoat>0,Qe=w.iridescence>0,je=w.sheen>0,Ve=w.transmission>0,Ze=Pe&&!!w.anisotropyMap,ut=De&&!!w.clearcoatMap,It=De&&!!w.clearcoatNormalMap,Ne=De&&!!w.clearcoatRoughnessMap,Lt=Qe&&!!w.iridescenceMap,wt=Qe&&!!w.iridescenceThicknessMap,mt=je&&!!w.sheenColorMap,ct=je&&!!w.sheenRoughnessMap,it=!!w.specularMap,Bt=!!w.specularColorMap,kt=!!w.specularIntensityMap,en=Ve&&!!w.transmissionMap,Mt=Ve&&!!w.thicknessMap,Xt=!!w.gradientMap,j=!!w.alphaMap,Ge=w.alphaTest>0,Fe=!!w.alphaHash,st=!!w.extensions;let pt=Us;w.toneMapped&&(me===null||me.isXRRenderTarget===!0)&&(pt=n.toneMapping);const Jt={isWebGL2:d,shaderID:te,shaderType:w.type,shaderName:w.name,vertexShader:Y,fragmentShader:z,defines:w.defines,customVertexShaderID:G,customFragmentShaderID:O,isRawShaderMaterial:w.isRawShaderMaterial===!0,glslVersion:w.glslVersion,precision:E,batching:oe,instancing:Ie,instancingColor:Ie&&J.instanceColor!==null,supportsVertexTextures:g,outputColorSpace:me===null?n.outputColorSpace:me.isXRRenderTarget===!0?me.texture.colorSpace:ks,alphaToCoverage:!!w.alphaToCoverage,map:Se,matcap:V,envMap:Ee,envMapMode:Ee&&F.mapping,envMapCubeUVHeight:ee,aoMap:ie,lightMap:le,bumpMap:de,normalMap:Te,displacementMap:g&&$,emissiveMap:_,normalMapObjectSpace:Te&&w.normalMapType===pR,normalMapTangentSpace:Te&&w.normalMapType===Fa,metalnessMap:b,roughnessMap:se,anisotropy:Pe,anisotropyMap:Ze,clearcoat:De,clearcoatMap:ut,clearcoatNormalMap:It,clearcoatRoughnessMap:Ne,iridescence:Qe,iridescenceMap:Lt,iridescenceThicknessMap:wt,sheen:je,sheenColorMap:mt,sheenRoughnessMap:ct,specularMap:it,specularColorMap:Bt,specularIntensityMap:kt,transmission:Ve,transmissionMap:en,thicknessMap:Mt,gradientMap:Xt,opaque:w.transparent===!1&&w.blending===Fl&&w.alphaToCoverage===!1,alphaMap:j,alphaTest:Ge,alphaHash:Fe,combine:w.combine,mapUv:Se&&C(w.map.channel),aoMapUv:ie&&C(w.aoMap.channel),lightMapUv:le&&C(w.lightMap.channel),bumpMapUv:de&&C(w.bumpMap.channel),normalMapUv:Te&&C(w.normalMap.channel),displacementMapUv:$&&C(w.displacementMap.channel),emissiveMapUv:_&&C(w.emissiveMap.channel),metalnessMapUv:b&&C(w.metalnessMap.channel),roughnessMapUv:se&&C(w.roughnessMap.channel),anisotropyMapUv:Ze&&C(w.anisotropyMap.channel),clearcoatMapUv:ut&&C(w.clearcoatMap.channel),clearcoatNormalMapUv:It&&C(w.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Ne&&C(w.clearcoatRoughnessMap.channel),iridescenceMapUv:Lt&&C(w.iridescenceMap.channel),iridescenceThicknessMapUv:wt&&C(w.iridescenceThicknessMap.channel),sheenColorMapUv:mt&&C(w.sheenColorMap.channel),sheenRoughnessMapUv:ct&&C(w.sheenRoughnessMap.channel),specularMapUv:it&&C(w.specularMap.channel),specularColorMapUv:Bt&&C(w.specularColorMap.channel),specularIntensityMapUv:kt&&C(w.specularIntensityMap.channel),transmissionMapUv:en&&C(w.transmissionMap.channel),thicknessMapUv:Mt&&C(w.thicknessMap.channel),alphaMapUv:j&&C(w.alphaMap.channel),vertexTangents:!!ne.attributes.tangent&&(Te||Pe),vertexColors:w.vertexColors,vertexAlphas:w.vertexColors===!0&&!!ne.attributes.color&&ne.attributes.color.itemSize===4,pointsUvs:J.isPoints===!0&&!!ne.attributes.uv&&(Se||j),fog:!!re,useFog:w.fog===!0,fogExp2:!!re&&re.isFogExp2,flatShading:w.flatShading===!0,sizeAttenuation:w.sizeAttenuation===!0,logarithmicDepthBuffer:f,skinning:J.isSkinnedMesh===!0,morphTargets:ne.morphAttributes.position!==void 0,morphNormals:ne.morphAttributes.normal!==void 0,morphColors:ne.morphAttributes.color!==void 0,morphTargetsCount:ye,morphTextureStride:Oe,numDirLights:P.directional.length,numPointLights:P.point.length,numSpotLights:P.spot.length,numSpotLightMaps:P.spotLightMap.length,numRectAreaLights:P.rectArea.length,numHemiLights:P.hemi.length,numDirLightShadows:P.directionalShadowMap.length,numPointLightShadows:P.pointShadowMap.length,numSpotLightShadows:P.spotShadowMap.length,numSpotLightShadowsWithMaps:P.numSpotLightShadowsWithMaps,numLightProbes:P.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:w.dithering,shadowMapEnabled:n.shadowMap.enabled&&q.length>0,shadowMapType:n.shadowMap.type,toneMapping:pt,useLegacyLights:n._useLegacyLights,decodeVideoTexture:Se&&w.map.isVideoTexture===!0&&cn.getTransfer(w.map.colorSpace)===gn,premultipliedAlpha:w.premultipliedAlpha,doubleSided:w.side===Ts,flipSided:w.side===Yi,useDepthPacking:w.depthPacking>=0,depthPacking:w.depthPacking||0,index0AttributeName:w.index0AttributeName,extensionDerivatives:st&&w.extensions.derivatives===!0,extensionFragDepth:st&&w.extensions.fragDepth===!0,extensionDrawBuffers:st&&w.extensions.drawBuffers===!0,extensionShaderTextureLOD:st&&w.extensions.shaderTextureLOD===!0,extensionClipCullDistance:st&&w.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:st&&w.extensions.multiDraw===!0&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:d||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:d||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:d||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:w.customProgramCacheKey()};return Jt.vertexUv1s=A.has(1),Jt.vertexUv2s=A.has(2),Jt.vertexUv3s=A.has(3),A.clear(),Jt}function y(w){const P=[];if(w.shaderID?P.push(w.shaderID):(P.push(w.customVertexShaderID),P.push(w.customFragmentShaderID)),w.defines!==void 0)for(const q in w.defines)P.push(q),P.push(w.defines[q]);return w.isRawShaderMaterial===!1&&(I(P,w),B(P,w),P.push(n.outputColorSpace)),P.push(w.customProgramCacheKey),P.join()}function I(w,P){w.push(P.precision),w.push(P.outputColorSpace),w.push(P.envMapMode),w.push(P.envMapCubeUVHeight),w.push(P.mapUv),w.push(P.alphaMapUv),w.push(P.lightMapUv),w.push(P.aoMapUv),w.push(P.bumpMapUv),w.push(P.normalMapUv),w.push(P.displacementMapUv),w.push(P.emissiveMapUv),w.push(P.metalnessMapUv),w.push(P.roughnessMapUv),w.push(P.anisotropyMapUv),w.push(P.clearcoatMapUv),w.push(P.clearcoatNormalMapUv),w.push(P.clearcoatRoughnessMapUv),w.push(P.iridescenceMapUv),w.push(P.iridescenceThicknessMapUv),w.push(P.sheenColorMapUv),w.push(P.sheenRoughnessMapUv),w.push(P.specularMapUv),w.push(P.specularColorMapUv),w.push(P.specularIntensityMapUv),w.push(P.transmissionMapUv),w.push(P.thicknessMapUv),w.push(P.combine),w.push(P.fogExp2),w.push(P.sizeAttenuation),w.push(P.morphTargetsCount),w.push(P.morphAttributeCount),w.push(P.numDirLights),w.push(P.numPointLights),w.push(P.numSpotLights),w.push(P.numSpotLightMaps),w.push(P.numHemiLights),w.push(P.numRectAreaLights),w.push(P.numDirLightShadows),w.push(P.numPointLightShadows),w.push(P.numSpotLightShadows),w.push(P.numSpotLightShadowsWithMaps),w.push(P.numLightProbes),w.push(P.shadowMapType),w.push(P.toneMapping),w.push(P.numClippingPlanes),w.push(P.numClipIntersection),w.push(P.depthPacking)}function B(w,P){a.disableAll(),P.isWebGL2&&a.enable(0),P.supportsVertexTextures&&a.enable(1),P.instancing&&a.enable(2),P.instancingColor&&a.enable(3),P.matcap&&a.enable(4),P.envMap&&a.enable(5),P.normalMapObjectSpace&&a.enable(6),P.normalMapTangentSpace&&a.enable(7),P.clearcoat&&a.enable(8),P.iridescence&&a.enable(9),P.alphaTest&&a.enable(10),P.vertexColors&&a.enable(11),P.vertexAlphas&&a.enable(12),P.vertexUv1s&&a.enable(13),P.vertexUv2s&&a.enable(14),P.vertexUv3s&&a.enable(15),P.vertexTangents&&a.enable(16),P.anisotropy&&a.enable(17),P.alphaHash&&a.enable(18),P.batching&&a.enable(19),w.push(a.mask),a.disableAll(),P.fog&&a.enable(0),P.useFog&&a.enable(1),P.flatShading&&a.enable(2),P.logarithmicDepthBuffer&&a.enable(3),P.skinning&&a.enable(4),P.morphTargets&&a.enable(5),P.morphNormals&&a.enable(6),P.morphColors&&a.enable(7),P.premultipliedAlpha&&a.enable(8),P.shadowMapEnabled&&a.enable(9),P.useLegacyLights&&a.enable(10),P.doubleSided&&a.enable(11),P.flipSided&&a.enable(12),P.useDepthPacking&&a.enable(13),P.dithering&&a.enable(14),P.transmission&&a.enable(15),P.sheen&&a.enable(16),P.opaque&&a.enable(17),P.pointsUvs&&a.enable(18),P.decodeVideoTexture&&a.enable(19),P.alphaToCoverage&&a.enable(20),w.push(a.mask)}function R(w){const P=v[w.type];let q;if(P){const fe=as[P];q=MR.clone(fe.uniforms)}else q=w.uniforms;return q}function M(w,P){let q;for(let fe=0,J=h.length;fe0?i.push(p):g.transparent===!0?r.push(p):t.push(p)}function l(d,f,g,E,v,C){const p=o(d,f,g,E,v,C);g.transmission>0?i.unshift(p):g.transparent===!0?r.unshift(p):t.unshift(p)}function A(d,f){t.length>1&&t.sort(d||m8),i.length>1&&i.sort(f||h_),r.length>1&&r.sort(f||h_)}function h(){for(let d=e,f=n.length;d=s.length?(o=new d_,s.push(o)):o=s[r],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function C8(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new H,color:new Ke};break;case"SpotLight":t={position:new H,direction:new H,color:new Ke,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new H,color:new Ke,distance:0,decay:0};break;case"HemisphereLight":t={direction:new H,skyColor:new Ke,groundColor:new Ke};break;case"RectAreaLight":t={color:new Ke,position:new H,halfWidth:new H,halfHeight:new H};break}return n[e.id]=t,t}}}function y8(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Be};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Be};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Be,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let v8=0;function I8(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function x8(n,e){const t=new C8,i=y8(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)r.probe.push(new H);const s=new H,o=new ht,a=new ht;function l(h,d){let f=0,g=0,E=0;for(let q=0;q<9;q++)r.probe[q].set(0,0,0);let v=0,C=0,p=0,y=0,I=0,B=0,R=0,M=0,T=0,U=0,K=0;h.sort(I8);const w=d===!0?Math.PI:1;for(let q=0,fe=h.length;q0&&(e.isWebGL2?n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=f,r.ambient[1]=g,r.ambient[2]=E;const P=r.hash;(P.directionalLength!==v||P.pointLength!==C||P.spotLength!==p||P.rectAreaLength!==y||P.hemiLength!==I||P.numDirectionalShadows!==B||P.numPointShadows!==R||P.numSpotShadows!==M||P.numSpotMaps!==T||P.numLightProbes!==K)&&(r.directional.length=v,r.spot.length=p,r.rectArea.length=y,r.point.length=C,r.hemi.length=I,r.directionalShadow.length=B,r.directionalShadowMap.length=B,r.pointShadow.length=R,r.pointShadowMap.length=R,r.spotShadow.length=M,r.spotShadowMap.length=M,r.directionalShadowMatrix.length=B,r.pointShadowMatrix.length=R,r.spotLightMatrix.length=M+T-U,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=U,r.numLightProbes=K,P.directionalLength=v,P.pointLength=C,P.spotLength=p,P.rectAreaLength=y,P.hemiLength=I,P.numDirectionalShadows=B,P.numPointShadows=R,P.numSpotShadows=M,P.numSpotMaps=T,P.numLightProbes=K,r.version=v8++)}function A(h,d){let f=0,g=0,E=0,v=0,C=0;const p=d.matrixWorldInverse;for(let y=0,I=h.length;y=a.length?(l=new f_(n,e),a.push(l)):l=a[o],l}function r(){t=new WeakMap}return{get:i,dispose:r}}class om extends fi{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=fR,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class am extends fi{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const S8=`void main() { gl_Position = vec4( position, 1.0 ); -}`,u8=`uniform sampler2D shadow_pass; +}`,_8=`uniform sampler2D shadow_pass; uniform vec2 resolution; uniform float radius; #include @@ -3776,12 +3776,12 @@ void main() { squared_mean = squared_mean / samples; float std_dev = sqrt( squared_mean - mean * mean ); gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function A8(n,e,t){let i=new jh;const r=new Se,s=new Se,o=new ln,a=new nm({depthPacking:Hv}),l=new im,A={},h=t.maxTextureSize,d={[Xr]:Vi,[Vi]:Xr,[Qs]:Qs},f=new hs({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Se},radius:{value:4}},vertexShader:c8,fragmentShader:u8}),g=f.clone();g.defines.HORIZONTAL_PASS=1;const E=new Pt;E.setAttribute("position",new on(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new qt(E,f),C=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=jg;let p=this.type;this.render=function(w,T,U){if(C.enabled===!1||C.autoUpdate===!1&&C.needsUpdate===!1||w.length===0)return;const K=n.getRenderTarget(),M=n.getActiveCubeFace(),P=n.getActiveMipmapLevel(),q=n.state;q.setBlending(go),q.buffers.color.setClear(1,1,1,1),q.buffers.depth.setTest(!0),q.setScissorTest(!1);const ge=p!==is&&this.type===is,J=p===is&&this.type!==is;for(let ce=0,se=w.length;ceh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/ee.x),r.x=s.x*ee.x,F.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/ee.y),r.y=s.y*ee.y,F.mapSize.y=s.y)),F.map===null||ge===!0||J===!0){const ue=this.type!==is?{minFilter:Gn,magFilter:Gn}:{};F.map!==null&&F.map.dispose(),F.map=new Jr(r.x,r.y,ue),F.map.texture.name=de.name+".shadowMap",F.camera.updateProjectionMatrix()}n.setRenderTarget(F.map),n.clear();const te=F.getViewportCount();for(let ue=0;ue0||T.map&&T.alphaTest>0){const q=M.uuid,ge=T.uuid;let J=A[q];J===void 0&&(J={},A[q]=J);let ce=J[ge];ce===void 0&&(ce=M.clone(),J[ge]=ce,T.addEventListener("dispose",R)),M=ce}if(M.visible=T.visible,M.wireframe=T.wireframe,K===is?M.side=T.shadowSide!==null?T.shadowSide:T.side:M.side=T.shadowSide!==null?T.shadowSide:d[T.side],M.alphaMap=T.alphaMap,M.alphaTest=T.alphaTest,M.map=T.map,M.clipShadows=T.clipShadows,M.clippingPlanes=T.clippingPlanes,M.clipIntersection=T.clipIntersection,M.displacementMap=T.displacementMap,M.displacementScale=T.displacementScale,M.displacementBias=T.displacementBias,M.wireframeLinewidth=T.wireframeLinewidth,M.linewidth=T.linewidth,U.isPointLight===!0&&M.isMeshDistanceMaterial===!0){const q=n.properties.get(M);q.light=U}return M}function B(w,T,U,K,M){if(w.visible===!1)return;if(w.layers.test(T.layers)&&(w.isMesh||w.isLine||w.isPoints)&&(w.castShadow||w.receiveShadow&&M===is)&&(!w.frustumCulled||i.intersectsObject(w))){w.modelViewMatrix.multiplyMatrices(U.matrixWorldInverse,w.matrixWorld);const ge=e.update(w),J=w.material;if(Array.isArray(J)){const ce=ge.groups;for(let se=0,de=ce.length;se=1):te.indexOf("OpenGL ES")!==-1&&(ee=parseFloat(/^OpenGL ES (\d)/.exec(te)[1]),F=ee>=2);let ue=null,ye={};const Oe=n.getParameter(n.SCISSOR_BOX),Y=n.getParameter(n.VIEWPORT),z=new ln().fromArray(Oe),O=new ln().fromArray(Y);function k(j,Ge,Fe,st){const pt=new Uint8Array(4),Xt=n.createTexture();n.bindTexture(j,Xt),n.texParameteri(j,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(j,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Jt=0;Jt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new WeakMap;let d;const f=new WeakMap;let g=!1;try{g=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function E(_,D){return g?new OffscreenCanvas(_,D):Qh("canvas")}function v(_,D,ie,be){let De=1;if((_.width>be||_.height>be)&&(De=be/Math.max(_.width,_.height)),De<1||D===!0)if(typeof HTMLImageElement<"u"&&_ instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&_ instanceof ImageBitmap){const Qe=D?Bg:Math.floor,Je=Qe(De*_.width),Ve=Qe(De*_.height);d===void 0&&(d=E(Je,Ve));const Ze=ie?E(Je,Ve):d;return Ze.width=Je,Ze.height=Ve,Ze.getContext("2d").drawImage(_,0,0,Je,Ve),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+_.width+"x"+_.height+") to ("+Je+"x"+Ve+")."),Ze}else return"data"in _&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+_.width+"x"+_.height+")."),_;return _}function C(_){return e1(_.width)&&e1(_.height)}function p(_){return a?!1:_.wrapS!==Ti||_.wrapT!==Ti||_.minFilter!==Gn&&_.minFilter!==vn}function y(_,D){return _.generateMipmaps&&D&&_.minFilter!==Gn&&_.minFilter!==vn}function I(_){n.generateMipmap(_)}function B(_,D,ie,be,De=!1){if(a===!1)return D;if(_!==null){if(n[_]!==void 0)return n[_];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+_+"'")}let Qe=D;if(D===n.RED&&(ie===n.FLOAT&&(Qe=n.R32F),ie===n.HALF_FLOAT&&(Qe=n.R16F),ie===n.UNSIGNED_BYTE&&(Qe=n.R8)),D===n.RED_INTEGER&&(ie===n.UNSIGNED_BYTE&&(Qe=n.R8UI),ie===n.UNSIGNED_SHORT&&(Qe=n.R16UI),ie===n.UNSIGNED_INT&&(Qe=n.R32UI),ie===n.BYTE&&(Qe=n.R8I),ie===n.SHORT&&(Qe=n.R16I),ie===n.INT&&(Qe=n.R32I)),D===n.RG&&(ie===n.FLOAT&&(Qe=n.RG32F),ie===n.HALF_FLOAT&&(Qe=n.RG16F),ie===n.UNSIGNED_BYTE&&(Qe=n.RG8)),D===n.RGBA){const Je=De?Bh:an.getTransfer(be);ie===n.FLOAT&&(Qe=n.RGBA32F),ie===n.HALF_FLOAT&&(Qe=n.RGBA16F),ie===n.UNSIGNED_BYTE&&(Qe=Je===gn?n.SRGB8_ALPHA8:n.RGBA8),ie===n.UNSIGNED_SHORT_4_4_4_4&&(Qe=n.RGBA4),ie===n.UNSIGNED_SHORT_5_5_5_1&&(Qe=n.RGB5_A1)}return(Qe===n.R16F||Qe===n.R32F||Qe===n.RG16F||Qe===n.RG32F||Qe===n.RGBA16F||Qe===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Qe}function R(_,D,ie){return y(_,ie)===!0||_.isFramebufferTexture&&_.minFilter!==Gn&&_.minFilter!==vn?Math.log2(Math.max(D.width,D.height))+1:_.mipmaps!==void 0&&_.mipmaps.length>0?_.mipmaps.length:_.isCompressedTexture&&Array.isArray(_.image)?D.mipmaps.length:1}function w(_){return _===Gn||_===Ig||_===El?n.NEAREST:n.LINEAR}function T(_){const D=_.target;D.removeEventListener("dispose",T),K(D),D.isVideoTexture&&h.delete(D)}function U(_){const D=_.target;D.removeEventListener("dispose",U),P(D)}function K(_){const D=i.get(_);if(D.__webglInit===void 0)return;const ie=_.source,be=f.get(ie);if(be){const De=be[D.__cacheKey];De.usedTimes--,De.usedTimes===0&&M(_),Object.keys(be).length===0&&f.delete(ie)}i.remove(_)}function M(_){const D=i.get(_);n.deleteTexture(D.__webglTexture);const ie=_.source,be=f.get(ie);delete be[D.__cacheKey],o.memory.textures--}function P(_){const D=_.texture,ie=i.get(_),be=i.get(D);if(be.__webglTexture!==void 0&&(n.deleteTexture(be.__webglTexture),o.memory.textures--),_.depthTexture&&_.depthTexture.dispose(),_.isWebGLCubeRenderTarget)for(let De=0;De<6;De++){if(Array.isArray(ie.__webglFramebuffer[De]))for(let Qe=0;Qe=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+_+" texture units while this GPU supports only "+r.maxTextures),q+=1,_}function ce(_){const D=[];return D.push(_.wrapS),D.push(_.wrapT),D.push(_.wrapR||0),D.push(_.magFilter),D.push(_.minFilter),D.push(_.anisotropy),D.push(_.internalFormat),D.push(_.format),D.push(_.type),D.push(_.generateMipmaps),D.push(_.premultiplyAlpha),D.push(_.flipY),D.push(_.unpackAlignment),D.push(_.colorSpace),D.join()}function se(_,D){const ie=i.get(_);if(_.isVideoTexture&&Te(_),_.isRenderTargetTexture===!1&&_.version>0&&ie.__version!==_.version){const be=_.image;if(be===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(be.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{z(ie,_,D);return}}t.bindTexture(n.TEXTURE_2D,ie.__webglTexture,n.TEXTURE0+D)}function de(_,D){const ie=i.get(_);if(_.version>0&&ie.__version!==_.version){z(ie,_,D);return}t.bindTexture(n.TEXTURE_2D_ARRAY,ie.__webglTexture,n.TEXTURE0+D)}function F(_,D){const ie=i.get(_);if(_.version>0&&ie.__version!==_.version){z(ie,_,D);return}t.bindTexture(n.TEXTURE_3D,ie.__webglTexture,n.TEXTURE0+D)}function ee(_,D){const ie=i.get(_);if(_.version>0&&ie.__version!==_.version){O(ie,_,D);return}t.bindTexture(n.TEXTURE_CUBE_MAP,ie.__webglTexture,n.TEXTURE0+D)}const te={[Ch]:n.REPEAT,[Ti]:n.CLAMP_TO_EDGE,[yh]:n.MIRRORED_REPEAT},ue={[Gn]:n.NEAREST,[Ig]:n.NEAREST_MIPMAP_NEAREST,[El]:n.NEAREST_MIPMAP_LINEAR,[vn]:n.LINEAR,[XA]:n.LINEAR_MIPMAP_NEAREST,[Rs]:n.LINEAR_MIPMAP_LINEAR},ye={[tR]:n.NEVER,[aR]:n.ALWAYS,[nR]:n.LESS,[zv]:n.LEQUAL,[iR]:n.EQUAL,[oR]:n.GEQUAL,[rR]:n.GREATER,[sR]:n.NOTEQUAL};function Oe(_,D,ie){if(D.type===Or&&e.has("OES_texture_float_linear")===!1&&(D.magFilter===vn||D.magFilter===XA||D.magFilter===El||D.magFilter===Rs||D.minFilter===vn||D.minFilter===XA||D.minFilter===El||D.minFilter===Rs)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),ie?(n.texParameteri(_,n.TEXTURE_WRAP_S,te[D.wrapS]),n.texParameteri(_,n.TEXTURE_WRAP_T,te[D.wrapT]),(_===n.TEXTURE_3D||_===n.TEXTURE_2D_ARRAY)&&n.texParameteri(_,n.TEXTURE_WRAP_R,te[D.wrapR]),n.texParameteri(_,n.TEXTURE_MAG_FILTER,ue[D.magFilter]),n.texParameteri(_,n.TEXTURE_MIN_FILTER,ue[D.minFilter])):(n.texParameteri(_,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(_,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(_===n.TEXTURE_3D||_===n.TEXTURE_2D_ARRAY)&&n.texParameteri(_,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(D.wrapS!==Ti||D.wrapT!==Ti)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(_,n.TEXTURE_MAG_FILTER,w(D.magFilter)),n.texParameteri(_,n.TEXTURE_MIN_FILTER,w(D.minFilter)),D.minFilter!==Gn&&D.minFilter!==vn&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),D.compareFunction&&(n.texParameteri(_,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(_,n.TEXTURE_COMPARE_FUNC,ye[D.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const be=e.get("EXT_texture_filter_anisotropic");if(D.magFilter===Gn||D.minFilter!==El&&D.minFilter!==Rs||D.type===Or&&e.has("OES_texture_float_linear")===!1||a===!1&&D.type===kl&&e.has("OES_texture_half_float_linear")===!1)return;(D.anisotropy>1||i.get(D).__currentAnisotropy)&&(n.texParameterf(_,be.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,r.getMaxAnisotropy())),i.get(D).__currentAnisotropy=D.anisotropy)}}function Y(_,D){let ie=!1;_.__webglInit===void 0&&(_.__webglInit=!0,D.addEventListener("dispose",T));const be=D.source;let De=f.get(be);De===void 0&&(De={},f.set(be,De));const Qe=ce(D);if(Qe!==_.__cacheKey){De[Qe]===void 0&&(De[Qe]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,ie=!0),De[Qe].usedTimes++;const Je=De[_.__cacheKey];Je!==void 0&&(De[_.__cacheKey].usedTimes--,Je.usedTimes===0&&M(D)),_.__cacheKey=Qe,_.__webglTexture=De[Qe].texture}return ie}function z(_,D,ie){let be=n.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&&(be=n.TEXTURE_2D_ARRAY),D.isData3DTexture&&(be=n.TEXTURE_3D);const De=Y(_,D),Qe=D.source;t.bindTexture(be,_.__webglTexture,n.TEXTURE0+ie);const Je=i.get(Qe);if(Qe.version!==Je.__version||De===!0){t.activeTexture(n.TEXTURE0+ie);const Ve=an.getPrimaries(an.workingColorSpace),Ze=D.colorSpace===Cr?null:an.getPrimaries(D.colorSpace),ut=D.colorSpace===Cr||Ve===Ze?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,D.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,D.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,ut);const It=p(D)&&C(D.image)===!1;let Le=v(D.image,It,!1,r.maxTextureSize);Le=$(D,Le);const Nt=C(Le)||a,wt=s.convert(D.format,D.colorSpace);let mt=s.convert(D.type),ct=B(D.internalFormat,wt,mt,D.colorSpace,D.isVideoTexture);Oe(be,D,Nt);let it;const Bt=D.mipmaps,kt=a&&D.isVideoTexture!==!0&&ct!==kv,Zt=Je.__version===void 0||De===!0,Mt=Qe.dataReady,Yt=R(D,Le,Nt);if(D.isDepthTexture)ct=n.DEPTH_COMPONENT,a?D.type===Or?ct=n.DEPTH_COMPONENT32F:D.type===ho?ct=n.DEPTH_COMPONENT24:D.type===Aa?ct=n.DEPTH24_STENCIL8:ct=n.DEPTH_COMPONENT16:D.type===Or&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),D.format===ha&&ct===n.DEPTH_COMPONENT&&D.type!==qg&&D.type!==ho&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),D.type=ho,mt=s.convert(D.type)),D.format===Ol&&ct===n.DEPTH_COMPONENT&&(ct=n.DEPTH_STENCIL,D.type!==Aa&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),D.type=Aa,mt=s.convert(D.type))),Zt&&(kt?t.texStorage2D(n.TEXTURE_2D,1,ct,Le.width,Le.height):t.texImage2D(n.TEXTURE_2D,0,ct,Le.width,Le.height,0,wt,mt,null));else if(D.isDataTexture)if(Bt.length>0&&Nt){kt&&Zt&&t.texStorage2D(n.TEXTURE_2D,Yt,ct,Bt[0].width,Bt[0].height);for(let j=0,Ge=Bt.length;j>=1,Ge>>=1}}else if(Bt.length>0&&Nt){kt&&Zt&&t.texStorage2D(n.TEXTURE_2D,Yt,ct,Bt[0].width,Bt[0].height);for(let j=0,Ge=Bt.length;j0&&Mt++,t.texStorage2D(n.TEXTURE_CUBE_MAP,Mt,it,Le[0].width,Le[0].height));for(let j=0;j<6;j++)if(It){Bt?Zt&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+j,0,0,0,Le[j].width,Le[j].height,mt,ct,Le[j].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+j,0,it,Le[j].width,Le[j].height,0,mt,ct,Le[j].data);for(let Ge=0;Ge>Qe),Le=Math.max(1,D.height>>Qe);De===n.TEXTURE_3D||De===n.TEXTURE_2D_ARRAY?t.texImage3D(De,Qe,Ze,It,Le,D.depth,0,Je,Ve,null):t.texImage2D(De,Qe,Ze,It,Le,0,Je,Ve,null)}t.bindFramebuffer(n.FRAMEBUFFER,_),he(D)?l.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,be,De,i.get(ie).__webglTexture,0,ae(D)):(De===n.TEXTURE_2D||De>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&De<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,be,De,i.get(ie).__webglTexture,Qe),t.bindFramebuffer(n.FRAMEBUFFER,null)}function me(_,D,ie){if(n.bindRenderbuffer(n.RENDERBUFFER,_),D.depthBuffer&&!D.stencilBuffer){let be=a===!0?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(ie||he(D)){const De=D.depthTexture;De&&De.isDepthTexture&&(De.type===Or?be=n.DEPTH_COMPONENT32F:De.type===ho&&(be=n.DEPTH_COMPONENT24));const Qe=ae(D);he(D)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Qe,be,D.width,D.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Qe,be,D.width,D.height)}else n.renderbufferStorage(n.RENDERBUFFER,be,D.width,D.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,_)}else if(D.depthBuffer&&D.stencilBuffer){const be=ae(D);ie&&he(D)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):he(D)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,D.width,D.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,_)}else{const be=D.isWebGLMultipleRenderTargets===!0?D.texture:[D.texture];for(let De=0;De0){ie.__webglFramebuffer[Ve]=[];for(let Ze=0;Ze0){ie.__webglFramebuffer=[];for(let Ve=0;Ve0&&he(_)===!1){const Ve=Qe?D:[D];ie.__webglMultisampledFramebuffer=n.createFramebuffer(),ie.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,ie.__webglMultisampledFramebuffer);for(let Ze=0;Ze0)for(let Ze=0;Ze0)for(let Ze=0;Ze0&&he(_)===!1){const D=_.isWebGLMultipleRenderTargets?_.texture:[_.texture],ie=_.width,be=_.height;let De=n.COLOR_BUFFER_BIT;const Qe=[],Je=_.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Ve=i.get(_),Ze=_.isWebGLMultipleRenderTargets===!0;if(Ze)for(let ut=0;ut0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&D.__useRenderToTexture!==!1}function Te(_){const D=o.render.frame;h.get(_)!==D&&(h.set(_,D),_.update())}function $(_,D){const ie=_.colorSpace,be=_.format,De=_.type;return _.isCompressedTexture===!0||_.isVideoTexture===!0||_.format===xg||ie!==Fs&&ie!==Cr&&(an.getTransfer(ie)===gn?a===!1?e.has("EXT_sRGB")===!0&&be===Gi?(_.format=xg,_.minFilter=vn,_.generateMipmaps=!1):D=Wv.sRGBToLinear(D):(be!==Gi||De!==Ls)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ie)),D}this.allocateTextureUnit=J,this.resetTextureUnits=ge,this.setTexture2D=se,this.setTexture2DArray=de,this.setTexture3D=F,this.setTextureCube=ee,this.rebindTextures=Be,this.setupRenderTarget=V,this.updateRenderTargetMipmap=Ee,this.updateMultisampleRenderTarget=ne,this.setupDepthRenderbuffer=re,this.setupFrameBufferTexture=k,this.useMultisampledRTT=he}function IR(n,e,t){const i=t.isWebGL2;function r(s,o=Cr){let a;const l=an.getTransfer(o);if(s===Ls)return n.UNSIGNED_BYTE;if(s===Pv)return n.UNSIGNED_SHORT_4_4_4_4;if(s===Nv)return n.UNSIGNED_SHORT_5_5_5_1;if(s===HQ)return n.BYTE;if(s===zQ)return n.SHORT;if(s===qg)return n.UNSIGNED_SHORT;if(s===bv)return n.INT;if(s===ho)return n.UNSIGNED_INT;if(s===Or)return n.FLOAT;if(s===kl)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===VQ)return n.ALPHA;if(s===Gi)return n.RGBA;if(s===WQ)return n.LUMINANCE;if(s===YQ)return n.LUMINANCE_ALPHA;if(s===ha)return n.DEPTH_COMPONENT;if(s===Ol)return n.DEPTH_STENCIL;if(s===xg)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===XQ)return n.RED;if(s===Lv)return n.RED_INTEGER;if(s===JQ)return n.RG;if(s===Uv)return n.RG_INTEGER;if(s===Fv)return n.RGBA_INTEGER;if(s===bp||s===Pp||s===Np||s===Lp)if(l===gn)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===bp)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===Pp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===Np)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===Lp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===bp)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===Pp)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===Np)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===Lp)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===wy||s===My||s===Qy||s===Ry)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===wy)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===My)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Qy)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===Ry)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===kv)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===Ty||s===Dy)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(s===Ty)return l===gn?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===Dy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===by||s===Py||s===Ny||s===Ly||s===Uy||s===Fy||s===ky||s===Oy||s===Gy||s===Hy||s===zy||s===Vy||s===Wy||s===Yy)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(s===by)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===Py)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===Ny)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===Ly)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===Uy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===Fy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===ky)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===Oy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===Gy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===Hy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===zy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===Vy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===Wy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===Yy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===Up||s===Xy||s===Jy)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(s===Up)return l===gn?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===Xy)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===Jy)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===jQ||s===jy||s===Ky||s===qy)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(s===Up)return a.COMPRESSED_RED_RGTC1_EXT;if(s===jy)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===Ky)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===qy)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===Aa?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[s]!==void 0?n[s]:null}return{convert:r}}class xR extends ni{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class Hr extends zt{constructor(){super(),this.isGroup=!0,this.type="Group"}}const f8={type:"move"};class QE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Hr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Hr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new G,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new G),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Hr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new G,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new G),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,s=null,o=null;const a=this._targetRay,l=this._grip,A=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(A&&e.hand){o=!0;for(const v of e.hand.values()){const C=t.getJointPose(v,i),p=this._getHandJoint(A,v);C!==null&&(p.matrix.fromArray(C.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.matrixWorldNeedsUpdate=!0,p.jointRadius=C.radius),p.visible=C!==null}const h=A.joints["index-finger-tip"],d=A.joints["thumb-tip"],f=h.position.distanceTo(d.position),g=.02,E=.005;A.inputState.pinching&&f>g+E?(A.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!A.inputState.pinching&&f<=g-E&&(A.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));a!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(f8)))}return a!==null&&(a.visible=r!==null),l!==null&&(l.visible=s!==null),A!==null&&(A.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new Hr;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}const p8=` +}`;function w8(n,e,t){let i=new qh;const r=new Be,s=new Be,o=new un,a=new om({depthPacking:Jv}),l=new am,A={},h=t.maxTextureSize,d={[Xr]:Yi,[Yi]:Xr,[Ts]:Ts},f=new fs({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Be},radius:{value:4}},vertexShader:S8,fragmentShader:_8}),g=f.clone();g.defines.HORIZONTAL_PASS=1;const E=new Pt;E.setAttribute("position",new ln(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new $t(E,f),C=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=$g;let p=this.type;this.render=function(M,T,U){if(C.enabled===!1||C.autoUpdate===!1&&C.needsUpdate===!1||M.length===0)return;const K=n.getRenderTarget(),w=n.getActiveCubeFace(),P=n.getActiveMipmapLevel(),q=n.state;q.setBlending(Co),q.buffers.color.setClear(1,1,1,1),q.buffers.depth.setTest(!0),q.setScissorTest(!1);const fe=p!==rs&&this.type===rs,J=p===rs&&this.type!==rs;for(let re=0,ne=M.length;reh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/ee.x),r.x=s.x*ee.x,F.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/ee.y),r.y=s.y*ee.y,F.mapSize.y=s.y)),F.map===null||fe===!0||J===!0){const Ae=this.type!==rs?{minFilter:zn,magFilter:zn}:{};F.map!==null&&F.map.dispose(),F.map=new Jr(r.x,r.y,Ae),F.map.texture.name=ue.name+".shadowMap",F.camera.updateProjectionMatrix()}n.setRenderTarget(F.map),n.clear();const te=F.getViewportCount();for(let Ae=0;Ae0||T.map&&T.alphaTest>0){const q=w.uuid,fe=T.uuid;let J=A[q];J===void 0&&(J={},A[q]=J);let re=J[fe];re===void 0&&(re=w.clone(),J[fe]=re,T.addEventListener("dispose",R)),w=re}if(w.visible=T.visible,w.wireframe=T.wireframe,K===rs?w.side=T.shadowSide!==null?T.shadowSide:T.side:w.side=T.shadowSide!==null?T.shadowSide:d[T.side],w.alphaMap=T.alphaMap,w.alphaTest=T.alphaTest,w.map=T.map,w.clipShadows=T.clipShadows,w.clippingPlanes=T.clippingPlanes,w.clipIntersection=T.clipIntersection,w.displacementMap=T.displacementMap,w.displacementScale=T.displacementScale,w.displacementBias=T.displacementBias,w.wireframeLinewidth=T.wireframeLinewidth,w.linewidth=T.linewidth,U.isPointLight===!0&&w.isMeshDistanceMaterial===!0){const q=n.properties.get(w);q.light=U}return w}function B(M,T,U,K,w){if(M.visible===!1)return;if(M.layers.test(T.layers)&&(M.isMesh||M.isLine||M.isPoints)&&(M.castShadow||M.receiveShadow&&w===rs)&&(!M.frustumCulled||i.intersectsObject(M))){M.modelViewMatrix.multiplyMatrices(U.matrixWorldInverse,M.matrixWorld);const fe=e.update(M),J=M.material;if(Array.isArray(J)){const re=fe.groups;for(let ne=0,ue=re.length;ne=1):te.indexOf("OpenGL ES")!==-1&&(ee=parseFloat(/^OpenGL ES (\d)/.exec(te)[1]),F=ee>=2);let Ae=null,ye={};const Oe=n.getParameter(n.SCISSOR_BOX),Y=n.getParameter(n.VIEWPORT),z=new un().fromArray(Oe),G=new un().fromArray(Y);function O(j,Ge,Fe,st){const pt=new Uint8Array(4),Jt=n.createTexture();n.bindTexture(j,Jt),n.texParameteri(j,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(j,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let jt=0;jt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new WeakMap;let d;const f=new WeakMap;let g=!1;try{g=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function E(_,b){return g?new OffscreenCanvas(_,b):Th("canvas")}function v(_,b,se,Pe){let De=1;if((_.width>Pe||_.height>Pe)&&(De=Pe/Math.max(_.width,_.height)),De<1||b===!0)if(typeof HTMLImageElement<"u"&&_ instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&_ instanceof ImageBitmap){const Qe=b?Mg:Math.floor,je=Qe(De*_.width),Ve=Qe(De*_.height);d===void 0&&(d=E(je,Ve));const Ze=se?E(je,Ve):d;return Ze.width=je,Ze.height=Ve,Ze.getContext("2d").drawImage(_,0,0,je,Ve),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+_.width+"x"+_.height+") to ("+je+"x"+Ve+")."),Ze}else return"data"in _&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+_.width+"x"+_.height+")."),_;return _}function C(_){return a1(_.width)&&a1(_.height)}function p(_){return a?!1:_.wrapS!==bi||_.wrapT!==bi||_.minFilter!==zn&&_.minFilter!==xn}function y(_,b){return _.generateMipmaps&&b&&_.minFilter!==zn&&_.minFilter!==xn}function I(_){n.generateMipmap(_)}function B(_,b,se,Pe,De=!1){if(a===!1)return b;if(_!==null){if(n[_]!==void 0)return n[_];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+_+"'")}let Qe=b;if(b===n.RED&&(se===n.FLOAT&&(Qe=n.R32F),se===n.HALF_FLOAT&&(Qe=n.R16F),se===n.UNSIGNED_BYTE&&(Qe=n.R8)),b===n.RED_INTEGER&&(se===n.UNSIGNED_BYTE&&(Qe=n.R8UI),se===n.UNSIGNED_SHORT&&(Qe=n.R16UI),se===n.UNSIGNED_INT&&(Qe=n.R32UI),se===n.BYTE&&(Qe=n.R8I),se===n.SHORT&&(Qe=n.R16I),se===n.INT&&(Qe=n.R32I)),b===n.RG&&(se===n.FLOAT&&(Qe=n.RG32F),se===n.HALF_FLOAT&&(Qe=n.RG16F),se===n.UNSIGNED_BYTE&&(Qe=n.RG8)),b===n.RGBA){const je=De?_h:cn.getTransfer(Pe);se===n.FLOAT&&(Qe=n.RGBA32F),se===n.HALF_FLOAT&&(Qe=n.RGBA16F),se===n.UNSIGNED_BYTE&&(Qe=je===gn?n.SRGB8_ALPHA8:n.RGBA8),se===n.UNSIGNED_SHORT_4_4_4_4&&(Qe=n.RGBA4),se===n.UNSIGNED_SHORT_5_5_5_1&&(Qe=n.RGB5_A1)}return(Qe===n.R16F||Qe===n.R32F||Qe===n.RG16F||Qe===n.RG32F||Qe===n.RGBA16F||Qe===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Qe}function R(_,b,se){return y(_,se)===!0||_.isFramebufferTexture&&_.minFilter!==zn&&_.minFilter!==xn?Math.log2(Math.max(b.width,b.height))+1:_.mipmaps!==void 0&&_.mipmaps.length>0?_.mipmaps.length:_.isCompressedTexture&&Array.isArray(_.image)?b.mipmaps.length:1}function M(_){return _===zn||_===_g||_===wl?n.NEAREST:n.LINEAR}function T(_){const b=_.target;b.removeEventListener("dispose",T),K(b),b.isVideoTexture&&h.delete(b)}function U(_){const b=_.target;b.removeEventListener("dispose",U),P(b)}function K(_){const b=i.get(_);if(b.__webglInit===void 0)return;const se=_.source,Pe=f.get(se);if(Pe){const De=Pe[b.__cacheKey];De.usedTimes--,De.usedTimes===0&&w(_),Object.keys(Pe).length===0&&f.delete(se)}i.remove(_)}function w(_){const b=i.get(_);n.deleteTexture(b.__webglTexture);const se=_.source,Pe=f.get(se);delete Pe[b.__cacheKey],o.memory.textures--}function P(_){const b=_.texture,se=i.get(_),Pe=i.get(b);if(Pe.__webglTexture!==void 0&&(n.deleteTexture(Pe.__webglTexture),o.memory.textures--),_.depthTexture&&_.depthTexture.dispose(),_.isWebGLCubeRenderTarget)for(let De=0;De<6;De++){if(Array.isArray(se.__webglFramebuffer[De]))for(let Qe=0;Qe=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+_+" texture units while this GPU supports only "+r.maxTextures),q+=1,_}function re(_){const b=[];return b.push(_.wrapS),b.push(_.wrapT),b.push(_.wrapR||0),b.push(_.magFilter),b.push(_.minFilter),b.push(_.anisotropy),b.push(_.internalFormat),b.push(_.format),b.push(_.type),b.push(_.generateMipmaps),b.push(_.premultiplyAlpha),b.push(_.flipY),b.push(_.unpackAlignment),b.push(_.colorSpace),b.join()}function ne(_,b){const se=i.get(_);if(_.isVideoTexture&&Te(_),_.isRenderTargetTexture===!1&&_.version>0&&se.__version!==_.version){const Pe=_.image;if(Pe===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Pe.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{z(se,_,b);return}}t.bindTexture(n.TEXTURE_2D,se.__webglTexture,n.TEXTURE0+b)}function ue(_,b){const se=i.get(_);if(_.version>0&&se.__version!==_.version){z(se,_,b);return}t.bindTexture(n.TEXTURE_2D_ARRAY,se.__webglTexture,n.TEXTURE0+b)}function F(_,b){const se=i.get(_);if(_.version>0&&se.__version!==_.version){z(se,_,b);return}t.bindTexture(n.TEXTURE_3D,se.__webglTexture,n.TEXTURE0+b)}function ee(_,b){const se=i.get(_);if(_.version>0&&se.__version!==_.version){G(se,_,b);return}t.bindTexture(n.TEXTURE_CUBE_MAP,se.__webglTexture,n.TEXTURE0+b)}const te={[vh]:n.REPEAT,[bi]:n.CLAMP_TO_EDGE,[Ih]:n.MIRRORED_REPEAT},Ae={[zn]:n.NEAREST,[_g]:n.NEAREST_MIPMAP_NEAREST,[wl]:n.NEAREST_MIPMAP_LINEAR,[xn]:n.LINEAR,[jA]:n.LINEAR_MIPMAP_NEAREST,[Ds]:n.LINEAR_MIPMAP_LINEAR},ye={[gR]:n.NEVER,[IR]:n.ALWAYS,[mR]:n.LESS,[jv]:n.LEQUAL,[ER]:n.EQUAL,[vR]:n.GEQUAL,[CR]:n.GREATER,[yR]:n.NOTEQUAL};function Oe(_,b,se){if(b.type===Or&&e.has("OES_texture_float_linear")===!1&&(b.magFilter===xn||b.magFilter===jA||b.magFilter===wl||b.magFilter===Ds||b.minFilter===xn||b.minFilter===jA||b.minFilter===wl||b.minFilter===Ds)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),se?(n.texParameteri(_,n.TEXTURE_WRAP_S,te[b.wrapS]),n.texParameteri(_,n.TEXTURE_WRAP_T,te[b.wrapT]),(_===n.TEXTURE_3D||_===n.TEXTURE_2D_ARRAY)&&n.texParameteri(_,n.TEXTURE_WRAP_R,te[b.wrapR]),n.texParameteri(_,n.TEXTURE_MAG_FILTER,Ae[b.magFilter]),n.texParameteri(_,n.TEXTURE_MIN_FILTER,Ae[b.minFilter])):(n.texParameteri(_,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(_,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(_===n.TEXTURE_3D||_===n.TEXTURE_2D_ARRAY)&&n.texParameteri(_,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(b.wrapS!==bi||b.wrapT!==bi)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(_,n.TEXTURE_MAG_FILTER,M(b.magFilter)),n.texParameteri(_,n.TEXTURE_MIN_FILTER,M(b.minFilter)),b.minFilter!==zn&&b.minFilter!==xn&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),b.compareFunction&&(n.texParameteri(_,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(_,n.TEXTURE_COMPARE_FUNC,ye[b.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const Pe=e.get("EXT_texture_filter_anisotropic");if(b.magFilter===zn||b.minFilter!==wl&&b.minFilter!==Ds||b.type===Or&&e.has("OES_texture_float_linear")===!1||a===!1&&b.type===Jl&&e.has("OES_texture_half_float_linear")===!1)return;(b.anisotropy>1||i.get(b).__currentAnisotropy)&&(n.texParameterf(_,Pe.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(b.anisotropy,r.getMaxAnisotropy())),i.get(b).__currentAnisotropy=b.anisotropy)}}function Y(_,b){let se=!1;_.__webglInit===void 0&&(_.__webglInit=!0,b.addEventListener("dispose",T));const Pe=b.source;let De=f.get(Pe);De===void 0&&(De={},f.set(Pe,De));const Qe=re(b);if(Qe!==_.__cacheKey){De[Qe]===void 0&&(De[Qe]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,se=!0),De[Qe].usedTimes++;const je=De[_.__cacheKey];je!==void 0&&(De[_.__cacheKey].usedTimes--,je.usedTimes===0&&w(b)),_.__cacheKey=Qe,_.__webglTexture=De[Qe].texture}return se}function z(_,b,se){let Pe=n.TEXTURE_2D;(b.isDataArrayTexture||b.isCompressedArrayTexture)&&(Pe=n.TEXTURE_2D_ARRAY),b.isData3DTexture&&(Pe=n.TEXTURE_3D);const De=Y(_,b),Qe=b.source;t.bindTexture(Pe,_.__webglTexture,n.TEXTURE0+se);const je=i.get(Qe);if(Qe.version!==je.__version||De===!0){t.activeTexture(n.TEXTURE0+se);const Ve=cn.getPrimaries(cn.workingColorSpace),Ze=b.colorSpace===yr?null:cn.getPrimaries(b.colorSpace),ut=b.colorSpace===yr||Ve===Ze?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,b.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,b.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,b.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,ut);const It=p(b)&&C(b.image)===!1;let Ne=v(b.image,It,!1,r.maxTextureSize);Ne=$(b,Ne);const Lt=C(Ne)||a,wt=s.convert(b.format,b.colorSpace);let mt=s.convert(b.type),ct=B(b.internalFormat,wt,mt,b.colorSpace,b.isVideoTexture);Oe(Pe,b,Lt);let it;const Bt=b.mipmaps,kt=a&&b.isVideoTexture!==!0&&ct!==Wv,en=je.__version===void 0||De===!0,Mt=Qe.dataReady,Xt=R(b,Ne,Lt);if(b.isDepthTexture)ct=n.DEPTH_COMPONENT,a?b.type===Or?ct=n.DEPTH_COMPONENT32F:b.type===go?ct=n.DEPTH_COMPONENT24:b.type===Sa?ct=n.DEPTH24_STENCIL8:ct=n.DEPTH_COMPONENT16:b.type===Or&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),b.format===_a&&ct===n.DEPTH_COMPONENT&&b.type!==tm&&b.type!==go&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),b.type=go,mt=s.convert(b.type)),b.format===jl&&ct===n.DEPTH_COMPONENT&&(ct=n.DEPTH_STENCIL,b.type!==Sa&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),b.type=Sa,mt=s.convert(b.type))),en&&(kt?t.texStorage2D(n.TEXTURE_2D,1,ct,Ne.width,Ne.height):t.texImage2D(n.TEXTURE_2D,0,ct,Ne.width,Ne.height,0,wt,mt,null));else if(b.isDataTexture)if(Bt.length>0&&Lt){kt&&en&&t.texStorage2D(n.TEXTURE_2D,Xt,ct,Bt[0].width,Bt[0].height);for(let j=0,Ge=Bt.length;j>=1,Ge>>=1}}else if(Bt.length>0&&Lt){kt&&en&&t.texStorage2D(n.TEXTURE_2D,Xt,ct,Bt[0].width,Bt[0].height);for(let j=0,Ge=Bt.length;j0&&Mt++,t.texStorage2D(n.TEXTURE_CUBE_MAP,Mt,it,Ne[0].width,Ne[0].height));for(let j=0;j<6;j++)if(It){Bt?en&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+j,0,0,0,Ne[j].width,Ne[j].height,mt,ct,Ne[j].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+j,0,it,Ne[j].width,Ne[j].height,0,mt,ct,Ne[j].data);for(let Ge=0;Ge>Qe),Ne=Math.max(1,b.height>>Qe);De===n.TEXTURE_3D||De===n.TEXTURE_2D_ARRAY?t.texImage3D(De,Qe,Ze,It,Ne,b.depth,0,je,Ve,null):t.texImage2D(De,Qe,Ze,It,Ne,0,je,Ve,null)}t.bindFramebuffer(n.FRAMEBUFFER,_),de(b)?l.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,Pe,De,i.get(se).__webglTexture,0,le(b)):(De===n.TEXTURE_2D||De>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&De<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,Pe,De,i.get(se).__webglTexture,Qe),t.bindFramebuffer(n.FRAMEBUFFER,null)}function me(_,b,se){if(n.bindRenderbuffer(n.RENDERBUFFER,_),b.depthBuffer&&!b.stencilBuffer){let Pe=a===!0?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(se||de(b)){const De=b.depthTexture;De&&De.isDepthTexture&&(De.type===Or?Pe=n.DEPTH_COMPONENT32F:De.type===go&&(Pe=n.DEPTH_COMPONENT24));const Qe=le(b);de(b)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Qe,Pe,b.width,b.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Qe,Pe,b.width,b.height)}else n.renderbufferStorage(n.RENDERBUFFER,Pe,b.width,b.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,_)}else if(b.depthBuffer&&b.stencilBuffer){const Pe=le(b);se&&de(b)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,Pe,n.DEPTH24_STENCIL8,b.width,b.height):de(b)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Pe,n.DEPTH24_STENCIL8,b.width,b.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,b.width,b.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,_)}else{const Pe=b.isWebGLMultipleRenderTargets===!0?b.texture:[b.texture];for(let De=0;De0){se.__webglFramebuffer[Ve]=[];for(let Ze=0;Ze0){se.__webglFramebuffer=[];for(let Ve=0;Ve0&&de(_)===!1){const Ve=Qe?b:[b];se.__webglMultisampledFramebuffer=n.createFramebuffer(),se.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,se.__webglMultisampledFramebuffer);for(let Ze=0;Ze0)for(let Ze=0;Ze0)for(let Ze=0;Ze0&&de(_)===!1){const b=_.isWebGLMultipleRenderTargets?_.texture:[_.texture],se=_.width,Pe=_.height;let De=n.COLOR_BUFFER_BIT;const Qe=[],je=_.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Ve=i.get(_),Ze=_.isWebGLMultipleRenderTargets===!0;if(Ze)for(let ut=0;ut0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&b.__useRenderToTexture!==!1}function Te(_){const b=o.render.frame;h.get(_)!==b&&(h.set(_,b),_.update())}function $(_,b){const se=_.colorSpace,Pe=_.format,De=_.type;return _.isCompressedTexture===!0||_.isVideoTexture===!0||_.format===wg||se!==ks&&se!==yr&&(cn.getTransfer(se)===gn?a===!1?e.has("EXT_sRGB")===!0&&Pe===zi?(_.format=wg,_.minFilter=xn,_.generateMipmaps=!1):b=qv.sRGBToLinear(b):(Pe!==zi||De!==Fs)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",se)),b}this.allocateTextureUnit=J,this.resetTextureUnits=fe,this.setTexture2D=ne,this.setTexture2DArray=ue,this.setTexture3D=F,this.setTextureCube=ee,this.rebindTextures=Se,this.setupRenderTarget=V,this.updateRenderTargetMipmap=Ee,this.updateMultisampleRenderTarget=ie,this.setupDepthRenderbuffer=oe,this.setupFrameBufferTexture=O,this.useMultisampledRTT=de}function UR(n,e,t){const i=t.isWebGL2;function r(s,o=yr){let a;const l=cn.getTransfer(o);if(s===Fs)return n.UNSIGNED_BYTE;if(s===Ov)return n.UNSIGNED_SHORT_4_4_4_4;if(s===Gv)return n.UNSIGNED_SHORT_5_5_5_1;if(s===iR)return n.BYTE;if(s===rR)return n.SHORT;if(s===tm)return n.UNSIGNED_SHORT;if(s===kv)return n.INT;if(s===go)return n.UNSIGNED_INT;if(s===Or)return n.FLOAT;if(s===Jl)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===sR)return n.ALPHA;if(s===zi)return n.RGBA;if(s===oR)return n.LUMINANCE;if(s===aR)return n.LUMINANCE_ALPHA;if(s===_a)return n.DEPTH_COMPONENT;if(s===jl)return n.DEPTH_STENCIL;if(s===wg)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===lR)return n.RED;if(s===Hv)return n.RED_INTEGER;if(s===cR)return n.RG;if(s===zv)return n.RG_INTEGER;if(s===Vv)return n.RGBA_INTEGER;if(s===Up||s===Fp||s===kp||s===Op)if(l===gn)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===Up)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===Fp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===kp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===Op)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===Up)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===Fp)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===kp)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===Op)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===Py||s===Ly||s===Ny||s===Uy)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===Py)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Ly)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Ny)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===Uy)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===Wv)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===Fy||s===ky)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(s===Fy)return l===gn?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===ky)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===Oy||s===Gy||s===Hy||s===zy||s===Vy||s===Wy||s===Yy||s===Xy||s===Jy||s===jy||s===Ky||s===qy||s===Zy||s===$y)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(s===Oy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===Gy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===Hy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===zy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===Vy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===Wy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===Yy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===Xy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===Jy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===jy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===Ky)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===qy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===Zy)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===$y)return l===gn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===Gp||s===e1||s===t1)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(s===Gp)return l===gn?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===e1)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===t1)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===uR||s===n1||s===i1||s===r1)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(s===Gp)return a.COMPRESSED_RED_RGTC1_EXT;if(s===n1)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===i1)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===r1)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===Sa?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[s]!==void 0?n[s]:null}return{convert:r}}class FR extends ni{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class Hr extends Vt{constructor(){super(),this.isGroup=!0,this.type="Group"}}const R8={type:"move"};class bE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Hr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Hr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new H,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new H),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Hr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new H,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new H),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,s=null,o=null;const a=this._targetRay,l=this._grip,A=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(A&&e.hand){o=!0;for(const v of e.hand.values()){const C=t.getJointPose(v,i),p=this._getHandJoint(A,v);C!==null&&(p.matrix.fromArray(C.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.matrixWorldNeedsUpdate=!0,p.jointRadius=C.radius),p.visible=C!==null}const h=A.joints["index-finger-tip"],d=A.joints["thumb-tip"],f=h.position.distanceTo(d.position),g=.02,E=.005;A.inputState.pinching&&f>g+E?(A.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!A.inputState.pinching&&f<=g-E&&(A.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));a!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(R8)))}return a!==null&&(a.visible=r!==null),l!==null&&(l.visible=s!==null),A!==null&&(A.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new Hr;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}const T8=` void main() { gl_Position = vec4( position, 1.0 ); -}`,g8=` +}`,D8=` uniform sampler2DArray depthColor; uniform float depthWidth; uniform float depthHeight; @@ -3800,7 +3800,7 @@ void main() { } -}`;class m8{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,i){if(this.texture===null){const r=new wn,s=e.properties.get(r);s.__webglTexture=t.texture,(t.depthNear!=i.depthNear||t.depthFar!=i.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}render(e,t){if(this.texture!==null){if(this.mesh===null){const i=t.cameras[0].viewport,r=new hs({extensions:{fragDepth:!0},vertexShader:p8,fragmentShader:g8,uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new qt(new _a(20,20),r)}e.render(this.mesh,t)}}reset(){this.texture=null,this.mesh=null}}class E8 extends xo{constructor(e,t){super();const i=this;let r=null,s=1,o=null,a="local-floor",l=1,A=null,h=null,d=null,f=null,g=null,E=null;const v=new m8,C=t.getContextAttributes();let p=null,y=null;const I=[],B=[],R=new Se;let w=null;const T=new ni;T.layers.enable(1),T.viewport=new ln;const U=new ni;U.layers.enable(2),U.viewport=new ln;const K=[T,U],M=new xR;M.layers.enable(1),M.layers.enable(2);let P=null,q=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Y){let z=I[Y];return z===void 0&&(z=new QE,I[Y]=z),z.getTargetRaySpace()},this.getControllerGrip=function(Y){let z=I[Y];return z===void 0&&(z=new QE,I[Y]=z),z.getGripSpace()},this.getHand=function(Y){let z=I[Y];return z===void 0&&(z=new QE,I[Y]=z),z.getHandSpace()};function ge(Y){const z=B.indexOf(Y.inputSource);if(z===-1)return;const O=I[z];O!==void 0&&(O.update(Y.inputSource,Y.frame,A||o),O.dispatchEvent({type:Y.type,data:Y.inputSource}))}function J(){r.removeEventListener("select",ge),r.removeEventListener("selectstart",ge),r.removeEventListener("selectend",ge),r.removeEventListener("squeeze",ge),r.removeEventListener("squeezestart",ge),r.removeEventListener("squeezeend",ge),r.removeEventListener("end",J),r.removeEventListener("inputsourceschange",ce);for(let Y=0;Y=0&&(B[k]=null,I[k].disconnect(O))}for(let z=0;z=B.length){B.push(O),k=Ie;break}else if(B[Ie]===null){B[Ie]=O,k=Ie;break}if(k===-1)break}const me=I[k];me&&me.connect(O)}}const se=new G,de=new G;function F(Y,z,O){se.setFromMatrixPosition(z.matrixWorld),de.setFromMatrixPosition(O.matrixWorld);const k=se.distanceTo(de),me=z.projectionMatrix.elements,Ie=O.projectionMatrix.elements,re=me[14]/(me[10]-1),Be=me[14]/(me[10]+1),V=(me[9]+1)/me[5],Ee=(me[9]-1)/me[5],ne=(me[8]-1)/me[0],ae=(Ie[8]+1)/Ie[0],he=re*ne,Te=re*ae,$=k/(-ne+ae),_=$*-ne;z.matrixWorld.decompose(Y.position,Y.quaternion,Y.scale),Y.translateX(_),Y.translateZ($),Y.matrixWorld.compose(Y.position,Y.quaternion,Y.scale),Y.matrixWorldInverse.copy(Y.matrixWorld).invert();const D=re+$,ie=Be+$,be=he-_,De=Te+(k-_),Qe=V*Be/ie*D,Je=Ee*Be/ie*D;Y.projectionMatrix.makePerspective(be,De,Qe,Je,D,ie),Y.projectionMatrixInverse.copy(Y.projectionMatrix).invert()}function ee(Y,z){z===null?Y.matrixWorld.copy(Y.matrix):Y.matrixWorld.multiplyMatrices(z.matrixWorld,Y.matrix),Y.matrixWorldInverse.copy(Y.matrixWorld).invert()}this.updateCamera=function(Y){if(r===null)return;v.texture!==null&&(Y.near=v.depthNear,Y.far=v.depthFar),M.near=U.near=T.near=Y.near,M.far=U.far=T.far=Y.far,(P!==M.near||q!==M.far)&&(r.updateRenderState({depthNear:M.near,depthFar:M.far}),P=M.near,q=M.far,T.near=P,T.far=q,U.near=P,U.far=q,T.updateProjectionMatrix(),U.updateProjectionMatrix(),Y.updateProjectionMatrix());const z=Y.parent,O=M.cameras;ee(M,z);for(let k=0;k0&&(C.alphaTest.value=p.alphaTest);const y=e.get(p).envMap;if(y&&(C.envMap.value=y,C.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,C.reflectivity.value=p.reflectivity,C.ior.value=p.ior,C.refractionRatio.value=p.refractionRatio),p.lightMap){C.lightMap.value=p.lightMap;const I=n._useLegacyLights===!0?Math.PI:1;C.lightMapIntensity.value=p.lightMapIntensity*I,t(p.lightMap,C.lightMapTransform)}p.aoMap&&(C.aoMap.value=p.aoMap,C.aoMapIntensity.value=p.aoMapIntensity,t(p.aoMap,C.aoMapTransform))}function o(C,p){C.diffuse.value.copy(p.color),C.opacity.value=p.opacity,p.map&&(C.map.value=p.map,t(p.map,C.mapTransform))}function a(C,p){C.dashSize.value=p.dashSize,C.totalSize.value=p.dashSize+p.gapSize,C.scale.value=p.scale}function l(C,p,y,I){C.diffuse.value.copy(p.color),C.opacity.value=p.opacity,C.size.value=p.size*y,C.scale.value=I*.5,p.map&&(C.map.value=p.map,t(p.map,C.uvTransform)),p.alphaMap&&(C.alphaMap.value=p.alphaMap,t(p.alphaMap,C.alphaMapTransform)),p.alphaTest>0&&(C.alphaTest.value=p.alphaTest)}function A(C,p){C.diffuse.value.copy(p.color),C.opacity.value=p.opacity,C.rotation.value=p.rotation,p.map&&(C.map.value=p.map,t(p.map,C.mapTransform)),p.alphaMap&&(C.alphaMap.value=p.alphaMap,t(p.alphaMap,C.alphaMapTransform)),p.alphaTest>0&&(C.alphaTest.value=p.alphaTest)}function h(C,p){C.specular.value.copy(p.specular),C.shininess.value=Math.max(p.shininess,1e-4)}function d(C,p){p.gradientMap&&(C.gradientMap.value=p.gradientMap)}function f(C,p){C.metalness.value=p.metalness,p.metalnessMap&&(C.metalnessMap.value=p.metalnessMap,t(p.metalnessMap,C.metalnessMapTransform)),C.roughness.value=p.roughness,p.roughnessMap&&(C.roughnessMap.value=p.roughnessMap,t(p.roughnessMap,C.roughnessMapTransform)),e.get(p).envMap&&(C.envMapIntensity.value=p.envMapIntensity)}function g(C,p,y){C.ior.value=p.ior,p.sheen>0&&(C.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),C.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(C.sheenColorMap.value=p.sheenColorMap,t(p.sheenColorMap,C.sheenColorMapTransform)),p.sheenRoughnessMap&&(C.sheenRoughnessMap.value=p.sheenRoughnessMap,t(p.sheenRoughnessMap,C.sheenRoughnessMapTransform))),p.clearcoat>0&&(C.clearcoat.value=p.clearcoat,C.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(C.clearcoatMap.value=p.clearcoatMap,t(p.clearcoatMap,C.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(C.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,t(p.clearcoatRoughnessMap,C.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(C.clearcoatNormalMap.value=p.clearcoatNormalMap,t(p.clearcoatNormalMap,C.clearcoatNormalMapTransform),C.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Vi&&C.clearcoatNormalScale.value.negate())),p.iridescence>0&&(C.iridescence.value=p.iridescence,C.iridescenceIOR.value=p.iridescenceIOR,C.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],C.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(C.iridescenceMap.value=p.iridescenceMap,t(p.iridescenceMap,C.iridescenceMapTransform)),p.iridescenceThicknessMap&&(C.iridescenceThicknessMap.value=p.iridescenceThicknessMap,t(p.iridescenceThicknessMap,C.iridescenceThicknessMapTransform))),p.transmission>0&&(C.transmission.value=p.transmission,C.transmissionSamplerMap.value=y.texture,C.transmissionSamplerSize.value.set(y.width,y.height),p.transmissionMap&&(C.transmissionMap.value=p.transmissionMap,t(p.transmissionMap,C.transmissionMapTransform)),C.thickness.value=p.thickness,p.thicknessMap&&(C.thicknessMap.value=p.thicknessMap,t(p.thicknessMap,C.thicknessMapTransform)),C.attenuationDistance.value=p.attenuationDistance,C.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(C.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(C.anisotropyMap.value=p.anisotropyMap,t(p.anisotropyMap,C.anisotropyMapTransform))),C.specularIntensity.value=p.specularIntensity,C.specularColor.value.copy(p.specularColor),p.specularColorMap&&(C.specularColorMap.value=p.specularColorMap,t(p.specularColorMap,C.specularColorMapTransform)),p.specularIntensityMap&&(C.specularIntensityMap.value=p.specularIntensityMap,t(p.specularIntensityMap,C.specularIntensityMapTransform))}function E(C,p){p.matcap&&(C.matcap.value=p.matcap)}function v(C,p){const y=e.get(p).light;C.referencePosition.value.setFromMatrixPosition(y.matrixWorld),C.nearDistance.value=y.shadow.camera.near,C.farDistance.value=y.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function y8(n,e,t,i){let r={},s={},o=[];const a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(y,I){const B=I.program;i.uniformBlockBinding(y,B)}function A(y,I){let B=r[y.id];B===void 0&&(E(y),B=h(y),r[y.id]=B,y.addEventListener("dispose",C));const R=I.program;i.updateUBOMapping(y,R);const w=e.render.frame;s[y.id]!==w&&(f(y),s[y.id]=w)}function h(y){const I=d();y.__bindingPointIndex=I;const B=n.createBuffer(),R=y.__size,w=y.usage;return n.bindBuffer(n.UNIFORM_BUFFER,B),n.bufferData(n.UNIFORM_BUFFER,R,w),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,I,B),B}function d(){for(let y=0;y0&&(B+=R-w),y.__size=B,y.__cache={},this}function v(y){const I={boundary:0,storage:0};return typeof y=="number"||typeof y=="boolean"?(I.boundary=4,I.storage=4):y.isVector2?(I.boundary=8,I.storage=8):y.isVector3||y.isColor?(I.boundary=16,I.storage=12):y.isVector4?(I.boundary=16,I.storage=16):y.isMatrix3?(I.boundary=48,I.storage=48):y.isMatrix4?(I.boundary=64,I.storage=64):y.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",y),I}function C(y){const I=y.target;I.removeEventListener("dispose",C);const B=o.indexOf(I.__bindingPointIndex);o.splice(B,1),n.deleteBuffer(r[I.id]),delete r[I.id],delete s[I.id]}function p(){for(const y in r)n.deleteBuffer(r[y]);o=[],r={},s={}}return{bind:l,update:A,dispose:p}}class qv{constructor(e={}){const{canvas:t=cR(),context:i=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:A=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:d=!1}=e;this.isWebGLRenderer=!0;let f;i!==null?f=i.getContextAttributes().alpha:f=o;const g=new Uint32Array(4),E=new Int32Array(4);let v=null,C=null;const p=[],y=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=Hn,this._useLegacyLights=!1,this.toneMapping=Ns,this.toneMappingExposure=1;const I=this;let B=!1,R=0,w=0,T=null,U=-1,K=null;const M=new ln,P=new ln;let q=null;const ge=new je(0);let J=0,ce=t.width,se=t.height,de=1,F=null,ee=null;const te=new ln(0,0,ce,se),ue=new ln(0,0,ce,se);let ye=!1;const Oe=new jh;let Y=!1,z=!1,O=null;const k=new ht,me=new Se,Ie=new G,re={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Be(){return T===null?de:1}let V=i;function Ee(W,fe){for(let xe=0;xe{function et(){if(_e.forEach(function(At){$.get(At).currentProgram.isReady()&&_e.delete(At)}),_e.size===0){ve(W);return}setTimeout(et,10)}ne.get("KHR_parallel_shader_compile")!==null?et():setTimeout(et,10)})};let Jt=null;function bn(W){Jt&&Jt(W)}function fi(){hn.stop()}function rn(){hn.start()}const hn=new gR;hn.setAnimationLoop(bn),typeof self<"u"&&hn.setContext(self),this.setAnimationLoop=function(W){Jt=W,Mt.setAnimationLoop(W),W===null?hn.stop():hn.start()},Mt.addEventListener("sessionstart",fi),Mt.addEventListener("sessionend",rn),this.render=function(W,fe){if(fe!==void 0&&fe.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(B===!0)return;W.matrixWorldAutoUpdate===!0&&W.updateMatrixWorld(),fe.parent===null&&fe.matrixWorldAutoUpdate===!0&&fe.updateMatrixWorld(),Mt.enabled===!0&&Mt.isPresenting===!0&&(Mt.cameraAutoUpdate===!0&&Mt.updateCamera(fe),fe=Mt.getCamera()),W.isScene===!0&&W.onBeforeRender(I,W,fe,T),C=ut.get(W,y.length),C.init(),y.push(C),k.multiplyMatrices(fe.projectionMatrix,fe.matrixWorldInverse),Oe.setFromProjectionMatrix(k),z=this.localClippingEnabled,Y=It.init(this.clippingPlanes,z),v=Ze.get(W,p.length),v.init(),p.push(v),qi(W,fe,0,I.sortObjects),v.finish(),I.sortObjects===!0&&v.sort(F,ee),this.info.render.frame++,Y===!0&&It.beginShadows();const xe=C.state.shadowsArray;if(Le.render(xe,W,fe),Y===!0&&It.endShadows(),this.info.autoReset===!0&&this.info.reset(),(Mt.enabled===!1||Mt.isPresenting===!1||Mt.hasDepthSensing()===!1)&&Nt.render(v,W),C.setupLights(I._useLegacyLights),fe.isArrayCamera){const _e=fe.cameras;for(let ve=0,et=_e.length;ve0?C=y[y.length-1]:C=null,p.pop(),p.length>0?v=p[p.length-1]:v=null};function qi(W,fe,xe,_e){if(W.visible===!1)return;if(W.layers.test(fe.layers)){if(W.isGroup)xe=W.renderOrder;else if(W.isLOD)W.autoUpdate===!0&&W.update(fe);else if(W.isLight)C.pushLight(W),W.castShadow&&C.pushShadow(W);else if(W.isSprite){if(!W.frustumCulled||Oe.intersectsSprite(W)){_e&&Ie.setFromMatrixPosition(W.matrixWorld).applyMatrix4(k);const At=Qe.update(W),Ct=W.material;Ct.visible&&v.push(W,At,Ct,xe,Ie.z,null)}}else if((W.isMesh||W.isLine||W.isPoints)&&(!W.frustumCulled||Oe.intersectsObject(W))){const At=Qe.update(W),Ct=W.material;if(_e&&(W.boundingSphere!==void 0?(W.boundingSphere===null&&W.computeBoundingSphere(),Ie.copy(W.boundingSphere.center)):(At.boundingSphere===null&&At.computeBoundingSphere(),Ie.copy(At.boundingSphere.center)),Ie.applyMatrix4(W.matrixWorld).applyMatrix4(k)),Array.isArray(Ct)){const Et=At.groups;for(let Qt=0,St=Et.length;Qt0&&pi(ve,et,fe,xe),_e&&he.viewport(M.copy(_e)),ve.length>0&&zs(ve,fe,xe),et.length>0&&zs(et,fe,xe),At.length>0&&zs(At,fe,xe),he.buffers.depth.setTest(!0),he.buffers.depth.setMask(!0),he.buffers.color.setMask(!0),he.setPolygonOffset(!1)}function pi(W,fe,xe,_e){if((xe.isScene===!0?xe.overrideMaterial:null)!==null)return;const et=ae.isWebGL2;O===null&&(O=new Jr(1,1,{generateMipmaps:!0,type:ne.has("EXT_color_buffer_half_float")?kl:Ls,minFilter:Rs,samples:et?4:0})),I.getDrawingBufferSize(me),et?O.setSize(me.x,me.y):O.setSize(Bg(me.x),Bg(me.y));const At=I.getRenderTarget();I.setRenderTarget(O),I.getClearColor(ge),J=I.getClearAlpha(),J<1&&I.setClearColor(16777215,.5),I.clear();const Ct=I.toneMapping;I.toneMapping=Ns,zs(W,xe,_e),_.updateMultisampleRenderTarget(O),_.updateRenderTargetMipmap(O);let Et=!1;for(let Qt=0,St=fe.length;Qt0),_t=!!xe.morphAttributes.position,En=!!xe.morphAttributes.normal,Yn=!!xe.morphAttributes.color;let sn=Ns;_e.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&(sn=I.toneMapping);const Xn=xe.morphAttributes.position||xe.morphAttributes.normal||xe.morphAttributes.color,vt=Xn!==void 0?Xn.length:0,nt=$.get(_e),yi=C.state.lights;if(Y===!0&&(z===!0||W!==K)){const we=W===K&&_e.id===U;It.setState(_e,W,we)}let xt=!1;_e.version===nt.__version?(nt.needsLights&&nt.lightsStateVersion!==yi.state.version||nt.outputColorSpace!==Ct||ve.isBatchedMesh&&nt.batching===!1||!ve.isBatchedMesh&&nt.batching===!0||ve.isInstancedMesh&&nt.instancing===!1||!ve.isInstancedMesh&&nt.instancing===!0||ve.isSkinnedMesh&&nt.skinning===!1||!ve.isSkinnedMesh&&nt.skinning===!0||ve.isInstancedMesh&&nt.instancingColor===!0&&ve.instanceColor===null||ve.isInstancedMesh&&nt.instancingColor===!1&&ve.instanceColor!==null||nt.envMap!==Et||_e.fog===!0&&nt.fog!==et||nt.numClippingPlanes!==void 0&&(nt.numClippingPlanes!==It.numPlanes||nt.numIntersection!==It.numIntersection)||nt.vertexAlphas!==Qt||nt.vertexTangents!==St||nt.morphTargets!==_t||nt.morphNormals!==En||nt.morphColors!==Yn||nt.toneMapping!==sn||ae.isWebGL2===!0&&nt.morphTargetsCount!==vt)&&(xt=!0):(xt=!0,nt.__version=_e.version);let dn=nt.currentProgram;xt===!0&&(dn=gs(_e,fe,ve));let cr=!1,N=!1,L=!1;const Z=dn.getUniforms(),oe=nt.uniforms;if(he.useProgram(dn.program)&&(cr=!0,N=!0,L=!0),_e.id!==U&&(U=_e.id,N=!0),cr||K!==W){Z.setValue(V,"projectionMatrix",W.projectionMatrix),Z.setValue(V,"viewMatrix",W.matrixWorldInverse);const we=Z.map.cameraPosition;we!==void 0&&we.setValue(V,Ie.setFromMatrixPosition(W.matrixWorld)),ae.logarithmicDepthBuffer&&Z.setValue(V,"logDepthBufFC",2/(Math.log(W.far+1)/Math.LN2)),(_e.isMeshPhongMaterial||_e.isMeshToonMaterial||_e.isMeshLambertMaterial||_e.isMeshBasicMaterial||_e.isMeshStandardMaterial||_e.isShaderMaterial)&&Z.setValue(V,"isOrthographic",W.isOrthographicCamera===!0),K!==W&&(K=W,N=!0,L=!0)}if(ve.isSkinnedMesh){Z.setOptional(V,ve,"bindMatrix"),Z.setOptional(V,ve,"bindMatrixInverse");const we=ve.skeleton;we&&(ae.floatVertexTextures?(we.boneTexture===null&&we.computeBoneTexture(),Z.setValue(V,"boneTexture",we.boneTexture,_)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}ve.isBatchedMesh&&(Z.setOptional(V,ve,"batchingTexture"),Z.setValue(V,"batchingTexture",ve._matricesTexture,_));const pe=xe.morphAttributes;if((pe.position!==void 0||pe.normal!==void 0||pe.color!==void 0&&ae.isWebGL2===!0)&&wt.update(ve,xe,dn),(N||nt.receiveShadow!==ve.receiveShadow)&&(nt.receiveShadow=ve.receiveShadow,Z.setValue(V,"receiveShadow",ve.receiveShadow)),_e.isMeshGouraudMaterial&&_e.envMap!==null&&(oe.envMap.value=Et,oe.flipEnvMap.value=Et.isCubeTexture&&Et.isRenderTargetTexture===!1?-1:1),N&&(Z.setValue(V,"toneMappingExposure",I.toneMappingExposure),nt.needsLights&&ku(oe,L),et&&_e.fog===!0&&Ve.refreshFogUniforms(oe,et),Ve.refreshMaterialUniforms(oe,_e,de,se,O),kp.upload(V,_o(nt),oe,_)),_e.isShaderMaterial&&_e.uniformsNeedUpdate===!0&&(kp.upload(V,_o(nt),oe,_),_e.uniformsNeedUpdate=!1),_e.isSpriteMaterial&&Z.setValue(V,"center",ve.center),Z.setValue(V,"modelViewMatrix",ve.modelViewMatrix),Z.setValue(V,"normalMatrix",ve.normalMatrix),Z.setValue(V,"modelMatrix",ve.matrixWorld),_e.isShaderMaterial||_e.isRawShaderMaterial){const we=_e.uniformsGroups;for(let Ue=0,Ne=we.length;Ue0&&_.useMultisampledRTT(W)===!1?ve=$.get(W).__webglMultisampledFramebuffer:Array.isArray(St)?ve=St[xe]:ve=St,M.copy(W.viewport),P.copy(W.scissor),q=W.scissorTest}else M.copy(te).multiplyScalar(de).floor(),P.copy(ue).multiplyScalar(de).floor(),q=ye;if(he.bindFramebuffer(V.FRAMEBUFFER,ve)&&ae.drawBuffers&&_e&&he.drawBuffers(W,ve),he.viewport(M),he.scissor(P),he.setScissorTest(q),et){const Et=$.get(W.texture);V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_CUBE_MAP_POSITIVE_X+fe,Et.__webglTexture,xe)}else if(At){const Et=$.get(W.texture),Qt=fe||0;V.framebufferTextureLayer(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,Et.__webglTexture,xe||0,Qt)}U=-1},this.readRenderTargetPixels=function(W,fe,xe,_e,ve,et,At){if(!(W&&W.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Ct=$.get(W).__webglFramebuffer;if(W.isWebGLCubeRenderTarget&&At!==void 0&&(Ct=Ct[At]),Ct){he.bindFramebuffer(V.FRAMEBUFFER,Ct);try{const Et=W.texture,Qt=Et.format,St=Et.type;if(Qt!==Gi&&it.convert(Qt)!==V.getParameter(V.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const _t=St===kl&&(ne.has("EXT_color_buffer_half_float")||ae.isWebGL2&&ne.has("EXT_color_buffer_float"));if(St!==Ls&&it.convert(St)!==V.getParameter(V.IMPLEMENTATION_COLOR_READ_TYPE)&&!(St===Or&&(ae.isWebGL2||ne.has("OES_texture_float")||ne.has("WEBGL_color_buffer_float")))&&!_t){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}fe>=0&&fe<=W.width-_e&&xe>=0&&xe<=W.height-ve&&V.readPixels(fe,xe,_e,ve,it.convert(Qt),it.convert(St),et)}finally{const Et=T!==null?$.get(T).__webglFramebuffer:null;he.bindFramebuffer(V.FRAMEBUFFER,Et)}}},this.copyFramebufferToTexture=function(W,fe,xe=0){const _e=Math.pow(2,-xe),ve=Math.floor(fe.image.width*_e),et=Math.floor(fe.image.height*_e);_.setTexture2D(fe,0),V.copyTexSubImage2D(V.TEXTURE_2D,xe,0,0,W.x,W.y,ve,et),he.unbindTexture()},this.copyTextureToTexture=function(W,fe,xe,_e=0){const ve=fe.image.width,et=fe.image.height,At=it.convert(xe.format),Ct=it.convert(xe.type);_.setTexture2D(xe,0),V.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,xe.flipY),V.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,xe.premultiplyAlpha),V.pixelStorei(V.UNPACK_ALIGNMENT,xe.unpackAlignment),fe.isDataTexture?V.texSubImage2D(V.TEXTURE_2D,_e,W.x,W.y,ve,et,At,Ct,fe.image.data):fe.isCompressedTexture?V.compressedTexSubImage2D(V.TEXTURE_2D,_e,W.x,W.y,fe.mipmaps[0].width,fe.mipmaps[0].height,At,fe.mipmaps[0].data):V.texSubImage2D(V.TEXTURE_2D,_e,W.x,W.y,At,Ct,fe.image),_e===0&&xe.generateMipmaps&&V.generateMipmap(V.TEXTURE_2D),he.unbindTexture()},this.copyTextureToTexture3D=function(W,fe,xe,_e,ve=0){if(I.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const et=W.max.x-W.min.x+1,At=W.max.y-W.min.y+1,Ct=W.max.z-W.min.z+1,Et=it.convert(_e.format),Qt=it.convert(_e.type);let St;if(_e.isData3DTexture)_.setTexture3D(_e,0),St=V.TEXTURE_3D;else if(_e.isDataArrayTexture||_e.isCompressedArrayTexture)_.setTexture2DArray(_e,0),St=V.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}V.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,_e.flipY),V.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,_e.premultiplyAlpha),V.pixelStorei(V.UNPACK_ALIGNMENT,_e.unpackAlignment);const _t=V.getParameter(V.UNPACK_ROW_LENGTH),En=V.getParameter(V.UNPACK_IMAGE_HEIGHT),Yn=V.getParameter(V.UNPACK_SKIP_PIXELS),sn=V.getParameter(V.UNPACK_SKIP_ROWS),Xn=V.getParameter(V.UNPACK_SKIP_IMAGES),vt=xe.isCompressedTexture?xe.mipmaps[ve]:xe.image;V.pixelStorei(V.UNPACK_ROW_LENGTH,vt.width),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,vt.height),V.pixelStorei(V.UNPACK_SKIP_PIXELS,W.min.x),V.pixelStorei(V.UNPACK_SKIP_ROWS,W.min.y),V.pixelStorei(V.UNPACK_SKIP_IMAGES,W.min.z),xe.isDataTexture||xe.isData3DTexture?V.texSubImage3D(St,ve,fe.x,fe.y,fe.z,et,At,Ct,Et,Qt,vt.data):xe.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),V.compressedTexSubImage3D(St,ve,fe.x,fe.y,fe.z,et,At,Ct,Et,vt.data)):V.texSubImage3D(St,ve,fe.x,fe.y,fe.z,et,At,Ct,Et,Qt,vt),V.pixelStorei(V.UNPACK_ROW_LENGTH,_t),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,En),V.pixelStorei(V.UNPACK_SKIP_PIXELS,Yn),V.pixelStorei(V.UNPACK_SKIP_ROWS,sn),V.pixelStorei(V.UNPACK_SKIP_IMAGES,Xn),ve===0&&_e.generateMipmaps&&V.generateMipmap(St),he.unbindTexture()},this.initTexture=function(W){W.isCubeTexture?_.setTextureCube(W,0):W.isData3DTexture?_.setTexture3D(W,0):W.isDataArrayTexture||W.isCompressedArrayTexture?_.setTexture2DArray(W,0):_.setTexture2D(W,0),he.unbindTexture()},this.resetState=function(){R=0,w=0,T=null,he.reset(),Bt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Ts}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===$g?"display-p3":"srgb",t.unpackColorSpace=an.workingColorSpace===Yh?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===Hn?da:Gv}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===da?Hn:Fs}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class BR extends qv{}BR.prototype.isWebGL1Renderer=!0;class rm{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new je(e),this.density=t}clone(){return new rm(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class sm{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new je(e),this.near=t,this.far=i}clone(){return new sm(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Rh extends zt{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}}class om{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=wh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Br()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Tl("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:l,point:gA.clone(),uv:yr.getInterpolation(gA,Of,EA,Gf,s_,RE,o_,new Se),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function Hf(n,e,t,i,r,s){Pc.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(mA.x=s*Pc.x-r*Pc.y,mA.y=r*Pc.x+s*Pc.y):mA.copy(Pc),n.copy(e),n.x+=mA.x,n.y+=mA.y,n.applyMatrix4(SR)}const zf=new G,a_=new G;class wR extends zt{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){zf.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(zf);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){zf.setFromMatrixPosition(e.matrixWorld),a_.setFromMatrixPosition(this.matrixWorld);const i=zf.distanceTo(a_)/e.zoom;t[0].object.visible=!0;let r,s;for(r=1,s=t.length;r=o)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const Lc="batchId",Vo=new ht,g_=new ht,w8=new ht,m_=new ht,bE=new jh,Yf=new ri,rl=new Zn,vA=new G,PE=new _8,Qi=new qt,Xf=[];function M8(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new on(a,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(Lc,new on(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(Lc))throw new Error(`BatchedMesh: Geometry cannot use attribute "${Lc}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===Lc)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ri);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,a=this._drawRanges,l=this._bounds;this._geometryCount!==0&&(s=o[o.length-1]),t===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=t,s===null?r.vertexStart=0:r.vertexStart=s.vertexStart+s.vertexCount;const A=e.getIndex(),h=A!==null;if(h&&(i===-1?r.indexCount=A.count:r.indexCount=i,s===null?r.indexStart=0:r.indexStart=s.indexStart+s.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const d=this._visibility,f=this._active,g=this._matricesTexture,E=this._matricesTexture.image.data;d.push(!0),f.push(!0);const v=this._geometryCount;this._geometryCount++,w8.toArray(E,v*16),g.needsUpdate=!0,o.push(r),a.push({start:h?r.indexStart:r.vertexStart,count:-1}),l.push({boxInitialized:!1,box:new ri,sphereInitialized:!1,sphere:new Zn});const C=this.geometry.getAttribute(Lc);for(let p=0;p=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=i.getIndex()!==null,s=i.getIndex(),o=t.getIndex(),a=this._reservedRanges[e];if(r&&o.count>a.indexCount||t.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const l=a.vertexStart,A=a.vertexCount;for(const g in i.attributes){if(g===Lc)continue;const E=t.getAttribute(g),v=i.getAttribute(g);M8(E,v,l);const C=E.itemSize;for(let p=E.count,y=A;p=t.length||t[e]===!1?this:(t[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,t){if(this._active[e]===!1)return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(r.boxInitialized===!1){s.makeEmpty();const a=o.index,l=o.attributes.position,A=this._drawRanges[e];for(let h=A.start,d=A.start+A.count;h=o||i[e]===!1?this:(t.toArray(s,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,t){const i=this._active,r=this._matricesTexture.image.data,s=this._geometryCount;return e>=s||i[e]===!1?null:t.fromArray(r,e*16)}setVisibleAt(e,t){const i=this._visibility,r=this._active,s=this._geometryCount;return e>=s||r[e]===!1||i[e]===t?this:(i[e]=t,this._visibilityChanged=!0,this)}getVisibleAt(e){const t=this._visibility,i=this._active,r=this._geometryCount;return e>=r||i[e]===!1?!1:t[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,a=this.matrixWorld,l=this.geometry;Qi.material=this.material,Qi.geometry.index=l.index,Qi.geometry.attributes=l.attributes,Qi.geometry.boundingBox===null&&(Qi.geometry.boundingBox=new ri),Qi.geometry.boundingSphere===null&&(Qi.geometry.boundingSphere=new Zn);for(let A=0;A({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),a=o===null?1:o.array.BYTES_PER_ELEMENT,l=this._active,A=this._visibility,h=this._multiDrawStarts,d=this._multiDrawCounts,f=this._drawRanges,g=this.perObjectFrustumCulled;g&&(m_.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),bE.setFromProjectionMatrix(m_,e.coordinateSystem));let E=0;if(this.sortObjects){g_.copy(this.matrixWorld).invert(),vA.setFromMatrixPosition(i.matrixWorld).applyMatrix4(g_);for(let p=0,y=A.length;pl)continue;f.applyMatrix4(this.matrixWorld);const U=e.ray.origin.distanceTo(f);Ue.far||t.push({distance:U,point:d.clone().applyMatrix4(this.matrixWorld),index:I,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),y=Math.min(C.count,o.start+o.count);for(let I=p,B=y-1;Il)continue;f.applyMatrix4(this.matrixWorld);const w=e.ray.origin.distanceTo(f);we.far||t.push({distance:w,point:d.clone().applyMatrix4(this.matrixWorld),index:I,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:A,distanceToRay:Math.sqrt(a),point:l,index:e,face:null,object:o})}}class Q8 extends wn{constructor(e,t,i,r,s,o,a,l,A){super(e,t,i,r,s,o,a,l,A),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:vn,this.magFilter=s!==void 0?s:vn,this.generateMipmaps=!1;const h=this;function d(){h.needsUpdate=!0,e.requestVideoFrameCallback(d)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(d)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class R8 extends wn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=Gn,this.minFilter=Gn,this.generateMipmaps=!1,this.needsUpdate=!0}}class am extends wn{constructor(e,t,i,r,s,o,a,l,A,h,d,f){super(null,o,a,l,A,h,r,s,d,f),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class T8 extends am{constructor(e,t,i,r,s,o){super(e,t,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=Ti}}class D8 extends am{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,vo),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class b8 extends wn{constructor(e,t,i,r,s,o,a,l,A){super(e,t,i,r,s,o,a,l,A),this.isCanvasTexture=!0,this.needsUpdate=!0}}class fs{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;t?o=t:o=e*i[s-1];let a=0,l=s-1,A;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),A=i[r]-o,A<0)a=r+1;else if(A>0)l=r-1;else{l=r;break}if(r=l,i[r]===o)return r/(s-1);const h=i[r],f=i[r+1]-h,g=(o-h)/f;return(r+g)/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=t||(o.isVector2?new Se:new G);return l.copy(a).sub(o).normalize(),l}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new G,r=[],s=[],o=[],a=new G,l=new ht;for(let g=0;g<=e;g++){const E=g/e;r[g]=this.getTangentAt(E,new G)}s[0]=new G,o[0]=new G;let A=Number.MAX_VALUE;const h=Math.abs(r[0].x),d=Math.abs(r[0].y),f=Math.abs(r[0].z);h<=A&&(A=h,i.set(1,0,0)),d<=A&&(A=d,i.set(0,1,0)),f<=A&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let g=1;g<=e;g++){if(s[g]=s[g-1].clone(),o[g]=o[g-1].clone(),a.crossVectors(r[g-1],r[g]),a.length()>Number.EPSILON){a.normalize();const E=Math.acos(Fn(r[g-1].dot(r[g]),-1,1));s[g].applyMatrix4(l.makeRotationAxis(a,E))}o[g].crossVectors(r[g],s[g])}if(t===!0){let g=Math.acos(Fn(s[0].dot(s[e]),-1,1));g/=e,r[0].dot(a.crossVectors(s[0],s[e]))>0&&(g=-g);for(let E=1;E<=e;E++)s[E].applyMatrix4(l.makeRotationAxis(r[E],g*E)),o[E].crossVectors(r[E],s[E])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class lm extends fs{constructor(e=0,t=0,i=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(e,t){const i=t||new Se,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let A,h;this.closed||a>0?A=r[(a-1)%s]:(qf.subVectors(r[0],r[1]).add(r[0]),A=qf);const d=r[a%s],f=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],d=r[o>r.length-3?r.length-1:o+2];return i.set(S_(a,l.x,A.x,h.x,d.x),S_(a,l.y,A.y,h.y,d.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,a=this.curves[s],l=a.getLength(),A=l===0?0:1-o/l;return a.getPointAt(A,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const d=A.getPoint(0);d.equals(this.currentPoint)||this.lineTo(d.x,d.y)}this.curves.push(A);const h=A.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class qh extends Pt{constructor(e=[new Se(0,-.5),new Se(.5,0),new Se(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Fn(r,0,Math.PI*2);const s=[],o=[],a=[],l=[],A=[],h=1/t,d=new G,f=new Se,g=new G,E=new G,v=new G;let C=0,p=0;for(let y=0;y<=e.length-1;y++)switch(y){case 0:C=e[y+1].x-e[y].x,p=e[y+1].y-e[y].y,g.x=p*1,g.y=-C,g.z=p*0,v.copy(g),g.normalize(),l.push(g.x,g.y,g.z);break;case e.length-1:l.push(v.x,v.y,v.z);break;default:C=e[y+1].x-e[y].x,p=e[y+1].y-e[y].y,g.x=p*1,g.y=-C,g.z=p*0,E.copy(g),g.x+=v.x,g.y+=v.y,g.z+=v.z,g.normalize(),l.push(g.x,g.y,g.z),v.copy(E)}for(let y=0;y<=t;y++){const I=i+y*h*r,B=Math.sin(I),R=Math.cos(I);for(let w=0;w<=e.length-1;w++){d.x=e[w].x*B,d.y=e[w].y,d.z=e[w].x*R,o.push(d.x,d.y,d.z),f.x=y/t,f.y=w/(e.length-1),a.push(f.x,f.y);const T=l[3*w+0]*B,U=l[3*w+1],K=l[3*w+0]*R;A.push(T,U,K)}}for(let y=0;y0&&I(!0),t>0&&I(!1)),this.setIndex(h),this.setAttribute("position",new at(d,3)),this.setAttribute("normal",new at(f,3)),this.setAttribute("uv",new at(g,2));function y(){const B=new G,R=new G;let w=0;const T=(t-e)/i;for(let U=0;U<=s;U++){const K=[],M=U/s,P=M*(t-e)+e;for(let q=0;q<=r;q++){const ge=q/r,J=ge*l+a,ce=Math.sin(J),se=Math.cos(J);R.x=P*ce,R.y=-M*i+C,R.z=P*se,d.push(R.x,R.y,R.z),B.set(ce,T,se).normalize(),f.push(B.x,B.y,B.z),g.push(ge,1-M),K.push(E++)}v.push(K)}for(let U=0;U.9&&T<.1&&(I<.2&&(o[y+0]+=1),B<.2&&(o[y+2]+=1),R<.2&&(o[y+4]+=1))}}function f(y){s.push(y.x,y.y,y.z)}function g(y,I){const B=y*3;I.x=e[B+0],I.y=e[B+1],I.z=e[B+2]}function E(){const y=new G,I=new G,B=new G,R=new G,w=new Se,T=new Se,U=new Se;for(let K=0,M=0;K80*t){a=A=n[0],l=h=n[1];for(let E=t;EA&&(A=d),f>h&&(h=f);g=Math.max(A-a,h-l),g=g!==0?32767/g:0}return Th(s,o,t,a,l,g,0),o}};function OR(n,e,t,i,r){let s,o;if(r===i5(n,e,t,i)>0)for(s=e;s=e;s-=i)o=__(s,n[s],n[s+1],o);return o&&dm(o,o.next)&&(bh(o),o=o.next),o}function Hl(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(dm(t,t.next)||Rn(t.prev,t,t.next)===0)){if(bh(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function Th(n,e,t,i,r,s,o){if(!n)return;!o&&s&&q8(n,i,r,s);let a=n,l,A;for(;n.prev!==n.next;){if(l=n.prev,A=n.next,s?z8(n,i,r,s):H8(n)){e.push(l.i/t|0),e.push(n.i/t|0),e.push(A.i/t|0),bh(n),n=A.next,a=A.next;continue}if(n=A,n===a){o?o===1?(n=V8(Hl(n),e,t),Th(n,e,t,i,r,s,2)):o===2&&W8(n,e,t,i,r,s):Th(Hl(n),e,t,i,r,s,1);break}}}function H8(n){const e=n.prev,t=n,i=n.next;if(Rn(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,a=e.y,l=t.y,A=i.y,h=rs?r>o?r:o:s>o?s:o,g=a>l?a>A?a:A:l>A?l:A;let E=i.next;for(;E!==e;){if(E.x>=h&&E.x<=f&&E.y>=d&&E.y<=g&&su(r,a,s,l,o,A,E.x,E.y)&&Rn(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function z8(n,e,t,i){const r=n.prev,s=n,o=n.next;if(Rn(r,s,o)>=0)return!1;const a=r.x,l=s.x,A=o.x,h=r.y,d=s.y,f=o.y,g=al?a>A?a:A:l>A?l:A,C=h>d?h>f?h:f:d>f?d:f,p=r1(g,E,e,t,i),y=r1(v,C,e,t,i);let I=n.prevZ,B=n.nextZ;for(;I&&I.z>=p&&B&&B.z<=y;){if(I.x>=g&&I.x<=v&&I.y>=E&&I.y<=C&&I!==r&&I!==o&&su(a,h,l,d,A,f,I.x,I.y)&&Rn(I.prev,I,I.next)>=0||(I=I.prevZ,B.x>=g&&B.x<=v&&B.y>=E&&B.y<=C&&B!==r&&B!==o&&su(a,h,l,d,A,f,B.x,B.y)&&Rn(B.prev,B,B.next)>=0))return!1;B=B.nextZ}for(;I&&I.z>=p;){if(I.x>=g&&I.x<=v&&I.y>=E&&I.y<=C&&I!==r&&I!==o&&su(a,h,l,d,A,f,I.x,I.y)&&Rn(I.prev,I,I.next)>=0)return!1;I=I.prevZ}for(;B&&B.z<=y;){if(B.x>=g&&B.x<=v&&B.y>=E&&B.y<=C&&B!==r&&B!==o&&su(a,h,l,d,A,f,B.x,B.y)&&Rn(B.prev,B,B.next)>=0)return!1;B=B.nextZ}return!0}function V8(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!dm(r,s)&&GR(r,i,i.next,s)&&Dh(r,s)&&Dh(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),bh(i),bh(i.next),i=n=s),i=i.next}while(i!==n);return Hl(i)}function W8(n,e,t,i,r,s){let o=n;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&e5(o,a)){let l=HR(o,a);o=Hl(o,o.next),l=Hl(l,l.next),Th(o,e,t,i,r,s,0),Th(l,e,t,i,r,s,0);return}a=a.next}o=o.next}while(o!==n)}function Y8(n,e,t,i){const r=[];let s,o,a,l,A;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){const f=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(f<=s&&f>i&&(i=f,r=t.x=t.x&&t.x>=l&&s!==t.x&&su(or.x||t.x===r.x&&K8(r,t)))&&(r=t,h=d)),t=t.next;while(t!==a);return r}function K8(n,e){return Rn(n.prev,n,e.prev)<0&&Rn(e.next,n,n.next)<0}function q8(n,e,t,i){let r=n;do r.z===0&&(r.z=r1(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,Z8(r)}function Z8(n){let e,t,i,r,s,o,a,l,A=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||l>0&&i;)a!==0&&(l===0||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,A*=2}while(o>1);return n}function r1(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function $8(n){let e=n,t=n;do(e.x=(n-o)*(s-a)&&(n-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(r-o)*(i-a)}function e5(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!t5(n,e)&&(Dh(n,e)&&Dh(e,n)&&n5(n,e)&&(Rn(n.prev,n,e.prev)||Rn(n,e.prev,e))||dm(n,e)&&Rn(n.prev,n,n.next)>0&&Rn(e.prev,e,e.next)>0)}function Rn(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function dm(n,e){return n.x===e.x&&n.y===e.y}function GR(n,e,t,i){const r=np(Rn(n,e,t)),s=np(Rn(n,e,i)),o=np(Rn(t,i,n)),a=np(Rn(t,i,e));return!!(r!==s&&o!==a||r===0&&tp(n,t,e)||s===0&&tp(n,i,e)||o===0&&tp(t,n,i)||a===0&&tp(t,e,i))}function tp(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function np(n){return n>0?1:n<0?-1:0}function t5(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&GR(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function Dh(n,e){return Rn(n.prev,n,n.next)<0?Rn(n,e,n.next)>=0&&Rn(n,n.prev,e)>=0:Rn(n,e,n.prev)<0||Rn(n,n.next,e)<0}function n5(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function HR(n,e){const t=new s1(n.i,n.x,n.y),i=new s1(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function __(n,e,t,i){const r=new s1(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function bh(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function s1(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function i5(n,e,t,i){let r=0;for(let s=e,o=t-i;s2&&n[e-1].equals(n[0])&&n.pop()}function M_(n,e){for(let t=0;tNumber.EPSILON){const Qe=Math.sqrt(be),Je=Math.sqrt(D*D+ie*ie),Ve=Ee.x-_/Qe,Ze=Ee.y+$/Qe,ut=ne.x-ie/Je,It=ne.y+D/Je,Le=((ut-Ve)*ie-(It-Ze)*D)/($*ie-_*D);ae=Ve+$*Le-V.x,he=Ze+_*Le-V.y;const Nt=ae*ae+he*he;if(Nt<=2)return new Se(ae,he);Te=Math.sqrt(Nt/2)}else{let Qe=!1;$>Number.EPSILON?D>Number.EPSILON&&(Qe=!0):$<-Number.EPSILON?D<-Number.EPSILON&&(Qe=!0):Math.sign(_)===Math.sign(ie)&&(Qe=!0),Qe?(ae=-_,he=$,Te=Math.sqrt(be)):(ae=$,he=_,Te=Math.sqrt(be/2))}return new Se(ae/Te,he/Te)}const ee=[];for(let V=0,Ee=J.length,ne=Ee-1,ae=V+1;V=0;V--){const Ee=V/C,ne=g*Math.cos(Ee*Math.PI/2),ae=E*Math.sin(Ee*Math.PI/2)+v;for(let he=0,Te=J.length;he=0;){const ae=ne;let he=ne-1;he<0&&(he=V.length-1);for(let Te=0,$=h+C*2;Te<$;Te++){const _=se*Te,D=se*(Te+1),ie=Ee+ae+_,be=Ee+he+_,De=Ee+he+D,Qe=Ee+ae+D;Ie(ie,be,De,Qe)}}}function k(V,Ee,ne){l.push(V),l.push(Ee),l.push(ne)}function me(V,Ee,ne){re(V),re(Ee),re(ne);const ae=r.length/3,he=y.generateTopUV(i,r,ae-3,ae-2,ae-1);Be(he[0]),Be(he[1]),Be(he[2])}function Ie(V,Ee,ne,ae){re(V),re(Ee),re(ae),re(Ee),re(ne),re(ae);const he=r.length/3,Te=y.generateSideWallUV(i,r,he-6,he-3,he-2,he-1);Be(Te[0]),Be(Te[1]),Be(Te[3]),Be(Te[1]),Be(Te[2]),Be(Te[3])}function re(V){r.push(l[V*3+0]),r.push(l[V*3+1]),r.push(l[V*3+2])}function Be(V){s.push(V.x),s.push(V.y)}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){const e=super.toJSON(),t=this.parameters.shapes,i=this.parameters.options;return s5(t,i,e)}static fromJSON(e,t){const i=[];for(let s=0,o=e.shapes.length;s0)&&g.push(I,B,w),(p!==i-1||l0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class XR extends di{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new je(16777215),this.specular=new je(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ba,this.normalScale=new Se(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Wh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class JR extends di{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new je(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ba,this.normalScale=new Se(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class jR extends di{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ba,this.normalScale=new Se(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class KR extends di{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ba,this.normalScale=new Se(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Wh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class qR extends di{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new je(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ba,this.normalScale=new Se(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class ZR extends Ji{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function _l(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function $R(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function eT(n){function e(r,s){return n[r]-n[s]}const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function o1(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const a=t[s]*e;for(let l=0;l!==e;++l)r[o++]=n[a+l]}return r}function cI(n,e,t,i){let r=1,s=n[0];for(;s!==void 0&&s[i]===void 0;)s=n[r++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&&(e.push(s.time),t.push.apply(t,o)),s=n[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++];while(s!==void 0);else do o=s[i],o!==void 0&&(e.push(s.time),t.push(o)),s=n[r++];while(s!==void 0)}function a5(n,e,t,i,r=30){const s=n.clone();s.name=e;const o=[];for(let l=0;l=i)){d.push(A.times[g]);for(let v=0;vs.tracks[l].times[0]&&(a=s.tracks[l].times[0]);for(let l=0;l=a.times[E]){const p=E*d+h,y=p+d-h;v=a.values.slice(p,y)}else{const p=a.createInterpolant(),y=h,I=d-h;p.evaluate(s),v=p.resultBuffer.slice(y,I)}l==="quaternion"&&new Vn().fromArray(v).normalize().conjugate().toArray(v);const C=A.times.length;for(let p=0;p=s)){const a=t[1];e=s)break t}o=i,i=0;break n}break e}for(;i>>1;et;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){const l=i[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),e=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),e=!1;break}o=l}if(r!==void 0&&$R(r))for(let a=0,l=r.length;a!==l;++a){const A=r[a];if(isNaN(A)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,A),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===Fp,s=e.length-1;let o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*i,l=o*i,A=0;A!==i;++A)t[l+A]=t[a+A];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}ps.prototype.TimeBufferType=Float32Array;ps.prototype.ValueBufferType=Float32Array;ps.prototype.DefaultInterpolation=Ih;class Yl extends ps{}Yl.prototype.ValueTypeName="bool";Yl.prototype.ValueBufferType=Array;Yl.prototype.DefaultInterpolation=vh;Yl.prototype.InterpolantFactoryMethodLinear=void 0;Yl.prototype.InterpolantFactoryMethodSmooth=void 0;class AI extends ps{}AI.prototype.ValueTypeName="color";class Ph extends ps{}Ph.prototype.ValueTypeName="number";class iT extends ed{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(i-t)/(r-t);let A=e*a;for(let h=A+a;A!==h;A+=4)Vn.slerpFlat(s,0,o,A-a,o,A,l);return s}}class Nu extends ps{InterpolantFactoryMethodLinear(e){return new iT(this.times,this.values,this.getValueSize(),e)}}Nu.prototype.ValueTypeName="quaternion";Nu.prototype.DefaultInterpolation=Ih;Nu.prototype.InterpolantFactoryMethodSmooth=void 0;class Xl extends ps{}Xl.prototype.ValueTypeName="string";Xl.prototype.ValueBufferType=Array;Xl.prototype.DefaultInterpolation=vh;Xl.prototype.InterpolantFactoryMethodLinear=void 0;Xl.prototype.InterpolantFactoryMethodSmooth=void 0;class Nh extends ps{}Nh.prototype.ValueTypeName="vector";class Lh{constructor(e,t=-1,i,r=Zg){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=Br(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(A5(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(ps.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let a=0;a1){const d=h[1];let f=r[d];f||(r[d]=f=[]),f.push(A)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(d,f,g,E,v){if(g.length!==0){const C=[],p=[];cI(g,C,p,E),C.length!==0&&v.push(new d(f,C,p))}},r=[],s=e.name||"default",o=e.fps||30,a=e.blendMode;let l=e.length||-1;const A=e.hierarchy||[];for(let d=0;d{t&&t(s),this.manager.itemEnd(e)},0),s;if(no[e]!==void 0){no[e].push({onLoad:t,onProgress:i,onError:r});return}no[e]=[],no[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(A=>{if(A.status===200||A.status===0){if(A.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||A.body===void 0||A.body.getReader===void 0)return A;const h=no[e],d=A.body.getReader(),f=A.headers.get("Content-Length")||A.headers.get("X-File-Size"),g=f?parseInt(f):0,E=g!==0;let v=0;const C=new ReadableStream({start(p){y();function y(){d.read().then(({done:I,value:B})=>{if(I)p.close();else{v+=B.byteLength;const R=new ProgressEvent("progress",{lengthComputable:E,loaded:v,total:g});for(let w=0,T=h.length;w{switch(l){case"arraybuffer":return A.arrayBuffer();case"blob":return A.blob();case"document":return A.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return A.json();default:if(a===void 0)return A.text();{const d=/charset="?([^;"\s]*)"?/i.exec(a),f=d&&d[1]?d[1].toLowerCase():void 0,g=new TextDecoder(f);return A.arrayBuffer().then(E=>g.decode(E))}}}).then(A=>{fo.add(e,A);const h=no[e];delete no[e];for(let d=0,f=h.length;d{const h=no[e];if(h===void 0)throw this.manager.itemError(e),A;delete no[e];for(let d=0,f=h.length;d{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class d5 extends ji{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new ks(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{t(s.parse(JSON.parse(a)))}catch(l){r?r(l):console.error(l),s.manager.itemError(e)}},i,r)}parse(e){const t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=new je().setHex(o.value);break;case"v2":r.uniforms[s].value=new Se().fromArray(o.value);break;case"v3":r.uniforms[s].value=new G().fromArray(o.value);break;case"v4":r.uniforms[s].value=new ln().fromArray(o.value);break;case"m3":r.uniforms[s].value=new Rt().fromArray(o.value);break;case"m4":r.uniforms[s].value=new ht().fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=i(e.map)),e.matcap!==void 0&&(r.matcap=i(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),r.normalScale=new Se().fromArray(s)}return e.displacementMap!==void 0&&(r.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=i(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new Se().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const t={ShadowMaterial:VR,SpriteMaterial:Zv,RawShaderMaterial:WR,ShaderMaterial:hs,PointsMaterial:tI,MeshPhysicalMaterial:YR,MeshStandardMaterial:lI,MeshPhongMaterial:XR,MeshToonMaterial:JR,MeshNormalMaterial:jR,MeshLambertMaterial:KR,MeshDepthMaterial:nm,MeshDistanceMaterial:im,MeshBasicMaterial:ar,MeshMatcapMaterial:qR,LineDashedMaterial:ZR,LineBasicMaterial:Ji,Material:di};return new t[e]}}class a1{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,r=e.length;i0){const l=new hI(t);s=new Uh(l),s.setCrossOrigin(this.crossOrigin);for(let A=0,h=e.length;A0){r=new Uh(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;o{const C=new ri;C.min.fromArray(v.boxMin),C.max.fromArray(v.boxMax);const p=new Zn;return p.radius=v.sphereRadius,p.center.fromArray(v.sphereCenter),{boxInitialized:v.boxInitialized,box:C,sphereInitialized:v.sphereInitialized,sphere:p}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=A(e.matricesTexture.uuid);break;case"LOD":o=new wR;break;case"Line":o=new ya(a(e.geometry),l(e.material));break;case"LineLoop":o=new DR(a(e.geometry),l(e.material));break;case"LineSegments":o=new Gs(a(e.geometry),l(e.material));break;case"PointCloud":case"Points":o=new bR(a(e.geometry),l(e.material));break;case"Sprite":o=new _R(l(e.material));break;case"Group":o=new Hr;break;case"Bone":o=new $v;break;default:o=new zt}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const f=e.children;for(let g=0;g"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=fo.get(e);if(o!==void 0){if(s.manager.itemStart(e),o.then){o.then(A=>{t&&t(A),s.manager.itemEnd(e)}).catch(A=>{r&&r(A)});return}return setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(e,a).then(function(A){return A.blob()}).then(function(A){return createImageBitmap(A,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(A){return fo.add(e,A),t&&t(A),s.manager.itemEnd(e),A}).catch(function(A){r&&r(A),fo.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});fo.add(e,l),s.manager.itemStart(e)}}let ip;class pI{static getContext(){return ip===void 0&&(ip=new(window.AudioContext||window.webkitAudioContext)),ip}static setContext(e){ip=e}}class x5 extends ji{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new ks(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(l){try{const A=l.slice(0);pI.getContext().decodeAudioData(A,function(d){t(d)}).catch(a)}catch(A){a(A)}},i,r);function a(l){r?r(l):console.error(l),s.manager.itemError(e)}}}const L_=new ht,U_=new ht,sl=new ht;class B5{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new ni,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new ni,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,sl.copy(e.projectionMatrix);const r=t.eyeSep/2,s=r*t.near/t.focus,o=t.near*Math.tan(Rl*t.fov*.5)/t.zoom;let a,l;U_.elements[12]=-r,L_.elements[12]=r,a=-o*t.aspect+s,l=o*t.aspect+s,sl.elements[0]=2*t.near/(l-a),sl.elements[8]=(l+a)/(l-a),this.cameraL.projectionMatrix.copy(sl),a=-o*t.aspect-s,l=o*t.aspect-s,sl.elements[0]=2*t.near/(l-a),sl.elements[8]=(l+a)/(l-a),this.cameraR.projectionMatrix.copy(sl)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(U_),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(L_)}}class gI{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=F_(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=F_();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function F_(){return(typeof performance>"u"?Date:performance).now()}const ol=new G,k_=new Vn,S5=new G,al=new G;class _5 extends zt{constructor(){super(),this.type="AudioListener",this.context=pI.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new gI}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(ol,k_,S5),al.set(0,0,-1).applyQuaternion(k_),t.positionX){const r=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(ol.x,r),t.positionY.linearRampToValueAtTime(ol.y,r),t.positionZ.linearRampToValueAtTime(ol.z,r),t.forwardX.linearRampToValueAtTime(al.x,r),t.forwardY.linearRampToValueAtTime(al.y,r),t.forwardZ.linearRampToValueAtTime(al.z,r),t.upX.linearRampToValueAtTime(i.x,r),t.upY.linearRampToValueAtTime(i.y,r),t.upZ.linearRampToValueAtTime(i.z,r)}else t.setPosition(ol.x,ol.y,ol.z),t.setOrientation(al.x,al.y,al.z,i.x,i.y,i.z)}}class pT extends zt{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let l=t,A=t+t;l!==A;++l)if(i[l]!==i[l+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let s=i,o=r;s!==o;++s)t[s]=t[r+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let o=0;o!==s;++o)e[t+o]=e[i+o]}_slerp(e,t,i,r){Vn.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,s){const o=this._workIndex*s;Vn.multiplyQuaternionsFlat(e,o,e,t,e,i),Vn.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,i,r,s){const o=1-r;for(let a=0;a!==s;++a){const l=t+a;e[l]=e[l]*o+e[i+a]*r}}_lerpAdditive(e,t,i,r,s){for(let o=0;o!==s;++o){const a=t+o;e[a]=e[a]+e[i+o]*r}}}const mI="\\[\\]\\.:\\/",R5=new RegExp("["+mI+"]","g"),EI="[^"+mI+"]",T5="[^"+mI.replace("\\.","")+"]",D5=/((?:WC+[\/:])*)/.source.replace("WC",EI),b5=/(WCOD+)?/.source.replace("WCOD",T5),P5=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",EI),N5=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",EI),L5=new RegExp("^"+D5+b5+P5+N5+"$"),U5=["material","materials","bones","map"];class F5{constructor(e,t,i){const r=i||jt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class jt{constructor(e,t,i){this.path=t,this.parsedPath=i||jt.parseTrackName(t),this.node=jt.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new jt.Composite(e,t,i):new jt(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(R5,"")}static parseTrackName(e){const t=L5.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=i.nodeName.substring(r+1);U5.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(s){for(let o=0;o=s){const d=s++,f=e[d];t[f.uuid]=h,e[h]=f,t[A]=d,e[d]=l;for(let g=0,E=r;g!==E;++g){const v=i[g],C=v[d],p=v[h];v[h]=C,v[d]=p}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let s=this.nCachedObjects_,o=e.length;for(let a=0,l=arguments.length;a!==l;++a){const A=arguments[a],h=A.uuid,d=t[h];if(d!==void 0)if(delete t[h],d0&&(t[g.uuid]=d),e[d]=g,e.pop();for(let E=0,v=r;E!==v;++E){const C=i[E];C[d]=C[f],C.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const s=this._bindings;if(r!==void 0)return s[r];const o=this._paths,a=this._parsedPaths,l=this._objects,A=l.length,h=this.nCachedObjects_,d=new Array(A);r=s.length,i[e]=r,o.push(e),a.push(t),s.push(d);for(let f=h,g=l.length;f!==g;++f){const E=l[f];d[f]=new jt(E,e,t)}return d}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,l=o[a],A=e[a];t[A]=i,o[i]=l,o.pop(),s[i]=s[a],s.pop(),r[i]=r[a],r.pop()}}}class mT{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const s=t.tracks,o=s.length,a=new Array(o),l={endingStart:xl,endingEnd:xl};for(let A=0;A!==o;++A){const h=s[A].createInterpolant(null);a[A]=h,h.settings=l}this._interpolantSettings=l,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=qQ,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const r=this._clip.duration,s=e._clip.duration,o=s/r,a=r/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,s=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const l=a.parameterPositions,A=a.sampleValues;return l[0]=s,l[1]=s+i,A[0]=e/o,A[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const l=(e-s)*i;l<0||i===0?t=0:(this._startTime=null,t=i*l)}t*=this._updateTimeScale(e);const o=this._updateTime(t),a=this._updateWeight(e);if(a>0){const l=this._interpolants,A=this._propertyBindings;switch(this.blendMode){case Ov:for(let h=0,d=l.length;h!==d;++h)l[h].evaluate(o),A[h].accumulateAdditive(a);break;case Zg:default:for(let h=0,d=l.length;h!==d;++h)l[h].evaluate(o),A[h].accumulate(r,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,s=this._loopCount;const o=i===ZQ;if(e===0)return s===-1?r:o&&(s&1)===1?t-r:r;if(i===KQ){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=t||r<0){const a=Math.floor(r/t);r-=t*a,s+=Math.abs(a);const l=this.repetitions-s;if(l<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(l===1){const A=e<0;this._setEndings(A,!A,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&(s&1)===1)return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=Bl,r.endingEnd=Bl):(e?r.endingStart=this.zeroSlopeAtStart?Bl:xl:r.endingStart=xh,t?r.endingEnd=this.zeroSlopeAtEnd?Bl:xl:r.endingEnd=xh)}_scheduleFading(e,t,i){const r=this._mixer,s=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,l=o.sampleValues;return a[0]=s,l[0]=t,a[1]=s+e,l[1]=i,this}}const O5=new Float32Array(1);class G5 extends xo{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,s=r.length,o=e._propertyBindings,a=e._interpolants,l=i.uuid,A=this._bindingsByRootAndName;let h=A[l];h===void 0&&(h={},A[l]=h);for(let d=0;d!==s;++d){const f=r[d],g=f.name;let E=h[g];if(E!==void 0)++E.referenceCount,o[d]=E;else{if(E=o[d],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,l,g));continue}const v=t&&t._propertyBindings[d].binding.parsedPath;E=new gT(jt.create(i,g,v),f.ValueTypeName,f.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,l,g),o[d]=E}a[d].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,r=e._clip.uuid,s=this._actionsByClip[r];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,r,i)}const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let A=0;A!==i;++A)t[A]._update(r,e,s,o);const a=this._bindings,l=this._nActiveBindings;for(let A=0;A!==l;++A)a[A].apply(o);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,H_).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const z_=new G,rp=new G;class CT{constructor(e=new G,t=new G){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){z_.subVectors(e,this.start),rp.subVectors(this.end,this.start);const i=rp.dot(rp);let s=rp.dot(z_)/i;return t&&(s=Fn(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const V_=new G;class J5 extends zt{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new Pt,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,a=1,l=32;o1)for(let d=0;d.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{j_.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(j_,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class aO extends Gs{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Pt;r.setAttribute("position",new at(t,3)),r.setAttribute("color",new at(i,3));const s=new Ji({vertexColors:!0,toneMapped:!1});super(r,s),this.type="AxesHelper"}setColors(e,t,i){const r=new je,s=this.geometry.attributes.color.array;return r.set(e),r.toArray(s,0),r.toArray(s,3),r.set(t),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Xo{constructor(){this.type="ShapePath",this.color=new je,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new fa,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,s,o){return this.currentPath.bezierCurveTo(e,t,i,r,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(p){const y=[];for(let I=0,B=p.length;INumber.EPSILON){if(M<0&&(T=y[w],K=-K,U=y[R],M=-M),p.yU.y)continue;if(p.y===T.y){if(p.x===T.x)return!0}else{const P=M*(p.x-T.x)-K*(p.y-T.y);if(P===0)return!0;if(P<0)continue;B=!B}}else{if(p.y!==T.y)continue;if(U.x<=p.x&&p.x<=T.x||T.x<=p.x&&p.x<=U.x)return!0}}return B}const r=us.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,l;const A=[];if(s.length===1)return a=s[0],l=new pa,l.curves=a.curves,A.push(l),A;let h=!r(s[0].getPoints());h=e?!h:h;const d=[],f=[];let g=[],E=0,v;f[E]=void 0,g[E]=[];for(let p=0,y=s.length;p1){let p=!1,y=0;for(let I=0,B=f.length;I0&&p===!1&&(g=d)}let C;for(let p=0,y=f.length;p=0&&(B[O]=null,I[O].disconnect(G))}for(let z=0;z=B.length){B.push(G),O=Ie;break}else if(B[Ie]===null){B[Ie]=G,O=Ie;break}if(O===-1)break}const me=I[O];me&&me.connect(G)}}const ne=new H,ue=new H;function F(Y,z,G){ne.setFromMatrixPosition(z.matrixWorld),ue.setFromMatrixPosition(G.matrixWorld);const O=ne.distanceTo(ue),me=z.projectionMatrix.elements,Ie=G.projectionMatrix.elements,oe=me[14]/(me[10]-1),Se=me[14]/(me[10]+1),V=(me[9]+1)/me[5],Ee=(me[9]-1)/me[5],ie=(me[8]-1)/me[0],le=(Ie[8]+1)/Ie[0],de=oe*ie,Te=oe*le,$=O/(-ie+le),_=$*-ie;z.matrixWorld.decompose(Y.position,Y.quaternion,Y.scale),Y.translateX(_),Y.translateZ($),Y.matrixWorld.compose(Y.position,Y.quaternion,Y.scale),Y.matrixWorldInverse.copy(Y.matrixWorld).invert();const b=oe+$,se=Se+$,Pe=de-_,De=Te+(O-_),Qe=V*Se/se*b,je=Ee*Se/se*b;Y.projectionMatrix.makePerspective(Pe,De,Qe,je,b,se),Y.projectionMatrixInverse.copy(Y.projectionMatrix).invert()}function ee(Y,z){z===null?Y.matrixWorld.copy(Y.matrix):Y.matrixWorld.multiplyMatrices(z.matrixWorld,Y.matrix),Y.matrixWorldInverse.copy(Y.matrixWorld).invert()}this.updateCamera=function(Y){if(r===null)return;v.texture!==null&&(Y.near=v.depthNear,Y.far=v.depthFar),w.near=U.near=T.near=Y.near,w.far=U.far=T.far=Y.far,(P!==w.near||q!==w.far)&&(r.updateRenderState({depthNear:w.near,depthFar:w.far}),P=w.near,q=w.far,T.near=P,T.far=q,U.near=P,U.far=q,T.updateProjectionMatrix(),U.updateProjectionMatrix(),Y.updateProjectionMatrix());const z=Y.parent,G=w.cameras;ee(w,z);for(let O=0;O0&&(C.alphaTest.value=p.alphaTest);const y=e.get(p).envMap;if(y&&(C.envMap.value=y,C.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,C.reflectivity.value=p.reflectivity,C.ior.value=p.ior,C.refractionRatio.value=p.refractionRatio),p.lightMap){C.lightMap.value=p.lightMap;const I=n._useLegacyLights===!0?Math.PI:1;C.lightMapIntensity.value=p.lightMapIntensity*I,t(p.lightMap,C.lightMapTransform)}p.aoMap&&(C.aoMap.value=p.aoMap,C.aoMapIntensity.value=p.aoMapIntensity,t(p.aoMap,C.aoMapTransform))}function o(C,p){C.diffuse.value.copy(p.color),C.opacity.value=p.opacity,p.map&&(C.map.value=p.map,t(p.map,C.mapTransform))}function a(C,p){C.dashSize.value=p.dashSize,C.totalSize.value=p.dashSize+p.gapSize,C.scale.value=p.scale}function l(C,p,y,I){C.diffuse.value.copy(p.color),C.opacity.value=p.opacity,C.size.value=p.size*y,C.scale.value=I*.5,p.map&&(C.map.value=p.map,t(p.map,C.uvTransform)),p.alphaMap&&(C.alphaMap.value=p.alphaMap,t(p.alphaMap,C.alphaMapTransform)),p.alphaTest>0&&(C.alphaTest.value=p.alphaTest)}function A(C,p){C.diffuse.value.copy(p.color),C.opacity.value=p.opacity,C.rotation.value=p.rotation,p.map&&(C.map.value=p.map,t(p.map,C.mapTransform)),p.alphaMap&&(C.alphaMap.value=p.alphaMap,t(p.alphaMap,C.alphaMapTransform)),p.alphaTest>0&&(C.alphaTest.value=p.alphaTest)}function h(C,p){C.specular.value.copy(p.specular),C.shininess.value=Math.max(p.shininess,1e-4)}function d(C,p){p.gradientMap&&(C.gradientMap.value=p.gradientMap)}function f(C,p){C.metalness.value=p.metalness,p.metalnessMap&&(C.metalnessMap.value=p.metalnessMap,t(p.metalnessMap,C.metalnessMapTransform)),C.roughness.value=p.roughness,p.roughnessMap&&(C.roughnessMap.value=p.roughnessMap,t(p.roughnessMap,C.roughnessMapTransform)),e.get(p).envMap&&(C.envMapIntensity.value=p.envMapIntensity)}function g(C,p,y){C.ior.value=p.ior,p.sheen>0&&(C.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),C.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(C.sheenColorMap.value=p.sheenColorMap,t(p.sheenColorMap,C.sheenColorMapTransform)),p.sheenRoughnessMap&&(C.sheenRoughnessMap.value=p.sheenRoughnessMap,t(p.sheenRoughnessMap,C.sheenRoughnessMapTransform))),p.clearcoat>0&&(C.clearcoat.value=p.clearcoat,C.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(C.clearcoatMap.value=p.clearcoatMap,t(p.clearcoatMap,C.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(C.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,t(p.clearcoatRoughnessMap,C.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(C.clearcoatNormalMap.value=p.clearcoatNormalMap,t(p.clearcoatNormalMap,C.clearcoatNormalMapTransform),C.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Yi&&C.clearcoatNormalScale.value.negate())),p.iridescence>0&&(C.iridescence.value=p.iridescence,C.iridescenceIOR.value=p.iridescenceIOR,C.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],C.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(C.iridescenceMap.value=p.iridescenceMap,t(p.iridescenceMap,C.iridescenceMapTransform)),p.iridescenceThicknessMap&&(C.iridescenceThicknessMap.value=p.iridescenceThicknessMap,t(p.iridescenceThicknessMap,C.iridescenceThicknessMapTransform))),p.transmission>0&&(C.transmission.value=p.transmission,C.transmissionSamplerMap.value=y.texture,C.transmissionSamplerSize.value.set(y.width,y.height),p.transmissionMap&&(C.transmissionMap.value=p.transmissionMap,t(p.transmissionMap,C.transmissionMapTransform)),C.thickness.value=p.thickness,p.thicknessMap&&(C.thicknessMap.value=p.thicknessMap,t(p.thicknessMap,C.thicknessMapTransform)),C.attenuationDistance.value=p.attenuationDistance,C.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(C.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(C.anisotropyMap.value=p.anisotropyMap,t(p.anisotropyMap,C.anisotropyMapTransform))),C.specularIntensity.value=p.specularIntensity,C.specularColor.value.copy(p.specularColor),p.specularColorMap&&(C.specularColorMap.value=p.specularColorMap,t(p.specularColorMap,C.specularColorMapTransform)),p.specularIntensityMap&&(C.specularIntensityMap.value=p.specularIntensityMap,t(p.specularIntensityMap,C.specularIntensityMapTransform))}function E(C,p){p.matcap&&(C.matcap.value=p.matcap)}function v(C,p){const y=e.get(p).light;C.referencePosition.value.setFromMatrixPosition(y.matrixWorld),C.nearDistance.value=y.shadow.camera.near,C.farDistance.value=y.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function N8(n,e,t,i){let r={},s={},o=[];const a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(y,I){const B=I.program;i.uniformBlockBinding(y,B)}function A(y,I){let B=r[y.id];B===void 0&&(E(y),B=h(y),r[y.id]=B,y.addEventListener("dispose",C));const R=I.program;i.updateUBOMapping(y,R);const M=e.render.frame;s[y.id]!==M&&(f(y),s[y.id]=M)}function h(y){const I=d();y.__bindingPointIndex=I;const B=n.createBuffer(),R=y.__size,M=y.usage;return n.bindBuffer(n.UNIFORM_BUFFER,B),n.bufferData(n.UNIFORM_BUFFER,R,M),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,I,B),B}function d(){for(let y=0;y0&&(B+=R-M),y.__size=B,y.__cache={},this}function v(y){const I={boundary:0,storage:0};return typeof y=="number"||typeof y=="boolean"?(I.boundary=4,I.storage=4):y.isVector2?(I.boundary=8,I.storage=8):y.isVector3||y.isColor?(I.boundary=16,I.storage=12):y.isVector4?(I.boundary=16,I.storage=16):y.isMatrix3?(I.boundary=48,I.storage=48):y.isMatrix4?(I.boundary=64,I.storage=64):y.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",y),I}function C(y){const I=y.target;I.removeEventListener("dispose",C);const B=o.indexOf(I.__bindingPointIndex);o.splice(B,1),n.deleteBuffer(r[I.id]),delete r[I.id],delete s[I.id]}function p(){for(const y in r)n.deleteBuffer(r[y]);o=[],r={},s={}}return{bind:l,update:A,dispose:p}}class iI{constructor(e={}){const{canvas:t=BR(),context:i=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:A=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:d=!1}=e;this.isWebGLRenderer=!0;let f;i!==null?f=i.getContextAttributes().alpha:f=o;const g=new Uint32Array(4),E=new Int32Array(4);let v=null,C=null;const p=[],y=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=Vn,this._useLegacyLights=!1,this.toneMapping=Us,this.toneMappingExposure=1;const I=this;let B=!1,R=0,M=0,T=null,U=-1,K=null;const w=new un,P=new un;let q=null;const fe=new Ke(0);let J=0,re=t.width,ne=t.height,ue=1,F=null,ee=null;const te=new un(0,0,re,ne),Ae=new un(0,0,re,ne);let ye=!1;const Oe=new qh;let Y=!1,z=!1,G=null;const O=new ht,me=new Be,Ie=new H,oe={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Se(){return T===null?ue:1}let V=i;function Ee(W,pe){for(let xe=0;xe{function et(){if(_e.forEach(function(At){$.get(At).currentProgram.isReady()&&_e.delete(At)}),_e.size===0){ve(W);return}setTimeout(et,10)}ie.get("KHR_parallel_shader_compile")!==null?et():setTimeout(et,10)})};let jt=null;function Ln(W){jt&&jt(W)}function pi(){hn.stop()}function on(){hn.start()}const hn=new TR;hn.setAnimationLoop(Ln),typeof self<"u"&&hn.setContext(self),this.setAnimationLoop=function(W){jt=W,Mt.setAnimationLoop(W),W===null?hn.stop():hn.start()},Mt.addEventListener("sessionstart",pi),Mt.addEventListener("sessionend",on),this.render=function(W,pe){if(pe!==void 0&&pe.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(B===!0)return;W.matrixWorldAutoUpdate===!0&&W.updateMatrixWorld(),pe.parent===null&&pe.matrixWorldAutoUpdate===!0&&pe.updateMatrixWorld(),Mt.enabled===!0&&Mt.isPresenting===!0&&(Mt.cameraAutoUpdate===!0&&Mt.updateCamera(pe),pe=Mt.getCamera()),W.isScene===!0&&W.onBeforeRender(I,W,pe,T),C=ut.get(W,y.length),C.init(),y.push(C),O.multiplyMatrices(pe.projectionMatrix,pe.matrixWorldInverse),Oe.setFromProjectionMatrix(O),z=this.localClippingEnabled,Y=It.init(this.clippingPlanes,z),v=Ze.get(W,p.length),v.init(),p.push(v),Zi(W,pe,0,I.sortObjects),v.finish(),I.sortObjects===!0&&v.sort(F,ee),this.info.render.frame++,Y===!0&&It.beginShadows();const xe=C.state.shadowsArray;if(Ne.render(xe,W,pe),Y===!0&&It.endShadows(),this.info.autoReset===!0&&this.info.reset(),(Mt.enabled===!1||Mt.isPresenting===!1||Mt.hasDepthSensing()===!1)&&Lt.render(v,W),C.setupLights(I._useLegacyLights),pe.isArrayCamera){const _e=pe.cameras;for(let ve=0,et=_e.length;ve0?C=y[y.length-1]:C=null,p.pop(),p.length>0?v=p[p.length-1]:v=null};function Zi(W,pe,xe,_e){if(W.visible===!1)return;if(W.layers.test(pe.layers)){if(W.isGroup)xe=W.renderOrder;else if(W.isLOD)W.autoUpdate===!0&&W.update(pe);else if(W.isLight)C.pushLight(W),W.castShadow&&C.pushShadow(W);else if(W.isSprite){if(!W.frustumCulled||Oe.intersectsSprite(W)){_e&&Ie.setFromMatrixPosition(W.matrixWorld).applyMatrix4(O);const At=Qe.update(W),Ct=W.material;Ct.visible&&v.push(W,At,Ct,xe,Ie.z,null)}}else if((W.isMesh||W.isLine||W.isPoints)&&(!W.frustumCulled||Oe.intersectsObject(W))){const At=Qe.update(W),Ct=W.material;if(_e&&(W.boundingSphere!==void 0?(W.boundingSphere===null&&W.computeBoundingSphere(),Ie.copy(W.boundingSphere.center)):(At.boundingSphere===null&&At.computeBoundingSphere(),Ie.copy(At.boundingSphere.center)),Ie.applyMatrix4(W.matrixWorld).applyMatrix4(O)),Array.isArray(Ct)){const Et=At.groups;for(let Qt=0,St=Et.length;Qt0&&gi(ve,et,pe,xe),_e&&de.viewport(w.copy(_e)),ve.length>0&&Ws(ve,pe,xe),et.length>0&&Ws(et,pe,xe),At.length>0&&Ws(At,pe,xe),de.buffers.depth.setTest(!0),de.buffers.depth.setMask(!0),de.buffers.color.setMask(!0),de.setPolygonOffset(!1)}function gi(W,pe,xe,_e){if((xe.isScene===!0?xe.overrideMaterial:null)!==null)return;const et=le.isWebGL2;G===null&&(G=new Jr(1,1,{generateMipmaps:!0,type:ie.has("EXT_color_buffer_half_float")?Jl:Fs,minFilter:Ds,samples:et?4:0})),I.getDrawingBufferSize(me),et?G.setSize(me.x,me.y):G.setSize(Mg(me.x),Mg(me.y));const At=I.getRenderTarget();I.setRenderTarget(G),I.getClearColor(fe),J=I.getClearAlpha(),J<1&&I.setClearColor(16777215,.5),I.clear();const Ct=I.toneMapping;I.toneMapping=Us,Ws(W,xe,_e),_.updateMultisampleRenderTarget(G),_.updateRenderTargetMipmap(G);let Et=!1;for(let Qt=0,St=pe.length;Qt0),_t=!!xe.morphAttributes.position,Cn=!!xe.morphAttributes.normal,Xn=!!xe.morphAttributes.color;let an=Us;_e.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&(an=I.toneMapping);const Jn=xe.morphAttributes.position||xe.morphAttributes.normal||xe.morphAttributes.color,vt=Jn!==void 0?Jn.length:0,nt=$.get(_e),Ii=C.state.lights;if(Y===!0&&(z===!0||W!==K)){const we=W===K&&_e.id===U;It.setState(_e,W,we)}let xt=!1;_e.version===nt.__version?(nt.needsLights&&nt.lightsStateVersion!==Ii.state.version||nt.outputColorSpace!==Ct||ve.isBatchedMesh&&nt.batching===!1||!ve.isBatchedMesh&&nt.batching===!0||ve.isInstancedMesh&&nt.instancing===!1||!ve.isInstancedMesh&&nt.instancing===!0||ve.isSkinnedMesh&&nt.skinning===!1||!ve.isSkinnedMesh&&nt.skinning===!0||ve.isInstancedMesh&&nt.instancingColor===!0&&ve.instanceColor===null||ve.isInstancedMesh&&nt.instancingColor===!1&&ve.instanceColor!==null||nt.envMap!==Et||_e.fog===!0&&nt.fog!==et||nt.numClippingPlanes!==void 0&&(nt.numClippingPlanes!==It.numPlanes||nt.numIntersection!==It.numIntersection)||nt.vertexAlphas!==Qt||nt.vertexTangents!==St||nt.morphTargets!==_t||nt.morphNormals!==Cn||nt.morphColors!==Xn||nt.toneMapping!==an||le.isWebGL2===!0&&nt.morphTargetsCount!==vt)&&(xt=!0):(xt=!0,nt.__version=_e.version);let dn=nt.currentProgram;xt===!0&&(dn=Es(_e,pe,ve));let ur=!1,L=!1,N=!1;const Z=dn.getUniforms(),ae=nt.uniforms;if(de.useProgram(dn.program)&&(ur=!0,L=!0,N=!0),_e.id!==U&&(U=_e.id,L=!0),ur||K!==W){Z.setValue(V,"projectionMatrix",W.projectionMatrix),Z.setValue(V,"viewMatrix",W.matrixWorldInverse);const we=Z.map.cameraPosition;we!==void 0&&we.setValue(V,Ie.setFromMatrixPosition(W.matrixWorld)),le.logarithmicDepthBuffer&&Z.setValue(V,"logDepthBufFC",2/(Math.log(W.far+1)/Math.LN2)),(_e.isMeshPhongMaterial||_e.isMeshToonMaterial||_e.isMeshLambertMaterial||_e.isMeshBasicMaterial||_e.isMeshStandardMaterial||_e.isShaderMaterial)&&Z.setValue(V,"isOrthographic",W.isOrthographicCamera===!0),K!==W&&(K=W,L=!0,N=!0)}if(ve.isSkinnedMesh){Z.setOptional(V,ve,"bindMatrix"),Z.setOptional(V,ve,"bindMatrixInverse");const we=ve.skeleton;we&&(le.floatVertexTextures?(we.boneTexture===null&&we.computeBoneTexture(),Z.setValue(V,"boneTexture",we.boneTexture,_)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}ve.isBatchedMesh&&(Z.setOptional(V,ve,"batchingTexture"),Z.setValue(V,"batchingTexture",ve._matricesTexture,_));const ge=xe.morphAttributes;if((ge.position!==void 0||ge.normal!==void 0||ge.color!==void 0&&le.isWebGL2===!0)&&wt.update(ve,xe,dn),(L||nt.receiveShadow!==ve.receiveShadow)&&(nt.receiveShadow=ve.receiveShadow,Z.setValue(V,"receiveShadow",ve.receiveShadow)),_e.isMeshGouraudMaterial&&_e.envMap!==null&&(ae.envMap.value=Et,ae.flipEnvMap.value=Et.isCubeTexture&&Et.isRenderTargetTexture===!1?-1:1),L&&(Z.setValue(V,"toneMappingExposure",I.toneMappingExposure),nt.needsLights&&Hu(ae,N),et&&_e.fog===!0&&Ve.refreshFogUniforms(ae,et),Ve.refreshMaterialUniforms(ae,_e,ue,ne,G),zp.upload(V,Oo(nt),ae,_)),_e.isShaderMaterial&&_e.uniformsNeedUpdate===!0&&(zp.upload(V,Oo(nt),ae,_),_e.uniformsNeedUpdate=!1),_e.isSpriteMaterial&&Z.setValue(V,"center",ve.center),Z.setValue(V,"modelViewMatrix",ve.modelViewMatrix),Z.setValue(V,"normalMatrix",ve.normalMatrix),Z.setValue(V,"modelMatrix",ve.matrixWorld),_e.isShaderMaterial||_e.isRawShaderMaterial){const we=_e.uniformsGroups;for(let Ue=0,Le=we.length;Ue0&&_.useMultisampledRTT(W)===!1?ve=$.get(W).__webglMultisampledFramebuffer:Array.isArray(St)?ve=St[xe]:ve=St,w.copy(W.viewport),P.copy(W.scissor),q=W.scissorTest}else w.copy(te).multiplyScalar(ue).floor(),P.copy(Ae).multiplyScalar(ue).floor(),q=ye;if(de.bindFramebuffer(V.FRAMEBUFFER,ve)&&le.drawBuffers&&_e&&de.drawBuffers(W,ve),de.viewport(w),de.scissor(P),de.setScissorTest(q),et){const Et=$.get(W.texture);V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_CUBE_MAP_POSITIVE_X+pe,Et.__webglTexture,xe)}else if(At){const Et=$.get(W.texture),Qt=pe||0;V.framebufferTextureLayer(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,Et.__webglTexture,xe||0,Qt)}U=-1},this.readRenderTargetPixels=function(W,pe,xe,_e,ve,et,At){if(!(W&&W.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Ct=$.get(W).__webglFramebuffer;if(W.isWebGLCubeRenderTarget&&At!==void 0&&(Ct=Ct[At]),Ct){de.bindFramebuffer(V.FRAMEBUFFER,Ct);try{const Et=W.texture,Qt=Et.format,St=Et.type;if(Qt!==zi&&it.convert(Qt)!==V.getParameter(V.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const _t=St===Jl&&(ie.has("EXT_color_buffer_half_float")||le.isWebGL2&&ie.has("EXT_color_buffer_float"));if(St!==Fs&&it.convert(St)!==V.getParameter(V.IMPLEMENTATION_COLOR_READ_TYPE)&&!(St===Or&&(le.isWebGL2||ie.has("OES_texture_float")||ie.has("WEBGL_color_buffer_float")))&&!_t){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}pe>=0&&pe<=W.width-_e&&xe>=0&&xe<=W.height-ve&&V.readPixels(pe,xe,_e,ve,it.convert(Qt),it.convert(St),et)}finally{const Et=T!==null?$.get(T).__webglFramebuffer:null;de.bindFramebuffer(V.FRAMEBUFFER,Et)}}},this.copyFramebufferToTexture=function(W,pe,xe=0){const _e=Math.pow(2,-xe),ve=Math.floor(pe.image.width*_e),et=Math.floor(pe.image.height*_e);_.setTexture2D(pe,0),V.copyTexSubImage2D(V.TEXTURE_2D,xe,0,0,W.x,W.y,ve,et),de.unbindTexture()},this.copyTextureToTexture=function(W,pe,xe,_e=0){const ve=pe.image.width,et=pe.image.height,At=it.convert(xe.format),Ct=it.convert(xe.type);_.setTexture2D(xe,0),V.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,xe.flipY),V.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,xe.premultiplyAlpha),V.pixelStorei(V.UNPACK_ALIGNMENT,xe.unpackAlignment),pe.isDataTexture?V.texSubImage2D(V.TEXTURE_2D,_e,W.x,W.y,ve,et,At,Ct,pe.image.data):pe.isCompressedTexture?V.compressedTexSubImage2D(V.TEXTURE_2D,_e,W.x,W.y,pe.mipmaps[0].width,pe.mipmaps[0].height,At,pe.mipmaps[0].data):V.texSubImage2D(V.TEXTURE_2D,_e,W.x,W.y,At,Ct,pe.image),_e===0&&xe.generateMipmaps&&V.generateMipmap(V.TEXTURE_2D),de.unbindTexture()},this.copyTextureToTexture3D=function(W,pe,xe,_e,ve=0){if(I.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const et=W.max.x-W.min.x+1,At=W.max.y-W.min.y+1,Ct=W.max.z-W.min.z+1,Et=it.convert(_e.format),Qt=it.convert(_e.type);let St;if(_e.isData3DTexture)_.setTexture3D(_e,0),St=V.TEXTURE_3D;else if(_e.isDataArrayTexture||_e.isCompressedArrayTexture)_.setTexture2DArray(_e,0),St=V.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}V.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,_e.flipY),V.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,_e.premultiplyAlpha),V.pixelStorei(V.UNPACK_ALIGNMENT,_e.unpackAlignment);const _t=V.getParameter(V.UNPACK_ROW_LENGTH),Cn=V.getParameter(V.UNPACK_IMAGE_HEIGHT),Xn=V.getParameter(V.UNPACK_SKIP_PIXELS),an=V.getParameter(V.UNPACK_SKIP_ROWS),Jn=V.getParameter(V.UNPACK_SKIP_IMAGES),vt=xe.isCompressedTexture?xe.mipmaps[ve]:xe.image;V.pixelStorei(V.UNPACK_ROW_LENGTH,vt.width),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,vt.height),V.pixelStorei(V.UNPACK_SKIP_PIXELS,W.min.x),V.pixelStorei(V.UNPACK_SKIP_ROWS,W.min.y),V.pixelStorei(V.UNPACK_SKIP_IMAGES,W.min.z),xe.isDataTexture||xe.isData3DTexture?V.texSubImage3D(St,ve,pe.x,pe.y,pe.z,et,At,Ct,Et,Qt,vt.data):xe.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),V.compressedTexSubImage3D(St,ve,pe.x,pe.y,pe.z,et,At,Ct,Et,vt.data)):V.texSubImage3D(St,ve,pe.x,pe.y,pe.z,et,At,Ct,Et,Qt,vt),V.pixelStorei(V.UNPACK_ROW_LENGTH,_t),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,Cn),V.pixelStorei(V.UNPACK_SKIP_PIXELS,Xn),V.pixelStorei(V.UNPACK_SKIP_ROWS,an),V.pixelStorei(V.UNPACK_SKIP_IMAGES,Jn),ve===0&&_e.generateMipmaps&&V.generateMipmap(St),de.unbindTexture()},this.initTexture=function(W){W.isCubeTexture?_.setTextureCube(W,0):W.isData3DTexture?_.setTexture3D(W,0):W.isDataArrayTexture||W.isCompressedArrayTexture?_.setTexture2DArray(W,0):_.setTexture2D(W,0),de.unbindTexture()},this.resetState=function(){R=0,M=0,T=null,de.reset(),Bt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return bs}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===im?"display-p3":"srgb",t.unpackColorSpace=cn.workingColorSpace===Jh?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===Vn?wa:Xv}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===wa?Vn:ks}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class kR extends iI{}kR.prototype.isWebGL1Renderer=!0;class lm{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Ke(e),this.density=t}clone(){return new lm(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class cm{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Ke(e),this.near=t,this.far=i}clone(){return new cm(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Dh extends Vt{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}}class um{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=Qh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Sr()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Ol("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:l,point:CA.clone(),uv:vr.getInterpolation(CA,Gf,vA,Hf,p_,PE,g_,new Be),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function zf(n,e,t,i,r,s){Uc.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(yA.x=s*Uc.x-r*Uc.y,yA.y=r*Uc.x+s*Uc.y):yA.copy(Uc),n.copy(e),n.x+=yA.x,n.y+=yA.y,n.applyMatrix4(OR)}const Vf=new H,m_=new H;class HR extends Vt{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){Vf.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(Vf);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Vf.setFromMatrixPosition(e.matrixWorld),m_.setFromMatrixPosition(this.matrixWorld);const i=Vf.distanceTo(m_)/e.zoom;t[0].object.visible=!0;let r,s;for(r=1,s=t.length;r=o)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const kc="batchId",ra=new ht,__=new ht,z8=new ht,w_=new ht,UE=new qh,Xf=new ri,hl=new $n,BA=new H,FE=new H8,Ti=new $t,Jf=[];function V8(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new ln(a,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(kc,new ln(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(kc))throw new Error(`BatchedMesh: Geometry cannot use attribute "${kc}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===kc)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ri);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,a=this._drawRanges,l=this._bounds;this._geometryCount!==0&&(s=o[o.length-1]),t===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=t,s===null?r.vertexStart=0:r.vertexStart=s.vertexStart+s.vertexCount;const A=e.getIndex(),h=A!==null;if(h&&(i===-1?r.indexCount=A.count:r.indexCount=i,s===null?r.indexStart=0:r.indexStart=s.indexStart+s.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const d=this._visibility,f=this._active,g=this._matricesTexture,E=this._matricesTexture.image.data;d.push(!0),f.push(!0);const v=this._geometryCount;this._geometryCount++,z8.toArray(E,v*16),g.needsUpdate=!0,o.push(r),a.push({start:h?r.indexStart:r.vertexStart,count:-1}),l.push({boxInitialized:!1,box:new ri,sphereInitialized:!1,sphere:new $n});const C=this.geometry.getAttribute(kc);for(let p=0;p=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=i.getIndex()!==null,s=i.getIndex(),o=t.getIndex(),a=this._reservedRanges[e];if(r&&o.count>a.indexCount||t.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const l=a.vertexStart,A=a.vertexCount;for(const g in i.attributes){if(g===kc)continue;const E=t.getAttribute(g),v=i.getAttribute(g);V8(E,v,l);const C=E.itemSize;for(let p=E.count,y=A;p=t.length||t[e]===!1?this:(t[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,t){if(this._active[e]===!1)return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(r.boxInitialized===!1){s.makeEmpty();const a=o.index,l=o.attributes.position,A=this._drawRanges[e];for(let h=A.start,d=A.start+A.count;h=o||i[e]===!1?this:(t.toArray(s,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,t){const i=this._active,r=this._matricesTexture.image.data,s=this._geometryCount;return e>=s||i[e]===!1?null:t.fromArray(r,e*16)}setVisibleAt(e,t){const i=this._visibility,r=this._active,s=this._geometryCount;return e>=s||r[e]===!1||i[e]===t?this:(i[e]=t,this._visibilityChanged=!0,this)}getVisibleAt(e){const t=this._visibility,i=this._active,r=this._geometryCount;return e>=r||i[e]===!1?!1:t[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,a=this.matrixWorld,l=this.geometry;Ti.material=this.material,Ti.geometry.index=l.index,Ti.geometry.attributes=l.attributes,Ti.geometry.boundingBox===null&&(Ti.geometry.boundingBox=new ri),Ti.geometry.boundingSphere===null&&(Ti.geometry.boundingSphere=new $n);for(let A=0;A({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),a=o===null?1:o.array.BYTES_PER_ELEMENT,l=this._active,A=this._visibility,h=this._multiDrawStarts,d=this._multiDrawCounts,f=this._drawRanges,g=this.perObjectFrustumCulled;g&&(w_.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),UE.setFromProjectionMatrix(w_,e.coordinateSystem));let E=0;if(this.sortObjects){__.copy(this.matrixWorld).invert(),BA.setFromMatrixPosition(i.matrixWorld).applyMatrix4(__);for(let p=0,y=A.length;pl)continue;f.applyMatrix4(this.matrixWorld);const U=e.ray.origin.distanceTo(f);Ue.far||t.push({distance:U,point:d.clone().applyMatrix4(this.matrixWorld),index:I,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),y=Math.min(C.count,o.start+o.count);for(let I=p,B=y-1;Il)continue;f.applyMatrix4(this.matrixWorld);const M=e.ray.origin.distanceTo(f);Me.far||t.push({distance:M,point:d.clone().applyMatrix4(this.matrixWorld),index:I,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:A,distanceToRay:Math.sqrt(a),point:l,index:e,face:null,object:o})}}class W8 extends Mn{constructor(e,t,i,r,s,o,a,l,A){super(e,t,i,r,s,o,a,l,A),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:xn,this.magFilter=s!==void 0?s:xn,this.generateMipmaps=!1;const h=this;function d(){h.needsUpdate=!0,e.requestVideoFrameCallback(d)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(d)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class Y8 extends Mn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=zn,this.minFilter=zn,this.generateMipmaps=!1,this.needsUpdate=!0}}class Am extends Mn{constructor(e,t,i,r,s,o,a,l,A,h,d,f){super(null,o,a,l,A,h,r,s,d,f),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class X8 extends Am{constructor(e,t,i,r,s,o){super(e,t,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=bi}}class J8 extends Am{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,Bo),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class j8 extends Mn{constructor(e,t,i,r,s,o,a,l,A){super(e,t,i,r,s,o,a,l,A),this.isCanvasTexture=!0,this.needsUpdate=!0}}class gs{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;t?o=t:o=e*i[s-1];let a=0,l=s-1,A;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),A=i[r]-o,A<0)a=r+1;else if(A>0)l=r-1;else{l=r;break}if(r=l,i[r]===o)return r/(s-1);const h=i[r],f=i[r+1]-h,g=(o-h)/f;return(r+g)/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=t||(o.isVector2?new Be:new H);return l.copy(a).sub(o).normalize(),l}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new H,r=[],s=[],o=[],a=new H,l=new ht;for(let g=0;g<=e;g++){const E=g/e;r[g]=this.getTangentAt(E,new H)}s[0]=new H,o[0]=new H;let A=Number.MAX_VALUE;const h=Math.abs(r[0].x),d=Math.abs(r[0].y),f=Math.abs(r[0].z);h<=A&&(A=h,i.set(1,0,0)),d<=A&&(A=d,i.set(0,1,0)),f<=A&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let g=1;g<=e;g++){if(s[g]=s[g-1].clone(),o[g]=o[g-1].clone(),a.crossVectors(r[g-1],r[g]),a.length()>Number.EPSILON){a.normalize();const E=Math.acos(kn(r[g-1].dot(r[g]),-1,1));s[g].applyMatrix4(l.makeRotationAxis(a,E))}o[g].crossVectors(r[g],s[g])}if(t===!0){let g=Math.acos(kn(s[0].dot(s[e]),-1,1));g/=e,r[0].dot(a.crossVectors(s[0],s[e]))>0&&(g=-g);for(let E=1;E<=e;E++)s[E].applyMatrix4(l.makeRotationAxis(r[E],g*E)),o[E].crossVectors(r[E],s[E])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class hm extends gs{constructor(e=0,t=0,i=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(e,t){const i=t||new Be,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let A,h;this.closed||a>0?A=r[(a-1)%s]:(Zf.subVectors(r[0],r[1]).add(r[0]),A=Zf);const d=r[a%s],f=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],d=r[o>r.length-3?r.length-1:o+2];return i.set(L_(a,l.x,A.x,h.x,d.x),L_(a,l.y,A.y,h.y,d.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,a=this.curves[s],l=a.getLength(),A=l===0?0:1-o/l;return a.getPointAt(A,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const d=A.getPoint(0);d.equals(this.currentPoint)||this.lineTo(d.x,d.y)}this.curves.push(A);const h=A.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class $h extends Pt{constructor(e=[new Be(0,-.5),new Be(.5,0),new Be(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=kn(r,0,Math.PI*2);const s=[],o=[],a=[],l=[],A=[],h=1/t,d=new H,f=new Be,g=new H,E=new H,v=new H;let C=0,p=0;for(let y=0;y<=e.length-1;y++)switch(y){case 0:C=e[y+1].x-e[y].x,p=e[y+1].y-e[y].y,g.x=p*1,g.y=-C,g.z=p*0,v.copy(g),g.normalize(),l.push(g.x,g.y,g.z);break;case e.length-1:l.push(v.x,v.y,v.z);break;default:C=e[y+1].x-e[y].x,p=e[y+1].y-e[y].y,g.x=p*1,g.y=-C,g.z=p*0,E.copy(g),g.x+=v.x,g.y+=v.y,g.z+=v.z,g.normalize(),l.push(g.x,g.y,g.z),v.copy(E)}for(let y=0;y<=t;y++){const I=i+y*h*r,B=Math.sin(I),R=Math.cos(I);for(let M=0;M<=e.length-1;M++){d.x=e[M].x*B,d.y=e[M].y,d.z=e[M].x*R,o.push(d.x,d.y,d.z),f.x=y/t,f.y=M/(e.length-1),a.push(f.x,f.y);const T=l[3*M+0]*B,U=l[3*M+1],K=l[3*M+0]*R;A.push(T,U,K)}}for(let y=0;y0&&I(!0),t>0&&I(!1)),this.setIndex(h),this.setAttribute("position",new at(d,3)),this.setAttribute("normal",new at(f,3)),this.setAttribute("uv",new at(g,2));function y(){const B=new H,R=new H;let M=0;const T=(t-e)/i;for(let U=0;U<=s;U++){const K=[],w=U/s,P=w*(t-e)+e;for(let q=0;q<=r;q++){const fe=q/r,J=fe*l+a,re=Math.sin(J),ne=Math.cos(J);R.x=P*re,R.y=-w*i+C,R.z=P*ne,d.push(R.x,R.y,R.z),B.set(re,T,ne).normalize(),f.push(B.x,B.y,B.z),g.push(fe,1-w),K.push(E++)}v.push(K)}for(let U=0;U.9&&T<.1&&(I<.2&&(o[y+0]+=1),B<.2&&(o[y+2]+=1),R<.2&&(o[y+4]+=1))}}function f(y){s.push(y.x,y.y,y.z)}function g(y,I){const B=y*3;I.x=e[B+0],I.y=e[B+1],I.z=e[B+2]}function E(){const y=new H,I=new H,B=new H,R=new H,M=new Be,T=new Be,U=new Be;for(let K=0,w=0;K80*t){a=A=n[0],l=h=n[1];for(let E=t;EA&&(A=d),f>h&&(h=f);g=Math.max(A-a,h-l),g=g!==0?32767/g:0}return bh(s,o,t,a,l,g,0),o}};function tT(n,e,t,i,r){let s,o;if(r===C5(n,e,t,i)>0)for(s=e;s=e;s-=i)o=N_(s,n[s],n[s+1],o);return o&&mm(o,o.next)&&(Lh(o),o=o.next),o}function ql(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(mm(t,t.next)||Tn(t.prev,t,t.next)===0)){if(Lh(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function bh(n,e,t,i,r,s,o){if(!n)return;!o&&s&&d5(n,i,r,s);let a=n,l,A;for(;n.prev!==n.next;){if(l=n.prev,A=n.next,s?s5(n,i,r,s):r5(n)){e.push(l.i/t|0),e.push(n.i/t|0),e.push(A.i/t|0),Lh(n),n=A.next,a=A.next;continue}if(n=A,n===a){o?o===1?(n=o5(ql(n),e,t),bh(n,e,t,i,r,s,2)):o===2&&a5(n,e,t,i,r,s):bh(ql(n),e,t,i,r,s,1);break}}}function r5(n){const e=n.prev,t=n,i=n.next;if(Tn(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,a=e.y,l=t.y,A=i.y,h=rs?r>o?r:o:s>o?s:o,g=a>l?a>A?a:A:l>A?l:A;let E=i.next;for(;E!==e;){if(E.x>=h&&E.x<=f&&E.y>=d&&E.y<=g&&lu(r,a,s,l,o,A,E.x,E.y)&&Tn(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function s5(n,e,t,i){const r=n.prev,s=n,o=n.next;if(Tn(r,s,o)>=0)return!1;const a=r.x,l=s.x,A=o.x,h=r.y,d=s.y,f=o.y,g=al?a>A?a:A:l>A?l:A,C=h>d?h>f?h:f:d>f?d:f,p=A1(g,E,e,t,i),y=A1(v,C,e,t,i);let I=n.prevZ,B=n.nextZ;for(;I&&I.z>=p&&B&&B.z<=y;){if(I.x>=g&&I.x<=v&&I.y>=E&&I.y<=C&&I!==r&&I!==o&&lu(a,h,l,d,A,f,I.x,I.y)&&Tn(I.prev,I,I.next)>=0||(I=I.prevZ,B.x>=g&&B.x<=v&&B.y>=E&&B.y<=C&&B!==r&&B!==o&&lu(a,h,l,d,A,f,B.x,B.y)&&Tn(B.prev,B,B.next)>=0))return!1;B=B.nextZ}for(;I&&I.z>=p;){if(I.x>=g&&I.x<=v&&I.y>=E&&I.y<=C&&I!==r&&I!==o&&lu(a,h,l,d,A,f,I.x,I.y)&&Tn(I.prev,I,I.next)>=0)return!1;I=I.prevZ}for(;B&&B.z<=y;){if(B.x>=g&&B.x<=v&&B.y>=E&&B.y<=C&&B!==r&&B!==o&&lu(a,h,l,d,A,f,B.x,B.y)&&Tn(B.prev,B,B.next)>=0)return!1;B=B.nextZ}return!0}function o5(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!mm(r,s)&&nT(r,i,i.next,s)&&Ph(r,s)&&Ph(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),Lh(i),Lh(i.next),i=n=s),i=i.next}while(i!==n);return ql(i)}function a5(n,e,t,i,r,s){let o=n;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&g5(o,a)){let l=iT(o,a);o=ql(o,o.next),l=ql(l,l.next),bh(o,e,t,i,r,s,0),bh(l,e,t,i,r,s,0);return}a=a.next}o=o.next}while(o!==n)}function l5(n,e,t,i){const r=[];let s,o,a,l,A;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){const f=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(f<=s&&f>i&&(i=f,r=t.x=t.x&&t.x>=l&&s!==t.x&&lu(or.x||t.x===r.x&&h5(r,t)))&&(r=t,h=d)),t=t.next;while(t!==a);return r}function h5(n,e){return Tn(n.prev,n,e.prev)<0&&Tn(e.next,n,n.next)<0}function d5(n,e,t,i){let r=n;do r.z===0&&(r.z=A1(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,f5(r)}function f5(n){let e,t,i,r,s,o,a,l,A=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||l>0&&i;)a!==0&&(l===0||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,A*=2}while(o>1);return n}function A1(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function p5(n){let e=n,t=n;do(e.x=(n-o)*(s-a)&&(n-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(r-o)*(i-a)}function g5(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!m5(n,e)&&(Ph(n,e)&&Ph(e,n)&&E5(n,e)&&(Tn(n.prev,n,e.prev)||Tn(n,e.prev,e))||mm(n,e)&&Tn(n.prev,n,n.next)>0&&Tn(e.prev,e,e.next)>0)}function Tn(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function mm(n,e){return n.x===e.x&&n.y===e.y}function nT(n,e,t,i){const r=ip(Tn(n,e,t)),s=ip(Tn(n,e,i)),o=ip(Tn(t,i,n)),a=ip(Tn(t,i,e));return!!(r!==s&&o!==a||r===0&&np(n,t,e)||s===0&&np(n,i,e)||o===0&&np(t,n,i)||a===0&&np(t,e,i))}function np(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function ip(n){return n>0?1:n<0?-1:0}function m5(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&nT(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function Ph(n,e){return Tn(n.prev,n,n.next)<0?Tn(n,e,n.next)>=0&&Tn(n,n.prev,e)>=0:Tn(n,e,n.prev)<0||Tn(n,n.next,e)<0}function E5(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function iT(n,e){const t=new h1(n.i,n.x,n.y),i=new h1(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function N_(n,e,t,i){const r=new h1(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Lh(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function h1(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function C5(n,e,t,i){let r=0;for(let s=e,o=t-i;s2&&n[e-1].equals(n[0])&&n.pop()}function F_(n,e){for(let t=0;tNumber.EPSILON){const Qe=Math.sqrt(Pe),je=Math.sqrt(b*b+se*se),Ve=Ee.x-_/Qe,Ze=Ee.y+$/Qe,ut=ie.x-se/je,It=ie.y+b/je,Ne=((ut-Ve)*se-(It-Ze)*b)/($*se-_*b);le=Ve+$*Ne-V.x,de=Ze+_*Ne-V.y;const Lt=le*le+de*de;if(Lt<=2)return new Be(le,de);Te=Math.sqrt(Lt/2)}else{let Qe=!1;$>Number.EPSILON?b>Number.EPSILON&&(Qe=!0):$<-Number.EPSILON?b<-Number.EPSILON&&(Qe=!0):Math.sign(_)===Math.sign(se)&&(Qe=!0),Qe?(le=-_,de=$,Te=Math.sqrt(Pe)):(le=$,de=_,Te=Math.sqrt(Pe/2))}return new Be(le/Te,de/Te)}const ee=[];for(let V=0,Ee=J.length,ie=Ee-1,le=V+1;V=0;V--){const Ee=V/C,ie=g*Math.cos(Ee*Math.PI/2),le=E*Math.sin(Ee*Math.PI/2)+v;for(let de=0,Te=J.length;de=0;){const le=ie;let de=ie-1;de<0&&(de=V.length-1);for(let Te=0,$=h+C*2;Te<$;Te++){const _=ne*Te,b=ne*(Te+1),se=Ee+le+_,Pe=Ee+de+_,De=Ee+de+b,Qe=Ee+le+b;Ie(se,Pe,De,Qe)}}}function O(V,Ee,ie){l.push(V),l.push(Ee),l.push(ie)}function me(V,Ee,ie){oe(V),oe(Ee),oe(ie);const le=r.length/3,de=y.generateTopUV(i,r,le-3,le-2,le-1);Se(de[0]),Se(de[1]),Se(de[2])}function Ie(V,Ee,ie,le){oe(V),oe(Ee),oe(le),oe(Ee),oe(ie),oe(le);const de=r.length/3,Te=y.generateSideWallUV(i,r,de-6,de-3,de-2,de-1);Se(Te[0]),Se(Te[1]),Se(Te[3]),Se(Te[1]),Se(Te[2]),Se(Te[3])}function oe(V){r.push(l[V*3+0]),r.push(l[V*3+1]),r.push(l[V*3+2])}function Se(V){s.push(V.x),s.push(V.y)}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){const e=super.toJSON(),t=this.parameters.shapes,i=this.parameters.options;return v5(t,i,e)}static fromJSON(e,t){const i=[];for(let s=0,o=e.shapes.length;s0)&&g.push(I,B,M),(p!==i-1||l0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class lT extends fi{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Ke(16777215),this.specular=new Ke(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ke(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Fa,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Xh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class cT extends fi{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Ke(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ke(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Fa,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class uT extends fi{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Fa,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class AT extends fi{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ke(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ke(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Fa,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Xh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class hT extends fi{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Ke(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Fa,this.normalScale=new Be(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class dT extends ji{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function Ll(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function fT(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function pT(n){function e(r,s){return n[r]-n[s]}const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function d1(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const a=t[s]*e;for(let l=0;l!==e;++l)r[o++]=n[a+l]}return r}function pI(n,e,t,i){let r=1,s=n[0];for(;s!==void 0&&s[i]===void 0;)s=n[r++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&&(e.push(s.time),t.push.apply(t,o)),s=n[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++];while(s!==void 0);else do o=s[i],o!==void 0&&(e.push(s.time),t.push(o)),s=n[r++];while(s!==void 0)}function x5(n,e,t,i,r=30){const s=n.clone();s.name=e;const o=[];for(let l=0;l=i)){d.push(A.times[g]);for(let v=0;vs.tracks[l].times[0]&&(a=s.tracks[l].times[0]);for(let l=0;l=a.times[E]){const p=E*d+h,y=p+d-h;v=a.values.slice(p,y)}else{const p=a.createInterpolant(),y=h,I=d-h;p.evaluate(s),v=p.resultBuffer.slice(y,I)}l==="quaternion"&&new Yn().fromArray(v).normalize().conjugate().toArray(v);const C=A.times.length;for(let p=0;p=s)){const a=t[1];e=s)break t}o=i,i=0;break n}break e}for(;i>>1;et;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){const l=i[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),e=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),e=!1;break}o=l}if(r!==void 0&&fT(r))for(let a=0,l=r.length;a!==l;++a){const A=r[a];if(isNaN(A)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,A),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===Hp,s=e.length-1;let o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*i,l=o*i,A=0;A!==i;++A)t[l+A]=t[a+A];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}ms.prototype.TimeBufferType=Float32Array;ms.prototype.ValueBufferType=Float32Array;ms.prototype.DefaultInterpolation=Bh;class tc extends ms{}tc.prototype.ValueTypeName="bool";tc.prototype.ValueBufferType=Array;tc.prototype.DefaultInterpolation=xh;tc.prototype.InterpolantFactoryMethodLinear=void 0;tc.prototype.InterpolantFactoryMethodSmooth=void 0;class mI extends ms{}mI.prototype.ValueTypeName="color";class Nh extends ms{}Nh.prototype.ValueTypeName="number";class ET extends nd{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(i-t)/(r-t);let A=e*a;for(let h=A+a;A!==h;A+=4)Yn.slerpFlat(s,0,o,A-a,o,A,l);return s}}class Fu extends ms{InterpolantFactoryMethodLinear(e){return new ET(this.times,this.values,this.getValueSize(),e)}}Fu.prototype.ValueTypeName="quaternion";Fu.prototype.DefaultInterpolation=Bh;Fu.prototype.InterpolantFactoryMethodSmooth=void 0;class nc extends ms{}nc.prototype.ValueTypeName="string";nc.prototype.ValueBufferType=Array;nc.prototype.DefaultInterpolation=xh;nc.prototype.InterpolantFactoryMethodLinear=void 0;nc.prototype.InterpolantFactoryMethodSmooth=void 0;class Uh extends ms{}Uh.prototype.ValueTypeName="vector";class Fh{constructor(e,t=-1,i,r=nm){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=Sr(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(w5(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(ms.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let a=0;a1){const d=h[1];let f=r[d];f||(r[d]=f=[]),f.push(A)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(d,f,g,E,v){if(g.length!==0){const C=[],p=[];pI(g,C,p,E),C.length!==0&&v.push(new d(f,C,p))}},r=[],s=e.name||"default",o=e.fps||30,a=e.blendMode;let l=e.length||-1;const A=e.hierarchy||[];for(let d=0;d{t&&t(s),this.manager.itemEnd(e)},0),s;if(ro[e]!==void 0){ro[e].push({onLoad:t,onProgress:i,onError:r});return}ro[e]=[],ro[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(A=>{if(A.status===200||A.status===0){if(A.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||A.body===void 0||A.body.getReader===void 0)return A;const h=ro[e],d=A.body.getReader(),f=A.headers.get("Content-Length")||A.headers.get("X-File-Size"),g=f?parseInt(f):0,E=g!==0;let v=0;const C=new ReadableStream({start(p){y();function y(){d.read().then(({done:I,value:B})=>{if(I)p.close();else{v+=B.byteLength;const R=new ProgressEvent("progress",{lengthComputable:E,loaded:v,total:g});for(let M=0,T=h.length;M{switch(l){case"arraybuffer":return A.arrayBuffer();case"blob":return A.blob();case"document":return A.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return A.json();default:if(a===void 0)return A.text();{const d=/charset="?([^;"\s]*)"?/i.exec(a),f=d&&d[1]?d[1].toLowerCase():void 0,g=new TextDecoder(f);return A.arrayBuffer().then(E=>g.decode(E))}}}).then(A=>{mo.add(e,A);const h=ro[e];delete ro[e];for(let d=0,f=h.length;d{const h=ro[e];if(h===void 0)throw this.manager.itemError(e),A;delete ro[e];for(let d=0,f=h.length;d{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class Q5 extends Ki{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Os(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{t(s.parse(JSON.parse(a)))}catch(l){r?r(l):console.error(l),s.manager.itemError(e)}},i,r)}parse(e){const t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=new Ke().setHex(o.value);break;case"v2":r.uniforms[s].value=new Be().fromArray(o.value);break;case"v3":r.uniforms[s].value=new H().fromArray(o.value);break;case"v4":r.uniforms[s].value=new un().fromArray(o.value);break;case"m3":r.uniforms[s].value=new Rt().fromArray(o.value);break;case"m4":r.uniforms[s].value=new ht().fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=i(e.map)),e.matcap!==void 0&&(r.matcap=i(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),r.normalScale=new Be().fromArray(s)}return e.displacementMap!==void 0&&(r.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=i(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new Be().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const t={ShadowMaterial:sT,SpriteMaterial:rI,RawShaderMaterial:oT,ShaderMaterial:fs,PointsMaterial:aI,MeshPhysicalMaterial:aT,MeshStandardMaterial:fI,MeshPhongMaterial:lT,MeshToonMaterial:cT,MeshNormalMaterial:uT,MeshLambertMaterial:AT,MeshDepthMaterial:om,MeshDistanceMaterial:am,MeshBasicMaterial:lr,MeshMatcapMaterial:hT,LineDashedMaterial:dT,LineBasicMaterial:ji,Material:fi};return new t[e]}}class f1{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,r=e.length;i0){const l=new EI(t);s=new kh(l),s.setCrossOrigin(this.crossOrigin);for(let A=0,h=e.length;A0){r=new kh(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;o{const C=new ri;C.min.fromArray(v.boxMin),C.max.fromArray(v.boxMax);const p=new $n;return p.radius=v.sphereRadius,p.center.fromArray(v.sphereCenter),{boxInitialized:v.boxInitialized,box:C,sphereInitialized:v.sphereInitialized,sphere:p}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=A(e.matricesTexture.uuid);break;case"LOD":o=new HR;break;case"Line":o=new Pa(a(e.geometry),l(e.material));break;case"LineLoop":o=new XR(a(e.geometry),l(e.material));break;case"LineSegments":o=new Hs(a(e.geometry),l(e.material));break;case"PointCloud":case"Points":o=new JR(a(e.geometry),l(e.material));break;case"Sprite":o=new GR(l(e.material));break;case"Group":o=new Hr;break;case"Bone":o=new sI;break;default:o=new Vt}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const f=e.children;for(let g=0;g"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=mo.get(e);if(o!==void 0){if(s.manager.itemStart(e),o.then){o.then(A=>{t&&t(A),s.manager.itemEnd(e)}).catch(A=>{r&&r(A)});return}return setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(e,a).then(function(A){return A.blob()}).then(function(A){return createImageBitmap(A,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(A){return mo.add(e,A),t&&t(A),s.manager.itemEnd(e),A}).catch(function(A){r&&r(A),mo.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});mo.add(e,l),s.manager.itemStart(e)}}let rp;class vI{static getContext(){return rp===void 0&&(rp=new(window.AudioContext||window.webkitAudioContext)),rp}static setContext(e){rp=e}}class k5 extends Ki{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Os(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(l){try{const A=l.slice(0);vI.getContext().decodeAudioData(A,function(d){t(d)}).catch(a)}catch(A){a(A)}},i,r);function a(l){r?r(l):console.error(l),s.manager.itemError(e)}}}const Y_=new ht,X_=new ht,dl=new ht;class O5{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new ni,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new ni,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,dl.copy(e.projectionMatrix);const r=t.eyeSep/2,s=r*t.near/t.focus,o=t.near*Math.tan(kl*t.fov*.5)/t.zoom;let a,l;X_.elements[12]=-r,Y_.elements[12]=r,a=-o*t.aspect+s,l=o*t.aspect+s,dl.elements[0]=2*t.near/(l-a),dl.elements[8]=(l+a)/(l-a),this.cameraL.projectionMatrix.copy(dl),a=-o*t.aspect-s,l=o*t.aspect-s,dl.elements[0]=2*t.near/(l-a),dl.elements[8]=(l+a)/(l-a),this.cameraR.projectionMatrix.copy(dl)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(X_),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(Y_)}}class II{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=J_(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=J_();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function J_(){return(typeof performance>"u"?Date:performance).now()}const fl=new H,j_=new Yn,G5=new H,pl=new H;class H5 extends Vt{constructor(){super(),this.type="AudioListener",this.context=vI.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new II}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(fl,j_,G5),pl.set(0,0,-1).applyQuaternion(j_),t.positionX){const r=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(fl.x,r),t.positionY.linearRampToValueAtTime(fl.y,r),t.positionZ.linearRampToValueAtTime(fl.z,r),t.forwardX.linearRampToValueAtTime(pl.x,r),t.forwardY.linearRampToValueAtTime(pl.y,r),t.forwardZ.linearRampToValueAtTime(pl.z,r),t.upX.linearRampToValueAtTime(i.x,r),t.upY.linearRampToValueAtTime(i.y,r),t.upZ.linearRampToValueAtTime(i.z,r)}else t.setPosition(fl.x,fl.y,fl.z),t.setOrientation(pl.x,pl.y,pl.z,i.x,i.y,i.z)}}class RT extends Vt{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let l=t,A=t+t;l!==A;++l)if(i[l]!==i[l+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let s=i,o=r;s!==o;++s)t[s]=t[r+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let o=0;o!==s;++o)e[t+o]=e[i+o]}_slerp(e,t,i,r){Yn.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,s){const o=this._workIndex*s;Yn.multiplyQuaternionsFlat(e,o,e,t,e,i),Yn.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,i,r,s){const o=1-r;for(let a=0;a!==s;++a){const l=t+a;e[l]=e[l]*o+e[i+a]*r}}_lerpAdditive(e,t,i,r,s){for(let o=0;o!==s;++o){const a=t+o;e[a]=e[a]+e[i+o]*r}}}const xI="\\[\\]\\.:\\/",Y5=new RegExp("["+xI+"]","g"),BI="[^"+xI+"]",X5="[^"+xI.replace("\\.","")+"]",J5=/((?:WC+[\/:])*)/.source.replace("WC",BI),j5=/(WCOD+)?/.source.replace("WCOD",X5),K5=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",BI),q5=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",BI),Z5=new RegExp("^"+J5+j5+K5+q5+"$"),$5=["material","materials","bones","map"];class eO{constructor(e,t,i){const r=i||Kt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class Kt{constructor(e,t,i){this.path=t,this.parsedPath=i||Kt.parseTrackName(t),this.node=Kt.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new Kt.Composite(e,t,i):new Kt(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(Y5,"")}static parseTrackName(e){const t=Z5.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=i.nodeName.substring(r+1);$5.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(s){for(let o=0;o=s){const d=s++,f=e[d];t[f.uuid]=h,e[h]=f,t[A]=d,e[d]=l;for(let g=0,E=r;g!==E;++g){const v=i[g],C=v[d],p=v[h];v[h]=C,v[d]=p}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let s=this.nCachedObjects_,o=e.length;for(let a=0,l=arguments.length;a!==l;++a){const A=arguments[a],h=A.uuid,d=t[h];if(d!==void 0)if(delete t[h],d0&&(t[g.uuid]=d),e[d]=g,e.pop();for(let E=0,v=r;E!==v;++E){const C=i[E];C[d]=C[f],C.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const s=this._bindings;if(r!==void 0)return s[r];const o=this._paths,a=this._parsedPaths,l=this._objects,A=l.length,h=this.nCachedObjects_,d=new Array(A);r=s.length,i[e]=r,o.push(e),a.push(t),s.push(d);for(let f=h,g=l.length;f!==g;++f){const E=l[f];d[f]=new Kt(E,e,t)}return d}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,l=o[a],A=e[a];t[A]=i,o[i]=l,o.pop(),s[i]=s[a],s.pop(),r[i]=r[a],r.pop()}}}class DT{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const s=t.tracks,o=s.length,a=new Array(o),l={endingStart:Dl,endingEnd:Dl};for(let A=0;A!==o;++A){const h=s[A].createInterpolant(null);a[A]=h,h.settings=l}this._interpolantSettings=l,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=hR,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const r=this._clip.duration,s=e._clip.duration,o=s/r,a=r/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,s=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const l=a.parameterPositions,A=a.sampleValues;return l[0]=s,l[1]=s+i,A[0]=e/o,A[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const l=(e-s)*i;l<0||i===0?t=0:(this._startTime=null,t=i*l)}t*=this._updateTimeScale(e);const o=this._updateTime(t),a=this._updateWeight(e);if(a>0){const l=this._interpolants,A=this._propertyBindings;switch(this.blendMode){case Yv:for(let h=0,d=l.length;h!==d;++h)l[h].evaluate(o),A[h].accumulateAdditive(a);break;case nm:default:for(let h=0,d=l.length;h!==d;++h)l[h].evaluate(o),A[h].accumulate(r,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,s=this._loopCount;const o=i===dR;if(e===0)return s===-1?r:o&&(s&1)===1?t-r:r;if(i===AR){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=t||r<0){const a=Math.floor(r/t);r-=t*a,s+=Math.abs(a);const l=this.repetitions-s;if(l<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(l===1){const A=e<0;this._setEndings(A,!A,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&(s&1)===1)return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=bl,r.endingEnd=bl):(e?r.endingStart=this.zeroSlopeAtStart?bl:Dl:r.endingStart=Sh,t?r.endingEnd=this.zeroSlopeAtEnd?bl:Dl:r.endingEnd=Sh)}_scheduleFading(e,t,i){const r=this._mixer,s=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,l=o.sampleValues;return a[0]=s,l[0]=t,a[1]=s+e,l[1]=i,this}}const nO=new Float32Array(1);class iO extends _o{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,s=r.length,o=e._propertyBindings,a=e._interpolants,l=i.uuid,A=this._bindingsByRootAndName;let h=A[l];h===void 0&&(h={},A[l]=h);for(let d=0;d!==s;++d){const f=r[d],g=f.name;let E=h[g];if(E!==void 0)++E.referenceCount,o[d]=E;else{if(E=o[d],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,l,g));continue}const v=t&&t._propertyBindings[d].binding.parsedPath;E=new TT(Kt.create(i,g,v),f.ValueTypeName,f.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,l,g),o[d]=E}a[d].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,r=e._clip.uuid,s=this._actionsByClip[r];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,r,i)}const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let A=0;A!==i;++A)t[A]._update(r,e,s,o);const a=this._bindings,l=this._nActiveBindings;for(let A=0;A!==l;++A)a[A].apply(o);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Z_).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const $_=new H,sp=new H;class PT{constructor(e=new H,t=new H){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){$_.subVectors(e,this.start),sp.subVectors(this.end,this.start);const i=sp.dot(sp);let s=sp.dot($_)/i;return t&&(s=kn(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const ew=new H;class uO extends Vt{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new Pt,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,a=1,l=32;o1)for(let d=0;d.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{sw.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(sw,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class xO extends Hs{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Pt;r.setAttribute("position",new at(t,3)),r.setAttribute("color",new at(i,3));const s=new ji({vertexColors:!0,toneMapped:!1});super(r,s),this.type="AxesHelper"}setColors(e,t,i){const r=new Ke,s=this.geometry.attributes.color.array;return r.set(e),r.toArray(s,0),r.toArray(s,3),r.set(t),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class la{constructor(){this.type="ShapePath",this.color=new Ke,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new Ma,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,s,o){return this.currentPath.bezierCurveTo(e,t,i,r,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(p){const y=[];for(let I=0,B=p.length;INumber.EPSILON){if(w<0&&(T=y[M],K=-K,U=y[R],w=-w),p.yU.y)continue;if(p.y===T.y){if(p.x===T.x)return!0}else{const P=w*(p.x-T.x)-K*(p.y-T.y);if(P===0)return!0;if(P<0)continue;B=!B}}else{if(p.y!==T.y)continue;if(U.x<=p.x&&p.x<=T.x||T.x<=p.x&&p.x<=U.x)return!0}}return B}const r=As.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,l;const A=[];if(s.length===1)return a=s[0],l=new Qa,l.curves=a.curves,A.push(l),A;let h=!r(s[0].getPoints());h=e?!h:h;const d=[],f=[];let g=[],E=0,v;f[E]=void 0,g[E]=[];for(let p=0,y=s.length;p1){let p=!1,y=0;for(let I=0,B=f.length;I0&&p===!1&&(g=d)}let C;for(let p=0,y=f.length;p{const d=typeof A=="function"?A(e):A;if(d!==e){const f=e;e=h?d:Object.assign({},e,d),t.forEach(g=>g(e,f))}},r=()=>e,s=(A,h=r,d=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let f=h(e);function g(){const E=h(e);if(!d(f,E)){const v=f;A(f=E,v)}}return t.add(g),()=>t.delete(g)},l={setState:i,getState:r,subscribe:(A,h,d)=>h||d?s(A,h,d):(t.add(A),()=>t.delete(A)),destroy:()=>t.clear()};return e=n(i,r,l),l}const uO=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),K_=uO?H.useEffect:H.useLayoutEffect;function IT(n){const e=typeof n=="function"?cO(n):n,t=(i=e.getState,r=Object.is)=>{const[,s]=H.useReducer(C=>C+1,0),o=e.getState(),a=H.useRef(o),l=H.useRef(i),A=H.useRef(r),h=H.useRef(!1),d=H.useRef();d.current===void 0&&(d.current=i(o));let f,g=!1;(a.current!==o||l.current!==i||A.current!==r||h.current)&&(f=i(o),g=!r(d.current,f)),K_(()=>{g&&(d.current=f),a.current=o,l.current=i,A.current=r,h.current=!1});const E=H.useRef(o);K_(()=>{const C=()=>{try{const y=e.getState(),I=l.current(y);A.current(d.current,I)||(a.current=y,d.current=I,s())}catch{h.current=!0,s()}},p=e.subscribe(C);return e.getState()!==E.current&&C(),p},[]);const v=g?f:d.current;return H.useDebugValue(v),v};return Object.assign(t,e),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,e];return{next(){const r=i.length<=0;return{value:i.shift(),done:r}}}},t}var xT={exports:{}},BT={exports:{}},ST={};/** + */ic.ConcurrentRoot=1;ic.ContinuousEventPriority=4;ic.DefaultEventPriority=16;ic.DiscreteEventPriority=1;ic.IdleEventPriority=536870912;ic.LegacyRoot=0;NT.exports=ic;var cu=NT.exports;function SO(n){let e;const t=new Set,i=(A,h)=>{const d=typeof A=="function"?A(e):A;if(d!==e){const f=e;e=h?d:Object.assign({},e,d),t.forEach(g=>g(e,f))}},r=()=>e,s=(A,h=r,d=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let f=h(e);function g(){const E=h(e);if(!d(f,E)){const v=f;A(f=E,v)}}return t.add(g),()=>t.delete(g)},l={setState:i,getState:r,subscribe:(A,h,d)=>h||d?s(A,h,d):(t.add(A),()=>t.delete(A)),destroy:()=>t.clear()};return e=n(i,r,l),l}const _O=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),ow=_O?k.useEffect:k.useLayoutEffect;function UT(n){const e=typeof n=="function"?SO(n):n,t=(i=e.getState,r=Object.is)=>{const[,s]=k.useReducer(C=>C+1,0),o=e.getState(),a=k.useRef(o),l=k.useRef(i),A=k.useRef(r),h=k.useRef(!1),d=k.useRef();d.current===void 0&&(d.current=i(o));let f,g=!1;(a.current!==o||l.current!==i||A.current!==r||h.current)&&(f=i(o),g=!r(d.current,f)),ow(()=>{g&&(d.current=f),a.current=o,l.current=i,A.current=r,h.current=!1});const E=k.useRef(o);ow(()=>{const C=()=>{try{const y=e.getState(),I=l.current(y);A.current(d.current,I)||(a.current=y,d.current=I,s())}catch{h.current=!0,s()}},p=e.subscribe(C);return e.getState()!==E.current&&C(),p},[]);const v=g?f:d.current;return k.useDebugValue(v),v};return Object.assign(t,e),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,e];return{next(){const r=i.length<=0;return{value:i.shift(),done:r}}}},t}var FT={exports:{}},kT={exports:{}},OT={};/** * @license React * scheduler.production.min.js * @@ -3816,7 +3816,7 @@ void main() { * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(n){function e(F,ee){var te=F.length;F.push(ee);e:for(;0>>1,ye=F[ue];if(0>>1;uer(z,te))Or(k,z)?(F[ue]=k,F[O]=te,ue=O):(F[ue]=z,F[Y]=te,ue=Y);else if(Or(k,te))F[ue]=k,F[O]=te,ue=O;else break e}}return ee}function r(F,ee){var te=F.sortIndex-ee.sortIndex;return te!==0?te:F.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var l=[],A=[],h=1,d=null,f=3,g=!1,E=!1,v=!1,C=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(F){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=F)i(A),ee.sortIndex=ee.expirationTime,e(l,ee);else break;ee=t(A)}}function B(F){if(v=!1,I(F),!E)if(t(l)!==null)E=!0,se(R);else{var ee=t(A);ee!==null&&de(B,ee.startTime-F)}}function R(F,ee){E=!1,v&&(v=!1,p(U),U=-1),g=!0;var te=f;try{for(I(ee),d=t(l);d!==null&&(!(d.expirationTime>ee)||F&&!P());){var ue=d.callback;if(typeof ue=="function"){d.callback=null,f=d.priorityLevel;var ye=ue(d.expirationTime<=ee);ee=n.unstable_now(),typeof ye=="function"?d.callback=ye:d===t(l)&&i(l),I(ee)}else i(l);d=t(l)}if(d!==null)var Oe=!0;else{var Y=t(A);Y!==null&&de(B,Y.startTime-ee),Oe=!1}return Oe}finally{d=null,f=te,g=!1}}var w=!1,T=null,U=-1,K=5,M=-1;function P(){return!(n.unstable_now()-MF||125ue?(F.sortIndex=te,e(A,F),t(l)===null&&F===t(A)&&(v?(p(U),U=-1):v=!0,de(B,te-ue))):(F.sortIndex=ye,e(l,F),E||g||(E=!0,se(R))),F},n.unstable_shouldYield=P,n.unstable_wrapCallback=function(F){var ee=f;return function(){var te=f;f=ee;try{return F.apply(this,arguments)}finally{f=te}}}})(ST);BT.exports=ST;var c1=BT.exports;/** + */(function(n){function e(F,ee){var te=F.length;F.push(ee);e:for(;0>>1,ye=F[Ae];if(0>>1;Aer(z,te))Gr(O,z)?(F[Ae]=O,F[G]=te,Ae=G):(F[Ae]=z,F[Y]=te,Ae=Y);else if(Gr(O,te))F[Ae]=O,F[G]=te,Ae=G;else break e}}return ee}function r(F,ee){var te=F.sortIndex-ee.sortIndex;return te!==0?te:F.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var l=[],A=[],h=1,d=null,f=3,g=!1,E=!1,v=!1,C=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(F){for(var ee=t(A);ee!==null;){if(ee.callback===null)i(A);else if(ee.startTime<=F)i(A),ee.sortIndex=ee.expirationTime,e(l,ee);else break;ee=t(A)}}function B(F){if(v=!1,I(F),!E)if(t(l)!==null)E=!0,ne(R);else{var ee=t(A);ee!==null&&ue(B,ee.startTime-F)}}function R(F,ee){E=!1,v&&(v=!1,p(U),U=-1),g=!0;var te=f;try{for(I(ee),d=t(l);d!==null&&(!(d.expirationTime>ee)||F&&!P());){var Ae=d.callback;if(typeof Ae=="function"){d.callback=null,f=d.priorityLevel;var ye=Ae(d.expirationTime<=ee);ee=n.unstable_now(),typeof ye=="function"?d.callback=ye:d===t(l)&&i(l),I(ee)}else i(l);d=t(l)}if(d!==null)var Oe=!0;else{var Y=t(A);Y!==null&&ue(B,Y.startTime-ee),Oe=!1}return Oe}finally{d=null,f=te,g=!1}}var M=!1,T=null,U=-1,K=5,w=-1;function P(){return!(n.unstable_now()-wF||125Ae?(F.sortIndex=te,e(A,F),t(l)===null&&F===t(A)&&(v?(p(U),U=-1):v=!0,ue(B,te-Ae))):(F.sortIndex=ye,e(l,F),E||g||(E=!0,ne(R))),F},n.unstable_shouldYield=P,n.unstable_wrapCallback=function(F){var ee=f;return function(){var te=f;f=ee;try{return F.apply(this,arguments)}finally{f=te}}}})(OT);kT.exports=OT;var g1=kT.exports;/** * @license React * react-reconciler.production.min.js * @@ -3824,19 +3824,19 @@ void main() { * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var AO=function(e){var t={},i=H,r=c1,s=Object.assign;function o(c){for(var u="https://reactjs.org/docs/error-decoder.html?invariant="+c,m=1;mle||S[X]!==Q[le]){var Re=` -`+S[X].replace(" at new "," at ");return c.displayName&&Re.includes("")&&(Re=Re.replace("",c.displayName)),Re}while(1<=X&&0<=le);break}}}finally{St=!1,Error.prepareStackTrace=m}return(c=c?c.displayName||c.name:"")?Qt(c):""}var En=Object.prototype.hasOwnProperty,Yn=[],sn=-1;function Xn(c){return{current:c}}function vt(c){0>sn||(c.current=Yn[sn],Yn[sn]=null,sn--)}function nt(c,u){sn++,Yn[sn]=c.current,c.current=u}var yi={},xt=Xn(yi),dn=Xn(!1),cr=yi;function N(c,u){var m=c.type.contextTypes;if(!m)return yi;var x=c.stateNode;if(x&&x.__reactInternalMemoizedUnmaskedChildContext===u)return x.__reactInternalMemoizedMaskedChildContext;var S={},Q;for(Q in m)S[Q]=u[Q];return x&&(c=c.stateNode,c.__reactInternalMemoizedUnmaskedChildContext=u,c.__reactInternalMemoizedMaskedChildContext=S),S}function L(c){return c=c.childContextTypes,c!=null}function Z(){vt(dn),vt(xt)}function oe(c,u,m){if(xt.current!==yi)throw Error(o(168));nt(xt,u),nt(dn,m)}function pe(c,u,m){var x=c.stateNode;if(u=u.childContextTypes,typeof x.getChildContext!="function")return m;x=x.getChildContext();for(var S in x)if(!(S in u))throw Error(o(108,U(c)||"Unknown",S));return s({},m,x)}function we(c){return c=(c=c.stateNode)&&c.__reactInternalMemoizedMergedChildContext||yi,cr=xt.current,nt(xt,c),nt(dn,dn.current),!0}function Ue(c,u,m){var x=c.stateNode;if(!x)throw Error(o(169));m?(c=pe(c,u,cr),x.__reactInternalMemoizedMergedChildContext=c,vt(dn),vt(xt),nt(xt,c)):vt(dn),nt(dn,m)}var Ne=Math.clz32?Math.clz32:tt,We=Math.log,He=Math.LN2;function tt(c){return c>>>=0,c===0?32:31-(We(c)/He|0)|0}var gt=64,Ht=4194304;function pn(c){switch(c&-c){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return c&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return c}}function Wt(c,u){var m=c.pendingLanes;if(m===0)return 0;var x=0,S=c.suspendedLanes,Q=c.pingedLanes,X=m&268435455;if(X!==0){var le=X&~S;le!==0?x=pn(le):(Q&=X,Q!==0&&(x=pn(Q)))}else X=m&~S,X!==0?x=pn(X):Q!==0&&(x=pn(Q));if(x===0)return 0;if(u!==0&&u!==x&&!(u&S)&&(S=x&-x,Q=u&-u,S>=Q||S===16&&(Q&4194240)!==0))return u;if(x&4&&(x|=m&16),u=c.entangledLanes,u!==0)for(c=c.entanglements,u&=x;0m;m++)u.push(c);return u}function Mo(c,u,m){c.pendingLanes|=u,u!==536870912&&(c.suspendedLanes=0,c.pingedLanes=0),c=c.eventTimes,u=31-Ne(u),c[u]=m}function Ad(c,u){var m=c.pendingLanes&~u;c.pendingLanes=u,c.suspendedLanes=0,c.pingedLanes=0,c.expiredLanes&=u,c.mutableReadLanes&=u,c.entangledLanes&=u,u=c.entanglements;var x=c.eventTimes;for(c=c.expirationTimes;0>=X,S-=X,Xs=1<<32-Ne(u)+S|m<en?(ci=Dt,Dt=null):ci=Dt.sibling;var tn=yt(Ce,Dt,Me[en],$e);if(tn===null){Dt===null&&(Dt=ci);break}c&&Dt&&tn.alternate===null&&u(Ce,Dt),Ae=Q(tn,Ae,en),Ft===null?dt=tn:Ft.sibling=tn,Ft=tn,Dt=ci}if(en===Me.length)return m(Ce,Dt),Bn&&Ya(Ce,en),dt;if(Dt===null){for(;enen?(ci=Dt,Dt=null):ci=Dt.sibling;var Lo=yt(Ce,Dt,tn.value,$e);if(Lo===null){Dt===null&&(Dt=ci);break}c&&Dt&&Lo.alternate===null&&u(Ce,Dt),Ae=Q(Lo,Ae,en),Ft===null?dt=Lo:Ft.sibling=Lo,Ft=Lo,Dt=ci}if(tn.done)return m(Ce,Dt),Bn&&Ya(Ce,en),dt;if(Dt===null){for(;!tn.done;en++,tn=Me.next())tn=Tt(Ce,tn.value,$e),tn!==null&&(Ae=Q(tn,Ae,en),Ft===null?dt=tn:Ft.sibling=tn,Ft=tn);return Bn&&Ya(Ce,en),dt}for(Dt=x(Ce,Dt);!tn.done;en++,tn=Me.next())tn=fn(Dt,Ce,en,tn.value,$e),tn!==null&&(c&&tn.alternate!==null&&Dt.delete(tn.key===null?en:tn.key),Ae=Q(tn,Ae,en),Ft===null?dt=tn:Ft.sibling=tn,Ft=tn);return c&&Dt.forEach(function(z3){return u(Ce,z3)}),Bn&&Ya(Ce,en),dt}function Lr(Ce,Ae,Me,$e){if(typeof Me=="object"&&Me!==null&&Me.type===h&&Me.key===null&&(Me=Me.props.children),typeof Me=="object"&&Me!==null){switch(Me.$$typeof){case l:e:{for(var dt=Me.key,Ft=Ae;Ft!==null;){if(Ft.key===dt){if(dt=Me.type,dt===h){if(Ft.tag===7){m(Ce,Ft.sibling),Ae=S(Ft,Me.props.children),Ae.return=Ce,Ce=Ae;break e}}else if(Ft.elementType===dt||typeof dt=="object"&&dt!==null&&dt.$$typeof===I&&JI(dt)===Ft.type){m(Ce,Ft.sibling),Ae=S(Ft,Me.props),Ae.ref=zu(Ce,Ft,Me),Ae.return=Ce,Ce=Ae;break e}m(Ce,Ft);break}else u(Ce,Ft);Ft=Ft.sibling}Me.type===h?(Ae=$a(Me.props.children,Ce.mode,$e,Me.key),Ae.return=Ce,Ce=Ae):($e=$d(Me.type,Me.key,Me.props,null,Ce.mode,$e),$e.ref=zu(Ce,Ae,Me),$e.return=Ce,Ce=$e)}return X(Ce);case A:e:{for(Ft=Me.key;Ae!==null;){if(Ae.key===Ft)if(Ae.tag===4&&Ae.stateNode.containerInfo===Me.containerInfo&&Ae.stateNode.implementation===Me.implementation){m(Ce,Ae.sibling),Ae=S(Ae,Me.children||[]),Ae.return=Ce,Ce=Ae;break e}else{m(Ce,Ae);break}else u(Ce,Ae);Ae=Ae.sibling}Ae=b0(Me,Ce.mode,$e),Ae.return=Ce,Ce=Ae}return X(Ce);case I:return Ft=Me._init,Lr(Ce,Ae,Ft(Me._payload),$e)}if(ce(Me))return ft(Ce,Ae,Me,$e);if(w(Me))return Bi(Ce,Ae,Me,$e);Id(Ce,Me)}return typeof Me=="string"&&Me!==""||typeof Me=="number"?(Me=""+Me,Ae!==null&&Ae.tag===6?(m(Ce,Ae.sibling),Ae=S(Ae,Me),Ae.return=Ce,Ce=Ae):(m(Ce,Ae),Ae=D0(Me,Ce.mode,$e),Ae.return=Ce,Ce=Ae),X(Ce)):m(Ce,Ae)}return Lr}var lc=jI(!0),KI=jI(!1),Vu={},Dr=Xn(Vu),Wu=Xn(Vu),cc=Xn(Vu);function vs(c){if(c===Vu)throw Error(o(174));return c}function Km(c,u){nt(cc,u),nt(Wu,c),nt(Dr,Vu),c=de(u),vt(Dr),nt(Dr,c)}function uc(){vt(Dr),vt(Wu),vt(cc)}function qI(c){var u=vs(cc.current),m=vs(Dr.current);u=F(m,c.type,u),m!==u&&(nt(Wu,c),nt(Dr,u))}function qm(c){Wu.current===c&&(vt(Dr),vt(Wu))}var Mn=Xn(0);function xd(c){for(var u=c;u!==null;){if(u.tag===13){var m=u.memoizedState;if(m!==null&&(m=m.dehydrated,m===null||za(m)||pi(m)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!==void 0){if(u.flags&128)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===c)break;for(;u.sibling===null;){if(u.return===null||u.return===c)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var Zm=[];function $m(){for(var c=0;cm?m:4,c(!0);var x=br.transition;br.transition={};try{c(!1),u()}finally{$t=m,br.transition=x}}function Ax(){return Is().memoizedState}function g3(c,u,m){var x=bo(c);m={lane:x,action:m,hasEagerState:!1,eagerState:null,next:null},hx(c)?dx(u,m):(fx(c,u,m),m=Li(),c=Pr(c,x,m),c!==null&&px(c,u,x))}function m3(c,u,m){var x=bo(c),S={lane:x,action:m,hasEagerState:!1,eagerState:null,next:null};if(hx(c))dx(u,S);else{fx(c,u,S);var Q=c.alternate;if(c.lanes===0&&(Q===null||Q.lanes===0)&&(Q=u.lastRenderedReducer,Q!==null))try{var X=u.lastRenderedState,le=Q(X,m);if(S.hasEagerState=!0,S.eagerState=le,Es(le,X))return}catch{}finally{}m=Li(),c=Pr(c,x,m),c!==null&&px(c,u,x)}}function hx(c){var u=c.alternate;return c===Pn||u!==null&&u===Pn}function dx(c,u){Yu=Sd=!0;var m=c.pending;m===null?u.next=u:(u.next=m.next,m.next=u),c.pending=u}function fx(c,u,m){Jn!==null&&c.mode&1&&!(Ot&2)?(c=u.interleaved,c===null?(m.next=m,ys===null?ys=[u]:ys.push(u)):(m.next=c.next,c.next=m),u.interleaved=m):(c=u.pending,c===null?m.next=m:(m.next=c.next,c.next=m),u.pending=m)}function px(c,u,m){if(m&4194240){var x=u.lanes;x&=c.pendingLanes,m|=x,u.lanes=m,bm(c,m)}}var Rd={readContext:Qr,useCallback:Ii,useContext:Ii,useEffect:Ii,useImperativeHandle:Ii,useInsertionEffect:Ii,useLayoutEffect:Ii,useMemo:Ii,useReducer:Ii,useRef:Ii,useState:Ii,useDebugValue:Ii,useDeferredValue:Ii,useTransition:Ii,useMutableSource:Ii,useSyncExternalStore:Ii,useId:Ii,unstable_isNewReconciler:!1},E3={readContext:Qr,useCallback:function(c,u){return js().memoizedState=[c,u===void 0?null:u],c},useContext:Qr,useEffect:r0,useImperativeHandle:function(c,u,m){return m=m!=null?m.concat([c]):null,Md(4194308,4,ax.bind(null,u,c),m)},useLayoutEffect:function(c,u){return Md(4194308,4,c,u)},useInsertionEffect:function(c,u){return Md(4,2,c,u)},useMemo:function(c,u){var m=js();return u=u===void 0?null:u,c=c(),m.memoizedState=[c,u],c},useReducer:function(c,u,m){var x=js();return u=m!==void 0?m(u):u,x.memoizedState=x.baseState=u,c={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:c,lastRenderedState:u},x.queue=c,c=c.dispatch=g3.bind(null,Pn,c),[x.memoizedState,c]},useRef:function(c){var u=js();return c={current:c},u.memoizedState=c},useState:i0,useDebugValue:s0,useDeferredValue:function(c){var u=i0(c),m=u[0],x=u[1];return r0(function(){var S=br.transition;br.transition={};try{x(c)}finally{br.transition=S}},[c]),m},useTransition:function(){var c=i0(!1),u=c[0];return c=p3.bind(null,c[1]),js().memoizedState=c,[u,c]},useMutableSource:function(){},useSyncExternalStore:function(c,u,m){var x=Pn,S=js();if(Bn){if(m===void 0)throw Error(o(407));m=m()}else{if(m=u(),Jn===null)throw Error(o(349));Ac&30||ex(x,u,m)}S.memoizedState=m;var Q={value:m,getSnapshot:u};return S.queue=Q,r0(nx.bind(null,x,Q,c),[c]),x.flags|=2048,Ju(9,tx.bind(null,x,Q,m,u),void 0,null),m},useId:function(){var c=js(),u=Jn.identifierPrefix;if(Bn){var m=Js,x=Xs;m=(x&~(1<<32-Ne(x)-1)).toString(32)+m,u=":"+u+"R"+m,m=Xu++,0ce||S[X]!==Q[ce]){var Re=` +`+S[X].replace(" at new "," at ");return c.displayName&&Re.includes("")&&(Re=Re.replace("",c.displayName)),Re}while(1<=X&&0<=ce);break}}}finally{St=!1,Error.prepareStackTrace=m}return(c=c?c.displayName||c.name:"")?Qt(c):""}var Cn=Object.prototype.hasOwnProperty,Xn=[],an=-1;function Jn(c){return{current:c}}function vt(c){0>an||(c.current=Xn[an],Xn[an]=null,an--)}function nt(c,u){an++,Xn[an]=c.current,c.current=u}var Ii={},xt=Jn(Ii),dn=Jn(!1),ur=Ii;function L(c,u){var m=c.type.contextTypes;if(!m)return Ii;var x=c.stateNode;if(x&&x.__reactInternalMemoizedUnmaskedChildContext===u)return x.__reactInternalMemoizedMaskedChildContext;var S={},Q;for(Q in m)S[Q]=u[Q];return x&&(c=c.stateNode,c.__reactInternalMemoizedUnmaskedChildContext=u,c.__reactInternalMemoizedMaskedChildContext=S),S}function N(c){return c=c.childContextTypes,c!=null}function Z(){vt(dn),vt(xt)}function ae(c,u,m){if(xt.current!==Ii)throw Error(o(168));nt(xt,u),nt(dn,m)}function ge(c,u,m){var x=c.stateNode;if(u=u.childContextTypes,typeof x.getChildContext!="function")return m;x=x.getChildContext();for(var S in x)if(!(S in u))throw Error(o(108,U(c)||"Unknown",S));return s({},m,x)}function we(c){return c=(c=c.stateNode)&&c.__reactInternalMemoizedMergedChildContext||Ii,ur=xt.current,nt(xt,c),nt(dn,dn.current),!0}function Ue(c,u,m){var x=c.stateNode;if(!x)throw Error(o(169));m?(c=ge(c,u,ur),x.__reactInternalMemoizedMergedChildContext=c,vt(dn),vt(xt),nt(xt,c)):vt(dn),nt(dn,m)}var Le=Math.clz32?Math.clz32:tt,We=Math.log,He=Math.LN2;function tt(c){return c>>>=0,c===0?32:31-(We(c)/He|0)|0}var gt=64,zt=4194304;function pn(c){switch(c&-c){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return c&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return c}}function Yt(c,u){var m=c.pendingLanes;if(m===0)return 0;var x=0,S=c.suspendedLanes,Q=c.pingedLanes,X=m&268435455;if(X!==0){var ce=X&~S;ce!==0?x=pn(ce):(Q&=X,Q!==0&&(x=pn(Q)))}else X=m&~S,X!==0?x=pn(X):Q!==0&&(x=pn(Q));if(x===0)return 0;if(u!==0&&u!==x&&!(u&S)&&(S=x&-x,Q=u&-u,S>=Q||S===16&&(Q&4194240)!==0))return u;if(x&4&&(x|=m&16),u=c.entangledLanes,u!==0)for(c=c.entanglements,u&=x;0m;m++)u.push(c);return u}function Ho(c,u,m){c.pendingLanes|=u,u!==536870912&&(c.suspendedLanes=0,c.pingedLanes=0),c=c.eventTimes,u=31-Le(u),c[u]=m}function hd(c,u){var m=c.pendingLanes&~u;c.pendingLanes=u,c.suspendedLanes=0,c.pingedLanes=0,c.expiredLanes&=u,c.mutableReadLanes&=u,c.entangledLanes&=u,u=c.entanglements;var x=c.eventTimes;for(c=c.expirationTimes;0>=X,S-=X,js=1<<32-Le(u)+S|m<nn?(ci=Dt,Dt=null):ci=Dt.sibling;var rn=yt(Ce,Dt,Me[nn],$e);if(rn===null){Dt===null&&(Dt=ci);break}c&&Dt&&rn.alternate===null&&u(Ce,Dt),he=Q(rn,he,nn),Ft===null?dt=rn:Ft.sibling=rn,Ft=rn,Dt=ci}if(nn===Me.length)return m(Ce,Dt),Sn&&el(Ce,nn),dt;if(Dt===null){for(;nnnn?(ci=Dt,Dt=null):ci=Dt.sibling;var Ko=yt(Ce,Dt,rn.value,$e);if(Ko===null){Dt===null&&(Dt=ci);break}c&&Dt&&Ko.alternate===null&&u(Ce,Dt),he=Q(Ko,he,nn),Ft===null?dt=Ko:Ft.sibling=Ko,Ft=Ko,Dt=ci}if(rn.done)return m(Ce,Dt),Sn&&el(Ce,nn),dt;if(Dt===null){for(;!rn.done;nn++,rn=Me.next())rn=Tt(Ce,rn.value,$e),rn!==null&&(he=Q(rn,he,nn),Ft===null?dt=rn:Ft.sibling=rn,Ft=rn);return Sn&&el(Ce,nn),dt}for(Dt=x(Ce,Dt);!rn.done;nn++,rn=Me.next())rn=fn(Dt,Ce,nn,rn.value,$e),rn!==null&&(c&&rn.alternate!==null&&Dt.delete(rn.key===null?nn:rn.key),he=Q(rn,he,nn),Ft===null?dt=rn:Ft.sibling=rn,Ft=rn);return c&&Dt.forEach(function(sb){return u(Ce,sb)}),Sn&&el(Ce,nn),dt}function Nr(Ce,he,Me,$e){if(typeof Me=="object"&&Me!==null&&Me.type===h&&Me.key===null&&(Me=Me.props.children),typeof Me=="object"&&Me!==null){switch(Me.$$typeof){case l:e:{for(var dt=Me.key,Ft=he;Ft!==null;){if(Ft.key===dt){if(dt=Me.type,dt===h){if(Ft.tag===7){m(Ce,Ft.sibling),he=S(Ft,Me.props.children),he.return=Ce,Ce=he;break e}}else if(Ft.elementType===dt||typeof dt=="object"&&dt!==null&&dt.$$typeof===I&&rx(dt)===Ft.type){m(Ce,Ft.sibling),he=S(Ft,Me.props),he.ref=Yu(Ce,Ft,Me),he.return=Ce,Ce=he;break e}m(Ce,Ft);break}else u(Ce,Ft);Ft=Ft.sibling}Me.type===h?(he=al(Me.props.children,Ce.mode,$e,Me.key),he.return=Ce,Ce=he):($e=ef(Me.type,Me.key,Me.props,null,Ce.mode,$e),$e.ref=Yu(Ce,he,Me),$e.return=Ce,Ce=$e)}return X(Ce);case A:e:{for(Ft=Me.key;he!==null;){if(he.key===Ft)if(he.tag===4&&he.stateNode.containerInfo===Me.containerInfo&&he.stateNode.implementation===Me.implementation){m(Ce,he.sibling),he=S(he,Me.children||[]),he.return=Ce,Ce=he;break e}else{m(Ce,he);break}else u(Ce,he);he=he.sibling}he=U0(Me,Ce.mode,$e),he.return=Ce,Ce=he}return X(Ce);case I:return Ft=Me._init,Nr(Ce,he,Ft(Me._payload),$e)}if(re(Me))return ft(Ce,he,Me,$e);if(M(Me))return _i(Ce,he,Me,$e);xd(Ce,Me)}return typeof Me=="string"&&Me!==""||typeof Me=="number"?(Me=""+Me,he!==null&&he.tag===6?(m(Ce,he.sibling),he=S(he,Me),he.return=Ce,Ce=he):(m(Ce,he),he=N0(Me,Ce.mode,$e),he.return=Ce,Ce=he),X(Ce)):m(Ce,he)}return Nr}var Ac=sx(!0),ox=sx(!1),Xu={},Dr=Jn(Xu),Ju=Jn(Xu),hc=Jn(Xu);function xs(c){if(c===Xu)throw Error(o(174));return c}function e0(c,u){nt(hc,u),nt(Ju,c),nt(Dr,Xu),c=ue(u),vt(Dr),nt(Dr,c)}function dc(){vt(Dr),vt(Ju),vt(hc)}function ax(c){var u=xs(hc.current),m=xs(Dr.current);u=F(m,c.type,u),m!==u&&(nt(Ju,c),nt(Dr,u))}function t0(c){Ju.current===c&&(vt(Dr),vt(Ju))}var Qn=Jn(0);function Bd(c){for(var u=c;u!==null;){if(u.tag===13){var m=u.memoizedState;if(m!==null&&(m=m.dehydrated,m===null||qa(m)||gi(m)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!==void 0){if(u.flags&128)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===c)break;for(;u.sibling===null;){if(u.return===null||u.return===c)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var n0=[];function i0(){for(var c=0;cm?m:4,c(!0);var x=br.transition;br.transition={};try{c(!1),u()}finally{tn=m,br.transition=x}}function vx(){return Bs().memoizedState}function D3(c,u,m){var x=Xo(c);m={lane:x,action:m,hasEagerState:!1,eagerState:null,next:null},Ix(c)?xx(u,m):(Bx(c,u,m),m=Fi(),c=Pr(c,x,m),c!==null&&Sx(c,u,x))}function b3(c,u,m){var x=Xo(c),S={lane:x,action:m,hasEagerState:!1,eagerState:null,next:null};if(Ix(c))xx(u,S);else{Bx(c,u,S);var Q=c.alternate;if(c.lanes===0&&(Q===null||Q.lanes===0)&&(Q=u.lastRenderedReducer,Q!==null))try{var X=u.lastRenderedState,ce=Q(X,m);if(S.hasEagerState=!0,S.eagerState=ce,ys(ce,X))return}catch{}finally{}m=Fi(),c=Pr(c,x,m),c!==null&&Sx(c,u,x)}}function Ix(c){var u=c.alternate;return c===Nn||u!==null&&u===Nn}function xx(c,u){ju=_d=!0;var m=c.pending;m===null?u.next=u:(u.next=m.next,m.next=u),c.pending=u}function Bx(c,u,m){jn!==null&&c.mode&1&&!(Ot&2)?(c=u.interleaved,c===null?(m.next=m,Is===null?Is=[u]:Is.push(u)):(m.next=c.next,c.next=m),u.interleaved=m):(c=u.pending,c===null?m.next=m:(m.next=c.next,c.next=m),u.pending=m)}function Sx(c,u,m){if(m&4194240){var x=u.lanes;x&=c.pendingLanes,m|=x,u.lanes=m,Um(c,m)}}var Td={readContext:Qr,useCallback:Bi,useContext:Bi,useEffect:Bi,useImperativeHandle:Bi,useInsertionEffect:Bi,useLayoutEffect:Bi,useMemo:Bi,useReducer:Bi,useRef:Bi,useState:Bi,useDebugValue:Bi,useDeferredValue:Bi,useTransition:Bi,useMutableSource:Bi,useSyncExternalStore:Bi,useId:Bi,unstable_isNewReconciler:!1},P3={readContext:Qr,useCallback:function(c,u){return qs().memoizedState=[c,u===void 0?null:u],c},useContext:Qr,useEffect:l0,useImperativeHandle:function(c,u,m){return m=m!=null?m.concat([c]):null,Qd(4194308,4,mx.bind(null,u,c),m)},useLayoutEffect:function(c,u){return Qd(4194308,4,c,u)},useInsertionEffect:function(c,u){return Qd(4,2,c,u)},useMemo:function(c,u){var m=qs();return u=u===void 0?null:u,c=c(),m.memoizedState=[c,u],c},useReducer:function(c,u,m){var x=qs();return u=m!==void 0?m(u):u,x.memoizedState=x.baseState=u,c={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:c,lastRenderedState:u},x.queue=c,c=c.dispatch=D3.bind(null,Nn,c),[x.memoizedState,c]},useRef:function(c){var u=qs();return c={current:c},u.memoizedState=c},useState:a0,useDebugValue:c0,useDeferredValue:function(c){var u=a0(c),m=u[0],x=u[1];return l0(function(){var S=br.transition;br.transition={};try{x(c)}finally{br.transition=S}},[c]),m},useTransition:function(){var c=a0(!1),u=c[0];return c=T3.bind(null,c[1]),qs().memoizedState=c,[u,c]},useMutableSource:function(){},useSyncExternalStore:function(c,u,m){var x=Nn,S=qs();if(Sn){if(m===void 0)throw Error(o(407));m=m()}else{if(m=u(),jn===null)throw Error(o(349));fc&30||ux(x,u,m)}S.memoizedState=m;var Q={value:m,getSnapshot:u};return S.queue=Q,l0(hx.bind(null,x,Q,c),[c]),x.flags|=2048,qu(9,Ax.bind(null,x,Q,m,u),void 0,null),m},useId:function(){var c=qs(),u=jn.identifierPrefix;if(Sn){var m=Ks,x=js;m=(x&~(1<<32-Le(x)-1)).toString(32)+m,u=":"+u+"R"+m,m=Ku++,0B0&&(u.flags|=128,x=!0,Zu(S,!1),u.lanes=4194304)}else{if(!x)if(c=xd(Q),c!==null){if(u.flags|=128,x=!0,c=c.updateQueue,c!==null&&(u.updateQueue=c,u.flags|=4),Zu(S,!0),S.tail===null&&S.tailMode==="hidden"&&!Q.alternate&&!Bn)return xi(u),null}else 2*ai()-S.renderingStartTime>B0&&m!==1073741824&&(u.flags|=128,x=!0,Zu(S,!1),u.lanes=4194304);S.isBackwards?(Q.sibling=u.child,u.child=Q):(c=S.last,c!==null?c.sibling=Q:u.child=Q,S.last=Q)}return S.tail!==null?(u=S.tail,S.rendering=u,S.tail=u.sibling,S.renderingStartTime=ai(),u.sibling=null,c=Mn.current,nt(Mn,x?c&1|2:c&1),u):(xi(u),null);case 22:case 23:return Q0(),x=u.memoizedState!==null,c!==null&&c.memoizedState!==null!==x&&(u.flags|=8192),x&&u.mode&1?pr&1073741824&&(xi(u),Be&&u.subtreeFlags&6&&(u.flags|=8192)):xi(u),null;case 24:return null;case 25:return null}throw Error(o(156,u.tag))}var x3=a.ReactCurrentOwner,fr=!1;function Ni(c,u,m,x){u.child=c===null?KI(u,null,m,x):lc(u,c.child,m,x)}function xx(c,u,m,x,S){m=m.render;var Q=u.ref;return rc(u,S),x=t0(c,u,m,x,Q,S),m=n0(),c!==null&&!fr?(u.updateQueue=c.updateQueue,u.flags&=-2053,c.lanes&=~S,Ks(c,u,S)):(Bn&&m&&Wm(u),u.flags|=1,Ni(c,u,x,S),u.child)}function Bx(c,u,m,x,S){if(c===null){var Q=m.type;return typeof Q=="function"&&!T0(Q)&&Q.defaultProps===void 0&&m.compare===null&&m.defaultProps===void 0?(u.tag=15,u.type=Q,Sx(c,u,Q,x,S)):(c=$d(m.type,null,x,u,u.mode,S),c.ref=u.ref,c.return=u,u.child=c)}if(Q=c.child,!(c.lanes&S)){var X=Q.memoizedProps;if(m=m.compare,m=m!==null?m:fd,m(X,x)&&c.ref===u.ref)return Ks(c,u,S)}return u.flags|=1,c=No(Q,x),c.ref=u.ref,c.return=u,u.child=c}function Sx(c,u,m,x,S){if(c!==null&&fd(c.memoizedProps,x)&&c.ref===u.ref)if(fr=!1,(c.lanes&S)!==0)c.flags&131072&&(fr=!0);else return u.lanes=c.lanes,Ks(c,u,S);return l0(c,u,m,x,S)}function _x(c,u,m){var x=u.pendingProps,S=x.children,Q=c!==null?c.memoizedState:null;if(x.mode==="hidden")if(!(u.mode&1))u.memoizedState={baseLanes:0,cachePool:null},nt(hc,pr),pr|=m;else if(m&1073741824)u.memoizedState={baseLanes:0,cachePool:null},x=Q!==null?Q.baseLanes:m,nt(hc,pr),pr|=x;else return c=Q!==null?Q.baseLanes|m:m,u.lanes=u.childLanes=1073741824,u.memoizedState={baseLanes:c,cachePool:null},u.updateQueue=null,nt(hc,pr),pr|=c,null;else Q!==null?(x=Q.baseLanes|m,u.memoizedState=null):x=m,nt(hc,pr),pr|=x;return Ni(c,u,S,m),u.child}function wx(c,u){var m=u.ref;(c===null&&m!==null||c!==null&&c.ref!==m)&&(u.flags|=512,u.flags|=2097152)}function l0(c,u,m,x,S){var Q=L(m)?cr:xt.current;return Q=N(u,Q),rc(u,S),m=t0(c,u,m,x,Q,S),x=n0(),c!==null&&!fr?(u.updateQueue=c.updateQueue,u.flags&=-2053,c.lanes&=~S,Ks(c,u,S)):(Bn&&x&&Wm(u),u.flags|=1,Ni(c,u,m,S),u.child)}function Mx(c,u,m,x,S){if(L(m)){var Q=!0;we(u)}else Q=!1;if(rc(u,S),u.stateNode===null)c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),HI(u,m,x),Vm(u,m,x,S),x=!0;else if(c===null){var X=u.stateNode,le=u.memoizedProps;X.props=le;var Re=X.context,ze=m.contextType;typeof ze=="object"&&ze!==null?ze=Qr(ze):(ze=L(m)?cr:xt.current,ze=N(u,ze));var ot=m.getDerivedStateFromProps,Tt=typeof ot=="function"||typeof X.getSnapshotBeforeUpdate=="function";Tt||typeof X.UNSAFE_componentWillReceiveProps!="function"&&typeof X.componentWillReceiveProps!="function"||(le!==x||Re!==ze)&&zI(u,X,x,ze),Qo=!1;var yt=u.memoizedState;X.state=yt,Ed(u,x,X,S),Re=u.memoizedState,le!==x||yt!==Re||dn.current||Qo?(typeof ot=="function"&&(zm(u,m,ot,x),Re=u.memoizedState),(le=Qo||GI(u,m,le,x,yt,Re,ze))?(Tt||typeof X.UNSAFE_componentWillMount!="function"&&typeof X.componentWillMount!="function"||(typeof X.componentWillMount=="function"&&X.componentWillMount(),typeof X.UNSAFE_componentWillMount=="function"&&X.UNSAFE_componentWillMount()),typeof X.componentDidMount=="function"&&(u.flags|=4194308)):(typeof X.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=x,u.memoizedState=Re),X.props=x,X.state=Re,X.context=ze,x=le):(typeof X.componentDidMount=="function"&&(u.flags|=4194308),x=!1)}else{X=u.stateNode,UI(c,u),le=u.memoizedProps,ze=u.type===u.elementType?le:Kr(u.type,le),X.props=ze,Tt=u.pendingProps,yt=X.context,Re=m.contextType,typeof Re=="object"&&Re!==null?Re=Qr(Re):(Re=L(m)?cr:xt.current,Re=N(u,Re));var fn=m.getDerivedStateFromProps;(ot=typeof fn=="function"||typeof X.getSnapshotBeforeUpdate=="function")||typeof X.UNSAFE_componentWillReceiveProps!="function"&&typeof X.componentWillReceiveProps!="function"||(le!==Tt||yt!==Re)&&zI(u,X,x,Re),Qo=!1,yt=u.memoizedState,X.state=yt,Ed(u,x,X,S);var ft=u.memoizedState;le!==Tt||yt!==ft||dn.current||Qo?(typeof fn=="function"&&(zm(u,m,fn,x),ft=u.memoizedState),(ze=Qo||GI(u,m,ze,x,yt,ft,Re)||!1)?(ot||typeof X.UNSAFE_componentWillUpdate!="function"&&typeof X.componentWillUpdate!="function"||(typeof X.componentWillUpdate=="function"&&X.componentWillUpdate(x,ft,Re),typeof X.UNSAFE_componentWillUpdate=="function"&&X.UNSAFE_componentWillUpdate(x,ft,Re)),typeof X.componentDidUpdate=="function"&&(u.flags|=4),typeof X.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof X.componentDidUpdate!="function"||le===c.memoizedProps&&yt===c.memoizedState||(u.flags|=4),typeof X.getSnapshotBeforeUpdate!="function"||le===c.memoizedProps&&yt===c.memoizedState||(u.flags|=1024),u.memoizedProps=x,u.memoizedState=ft),X.props=x,X.state=ft,X.context=Re,x=ze):(typeof X.componentDidUpdate!="function"||le===c.memoizedProps&&yt===c.memoizedState||(u.flags|=4),typeof X.getSnapshotBeforeUpdate!="function"||le===c.memoizedProps&&yt===c.memoizedState||(u.flags|=1024),x=!1)}return c0(c,u,m,x,Q,S)}function c0(c,u,m,x,S,Q){wx(c,u);var X=(u.flags&128)!==0;if(!x&&!X)return S&&Ue(u,m,!1),Ks(c,u,Q);x=u.stateNode,x3.current=u;var le=X&&typeof m.getDerivedStateFromError!="function"?null:x.render();return u.flags|=1,c!==null&&X?(u.child=lc(u,c.child,null,Q),u.child=lc(u,null,le,Q)):Ni(c,u,le,Q),u.memoizedState=x.state,S&&Ue(u,m,!0),u.child}function Qx(c){var u=c.stateNode;u.pendingContext?oe(c,u.pendingContext,u.pendingContext!==u.context):u.context&&oe(c,u.context,!1),Km(c,u.containerInfo)}function Rx(c,u,m,x,S){return ac(),jm(S),u.flags|=256,Ni(c,u,m,x),u.child}var bd={dehydrated:null,treeContext:null,retryLane:0};function Pd(c){return{baseLanes:c,cachePool:null}}function Tx(c,u,m){var x=u.pendingProps,S=Mn.current,Q=!1,X=(u.flags&128)!==0,le;if((le=X)||(le=c!==null&&c.memoizedState===null?!1:(S&2)!==0),le?(Q=!0,u.flags&=-129):(c===null||c.memoizedState!==null)&&(S|=1),nt(Mn,S&1),c===null)return Jm(u),c=u.memoizedState,c!==null&&(c=c.dehydrated,c!==null)?(u.mode&1?pi(c)?u.lanes=8:u.lanes=1073741824:u.lanes=1,null):(S=x.children,c=x.fallback,Q?(x=u.mode,Q=u.child,S={mode:"hidden",children:S},!(x&1)&&Q!==null?(Q.childLanes=0,Q.pendingProps=S):Q=ef(S,x,0,null),c=$a(c,x,m,null),Q.return=u,c.return=u,Q.sibling=c,u.child=Q,u.child.memoizedState=Pd(m),u.memoizedState=bd,c):u0(u,S));if(S=c.memoizedState,S!==null){if(le=S.dehydrated,le!==null){if(X)return u.flags&256?(u.flags&=-257,Nd(c,u,m,Error(o(422)))):u.memoizedState!==null?(u.child=c.child,u.flags|=128,null):(Q=x.fallback,S=u.mode,x=ef({mode:"visible",children:x.children},S,0,null),Q=$a(Q,S,m,null),Q.flags|=2,x.return=u,Q.return=u,x.sibling=Q,u.child=x,u.mode&1&&lc(u,c.child,null,m),u.child.memoizedState=Pd(m),u.memoizedState=bd,Q);if(!(u.mode&1))u=Nd(c,u,m,null);else if(pi(le))u=Nd(c,u,m,Error(o(419)));else if(x=(m&c.childLanes)!==0,fr||x){if(x=Jn,x!==null){switch(m&-m){case 4:Q=2;break;case 16:Q=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:Q=32;break;case 536870912:Q=268435456;break;default:Q=0}x=Q&(x.suspendedLanes|m)?0:Q,x!==0&&x!==S.retryLane&&(S.retryLane=x,Pr(c,x,-1))}R0(),u=Nd(c,u,m,Error(o(421)))}else za(le)?(u.flags|=128,u.child=c.child,u=L3.bind(null,c),zs(le,u),u=null):(m=S.treeContext,Ee&&(dr=wo(le),hr=u,Bn=!0,qr=null,Gu=!1,m!==null&&(Rr[Tr++]=Xs,Rr[Tr++]=Js,Rr[Tr++]=Wa,Xs=m.id,Js=m.overflow,Wa=u)),u=u0(u,u.pendingProps.children),u.flags|=4096);return u}return Q?(x=bx(c,u,x.children,x.fallback,m),Q=u.child,S=c.child.memoizedState,Q.memoizedState=S===null?Pd(m):{baseLanes:S.baseLanes|m,cachePool:null},Q.childLanes=c.childLanes&~m,u.memoizedState=bd,x):(m=Dx(c,u,x.children,m),u.memoizedState=null,m)}return Q?(x=bx(c,u,x.children,x.fallback,m),Q=u.child,S=c.child.memoizedState,Q.memoizedState=S===null?Pd(m):{baseLanes:S.baseLanes|m,cachePool:null},Q.childLanes=c.childLanes&~m,u.memoizedState=bd,x):(m=Dx(c,u,x.children,m),u.memoizedState=null,m)}function u0(c,u){return u=ef({mode:"visible",children:u},c.mode,0,null),u.return=c,c.child=u}function Dx(c,u,m,x){var S=c.child;return c=S.sibling,m=No(S,{mode:"visible",children:m}),!(u.mode&1)&&(m.lanes=x),m.return=u,m.sibling=null,c!==null&&(x=u.deletions,x===null?(u.deletions=[c],u.flags|=16):x.push(c)),u.child=m}function bx(c,u,m,x,S){var Q=u.mode;c=c.child;var X=c.sibling,le={mode:"hidden",children:m};return!(Q&1)&&u.child!==c?(m=u.child,m.childLanes=0,m.pendingProps=le,u.deletions=null):(m=No(c,le),m.subtreeFlags=c.subtreeFlags&14680064),X!==null?x=No(X,x):(x=$a(x,Q,S,null),x.flags|=2),x.return=u,m.return=u,m.sibling=x,u.child=m,x}function Nd(c,u,m,x){return x!==null&&jm(x),lc(u,c.child,null,m),c=u0(u,u.pendingProps.children),c.flags|=2,u.memoizedState=null,c}function Px(c,u,m){c.lanes|=u;var x=c.alternate;x!==null&&(x.lanes|=u),Gm(c.return,u,m)}function A0(c,u,m,x,S){var Q=c.memoizedState;Q===null?c.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:x,tail:m,tailMode:S}:(Q.isBackwards=u,Q.rendering=null,Q.renderingStartTime=0,Q.last=x,Q.tail=m,Q.tailMode=S)}function Nx(c,u,m){var x=u.pendingProps,S=x.revealOrder,Q=x.tail;if(Ni(c,u,x.children,m),x=Mn.current,x&2)x=x&1|2,u.flags|=128;else{if(c!==null&&c.flags&128)e:for(c=u.child;c!==null;){if(c.tag===13)c.memoizedState!==null&&Px(c,m,u);else if(c.tag===19)Px(c,m,u);else if(c.child!==null){c.child.return=c,c=c.child;continue}if(c===u)break e;for(;c.sibling===null;){if(c.return===null||c.return===u)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}x&=1}if(nt(Mn,x),!(u.mode&1))u.memoizedState=null;else switch(S){case"forwards":for(m=u.child,S=null;m!==null;)c=m.alternate,c!==null&&xd(c)===null&&(S=m),m=m.sibling;m=S,m===null?(S=u.child,u.child=null):(S=m.sibling,m.sibling=null),A0(u,!1,S,m,Q);break;case"backwards":for(m=null,S=u.child,u.child=null;S!==null;){if(c=S.alternate,c!==null&&xd(c)===null){u.child=S;break}c=S.sibling,S.sibling=m,m=S,S=c}A0(u,!0,m,null,Q);break;case"together":A0(u,!1,null,null,void 0);break;default:u.memoizedState=null}return u.child}function Ks(c,u,m){if(c!==null&&(u.dependencies=c.dependencies),dc|=u.lanes,!(m&u.childLanes))return null;if(c!==null&&u.child!==c.child)throw Error(o(153));if(u.child!==null){for(c=u.child,m=No(c,c.pendingProps),u.child=m,m.return=u;c.sibling!==null;)c=c.sibling,m=m.sibling=No(c,c.pendingProps),m.return=u;m.sibling=null}return u.child}function B3(c,u,m){switch(u.tag){case 3:Qx(u),ac();break;case 5:qI(u);break;case 1:L(u.type)&&we(u);break;case 4:Km(u,u.stateNode.containerInfo);break;case 10:LI(u,u.type._context,u.memoizedProps.value);break;case 13:var x=u.memoizedState;if(x!==null)return x.dehydrated!==null?(nt(Mn,Mn.current&1),u.flags|=128,null):m&u.child.childLanes?Tx(c,u,m):(nt(Mn,Mn.current&1),c=Ks(c,u,m),c!==null?c.sibling:null);nt(Mn,Mn.current&1);break;case 19:if(x=(m&u.childLanes)!==0,c.flags&128){if(x)return Nx(c,u,m);u.flags|=128}var S=u.memoizedState;if(S!==null&&(S.rendering=null,S.tail=null,S.lastEffect=null),nt(Mn,Mn.current),x)break;return null;case 22:case 23:return u.lanes=0,_x(c,u,m)}return Ks(c,u,m)}function S3(c,u){switch(Ym(u),u.tag){case 1:return L(u.type)&&Z(),c=u.flags,c&65536?(u.flags=c&-65537|128,u):null;case 3:return uc(),vt(dn),vt(xt),$m(),c=u.flags,c&65536&&!(c&128)?(u.flags=c&-65537|128,u):null;case 5:return qm(u),null;case 13:if(vt(Mn),c=u.memoizedState,c!==null&&c.dehydrated!==null){if(u.alternate===null)throw Error(o(340));ac()}return c=u.flags,c&65536?(u.flags=c&-65537|128,u):null;case 19:return vt(Mn),null;case 4:return uc(),null;case 10:return Om(u.type._context),null;case 22:case 23:return Q0(),null;case 24:return null;default:return null}}var Ld=!1,Ja=!1,_3=typeof WeakSet=="function"?WeakSet:Set,Ke=null;function Ud(c,u){var m=c.ref;if(m!==null)if(typeof m=="function")try{m(null)}catch(x){er(c,u,x)}else m.current=null}function h0(c,u,m){try{m()}catch(x){er(c,u,x)}}var Lx=!1;function w3(c,u){for(ee(c.containerInfo),Ke=u;Ke!==null;)if(c=Ke,u=c.child,(c.subtreeFlags&1028)!==0&&u!==null)u.return=c,Ke=u;else for(;Ke!==null;){c=Ke;try{var m=c.alternate;if(c.flags&1024)switch(c.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var x=m.memoizedProps,S=m.memoizedState,Q=c.stateNode,X=Q.getSnapshotBeforeUpdate(c.elementType===c.type?x:Kr(c.type,x),S);Q.__reactInternalSnapshotBeforeUpdate=X}break;case 3:Be&&Ge(c.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(le){er(c,c.return,le)}if(u=c.sibling,u!==null){u.return=c.return,Ke=u;break}Ke=c.return}return m=Lx,Lx=!1,m}function ja(c,u,m){var x=u.updateQueue;if(x=x!==null?x.lastEffect:null,x!==null){var S=x=x.next;do{if((S.tag&c)===c){var Q=S.destroy;S.destroy=void 0,Q!==void 0&&h0(u,m,Q)}S=S.next}while(S!==x)}}function $u(c,u){if(u=u.updateQueue,u=u!==null?u.lastEffect:null,u!==null){var m=u=u.next;do{if((m.tag&c)===c){var x=m.create;m.destroy=x()}m=m.next}while(m!==u)}}function d0(c){var u=c.ref;if(u!==null){var m=c.stateNode;switch(c.tag){case 5:c=se(m);break;default:c=m}typeof u=="function"?u(c):u.current=c}}function Ux(c,u,m){if(ms&&typeof ms.onCommitFiberUnmount=="function")try{ms.onCommitFiberUnmount(hd,u)}catch{}switch(u.tag){case 0:case 11:case 14:case 15:if(c=u.updateQueue,c!==null&&(c=c.lastEffect,c!==null)){var x=c=c.next;do{var S=x,Q=S.destroy;S=S.tag,Q!==void 0&&(S&2||S&4)&&h0(u,m,Q),x=x.next}while(x!==c)}break;case 1:if(Ud(u,m),c=u.stateNode,typeof c.componentWillUnmount=="function")try{c.props=u.memoizedProps,c.state=u.memoizedState,c.componentWillUnmount()}catch(X){er(u,m,X)}break;case 5:Ud(u,m);break;case 4:Be?zx(c,u,m):V&&V&&(u=u.stateNode.containerInfo,m=st(u),Jt(u,m))}}function Fx(c,u,m){for(var x=u;;)if(Ux(c,x,m),x.child===null||Be&&x.tag===4){if(x===u)break;for(;x.sibling===null;){if(x.return===null||x.return===u)return;x=x.return}x.sibling.return=x.return,x=x.sibling}else x.child.return=x,x=x.child}function kx(c){var u=c.alternate;u!==null&&(c.alternate=null,kx(u)),c.child=null,c.deletions=null,c.sibling=null,c.tag===5&&(u=c.stateNode,u!==null&&Te(u)),c.stateNode=null,c.return=null,c.dependencies=null,c.memoizedProps=null,c.memoizedState=null,c.pendingProps=null,c.stateNode=null,c.updateQueue=null}function Ox(c){return c.tag===5||c.tag===3||c.tag===4}function Gx(c){e:for(;;){for(;c.sibling===null;){if(c.return===null||Ox(c.return))return null;c=c.return}for(c.sibling.return=c.return,c=c.sibling;c.tag!==5&&c.tag!==6&&c.tag!==18;){if(c.flags&2||c.child===null||c.tag===4)continue e;c.child.return=c,c=c.child}if(!(c.flags&2))return c.stateNode}}function Hx(c){if(Be){e:{for(var u=c.return;u!==null;){if(Ox(u))break e;u=u.return}throw Error(o(160))}var m=u;switch(m.tag){case 5:u=m.stateNode,m.flags&32&&(kt(u),m.flags&=-33),m=Gx(c),p0(c,m,u);break;case 3:case 4:u=m.stateNode.containerInfo,m=Gx(c),f0(c,m,u);break;default:throw Error(o(161))}}}function f0(c,u,m){var x=c.tag;if(x===5||x===6)c=c.stateNode,u?ct(m,c,u):It(m,c);else if(x!==4&&(c=c.child,c!==null))for(f0(c,u,m),c=c.sibling;c!==null;)f0(c,u,m),c=c.sibling}function p0(c,u,m){var x=c.tag;if(x===5||x===6)c=c.stateNode,u?mt(m,c,u):ut(m,c);else if(x!==4&&(c=c.child,c!==null))for(p0(c,u,m),c=c.sibling;c!==null;)p0(c,u,m),c=c.sibling}function zx(c,u,m){for(var x=u,S=!1,Q,X;;){if(!S){S=x.return;e:for(;;){if(S===null)throw Error(o(160));switch(Q=S.stateNode,S.tag){case 5:X=!1;break e;case 3:Q=Q.containerInfo,X=!0;break e;case 4:Q=Q.containerInfo,X=!0;break e}S=S.return}S=!0}if(x.tag===5||x.tag===6)Fx(c,x,m),X?Bt(Q,x.stateNode):it(Q,x.stateNode);else if(x.tag===18)X?ve(Q,x.stateNode):_e(Q,x.stateNode);else if(x.tag===4){if(x.child!==null){Q=x.stateNode.containerInfo,X=!0,x.child.return=x,x=x.child;continue}}else if(Ux(c,x,m),x.child!==null){x.child.return=x,x=x.child;continue}if(x===u)break;for(;x.sibling===null;){if(x.return===null||x.return===u)return;x=x.return,x.tag===4&&(S=!1)}x.sibling.return=x.return,x=x.sibling}}function g0(c,u){if(Be){switch(u.tag){case 0:case 11:case 14:case 15:ja(3,u,u.return),$u(3,u),ja(5,u,u.return);return;case 1:return;case 5:var m=u.stateNode;if(m!=null){var x=u.memoizedProps;c=c!==null?c.memoizedProps:x;var S=u.type,Q=u.updateQueue;u.updateQueue=null,Q!==null&&wt(m,Q,S,c,x,u)}return;case 6:if(u.stateNode===null)throw Error(o(162));m=u.memoizedProps,Le(u.stateNode,c!==null?c.memoizedProps:m,m);return;case 3:Ee&&c!==null&&c.memoizedState.isDehydrated&&fe(u.stateNode.containerInfo);return;case 12:return;case 13:Fd(u);return;case 19:Fd(u);return;case 17:return}throw Error(o(163))}switch(u.tag){case 0:case 11:case 14:case 15:ja(3,u,u.return),$u(3,u),ja(5,u,u.return);return;case 12:return;case 13:Fd(u);return;case 19:Fd(u);return;case 3:Ee&&c!==null&&c.memoizedState.isDehydrated&&fe(u.stateNode.containerInfo);break;case 22:case 23:return}e:if(V){switch(u.tag){case 1:case 5:case 6:break e;case 3:case 4:u=u.stateNode,Jt(u.containerInfo,u.pendingChildren);break e}throw Error(o(163))}}function Fd(c){var u=c.updateQueue;if(u!==null){c.updateQueue=null;var m=c.stateNode;m===null&&(m=c.stateNode=new _3),u.forEach(function(x){var S=U3.bind(null,c,x);m.has(x)||(m.add(x),x.then(S,S))})}}function M3(c,u){for(Ke=u;Ke!==null;){u=Ke;var m=u.deletions;if(m!==null)for(var x=0;x";case Od:return":has("+(C0(c)||"")+")";case Gd:return'[role="'+c.value+'"]';case zd:return'"'+c.value+'"';case Hd:return'[data-testname="'+c.value+'"]';default:throw Error(o(365))}}function Jx(c,u){var m=[];c=[c,0];for(var x=0;xS&&(S=X),x&=~Q}if(x=S,x=ai()-x,x=(120>x?120:480>x?480:1080>x?1080:1920>x?1920:3e3>x?3e3:4320>x?4320:1960*R3(x/1960))-x,10c?16:c,Do===null)var x=!1;else{if(c=Do,Do=null,Jd=0,Ot&6)throw Error(o(331));var S=Ot;for(Ot|=4,Ke=c.current;Ke!==null;){var Q=Ke,X=Q.child;if(Ke.flags&16){var le=Q.deletions;if(le!==null){for(var Re=0;Reai()-x0?Ka(c,0):I0|=m),$i(c,u)}function iB(c,u){u===0&&(c.mode&1?(u=Ht,Ht<<=1,!(Ht&130023424)&&(Ht=4194304)):u=1);var m=Li();c=qd(c,u),c!==null&&(Mo(c,u,m),$i(c,m))}function L3(c){var u=c.memoizedState,m=0;u!==null&&(m=u.retryLane),iB(c,m)}function U3(c,u){var m=0;switch(c.tag){case 13:var x=c.stateNode,S=c.memoizedState;S!==null&&(m=S.retryLane);break;case 19:x=c.stateNode;break;default:throw Error(o(314))}x!==null&&x.delete(u),iB(c,m)}var rB;rB=function(c,u,m){if(c!==null)if(c.memoizedProps!==u.pendingProps||dn.current)fr=!0;else{if(!(c.lanes&m)&&!(u.flags&128))return fr=!1,B3(c,u,m);fr=!!(c.flags&131072)}else fr=!1,Bn&&u.flags&1048576&&VI(u,vd,u.index);switch(u.lanes=0,u.tag){case 2:var x=u.type;c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),c=u.pendingProps;var S=N(u,xt.current);rc(u,m),S=t0(null,u,x,c,S,m);var Q=n0();return u.flags|=1,typeof S=="object"&&S!==null&&typeof S.render=="function"&&S.$$typeof===void 0?(u.tag=1,u.memoizedState=null,u.updateQueue=null,L(x)?(Q=!0,we(u)):Q=!1,u.memoizedState=S.state!==null&&S.state!==void 0?S.state:null,Hm(u),S.updater=Cd,u.stateNode=S,S._reactInternals=u,Vm(u,x,c,m),u=c0(null,u,x,!0,Q,m)):(u.tag=0,Bn&&Q&&Wm(u),Ni(null,u,S,m),u=u.child),u;case 16:x=u.elementType;e:{switch(c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),c=u.pendingProps,S=x._init,x=S(x._payload),u.type=x,S=u.tag=k3(x),c=Kr(x,c),S){case 0:u=l0(null,u,x,c,m);break e;case 1:u=Mx(null,u,x,c,m);break e;case 11:u=xx(null,u,x,c,m);break e;case 14:u=Bx(null,u,x,Kr(x.type,c),m);break e}throw Error(o(306,x,""))}return u;case 0:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:Kr(x,S),l0(c,u,x,S,m);case 1:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:Kr(x,S),Mx(c,u,x,S,m);case 3:e:{if(Qx(u),c===null)throw Error(o(387));x=u.pendingProps,Q=u.memoizedState,S=Q.element,UI(c,u),Ed(u,x,null,m);var X=u.memoizedState;if(x=X.element,Ee&&Q.isDehydrated)if(Q={element:x,isDehydrated:!1,cache:X.cache,transitions:X.transitions},u.updateQueue.baseState=Q,u.memoizedState=Q,u.flags&256){S=Error(o(423)),u=Rx(c,u,x,m,S);break e}else if(x!==S){S=Error(o(424)),u=Rx(c,u,x,m,S);break e}else for(Ee&&(dr=_o(u.stateNode.containerInfo),hr=u,Bn=!0,qr=null,Gu=!1),m=KI(u,null,x,m),u.child=m;m;)m.flags=m.flags&-3|4096,m=m.sibling;else{if(ac(),x===S){u=Ks(c,u,m);break e}Ni(c,u,x,m)}u=u.child}return u;case 5:return qI(u),c===null&&Jm(u),x=u.type,S=u.pendingProps,Q=c!==null?c.memoizedProps:null,X=S.children,z(x,S)?X=null:Q!==null&&z(x,Q)&&(u.flags|=32),wx(c,u),Ni(c,u,X,m),u.child;case 6:return c===null&&Jm(u),null;case 13:return Tx(c,u,m);case 4:return Km(u,u.stateNode.containerInfo),x=u.pendingProps,c===null?u.child=lc(u,null,x,m):Ni(c,u,x,m),u.child;case 11:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:Kr(x,S),xx(c,u,x,S,m);case 7:return Ni(c,u,u.pendingProps,m),u.child;case 8:return Ni(c,u,u.pendingProps.children,m),u.child;case 12:return Ni(c,u,u.pendingProps.children,m),u.child;case 10:e:{if(x=u.type._context,S=u.pendingProps,Q=u.memoizedProps,X=S.value,LI(u,x,X),Q!==null)if(Es(Q.value,X)){if(Q.children===S.children&&!dn.current){u=Ks(c,u,m);break e}}else for(Q=u.child,Q!==null&&(Q.return=u);Q!==null;){var le=Q.dependencies;if(le!==null){X=Q.child;for(var Re=le.firstContext;Re!==null;){if(Re.context===x){if(Q.tag===1){Re=Ys(-1,m&-m),Re.tag=2;var ze=Q.updateQueue;if(ze!==null){ze=ze.shared;var ot=ze.pending;ot===null?Re.next=Re:(Re.next=ot.next,ot.next=Re),ze.pending=Re}}Q.lanes|=m,Re=Q.alternate,Re!==null&&(Re.lanes|=m),Gm(Q.return,m,u),le.lanes|=m;break}Re=Re.next}}else if(Q.tag===10)X=Q.type===u.type?null:Q.child;else if(Q.tag===18){if(X=Q.return,X===null)throw Error(o(341));X.lanes|=m,le=X.alternate,le!==null&&(le.lanes|=m),Gm(X,m,u),X=Q.sibling}else X=Q.child;if(X!==null)X.return=Q;else for(X=Q;X!==null;){if(X===u){X=null;break}if(Q=X.sibling,Q!==null){Q.return=X.return,X=Q;break}X=X.return}Q=X}Ni(c,u,S.children,m),u=u.child}return u;case 9:return S=u.type,x=u.pendingProps.children,rc(u,m),S=Qr(S),x=x(S),u.flags|=1,Ni(c,u,x,m),u.child;case 14:return x=u.type,S=Kr(x,u.pendingProps),S=Kr(x.type,S),Bx(c,u,x,S,m);case 15:return Sx(c,u,u.type,u.pendingProps,m);case 17:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:Kr(x,S),c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),u.tag=1,L(x)?(c=!0,we(u)):c=!1,rc(u,m),HI(u,x,S),Vm(u,x,S,m),c0(null,u,x,!0,c,m);case 19:return Nx(c,u,m);case 22:return _x(c,u,m)}throw Error(o(156,u.tag))};function sB(c,u){return Pm(c,u)}function F3(c,u,m,x){this.tag=c,this.key=m,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=x,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Nr(c,u,m,x){return new F3(c,u,m,x)}function T0(c){return c=c.prototype,!(!c||!c.isReactComponent)}function k3(c){if(typeof c=="function")return T0(c)?1:0;if(c!=null){if(c=c.$$typeof,c===v)return 11;if(c===y)return 14}return 2}function No(c,u){var m=c.alternate;return m===null?(m=Nr(c.tag,u,c.key,c.mode),m.elementType=c.elementType,m.type=c.type,m.stateNode=c.stateNode,m.alternate=c,c.alternate=m):(m.pendingProps=u,m.type=c.type,m.flags=0,m.subtreeFlags=0,m.deletions=null),m.flags=c.flags&14680064,m.childLanes=c.childLanes,m.lanes=c.lanes,m.child=c.child,m.memoizedProps=c.memoizedProps,m.memoizedState=c.memoizedState,m.updateQueue=c.updateQueue,u=c.dependencies,m.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},m.sibling=c.sibling,m.index=c.index,m.ref=c.ref,m}function $d(c,u,m,x,S,Q){var X=2;if(x=c,typeof c=="function")T0(c)&&(X=1);else if(typeof c=="string")X=5;else e:switch(c){case h:return $a(m.children,S,Q,u);case d:X=8,S|=8;break;case f:return c=Nr(12,m,u,S|2),c.elementType=f,c.lanes=Q,c;case C:return c=Nr(13,m,u,S),c.elementType=C,c.lanes=Q,c;case p:return c=Nr(19,m,u,S),c.elementType=p,c.lanes=Q,c;case B:return ef(m,S,Q,u);default:if(typeof c=="object"&&c!==null)switch(c.$$typeof){case g:X=10;break e;case E:X=9;break e;case v:X=11;break e;case y:X=14;break e;case I:X=16,x=null;break e}throw Error(o(130,c==null?c:typeof c,""))}return u=Nr(X,m,u,S),u.elementType=c,u.type=x,u.lanes=Q,u}function $a(c,u,m,x){return c=Nr(7,c,x,u),c.lanes=m,c}function ef(c,u,m,x){return c=Nr(22,c,x,u),c.elementType=B,c.lanes=m,c.stateNode={},c}function D0(c,u,m){return c=Nr(6,c,null,u),c.lanes=m,c}function b0(c,u,m){return u=Nr(4,c.children!==null?c.children:[],c.key,u),u.lanes=m,u.stateNode={containerInfo:c.containerInfo,pendingChildren:null,implementation:c.implementation},u}function O3(c,u,m,x,S){this.tag=u,this.containerInfo=c,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=Ie,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ar(0),this.expirationTimes=Ar(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ar(0),this.identifierPrefix=x,this.onRecoverableError=S,Ee&&(this.mutableSourceEagerHydrationData=null)}function oB(c,u,m,x,S,Q,X,le,Re){return c=new O3(c,u,m,le,Re),u===1?(u=1,Q===!0&&(u|=8)):u=0,Q=Nr(3,null,null,u),c.current=Q,Q.stateNode=c,Q.memoizedState={element:x,isDehydrated:m,cache:null,transitions:null},Hm(Q),c}function aB(c){if(!c)return yi;c=c._reactInternals;e:{if(K(c)!==c||c.tag!==1)throw Error(o(170));var u=c;do{switch(u.tag){case 3:u=u.stateNode.context;break e;case 1:if(L(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break e}}u=u.return}while(u!==null);throw Error(o(171))}if(c.tag===1){var m=c.type;if(L(m))return pe(c,m,u)}return u}function lB(c){var u=c._reactInternals;if(u===void 0)throw typeof c.render=="function"?Error(o(188)):(c=Object.keys(c).join(","),Error(o(268,c)));return c=q(u),c===null?null:c.stateNode}function cB(c,u){if(c=c.memoizedState,c!==null&&c.dehydrated!==null){var m=c.retryLane;c.retryLane=m!==0&&m=ze&&Q>=Tt&&S<=ot&&X<=yt){c.splice(u,1);break}else if(x!==ze||m.width!==Re.width||ytX){if(!(Q!==Tt||m.height!==Re.height||otS)){ze>x&&(Re.width+=ze-x,Re.x=x),otQ&&(Re.height+=Tt-Q,Re.y=Q),ytm&&(m=X)),XM0&&(u.flags|=128,x=!0,tA(S,!1),u.lanes=4194304)}else{if(!x)if(c=Bd(Q),c!==null){if(u.flags|=128,x=!0,c=c.updateQueue,c!==null&&(u.updateQueue=c,u.flags|=4),tA(S,!0),S.tail===null&&S.tailMode==="hidden"&&!Q.alternate&&!Sn)return Si(u),null}else 2*ai()-S.renderingStartTime>M0&&m!==1073741824&&(u.flags|=128,x=!0,tA(S,!1),u.lanes=4194304);S.isBackwards?(Q.sibling=u.child,u.child=Q):(c=S.last,c!==null?c.sibling=Q:u.child=Q,S.last=Q)}return S.tail!==null?(u=S.tail,S.rendering=u,S.tail=u.sibling,S.renderingStartTime=ai(),u.sibling=null,c=Qn.current,nt(Qn,x?c&1|2:c&1),u):(Si(u),null);case 22:case 23:return b0(),x=u.memoizedState!==null,c!==null&&c.memoizedState!==null!==x&&(u.flags|=8192),x&&u.mode&1?gr&1073741824&&(Si(u),Se&&u.subtreeFlags&6&&(u.flags|=8192)):Si(u),null;case 24:return null;case 25:return null}throw Error(o(156,u.tag))}var k3=a.ReactCurrentOwner,pr=!1;function Ui(c,u,m,x){u.child=c===null?ox(u,null,m,x):Ac(u,c.child,m,x)}function bx(c,u,m,x,S){m=m.render;var Q=u.ref;return ac(u,S),x=s0(c,u,m,x,Q,S),m=o0(),c!==null&&!pr?(u.updateQueue=c.updateQueue,u.flags&=-2053,c.lanes&=~S,Zs(c,u,S)):(Sn&&m&&jm(u),u.flags|=1,Ui(c,u,x,S),u.child)}function Px(c,u,m,x,S){if(c===null){var Q=m.type;return typeof Q=="function"&&!L0(Q)&&Q.defaultProps===void 0&&m.compare===null&&m.defaultProps===void 0?(u.tag=15,u.type=Q,Lx(c,u,Q,x,S)):(c=ef(m.type,null,x,u,u.mode,S),c.ref=u.ref,c.return=u,u.child=c)}if(Q=c.child,!(c.lanes&S)){var X=Q.memoizedProps;if(m=m.compare,m=m!==null?m:pd,m(X,x)&&c.ref===u.ref)return Zs(c,u,S)}return u.flags|=1,c=jo(Q,x),c.ref=u.ref,c.return=u,u.child=c}function Lx(c,u,m,x,S){if(c!==null&&pd(c.memoizedProps,x)&&c.ref===u.ref)if(pr=!1,(c.lanes&S)!==0)c.flags&131072&&(pr=!0);else return u.lanes=c.lanes,Zs(c,u,S);return h0(c,u,m,x,S)}function Nx(c,u,m){var x=u.pendingProps,S=x.children,Q=c!==null?c.memoizedState:null;if(x.mode==="hidden")if(!(u.mode&1))u.memoizedState={baseLanes:0,cachePool:null},nt(pc,gr),gr|=m;else if(m&1073741824)u.memoizedState={baseLanes:0,cachePool:null},x=Q!==null?Q.baseLanes:m,nt(pc,gr),gr|=x;else return c=Q!==null?Q.baseLanes|m:m,u.lanes=u.childLanes=1073741824,u.memoizedState={baseLanes:c,cachePool:null},u.updateQueue=null,nt(pc,gr),gr|=c,null;else Q!==null?(x=Q.baseLanes|m,u.memoizedState=null):x=m,nt(pc,gr),gr|=x;return Ui(c,u,S,m),u.child}function Ux(c,u){var m=u.ref;(c===null&&m!==null||c!==null&&c.ref!==m)&&(u.flags|=512,u.flags|=2097152)}function h0(c,u,m,x,S){var Q=N(m)?ur:xt.current;return Q=L(u,Q),ac(u,S),m=s0(c,u,m,x,Q,S),x=o0(),c!==null&&!pr?(u.updateQueue=c.updateQueue,u.flags&=-2053,c.lanes&=~S,Zs(c,u,S)):(Sn&&x&&jm(u),u.flags|=1,Ui(c,u,m,S),u.child)}function Fx(c,u,m,x,S){if(N(m)){var Q=!0;we(u)}else Q=!1;if(ac(u,S),u.stateNode===null)c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),ZI(u,m,x),Jm(u,m,x,S),x=!0;else if(c===null){var X=u.stateNode,ce=u.memoizedProps;X.props=ce;var Re=X.context,ze=m.contextType;typeof ze=="object"&&ze!==null?ze=Qr(ze):(ze=N(m)?ur:xt.current,ze=L(u,ze));var ot=m.getDerivedStateFromProps,Tt=typeof ot=="function"||typeof X.getSnapshotBeforeUpdate=="function";Tt||typeof X.UNSAFE_componentWillReceiveProps!="function"&&typeof X.componentWillReceiveProps!="function"||(ce!==x||Re!==ze)&&$I(u,X,x,ze),zo=!1;var yt=u.memoizedState;X.state=yt,Cd(u,x,X,S),Re=u.memoizedState,ce!==x||yt!==Re||dn.current||zo?(typeof ot=="function"&&(Xm(u,m,ot,x),Re=u.memoizedState),(ce=zo||qI(u,m,ce,x,yt,Re,ze))?(Tt||typeof X.UNSAFE_componentWillMount!="function"&&typeof X.componentWillMount!="function"||(typeof X.componentWillMount=="function"&&X.componentWillMount(),typeof X.UNSAFE_componentWillMount=="function"&&X.UNSAFE_componentWillMount()),typeof X.componentDidMount=="function"&&(u.flags|=4194308)):(typeof X.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=x,u.memoizedState=Re),X.props=x,X.state=Re,X.context=ze,x=ce):(typeof X.componentDidMount=="function"&&(u.flags|=4194308),x=!1)}else{X=u.stateNode,XI(c,u),ce=u.memoizedProps,ze=u.type===u.elementType?ce:qr(u.type,ce),X.props=ze,Tt=u.pendingProps,yt=X.context,Re=m.contextType,typeof Re=="object"&&Re!==null?Re=Qr(Re):(Re=N(m)?ur:xt.current,Re=L(u,Re));var fn=m.getDerivedStateFromProps;(ot=typeof fn=="function"||typeof X.getSnapshotBeforeUpdate=="function")||typeof X.UNSAFE_componentWillReceiveProps!="function"&&typeof X.componentWillReceiveProps!="function"||(ce!==Tt||yt!==Re)&&$I(u,X,x,Re),zo=!1,yt=u.memoizedState,X.state=yt,Cd(u,x,X,S);var ft=u.memoizedState;ce!==Tt||yt!==ft||dn.current||zo?(typeof fn=="function"&&(Xm(u,m,fn,x),ft=u.memoizedState),(ze=zo||qI(u,m,ze,x,yt,ft,Re)||!1)?(ot||typeof X.UNSAFE_componentWillUpdate!="function"&&typeof X.componentWillUpdate!="function"||(typeof X.componentWillUpdate=="function"&&X.componentWillUpdate(x,ft,Re),typeof X.UNSAFE_componentWillUpdate=="function"&&X.UNSAFE_componentWillUpdate(x,ft,Re)),typeof X.componentDidUpdate=="function"&&(u.flags|=4),typeof X.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof X.componentDidUpdate!="function"||ce===c.memoizedProps&&yt===c.memoizedState||(u.flags|=4),typeof X.getSnapshotBeforeUpdate!="function"||ce===c.memoizedProps&&yt===c.memoizedState||(u.flags|=1024),u.memoizedProps=x,u.memoizedState=ft),X.props=x,X.state=ft,X.context=Re,x=ze):(typeof X.componentDidUpdate!="function"||ce===c.memoizedProps&&yt===c.memoizedState||(u.flags|=4),typeof X.getSnapshotBeforeUpdate!="function"||ce===c.memoizedProps&&yt===c.memoizedState||(u.flags|=1024),x=!1)}return d0(c,u,m,x,Q,S)}function d0(c,u,m,x,S,Q){Ux(c,u);var X=(u.flags&128)!==0;if(!x&&!X)return S&&Ue(u,m,!1),Zs(c,u,Q);x=u.stateNode,k3.current=u;var ce=X&&typeof m.getDerivedStateFromError!="function"?null:x.render();return u.flags|=1,c!==null&&X?(u.child=Ac(u,c.child,null,Q),u.child=Ac(u,null,ce,Q)):Ui(c,u,ce,Q),u.memoizedState=x.state,S&&Ue(u,m,!0),u.child}function kx(c){var u=c.stateNode;u.pendingContext?ae(c,u.pendingContext,u.pendingContext!==u.context):u.context&&ae(c,u.context,!1),e0(c,u.containerInfo)}function Ox(c,u,m,x,S){return uc(),$m(S),u.flags|=256,Ui(c,u,m,x),u.child}var Pd={dehydrated:null,treeContext:null,retryLane:0};function Ld(c){return{baseLanes:c,cachePool:null}}function Gx(c,u,m){var x=u.pendingProps,S=Qn.current,Q=!1,X=(u.flags&128)!==0,ce;if((ce=X)||(ce=c!==null&&c.memoizedState===null?!1:(S&2)!==0),ce?(Q=!0,u.flags&=-129):(c===null||c.memoizedState!==null)&&(S|=1),nt(Qn,S&1),c===null)return Zm(u),c=u.memoizedState,c!==null&&(c=c.dehydrated,c!==null)?(u.mode&1?gi(c)?u.lanes=8:u.lanes=1073741824:u.lanes=1,null):(S=x.children,c=x.fallback,Q?(x=u.mode,Q=u.child,S={mode:"hidden",children:S},!(x&1)&&Q!==null?(Q.childLanes=0,Q.pendingProps=S):Q=tf(S,x,0,null),c=al(c,x,m,null),Q.return=u,c.return=u,Q.sibling=c,u.child=Q,u.child.memoizedState=Ld(m),u.memoizedState=Pd,c):f0(u,S));if(S=c.memoizedState,S!==null){if(ce=S.dehydrated,ce!==null){if(X)return u.flags&256?(u.flags&=-257,Nd(c,u,m,Error(o(422)))):u.memoizedState!==null?(u.child=c.child,u.flags|=128,null):(Q=x.fallback,S=u.mode,x=tf({mode:"visible",children:x.children},S,0,null),Q=al(Q,S,m,null),Q.flags|=2,x.return=u,Q.return=u,x.sibling=Q,u.child=x,u.mode&1&&Ac(u,c.child,null,m),u.child.memoizedState=Ld(m),u.memoizedState=Pd,Q);if(!(u.mode&1))u=Nd(c,u,m,null);else if(gi(ce))u=Nd(c,u,m,Error(o(419)));else if(x=(m&c.childLanes)!==0,pr||x){if(x=jn,x!==null){switch(m&-m){case 4:Q=2;break;case 16:Q=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:Q=32;break;case 536870912:Q=268435456;break;default:Q=0}x=Q&(x.suspendedLanes|m)?0:Q,x!==0&&x!==S.retryLane&&(S.retryLane=x,Pr(c,x,-1))}P0(),u=Nd(c,u,m,Error(o(421)))}else qa(ce)?(u.flags|=128,u.child=c.child,u=Z3.bind(null,c),Ws(ce,u),u=null):(m=S.treeContext,Ee&&(fr=Go(ce),dr=u,Sn=!0,Zr=null,Vu=!1,m!==null&&(Rr[Tr++]=js,Rr[Tr++]=Ks,Rr[Tr++]=$a,js=m.id,Ks=m.overflow,$a=u)),u=f0(u,u.pendingProps.children),u.flags|=4096);return u}return Q?(x=zx(c,u,x.children,x.fallback,m),Q=u.child,S=c.child.memoizedState,Q.memoizedState=S===null?Ld(m):{baseLanes:S.baseLanes|m,cachePool:null},Q.childLanes=c.childLanes&~m,u.memoizedState=Pd,x):(m=Hx(c,u,x.children,m),u.memoizedState=null,m)}return Q?(x=zx(c,u,x.children,x.fallback,m),Q=u.child,S=c.child.memoizedState,Q.memoizedState=S===null?Ld(m):{baseLanes:S.baseLanes|m,cachePool:null},Q.childLanes=c.childLanes&~m,u.memoizedState=Pd,x):(m=Hx(c,u,x.children,m),u.memoizedState=null,m)}function f0(c,u){return u=tf({mode:"visible",children:u},c.mode,0,null),u.return=c,c.child=u}function Hx(c,u,m,x){var S=c.child;return c=S.sibling,m=jo(S,{mode:"visible",children:m}),!(u.mode&1)&&(m.lanes=x),m.return=u,m.sibling=null,c!==null&&(x=u.deletions,x===null?(u.deletions=[c],u.flags|=16):x.push(c)),u.child=m}function zx(c,u,m,x,S){var Q=u.mode;c=c.child;var X=c.sibling,ce={mode:"hidden",children:m};return!(Q&1)&&u.child!==c?(m=u.child,m.childLanes=0,m.pendingProps=ce,u.deletions=null):(m=jo(c,ce),m.subtreeFlags=c.subtreeFlags&14680064),X!==null?x=jo(X,x):(x=al(x,Q,S,null),x.flags|=2),x.return=u,m.return=u,m.sibling=x,u.child=m,x}function Nd(c,u,m,x){return x!==null&&$m(x),Ac(u,c.child,null,m),c=f0(u,u.pendingProps.children),c.flags|=2,u.memoizedState=null,c}function Vx(c,u,m){c.lanes|=u;var x=c.alternate;x!==null&&(x.lanes|=u),Wm(c.return,u,m)}function p0(c,u,m,x,S){var Q=c.memoizedState;Q===null?c.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:x,tail:m,tailMode:S}:(Q.isBackwards=u,Q.rendering=null,Q.renderingStartTime=0,Q.last=x,Q.tail=m,Q.tailMode=S)}function Wx(c,u,m){var x=u.pendingProps,S=x.revealOrder,Q=x.tail;if(Ui(c,u,x.children,m),x=Qn.current,x&2)x=x&1|2,u.flags|=128;else{if(c!==null&&c.flags&128)e:for(c=u.child;c!==null;){if(c.tag===13)c.memoizedState!==null&&Vx(c,m,u);else if(c.tag===19)Vx(c,m,u);else if(c.child!==null){c.child.return=c,c=c.child;continue}if(c===u)break e;for(;c.sibling===null;){if(c.return===null||c.return===u)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}x&=1}if(nt(Qn,x),!(u.mode&1))u.memoizedState=null;else switch(S){case"forwards":for(m=u.child,S=null;m!==null;)c=m.alternate,c!==null&&Bd(c)===null&&(S=m),m=m.sibling;m=S,m===null?(S=u.child,u.child=null):(S=m.sibling,m.sibling=null),p0(u,!1,S,m,Q);break;case"backwards":for(m=null,S=u.child,u.child=null;S!==null;){if(c=S.alternate,c!==null&&Bd(c)===null){u.child=S;break}c=S.sibling,S.sibling=m,m=S,S=c}p0(u,!0,m,null,Q);break;case"together":p0(u,!1,null,null,void 0);break;default:u.memoizedState=null}return u.child}function Zs(c,u,m){if(c!==null&&(u.dependencies=c.dependencies),gc|=u.lanes,!(m&u.childLanes))return null;if(c!==null&&u.child!==c.child)throw Error(o(153));if(u.child!==null){for(c=u.child,m=jo(c,c.pendingProps),u.child=m,m.return=u;c.sibling!==null;)c=c.sibling,m=m.sibling=jo(c,c.pendingProps),m.return=u;m.sibling=null}return u.child}function O3(c,u,m){switch(u.tag){case 3:kx(u),uc();break;case 5:ax(u);break;case 1:N(u.type)&&we(u);break;case 4:e0(u,u.stateNode.containerInfo);break;case 10:YI(u,u.type._context,u.memoizedProps.value);break;case 13:var x=u.memoizedState;if(x!==null)return x.dehydrated!==null?(nt(Qn,Qn.current&1),u.flags|=128,null):m&u.child.childLanes?Gx(c,u,m):(nt(Qn,Qn.current&1),c=Zs(c,u,m),c!==null?c.sibling:null);nt(Qn,Qn.current&1);break;case 19:if(x=(m&u.childLanes)!==0,c.flags&128){if(x)return Wx(c,u,m);u.flags|=128}var S=u.memoizedState;if(S!==null&&(S.rendering=null,S.tail=null,S.lastEffect=null),nt(Qn,Qn.current),x)break;return null;case 22:case 23:return u.lanes=0,Nx(c,u,m)}return Zs(c,u,m)}function G3(c,u){switch(Km(u),u.tag){case 1:return N(u.type)&&Z(),c=u.flags,c&65536?(u.flags=c&-65537|128,u):null;case 3:return dc(),vt(dn),vt(xt),i0(),c=u.flags,c&65536&&!(c&128)?(u.flags=c&-65537|128,u):null;case 5:return t0(u),null;case 13:if(vt(Qn),c=u.memoizedState,c!==null&&c.dehydrated!==null){if(u.alternate===null)throw Error(o(340));uc()}return c=u.flags,c&65536?(u.flags=c&-65537|128,u):null;case 19:return vt(Qn),null;case 4:return dc(),null;case 10:return Vm(u.type._context),null;case 22:case 23:return b0(),null;case 24:return null;default:return null}}var Ud=!1,nl=!1,H3=typeof WeakSet=="function"?WeakSet:Set,qe=null;function Fd(c,u){var m=c.ref;if(m!==null)if(typeof m=="function")try{m(null)}catch(x){tr(c,u,x)}else m.current=null}function g0(c,u,m){try{m()}catch(x){tr(c,u,x)}}var Yx=!1;function z3(c,u){for(ee(c.containerInfo),qe=u;qe!==null;)if(c=qe,u=c.child,(c.subtreeFlags&1028)!==0&&u!==null)u.return=c,qe=u;else for(;qe!==null;){c=qe;try{var m=c.alternate;if(c.flags&1024)switch(c.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var x=m.memoizedProps,S=m.memoizedState,Q=c.stateNode,X=Q.getSnapshotBeforeUpdate(c.elementType===c.type?x:qr(c.type,x),S);Q.__reactInternalSnapshotBeforeUpdate=X}break;case 3:Se&&Ge(c.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(ce){tr(c,c.return,ce)}if(u=c.sibling,u!==null){u.return=c.return,qe=u;break}qe=c.return}return m=Yx,Yx=!1,m}function il(c,u,m){var x=u.updateQueue;if(x=x!==null?x.lastEffect:null,x!==null){var S=x=x.next;do{if((S.tag&c)===c){var Q=S.destroy;S.destroy=void 0,Q!==void 0&&g0(u,m,Q)}S=S.next}while(S!==x)}}function nA(c,u){if(u=u.updateQueue,u=u!==null?u.lastEffect:null,u!==null){var m=u=u.next;do{if((m.tag&c)===c){var x=m.create;m.destroy=x()}m=m.next}while(m!==u)}}function m0(c){var u=c.ref;if(u!==null){var m=c.stateNode;switch(c.tag){case 5:c=ne(m);break;default:c=m}typeof u=="function"?u(c):u.current=c}}function Xx(c,u,m){if(Cs&&typeof Cs.onCommitFiberUnmount=="function")try{Cs.onCommitFiberUnmount(dd,u)}catch{}switch(u.tag){case 0:case 11:case 14:case 15:if(c=u.updateQueue,c!==null&&(c=c.lastEffect,c!==null)){var x=c=c.next;do{var S=x,Q=S.destroy;S=S.tag,Q!==void 0&&(S&2||S&4)&&g0(u,m,Q),x=x.next}while(x!==c)}break;case 1:if(Fd(u,m),c=u.stateNode,typeof c.componentWillUnmount=="function")try{c.props=u.memoizedProps,c.state=u.memoizedState,c.componentWillUnmount()}catch(X){tr(u,m,X)}break;case 5:Fd(u,m);break;case 4:Se?$x(c,u,m):V&&V&&(u=u.stateNode.containerInfo,m=st(u),jt(u,m))}}function Jx(c,u,m){for(var x=u;;)if(Xx(c,x,m),x.child===null||Se&&x.tag===4){if(x===u)break;for(;x.sibling===null;){if(x.return===null||x.return===u)return;x=x.return}x.sibling.return=x.return,x=x.sibling}else x.child.return=x,x=x.child}function jx(c){var u=c.alternate;u!==null&&(c.alternate=null,jx(u)),c.child=null,c.deletions=null,c.sibling=null,c.tag===5&&(u=c.stateNode,u!==null&&Te(u)),c.stateNode=null,c.return=null,c.dependencies=null,c.memoizedProps=null,c.memoizedState=null,c.pendingProps=null,c.stateNode=null,c.updateQueue=null}function Kx(c){return c.tag===5||c.tag===3||c.tag===4}function qx(c){e:for(;;){for(;c.sibling===null;){if(c.return===null||Kx(c.return))return null;c=c.return}for(c.sibling.return=c.return,c=c.sibling;c.tag!==5&&c.tag!==6&&c.tag!==18;){if(c.flags&2||c.child===null||c.tag===4)continue e;c.child.return=c,c=c.child}if(!(c.flags&2))return c.stateNode}}function Zx(c){if(Se){e:{for(var u=c.return;u!==null;){if(Kx(u))break e;u=u.return}throw Error(o(160))}var m=u;switch(m.tag){case 5:u=m.stateNode,m.flags&32&&(kt(u),m.flags&=-33),m=qx(c),C0(c,m,u);break;case 3:case 4:u=m.stateNode.containerInfo,m=qx(c),E0(c,m,u);break;default:throw Error(o(161))}}}function E0(c,u,m){var x=c.tag;if(x===5||x===6)c=c.stateNode,u?ct(m,c,u):It(m,c);else if(x!==4&&(c=c.child,c!==null))for(E0(c,u,m),c=c.sibling;c!==null;)E0(c,u,m),c=c.sibling}function C0(c,u,m){var x=c.tag;if(x===5||x===6)c=c.stateNode,u?mt(m,c,u):ut(m,c);else if(x!==4&&(c=c.child,c!==null))for(C0(c,u,m),c=c.sibling;c!==null;)C0(c,u,m),c=c.sibling}function $x(c,u,m){for(var x=u,S=!1,Q,X;;){if(!S){S=x.return;e:for(;;){if(S===null)throw Error(o(160));switch(Q=S.stateNode,S.tag){case 5:X=!1;break e;case 3:Q=Q.containerInfo,X=!0;break e;case 4:Q=Q.containerInfo,X=!0;break e}S=S.return}S=!0}if(x.tag===5||x.tag===6)Jx(c,x,m),X?Bt(Q,x.stateNode):it(Q,x.stateNode);else if(x.tag===18)X?ve(Q,x.stateNode):_e(Q,x.stateNode);else if(x.tag===4){if(x.child!==null){Q=x.stateNode.containerInfo,X=!0,x.child.return=x,x=x.child;continue}}else if(Xx(c,x,m),x.child!==null){x.child.return=x,x=x.child;continue}if(x===u)break;for(;x.sibling===null;){if(x.return===null||x.return===u)return;x=x.return,x.tag===4&&(S=!1)}x.sibling.return=x.return,x=x.sibling}}function y0(c,u){if(Se){switch(u.tag){case 0:case 11:case 14:case 15:il(3,u,u.return),nA(3,u),il(5,u,u.return);return;case 1:return;case 5:var m=u.stateNode;if(m!=null){var x=u.memoizedProps;c=c!==null?c.memoizedProps:x;var S=u.type,Q=u.updateQueue;u.updateQueue=null,Q!==null&&wt(m,Q,S,c,x,u)}return;case 6:if(u.stateNode===null)throw Error(o(162));m=u.memoizedProps,Ne(u.stateNode,c!==null?c.memoizedProps:m,m);return;case 3:Ee&&c!==null&&c.memoizedState.isDehydrated&&pe(u.stateNode.containerInfo);return;case 12:return;case 13:kd(u);return;case 19:kd(u);return;case 17:return}throw Error(o(163))}switch(u.tag){case 0:case 11:case 14:case 15:il(3,u,u.return),nA(3,u),il(5,u,u.return);return;case 12:return;case 13:kd(u);return;case 19:kd(u);return;case 3:Ee&&c!==null&&c.memoizedState.isDehydrated&&pe(u.stateNode.containerInfo);break;case 22:case 23:return}e:if(V){switch(u.tag){case 1:case 5:case 6:break e;case 3:case 4:u=u.stateNode,jt(u.containerInfo,u.pendingChildren);break e}throw Error(o(163))}}function kd(c){var u=c.updateQueue;if(u!==null){c.updateQueue=null;var m=c.stateNode;m===null&&(m=c.stateNode=new H3),u.forEach(function(x){var S=$3.bind(null,c,x);m.has(x)||(m.add(x),x.then(S,S))})}}function V3(c,u){for(qe=u;qe!==null;){u=qe;var m=u.deletions;if(m!==null)for(var x=0;x";case Gd:return":has("+(x0(c)||"")+")";case Hd:return'[role="'+c.value+'"]';case Vd:return'"'+c.value+'"';case zd:return'[data-testname="'+c.value+'"]';default:throw Error(o(365))}}function rB(c,u){var m=[];c=[c,0];for(var x=0;xS&&(S=X),x&=~Q}if(x=S,x=ai()-x,x=(120>x?120:480>x?480:1080>x?1080:1920>x?1920:3e3>x?3e3:4320>x?4320:1960*Y3(x/1960))-x,10c?16:c,Yo===null)var x=!1;else{if(c=Yo,Yo=null,jd=0,Ot&6)throw Error(o(331));var S=Ot;for(Ot|=4,qe=c.current;qe!==null;){var Q=qe,X=Q.child;if(qe.flags&16){var ce=Q.deletions;if(ce!==null){for(var Re=0;Reai()-w0?rl(c,0):_0|=m),er(c,u)}function dB(c,u){u===0&&(c.mode&1?(u=zt,zt<<=1,!(zt&130023424)&&(zt=4194304)):u=1);var m=Fi();c=Zd(c,u),c!==null&&(Ho(c,u,m),er(c,m))}function Z3(c){var u=c.memoizedState,m=0;u!==null&&(m=u.retryLane),dB(c,m)}function $3(c,u){var m=0;switch(c.tag){case 13:var x=c.stateNode,S=c.memoizedState;S!==null&&(m=S.retryLane);break;case 19:x=c.stateNode;break;default:throw Error(o(314))}x!==null&&x.delete(u),dB(c,m)}var fB;fB=function(c,u,m){if(c!==null)if(c.memoizedProps!==u.pendingProps||dn.current)pr=!0;else{if(!(c.lanes&m)&&!(u.flags&128))return pr=!1,O3(c,u,m);pr=!!(c.flags&131072)}else pr=!1,Sn&&u.flags&1048576&&ex(u,Id,u.index);switch(u.lanes=0,u.tag){case 2:var x=u.type;c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),c=u.pendingProps;var S=L(u,xt.current);ac(u,m),S=s0(null,u,x,c,S,m);var Q=o0();return u.flags|=1,typeof S=="object"&&S!==null&&typeof S.render=="function"&&S.$$typeof===void 0?(u.tag=1,u.memoizedState=null,u.updateQueue=null,N(x)?(Q=!0,we(u)):Q=!1,u.memoizedState=S.state!==null&&S.state!==void 0?S.state:null,Ym(u),S.updater=yd,u.stateNode=S,S._reactInternals=u,Jm(u,x,c,m),u=d0(null,u,x,!0,Q,m)):(u.tag=0,Sn&&Q&&jm(u),Ui(null,u,S,m),u=u.child),u;case 16:x=u.elementType;e:{switch(c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),c=u.pendingProps,S=x._init,x=S(x._payload),u.type=x,S=u.tag=tb(x),c=qr(x,c),S){case 0:u=h0(null,u,x,c,m);break e;case 1:u=Fx(null,u,x,c,m);break e;case 11:u=bx(null,u,x,c,m);break e;case 14:u=Px(null,u,x,qr(x.type,c),m);break e}throw Error(o(306,x,""))}return u;case 0:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:qr(x,S),h0(c,u,x,S,m);case 1:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:qr(x,S),Fx(c,u,x,S,m);case 3:e:{if(kx(u),c===null)throw Error(o(387));x=u.pendingProps,Q=u.memoizedState,S=Q.element,XI(c,u),Cd(u,x,null,m);var X=u.memoizedState;if(x=X.element,Ee&&Q.isDehydrated)if(Q={element:x,isDehydrated:!1,cache:X.cache,transitions:X.transitions},u.updateQueue.baseState=Q,u.memoizedState=Q,u.flags&256){S=Error(o(423)),u=Ox(c,u,x,m,S);break e}else if(x!==S){S=Error(o(424)),u=Ox(c,u,x,m,S);break e}else for(Ee&&(fr=Oo(u.stateNode.containerInfo),dr=u,Sn=!0,Zr=null,Vu=!1),m=ox(u,null,x,m),u.child=m;m;)m.flags=m.flags&-3|4096,m=m.sibling;else{if(uc(),x===S){u=Zs(c,u,m);break e}Ui(c,u,x,m)}u=u.child}return u;case 5:return ax(u),c===null&&Zm(u),x=u.type,S=u.pendingProps,Q=c!==null?c.memoizedProps:null,X=S.children,z(x,S)?X=null:Q!==null&&z(x,Q)&&(u.flags|=32),Ux(c,u),Ui(c,u,X,m),u.child;case 6:return c===null&&Zm(u),null;case 13:return Gx(c,u,m);case 4:return e0(u,u.stateNode.containerInfo),x=u.pendingProps,c===null?u.child=Ac(u,null,x,m):Ui(c,u,x,m),u.child;case 11:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:qr(x,S),bx(c,u,x,S,m);case 7:return Ui(c,u,u.pendingProps,m),u.child;case 8:return Ui(c,u,u.pendingProps.children,m),u.child;case 12:return Ui(c,u,u.pendingProps.children,m),u.child;case 10:e:{if(x=u.type._context,S=u.pendingProps,Q=u.memoizedProps,X=S.value,YI(u,x,X),Q!==null)if(ys(Q.value,X)){if(Q.children===S.children&&!dn.current){u=Zs(c,u,m);break e}}else for(Q=u.child,Q!==null&&(Q.return=u);Q!==null;){var ce=Q.dependencies;if(ce!==null){X=Q.child;for(var Re=ce.firstContext;Re!==null;){if(Re.context===x){if(Q.tag===1){Re=Js(-1,m&-m),Re.tag=2;var ze=Q.updateQueue;if(ze!==null){ze=ze.shared;var ot=ze.pending;ot===null?Re.next=Re:(Re.next=ot.next,ot.next=Re),ze.pending=Re}}Q.lanes|=m,Re=Q.alternate,Re!==null&&(Re.lanes|=m),Wm(Q.return,m,u),ce.lanes|=m;break}Re=Re.next}}else if(Q.tag===10)X=Q.type===u.type?null:Q.child;else if(Q.tag===18){if(X=Q.return,X===null)throw Error(o(341));X.lanes|=m,ce=X.alternate,ce!==null&&(ce.lanes|=m),Wm(X,m,u),X=Q.sibling}else X=Q.child;if(X!==null)X.return=Q;else for(X=Q;X!==null;){if(X===u){X=null;break}if(Q=X.sibling,Q!==null){Q.return=X.return,X=Q;break}X=X.return}Q=X}Ui(c,u,S.children,m),u=u.child}return u;case 9:return S=u.type,x=u.pendingProps.children,ac(u,m),S=Qr(S),x=x(S),u.flags|=1,Ui(c,u,x,m),u.child;case 14:return x=u.type,S=qr(x,u.pendingProps),S=qr(x.type,S),Px(c,u,x,S,m);case 15:return Lx(c,u,u.type,u.pendingProps,m);case 17:return x=u.type,S=u.pendingProps,S=u.elementType===x?S:qr(x,S),c!==null&&(c.alternate=null,u.alternate=null,u.flags|=2),u.tag=1,N(x)?(c=!0,we(u)):c=!1,ac(u,m),ZI(u,x,S),Jm(u,x,S,m),d0(null,u,x,!0,c,m);case 19:return Wx(c,u,m);case 22:return Nx(c,u,m)}throw Error(o(156,u.tag))};function pB(c,u){return Fm(c,u)}function eb(c,u,m,x){this.tag=c,this.key=m,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=x,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Lr(c,u,m,x){return new eb(c,u,m,x)}function L0(c){return c=c.prototype,!(!c||!c.isReactComponent)}function tb(c){if(typeof c=="function")return L0(c)?1:0;if(c!=null){if(c=c.$$typeof,c===v)return 11;if(c===y)return 14}return 2}function jo(c,u){var m=c.alternate;return m===null?(m=Lr(c.tag,u,c.key,c.mode),m.elementType=c.elementType,m.type=c.type,m.stateNode=c.stateNode,m.alternate=c,c.alternate=m):(m.pendingProps=u,m.type=c.type,m.flags=0,m.subtreeFlags=0,m.deletions=null),m.flags=c.flags&14680064,m.childLanes=c.childLanes,m.lanes=c.lanes,m.child=c.child,m.memoizedProps=c.memoizedProps,m.memoizedState=c.memoizedState,m.updateQueue=c.updateQueue,u=c.dependencies,m.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},m.sibling=c.sibling,m.index=c.index,m.ref=c.ref,m}function ef(c,u,m,x,S,Q){var X=2;if(x=c,typeof c=="function")L0(c)&&(X=1);else if(typeof c=="string")X=5;else e:switch(c){case h:return al(m.children,S,Q,u);case d:X=8,S|=8;break;case f:return c=Lr(12,m,u,S|2),c.elementType=f,c.lanes=Q,c;case C:return c=Lr(13,m,u,S),c.elementType=C,c.lanes=Q,c;case p:return c=Lr(19,m,u,S),c.elementType=p,c.lanes=Q,c;case B:return tf(m,S,Q,u);default:if(typeof c=="object"&&c!==null)switch(c.$$typeof){case g:X=10;break e;case E:X=9;break e;case v:X=11;break e;case y:X=14;break e;case I:X=16,x=null;break e}throw Error(o(130,c==null?c:typeof c,""))}return u=Lr(X,m,u,S),u.elementType=c,u.type=x,u.lanes=Q,u}function al(c,u,m,x){return c=Lr(7,c,x,u),c.lanes=m,c}function tf(c,u,m,x){return c=Lr(22,c,x,u),c.elementType=B,c.lanes=m,c.stateNode={},c}function N0(c,u,m){return c=Lr(6,c,null,u),c.lanes=m,c}function U0(c,u,m){return u=Lr(4,c.children!==null?c.children:[],c.key,u),u.lanes=m,u.stateNode={containerInfo:c.containerInfo,pendingChildren:null,implementation:c.implementation},u}function nb(c,u,m,x,S){this.tag=u,this.containerInfo=c,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=Ie,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=hr(0),this.expirationTimes=hr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=hr(0),this.identifierPrefix=x,this.onRecoverableError=S,Ee&&(this.mutableSourceEagerHydrationData=null)}function gB(c,u,m,x,S,Q,X,ce,Re){return c=new nb(c,u,m,ce,Re),u===1?(u=1,Q===!0&&(u|=8)):u=0,Q=Lr(3,null,null,u),c.current=Q,Q.stateNode=c,Q.memoizedState={element:x,isDehydrated:m,cache:null,transitions:null},Ym(Q),c}function mB(c){if(!c)return Ii;c=c._reactInternals;e:{if(K(c)!==c||c.tag!==1)throw Error(o(170));var u=c;do{switch(u.tag){case 3:u=u.stateNode.context;break e;case 1:if(N(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break e}}u=u.return}while(u!==null);throw Error(o(171))}if(c.tag===1){var m=c.type;if(N(m))return ge(c,m,u)}return u}function EB(c){var u=c._reactInternals;if(u===void 0)throw typeof c.render=="function"?Error(o(188)):(c=Object.keys(c).join(","),Error(o(268,c)));return c=q(u),c===null?null:c.stateNode}function CB(c,u){if(c=c.memoizedState,c!==null&&c.dehydrated!==null){var m=c.retryLane;c.retryLane=m!==0&&m=ze&&Q>=Tt&&S<=ot&&X<=yt){c.splice(u,1);break}else if(x!==ze||m.width!==Re.width||ytX){if(!(Q!==Tt||m.height!==Re.height||otS)){ze>x&&(Re.width+=ze-x,Re.x=x),otQ&&(Re.height+=Tt-Q,Re.y=Q),ytm&&(m=X)),X ")+` No matching component was found for: - `)+c.join(" > ")}return null},t.getPublicRootInstance=function(c){if(c=c.current,!c.child)return null;switch(c.child.tag){case 5:return se(c.child.stateNode);default:return c.child.stateNode}},t.injectIntoDevTools=function(c){if(c={bundleType:c.bundleType,version:c.version,rendererPackageName:c.rendererPackageName,rendererConfig:c.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:a.ReactCurrentDispatcher,findHostInstanceByFiber:G3,findFiberByHostInstance:c.findFiberByHostInstance||H3,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")c=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)c=!0;else{try{hd=u.inject(c),ms=u}catch{}c=!!u.checkDCE}}return c},t.isAlreadyRendering=function(){return!1},t.observeVisibleRects=function(c,u,m,x){if(!D)throw Error(o(363));c=y0(c,u);var S=Ze(c,m,x).disconnect;return{disconnect:function(){S()}}},t.registerMutableSourceForHydration=function(c,u){var m=u._getVersion;m=m(u._source),c.mutableSourceEagerHydrationData==null?c.mutableSourceEagerHydrationData=[u,m]:c.mutableSourceEagerHydrationData.push(u,m)},t.runWithPriority=function(c,u){var m=$t;try{return $t=c,u()}finally{$t=m}},t.shouldError=function(){return null},t.shouldSuspend=function(){return!1},t.updateContainer=function(c,u,m,x){var S=u.current,Q=Li(),X=bo(S);return m=aB(m),u.context===null?u.context=m:u.pendingContext=m,u=Ys(Q,X),u.payload={element:c},x=x===void 0?null:x,x!==null&&(u.callback=x),Ro(S,u),c=Pr(S,X,Q),c!==null&&md(c,S,X),X},t};xT.exports=AO;var hO=xT.exports;const dO=L1(hO),yI={},fO=n=>void Object.assign(yI,n);function pO(n,e){function t(h,{args:d=[],attach:f,...g},E){let v=`${h[0].toUpperCase()}${h.slice(1)}`,C;if(h==="primitive"){if(g.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const p=g.object;C=Gc(p,{type:h,root:E,attach:f,primitive:!0})}else{const p=yI[v];if(!p)throw new Error(`R3F: ${v} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(d))throw new Error("R3F: The args prop must be an array!");C=Gc(new p(...d),{type:h,root:E,attach:f,memoizedProps:{args:d}})}return C.__r3f.attach===void 0&&(C instanceof Pt?C.__r3f.attach="geometry":C instanceof di&&(C.__r3f.attach="material")),v!=="inject"&&YE(C,g),C}function i(h,d){let f=!1;if(d){var g,E;(g=d.__r3f)!=null&&g.attach?WE(h,d,d.__r3f.attach):d.isObject3D&&h.isObject3D&&(h.add(d),f=!0),f||(E=h.__r3f)==null||E.objects.push(d),d.__r3f||Gc(d,{}),d.__r3f.parent=h,A1(d),Hc(d)}}function r(h,d,f){let g=!1;if(d){var E,v;if((E=d.__r3f)!=null&&E.attach)WE(h,d,d.__r3f.attach);else if(d.isObject3D&&h.isObject3D){d.parent=h,d.dispatchEvent({type:"added"});const C=h.children.filter(y=>y!==d),p=C.indexOf(f);h.children=[...C.slice(0,p),d,...C.slice(p)],g=!0}g||(v=h.__r3f)==null||v.objects.push(d),d.__r3f||Gc(d,{}),d.__r3f.parent=h,A1(d),Hc(d)}}function s(h,d,f=!1){h&&[...h].forEach(g=>o(d,g,f))}function o(h,d,f){if(d){var g,E,v;if(d.__r3f&&(d.__r3f.parent=null),(g=h.__r3f)!=null&&g.objects&&(h.__r3f.objects=h.__r3f.objects.filter(B=>B!==d)),(E=d.__r3f)!=null&&E.attach)tw(h,d,d.__r3f.attach);else if(d.isObject3D&&h.isObject3D){var C;h.remove(d),(C=d.__r3f)!=null&&C.root&&IO(d.__r3f.root,d)}const y=(v=d.__r3f)==null?void 0:v.primitive,I=!y&&(f===void 0?d.dispose!==null:f);if(!y){var p;s((p=d.__r3f)==null?void 0:p.objects,d,I),s(d.children,d,I)}if(delete d.__r3f,I&&d.dispose&&d.type!=="Scene"){const B=()=>{try{d.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?c1.unstable_scheduleCallback(c1.unstable_IdlePriority,B):B()}Hc(h)}}function a(h,d,f,g){var E;const v=(E=h.__r3f)==null?void 0:E.parent;if(!v)return;const C=t(d,f,h.__r3f.root);if(h.children){for(const p of h.children)p.__r3f&&i(C,p);h.children=h.children.filter(p=>!p.__r3f)}h.__r3f.objects.forEach(p=>i(C,p)),h.__r3f.objects=[],h.__r3f.autoRemovedBeforeAppend||o(v,h),C.parent&&(C.__r3f.autoRemovedBeforeAppend=!0),i(v,C),C.raycast&&C.__r3f.eventCount&&C.__r3f.root.getState().internal.interaction.push(C),[g,g.alternate].forEach(p=>{p!==null&&(p.stateNode=C,p.ref&&(typeof p.ref=="function"?p.ref(C):p.ref.current=C))})}const l=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:dO({createInstance:t,removeChild:o,appendChild:i,appendInitialChild:i,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(h,d)=>{if(!d)return;const f=h.getState().scene;f.__r3f&&(f.__r3f.root=h,i(f,d))},removeChildFromContainer:(h,d)=>{d&&o(h.getState().scene,d)},insertInContainerBefore:(h,d,f)=>{if(!d||!f)return;const g=h.getState().scene;g.__r3f&&r(g,d,f)},getRootHostContext:()=>null,getChildHostContext:h=>h,finalizeInitialChildren(h){var d;return!!((d=h==null?void 0:h.__r3f)!=null?d:{}).handlers},prepareUpdate(h,d,f,g){var E;if(((E=h==null?void 0:h.__r3f)!=null?E:{}).primitive&&g.object&&g.object!==h)return[!0];{const{args:C=[],children:p,...y}=g,{args:I=[],children:B,...R}=f;if(!Array.isArray(C))throw new Error("R3F: the args prop must be an array!");if(C.some((T,U)=>T!==I[U]))return[!0];const w=DT(h,y,R,!0);return w.changes.length?[!1,w]:null}},commitUpdate(h,[d,f],g,E,v,C){d?a(h,g,v,C):YE(h,f)},commitMount(h,d,f,g){var E;const v=(E=h.__r3f)!=null?E:{};h.raycast&&v.handlers&&v.eventCount&&h.__r3f.root.getState().internal.interaction.push(h)},getPublicInstance:h=>h,prepareForCommit:()=>null,preparePortalMount:h=>Gc(h.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(h){var d;const{attach:f,parent:g}=(d=h.__r3f)!=null?d:{};f&&g&&tw(g,h,f),h.isObject3D&&(h.visible=!1),Hc(h)},unhideInstance(h,d){var f;const{attach:g,parent:E}=(f=h.__r3f)!=null?f:{};g&&E&&WE(E,h,g),(h.isObject3D&&d.visible==null||d.visible)&&(h.visible=!0),Hc(h)},createTextInstance:l,hideTextInstance:l,unhideTextInstance:l,getCurrentEventPriority:()=>e?e():ou.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&Sn.fun(performance.now)?performance.now:Sn.fun(Date.now)?Date.now:()=>0,scheduleTimeout:Sn.fun(setTimeout)?setTimeout:void 0,cancelTimeout:Sn.fun(clearTimeout)?clearTimeout:void 0}),applyProps:YE}}var q_,Z_;const VE=n=>"colorSpace"in n||"outputColorSpace"in n,_T=()=>{var n;return(n=yI.ColorManagement)!=null?n:null},wT=n=>n&&n.isOrthographicCamera,gO=n=>n&&n.hasOwnProperty("current"),nd=typeof window<"u"&&((q_=window.document)!=null&&q_.createElement||((Z_=window.navigator)==null?void 0:Z_.product)==="ReactNative")?H.useLayoutEffect:H.useEffect;function MT(n){const e=H.useRef(n);return nd(()=>void(e.current=n),[n]),e}function mO({set:n}){return nd(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}class QT extends H.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}QT.getDerivedStateFromError=()=>({error:!0});const RT="__default",$_=new Map,EO=n=>n&&!!n.memoized&&!!n.changes;function TT(n){var e;const t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}const xA=n=>{var e;return(e=n.__r3f)==null?void 0:e.root.getState()},Sn={obj:n=>n===Object(n)&&!Sn.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(Sn.str(n)||Sn.num(n))return n===e;const s=Sn.obj(n);if(s&&i==="reference")return n===e;const o=Sn.arr(n);if(o&&t==="reference")return n===e;if((o||s)&&n===e)return!0;let a;for(a in n)if(!(a in e))return!1;if(s&&t==="shallow"&&i==="shallow"){for(a in r?e:n)if(!Sn.equ(n[a],e[a],{strict:r,objects:"reference"}))return!1}else for(a in r?e:n)if(n[a]!==e[a])return!1;if(Sn.und(a)){if(o&&n.length===0&&e.length===0||s&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function CO(n){n.dispose&&n.type!=="Scene"&&n.dispose();for(const e in n)e.dispose==null||e.dispose(),delete n[e]}function Gc(n,e){const t=n;return t.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},n}function u1(n,e){let t=n;if(e.includes("-")){const i=e.split("-"),r=i.pop();return t=i.reduce((s,o)=>s[o],n),{target:t,key:r}}else return{target:t,key:e}}const ew=/-\d+$/;function WE(n,e,t){if(Sn.str(t)){if(ew.test(t)){const s=t.replace(ew,""),{target:o,key:a}=u1(n,s);Array.isArray(o[a])||(o[a]=[])}const{target:i,key:r}=u1(n,t);e.__r3f.previousAttach=i[r],i[r]=e}else e.__r3f.previousAttach=t(n,e)}function tw(n,e,t){var i,r;if(Sn.str(t)){const{target:s,key:o}=u1(n,t),a=e.__r3f.previousAttach;a===void 0?delete s[o]:s[o]=a}else(i=e.__r3f)==null||i.previousAttach==null||i.previousAttach(n,e);(r=e.__r3f)==null||delete r.previousAttach}function DT(n,{children:e,key:t,ref:i,...r},{children:s,key:o,ref:a,...l}={},A=!1){var h;const d=(h=n==null?void 0:n.__r3f)!=null?h:{},f=Object.entries(r),g=[];if(A){const v=Object.keys(l);for(let C=0;C{var p;if((p=n.__r3f)!=null&&p.primitive&&v==="object"||Sn.equ(C,l[v]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(v))return g.push([v,C,!0,[]]);let y=[];v.includes("-")&&(y=v.split("-")),g.push([v,C,!1,y]);for(const I in r){const B=r[I];I.startsWith(`${v}-`)&&g.push([I,B,!1,I.split("-")])}});const E={...r};return d.memoizedProps&&d.memoizedProps.args&&(E.args=d.memoizedProps.args),d.memoizedProps&&d.memoizedProps.attach&&(E.attach=d.memoizedProps.attach),{memoized:E,changes:g}}const yO=typeof process<"u"&&!1;function YE(n,e){var t,i,r;const s=(t=n.__r3f)!=null?t:{},o=s.root,a=(i=o==null||o.getState==null?void 0:o.getState())!=null?i:{},{memoized:l,changes:A}=EO(e)?e:DT(n,e),h=s.eventCount;n.__r3f&&(n.__r3f.memoizedProps=l);for(let f=0;fI[B],n),!(y&&y.set))){const[I,...B]=C.reverse();p=B.reverse().reduce((R,w)=>R[w],n),g=I}if(E===RT+"remove")if(p.constructor){let I=$_.get(p.constructor);I||(I=new p.constructor,$_.set(p.constructor,I)),E=I[g]}else E=0;if(v)E?s.handlers[g]=E:delete s.handlers[g],s.eventCount=Object.keys(s.handlers).length;else if(y&&y.set&&(y.copy||y instanceof Dl)){if(Array.isArray(E))y.fromArray?y.fromArray(E):y.set(...E);else if(y.copy&&E&&E.constructor&&(yO?y.constructor.name===E.constructor.name:y.constructor===E.constructor))y.copy(E);else if(E!==void 0){const I=y instanceof je;!I&&y.setScalar?y.setScalar(E):y instanceof Dl&&E instanceof Dl?y.mask=E.mask:y.set(E),!_T()&&!a.linear&&I&&y.convertSRGBToLinear()}}else if(p[g]=E,p[g]instanceof wn&&p[g].format===Gi&&p[g].type===Ls){const I=p[g];VE(I)&&VE(a.gl)?I.colorSpace=a.gl.outputColorSpace:I.encoding=a.gl.outputEncoding}Hc(n)}if(s.parent&&a.internal&&n.raycast&&h!==s.eventCount){const f=a.internal.interaction.indexOf(n);f>-1&&a.internal.interaction.splice(f,1),s.eventCount&&a.internal.interaction.push(n)}return!(A.length===1&&A[0][0]==="onUpdate")&&A.length&&(r=n.__r3f)!=null&&r.parent&&A1(n),n}function Hc(n){var e,t;const i=(e=n.__r3f)==null||(t=e.root)==null||t.getState==null?void 0:t.getState();i&&i.internal.frames===0&&i.invalidate()}function A1(n){n.onUpdate==null||n.onUpdate(n)}function bT(n,e){n.manual||(wT(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix(),n.updateMatrixWorld())}function up(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function vO(){var n;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return ou.DefaultEventPriority;switch((n=e.event)==null?void 0:n.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return ou.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return ou.ContinuousEventPriority;default:return ou.DefaultEventPriority}}function PT(n,e,t,i){const r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function IO(n,e){const{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{PT(t.capturedMap,e,i,r)})}function xO(n){function e(l){const{internal:A}=n.getState(),h=l.offsetX-A.initialClick[0],d=l.offsetY-A.initialClick[1];return Math.round(Math.sqrt(h*h+d*d))}function t(l){return l.filter(A=>["Move","Over","Enter","Out","Leave"].some(h=>{var d;return(d=A.__r3f)==null?void 0:d.handlers["onPointer"+h]}))}function i(l,A){const h=n.getState(),d=new Set,f=[],g=A?A(h.internal.interaction):h.internal.interaction;for(let p=0;p{const I=xA(p.object),B=xA(y.object);return!I||!B?p.distance-y.distance:B.events.priority-I.events.priority||p.distance-y.distance}).filter(p=>{const y=up(p);return d.has(y)?!1:(d.add(y),!0)});h.events.filter&&(v=h.events.filter(v,h));for(const p of v){let y=p.object;for(;y;){var C;(C=y.__r3f)!=null&&C.eventCount&&f.push({...p,eventObject:y}),y=y.parent}}if("pointerId"in l&&h.internal.capturedMap.has(l.pointerId))for(let p of h.internal.capturedMap.get(l.pointerId).values())d.has(up(p.intersection))||f.push(p.intersection);return f}function r(l,A,h,d){const f=n.getState();if(l.length){const g={stopped:!1};for(const E of l){const v=xA(E.object)||f,{raycaster:C,pointer:p,camera:y,internal:I}=v,B=new G(p.x,p.y,0).unproject(y),R=M=>{var P,q;return(P=(q=I.capturedMap.get(M))==null?void 0:q.has(E.eventObject))!=null?P:!1},w=M=>{const P={intersection:E,target:A.target};I.capturedMap.has(M)?I.capturedMap.get(M).set(E.eventObject,P):I.capturedMap.set(M,new Map([[E.eventObject,P]])),A.target.setPointerCapture(M)},T=M=>{const P=I.capturedMap.get(M);P&&PT(I.capturedMap,E.eventObject,P,M)};let U={};for(let M in A){let P=A[M];typeof P!="function"&&(U[M]=P)}let K={...E,...U,pointer:p,intersections:l,stopped:g.stopped,delta:h,unprojectedPoint:B,ray:C.ray,camera:y,stopPropagation(){const M="pointerId"in A&&I.capturedMap.get(A.pointerId);if((!M||M.has(E.eventObject))&&(K.stopped=g.stopped=!0,I.hovered.size&&Array.from(I.hovered.values()).find(P=>P.eventObject===E.eventObject))){const P=l.slice(0,l.indexOf(E));s([...P,E])}},target:{hasPointerCapture:R,setPointerCapture:w,releasePointerCapture:T},currentTarget:{hasPointerCapture:R,setPointerCapture:w,releasePointerCapture:T},nativeEvent:A};if(d(K),g.stopped===!0)break}}return l}function s(l){const{internal:A}=n.getState();for(const h of A.hovered.values())if(!l.length||!l.find(d=>d.object===h.object&&d.index===h.index&&d.instanceId===h.instanceId)){const f=h.eventObject.__r3f,g=f==null?void 0:f.handlers;if(A.hovered.delete(up(h)),f!=null&&f.eventCount){const E={...h,intersections:l};g.onPointerOut==null||g.onPointerOut(E),g.onPointerLeave==null||g.onPointerLeave(E)}}}function o(l,A){for(let h=0;hs([]);case"onLostPointerCapture":return A=>{const{internal:h}=n.getState();"pointerId"in A&&h.capturedMap.has(A.pointerId)&&requestAnimationFrame(()=>{h.capturedMap.has(A.pointerId)&&(h.capturedMap.delete(A.pointerId),s([]))})}}return function(h){const{onPointerMissed:d,internal:f}=n.getState();f.lastEvent.current=h;const g=l==="onPointerMove",E=l==="onClick"||l==="onContextMenu"||l==="onDoubleClick",C=i(h,g?t:void 0),p=E?e(h):0;l==="onPointerDown"&&(f.initialClick=[h.offsetX,h.offsetY],f.initialHits=C.map(I=>I.eventObject)),E&&!C.length&&p<=2&&(o(h,f.interaction),d&&d(h)),g&&s(C);function y(I){const B=I.eventObject,R=B.__r3f,w=R==null?void 0:R.handlers;if(R!=null&&R.eventCount)if(g){if(w.onPointerOver||w.onPointerEnter||w.onPointerOut||w.onPointerLeave){const T=up(I),U=f.hovered.get(T);U?U.stopped&&I.stopPropagation():(f.hovered.set(T,I),w.onPointerOver==null||w.onPointerOver(I),w.onPointerEnter==null||w.onPointerEnter(I))}w.onPointerMove==null||w.onPointerMove(I)}else{const T=w[l];T?(!E||f.initialHits.includes(B))&&(o(h,f.interaction.filter(U=>!f.initialHits.includes(U))),T(I)):E&&f.initialHits.includes(B)&&o(h,f.interaction.filter(U=>!f.initialHits.includes(U)))}}r(C,h,p,y)}}return{handlePointer:a}}const BO=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],NT=n=>!!(n!=null&&n.render),vI=H.createContext(null),SO=(n,e)=>{const t=IT((a,l)=>{const A=new G,h=new G,d=new G;function f(p=l().camera,y=h,I=l().size){const{width:B,height:R,top:w,left:T}=I,U=B/R;y instanceof G?d.copy(y):d.set(...y);const K=p.getWorldPosition(A).distanceTo(d);if(wT(p))return{width:B/p.zoom,height:R/p.zoom,top:w,left:T,factor:1,distance:K,aspect:U};{const M=p.fov*Math.PI/180,P=2*Math.tan(M/2)*K,q=P*(B/R);return{width:q,height:P,top:w,left:T,factor:B/q,distance:K,aspect:U}}}let g;const E=p=>a(y=>({performance:{...y.performance,current:p}})),v=new Se;return{set:a,get:l,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(p=1)=>n(l(),p),advance:(p,y)=>e(p,y,l()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new gI,pointer:v,mouse:v,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const p=l();g&&clearTimeout(g),p.performance.current!==p.performance.min&&E(p.performance.min),g=setTimeout(()=>E(l().performance.max),p.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:f},setEvents:p=>a(y=>({...y,events:{...y.events,...p}})),setSize:(p,y,I,B,R)=>{const w=l().camera,T={width:p,height:y,top:B||0,left:R||0,updateStyle:I};a(U=>({size:T,viewport:{...U.viewport,...f(w,h,T)}}))},setDpr:p=>a(y=>{const I=TT(p);return{viewport:{...y.viewport,dpr:I,initialDpr:y.viewport.initialDpr||I}}}),setFrameloop:(p="always")=>{const y=l().clock;y.stop(),y.elapsedTime=0,p!=="never"&&(y.start(),y.elapsedTime=0),a(()=>({frameloop:p}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:H.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(p,y,I)=>{const B=l().internal;return B.priority=B.priority+(y>0?1:0),B.subscribers.push({ref:p,priority:y,store:I}),B.subscribers=B.subscribers.sort((R,w)=>R.priority-w.priority),()=>{const R=l().internal;R!=null&&R.subscribers&&(R.priority=R.priority-(y>0?1:0),R.subscribers=R.subscribers.filter(w=>w.ref!==p))}}}}}),i=t.getState();let r=i.size,s=i.viewport.dpr,o=i.camera;return t.subscribe(()=>{const{camera:a,size:l,viewport:A,gl:h,set:d}=t.getState();if(l.width!==r.width||l.height!==r.height||A.dpr!==s){var f;r=l,s=A.dpr,bT(a,l),h.setPixelRatio(A.dpr);const g=(f=l.updateStyle)!=null?f:typeof HTMLCanvasElement<"u"&&h.domElement instanceof HTMLCanvasElement;h.setSize(l.width,l.height,g)}a!==o&&(o=a,d(g=>({viewport:{...g.viewport,...g.viewport.getCurrentViewport(a)}})))}),t.subscribe(a=>n(a)),t};let Ap,_O=new Set,wO=new Set,MO=new Set;function XE(n,e){if(n.size)for(const{callback:t}of n.values())t(e)}function BA(n,e){switch(n){case"before":return XE(_O,e);case"after":return XE(wO,e);case"tail":return XE(MO,e)}}let JE,jE;function KE(n,e,t){let i=e.clock.getDelta();for(e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),JE=e.internal.subscribers,Ap=0;Ap0)&&!((A=r.gl.xr)!=null&&A.isPresenting)&&(t+=KE(l,r))}if(BA("after",l),t===0)return BA("tail",l),e=!1,cancelAnimationFrame(i)}function o(l,A=1){var h;if(!l)return n.forEach(d=>o(d.store.getState()),A);(h=l.gl.xr)!=null&&h.isPresenting||!l.internal.active||l.frameloop==="never"||(l.internal.frames=Math.min(60,l.internal.frames+A),e||(e=!0,requestAnimationFrame(s)))}function a(l,A=!0,h,d){if(A&&BA("before",l),h)KE(l,h,d);else for(const f of n.values())KE(l,f.store.getState());A&&BA("after",l)}return{loop:s,invalidate:o,advance:a}}function Bo(){const n=H.useContext(vI);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function Im(n=t=>t,e){return Bo()(n,e)}function jr(n,e=0){const t=Bo(),i=t.getState().internal.subscribe,r=MT(n);return nd(()=>i(r,e,t),[e,i,t]),null}const _u=new Map,{invalidate:nw,advance:iw}=QO(_u),{reconciler:Fh,applyProps:Uc}=pO(_u,vO),Fc={objects:"shallow",strict:!1},RO=(n,e)=>{const t=typeof n=="function"?n(e):n;return NT(t)?t:new qv({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...n})};function TO(n,e){const t=typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement;if(e){const{width:i,height:r,top:s,left:o,updateStyle:a=t}=e;return{width:i,height:r,top:s,left:o,updateStyle:a}}else if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){const{width:i,height:r,top:s,left:o}=n.parentElement.getBoundingClientRect();return{width:i,height:r,top:s,left:o,updateStyle:t}}else if(typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0,updateStyle:t};return{width:0,height:0,top:0,left:0}}function DO(n){const e=_u.get(n),t=e==null?void 0:e.fiber,i=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,s=i||SO(nw,iw),o=t||Fh.createContainer(s,ou.ConcurrentRoot,null,!1,null,"",r,null);e||_u.set(n,{fiber:o,store:s});let a,l=!1,A;return{configure(h={}){let{gl:d,size:f,scene:g,events:E,onCreated:v,shadows:C=!1,linear:p=!1,flat:y=!1,legacy:I=!1,orthographic:B=!1,frameloop:R="always",dpr:w=[1,2],performance:T,raycaster:U,camera:K,onPointerMissed:M}=h,P=s.getState(),q=P.gl;P.gl||P.set({gl:q=RO(d,n)});let ge=P.raycaster;ge||P.set({raycaster:ge=new td});const{params:J,...ce}=U||{};if(Sn.equ(ce,ge,Fc)||Uc(ge,{...ce}),Sn.equ(J,ge.params,Fc)||Uc(ge,{params:{...ge.params,...J}}),!P.camera||P.camera===A&&!Sn.equ(A,K,Fc)){A=K;const ye=K instanceof Xh,Oe=ye?K:B?new Kh(0,0,0,0,.1,1e3):new ni(75,0,.1,1e3);ye||(Oe.position.z=5,K&&Uc(Oe,K),!P.camera&&!(K!=null&&K.rotation)&&Oe.lookAt(0,0,0)),P.set({camera:Oe}),ge.camera=Oe}if(!P.scene){let ye;g instanceof Rh?ye=g:(ye=new Rh,g&&Uc(ye,g)),P.set({scene:Gc(ye)})}if(!P.xr){var se;const ye=(z,O)=>{const k=s.getState();k.frameloop!=="never"&&iw(z,!0,k,O)},Oe=()=>{const z=s.getState();z.gl.xr.enabled=z.gl.xr.isPresenting,z.gl.xr.setAnimationLoop(z.gl.xr.isPresenting?ye:null),z.gl.xr.isPresenting||nw(z)},Y={connect(){const z=s.getState().gl;z.xr.addEventListener("sessionstart",Oe),z.xr.addEventListener("sessionend",Oe)},disconnect(){const z=s.getState().gl;z.xr.removeEventListener("sessionstart",Oe),z.xr.removeEventListener("sessionend",Oe)}};typeof((se=q.xr)==null?void 0:se.addEventListener)=="function"&&Y.connect(),P.set({xr:Y})}if(q.shadowMap){const ye=q.shadowMap.enabled,Oe=q.shadowMap.type;if(q.shadowMap.enabled=!!C,Sn.boo(C))q.shadowMap.type=YA;else if(Sn.str(C)){var de;const Y={basic:uQ,percentage:jg,soft:YA,variance:is};q.shadowMap.type=(de=Y[C])!=null?de:YA}else Sn.obj(C)&&Object.assign(q.shadowMap,C);(ye!==q.shadowMap.enabled||Oe!==q.shadowMap.type)&&(q.shadowMap.needsUpdate=!0)}const F=_T();F&&("enabled"in F?F.enabled=!I:"legacyMode"in F&&(F.legacyMode=I)),Uc(q,{outputEncoding:p?3e3:3001,toneMapping:y?Ns:Dv}),P.legacy!==I&&P.set(()=>({legacy:I})),P.linear!==p&&P.set(()=>({linear:p})),P.flat!==y&&P.set(()=>({flat:y})),d&&!Sn.fun(d)&&!NT(d)&&!Sn.equ(d,q,Fc)&&Uc(q,d),E&&!P.events.handlers&&P.set({events:E(s)});const ue=TO(n,f);return Sn.equ(ue,P.size,Fc)||P.setSize(ue.width,ue.height,ue.updateStyle,ue.top,ue.left),w&&P.viewport.dpr!==TT(w)&&P.setDpr(w),P.frameloop!==R&&P.setFrameloop(R),P.onPointerMissed||P.set({onPointerMissed:M}),T&&!Sn.equ(T,P.performance,Fc)&&P.set(ye=>({performance:{...ye.performance,...T}})),a=v,l=!0,this},render(h){return l||this.configure(),Fh.updateContainer(H.createElement(bO,{store:s,children:h,onCreated:a,rootElement:n}),o,null,()=>{}),s},unmount(){LT(n)}}}function bO({store:n,children:e,onCreated:t,rootElement:i}){return nd(()=>{const r=n.getState();r.set(s=>({internal:{...s.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),H.createElement(vI.Provider,{value:n},e)}function LT(n,e){const t=_u.get(n),i=t==null?void 0:t.fiber;if(i){const r=t==null?void 0:t.store.getState();r&&(r.internal.active=!1),Fh.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{var s,o,a,l;r.events.disconnect==null||r.events.disconnect(),(s=r.gl)==null||(o=s.renderLists)==null||o.dispose==null||o.dispose(),(a=r.gl)==null||a.forceContextLoss==null||a.forceContextLoss(),(l=r.gl)!=null&&l.xr&&r.xr.disconnect(),CO(r),_u.delete(n),e&&e(n)}catch{}},500)})}}function UT(n,e,t){return H.createElement(PO,{key:e.uuid,children:n,container:e,state:t})}function PO({state:n={},children:e,container:t}){const{events:i,size:r,...s}=n,o=Bo(),[a]=H.useState(()=>new td),[l]=H.useState(()=>new Se),A=H.useCallback((d,f)=>{const g={...d};Object.keys(d).forEach(v=>{(BO.includes(v)||d[v]!==f[v]&&f[v])&&delete g[v]});let E;if(f&&r){const v=f.camera;E=d.viewport.getCurrentViewport(v,new G,r),v!==d.camera&&bT(v,r)}return{...g,scene:t,raycaster:a,pointer:l,mouse:l,previousRoot:o,events:{...d.events,...f==null?void 0:f.events,...i},size:{...d.size,...r},viewport:{...d.viewport,...E},...s}},[n]),[h]=H.useState(()=>{const d=o.getState();return IT((g,E)=>({...d,scene:t,raycaster:a,pointer:l,mouse:l,previousRoot:o,events:{...d.events,...i},size:{...d.size,...r},...s,set:g,get:E,setEvents:v=>g(C=>({...C,events:{...C.events,...v}}))}))});return H.useEffect(()=>{const d=o.subscribe(f=>h.setState(g=>A(f,g)));return()=>{d(),h.destroy()}},[]),H.useEffect(()=>{h.setState(d=>A(o.getState(),d))},[A]),H.createElement(H.Fragment,null,Fh.createPortal(H.createElement(vI.Provider,{value:h},e),h,null))}Fh.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:H.version});function _g(){return _g=Object.assign?Object.assign.bind():function(n){for(var e=1;e=0?i=setTimeout(l,e-h):(i=null,t||(a=n.apply(s,r),s=r=null))}var A=function(){s=this,r=arguments,o=Date.now();var h=t&&!i;return i||(i=setTimeout(l,e)),h&&(a=n.apply(s,r),s=r=null),a};return A.clear=function(){i&&(clearTimeout(i),i=null)},A.flush=function(){i&&(a=n.apply(s,r),s=r=null,clearTimeout(i),i=null)},A}h1.debounce=h1;var NO=h1;const rw=L1(NO);function LO(n){let{debounce:e,scroll:t,polyfill:i,offsetSize:r}=n===void 0?{debounce:0,scroll:!1,offsetSize:!1}:n;const s=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!s)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,a]=H.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),l=H.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),A=e?typeof e=="number"?e:e.scroll:null,h=e?typeof e=="number"?e:e.resize:null,d=H.useRef(!1);H.useEffect(()=>(d.current=!0,()=>void(d.current=!1)));const[f,g,E]=H.useMemo(()=>{const y=()=>{if(!l.current.element)return;const{left:I,top:B,width:R,height:w,bottom:T,right:U,x:K,y:M}=l.current.element.getBoundingClientRect(),P={left:I,top:B,width:R,height:w,bottom:T,right:U,x:K,y:M};l.current.element instanceof HTMLElement&&r&&(P.height=l.current.element.offsetHeight,P.width=l.current.element.offsetWidth),Object.freeze(P),d.current&&!OO(l.current.lastBounds,P)&&a(l.current.lastBounds=P)};return[y,h?rw(y,h):y,A?rw(y,A):y]},[a,r,A,h]);function v(){l.current.scrollContainers&&(l.current.scrollContainers.forEach(y=>y.removeEventListener("scroll",E,!0)),l.current.scrollContainers=null),l.current.resizeObserver&&(l.current.resizeObserver.disconnect(),l.current.resizeObserver=null)}function C(){l.current.element&&(l.current.resizeObserver=new s(E),l.current.resizeObserver.observe(l.current.element),t&&l.current.scrollContainers&&l.current.scrollContainers.forEach(y=>y.addEventListener("scroll",E,{capture:!0,passive:!0})))}const p=y=>{!y||y===l.current.element||(v(),l.current.element=y,l.current.scrollContainers=FT(y),C())};return FO(E,!!t),UO(g),H.useEffect(()=>{v(),C()},[t,E,g]),H.useEffect(()=>v,[]),[p,o,f]}function UO(n){H.useEffect(()=>{const e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function FO(n,e){H.useEffect(()=>{if(e){const t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function FT(n){const e=[];if(!n||n===document.body)return e;const{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(s=>s==="auto"||s==="scroll")&&e.push(n),[...e,...FT(n.parentElement)]}const kO=["x","y","top","bottom","left","right","width","height"],OO=(n,e)=>kO.every(t=>n[t]===e[t]);var GO=Object.defineProperty,HO=Object.defineProperties,zO=Object.getOwnPropertyDescriptors,sw=Object.getOwnPropertySymbols,VO=Object.prototype.hasOwnProperty,WO=Object.prototype.propertyIsEnumerable,ow=(n,e,t)=>e in n?GO(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,aw=(n,e)=>{for(var t in e||(e={}))VO.call(e,t)&&ow(n,t,e[t]);if(sw)for(var t of sw(e))WO.call(e,t)&&ow(n,t,e[t]);return n},YO=(n,e)=>HO(n,zO(e));function kT(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){const r=kT(i,e,t);if(r)return r;i=e?null:i.sibling}}function OT(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}const II=OT(H.createContext(null));class GT extends H.Component{render(){return H.createElement(II.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:lw,ReactCurrentDispatcher:cw}=H.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function XO(){const n=H.useContext(II);if(n===null)throw new Error("its-fine: useFiber must be called within a !");const e=H.useId();return H.useMemo(()=>{for(const i of[lw==null?void 0:lw.current,n,n==null?void 0:n.alternate]){if(!i)continue;const r=kT(i,!1,s=>{let o=s.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[n,e])}function JO(){var n,e;const t=XO(),[i]=H.useState(()=>new Map);i.clear();let r=t;for(;r;){const s=(n=r.type)==null?void 0:n._context;s&&s!==II&&!i.has(s)&&i.set(s,(e=cw==null?void 0:cw.current)==null?void 0:e.readContext(OT(s))),r=r.return}return i}function jO(){const n=JO();return H.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>H.createElement(e,null,H.createElement(t.Provider,YO(aw({},i),{value:n.get(t)}))),e=>H.createElement(GT,aw({},e))),[n])}const qE={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function KO(n){const{handlePointer:e}=xO(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(qE).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;const{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{var i;const{set:r,events:s}=n.getState();s.disconnect==null||s.disconnect(),r(o=>({events:{...o.events,connected:t}})),Object.entries((i=s.handlers)!=null?i:[]).forEach(([o,a])=>{const[l,A]=qE[o];t.addEventListener(l,a,{passive:A})})},disconnect:()=>{const{set:t,events:i}=n.getState();if(i.connected){var r;Object.entries((r=i.handlers)!=null?r:[]).forEach(([s,o])=>{if(i&&i.connected instanceof HTMLElement){const[a]=qE[s];i.connected.removeEventListener(a,o)}}),t(s=>({events:{...s.events,connected:void 0}}))}}}}const qO=H.forwardRef(function({children:e,fallback:t,resize:i,style:r,gl:s,events:o=KO,eventSource:a,eventPrefix:l,shadows:A,linear:h,flat:d,legacy:f,orthographic:g,frameloop:E,dpr:v,performance:C,raycaster:p,camera:y,scene:I,onPointerMissed:B,onCreated:R,...w},T){H.useMemo(()=>fO(lO),[]);const U=jO(),[K,M]=LO({scroll:!0,debounce:{scroll:50,resize:0},...i}),P=H.useRef(null),q=H.useRef(null);H.useImperativeHandle(T,()=>P.current);const ge=MT(B),[J,ce]=H.useState(!1),[se,de]=H.useState(!1);if(J)throw J;if(se)throw se;const F=H.useRef(null);nd(()=>{const te=P.current;M.width>0&&M.height>0&&te&&(F.current||(F.current=DO(te)),F.current.configure({gl:s,events:o,shadows:A,linear:h,flat:d,legacy:f,orthographic:g,frameloop:E,dpr:v,performance:C,raycaster:p,camera:y,scene:I,size:M,onPointerMissed:(...ue)=>ge.current==null?void 0:ge.current(...ue),onCreated:ue=>{ue.events.connect==null||ue.events.connect(a?gO(a)?a.current:a:q.current),l&&ue.setEvents({compute:(ye,Oe)=>{const Y=ye[l+"X"],z=ye[l+"Y"];Oe.pointer.set(Y/Oe.size.width*2-1,-(z/Oe.size.height)*2+1),Oe.raycaster.setFromCamera(Oe.pointer,Oe.camera)}}),R==null||R(ue)}}),F.current.render(H.createElement(U,null,H.createElement(QT,{set:de},H.createElement(H.Suspense,{fallback:H.createElement(mO,{set:ce})},e)))))}),H.useEffect(()=>{const te=P.current;if(te)return()=>LT(te)},[]);const ee=a?"none":"auto";return H.createElement("div",_g({ref:q,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ee,...r}},w),H.createElement("div",{ref:K,style:{width:"100%",height:"100%"}},H.createElement("canvas",{ref:P,style:{display:"block"}},t)))}),ZO=H.forwardRef(function(e,t){return H.createElement(GT,null,H.createElement(qO,_g({},e,{ref:t})))});function xm(){throw new Error("Cycle detected")}var $O=Symbol.for("preact-signals");function Bm(){if(ga>1)ga--;else{for(var n,e=!1;qA!==void 0;){var t=qA;for(qA=void 0,d1++;t!==void 0;){var i=t.o;if(t.o=void 0,t.f&=-3,!(8&t.f)&&VT(t))try{t.c()}catch(r){e||(n=r,e=!0)}t=i}}if(d1=0,ga--,e)throw n}}function HT(n){if(ga>0)return n();ga++;try{return n()}finally{Bm()}}var Ln=void 0,qA=void 0,ga=0,d1=0,wg=0;function zT(n){if(Ln!==void 0){var e=n.n;if(e===void 0||e.t!==Ln)return e={i:0,S:n,p:Ln.s,n:void 0,t:Ln,e:void 0,x:void 0,r:e},Ln.s!==void 0&&(Ln.s.n=e),Ln.s=e,n.n=e,32&Ln.f&&n.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=Ln.s,e.n=void 0,Ln.s.n=e,Ln.s=e),e}}function Wn(n){this.v=n,this.i=0,this.n=void 0,this.t=void 0}Wn.prototype.brand=$O;Wn.prototype.h=function(){return!0};Wn.prototype.S=function(n){this.t!==n&&n.e===void 0&&(n.x=this.t,this.t!==void 0&&(this.t.e=n),this.t=n)};Wn.prototype.U=function(n){if(this.t!==void 0){var e=n.e,t=n.x;e!==void 0&&(e.x=t,n.e=void 0),t!==void 0&&(t.e=e,n.x=void 0),n===this.t&&(this.t=t)}};Wn.prototype.subscribe=function(n){var e=this;return cn(function(){var t=e.value,i=32&this.f;this.f&=-33;try{n(t)}finally{this.f|=i}})};Wn.prototype.valueOf=function(){return this.value};Wn.prototype.toString=function(){return this.value+""};Wn.prototype.toJSON=function(){return this.value};Wn.prototype.peek=function(){return this.v};Object.defineProperty(Wn.prototype,"value",{get:function(){var n=zT(this);return n!==void 0&&(n.i=this.i),this.v},set:function(n){if(Ln instanceof Qa&&function(){throw new Error("Computed cannot have side-effects")}(),n!==this.v){d1>100&&xm(),this.v=n,this.i++,wg++,ga++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{Bm()}}}});function An(n){return new Wn(n)}function VT(n){for(var e=n.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function WT(n){for(var e=n.s;e!==void 0;e=e.n){var t=e.S.n;if(t!==void 0&&(e.r=t),e.S.n=e,e.i=-1,e.n===void 0){n.s=e;break}}}function YT(n){for(var e=n.s,t=void 0;e!==void 0;){var i=e.p;e.i===-1?(e.S.U(e),i!==void 0&&(i.n=e.n),e.n!==void 0&&(e.n.p=i)):t=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=i}n.s=t}function Qa(n){Wn.call(this,void 0),this.x=n,this.s=void 0,this.g=wg-1,this.f=4}(Qa.prototype=new Wn).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===wg))return!0;if(this.g=wg,this.f|=1,this.i>0&&!VT(this))return this.f&=-2,!0;var n=Ln;try{WT(this),Ln=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(t){this.v=t,this.f|=16,this.i++}return Ln=n,YT(this),this.f&=-2,!0};Qa.prototype.S=function(n){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}Wn.prototype.S.call(this,n)};Qa.prototype.U=function(n){if(this.t!==void 0&&(Wn.prototype.U.call(this,n),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};Qa.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var n=this.t;n!==void 0;n=n.x)n.t.N()}};Qa.prototype.peek=function(){if(this.h()||xm(),16&this.f)throw this.v;return this.v};Object.defineProperty(Qa.prototype,"value",{get:function(){1&this.f&&xm();var n=zT(this);if(this.h(),n!==void 0&&(n.i=this.i),16&this.f)throw this.v;return this.v}});function $n(n){return new Qa(n)}function XT(n){var e=n.u;if(n.u=void 0,typeof e=="function"){ga++;var t=Ln;Ln=void 0;try{e()}catch(i){throw n.f&=-2,n.f|=8,xI(n),i}finally{Ln=t,Bm()}}}function xI(n){for(var e=n.s;e!==void 0;e=e.n)e.S.U(e);n.x=void 0,n.s=void 0,XT(n)}function eG(n){if(Ln!==this)throw new Error("Out-of-order effect");YT(this),Ln=n,this.f&=-2,8&this.f&&xI(this),Bm()}function id(n){this.x=n,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}id.prototype.c=function(){var n=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{n()}};id.prototype.S=function(){1&this.f&&xm(),this.f|=1,this.f&=-9,XT(this),WT(this),ga++;var n=Ln;return Ln=this,eG.bind(this,n)};id.prototype.N=function(){2&this.f||(this.f|=2,this.o=qA,qA=this)};id.prototype.d=function(){this.f|=8,1&this.f||xI(this)};function cn(n){var e=new id(n);try{e.c()}catch(t){throw e.d(),t}return e.d.bind(e)}function BI(n,e,t){const i=H.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=H.useMemo(()=>{let s={};return(o,a)=>{let l=0,A=!1;for(const h in s){if(!jT(s[h],o[h])){A=!0;break}++l}A||(A=l!=a),s=o,!(!A&&e.getProperty.peek()!=null)&&(e.getProperty.value=h=>f1(o[h]))}},[e]);JT(n,i,r,t)}function tG(n,e){const t=n.length;for(const i in e)for(let r=0;r{let r={},s=0;const o=(l,A)=>{if(A===void 0)return;const h=r[l];if(h===void 0&&++s,h==null||!(A instanceof Wn)){r[l]=A;return}if(Array.isArray(h)){h.push(A);return}r[l]=[h,A]};return{add:(l,A)=>{if(A!==void 0){if(i!=null){i(l,A,e,o);return}e(l)&&o(l,A)}},finish:()=>{t(r,s),s=0,r={}}}},[e,t,i]))}function jT(n,e){if(!Array.isArray(n))return n===e;if(!Array.isArray(e))return!1;const t=n.length;if(t!=e.length)return!1;for(let i=0;iAn(void 0),[]),r=H.useMemo(()=>({hasBatchedProperty:s=>e.includes(s),getProperty:i}),[e]);return BI(n,r,t),i}const p1=H.createContext(null);function rd(n,e){const t=H.useContext(p1);t!=null&&e(t);const{classes:i}=n;if(Array.isArray(i)){const r=i.length;for(let s=0;stG(n,t))}function xn(n){const t={...H.useContext(p1)};for(const i in n){if(i==="children")continue;const r=n[i];r!=null&&(t[i]=r)}return b.jsx(p1.Provider,{value:t,children:n.children})}var ki={},SI={},Ut={};Object.defineProperty(Ut,"__esModule",{value:!0});Ut.default=Ut.Wrap=Ut.Unit=Ut.PrintOptions=Ut.PositionType=Ut.Overflow=Ut.NodeType=Ut.MeasureMode=Ut.LogLevel=Ut.Justify=Ut.Gutter=Ut.FlexDirection=Ut.ExperimentalFeature=Ut.Errata=Ut.Edge=Ut.Display=Ut.Direction=Ut.Dimension=Ut.Align=void 0;let ro=function(n){return n[n.Auto=0]="Auto",n[n.FlexStart=1]="FlexStart",n[n.Center=2]="Center",n[n.FlexEnd=3]="FlexEnd",n[n.Stretch=4]="Stretch",n[n.Baseline=5]="Baseline",n[n.SpaceBetween=6]="SpaceBetween",n[n.SpaceAround=7]="SpaceAround",n}({});Ut.Align=ro;let g1=function(n){return n[n.Width=0]="Width",n[n.Height=1]="Height",n}({});Ut.Dimension=g1;let Op=function(n){return n[n.Inherit=0]="Inherit",n[n.LTR=1]="LTR",n[n.RTL=2]="RTL",n}({});Ut.Direction=Op;let m1=function(n){return n[n.Flex=0]="Flex",n[n.None=1]="None",n}({});Ut.Display=m1;let Ss=function(n){return n[n.Left=0]="Left",n[n.Top=1]="Top",n[n.Right=2]="Right",n[n.Bottom=3]="Bottom",n[n.Start=4]="Start",n[n.End=5]="End",n[n.Horizontal=6]="Horizontal",n[n.Vertical=7]="Vertical",n[n.All=8]="All",n}({});Ut.Edge=Ss;let bA=function(n){return n[n.None=0]="None",n[n.StretchFlexBasis=1]="StretchFlexBasis",n[n.All=2147483647]="All",n[n.Classic=2147483646]="Classic",n}({});Ut.Errata=bA;let Gp=function(n){return n[n.WebFlexBasis=0]="WebFlexBasis",n[n.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",n[n.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",n}({});Ut.ExperimentalFeature=Gp;let PA=function(n){return n[n.Column=0]="Column",n[n.ColumnReverse=1]="ColumnReverse",n[n.Row=2]="Row",n[n.RowReverse=3]="RowReverse",n}({});Ut.FlexDirection=PA;let Hp=function(n){return n[n.Column=0]="Column",n[n.Row=1]="Row",n[n.All=2]="All",n}({});Ut.Gutter=Hp;let gl=function(n){return n[n.FlexStart=0]="FlexStart",n[n.Center=1]="Center",n[n.FlexEnd=2]="FlexEnd",n[n.SpaceBetween=3]="SpaceBetween",n[n.SpaceAround=4]="SpaceAround",n[n.SpaceEvenly=5]="SpaceEvenly",n}({});Ut.Justify=gl;let ml=function(n){return n[n.Error=0]="Error",n[n.Warn=1]="Warn",n[n.Info=2]="Info",n[n.Debug=3]="Debug",n[n.Verbose=4]="Verbose",n[n.Fatal=5]="Fatal",n}({});Ut.LogLevel=ml;let zp=function(n){return n[n.Undefined=0]="Undefined",n[n.Exactly=1]="Exactly",n[n.AtMost=2]="AtMost",n}({});Ut.MeasureMode=zp;let E1=function(n){return n[n.Default=0]="Default",n[n.Text=1]="Text",n}({});Ut.NodeType=E1;let Vp=function(n){return n[n.Visible=0]="Visible",n[n.Hidden=1]="Hidden",n[n.Scroll=2]="Scroll",n}({});Ut.Overflow=Vp;let Wp=function(n){return n[n.Static=0]="Static",n[n.Relative=1]="Relative",n[n.Absolute=2]="Absolute",n}({});Ut.PositionType=Wp;let Yp=function(n){return n[n.Layout=1]="Layout",n[n.Style=2]="Style",n[n.Children=4]="Children",n}({});Ut.PrintOptions=Yp;let NA=function(n){return n[n.Undefined=0]="Undefined",n[n.Point=1]="Point",n[n.Percent=2]="Percent",n[n.Auto=3]="Auto",n}({});Ut.Unit=NA;let Xp=function(n){return n[n.NoWrap=0]="NoWrap",n[n.Wrap=1]="Wrap",n[n.WrapReverse=2]="WrapReverse",n}({});Ut.Wrap=Xp;const nG={ALIGN_AUTO:ro.Auto,ALIGN_FLEX_START:ro.FlexStart,ALIGN_CENTER:ro.Center,ALIGN_FLEX_END:ro.FlexEnd,ALIGN_STRETCH:ro.Stretch,ALIGN_BASELINE:ro.Baseline,ALIGN_SPACE_BETWEEN:ro.SpaceBetween,ALIGN_SPACE_AROUND:ro.SpaceAround,DIMENSION_WIDTH:g1.Width,DIMENSION_HEIGHT:g1.Height,DIRECTION_INHERIT:Op.Inherit,DIRECTION_LTR:Op.LTR,DIRECTION_RTL:Op.RTL,DISPLAY_FLEX:m1.Flex,DISPLAY_NONE:m1.None,EDGE_LEFT:Ss.Left,EDGE_TOP:Ss.Top,EDGE_RIGHT:Ss.Right,EDGE_BOTTOM:Ss.Bottom,EDGE_START:Ss.Start,EDGE_END:Ss.End,EDGE_HORIZONTAL:Ss.Horizontal,EDGE_VERTICAL:Ss.Vertical,EDGE_ALL:Ss.All,ERRATA_NONE:bA.None,ERRATA_STRETCH_FLEX_BASIS:bA.StretchFlexBasis,ERRATA_ALL:bA.All,ERRATA_CLASSIC:bA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Gp.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:Gp.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:Gp.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:PA.Column,FLEX_DIRECTION_COLUMN_REVERSE:PA.ColumnReverse,FLEX_DIRECTION_ROW:PA.Row,FLEX_DIRECTION_ROW_REVERSE:PA.RowReverse,GUTTER_COLUMN:Hp.Column,GUTTER_ROW:Hp.Row,GUTTER_ALL:Hp.All,JUSTIFY_FLEX_START:gl.FlexStart,JUSTIFY_CENTER:gl.Center,JUSTIFY_FLEX_END:gl.FlexEnd,JUSTIFY_SPACE_BETWEEN:gl.SpaceBetween,JUSTIFY_SPACE_AROUND:gl.SpaceAround,JUSTIFY_SPACE_EVENLY:gl.SpaceEvenly,LOG_LEVEL_ERROR:ml.Error,LOG_LEVEL_WARN:ml.Warn,LOG_LEVEL_INFO:ml.Info,LOG_LEVEL_DEBUG:ml.Debug,LOG_LEVEL_VERBOSE:ml.Verbose,LOG_LEVEL_FATAL:ml.Fatal,MEASURE_MODE_UNDEFINED:zp.Undefined,MEASURE_MODE_EXACTLY:zp.Exactly,MEASURE_MODE_AT_MOST:zp.AtMost,NODE_TYPE_DEFAULT:E1.Default,NODE_TYPE_TEXT:E1.Text,OVERFLOW_VISIBLE:Vp.Visible,OVERFLOW_HIDDEN:Vp.Hidden,OVERFLOW_SCROLL:Vp.Scroll,POSITION_TYPE_STATIC:Wp.Static,POSITION_TYPE_RELATIVE:Wp.Relative,POSITION_TYPE_ABSOLUTE:Wp.Absolute,PRINT_OPTIONS_LAYOUT:Yp.Layout,PRINT_OPTIONS_STYLE:Yp.Style,PRINT_OPTIONS_CHILDREN:Yp.Children,UNIT_UNDEFINED:NA.Undefined,UNIT_POINT:NA.Point,UNIT_PERCENT:NA.Percent,UNIT_AUTO:NA.Auto,WRAP_NO_WRAP:Xp.NoWrap,WRAP_WRAP:Xp.Wrap,WRAP_WRAP_REVERSE:Xp.WrapReverse};var iG=nG;Ut.default=iG;Object.defineProperty(SI,"__esModule",{value:!0});SI.default=sG;var Yo=rG(Ut);function KT(n){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(KT=function(i){return i?t:e})(n)}function rG(n,e){if(!e&&n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=KT(e);if(t&&t.has(n))return t.get(n);var i={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if(s!=="default"&&Object.prototype.hasOwnProperty.call(n,s)){var o=r?Object.getOwnPropertyDescriptor(n,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=n[s]}return i.default=n,t&&t.set(n,i),i}function sG(n){function e(r,s,o){const a=r[s];r[s]=function(){for(var l=arguments.length,A=new Array(l),h=0;h1?a-1:0),A=1;As?n.Node.createWithConfig(s):n.Node.createDefault()),e(n.Node.prototype,"free",function(){n.Node.destroy(this)}),e(n.Node.prototype,"freeRecursive",function(){for(let r=0,s=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Yo.Direction.LTR;return r.call(this,s,o,a)}),{Config:n.Config,Node:n.Node,...Yo.default}}var qT={exports:{}};(function(n,e){var t=(()=>{var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var s;s||(s=typeof r<"u"?r:{});var o,a;s.ready=new Promise(function(N,L){o=N,a=L});var l=Object.assign({},s),A="";typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),i&&(A=i),A.indexOf("blob:")!==0?A=A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):A="";var h=s.print||console.log.bind(console),d=s.printErr||console.warn.bind(console);Object.assign(s,l),l=null;var f;s.wasmBinary&&(f=s.wasmBinary),s.noExitRuntime,typeof WebAssembly!="object"&&de("no native wasm support detected");var g,E=!1;function v(N,L,Z){Z=L+Z;for(var oe="";!(L>=Z);){var pe=N[L++];if(!pe)break;if(pe&128){var we=N[L++]&63;if((pe&224)==192)oe+=String.fromCharCode((pe&31)<<6|we);else{var Ue=N[L++]&63;pe=(pe&240)==224?(pe&15)<<12|we<<6|Ue:(pe&7)<<18|we<<12|Ue<<6|N[L++]&63,65536>pe?oe+=String.fromCharCode(pe):(pe-=65536,oe+=String.fromCharCode(55296|pe>>10,56320|pe&1023))}}else oe+=String.fromCharCode(pe)}return oe}var C,p,y,I,B,R,w,T,U;function K(){var N=g.buffer;C=N,s.HEAP8=p=new Int8Array(N),s.HEAP16=I=new Int16Array(N),s.HEAP32=R=new Int32Array(N),s.HEAPU8=y=new Uint8Array(N),s.HEAPU16=B=new Uint16Array(N),s.HEAPU32=w=new Uint32Array(N),s.HEAPF32=T=new Float32Array(N),s.HEAPF64=U=new Float64Array(N)}var M,P=[],q=[],ge=[];function J(){var N=s.preRun.shift();P.unshift(N)}var ce=0,se=null;function de(N){throw s.onAbort&&s.onAbort(N),N="Aborted("+N+")",d(N),E=!0,N=new WebAssembly.RuntimeError(N+". Build with -sASSERTIONS for more info."),a(N),N}function F(N){return N.startsWith("data:application/octet-stream;base64,")}var ee;if(ee="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVp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",!F(ee)){var te=ee;ee=s.locateFile?s.locateFile(te,A):A+te}function ue(){var N=ee;try{if(N==ee&&f)return new Uint8Array(f);if(F(N))try{var L=Xn(N.slice(37)),Z=new Uint8Array(L.length);for(N=0;N=L?"_"+N:N}function z(N,L){return N=Y(N),function(){return L.apply(this,arguments)}}var O=[{},{value:void 0},{value:null},{value:!0},{value:!1}],k=[];function me(N){var L=Error,Z=z(N,function(oe){this.name=N,this.message=oe,oe=Error(oe).stack,oe!==void 0&&(this.stack=this.toString()+` -`+oe.replace(/^Error(:[^\n]*)?\n/,""))});return Z.prototype=Object.create(L.prototype),Z.prototype.constructor=Z,Z.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Z}var Ie=void 0;function re(N){throw new Ie(N)}var Be=N=>(N||re("Cannot use deleted val. handle = "+N),O[N].value),V=N=>{switch(N){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var L=k.length?k.pop():O.length;return O[L]={fa:1,value:N},L}},Ee=void 0,ne=void 0;function ae(N){for(var L="";y[N];)L+=ne[y[N++]];return L}var he=[];function Te(){for(;he.length;){var N=he.pop();N.L.Z=!1,N.delete()}}var $=void 0,_={};function D(N,L){for(L===void 0&&re("ptr should not be undefined");N.P;)L=N.aa(L),N=N.P;return L}var ie={};function be(N){N=nt(N);var L=ae(N);return xt(N),L}function De(N,L){var Z=ie[N];return Z===void 0&&re(L+" has unknown type "+be(N)),Z}function Qe(){}var Je=!1;function Ve(N){--N.count.value,N.count.value===0&&(N.S?N.T.V(N.S):N.O.M.V(N.N))}function Ze(N,L,Z){return L===Z?N:Z.P===void 0?null:(N=Ze(N,L,Z.P),N===null?null:Z.ma(N))}var ut={};function It(N,L){return L=D(N,L),_[L]}var Le=void 0;function Nt(N){throw new Le(N)}function wt(N,L){return L.O&&L.N||Nt("makeClassHandle requires ptr and ptrType"),!!L.T!=!!L.S&&Nt("Both smartPtrType and smartPtr must be specified"),L.count={value:1},mt(Object.create(N,{L:{value:L}}))}function mt(N){return typeof FinalizationRegistry>"u"?(mt=L=>L,N):(Je=new FinalizationRegistry(L=>{Ve(L.L)}),mt=L=>{var Z=L.L;return Z.S&&Je.register(L,{L:Z},L),L},Qe=L=>{Je.unregister(L)},mt(N))}var ct={};function it(N){for(;N.length;){var L=N.pop();N.pop()(L)}}function Bt(N){return this.fromWireType(R[N>>2])}var kt={},Zt={};function Mt(N,L,Z){function oe(Ne){Ne=Z(Ne),Ne.length!==N.length&&Nt("Mismatched type converter count");for(var We=0;We{ie.hasOwnProperty(Ne)?pe[We]=ie[Ne]:(we.push(Ne),kt.hasOwnProperty(Ne)||(kt[Ne]=[]),kt[Ne].push(()=>{pe[We]=ie[Ne],++Ue,Ue===we.length&&oe(pe)}))}),we.length===0&&oe(pe)}function Yt(N){switch(N){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+N)}}function j(N,L,Z={}){if(!("argPackAdvance"in L))throw new TypeError("registerType registeredInstance requires argPackAdvance");var oe=L.name;if(N||re('type "'+oe+'" must have a positive integer typeid pointer'),ie.hasOwnProperty(N)){if(Z.ta)return;re("Cannot register type '"+oe+"' twice")}ie[N]=L,delete Zt[N],kt.hasOwnProperty(N)&&(L=kt[N],delete kt[N],L.forEach(pe=>pe()))}function Ge(N){re(N.L.O.M.name+" instance already deleted")}function Fe(){}function st(N,L,Z){if(N[L].R===void 0){var oe=N[L];N[L]=function(){return N[L].R.hasOwnProperty(arguments.length)||re("Function '"+Z+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+N[L].R+")!"),N[L].R[arguments.length].apply(this,arguments)},N[L].R=[],N[L].R[oe.Y]=oe}}function pt(N,L){s.hasOwnProperty(N)?(re("Cannot register public name '"+N+"' twice"),st(s,N,N),s.hasOwnProperty(void 0)&&re("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),s[N].R[void 0]=L):s[N]=L}function Xt(N,L,Z,oe,pe,we,Ue,Ne){this.name=N,this.constructor=L,this.W=Z,this.V=oe,this.P=pe,this.oa=we,this.aa=Ue,this.ma=Ne,this.ia=[]}function Jt(N,L,Z){for(;L!==Z;)L.aa||re("Expected null or instance of "+Z.name+", got an instance of "+L.name),N=L.aa(N),L=L.P;return N}function bn(N,L){return L===null?(this.da&&re("null is not a valid "+this.name),0):(L.L||re('Cannot pass "'+Va(L)+'" as a '+this.name),L.L.N||re("Cannot pass deleted object as a pointer of type "+this.name),Jt(L.L.N,L.L.O.M,this.M))}function fi(N,L){if(L===null){if(this.da&&re("null is not a valid "+this.name),this.ca){var Z=this.ea();return N!==null&&N.push(this.V,Z),Z}return 0}if(L.L||re('Cannot pass "'+Va(L)+'" as a '+this.name),L.L.N||re("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&L.L.O.ba&&re("Cannot convert argument of type "+(L.L.T?L.L.T.name:L.L.O.name)+" to parameter type "+this.name),Z=Jt(L.L.N,L.L.O.M,this.M),this.ca)switch(L.L.S===void 0&&re("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:L.L.T===this?Z=L.L.S:re("Cannot convert argument of type "+(L.L.T?L.L.T.name:L.L.O.name)+" to parameter type "+this.name);break;case 1:Z=L.L.S;break;case 2:if(L.L.T===this)Z=L.L.S;else{var oe=L.clone();Z=this.wa(Z,V(function(){oe.delete()})),N!==null&&N.push(this.V,Z)}break;default:re("Unsupporting sharing policy")}return Z}function rn(N,L){return L===null?(this.da&&re("null is not a valid "+this.name),0):(L.L||re('Cannot pass "'+Va(L)+'" as a '+this.name),L.L.N||re("Cannot pass deleted object as a pointer of type "+this.name),L.L.O.ba&&re("Cannot convert argument of type "+L.L.O.name+" to parameter type "+this.name),Jt(L.L.N,L.L.O.M,this.M))}function hn(N,L,Z,oe){this.name=N,this.M=L,this.da=Z,this.ba=oe,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,L.P!==void 0?this.toWireType=fi:(this.toWireType=oe?bn:rn,this.U=null)}function qi(N,L){s.hasOwnProperty(N)||Nt("Replacing nonexistant public symbol"),s[N]=L,s[N].Y=void 0}function za(N,L){var Z=[];return function(){if(Z.length=0,Object.assign(Z,arguments),N.includes("j")){var oe=s["dynCall_"+N];oe=Z&&Z.length?oe.apply(null,[L].concat(Z)):oe.call(null,L)}else oe=M.get(L).apply(null,Z);return oe}}function pi(N,L){N=ae(N);var Z=N.includes("j")?za(N,L):M.get(L);return typeof Z!="function"&&re("unknown function pointer with signature "+N+": "+L),Z}var zs=void 0;function lr(N,L){function Z(we){pe[we]||ie[we]||(Zt[we]?Zt[we].forEach(Z):(oe.push(we),pe[we]=!0))}var oe=[],pe={};throw L.forEach(Z),new zs(N+": "+oe.map(be).join([", "]))}function gs(N,L,Z,oe,pe){var we=L.length;2>we&&re("argTypes array size mismatch! Must at least get return value and 'this' types!");var Ue=L[1]!==null&&Z!==null,Ne=!1;for(Z=1;Z>2]);return Z}function wo(N){4>2])};case 3:return function(Z){return this.fromWireType(U[Z>>3])};default:throw new TypeError("Unknown float type: "+N)}}function Ou(N,L,Z){switch(L){case 0:return Z?function(oe){return p[oe]}:function(oe){return y[oe]};case 1:return Z?function(oe){return I[oe>>1]}:function(oe){return B[oe>>1]};case 2:return Z?function(oe){return R[oe>>2]}:function(oe){return w[oe>>2]};default:throw new TypeError("Unknown integer type: "+N)}}function W(N,L){for(var Z="",oe=0;!(oe>=L/2);++oe){var pe=I[N+2*oe>>1];if(pe==0)break;Z+=String.fromCharCode(pe)}return Z}function fe(N,L,Z){if(Z===void 0&&(Z=2147483647),2>Z)return 0;Z-=2;var oe=L;Z=Z<2*N.length?Z/2:N.length;for(var pe=0;pe>1]=N.charCodeAt(pe),L+=2;return I[L>>1]=0,L-oe}function xe(N){return 2*N.length}function _e(N,L){for(var Z=0,oe="";!(Z>=L/4);){var pe=R[N+4*Z>>2];if(pe==0)break;++Z,65536<=pe?(pe-=65536,oe+=String.fromCharCode(55296|pe>>10,56320|pe&1023)):oe+=String.fromCharCode(pe)}return oe}function ve(N,L,Z){if(Z===void 0&&(Z=2147483647),4>Z)return 0;var oe=L;Z=oe+Z-4;for(var pe=0;pe=we){var Ue=N.charCodeAt(++pe);we=65536+((we&1023)<<10)|Ue&1023}if(R[L>>2]=we,L+=4,L+4>Z)break}return R[L>>2]=0,L-oe}function et(N){for(var L=0,Z=0;Z=oe&&++Z,L+=4}return L}var At={};function Ct(N){var L=At[N];return L===void 0?ae(N):L}var Et=[];function Qt(N){var L=Et.length;return Et.push(N),L}function St(N,L){for(var Z=Array(N),oe=0;oe>2],"parameter "+oe);return Z}var _t=[],En=[null,[],[]];Ie=s.BindingError=me("BindingError"),s.count_emval_handles=function(){for(var N=0,L=5;Lsn;++sn)Yn[sn]=String.fromCharCode(sn);ne=Yn,s.getInheritedInstanceCount=function(){return Object.keys(_).length},s.getLiveInheritedInstances=function(){var N=[],L;for(L in _)_.hasOwnProperty(L)&&N.push(_[L]);return N},s.flushPendingDeletes=Te,s.setDelayFunction=function(N){$=N,he.length&&$&&$(Te)},Le=s.InternalError=me("InternalError"),Fe.prototype.isAliasOf=function(N){if(!(this instanceof Fe&&N instanceof Fe))return!1;var L=this.L.O.M,Z=this.L.N,oe=N.L.O.M;for(N=N.L.N;L.P;)Z=L.aa(Z),L=L.P;for(;oe.P;)N=oe.aa(N),oe=oe.P;return L===oe&&Z===N},Fe.prototype.clone=function(){if(this.L.N||Ge(this),this.L.$)return this.L.count.value+=1,this;var N=mt,L=Object,Z=L.create,oe=Object.getPrototypeOf(this),pe=this.L;return N=N(Z.call(L,oe,{L:{value:{count:pe.count,Z:pe.Z,$:pe.$,N:pe.N,O:pe.O,S:pe.S,T:pe.T}}})),N.L.count.value+=1,N.L.Z=!1,N},Fe.prototype.delete=function(){this.L.N||Ge(this),this.L.Z&&!this.L.$&&re("Object already scheduled for deletion"),Qe(this),Ve(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},Fe.prototype.isDeleted=function(){return!this.L.N},Fe.prototype.deleteLater=function(){return this.L.N||Ge(this),this.L.Z&&!this.L.$&&re("Object already scheduled for deletion"),he.push(this),he.length===1&&$&&$(Te),this.L.Z=!0,this},hn.prototype.pa=function(N){return this.ja&&(N=this.ja(N)),N},hn.prototype.ga=function(N){this.V&&this.V(N)},hn.prototype.argPackAdvance=8,hn.prototype.readValueFromPointer=Bt,hn.prototype.deleteObject=function(N){N!==null&&N.delete()},hn.prototype.fromWireType=function(N){function L(){return this.ca?wt(this.M.W,{O:this.va,N:Z,T:this,S:N}):wt(this.M.W,{O:this,N})}var Z=this.pa(N);if(!Z)return this.ga(N),null;var oe=It(this.M,Z);if(oe!==void 0)return oe.L.count.value===0?(oe.L.N=Z,oe.L.S=N,oe.clone()):(oe=oe.clone(),this.ga(N),oe);if(oe=this.M.oa(Z),oe=ut[oe],!oe)return L.call(this);oe=this.ba?oe.ka:oe.pointerType;var pe=Ze(Z,this.M,oe.M);return pe===null?L.call(this):this.ca?wt(oe.M.W,{O:oe,N:pe,T:this,S:N}):wt(oe.M.W,{O:oe,N:pe})},zs=s.UnboundTypeError=me("UnboundTypeError");var Xn=typeof atob=="function"?atob:function(N){var L="",Z=0;N=N.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var oe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),Ue="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++));oe=oe<<2|pe>>4,pe=(pe&15)<<4|we>>2;var Ne=(we&3)<<6|Ue;L+=String.fromCharCode(oe),we!==64&&(L+=String.fromCharCode(pe)),Ue!==64&&(L+=String.fromCharCode(Ne))}while(ZUe.sa).concat(pe.map(Ue=>Ue.ya));Mt([N],we,Ue=>{var Ne={};return pe.forEach((We,He)=>{var tt=Ue[He],gt=We.qa,Ht=We.ra,pn=Ue[He+pe.length],Wt=We.xa,Pi=We.za;Ne[We.na]={read:ur=>tt.fromWireType(gt(Ht,ur)),write:(ur,Vs)=>{var Ar=[];Wt(Pi,ur,pn.toWireType(Ar,Vs)),it(Ar)}}}),[{name:L.name,fromWireType:function(We){var He={},tt;for(tt in Ne)He[tt]=Ne[tt].read(We);return oe(We),He},toWireType:function(We,He){for(var tt in Ne)if(!(tt in He))throw new TypeError('Missing field: "'+tt+'"');var gt=Z();for(tt in Ne)Ne[tt].write(gt,He[tt]);return We!==null&&We.push(oe,gt),gt},argPackAdvance:8,readValueFromPointer:Bt,U:oe}]})},v:function(){},B:function(N,L,Z,oe,pe){var we=Yt(Z);L=ae(L),j(N,{name:L,fromWireType:function(Ue){return!!Ue},toWireType:function(Ue,Ne){return Ne?oe:pe},argPackAdvance:8,readValueFromPointer:function(Ue){if(Z===1)var Ne=p;else if(Z===2)Ne=I;else if(Z===4)Ne=R;else throw new TypeError("Unknown boolean type size: "+L);return this.fromWireType(Ne[Ue>>we])},U:null})},f:function(N,L,Z,oe,pe,we,Ue,Ne,We,He,tt,gt,Ht){tt=ae(tt),we=pi(pe,we),Ne&&(Ne=pi(Ue,Ne)),He&&(He=pi(We,He)),Ht=pi(gt,Ht);var pn=Y(tt);pt(pn,function(){lr("Cannot construct "+tt+" due to unbound types",[oe])}),Mt([N,L,Z],oe?[oe]:[],function(Wt){if(Wt=Wt[0],oe)var Pi=Wt.M,ur=Pi.W;else ur=Fe.prototype;Wt=z(pn,function(){if(Object.getPrototypeOf(this)!==Vs)throw new Ie("Use 'new' to construct "+tt);if(Ar.X===void 0)throw new Ie(tt+" has no accessible constructor");var Ad=Ar.X[arguments.length];if(Ad===void 0)throw new Ie("Tried to invoke ctor of "+tt+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(Ar.X).toString()+") parameters instead!");return Ad.apply(this,arguments)});var Vs=Object.create(ur,{constructor:{value:Wt}});Wt.prototype=Vs;var Ar=new Xt(tt,Wt,Vs,Ht,Pi,we,Ne,He);Pi=new hn(tt,Ar,!0,!1),ur=new hn(tt+"*",Ar,!1,!1);var Mo=new hn(tt+" const*",Ar,!1,!0);return ut[N]={pointerType:ur,ka:Mo},qi(pn,Wt),[Pi,ur,Mo]})},c:function(N,L,Z,oe,pe,we,Ue){var Ne=_o(Z,oe);L=ae(L),we=pi(pe,we),Mt([],[N],function(We){function He(){lr("Cannot call "+tt+" due to unbound types",Ne)}We=We[0];var tt=We.name+"."+L;L.startsWith("@@")&&(L=Symbol[L.substring(2)]);var gt=We.M.constructor;return gt[L]===void 0?(He.Y=Z-1,gt[L]=He):(st(gt,L,tt),gt[L].R[Z-1]=He),Mt([],Ne,function(Ht){return Ht=gs(tt,[Ht[0],null].concat(Ht.slice(1)),null,we,Ue),gt[L].R===void 0?(Ht.Y=Z-1,gt[L]=Ht):gt[L].R[Z-1]=Ht,[]}),[]})},o:function(N,L,Z,oe,pe,we){0{lr("Cannot construct "+Ne.name+" due to unbound types",Ue)},Mt([],Ue,function(He){return He.splice(1,0,null),Ne.M.X[L-1]=gs(We,He,null,pe,we),[]}),[]})},a:function(N,L,Z,oe,pe,we,Ue,Ne){var We=_o(Z,oe);L=ae(L),we=pi(pe,we),Mt([],[N],function(He){function tt(){lr("Cannot call "+gt+" due to unbound types",We)}He=He[0];var gt=He.name+"."+L;L.startsWith("@@")&&(L=Symbol[L.substring(2)]),Ne&&He.M.ia.push(L);var Ht=He.M.W,pn=Ht[L];return pn===void 0||pn.R===void 0&&pn.className!==He.name&&pn.Y===Z-2?(tt.Y=Z-2,tt.className=He.name,Ht[L]=tt):(st(Ht,L,gt),Ht[L].R[Z-2]=tt),Mt([],We,function(Wt){return Wt=gs(gt,Wt,He,we,Ue),Ht[L].R===void 0?(Wt.Y=Z-2,Ht[L]=Wt):Ht[L].R[Z-2]=Wt,[]}),[]})},A:function(N,L){L=ae(L),j(N,{name:L,fromWireType:function(Z){var oe=Be(Z);return wo(Z),oe},toWireType:function(Z,oe){return V(oe)},argPackAdvance:8,readValueFromPointer:Bt,U:null})},m:function(N,L,Z){Z=Yt(Z),L=ae(L),j(N,{name:L,fromWireType:function(oe){return oe},toWireType:function(oe,pe){return pe},argPackAdvance:8,readValueFromPointer:ku(L,Z),U:null})},d:function(N,L,Z,oe,pe){L=ae(L),pe===-1&&(pe=4294967295),pe=Yt(Z);var we=Ne=>Ne;if(oe===0){var Ue=32-8*Z;we=Ne=>Ne<>>Ue}Z=L.includes("unsigned")?function(Ne,We){return We>>>0}:function(Ne,We){return We},j(N,{name:L,fromWireType:we,toWireType:Z,argPackAdvance:8,readValueFromPointer:Ou(L,pe,oe!==0),U:null})},b:function(N,L,Z){function oe(we){we>>=2;var Ue=w;return new pe(C,Ue[we+1],Ue[we])}var pe=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][L];Z=ae(Z),j(N,{name:Z,fromWireType:oe,argPackAdvance:8,readValueFromPointer:oe},{ta:!0})},n:function(N,L){L=ae(L);var Z=L==="std::string";j(N,{name:L,fromWireType:function(oe){var pe=w[oe>>2],we=oe+4;if(Z)for(var Ue=we,Ne=0;Ne<=pe;++Ne){var We=we+Ne;if(Ne==pe||y[We]==0){if(Ue=Ue?v(y,Ue,We-Ue):"",He===void 0)var He=Ue;else He+="\0",He+=Ue;Ue=We+1}}else{for(He=Array(pe),Ne=0;Ne=We?Ne++:2047>=We?Ne+=2:55296<=We&&57343>=We?(Ne+=4,++we):Ne+=3}we=Ne}else we=pe.length;if(Ne=yi(4+we+1),We=Ne+4,w[Ne>>2]=we,Z&&Ue){if(Ue=We,We=we+1,we=y,0=tt){var gt=pe.charCodeAt(++He);tt=65536+((tt&1023)<<10)|gt&1023}if(127>=tt){if(Ue>=We)break;we[Ue++]=tt}else{if(2047>=tt){if(Ue+1>=We)break;we[Ue++]=192|tt>>6}else{if(65535>=tt){if(Ue+2>=We)break;we[Ue++]=224|tt>>12}else{if(Ue+3>=We)break;we[Ue++]=240|tt>>18,we[Ue++]=128|tt>>12&63}we[Ue++]=128|tt>>6&63}we[Ue++]=128|tt&63}}we[Ue]=0}}else if(Ue)for(Ue=0;UeB,Ne=1;else L===4&&(oe=_e,pe=ve,we=et,Ue=()=>w,Ne=2);j(N,{name:Z,fromWireType:function(We){for(var He=w[We>>2],tt=Ue(),gt,Ht=We+4,pn=0;pn<=He;++pn){var Wt=We+4+pn*L;(pn==He||tt[Wt>>Ne]==0)&&(Ht=oe(Ht,Wt-Ht),gt===void 0?gt=Ht:(gt+="\0",gt+=Ht),Ht=Wt+L)}return xt(We),gt},toWireType:function(We,He){typeof He!="string"&&re("Cannot pass non-string to C++ string type "+Z);var tt=we(He),gt=yi(4+tt+L);return w[gt>>2]=tt>>Ne,pe(He,gt+4,tt+L),We!==null&&We.push(xt,gt),gt},argPackAdvance:8,readValueFromPointer:Bt,U:function(We){xt(We)}})},k:function(N,L,Z,oe,pe,we){ct[N]={name:ae(L),ea:pi(Z,oe),V:pi(pe,we),ha:[]}},h:function(N,L,Z,oe,pe,we,Ue,Ne,We,He){ct[N].ha.push({na:ae(L),sa:Z,qa:pi(oe,pe),ra:we,ya:Ue,xa:pi(Ne,We),za:He})},C:function(N,L){L=ae(L),j(N,{ua:!0,name:L,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(N,L,Z,oe,pe){N=Et[N],L=Be(L),Z=Ct(Z);var we=[];return w[oe>>2]=V(we),N(L,Z,we,pe)},t:function(N,L,Z,oe){N=Et[N],L=Be(L),Z=Ct(Z),N(L,Z,null,oe)},g:wo,l:function(N,L){var Z=St(N,L),oe=Z[0];L=oe.name+"_$"+Z.slice(1).map(function(Ue){return Ue.name}).join("_")+"$";var pe=_t[L];if(pe!==void 0)return pe;var we=Array(N-1);return pe=Qt((Ue,Ne,We,He)=>{for(var tt=0,gt=0;gt>>=0,2147483648=Z;Z*=2){var oe=L*(1+.2/Z);oe=Math.min(oe,N+100663296);var pe=Math;oe=Math.max(N,oe),pe=pe.min.call(pe,2147483648,oe+(65536-oe%65536)%65536);e:{try{g.grow(pe-C.byteLength+65535>>>16),K();var we=1;break e}catch{}we=void 0}if(we)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(N,L,Z,oe){for(var pe=0,we=0;we>2],Ne=w[L+4>>2];L+=8;for(var We=0;We>2]=pe,0}};(function(){function N(pe){s.asm=pe.exports,g=s.asm.D,K(),M=s.asm.I,q.unshift(s.asm.E),ce--,s.monitorRunDependencies&&s.monitorRunDependencies(ce),ce==0&&se&&(pe=se,se=null,pe())}function L(pe){N(pe.instance)}function Z(pe){return ye().then(function(we){return WebAssembly.instantiate(we,oe)}).then(function(we){return we}).then(pe,function(we){d("failed to asynchronously prepare wasm: "+we),de(we)})}var oe={a:vt};if(ce++,s.monitorRunDependencies&&s.monitorRunDependencies(ce),s.instantiateWasm)try{return s.instantiateWasm(oe,N)}catch(pe){d("Module.instantiateWasm callback failed with error: "+pe),a(pe)}return function(){return f||typeof WebAssembly.instantiateStreaming!="function"||F(ee)||typeof fetch!="function"?Z(L):fetch(ee,{credentials:"same-origin"}).then(function(pe){return WebAssembly.instantiateStreaming(pe,oe).then(L,function(we){return d("wasm streaming compile failed: "+we),d("falling back to ArrayBuffer instantiation"),Z(L)})})}().catch(a),{}})(),s.___wasm_call_ctors=function(){return(s.___wasm_call_ctors=s.asm.E).apply(null,arguments)};var nt=s.___getTypeName=function(){return(nt=s.___getTypeName=s.asm.F).apply(null,arguments)};s.__embind_initialize_bindings=function(){return(s.__embind_initialize_bindings=s.asm.G).apply(null,arguments)};var yi=s._malloc=function(){return(yi=s._malloc=s.asm.H).apply(null,arguments)},xt=s._free=function(){return(xt=s._free=s.asm.J).apply(null,arguments)};s.dynCall_jiji=function(){return(s.dynCall_jiji=s.asm.K).apply(null,arguments)};var dn;se=function N(){dn||cr(),dn||(se=N)};function cr(){function N(){if(!dn&&(dn=!0,s.calledRun=!0,!E)){if(Oe(q),o(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;){var L=s.postRun.shift();ge.unshift(L)}Oe(ge)}}if(!(0cn(n),e);H.useEffect(()=>t,[t])}let ZE;function lG(){if(ZE==null){const n=ZE=An(void 0);ki.loadYoga().then(e=>n.value=e)}return ZE}function eD(n,e,...t){const i=H.useMemo(()=>An(void 0),[]);return H.useEffect(()=>{if(!(e instanceof Wn)){let r=!1;return n(e,...t).then(s=>r?void 0:i.value=s),()=>r=!0}return cn(()=>{let r=!1;return n(e.value,...t).then(s=>r?void 0:i.value=s).catch(console.error),()=>r=!0})},[e,...t]),i}function tD(n,e,t,i,r){const[s,o]=n.value,[a,l,A,h]=e.value,[d,f,g,E]=t.value,v=a+d,C=l+f,p=A+g,y=h+E,I=s-y-C,B=o-v-p,R=I/B;let w=1;return R>r?w=B*i:w=I*i/r,[(y-C)*.5*i,(p-v)*.5*i,w]}const uw=new je;function C1(n,e,t,i=0){const r=e*n.itemSize+i;n.addUpdateRange(r,3),Array.isArray(t)?n.set(t,r):(uw.set(t),uw.toArray(n.array,r)),n.needsUpdate=!0}function y1(n){return n instanceof Wn?n.value:n}const nD=H.createContext(null);function jl(){return H.useContext(nD)}const cG=nD.Provider;function $o(n){const e=new Map;return(t,i)=>{const r=t.length;for(const s in i){const o=i[s];if(o===void 0)return;let a=e.get(o);a==null&&e.set(o,a=$n(()=>n()?y1(o):void 0));for(let l=0;l"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),iD=An((fu==null?void 0:fu.matches)??!1);fu==null||fu.addEventListener("change",n=>iD.value=n.matches);const _I=An("system"),rD=$n(()=>{switch(_I.value){case"system":return iD.value;case"dark":return!0;case"light":return!1}});function uG(n){_I.value=n}function Aw(){return _I.peek()}const AG=$o(()=>rD.value);function ba(n,e){rd(e,t=>{const i=t.dark;i!=null&&AG(n,i)})}function hG({dark:n,light:e}){const t={};for(const i in n)t[i]=$n(()=>rD.value?n[i]:e[i]);return t}const dG=Math.cos(45/180*Math.PI),$E=[new nn,new nn,new nn,new nn],hw=new G;class fG{constructor(e,t,i,r,s){Pe(this,"planes");Pe(this,"facePlane");Pe(this,"originalCenter");this.originalCenter=new G(t,i,0).applyMatrix4(e),this.facePlane=new nn(new G(0,0,1),0).applyMatrix4(e);const o=r/2,a=s/2,l=i+a,A=t+o,h=-i+a,d=-t+o;this.planes=[new nn(new G(0,-1,0),h).applyMatrix4(e),new nn(new G(-1,0,0),d).applyMatrix4(e),new nn(new G(0,1,0),l).applyMatrix4(e),new nn(new G(1,0,0),A).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const s=this.facePlane,o=e[r],a=s.normal.dot(o.normal);if(Math.abs(a)>.99)return this;const l=$E[r];if(Math.abs(a)<.01){l.copy(o);continue}l.normal.crossVectors(s.normal,o.normal).normalize().cross(s.normal).negate();const A=1-a*a,h=(s.constant-o.constant*a)/A,d=(o.constant-s.constant*a)/A;hw.copy(s.normal).multiplyScalar(h).addScaledVector(o.normal,d),l.constant=-hw.dot(l.normal)}let t=0;const i=this.planes[0].normal;for(;$E[t].normal.dot(i)>dG;)break;for(let r=0;r<4;r++){const s=this.planes[r],o=(r+t)%4;$E[o].distanceToPoint(this.originalCenter)$n(()=>{const r=e.value,s=n==null?void 0:n.value;if(s==null||r==null)return!1;const[o,a]=t.value;for(let h=0;h<4;h++){const[d,f]=mG[h];dw[h].set(d*i.pixelSize*o,f*i.pixelSize*a,0).applyMatrix4(r)}const{planes:l}=s;let A;for(let h=0;h<4;h++){const d=l[h];A=!0;for(let f=0;f<4;f++){const g=dw[f];d.distanceToPoint(g)>=0&&(A=!1)}if(A)return!0}return!1}),[e,n,i,t])}function EG(n,e,t,i,r,s){return H.useMemo(()=>$n(()=>{const o=n.value;if(o==null||i.value===ki.Overflow.Visible)return s==null?void 0:s.value;const[a,l]=e.value,[A,h,d,f]=t.value,g=new fG(o,(h-f)*r.pixelSize/2,(A-d)*r.pixelSize/2,(a-f-h)*r.pixelSize,(l-A-d)*r.pixelSize);return(s==null?void 0:s.value)!=null&&g.min(s.value),g}),[n,e,t,r,i,s])}const v1=new nn(new G(-1,0,0),Number.MAX_SAFE_INTEGER),Mg=new Float32Array(16);for(let n=0;n<4;n++)v1.normal.toArray(Mg,n*4),Mg[n*4+3]=v1.constant;function sd(n,e){const t=H.useMemo(()=>[new nn,new nn,new nn,new nn],[]);return jr(()=>{var s;const i=e.current;if(i==null)return;const r=(s=n==null?void 0:n.value)==null?void 0:s.planes;if(r==null){for(let o=0;o<4;o++)t[o].copy(v1);return}for(let o=0;o<4;o++)t[o].copy(r[o]).applyMatrix4(i.matrixWorld)}),t}class CG{constructor(e,t){Pe(this,"glyphInfoMap",new Map);Pe(this,"kerningMap",new Map);Pe(this,"questionmarkGlyphInfo");Pe(this,"pageWidth");Pe(this,"pageHeight");Pe(this,"distanceRange");this.page=t;const{scaleW:i,scaleH:r,lineHeight:s}=e.common;this.pageWidth=i,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const l of e.chars)l.uvX=l.x/i,l.uvY=l.y/r,l.uvWidth=l.width/i,l.uvHeight=l.height/r,l.width/=o,l.height/=o,l.xadvance/=o,l.xoffset/=o,l.yoffset-=s-o,l.yoffset/=o,this.glyphInfoMap.set(l.char,l);for(const{first:l,second:A,amount:h}of e.kernings)this.kerningMap.set(`${l}/${A}`,h/o);const a=this.glyphInfoMap.get("?");if(a==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=a}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` -`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,t){return this.kerningMap.get(`${e}/${t}`)??0}}function yG(n,e,t){e[t+0]=n.uvX,e[t+1]=n.uvY+n.uvHeight,e[t+2]=n.uvWidth,e[t+3]=-n.uvHeight}const fw=new ht,vG=new ht;class IG{constructor(e,t,i,r,s){Pe(this,"index");Pe(this,"hidden",!0);Pe(this,"glyphInfo");Pe(this,"x",0);Pe(this,"y",0);Pe(this,"fontSize",0);this.group=e,this.baseMatrix=t,this.color=i,this.opacity=r,this.clippingRect=s}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const t=this.index*16,{instanceClipping:i}=this.group;this.clippingRect==null?i.set(Mg,t):this.clippingRect.toArray(i.array,t),i.addUpdateRange(t,16),i.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&C1(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:t}=this.group,i=this.index*4+3;t.array[i]=e,t.addUpdateRange(i,1),t.needsUpdate=!0}updateGlyphAndTransformation(e,t,i,r){this.glyphInfo===e&&this.x===t&&this.y===i&&this.fontSize===r||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=t,this.y=i,this.fontSize=r,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:t}=this.group;yG(this.glyphInfo,t.array,e),t.addUpdateRange(e,4),t.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:t}=this.group;t.addUpdateRange(e,16),fw.makeTranslation(this.x,this.y,0).multiply(vG.makeScale(this.fontSize*this.glyphInfo.width,this.fontSize*this.glyphInfo.height,1)).premultiply(this.baseMatrix),fw.toArray(t.array,e),t.needsUpdate=!0}}function xG(n,e,t,i){return((i==null?0:n.getKerning(i,t.id))+t.xoffset)*e}function BG(n,e,t){return(t.yoffset+(e-1)/2)*n}function Sm(n,e,t){return e.xadvance*n+t}function SG(n,e){return n*e}function I1(n,{lineHeight:e,fontSize:t}){return Math.max(n,1)*t*e}class _G{constructor(e,t,i,r,s,o,a){Pe(this,"glyphLines",[]);Pe(this,"unsubscribe");Pe(this,"unsubscribeList",[]);Pe(this,"opacity",1);Pe(this,"color",16777215);this.group=e,this.getAlignmentProperties=t,this.getAppearanceProperties=i,this.layout=r,this.matrix=s,this.parentClippingRect=a,this.unsubscribe=cn(()=>{const l=i.value;if(l==null||(o==null?void 0:o.value)===!0||(l("opacity")??1)<.01){this.hide();return}this.show()})}show(){this.unsubscribeList.length>0||(ul(this.glyphLines,e=>e.show()),this.unsubscribeList.push(cn(()=>{const e=this.matrix.value;e!=null&&ul(this.glyphLines,t=>t.updateBaseMatrix(e))}),cn(()=>{var t;const e=(t=this.parentClippingRect)==null?void 0:t.value;ul(this.glyphLines,i=>i.updateClippingRect(e))}),cn(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.color=e("color")??16777215;ul(this.glyphLines,i=>i.updateColor(t))}),cn(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.opacity=e("opacity")??1;ul(this.glyphLines,i=>i.updateOpacity(t))}),cn(()=>{var v;const e=this.layout.value,t=this.getAlignmentProperties.value;if(e==null||t==null)return;const{text:i,font:r,lines:s,letterSpacing:o=0,fontSize:a=16,lineHeight:l=1.2,availableHeight:A,availableWidth:h}=e;let d=-A/2;switch(t("verticalAlign")){case"center":d+=(A-I1(e.lines.length,e))/2;break;case"bottom":d+=A-I1(e.lines.length,e);break}const f=t("horizontalAlign")??"left",g=s.length,E=this.group.pixelSize;for(let C=0;CC.hide(),g),this.glyphLines.length=g})))}hide(){const e=this.unsubscribeList.length;if(e!==0){for(let t=0;tt.hide())}}destroy(){this.hide(),this.glyphLines.length=0,this.unsubscribe()}}function ul(n,e,t=0){const i=n.length;for(let r=t;r{t.uniforms.fontPage={value:e.page},t.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},t.uniforms.distanceRange={value:e.distanceRange},t.uniforms.v_weight={value:.3},t.vertexShader=`attribute vec4 instanceUVOffset; + `)+c.join(" > ")}return null},t.getPublicRootInstance=function(c){if(c=c.current,!c.child)return null;switch(c.child.tag){case 5:return ne(c.child.stateNode);default:return c.child.stateNode}},t.injectIntoDevTools=function(c){if(c={bundleType:c.bundleType,version:c.version,rendererPackageName:c.rendererPackageName,rendererConfig:c.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:a.ReactCurrentDispatcher,findHostInstanceByFiber:ib,findFiberByHostInstance:c.findFiberByHostInstance||rb,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")c=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)c=!0;else{try{dd=u.inject(c),Cs=u}catch{}c=!!u.checkDCE}}return c},t.isAlreadyRendering=function(){return!1},t.observeVisibleRects=function(c,u,m,x){if(!b)throw Error(o(363));c=B0(c,u);var S=Ze(c,m,x).disconnect;return{disconnect:function(){S()}}},t.registerMutableSourceForHydration=function(c,u){var m=u._getVersion;m=m(u._source),c.mutableSourceEagerHydrationData==null?c.mutableSourceEagerHydrationData=[u,m]:c.mutableSourceEagerHydrationData.push(u,m)},t.runWithPriority=function(c,u){var m=tn;try{return tn=c,u()}finally{tn=m}},t.shouldError=function(){return null},t.shouldSuspend=function(){return!1},t.updateContainer=function(c,u,m,x){var S=u.current,Q=Fi(),X=Xo(S);return m=mB(m),u.context===null?u.context=m:u.pendingContext=m,u=Js(Q,X),u.payload={element:c},x=x===void 0?null:x,x!==null&&(u.callback=x),Vo(S,u),c=Pr(S,X,Q),c!==null&&Ed(c,S,X),X},t};FT.exports=wO;var MO=FT.exports;const QO=H1(MO),_I={},RO=n=>void Object.assign(_I,n);function TO(n,e){function t(h,{args:d=[],attach:f,...g},E){let v=`${h[0].toUpperCase()}${h.slice(1)}`,C;if(h==="primitive"){if(g.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const p=g.object;C=Vc(p,{type:h,root:E,attach:f,primitive:!0})}else{const p=_I[v];if(!p)throw new Error(`R3F: ${v} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(d))throw new Error("R3F: The args prop must be an array!");C=Vc(new p(...d),{type:h,root:E,attach:f,memoizedProps:{args:d}})}return C.__r3f.attach===void 0&&(C instanceof Pt?C.__r3f.attach="geometry":C instanceof fi&&(C.__r3f.attach="material")),v!=="inject"&&KE(C,g),C}function i(h,d){let f=!1;if(d){var g,E;(g=d.__r3f)!=null&&g.attach?jE(h,d,d.__r3f.attach):d.isObject3D&&h.isObject3D&&(h.add(d),f=!0),f||(E=h.__r3f)==null||E.objects.push(d),d.__r3f||Vc(d,{}),d.__r3f.parent=h,E1(d),Wc(d)}}function r(h,d,f){let g=!1;if(d){var E,v;if((E=d.__r3f)!=null&&E.attach)jE(h,d,d.__r3f.attach);else if(d.isObject3D&&h.isObject3D){d.parent=h,d.dispatchEvent({type:"added"});const C=h.children.filter(y=>y!==d),p=C.indexOf(f);h.children=[...C.slice(0,p),d,...C.slice(p)],g=!0}g||(v=h.__r3f)==null||v.objects.push(d),d.__r3f||Vc(d,{}),d.__r3f.parent=h,E1(d),Wc(d)}}function s(h,d,f=!1){h&&[...h].forEach(g=>o(d,g,f))}function o(h,d,f){if(d){var g,E,v;if(d.__r3f&&(d.__r3f.parent=null),(g=h.__r3f)!=null&&g.objects&&(h.__r3f.objects=h.__r3f.objects.filter(B=>B!==d)),(E=d.__r3f)!=null&&E.attach)Aw(h,d,d.__r3f.attach);else if(d.isObject3D&&h.isObject3D){var C;h.remove(d),(C=d.__r3f)!=null&&C.root&&FO(d.__r3f.root,d)}const y=(v=d.__r3f)==null?void 0:v.primitive,I=!y&&(f===void 0?d.dispose!==null:f);if(!y){var p;s((p=d.__r3f)==null?void 0:p.objects,d,I),s(d.children,d,I)}if(delete d.__r3f,I&&d.dispose&&d.type!=="Scene"){const B=()=>{try{d.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?g1.unstable_scheduleCallback(g1.unstable_IdlePriority,B):B()}Wc(h)}}function a(h,d,f,g){var E;const v=(E=h.__r3f)==null?void 0:E.parent;if(!v)return;const C=t(d,f,h.__r3f.root);if(h.children){for(const p of h.children)p.__r3f&&i(C,p);h.children=h.children.filter(p=>!p.__r3f)}h.__r3f.objects.forEach(p=>i(C,p)),h.__r3f.objects=[],h.__r3f.autoRemovedBeforeAppend||o(v,h),C.parent&&(C.__r3f.autoRemovedBeforeAppend=!0),i(v,C),C.raycast&&C.__r3f.eventCount&&C.__r3f.root.getState().internal.interaction.push(C),[g,g.alternate].forEach(p=>{p!==null&&(p.stateNode=C,p.ref&&(typeof p.ref=="function"?p.ref(C):p.ref.current=C))})}const l=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:QO({createInstance:t,removeChild:o,appendChild:i,appendInitialChild:i,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(h,d)=>{if(!d)return;const f=h.getState().scene;f.__r3f&&(f.__r3f.root=h,i(f,d))},removeChildFromContainer:(h,d)=>{d&&o(h.getState().scene,d)},insertInContainerBefore:(h,d,f)=>{if(!d||!f)return;const g=h.getState().scene;g.__r3f&&r(g,d,f)},getRootHostContext:()=>null,getChildHostContext:h=>h,finalizeInitialChildren(h){var d;return!!((d=h==null?void 0:h.__r3f)!=null?d:{}).handlers},prepareUpdate(h,d,f,g){var E;if(((E=h==null?void 0:h.__r3f)!=null?E:{}).primitive&&g.object&&g.object!==h)return[!0];{const{args:C=[],children:p,...y}=g,{args:I=[],children:B,...R}=f;if(!Array.isArray(C))throw new Error("R3F: the args prop must be an array!");if(C.some((T,U)=>T!==I[U]))return[!0];const M=XT(h,y,R,!0);return M.changes.length?[!1,M]:null}},commitUpdate(h,[d,f],g,E,v,C){d?a(h,g,v,C):KE(h,f)},commitMount(h,d,f,g){var E;const v=(E=h.__r3f)!=null?E:{};h.raycast&&v.handlers&&v.eventCount&&h.__r3f.root.getState().internal.interaction.push(h)},getPublicInstance:h=>h,prepareForCommit:()=>null,preparePortalMount:h=>Vc(h.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(h){var d;const{attach:f,parent:g}=(d=h.__r3f)!=null?d:{};f&&g&&Aw(g,h,f),h.isObject3D&&(h.visible=!1),Wc(h)},unhideInstance(h,d){var f;const{attach:g,parent:E}=(f=h.__r3f)!=null?f:{};g&&E&&jE(E,h,g),(h.isObject3D&&d.visible==null||d.visible)&&(h.visible=!0),Wc(h)},createTextInstance:l,hideTextInstance:l,unhideTextInstance:l,getCurrentEventPriority:()=>e?e():cu.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&_n.fun(performance.now)?performance.now:_n.fun(Date.now)?Date.now:()=>0,scheduleTimeout:_n.fun(setTimeout)?setTimeout:void 0,cancelTimeout:_n.fun(clearTimeout)?clearTimeout:void 0}),applyProps:KE}}var aw,lw;const JE=n=>"colorSpace"in n||"outputColorSpace"in n,GT=()=>{var n;return(n=_I.ColorManagement)!=null?n:null},HT=n=>n&&n.isOrthographicCamera,DO=n=>n&&n.hasOwnProperty("current"),rd=typeof window<"u"&&((aw=window.document)!=null&&aw.createElement||((lw=window.navigator)==null?void 0:lw.product)==="ReactNative")?k.useLayoutEffect:k.useEffect;function zT(n){const e=k.useRef(n);return rd(()=>void(e.current=n),[n]),e}function bO({set:n}){return rd(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}class VT extends k.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}VT.getDerivedStateFromError=()=>({error:!0});const WT="__default",cw=new Map,PO=n=>n&&!!n.memoized&&!!n.changes;function YT(n){var e;const t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}const _A=n=>{var e;return(e=n.__r3f)==null?void 0:e.root.getState()},_n={obj:n=>n===Object(n)&&!_n.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(_n.str(n)||_n.num(n))return n===e;const s=_n.obj(n);if(s&&i==="reference")return n===e;const o=_n.arr(n);if(o&&t==="reference")return n===e;if((o||s)&&n===e)return!0;let a;for(a in n)if(!(a in e))return!1;if(s&&t==="shallow"&&i==="shallow"){for(a in r?e:n)if(!_n.equ(n[a],e[a],{strict:r,objects:"reference"}))return!1}else for(a in r?e:n)if(n[a]!==e[a])return!1;if(_n.und(a)){if(o&&n.length===0&&e.length===0||s&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function LO(n){n.dispose&&n.type!=="Scene"&&n.dispose();for(const e in n)e.dispose==null||e.dispose(),delete n[e]}function Vc(n,e){const t=n;return t.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},n}function m1(n,e){let t=n;if(e.includes("-")){const i=e.split("-"),r=i.pop();return t=i.reduce((s,o)=>s[o],n),{target:t,key:r}}else return{target:t,key:e}}const uw=/-\d+$/;function jE(n,e,t){if(_n.str(t)){if(uw.test(t)){const s=t.replace(uw,""),{target:o,key:a}=m1(n,s);Array.isArray(o[a])||(o[a]=[])}const{target:i,key:r}=m1(n,t);e.__r3f.previousAttach=i[r],i[r]=e}else e.__r3f.previousAttach=t(n,e)}function Aw(n,e,t){var i,r;if(_n.str(t)){const{target:s,key:o}=m1(n,t),a=e.__r3f.previousAttach;a===void 0?delete s[o]:s[o]=a}else(i=e.__r3f)==null||i.previousAttach==null||i.previousAttach(n,e);(r=e.__r3f)==null||delete r.previousAttach}function XT(n,{children:e,key:t,ref:i,...r},{children:s,key:o,ref:a,...l}={},A=!1){var h;const d=(h=n==null?void 0:n.__r3f)!=null?h:{},f=Object.entries(r),g=[];if(A){const v=Object.keys(l);for(let C=0;C{var p;if((p=n.__r3f)!=null&&p.primitive&&v==="object"||_n.equ(C,l[v]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(v))return g.push([v,C,!0,[]]);let y=[];v.includes("-")&&(y=v.split("-")),g.push([v,C,!1,y]);for(const I in r){const B=r[I];I.startsWith(`${v}-`)&&g.push([I,B,!1,I.split("-")])}});const E={...r};return d.memoizedProps&&d.memoizedProps.args&&(E.args=d.memoizedProps.args),d.memoizedProps&&d.memoizedProps.attach&&(E.attach=d.memoizedProps.attach),{memoized:E,changes:g}}const NO=typeof process<"u"&&!1;function KE(n,e){var t,i,r;const s=(t=n.__r3f)!=null?t:{},o=s.root,a=(i=o==null||o.getState==null?void 0:o.getState())!=null?i:{},{memoized:l,changes:A}=PO(e)?e:XT(n,e),h=s.eventCount;n.__r3f&&(n.__r3f.memoizedProps=l);for(let f=0;fI[B],n),!(y&&y.set))){const[I,...B]=C.reverse();p=B.reverse().reduce((R,M)=>R[M],n),g=I}if(E===WT+"remove")if(p.constructor){let I=cw.get(p.constructor);I||(I=new p.constructor,cw.set(p.constructor,I)),E=I[g]}else E=0;if(v)E?s.handlers[g]=E:delete s.handlers[g],s.eventCount=Object.keys(s.handlers).length;else if(y&&y.set&&(y.copy||y instanceof Gl)){if(Array.isArray(E))y.fromArray?y.fromArray(E):y.set(...E);else if(y.copy&&E&&E.constructor&&(NO?y.constructor.name===E.constructor.name:y.constructor===E.constructor))y.copy(E);else if(E!==void 0){const I=y instanceof Ke;!I&&y.setScalar?y.setScalar(E):y instanceof Gl&&E instanceof Gl?y.mask=E.mask:y.set(E),!GT()&&!a.linear&&I&&y.convertSRGBToLinear()}}else if(p[g]=E,p[g]instanceof Mn&&p[g].format===zi&&p[g].type===Fs){const I=p[g];JE(I)&&JE(a.gl)?I.colorSpace=a.gl.outputColorSpace:I.encoding=a.gl.outputEncoding}Wc(n)}if(s.parent&&a.internal&&n.raycast&&h!==s.eventCount){const f=a.internal.interaction.indexOf(n);f>-1&&a.internal.interaction.splice(f,1),s.eventCount&&a.internal.interaction.push(n)}return!(A.length===1&&A[0][0]==="onUpdate")&&A.length&&(r=n.__r3f)!=null&&r.parent&&E1(n),n}function Wc(n){var e,t;const i=(e=n.__r3f)==null||(t=e.root)==null||t.getState==null?void 0:t.getState();i&&i.internal.frames===0&&i.invalidate()}function E1(n){n.onUpdate==null||n.onUpdate(n)}function JT(n,e){n.manual||(HT(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix(),n.updateMatrixWorld())}function Ap(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function UO(){var n;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return cu.DefaultEventPriority;switch((n=e.event)==null?void 0:n.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return cu.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return cu.ContinuousEventPriority;default:return cu.DefaultEventPriority}}function jT(n,e,t,i){const r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function FO(n,e){const{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{jT(t.capturedMap,e,i,r)})}function kO(n){function e(l){const{internal:A}=n.getState(),h=l.offsetX-A.initialClick[0],d=l.offsetY-A.initialClick[1];return Math.round(Math.sqrt(h*h+d*d))}function t(l){return l.filter(A=>["Move","Over","Enter","Out","Leave"].some(h=>{var d;return(d=A.__r3f)==null?void 0:d.handlers["onPointer"+h]}))}function i(l,A){const h=n.getState(),d=new Set,f=[],g=A?A(h.internal.interaction):h.internal.interaction;for(let p=0;p{const I=_A(p.object),B=_A(y.object);return!I||!B?p.distance-y.distance:B.events.priority-I.events.priority||p.distance-y.distance}).filter(p=>{const y=Ap(p);return d.has(y)?!1:(d.add(y),!0)});h.events.filter&&(v=h.events.filter(v,h));for(const p of v){let y=p.object;for(;y;){var C;(C=y.__r3f)!=null&&C.eventCount&&f.push({...p,eventObject:y}),y=y.parent}}if("pointerId"in l&&h.internal.capturedMap.has(l.pointerId))for(let p of h.internal.capturedMap.get(l.pointerId).values())d.has(Ap(p.intersection))||f.push(p.intersection);return f}function r(l,A,h,d){const f=n.getState();if(l.length){const g={stopped:!1};for(const E of l){const v=_A(E.object)||f,{raycaster:C,pointer:p,camera:y,internal:I}=v,B=new H(p.x,p.y,0).unproject(y),R=w=>{var P,q;return(P=(q=I.capturedMap.get(w))==null?void 0:q.has(E.eventObject))!=null?P:!1},M=w=>{const P={intersection:E,target:A.target};I.capturedMap.has(w)?I.capturedMap.get(w).set(E.eventObject,P):I.capturedMap.set(w,new Map([[E.eventObject,P]])),A.target.setPointerCapture(w)},T=w=>{const P=I.capturedMap.get(w);P&&jT(I.capturedMap,E.eventObject,P,w)};let U={};for(let w in A){let P=A[w];typeof P!="function"&&(U[w]=P)}let K={...E,...U,pointer:p,intersections:l,stopped:g.stopped,delta:h,unprojectedPoint:B,ray:C.ray,camera:y,stopPropagation(){const w="pointerId"in A&&I.capturedMap.get(A.pointerId);if((!w||w.has(E.eventObject))&&(K.stopped=g.stopped=!0,I.hovered.size&&Array.from(I.hovered.values()).find(P=>P.eventObject===E.eventObject))){const P=l.slice(0,l.indexOf(E));s([...P,E])}},target:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},currentTarget:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},nativeEvent:A};if(d(K),g.stopped===!0)break}}return l}function s(l){const{internal:A}=n.getState();for(const h of A.hovered.values())if(!l.length||!l.find(d=>d.object===h.object&&d.index===h.index&&d.instanceId===h.instanceId)){const f=h.eventObject.__r3f,g=f==null?void 0:f.handlers;if(A.hovered.delete(Ap(h)),f!=null&&f.eventCount){const E={...h,intersections:l};g.onPointerOut==null||g.onPointerOut(E),g.onPointerLeave==null||g.onPointerLeave(E)}}}function o(l,A){for(let h=0;hs([]);case"onLostPointerCapture":return A=>{const{internal:h}=n.getState();"pointerId"in A&&h.capturedMap.has(A.pointerId)&&requestAnimationFrame(()=>{h.capturedMap.has(A.pointerId)&&(h.capturedMap.delete(A.pointerId),s([]))})}}return function(h){const{onPointerMissed:d,internal:f}=n.getState();f.lastEvent.current=h;const g=l==="onPointerMove",E=l==="onClick"||l==="onContextMenu"||l==="onDoubleClick",C=i(h,g?t:void 0),p=E?e(h):0;l==="onPointerDown"&&(f.initialClick=[h.offsetX,h.offsetY],f.initialHits=C.map(I=>I.eventObject)),E&&!C.length&&p<=2&&(o(h,f.interaction),d&&d(h)),g&&s(C);function y(I){const B=I.eventObject,R=B.__r3f,M=R==null?void 0:R.handlers;if(R!=null&&R.eventCount)if(g){if(M.onPointerOver||M.onPointerEnter||M.onPointerOut||M.onPointerLeave){const T=Ap(I),U=f.hovered.get(T);U?U.stopped&&I.stopPropagation():(f.hovered.set(T,I),M.onPointerOver==null||M.onPointerOver(I),M.onPointerEnter==null||M.onPointerEnter(I))}M.onPointerMove==null||M.onPointerMove(I)}else{const T=M[l];T?(!E||f.initialHits.includes(B))&&(o(h,f.interaction.filter(U=>!f.initialHits.includes(U))),T(I)):E&&f.initialHits.includes(B)&&o(h,f.interaction.filter(U=>!f.initialHits.includes(U)))}}r(C,h,p,y)}}return{handlePointer:a}}const OO=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],KT=n=>!!(n!=null&&n.render),wI=k.createContext(null),GO=(n,e)=>{const t=UT((a,l)=>{const A=new H,h=new H,d=new H;function f(p=l().camera,y=h,I=l().size){const{width:B,height:R,top:M,left:T}=I,U=B/R;y instanceof H?d.copy(y):d.set(...y);const K=p.getWorldPosition(A).distanceTo(d);if(HT(p))return{width:B/p.zoom,height:R/p.zoom,top:M,left:T,factor:1,distance:K,aspect:U};{const w=p.fov*Math.PI/180,P=2*Math.tan(w/2)*K,q=P*(B/R);return{width:q,height:P,top:M,left:T,factor:B/q,distance:K,aspect:U}}}let g;const E=p=>a(y=>({performance:{...y.performance,current:p}})),v=new Be;return{set:a,get:l,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(p=1)=>n(l(),p),advance:(p,y)=>e(p,y,l()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new II,pointer:v,mouse:v,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const p=l();g&&clearTimeout(g),p.performance.current!==p.performance.min&&E(p.performance.min),g=setTimeout(()=>E(l().performance.max),p.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:f},setEvents:p=>a(y=>({...y,events:{...y.events,...p}})),setSize:(p,y,I,B,R)=>{const M=l().camera,T={width:p,height:y,top:B||0,left:R||0,updateStyle:I};a(U=>({size:T,viewport:{...U.viewport,...f(M,h,T)}}))},setDpr:p=>a(y=>{const I=YT(p);return{viewport:{...y.viewport,dpr:I,initialDpr:y.viewport.initialDpr||I}}}),setFrameloop:(p="always")=>{const y=l().clock;y.stop(),y.elapsedTime=0,p!=="never"&&(y.start(),y.elapsedTime=0),a(()=>({frameloop:p}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:k.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(p,y,I)=>{const B=l().internal;return B.priority=B.priority+(y>0?1:0),B.subscribers.push({ref:p,priority:y,store:I}),B.subscribers=B.subscribers.sort((R,M)=>R.priority-M.priority),()=>{const R=l().internal;R!=null&&R.subscribers&&(R.priority=R.priority-(y>0?1:0),R.subscribers=R.subscribers.filter(M=>M.ref!==p))}}}}}),i=t.getState();let r=i.size,s=i.viewport.dpr,o=i.camera;return t.subscribe(()=>{const{camera:a,size:l,viewport:A,gl:h,set:d}=t.getState();if(l.width!==r.width||l.height!==r.height||A.dpr!==s){var f;r=l,s=A.dpr,JT(a,l),h.setPixelRatio(A.dpr);const g=(f=l.updateStyle)!=null?f:typeof HTMLCanvasElement<"u"&&h.domElement instanceof HTMLCanvasElement;h.setSize(l.width,l.height,g)}a!==o&&(o=a,d(g=>({viewport:{...g.viewport,...g.viewport.getCurrentViewport(a)}})))}),t.subscribe(a=>n(a)),t};let hp,HO=new Set,zO=new Set,VO=new Set;function qE(n,e){if(n.size)for(const{callback:t}of n.values())t(e)}function wA(n,e){switch(n){case"before":return qE(HO,e);case"after":return qE(zO,e);case"tail":return qE(VO,e)}}let ZE,$E;function eC(n,e,t){let i=e.clock.getDelta();for(e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),ZE=e.internal.subscribers,hp=0;hp0)&&!((A=r.gl.xr)!=null&&A.isPresenting)&&(t+=eC(l,r))}if(wA("after",l),t===0)return wA("tail",l),e=!1,cancelAnimationFrame(i)}function o(l,A=1){var h;if(!l)return n.forEach(d=>o(d.store.getState()),A);(h=l.gl.xr)!=null&&h.isPresenting||!l.internal.active||l.frameloop==="never"||(l.internal.frames=Math.min(60,l.internal.frames+A),e||(e=!0,requestAnimationFrame(s)))}function a(l,A=!0,h,d){if(A&&wA("before",l),h)eC(l,h,d);else for(const f of n.values())eC(l,f.store.getState());A&&wA("after",l)}return{loop:s,invalidate:o,advance:a}}function wo(){const n=k.useContext(wI);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function _m(n=t=>t,e){return wo()(n,e)}function jr(n,e=0){const t=wo(),i=t.getState().internal.subscribe,r=zT(n);return rd(()=>i(r,e,t),[e,i,t]),null}const Qu=new Map,{invalidate:hw,advance:dw}=WO(Qu),{reconciler:Oh,applyProps:Oc}=TO(Qu,UO),Gc={objects:"shallow",strict:!1},YO=(n,e)=>{const t=typeof n=="function"?n(e):n;return KT(t)?t:new iI({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...n})};function XO(n,e){const t=typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement;if(e){const{width:i,height:r,top:s,left:o,updateStyle:a=t}=e;return{width:i,height:r,top:s,left:o,updateStyle:a}}else if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){const{width:i,height:r,top:s,left:o}=n.parentElement.getBoundingClientRect();return{width:i,height:r,top:s,left:o,updateStyle:t}}else if(typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0,updateStyle:t};return{width:0,height:0,top:0,left:0}}function JO(n){const e=Qu.get(n),t=e==null?void 0:e.fiber,i=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,s=i||GO(hw,dw),o=t||Oh.createContainer(s,cu.ConcurrentRoot,null,!1,null,"",r,null);e||Qu.set(n,{fiber:o,store:s});let a,l=!1,A;return{configure(h={}){let{gl:d,size:f,scene:g,events:E,onCreated:v,shadows:C=!1,linear:p=!1,flat:y=!1,legacy:I=!1,orthographic:B=!1,frameloop:R="always",dpr:M=[1,2],performance:T,raycaster:U,camera:K,onPointerMissed:w}=h,P=s.getState(),q=P.gl;P.gl||P.set({gl:q=YO(d,n)});let fe=P.raycaster;fe||P.set({raycaster:fe=new id});const{params:J,...re}=U||{};if(_n.equ(re,fe,Gc)||Oc(fe,{...re}),_n.equ(J,fe.params,Gc)||Oc(fe,{params:{...fe.params,...J}}),!P.camera||P.camera===A&&!_n.equ(A,K,Gc)){A=K;const ye=K instanceof jh,Oe=ye?K:B?new Zh(0,0,0,0,.1,1e3):new ni(75,0,.1,1e3);ye||(Oe.position.z=5,K&&Oc(Oe,K),!P.camera&&!(K!=null&&K.rotation)&&Oe.lookAt(0,0,0)),P.set({camera:Oe}),fe.camera=Oe}if(!P.scene){let ye;g instanceof Dh?ye=g:(ye=new Dh,g&&Oc(ye,g)),P.set({scene:Vc(ye)})}if(!P.xr){var ne;const ye=(z,G)=>{const O=s.getState();O.frameloop!=="never"&&dw(z,!0,O,G)},Oe=()=>{const z=s.getState();z.gl.xr.enabled=z.gl.xr.isPresenting,z.gl.xr.setAnimationLoop(z.gl.xr.isPresenting?ye:null),z.gl.xr.isPresenting||hw(z)},Y={connect(){const z=s.getState().gl;z.xr.addEventListener("sessionstart",Oe),z.xr.addEventListener("sessionend",Oe)},disconnect(){const z=s.getState().gl;z.xr.removeEventListener("sessionstart",Oe),z.xr.removeEventListener("sessionend",Oe)}};typeof((ne=q.xr)==null?void 0:ne.addEventListener)=="function"&&Y.connect(),P.set({xr:Y})}if(q.shadowMap){const ye=q.shadowMap.enabled,Oe=q.shadowMap.type;if(q.shadowMap.enabled=!!C,_n.boo(C))q.shadowMap.type=JA;else if(_n.str(C)){var ue;const Y={basic:SQ,percentage:$g,soft:JA,variance:rs};q.shadowMap.type=(ue=Y[C])!=null?ue:JA}else _n.obj(C)&&Object.assign(q.shadowMap,C);(ye!==q.shadowMap.enabled||Oe!==q.shadowMap.type)&&(q.shadowMap.needsUpdate=!0)}const F=GT();F&&("enabled"in F?F.enabled=!I:"legacyMode"in F&&(F.legacyMode=I)),Oc(q,{outputEncoding:p?3e3:3001,toneMapping:y?Us:Fv}),P.legacy!==I&&P.set(()=>({legacy:I})),P.linear!==p&&P.set(()=>({linear:p})),P.flat!==y&&P.set(()=>({flat:y})),d&&!_n.fun(d)&&!KT(d)&&!_n.equ(d,q,Gc)&&Oc(q,d),E&&!P.events.handlers&&P.set({events:E(s)});const Ae=XO(n,f);return _n.equ(Ae,P.size,Gc)||P.setSize(Ae.width,Ae.height,Ae.updateStyle,Ae.top,Ae.left),M&&P.viewport.dpr!==YT(M)&&P.setDpr(M),P.frameloop!==R&&P.setFrameloop(R),P.onPointerMissed||P.set({onPointerMissed:w}),T&&!_n.equ(T,P.performance,Gc)&&P.set(ye=>({performance:{...ye.performance,...T}})),a=v,l=!0,this},render(h){return l||this.configure(),Oh.updateContainer(k.createElement(jO,{store:s,children:h,onCreated:a,rootElement:n}),o,null,()=>{}),s},unmount(){qT(n)}}}function jO({store:n,children:e,onCreated:t,rootElement:i}){return rd(()=>{const r=n.getState();r.set(s=>({internal:{...s.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),k.createElement(wI.Provider,{value:n},e)}function qT(n,e){const t=Qu.get(n),i=t==null?void 0:t.fiber;if(i){const r=t==null?void 0:t.store.getState();r&&(r.internal.active=!1),Oh.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{var s,o,a,l;r.events.disconnect==null||r.events.disconnect(),(s=r.gl)==null||(o=s.renderLists)==null||o.dispose==null||o.dispose(),(a=r.gl)==null||a.forceContextLoss==null||a.forceContextLoss(),(l=r.gl)!=null&&l.xr&&r.xr.disconnect(),LO(r),Qu.delete(n),e&&e(n)}catch{}},500)})}}function ZT(n,e,t){return k.createElement(KO,{key:e.uuid,children:n,container:e,state:t})}function KO({state:n={},children:e,container:t}){const{events:i,size:r,...s}=n,o=wo(),[a]=k.useState(()=>new id),[l]=k.useState(()=>new Be),A=k.useCallback((d,f)=>{const g={...d};Object.keys(d).forEach(v=>{(OO.includes(v)||d[v]!==f[v]&&f[v])&&delete g[v]});let E;if(f&&r){const v=f.camera;E=d.viewport.getCurrentViewport(v,new H,r),v!==d.camera&&JT(v,r)}return{...g,scene:t,raycaster:a,pointer:l,mouse:l,previousRoot:o,events:{...d.events,...f==null?void 0:f.events,...i},size:{...d.size,...r},viewport:{...d.viewport,...E},...s}},[n]),[h]=k.useState(()=>{const d=o.getState();return UT((g,E)=>({...d,scene:t,raycaster:a,pointer:l,mouse:l,previousRoot:o,events:{...d.events,...i},size:{...d.size,...r},...s,set:g,get:E,setEvents:v=>g(C=>({...C,events:{...C.events,...v}}))}))});return k.useEffect(()=>{const d=o.subscribe(f=>h.setState(g=>A(f,g)));return()=>{d(),h.destroy()}},[]),k.useEffect(()=>{h.setState(d=>A(o.getState(),d))},[A]),k.createElement(k.Fragment,null,Oh.createPortal(k.createElement(wI.Provider,{value:h},e),h,null))}Oh.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:k.version});function Rg(){return Rg=Object.assign?Object.assign.bind():function(n){for(var e=1;e=0?i=setTimeout(l,e-h):(i=null,t||(a=n.apply(s,r),s=r=null))}var A=function(){s=this,r=arguments,o=Date.now();var h=t&&!i;return i||(i=setTimeout(l,e)),h&&(a=n.apply(s,r),s=r=null),a};return A.clear=function(){i&&(clearTimeout(i),i=null)},A.flush=function(){i&&(a=n.apply(s,r),s=r=null,clearTimeout(i),i=null)},A}C1.debounce=C1;var qO=C1;const fw=H1(qO);function ZO(n){let{debounce:e,scroll:t,polyfill:i,offsetSize:r}=n===void 0?{debounce:0,scroll:!1,offsetSize:!1}:n;const s=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!s)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,a]=k.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),l=k.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),A=e?typeof e=="number"?e:e.scroll:null,h=e?typeof e=="number"?e:e.resize:null,d=k.useRef(!1);k.useEffect(()=>(d.current=!0,()=>void(d.current=!1)));const[f,g,E]=k.useMemo(()=>{const y=()=>{if(!l.current.element)return;const{left:I,top:B,width:R,height:M,bottom:T,right:U,x:K,y:w}=l.current.element.getBoundingClientRect(),P={left:I,top:B,width:R,height:M,bottom:T,right:U,x:K,y:w};l.current.element instanceof HTMLElement&&r&&(P.height=l.current.element.offsetHeight,P.width=l.current.element.offsetWidth),Object.freeze(P),d.current&&!nG(l.current.lastBounds,P)&&a(l.current.lastBounds=P)};return[y,h?fw(y,h):y,A?fw(y,A):y]},[a,r,A,h]);function v(){l.current.scrollContainers&&(l.current.scrollContainers.forEach(y=>y.removeEventListener("scroll",E,!0)),l.current.scrollContainers=null),l.current.resizeObserver&&(l.current.resizeObserver.disconnect(),l.current.resizeObserver=null)}function C(){l.current.element&&(l.current.resizeObserver=new s(E),l.current.resizeObserver.observe(l.current.element),t&&l.current.scrollContainers&&l.current.scrollContainers.forEach(y=>y.addEventListener("scroll",E,{capture:!0,passive:!0})))}const p=y=>{!y||y===l.current.element||(v(),l.current.element=y,l.current.scrollContainers=$T(y),C())};return eG(E,!!t),$O(g),k.useEffect(()=>{v(),C()},[t,E,g]),k.useEffect(()=>v,[]),[p,o,f]}function $O(n){k.useEffect(()=>{const e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function eG(n,e){k.useEffect(()=>{if(e){const t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function $T(n){const e=[];if(!n||n===document.body)return e;const{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(s=>s==="auto"||s==="scroll")&&e.push(n),[...e,...$T(n.parentElement)]}const tG=["x","y","top","bottom","left","right","width","height"],nG=(n,e)=>tG.every(t=>n[t]===e[t]);var iG=Object.defineProperty,rG=Object.defineProperties,sG=Object.getOwnPropertyDescriptors,pw=Object.getOwnPropertySymbols,oG=Object.prototype.hasOwnProperty,aG=Object.prototype.propertyIsEnumerable,gw=(n,e,t)=>e in n?iG(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,mw=(n,e)=>{for(var t in e||(e={}))oG.call(e,t)&&gw(n,t,e[t]);if(pw)for(var t of pw(e))aG.call(e,t)&&gw(n,t,e[t]);return n},lG=(n,e)=>rG(n,sG(e));function eD(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){const r=eD(i,e,t);if(r)return r;i=e?null:i.sibling}}function tD(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}const MI=tD(k.createContext(null));class nD extends k.Component{render(){return k.createElement(MI.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:Ew,ReactCurrentDispatcher:Cw}=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function cG(){const n=k.useContext(MI);if(n===null)throw new Error("its-fine: useFiber must be called within a !");const e=k.useId();return k.useMemo(()=>{for(const i of[Ew==null?void 0:Ew.current,n,n==null?void 0:n.alternate]){if(!i)continue;const r=eD(i,!1,s=>{let o=s.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[n,e])}function uG(){var n,e;const t=cG(),[i]=k.useState(()=>new Map);i.clear();let r=t;for(;r;){const s=(n=r.type)==null?void 0:n._context;s&&s!==MI&&!i.has(s)&&i.set(s,(e=Cw==null?void 0:Cw.current)==null?void 0:e.readContext(tD(s))),r=r.return}return i}function AG(){const n=uG();return k.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>k.createElement(e,null,k.createElement(t.Provider,lG(mw({},i),{value:n.get(t)}))),e=>k.createElement(nD,mw({},e))),[n])}const tC={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function hG(n){const{handlePointer:e}=kO(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(tC).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;const{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{var i;const{set:r,events:s}=n.getState();s.disconnect==null||s.disconnect(),r(o=>({events:{...o.events,connected:t}})),Object.entries((i=s.handlers)!=null?i:[]).forEach(([o,a])=>{const[l,A]=tC[o];t.addEventListener(l,a,{passive:A})})},disconnect:()=>{const{set:t,events:i}=n.getState();if(i.connected){var r;Object.entries((r=i.handlers)!=null?r:[]).forEach(([s,o])=>{if(i&&i.connected instanceof HTMLElement){const[a]=tC[s];i.connected.removeEventListener(a,o)}}),t(s=>({events:{...s.events,connected:void 0}}))}}}}const dG=k.forwardRef(function({children:e,fallback:t,resize:i,style:r,gl:s,events:o=hG,eventSource:a,eventPrefix:l,shadows:A,linear:h,flat:d,legacy:f,orthographic:g,frameloop:E,dpr:v,performance:C,raycaster:p,camera:y,scene:I,onPointerMissed:B,onCreated:R,...M},T){k.useMemo(()=>RO(BO),[]);const U=AG(),[K,w]=ZO({scroll:!0,debounce:{scroll:50,resize:0},...i}),P=k.useRef(null),q=k.useRef(null);k.useImperativeHandle(T,()=>P.current);const fe=zT(B),[J,re]=k.useState(!1),[ne,ue]=k.useState(!1);if(J)throw J;if(ne)throw ne;const F=k.useRef(null);rd(()=>{const te=P.current;w.width>0&&w.height>0&&te&&(F.current||(F.current=JO(te)),F.current.configure({gl:s,events:o,shadows:A,linear:h,flat:d,legacy:f,orthographic:g,frameloop:E,dpr:v,performance:C,raycaster:p,camera:y,scene:I,size:w,onPointerMissed:(...Ae)=>fe.current==null?void 0:fe.current(...Ae),onCreated:Ae=>{Ae.events.connect==null||Ae.events.connect(a?DO(a)?a.current:a:q.current),l&&Ae.setEvents({compute:(ye,Oe)=>{const Y=ye[l+"X"],z=ye[l+"Y"];Oe.pointer.set(Y/Oe.size.width*2-1,-(z/Oe.size.height)*2+1),Oe.raycaster.setFromCamera(Oe.pointer,Oe.camera)}}),R==null||R(Ae)}}),F.current.render(k.createElement(U,null,k.createElement(VT,{set:ue},k.createElement(k.Suspense,{fallback:k.createElement(bO,{set:re})},e)))))}),k.useEffect(()=>{const te=P.current;if(te)return()=>qT(te)},[]);const ee=a?"none":"auto";return k.createElement("div",Rg({ref:q,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ee,...r}},M),k.createElement("div",{ref:K,style:{width:"100%",height:"100%"}},k.createElement("canvas",{ref:P,style:{display:"block"}},t)))}),fG=k.forwardRef(function(e,t){return k.createElement(nD,null,k.createElement(dG,Rg({},e,{ref:t})))});function wm(){throw new Error("Cycle detected")}var pG=Symbol.for("preact-signals");function Mm(){if(Ra>1)Ra--;else{for(var n,e=!1;$A!==void 0;){var t=$A;for($A=void 0,y1++;t!==void 0;){var i=t.o;if(t.o=void 0,t.f&=-3,!(8&t.f)&&sD(t))try{t.c()}catch(r){e||(n=r,e=!0)}t=i}}if(y1=0,Ra--,e)throw n}}function iD(n){if(Ra>0)return n();Ra++;try{return n()}finally{Mm()}}var In=void 0,nC=0;function iC(n){if(nC>0)return n();var e=In;In=void 0,nC++;try{return n()}finally{nC--,In=e}}var $A=void 0,Ra=0,y1=0,Tg=0;function rD(n){if(In!==void 0){var e=n.n;if(e===void 0||e.t!==In)return e={i:0,S:n,p:In.s,n:void 0,t:In,e:void 0,x:void 0,r:e},In.s!==void 0&&(In.s.n=e),In.s=e,n.n=e,32&In.f&&n.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=In.s,e.n=void 0,In.s.n=e,In.s=e),e}}function On(n){this.v=n,this.i=0,this.n=void 0,this.t=void 0}On.prototype.brand=pG;On.prototype.h=function(){return!0};On.prototype.S=function(n){this.t!==n&&n.e===void 0&&(n.x=this.t,this.t!==void 0&&(this.t.e=n),this.t=n)};On.prototype.U=function(n){if(this.t!==void 0){var e=n.e,t=n.x;e!==void 0&&(e.x=t,n.e=void 0),t!==void 0&&(t.e=e,n.x=void 0),n===this.t&&(this.t=t)}};On.prototype.subscribe=function(n){var e=this;return qt(function(){var t=e.value,i=32&this.f;this.f&=-33;try{n(t)}finally{this.f|=i}})};On.prototype.valueOf=function(){return this.value};On.prototype.toString=function(){return this.value+""};On.prototype.toJSON=function(){return this.value};On.prototype.peek=function(){return this.v};Object.defineProperty(On.prototype,"value",{get:function(){var n=rD(this);return n!==void 0&&(n.i=this.i),this.v},set:function(n){if(In instanceof za&&function(){throw new Error("Computed cannot have side-effects")}(),n!==this.v){y1>100&&wm(),this.v=n,this.i++,Tg++,Ra++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{Mm()}}}});function Ht(n){return new On(n)}function sD(n){for(var e=n.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function oD(n){for(var e=n.s;e!==void 0;e=e.n){var t=e.S.n;if(t!==void 0&&(e.r=t),e.S.n=e,e.i=-1,e.n===void 0){n.s=e;break}}}function aD(n){for(var e=n.s,t=void 0;e!==void 0;){var i=e.p;e.i===-1?(e.S.U(e),i!==void 0&&(i.n=e.n),e.n!==void 0&&(e.n.p=i)):t=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=i}n.s=t}function za(n){On.call(this,void 0),this.x=n,this.s=void 0,this.g=Tg-1,this.f=4}(za.prototype=new On).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Tg))return!0;if(this.g=Tg,this.f|=1,this.i>0&&!sD(this))return this.f&=-2,!0;var n=In;try{oD(this),In=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(t){this.v=t,this.f|=16,this.i++}return In=n,aD(this),this.f&=-2,!0};za.prototype.S=function(n){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}On.prototype.S.call(this,n)};za.prototype.U=function(n){if(this.t!==void 0&&(On.prototype.U.call(this,n),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};za.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var n=this.t;n!==void 0;n=n.x)n.t.N()}};za.prototype.peek=function(){if(this.h()||wm(),16&this.f)throw this.v;return this.v};Object.defineProperty(za.prototype,"value",{get:function(){1&this.f&&wm();var n=rD(this);if(this.h(),n!==void 0&&(n.i=this.i),16&this.f)throw this.v;return this.v}});function bn(n){return new za(n)}function lD(n){var e=n.u;if(n.u=void 0,typeof e=="function"){Ra++;var t=In;In=void 0;try{e()}catch(i){throw n.f&=-2,n.f|=8,QI(n),i}finally{In=t,Mm()}}}function QI(n){for(var e=n.s;e!==void 0;e=e.n)e.S.U(e);n.x=void 0,n.s=void 0,lD(n)}function gG(n){if(In!==this)throw new Error("Out-of-order effect");aD(this),In=n,this.f&=-2,8&this.f&&QI(this),Mm()}function sd(n){this.x=n,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}sd.prototype.c=function(){var n=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{n()}};sd.prototype.S=function(){1&this.f&&wm(),this.f|=1,this.f&=-9,lD(this),oD(this),Ra++;var n=In;return In=this,gG.bind(this,n)};sd.prototype.N=function(){2&this.f||(this.f|=2,this.o=$A,$A=this)};sd.prototype.d=function(){this.f|=8,1&this.f||QI(this)};function qt(n){var e=new sd(n);try{e.c()}catch(t){throw e.d(),t}return e.d.bind(e)}function Qm(n,e,t){const i=k.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=k.useMemo(()=>{let s={};return(o,a)=>{let l=0,A=!1;for(const h in s){if(!uD(s[h],o[h])){A=!0;break}++l}A||(A=l!=a),s=o,!(!A&&e.getProperty.peek()!=null)&&(e.getProperty.value=h=>v1(o[h]))}},[e]);cD(n,i,r,t)}function mG(n,e){const t=n.length;for(const i in e)for(let r=0;r{let r={},s=0;const o=(l,A)=>{if(A===void 0)return;const h=r[l];if(h===void 0&&++s,h==null||!(A instanceof On)){r[l]=A;return}if(Array.isArray(h)){h.push(A);return}r[l]=[h,A]};return{add:(l,A)=>{if(A!==void 0){if(i!=null){i(l,A,e,o);return}e(l)&&o(l,A)}},finish:()=>{t(r,s),s=0,r={}}}},[e,t,i]))}function uD(n,e){if(!Array.isArray(n))return n===e;if(!Array.isArray(e))return!1;const t=n.length;if(t!=e.length)return!1;for(let i=0;iHt(void 0),[]),r=k.useMemo(()=>({hasBatchedProperty:s=>e.includes(s),getProperty:i}),[e]);return Qm(n,r,t),i}const I1=k.createContext(void 0);function ku(n,e){const t=k.useContext(I1);t!=null&&e(t);const{classes:i}=n;if(Array.isArray(i)){const r=i.length;for(let s=0;smG(n,t))}function En(n){const t={...k.useContext(I1)};for(const i in n){if(i==="children")continue;const r=n[i];r!=null&&(t[i]=r)}return D.jsx(I1.Provider,{value:t,children:n.children})}var Gi={},RI={},Ut={};Object.defineProperty(Ut,"__esModule",{value:!0});Ut.default=Ut.Wrap=Ut.Unit=Ut.PrintOptions=Ut.PositionType=Ut.Overflow=Ut.NodeType=Ut.MeasureMode=Ut.LogLevel=Ut.Justify=Ut.Gutter=Ut.FlexDirection=Ut.ExperimentalFeature=Ut.Errata=Ut.Edge=Ut.Display=Ut.Direction=Ut.Dimension=Ut.Align=void 0;let oo=function(n){return n[n.Auto=0]="Auto",n[n.FlexStart=1]="FlexStart",n[n.Center=2]="Center",n[n.FlexEnd=3]="FlexEnd",n[n.Stretch=4]="Stretch",n[n.Baseline=5]="Baseline",n[n.SpaceBetween=6]="SpaceBetween",n[n.SpaceAround=7]="SpaceAround",n}({});Ut.Align=oo;let x1=function(n){return n[n.Width=0]="Width",n[n.Height=1]="Height",n}({});Ut.Dimension=x1;let Vp=function(n){return n[n.Inherit=0]="Inherit",n[n.LTR=1]="LTR",n[n.RTL=2]="RTL",n}({});Ut.Direction=Vp;let B1=function(n){return n[n.Flex=0]="Flex",n[n.None=1]="None",n}({});Ut.Display=B1;let ws=function(n){return n[n.Left=0]="Left",n[n.Top=1]="Top",n[n.Right=2]="Right",n[n.Bottom=3]="Bottom",n[n.Start=4]="Start",n[n.End=5]="End",n[n.Horizontal=6]="Horizontal",n[n.Vertical=7]="Vertical",n[n.All=8]="All",n}({});Ut.Edge=ws;let LA=function(n){return n[n.None=0]="None",n[n.StretchFlexBasis=1]="StretchFlexBasis",n[n.All=2147483647]="All",n[n.Classic=2147483646]="Classic",n}({});Ut.Errata=LA;let Wp=function(n){return n[n.WebFlexBasis=0]="WebFlexBasis",n[n.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",n[n.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",n}({});Ut.ExperimentalFeature=Wp;let NA=function(n){return n[n.Column=0]="Column",n[n.ColumnReverse=1]="ColumnReverse",n[n.Row=2]="Row",n[n.RowReverse=3]="RowReverse",n}({});Ut.FlexDirection=NA;let Yp=function(n){return n[n.Column=0]="Column",n[n.Row=1]="Row",n[n.All=2]="All",n}({});Ut.Gutter=Yp;let Sl=function(n){return n[n.FlexStart=0]="FlexStart",n[n.Center=1]="Center",n[n.FlexEnd=2]="FlexEnd",n[n.SpaceBetween=3]="SpaceBetween",n[n.SpaceAround=4]="SpaceAround",n[n.SpaceEvenly=5]="SpaceEvenly",n}({});Ut.Justify=Sl;let _l=function(n){return n[n.Error=0]="Error",n[n.Warn=1]="Warn",n[n.Info=2]="Info",n[n.Debug=3]="Debug",n[n.Verbose=4]="Verbose",n[n.Fatal=5]="Fatal",n}({});Ut.LogLevel=_l;let Xp=function(n){return n[n.Undefined=0]="Undefined",n[n.Exactly=1]="Exactly",n[n.AtMost=2]="AtMost",n}({});Ut.MeasureMode=Xp;let S1=function(n){return n[n.Default=0]="Default",n[n.Text=1]="Text",n}({});Ut.NodeType=S1;let Jp=function(n){return n[n.Visible=0]="Visible",n[n.Hidden=1]="Hidden",n[n.Scroll=2]="Scroll",n}({});Ut.Overflow=Jp;let jp=function(n){return n[n.Static=0]="Static",n[n.Relative=1]="Relative",n[n.Absolute=2]="Absolute",n}({});Ut.PositionType=jp;let Kp=function(n){return n[n.Layout=1]="Layout",n[n.Style=2]="Style",n[n.Children=4]="Children",n}({});Ut.PrintOptions=Kp;let UA=function(n){return n[n.Undefined=0]="Undefined",n[n.Point=1]="Point",n[n.Percent=2]="Percent",n[n.Auto=3]="Auto",n}({});Ut.Unit=UA;let qp=function(n){return n[n.NoWrap=0]="NoWrap",n[n.Wrap=1]="Wrap",n[n.WrapReverse=2]="WrapReverse",n}({});Ut.Wrap=qp;const EG={ALIGN_AUTO:oo.Auto,ALIGN_FLEX_START:oo.FlexStart,ALIGN_CENTER:oo.Center,ALIGN_FLEX_END:oo.FlexEnd,ALIGN_STRETCH:oo.Stretch,ALIGN_BASELINE:oo.Baseline,ALIGN_SPACE_BETWEEN:oo.SpaceBetween,ALIGN_SPACE_AROUND:oo.SpaceAround,DIMENSION_WIDTH:x1.Width,DIMENSION_HEIGHT:x1.Height,DIRECTION_INHERIT:Vp.Inherit,DIRECTION_LTR:Vp.LTR,DIRECTION_RTL:Vp.RTL,DISPLAY_FLEX:B1.Flex,DISPLAY_NONE:B1.None,EDGE_LEFT:ws.Left,EDGE_TOP:ws.Top,EDGE_RIGHT:ws.Right,EDGE_BOTTOM:ws.Bottom,EDGE_START:ws.Start,EDGE_END:ws.End,EDGE_HORIZONTAL:ws.Horizontal,EDGE_VERTICAL:ws.Vertical,EDGE_ALL:ws.All,ERRATA_NONE:LA.None,ERRATA_STRETCH_FLEX_BASIS:LA.StretchFlexBasis,ERRATA_ALL:LA.All,ERRATA_CLASSIC:LA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Wp.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:Wp.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:Wp.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:NA.Column,FLEX_DIRECTION_COLUMN_REVERSE:NA.ColumnReverse,FLEX_DIRECTION_ROW:NA.Row,FLEX_DIRECTION_ROW_REVERSE:NA.RowReverse,GUTTER_COLUMN:Yp.Column,GUTTER_ROW:Yp.Row,GUTTER_ALL:Yp.All,JUSTIFY_FLEX_START:Sl.FlexStart,JUSTIFY_CENTER:Sl.Center,JUSTIFY_FLEX_END:Sl.FlexEnd,JUSTIFY_SPACE_BETWEEN:Sl.SpaceBetween,JUSTIFY_SPACE_AROUND:Sl.SpaceAround,JUSTIFY_SPACE_EVENLY:Sl.SpaceEvenly,LOG_LEVEL_ERROR:_l.Error,LOG_LEVEL_WARN:_l.Warn,LOG_LEVEL_INFO:_l.Info,LOG_LEVEL_DEBUG:_l.Debug,LOG_LEVEL_VERBOSE:_l.Verbose,LOG_LEVEL_FATAL:_l.Fatal,MEASURE_MODE_UNDEFINED:Xp.Undefined,MEASURE_MODE_EXACTLY:Xp.Exactly,MEASURE_MODE_AT_MOST:Xp.AtMost,NODE_TYPE_DEFAULT:S1.Default,NODE_TYPE_TEXT:S1.Text,OVERFLOW_VISIBLE:Jp.Visible,OVERFLOW_HIDDEN:Jp.Hidden,OVERFLOW_SCROLL:Jp.Scroll,POSITION_TYPE_STATIC:jp.Static,POSITION_TYPE_RELATIVE:jp.Relative,POSITION_TYPE_ABSOLUTE:jp.Absolute,PRINT_OPTIONS_LAYOUT:Kp.Layout,PRINT_OPTIONS_STYLE:Kp.Style,PRINT_OPTIONS_CHILDREN:Kp.Children,UNIT_UNDEFINED:UA.Undefined,UNIT_POINT:UA.Point,UNIT_PERCENT:UA.Percent,UNIT_AUTO:UA.Auto,WRAP_NO_WRAP:qp.NoWrap,WRAP_WRAP:qp.Wrap,WRAP_WRAP_REVERSE:qp.WrapReverse};var CG=EG;Ut.default=CG;Object.defineProperty(RI,"__esModule",{value:!0});RI.default=vG;var oa=yG(Ut);function AD(n){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(AD=function(i){return i?t:e})(n)}function yG(n,e){if(!e&&n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=AD(e);if(t&&t.has(n))return t.get(n);var i={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if(s!=="default"&&Object.prototype.hasOwnProperty.call(n,s)){var o=r?Object.getOwnPropertyDescriptor(n,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=n[s]}return i.default=n,t&&t.set(n,i),i}function vG(n){function e(r,s,o){const a=r[s];r[s]=function(){for(var l=arguments.length,A=new Array(l),h=0;h1?a-1:0),A=1;As?n.Node.createWithConfig(s):n.Node.createDefault()),e(n.Node.prototype,"free",function(){n.Node.destroy(this)}),e(n.Node.prototype,"freeRecursive",function(){for(let r=0,s=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:oa.Direction.LTR;return r.call(this,s,o,a)}),{Config:n.Config,Node:n.Node,...oa.default}}var hD={exports:{}};(function(n,e){var t=(()=>{var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var s;s||(s=typeof r<"u"?r:{});var o,a;s.ready=new Promise(function(L,N){o=L,a=N});var l=Object.assign({},s),A="";typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),i&&(A=i),A.indexOf("blob:")!==0?A=A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):A="";var h=s.print||console.log.bind(console),d=s.printErr||console.warn.bind(console);Object.assign(s,l),l=null;var f;s.wasmBinary&&(f=s.wasmBinary),s.noExitRuntime,typeof WebAssembly!="object"&&ue("no native wasm support detected");var g,E=!1;function v(L,N,Z){Z=N+Z;for(var ae="";!(N>=Z);){var ge=L[N++];if(!ge)break;if(ge&128){var we=L[N++]&63;if((ge&224)==192)ae+=String.fromCharCode((ge&31)<<6|we);else{var Ue=L[N++]&63;ge=(ge&240)==224?(ge&15)<<12|we<<6|Ue:(ge&7)<<18|we<<12|Ue<<6|L[N++]&63,65536>ge?ae+=String.fromCharCode(ge):(ge-=65536,ae+=String.fromCharCode(55296|ge>>10,56320|ge&1023))}}else ae+=String.fromCharCode(ge)}return ae}var C,p,y,I,B,R,M,T,U;function K(){var L=g.buffer;C=L,s.HEAP8=p=new Int8Array(L),s.HEAP16=I=new Int16Array(L),s.HEAP32=R=new Int32Array(L),s.HEAPU8=y=new Uint8Array(L),s.HEAPU16=B=new Uint16Array(L),s.HEAPU32=M=new Uint32Array(L),s.HEAPF32=T=new Float32Array(L),s.HEAPF64=U=new Float64Array(L)}var w,P=[],q=[],fe=[];function J(){var L=s.preRun.shift();P.unshift(L)}var re=0,ne=null;function ue(L){throw s.onAbort&&s.onAbort(L),L="Aborted("+L+")",d(L),E=!0,L=new WebAssembly.RuntimeError(L+". Build with -sASSERTIONS for more info."),a(L),L}function F(L){return L.startsWith("data:application/octet-stream;base64,")}var ee;if(ee="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcBcAHXAdcBBQcBAYACgIACBg0CfwFB8L8EC38BQQALByQIAUQCAAFFAFcBRgCrAQFHAKoBAUgASgFJAQABSgApAUsAoQEJ+QIBAEEBC9YBoAGmAaUBJp8BngGdASYmJiYmJt0B2gGEAcsBSMoByQEmJkiDAYIBgQHIAccBxgHFAUiAAcQBJiZIgwGCAYEBwwHCAcEBWn+cAX1amwF8mgHAAZkBNZgBNZcBlgF7lQE6lAE6kwG/AVS+AVS9AVRTUrwBuwG6AVh/kgG5AZEBfViQAYABjwE1jgE1jQG4AYwBiwGKAYkBiAGdApwCmwKaApkCmAKXApYCtwGVApQCkwKSApECkAKPAo4CjQKMAosCigKJAogChwKGAoUChAKDAoICgQKAAv8B/QH8ATr7AbYB+gH5AfgB9wH2AfUB9AHxAbUB8AG0Ae8B7gHtAewB6wHqAekB6AHnAbMB8wHyAeYB5QGyAeMBfOIBNeEBOuABOt8Be+QBOv4BNd4BNdwB2wE12QHYAdcBOtYBsQHVAdQB0wHSAdEB0AHPAbABzgHNAcwBU1JTUnZ3rQGsAXhuea8BrgF4qQGoAacBpAGjAaIBbgrrvQOBAjIBAX8gAEEBIAAbIQACQANAIAAQSiIBDQFB6D8oAgAiAQRAIAERBwAMAQsLEAQACyABCy8AIAAgACABlyABvEH/////B3FBgICA/AdLGyABIAC8Qf////8HcUGAgID8B00bC6gBAgF9AX8gAEEsaiEAIAFBAnRBwCFqKAIAIQQCQAJ/IAFBfnFBAkYEQCAAQQQgBEGPnrz8BxAzDAELIAAgBEGPnrz8BxAyCyIBQfDhg/wHRwRAIAFBj568/AdGIAFBqtWq/QdGcg0BIAG+IgMgA1wEQEMAAMB/DwsgAUH/////e3FBgICAgAJqviEDIAFBgICAgARxRQ0BCyADIAKUQwrXIzyUIQMLIAMLogECAX8BfSAAQZgBaiEAIAFBAnRBwCFqKAIAIQICfUMAAAAAAn8gAUF+cUECRgRAIABBBCACQY+evPwHEDMMAQsgACACQY+evPwHEDILIgFB8OGD/AdGDQAaQwAAAAAgAUGPnrz8B0YNABoCQCABQarVqv0HRg0AIAG+IgMgA1wNACABQf////97cUGAgICAAmq+DAELQwAAwH8LQwAAAAAQHguiAQIBfwF9IABBmAFqIQAgAUECdEHQIWooAgAhAgJ9QwAAAAACfyABQX5xQQJGBEAgAEEFIAJBj568/AcQMwwBCyAAIAJBj568/AcQMgsiAUHw4YP8B0YNABpDAAAAACABQY+evPwHRg0AGgJAIAFBqtWq/QdGDQAgAb4iAyADXA0AIAFB/////3txQYCAgIACar4MAQtDAADAfwtDAAAAABAeC6gBAgF9AX8gAEEsaiEAIAFBAnRB0CFqKAIAIQQCQAJ/IAFBfnFBAkYEQCAAQQUgBEGPnrz8BxAzDAELIAAgBEGPnrz8BxAyCyIBQfDhg/wHRwRAIAFBj568/AdGIAFBqtWq/QdGcg0BIAG+IgMgA1wEQEMAAMB/DwsgAUH/////e3FBgICAgAJqviEDIAFBgICAgARxRQ0BCyADIAKUQwrXIzyUIQMLIAMLggICA30BfyAAQfQAaiEGIAFBAnRB0CFqKAIAIQACQAJAAkACQAJ/IAFBfnFBAkYEQCAGQQUgAEGPnrz8BxAzDAELIAYgAEGPnrz8BxAyCyIBQfDhg/wHRgRADAELIAFBj568/AdGDQNB8CEhAAJAIAFBqtWq/QdHBEAgAb4iBCAEWw0BQfghIQALIAAqAgAhA0MAAMB/IQQgACgCBEEBaw4CAgEDCyABQf////97cUGAgICAAmq+IQMgAUGAgICABHFFDQELIAMgApRDCtcjPJQhAwsgA0MAAAAAYARAIAMPCyADIQQgA0MAAAAAXQ0BCyAEQwAAAAAgBCAEWxshBQsgBQuCAgIDfQF/IABB9ABqIQYgAUECdEHAIWooAgAhAAJAAkACQAJAAn8gAUF+cUECRgRAIAZBBCAAQY+evPwHEDMMAQsgBiAAQY+evPwHEDILIgFB8OGD/AdGBEAMAQsgAUGPnrz8B0YNA0HwISEAAkAgAUGq1ar9B0cEQCABviIEIARbDQFB+CEhAAsgACoCACEDQwAAwH8hBCAAKAIEQQFrDgICAQMLIAFB/////3txQYCAgIACar4hAyABQYCAgIAEcUUNAQsgAyAClEMK1yM8lCEDCyADQwAAAABgBEAgAw8LIAMhBCADQwAAAABdDQELIARDAAAAACAEIARbGyEFCyAFC4cFAgJ9AX8CQAJAAkACQAJAAkAgAUEBTQRAAkAgACgC1AEiAUHw4YP8B0YNACABQY+evPwHRg0CQfAhIQYCQCABQarVqv0HRwRAIAG+IgUgBVsNAUH4ISEGCyAGKgIAIQRDAADAfyEFIAYoAgRBAWsOAgMBBAsgAUH/////e3FBgICAgAJqviEEIAFBgICAgARxRQ0CCyAEIAOUQwrXIzyUIQUMAgsCQAJAAkAgACgC0AEiAUHw4YP8B0YNACABQY+evPwHRg0BQfAhIQYCQCABQarVqv0HRwRAIAG+IgUgBVsNAUH4ISEGCyAGKgIAIQRDAADAfyEFIAYoAgRBAWsOAgIBAwsgAUH/////e3FBgICAgAJqviEEIAFBgICAgARxRQ0BCyAEIAOUQwrXIzyUIQUMAQsgBCEFC0MAAAAAIQQCQCAAKALYASIAQfDhg/wHRg0AIABBj568/AdGDQRB8CEhAQJAIABBqtWq/QdHBEAgAL4iBCAEWw0BQfghIQELIAEqAgAhBCABKAIEQQFrDgIEAQYLIABB/////3txQYCAgIACar4hBCAAQYCAgIAEcUUNAwsgBCADlEMK1yM8lCEEDAILIAQhBQtDAAAAACEEAkAgACgC3AEiAEHw4YP8B0YNACAAQY+evPwHRg0CQfAhIQECQCAAQarVqv0HRwRAIAC+IgQgBFsNAUH4ISEBCyABKgIAIQQgASgCBEEBaw4CAgEECyAAQf////97cUGAgICAAmq+IQQgAEGAgICABHFFDQELIAQgA5RDCtcjPJQhBAsgBEMAAAAAYEUNAQsgAiAEXg0BCyAFQwAAAABgRQRAIAIPCyAFIAIgAiAFXRshBAsgBAsEACAAC74BAQN/IAAtAABBIHFFBEACQCABIQMCQCACIAAiASgCECIABH8gAAUgARB+DQEgASgCEAsgASgCFCIFa0sEQCABIAMgAiABKAIkEQYAGgwCCwJAIAEoAlBBAEgNACACIQADQCAAIgRFDQEgAyAEQQFrIgBqLQAAQQpHDQALIAEgAyAEIAEoAiQRBgAgBEkNASADIARqIQMgAiAEayECIAEoAhQhBQsgBSADIAIQKxogASABKAIUIAJqNgIUCwsLC20BAX8jAEGAAmsiBSQAIARBgMAEcSACIANMckUEQCAFIAFB/wFxIAIgA2siA0GAAiADQYACSSIBGxAqGiABRQRAA0AgACAFQYACECcgA0GAAmsiA0H/AUsNAAsLIAAgBSADECcLIAVBgAJqJAALzAIBBX8gAARAIABBBGsiASgCACIFIQMgASECIABBCGsoAgAiACAAQX5xIgRHBEAgASAEayICKAIEIgAgAigCCDYCCCACKAIIIAA2AgQgBCAFaiEDCyABIAVqIgQoAgAiASABIARqQQRrKAIARwRAIAQoAgQiACAEKAIINgIIIAQoAgggADYCBCABIANqIQMLIAIgAzYCACADQXxxIAJqQQRrIANBAXI2AgAgAgJ/IAIoAgBBCGsiAUH/AE0EQCABQQN2QQFrDAELIAFBHSABZyIAa3ZBBHMgAEECdGtB7gBqIAFB/x9NDQAaQT8gAUEeIABrdkECcyAAQQF0a0HHAGoiACAAQT9PGwsiAUEEdCIAQdAuajYCBCACIABB2C5qIgAoAgA2AgggACACNgIAIAIoAgggAjYCBEHYNkHYNikDAEIBIAGthoQ3AwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRrIAE2AgAgAkEYayABNgIAIAJBHGsgATYCACAEIANBBHFBGHIiBGsiAkEgSQ0AIAGtQoGAgIAQfiEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAAC4AEAQN/IAJBgARPBEAgACABIAIQFyAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsOAEHILigCABEHABBQAAuXAgEDfyMAQRBrIgQkACAEIAE2AgwCQAJAIABFBEAgBCgCDCEBDAELIAQoAgwhASAAKAK4BCICRQ0AIAIoAgQhAyACLQAIQQhxBEAgAiAAQQVBAEG8ISABIAMREQAaDAILIAIgAEEFQbwhIAEgAxELABoMAQsCQEHoNi0AAEUEQEEcEB0iAkKAgID8AzcCFCACQgA3AgwgAkEANgIAIAJBADoACEEBIQMgAkEBNgIEQeQ2IAI2AgBB6DZBAToAAEHgNkHgNigCAEEBajYCAAwBC0HkNigCACICKAIEIQMgAi0ACEEIcUUNACACIABBBUEAQbwhIAEgAxERABoMAQsgAiAAQQVBvCEgASADEQsAGgsgBEEQaiQAC3cCAX8BfSAAQdAAaiEAIAFBAnRBwCFqKAIAIQICfyABQX5xQQJGBEAgAEEEIAJBgICA/gcQMwwBCyAAIAJBgICA/gcQMgshAUEBIQAgAUHw4YP8B0YgAUGPnrz8B0ZyIAFBqtWq/QdGcgR/IAAFIAG+IgMgA1sLC2oBAX0Cf0GAgID+ByAAi0MAAIB/WyAAIABccg0AGkGPnrz8ByAAQwAAACBdIABDAAAAoF5xIABDAAAAAFtyDQAaQ////18gAJgiASABIAAgAEP////fXRsgAEP///9fXhu8QYCAgIACawsLoAICAXwBfwJAIAAgAaIiABBWIgREAAAAAAAA8D+gIAQgBEQAAAAAAAAAAGMbIgQgBGIiBSAEmUQtQxzr4jYaP2NFckUEQCAAIAShIQAMAQsCQCAEIARiBEAgACAEoSEADAELIAAgBKEhACAERAAAAAAAAPC/oJlELUMc6+I2Gj9jRQ0AIABEAAAAAAAA8D+gIQAMAQsgAgRAIABEAAAAAAAA8D+gIQAMAQsgAw0AIAACfEQAAAAAAAAAACAFDQAaRAAAAAAAAPA/IAREAAAAAAAA4D9kDQAaRAAAAAAAAPA/RAAAAAAAAAAAIAREAAAAAAAA4L+gmUQtQxzr4jYaP2MbC6AhAAsgACAAYiABIAFicgRAQwAAwH8PCyAAIAGjtgtxAQF9An9BgICA/gcgAItDAACAf1sgACAAXHINABpB8OGD/AcgAEMAAAAgXSAAQwAAAKBecSAAQwAAAABbcg0AGkP//39fIACYIgEgASAAIABD//9/310bIABD//9/X14bvEGAgICAAmtBgICAgARyCwujAQEBfQJAIAAgAUECdGooAgAiAUHw4YP8B0YgAUGPnrz8B0ZyIAFBqtWq/QdGcg0AIAG+IgMgA1sNACAAKAIcIgFB8OGD/AdGIAFBj568/AdGciABQarVqv0HRnINACABviIDIANbDQAgACgCICIAQfDhg/wHRiAAQY+evPwHRnIgAEGq1ar9B0ZyRQRAIAIhASAAviIDIANcDQELIAAhAQsgAQvXAQEBfQJAIAAgAUECdGooAgAiAUHw4YP8B0YgAUGPnrz8B0ZyIAFBqtWq/QdGcg0AIAG+IgQgBFsNACAAIAJBAnRqKAIAIgFB8OGD/AdGIAFBj568/AdGciABQarVqv0HRnINACABviIEIARbDQAgACgCGCIBQfDhg/wHRiABQY+evPwHRnIgAUGq1ar9B0ZyDQAgAb4iBCAEWw0AIAAoAiAiAEHw4YP8B0YgAEGPnrz8B0ZyIABBqtWq/QdGckUEQCADIQEgAL4iBCAEXA0BCyAAIQELIAEL1AECAn0BfyAAQdAAaiEAIAFBAnRBwCFqKAIAIQUCQAJAAkACfyABQX5xQQJGBEAgAEEEIAVBj568/AcQMwwBCyAAIAVBj568/AcQMgsiAUHw4YP8B0YNACABQY+evPwHRg0CQfAhIQACQCABQarVqv0HRwRAIAG+IgMgA1sNAUH4ISEACyAAKgIAIQNDAADAfyEEIAAoAgRBAWsOAgMBAgsgAUH/////e3FBgICAgAJqviEDIAFBgICAgARxRQ0CCyADIAKUQwrXIzyUIQQLIAQPCyADCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRAQAL6AIBAn8CQCAAIAFGDQAgASAAIAJqIgRrQQAgAkEBdGtNBEAgACABIAIQKw8LIAAgAXNBA3EhAwJAAkAgACABSQRAIAMEQCAAIQMMAwsgAEEDcUUEQCAAIQMMAgsgACEDA0AgAkUNBCADIAEtAAA6AAAgAUEBaiEBIAJBAWshAiADQQFqIgNBA3ENAAsMAQsCQCADDQAgBEEDcQRAA0AgAkUNBSAAIAJBAWsiAmoiAyABIAJqLQAAOgAAIANBA3ENAAsLIAJBA00NAANAIAAgAkEEayICaiABIAJqKAIANgIAIAJBA0sNAAsLIAJFDQIDQCAAIAJBAWsiAmogASACai0AADoAACACDQALDAILIAJBA00NAANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIAJBBGsiAkEDSw0ACwsgAkUNAANAIAMgAS0AADoAACADQQFqIQMgAUEBaiEBIAJBAWsiAg0ACwsgAAvmBwIEfQZ/An8CQCAALQAEQQRxBEAgACgCuAIgDUcNAQtBACAAKAK8AiADRg0BGgsgAEKAgID8i4CAwL9/NwKcBCAAQgA3ApQEIABCgICA/IuAgMC/fzcCjAQgAEEANgLAAkEBCyEVIAxBAWohFgJAAkACQAJAIAAoAggEQCAAQQIgBhAfIQ4gAEECIAYQIiEPIABBACAGEB8hECAAQQAgBhAiIREgBCABIAUgAiAAKAKUBCAAQYwEaiIMKgIAIAAoApgEIAAqApAEIAAqApwEIAAqAqAEIA4gD5IiDiAQIBGSIg8gChBgDQIgACgCwAIiE0UNASAAQcQCaiEUA0AgBCABIAUgAiAUIBJBGGxqIgwoAgggDCoCACAMKAIMIAwqAgQgDCoCECAMKgIUIA4gDyAKEGANAyATIBJBAWoiEkcNAAsMAQsgCEUEQCAAKALAAiIXRQ0BIABBxAJqIRMDQAJAAkAgEyASQRhsIhRqIgwqAgAiDiAOXCABIAFcckUEQCAOIAGTi0MXt9E4XQ0BDAILIA4gDlsgASABW3INAQsCQCATIBRqIhQqAgQiDiAOXCACIAJcckUEQCAOIAKTi0MXt9E4XQ0BDAILIA4gDlsgAiACW3INAQsgFCgCCCAERw0AIBQoAgwgBUYNBAsgEkEBaiISIBdHDQALDAELAkAgAEGMBGoiDCoCACIOIA5cIAEgAVxyRQRAIA4gAZOLQxe30ThdDQEMAgsgDiAOWyABIAFbcg0BCyAMQQAgACgCmAQgBUYbQQAgACgClAQgBEYbQQACfyAAKgKQBCIOIA5cIhIgAiACXCITcgRAIBIgE3EMAQsgDiACk4tDF7fROF0LGyEMDAELIAAgASACIAMgBCAFIAYgByAIIAogCyAWIA0gCRBfIAAgAzYCvAIMAQsgFSAMRXJFBEAgACAMKgIQOAKEBCAAIAwqAhQ4AogEIAtBDEEQIAgbaiIDIAMoAgBBAWo2AgAMAgsgACABIAIgAyAEIAUgBiAHIAggCiALIBYgDSAJEF8gACADNgK8AiAMDQELIAAoAsACIgxBAWoiAyALKAIISwRAIAsgAzYCCAsgDEEIRgRAIABBADYCwAJBACEMCyAIBH8gAEGMBGoFIAAgDEEBajYCwAIgACAMQRhsakHEAmoLIgwgBTYCDCAMIAQ2AgggDCACOAIEIAwgATgCACAMIAAqAoQEOAIQIAwgACoCiAQ4AhRBACEMCwJAIAhFDQAgACAAKQKEBDcC9AEgACAALQAEIgNBAXIiBDoABCADQQRxRQ0AIAAgBEH7AXE6AAQLIAAgDTYCuAIgFSAMRXILYgIBfwF9AkAgAkF+cUECRgRAIAFBQGsoAgAiA0Hw4YP8B0YgA0GPnrz8B0ZyIANBqtWq/QdGcg0BIAO+IgQgBFsNAQsgASACQQJ0QdAhaigCAEECdGooAiwhAwsgACADEGgLXwIBfwF9AkAgAkF+cUECRgRAIAEoAjwiA0Hw4YP8B0YgA0GPnrz8B0ZyIANBqtWq/QdGcg0BIAO+IgQgBFsNAQsgASACQQJ0QcAhaigCAEECdGooAiwhAwsgACADEGgLNQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRAgALiAICAn0CfwJAAkACQCAAIAFBAnRB4CFqKAIAQQJ0aigC2AEiCEHw4YP8B0YNACAIQY+evPwHRg0BQfAhIQkCQCAIQarVqv0HRwRAIAi+IgYgBlsNAUH4ISEJCyAJKgIAIQZDAADAfyEHIAkoAgRBAWsOAgIBAwsgCEH/////e3FBgICAgAJqviEGIAhBgICAgARxRQ0BCyAGIAKUQwrXIzyUIQcMAQsgBiEHCyAHIAAgASADEB8gACABIAMQIpKSIQMCQAJAAkACQCAEKAIADgMBAAADCyAFKgIAIgIgAiADIAIgA10bIAMgA1wbIQMMAQsgAyADXA0BIARBAjYCAAsgBSADOAIACwtvAQF/AkAgAEEYaiIDECYgAUECdGooArABIAJGDQAgAxAmIAFBAnRqIAI2ArABA0AgAC0ABCIBQQRxDQEgACABQQRyOgAEIAAoAhQiAQRAIAAgAREAAAsgAEGAgID+BzYCtAIgACgCqAQiAA0ACwsLVgECfSAAKAKoBEUEQEMAAAAADwsCQCAAKgIkIgEgAVsNAEMAAIA/IQEgACgCuAQtAAhBAXENAEMAAAAAIQEgACoCHCICQwAAAABdRQ0AIAKMIQELIAELhQECA38BfgJAIABCgICAgBBUBEAgACEFDAELA0AgAUEBayIBIABCCoAiBUL2AX4gAHynQTByOgAAIABC/////58BViECIAUhACACDQALCyAFpyICBEADQCABQQFrIgEgAkEKbiIDQfYBbCACakEwcjoAACACQQlLIQQgAyECIAQNAAsLIAELNwECf0EEEB0iAiABNgIAQQQQHSIDIAE2AgBBmTcgAEG6N0HqJEHCASACQbo3Qe4kQcMBIAMQBwteAQF/IABBADYCDCAAIAM2AhACQCABBEAgAUGAgICABE8NASABQQJ0EB0hBAsgACAENgIAIAAgBCACQQJ0aiICNgIIIAAgBCABQQJ0ajYCDCAAIAI2AgQgAA8LEFAAC9QBAgJ9AX8gAEHQAGohACABQQJ0QdAhaigCACEFAkACQAJAAn8gAUF+cUECRgRAIABBBSAFQY+evPwHEDMMAQsgACAFQY+evPwHEDILIgFB8OGD/AdGDQAgAUGPnrz8B0YNAkHwISEAAkAgAUGq1ar9B0cEQCABviIDIANbDQFB+CEhAAsgACoCACEDQwAAwH8hBCAAKAIEQQFrDgIDAQILIAFB/////3txQYCAgIACar4hAyABQYCAgIAEcUUNAgsgAyAClEMK1yM8lCEECyAEDwsgAwu4AgIHfwJ9IwBBEGsiAyQAAkAgACgCDCIBBEAgACoCiAQhCSAAKgKEBCEIAn0gAC0ABEEgcQRAIAAgCCAJQQAgAREmAAwBCyAAIAggCSABEScACyIIIAhbDQEgA0HRGjYCACAAIAMQLRAsAAsCQAJAIAAoArAEIgEgACgCrAQiBkcEQEEBIAEgBmtBAnUiASABQQFNGyEHA0AgBiAEQQJ0aigCACIBKAKkBEUEQCABKAIYIgVBgIAMcUGAgAhHBEAgBUENdkEHcSIFBH8gBQUgACgCGEEKdkEHcQtBBUYEQCAALQAYQQhxDQULIAEtAARBAnENBCACIAEgAhshAgsgBEEBaiIEIAdHDQELCyACDQILIAAqAogEIQgMAgsgASECCyACEEIgAioC6AGSIQgLIANBEGokACAIC28BAX8CQCAAQRhqIgMQJiABQQJ0aigCwAEgAkYNACADECYgAUECdGogAjYCwAEDQCAALQAEIgFBBHENASAAIAFBBHI6AAQgACgCFCIBBEAgACABEQAACyAAQYCAgP4HNgK0AiAAKAKoBCIADQALCwtvAQF/AkAgAEEYaiIDECYgAUECdGooArgBIAJGDQAgAxAmIAFBAnRqIAI2ArgBA0AgAC0ABCIBQQRxDQEgACABQQRyOgAEIAAoAhQiAQRAIAAgAREAAAsgAEGAgID+BzYCtAIgACgCqAQiAA0ACwsL7wIBAn0CQAJAAkAgAUF+cUECRgRAIAAoArwBIgFB8OGD/AdGIAFBj568/AdGciABQarVqv0HRnINASABviIDIANbDQEgACgCxAEiAUHw4YP8B0YgAUGPnrz8B0ZyIAFBqtWq/QdGcg0BIAG+IgMgA1sNAQwCCyAAKALAASIBQfDhg/wHRiABQY+evPwHRnIgAUGq1ar9B0ZyDQAgAb4iAyADWw0AIAAoAsQBIgFB8OGD/AdGIAFBj568/AdGciABQarVqv0HRnINACABviIDIANcDQELQwAAAAAhAwJAAkAgAUHw4YP8B0YNACABQY+evPwHRg0DQfAhIQACQCABQarVqv0HRwRAIAG+IgMgA1sNAUH4ISEACyAAKgIAIQNDAADAfyEEIAAoAgRBAWsOAgQBAgsgAUH/////e3FBgICAgAJqviEDIAFBgICAgARxRQ0DCyADIAKUQwrXIzyUIQQLIAQPC0MAAAAAIQMLIAMLCgAgAEEwa0EKSQt3AgF/AX0gAEHQAGohACABQQJ0QdAhaigCACECAn8gAUF+cUECRgRAIABBBSACQYCAgP4HEDMMAQsgACACQYCAgP4HEDILIQFBASEAIAFB8OGD/AdGIAFBj568/AdGciABQarVqv0HRnIEfyAABSABviIDIANbCwsUACAABEAgACAAKAIAKAIEEQAACwsGACAAECkLogQCBn8CfgJ/QQghBAJAAkAgAEFHSw0AA0BBCCAEIARBCE0bIQRB2DYpAwAiBwJ/QQggAEEDakF8cSAAQQhNGyIAQf8ATQRAIABBA3ZBAWsMAQsgAEEdIABnIgFrdkEEcyABQQJ0a0HuAGogAEH/H00NABpBPyAAQR4gAWt2QQJzIAFBAXRrQccAaiIBIAFBP08bCyIDrYgiCFBFBEADQCAIIAh6IgiIIQcCfiADIAinaiIDQQR0IgJB2C5qKAIAIgEgAkHQLmoiBkcEQCABIAQgABBOIgUNBSABKAIEIgUgASgCCDYCCCABKAIIIAU2AgQgASAGNgIIIAEgAkHULmoiAigCADYCBCACIAE2AgAgASgCBCABNgIIIANBAWohAyAHQgGIDAELQdg2Qdg2KQMAQn4gA62JgzcDACAHQgGFCyIIQgBSDQALQdg2KQMAIQcLAkAgB1BFBEBBPyAHeadrIgZBBHQiAkHYLmooAgAhAQJAIAdCgICAgARUDQBB4wAhAyABIAJB0C5qIgJGDQADQCADRQ0BIAEgBCAAEE4iBQ0FIANBAWshAyABKAIIIgEgAkcNAAsgAiEBCyAAQTBqEE8NASABRQ0EIAEgBkEEdEHQLmoiAkYNBANAIAEgBCAAEE4iBQ0EIAEoAggiASACRw0ACwwECyAAQTBqEE9FDQMLQQAhBSAEIARBAWtxDQEgAEFHTQ0ACwsgBQwBC0EACwttAQF/AkAgAEEYaiIDECYgAUECdGooAhQgAkYNACADECYgAUECdGogAjYCFANAIAAtAAQiAUEEcQ0BIAAgAUEEcjoABCAAKAIUIgEEQCAAIAERAAALIABBgICA/gc2ArQCIAAoAqgEIgANAAsLC2sBAn9BCSECAkAgASAAQRhqIgMQJigCEEYEQAwBCyADIAIRAgAgATYCEANAIAAtAAQiAUEEcQ0BIAAgAUEEcjoABCAAKAIUIgEEQCAAIAERAAALIABBgICA/gc2ArQCIAAoAqgEIgANAAsLC7UBAQN/IwBBEGsiAyQAIANBCGogAEEYaiIEIAERAQACQCADKAIIKAIAQQcgAygCDCIFdHEgBXUgAkYNACADQQhqIAQgAREBACADKAIIIgEgASgCAEEHIAMoAgwiAXRBf3NxIAJBB3EgAXRyNgIAA0AgAC0ABCIBQQRxDQEgACABQQRyOgAEIAAoAhQiAQRAIAAgAREAAAsgAEGAgID+BzYCtAIgACgCqAQiAA0ACwsgA0EQaiQAC6ADAQN/IAEgAEEEaiIEakEBa0EAIAFrcSIFIAJqIAAgACgCACIBakEEa00EfyAAKAIEIgMgACgCCDYCCCAAKAIIIAM2AgQgBCAFRwRAIAAgAEEEaygCAEF+cWsiAyAFIARrIgQgAygCAGoiBTYCACAFQXxxIANqQQRrIAU2AgAgACAEaiIAIAEgBGsiATYCAAsCQCABIAJBGGpPBEAgACACakEIaiIDIAEgAmtBCGsiATYCACABQXxxIANqQQRrIAFBAXI2AgAgAwJ/IAMoAgBBCGsiAUH/AE0EQCABQQN2QQFrDAELIAFnIQQgAUEdIARrdkEEcyAEQQJ0a0HuAGogAUH/H00NABpBPyABQR4gBGt2QQJzIARBAXRrQccAaiIBIAFBP08bCyIBQQR0IgRB0C5qNgIEIAMgBEHYLmoiBCgCADYCCCAEIAM2AgAgAygCCCADNgIEQdg2Qdg2KQMAQgEgAa2GhDcDACAAIAJBCGoiATYCACABQXxxIABqQQRrIAE2AgAMAQsgACABakEEayABNgIACyAAQQRqBSADCwvmAwEFfwJ/QaAsKAIAIgEgAEEHakF4cSIDaiECAkAgA0EAIAEgAk8bDQAgAj8AQRB0SwRAIAIQFkUNAQtBoCwgAjYCACABDAELQdQ3QTA2AgBBfwsiAkF/RwRAIAAgAmoiA0EQayIBQRA2AgwgAUEQNgIAAkACf0HQNigCACIABH8gACgCCAVBAAsgAkYEQCACIAJBBGsoAgBBfnFrIgRBBGsoAgAhBSAAIAM2AghBcCAEIAVBfnFrIgAgACgCAGpBBGstAABBAXFFDQEaIAAoAgQiAyAAKAIINgIIIAAoAgggAzYCBCAAIAEgAGsiATYCAAwCCyACQRA2AgwgAkEQNgIAIAIgAzYCCCACIAA2AgRB0DYgAjYCAEEQCyACaiIAIAEgAGsiATYCAAsgAUF8cSAAakEEayABQQFyNgIAIAACfyAAKAIAQQhrIgFB/wBNBEAgAUEDdkEBawwBCyABQR0gAWciA2t2QQRzIANBAnRrQe4AaiABQf8fTQ0AGkE/IAFBHiADa3ZBAnMgA0EBdGtBxwBqIgEgAUE/TxsLIgFBBHQiA0HQLmo2AgQgACADQdguaiIDKAIANgIIIAMgADYCACAAKAIIIAA2AgRB2DZB2DYpAwBCASABrYaENwMACyACQX9HCwUAEAQAC0ABAX8CQEGENy0AAEEBcQRAQYA3KAIAIQIMAQtBAUHwIhALIQJBhDdBAToAAEGANyACNgIACyACIAAgAUEAEBMLDwAgASAAKAIAaiACOQMACw0AIAEgACgCAGorAwALCwAgAARAIAAQKQsLLwAgACAAIAGWIAG8Qf////8HcUGAgID8B0sbIAEgALxB/////wdxQYCAgPwHTRsLlgMCA34CfyAAvSICQjSIp0H/D3EiBEH/D0YEQCAARAAAAAAAAPA/oiIAIACjDwsgAkIBhiIBQoCAgICAgIDw/wBYBEAgAEQAAAAAAAAAAKIgACABQoCAgICAgIDw/wBRGw8LAn4gBEUEQEEAIQQgAkIMhiIBQgBZBEADQCAEQQFrIQQgAUIBhiIBQgBZDQALCyACQQEgBGuthgwBCyACQv////////8Hg0KAgICAgICACIQLIQEgBEH/B0oEQANAAkAgAUKAgICAgICACH0iA0IAUw0AIAMiAUIAUg0AIABEAAAAAAAAAACiDwsgAUIBhiEBIARBAWsiBEH/B0oNAAtB/wchBAsCQCABQoCAgICAgIAIfSIDQgBTDQAgAyIBQgBSDQAgAEQAAAAAAAAAAKIPCyABQv////////8HWARAA0AgBEEBayEEIAFCgICAgICAgARUIQUgAUIBhiEBIAUNAAsLIAJCgICAgICAgICAf4MgAUKAgICAgICACH0gBK1CNIaEIAFBASAEa62IIARBAEobhL8LigEBA38DQCAAQQR0IgFB1C5qIAFB0C5qIgI2AgAgAUHYLmogAjYCACAAQQFqIgBBwABHDQALQTAQTxpB8DZBEDYCAEH0NkEANgIAEIQBQfQ2QaA3KAIANgIAQaA3QfA2NgIAQaQ3QcYBNgIAQag3QQA2AgAQdkGoN0GgNygCADYCAEGgN0GkNzYCAAukAwEHfyAABEAjAEEgayIGJAAgACgCACIBKAKoBCIDBEAgAyABEGsaIAFBADYCqAQLIAEoArAEIgIgASgCrAQiA0cEQEEBIAIgA2tBAnUiAiACQQFNGyEEQQAhAgNAIAMgAkECdGooAgBBADYCqAQgAkEBaiICIARHDQALCyABIAM2ArAEAkAgAyABQbQEaiICKAIARg0AIAZBCGpBAEEAIAIQQCICKAIEIAEoArAEIAEoAqwEIgRrIgVrIgMgBCAFEDYhBSABKAKsBCEEIAEgBTYCrAQgAiAENgIEIAEoArAEIQUgASACKAIINgKwBCACIAU2AgggASgCtAQhByABIAIoAgw2ArQEIAIgBDYCACACIAc2AgwgBCAFRwRAIAIgBSAEIAVrQQNqQXxxajYCCAsgBEUNACAEEEkgASgCrAQhAwsgAwRAIAEgAzYCsAQgAxBJCyABEEkgACgCCCEBIABBADYCCCABBEAgASABKAIAKAIEEQAACyAAKAIEIQEgAEEANgIEIAEEQCABIAEoAgAoAgQRAAALIAZBIGokACAAECkLC5ABAAJ/IAEEQCABKAIAEGQMAQsCQEHoNi0AAARAQeQ2KAIAIQEMAQtBHBAdIgFCgICA/AM3AhQgAUIANwIMIAFBADYCACABQQA6AAggAUEBNgIEQeQ2IAE2AgBB6DZBAToAAEHgNkHgNigCAEEBajYCAAsgARBkCyEBIABCADcCBCAAIAE2AgAgASAANgIAIAALKgEBfyAABEAgACgCACIBBEAgARApC0HgNkHgNigCAEEBazYCACAAECkLC7sDAwR/BXwDfQJAIAFEAAAAAAAAAABhDQAgACoC+AEhDSAAKgL0ASEOIAAqAugBIQ8gACAAKgLkAbsiCSABQQAgAC0ABEEIcSIEQQN2IgUQMDgC5AEgACAPuyIKIAFBACAFEDA4AugBIA67IgsgAaIQViIIIAhhIAiZRC1DHOviNho/Y3EiBUUhBiAGIAhEAAAAAAAA8L+gmUQtQxzr4jYaP2NFIAUgCCAIYnIbIQYgDbsiDCABohBWIgggCGEgCJlELUMc6+I2Gj9jcSIFRSEHIAcgCEQAAAAAAADwv6CZRC1DHOviNho/Y0UgBSAIIAhichshB0EAIQUgACAJIAKgIgIgC6AgASAEQQBHIgQgBnEgBCAGRXEQMCACIAFBACAEEDCTOAL0ASAAIAogA6AiAyAMoCABIAQgB3EgBCAHRXEQMCADIAFBACAEEDCTOAL4ASAAKAKwBCIEIAAoAqwEIgZGDQBBASAEIAZrQQJ1IgQgBEEBTRshBgNAQQAhBCAFIAAoArAEIAAoAqwEIgdrQQJ1SQR/IAcgBUECdGooAgAFIAQLIAEgAiADEFsgBUEBaiIFIAZHDQALCwuPAQEDfwJAIAAoAhgiAkEIcUUNAEEBIQEgAkGAOHFBgChGDQBBACEBIAAoArAEIgMgACgCrAQiAkYNAEEBIAMgAmtBAnUiACAAQQFNGyEDQQAhAANAIAIgAEECdGooAgAoAhgiAUGAgAxxQYCACEcgAUGAwANxQYDAAkZxIgENASAAQQFqIgAgA0cNAAsLIAEL3wIBBn8jAEHAAmsiAiQAIAJBAEGgAhAqIgNCgICA/oeAgOD/ADcDECADQRhqQQBBMRAqGiADQYCAgP4HNgJQIANBoAJqIQQgA0HgAGohAgNAIAJCgICA/IuAgMC/fzcCECACQgA3AgggAkKAgID8i4CAwL9/NwIAIAJBGGoiAiAERw0ACyADQoCAgPyLgIDAv383A7gCIANCADcDsAIgA0KAgID8i4CAwL9/NwOoAiADQoCAgP6HgIDg/wA3A6ACIABB5AFqIANBwAIQKxogAEIANwL0ASAAIAAtAARBAXI6AAQgACgCrAQiAiAAKAKwBCIGRwRAQQAhBANAIAAgAigCACIFKAKoBEcEfyACIAAoArgEIgcoAgAgBy0ACCAFIAAgBCABEIcBIgU2AgAgBSAANgKoBCACKAIABSAFCyABEF0gBEEBaiEEIAJBBGoiAiAGRw0ACwsgA0HAAmokAAumAwIDfQN/IAIgA5MiByAHXCIKBH0gBwVDAAAAACECAkACQAJAAkAgACABQQJ0aigC0AEiCEHw4YP8B0YNACAIQY+evPwHRg0CQfAhIQkCQCAIQarVqv0HRwRAIAi+IgIgAlsNAUH4ISEJCyAJKgIAIQIgCSgCBEEBaw4CAgEECyAIQf////97cUGAgICAAmq+IQIgCEGAgICABHFFDQELIAIgBJRDCtcjPJQhAgsgAiACWw0ADAELIAIgA5MhBQtDAAAAACECAkACQAJAAkAgACABQQJ0aigC2AEiAUHw4YP8B0YNACABQY+evPwHRg0CQfAhIQACQCABQarVqv0HRwRAIAG+IgIgAlsNAUH4ISEACyAAKgIAIQJD//9/fyEGIAAoAgRBAWsOAgIBBAsgAUH/////e3FBgICAgAJqviECIAFBgICAgARxRQ0BCyACIASUQwrXIzyUIQILIAIgAlsNAEP//39/IQYMAQsgAiADkyEGCyAHIAcgBhBVIAogBiAGXHIbIgIgAlwiACAFIAVcckUEQCACIAUQHg8LIAUgAiAAGwsL43UDJX8YfQF+IwBBgANrIg4kAAJAAkACQCABIAFcQQAgBBtFBEAgAiACXEEAIAUbRQRAIApBAEEEIAgbaiIQIBAoAgBBAWo2AgAgACAALQCsAkH8AXEgACgCGEEDcSIQQQEgAyADQQFMGyIyIBAbIhxBA3FyOgCsAiAAQfwBaiIDIBxBAUdBA3QiEWogAEEDQQIgHEECRhsiJiAGEB8iNTgCACADIBxBAUZBA3QiEGogACAmIAYQIiI0OAIAIAAgAEEAIAYQHyI4OAKAAiAAIABBACAGECIiMzgCiAIgAEGMAmoiAyARaiAAICYQIDgCACADIBBqIAAgJhAhOAIAIAAgAEEAECAiOzgCkAIgACAAQQAQISI8OAKYAiARIABBnAJqIgNqIAAgJiAGECQ4AgAgAyAQaiAAICYgBhAjOAIAIAAgAEEAIAYQJCI3OAKgAiAAIABBACAGECMiPTgCqAIgNSA0kiE1IDggM5IhMyAAKAIIIgMEQCAAKgKcAiAAKgKkApIgACoCjAKSIAAqApQCkiE0IAIgM5NDAADAfyAFGyECIDcgPZIgO5IhMyABIDWTQwAAwH8gBBsiNSEBAkAgNSA1XA0AIDUgNJMiASABXARAQwAAAAAhAQwBCyABQwAAAAAQHiEBCyAzIDySITgCQCACIAIiM1wNACACIDiTIjMgM1wEQEMAAAAAITMMAQsgM0MAAAAAEB4hMwsgBEEBRyAFQQFHckUEQCAAAn0gAEECIDUgBhAlIjMgM1wiAyAAQQIgBhAkIABBAhAgkiAAQQIgBhAjIABBAhAhkpIiASABXHJFBEAgMyABEB4MAQsgASAzIAMbCzgChAQgAAJ9IABBACACIAcQJSICIAJcIgMgAEEAIAYQJCAAQQAQIJIgAEEAIAYQIyAAQQAQIZKSIgEgAVxyRQRAIAIgARAeDAELIAEgAiADGws4AogEDAYLAkAgAC0ABEEQcQRAIA5BGGogACABIAQgMyAFQQAgAxEsAAwBCyAOQRhqIAAgASAEIDMgBSADEQ4ACyAKIAooAhRBAWo2AhQgCiANQQJ0aiIDIAMoAhhBAWo2AhggAAJ9IABBAiA0IA4qAhiSIgEgNSAEQQJGGyABIAQbIAYQJSIzIDNcIgMgAEECIAYQJCAAQQIQIJIgAEECIAYQIyAAQQIQIZKSIgEgAVxyRQRAIDMgARAeDAELIAEgMyADGws4AoQEIAACfSAAQQAgOCAOKgIckiIBIAIgBUECRhsgASAFGyAHECUiAiACXCIDIABBACAGECQgAEEAECCSIABBACAGECMgAEEAECGSkiIBIAFcckUEQCACIAEQHgwBCyABIAIgAxsLOAKIBAwFCyAAKAKwBCIRIAAoAqwEIgNGBEAgAiAzkyECIAACfSAAQQIgBEF9cQR9IAEgNZMFIAAqApwCIAAqAqQCkiAAKgKMApIgACoClAKSCyAGECUiMyAzXCIDIABBAiAGECQgAEECECCSIABBAiAGECMgAEECECGSkiIBIAFcckUEQCAzIAEQHgwBCyABIDMgAxsLOAKEBCAAAn0gAEEAIAIgNyA9kiA7kiA8kiAFQX1xGyAHECUiAiACXCIDIABBACAGECQgAEEAECCSIABBACAGECMgAEEAECGSkiIBIAFcckUEQCACIAEQHgwBCyABIAIgAxsLOAKIBAwFCwJAIAgNACABIDWTIjRDAAAAAF9FIARBAkdyRSA0IDRbcSACIDOTIjhDAAAAAF9FIAVBAkdyRSA4IDhbcXJFIARBAUcgBUEBR3JxDQAgAAJ9IABBAkMAAAAAQwAAAAAgNCA0QwAAAABdGyA0IARBAkYbIDQgNFwbIAYQJSICIAJcIgMgAEECIAYQJCAAQQIQIJIgAEECIAYQIyAAQQIQIZKSIgEgAVxyRQRAIAIgARAeDAELIAEgAiADGws4AoQEIAACfSAAQQBDAAAAAEMAAAAAIDggOEMAAAAAXRsgOCAFQQJGGyA4IDhcGyAHECUiAiACXCIDIABBACAGECQgAEEAECCSIABBACAGECMgAEEAECGSkiIBIAFcckUEQCACIAEQHgwBCyABIAIgAxsLOAKIBAwFCyARIANrIi1BAnUhIgNAIAAgAygCACIQKAKoBEcEQCADIAAoArgEIg0oAgAgDS0ACCAQIAAgE0EAEIcBIg02AgAgDSAANgKoBAsgE0EBaiETIANBBGoiAyARRw0ACyAAIAAtAKwCQfsBcToArAJBAyETIAAoAhgiLkECdkEDcSEDAkACfwJAIBxBAkYEQEEAIQ0CQCADQQJrDgIEAAILQQIhEwwDC0ECIRNBACADQQFLDQEaCyATCyENIAMhEwsgAEEAIAEgNZMiSSAAIBMgBhAkIAAgExAgkiAAIBMgBhAjIAAgExAhkpIiQSAAIA0gBhAkIAAgDRAgkiI9IAAgDSAGECMgACANECGSkiI+IBNBAUsiHhsgBhBeITYgAEEBIAIgM5MiSiA+IEEgHhsgBxBeIjwgNiAeGyE7IDYgPCAeGyE4IAAoArAEISQgACgCrAQhEAJAIAQgBSAeGyIgQQFHDQAgECAkRg0DIBAhAwNAAkAgAygCACIREGZFDQBBACEXIA8NAgJAAkAgESgCqARFBEBDAAAAACEzDAELIBEqAiAiAiACXARAQwAAAAAhMyARKgIcIgJDAAAAAF5FDQELIAIhMyACIAJcDQELIDOLQxe30ThdDQMLIBEQPSIBIAFcBEAgESEPDAELIBEhDyABi0MXt9E4XQ0CCyAPIRcgA0EEaiIDICRHDQALCyAQICRGDQJBASAcIBxBAUwbIS8gNiA2XCIZIARBAUdyITAgPCA8WyESIDYgNlshGkMAAAAAITMDQCAQKAIAIhUQZwJAIBUoAhgiEUGAgIACcQRAIBVBABBdIBUgFS0ABCIPQQFyIgM6AAQgD0EEcUUNASAVIANB+wFxOgAEDAELIAgEQCAVIBFBA3EiAyAvIAMbIDggOyA2EGkgFSgCGCERCyARQYCADHFBgIAIRg0AAkAgFSAXRgRAIBdBADYCtAIgFyAMNgKwAkMAAAAAIQIMAQsgACgCGCIpQQJ2QQNxIQMCQAJAIBxBAkcNAEEDIQ8CQCADQQJrDgICAAELQQIhDwwBCyADIQ8LIDYgPCAPQQFLIiUbITdDAAAAACECAkACQAJAIBUoAigiGEHw4YP8B0YNACAYQY+evPwHRg0BQfAhIQMCQCAYQarVqv0HRwRAIBi+IgEgAVsNAUH4ISEDCyADKgIAIQICQAJAIAMoAgQiFA4EAAEBAAELQwAAwH8hASAVKgIcQwAAAABeRQ0EQoCAgP43QoCAgIAQIBUoArgELQAIQQFxGyJLQiCIpyEUIEunviECC0MAAMB/IQEgFEEBaw4CAgEDCyAYQf////97cUGAgICAAmq+IQIgGEGAgICABHFFDQELIDcgApRDCtcjPJQhAQwBCyACIQELIBUpArwEIkunviECQQAhFAJAAkAgS0IgiKciGw4EAQAAAQALIBtBAUcgFSoCvAQiNCA0XHJFBEAgAkMAAAAAXQ0BQQEhFAwBC0EBIRQgG0ECRyA0IDRccg0AQQAhFCACQwAAAABdDQAgGiEUCyAVKQLEBCJLp74hNUEAIQMCQAJAIEtCIIinIh0OBAEAAAEACyAdQQFHIBUqAsQEIjQgNFxyRQRAIDVDAAAAAF0NAUEBIQMMAQtBASEDIB1BAkcgNCA0XHINAEEAIQMgNUMAAAAAXQ0AIBIhAwsCQAJAIAEgAVwgNyA3XHJFBEAgFSoCtAIiAiACWwRAIBUoArgELQAMQQFxRQ0DIBUoArACIAxGDQMLIAEgFSAPIDYQJCAVIA8QIJIgFSAPIDYQIyAVIA8QIZKSIgJgRSABIAJdcQ0BIAEhAgwBCyAUICVxBEAgFUECIDYQJCAVQQIQIJIgFUECIDYQIyAVQQIQIZKSITRDAADAfyEBAkACQAJAIBtBAWsOAgEAAgsgNiAClEMK1yM8lCECCyA0IAIiAV8NAgsgASABWyA0IDRbckUEQCABIQIMAgsgASA0XQRAIDQhAgwCCyA0IAEgASABXBshAgwBCyAlIANBAXNyRQRAIBVBACA2ECQgFUEAECCSIBVBACA2ECMgFUEAECGSkiEBQwAAwH8hAgJAAkACQCAdQQFrDgIBAAILIDwgNZRDCtcjPJQhNQsgASA1IgJfDQILIAIgAlwgASABXHENASABIAJeBEAgASECDAILIAEgAiACIAJcGyECDAELIA5BgICA/gc2AugCIA5BgICA/gc2AhhBACEYIA5BADYC5AIgDkEANgLgAiAVQQIgNhAfIBVBAiA2ECKSITkgFUEAIDYQHyE6IBVBACA2ECIhN0MAAMB/ITRBACEhQwAAwH8hASAUBEACQAJAAkAgG0EBaw4CAAECCyACIQEMAQsgNiAClEMK1yM8lCEBCyAOQQE2AuQCIA4gOSABkiIBOAIYQQEhIQsgOiA3kiE3IAMEQEMAAMB/IQICQAJAAkAgHUEBaw4CAAECCyA1IQIMAQsgPCA1lEMK1yM8lCECCyAOQQE2AuACIA4gNyACkiI0OALoAkEBIRgLAkACQAJAIClBgIDAAXFBgICAAUYiHSAPQQJJIhtxRQRAIBkgHXINAiABIAFcDQEMAgsgGSABIAFbcg0CC0ECISEgDkECNgLkAiAOIDY4AhggNiEBCwJAIBtBASAdGwRAIDwgPFwgHXINAiA0IDRcDQEMAgsgNCA0WyA8IDxccg0BC0ECIRggDkECNgLgAiAOIDw4AugCIDwhNAsCQCAVKgLgASICIAJcIh0NAAJ/ICUgIUEBR3JFBEAgDkEBNgLgAiAOIDcgASA5kyAClZI4AugCQQEMAQsgGyAYQQFHcg0BIA5BATYC5AIgDiA0IDeTIAKUIDmSOAIYQQELIRhBASEhCwJAIBFBDXZBB3EiESApQQp2QQdxIBEbIhFBBUYgIUEBRnIgJSAUIDBycnIgEUEER3INACAOQQE2AuQCIA4gNjgCGCAdDQBBASEYIA5BATYC4AIgDiA2IDmTIAKVOALoAgsCQCAFQQFHIBtyIDwgPFxyIANyIBFBBEdyIBhBAUZyDQAgDkEBNgLgAiAOIDw4AugCIB0NACAOQQE2AuQCIA4gPCA3kyAClDgCGAsgFUECIDYgNiAOQeQCaiAOQRhqEDsgFUEAIDwgNiAOQeACaiAOQegCahA7IBUgDioCGCAOKgLoAiAcIA4oAuQCIA4oAuACIDYgPEEAQQUgCSAKIAsgDBA3GiAVIA9BAnRB4CFqKAIAQQJ0aioChAQiAiACXCIDIBUgDyA2ECQgFSAPECCSIBUgDyA2ECMgFSAPECGSkiIBIAFcckUEQCACIAEQHiECDAELIAEgAiADGyECCyAVIAI4ArQCCyAVIAw2ArACCyAzIAIgFSATIDYQHyAVIBMgNhAikpKSITMLIBBBBGoiECAkRw0ACwwDCyAOQYAYNgIAIAAgDhAtECwACyAOQdIYNgIQIAAgDkEQahAtECwAC0MAAAAAITMLIDNDAAAAAJIhASAHIAYgHhshRiAGIAcgHhshQ0EBICAgLUEFTwR9IAAgEyA7EEUgIkEBa7OUIAGSBSABCyA4XiIQGyAgIC5BgIAwcSIxGyAgICBBAkYbIScgBSAEIB4bIipBAUYiFSAIQQFzcSEpIBNBAkkhKyAqQX1xIR0gAEHQAWohJCANQQJ0IgVBwCFqISMgFSAxRXEhLSAqQQFHIAhyIS4gE0ECdCIDQcAhaiEsIANB4CFqISggOyA7WyIeQQF0IS8gBUHgIWohHyAgRSAQRXIhMCAOQTRqISUgACANIDsQRSFIQQAhEUEAIQNBACEYAkADQCADIRogDkEYakEAQSwQKhoCQCAAKAKwBCIFIAAoAqwEIgNGDQAgBSADayIDQQBIDQIgDkHoAmogA0ECdUEAICUQQCEQIA4oAuwCIA4oAjAgDigCLCIFayIDayAFIAMQNiEDIA4gDigCLCIPNgLsAiAOIAM2AiwgDikD8AIhSyAOIA4oAjAiBTYC8AIgDigCNCEDIA4gSzcDMCAOIAM2AvQCIBAgDzYCACAFIA9HBEAgDiAFIA8gBWtBA2pBfHFqNgLwAgsgD0UNACAPECkLIAAoAhgiEkECdkEDcSEDAkACQCASQQNxIgUgMiAFG0ECRw0AQQMhDwJAIANBAmsOAgIAAQtBAiEPDAELIAMhDwsgACAPIDYQRSE3AkAgESIQIAAoArAEIhQgACgCrAQiBWtBAnVPDQAgEkGAgDBxIRJDAAAAACECA0AgFCAFa0ECdSAQTQ0DIAUgEEECdGooAgAiGSgCGCIDQYCAgAJxIANBgIAMcUGAgAhGckUEQCAZIBo2AqQEIBkgDyA2EB8hMyAZIA8gNhAiIQEgDigCGCEDQwAAAAAgNyAQIBFGGyI1IDMgAZIiMyACIBkgDyAZKgK0AiI0IEMQJSIBkpKSIDheRSASRXJBASADG0UNAiAOIANBAWo2AhggDiA1IDMgAZKSIjMgDioCHJI4AhwgGRBmBEACQCAZKAKoBEUEQEMAAAAAIQEMAQsgGSoCICIBIAFbDQAgGSoCHCIBQwAAAAAgAUMAAAAAXhshAQsgDiABIA4qAiCSOAIgIA4gDioCJCAZED0gNJSTOAIkCwJAIA4oAjAiAyAOKAI0RwRAIAMgGTYCACAOIANBBGo2AjAMAQsgAyAOKAIsayIXQQJ1IgVBAWoiFEGAgICABE8NBSAOQegCakH/////AyAXQQF1IgMgFCADIBRLGyAXQfz///8HTxsgBSAlEEAhFCAOKALwAiAZNgIAIA4gDigC8AJBBGo2AvACIA4oAuwCIA4oAjAgDigCLCIFayIDayAFIAMQNiEDIA4gDigCLCIXNgLsAiAOIAM2AiwgDikD8AIhSyAOIA4oAjAiBTYC8AIgDigCNCEDIA4gSzcDMCAOIAM2AvQCIBQgFzYCACAFIBdHBEAgDiAFIBcgBWtBA2pBfHFqNgLwAgsgF0UNACAXECkLIAAoAqwEIQUgACgCsAQhFCACIDOSIQILIBBBAWoiECAUIAVrQQJ1SQ0ACwsgDioCICI6QwAAAABeRSA6QwAAgD9dRXJFBEAgDkGAgID8AzYCIEMAAIA/IToLIA4qAiQiP0MAAAAAXkUgP0MAAIA/XUVyRQRAIA5BgICA/AM2AiRDAACAPyE/CyAOIBA2AiggDioCHCEzIA4oAhghICAYBEAgGBApCyAOKgI4ITUgDigCMCEhIA4oAiwhGAJAAkACQAJAICdBAUYNAEMAAAAAIQICQAJAAkAgJCgCACIDQfDhg/wHRg0AIANBj568/AdGDQFB8CEhBQJAIANBqtWq/QdHBEAgA74iASABWw0BQfghIQULIAUqAgAhAkMAAMB/IQEgBSgCBEEBaw4CAgEDCyADQf////97cUGAgICAAmq+IQIgA0GAgICABHFFDQELIAIgBpRDCtcjPJQhAQwBCyACIQELQwAAAAAhAgJAAkACQCAAKALYASIDQfDhg/wHRg0AIANBj568/AdGDQFB8CEhBQJAIANBqtWq/QdHBEAgA74iAiACWw0BQfghIQULIAUqAgAhAkMAAMB/ITcgBSgCBEEBaw4CAgEDCyADQf////97cUGAgICAAmq+IQIgA0GAgICABHFFDQELIAIgBpRDCtcjPJQhNwwBCyACITcLQwAAAAAhAgJAAkACQCAAKALUASIDQfDhg/wHRg0AIANBj568/AdGDQFB8CEhBQJAIANBqtWq/QdHBEAgA74iAiACWw0BQfghIQULIAUqAgAhAkMAAMB/ITQgBSgCBEEBaw4CAgEDCyADQf////97cUGAgICAAmq+IQIgA0GAgICABHFFDQELIAIgB5RDCtcjPJQhNAwBCyACITQLQwAAAAAhAgJAAkACQCAAKALcASIDQfDhg/wHRg0AIANBj568/AdGDQFB8CEhBQJAIANBqtWq/QdHBEAgA74iAiACWw0BQfghIQULIAUqAgAhAkMAAMB/ITkgBSgCBEEBaw4CAgEDCyADQf////97cUGAgICAAmq+IQIgA0GAgICABHFFDQELIAIgB5RDCtcjPJQhOQwBCyACITkLIAEgNCATQQFLIgMbIEGTIgIgAlsgAiAzXnENASA3IDkgAxsgQZMiAiACWyACIDNdcQ0BIAAoArgELQAQQQFxDQAgMyECIDpDAAAAAFsNAiAAKAKoBEUNAgJAAkAgACoCICIBIAFbBEAgASECDAELIAAqAhwiAkMAAAAAXkUNAQsgAiACXARAIDghAgwECyAAKgIgIQELIAEgAVwEQCAzIQIgACoCHCIBQwAAAABeRQ0DCyA4IQIgAUMAAAAAXA0CIDMhAgwCCyA4IQILIAIgAlwNACACIDOTITUMAQsgM0MAAAAAXUUNACAzjCE1CyACITggKUUEQAJAIBggIUYEQEMAAAAAITQMAQtDAAAAACE5IBghBQNAIAUoAgAiDyATIA8qArQCIgEgQxAlITcCQCA1QwAAAABdBEAgNyAPED2MlCICQwAAAABeIAJDAAAAAF1yRQ0BAn0gDyATIDUgP5UgApQgN5IiNCA4ECUiMyAzXCIDIA8gEyA2ECQgDyATECCSIA8gEyA2ECMgDyATECGSkiICIAJcckUEQCAzIAIQHgwBCyACIDMgAxsLIQIgNCA0XCACIAJcciACIDRbcg0BIDkgAiA3k5IhOSAPED0gAZQgP5IhPwwBCyA1QwAAAABeRQ0AIA8oAqgERQ0AIA8qAiAiMyAzXARAIA8qAhwiM0MAAAAAXkUNAQsgM0MAAAAAXSAzQwAAAABeckUNAAJ9IA8gEyA1IDqVIDOUIDeSIjQgOBAlIgIgAlwiAyAPIBMgNhAkIA8gExAgkiAPIBMgNhAjIA8gExAhkpIiASABXHJFBEAgAiABEB4MAQsgASACIAMbCyEBIDQgNFwgASABXHIgASA0W3INACA6IDOTITogOSABIDeTkiE5CyAFQQRqIgUgIUcNAAsgNSA5kyJEID+VIUcgRCA6lSFAIAAtABpBDHFFIDByIBVxIg9FIRkgHygCACEbQwAAAAAhNCAYIRQDQCAUKAIAIhYgEyAWKgK0AiBDECUhNwJAIBYgEwJ9IERDAAAAAF0EQCA3IjMgFhA9jJQiAUMAAAAAWw0CIDcgAZIgRyABlCA3kiA/QwAAAABbGwwBCyA3ITMgREMAAAAAXkUNASAWKAKoBEUNASAWKgIgIgEgAVwEQCAWKgIcIgFDAAAAAF5FDQILIAFDAAAAAF0gAUMAAAAAXnJFDQEgQCABlCA3kgsgOBAlIgIgAlwiAyAWIBMgNhAkIBYgExAgkiAWIBMgNhAjIBYgExAhkpIiASABXHJFBEAgAiABEB4hMwwBCyABIAIgAxshMwsgFiATIDYQHyECIBYgEyA2ECIhASAWIA0gNhAfITkgFiANIDYQIiE6IA4gMyACIAGSIgKSIgE4AuACIA5BATYC2AIgOSA6kiE6AkAgFioC4AEiOSA5WwRAIA5BATYC3AIgDiA6IAEgApMiASA5lCABIDmVICsbkjgC5AIMAQsCQCA7IDtcIgUNAAJAAkACQAJAIBYgG0EDdGoiAykCvAQiS0IgiKciEg4EAQAAAQALIEunviEBIBJBAUcgAyoCvAQiAiACXHINASABQwAAAABdRSAZckUNAgwDCyAPRQ0CDAELIAFDAAAAAF1FIBJBAkcgAiACXHJyIBlyDQELIBYoAhhBDXZBB3EiAwR/IAMFIAAoAhhBCnZBB3ELQQRHDQAgDkEYaiAWIA0QOSAOKAIcQQNGDQAgDkHoAmogFiANEDggDigC7AJBA0YNACAOQQE2AtwCIA4gOzgC5AIMAQsCQAJAAkACQAJAIBYgG0EDdGoiAykCvAQiS0IgiKciEg4EAQAAAQALIEunviECIBJBAUcgAyoCvAQiASABXHJFBEAgAiIBQwAAAABdDQEMBAsgEkECRyABIAFccg0BIAUNACACQwAAAABdRQ0CCyAOIC82AtwCIA4gOzgC5AIMAwtDAADAfyEBAkAgEkEBaw4CAAECCyACIQEMAQsgOyAClEMK1yM8lCEBCyAOIDogAZIiATgC5AIgDiAVIBJBAkdyIAEgAVtxNgLcAgsgFiATIDggNiAOQdgCaiAOQeACahA7IBYgDSA7IDYgDkHcAmogDkHkAmoQOwJAAkACQAJAIBYgG0EDdGoiAykCvAQiS0IgiKciBQ4EAQAAAQALIEunviEBIAVBAUcgAyoCvAQiAiACXHJFBEAgAUMAAAAAXQ0BDAILIAVBAkcgAiACXHINASABQwAAAABdDQBBACEXIB4NAgtBACEXIBYoAhhBDXZBB3EiAwR/IAMFIAAoAhhBCnZBB3ELQQRHDQEgDkEYaiAWIA0QOSAOKAIcQQNGDQEgDkHoAmogFiANEDggDigC7AJBA0chFwwBC0EAIRcLIBYgDioC4AIiAiAOKgLkAiIBIBNBAUsiEhsgASACIBIbIAAtAKwCQQNxIA4oAtgCIgUgDigC3AIiAyASGyADIAUgEhsgNiA8IAggF0EBc3EiA0EEQQcgAxsgCSAKIAsgDBA3GiA0IDMgN5OSITQgAAJ/AkAgAC0ArAIiA0EEcQRAIANB+wFxIRcMAQsgA0H7AXEhF0EAIBYtAKwCQQRxRQ0BGgtBBAsgF3I6AKwCIBRBBGoiFCAhRw0ACwsgNSA0kyE1CyAAIAAtAKwCIgNB+wFxQQQgA0EEcSA1QwAAAABdG3I6AKwCIAAgEyAGECQgACATECCSITkgACATIAYQIyAAIBMQIZIhPyAAIBMgBhBFITMCQCA1QwAAAABeRSAnQQJHckUEQEMAAAAAITRDAAAAACECAkACQAJ9ICQgKCgCAEECdGooAgAiFEHw4YP8B0YiD0UEQCAUQY+evPwHRiIFDQIgFEGq1ar9B0YiAw0FIBS+IgEgAVwNBSAFDQIgAw0FIBRB/////3txQYCAgIACar4iAiAUQYCAgIAEcUUNARoLIEMgApRDCtcjPJQLIgEgAVwNA0MAAAAAIQICQCAPDQAgFEGPnrz8B0YNAUHwISEFAkAgFEGq1ar9B0cEQCAUviIBIAFbDQFB+CEhBQsgBSoCACECQwAAwH8hNyAFKAIEQQFrDgICAQMLIBRB/////3txQYCAgIACar4hAiAUQYCAgIAEcUUNAQsgQyAClEMK1yM8lCE3DAELIAIhNwsgNyA5kyA/kyA4IDWTkyIBIAFcDQEgAUMAAAAAEB4hNAwBCyA1ITQLAkAgECARTSIbRQRAIBEgACgCsAQgACgCrAQiF2tBAnUiAyADIBFJGyESQQAhFCARIQMDQCADIBJGDQQgFyADQQJ0aigCACIZKAIYQYCADHFBgIAIRwRAIA5BGGoiDyAZIBMQOSAOKAIcIQUgDyAZIBMQOCAUIAVBA0ZqIA4oAhxBA0ZqIRQLIANBAWoiAyAQRw0AC0MAAAAAITogMyECIBQNAQtDAAAAACE6QQAhFCAzIQICQAJAAkACQAJAIAAoAhhBBHZBB3FBAWsOBQABAgQDBQsgNEMAAAA/lCE6DAQLIDQhOgwDCyAgQQJJBEAMAwsgM0MAAAAAIDRDAAAAABAeIDQgNFwbICBBAWuzlZIhAgwCCyAzIDQgIEEBarOVIjqSIQIMAQsgNEMAAAA/lCAgs5UiOiA6kiAzkiECCyA5IDqSIQFDAAAAACE1IAAQXCEXIBsEfUMAAAAABSAQQQFrIRIgNCAUspUhREMAAAAAITlDAAAAACE3IBEhAwNAIAAoArAEIAAoAqwEIgVrQQJ1IANNDQMgDkEYaiAFIANBAnRqKAIAIhRB5AFqIg9BwAIQKxogAiAzQwAAAAAgAyASRhuTIQICQCAUKAIYIgVBgICAAnENAAJAIAVBgIAMcUGAgAhGBEAgFCATEC5FDQEgCEUNAiAUIBMgOBA0IUcgACATECAhQCAUIBMgNhAfITQgDyAsKAIAQQJ0aiA0IEcgQJKSOAIADAILIA5B6AJqIBQgExA5IAEgREMAAACAIA4oAuwCQQNGG5IhASAIBEAgDyAsKAIAQQJ0IgVqIAEgDkEYaiAFaioCAJI4AgALIA5B6AJqIBQgExA4IAEgREMAAACAIA4oAuwCQQNGG5IhASAuRQRAIAEgAiAUIBMgNhAfIBQgEyA2ECKSkiAOKgJokpIhASA7ITUMAgsgASACIBRBhARqIg8gKCgCAEECdGoqAgAgFCATIDYQHyAUIBMgNhAikpKSkiEBIBcEQCAUEEIhQCAUQQAgNhAfITQgFCoCiAQgFEEAIDYQHyAUQQAgNhAikpIgQCA0kiJAkyE0An0gOSA5XCIFIEAgQFxyRQRAIDkgQBAeDAELIEAgOSAFGwshOSA3IDdcIgUgNCA0XHJFBEAgNyA0EB4hNwwDCyA0IDcgBRshNwwCCyA1IDVcIgUgDyAfKAIAQQJ0aioCACAUIA0gNhAfIBQgDSA2ECKSkiI0IDRcckUEQCA1IDQQHiE1DAILIDQgNSAFGyE1DAELIAhFDQAgDyAsKAIAQQJ0IgVqIDogDkEYaiAFaioCACAAIBMQIJKSOAIACyADQQFqIgMgEEcNAAsgNyA5kgsgNSAXGyECIDshNCAdRQRAAn0gACANID4gApIgRhAlIjQgNFwiAyAAIA0gBhAkIAAgDRAgkiAAIA0gBhAjIAAgDRAhkpIiMyAzXHJFBEAgNCAzEB4MAQsgMyA0IAMbCyA+kyE0CwJ9IAAgDSA+IDsgAiAtG5IgRhAlIjMgM1wiAyAAIA0gBhAkIAAgDRAgkiAAIA0gBhAjIAAgDRAhkpIiAiACXHJFBEAgMyACEB4MAQsgAiAzIAMbCyA+kyEzIAhFIBtyRQRAA0AgACgCsAQgACgCrAQiA2tBAnUgEU0NAwJAIAMgEUECdGooAgAiDygCGCIDQYCAgAJxDQAgA0GAgAxxQYCACEYEQAJAIA8gDRAuRQRAICMoAgAhBQwBCyAPIA0gOxA0ITcgACANECAhNSAPIA0gNhAfIQIgDyAjKAIAIgVBAnRqIAIgNyA1kpIiAjgC5AEgAiACWw0CCyAPIAVBAnRqIAAgDRAgIA8gDSA2EB+SOALkAQwBCyADQQ12QQdxIgVFBEAgACgCGEEKdkEHcSEFCwJAAkAgBUEFRgRAQQVBASAAKAIYQQhxGyEFDAELIAVBBEcNACAOQRhqIA8gDRA5QQQhBSAOKAIcQQNGDQAgDkHoAmogDyANEDggDigC7AJBA0YNAAJAAkAgDyAfKAIAQQN0aiIDKQK8BCJLQiCIpyIFDgQBAAABAAsgS6e+ITUgBUEBRyADKgK8BCI3IDdcckUEQCA9IQIgNUMAAAAAXQ0BDAMLID0hAiAeIDVDAAAAAF1FcSAFQQJHIDcgN1xycg0CCyAPICgoAgBBAnRqKgKEBCE3IDMhAiAOIA8qAuABIjUgNVsEfSAPIA0gNhAfIA8gDSA2ECKSIDcgNZQgNyA1lSArG5IFIAILOALoAiAOIDcgDyATIDYQHyAPIBMgNhAikpI4AhggDkEBNgLkAiAOQQE2AuACIA8gEyA4IDYgDkHkAmogDkEYahA7IA8gDSA7IDYgDkHgAmogDkHoAmoQOyAOKgLoAiI1IA4qAhgiAiATQQFLIgMbITcgMUEARyAAKAIYQYAHcUGABEdxIgUgK3EgAiA1IAMbIgIgAlxyIQMgDyACIDcgHCADQQFzICsgBUVyIDcgN1txIDYgPEEBQQIgCSAKIAsgDBA3GiA9IQIMAQsgDyAfKAIAQQJ0aioChAQhNyAPIA0gNhAfITUgDyANIDYQIiECIA5BGGogDyANEDkgNCA3IDUgApKSkyE1AkAgDigCHEEDRw0AIA5B6AJqIA8gDRA4IA4oAuwCQQNHDQAgPUMAAAAAIDVDAAAAP5QiAkMAAAAAEB4gAiACXBuSIQIMAQsgDkEYaiAPIA0QOCA9IQIgDigCHEEDRg0AIA5BGGogDyANEDkgDigCHEEDRgRAID1DAAAAACA1QwAAAAAQHiA1IDVcG5IhAgwBCwJAAkAgBUEBaw4CAgABCyA9IDVDAAAAP5SSIQIMAQsgPSA1kiECCyAPICMoAgBBAnRqIgMgAiBCIAMqAuQBkpI4AuQBCyARQQFqIhEgEEcNAAsLIEhDAAAAACAaGyAzkiECAn0gRSBFXCIDID8gAZIiASABXHJFBEAgRSABEB4MAQsgASBFIAMbCyFFIEIgApIhQiAaQQFqIQMgIiAQIhFLDQALAkAgCEUNACAxRQRAIAAQXEUNAQtDAAAAACE5AkACQCA7IDtcDQAgOyBCkyEBAkACQAJAAkACQCAAKAIYQQd2QQdxQQJrDgYABAEFAwIFCyA9IAFDAAAAP5SSIT0MBAsgOyBCXkUNAyABIAOzlSE5DAMLIDsgQl4EQCA9IAEgA0EBdLOVkiE9IANBAkkNAyABIAOzlSE5DAQLID0gAUMAAAA/lJIhPQwCCyA7IEJeRSADQQJJcg0BIAEgGrOVITkMAgsgPSABkiE9CyADRQ0BC0EAIRRBACEDQQAhBQNAQwAAAAAhNUMAAAAAITNDAAAAACECQwAAAAAhAUMAAAAAITcgIiADIhBLBEACfwNAIAAoArAEIAAoAqwEIgVrQQJ1IBBNDQUCQCAFIBBBAnRqKAIAIhEoAhgiD0GAgIACcSAPQYCADHFBgIAIRnINACAQIBQgESgCpARHDQIaAkAgESAfKAIAQQJ0aioChAQiAUMAAAAAYEUNACACIAJcIgUgASARIA0gNhAfIBEgDSA2ECKSkiIBIAFcckUEQCACIAEQHiECDAELIAEgAiAFGyECCyAPQQ12QQdxIgUEfyAFBSAAKAIYQQp2QQdxC0EFRw0AIAAtABhBCHFFDQAgERBCITQgEUEAIDYQHyEBIBEqAogEIBFBACA2EB8gEUEAIDYQIpKSIDQgAZIiNJMhASACIAJcIg8CfSAzIDNcIgUgNCA0XHJFBEAgMyA0EB4MAQsgNCAzIAUbCyIzAn0gNSA1XCIFIAEgAVxyRQRAIDUgARAeDAELIAEgNSAFGwsiNZIiASABXHJFBEAgAiABEB4hAgwBCyABIAIgDxshAgsgEEEBaiIQICJHDQALICILIQUgMyE3IAIhAQsgPSBIQwAAAAAgFBuSIjogOSABkiICkiE9IAMgBUkEQCA6IDeSITMDQCAAKAKwBCAAKAKsBCIQa0ECdSADTQ0EAkAgECADQQJ0aigCACIRKAIYIhBBgICAAnEgEEGAgAxxQYCACEZyDQACQAJAAkACQAJAAkAgEEENdkEHcSIQBH8gEAUgACgCGEEKdkEHcQtBAWsOBQEDAgQABgsgAC0AGEEIcQ0ECyARIA0gNhAfIQEgESAjKAIAQQJ0aiA6IAGSOALkAQwECyARIA0gNhAiIQEgEUHkAWoiECAjKAIAQQJ0aiA9IAGTIBAgHygCAEECdGoqAqACkzgCAAwDCyARQeQBaiIQICMoAgBBAnRqIDogAiAQIB8oAgBBAnRqKgKgApNDAAAAP5SSOAIADAILIBEgDSA2EB8hASARICMoAgBBAnRqIDogAZI4AuQBAkACQCARIB8oAgBBA3RqIhApArwEIktCIIinIg8OBAEAAAEACyBLp74hASAPQQFHIBAqArwEIjQgNFxyRQRAIAFDAAAAAF0NAQwDCyAeIAFDAAAAAF1FcSAPQQJHIDQgNFxycg0CCwJAAkACfSATQQJPBEAgAiE1IBEqAoQEIgEgESATIDYQHyARIBMgNhAikpIMAQsgESoCiAQgESANIDYQHyARIA0gNhAikpIhNSARKgKEBCEBIAILIjQgNFwgASABXHJFBEAgNCABk4tDF7fROF0NAQwCCyA0IDRbIAEgAVtyDQELIBEqAogEIgEgAVwiECA1IDVcckUEQCA1IAGTi0MXt9E4XUUNAQwDCyA1IDVbDQAgEA0CCyARIDQgNSAcQQFBASA2IDxBAUEDIAkgCiALIAwQNxoMAQsgESAzIBEQQpMgEUEAIDsQNJI4AugBCyADQQFqIgMgBUcNAAsLIBQgGkchECAUQQFqIRQgBSEDIBANAAsLIABBhARqIhoCfSAAQQIgSSAGECUiAiACXCIDIABBAiAGECQgAEECECCSIABBAiAGECMgAEECECGSkiIBIAFcckUEQCACIAEQHgwBCyABIAIgAxsLOAIAIAACfSAAQQAgSiAHECUiAiACXCIDIABBACAGECQgAEEAECCSIABBACAGECMgAEEAECGSkiIBIAFcckUEQCACIAEQHgwBCyABIAIgAxsLOAKIBAJAAn0CQCAnBEAgACgCGEEUdkEDcSIDQQJGICdBAkdyDQELIAAgEyBFIEMQJSICIAJcIgMgACATIAYQJCAAIBMQIJIgACATIAYQIyAAIBMQIZKSIgEgAVxyRQRAIAIgARAeDAILIAEgAiADGwwBCyAnQQJHIANBAkdyDQECfSBBIDiSIgIgAlwiAyAAIBMgRSBDECUiASABXHJFBEAgAiABEFUMAQsgASACIAMbCyIBIAFcIgMgQSBBXHJFBEAgASBBEB4MAQsgQSABIAMbCyEBIBogKCgCAEECdGogATgCAAsCQAJ9AkAgKgRAICpBAkciBSAAKAIYQRR2QQNxIgNBAkZyDQELIAAgDSA+IEKSIEYQJSICIAJcIgMgACANIAYQJCAAIA0QIJIgACANIAYQIyAAIA0QIZKSIgEgAVxyRQRAIAIgARAeDAILIAEgAiADGwwBCyAFIANBAkdyDQECfSA+IDuSIgIgAlwiAyAAIA0gPiBCkiBGECUiASABXHJFBEAgAiABEFUMAQsgASACIAMbCyIBIAFcIgMgPiA+XHJFBEAgASA+EB4MAQsgPiABIAMbCyEBIBogHygCAEECdGogATgCAAsCQCAIRQ0AIAAoAhhBgIAwcUGAgCBGBEBBASAiICJBAU0bIRQgACgCsAQgACgCrAQiEWtBAnUhD0EAIQMDQEEAIRAgAyAPSQRAIBEgA0ECdGooAgAhEAsgECgCGEGAgAxxQYCACEcEQCAQQeQBaiIQICMoAgBBAnRqIgggGiAfKAIAQQJ0IgVqKgIAIAgqAgCTIAUgEGoqAqACkzgCAAsgA0EBaiIDIBRHDQALCyAAKAKsBCIFIAAoArAEIhRHBEAgJyAEIBNBAUsbQQBHIQ8DQAJAIAUoAgAiEigCGEGAgIwCcUGAgAhHDQAgNiEzIDwhOCAAKAK4BC0ADEECcQRAIAAqAogEITggACoChAQhMwsgACgCGEECdkEDcSEDAkACQCAcQQJGBEBBACERQQMhEAJAIANBAmsOAgMAAgtBAiEQDAILQQAhESADQQFNDQAgAyEQDAELIAMhECAmIRELIBJBAiAzEB8gEkECIDMQIpIhNSASQQAgMxAfIQcgEkEAIDMQIiEGAkACQAJAIBIpArwEIktCIIinIgMOBAEAAAEACyBLp74hAQJAIANBAUcgEioCvAQiAiACXHJFBEAgASICQwAAAABdRQ0BDAILAkAgA0ECRyACIAJcckUEQCAzIDNcIAFDAAAAAF1yDQMMAQtDAADAfyECAkAgA0EBaw4CAAECCyABIQIMAQsgMyABlEMK1yM8lCECCyA1IAKSIQIMAQtDAADAfyECIBJBAhAuRQ0AIBJBAhBHRQ0AIBJBAiAAKgKEBCAAQQIQICAAQQIQIZKTIBJBAiAzEDQgEkECIDMQQZKTIDMQJSICIAJcIgMgEkECIDMQJCASQQIQIJIgEkECIDMQIyASQQIQIZKSIgEgAVxyRQRAIAIgARAeIQIMAQsgASACIAMbIQILIAcgBpIhBwJAAn8CQAJAAkACQAJAIAIgAlwCfQJAAkAgEikCxAQiS0IgiKciAw4EAQAAAQALIEunviEGAkAgA0EBRyASKgLEBCIBIAFcckUEQCAGIgFDAAAAAF1FDQEMAgsCQCADQQJHIAEgAVxyRQRAIDggOFwgBkMAAAAAXXINAwwBC0MAAMB/IQECQCADQQFrDgIAAQILIAYhAQwBCyA4IAaUQwrXIzyUIQELIAcgAZIMAQsCQCASQQAQLgRAIBJBABBHDQELQwAAwH8hASACIAJbDQIMBgsgEkEAIAAqAogEIABBABAgIABBABAhkpMgEkEAIDgQNCASQQAgOBBBkpMgOBAlIgYgBlwiAyASQQAgMxAkIBJBABAgkiASQQAgMxAjIBJBABAhkpIiASABXHJFBEAgBiABEB4MAQsgASAGIAMbCyIBIAFcRg0CIBIqAuABIjQgNFwNAiACIAJcBEAgASAHkyA0lCA1kiECDAMLIAEgAVsNAgwBCyASKgLgASI0IDRcDQILIAcgAiA1kyA0lZIhAQsgAiACXA0BIAEgAVsNAwtBAAwBC0EBCyEDIBIgMyACIDNDAAAAAF4iCBsgAiADIA9xIBBBAklxIgQbIgIgASAcQQIgA0EBcyIDIAgbIAMgBBsgASABWyACIAFBAEEGIAkgCiALIAwQNxogEioChAQgEkECIDMQbJIhAiASKgKIBCASQQAgMxBskiEBCyASIAIgASAcQQFBASACIAFBAUEBIAkgCiALIAwQNxoCQAJ9AkAgEiAQEEdFDQAgEiAQEC4NACAaIBBBAnRB4CFqKAIAQQJ0IgNqKgIAIAMgEmoqAoQEkyAAIBAQIZMgEiAQIDggMyAQQQJJGyIBECKTIBIgECABEEGTDAELAkAgEiAQEC4NACAAKAIYQfAAcUEQRw0AIBogEEECdEHgIWooAgBBAnQiA2oqAgAgAyASaioChASTQwAAAD+UDAELAkAgEiAQEC4NACAAKAIYQfAAcUEgRw0AIBogEEECdEHgIWooAgBBAnQiA2oqAgAgAyASaioChASTDAELIAAoArgELQAMQQJxRQ0BIBIgEBAuRQ0BIBIgECAaIBBBAnRB4CFqKAIAQQJ0aioCACIBEDQgACAQECCSIBIgECABEB+SCyEBIBIgEEECdEHAIWooAgBBAnRqIAE4AuQBCwJ9AkAgEiAREEdFDQAgEiAREC4NACAaIBFBAnRB4CFqKAIAQQJ0IgNqKgIAIAMgEmoqAoQEkyAAIBEQIZMgEiARIDMgOCAQQQJJGyIBECKTIBIgESABEEGTDAELAkAgEiAREC4NACASKAIYQQ12QQdxIgMEfyADBSAAKAIYQQp2QQdxC0ECRw0AIBogEUECdEHgIWooAgBBAnQiA2oqAgAgAyASaioChASTQwAAAD+UDAELAkAgEiAREC4NAAJAIBIoAhhBDXZBB3EiAyAAKAIYIgRBCnZBB3EgAxsiA0EFRgRAIARBgIAwcUGAgCBGDQEMAgsgA0EDRiAEQYCAMHFBgIAgRkYNAQsgGiARQQJ0QeAhaigCAEECdCIDaioCACADIBJqKgKEBJMMAQsgACgCuAQtAAxBAnFFDQEgEiAREC5FDQEgEiARIBogEUECdEHgIWooAgBBAnRqKgIAIgEQNCAAIBEQIJIgEiARIAEQH5ILIQEgEiARQQJ0QcAhaigCAEECdGogATgC5AELIAVBBGoiBSAURw0ACwsgDSATckEBcUUNACANQQFxIQwgE0EBcSELQQEgIiAiQQFNGyEKIA1BAnRB0CFqIQkgE0ECdEHQIWohCCAAKAKwBCAAKAKsBCIFa0ECdSEEQQAhAANAIAAgBEYNAgJAIAUgAEECdGooAgAiEC0AGkHAAHENACALBEAgEEHkAWoiDSAIKAIAQQJ0aiAaICgoAgBBAnQiA2oqAgAgAyANaioCoAKTIA0gLCgCAEECdGoqAgCTOAIACyAMRQ0AIBBB5AFqIg0gCSgCAEECdGogGiAfKAIAQQJ0IgNqKgIAIAMgDWoqAqACkyANICMoAgBBAnRqKgIAkzgCAAsgAEEBaiIAIApHDQALCyAYRQ0BIBgQKQwBCxAEAAsgDkGAA2okAAuJBAMDfwR9AXwgCEMAAAAAXSAJQwAAAABdcgR/IA0FIAUhECABIREgAyESAn0gByAMRQ0AGiAHIAwqAhQiE0MAAAAAWw0AGiABuyATuyIUQQBBABAwIREgA7sgFEEAQQAQMCESIAW7IBRBAEEAEDAhECAHuyAUQQBBABAwCyETAn9BACAAIARHDQAaIBAgEFwiDCARIBFcIg1yBEAgDCANcQwBCyAQIBGTi0MXt9E4XQshDwJAIAIgBkcNACATIBNcIgwgEiASXCINcgRAIAwgDXEhDgwBCyATIBKTi0MXt9E4XSEOC0EBIQ1BASEMAkAgDw0AIAEgCpMhAQJAIABBAUYNACAAQQJHIgAgBHJFBEAgASAIYEUNAQwCC0EAIQwgASAFXUUgACAEQQJHciABIAFcIAUgBVxyIAggCFxycnINAUEBIQwgASAIYA0BCyABIAFcIgAgCCAIXCIEcgRAIAAgBHEhDAwBCyABIAiTi0MXt9E4XSEMCwJAIA4NACADIAuTIQECQCACQQFGDQAgAkECRyIAIAZyRQRAIAEgCWBFDQEMAgtBACENIAEgB11FIAAgBkECR3IgASABXCAHIAdcciAJIAlccnJyDQFBASENIAEgCWANAQsgASABXCIAIAkgCVwiAnIEQCAAIAJxIQ0MAQsgASAJk4tDF7fROF0hDQsgDCANcQsLbQEBfwJAIABBGGoiAxAmIAFBAnRqKAJcIAJGDQAgAxAmIAFBAnRqIAI2AlwDQCAALQAEIgFBBHENASAAIAFBBHI6AAQgACgCFCIBBEAgACABEQAACyAAQYCAgP4HNgK0AiAAKAKoBCIADQALCwttAQF/AkAgAEEYaiIDECYgAUECdGooAjggAkYNACADECYgAUECdGogAjYCOANAIAAtAAQiAUEEcQ0BIAAgAUEEcjoABCAAKAIUIgEEQCAAIAERAAALIABBgICA/gc2ArQCIAAoAqgEIgANAAsLCw4AIAAgASACQQJBAxBzCx0BAX9BzAQQHSAAEIYBIQEgAEEAR0H4FRCFASABC2oBA38jAEEQayICJAAgACAALQAEIgNBb3EiBDoABAJAIAEEfyAAKAKwBCAAKAKsBEcNASAEQQhyBSADQecBcQshAyAAIAE2AgggACADOgAEIAJBEGokAA8LIAJBoCA2AgAgACACEC0QLAALWwEBfQJ/QQAgACgCGEGAgAxxQYCACEYNABoCQCAAKAKoBEUNACAAKgIgIgEgAVwEQCAAKgIcIgFDAAAAAF5FDQELQQEgAUMAAAAAXA0BGgsgABA9QwAAAABcCwuTBQILfwN9IwBBEGsiBUKAgICAEDcCCCAAQcgBaiEGIABBvARqIQcgAEHQAWohCCAAQdgBaiEJQQAhAANAIAAhCgJ/AkACQAJAAkACQCAJIAVBCGogAEECdGooAgAiC0ECdCIDaigCACIAQfDhg/wHRiIEIABBj568/AdGciAAQarVqv0HRnJFBEAgAL4iDCAMXA0BCyADIAhqKAIAIQECfwJAIARFBEBDAADAfyEMQQMgAEGq1ar9B0YNAhogAEGPnrz8B0cNAUMAAAAAIQxBAQwCC0MAAAAAIQxBAgwBC0EAIAC+Ig0gDVwNABogAEH/////e3FBgICAgAJqviEMQQJBASAAQYCAgIAEcRsLIgICfwJAIAFB8OGD/AdHBEBDAADAfyENQQMgAUGq1ar9B0YNAhogAUGPnrz8B0cNAUMAAAAAIQ1BAQwCC0MAAAAAIQ1BAgwBC0EAIAG+Ig4gDlwNABogAUH/////e3FBgICAgAJqviENQQJBASABQYCAgIAEcRsLRyACRSAMIAxcIA0gDVxxciAMIA2Ti0MXt9E4XXJFcg0AQQAhASAEDQEgAEGPnrz8B0YNBCAAQarVqv0HRg0DIAC+IgwgDFwNAiAAQf////97cUGAgICAAmohAUECQQEgAEGAgICABHEbDAULQQAhASADIAZqKAIAIgBB8OGD/AdGDQAgAEGPnrz8B0YNAyAAQarVqv0HRg0CIAC+IgwgDFwNASAAQf////97cUGAgICAAmohAUECQQEgAEGAgICABHEbDAQLQQIMAwtBgICA/gchAUEADAILQYCAgP4HIQFBAwwBC0EBCyECIAcgC0EDdGoiACACNgIEIAAgATYCAEEBIQAgCkEBcUUNAAsLjQEBAX0CQCABQfDhg/wHRwRAIAFBj568/AdHBEAgAUGq1ar9B0cNAiAAQoCAgP43NwIADwsgAEKAgICAEDcCAA8LIABCgICAgCA3AgAPCyABviICIAJcBEAgAEKAgID+BzcCAA8LIABBAkEBIAFBgICAgARxGzYCBCAAIAFB/////3txQYCAgIACajYCAAuGAgIDfwF9QQIhBSAAKAIYQQJ2QQNxIQYCQAJ/AkAgACgCqARFIAFBAkdyRQRAQQAhAUEDIQUCQCAGQQJrDgIEAAILQQIhBQwDC0EAIAZBAUsNARoLIAULIQEgBiEFCyAAIAUgAhBqIQIgACABIAMQaiEDIAAgBSAEEB8hCCAAQeQBaiIGIAVBAnQiB0HAIWooAgBBAnRqIAIgCJI4AgAgACAFIAQQIiEIIAYgB0HQIWooAgBBAnRqIAIgCJI4AgAgACABIAQQHyECIAYgAUECdCIFQcAhaigCAEECdGogAyACkjgCACAAIAEgBBAiIQIgBiAFQdAhaigCAEECdGogAyACkjgCAAsqACAAIAEQLgRAIAAgASACEDQPCyAAIAEgAhBBIgIgAlsEfSACjAUgAgsLYAECfwJAAkAgACgCrAQiAiAAKAKwBCIDRg0AA0AgAigCACABRg0BIAJBBGoiAiADRw0ACwwBCyACIANGDQAgAiACQQRqIgEgAyABaxA2GiAAIANBBGs2ArAEQQEPC0EACxMAIAAgASACEB8gACABIAIQIpILHAAgACABQQggAqcgAkIgiKcgA6cgA0IgiKcQFQsFABBQAAs5ACAARQRAQQAPCwJ/IAFBgH9xQYC/A0YgAUH/AE1yRQRAQdQ3QRk2AgBBfwwBCyAAIAE6AABBAQsLxAIAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAoLDAoLAgMEBQwLDAwKCwcICQsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsACyACIAIoAgAiAUEEajYCACAAIAEyAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEzAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEwAAA3AwAPCyACIAIoAgAiAUEEajYCACAAIAExAAA3AwAPCwALIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQEACw8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBGBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELqBQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQkDQCAJLQABQSVHBEAgCSEBDAILIAdBAWohByAJLQACIQogCUECaiIBIQkgCkElRg0ACwsgByANayIHIA5B/////wdzIhhKDQcgAARAIAAgDSAHECcLIAcNBiAIIAE2AkwgAUEBaiEHQX8hEgJAIAEsAAEiChBGRQ0AIAEtAAJBJEcNACABQQNqIQcgCkEwayESQQEhFQsgCCAHNgJMQQAhDAJAIAcsAAAiCUEgayIBQR9LBEAgByEKDAELIAchCkEBIAF0IgFBidEEcUUNAANAIAggB0EBaiIKNgJMIAEgDHIhDCAHLAABIglBIGsiAUEgTw0BIAohB0EBIAF0IgFBidEEcQ0ACwsCQCAJQSpGBEACfwJAIAosAAEiARBGRQ0AIAotAAJBJEcNACABQQJ0IARqQcABa0EKNgIAIApBA2ohCUEBIRUgCiwAAUEDdCADakGAA2soAgAMAQsgFQ0GIApBAWohCSAARQRAIAggCTYCTEEAIRVBACETDAMLIAIgAigCACIBQQRqNgIAQQAhFSABKAIACyETIAggCTYCTCATQQBODQFBACATayETIAxBgMAAciEMDAELIAhBzABqEHEiE0EASA0IIAgoAkwhCQtBACEHQX8hCwJ/IAktAABBLkcEQCAJIQFBAAwBCyAJLQABQSpGBEACfwJAIAksAAIiARBGRQ0AIAktAANBJEcNACABQQJ0IARqQcABa0EKNgIAIAlBBGohASAJLAACQQN0IANqQYADaygCAAwBCyAVDQYgCUECaiEBQQAgAEUNABogAiACKAIAIgpBBGo2AgAgCigCAAshCyAIIAE2AkwgC0F/c0EfdgwBCyAIIAlBAWo2AkwgCEHMAGoQcSELIAgoAkwhAUEBCyEPA0AgByERQRwhCiABIhAsAAAiB0H7AGtBRkkNCSAQQQFqIQEgByARQTpsakHvJmotAAAiB0EBa0EISQ0ACyAIIAE2AkwCQAJAIAdBG0cEQCAHRQ0LIBJBAE4EQCAEIBJBAnRqIAc2AgAgCCADIBJBA3RqKQMANwNADAILIABFDQggCEFAayAHIAIgBhBwDAILIBJBAE4NCgtBACEHIABFDQcLIAxB//97cSIJIAwgDEGAwABxGyEMQQAhEkGPCSEWIBQhCgJAAkACQAJ/AkACQAJAAkACfwJAAkACQAJAAkACQAJAIBAsAAAiB0FfcSAHIAdBD3FBA0YbIAcgERsiB0HYAGsOIQQUFBQUFBQUFA4UDwYODg4UBhQUFBQCBQMUFAkUARQUBAALAkAgB0HBAGsOBw4UCxQODg4ACyAHQdMARg0JDBMLIAgpA0AhGUGPCQwFC0EAIQcCQAJAAkACQAJAAkACQCARQf8BcQ4IAAECAwQaBQYaCyAIKAJAIA42AgAMGQsgCCgCQCAONgIADBgLIAgoAkAgDqw3AwAMFwsgCCgCQCAOOwEADBYLIAgoAkAgDjoAAAwVCyAIKAJAIA42AgAMFAsgCCgCQCAOrDcDAAwTC0EIIAsgC0EITRshCyAMQQhyIQxB+AAhBwsgFCENIAgpA0AiGVBFBEAgB0EgcSEQA0AgDUEBayINIBmnQQ9xQYArai0AACAQcjoAACAZQg9WIQkgGUIEiCEZIAkNAAsLIAxBCHFFIAgpA0BQcg0DIAdBBHZBjwlqIRZBAiESDAMLIBQhByAIKQNAIhlQRQRAA0AgB0EBayIHIBmnQQdxQTByOgAAIBlCB1YhDSAZQgOIIRkgDQ0ACwsgByENIAxBCHFFDQIgCyAUIA1rIgdBAWogByALSBshCwwCCyAIKQNAIhlCAFMEQCAIQgAgGX0iGTcDQEEBIRJBjwkMAQsgDEGAEHEEQEEBIRJBkAkMAQtBkQlBjwkgDEEBcSISGwshFiAZIBQQPiENCyAPQQAgC0EASBsNDiAMQf//e3EgDCAPGyEMIAgpA0AiGUIAUiALckUEQCAUIQ1BACELDAwLIAsgGVAgFCANa2oiByAHIAtIGyELDAsLQQAhDAJ/Qf////8HIAsgC0H/////B08bIgoiEUEARyEQAkACfwJAAkAgCCgCQCIHQbUhIAcbIg0iD0EDcUUgEUVyDQADQCAPLQAAIgxFDQIgEUEBayIRQQBHIRAgD0EBaiIPQQNxRQ0BIBENAAsLIBBFDQICQCAPLQAARSARQQRJckUEQANAIA8oAgAiB0F/cyAHQYGChAhrcUGAgYKEeHENAiAPQQRqIQ8gEUEEayIRQQNLDQALCyARRQ0DC0EADAELQQELIRADQCAQRQRAIA8tAAAhDEEBIRAMAQsgDyAMRQ0CGiAPQQFqIQ8gEUEBayIRRQ0BQQAhEAwACwALQQALIgcgDWsgCiAHGyIHIA1qIQogC0EATgRAIAkhDCAHIQsMCwsgCSEMIAchCyAKLQAADQ0MCgsgCwRAIAgoAkAMAgtBACEHIABBICATQQAgDBAoDAILIAhBADYCDCAIIAgpA0A+AgggCCAIQQhqIgc2AkBBfyELIAcLIQlBACEHAkADQCAJKAIAIg1FDQEgCEEEaiANEG8iCkEASCINIAogCyAHa0tyRQRAIAlBBGohCSALIAcgCmoiB0sNAQwCCwsgDQ0NC0E9IQogB0EASA0LIABBICATIAcgDBAoIAdFBEBBACEHDAELQQAhCiAIKAJAIQkDQCAJKAIAIg1FDQEgCEEEaiANEG8iDSAKaiIKIAdLDQEgACAIQQRqIA0QJyAJQQRqIQkgByAKSw0ACwsgAEEgIBMgByAMQYDAAHMQKCATIAcgByATSBshBwwICyAPQQAgC0EASBsNCEE9IQogACAIKwNAIBMgCyAMIAcgBREaACIHQQBODQcMCQsgCCAIKQNAPAA3QQEhCyAXIQ0gCSEMDAQLIActAAEhCSAHQQFqIQcMAAsACyAADQcgFUUNAkEBIQcDQCAEIAdBAnRqKAIAIgAEQCADIAdBA3RqIAAgAiAGEHBBASEOIAdBAWoiB0EKRw0BDAkLC0EBIQ4gB0EKTw0HA0AgBCAHQQJ0aigCAA0BIAdBAWoiB0EKRw0ACwwHC0EcIQoMBAsgCyAKIA1rIhAgCyAQShsiCSASQf////8Hc0oNAkE9IQogEyAJIBJqIgsgCyATSBsiByAYSg0DIABBICAHIAsgDBAoIAAgFiASECcgAEEwIAcgCyAMQYCABHMQKCAAQTAgCSAQQQAQKCAAIA0gEBAnIABBICAHIAsgDEGAwABzECgMAQsLQQAhDgwDC0E9IQoLQdQ3IAo2AgALQX8hDgsgCEHQAGokACAOC9YCAQR/IwBB0AFrIgUkACAFIAI2AswBIAVBoAFqIgJBAEEoECoaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAIgAyAEEHJBAEgEQEF/IQQMAQtBASAGIAAoAkxBAE4bIQYgACgCACEHIAAoAkhBAEwEQCAAIAdBX3E2AgALAn8CQAJAIAAoAjBFBEAgAEHQADYCMCAAQQA2AhwgAEIANwMQIAAoAiwhCCAAIAU2AiwMAQsgACgCEA0BC0F/IAAQfg0BGgsgACABIAVByAFqIAVB0ABqIAVBoAFqIAMgBBByCyECIAgEQCAAQQBBACAAKAIkEQYAGiAAQQA2AjAgACAINgIsIABBADYCHCAAKAIUIQEgAEIANwMQIAJBfyABGyECCyAAIAAoAgAiACAHQSBxcjYCAEF/IAIgAEEgcRshBCAGRQ0ACyAFQdABaiQAIAQLfgIBfwF+IAC9IgNCNIinQf8PcSICQf8PRwR8IAJFBEAgASAARAAAAAAAAAAAYQR/QQAFIABEAAAAAAAA8EOiIAEQdCEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALCxUAIABFBEBBAA8LQdQ3IAA2AgBBfwvPAwBBrDdB+xcQHEGtN0GwE0EBQQFBABAbQa43QdwQQQFBgH9B/wAQA0GvN0HVEEEBQYB/Qf8AEANBsDdB0xBBAUEAQf8BEANBsTdBhwpBAkGAgH5B//8BEANBsjdB/glBAkEAQf//AxADQbM3QaQKQQRBgICAgHhB/////wcQA0G0N0GbCkEEQQBBfxADQbU3QeMUQQRBgICAgHhB/////wcQA0G2N0HaFEEEQQBBfxADQbc3QfENQoCAgICAgICAgH9C////////////ABBtQbg3QfANQgBCfxBtQbk3QeoNQQQQDEG6N0HHF0EIEAxBuzdB9RQQDUG8N0HAHhANQb03QQRB6BQQCEG+N0ECQYEVEAhBvzdBBEGQFRAIQcA3QbUTEBpBwTdBAEH7HRABQcI3QQBB4R4QAUHDN0EBQZkeEAFBxDdBAkGLGxABQcU3QQNBqhsQAUHGN0EEQdIbEAFBxzdBBUHvGxABQcg3QQRBhh8QAUHJN0EFQaQfEAFBwjdBAEHVHBABQcM3QQFBtBwQAUHEN0ECQZcdEAFBxTdBA0H1HBABQcY3QQRB2h0QAUHHN0EFQbgdEAFByjdBBkGVHBABQcs3QQdByx8QAQslACAAQeQiNgIAIAAtAAQEQCAAKAIIQd8NEFELIAAoAggQBiAACwMAAAslACAAQdwjNgIAIAAtAAQEQCAAKAIIQd8NEFELIAAoAggQBiAACzcBAn9BBBAdIgIgATYCAEEEEB0iAyABNgIAQfs2IABBujdB6iRBxAEgAkG6N0HuJEHFASADEAcLNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEFAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRAwALCQAgASAAEQAAC1kBAX8gACAAKAJIIgFBAWsgAXI2AkggACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwcAIAARDQALNQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRAAALMAEBfyMAQRBrIgIkACACIAE2AgggAkEIaiAAEQIAIQAgAigCCBAGIAJBEGokACAACwwAIAEgACgCABEAAAsJACAAQQE6AAQLtyYBAn9B+DZB+TZB+jZBAEGAIkERQYMiQQBBgyJBAEHhE0GFIkESEAVBCBAdIgBCiICAgBA3AwBB+DZB6hZBBkGQIkGoIkETIABBARAAQfw2Qf02Qf42Qfg2QYAiQRRBgCJBFUGAIkEWQdEPQYUiQRcQBUEEEB0iAEEYNgIAQfw2QbcSQQJBsCJBuCJBGSAAQQAQAEH4NkH2CkECQbwiQcQiQRpBGxACQfg2QdMXQQNBlCNBoCNBHEEdEAJBkDdBkTdBkjdBAEGAIkEeQYMiQQBBgyJBAEHxE0GFIkEfEAVBCBAdIgBCiICAgBA3AwBBkDdB3RlBAkGoI0G4IkEgIABBARAAQZM3QZQ3QZU3QZA3QYAiQSFBgCJBIkGAIkEjQegPQYUiQSQQBUEEEB0iAEElNgIAQZM3QbcSQQJBsCNBuCJBJiAAQQAQAEGQN0H2CkECQbgjQcQiQSdBKBACQZA3QdMXQQNBlCNBoCNBHEEpEAJBljdBlzdBmDdBAEGAIkEqQYMiQQBBgyJBAEGtFkGFIkErEAVBljdBAUHoI0GAIkEsQS0QDkGWN0HjFkEBQegjQYAiQSxBLRACQZY3QekIQQJB7CNBuCJBLkEvEAJBCBAdIgBBADYCBCAAQTA2AgBBljdBohlBBEGAJEGQJEExIABBABAAQQgQHSIAQQA2AgQgAEEyNgIAQZY3Qb0PQQNBmCRBpCRBMyAAQQAQAEEIEB0iAEEANgIEIABBNDYCAEGWN0GgD0EDQawkQbgkQTUgAEEAEABBCBAdIgBBADYCBCAAQTY2AgBBljdBvRpBA0HAJEG4JEE3IABBABAAQQgQHSIAQQA2AgQgAEE4NgIAQZY3QYgOQQNBrCRBuCRBNSAAQQAQAEEIEB0iAEEANgIEIABBOTYCAEGWN0HAGUEDQcwkQaAjQTogAEEAEABBCBAdIgBBADYCBCAAQTs2AgBBljdBhg9BAkHYJEHEIkE8IABBABAAQQgQHSIAQQA2AgQgAEE9NgIAQZY3QccaQQJB4CRBxCJBPiAAQQAQAEEIEB0iAEEANgIEIABBPzYCAEGWN0H5DUECQdgkQcQiQTwgAEEAEABBmTdB9wlB6CRBwABBhSJBwQAQCkHEDUEAED9BzAxBCBA/QeEQQRAQP0GXE0EYED9BgRRBIBA/QdIMQSgQP0GZNxAJQfs2QdIWQegkQcIAQYUiQcMAEApBgRRBABB6QdIMQQgQekH7NhAJQZo3Qd0WQegkQcQAQYUiQcUAEApBBBAdIgBBCDYCAEEEEB0iAUEINgIAQZo3QdcWQbo3QeokQcYAIABBujdB7iRBxwAgARAHQQQQHSIAQQA2AgBBBBAdIgFBADYCAEGaN0HHDEGzN0HEIkHIACAAQbM3QbgkQckAIAEQB0GaNxAJQZs3QZw3QZ03QQBBgCJBygBBgyJBAEGDIkEAQc4XQYUiQcsAEAVBmzdBAUH0JEGAIkHMAEHNABAOQZs3QbkMQQFB9CRBgCJBzABBzQAQAkGbN0GjFkECQfgkQcQiQc4AQc8AEAJBmzdB6QhBAkGAJUG4IkHQAEHRABACQQgQHSIAQQA2AgQgAEHSADYCAEGbN0HZDUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHUADYCAEGbN0G9F0EDQYglQbgkQdUAIABBABAAQQgQHSIAQQA2AgQgAEHWADYCAEGbN0HyFkEDQZQlQbgkQdcAIABBABAAQQgQHSIAQQA2AgQgAEHYADYCAEGbN0GfEkEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEHaADYCAEGbN0HNC0EEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEHbADYCAEGbN0HMCkEDQZQlQbgkQdcAIABBABAAQQgQHSIAQQA2AgQgAEHcADYCAEGbN0GaDkEDQZQlQbgkQdcAIABBABAAQQgQHSIAQQA2AgQgAEHdADYCAEGbN0G4FkEDQZQlQbgkQdcAIABBABAAQQgQHSIAQQA2AgQgAEHeADYCAEGbN0HLEkEDQZQlQbgkQdcAIABBABAAQQgQHSIAQQA2AgQgAEHfADYCAEGbN0H0EEEDQZQlQbgkQdcAIABBABAAQQgQHSIAQQA2AgQgAEHgADYCAEGbN0GoCkEDQZQlQbgkQdcAIABBABAAQQgQHSIAQQA2AgQgAEHhADYCAEGbN0HtEkEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEHiADYCAEGbN0HgC0EEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEHjADYCAEGbN0G8EUEDQZQlQbgkQdcAIABBABAAQQgQHSIAQQA2AgQgAEHkADYCAEGbN0HECUEDQZQlQbgkQdcAIABBABAAQQgQHSIAQQA2AgQgAEHlADYCAEGbN0HxCEEDQZQlQbgkQdcAIABBABAAQQgQHSIAQQA2AgQgAEHmADYCAEGbN0GHCUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHoADYCAEGbN0G2DkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHpADYCAEGbN0G5C0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHqADYCAEGbN0GrEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHrADYCAEGbN0GsCUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHsADYCAEGbN0HFE0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHtADYCAEGbN0GfFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHuADYCAEGbN0GEDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHvADYCAEGbN0HKEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHwADYCAEGbN0HzDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVp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",!F(ee)){var te=ee;ee=s.locateFile?s.locateFile(te,A):A+te}function Ae(){var L=ee;try{if(L==ee&&f)return new Uint8Array(f);if(F(L))try{var N=Jn(L.slice(37)),Z=new Uint8Array(N.length);for(L=0;L=N?"_"+L:L}function z(L,N){return L=Y(L),function(){return N.apply(this,arguments)}}var G=[{},{value:void 0},{value:null},{value:!0},{value:!1}],O=[];function me(L){var N=Error,Z=z(L,function(ae){this.name=L,this.message=ae,ae=Error(ae).stack,ae!==void 0&&(this.stack=this.toString()+` +`+ae.replace(/^Error(:[^\n]*)?\n/,""))});return Z.prototype=Object.create(N.prototype),Z.prototype.constructor=Z,Z.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Z}var Ie=void 0;function oe(L){throw new Ie(L)}var Se=L=>(L||oe("Cannot use deleted val. handle = "+L),G[L].value),V=L=>{switch(L){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var N=O.length?O.pop():G.length;return G[N]={fa:1,value:L},N}},Ee=void 0,ie=void 0;function le(L){for(var N="";y[L];)N+=ie[y[L++]];return N}var de=[];function Te(){for(;de.length;){var L=de.pop();L.L.Z=!1,L.delete()}}var $=void 0,_={};function b(L,N){for(N===void 0&&oe("ptr should not be undefined");L.P;)N=L.aa(N),L=L.P;return N}var se={};function Pe(L){L=nt(L);var N=le(L);return xt(L),N}function De(L,N){var Z=se[L];return Z===void 0&&oe(N+" has unknown type "+Pe(L)),Z}function Qe(){}var je=!1;function Ve(L){--L.count.value,L.count.value===0&&(L.S?L.T.V(L.S):L.O.M.V(L.N))}function Ze(L,N,Z){return N===Z?L:Z.P===void 0?null:(L=Ze(L,N,Z.P),L===null?null:Z.ma(L))}var ut={};function It(L,N){return N=b(L,N),_[N]}var Ne=void 0;function Lt(L){throw new Ne(L)}function wt(L,N){return N.O&&N.N||Lt("makeClassHandle requires ptr and ptrType"),!!N.T!=!!N.S&&Lt("Both smartPtrType and smartPtr must be specified"),N.count={value:1},mt(Object.create(L,{L:{value:N}}))}function mt(L){return typeof FinalizationRegistry>"u"?(mt=N=>N,L):(je=new FinalizationRegistry(N=>{Ve(N.L)}),mt=N=>{var Z=N.L;return Z.S&&je.register(N,{L:Z},N),N},Qe=N=>{je.unregister(N)},mt(L))}var ct={};function it(L){for(;L.length;){var N=L.pop();L.pop()(N)}}function Bt(L){return this.fromWireType(R[L>>2])}var kt={},en={};function Mt(L,N,Z){function ae(Le){Le=Z(Le),Le.length!==L.length&&Lt("Mismatched type converter count");for(var We=0;We{se.hasOwnProperty(Le)?ge[We]=se[Le]:(we.push(Le),kt.hasOwnProperty(Le)||(kt[Le]=[]),kt[Le].push(()=>{ge[We]=se[Le],++Ue,Ue===we.length&&ae(ge)}))}),we.length===0&&ae(ge)}function Xt(L){switch(L){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+L)}}function j(L,N,Z={}){if(!("argPackAdvance"in N))throw new TypeError("registerType registeredInstance requires argPackAdvance");var ae=N.name;if(L||oe('type "'+ae+'" must have a positive integer typeid pointer'),se.hasOwnProperty(L)){if(Z.ta)return;oe("Cannot register type '"+ae+"' twice")}se[L]=N,delete en[L],kt.hasOwnProperty(L)&&(N=kt[L],delete kt[L],N.forEach(ge=>ge()))}function Ge(L){oe(L.L.O.M.name+" instance already deleted")}function Fe(){}function st(L,N,Z){if(L[N].R===void 0){var ae=L[N];L[N]=function(){return L[N].R.hasOwnProperty(arguments.length)||oe("Function '"+Z+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+L[N].R+")!"),L[N].R[arguments.length].apply(this,arguments)},L[N].R=[],L[N].R[ae.Y]=ae}}function pt(L,N){s.hasOwnProperty(L)?(oe("Cannot register public name '"+L+"' twice"),st(s,L,L),s.hasOwnProperty(void 0)&&oe("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),s[L].R[void 0]=N):s[L]=N}function Jt(L,N,Z,ae,ge,we,Ue,Le){this.name=L,this.constructor=N,this.W=Z,this.V=ae,this.P=ge,this.oa=we,this.aa=Ue,this.ma=Le,this.ia=[]}function jt(L,N,Z){for(;N!==Z;)N.aa||oe("Expected null or instance of "+Z.name+", got an instance of "+N.name),L=N.aa(L),N=N.P;return L}function Ln(L,N){return N===null?(this.da&&oe("null is not a valid "+this.name),0):(N.L||oe('Cannot pass "'+Za(N)+'" as a '+this.name),N.L.N||oe("Cannot pass deleted object as a pointer of type "+this.name),jt(N.L.N,N.L.O.M,this.M))}function pi(L,N){if(N===null){if(this.da&&oe("null is not a valid "+this.name),this.ca){var Z=this.ea();return L!==null&&L.push(this.V,Z),Z}return 0}if(N.L||oe('Cannot pass "'+Za(N)+'" as a '+this.name),N.L.N||oe("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&N.L.O.ba&&oe("Cannot convert argument of type "+(N.L.T?N.L.T.name:N.L.O.name)+" to parameter type "+this.name),Z=jt(N.L.N,N.L.O.M,this.M),this.ca)switch(N.L.S===void 0&&oe("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:N.L.T===this?Z=N.L.S:oe("Cannot convert argument of type "+(N.L.T?N.L.T.name:N.L.O.name)+" to parameter type "+this.name);break;case 1:Z=N.L.S;break;case 2:if(N.L.T===this)Z=N.L.S;else{var ae=N.clone();Z=this.wa(Z,V(function(){ae.delete()})),L!==null&&L.push(this.V,Z)}break;default:oe("Unsupporting sharing policy")}return Z}function on(L,N){return N===null?(this.da&&oe("null is not a valid "+this.name),0):(N.L||oe('Cannot pass "'+Za(N)+'" as a '+this.name),N.L.N||oe("Cannot pass deleted object as a pointer of type "+this.name),N.L.O.ba&&oe("Cannot convert argument of type "+N.L.O.name+" to parameter type "+this.name),jt(N.L.N,N.L.O.M,this.M))}function hn(L,N,Z,ae){this.name=L,this.M=N,this.da=Z,this.ba=ae,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,N.P!==void 0?this.toWireType=pi:(this.toWireType=ae?Ln:on,this.U=null)}function Zi(L,N){s.hasOwnProperty(L)||Lt("Replacing nonexistant public symbol"),s[L]=N,s[L].Y=void 0}function qa(L,N){var Z=[];return function(){if(Z.length=0,Object.assign(Z,arguments),L.includes("j")){var ae=s["dynCall_"+L];ae=Z&&Z.length?ae.apply(null,[N].concat(Z)):ae.call(null,N)}else ae=w.get(N).apply(null,Z);return ae}}function gi(L,N){L=le(L);var Z=L.includes("j")?qa(L,N):w.get(N);return typeof Z!="function"&&oe("unknown function pointer with signature "+L+": "+N),Z}var Ws=void 0;function cr(L,N){function Z(we){ge[we]||se[we]||(en[we]?en[we].forEach(Z):(ae.push(we),ge[we]=!0))}var ae=[],ge={};throw N.forEach(Z),new Ws(L+": "+ae.map(Pe).join([", "]))}function Es(L,N,Z,ae,ge){var we=N.length;2>we&&oe("argTypes array size mismatch! Must at least get return value and 'this' types!");var Ue=N[1]!==null&&Z!==null,Le=!1;for(Z=1;Z>2]);return Z}function Go(L){4>2])};case 3:return function(Z){return this.fromWireType(U[Z>>3])};default:throw new TypeError("Unknown float type: "+L)}}function zu(L,N,Z){switch(N){case 0:return Z?function(ae){return p[ae]}:function(ae){return y[ae]};case 1:return Z?function(ae){return I[ae>>1]}:function(ae){return B[ae>>1]};case 2:return Z?function(ae){return R[ae>>2]}:function(ae){return M[ae>>2]};default:throw new TypeError("Unknown integer type: "+L)}}function W(L,N){for(var Z="",ae=0;!(ae>=N/2);++ae){var ge=I[L+2*ae>>1];if(ge==0)break;Z+=String.fromCharCode(ge)}return Z}function pe(L,N,Z){if(Z===void 0&&(Z=2147483647),2>Z)return 0;Z-=2;var ae=N;Z=Z<2*L.length?Z/2:L.length;for(var ge=0;ge>1]=L.charCodeAt(ge),N+=2;return I[N>>1]=0,N-ae}function xe(L){return 2*L.length}function _e(L,N){for(var Z=0,ae="";!(Z>=N/4);){var ge=R[L+4*Z>>2];if(ge==0)break;++Z,65536<=ge?(ge-=65536,ae+=String.fromCharCode(55296|ge>>10,56320|ge&1023)):ae+=String.fromCharCode(ge)}return ae}function ve(L,N,Z){if(Z===void 0&&(Z=2147483647),4>Z)return 0;var ae=N;Z=ae+Z-4;for(var ge=0;ge=we){var Ue=L.charCodeAt(++ge);we=65536+((we&1023)<<10)|Ue&1023}if(R[N>>2]=we,N+=4,N+4>Z)break}return R[N>>2]=0,N-ae}function et(L){for(var N=0,Z=0;Z=ae&&++Z,N+=4}return N}var At={};function Ct(L){var N=At[L];return N===void 0?le(L):N}var Et=[];function Qt(L){var N=Et.length;return Et.push(L),N}function St(L,N){for(var Z=Array(L),ae=0;ae>2],"parameter "+ae);return Z}var _t=[],Cn=[null,[],[]];Ie=s.BindingError=me("BindingError"),s.count_emval_handles=function(){for(var L=0,N=5;Nan;++an)Xn[an]=String.fromCharCode(an);ie=Xn,s.getInheritedInstanceCount=function(){return Object.keys(_).length},s.getLiveInheritedInstances=function(){var L=[],N;for(N in _)_.hasOwnProperty(N)&&L.push(_[N]);return L},s.flushPendingDeletes=Te,s.setDelayFunction=function(L){$=L,de.length&&$&&$(Te)},Ne=s.InternalError=me("InternalError"),Fe.prototype.isAliasOf=function(L){if(!(this instanceof Fe&&L instanceof Fe))return!1;var N=this.L.O.M,Z=this.L.N,ae=L.L.O.M;for(L=L.L.N;N.P;)Z=N.aa(Z),N=N.P;for(;ae.P;)L=ae.aa(L),ae=ae.P;return N===ae&&Z===L},Fe.prototype.clone=function(){if(this.L.N||Ge(this),this.L.$)return this.L.count.value+=1,this;var L=mt,N=Object,Z=N.create,ae=Object.getPrototypeOf(this),ge=this.L;return L=L(Z.call(N,ae,{L:{value:{count:ge.count,Z:ge.Z,$:ge.$,N:ge.N,O:ge.O,S:ge.S,T:ge.T}}})),L.L.count.value+=1,L.L.Z=!1,L},Fe.prototype.delete=function(){this.L.N||Ge(this),this.L.Z&&!this.L.$&&oe("Object already scheduled for deletion"),Qe(this),Ve(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},Fe.prototype.isDeleted=function(){return!this.L.N},Fe.prototype.deleteLater=function(){return this.L.N||Ge(this),this.L.Z&&!this.L.$&&oe("Object already scheduled for deletion"),de.push(this),de.length===1&&$&&$(Te),this.L.Z=!0,this},hn.prototype.pa=function(L){return this.ja&&(L=this.ja(L)),L},hn.prototype.ga=function(L){this.V&&this.V(L)},hn.prototype.argPackAdvance=8,hn.prototype.readValueFromPointer=Bt,hn.prototype.deleteObject=function(L){L!==null&&L.delete()},hn.prototype.fromWireType=function(L){function N(){return this.ca?wt(this.M.W,{O:this.va,N:Z,T:this,S:L}):wt(this.M.W,{O:this,N:L})}var Z=this.pa(L);if(!Z)return this.ga(L),null;var ae=It(this.M,Z);if(ae!==void 0)return ae.L.count.value===0?(ae.L.N=Z,ae.L.S=L,ae.clone()):(ae=ae.clone(),this.ga(L),ae);if(ae=this.M.oa(Z),ae=ut[ae],!ae)return N.call(this);ae=this.ba?ae.ka:ae.pointerType;var ge=Ze(Z,this.M,ae.M);return ge===null?N.call(this):this.ca?wt(ae.M.W,{O:ae,N:ge,T:this,S:L}):wt(ae.M.W,{O:ae,N:ge})},Ws=s.UnboundTypeError=me("UnboundTypeError");var Jn=typeof atob=="function"?atob:function(L){var N="",Z=0;L=L.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var ae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++)),ge="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++)),we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++)),Ue="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(L.charAt(Z++));ae=ae<<2|ge>>4,ge=(ge&15)<<4|we>>2;var Le=(we&3)<<6|Ue;N+=String.fromCharCode(ae),we!==64&&(N+=String.fromCharCode(ge)),Ue!==64&&(N+=String.fromCharCode(Le))}while(ZUe.sa).concat(ge.map(Ue=>Ue.ya));Mt([L],we,Ue=>{var Le={};return ge.forEach((We,He)=>{var tt=Ue[He],gt=We.qa,zt=We.ra,pn=Ue[He+ge.length],Yt=We.xa,Ni=We.za;Le[We.na]={read:Ar=>tt.fromWireType(gt(zt,Ar)),write:(Ar,Ys)=>{var hr=[];Yt(Ni,Ar,pn.toWireType(hr,Ys)),it(hr)}}}),[{name:N.name,fromWireType:function(We){var He={},tt;for(tt in Le)He[tt]=Le[tt].read(We);return ae(We),He},toWireType:function(We,He){for(var tt in Le)if(!(tt in He))throw new TypeError('Missing field: "'+tt+'"');var gt=Z();for(tt in Le)Le[tt].write(gt,He[tt]);return We!==null&&We.push(ae,gt),gt},argPackAdvance:8,readValueFromPointer:Bt,U:ae}]})},v:function(){},B:function(L,N,Z,ae,ge){var we=Xt(Z);N=le(N),j(L,{name:N,fromWireType:function(Ue){return!!Ue},toWireType:function(Ue,Le){return Le?ae:ge},argPackAdvance:8,readValueFromPointer:function(Ue){if(Z===1)var Le=p;else if(Z===2)Le=I;else if(Z===4)Le=R;else throw new TypeError("Unknown boolean type size: "+N);return this.fromWireType(Le[Ue>>we])},U:null})},f:function(L,N,Z,ae,ge,we,Ue,Le,We,He,tt,gt,zt){tt=le(tt),we=gi(ge,we),Le&&(Le=gi(Ue,Le)),He&&(He=gi(We,He)),zt=gi(gt,zt);var pn=Y(tt);pt(pn,function(){cr("Cannot construct "+tt+" due to unbound types",[ae])}),Mt([L,N,Z],ae?[ae]:[],function(Yt){if(Yt=Yt[0],ae)var Ni=Yt.M,Ar=Ni.W;else Ar=Fe.prototype;Yt=z(pn,function(){if(Object.getPrototypeOf(this)!==Ys)throw new Ie("Use 'new' to construct "+tt);if(hr.X===void 0)throw new Ie(tt+" has no accessible constructor");var hd=hr.X[arguments.length];if(hd===void 0)throw new Ie("Tried to invoke ctor of "+tt+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(hr.X).toString()+") parameters instead!");return hd.apply(this,arguments)});var Ys=Object.create(Ar,{constructor:{value:Yt}});Yt.prototype=Ys;var hr=new Jt(tt,Yt,Ys,zt,Ni,we,Le,He);Ni=new hn(tt,hr,!0,!1),Ar=new hn(tt+"*",hr,!1,!1);var Ho=new hn(tt+" const*",hr,!1,!0);return ut[L]={pointerType:Ar,ka:Ho},Zi(pn,Yt),[Ni,Ar,Ho]})},c:function(L,N,Z,ae,ge,we,Ue){var Le=Oo(Z,ae);N=le(N),we=gi(ge,we),Mt([],[L],function(We){function He(){cr("Cannot call "+tt+" due to unbound types",Le)}We=We[0];var tt=We.name+"."+N;N.startsWith("@@")&&(N=Symbol[N.substring(2)]);var gt=We.M.constructor;return gt[N]===void 0?(He.Y=Z-1,gt[N]=He):(st(gt,N,tt),gt[N].R[Z-1]=He),Mt([],Le,function(zt){return zt=Es(tt,[zt[0],null].concat(zt.slice(1)),null,we,Ue),gt[N].R===void 0?(zt.Y=Z-1,gt[N]=zt):gt[N].R[Z-1]=zt,[]}),[]})},o:function(L,N,Z,ae,ge,we){0{cr("Cannot construct "+Le.name+" due to unbound types",Ue)},Mt([],Ue,function(He){return He.splice(1,0,null),Le.M.X[N-1]=Es(We,He,null,ge,we),[]}),[]})},a:function(L,N,Z,ae,ge,we,Ue,Le){var We=Oo(Z,ae);N=le(N),we=gi(ge,we),Mt([],[L],function(He){function tt(){cr("Cannot call "+gt+" due to unbound types",We)}He=He[0];var gt=He.name+"."+N;N.startsWith("@@")&&(N=Symbol[N.substring(2)]),Le&&He.M.ia.push(N);var zt=He.M.W,pn=zt[N];return pn===void 0||pn.R===void 0&&pn.className!==He.name&&pn.Y===Z-2?(tt.Y=Z-2,tt.className=He.name,zt[N]=tt):(st(zt,N,gt),zt[N].R[Z-2]=tt),Mt([],We,function(Yt){return Yt=Es(gt,Yt,He,we,Ue),zt[N].R===void 0?(Yt.Y=Z-2,zt[N]=Yt):zt[N].R[Z-2]=Yt,[]}),[]})},A:function(L,N){N=le(N),j(L,{name:N,fromWireType:function(Z){var ae=Se(Z);return Go(Z),ae},toWireType:function(Z,ae){return V(ae)},argPackAdvance:8,readValueFromPointer:Bt,U:null})},m:function(L,N,Z){Z=Xt(Z),N=le(N),j(L,{name:N,fromWireType:function(ae){return ae},toWireType:function(ae,ge){return ge},argPackAdvance:8,readValueFromPointer:Hu(N,Z),U:null})},d:function(L,N,Z,ae,ge){N=le(N),ge===-1&&(ge=4294967295),ge=Xt(Z);var we=Le=>Le;if(ae===0){var Ue=32-8*Z;we=Le=>Le<>>Ue}Z=N.includes("unsigned")?function(Le,We){return We>>>0}:function(Le,We){return We},j(L,{name:N,fromWireType:we,toWireType:Z,argPackAdvance:8,readValueFromPointer:zu(N,ge,ae!==0),U:null})},b:function(L,N,Z){function ae(we){we>>=2;var Ue=M;return new ge(C,Ue[we+1],Ue[we])}var ge=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][N];Z=le(Z),j(L,{name:Z,fromWireType:ae,argPackAdvance:8,readValueFromPointer:ae},{ta:!0})},n:function(L,N){N=le(N);var Z=N==="std::string";j(L,{name:N,fromWireType:function(ae){var ge=M[ae>>2],we=ae+4;if(Z)for(var Ue=we,Le=0;Le<=ge;++Le){var We=we+Le;if(Le==ge||y[We]==0){if(Ue=Ue?v(y,Ue,We-Ue):"",He===void 0)var He=Ue;else He+="\0",He+=Ue;Ue=We+1}}else{for(He=Array(ge),Le=0;Le=We?Le++:2047>=We?Le+=2:55296<=We&&57343>=We?(Le+=4,++we):Le+=3}we=Le}else we=ge.length;if(Le=Ii(4+we+1),We=Le+4,M[Le>>2]=we,Z&&Ue){if(Ue=We,We=we+1,we=y,0=tt){var gt=ge.charCodeAt(++He);tt=65536+((tt&1023)<<10)|gt&1023}if(127>=tt){if(Ue>=We)break;we[Ue++]=tt}else{if(2047>=tt){if(Ue+1>=We)break;we[Ue++]=192|tt>>6}else{if(65535>=tt){if(Ue+2>=We)break;we[Ue++]=224|tt>>12}else{if(Ue+3>=We)break;we[Ue++]=240|tt>>18,we[Ue++]=128|tt>>12&63}we[Ue++]=128|tt>>6&63}we[Ue++]=128|tt&63}}we[Ue]=0}}else if(Ue)for(Ue=0;UeB,Le=1;else N===4&&(ae=_e,ge=ve,we=et,Ue=()=>M,Le=2);j(L,{name:Z,fromWireType:function(We){for(var He=M[We>>2],tt=Ue(),gt,zt=We+4,pn=0;pn<=He;++pn){var Yt=We+4+pn*N;(pn==He||tt[Yt>>Le]==0)&&(zt=ae(zt,Yt-zt),gt===void 0?gt=zt:(gt+="\0",gt+=zt),zt=Yt+N)}return xt(We),gt},toWireType:function(We,He){typeof He!="string"&&oe("Cannot pass non-string to C++ string type "+Z);var tt=we(He),gt=Ii(4+tt+N);return M[gt>>2]=tt>>Le,ge(He,gt+4,tt+N),We!==null&&We.push(xt,gt),gt},argPackAdvance:8,readValueFromPointer:Bt,U:function(We){xt(We)}})},k:function(L,N,Z,ae,ge,we){ct[L]={name:le(N),ea:gi(Z,ae),V:gi(ge,we),ha:[]}},h:function(L,N,Z,ae,ge,we,Ue,Le,We,He){ct[L].ha.push({na:le(N),sa:Z,qa:gi(ae,ge),ra:we,ya:Ue,xa:gi(Le,We),za:He})},C:function(L,N){N=le(N),j(L,{ua:!0,name:N,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(L,N,Z,ae,ge){L=Et[L],N=Se(N),Z=Ct(Z);var we=[];return M[ae>>2]=V(we),L(N,Z,we,ge)},t:function(L,N,Z,ae){L=Et[L],N=Se(N),Z=Ct(Z),L(N,Z,null,ae)},g:Go,l:function(L,N){var Z=St(L,N),ae=Z[0];N=ae.name+"_$"+Z.slice(1).map(function(Ue){return Ue.name}).join("_")+"$";var ge=_t[N];if(ge!==void 0)return ge;var we=Array(L-1);return ge=Qt((Ue,Le,We,He)=>{for(var tt=0,gt=0;gt>>=0,2147483648=Z;Z*=2){var ae=N*(1+.2/Z);ae=Math.min(ae,L+100663296);var ge=Math;ae=Math.max(L,ae),ge=ge.min.call(ge,2147483648,ae+(65536-ae%65536)%65536);e:{try{g.grow(ge-C.byteLength+65535>>>16),K();var we=1;break e}catch{}we=void 0}if(we)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(L,N,Z,ae){for(var ge=0,we=0;we>2],Le=M[N+4>>2];N+=8;for(var We=0;We>2]=ge,0}};(function(){function L(ge){s.asm=ge.exports,g=s.asm.D,K(),w=s.asm.I,q.unshift(s.asm.E),re--,s.monitorRunDependencies&&s.monitorRunDependencies(re),re==0&&ne&&(ge=ne,ne=null,ge())}function N(ge){L(ge.instance)}function Z(ge){return ye().then(function(we){return WebAssembly.instantiate(we,ae)}).then(function(we){return we}).then(ge,function(we){d("failed to asynchronously prepare wasm: "+we),ue(we)})}var ae={a:vt};if(re++,s.monitorRunDependencies&&s.monitorRunDependencies(re),s.instantiateWasm)try{return s.instantiateWasm(ae,L)}catch(ge){d("Module.instantiateWasm callback failed with error: "+ge),a(ge)}return function(){return f||typeof WebAssembly.instantiateStreaming!="function"||F(ee)||typeof fetch!="function"?Z(N):fetch(ee,{credentials:"same-origin"}).then(function(ge){return WebAssembly.instantiateStreaming(ge,ae).then(N,function(we){return d("wasm streaming compile failed: "+we),d("falling back to ArrayBuffer instantiation"),Z(N)})})}().catch(a),{}})(),s.___wasm_call_ctors=function(){return(s.___wasm_call_ctors=s.asm.E).apply(null,arguments)};var nt=s.___getTypeName=function(){return(nt=s.___getTypeName=s.asm.F).apply(null,arguments)};s.__embind_initialize_bindings=function(){return(s.__embind_initialize_bindings=s.asm.G).apply(null,arguments)};var Ii=s._malloc=function(){return(Ii=s._malloc=s.asm.H).apply(null,arguments)},xt=s._free=function(){return(xt=s._free=s.asm.J).apply(null,arguments)};s.dynCall_jiji=function(){return(s.dynCall_jiji=s.asm.K).apply(null,arguments)};var dn;ne=function L(){dn||ur(),dn||(ne=L)};function ur(){function L(){if(!dn&&(dn=!0,s.calledRun=!0,!E)){if(Oe(q),o(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;){var N=s.postRun.shift();fe.unshift(N)}Oe(fe)}}if(!(0qt(n),e);k.useEffect(()=>t,[t])}let rC;function BG(){if(rC==null){const n=rC=Ht(void 0);Gi.loadYoga().then(e=>n.value=e)}return rC}function pD(n,e,...t){const i=k.useMemo(()=>Ht(void 0),[]);return k.useEffect(()=>{if(!(e instanceof On)){let r=!1;return n(e,...t).then(s=>r?void 0:i.value=s),()=>r=!0}return qt(()=>{let r=!1;return n(e.value,...t).then(s=>r?void 0:i.value=s).catch(console.error),()=>r=!0})},[e,...t]),i}function gD(n,e,t,i,r){const[s,o]=n.value,[a,l,A,h]=e.value,[d,f,g,E]=t.value,v=a+d,C=l+f,p=A+g,y=h+E,I=s-y-C,B=o-v-p,R=I/B;let M=1;return R>r?M=B*i:M=I*i/r,[(y-C)*.5*i,(p-v)*.5*i,M]}const yw=new Ke;function _1(n,e,t,i=0){const r=e*n.itemSize+i;n.addUpdateRange(r,3),Array.isArray(t)?n.set(t,r):(yw.set(t),yw.toArray(n.array,r)),n.needsUpdate=!0}function Dg(n){return n instanceof On?n.value:n}const mD=k.createContext(void 0);function Va(){const n=k.useContext(mD);if(n==null)throw new Error("Can only be used inside a component.");return n}const SG=mD.Provider;function Ao(n){const e=new Map;return(t,i)=>{const r=t.length;for(const s in i){const o=i[s];if(o===void 0)return;let a=e.get(o);a==null&&e.set(o,a=bn(()=>n()?Dg(o):void 0));for(let l=0;l"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),ED=Ht((mu==null?void 0:mu.matches)??!1);mu==null||mu.addEventListener("change",n=>ED.value=n.matches);const TI=Ht("system"),CD=bn(()=>{switch(TI.value){case"system":return ED.value;case"dark":return!0;case"light":return!1}});function _G(n){TI.value=n}function vw(){return TI.peek()}const wG=Ao(()=>CD.value);function To(n,e){ku(e,t=>{const i=t.dark;i!=null&&wG(n,i)})}function MG({dark:n,light:e}){const t={};for(const i in n)t[i]=bn(()=>CD.value?n[i]:e[i]);return t}const QG=Math.cos(45/180*Math.PI),sC=[new sn,new sn,new sn,new sn],Iw=new H;class RG{constructor(e,t,i,r,s){be(this,"planes");be(this,"facePlane");be(this,"originalCenter");this.originalCenter=new H(t,i,0).applyMatrix4(e),this.facePlane=new sn(new H(0,0,1),0).applyMatrix4(e);const o=r/2,a=s/2,l=i+a,A=t+o,h=-i+a,d=-t+o;this.planes=[new sn(new H(0,-1,0),h).applyMatrix4(e),new sn(new H(-1,0,0),d).applyMatrix4(e),new sn(new H(0,1,0),l).applyMatrix4(e),new sn(new H(1,0,0),A).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const s=this.facePlane,o=e[r],a=s.normal.dot(o.normal);if(Math.abs(a)>.99)return this;const l=sC[r];if(Math.abs(a)<.01){l.copy(o);continue}l.normal.crossVectors(s.normal,o.normal).normalize().cross(s.normal).negate();const A=1-a*a,h=(s.constant-o.constant*a)/A,d=(o.constant-s.constant*a)/A;Iw.copy(s.normal).multiplyScalar(h).addScaledVector(o.normal,d),l.constant=-Iw.dot(l.normal)}let t=0;const i=this.planes[0].normal;for(;sC[t].normal.dot(i)>QG;)break;for(let r=0;r<4;r++){const s=this.planes[r],o=(r+t)%4;sC[o].distanceToPoint(this.originalCenter)bn(()=>{const r=e.value,s=n==null?void 0:n.value;if(s==null||r==null)return!1;const[o,a]=t.value;for(let h=0;h<4;h++){const[d,f]=bG[h];xw[h].set(d*i.pixelSize*o,f*i.pixelSize*a,0).applyMatrix4(r)}const{planes:l}=s;let A;for(let h=0;h<4;h++){const d=l[h];A=!0;for(let f=0;f<4;f++){const g=xw[f];d.distanceToPoint(g)>=0&&(A=!1)}if(A)return!0}return!1}),[e,n,i,t])}function PG(n,e,t,i,r,s){return k.useMemo(()=>bn(()=>{const o=n.value;if(o==null||i.value===Gi.Overflow.Visible)return s==null?void 0:s.value;const[a,l]=e.value,[A,h,d,f]=t.value,g=new RG(o,(h-f)*r.pixelSize/2,(A-d)*r.pixelSize/2,(a-f-h)*r.pixelSize,(l-A-d)*r.pixelSize);return(s==null?void 0:s.value)!=null&&g.min(s.value),g}),[n,e,t,r,i,s])}const w1=new sn(new H(-1,0,0),Number.MAX_SAFE_INTEGER),bg=new Float32Array(16);for(let n=0;n<4;n++)w1.normal.toArray(bg,n*4),bg[n*4+3]=w1.constant;function od(n,e){const t=k.useMemo(()=>[new sn,new sn,new sn,new sn],[]);return jr(()=>{var s;const i=e.current;if(i==null)return;const r=(s=n==null?void 0:n.value)==null?void 0:s.planes;if(r==null){for(let o=0;o<4;o++)t[o].copy(w1);return}for(let o=0;o<4;o++)t[o].copy(r[o]).applyMatrix4(i.matrixWorld)}),t}class LG{constructor(e,t){be(this,"glyphInfoMap",new Map);be(this,"kerningMap",new Map);be(this,"questionmarkGlyphInfo");be(this,"pageWidth");be(this,"pageHeight");be(this,"distanceRange");this.page=t;const{scaleW:i,scaleH:r,lineHeight:s}=e.common;this.pageWidth=i,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const l of e.chars)l.uvX=l.x/i,l.uvY=l.y/r,l.uvWidth=l.width/i,l.uvHeight=l.height/r,l.width/=o,l.height/=o,l.xadvance/=o,l.xoffset/=o,l.yoffset-=s-o,l.yoffset/=o,this.glyphInfoMap.set(l.char,l);for(const{first:l,second:A,amount:h}of e.kernings)this.kerningMap.set(`${l}/${A}`,h/o);const a=this.glyphInfoMap.get("?");if(a==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=a}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` +`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,t){return this.kerningMap.get(`${e}/${t}`)??0}}function NG(n,e,t){e[t+0]=n.uvX,e[t+1]=n.uvY+n.uvHeight,e[t+2]=n.uvWidth,e[t+3]=-n.uvHeight}const Bw=new ht,UG=new ht;class FG{constructor(e,t,i,r,s){be(this,"index");be(this,"hidden",!0);be(this,"glyphInfo");be(this,"x",0);be(this,"y",0);be(this,"fontSize",0);be(this,"pixelSize",0);this.group=e,this.baseMatrix=t,this.color=i,this.opacity=r,this.clippingRect=s}getX(e){return this.glyphInfo==null?this.x:this.x+e*this.glyphInfo.width*this.fontSize}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const t=this.index*16,{instanceClipping:i}=this.group;this.clippingRect==null?i.set(bg,t):this.clippingRect.toArray(i.array,t),i.addUpdateRange(t,16),i.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&_1(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:t}=this.group,i=this.index*4+3;t.array[i]=e,t.addUpdateRange(i,1),t.needsUpdate=!0}updateGlyphAndTransformation(e,t,i,r,s){this.glyphInfo===e&&this.x===t&&this.y===i&&this.fontSize===r&&this.pixelSize===s||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=t,this.y=i,this.fontSize=r,this.pixelSize=s,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:t}=this.group;NG(this.glyphInfo,t.array,e),t.addUpdateRange(e,4),t.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:t}=this.group;t.addUpdateRange(e,16),Bw.makeTranslation(this.x*this.pixelSize,this.y*this.pixelSize,0).multiply(UG.makeScale(this.fontSize*this.glyphInfo.width*this.pixelSize,this.fontSize*this.glyphInfo.height*this.pixelSize,1)).premultiply(this.baseMatrix),Bw.toArray(t.array,e),t.needsUpdate=!0}}function Sw(n,e,t,i){return((i==null?0:n.getKerning(i,t.id))+t.xoffset)*e}function oC(n,e,t){return(((t==null?void 0:t.yoffset)??0)+(e-1)/2)*n}function Gh(n,e,t){return e.xadvance*n+t}function dp(n,e){return n*e}function M1(n,{lineHeight:e,fontSize:t}){return Math.max(n,1)*t*e}const kG=[];class OG{constructor(e,t,i,r,s,o,a,l,A,h){be(this,"glyphLines",[]);be(this,"lastLayout");be(this,"unsubscribeInitialList",[]);be(this,"unsubscribeShowList",[]);be(this,"opacity",1);be(this,"color",16777215);this.group=e,this.getAlignmentProperties=t,this.getAppearanceProperties=i,this.layoutSignal=r,this.matrix=s,this.parentClippingRect=a,this.selectionRange=l,this.selectionBoxes=A,this.caretPosition=h,this.unsubscribeInitialList=[qt(()=>{const d=i.value;if(d==null||(o==null?void 0:o.value)===!0||(d("opacity")??1)<.01){this.hide();return}this.show()}),qt(()=>this.updateSelectionBoxes(this.lastLayout,l==null?void 0:l.value,iC(()=>{var d;return((d=t.value)==null?void 0:d.call(t,"verticalAlign"))??"top"}),iC(()=>{var d;return((d=t.value)==null?void 0:d.call(t,"horizontalAlign"))??"left"})))]}getCharIndex(e,t){const i=iC(()=>{var d,f;return((f=(d=this.getAlignmentProperties).value)==null?void 0:f.call(d,"verticalAlign"))??"top"}),r=this.lastLayout;if(r==null)return 0;t-=-fp(r,i);const s=Math.floor(t/-dp(r.lineHeight,r.fontSize)),o=r.lines;if(s<0||o.length===0)return 0;if(s>=o.length){const d=o[o.length-1];return d.charIndexOffset+d.charLength+1}const a=o[s],l=r.font.getGlyphInfo(" ").xadvance*r.fontSize,A=this.glyphLines[s];let h=A.length;for(let d=0;d=d.charIndexOffset+d.charLength)continue;const f=this.glyphLines[h][Math.max(i-d.charIndexOffset,0)];return{lineIndex:h,x:this.getGlyphX(f,r?0:1,s)}}const l=e[a-1];if(l.charLength===0)return{lineIndex:a-1,x:_w(t,l.nonWhitespaceWidth,o)-t/2};const A=this.glyphLines[a-1][l.charLength-1];return{lineIndex:a-1,x:this.getGlyphX(A,1,s)}}getGlyphX(e,t,i){return typeof e=="number"?e+t*i:e.getX(t)}show(){this.unsubscribeShowList.length>0||(El(this.glyphLines,e=>e.show()),this.unsubscribeShowList.push(qt(()=>{const e=this.matrix.value;e!=null&&El(this.glyphLines,t=>t.updateBaseMatrix(e))}),qt(()=>{var t;const e=(t=this.parentClippingRect)==null?void 0:t.value;El(this.glyphLines,i=>i.updateClippingRect(e))}),qt(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.color=e("color")??16777215;El(this.glyphLines,i=>i.updateColor(t))}),qt(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.opacity=e("opacity")??1;El(this.glyphLines,i=>i.updateOpacity(t))}),qt(()=>{var v,C;const e=this.layoutSignal.value,t=this.getAlignmentProperties.value;if(e==null||t==null)return;const{text:i,font:r,lines:s,letterSpacing:o=0,fontSize:a=16,lineHeight:l=1.2,availableWidth:A}=e,h=t("verticalAlign")??"top",d=t("horizontalAlign")??"left";let f=fp(e,h)-e.availableHeight/2;const g=s.length,E=this.group.pixelSize;for(let p=0;pR+B){K=ne.id;const ee=U+Sw(r,a,ne,K);typeof w[J]=="number"?w[J]=U:w.splice(J,0,ee),U+=T+Gh(a,ne,o);continue}let ue=w[J];for(;Jp.hide(),g),this.glyphLines.length=g,this.lastLayout=e,this.updateSelectionBoxes(e,(C=this.selectionRange)==null?void 0:C.peek(),h,d)})))}hide(){const e=this.unsubscribeShowList.length;if(e!==0){for(let t=0;tt.hide())}}destroy(){this.hide(),this.glyphLines.length=0;const e=this.unsubscribeInitialList.length;for(let t=0;t{t.uniforms.fontPage={value:e.page},t.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},t.uniforms.distanceRange={value:e.distanceRange},t.uniforms.v_weight={value:.3},t.vertexShader=`attribute vec4 instanceUVOffset; varying vec2 fontUv; attribute vec4 instanceRGBA; varying vec4 rgba; @@ -3882,14 +3882,15 @@ No matching component was found for: } diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); diffuseColor *= rgba; - `)}}}const x1=Symbol("camera-distance-key"),B1=Symbol("order-info-key");function QG(n,e){if(n.groupOrder!==e.groupOrder)return n.groupOrder-e.groupOrder;if(n.renderOrder!==e.renderOrder)return n.renderOrder-e.renderOrder;const t=n.object[x1],i=e.object[x1];return t==null||i==null?n.z!==e.z?e.z-n.z:n.id-e.id:t===i?TG(n.object[B1],e.object[B1]):i.current-t.current}function RG(n){n.setTransparentSort(QG)}const Wi={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function TG(n,e){let t=n.majorIndex-e.majorIndex;return t!=0||(t=n.elementType-e.elementType,t!=0)?t:n.minorIndex-e.minorIndex}const oD=H.createContext(null),DG=oD.Provider;function _r(n,e,t,i){const r=i??H.useContext(oD),s=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return H.useMemo(()=>{let a,l;return r==null?(a=0,l=0):n>r.elementType?(a=r.majorIndex,l=0):n!=r.elementType||!bG(t,r.instancedGroupDependencies)?(a=r.majorIndex+1,l=0):(a=r.majorIndex,l=r.minorIndex+1),s>0&&(a+=s,l=0),l+=o,{instancedGroupDependencies:t,elementType:n,majorIndex:a,minorIndex:l}},[s,o,r,n,t])}function bG(n,e){if(n===e)return!0;if(n==null||e==null)return!1;let t=0;for(const i in n){if(n[i]!=e[i])return!1;++t}return t===Object.keys(e).length}function ql(n,e,t){return n[x1]=e,n[B1]=t,n}class PG extends Hr{constructor(t,i,r,s){super();Pe(this,"instanceMatrix");Pe(this,"instanceUV");Pe(this,"instanceRGBA");Pe(this,"instanceClipping");Pe(this,"glyphs",[]);Pe(this,"requestedGlyphs",[]);Pe(this,"holeIndicies",[]);Pe(this,"mesh");Pe(this,"material");Pe(this,"timeTillDecimate");this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.material=new MG(t)}requestActivate(t){const i=this.holeIndicies.shift();if(i!=null){this.glyphs[i]=t,t.activate(i);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(t);return}const r=this.mesh.count;this.glyphs[r]=t,t.activate(r),this.mesh.count+=1}delete(t){if(t.index==null){const s=this.requestedGlyphs.indexOf(t);if(s===-1)return;this.requestedGlyphs.splice(s,1);return}const i=this.requestedGlyphs.shift();if(i!=null){i.activate(t.index),this.glyphs[t.index]=i,t.index=void 0;return}if(t.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,t.index=void 0;return}const r=t.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(t.index),this.glyphs[t.index]=void 0,t.index=void 0}onFrame(t){var a;const i=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(i===0){this.visible=!1;return}this.visible=!0;const r=((a=this.instanceMatrix)==null?void 0:a.count)??0;if(i0)&&i<=r)return;this.timeTillDecimate=void 0,this.resize(i);const s=this.mesh.count,o=this.requestedGlyphs.length;for(let l=0;lf-g);const A=this.holeIndicies.length;let h=0,d=0;for(;d0)for(let f=this.holeIndicies[0];f{for(const o of r)o(s);eC.set(n,s)}).catch(console.error)}async function UG(n,e){const t=await(await fetch(n)).json();if(t.pages.length!==1)throw new Error("only supporting exactly 1 page");const i=await NG.loadAsync(new URL(t.pages[0],n).href);return i.anisotropy=e.capabilities.getMaxAnisotropy(),i.flipY=!1,new CG(t,i)}const FG=({text:n,fontSize:e,font:t,letterSpacing:i},r,s)=>{let o={start:s,end:s,whitespaces:0,width:0},a=s,l=0,A=0;for(;ar)break;l+=d,++a,h===" "?A+=1:(o.width=l,o.end=a,o.whitespaces=A)}return o},kG=({text:n,fontSize:e,font:t,letterSpacing:i},r,s)=>{let o={start:s,end:s,whitespaces:0,width:0},a=0,l=0,A=s;for(;A{let o={start:s,end:s,whitespaces:0,width:0},a=0,l=0,A=s;for(;A0&&a+d>r)break;if(++A,a+=d,h===" "){l+=1;continue}const f=n[A];f!=" "&&f!=` -`&&Anew Map,[]),r=H.useCallback((s,o)=>{let a=i.get(o);a==null&&i.set(o,a=new Map);let l=a==null?void 0:a.get(s);return l==null&&(a.set(s,l=new PG(o,n,e,{majorIndex:s,elementType:Wi.Text,minorIndex:0})),t.add(l)),l},[n,e,t]);return jr((s,o)=>{for(const a of i.values())for(const l of a.values())l.onFrame(o)}),r}const WG=H.createContext(null),YG={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},S1={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},XG=["horizontalAlign","verticalAlign"],JG=["color","opacity"],jG=["fontSize","letterSpacing","lineHeight","wordBreak"];function KG(n,e,t,i,r,s,o){const a=H.useContext(lD),l=ZG(n),A=H.useMemo(()=>An(e),[]);A.value=e;const h=H.useRef(void 0),d=tH(n,l,A,h),f=ds(n,XG),g=ds(n,JG),E=H.useMemo(()=>An(void 0),[]);return H.useEffect(()=>i.addLayoutChangeListener(()=>{const v=h.current;if(v==null)return;const{size:C,paddingInset:p,borderInset:y}=i,[I,B]=C.value,[R,w,T,U]=p.value,[K,M,P,q]=y.value,ge=I-w-U-M-q,J=B-R-T-K-P;E.value=HG(v,ge,J)}),[i]),Di(()=>{const v=l.value;if(v==null)return;const C=new _G(a(o.majorIndex,v),f,g,E,t,r,s);return()=>C.destroy()},[a,t,i,r,s,o.majorIndex]),d}const qG=["fontFamily","fontWeight"];function ZG(n){const e=H.useMemo(()=>An(void 0),[]),t=H.useContext(WG)??YG,i=ds(n,qG),r=Im(({gl:s})=>s);return Di(()=>{const s=i.value;if(s==null)return;let o=s("fontWeight")??"normal";typeof o=="string"&&(o=S1[o]);let a=s("fontFamily");a==null&&(a=Object.keys(t)[0]);const l=$G(t[a],o);let A=!1;return LG(l,r,h=>A?void 0:e.value=h),()=>A=!0},[t,r]),e}function $G(n,e){let t=1/0,i;for(const r in n){const s=Math.abs(e-eH(r));if(s===0)return n[r];s$n(()=>{const o=e.value,a=r.value;if(o==null||a==null)return;const l=t.value,A=Array.isArray(l)?l.map(E=>y1(E)).join(""):y1(l),h=a("letterSpacing")??0,d=a("lineHeight")??1.2,f=a("fontSize")??16,g=a("wordBreak")??"break-word";return(E,v)=>{const C=v===ki.MeasureMode.Undefined?void 0:E;return GG(i.current={font:o,fontSize:f,letterSpacing:h,lineHeight:d,text:A,wordBreak:g},C)}}),[e,r,i,t])}const zc={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},cD=Object.keys(zc),nH=cD.length,uD=H.createContext(null),iH=uD.Provider;function Pa(n,e,t){const i=t??H.useContext(uD),r=H.useMemo(()=>({sm:$o(()=>i.value[0]>zc.sm),md:$o(()=>i.value[0]>zc.md),lg:$o(()=>i.value[0]>zc.lg),xl:$o(()=>i.value[0]>zc.xl),"2xl":$o(()=>i.value[0]>zc["2xl"])}),[i]);rd(e,s=>{for(let o=0;oe.createChild(n),[n,e]);return H.useEffect(()=>(e.addChild(t),()=>{e.removeChild(t),t.destroy()}),[e,t]),t}function sH(){let n=H.useRef(void 0);return jr(()=>{if(n.current==null)return;const e=n.current;n.current=void 0,e.calculateLayout()}),H.useCallback(e=>{n.current!=null||e.yogaNode==null||(n.current=e)},[])}const wI=AD.Provider,ws=new nn,dp=new G,oH=[new nn().setFromNormalAndCoplanarPoint(new G(1,0,0),new G(-.5,0,0)),new nn().setFromNormalAndCoplanarPoint(new G(-1,0,0),new G(.5,0,0)),new nn().setFromNormalAndCoplanarPoint(new G(0,1,0),new G(0,-.5,0)),new nn().setFromNormalAndCoplanarPoint(new G(0,-1,0),new G(0,.5,0))];function hD(n){return(e,t)=>{const i=n.matrixWorld;if(ws.constant=0,ws.normal.set(0,0,1),ws.applyMatrix4(i),ws.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(ws,dp)==null)return;const r=ws.normal.clone();for(let s=0;s<4;s++){const o=oH[s];if(ws.copy(o).applyMatrix4(i),ws.distanceToPoint(dp)<0)return}t.push({distance:dp.distanceTo(e.ray.origin),object:n,point:dp.clone(),normal:r})}}function Lu(n,e,t,i,r){return(s,o)=>{var d;const a=t.current;if(a==null)return;const l=o.length;e.call(n,s,o);const A=(d=i==null?void 0:i.value)==null?void 0:d.planes,h=a.matrixWorld;e:for(let f=o.length-1;f>=l;f--){const g=o[f];if(g.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,A!=null){for(let E=0;E<4;E++)if(ws.copy(A[E]).applyMatrix4(h),ws.distanceToPoint(g.point)<0){o.splice(f,1);continue e}}}}}function dD(n,e){for(;e>=n.length;){let t=0,i=0;if(n.length>0){const r=n[n.length-1];t+=r.offset+r.elements.length,i=Math.min(0,r.missingSpace),r.missingSpace-=i}n.push({add:[],missingSpace:i,offset:t,elements:[]})}}function aH(n,e,t){dD(n,0);const i=n[n.length-1];i.missingSpace+=e-t}function lH(n,e,t,i){dD(n,e);const r=n[e];return r.missingSpace+=1,r.missingSpace<=0?(i(t,r,r.elements.length),r.elements.push(t),!1):(r.add.push(t),!0)}function cH(n,e,t,i,r,s,o,a){if(e>=n.length)throw new Error(`no bucket at index ${e}`);const l=n[e];l.missingSpace-=1;const A=l.add.indexOf(t);if(A!=-1)return l.add.splice(A,1),!1;if(i==null||i>=l.elements.length)throw new Error(`no element at index ${i}`);if(l.add.length>0){const g=l.add.shift();return l.elements[i]=g,r(g,l,i),!1}const h=l.offset,d=l.elements.length-1;if(d!=i){const g=h+d,E=h+i;a(E,g,g+1);const v=l.elements[d];l.elements[i]=v,o(v,i)}if(s(h+d),l.elements.length-=1,e0;){const g=n[e-1];g.missingSpace+=f.missingSpace,f=n[--e]}return n.length=e+1,!1}function uH(n,e,t){let i=n.length,r=-1;for(let o=0;o0&&(r=o);const l=o===i-1;if(!l&&a.missingSpace===0)continue;const A=a.missingSpace<0;for(let h=o-1;h>=0;h--){const d=n[h];if(d.missingSpace===0)continue;const f=d.missingSpace<0;if(f&&(l||A)){gw(n,t,h,o,Math.abs(d.missingSpace));continue}if(!A&&!f)continue;const g=Math.min(Math.abs(d.missingSpace),Math.abs(a.missingSpace));A?AH(n,t,h,o,g):gw(n,t,h,o,g)}}const s=n[r];for(let o=r+1;oh>0)&&(i==null||i>0),[a,l]=e.value;return!(a>0&&l>0&&(r==null||r>0)&&s!=null)&&!o?!1:t==null?!0:!t.value}function LA(n,e,t,i,r){n[e]=hH(n[e],t,MI(Math.ceil((i??0)/r*100),0,49))}const fp=new je,gD=new je(-1,-1,-1),mw={backgroundColor:(n,e)=>(Array.isArray(e)?fp.setRGB(...e):fp.set(e??gD)).toArray(n,4),borderBottomLeftRadius:(n,e,t)=>LA(n,7,0,e,t.value[1]),borderBottomRightRadius:(n,e,t)=>LA(n,7,1,e,t.value[1]),borderTopRightRadius:(n,e,t)=>LA(n,7,2,e,t.value[1]),borderTopLeftRadius:(n,e,t)=>LA(n,7,3,e,t.value[1]),borderColor:(n,e)=>(Array.isArray(e)?fp.setRGB(...e):fp.set(e??16777215)).toArray(n,8),borderBend:(n,e)=>n[11]=e??0,borderOpacity:(n,e)=>n[12]=e??1,backgroundOpacity:(n,e)=>n[15]=e??-1},mD=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],dH=["borderOpacity","backgroundColor","backgroundOpacity"];class fH{constructor(e,t,i){Pe(this,"data",new Float32Array(16));Pe(this,"unsubscribeList",[]);Pe(this,"unsubscribe");Pe(this,"visible",!1);Pe(this,"materials",[]);Pe(this,"active",An(!1));Pe(this,"getProperty",An(void 0));this.size=e,this.size=e,this.unsubscribe=cn(()=>{const r=this.getProperty.value,s=r!=null&&pD(t,e,i,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=s,!s){this.deactivate();return}this.activate(e,t)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return dH.includes(e)}hasImmediateProperty(e){return e in mw}setProperty(e,t){const i=mw[e];i(this.data,t,this.size)}activate(e,t){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(mD),this.unsubscribeList.push(cn(()=>this.data.set(e.value,13)),cn(()=>this.data.set(t.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let t=0;t{i.call(t,r,s),e.type==="normal"&&(r.uniforms.data={value:e.data}),mH(r,e.type==="instanced")},t}class CD extends im{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),vD(e,this.info.type==="instanced")}}class yD extends nm{constructor(e){super({depthPacking:Hv}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),vD(e,this.info.type==="instanced")}}const pH=new yD({type:"instanced"}),gH=new CD({type:"instanced"});function vD(n,e){ID(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",`#include - ${xD(e,void 0)} - `)}function ID(n,e){n.vertexShader=n.vertexShader.replace("#include ",` #include + `)}}}const Q1=Symbol("camera-distance-key"),R1=Symbol("order-info-key");function zG(n,e){if(n.groupOrder!==e.groupOrder)return n.groupOrder-e.groupOrder;if(n.renderOrder!==e.renderOrder)return n.renderOrder-e.renderOrder;const t=n.object[Q1],i=e.object[Q1];return t==null||i==null?n.z!==e.z?e.z-n.z:n.id-e.id:t===i?WG(n.object[R1],e.object[R1]):i.current-t.current}function VG(n){n.setTransparentSort(zG)}const di={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function WG(n,e){let t=n.majorIndex-e.majorIndex;return t!=0||(t=n.elementType-e.elementType,t!=0)?t:n.minorIndex-e.minorIndex}const vD=k.createContext(void 0),YG=vD.Provider;function Li(n,e,t,i){const r=i??k.useContext(vD),s=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return k.useMemo(()=>{let a,l;return r==null?(a=0,l=0):n>r.elementType?(a=r.majorIndex,l=0):n!=r.elementType||!XG(t,r.instancedGroupDependencies)?(a=r.majorIndex+1,l=0):(a=r.majorIndex,l=r.minorIndex+1),s>0&&(a+=s,l=0),l+=o,{instancedGroupDependencies:t,elementType:n,majorIndex:a,minorIndex:l}},[s,o,r,n,t])}function XG(n,e){if(n===e)return!0;if(n==null||e==null)return!1;let t=0;for(const i in n){if(n[i]!=e[i])return!1;++t}return t===Object.keys(e).length}function rc(n,e,t){return n[Q1]=e,n[R1]=t,n}class JG extends Hr{constructor(t,i,r,s){super();be(this,"instanceMatrix");be(this,"instanceUV");be(this,"instanceRGBA");be(this,"instanceClipping");be(this,"glyphs",[]);be(this,"requestedGlyphs",[]);be(this,"holeIndicies",[]);be(this,"mesh");be(this,"material");be(this,"timeTillDecimate");this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.material=new HG(t)}requestActivate(t){const i=this.holeIndicies.shift();if(i!=null){this.glyphs[i]=t,t.activate(i);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(t);return}const r=this.mesh.count;this.glyphs[r]=t,t.activate(r),this.mesh.count+=1}delete(t){if(t.index==null){const s=this.requestedGlyphs.indexOf(t);if(s===-1)return;this.requestedGlyphs.splice(s,1);return}const i=this.requestedGlyphs.shift();if(i!=null){i.activate(t.index),this.glyphs[t.index]=i,t.index=void 0;return}if(t.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,t.index=void 0;return}const r=t.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(t.index),this.glyphs[t.index]=void 0,t.index=void 0}onFrame(t){var a;const i=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(i===0){this.visible=!1;return}this.visible=!0;const r=((a=this.instanceMatrix)==null?void 0:a.count)??0;if(i0)&&i<=r)return;this.timeTillDecimate=void 0,this.resize(i);const s=this.mesh.count,o=this.requestedGlyphs.length;for(let l=0;lf-g);const A=this.holeIndicies.length;let h=0,d=0;for(;d0)for(let f=this.holeIndicies[0];f{for(const o of r)o(s);aC.set(n,s)}).catch(console.error)}async function qG(n,e){const t=await(await fetch(n)).json();if(t.pages.length!==1)throw new Error("only supporting exactly 1 page");const i=await jG.loadAsync(new URL(t.pages[0],n).href);return i.anisotropy=e.capabilities.getMaxAnisotropy(),i.flipY=!1,new LG(t,i)}const ZG=({text:n,fontSize:e,font:t,letterSpacing:i},r,s,o)=>{s=DI(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let l=0,A=0;for(;sr)break;o.nonWhitespaceCharLength=s-a+1,o.nonWhitespaceWidth=l,o.whitespacesBetween=A}o.charLength=s-a},$G=({text:n,fontSize:e,font:t,letterSpacing:i},r,s,o)=>{s=DI(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let l=0,A=0;for(;s{s=DI(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let l=0,A=0;for(;s0&&r!=null&&l>r)break;const d=n[s+1];(d===" "||d===` +`||d==null)&&(o.charLength=s-a+1,o.nonWhitespaceCharLength=o.charLength,o.nonWhitespaceWidth=l,o.whitespacesBetween=A)}};function DI(n,e){const t=n.length;for(;n[e]===" "&&enew Map,[]),r=k.useCallback((s,o)=>{let a=i.get(o);a==null&&i.set(o,a=new Map);let l=a==null?void 0:a.get(s);return l==null&&(a.set(s,l=new JG(o,n,e,{majorIndex:s,elementType:di.Text,minorIndex:0})),t.add(l)),l},[n,e,t]);return jr((s,o)=>{for(const a of i.values())for(const l of a.values())l.onFrame(o)}),r}const sH=k.createContext(null),oH={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},T1={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},aH=["horizontalAlign","verticalAlign"],lH=["color","opacity"],cH=["fontSize","letterSpacing","lineHeight","wordBreak"];function BD(n,e,t,i,r,s,o,a,l,A,h){const d=Li(di.Text,void 0,void 0,o),f=k.useContext(xD);if(f==null)throw new Error("Can only be used inside a component.");const g=AH(n),E=k.useMemo(()=>Ht(e),[]);E.value=e;const v=k.useRef(void 0),C=fH(n,g,E,v),p=ps(n,aH),y=ps(n,lH),I=k.useMemo(()=>Ht(void 0),[]);return k.useEffect(()=>i.addLayoutChangeListener(()=>{const B=v.current;if(B==null)return;const{size:R,paddingInset:M,borderInset:T}=i,[U,K]=R.value,[w,P,q,fe]=M.value,[J,re,ne,ue]=T.value,F=U-P-fe-re-ue,ee=K-w-q-J-ne;I.value=nH(B,F,ee)}),[i]),Ci(()=>{const B=g.value;if(B==null)return;const R=new OG(f(d.majorIndex,B),p,y,I,t,r,s,a,l,A);return h!=null&&(h.current=R),()=>R.destroy()},[f,t,i,r,s,d.majorIndex,l,h]),C}const uH=["fontFamily","fontWeight"];function AH(n){const e=k.useMemo(()=>Ht(void 0),[]),t=k.useContext(sH)??oH,i=ps(n,uH),r=_m(({gl:s})=>s);return Ci(()=>{const s=i.value;if(s==null)return;let o=s("fontWeight")??"normal";typeof o=="string"&&(o=T1[o]);let a=s("fontFamily");a==null&&(a=Object.keys(t)[0]);const l=hH(t[a],o);let A=!1;return KG(l,r,h=>A?void 0:e.value=h),()=>A=!0},[t,r]),e}function hH(n,e){let t=1/0,i;for(const r in n){const s=Math.abs(e-dH(r));if(s===0)return n[r];sbn(()=>{const o=e.value,a=r.value;if(o==null||a==null)return;const l=t.value,A={font:o,fontSize:a("fontSize")??16,letterSpacing:a("letterSpacing")??0,lineHeight:a("lineHeight")??1.2,text:Array.isArray(l)?l.map(h=>Dg(h)).join(""):Dg(l),wordBreak:a("wordBreak")??"break-word"};return i.current=A,(h,d)=>tH(A,d===Gi.MeasureMode.Undefined?void 0:h)}),[e,r,i,t])}const Yc={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},SD=Object.keys(Yc),pH=SD.length,_D=k.createContext(void 0),gH=_D.Provider;function Do(n,e,t){const i=t??k.useContext(_D);if(i==null)throw new Error("Can only be used inside a component.");const r=k.useMemo(()=>({sm:Ao(()=>i.value[0]>Yc.sm),md:Ao(()=>i.value[0]>Yc.md),lg:Ao(()=>i.value[0]>Yc.lg),xl:Ao(()=>i.value[0]>Yc.xl),"2xl":Ao(()=>i.value[0]>Yc["2xl"])}),[i]);ku(e,s=>{for(let o=0;oe.createChild(n),[n,e]);return k.useEffect(()=>(e.addChild(t),()=>{e.removeChild(t),t.destroy()}),[e,t]),t}function EH(){let n=k.useRef(void 0);return jr(()=>{if(n.current==null)return;const e=n.current;n.current=void 0,e.calculateLayout()}),k.useCallback(e=>{n.current!=null||e.yogaNode==null||(n.current=e)},[])}const bI=wD.Provider,Qs=new sn,mp=new H,CH=[new sn().setFromNormalAndCoplanarPoint(new H(1,0,0),new H(-.5,0,0)),new sn().setFromNormalAndCoplanarPoint(new H(-1,0,0),new H(.5,0,0)),new sn().setFromNormalAndCoplanarPoint(new H(0,1,0),new H(0,-.5,0)),new sn().setFromNormalAndCoplanarPoint(new H(0,-1,0),new H(0,.5,0))],Cl=[0,0,0,0];function MD(n){return(e,t)=>{const i=n.matrixWorld;if(Qs.constant=0,Qs.normal.set(0,0,1),Qs.applyMatrix4(i),Qs.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(Qs,mp)==null)return;const r=Qs.normal.clone();for(let s=0;s<4;s++){const o=CH[s];if(Qs.copy(o).applyMatrix4(i),(Cl[s]=Qs.distanceToPoint(mp))<0)return}t.push({distance:mp.distanceTo(e.ray.origin),object:n,point:mp.clone(),uv:new Be(Cl[0]/(Cl[0]+Cl[1]),Cl[3]/(Cl[2]+Cl[3])),normal:r})}}function Ou(n,e,t,i,r){return(s,o)=>{var d;const a=t.current;if(a==null)return;const l=o.length;e.call(n,s,o);const A=(d=i==null?void 0:i.value)==null?void 0:d.planes,h=a.matrixWorld;e:for(let f=o.length-1;f>=l;f--){const g=o[f];if(g.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,A!=null){for(let E=0;E<4;E++)if(Qs.copy(A[E]).applyMatrix4(h),Qs.distanceToPoint(g.point)<0){o.splice(f,1);continue e}}}}}function QD(n,e){for(;e>=n.length;){let t=0,i=0;if(n.length>0){const r=n[n.length-1];t+=r.offset+r.elements.length,i=Math.min(0,r.missingSpace),r.missingSpace-=i}n.push({add:[],missingSpace:i,offset:t,elements:[]})}}function yH(n,e,t){QD(n,0);const i=n[n.length-1];i.missingSpace+=e-t}function vH(n,e,t,i){QD(n,e);const r=n[e];return r.missingSpace+=1,r.missingSpace<=0?(i(t,r,r.elements.length),r.elements.push(t),!1):(r.add.push(t),!0)}function IH(n,e,t,i,r,s,o,a){if(e>=n.length)throw new Error(`no bucket at index ${e}`);const l=n[e];l.missingSpace-=1;const A=l.add.indexOf(t);if(A!=-1)return l.add.splice(A,1),!1;if(i==null||i>=l.elements.length)throw new Error(`no element at index ${i}`);if(l.add.length>0){const g=l.add.shift();return l.elements[i]=g,r(g,l,i),!1}const h=l.offset,d=l.elements.length-1;if(d!=i){const g=h+d,E=h+i;a(E,g,g+1);const v=l.elements[d];l.elements[i]=v,o(v,i)}if(s(h+d),l.elements.length-=1,e0;){const g=n[e-1];g.missingSpace+=f.missingSpace,f=n[--e]}return n.length=e+1,!1}function xH(n,e,t){let i=n.length,r=-1;for(let o=0;o0&&(r=o);const l=o===i-1;if(!l&&a.missingSpace===0)continue;const A=a.missingSpace<0;for(let h=o-1;h>=0;h--){const d=n[h];if(d.missingSpace===0)continue;const f=d.missingSpace<0;if(f&&(l||A)){Mw(n,t,h,o,Math.abs(d.missingSpace));continue}if(!A&&!f)continue;const g=Math.min(Math.abs(d.missingSpace),Math.abs(a.missingSpace));A?BH(n,t,h,o,g):Mw(n,t,h,o,g)}}const s=n[r];for(let o=r+1;oh>0)&&(i==null||i>0),[a,l]=e.value;return!(a>0&&l>0&&(r==null||r>0)&&s!=null)&&!o?!1:t==null?!0:!t.value}function FA(n,e,t,i,r){n[e]=SH(n[e],t,PI(Math.ceil((i??0)/r*100),0,49))}const Ep=new Ke,DD=new Ke(-1,-1,-1),Qw={backgroundColor:(n,e)=>(Array.isArray(e)?Ep.setRGB(...e):Ep.set(e??DD)).toArray(n,4),borderBottomLeftRadius:(n,e,t)=>FA(n,7,0,e,t.value[1]),borderBottomRightRadius:(n,e,t)=>FA(n,7,1,e,t.value[1]),borderTopRightRadius:(n,e,t)=>FA(n,7,2,e,t.value[1]),borderTopLeftRadius:(n,e,t)=>FA(n,7,3,e,t.value[1]),borderColor:(n,e)=>(Array.isArray(e)?Ep.setRGB(...e):Ep.set(e??16777215)).toArray(n,8),borderBend:(n,e)=>n[11]=e??0,borderOpacity:(n,e)=>n[12]=e??1,backgroundOpacity:(n,e)=>n[15]=e??-1},bD=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],_H=["borderOpacity","backgroundColor","backgroundOpacity"];class wH{constructor(e,t,i){be(this,"data",new Float32Array(16));be(this,"unsubscribeList",[]);be(this,"unsubscribe");be(this,"visible",!1);be(this,"materials",[]);be(this,"active",Ht(!1));be(this,"getProperty",Ht(void 0));this.size=e,this.size=e,this.unsubscribe=qt(()=>{const r=this.getProperty.value,s=r!=null&&TD(t,e,i,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=s,!s){this.deactivate();return}this.activate(e,t)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return _H.includes(e)}hasImmediateProperty(e){return e in Qw}setProperty(e,t){const i=Qw[e];i(this.data,t,this.size)}activate(e,t){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(bD),this.unsubscribeList.push(qt(()=>this.data.set(e.value,13)),qt(()=>this.data.set(t.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let t=0;t{i.call(t,r,s),e.type==="normal"&&(r.uniforms.data={value:e.data}),RH(r,e.type==="instanced")},t}class LD extends am{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),UD(e,this.info.type==="instanced")}}class ND extends om{constructor(e){super({depthPacking:Jv}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),UD(e,this.info.type==="instanced")}}const MH=new ND({type:"instanced"}),QH=new LD({type:"instanced"});function UD(n,e){FD(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",`#include + ${kD(e,void 0)} + `)}function FD(n,e){n.vertexShader=n.vertexShader.replace("#include ",` #include out vec4 borderRadius; ${e?"":"uniform highp mat4 data;"}`),n.vertexShader=n.vertexShader.replace("#include ",` #include highp int packedBorderRadius = int(data[1].w); @@ -4018,7 +4019,7 @@ No matching component was found for: borderWeight = normalize(insideBorder); } - #include `)}function xD(n,e){return`float ddx = fwidth(distance.x); + #include `)}function kD(n,e){return`float ddx = fwidth(distance.x); float outer = smoothstep(-ddx, ddx, distance.x); float ddy = fwidth(distance.y); @@ -4041,8 +4042,8 @@ No matching component was found for: if(outOpacity < 0.01) { discard; - }`}function mH(n,e){ID(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",` #include - ${xD(e,"diffuseColor.a")} + }`}function RH(n,e){FD(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",` #include + ${kD(e,"diffuseColor.a")} diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); diffuseColor.a = outOpacity; `),n.fragmentShader=n.fragmentShader.replace("#include ",` #include @@ -4053,4 +4054,4 @@ No matching component was found for: float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); - `)}class EH extends qt{constructor(t,i,r){const s=fD();super(s);Pe(this,"count",0);Pe(this,"isInstancedMesh",!0);Pe(this,"instanceColor",null);Pe(this,"morphTexture",null);Pe(this,"boundingBox",new ri);Pe(this,"boundingSphere",new Zn);this.instanceMatrix=t,this.frustumCulled=!1,s.attributes.aData=i,s.attributes.aClipping=r,this.customDepthMaterial=pH,this.customDistanceMaterial=gH}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class CH extends Hr{constructor(t,i,r,s,o,a){super();Pe(this,"mesh");Pe(this,"instanceMatrix");Pe(this,"instanceData");Pe(this,"instanceClipping");Pe(this,"buckets",[]);Pe(this,"elementCount",0);Pe(this,"bufferElementSize",0);Pe(this,"timeToNextUpdate");Pe(this,"activateElement",(t,i,r)=>{const s=i.offset+r;this.instanceData.set(mD,16*s),this.instanceData.addUpdateRange(16*s,16),this.instanceData.needsUpdate=!0,t.activate(i,r)});Pe(this,"setElementIndex",(t,i)=>{t.setIndexInBucket(i)});Pe(this,"bufferCopyWithin",(t,i,r)=>{tC(this.instanceMatrix,t,i,r),tC(this.instanceData,t,i,r),tC(this.instanceClipping,t,i,r)});Pe(this,"clearBufferAt",t=>{const i=t*16;this.instanceMatrix.array.fill(0,i,i+16),this.instanceMatrix.addUpdateRange(i,16),this.instanceMatrix.needsUpdate=!0});this.material=t,this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.meshReceiveShadow=o,this.meshCastShadow=a}updateCount(){const t=this.buckets[this.buckets.length-1],i=t.offset+t.elements.length;this.mesh!=null&&(this.mesh.count=i),this.visible=i>0}insert(t,i){if(this.elementCount+=1,!lH(this.buckets,t,i,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(t,i,r){if(this.elementCount-=1,!cH(this.buckets,t,r,i,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(t){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=t,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(t){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,t)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),uH(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const t=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),aH(this.buckets,t,this.bufferElementSize);const i=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&i.set(this.instanceMatrix.array.subarray(0,i.length)),this.instanceMatrix=new Ir(i,16,!1),this.instanceMatrix.setUsage(na);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new Ir(r,16,!1),this.instanceData.setUsage(na);const s=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&s.set(this.instanceClipping.array.subarray(0,s.length)),this.instanceClipping=new Ir(s,16,!1),this.instanceClipping.setUsage(na),this.mesh=new EH(this.instanceMatrix,this.instanceData,this.instanceClipping),ql(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function tC(n,e,t,i){const r=n.itemSize,s=t*r,o=i*r,a=e*r;n.array.copyWithin(a,s,o);const l=o-s;n.addUpdateRange(s,l),n.addUpdateRange(a,l),n.needsUpdate=!0}const Ew={backgroundColor:(n,e,t)=>C1(n.instanceData,e,t??gD,4),borderBottomLeftRadius:(n,e,t,{value:i})=>gp(n.instanceData,e,7,0,t,i[1]),borderBottomRightRadius:(n,e,t,{value:i})=>gp(n.instanceData,e,7,1,t,i[1]),borderTopRightRadius:(n,e,t,{value:i})=>gp(n.instanceData,e,7,2,t,i[1]),borderTopLeftRadius:(n,e,t,{value:i})=>gp(n.instanceData,e,7,3,t,i[1]),borderColor:(n,e,t)=>C1(n.instanceData,e,t??16777215,8),borderBend:(n,e,t)=>nC(n.instanceData,e,11,t??0),borderOpacity:(n,e,t)=>nC(n.instanceData,e,12,t??1),backgroundOpacity:(n,e,t)=>nC(n.instanceData,e,15,t??-1)},yH=["borderOpacity","backgroundColor","backgroundOpacity"],pp=new ht,vH=new ht;class IH{constructor(e,t,i,r,s,o,a,l){Pe(this,"indexInBucket");Pe(this,"bucket");Pe(this,"unsubscribeList",[]);Pe(this,"unsubscribeVisible");Pe(this,"destroyed",!1);Pe(this,"insertedIntoGroup",!1);Pe(this,"active",An(!1));Pe(this,"getProperty",An(void 0));this.group=e,this.matrix=t,this.size=i,this.offset=r,this.borderInset=s,this.clippingRect=o,this.minorIndex=l,this.unsubscribeVisible=cn(()=>{const A=this.getProperty.value;if(A!=null&&pD(s,i,a,A("borderOpacity"),A("backgroundOpacity"),A("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return yH.includes(e)}hasImmediateProperty(e){return e in Ew}setProperty(e,t){const i=this.getIndexInBuffer();i!=null&&Ew[e](this.group,i,t,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,t){this.bucket=e,this.indexInBucket=t,this.active.value=!0,this.unsubscribeList.push(cn(()=>{const i=this.matrix.value;if(i==null)return;const{instanceMatrix:r,pixelSize:s}=this.group,o=this.getIndexInBuffer();if(o==null)return;const a=o*16,[l,A]=this.size.value;if(pp.makeScale(l*s,A*s,1),this.offset!=null){const[h,d]=this.offset.value;pp.premultiply(vH.makeTranslation(h*s,d*s,0))}pp.premultiply(i),pp.toArray(r.array,a),r.addUpdateRange(a,16),r.needsUpdate=!0}),cn(()=>{const[i,r]=this.size.value,{instanceData:s}=this.group,{array:o}=s,a=this.getIndexInBuffer();if(a==null)return;const l=a*16+13;o[l]=i,o[l+1]=r,s.addUpdateRange(l,2),s.needsUpdate=!0}),cn(()=>{const{instanceData:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16+0;i.array.set(this.borderInset.value,s),i.addUpdateRange(s,4),i.needsUpdate=!0}),cn(()=>{var a;const{instanceClipping:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16,o=(a=this.clippingRect)==null?void 0:a.value;o!=null?o.toArray(i.array,s):i.array.set(Mg,s),i.addUpdateRange(s,16),i.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let t=0;te.hasImmediateProperty.bind(e),[e]),a=H.useCallback(l=>{if(!i.current){r.current=l;return}Cw(l,r.current,s.current,e),r.current=l},[e]);Di(()=>{if(i.current=e.active.value,!i.current){yw(s.current),s.current={};return}return Cw(r.current,xH,s.current,e),()=>{yw(s.current),s.current={}}},[e]),JT(n,o,a,t)}function Cw(n,e,t,i){var r,s;for(const o in n){const a=n[o];if(o in e){const l=e[o];if(delete e[o],jT(a,l))continue;(r=t[o])==null||r.call(t)}t[o]=cn(()=>{const l=f1(a);i.setProperty(o,l)})}for(const o in e)(s=t[o])==null||s.call(t),delete t[o],f1(e[o])!==void 0&&i.setProperty(o,void 0)}function yw(n){for(const e in n)n[e]()}function Na({handlers:n,hoverHandlers:e,activeHandlers:t,matrix:i,children:r,groupRef:s}){return H.useEffect(()=>{const o=s.current;if(o!=null)return cn(()=>i.value!=null&&o.matrix.copy(i.value))},[s,i]),b.jsx("group",{ref:s,onPointerOut:SA(n.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:SA(n.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:SA(n.onPointerUp,t==null?void 0:t.onPointerUp),onPointerDown:SA(n.onPointerDown,t==null?void 0:t.onPointerDown),onPointerLeave:SA(n.onPointerLeave,t==null?void 0:t.onPointerLeave),onPointerMove:n.onPointerMove,onWheel:n.onWheel,onClick:n.onClick,onContextMenu:n.onContextMenu,onDoubleClick:n.onDoubleClick,onPointerCancel:n.onPointerCancel,onPointerEnter:n.onPointerEnter,onPointerMissed:n.onPointerMissed,matrixAutoUpdate:!1,children:r})}function SA(n,e){return n==null?e:e==null?n:t=>{e(t),!t.stopped&&n(t)}}function Uu(n,e,t,i){const r=So(),s=H.useMemo(()=>{const o=new qt(QI);return o.matrixAutoUpdate=!1,o.raycast=Lu(o,hD(o),i,r,t),o.visible=!1,o},[r,t,i]);return Di(()=>{const[o,a]=n.value;s.scale.set(o*e.pixelSize,a*e.pixelSize,1),s.updateMatrix()},[n,e]),s}const BD=H.createContext(null);function BH(n,e,t,i,r,s,o){const{materials:a,setter:l}=H.useMemo(()=>{const A=new fH(e,t,i),h={data:A.data,type:"normal"},d=ED(r??ar,h),f=new yD(h),g=new CD(h);return d.clippingPlanes=s,f.clippingPlanes=s,g.clippingPlanes=s,{materials:[d,f,g],setter:A}},[e,t,i,r,s]);return Hs(n,l,o),BI(n,l,o),H.useEffect(()=>()=>l.destroy(),[l]),a}function $l(n=ar,{castShadow:e=!1,receiveShadow:t=!1}){return H.useMemo(()=>({materialClass:n,castShadow:e,receiveShadow:t}),[n,e,t])}function ec(n,e,t,i,r,s,o,a,l,A,h){const d=h??H.useContext(BD),f=H.useMemo(()=>new IH(d(o.majorIndex,l),e,t,i,r,a,s,o.minorIndex),[d,e,t,r,a,s,o,i,l]);H.useEffect(()=>()=>f.destroy(),[f]),Hs(n,f,A),BI(n,f,A)}function SH(n,e,t){const i=H.useMemo(()=>new Map,[]),r=H.useCallback((s,{materialClass:o,receiveShadow:a,castShadow:l})=>{let A=i.get(o);A==null&&i.set(o,A=new Map);const h=(s<<2)+((a?1:0)<<1)+(l?1:0);let d=A.get(h);if(d==null){const f=ED(o,{type:"instanced"});A.set(h,d=new CH(f,n,e,{elementType:Wi.Panel,majorIndex:s,minorIndex:0},a,l)),t.add(d)}return d},[n,i,e,t]);return jr((s,o)=>{for(const a of i.values())for(const l of a.values())l.onFrame(o)}),r}const _H=BD.Provider,_1=[],Jp=[];function wH(n,e){_1.push(n),Jp.push(e),document.body.style.cursor=e}function vw(n){const e=_1.indexOf(n);e!=-1&&(_1.splice(e,1),Jp.splice(e,1),document.body.style.cursor=Jp[Jp.length-1]??"default")}function La(n,e){const t=H.useMemo(()=>An([]),[]),i=H.useMemo(()=>$o(()=>t.value.length>0),[]);let r=!1;if(rd(e,s=>{s.hover!=null&&(r=!0,i(n,s.hover))}),H.useEffect(()=>()=>vw(t),[]),!r&&e.onHoverChange==null&&e.cursor==null){t.value.length=0;return}return{onPointerOver:s=>{t.value=[s.pointerId,...t.value],e.onHoverChange!=null&&t.value.length===1&&e.onHoverChange(!0),e.cursor!=null&&wH(t,e.cursor)},onPointerOut:s=>{t.value=t.value.filter(o=>o!=s.pointerId),e.onHoverChange!=null&&t.value.length===0&&e.onHoverChange(!1),vw(t)}}}function _m(n){return(e,t,i,r)=>{if(i(e)){r(e,t);return}const s=n[e];if(s==null)return;const o=s.length;if(i(s[0]))for(let a=0;aAn([0,0]),[])}function bH(n,e,t){return H.useMemo(()=>$n(()=>{const i=t.value;if(i==null)return;const[r,s]=n.value,{pixelSize:o}=e;return new ht().makeTranslation(-r*o,s*o,0).premultiply(i)}),[n,e,t])}function PH({node:n,scrollPosition:e,children:t}){const i=H.useRef(null);return H.useEffect(()=>cn(()=>{var a,l;const[r,s]=e.value,{pixelSize:o}=n;(a=i.current)==null||a.position.set(-r*o,s*o,0),(l=i.current)==null||l.updateMatrix()}),[n,e]),b.jsx("group",{ref:i,children:t})}function ad({listeners:n,node:e,scrollPosition:t,children:i}){const[r,s]=H.useState(()=>e.scrollable.value.some(d=>d));Di(()=>s(e.scrollable.value.some(d=>d)),[e]);const o=H.useRef(n.onScroll);o.current=n.onScroll;const a=H.useMemo(()=>new Map,[]),l=H.useMemo(()=>new Se,[]),A=H.useCallback((d,f,g,E,v)=>{var P,q;const[C,p]=d==null?[!1,!1]:NH(d.nativeEvent);C&&(f=0),p&&(g=0);const[y,I]=t.value,[B,R]=e.maxScrollPosition.value;let[w,T]=t.value;const[U,K]=((P=e.anyAncestorScrollable)==null?void 0:P.value)??[!1,!1];w=Iw(y,B,f,v&&!U),T=Iw(I,R,g,v&&!K),E!=null&&E>0&&l.set(f,g).divideScalar(E),d!=null&&LH(d.nativeEvent,C||Math.min(y,(B??0)-y)>5,p||Math.min(I,(R??0)-I)>5),!(((q=o.current)==null?void 0:q.call(o,w,T,t,d))===!1||y===w&&I===T)&&(t.value=[w,T])},[e,t,l]);jr((d,f)=>{if(a.size>0)return;let g=0,E=0;const[v,C]=t.value,[p,y]=e.maxScrollPosition.value;g+=w1(v,0,p??0)*-.3,E+=w1(C,0,y??0)*-.3,g+=l.x*f,E+=l.y*f,l.multiplyScalar(.9),Math.abs(l.x)<.01&&(l.x=0),Math.abs(l.y)<.01&&(l.y=0),!(g===0&&E===0)&&A(void 0,g,E,void 0,!0)});const h=H.useRef(null);return r?b.jsx("group",{ref:h,matrixAutoUpdate:!1,onPointerDown:d=>{let f=a.get(d.pointerId);f==null&&a.set(d.pointerId,f={timestamp:0,point:new G}),f.timestamp=performance.now()/1e3,h.current.worldToLocal(f.point.copy(d.point))},onPointerUp:d=>{a.delete(d.pointerId)},onPointerLeave:d=>{a.delete(d.pointerId)},onPointerCancel:d=>{a.delete(d.pointerId)},onContextMenu:d=>d.nativeEvent.preventDefault(),onPointerMove:d=>{const f=a.get(d.pointerId);if(f==null)return;h.current.worldToLocal(rC.copy(d.point)),iC.copy(rC).sub(f.point).divideScalar(e.pixelSize);const g=performance.now()/1e3,E=g-f.timestamp;f.point.copy(rC),f.timestamp=g,!d.defaultPrevented&&A(d,-iC.x,iC.y,E,!0)},onWheel:d=>{d.defaultPrevented||A(d,d.deltaX,d.deltaY,void 0,!1)},children:i}):b.jsx("group",{matrixAutoUpdate:!1,children:i})}const _D=Symbol("was-scrolled");function NH(n){return n[_D]??[!1,!1]}function LH(n,e,t){n[_D]=[e,t]}function Iw(n,e,t,i){if(t===0)return n;const r=w1(n,0,e??0);xw(t)===xw(r)&&(t*=Math.max(0,1-Math.abs(r)/100));let s=n+t;return i&&e!=null?s:MI(s,0,e??0)}function xw(n){return n>=0}function w1(n,e,t){return nt?n-t:0}const Bw=9;function wD(n){return n[Bw].toLowerCase()+n.slice(Bw+1)}const UH=(n,e,t,i)=>{if(n.startsWith("scrollbarBorder")){if(n=wD(n),t(n)){i(n,e);return}MH(n,e,t,i)}},FH=(n,e,t,i)=>{if(n.startsWith("scrollbar")){if(n==="scrollbarOpacity"){i("backgroundOpacity",e);return}if(n==="scrollbarColor"){i("backgroundColor",e);return}if(n=wD(n),t(n)){i(n,e);return}Fa(n,e,t,i)}};function ld(n,e,t,i,r,s,o,a,l){const A=$l(s,{castShadow:!1,receiveShadow:!1}),h=_r(Wi.Panel,void 0,A,a),d=ds(n,kH),f=ds(n,OH,UH),g=H.useMemo(()=>$n(()=>{const C=f.value;return[(C==null?void 0:C("scrollbarBorderTop"))??0,(C==null?void 0:C("scrollbarBorderRight"))??0,(C==null?void 0:C("scrollbarBorderBottom"))??0,(C==null?void 0:C("scrollbarBorderLeft"))??0]}),[f]),E=n.length;Sw(n,0,e,t,i,r,s,o,h,l,d,g),Sw(n,1,e,t,i,r,s,o,h,l,d,g);const v=n.length;for(let C=E;C{const v=$n(()=>{const C=h.value;if(C!=null)return GH(e,C("scrollbarWidth")??10,i.size.value,i.maxScrollPosition.value,i.borderInset.value,t.value)});return[$n(()=>{var C;return((C=v.value)==null?void 0:C.slice(0,2))??[0,0]}),$n(()=>{var C;return((C=v.value)==null?void 0:C.slice(2,4))??[0,0]})]},[e,i,t,h]),E=H.useMemo(()=>({materialClass:o??ar,receiveShadow:!1,castShadow:!1}),[o]);ec(n,r,g,f,d,s,l,a,E,FH,A)}function GH(n,e,t,i,r,s){const o=[0,0,0,0],a=i[n];if(a==null)return o;const l=1-n,A=t[n]-r[l]-r[l+2],h=Math.max(e,A*A/(a+A)),d=A-h,f=s[n];return o[n]=t[n]*.5-h*.5-r[(n+3)%4]-d*MI(f/a,0,1),o[l]=t[l]*.5-e*.5-r[l+1],n===0&&(o[0]*=-1,o[1]*=-1),o[n+2]=h,o[l+2]=e,o}function ka(n,e,t,i){H.useImperativeHandle(n,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:t instanceof qt?t:t.current,scrollPosition:i}),[t,e,i])}function Oa({onSizeChange:n},e){const t=H.useMemo(()=>{if(n==null)return;let i=!0;return cn(()=>{const r=e.value;if(i){i=!1;return}n(...r)})},[n,e]);H.useEffect(()=>t,[t])}function tc({onIsInViewportChange:n},e){const t=H.useMemo(()=>{if(n==null)return;let i=!0;return cn(()=>{const r=!e.value;if(i){i=!1;return}n(r)})},[e,n]);H.useEffect(()=>t,[t])}function nc(n){const e=H.useContext(MD);return H.useMemo(()=>$n(()=>{const t=n.value,i=e.value;if(!(t==null||i==null))return i.clone().multiply(t)}),[n,e])}const MD=H.createContext(null),HH=MD.Provider;function cd({globalMatrix:n,node:e,scrollPosition:t,children:i,orderInfo:r}){const s=So(),o=EG(n,e.size,e.borderInset,e.overflow,e,s),a=bH(t,e,n);return b.jsx(PH,{node:e,scrollPosition:t,children:b.jsx(HH,{value:a,children:b.jsx(wI,{value:e,children:b.jsx(gG,{value:o,children:b.jsx(DG,{value:r,children:i})})})})})}const QD="transformTranslateX",RD="transformTranslateY",TD="transformTranslateZ",DD="transformRotateX",bD="transformRotateY",PD="transformRotateZ",ND="transformScaleX",LD="transformScaleY",UD="transformScaleZ",zH=[QD,RD,TD,DD,bD,PD,ND,LD,UD],VH=new G,WH=new G,mp=new G,sC=new ht,YH=new Tu,XH=new Vn,oC=Math.PI/180;function JH([n,e,t]){return XH.setFromEuler(YH.set(n*oC,e*oC,t*oC))}function Ga(n,e){const t=ds(n,zH,DH);return H.useMemo(()=>$n(()=>{const i=t.value;if(i==null)return;const{pixelSize:r,relativeCenter:s}=e,[o,a]=s.value,l=new ht().makeTranslation(o*r,a*r,0),A=i("transformOriginX")??"center",h=i("transformOriginY")??"center";let d=!0;if(A!="center"||h!="center"){const[v,C]=e.size.value;d=!1,mp.set(-ZT[A]*v*r,-$T[h]*C*r,0),l.multiply(sC.makeTranslation(mp)),mp.negate()}const f=[i(DD)??0,i(bD)??0,i(PD)??0],g=[i(QD)??0,-(i(RD)??0),i(TD)??0],E=[i(ND)??1,i(LD)??1,i(UD)??1];return(g.some(v=>v!=0)||f.some(v=>v!=0)||E.some(v=>v!=1))&&l.multiply(sC.compose(VH.fromArray(g).multiplyScalar(r),JH(f),WH.fromArray(E))),d||l.multiply(sC.makeTranslation(mp)),l}),[t,e])}function Ha(n,e){const t=H.useMemo(()=>An([]),[]),i=H.useMemo(()=>$o(()=>t.value.length>0),[]);let r=!1;if(rd(e,o=>{o.active!=null&&(r=!0,i(n,o.active))}),!r&&e.onActiveChange==null){t.value.length=0;return}const s=o=>{t.value=t.value.filter(a=>a!=o.pointerId),!(e.onActiveChange==null||t.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{t.value=[o.pointerId,...t.value],!(e.onActiveChange==null||t.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:s,onPointerLeave:s}}H.forwardRef((n,e)=>{const t=Ra(),i=H.useRef(null),r=Zl(i);Hs(t,r,Ua);const s=Ga(t,r),o=nc(s),a=So(),l=Kl(a,o,r.size,r);Oa(n,r.size),tc(n,l);const A=$l(n.panelMaterialClass,n),h=_r(Wi.Panel,n.zIndexOffset,A);ec(t,o,r.size,void 0,r.borderInset,l,h,a,A,Fa);const d=H.useRef(null),f=jl(),g=_r(Wi.Object,void 0,void 0,h),E=qH(t,d,f,r.cameraDistance,a,g);Da(t,n),ba(t,n),Pa(t,n);const v=La(t,n),C=Ha(t,n),p=H.useMemo(()=>$n(()=>{const[B,R]=E.value;return B/R}),[E]);(n.keepAspectRatio??!0)&&Us(t,"aspectRatio",p),Ta(t);const y=H.useRef(null);H.useEffect(()=>cn(()=>{const[B,R]=r.size.value,[w,T,U,K]=r.paddingInset.value,[M,P,q,ge]=r.borderInset.value,J=w+M,ce=T+P,se=U+q,de=K+ge,F=B-de-ce,ee=R-J-se,{pixelSize:te}=r,{current:ue}=y;ue==null||ue.position.set((de-ce)*.5*te,(se-J)*.5*te,0);const[,ye,Oe]=E.value;ue==null||ue.scale.set(F*te,ee*te,n.keepAspectRatio?ee*te*Oe/ye:Oe),ue==null||ue.updateMatrix()}),[r,n.keepAspectRatio,E]);const I=Uu(r.size,r,h,f);return ka(e,r,I),b.jsxs(Na,{groupRef:i,matrix:s,handlers:n,hoverHandlers:v,activeHandlers:C,children:[b.jsx("primitive",{object:I}),b.jsx("group",{matrixAutoUpdate:!1,ref:y,children:b.jsx("group",{ref:d,matrixAutoUpdate:!1,children:b.jsx(wI,{value:void 0,children:n.children})})})]})});const aC=new ri,jH=new G().setScalar(.001),KH=["depthAlign"];function qH(n,e,t,i,r,s){const o=H.useMemo(()=>An(new G(1,1,1)),[]),a=sd(r,t),l=ds(n,KH);return H.useEffect(()=>{const A=e.current;if(A==null)return;A.traverse(g=>{g instanceof qt&&(ql(g,i,s),g.material.clippingPlanes=a,g.material.needsUpdate=!0,g.raycast=Lu(g,g.raycast,t,r,s))});const h=A.parent;h==null||h.remove(A),aC.setFromObject(A);const d=new G,f=new G;return aC.getSize(d).max(jH),o.value=d,A.scale.set(1,1,1).divide(d),h!=null&&h.add(A),aC.getCenter(f),cn(()=>{const g=l.value;g!=null&&(A.position.copy(f).negate(),A.position.z-=aG[g("depthAlign")??"back"]*d.z,A.position.divide(d),A.updateMatrix())})},[l,i,a,t]),o}const Xe=H.forwardRef((n,e)=>{const t=Ra(),i=H.useRef(null),r=Zl(i);Hs(t,r,Ua);const s=Ga(t,r),o=So(),a=nc(s),l=Kl(o,a,r.size,r),A=$l(n.panelMaterialClass,n),h=_r(Wi.Panel,n.zIndexOffset,A);ec(t,a,r.size,void 0,r.borderInset,l,h,o,A,Fa);const d=od();ld(t,d,r,a,l,n.scrollbarPanelMaterialClass,o,h),Da(t,n),ba(t,n),Pa(t,n);const f=La(t,n),g=Ha(t,n);Ta(t),Oa(n,r.size),tc(n,l);const E=jl(),v=Uu(r.size,r,h,E);return ka(e,r,v,d),b.jsxs(Na,{groupRef:i,matrix:s,handlers:n,hoverHandlers:f,activeHandlers:g,children:[b.jsx(ad,{listeners:n,node:r,scrollPosition:d,children:b.jsx("primitive",{object:v})}),b.jsx(cd,{globalMatrix:a,node:r,orderInfo:h,scrollPosition:d,children:n.children})]})});H.forwardRef((n,e)=>{const t=Ra(),i=H.useRef(null),r=Zl(i);Hs(t,r,Ua);const s=Ga(t,r),o=So(),a=jl(),l=sd(o,a),A=_r(Wi.Custom,n.zIndexOffset,void 0),h=H.useRef(null),d=nc(s),f=Kl(o,d,r.size,r);H.useEffect(()=>{const v=h.current;if(v==null)return;v.raycast=Lu(v,v.raycast,a,o,A),ql(v,r.cameraDistance,A),v.material instanceof di&&(v.material.clippingPlanes=l,v.material.needsUpdate=!0,v.material.shadowSide=Xr);const C=cn(()=>{const[y,I]=r.size.value;v.scale.set(y*r.pixelSize,I*r.pixelSize,1),v.updateMatrix()}),p=cn(()=>void(v.visible=!f.value));return()=>{C(),p()}},[l,r,f,o,A,a]),Da(t,n),ba(t,n),Pa(t,n);const g=La(t,n),E=Ha(t,n);return Ta(t),Oa(n,r.size),tc(n,f),ka(e,r,h),b.jsx(Na,{groupRef:i,matrix:s,handlers:n,hoverHandlers:g,activeHandlers:E,children:b.jsx("mesh",{receiveShadow:n.receiveShadow,castShadow:n.castShadow,customDepthMaterial:n.customDepthMaterial,customDistanceMaterial:n.customDistanceMaterial,ref:h,matrixAutoUpdate:!1,geometry:QI,children:b.jsx(wI,{value:void 0,children:n.children})})})});const ZH="fill",$H=(n,e,t,i)=>{if(n==="opacity"){i("backgroundOpacity",e);return}Fa(n,e,t,i)},FD=H.forwardRef((n,e)=>{const t=Ra(),i=eD(i6,n.src),r=H.useMemo(()=>$n(()=>{const I=i.value;if(I==null)return;const B=I.source.data;return B.width/B.height}),[i]),s=H.useRef(null),o=Zl(s);Hs(t,o,Ua),t6(t,i,o.borderInset,o.size);const a=Ga(t,o),l=So(),A=jl(),h=sd(l,A),d=nc(a),f=Kl(l,d,o.size,o),g=BH(t,o.size,o.borderInset,f,n.materialClass,h,$H),E=_r(Wi.Image,n.zIndexOffset,void 0),v=H.useMemo(()=>{const[I,B,R]=g,w=new qt(QI,I);return w.matrixAutoUpdate=!1,w.castShadow=n.castShadow??!1,w.receiveShadow=n.receiveShadow??!1,w.customDepthMaterial=B,w.customDistanceMaterial=R,w.raycast=Lu(w,hD(w),A,l,E),ql(w,o.cameraDistance,E),w},[o,g,A,l,E,n.receiveShadow,n.castShadow]),C=od();ld(t,C,o,d,f,n.scrollbarPanelMaterialClass,l,E),Da(t,n),ba(t,n),Pa(t,n);const p=La(t,n),y=Ha(t,n);return Us(t,"backgroundColor",16777215),(n.keepAspectRatio??!0)&&Us(t,"aspectRatio",r),Ta(t),Oa(n,o.size),tc(n,f),Di(()=>{const I=i.value??null;v.material.map!==I&&(v.material.map=I,v.material.needsUpdate=!0)},[v,i]),Di(()=>{const[I,B]=o.size.value;v.scale.set(I*o.pixelSize,B*o.pixelSize,1),v.updateMatrix()},[v]),Di(()=>void(v.visible=!f.value),[v,f]),ka(e,o,v,C),b.jsxs(Na,{groupRef:s,hoverHandlers:p,handlers:n,matrix:a,activeHandlers:y,children:[b.jsx(ad,{listeners:n,node:o,scrollPosition:C,children:b.jsx("primitive",{object:v})}),b.jsx(cd,{globalMatrix:d,node:o,orderInfo:E,scrollPosition:C,children:n.children})]})}),e6=["fit"];function t6(n,e,t,i){const r=ds(n,e6);Di(()=>{const s=r.value,o=e.value;if(o==null||s==null)return;const a=s("fit")??ZH;if(o.matrix.identity(),a==="fill"||o==null){_w(t,i,o);return}const{width:l,height:A}=o.source.data,h=l/A,[d,f]=i.value,[g,E,v,C]=t.value,p=(d-C-E)/(f-g-v);h>p?o.matrix.translate(-(.5*(p-h))/p,0).scale(p/h,1):o.matrix.translate(0,-(.5*(h-p))/h).scale(1,h/p),_w(t,i,o)},[e,t,i])}function _w(n,e,t){const[i,r]=e.value,[s,o,a,l]=n.value,A=i-l-o,h=r-s-a;t.matrix.translate(-1+(l+A)/i,-1+(s+h)/r).scale(i/A,r/h)}const n6=new dI;async function i6(n){if(n==null)return Promise.resolve(void 0);if(n instanceof wn)return Promise.resolve(n);try{const e=await n6.loadAsync(n);return e.colorSpace=Hn,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function io(n,e,t){if(e==null)return t;const i=n[e];if(i==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(n).join(", ")}`);return i}function Cn(n,e,t){return typeof n=="number"?Math.round(n/e):n??t}const r6={static:0,relative:1,absolute:2},lC={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},s6={column:0,"column-reverse":1,row:2,"row-reverse":3},o6={"no-wrap":0,wrap:1,"wrap-reverse":2},a6={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},l6={visible:0,hidden:1,scroll:2},c6={flex:0,none:1},ww={positionType:(n,e,t)=>n.setPositionType(io(r6,t,0)),positionTop:(n,e,t)=>n.setPosition(1,Cn(t,e,NaN)),positionLeft:(n,e,t)=>n.setPosition(0,Cn(t,e,NaN)),positionRight:(n,e,t)=>n.setPosition(2,Cn(t,e,NaN)),positionBottom:(n,e,t)=>n.setPosition(3,Cn(t,e,NaN)),alignContent:(n,e,t)=>n.setAlignContent(io(lC,t,1)),alignItems:(n,e,t)=>n.setAlignItems(io(lC,t,4)),alignSelf:(n,e,t)=>n.setAlignSelf(io(lC,t,0)),flexDirection:(n,e,t)=>n.setFlexDirection(io(s6,t,0)),flexWrap:(n,e,t)=>n.setFlexWrap(io(o6,t,0)),justifyContent:(n,e,t)=>n.setJustifyContent(io(a6,t,0)),marginTop:(n,e,t)=>n.setMargin(1,Cn(t,e,NaN)),marginLeft:(n,e,t)=>n.setMargin(0,Cn(t,e,NaN)),marginRight:(n,e,t)=>n.setMargin(2,Cn(t,e,NaN)),marginBottom:(n,e,t)=>n.setMargin(3,Cn(t,e,NaN)),flexBasis:(n,e,t)=>n.setFlexBasis(Cn(t,e,NaN)),flexGrow:(n,e,t)=>n.setFlexGrow(t??0),flexShrink:(n,e,t)=>n.setFlexShrink(t??0),width:(n,e,t)=>n.setWidth(Cn(t,e,NaN)),height:(n,e,t)=>n.setHeight(Cn(t,e,NaN)),minWidth:(n,e,t)=>n.setMinWidth(Cn(t,e,NaN)),minHeight:(n,e,t)=>n.setMinHeight(Cn(t,e,NaN)),maxWidth:(n,e,t)=>n.setMaxWidth(Cn(t,e,NaN)),maxHeight:(n,e,t)=>n.setMaxHeight(Cn(t,e,NaN)),aspectRatio:(n,e,t)=>n.setAspectRatio(t??NaN),borderTop:(n,e,t)=>n.setBorder(1,Cn(t,e,NaN)),borderLeft:(n,e,t)=>n.setBorder(0,Cn(t,e,NaN)),borderRight:(n,e,t)=>n.setBorder(2,Cn(t,e,NaN)),borderBottom:(n,e,t)=>n.setBorder(3,Cn(t,e,NaN)),overflow:(n,e,t)=>n.setOverflow(io(l6,t,0)),display:(n,e,t)=>n.setDisplay(io(c6,t,0)),paddingTop:(n,e,t)=>n.setPadding(1,Cn(t,e,NaN)),paddingLeft:(n,e,t)=>n.setPadding(0,Cn(t,e,NaN)),paddingRight:(n,e,t)=>n.setPadding(2,Cn(t,e,NaN)),paddingBottom:(n,e,t)=>n.setPadding(3,Cn(t,e,NaN)),gapRow:(n,e,t)=>n.setGap(1,Cn(t,e,NaN)),gapColumn:(n,e,t)=>n.setGap(0,Cn(t,e,NaN))};function u6(n,e){return n.L===e.L}function A6(n,e,t){if(t==null){n.setMeasureFunc(null);return}n.setMeasureFunc((i,r,s,o)=>{const a=t(i*e,r,s*e,o);return{width:Math.ceil(Math.ceil(a.width)/e),height:Math.ceil(Math.ceil(a.height)/e)}}),n.markDirty()}class RI{constructor(e,t,i,r,s,o,a){Pe(this,"size",An([0,0]));Pe(this,"relativeCenter",An([0,0]));Pe(this,"borderInset",An([0,0,0,0]));Pe(this,"paddingInset",An([0,0,0,0]));Pe(this,"overflow",An(ki.Overflow.Visible));Pe(this,"maxScrollPosition",An([void 0,void 0]));Pe(this,"scrollable",An([!1,!1]));Pe(this,"children",[]);Pe(this,"yogaNode");Pe(this,"unsubscribeYoga");Pe(this,"layoutChangeListeners",new Set);Pe(this,"requestCalculateLayout");Pe(this,"active",An(!1));this.groupRef=e,this.cameraDistance=t,this.yoga=i,this.precision=r,this.pixelSize=s,this.anyAncestorScrollable=a,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=cn(()=>{var l;i.value!=null&&((l=this.unsubscribeYoga)==null||l.call(this),this.unsubscribeYoga=void 0,this.yogaNode=i.value.Node.create(),this.active.value=!0)})}setProperty(e,t){e==="measureFunc"?A6(this.yogaNode,this.precision,t):ww[e](this.yogaNode,this.precision,t),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in ww}destroy(){var e,t;(e=this.unsubscribeYoga)==null||e.call(this),(t=this.yogaNode)==null||t.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),HT(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new RI(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,$n(()=>{var a;const[i,r]=((a=this.anyAncestorScrollable)==null?void 0:a.value)??[!1,!1],[s,o]=this.scrollable.value;return[i||s,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((a,l)=>{var g,E;if(e??(e=(E=(g=a.groupRef.current)==null?void 0:g.parent)==null?void 0:E.children),e==null)return 0;const A=a.groupRef.current,h=l.groupRef.current;if(A==null||h==null)return 0;const d=e.indexOf(A);if(d===-1)throw new Error("parent mismatch");const f=e.indexOf(h);if(f===-1)throw new Error("parent mismatch");return d-f});let t=0,i=this.yogaNode.getChild(t),r=this.children[t];for(;r!=null||i!=null;){if(r!=null&&i!=null&&u6(i,Qw(r.yogaNode))){r=this.children[++t],i=this.yogaNode.getChild(t);continue}if(i!=null&&this.yogaNode.removeChild(i),r!=null){const a=Qw(r.yogaNode);(o=a.getParent())==null||o.removeChild(a),this.yogaNode.insertChild(a,t),r=this.children[++t]}i=this.yogaNode.getChild(t)}const s=this.children.length;for(let a=0;a0,U>0)}else kc(this.maxScrollPosition,void 0,void 0),kc(this.scrollable,!1,!1);const B=this.overflow.value===ki.Overflow.Visible;return[s+Math.max(i,B?y:0),o+Math.max(r,B?I:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function kc(n,e,t){const[i,r]=n.value;i===e&&r===t||(n.value=[e,t])}function Mw(n,e,t,i,r){const[s,o,a,l]=n.value;s==e&&o==t&&a==i&&l==r||(n.value=[e,t,i,r])}function Qw(n){if(n==null)throw new Error("commit cannot be called with a children that miss a yoga node");return n}const h6=.1,kD=.002,Ep=new nn,Rw=new G,d6=H.forwardRef((n,e)=>{const t=Ra(),i=Im(U=>U.gl);H.useEffect(()=>RG(i),[i]);const{sizeX:r,sizeY:s}=n,[o,a]=H.useMemo(()=>[n.precision??h6,n.pixelSize??kD],[]),l=lG(),A=H.useMemo(()=>({current:0}),[]),h=H.useRef(null),d=sH(),f=H.useMemo(()=>new RI(h,A,l,o,a,d,void 0),[d,h,l]);Hs(t,f,Ua),H.useEffect(()=>()=>f.destroy(),[f]);const g=Ga(t,f),E=H.useMemo(()=>{const U=new Hr;return U.matrixAutoUpdate=!1,U},[]),v=SH(a,f.cameraDistance,E),C=VG(a,f.cameraDistance,E),p=$l(n.panelMaterialClass,n),y=_r(Wi.Panel,void 0,p),I=p6(g,f.size,a,n),B=od();ld(t,B,f,I,void 0,n.scrollbarPanelMaterialClass,void 0,y,v),ec(t,I,f.size,void 0,f.borderInset,void 0,y,void 0,p,Fa,v),Da(t,n),ba(t,n),Pa(t,n,f.size);const R=La(t,n),w=Ha(t,n);Us(t,"width",Tw(r,a)),Us(t,"height",Tw(s,a)),Ta(t),Oa(n,f.size);const T=Uu(f.size,f,y,h);return ka(e,f,T,B),jr(({camera:U})=>{Ep.normal.set(0,0,1),Ep.constant=0,Ep.applyMatrix4(T.matrixWorld),Rw.setFromMatrixPosition(U.matrixWorld),A.current=Ep.distanceToPoint(Rw)}),b.jsxs(b.Fragment,{children:[b.jsx("primitive",{object:E}),b.jsx(Na,{groupRef:h,matrix:I,handlers:n,hoverHandlers:R,activeHandlers:w,children:b.jsx(cG,{value:h,children:b.jsx(zG,{value:C,children:b.jsxs(_H,{value:v,children:[b.jsx(ad,{node:f,scrollPosition:B,listeners:n,children:b.jsx("primitive",{object:T})}),b.jsx(iH,{value:f.size,children:b.jsx(cd,{globalMatrix:I,node:f,orderInfo:y,scrollPosition:B,children:n.children})})]})})})})]})});function Tw(n,e){return H.useMemo(()=>n===void 0?void 0:n instanceof Wn?$n(()=>{const t=n.value;if(t!=null)return t/e}):n/e,[n,e])}const f6=new ht;function p6(n,e,t,{anchorX:i="center",anchorY:r="center"}){return H.useMemo(()=>$n(()=>{var a;const[s,o]=e.value;return(a=n.value)==null?void 0:a.clone().premultiply(f6.makeTranslation(ZT[i]*s*t,$T[r]*o*t,0))}),[n,e,i,r,t])}const g6=Hn;class Fu extends ji{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,i,r){const s=this,o=new ks(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(a){try{t(s.parse(a))}catch(l){r?r(l):console.error(l),s.manager.itemError(e)}},i,r)}parse(e){const t=this;function i(Y,z){if(Y.nodeType!==1)return;const O=B(Y);let k=!1,me=null;switch(Y.nodeName){case"svg":z=E(Y,z);break;case"style":s(Y);break;case"g":z=E(Y,z);break;case"path":z=E(Y,z),Y.hasAttribute("d")&&(me=r(Y));break;case"rect":z=E(Y,z),me=l(Y);break;case"polygon":z=E(Y,z),me=A(Y);break;case"polyline":z=E(Y,z),me=h(Y);break;case"circle":z=E(Y,z),me=d(Y);break;case"ellipse":z=E(Y,z),me=f(Y);break;case"line":z=E(Y,z),me=g(Y);break;case"defs":k=!0;break;case"use":z=E(Y,z);const Be=(Y.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),V=Y.viewportElement.getElementById(Be);V?i(V,z):console.warn("SVGLoader: 'use node' references non-existent node id: "+Be);break}me&&(z.fill!==void 0&&z.fill!=="none"&&me.color.setStyle(z.fill,g6),w(me,ue),q.push(me),me.userData={node:Y,style:z});const Ie=Y.childNodes;for(let re=0;re0?ue.copy(J[J.length-1]):ue.identity())}function r(Y){const z=new Xo,O=new Se,k=new Se,me=new Se;let Ie=!0,re=!1;const Be=Y.getAttribute("d");if(Be===""||Be==="none")return null;const V=Be.match(/[a-df-z][^a-df-z]*/ig);for(let Ee=0,ne=V.length;Ee0&&(O.copy(me),z.currentPath.currentPoint.copy(O),Ie=!0);break;default:console.warn(ae)}re=!1}return z}function s(Y){if(!(!Y.sheet||!Y.sheet.cssRules||!Y.sheet.cssRules.length))for(let z=0;zme.trim());for(let me=0;mere!==""));ge[k[me]]=Object.assign(ge[k[me]]||{},Ie)}}}function o(Y,z,O,k,me,Ie,re,Be){if(z==0||O==0){Y.lineTo(Be.x,Be.y);return}k=k*Math.PI/180,z=Math.abs(z),O=Math.abs(O);const V=(re.x-Be.x)/2,Ee=(re.y-Be.y)/2,ne=Math.cos(k)*V+Math.sin(k)*Ee,ae=-Math.sin(k)*V+Math.cos(k)*Ee;let he=z*z,Te=O*O;const $=ne*ne,_=ae*ae,D=$/he+_/Te;if(D>1){const Le=Math.sqrt(D);z=Le*z,O=Le*O,he=z*z,Te=O*O}const ie=he*_+Te*$,be=(he*Te-ie)/ie;let De=Math.sqrt(Math.max(0,be));me===Ie&&(De=-De);const Qe=De*z*ae/O,Je=-De*O*ne/z,Ve=Math.cos(k)*Qe-Math.sin(k)*Je+(re.x+Be.x)/2,Ze=Math.sin(k)*Qe+Math.cos(k)*Je+(re.y+Be.y)/2,ut=a(1,0,(ne-Qe)/z,(ae-Je)/O),It=a((ne-Qe)/z,(ae-Je)/O,(-ne-Qe)/z,(-ae-Je)/O)%(Math.PI*2);Y.currentPath.absellipse(Ve,Ze,z,O,ut,ut+It,Ie===0,k)}function a(Y,z,O,k){const me=Y*O+z*k,Ie=Math.sqrt(Y*Y+z*z)*Math.sqrt(O*O+k*k);let re=Math.acos(Math.max(-1,Math.min(1,me/Ie)));return Y*k-z*O<0&&(re=-re),re}function l(Y){const z=I(Y.getAttribute("x")||0),O=I(Y.getAttribute("y")||0),k=I(Y.getAttribute("rx")||Y.getAttribute("ry")||0),me=I(Y.getAttribute("ry")||Y.getAttribute("rx")||0),Ie=I(Y.getAttribute("width")),re=I(Y.getAttribute("height")),Be=1-.551915024494,V=new Xo;return V.moveTo(z+k,O),V.lineTo(z+Ie-k,O),(k!==0||me!==0)&&V.bezierCurveTo(z+Ie-k*Be,O,z+Ie,O+me*Be,z+Ie,O+me),V.lineTo(z+Ie,O+re-me),(k!==0||me!==0)&&V.bezierCurveTo(z+Ie,O+re-me*Be,z+Ie-k*Be,O+re,z+Ie-k,O+re),V.lineTo(z+k,O+re),(k!==0||me!==0)&&V.bezierCurveTo(z+k*Be,O+re,z,O+re-me*Be,z,O+re-me),V.lineTo(z,O+me),(k!==0||me!==0)&&V.bezierCurveTo(z,O+me*Be,z+k*Be,O,z+k,O),V}function A(Y){function z(Ie,re,Be){const V=I(re),Ee=I(Be);me===0?k.moveTo(V,Ee):k.lineTo(V,Ee),me++}const O=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,k=new Xo;let me=0;return Y.getAttribute("points").replace(O,z),k.currentPath.autoClose=!0,k}function h(Y){function z(Ie,re,Be){const V=I(re),Ee=I(Be);me===0?k.moveTo(V,Ee):k.lineTo(V,Ee),me++}const O=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,k=new Xo;let me=0;return Y.getAttribute("points").replace(O,z),k.currentPath.autoClose=!1,k}function d(Y){const z=I(Y.getAttribute("cx")||0),O=I(Y.getAttribute("cy")||0),k=I(Y.getAttribute("r")||0),me=new fa;me.absarc(z,O,k,0,Math.PI*2);const Ie=new Xo;return Ie.subPaths.push(me),Ie}function f(Y){const z=I(Y.getAttribute("cx")||0),O=I(Y.getAttribute("cy")||0),k=I(Y.getAttribute("rx")||0),me=I(Y.getAttribute("ry")||0),Ie=new fa;Ie.absellipse(z,O,k,me,0,Math.PI*2);const re=new Xo;return re.subPaths.push(Ie),re}function g(Y){const z=I(Y.getAttribute("x1")||0),O=I(Y.getAttribute("y1")||0),k=I(Y.getAttribute("x2")||0),me=I(Y.getAttribute("y2")||0),Ie=new Xo;return Ie.moveTo(z,O),Ie.lineTo(k,me),Ie.currentPath.autoClose=!1,Ie}function E(Y,z){z=Object.assign({},z);let O={};if(Y.hasAttribute("class")){const re=Y.getAttribute("class").split(/\s/).filter(Boolean).map(Be=>Be.trim());for(let Be=0;Be0&&z.premultiply(J[J.length-1]),ue.copy(z),J.push(z),z}function R(Y){const z=new Rt,O=ce;if(Y.nodeName==="use"&&(Y.hasAttribute("x")||Y.hasAttribute("y"))){const k=I(Y.getAttribute("x")),me=I(Y.getAttribute("y"));z.translate(k,me)}if(Y.hasAttribute("transform")){const k=Y.getAttribute("transform").split(")");for(let me=k.length-1;me>=0;me--){const Ie=k[me].trim();if(Ie==="")continue;const re=Ie.indexOf("("),Be=Ie.length;if(re>0&&re=1){const ne=Ee[0];let ae=0;Ee.length>=2&&(ae=Ee[1]),O.translate(ne,ae)}break;case"rotate":if(Ee.length>=1){let ne=0,ae=0,he=0;ne=Ee[0]*Math.PI/180,Ee.length>=3&&(ae=Ee[1],he=Ee[2]),se.makeTranslation(-ae,-he),de.makeRotation(ne),F.multiplyMatrices(de,se),se.makeTranslation(ae,he),O.multiplyMatrices(se,F)}break;case"scale":if(Ee.length>=1){const ne=Ee[0];let ae=ne;Ee.length>=2&&(ae=Ee[1]),O.scale(ne,ae)}break;case"skewX":Ee.length===1&&O.set(1,Math.tan(Ee[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":Ee.length===1&&O.set(1,0,0,Math.tan(Ee[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":Ee.length===6&&O.set(Ee[0],Ee[2],Ee[4],Ee[1],Ee[3],Ee[5],0,0,1);break}}z.premultiply(O)}}return z}function w(Y,z){function O(re){te.set(re.x,re.y,1).applyMatrix3(z),re.set(te.x,te.y)}function k(re){const Be=re.xRadius,V=re.yRadius,Ee=Math.cos(re.aRotation),ne=Math.sin(re.aRotation),ae=new G(Be*Ee,Be*ne,0),he=new G(-V*ne,V*Ee,0),Te=ae.applyMatrix3(z),$=he.applyMatrix3(z),_=ce.set(Te.x,$.x,0,Te.y,$.y,0,0,0,1),D=se.copy(_).invert(),De=de.copy(D).transpose().multiply(D).elements,Qe=P(De[0],De[1],De[4]),Je=Math.sqrt(Qe.rt1),Ve=Math.sqrt(Qe.rt2);if(re.xRadius=1/Je,re.yRadius=1/Ve,re.aRotation=Math.atan2(Qe.sn,Qe.cs),!((re.aEndAngle-re.aStartAngle)%(2*Math.PI){const{x:mt,y:ct}=new G(Math.cos(wt),Math.sin(wt),0).applyMatrix3(Le);return Math.atan2(ct,mt)};re.aStartAngle=Nt(re.aStartAngle),re.aEndAngle=Nt(re.aEndAngle),T(z)&&(re.aClockwise=!re.aClockwise)}}function me(re){const Be=K(z),V=M(z);re.xRadius*=Be,re.yRadius*=V;const Ee=Be>Number.EPSILON?Math.atan2(z.elements[1],z.elements[0]):Math.atan2(-z.elements[3],z.elements[4]);re.aRotation+=Ee,T(z)&&(re.aStartAngle*=-1,re.aEndAngle*=-1,re.aClockwise=!re.aClockwise)}const Ie=Y.subPaths;for(let re=0,Be=Ie.length;reNumber.EPSILON}function K(Y){const z=Y.elements;return Math.sqrt(z[0]*z[0]+z[1]*z[1])}function M(Y){const z=Y.elements;return Math.sqrt(z[3]*z[3]+z[4]*z[4])}function P(Y,z,O){let k,me,Ie,re,Be;const V=Y+O,Ee=Y-O,ne=Math.sqrt(Ee*Ee+4*z*z);return V>0?(k=.5*(V+ne),Be=1/k,me=Y*Be*O-z*Be*z):V<0?me=.5*(V-ne):(k=.5*ne,me=-.5*ne),Ee>0?Ie=Ee+ne:Ie=Ee-ne,Math.abs(Ie)>2*Math.abs(z)?(Be=-2*z/Ie,re=1/Math.sqrt(1+Be*Be),Ie=Be*re):Math.abs(z)===0?(Ie=1,re=0):(Be=-.5*Ie/z,Ie=1/Math.sqrt(1+Be*Be),re=Be*Ie),Ee>0&&(Be=Ie,Ie=-re,re=Be),{rt1:k,rt2:me,cs:Ie,sn:re}}const q=[],ge={},J=[],ce=new Rt,se=new Rt,de=new Rt,F=new Rt,ee=new Se,te=new G,ue=new Rt,ye=new DOMParser().parseFromString(e,"image/svg+xml");return i(ye.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:q,xml:ye.documentElement}}static createShapes(e){const i={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:i.ORIGIN,t:0};function s(v,C,p,y){const I=v.x,B=C.x,R=p.x,w=y.x,T=v.y,U=C.y,K=p.y,M=y.y,P=(w-R)*(T-K)-(M-K)*(I-R),q=(B-I)*(T-K)-(U-T)*(I-R),ge=(M-K)*(B-I)-(w-R)*(U-T),J=P/ge,ce=q/ge;if(ge===0&&P!==0||J<=0||J>=1||ce<0||ce>1)return null;if(P===0&&ge===0){for(let se=0;se<2;se++)if(o(se===0?p:y,v,C),r.loc==i.ORIGIN){const de=se===0?p:y;return{x:de.x,y:de.y,t:r.t}}else if(r.loc==i.BETWEEN){const de=+(I+r.t*(B-I)).toPrecision(10),F=+(T+r.t*(U-T)).toPrecision(10);return{x:de,y:F,t:r.t}}return null}else{for(let F=0;F<2;F++)if(o(F===0?p:y,v,C),r.loc==i.ORIGIN){const ee=F===0?p:y;return{x:ee.x,y:ee.y,t:r.t}}const se=+(I+J*(B-I)).toPrecision(10),de=+(T+J*(U-T)).toPrecision(10);return{x:se,y:de,t:J}}}function o(v,C,p){const y=p.x-C.x,I=p.y-C.y,B=v.x-C.x,R=v.y-C.y,w=y*R-B*I;if(v.x===C.x&&v.y===C.y){r.loc=i.ORIGIN,r.t=0;return}if(v.x===p.x&&v.y===p.y){r.loc=i.DESTINATION,r.t=1;return}if(w<-Number.EPSILON){r.loc=i.LEFT;return}if(w>Number.EPSILON){r.loc=i.RIGHT;return}if(y*B<0||I*R<0){r.loc=i.BEHIND;return}if(Math.sqrt(y*y+I*I)M.t<=K.t+Number.EPSILON&&M.t>=K.t-Number.EPSILON)===void 0&&(p.push(K),y.push(new Se(K.x,K.y)))}}return y}function l(v,C,p){const y=new Se;C.getCenter(y);const I=[];return p.forEach(B=>{B.boundingBox.containsPoint(y)&&a(v,B.points).forEach(w=>{I.push({identifier:B.identifier,isCW:B.isCW,point:w})})}),I.sort((B,R)=>B.point.x-R.point.x),I}function A(v,C,p,y,I){(I==null||I==="")&&(I="nonzero");const B=new Se;v.boundingBox.getCenter(B);const R=[new Se(p,B.y),new Se(y,B.y)],w=l(R,v.boundingBox,C);w.sort((q,ge)=>q.point.x-ge.point.x);const T=[],U=[];w.forEach(q=>{q.identifier===v.identifier?T.push(q):U.push(q)});const K=T[0].point.x,M=[];let P=0;for(;P0&&M[M.length-1]===U[P].identifier?M.pop():M.push(U[P].identifier),P++;if(M.push(v.identifier),I==="evenodd"){const q=M.length%2===0,ge=M[M.length-2];return{identifier:v.identifier,isHole:q,for:ge}}else if(I==="nonzero"){let q=!0,ge=null,J=null;for(let ce=0;ce{const C=v.getPoints();let p=-999999999,y=999999999,I=-999999999,B=999999999;for(let R=0;Rp&&(p=w.y),w.yI&&(I=w.x),w.x=B&&(h=B-1),{curves:v.curves,points:C,isCW:us.isClockWise(C),identifier:-1,boundingBox:new ET(new Se(B,y),new Se(I,p))}});f=f.filter(v=>v.points.length>1);for(let v=0;vA(v,f,h,d,e.userData?e.userData.style.fillRule:void 0)),E=[];return f.forEach(v=>{if(!g[v.identifier].isHole){const p=new pa;p.curves=v.curves,g.filter(I=>I.isHole&&I.for===v.identifier).forEach(I=>{const B=f[I.identifier],R=new fa;R.curves=B.curves,p.holes.push(R)}),E.push(p)}}),E}static getStrokeStyle(e,t,i,r,s){return e=e!==void 0?e:1,t=t!==void 0?t:"#000",i=i!==void 0?i:"miter",r=r!==void 0?r:"butt",s=s!==void 0?s:4,{strokeColor:t,strokeWidth:e,strokeLineJoin:i,strokeLineCap:r,strokeMiterLimit:s}}static pointsToStroke(e,t,i,r){const s=[],o=[],a=[];if(Fu.pointsToStrokeWithBuffers(e,t,i,r,s,o,a)===0)return null;const l=new Pt;return l.setAttribute("position",new at(s,3)),l.setAttribute("normal",new at(o,3)),l.setAttribute("uv",new at(a,2)),l}static pointsToStrokeWithBuffers(e,t,i,r,s,o,a,l){const A=new Se,h=new Se,d=new Se,f=new Se,g=new Se,E=new Se,v=new Se,C=new Se,p=new Se,y=new Se,I=new Se,B=new Se,R=new Se,w=new Se,T=new Se,U=new Se,K=new Se;i=i!==void 0?i:12,r=r!==void 0?r:.001,l=l!==void 0?l:0,e=Ee(e);const M=e.length;if(M<2)return 0;const P=e[0].equals(e[M-1]);let q,ge=e[0],J;const ce=t.strokeWidth/2,se=1/(M-1);let de=0,F,ee,te,ue,ye=!1,Oe=0,Y=l*3,z=l*2;O(e[0],e[1],A).multiplyScalar(ce),C.copy(e[0]).sub(A),p.copy(e[0]).add(A),y.copy(C),I.copy(p);for(let ne=1;neNumber.EPSILON){const Te=ce/he;d.multiplyScalar(-Te),f.subVectors(q,ge),g.copy(f).setLength(Te).add(d),U.copy(g).negate();const $=g.length(),_=f.length();f.divideScalar(_),E.subVectors(J,q);const D=E.length();switch(E.divideScalar(D),f.dot(U)<_&&E.dot(U)=r&&he.push(ne[Te]);return he.push(ne[ne.length-1]),he}}}const m6=new Fu,Cp=new ri,Al=new G;async function E6(n,e,t=ar,i,r,s,o){const a=new Hr;a.matrixAutoUpdate=!1;const l=await m6.loadAsync(n);Cp.makeEmpty();for(const d of l.paths){const f=Fu.createShapes(d),g=new t;g.transparent=!0,g.depthWrite=!1,g.toneMapped=!1,g.clippingPlanes=i;for(const E of f){const v=new Pu(E);v.computeBoundingBox(),Cp.union(v.boundingBox);const C=new qt(v,g);C.matrixAutoUpdate=!1,C.raycast=Lu(C,C.raycast,s,r,o),ql(C,e,o),C.userData.color=d.color,C.scale.y=-1,C.updateMatrix(),a.add(C)}}Cp.getSize(Al);const A=Al.x/Al.y,h=1/Al.y;return a.scale.set(1,1,1).multiplyScalar(h),Cp.getCenter(Al),Al.y*=-1,a.position.copy(Al).negate().multiplyScalar(h),a.updateMatrix(),Object.assign(a,{aspectRatio:A})}const Dw=new je,C6=["color","opacity"];H.forwardRef((n,e)=>{const t=Ra(),i=H.useRef(null),r=Zl(i);Hs(t,r,Ua);const s=Ga(t,r),o=nc(s),a=So(),l=Kl(a,o,r.size,r),A=$l(n.panelMaterialClass,n),h=_r(Wi.Panel,n.zIndexOffset,A);ec(t,o,r.size,void 0,r.borderInset,l,h,a,A,Fa);const d=jl(),f=sd(a,d),g=_r(Wi.Svg,void 0,void 0,h),E=eD(E6,n.src,r.cameraDistance,n.materialClass,f,a,d,g),v=ds(t,C6);Di(()=>{var M;const w=v.value;if(w==null)return;const T=w("color"),U=w("opacity");let K;Array.isArray(T)?K=Dw.setRGB(...T):T!=null&&(K=Dw.set(T)),(M=E.value)==null||M.traverse(P=>{if(!(P instanceof qt))return;P.receiveShadow=n.receiveShadow??!1,P.castShadow=n.castShadow??!1;const q=P.material;q.color.copy(K??P.userData.color),q.opacity=U??1})},[E,n.color,n.receiveShadow,n.castShadow]);const C=H.useMemo(()=>$n(()=>{var w;return(w=E.value)==null?void 0:w.aspectRatio}),[E]),p=od();ld(t,p,r,o,l,n.scrollbarPanelMaterialClass,a,g),Da(t,n),ba(t,n),Pa(t,n);const y=La(t,n),I=Ha(t,n);Us(t,"aspectRatio",C),Ta(t),Oa(n,r.size),tc(n,l);const B=H.useMemo(()=>{const w=new Hr;return w.matrixAutoUpdate=!1,w},[]);Di(()=>{var K;const[w,T,U]=tD(r.size,r.paddingInset,r.borderInset,r.pixelSize,((K=E.value)==null?void 0:K.aspectRatio)??1);B.position.set(w,T,0),B.scale.setScalar(U),B.updateMatrix()},[r,E]),Di(()=>{const w=E.value;if(w!=null)return B.add(w),()=>B.remove(w)},[E,B]),Di(()=>void(B.visible=!l.value),[]);const R=Uu(r.size,r,h,d);return ka(e,r,R,p),b.jsxs(Na,{groupRef:i,matrix:s,handlers:n,hoverHandlers:y,activeHandlers:I,children:[b.jsxs(ad,{listeners:n,node:r,scrollPosition:p,children:[b.jsx("primitive",{object:R}),b.jsx("primitive",{object:B})]}),b.jsx(cd,{globalMatrix:o,node:r,orderInfo:g,scrollPosition:p,children:n.children})]})});const lt=H.forwardRef((n,e)=>{const t=Ra(),i=H.useRef(null),r=Zl(i);Hs(t,r,Ua);const s=Ga(t,r),o=jl(),a=nc(s),l=So(),A=Kl(l,a,r.size,r);Oa(n,r.size),tc(n,A);const h=$l(n.panelMaterialClass,n),d=_r(Wi.Panel,n.zIndexOffset,h);ec(t,a,r.size,void 0,r.borderInset,A,d,l,h,Fa);const f=_r(Wi.Text,void 0,void 0,d),g=KG(t,n.children,a,r,A,l,f);Da(t,n),ba(t,n),Pa(t,n);const E=La(t,n),v=Ha(t,n);Us(t,"measureFunc",g),Ta(t);const C=Uu(r.size,r,d,o);return ka(e,r,C),b.jsx(Na,{groupRef:i,matrix:s,handlers:n,hoverHandlers:E,activeHandlers:v,children:b.jsx("primitive",{object:C})})}),y6=H.forwardRef((n,e)=>{const t=Bo(),i=n.pixelSize??kD,[r,s]=H.useMemo(()=>{const{width:A,height:h}=t.getState().size;return[An(A*i),An(h*i)]},[i,t]);H.useEffect(()=>{const A=h=>{HT(()=>{r.value=h.size.width*i,s.value=h.size.height*i})};return A(t.getState()),t.subscribe(A)},[i,r,s,t]);const o=Im(A=>A.camera),a=H.useRef(null);jr(()=>{if(a.current==null)return;let A=1;o instanceof ni&&(A=s.peek()/(2*Math.tan(o.fov/360*Math.PI))),a.current.position.z=-A,a.current.updateMatrix()});const l=n.attachCamera??!0;return b.jsxs(b.Fragment,{children:[l&&b.jsx("primitive",{object:o}),UT(b.jsx("group",{ref:a,matrixAutoUpdate:!1,children:b.jsx(d6,{ref:e,...n,sizeX:r,sizeY:s,children:n.children})}),o)]})}),bw=new je,v6=["color","opacity"],I6=new Fu,Ki=H.forwardRef((n,e)=>{const t=Ra(),i=H.useRef(null),r=Zl(i);Hs(t,r,Ua);const s=Ga(t,r),o=nc(s),a=So(),l=Kl(a,o,r.size,r),A=$l(n.panelMaterialClass,n),h=_r(Wi.Panel,n.zIndexOffset,A);ec(t,o,r.size,void 0,r.borderInset,l,h,a,A,Fa);const d=jl(),f=sd(a,d),g=_r(Wi.Svg,void 0,void 0,h),E=H.useMemo(()=>{const B=new Hr;B.matrixAutoUpdate=!1;const R=I6.parse(n.text);for(const w of R.paths){const T=Fu.createShapes(w),U=new(n.materialClass??ar);U.transparent=!0,U.depthWrite=!1,U.toneMapped=!1,U.clippingPlanes=f;for(const K of T){const M=new Pu(K);M.computeBoundingBox();const P=new qt(M,U);P.matrixAutoUpdate=!1,P.raycast=Lu(P,P.raycast,d,a,g),ql(P,r.cameraDistance,g),P.userData.color=w.color,P.scale.y=-1,P.updateMatrix(),B.add(P)}}return B},[n.text,n.materialClass,f,d,a,r,g]),v=ds(t,v6);Di(()=>{const B=v.value;if(B==null)return;const R=B("color"),w=B("opacity");let T;Array.isArray(R)?T=bw.setRGB(...R):R!=null&&(T=bw.set(R)),E.traverse(U=>{if(!(U instanceof qt))return;U.receiveShadow=n.receiveShadow??!1,U.castShadow=n.castShadow??!1;const K=U.material;K.color.copy(T??U.userData.color),K.opacity=w??1})},[E,n.color,n.receiveShadow,n.castShadow]);const C=od();ld(t,C,r,o,l,n.scrollbarPanelMaterialClass,a,g),Us(t,"width",n.svgWidth),Us(t,"height",n.svgHeight),Da(t,n),ba(t,n),Pa(t,n);const p=La(t,n),y=Ha(t,n);Us(t,"aspectRatio",n.svgWidth/n.svgHeight),Ta(t),Oa(n,r.size),tc(n,l),Di(()=>{const B=n.svgWidth/n.svgHeight,[R,w,T]=tD(r.size,r.paddingInset,r.borderInset,r.pixelSize,n.svgWidth/n.svgHeight);E.position.set(R-T*B/2,w+T/2,0),E.scale.setScalar(T/n.svgHeight),E.updateMatrix()},[r,E,n.svgWidth,n.svgHeight]),Di(()=>void(E.visible=!l.value),[]);const I=Uu(r.size,r,h,d);return ka(e,r,I,C),b.jsxs(Na,{groupRef:i,matrix:s,handlers:n,hoverHandlers:p,activeHandlers:y,children:[b.jsxs(ad,{listeners:n,node:r,scrollPosition:C,children:[b.jsx("primitive",{object:I}),b.jsx("primitive",{object:E})]}),b.jsx(cd,{globalMatrix:o,node:r,orderInfo:g,scrollPosition:C,children:n.children})]})});H.forwardRef(({children:n,resolution:e=1,frames:t=1/0,renderPriority:i=0,eventPriority:r=0,...s},o)=>{const a=H.useMemo(()=>new Jr(1,1,{minFilter:vn,magFilter:vn,type:kl}),[]),l=H.useRef(null),A=H.useMemo(()=>({events:{compute:x6.bind(null,l),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);H.useEffect(()=>{if(l.current==null)return;const{size:d}=l.current,f=cn(()=>{const[g,E]=d.value;a.setSize(g,E),A.size.width=g,A.size.height=E});return()=>{f(),a.dispose()}},[a,A]),H.useImperativeHandle(o,()=>l.current,[]);const h=H.useMemo(()=>new Rh,[]);return b.jsxs(b.Fragment,{children:[UT(b.jsxs(B6,{imageRef:l,renderPriority:i,frames:t,fbo:a,children:[n,b.jsx("group",{onPointerOver:()=>null})]}),h,A),b.jsx(FD,{...s,src:a.texture,fit:"fill",keepAspectRatio:!1,ref:l})]})});function x6({current:n},e,t,i){var o,a,l;if(n==null||i==null)return!1;i.raycaster.camera||(l=(a=i.events).compute)==null||l.call(a,e,i,(o=i.previousRoot)==null?void 0:o.getState());const[r]=i.raycaster.intersectObject(n.interactionPanel);if(!r)return!1;const s=r.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(s.x*2-1,s.y*2-1),t.camera)}function B6({frames:n,renderPriority:e,children:t,fbo:i,imageRef:r}){const s=Bo();H.useEffect(()=>{if(r.current==null)return;const{size:A}=r.current;return cn(()=>{const[h,d]=A.value;s.setState({size:{width:h,height:d,top:0,left:0}})})});let o=0,a,l;return jr(A=>{(n===1/0||ob.jsx(Ki,{...n,ref:e,text:S6,svgWidth:24,svgHeight:24})),w6='',OD=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:w6,svgWidth:24,svgHeight:24})),M6='',GD=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:M6,svgWidth:24,svgHeight:24})),Q6='',R6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:Q6,svgWidth:24,svgHeight:24})),T6='',D6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:T6,svgWidth:24,svgHeight:24})),b6='',HD=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:b6,svgWidth:24,svgHeight:24})),P6='',N6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:P6,svgWidth:24,svgHeight:24})),L6='',U6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:L6,svgWidth:24,svgHeight:24})),F6='',k6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:F6,svgWidth:24,svgHeight:24})),O6='',G6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:O6,svgWidth:24,svgHeight:24})),H6='',z6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:H6,svgWidth:24,svgHeight:24})),V6='',W6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:V6,svgWidth:24,svgHeight:24})),Y6='',X6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:Y6,svgWidth:24,svgHeight:24})),J6='',j6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:J6,svgWidth:24,svgHeight:24})),K6='',q6=H.forwardRef((n,e)=>b.jsx(Ki,{...n,ref:e,text:K6,svgWidth:24,svgHeight:24}));function Gt(n,e,t){return new je().setHSL(n/360,e/100,t/100,"srgb")}const qe=hG({light:{background:Gt(0,0,100),foreground:Gt(222.2,84,4.9),card:Gt(0,0,100),cardForeground:Gt(222.2,84,4.9),popover:Gt(0,0,100),popoverForeground:Gt(222.2,84,4.9),primary:Gt(222.2,47.4,11.2),primaryForeground:Gt(210,40,98),secondary:Gt(210,40,96.1),secondaryForeground:Gt(222.2,47.4,11.2),muted:Gt(210,40,96.1),mutedForeground:Gt(215.4,16.3,46.9),accent:Gt(210,40,96.1),accentForeground:Gt(222.2,47.4,11.2),destructive:Gt(0,72.22,50.59),destructiveForeground:Gt(210,40,98),border:Gt(214.3,31.8,91.4),input:Gt(214.3,31.8,91.4),ring:Gt(222.2,84,4.9)},dark:{background:Gt(222.2,84,4.9),foreground:Gt(210,40,98),card:Gt(222.2,84,4.9),cardForeground:Gt(210,40,98),popover:Gt(222.2,84,4.9),popoverForeground:Gt(210,40,98),primary:Gt(210,40,98),primaryForeground:Gt(222.2,47.4,11.2),secondary:Gt(217.2,32.6,17.5),secondaryForeground:Gt(210,40,98),muted:Gt(217.2,32.6,17.5),mutedForeground:Gt(215,20.2,65.1),accent:Gt(217.2,32.6,17.5),accentForeground:Gt(210,40,98),destructive:Gt(0,62.8,30.6),destructiveForeground:Gt(210,40,98),border:Gt(217.2,32.6,17.5),input:Gt(217.2,32.6,17.5),ring:Gt(212.7,26.8,83.9)}});function Z6(n){return b.jsx(xn,{scrollbarColor:qe.foreground,scrollbarBorderRadius:4,scrollbarOpacity:.3,borderColor:qe.border,color:qe.foreground,...n})}const $6={default:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:qe.primary},defaultProps:{color:qe.primaryForeground}},destructive:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:qe.destructive},defaultProps:{color:qe.destructiveForeground}},outline:{containerHoverProps:{backgroundColor:qe.accent},containerProps:{border:1,borderColor:qe.input,backgroundColor:qe.background}},secondary:{containerHoverProps:{backgroundOpacity:.8},containerProps:{backgroundColor:qe.secondary},defaultProps:{color:qe.secondaryForeground}},ghost:{containerHoverProps:{backgroundColor:qe.accent},defaultProps:{}},link:{containerProps:{},defaultProps:{color:qe.primary}}},ez={default:{height:40,paddingX:16,paddingY:8},sm:{height:36,paddingX:12},lg:{height:42,paddingX:32},icon:{height:40,width:40}};function Os({children:n,variant:e="default",size:t="default",disabled:i=!1,hover:r,...s}){const{containerProps:o,defaultProps:a,containerHoverProps:l}=$6[e],A=ez[t];return b.jsx(Xe,{borderRadius:6,alignItems:"center",justifyContent:"center",...o,...A,borderOpacity:i?.5:void 0,backgroundOpacity:i?.5:void 0,cursor:i?void 0:"pointer",flexDirection:"row",hover:{...l,...r},...s,children:b.jsx(xn,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",...a,opacity:i?.5:void 0,children:n})})}function Rg({children:n,...e}){return b.jsx(Xe,{borderRadius:8,border:1,backgroundColor:qe.card,...e,children:b.jsx(xn,{color:qe.cardForeground,children:n})})}function M1(n){return b.jsx(Xe,{padding:24,flexDirection:"column",gap:6,...n})}function Q1({children:n}){return b.jsx(xn,{fontWeight:"semi-bold",letterSpacing:-.4,fontSize:24,lineHeight:1,children:n})}function R1({children:n}){return b.jsx(xn,{fontSize:14,lineHeight:1.43,color:qe.mutedForeground,children:n})}function T1(n){return b.jsx(Xe,{padding:24,paddingTop:0,...n})}function D1(n){return b.jsx(Xe,{flexDirection:"row",alignItems:"center",padding:24,paddingTop:0,...n})}function jp({orientation:n="horizontal",...e}){return b.jsx(Xe,{flexShrink:0,backgroundColor:qe.border,width:n==="horizontal"?"100%":1,height:n==="horizontal"?1:"100%",...e})}const TI=H.createContext(null);function zD({value:n,onValueChange:e,defaultValue:t,children:i,...r}){const[s,o]=H.useState(t),a=H.useMemo(()=>n==null?{value:s,setValue:l=>{o(l),e==null||e(l)}}:{value:n,setValue:e},[s,e,n]);return b.jsx(Xe,{...r,children:b.jsx(TI.Provider,{value:a,children:i})})}function VD({children:n,...e}){return b.jsx(Xe,{height:40,flexDirection:"row",alignItems:"center",borderRadius:6,backgroundColor:qe.muted,padding:4,...e,children:b.jsx(xn,{color:qe.mutedForeground,children:n})})}function b1({children:n,value:e,disabled:t=!1,...i}){const{setValue:r,value:s}=H.useContext(TI),o=e===s;return b.jsx(Xe,{onClick:t?void 0:a=>r==null?void 0:r(e),cursor:t?void 0:"pointer",flexDirection:"row",alignItems:"center",borderRadius:2,paddingX:12,backgroundOpacity:t?.5:void 0,backgroundColor:o?qe.background:void 0,paddingY:6,justifyContent:"center",...i,children:b.jsx(xn,{opacity:t?.5:void 0,color:o?qe.foreground:void 0,fontSize:14,fontWeight:"medium",lineHeight:1.43,wordBreak:"keep-all",children:n})})}function P1({value:n,...e}){const{value:t}=H.useContext(TI);return n!=t?null:b.jsx(Xe,{marginTop:8,...e})}const WD=H.createContext(null);function tz({children:n}){const[e,t]=H.useState(void 0),i=H.useCallback((r,s)=>t(o=>o===r?s:o),[]);return b.jsxs(b.Fragment,{children:[b.jsx(nz,{set:i,children:n}),e]})}const nz=H.memo(({children:n,set:e})=>b.jsx(WD.Provider,{value:e,children:n})),kh=H.createContext(null);function YD({children:n,open:e,onOpenChange:t,defaultOpen:i}){const[r,s]=H.useState(i??!1),o=e??r,a=H.useContext(WD),l=H.useRef(void 0),A=H.useRef(void 0);H.useEffect(()=>{if(!o){a(A.current,void 0),A.current=void 0;return}l.current!=null&&(a(void 0,l.current),A.current=l.current)},[o,a]);const h=H.useRef(t);h.current=t;const d=e!=null,f=H.useMemo(()=>({setContent(g){A.current!=null&&(a(A.current,g),A.current=g),l.current=g},setOpen(g){var E;d||s(g),(E=h.current)==null||E.call(h,g)}}),[d,a]);return b.jsx(kh.Provider,{value:f,children:n})}function XD({children:n}){const{setOpen:e}=H.useContext(kh);return b.jsx(Xe,{onClick:()=>e(!0),children:n})}function JD(n){return b.jsx(Xe,{onPointerMove:e=>e.stopPropagation(),onWheel:e=>e.stopPropagation(),positionType:"absolute",inset:0,zIndexOffset:50,backgroundColor:"black",backgroundOpacity:.8,...n})}function wm(){const{setOpen:n}=H.useContext(kh);return H.useCallback(()=>n(!1),[n])}function jD({children:n}){const e=H.useContext(kh);return H.useEffect(()=>e.setContent(b.jsx(kh.Provider,{value:e,children:n}))),null}function iz({children:n,sm:e,...t}){const i=wm();return b.jsx(jD,{children:b.jsx(JD,{onClick:r=>{i(),r.stopPropagation()},alignItems:"center",justifyContent:"center",children:b.jsxs(Xe,{onClick:r=>r.stopPropagation(),positionType:"relative",width:"100%",gap:16,border:1,backgroundColor:qe.background,padding:24,sm:{borderRadius:8,...e},...t,children:[n,b.jsx(q6,{color:qe.mutedForeground,onClick:i,cursor:"pointer",positionType:"absolute",positionRight:16,positionTop:16,borderRadius:2,opacity:.7,backgroundOpacity:.7,hover:{opacity:1,backgroundOpacity:1},width:16,height:16})]})})})}function KD({children:n,...e}){return b.jsx(Xe,{flexDirection:"column",gap:6,...e,children:b.jsx(xn,{horizontalAlign:"center",sm:{horizontalAlign:"left"},children:n})})}function qD(n){return b.jsx(Xe,{flexDirection:"column-reverse",sm:{flexDirection:"row",justifyContent:"flex-end"},gap:8,...n})}function rz({children:n}){return b.jsx(xn,{fontSize:18,lineHeight:1,letterSpacing:-.4,fontWeight:"semi-bold",children:n})}function ZD({children:n}){return b.jsx(xn,{fontSize:14,lineHeight:1.43,color:qe.mutedForeground,children:n})}const so=new td,cC=new CT,Pw=new nn;function sz(n,e,t,i,r){const s=[];for(const[o,a]of r){cC.set(i[a.lineIndex],i[a.lineIndex+1]).applyMatrix4(n.matrixWorld);const l=cC.at(a.distanceOnLine/cC.distance(),new G);Qm(Pw,a,o);const A=oz(n,i,Pw)??l;s.push({...a,intersections:s,pointOnFace:A,point:l,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),capturedObject:o})}return s}const Nw=new G,uC=new Sa;function oz(n,e,t){for(let i=e.length-1;i>0;i--){const r=e[i-1],s=e[i];if(uC.origin.copy(r).applyMatrix4(n.matrixWorld),uC.direction.copy(s).applyMatrix4(n.matrixWorld).sub(so.ray.origin).normalize(),uC.intersectPlane(t,Nw)!=null)return Nw.clone()}}const az=new ht;function lz(n,e,t,i,r,s,o){const a=[];return ud(r,s.hasEventHandlers.bind(s),l=>{let A=0;for(let h=1;hy===v.object)!=-1)continue;const p=v.distance;v.distance+=A,a.push(Object.assign(v,{intersections:a,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),lineIndex:h-1,distanceOnLine:p,pointOnFace:v.point,localPoint:v.point.clone().applyMatrix4(az.copy(v.object.matrixWorld).invert())}))}A+=g}}),a.sort((l,A)=>l.distance-A.distance)}const Ds=new td,pu=new G,co=new nn,Lw=new Sa;function cz(n,e,t,i){pu.copy(i).applyQuaternion(e);const r=[];for(const[s,o]of t){Lw.set(n,pu),Qm(co,o,s);const a=Lw.intersectPlane(co,new G)??o.point;r.push({...o,intersections:r,pointOnFace:a,point:pu.clone().multiplyScalar(o.distance).add(n),inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),capturedObject:s})}return r}function uz(n,e,t,i,r){Ds.setFromCamera(e,n),n.getWorldPosition(i),n.getWorldQuaternion(r),n.getWorldDirection(pu);const s=[];for(const[o,a]of t){co.setFromNormalAndCoplanarPoint(pu,Ds.ray.origin),co.constant-=a.distanceViewPlane;const l=Ds.ray.intersectPlane(co,new G);if(l==null)continue;Qm(co,a,o);const A=Ds.ray.intersectPlane(co,new G)??l;s.push({...a,intersections:s,point:l,pointOnFace:A,inputDevicePosition:i.clone(),inputDeviceRotation:r.clone(),capturedObject:o})}return s}const Tg=new ht;function Az(n,e,t,i,r,s){Ds.ray.origin.copy(n),Ds.ray.direction.copy(s).applyQuaternion(e);const o=[];return ud(t,i.hasEventHandlers.bind(i),a=>{const l=Ds.intersectObject(a,!0);for(const A of l)r&&!Mm(A)||(Tg.copy(a.matrixWorld).invert(),o.push(Object.assign(A,{intersections:o,inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),pointOnFace:A.point,localPoint:A.point.clone().applyMatrix4(Tg)})))}),o.sort((a,l)=>a.distance-l.distance)}function hz(n,e,t,i,r,s,o){Ds.setFromCamera(e,n),n.getWorldPosition(s),n.getWorldQuaternion(o),co.setFromNormalAndCoplanarPoint(n.getWorldDirection(pu),Ds.ray.origin);const a=[];return ud(t,i.hasEventHandlers.bind(i),l=>{const A=Ds.intersectObject(l,!0);for(const h of A)r&&!Mm(h)||(Tg.copy(l.matrixWorld).invert(),a.push(Object.assign(h,{intersections:a,pointOnFace:h.point,inputDevicePosition:s.clone(),inputDeviceRotation:o.clone(),distanceViewPlane:co.distanceToPoint(h.point),localPoint:h.point.clone().applyMatrix4(Tg)})))}),a.sort((l,A)=>l.distance-A.distance)}const Uw=new G,Fw=new Vn,kw=new nn;function dz(n,e,t){const i=[];for(const[r,s]of t){Uw.copy(s.point).sub(s.inputDevicePosition),Fw.copy(s.inputDeviceRotation).invert().multiply(e);const o=Uw.clone().applyQuaternion(Fw).add(n);Qm(kw,s,r);const a=kw.projectPoint(n,new G);i.push({distance:s.distance,intersections:i,inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),object:s.object,point:o,pointOnFace:a,face:s.face,capturedObject:r,distanceToFace:a.distanceTo(n),localPoint:s.localPoint})}return i}const zr=new Zn;function fz(n,e,t,i,r,s){zr.center.copy(n),zr.radius=t;const o=[];return ud(i,r.hasEventHandlers.bind(r),a=>$D(a,e,s,o)),o.sort((a,l)=>a.distance-l.distance)}function $D(n,e,t,i){gz(n,e,t,i);for(const r of n.children)$D(r,e,t,i)}const _A=new ht,wA=new ht;function pz(n){return"spherecast"in n}function gz(n,e,t,i){if(n.updateWorldMatrix(!0,!1),pz(n)){const r=[];n.spherecast(zr,r);for(const s of r)t&&!Mm(s)||i.push({...s,pointOnFace:s.point,intersections:i,inputDevicePosition:zr.center.clone(),inputDeviceRotation:e.clone(),localPoint:s.point.clone().applyMatrix4(_A.copy(s.object.matrixWorld).invert())})}if(n instanceof eI){n.geometry.boundingSphere==null&&n.geometry.computeBoundingSphere(),n.geometry.boundingBox==null&&n.geometry.computeBoundingBox();const r=[];for(let s=0;szr.radius*zr.radius)return;AC.max(mz);const h=gu.center.clone().sub(Gw);h.divide(AC),Ez(h);const d=yp.clone();o&&!Cz(n,d)||a.push({intersections:a,distance:Math.sqrt(A),object:n,face:{a:0,b:0,c:0,materialIndex:0,normal:h},pointOnFace:d,point:d,instanceId:l,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),localPoint:d.clone().applyMatrix4(r)})}function Ez(n){const e=Math.abs(n.x),t=Math.abs(n.y),i=Math.abs(n.z);if(e>=t&&e>=i){n.set(n.x<0?-1:1,0,0);return}if(t>=e&&t>=i){n.set(0,n.y<0?-1:1,0);return}n.set(0,0,n.z<0?-1:1)}function ud(n,e,t){if(e(n))return t(n);for(const i of n.children)ud(i,e,t)}function Mm(n){if(!(n.object instanceof qt)||n.object.material.clippingPlanes==null)return!0;const e=n.object.material.clippingPlanes;for(const t of e)if(t.distanceToPoint(n.point)<0)return!1;return!0}function Cz(n,e){if(!(n instanceof qt)||n.material.clippingPlanes==null)return!0;const t=n.material.clippingPlanes;for(const i of t)if(i.distanceToPoint(e)<0)return!1;return!0}function Qm(n,e,t){return e.face==null?!1:(n.setFromNormalAndCoplanarPoint(e.face.normal,e.localPoint),n.applyMatrix4(t.matrixWorld),!0)}const hC=new G,zw=new Vn,Vw=Symbol("traversal-id"),Ww=[],N1=new zt;class Rm{constructor(e,t,i,r,s,o,a,l,A,h,d){Pe(this,"inputDeviceId");Pe(this,"dispatchPressAlways");Pe(this,"eventDispatcher");Pe(this,"computeIntersections");Pe(this,"getPressedElementIds");Pe(this,"getInputDeviceTransformation");Pe(this,"wasDragged");Pe(this,"onIntersections");Pe(this,"filterIntersections");Pe(this,"onStartEventCaptures");Pe(this,"onEndEventCaptures");Pe(this,"intersections",[]);Pe(this,"lastPositionChangeTime");Pe(this,"capturedEvents");Pe(this,"objectInteractionStateMap",new Map);this.inputDeviceId=e,this.dispatchPressAlways=t,this.eventDispatcher=i,this.computeIntersections=r,this.getPressedElementIds=s,this.getInputDeviceTransformation=o,this.wasDragged=a,this.onIntersections=l,this.filterIntersections=A,this.onStartEventCaptures=h,this.onEndEventCaptures=d}update(e,t,i,...r){var a;this.eventDispatcher.bind(e,this);const s=performance.now(),o=this.intersections;if(t&&(this.intersections=this.computeIntersections(e,this.capturedEvents),this.capturedEvents==null&&this.filterIntersections!=null&&(this.intersections=this.filterIntersections(this.intersections)),(a=this.onIntersections)==null||a.call(this,this.intersections),this.intersections.length===0&&(this.getInputDeviceTransformation(hC,zw),this.intersections=[{distance:1/0,inputDevicePosition:hC.clone(),inputDeviceRotation:zw.clone(),object:N1,point:hC.clone()}])),this.traverseIntersections(this.intersections,(l,A,h,d,f)=>(t&&(this.dispatchEnterOrMove(l,A,h),A.lastIntersectedTime=s),i&&(this.dispatchPress(l,h,f,r),this.dispatchRelease(e,l,h,A,f),this.updateElementStateMap(h,A,f,r,s)),A.lastPressedElementIds=f,A.blockFollowingIntersections&&(this.intersections.length=d+1),!0),l=>this.getPressedElementIds(l)),t){const l=this.getPressedElementIds();this.traverseIntersections(o,(A,h,d)=>h.lastIntersectedTime===s?!1:(this.dispatchRelease(e,A,d,h,l),this.eventDispatcher.leave(A,d),h.lastLeftTime=s,h.lastPressedElementIds=Ww,!0)),this.lastPositionChangeTime=s}}cancel(e){this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(t,i,r)=>(this.eventDispatcher.cancel(t,r),!0))}wheel(e){this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(t,i,r)=>(this.eventDispatcher.wheel(t,r),!0))}leave(e){var t;this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(i,r,s)=>(this.eventDispatcher.leave(i,s),!0)),this.capturedEvents!=null&&((t=this.onEndEventCaptures)==null||t.call(this,e)),this.lastPositionChangeTime=void 0,this.intersections.length=0,this.capturedEvents=void 0}updateElementStateMap(e,t,i,r,s){for(const o of i)(r.includes(o)||this.dispatchPressAlways)&&t.elementStateMap.set(o,{lastPressEventTime:s,lastPressEventIntersection:e})}dispatchPress(e,t,i,r){for(const s of i)(this.dispatchPressAlways||r.includes(s))&&this.eventDispatcher.press(e,t,s)}dispatchRelease(e,t,i,r,s){for(const o of r.lastPressedElementIds){if(s.includes(o))continue;this.eventDispatcher.release(t,i,o),this.removeEventCapture(e,t);const a=r.elementStateMap.get(o);a!=null&&(r.lastLeftTime==null||r.lastLeftTime{}){const r=Math.random();e:for(let s=0;snew Map,[]),d=H.useMemo(()=>new Tm,[]);d.onPointerDownMissed=r,d.onPointerUpMissed=s,d.onClickMissed=o;const f=H.useMemo(()=>({filterClipped:A??!0,computeIntersections:n,isDrag:e,onIntersections:t,filterIntersections:i,onStartEventCaptures:a,onEndEventCaptures:l}),[]);f.filterClipped=A??!0,f.computeIntersections=n,f.isDrag=e,f.onIntersections=t,f.filterIntersections=i,f.onStartEventCaptures=a,f.onEndEventCaptures=l;for(const[g,E]of h)e3(E.translator,g,f);return H.useEffect(()=>()=>{for(const{translator:g}of h.values())g.leave({});h.clear()},[]),H.useMemo(()=>{const g=E=>Iz(h,d,f,E);return{cancel:(E,v)=>{const{translator:C}=g(E);C.cancel(v)},enter:(E,v)=>{const{translator:C}=g(E);C.update(v,!0,!0)},leave:(E,v)=>{const{translator:C}=g(E);C.leave(v),h.delete(E)},press:(E,v,...C)=>{const{inputDeviceElementPressMap:p,inputDeviceElementPressSet:y,translator:I}=g(E);for(const B of C)y.add(B),p.set(B,v);I.update(v,!1,!0,...C)},release:(E,v,...C)=>{const{inputDeviceElementPressMap:p,inputDeviceElementPressSet:y,inputDeviceElementDragSet:I,translator:B}=g(E);for(const R of C)y.delete(R),p.delete(R);B.update(v,!1,!0);for(const R of C)I.delete(R)},move:(E,v)=>{const{translator:C,inputDeviceElementPressMap:p,inputDeviceElementDragSet:y}=g(E);for(const[I,B]of p)f.isDrag(B,v)&&y.add(I);C.update(v,!0,!1)},wheel:E=>{for(const{translator:v}of h.values())v.wheel(E)},blur:E=>{for(const{translator:v}of h.values())v.leave(E);h.clear()}}},[])}function e3(n,e,{filterIntersections:t,onEndEventCaptures:i,onIntersections:r,onStartEventCaptures:s}){n.onIntersections=r==null?void 0:r.bind(null,e),n.filterIntersections=t==null?void 0:t.bind(null,e),n.onStartEventCaptures=s==null?void 0:s.bind(null,e),n.onEndEventCaptures=i==null?void 0:i.bind(null,e)}function Iz(n,e,t,i){let r=n.get(i);if(r==null){const s=new G,o=new Vn,a={inputDeviceElementPressSet:new Set,inputDeviceElementPressMap:new Map,translator:new Rm(i,!1,e,(l,A)=>t.computeIntersections(l,A,t.filterClipped,e,s,o),()=>[...a.inputDeviceElementPressSet],(l,A)=>{l.copy(s),A.copy(o)},l=>a.inputDeviceElementDragSet.has(l)),inputDeviceElementDragSet:new Set};e3(a.translator,i,t),n.set(i,r=a)}return r}new G;const xz=[];function Bz(n,e,t){if(n.current==null)return!1;const i=n.current*n.current,r=e.offsetX-t.offsetX,s=e.offsetY-t.offsetY;return r*r+s*s>i}function Sz({filterClipped:n,filterIntersections:e,onClickMissed:t,onIntersections:i,onPointerDownMissed:r,onPointerUpMissed:s,dragDistance:o}){const a=Bo(),l=Im(({gl:f})=>f.domElement),A=H.useMemo(()=>_z.bind(null,a),[a]),h=H.useRef(o);h.current=o;const d=vz(A,Bz.bind(null,h),i,e,r,s,t,wz,Mz,n);return H.useEffect(()=>{const f=y=>d.cancel(y.pointerId,y),g=y=>d.press(y.pointerId,y,y.button),E=y=>d.release(y.pointerId,y,y.button),v=y=>d.enter(y.pointerId,y),C=y=>d.leave(y.pointerId,y),p=y=>d.move(y.pointerId,y);return l.addEventListener("pointercancel",f),l.addEventListener("pointerdown",g),l.addEventListener("pointerup",E),l.addEventListener("pointerover",v),l.addEventListener("pointerout",C),l.addEventListener("pointermove",p),l.addEventListener("wheel",d.wheel),l.addEventListener("blur",d.blur),()=>{l.removeEventListener("pointercancel",f),l.removeEventListener("pointerdown",g),l.removeEventListener("pointerup",E),l.removeEventListener("pointerover",v),l.removeEventListener("pointerout",C),l.removeEventListener("pointermove",p),l.removeEventListener("wheel",d.wheel),l.removeEventListener("blur",d.blur)}},[l,d]),null}function _z(n,e,t,i,r,s,o){if(!(e.target instanceof HTMLCanvasElement))return xz;const{camera:a,scene:l,size:A}=n.getState(),h=new Se(e.offsetX/A.width*2-1,-(e.offsetY/A.height)*2+1);return t==null?hz(a,h,l,r,i,s,o):uz(a,h,t,s,o)}function wz(n,e){e.target instanceof HTMLCanvasElement&&e.target.setPointerCapture(n)}function Mz(n,e){e.target instanceof HTMLCanvasElement&&e.target.releasePointerCapture(n)}const dC=new G,fC=new Vn,Qz=new G(0,0,1);H.forwardRef(({id:n,onIntersections:e,filterIntersections:t,onClickMissed:i,onPointerDownMissed:r,onPointerUpMissed:s,filterClipped:o=!0,direction:a=Qz,initialPressedElementIds:l},A)=>{const h=Bo(),d=H.useMemo(()=>new zt,[]),f=H.useMemo(()=>new Tm,[]);f.onPointerDownMissed=r,f.onPointerUpMissed=s,f.onClickMissed=i;const g=H.useMemo(()=>new Set(l),[]),E=H.useMemo(()=>({filterClipped:o,direction:a}),[]);E.filterClipped=o,E.direction=a;const v=H.useMemo(()=>new Rm(n,!1,f,(p,y)=>(d.getWorldPosition(dC),d.getWorldQuaternion(fC),y==null?Az(dC,fC,h.getState().scene,f,E.filterClipped,E.direction):cz(dC,fC,y,E.direction)),()=>[...g],(p,y)=>{d.getWorldPosition(p),d.getWorldQuaternion(y)}),[n,h]);v.onIntersections=e,v.filterIntersections=t,H.useImperativeHandle(A,()=>({press:(p,y)=>{g.add(p),v.update(y,!1,!0,p)},release:(p,y)=>{g.delete(p),v.update(y,!1,!0)},cancel:v.cancel.bind(v),wheel(p){v.wheel(p)}}),[v]),H.useEffect(()=>v.leave.bind(v,{}),[v]);const C=H.useRef(g.size>0);return jr(()=>{v.update({},!0,C.current,...g),C.current=!1}),G1.createElement("primitive",{object:d})});const pC=new G,gC=new Vn;H.forwardRef(({id:n,distanceElement:e,radius:t,onIntersections:i,filterIntersections:r,onClickMissed:s,onPointerDownMissed:o,onPointerUpMissed:a,filterClipped:l=!0,initialPressedElementIds:A},h)=>{const d=H.useMemo(()=>new zt,[]),f=Bo(),g=H.useMemo(()=>new Set(A),[]),E=H.useMemo(()=>new Tm,[]);E.onPointerDownMissed=o,E.onPointerUpMissed=a,E.onClickMissed=s;const v=H.useMemo(()=>({distanceElement:e,radius:t,filterClipped:l}),[]);v.distanceElement=e,v.radius=t,v.filterClipped=l;const C=H.useMemo(()=>new Rm(n,!0,E,(y,I)=>(d.getWorldPosition(pC),d.getWorldQuaternion(gC),I==null?fz(pC,gC,v.radius,f.getState().scene,E,v.filterClipped):dz(pC,gC,I)),y=>y!=null&&v.distanceElement!=null&&y.distance<=v.distanceElement.downRadius&&(y.distanceToFace==null||y.distanceToFace<2*v.distanceElement.downRadius*2)?[...g,v.distanceElement.id]:[...g],(y,I)=>{d.getWorldPosition(y),d.getWorldQuaternion(I)}),[n,f]);C.onIntersections=i,C.filterIntersections=r,H.useImperativeHandle(h,()=>({press:(y,I)=>{g.add(y),C.update(I,!1,!0,y)},release:(y,I)=>{g.delete(y),C.update(I,!1,!0)},cancel:C.cancel.bind(C),wheel(y){C.wheel(y)}}),[C]),H.useEffect(()=>C.leave.bind(C,{}),[C]);const p=H.useRef(g.size>0);return jr(()=>{C.update({},!0,p.current||e!=null,...g),p.current=!1}),G1.createElement("primitive",{object:d})});const mC=new G,EC=new Vn;H.forwardRef(({id:n,points:e,onIntersections:t,filterIntersections:i,onClickMissed:r,onPointerDownMissed:s,onPointerUpMissed:o,filterClipped:a=!0,initialPressedElementIds:l},A)=>{const h=H.useMemo(()=>new zt,[]),d=Bo(),f=H.useMemo(()=>new Tm,[]);f.onPointerDownMissed=s,f.onPointerUpMissed=o,f.onClickMissed=r;const g=H.useMemo(()=>new Set(l),[]),E=H.useMemo(()=>({points:e,filterClipped:a}),[]);E.points=e,E.filterClipped=a;const v=H.useMemo(()=>new Rm(n,!1,f,(p,y)=>(h.getWorldPosition(mC),h.getWorldQuaternion(EC),y==null?lz(h,mC,EC,E.points,d.getState().scene,f,E.filterClipped):sz(h,mC,EC,E.points,y)),()=>[...g],(p,y)=>{h.getWorldPosition(p),h.getWorldQuaternion(y)}),[n,d]);v.onIntersections=t,v.filterIntersections=i,H.useImperativeHandle(A,()=>({press:(p,y)=>{g.add(p),v.update(y,!1,!0,p)},release:(p,y)=>{g.delete(p),v.update(y,!1,!0)},cancel:v.cancel.bind(v),wheel(p){v.wheel(p)}}),[v]),H.useEffect(()=>v.leave.bind(v,{}),[v]);const C=H.useRef(g.size>0);return jr(()=>{v.update({},!0,C.current,...g),C.current=!1}),G1.createElement("primitive",{object:h})});const Rz=()=>({enabled:!1,priority:0});class Tm{constructor(e,t,i){Pe(this,"onPointerDownMissed");Pe(this,"onPointerUpMissed");Pe(this,"onClickMissed");Pe(this,"stoppedEventTypeSet");Pe(this,"event");Pe(this,"translator");Pe(this,"press",this.dispatch.bind(this,["onPointerDown"]));Pe(this,"release",this.dispatch.bind(this,["onPointerUp"]));Pe(this,"cancel",this.dispatch.bind(this,["onPointerCancel"]));Pe(this,"select",this.dispatch.bind(this,["onClick"]));Pe(this,"move",this.dispatch.bind(this,["onPointerMove"]));Pe(this,"enter",this.dispatch.bind(this,["onPointerEnter","onPointerOver"]));Pe(this,"leave",this.dispatch.bind(this,["onPointerLeave","onPointerOut"]));Pe(this,"wheel",this.dispatch.bind(this,["onWheel"]));Pe(this,"losteventcapture",()=>{});this.onPointerDownMissed=e,this.onPointerUpMissed=t,this.onClickMissed=i}dispatch(e,t,i,r){var s,o;for(const a of e){if(this.stoppedEventTypeSet.has(a))return;if(t==N1){switch(a){case"onClick":case"onPointerDown":case"onPointerUp":{const A=this[`${a}Missed`];if(A==null)return;A(this.createEvent(a,t,i,r))}}return}(o=(s=t.__r3f.handlers)[a])==null||o.call(s,this.createEvent(a,t,i,r))}}createEvent(e,t,i,r){const s=this.stoppedEventTypeSet,o=this.translator,a={setPointerCapture:this.translator.addEventCapture.bind(this.translator,this.event,t,i),releasePointerCapture:this.translator.removeEventCapture.bind(this.translator,this.event,t),hasPointerCapture:this.translator.hasEventCapture.bind(this.translator,t)},l={};for(const A in this.event){const h=this.event[A];typeof h!="function"&&(l[A]=h)}return Object.assign(l,i,{eventObject:t,pointer:null,stopped:null,delta:0,unprojectedPoint:null,ray:null,camera:null,stopPropagation(){s.add(e),e=="onPointerEnter"&&o.blockFollowingIntersections(t)},pointerId:this.translator.inputDeviceId,target:a,currentTarget:a,nativeEvent:this.event,inputDeviceElementId:r,inputDeviceId:this.translator.inputDeviceId}),l}bind(e,t){this.stoppedEventTypeSet=new Set,this.event=e,this.translator=t}hasEventHandlers(e){if(e===N1)return!0;const t=e.__r3f;return t!=null&&t.eventCount>0}}const t3=H.createContext(null);function Tz({children:n,...e}){const[t,i]=H.useState(!1),r=H.useRef(void 0);return H.useEffect(()=>()=>{r.current!=null&&clearTimeout(r.current)},[]),b.jsx(Xe,{onPointerOver:()=>{r.current==null&&(r.current=setTimeout(()=>{r.current=void 0,i(!0)},1e3))},onPointerOut:()=>{if(r.current!=null){clearTimeout(r.current),r.current=void 0;return}i(!1)},positionType:"relative",flexDirection:"column",alignItems:"center",...e,children:b.jsx(t3.Provider,{value:t,children:n})})}function Dz(n){return b.jsx(Xe,{alignSelf:"stretch",...n})}function bz({children:n,sideOffset:e=4,...t}){return H.useContext(t3)?b.jsx(Xe,{positionType:"absolute",positionBottom:"100%",marginBottom:e,zIndexOffset:50,overflow:"hidden",borderRadius:6,border:1,backgroundColor:qe.popover,paddingX:12,paddingY:6,...t,children:b.jsx(xn,{wordBreak:"keep-all",fontSize:14,lineHeight:1.4333,color:qe.popoverForeground,children:n})}):null}function Pz(){return b.jsxs(Tz,{children:[b.jsx(Dz,{children:b.jsx(Os,{variant:"outline",children:b.jsx(lt,{children:"Hover"})})}),b.jsx(bz,{children:b.jsx(lt,{children:"Add to library"})})]})}const Dm=H.createContext(null);function Nz({children:n}){const e=H.useState(void 0);return b.jsx(Xe,{flexDirection:"column",children:b.jsx(Dm.Provider,{value:e,children:n})})}const DI=H.createContext(null);function CC({children:n,...e}){const[t,i]=H.useContext(Dm),r=e.value===t;return b.jsx(Xe,{cursor:"pointer",onClick:()=>i(r?void 0:e.value),borderBottom:1,...e,children:b.jsx(DI.Provider,{value:e.value,children:n})})}function yC({children:n,...e}){const t=H.useContext(DI),[i]=H.useContext(Dm),r=t===i;return b.jsxs(Xe,{flexDirection:"row",flexGrow:1,flexShrink:1,alignItems:"center",justifyContent:"space-between",paddingY:16,...e,children:[b.jsx(xn,{fontWeight:"medium",children:n}),b.jsx(R6,{transformRotateZ:r?180:0,width:16,height:16,flexShrink:0})]})}function vC({children:n,...e}){const t=H.useContext(DI),[i]=H.useContext(Dm);return i!=t?null:b.jsx(Xe,{overflow:"hidden",...e,children:b.jsx(Xe,{paddingBottom:16,children:b.jsx(xn,{fontSize:14,children:n})})})}function Lz(){return b.jsx(Xe,{width:300,children:b.jsxs(Nz,{children:[b.jsxs(CC,{value:"item-1",children:[b.jsx(yC,{children:b.jsx(lt,{children:"Is it accessible?"})}),b.jsx(vC,{children:b.jsx(lt,{children:"Yes. It adheres to the WAI-ARIA design pattern."})})]}),b.jsxs(CC,{value:"item-2",children:[b.jsx(yC,{children:b.jsx(lt,{children:"Is it styled?"})}),b.jsx(vC,{children:b.jsx(lt,{children:"Yes. It comes with default styles that matches the other components' aesthetic."})})]}),b.jsxs(CC,{value:"item-3",children:[b.jsx(yC,{children:b.jsx(lt,{children:"Is it animated?"})}),b.jsx(vC,{children:b.jsx(lt,{children:"Yes. It's animated by default, but you can disable it if you prefer."})})]})]})})}const Uz={default:{},destructive:{borderColor:qe.destructive,borderOpacity:.5,color:qe.destructive}};function Fz(n){return b.jsx(xn,{...Uz[n.variant??"default"],children:b.jsx(Xe,{positionType:"relative",width:"100%",borderRadius:8,border:1,padding:16,...n})})}function kz(n){return b.jsx(Xe,{positionLeft:16,positionTop:16,positionType:"absolute",...n})}function Oz({children:n,...e}){return b.jsx(Xe,{marginBottom:4,padding:0,paddingLeft:28,...e,children:b.jsx(xn,{fontWeight:"medium",letterSpacing:-.4,lineHeight:1,children:n})})}function Gz({children:n}){return b.jsx(Xe,{paddingLeft:28,children:b.jsx(xn,{lineHeight:1.625,fontSize:14,children:n})})}function Hz(){return b.jsxs(Fz,{children:[b.jsx(kz,{children:b.jsx(X6,{width:16,height:16})}),b.jsx(Oz,{children:b.jsx(lt,{children:"Error"})}),b.jsx(Gz,{children:b.jsx(lt,{children:"You can add components to your app using the cli."})})]})}const zz=YD,Vz=XD;function Wz(n){const e=wm();return b.jsx(jD,{children:b.jsx(JD,{onClick:t=>{e(),t.stopPropagation()},alignItems:"center",justifyContent:"center",children:b.jsx(Xe,{onClick:t=>t.stopPropagation(),positionType:"relative",maxWidth:512,width:"100%",gap:16,border:1,backgroundColor:qe.background,padding:24,sm:{borderRadius:8},...n})})})}const Yz=KD,Xz=qD;function Jz({children:n}){return b.jsx(xn,{fontSize:18,lineHeight:1.5555,fontWeight:"semi-bold",children:n})}const jz=ZD;function Kz({children:n,onClick:e,...t}){const i=wm();return b.jsx(Xe,{borderRadius:6,height:40,paddingX:16,paddingY:8,alignItems:"center",justifyContent:"center",cursor:"pointer",flexDirection:"row",backgroundColor:qe.primary,onClick:r=>{r.stopPropagation(),i(),e==null||e(r)},hover:{backgroundOpacity:.9},...t,children:b.jsx(xn,{children:b.jsx(xn,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",color:qe.primaryForeground,children:n})})})}function qz({children:n,onClick:e,...t}){const i=wm();return b.jsx(Xe,{borderRadius:6,height:40,paddingX:16,paddingY:8,alignItems:"center",justifyContent:"center",cursor:"pointer",flexDirection:"row",border:1,borderColor:qe.input,backgroundColor:qe.background,onClick:r=>{r.stopPropagation(),i(),e==null||e(r)},hover:{backgroundColor:qe.accent},...t,children:b.jsx(xn,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",children:n})})}function Zz(){return b.jsxs(zz,{children:[b.jsx(Vz,{children:b.jsx(Os,{variant:"outline",children:b.jsx(lt,{children:"Show Dialog"})})}),b.jsxs(Wz,{children:[b.jsxs(Yz,{children:[b.jsx(Jz,{children:b.jsx(lt,{children:"Are you absolutely sure?"})}),b.jsx(jz,{children:b.jsx(lt,{children:"This action cannot be undone. This will permanently delete your account and remove your data from our servers."})})]}),b.jsxs(Xz,{children:[b.jsx(qz,{children:b.jsx(lt,{children:"Cancel"})}),b.jsx(Kz,{children:b.jsx(lt,{children:"Continue"})})]})]})]})}function $z(n){return b.jsx(FD,{width:40,height:40,flexShrink:0,aspectRatio:1,fit:"cover",borderRadius:20,...n})}function e9(){return b.jsx(Xe,{alignItems:"center",children:b.jsx($z,{src:"https://picsum.photos/100/100"})})}const t9={default:{defaultProps:{color:qe.primaryForeground},containerProps:{backgroundColor:qe.primary},containerHoverProps:{backgroundOpacity:.8}},secondary:{defaultProps:{color:qe.secondaryForeground},containerProps:{backgroundColor:qe.secondary},containerHoverProps:{backgroundOpacity:.8}},destructive:{defaultProps:{color:qe.destructiveForeground},containerProps:{backgroundColor:qe.destructive},containerHoverProps:{backgroundOpacity:.8}},outline:{}};function n9({children:n,variant:e="default",hover:t,...i}){const{containerProps:r,defaultProps:s,containerHoverProps:o}=t9[e];return b.jsx(Xe,{borderRadius:1e3,border:1,paddingX:10,paddingY:2,hover:{...o,...t},...r,...i,children:b.jsx(xn,{fontSize:12,lineHeight:1.3333,fontWeight:"semi-bold",...s,children:n})})}function i9(){return b.jsx(n9,{children:b.jsx(lt,{children:"Badge"})})}function r9(){return b.jsx(Os,{variant:"outline",size:"icon",children:b.jsx(HD,{width:16,height:16})})}function n3({defaultChecked:n,checked:e,disabled:t=!1,onCheckedChange:i,...r}){const[s,o]=H.useState(n??!1),a=e??s;return b.jsx(Xe,{height:24,width:44,flexShrink:0,flexDirection:"row",padding:2,alignItems:"center",backgroundOpacity:t?.5:void 0,borderRadius:1e3,backgroundColor:a?qe.primary:qe.input,cursor:t?void 0:"pointer",onClick:t?void 0:()=>{e==null&&o(!a),i==null||i(!a)},...r,children:b.jsx(Xe,{width:20,height:20,borderRadius:1e3,transformTranslateX:a?20:0,backgroundColor:qe.background})})}const IC=[{title:"Your call has been confirmed.",description:"1 hour ago"},{title:"You have a new message!",description:"1 hour ago"},{title:"Your subscription is expiring soon!",description:"2 hours ago"}];function s9(){return b.jsxs(Rg,{width:380,children:[b.jsxs(M1,{children:[b.jsx(Q1,{children:b.jsx(lt,{children:"Notifications"})}),b.jsx(R1,{children:b.jsx(lt,{children:"You have 3 unread messages."})})]}),b.jsxs(T1,{flexDirection:"column",gap:16,children:[b.jsxs(Xe,{flexDirection:"row",alignItems:"center",gap:16,borderRadius:6,border:1,padding:16,children:[b.jsx(_6,{}),b.jsxs(Xe,{gap:4,children:[b.jsx(lt,{fontSize:14,lineHeight:1,children:"Push Notifications"}),b.jsx(lt,{fontSize:14,lineHeight:1.43,color:qe.mutedForeground,children:"Send notifications to device."})]}),b.jsx(n3,{})]}),b.jsx(Xe,{children:IC.map((n,e)=>b.jsxs(Xe,{marginBottom:e===IC.length-1?0:16,paddingBottom:e===IC.length-1?0:16,alignItems:"flex-start",flexDirection:"row",gap:17,children:[b.jsx(Xe,{height:8,width:8,transformTranslateY:4,borderRadius:1e3,backgroundColor:959977}),b.jsxs(Xe,{gap:4,children:[b.jsx(lt,{fontSize:14,lineHeight:1,children:n.title}),b.jsx(lt,{fontSize:14,lineHeight:1.43,color:qe.mutedForeground,children:n.description})]})]},e))})]}),b.jsx(D1,{children:b.jsxs(Os,{flexDirection:"row",width:"100%",children:[b.jsx(GD,{marginRight:8,height:16,width:16}),b.jsx(lt,{children:"Mark all as read"})]})})]})}function o9({defaultChecked:n,checked:e,disabled:t=!1,onCheckedChange:i,...r}){const[s,o]=H.useState(n??!1),a=e??s;return b.jsx(Xe,{alignItems:"center",justifyContent:"center",cursor:t?void 0:"pointer",onClick:t?void 0:()=>{e==null&&o(!a),i==null||i(!a)},borderRadius:4,width:16,height:16,border:1,borderColor:qe.primary,backgroundColor:a?qe.primary:void 0,backgroundOpacity:t?.5:void 0,borderOpacity:t?.5:void 0,...r,children:b.jsx(GD,{color:a?qe.primaryForeground:void 0,opacity:a?t?.5:void 0:0,width:14,height:14})})}function as({disabled:n,children:e}){return b.jsx(xn,{fontWeight:"medium",fontSize:14,lineHeight:1,opacity:n?.7:void 0,children:e})}function a9(){return b.jsxs(Xe,{flexDirection:"row",gap:8,alignItems:"center",children:[b.jsx(o9,{}),b.jsx(as,{children:b.jsx(lt,{children:"Accept terms and conditions"})})]})}function l9(){return b.jsxs(YD,{children:[b.jsx(XD,{children:b.jsx(Os,{variant:"outline",children:b.jsx(lt,{children:"Edit Profile"})})}),b.jsxs(iz,{sm:{maxWidth:425},children:[b.jsxs(KD,{children:[b.jsx(rz,{children:b.jsx(lt,{children:"Edit profile"})}),b.jsx(ZD,{children:b.jsx(lt,{children:"Make changes to your profile here. Click save when you're done."})})]}),b.jsxs(Xe,{gap:16,paddingY:16,children:[b.jsx(Xe,{alignItems:"center",gap:16,children:b.jsx(as,{children:b.jsx(lt,{horizontalAlign:"right",children:"Name"})})}),b.jsx(Xe,{alignItems:"center",gap:16,children:b.jsx(as,{children:b.jsx(lt,{horizontalAlign:"right",children:"Username"})})})]}),b.jsx(qD,{children:b.jsx(Os,{children:b.jsx(lt,{children:"Save changes"})})})]})]})}function c9(n){return b.jsx(Xe,{marginX:"auto",flexDirection:"row",width:"100%",justifyContent:"center",...n})}function u9(n){return b.jsx(Xe,{flexDirection:"row",alignItems:"center",gap:4,...n})}const Oc=Xe,A9={outline:{containerProps:{border:1,borderColor:qe.input,backgroundColor:qe.background},containerHoverProps:{backgroundColor:qe.accent}},ghost:{containerHoverProps:{backgroundColor:qe.accent}}},h9={default:{height:40,paddingX:16,paddingY:8},sm:{height:36,paddingX:12},lg:{height:42,paddingX:32},icon:{height:40,width:40}};function ZA({isActive:n=!1,size:e="icon",hover:t,...i}){const{containerProps:r,containerHoverProps:s}=A9[n?"outline":"ghost"],o=h9[e];return b.jsx(Xe,{cursor:"pointer",borderRadius:6,alignItems:"center",justifyContent:"center",hover:{...s,...t},...r,...o,...i})}function d9(n){return b.jsxs(ZA,{flexDirection:"row",size:"default",gap:4,paddingLeft:10,...n,children:[b.jsx(D6,{width:16,height:16}),b.jsx(lt,{children:"Previous"})]})}function f9(n){return b.jsxs(ZA,{flexDirection:"row",size:"default",gap:4,paddingRight:10,...n,children:[b.jsx(lt,{children:"Next"}),b.jsx(HD,{width:16,height:16})]})}function p9(n){return b.jsx(Xe,{flexDirection:"row",height:36,width:36,alignItems:"center",justifyContent:"center",...n,children:b.jsx(G6,{width:16,height:16})})}function g9(){return b.jsx(c9,{children:b.jsxs(u9,{children:[b.jsx(Oc,{children:b.jsx(d9,{})}),b.jsx(Oc,{children:b.jsx(ZA,{children:b.jsx(lt,{children:"1"})})}),b.jsx(Oc,{children:b.jsx(ZA,{isActive:!0,children:b.jsx(lt,{children:"2"})})}),b.jsx(Oc,{children:b.jsx(ZA,{children:b.jsx(lt,{children:"3"})})}),b.jsx(Oc,{children:b.jsx(p9,{})}),b.jsx(Oc,{children:b.jsx(f9,{})})]})})}function m9({value:n,...e}){const t=H.useMemo(()=>$n(()=>`${n??0}%`),[n]);return b.jsx(Xe,{height:16,width:"100%",borderRadius:1e3,backgroundColor:qe.secondary,...e,children:b.jsx(Xe,{height:"100%",borderRadius:1e3,backgroundColor:qe.primary,width:t})})}function E9(){const[n,e]=H.useState(13);return H.useEffect(()=>{const t=setTimeout(()=>e(66),500);return()=>clearTimeout(t)},[]),b.jsx(m9,{value:n,width:200})}const i3=H.createContext(null);function C9({defaultValue:n,value:e,onValueChange:t,children:i,...r}){const[s,o]=H.useState(n),a=H.useMemo(()=>e==null?{value:s,setValue:l=>{o(l),t==null||t(l)}}:{value:e,onValueChange:t},[s,t,e]);return b.jsx(Xe,{gap:8,...r,children:b.jsx(i3.Provider,{value:a,children:i})})}function xC({disabled:n=!1,value:e,children:t,...i}){const{value:r,setValue:s}=H.useContext(i3);return b.jsxs(Xe,{cursor:n?void 0:"pointer",onClick:n?void 0:()=>s==null?void 0:s(e),flexDirection:"row",alignItems:"center",gap:8,children:[b.jsx(Xe,{aspectRatio:1,height:16,width:16,borderRadius:1e3,border:1,borderOpacity:n?.5:void 0,borderColor:qe.primary,alignItems:"center",justifyContent:"center",...i,children:b.jsx(Xe,{borderRadius:1e3,aspectRatio:1,backgroundColor:qe.primary,backgroundOpacity:e===r?1:0,height:9,width:9})}),t]})}function y9(){return b.jsxs(C9,{defaultValue:"comfortable",children:[b.jsx(xC,{value:"default",children:b.jsx(as,{children:b.jsx(lt,{children:"Default"})})}),b.jsx(xC,{value:"comfortable",children:b.jsx(as,{children:b.jsx(lt,{children:"Comfortable"})})}),b.jsx(xC,{value:"compact",children:b.jsx(as,{children:b.jsx(lt,{children:"Compact"})})})]})}function v9(){return b.jsxs(Xe,{children:[b.jsxs(Xe,{gap:4,children:[b.jsx(lt,{fontSize:14,lineHeight:1,children:"Radix Primitives"}),b.jsx(lt,{fontSize:14,lineHeight:1.43,color:qe.mutedForeground,children:"An open-source UI component library."})]}),b.jsx(jp,{marginY:16}),b.jsx(Xe,{flexDirection:"row",height:20,alignItems:"center",gap:16,children:b.jsxs(xn,{fontSize:14,lineHeight:1.43,children:[b.jsx(lt,{children:"Blog"}),b.jsx(jp,{orientation:"vertical"}),b.jsx(lt,{children:"Docs"}),b.jsx(jp,{orientation:"vertical"}),b.jsx(lt,{children:"Source"})]})})]})}function BC(n){const e=H.useMemo(()=>An(1),[]),t=H.useRef(0);return jr((i,r)=>{e.value=Math.cos(t.current*Math.PI)*.25+.75,t.current+=r}),b.jsx(Xe,{borderRadius:6,backgroundColor:qe.muted,backgroundOpacity:e,...n})}function I9(){return b.jsxs(Xe,{flexDirection:"row",alignItems:"center",gap:16,children:[b.jsx(BC,{borderRadius:1e3,height:48,width:48}),b.jsxs(Xe,{gap:8,children:[b.jsx(BC,{height:16,width:250}),b.jsx(BC,{height:16,width:200})]})]})}const SC=new G;function x9({disabled:n=!1,value:e,defaultValue:t,onValueChange:i,min:r=0,max:s=100,step:o=1,...a}){const[l,A]=H.useState(t),h=e??l??50,d=s-r,f=`${100*h/d}%`,g=H.useRef(null),E=H.useRef(i);E.current=i;const v=e!=null,C=H.useMemo(()=>{let p=!1;function y(I){var R;if(g.current==null)return;SC.copy(I.point),g.current.interactionPanel.worldToLocal(SC);const B=Math.min(Math.max(Math.round(((SC.x+.5)*(s-r)+r)/o)*o,r),s);v||A(B),(R=E.current)==null||R.call(E,B),I.stopPropagation()}return{onPointerDown(I){p=!0,y(I),I.target.setPointerCapture(I.pointerId)},onPointerMove(I){p&&y(I)},onPointerUp(I){p&&(p=!1,I.stopPropagation())}}},[s,r,v,o]);return b.jsxs(Xe,{ref:g,...n?{}:C,positionType:"relative",height:8,width:"100%",alignItems:"center",...a,children:[b.jsx(Xe,{height:8,positionType:"absolute",positionLeft:0,positionRight:0,flexGrow:1,borderRadius:1e3,backgroundColor:qe.secondary,children:b.jsx(Xe,{height:"100%",width:f,borderRadius:1e3,backgroundColor:qe.primary})}),b.jsx(Xe,{zIndexOffset:{minor:100},positionType:"absolute",positionLeft:f,transformTranslateX:-10,transformTranslateY:-6,cursor:"pointer",borderOpacity:n?.5:void 0,backgroundOpacity:n?.5:void 0,height:20,width:20,border:2,borderRadius:1e3,borderColor:qe.primary,backgroundColor:qe.background})]})}function B9(){return b.jsx(x9,{defaultValue:50,max:100,step:1,width:300})}function S9(){return b.jsxs(Xe,{flexDirection:"row",alignItems:"center",gap:8,children:[b.jsx(n3,{}),b.jsx(as,{children:b.jsx(lt,{children:"Airplane Mode"})})]})}function _9(){return b.jsxs(zD,{defaultValue:"account",width:400,children:[b.jsxs(VD,{width:"100%",children:[b.jsx(b1,{flexGrow:1,value:"account",children:b.jsx(lt,{children:"Account"})}),b.jsx(b1,{flexGrow:1,value:"password",children:b.jsx(lt,{children:"Password"})})]}),b.jsx(P1,{value:"account",children:b.jsxs(Rg,{children:[b.jsxs(M1,{children:[b.jsx(Q1,{children:b.jsx(lt,{children:"Account"})}),b.jsx(R1,{children:b.jsx(lt,{children:"Make changes to your account here. Click save when you're done."})})]}),b.jsxs(T1,{gap:8,children:[b.jsxs(Xe,{gap:4,children:[b.jsx(as,{children:b.jsx(lt,{children:"Name"})}),b.jsx(lt,{children:"Pedro Duarte"})]}),b.jsxs(Xe,{gap:4,children:[b.jsx(as,{children:b.jsx(lt,{children:"Username"})}),b.jsx(lt,{children:"@peduarte"})]})]}),b.jsx(D1,{children:b.jsx(Os,{children:b.jsx(lt,{children:"Save changes"})})})]})}),b.jsx(P1,{value:"password",children:b.jsxs(Rg,{children:[b.jsxs(M1,{children:[b.jsx(Q1,{children:b.jsx(lt,{children:"Password"})}),b.jsx(R1,{children:b.jsx(lt,{children:"Change your password here. After saving, you'll be logged out."})})]}),b.jsxs(T1,{gap:8,children:[b.jsxs(Xe,{gap:4,children:[b.jsx(as,{children:b.jsx(lt,{children:"Current password"})}),b.jsx(lt,{children:"password"})]}),b.jsxs(Xe,{gap:4,children:[b.jsx(as,{children:b.jsx(lt,{children:"New password"})}),b.jsx(lt,{children:"password"})]})]}),b.jsx(D1,{children:b.jsx(Os,{children:b.jsx(lt,{children:"Save password"})})})]})})]})}const Yw={default:{},outline:{containerProps:{border:1,borderColor:qe.input},containerHoverProps:{backgroundColor:qe.accent}}},w9={default:{height:40,paddingX:12},sm:{height:36,paddingX:10},lg:{height:44,paddingX:20}};function M9({children:n,size:e="default",variant:t="default",defaultChecked:i,checked:r,disabled:s=!1,onCheckedChange:o,hover:a,...l}){const[A,h]=H.useState(i??!1),d=r??A;return b.jsx(Xe,{onClick:s?void 0:()=>{r==null&&h(!d),o==null||o(!d)},alignItems:"center",justifyContent:"center",borderRadius:6,cursor:s?void 0:"pointer",backgroundOpacity:s?.5:void 0,borderOpacity:s?.5:void 0,backgroundColor:d?qe.accent:void 0,hover:s?a:{backgroundColor:qe.muted,...Yw[t].containerHoverProps,...a},...Yw[t].containerProps,...w9[e],...l,children:b.jsx(xn,{color:d?qe.accentForeground:void 0,opacity:s?.5:void 0,fontSize:14,lineHeight:1.43,fontWeight:"medium",children:n})})}function Q9(){return b.jsx(M9,{children:b.jsx(OD,{height:16,width:16})})}const Xw={default:{},outline:{containerProps:{border:1,borderColor:qe.input},containerHoverProps:{backgroundColor:qe.accent}}},R9={default:{height:40,paddingX:12},sm:{height:36,paddingX:10},lg:{height:44,paddingX:20}},r3=H.createContext(null);function T9({children:n,size:e="default",variant:t="default",...i}){return b.jsx(Xe,{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:4,...i,children:b.jsx(r3.Provider,{value:{variant:t,size:e},children:n})})}function _C({children:n,defaultChecked:e,checked:t,disabled:i=!1,onCheckedChange:r,hover:s,...o}){const{size:a,variant:l}=H.useContext(r3),[A,h]=H.useState(e??!1),d=t??A;return b.jsx(Xe,{onClick:i?void 0:()=>{t==null&&h(!d),r==null||r(!d)},alignItems:"center",justifyContent:"center",borderRadius:6,cursor:i?void 0:"pointer",backgroundOpacity:i?.5:void 0,borderOpacity:i?.5:void 0,backgroundColor:d?qe.accent:void 0,hover:i?s:{backgroundColor:qe.muted,...Xw[l].containerHoverProps,...s},...Xw[l].containerProps,...R9[a],...o,children:b.jsx(xn,{color:d?qe.accentForeground:void 0,opacity:i?.5:void 0,fontSize:14,lineHeight:1.43,children:n})})}function D9(){return b.jsxs(T9,{children:[b.jsx(_C,{"aria-label":"Toggle bold",children:b.jsx(OD,{height:16,width:16})}),b.jsx(_C,{"aria-label":"Toggle italic",children:b.jsx(U6,{height:16,width:16})}),b.jsx(_C,{"aria-label":"Toggle underline",children:b.jsx(j6,{width:16,height:16})})]})}const wC={accordion:Lz,alert:Hz,"alert-dialog":Zz,avatar:e9,badge:i9,button:r9,card:s9,checkbox:a9,dialog:l9,pagination:g9,progress:E9,"radio-group":y9,separator:v9,skeleton:I9,slider:B9,switch:S9,tabs:_9,toggle:Q9,"toggle-group":D9,tooltip:Pz},b9="card";function P9(){const[n,e]=H.useState(()=>{let o=new URLSearchParams(window.location.search).get("component");return(o==null||!(o in wC))&&(o=b9),o}),t=s=>{const o=new URLSearchParams(window.location.search);o.set("component",s),history.replaceState(null,"","?"+o.toString()),e(s)},[i,r]=H.useState(()=>Aw());return b.jsxs(ZO,{events:Rz,style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:[b.jsx(Sz,{}),b.jsx("color",{attach:"background",args:["black"]}),b.jsx("ambientLight",{intensity:.5}),b.jsx("directionalLight",{intensity:0,position:[5,1,10]}),b.jsx(Z6,{children:b.jsx(y6,{scrollbarColor:"black",backgroundColor:qe.background,alignItems:"center",padding:32,children:b.jsxs(tz,{children:[b.jsxs(zD,{alignSelf:"stretch",flexGrow:1,value:n,onValueChange:t,children:[b.jsx(VD,{height:55,paddingBottom:10,overflow:"scroll",maxWidth:"100%",children:Object.keys(wC).map(s=>b.jsx(b1,{value:s,children:b.jsxs(lt,{children:[s[0].toUpperCase(),s.slice(1)]})},s))}),Object.entries(wC).map(([s,o])=>b.jsx(P1,{flexGrow:1,alignItems:"center",justifyContent:"center",value:s,children:b.jsx(Xe,{children:b.jsx(o,{})})},s))]}),b.jsxs(Rg,{padding:8,flexDirection:"row",gap:8,alignItems:"center",children:[b.jsx(Os,{size:"icon",variant:"ghost",onClick:()=>{uG(i==="light"?"dark":i==="dark"?"system":"light"),r(Aw())},children:i==="dark"?b.jsx(k6,{}):i==="system"?b.jsx(z6,{}):b.jsx(W6,{})}),b.jsx(jp,{orientation:"vertical"}),b.jsxs(lt,{padding:8,children:["npx uikit component add default ",n]}),b.jsx(Os,{onClick:()=>navigator.clipboard.writeText(`npx uikit component add apfel ${n}`),size:"icon",variant:"secondary",children:b.jsx(N6,{})})]})]})})})]})}aQ(document.getElementById("root")).render(b.jsx(H.StrictMode,{children:b.jsx(P9,{})})); + `)}class TH extends $t{constructor(t,i,r){const s=RD();super(s);be(this,"count",0);be(this,"isInstancedMesh",!0);be(this,"instanceColor",null);be(this,"morphTexture",null);be(this,"boundingBox",new ri);be(this,"boundingSphere",new $n);this.instanceMatrix=t,this.frustumCulled=!1,s.attributes.aData=i,s.attributes.aClipping=r,this.customDepthMaterial=MH,this.customDistanceMaterial=QH}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class DH extends Hr{constructor(t,i,r,s,o,a){super();be(this,"mesh");be(this,"instanceMatrix");be(this,"instanceData");be(this,"instanceClipping");be(this,"buckets",[]);be(this,"elementCount",0);be(this,"bufferElementSize",0);be(this,"timeToNextUpdate");be(this,"activateElement",(t,i,r)=>{const s=i.offset+r;this.instanceData.set(bD,16*s),this.instanceData.addUpdateRange(16*s,16),this.instanceData.needsUpdate=!0,t.activate(i,r)});be(this,"setElementIndex",(t,i)=>{t.setIndexInBucket(i)});be(this,"bufferCopyWithin",(t,i,r)=>{lC(this.instanceMatrix,t,i,r),lC(this.instanceData,t,i,r),lC(this.instanceClipping,t,i,r)});be(this,"clearBufferAt",t=>{const i=t*16;this.instanceMatrix.array.fill(0,i,i+16),this.instanceMatrix.addUpdateRange(i,16),this.instanceMatrix.needsUpdate=!0});this.material=t,this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.meshReceiveShadow=o,this.meshCastShadow=a}updateCount(){const t=this.buckets[this.buckets.length-1],i=t.offset+t.elements.length;this.mesh!=null&&(this.mesh.count=i),this.visible=i>0}insert(t,i){if(this.elementCount+=1,!vH(this.buckets,t,i,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(t,i,r){if(this.elementCount-=1,!IH(this.buckets,t,r,i,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(t){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=t,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(t){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,t)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),xH(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const t=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),yH(this.buckets,t,this.bufferElementSize);const i=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&i.set(this.instanceMatrix.array.subarray(0,i.length)),this.instanceMatrix=new xr(i,16,!1),this.instanceMatrix.setUsage(ga);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new xr(r,16,!1),this.instanceData.setUsage(ga);const s=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&s.set(this.instanceClipping.array.subarray(0,s.length)),this.instanceClipping=new xr(s,16,!1),this.instanceClipping.setUsage(ga),this.mesh=new TH(this.instanceMatrix,this.instanceData,this.instanceClipping),rc(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function lC(n,e,t,i){const r=n.itemSize,s=t*r,o=i*r,a=e*r;n.array.copyWithin(a,s,o);const l=o-s;n.addUpdateRange(s,l),n.addUpdateRange(a,l),n.needsUpdate=!0}const Rw={backgroundColor:(n,e,t)=>_1(n.instanceData,e,t??DD,4),borderBottomLeftRadius:(n,e,t,{value:i})=>yp(n.instanceData,e,7,0,t,i[1]),borderBottomRightRadius:(n,e,t,{value:i})=>yp(n.instanceData,e,7,1,t,i[1]),borderTopRightRadius:(n,e,t,{value:i})=>yp(n.instanceData,e,7,2,t,i[1]),borderTopLeftRadius:(n,e,t,{value:i})=>yp(n.instanceData,e,7,3,t,i[1]),borderColor:(n,e,t)=>_1(n.instanceData,e,t??16777215,8),borderBend:(n,e,t)=>cC(n.instanceData,e,11,t??0),borderOpacity:(n,e,t)=>cC(n.instanceData,e,12,t??1),backgroundOpacity:(n,e,t)=>cC(n.instanceData,e,15,t??-1)},bH=["borderOpacity","backgroundColor","backgroundOpacity"],Cp=new ht,PH=new ht;class NI{constructor(e,t,i,r,s,o,a,l){be(this,"indexInBucket");be(this,"bucket");be(this,"unsubscribeList",[]);be(this,"unsubscribeVisible");be(this,"destroyed",!1);be(this,"insertedIntoGroup",!1);be(this,"active",Ht(!1));be(this,"getProperty",Ht(void 0));this.group=e,this.matrix=t,this.size=i,this.offset=r,this.borderInset=s,this.clippingRect=o,this.minorIndex=l,this.unsubscribeVisible=qt(()=>{const A=this.getProperty.value;if(A!=null&&TD(s,i,a,A("borderOpacity"),A("backgroundOpacity"),A("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return bH.includes(e)}hasImmediateProperty(e){return e in Rw}setProperty(e,t){const i=this.getIndexInBuffer();i!=null&&Rw[e](this.group,i,t,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,t){this.bucket=e,this.indexInBucket=t,this.active.value=!0,this.unsubscribeList.push(qt(()=>{const i=this.matrix.value;if(i==null)return;const{instanceMatrix:r,pixelSize:s}=this.group,o=this.getIndexInBuffer();if(o==null)return;const a=o*16,[l,A]=this.size.value;if(Cp.makeScale(l*s,A*s,1),this.offset!=null){const[h,d]=this.offset.value;Cp.premultiply(PH.makeTranslation(h*s,d*s,0))}Cp.premultiply(i),Cp.toArray(r.array,a),r.addUpdateRange(a,16),r.needsUpdate=!0}),qt(()=>{const[i,r]=this.size.value,{instanceData:s}=this.group,{array:o}=s,a=this.getIndexInBuffer();if(a==null)return;const l=a*16+13;o[l]=i,o[l+1]=r,s.addUpdateRange(l,2),s.needsUpdate=!0}),qt(()=>{const{instanceData:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16+0;i.array.set(this.borderInset.value,s),i.addUpdateRange(s,4),i.needsUpdate=!0}),qt(()=>{var a;const{instanceClipping:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16,o=(a=this.clippingRect)==null?void 0:a.value;o!=null?o.toArray(i.array,s):i.array.set(bg,s),i.addUpdateRange(s,16),i.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let t=0;te.hasImmediateProperty.bind(e),[e]),a=k.useCallback(l=>{if(!i.current){r.current=l;return}Tw(l,r.current,s.current,e),r.current=l},[e]);Ci(()=>{if(i.current=e.active.value,!i.current){Dw(s.current),s.current={};return}return Tw(r.current,LH,s.current,e),()=>{Dw(s.current),s.current={}}},[e]),cD(n,o,a,t)}function Tw(n,e,t,i){var r,s;for(const o in n){const a=n[o];if(o in e){const l=e[o];if(delete e[o],uD(a,l))continue;(r=t[o])==null||r.call(t)}t[o]=qt(()=>{const l=v1(a);i.setProperty(o,l)})}for(const o in e)(s=t[o])==null||s.call(t),delete t[o],v1(e[o])!==void 0&&i.setProperty(o,void 0)}function Dw(n){for(const e in n)n[e]()}function bo({handlers:n,hoverHandlers:e,activeHandlers:t,inputHandlers:i,matrix:r,children:s,groupRef:o}){return k.useEffect(()=>{const a=o.current;if(a!=null)return qt(()=>r.value!=null&&a.matrix.copy(r.value))},[o,r]),D.jsx("group",{ref:o,onPointerOut:aa(n.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:aa(n.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:aa(n.onPointerUp,aa(t==null?void 0:t.onPointerUp,i==null?void 0:i.onPointerUp)),onPointerDown:aa(n.onPointerDown,aa(t==null?void 0:t.onPointerDown,i==null?void 0:i.onPointerDown)),onPointerLeave:aa(n.onPointerLeave,t==null?void 0:t.onPointerLeave),onPointerMove:aa(n.onPointerMove,i==null?void 0:i.onPointerMove),onWheel:n.onWheel,onClick:n.onClick,onContextMenu:n.onContextMenu,onDoubleClick:n.onDoubleClick,onPointerCancel:n.onPointerCancel,onPointerEnter:n.onPointerEnter,onPointerMissed:n.onPointerMissed,matrixAutoUpdate:!1,children:s})}function aa(n,e){return n==null?e:e==null?n:t=>{e(t),!t.stopped&&n(t)}}function sc(n,e,t,i){const r=zs(),s=k.useMemo(()=>{const o=new $t(LI);return o.matrixAutoUpdate=!1,o.raycast=Ou(o,MD(o),i,r,t),o.visible=!1,o},[r,t,i]);return Ci(()=>{const[o,a]=n.value;s.scale.set(o*e.pixelSize,a*e.pixelSize,1),s.updateMatrix()},[n,e]),s}const OD=k.createContext(void 0);function UI(){const n=k.useContext(OD);if(n==null)throw new Error("Can only be used inside a component.");return n}function NH(n,e,t,i,r,s,o){const{materials:a,setter:l}=k.useMemo(()=>{const A=new wH(e,t,i),h={data:A.data,type:"normal"},d=PD(r??lr,h),f=new ND(h),g=new LD(h);return d.clippingPlanes=s,f.clippingPlanes=s,g.clippingPlanes=s,{materials:[d,f,g],setter:A}},[e,t,i,r,s]);return Kr(n,l,o),Qm(n,l,o),k.useEffect(()=>()=>l.destroy(),[l]),a}function Vs(n=lr,{castShadow:e=!1,receiveShadow:t=!1}){return k.useMemo(()=>({materialClass:n,castShadow:e,receiveShadow:t}),[n,e,t])}function Xa(n,e,t,i,r,s,o,a,l,A,h){const d=h??UI(),f=k.useMemo(()=>new NI(d(o.majorIndex,l),e,t,i,r,a,s,o.minorIndex),[d,e,t,r,a,s,o,i,l]);k.useEffect(()=>()=>f.destroy(),[f]),Kr(n,f,A),Qm(n,f,A)}function UH(n,e,t){const i=k.useMemo(()=>new Map,[]),r=k.useCallback((s,{materialClass:o,receiveShadow:a,castShadow:l})=>{let A=i.get(o);A==null&&i.set(o,A=new Map);const h=(s<<2)+((a?1:0)<<1)+(l?1:0);let d=A.get(h);if(d==null){const f=PD(o,{type:"instanced"});A.set(h,d=new DH(f,n,e,{elementType:di.Panel,majorIndex:s,minorIndex:0},a,l)),t.add(d)}return d},[n,i,e,t]);return jr((s,o)=>{for(const a of i.values())for(const l of a.values())l.onFrame(o)}),r}const FH=OD.Provider,D1=[],Zp=[];function kH(n,e){D1.push(n),Zp.push(e),document.body.style.cursor=e}function bw(n){const e=D1.indexOf(n);e!=-1&&(D1.splice(e,1),Zp.splice(e,1),document.body.style.cursor=Zp[Zp.length-1]??"default")}function Po(n,e,t){const i=k.useMemo(()=>Ht([]),[]),r=k.useMemo(()=>Ao(()=>i.value.length>0),[]);let s=!1;ku(e,a=>{a.hover!=null&&(s=!0,r(n,a.hover))}),k.useEffect(()=>()=>bw(i),[]);const o=e.cursor??t;if(!s&&e.onHoverChange==null&&o==null){i.value.length=0;return}return{onPointerOver:a=>{i.value=[a.pointerId,...i.value],e.onHoverChange!=null&&i.value.length===1&&e.onHoverChange(!0),o!=null&&kH(i,o)},onPointerOut:a=>{i.value=i.value.filter(l=>l!=a.pointerId),e.onHoverChange!=null&&i.value.length===0&&e.onHoverChange(!1),bw(i)}}}function Rm(n){return(e,t,i,r)=>{if(i(e)){r(e,t);return}const s=n[e];if(s==null)return;const o=s.length;if(i(s[0]))for(let a=0;aHt([0,0]),[])}function WH(n,e,t){return k.useMemo(()=>bn(()=>{const i=t.value;if(i==null)return;const[r,s]=n.value,{pixelSize:o}=e;return new ht().makeTranslation(-r*o,s*o,0).premultiply(i)}),[n,e,t])}function YH({node:n,scrollPosition:e,children:t}){const i=k.useRef(null);return k.useEffect(()=>qt(()=>{var a,l;const[r,s]=e.value,{pixelSize:o}=n;(a=i.current)==null||a.position.set(-r*o,s*o,0),(l=i.current)==null||l.updateMatrix()}),[n,e]),D.jsx("group",{ref:i,children:t})}function ld({listeners:n,node:e,scrollPosition:t,children:i}){const[r,s]=k.useState(()=>e.scrollable.value.some(d=>d));Ci(()=>s(e.scrollable.value.some(d=>d)),[e]);const o=k.useRef(n.onScroll);o.current=n.onScroll;const a=k.useMemo(()=>new Map,[]),l=k.useMemo(()=>new Be,[]),A=k.useCallback((d,f,g,E,v)=>{var P,q;const[C,p]=d==null?[!1,!1]:XH(d.nativeEvent);C&&(f=0),p&&(g=0);const[y,I]=t.value,[B,R]=e.maxScrollPosition.value;let[M,T]=t.value;const[U,K]=((P=e.anyAncestorScrollable)==null?void 0:P.value)??[!1,!1];M=Pw(y,B,f,v&&!U),T=Pw(I,R,g,v&&!K),E!=null&&E>0&&l.set(f,g).divideScalar(E),d!=null&&JH(d.nativeEvent,C||Math.min(y,(B??0)-y)>5,p||Math.min(I,(R??0)-I)>5),!(((q=o.current)==null?void 0:q.call(o,M,T,t,d))===!1||y===M&&I===T)&&(t.value=[M,T])},[e,t,l]);jr((d,f)=>{if(a.size>0)return;let g=0,E=0;const[v,C]=t.value,[p,y]=e.maxScrollPosition.value;g+=b1(v,0,p??0)*-.3,E+=b1(C,0,y??0)*-.3,g+=l.x*f,E+=l.y*f,l.multiplyScalar(.9),Math.abs(l.x)<.01&&(l.x=0),Math.abs(l.y)<.01&&(l.y=0),!(g===0&&E===0)&&A(void 0,g,E,void 0,!0)});const h=k.useRef(null);return r?D.jsx("group",{ref:h,matrixAutoUpdate:!1,onPointerDown:d=>{let f=a.get(d.pointerId);f==null&&a.set(d.pointerId,f={timestamp:0,point:new H}),f.timestamp=performance.now()/1e3,h.current.worldToLocal(f.point.copy(d.point))},onPointerUp:d=>{a.delete(d.pointerId)},onPointerLeave:d=>{a.delete(d.pointerId)},onPointerCancel:d=>{a.delete(d.pointerId)},onContextMenu:d=>d.nativeEvent.preventDefault(),onPointerMove:d=>{const f=a.get(d.pointerId);if(f==null)return;h.current.worldToLocal(AC.copy(d.point)),uC.copy(AC).sub(f.point).divideScalar(e.pixelSize);const g=performance.now()/1e3,E=g-f.timestamp;f.point.copy(AC),f.timestamp=g,!d.defaultPrevented&&A(d,-uC.x,uC.y,E,!0)},onWheel:d=>{d.defaultPrevented||A(d,d.deltaX,d.deltaY,void 0,!1)},children:i}):D.jsx("group",{matrixAutoUpdate:!1,children:i})}const HD=Symbol("was-scrolled");function XH(n){return n[HD]??[!1,!1]}function JH(n,e,t){n[HD]=[e,t]}function Pw(n,e,t,i){if(t===0)return n;const r=b1(n,0,e??0);Lw(t)===Lw(r)&&(t*=Math.max(0,1-Math.abs(r)/100));let s=n+t;return i&&e!=null?s:PI(s,0,e??0)}function Lw(n){return n>=0}function b1(n,e,t){return nt?n-t:0}const Nw=9;function zD(n){return n[Nw].toLowerCase()+n.slice(Nw+1)}const jH=(n,e,t,i)=>{if(n.startsWith("scrollbarBorder")){if(n=zD(n),t(n)){i(n,e);return}OH(n,e,t,i)}},KH=(n,e,t,i)=>{if(n.startsWith("scrollbar")){if(n==="scrollbarOpacity"){i("backgroundOpacity",e);return}if(n==="scrollbarColor"){i("backgroundColor",e);return}if(n=zD(n),t(n)){i(n,e);return}No(n,e,t,i)}};function cd(n,e,t,i,r,s,o,a,l){const A=Vs(s,{castShadow:!1,receiveShadow:!1}),h=Li(di.Panel,void 0,A,a),d=ps(n,qH),f=ps(n,ZH,jH),g=k.useMemo(()=>bn(()=>{const C=f.value;return[(C==null?void 0:C("scrollbarBorderTop"))??0,(C==null?void 0:C("scrollbarBorderRight"))??0,(C==null?void 0:C("scrollbarBorderBottom"))??0,(C==null?void 0:C("scrollbarBorderLeft"))??0]}),[f]),E=n.length;Uw(n,0,e,t,i,r,s,o,h,l,d,g),Uw(n,1,e,t,i,r,s,o,h,l,d,g);const v=n.length;for(let C=E;C{const v=bn(()=>{const C=h.value;if(C!=null)return $H(e,C("scrollbarWidth")??10,i.size.value,i.maxScrollPosition.value,i.borderInset.value,t.value)});return[bn(()=>{var C;return((C=v.value)==null?void 0:C.slice(0,2))??[0,0]}),bn(()=>{var C;return((C=v.value)==null?void 0:C.slice(2,4))??[0,0]})]},[e,i,t,h]),E=k.useMemo(()=>({materialClass:o??lr,receiveShadow:!1,castShadow:!1}),[o]);Xa(n,r,g,f,d,s,l,a,E,KH,A)}function $H(n,e,t,i,r,s){const o=[0,0,0,0],a=i[n];if(a==null)return o;const l=1-n,A=t[n]-r[l]-r[l+2],h=Math.max(e,A*A/(a+A)),d=A-h,f=s[n];return o[n]=t[n]*.5-h*.5-r[(n+3)%4]-d*PI(f/a,0,1),o[l]=t[l]*.5-e*.5-r[l+1],n===0&&(o[0]*=-1,o[1]*=-1),o[n+2]=h,o[l+2]=e,o}function Ja(n,e,t,i){k.useImperativeHandle(n,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:t instanceof $t?t:t.current,scrollPosition:i}),[t,e,i])}function Uo({onSizeChange:n},e){const t=k.useMemo(()=>{if(n==null)return;let i=!0;return qt(()=>{const r=e.value;if(i){i=!1;return}n(...r)})},[n,e]);k.useEffect(()=>t,[t])}function ja({onIsInViewportChange:n},e){const t=k.useMemo(()=>{if(n==null)return;let i=!0;return qt(()=>{const r=!e.value;if(i){i=!1;return}n(r)})},[e,n]);k.useEffect(()=>t,[t])}function Ka(n){const e=k.useContext(VD);if(e==null)throw new Error("Can only be used inside a uikit component.");return k.useMemo(()=>bn(()=>{const t=n.value,i=e.value;if(!(t==null||i==null))return i.clone().multiply(t)}),[n,e])}const VD=k.createContext(void 0),e6=VD.Provider;function ud({globalMatrix:n,node:e,scrollPosition:t,children:i,orderInfo:r}){const s=zs(),o=PG(n,e.size,e.borderInset,e.overflow,e,s),a=WH(t,e,n);return D.jsx(YH,{node:e,scrollPosition:t,children:D.jsx(e6,{value:a,children:D.jsx(bI,{value:e,children:D.jsx(DG,{value:o,children:D.jsx(YG,{value:r,children:i})})})})})}const WD="transformTranslateX",YD="transformTranslateY",XD="transformTranslateZ",JD="transformRotateX",jD="transformRotateY",KD="transformRotateZ",qD="transformScaleX",ZD="transformScaleY",$D="transformScaleZ",t6=[WD,YD,XD,JD,jD,KD,qD,ZD,$D],n6=new H,i6=new H,vp=new H,hC=new ht,r6=new Pu,s6=new Yn,dC=Math.PI/180;function o6([n,e,t]){return s6.setFromEuler(r6.set(n*dC,e*dC,t*dC))}function Fo(n,e){const t=ps(n,t6,VH);return k.useMemo(()=>bn(()=>{const i=t.value;if(i==null)return;const{pixelSize:r,relativeCenter:s}=e,[o,a]=s.value,l=new ht().makeTranslation(o*r,a*r,0),A=i("transformOriginX")??"center",h=i("transformOriginY")??"center";let d=!0;if(A!="center"||h!="center"){const[v,C]=e.size.value;d=!1,vp.set(-dD[A]*v*r,-fD[h]*C*r,0),l.multiply(hC.makeTranslation(vp)),vp.negate()}const f=[i(JD)??0,i(jD)??0,i(KD)??0],g=[i(WD)??0,-(i(YD)??0),i(XD)??0],E=[i(qD)??1,i(ZD)??1,i($D)??1];return(g.some(v=>v!=0)||f.some(v=>v!=0)||E.some(v=>v!=1))&&l.multiply(hC.compose(n6.fromArray(g).multiplyScalar(r),o6(f),i6.fromArray(E))),d||l.multiply(hC.makeTranslation(vp)),l}),[t,e])}function ko(n,e){const t=k.useMemo(()=>Ht([]),[]),i=k.useMemo(()=>Ao(()=>t.value.length>0),[]);let r=!1;if(ku(e,o=>{o.active!=null&&(r=!0,i(n,o.active))}),!r&&e.onActiveChange==null){t.value.length=0;return}const s=o=>{t.value=t.value.filter(a=>a!=o.pointerId),!(e.onActiveChange==null||t.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{t.value=[o.pointerId,...t.value],!(e.onActiveChange==null||t.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:s,onPointerLeave:s}}k.forwardRef((n,e)=>{const t=Mo(),i=k.useRef(null),r=Ya(i);Kr(t,r,Lo);const s=Fo(t,r),o=Ka(s),a=zs(),l=Wa(a,o,r.size,r);Uo(n,r.size),ja(n,l);const A=Vs(n.panelMaterialClass,n),h=Li(di.Panel,n.zIndexOffset,A);Xa(t,o,r.size,void 0,r.borderInset,l,h,a,A,No);const d=k.useRef(null),f=Va(),g=Li(di.Object,void 0,void 0,h),E=c6(t,d,f,r.cameraDistance,a,g);Ro(t,n),To(t,n),Do(t,n);const v=Po(t,n),C=ko(t,n),p=k.useMemo(()=>bn(()=>{const[B,R]=E.value;return B/R}),[E]);(n.keepAspectRatio??!0)&&hs(t,"aspectRatio",p),Qo(t);const y=k.useRef(null);k.useEffect(()=>qt(()=>{const[B,R]=r.size.value,[M,T,U,K]=r.paddingInset.value,[w,P,q,fe]=r.borderInset.value,J=M+w,re=T+P,ne=U+q,ue=K+fe,F=B-ue-re,ee=R-J-ne,{pixelSize:te}=r,{current:Ae}=y;Ae==null||Ae.position.set((ue-re)*.5*te,(ne-J)*.5*te,0);const[,ye,Oe]=E.value;Ae==null||Ae.scale.set(F*te,ee*te,n.keepAspectRatio?ee*te*Oe/ye:Oe),Ae==null||Ae.updateMatrix()}),[r,n.keepAspectRatio,E]);const I=sc(r.size,r,h,f);return Ja(e,r,I),D.jsxs(bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:v,activeHandlers:C,children:[D.jsx("primitive",{object:I}),D.jsx("group",{matrixAutoUpdate:!1,ref:y,children:D.jsx("group",{ref:d,matrixAutoUpdate:!1,children:D.jsx(bI,{value:void 0,children:n.children})})})]})});const fC=new ri,a6=new H().setScalar(.001),l6=["depthAlign"];function c6(n,e,t,i,r,s){const o=k.useMemo(()=>Ht(new H(1,1,1)),[]),a=od(r,t),l=ps(n,l6);return k.useEffect(()=>{const A=e.current;if(A==null)return;A.traverse(g=>{g instanceof $t&&(rc(g,i,s),g.material.clippingPlanes=a,g.material.needsUpdate=!0,g.raycast=Ou(g,g.raycast,t,r,s))});const h=A.parent;h==null||h.remove(A),fC.setFromObject(A);const d=new H,f=new H;return fC.getSize(d).max(a6),o.value=d,A.scale.set(1,1,1).divide(d),h!=null&&h.add(A),fC.getCenter(f),qt(()=>{const g=l.value;g!=null&&(A.position.copy(f).negate(),A.position.z-=xG[g("depthAlign")??"back"]*d.z,A.position.divide(d),A.updateMatrix())})},[l,i,a,t]),o}const Je=k.forwardRef((n,e)=>{const t=Mo(),i=k.useRef(null),r=Ya(i);Kr(t,r,Lo);const s=Fo(t,r),o=zs(),a=Ka(s),l=Wa(o,a,r.size,r),A=Vs(n.panelMaterialClass,n),h=Li(di.Panel,n.zIndexOffset,A);Xa(t,a,r.size,void 0,r.borderInset,l,h,o,A,No);const d=ad();cd(t,d,r,a,l,n.scrollbarPanelMaterialClass,o,h),Ro(t,n),To(t,n),Do(t,n);const f=Po(t,n),g=ko(t,n);Qo(t),Uo(n,r.size),ja(n,l);const E=Va(),v=sc(r.size,r,h,E);return Ja(e,r,v,d),D.jsxs(bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:f,activeHandlers:g,children:[D.jsx(ld,{listeners:n,node:r,scrollPosition:d,children:D.jsx("primitive",{object:v})}),D.jsx(ud,{globalMatrix:a,node:r,orderInfo:h,scrollPosition:d,children:n.children})]})});k.forwardRef((n,e)=>{const t=Mo(),i=k.useRef(null),r=Ya(i);Kr(t,r,Lo);const s=Fo(t,r),o=zs(),a=Va(),l=od(o,a),A=Li(di.Custom,n.zIndexOffset,void 0),h=k.useRef(null),d=Ka(s),f=Wa(o,d,r.size,r);k.useEffect(()=>{const v=h.current;if(v==null)return;v.raycast=Ou(v,v.raycast,a,o,A),rc(v,r.cameraDistance,A),v.material instanceof fi&&(v.material.clippingPlanes=l,v.material.needsUpdate=!0,v.material.shadowSide=Xr);const C=qt(()=>{const[y,I]=r.size.value;v.scale.set(y*r.pixelSize,I*r.pixelSize,1),v.updateMatrix()}),p=qt(()=>void(v.visible=!f.value));return()=>{C(),p()}},[l,r,f,o,A,a]),Ro(t,n),To(t,n),Do(t,n);const g=Po(t,n),E=ko(t,n);return Qo(t),Uo(n,r.size),ja(n,f),Ja(e,r,h),D.jsx(bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:g,activeHandlers:E,children:D.jsx("mesh",{receiveShadow:n.receiveShadow,castShadow:n.castShadow,customDepthMaterial:n.customDepthMaterial,customDistanceMaterial:n.customDistanceMaterial,ref:h,matrixAutoUpdate:!1,geometry:LI,children:D.jsx(bI,{value:void 0,children:n.children})})})});const u6="fill",A6=(n,e,t,i)=>{if(n==="opacity"){i("backgroundOpacity",e);return}No(n,e,t,i)},e3=k.forwardRef((n,e)=>{const t=Mo(),i=pD(p6,n.src),r=k.useMemo(()=>bn(()=>{const I=i.value;if(I==null)return;const B=I.source.data;return B.width/B.height}),[i]),s=k.useRef(null),o=Ya(s);Kr(t,o,Lo),d6(t,i,o.borderInset,o.size);const a=Fo(t,o),l=zs(),A=Va(),h=od(l,A),d=Ka(a),f=Wa(l,d,o.size,o),g=NH(t,o.size,o.borderInset,f,n.materialClass,h,A6),E=Li(di.Image,n.zIndexOffset,void 0),v=k.useMemo(()=>{const[I,B,R]=g,M=new $t(LI,I);return M.matrixAutoUpdate=!1,M.castShadow=n.castShadow??!1,M.receiveShadow=n.receiveShadow??!1,M.customDepthMaterial=B,M.customDistanceMaterial=R,M.raycast=Ou(M,MD(M),A,l,E),rc(M,o.cameraDistance,E),M},[o,g,A,l,E,n.receiveShadow,n.castShadow]),C=ad();cd(t,C,o,d,f,n.scrollbarPanelMaterialClass,l,E),Ro(t,n),To(t,n),Do(t,n);const p=Po(t,n),y=ko(t,n);return hs(t,"backgroundColor",16777215),(n.keepAspectRatio??!0)&&hs(t,"aspectRatio",r),Qo(t),Uo(n,o.size),ja(n,f),Ci(()=>{const I=i.value??null;v.material.map!==I&&(v.material.map=I,v.material.needsUpdate=!0)},[v,i]),Ci(()=>{const[I,B]=o.size.value;v.scale.set(I*o.pixelSize,B*o.pixelSize,1),v.updateMatrix()},[v]),Ci(()=>void(v.visible=!f.value),[v,f]),Ja(e,o,v,C),D.jsxs(bo,{groupRef:s,hoverHandlers:p,handlers:n,matrix:a,activeHandlers:y,children:[D.jsx(ld,{listeners:n,node:o,scrollPosition:C,children:D.jsx("primitive",{object:v})}),D.jsx(ud,{globalMatrix:d,node:o,orderInfo:E,scrollPosition:C,children:n.children})]})}),h6=["fit"];function d6(n,e,t,i){const r=ps(n,h6);Ci(()=>{const s=r.value,o=e.value;if(o==null||s==null)return;const a=s("fit")??u6;if(o.matrix.identity(),a==="fill"||o==null){Fw(t,i,o);return}const{width:l,height:A}=o.source.data,h=l/A,[d,f]=i.value,[g,E,v,C]=t.value,p=(d-C-E)/(f-g-v);h>p?o.matrix.translate(-(.5*(p-h))/p,0).scale(p/h,1):o.matrix.translate(0,-(.5*(h-p))/h).scale(1,h/p),Fw(t,i,o)},[e,t,i])}function Fw(n,e,t){const[i,r]=e.value,[s,o,a,l]=n.value,A=i-l-o,h=r-s-a;t.matrix.translate(-1+(l+A)/i,-1+(s+h)/r).scale(i/A,r/h)}const f6=new CI;async function p6(n){if(n==null)return Promise.resolve(void 0);if(n instanceof Mn)return Promise.resolve(n);try{const e=await f6.loadAsync(n);return e.colorSpace=Vn,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function so(n,e,t){if(e==null)return t;const i=n[e];if(i==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(n).join(", ")}`);return i}function yn(n,e,t){return typeof n=="number"?Math.round(n/e):n??t}const g6={static:0,relative:1,absolute:2},pC={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},m6={column:0,"column-reverse":1,row:2,"row-reverse":3},E6={"no-wrap":0,wrap:1,"wrap-reverse":2},C6={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},y6={visible:0,hidden:1,scroll:2},v6={flex:0,none:1},kw={positionType:(n,e,t)=>n.setPositionType(so(g6,t,0)),positionTop:(n,e,t)=>n.setPosition(1,yn(t,e,NaN)),positionLeft:(n,e,t)=>n.setPosition(0,yn(t,e,NaN)),positionRight:(n,e,t)=>n.setPosition(2,yn(t,e,NaN)),positionBottom:(n,e,t)=>n.setPosition(3,yn(t,e,NaN)),alignContent:(n,e,t)=>n.setAlignContent(so(pC,t,1)),alignItems:(n,e,t)=>n.setAlignItems(so(pC,t,4)),alignSelf:(n,e,t)=>n.setAlignSelf(so(pC,t,0)),flexDirection:(n,e,t)=>n.setFlexDirection(so(m6,t,0)),flexWrap:(n,e,t)=>n.setFlexWrap(so(E6,t,0)),justifyContent:(n,e,t)=>n.setJustifyContent(so(C6,t,0)),marginTop:(n,e,t)=>n.setMargin(1,yn(t,e,NaN)),marginLeft:(n,e,t)=>n.setMargin(0,yn(t,e,NaN)),marginRight:(n,e,t)=>n.setMargin(2,yn(t,e,NaN)),marginBottom:(n,e,t)=>n.setMargin(3,yn(t,e,NaN)),flexBasis:(n,e,t)=>n.setFlexBasis(yn(t,e,NaN)),flexGrow:(n,e,t)=>n.setFlexGrow(t??0),flexShrink:(n,e,t)=>n.setFlexShrink(t??0),width:(n,e,t)=>n.setWidth(yn(t,e,NaN)),height:(n,e,t)=>n.setHeight(yn(t,e,NaN)),minWidth:(n,e,t)=>n.setMinWidth(yn(t,e,NaN)),minHeight:(n,e,t)=>n.setMinHeight(yn(t,e,NaN)),maxWidth:(n,e,t)=>n.setMaxWidth(yn(t,e,NaN)),maxHeight:(n,e,t)=>n.setMaxHeight(yn(t,e,NaN)),aspectRatio:(n,e,t)=>n.setAspectRatio(t??NaN),borderTop:(n,e,t)=>n.setBorder(1,yn(t,e,NaN)),borderLeft:(n,e,t)=>n.setBorder(0,yn(t,e,NaN)),borderRight:(n,e,t)=>n.setBorder(2,yn(t,e,NaN)),borderBottom:(n,e,t)=>n.setBorder(3,yn(t,e,NaN)),overflow:(n,e,t)=>n.setOverflow(so(y6,t,0)),display:(n,e,t)=>n.setDisplay(so(v6,t,0)),paddingTop:(n,e,t)=>n.setPadding(1,yn(t,e,NaN)),paddingLeft:(n,e,t)=>n.setPadding(0,yn(t,e,NaN)),paddingRight:(n,e,t)=>n.setPadding(2,yn(t,e,NaN)),paddingBottom:(n,e,t)=>n.setPadding(3,yn(t,e,NaN)),gapRow:(n,e,t)=>n.setGap(1,yn(t,e,NaN)),gapColumn:(n,e,t)=>n.setGap(0,yn(t,e,NaN))};function I6(n,e){return n.L===e.L}function x6(n,e,t){if(t==null){n.setMeasureFunc(null);return}n.setMeasureFunc((i,r,s,o)=>{const a=t(i*e,r,s*e,o);return{width:Math.ceil(Math.ceil(a.width)/e),height:Math.ceil(Math.ceil(a.height)/e)}}),n.markDirty()}class FI{constructor(e,t,i,r,s,o,a){be(this,"size",Ht([0,0]));be(this,"relativeCenter",Ht([0,0]));be(this,"borderInset",Ht([0,0,0,0]));be(this,"paddingInset",Ht([0,0,0,0]));be(this,"overflow",Ht(Gi.Overflow.Visible));be(this,"maxScrollPosition",Ht([void 0,void 0]));be(this,"scrollable",Ht([!1,!1]));be(this,"children",[]);be(this,"yogaNode");be(this,"unsubscribeYoga");be(this,"layoutChangeListeners",new Set);be(this,"requestCalculateLayout");be(this,"active",Ht(!1));this.groupRef=e,this.cameraDistance=t,this.yoga=i,this.precision=r,this.pixelSize=s,this.anyAncestorScrollable=a,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=qt(()=>{var l;i.value!=null&&((l=this.unsubscribeYoga)==null||l.call(this),this.unsubscribeYoga=void 0,this.yogaNode=i.value.Node.create(),this.active.value=!0)})}setProperty(e,t){e==="measureFunc"?x6(this.yogaNode,this.precision,t):kw[e](this.yogaNode,this.precision,t),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in kw}destroy(){var e,t;(e=this.unsubscribeYoga)==null||e.call(this),(t=this.yogaNode)==null||t.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),iD(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new FI(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,bn(()=>{var a;const[i,r]=((a=this.anyAncestorScrollable)==null?void 0:a.value)??[!1,!1],[s,o]=this.scrollable.value;return[i||s,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((a,l)=>{var g,E;if(e??(e=(E=(g=a.groupRef.current)==null?void 0:g.parent)==null?void 0:E.children),e==null)return 0;const A=a.groupRef.current,h=l.groupRef.current;if(A==null||h==null)return 0;const d=e.indexOf(A);if(d===-1)throw new Error("parent mismatch");const f=e.indexOf(h);if(f===-1)throw new Error("parent mismatch");return d-f});let t=0,i=this.yogaNode.getChild(t),r=this.children[t];for(;r!=null||i!=null;){if(r!=null&&i!=null&&I6(i,Gw(r.yogaNode))){r=this.children[++t],i=this.yogaNode.getChild(t);continue}if(i!=null&&this.yogaNode.removeChild(i),r!=null){const a=Gw(r.yogaNode);(o=a.getParent())==null||o.removeChild(a),this.yogaNode.insertChild(a,t),r=this.children[++t]}i=this.yogaNode.getChild(t)}const s=this.children.length;for(let a=0;a0,U>0)}else Hc(this.maxScrollPosition,void 0,void 0),Hc(this.scrollable,!1,!1);const B=this.overflow.value===Gi.Overflow.Visible;return[s+Math.max(i,B?y:0),o+Math.max(r,B?I:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function Hc(n,e,t){const[i,r]=n.value;i===e&&r===t||(n.value=[e,t])}function Ow(n,e,t,i,r){const[s,o,a,l]=n.value;s==e&&o==t&&a==i&&l==r||(n.value=[e,t,i,r])}function Gw(n){if(n==null)throw new Error("commit cannot be called with a children that miss a yoga node");return n}const B6=.1,t3=.002,Ip=new sn,Hw=new H,S6=k.forwardRef((n,e)=>{const t=Mo(),i=_m(U=>U.gl);k.useEffect(()=>VG(i),[i]);const{sizeX:r,sizeY:s}=n,[o,a]=k.useMemo(()=>[n.precision??B6,n.pixelSize??t3],[]),l=BG(),A=k.useMemo(()=>({current:0}),[]),h=k.useRef(null),d=EH(),f=k.useMemo(()=>new FI(h,A,l,o,a,d,void 0),[d,h,l]);Kr(t,f,Lo),k.useEffect(()=>()=>f.destroy(),[f]);const g=Fo(t,f),E=k.useMemo(()=>{const U=new Hr;return U.matrixAutoUpdate=!1,U},[]),v=UH(a,f.cameraDistance,E),C=rH(a,f.cameraDistance,E),p=Vs(n.panelMaterialClass,n),y=Li(di.Panel,void 0,p),I=w6(g,f.size,a,n),B=ad();cd(t,B,f,I,void 0,n.scrollbarPanelMaterialClass,void 0,y,v),Xa(t,I,f.size,void 0,f.borderInset,void 0,y,void 0,p,No,v),Ro(t,n),To(t,n),Do(t,n,f.size);const R=Po(t,n),M=ko(t,n);hs(t,"width",zw(r,a)),hs(t,"height",zw(s,a)),Qo(t),Uo(n,f.size);const T=sc(f.size,f,y,h);return Ja(e,f,T,B),jr(({camera:U})=>{Ip.normal.set(0,0,1),Ip.constant=0,Ip.applyMatrix4(T.matrixWorld),Hw.setFromMatrixPosition(U.matrixWorld),A.current=Ip.distanceToPoint(Hw)}),D.jsxs(D.Fragment,{children:[D.jsx("primitive",{object:E}),D.jsx(bo,{groupRef:h,matrix:I,handlers:n,hoverHandlers:R,activeHandlers:M,children:D.jsx(SG,{value:h,children:D.jsx(iH,{value:C,children:D.jsxs(FH,{value:v,children:[D.jsx(ld,{node:f,scrollPosition:B,listeners:n,children:D.jsx("primitive",{object:T})}),D.jsx(gH,{value:f.size,children:D.jsx(ud,{globalMatrix:I,node:f,orderInfo:y,scrollPosition:B,children:n.children})})]})})})})]})});function zw(n,e){return k.useMemo(()=>n===void 0?void 0:n instanceof On?bn(()=>{const t=n.value;if(t!=null)return t/e}):n/e,[n,e])}const _6=new ht;function w6(n,e,t,{anchorX:i="center",anchorY:r="center"}){return k.useMemo(()=>bn(()=>{var a;const[s,o]=e.value;return(a=n.value)==null?void 0:a.clone().premultiply(_6.makeTranslation(dD[i]*s*t,fD[r]*o*t,0))}),[n,e,i,r,t])}const M6=Vn;class Gu extends Ki{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,i,r){const s=this,o=new Os(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(a){try{t(s.parse(a))}catch(l){r?r(l):console.error(l),s.manager.itemError(e)}},i,r)}parse(e){const t=this;function i(Y,z){if(Y.nodeType!==1)return;const G=B(Y);let O=!1,me=null;switch(Y.nodeName){case"svg":z=E(Y,z);break;case"style":s(Y);break;case"g":z=E(Y,z);break;case"path":z=E(Y,z),Y.hasAttribute("d")&&(me=r(Y));break;case"rect":z=E(Y,z),me=l(Y);break;case"polygon":z=E(Y,z),me=A(Y);break;case"polyline":z=E(Y,z),me=h(Y);break;case"circle":z=E(Y,z),me=d(Y);break;case"ellipse":z=E(Y,z),me=f(Y);break;case"line":z=E(Y,z),me=g(Y);break;case"defs":O=!0;break;case"use":z=E(Y,z);const Se=(Y.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),V=Y.viewportElement.getElementById(Se);V?i(V,z):console.warn("SVGLoader: 'use node' references non-existent node id: "+Se);break}me&&(z.fill!==void 0&&z.fill!=="none"&&me.color.setStyle(z.fill,M6),M(me,Ae),q.push(me),me.userData={node:Y,style:z});const Ie=Y.childNodes;for(let oe=0;oe0?Ae.copy(J[J.length-1]):Ae.identity())}function r(Y){const z=new la,G=new Be,O=new Be,me=new Be;let Ie=!0,oe=!1;const Se=Y.getAttribute("d");if(Se===""||Se==="none")return null;const V=Se.match(/[a-df-z][^a-df-z]*/ig);for(let Ee=0,ie=V.length;Ee0&&(G.copy(me),z.currentPath.currentPoint.copy(G),Ie=!0);break;default:console.warn(le)}oe=!1}return z}function s(Y){if(!(!Y.sheet||!Y.sheet.cssRules||!Y.sheet.cssRules.length))for(let z=0;zme.trim());for(let me=0;meoe!==""));fe[O[me]]=Object.assign(fe[O[me]]||{},Ie)}}}function o(Y,z,G,O,me,Ie,oe,Se){if(z==0||G==0){Y.lineTo(Se.x,Se.y);return}O=O*Math.PI/180,z=Math.abs(z),G=Math.abs(G);const V=(oe.x-Se.x)/2,Ee=(oe.y-Se.y)/2,ie=Math.cos(O)*V+Math.sin(O)*Ee,le=-Math.sin(O)*V+Math.cos(O)*Ee;let de=z*z,Te=G*G;const $=ie*ie,_=le*le,b=$/de+_/Te;if(b>1){const Ne=Math.sqrt(b);z=Ne*z,G=Ne*G,de=z*z,Te=G*G}const se=de*_+Te*$,Pe=(de*Te-se)/se;let De=Math.sqrt(Math.max(0,Pe));me===Ie&&(De=-De);const Qe=De*z*le/G,je=-De*G*ie/z,Ve=Math.cos(O)*Qe-Math.sin(O)*je+(oe.x+Se.x)/2,Ze=Math.sin(O)*Qe+Math.cos(O)*je+(oe.y+Se.y)/2,ut=a(1,0,(ie-Qe)/z,(le-je)/G),It=a((ie-Qe)/z,(le-je)/G,(-ie-Qe)/z,(-le-je)/G)%(Math.PI*2);Y.currentPath.absellipse(Ve,Ze,z,G,ut,ut+It,Ie===0,O)}function a(Y,z,G,O){const me=Y*G+z*O,Ie=Math.sqrt(Y*Y+z*z)*Math.sqrt(G*G+O*O);let oe=Math.acos(Math.max(-1,Math.min(1,me/Ie)));return Y*O-z*G<0&&(oe=-oe),oe}function l(Y){const z=I(Y.getAttribute("x")||0),G=I(Y.getAttribute("y")||0),O=I(Y.getAttribute("rx")||Y.getAttribute("ry")||0),me=I(Y.getAttribute("ry")||Y.getAttribute("rx")||0),Ie=I(Y.getAttribute("width")),oe=I(Y.getAttribute("height")),Se=1-.551915024494,V=new la;return V.moveTo(z+O,G),V.lineTo(z+Ie-O,G),(O!==0||me!==0)&&V.bezierCurveTo(z+Ie-O*Se,G,z+Ie,G+me*Se,z+Ie,G+me),V.lineTo(z+Ie,G+oe-me),(O!==0||me!==0)&&V.bezierCurveTo(z+Ie,G+oe-me*Se,z+Ie-O*Se,G+oe,z+Ie-O,G+oe),V.lineTo(z+O,G+oe),(O!==0||me!==0)&&V.bezierCurveTo(z+O*Se,G+oe,z,G+oe-me*Se,z,G+oe-me),V.lineTo(z,G+me),(O!==0||me!==0)&&V.bezierCurveTo(z,G+me*Se,z+O*Se,G,z+O,G),V}function A(Y){function z(Ie,oe,Se){const V=I(oe),Ee=I(Se);me===0?O.moveTo(V,Ee):O.lineTo(V,Ee),me++}const G=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,O=new la;let me=0;return Y.getAttribute("points").replace(G,z),O.currentPath.autoClose=!0,O}function h(Y){function z(Ie,oe,Se){const V=I(oe),Ee=I(Se);me===0?O.moveTo(V,Ee):O.lineTo(V,Ee),me++}const G=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,O=new la;let me=0;return Y.getAttribute("points").replace(G,z),O.currentPath.autoClose=!1,O}function d(Y){const z=I(Y.getAttribute("cx")||0),G=I(Y.getAttribute("cy")||0),O=I(Y.getAttribute("r")||0),me=new Ma;me.absarc(z,G,O,0,Math.PI*2);const Ie=new la;return Ie.subPaths.push(me),Ie}function f(Y){const z=I(Y.getAttribute("cx")||0),G=I(Y.getAttribute("cy")||0),O=I(Y.getAttribute("rx")||0),me=I(Y.getAttribute("ry")||0),Ie=new Ma;Ie.absellipse(z,G,O,me,0,Math.PI*2);const oe=new la;return oe.subPaths.push(Ie),oe}function g(Y){const z=I(Y.getAttribute("x1")||0),G=I(Y.getAttribute("y1")||0),O=I(Y.getAttribute("x2")||0),me=I(Y.getAttribute("y2")||0),Ie=new la;return Ie.moveTo(z,G),Ie.lineTo(O,me),Ie.currentPath.autoClose=!1,Ie}function E(Y,z){z=Object.assign({},z);let G={};if(Y.hasAttribute("class")){const oe=Y.getAttribute("class").split(/\s/).filter(Boolean).map(Se=>Se.trim());for(let Se=0;Se0&&z.premultiply(J[J.length-1]),Ae.copy(z),J.push(z),z}function R(Y){const z=new Rt,G=re;if(Y.nodeName==="use"&&(Y.hasAttribute("x")||Y.hasAttribute("y"))){const O=I(Y.getAttribute("x")),me=I(Y.getAttribute("y"));z.translate(O,me)}if(Y.hasAttribute("transform")){const O=Y.getAttribute("transform").split(")");for(let me=O.length-1;me>=0;me--){const Ie=O[me].trim();if(Ie==="")continue;const oe=Ie.indexOf("("),Se=Ie.length;if(oe>0&&oe=1){const ie=Ee[0];let le=0;Ee.length>=2&&(le=Ee[1]),G.translate(ie,le)}break;case"rotate":if(Ee.length>=1){let ie=0,le=0,de=0;ie=Ee[0]*Math.PI/180,Ee.length>=3&&(le=Ee[1],de=Ee[2]),ne.makeTranslation(-le,-de),ue.makeRotation(ie),F.multiplyMatrices(ue,ne),ne.makeTranslation(le,de),G.multiplyMatrices(ne,F)}break;case"scale":if(Ee.length>=1){const ie=Ee[0];let le=ie;Ee.length>=2&&(le=Ee[1]),G.scale(ie,le)}break;case"skewX":Ee.length===1&&G.set(1,Math.tan(Ee[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":Ee.length===1&&G.set(1,0,0,Math.tan(Ee[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":Ee.length===6&&G.set(Ee[0],Ee[2],Ee[4],Ee[1],Ee[3],Ee[5],0,0,1);break}}z.premultiply(G)}}return z}function M(Y,z){function G(oe){te.set(oe.x,oe.y,1).applyMatrix3(z),oe.set(te.x,te.y)}function O(oe){const Se=oe.xRadius,V=oe.yRadius,Ee=Math.cos(oe.aRotation),ie=Math.sin(oe.aRotation),le=new H(Se*Ee,Se*ie,0),de=new H(-V*ie,V*Ee,0),Te=le.applyMatrix3(z),$=de.applyMatrix3(z),_=re.set(Te.x,$.x,0,Te.y,$.y,0,0,0,1),b=ne.copy(_).invert(),De=ue.copy(b).transpose().multiply(b).elements,Qe=P(De[0],De[1],De[4]),je=Math.sqrt(Qe.rt1),Ve=Math.sqrt(Qe.rt2);if(oe.xRadius=1/je,oe.yRadius=1/Ve,oe.aRotation=Math.atan2(Qe.sn,Qe.cs),!((oe.aEndAngle-oe.aStartAngle)%(2*Math.PI){const{x:mt,y:ct}=new H(Math.cos(wt),Math.sin(wt),0).applyMatrix3(Ne);return Math.atan2(ct,mt)};oe.aStartAngle=Lt(oe.aStartAngle),oe.aEndAngle=Lt(oe.aEndAngle),T(z)&&(oe.aClockwise=!oe.aClockwise)}}function me(oe){const Se=K(z),V=w(z);oe.xRadius*=Se,oe.yRadius*=V;const Ee=Se>Number.EPSILON?Math.atan2(z.elements[1],z.elements[0]):Math.atan2(-z.elements[3],z.elements[4]);oe.aRotation+=Ee,T(z)&&(oe.aStartAngle*=-1,oe.aEndAngle*=-1,oe.aClockwise=!oe.aClockwise)}const Ie=Y.subPaths;for(let oe=0,Se=Ie.length;oeNumber.EPSILON}function K(Y){const z=Y.elements;return Math.sqrt(z[0]*z[0]+z[1]*z[1])}function w(Y){const z=Y.elements;return Math.sqrt(z[3]*z[3]+z[4]*z[4])}function P(Y,z,G){let O,me,Ie,oe,Se;const V=Y+G,Ee=Y-G,ie=Math.sqrt(Ee*Ee+4*z*z);return V>0?(O=.5*(V+ie),Se=1/O,me=Y*Se*G-z*Se*z):V<0?me=.5*(V-ie):(O=.5*ie,me=-.5*ie),Ee>0?Ie=Ee+ie:Ie=Ee-ie,Math.abs(Ie)>2*Math.abs(z)?(Se=-2*z/Ie,oe=1/Math.sqrt(1+Se*Se),Ie=Se*oe):Math.abs(z)===0?(Ie=1,oe=0):(Se=-.5*Ie/z,Ie=1/Math.sqrt(1+Se*Se),oe=Se*Ie),Ee>0&&(Se=Ie,Ie=-oe,oe=Se),{rt1:O,rt2:me,cs:Ie,sn:oe}}const q=[],fe={},J=[],re=new Rt,ne=new Rt,ue=new Rt,F=new Rt,ee=new Be,te=new H,Ae=new Rt,ye=new DOMParser().parseFromString(e,"image/svg+xml");return i(ye.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:q,xml:ye.documentElement}}static createShapes(e){const i={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:i.ORIGIN,t:0};function s(v,C,p,y){const I=v.x,B=C.x,R=p.x,M=y.x,T=v.y,U=C.y,K=p.y,w=y.y,P=(M-R)*(T-K)-(w-K)*(I-R),q=(B-I)*(T-K)-(U-T)*(I-R),fe=(w-K)*(B-I)-(M-R)*(U-T),J=P/fe,re=q/fe;if(fe===0&&P!==0||J<=0||J>=1||re<0||re>1)return null;if(P===0&&fe===0){for(let ne=0;ne<2;ne++)if(o(ne===0?p:y,v,C),r.loc==i.ORIGIN){const ue=ne===0?p:y;return{x:ue.x,y:ue.y,t:r.t}}else if(r.loc==i.BETWEEN){const ue=+(I+r.t*(B-I)).toPrecision(10),F=+(T+r.t*(U-T)).toPrecision(10);return{x:ue,y:F,t:r.t}}return null}else{for(let F=0;F<2;F++)if(o(F===0?p:y,v,C),r.loc==i.ORIGIN){const ee=F===0?p:y;return{x:ee.x,y:ee.y,t:r.t}}const ne=+(I+J*(B-I)).toPrecision(10),ue=+(T+J*(U-T)).toPrecision(10);return{x:ne,y:ue,t:J}}}function o(v,C,p){const y=p.x-C.x,I=p.y-C.y,B=v.x-C.x,R=v.y-C.y,M=y*R-B*I;if(v.x===C.x&&v.y===C.y){r.loc=i.ORIGIN,r.t=0;return}if(v.x===p.x&&v.y===p.y){r.loc=i.DESTINATION,r.t=1;return}if(M<-Number.EPSILON){r.loc=i.LEFT;return}if(M>Number.EPSILON){r.loc=i.RIGHT;return}if(y*B<0||I*R<0){r.loc=i.BEHIND;return}if(Math.sqrt(y*y+I*I)w.t<=K.t+Number.EPSILON&&w.t>=K.t-Number.EPSILON)===void 0&&(p.push(K),y.push(new Be(K.x,K.y)))}}return y}function l(v,C,p){const y=new Be;C.getCenter(y);const I=[];return p.forEach(B=>{B.boundingBox.containsPoint(y)&&a(v,B.points).forEach(M=>{I.push({identifier:B.identifier,isCW:B.isCW,point:M})})}),I.sort((B,R)=>B.point.x-R.point.x),I}function A(v,C,p,y,I){(I==null||I==="")&&(I="nonzero");const B=new Be;v.boundingBox.getCenter(B);const R=[new Be(p,B.y),new Be(y,B.y)],M=l(R,v.boundingBox,C);M.sort((q,fe)=>q.point.x-fe.point.x);const T=[],U=[];M.forEach(q=>{q.identifier===v.identifier?T.push(q):U.push(q)});const K=T[0].point.x,w=[];let P=0;for(;P0&&w[w.length-1]===U[P].identifier?w.pop():w.push(U[P].identifier),P++;if(w.push(v.identifier),I==="evenodd"){const q=w.length%2===0,fe=w[w.length-2];return{identifier:v.identifier,isHole:q,for:fe}}else if(I==="nonzero"){let q=!0,fe=null,J=null;for(let re=0;re{const C=v.getPoints();let p=-999999999,y=999999999,I=-999999999,B=999999999;for(let R=0;Rp&&(p=M.y),M.yI&&(I=M.x),M.x=B&&(h=B-1),{curves:v.curves,points:C,isCW:As.isClockWise(C),identifier:-1,boundingBox:new bT(new Be(B,y),new Be(I,p))}});f=f.filter(v=>v.points.length>1);for(let v=0;vA(v,f,h,d,e.userData?e.userData.style.fillRule:void 0)),E=[];return f.forEach(v=>{if(!g[v.identifier].isHole){const p=new Qa;p.curves=v.curves,g.filter(I=>I.isHole&&I.for===v.identifier).forEach(I=>{const B=f[I.identifier],R=new Ma;R.curves=B.curves,p.holes.push(R)}),E.push(p)}}),E}static getStrokeStyle(e,t,i,r,s){return e=e!==void 0?e:1,t=t!==void 0?t:"#000",i=i!==void 0?i:"miter",r=r!==void 0?r:"butt",s=s!==void 0?s:4,{strokeColor:t,strokeWidth:e,strokeLineJoin:i,strokeLineCap:r,strokeMiterLimit:s}}static pointsToStroke(e,t,i,r){const s=[],o=[],a=[];if(Gu.pointsToStrokeWithBuffers(e,t,i,r,s,o,a)===0)return null;const l=new Pt;return l.setAttribute("position",new at(s,3)),l.setAttribute("normal",new at(o,3)),l.setAttribute("uv",new at(a,2)),l}static pointsToStrokeWithBuffers(e,t,i,r,s,o,a,l){const A=new Be,h=new Be,d=new Be,f=new Be,g=new Be,E=new Be,v=new Be,C=new Be,p=new Be,y=new Be,I=new Be,B=new Be,R=new Be,M=new Be,T=new Be,U=new Be,K=new Be;i=i!==void 0?i:12,r=r!==void 0?r:.001,l=l!==void 0?l:0,e=Ee(e);const w=e.length;if(w<2)return 0;const P=e[0].equals(e[w-1]);let q,fe=e[0],J;const re=t.strokeWidth/2,ne=1/(w-1);let ue=0,F,ee,te,Ae,ye=!1,Oe=0,Y=l*3,z=l*2;G(e[0],e[1],A).multiplyScalar(re),C.copy(e[0]).sub(A),p.copy(e[0]).add(A),y.copy(C),I.copy(p);for(let ie=1;ieNumber.EPSILON){const Te=re/de;d.multiplyScalar(-Te),f.subVectors(q,fe),g.copy(f).setLength(Te).add(d),U.copy(g).negate();const $=g.length(),_=f.length();f.divideScalar(_),E.subVectors(J,q);const b=E.length();switch(E.divideScalar(b),f.dot(U)<_&&E.dot(U)=r&&de.push(ie[Te]);return de.push(ie[ie.length-1]),de}}}const Q6=new Gu,xp=new ri,yl=new H;async function R6(n,e,t=lr,i,r,s,o){const a=new Hr;a.matrixAutoUpdate=!1;const l=await Q6.loadAsync(n);xp.makeEmpty();for(const d of l.paths){const f=Gu.createShapes(d),g=new t;g.transparent=!0,g.depthWrite=!1,g.toneMapped=!1,g.clippingPlanes=i;for(const E of f){const v=new Uu(E);v.computeBoundingBox(),xp.union(v.boundingBox);const C=new $t(v,g);C.matrixAutoUpdate=!1,C.raycast=Ou(C,C.raycast,s,r,o),rc(C,e,o),C.userData.color=d.color,C.scale.y=-1,C.updateMatrix(),a.add(C)}}xp.getSize(yl);const A=yl.x/yl.y,h=1/yl.y;return a.scale.set(1,1,1).multiplyScalar(h),xp.getCenter(yl),yl.y*=-1,a.position.copy(yl).negate().multiplyScalar(h),a.updateMatrix(),Object.assign(a,{aspectRatio:A})}const Vw=new Ke,T6=["color","opacity"];k.forwardRef((n,e)=>{const t=Mo(),i=k.useRef(null),r=Ya(i);Kr(t,r,Lo);const s=Fo(t,r),o=Ka(s),a=zs(),l=Wa(a,o,r.size,r),A=Vs(n.panelMaterialClass,n),h=Li(di.Panel,n.zIndexOffset,A);Xa(t,o,r.size,void 0,r.borderInset,l,h,a,A,No);const d=Va(),f=od(a,d),g=Li(di.Svg,void 0,void 0,h),E=pD(R6,n.src,r.cameraDistance,n.materialClass,f,a,d,g),v=ps(t,T6);Ci(()=>{var w;const M=v.value;if(M==null)return;const T=M("color"),U=M("opacity");let K;Array.isArray(T)?K=Vw.setRGB(...T):T!=null&&(K=Vw.set(T)),(w=E.value)==null||w.traverse(P=>{if(!(P instanceof $t))return;P.receiveShadow=n.receiveShadow??!1,P.castShadow=n.castShadow??!1;const q=P.material;q.color.copy(K??P.userData.color),q.opacity=U??1})},[E,n.color,n.receiveShadow,n.castShadow]);const C=k.useMemo(()=>bn(()=>{var M;return(M=E.value)==null?void 0:M.aspectRatio}),[E]),p=ad();cd(t,p,r,o,l,n.scrollbarPanelMaterialClass,a,g),Ro(t,n),To(t,n),Do(t,n);const y=Po(t,n),I=ko(t,n);hs(t,"aspectRatio",C),Qo(t),Uo(n,r.size),ja(n,l);const B=k.useMemo(()=>{const M=new Hr;return M.matrixAutoUpdate=!1,M},[]);Ci(()=>{var K;const[M,T,U]=gD(r.size,r.paddingInset,r.borderInset,r.pixelSize,((K=E.value)==null?void 0:K.aspectRatio)??1);B.position.set(M,T,0),B.scale.setScalar(U),B.updateMatrix()},[r,E]),Ci(()=>{const M=E.value;if(M!=null)return B.add(M),()=>B.remove(M)},[E,B]),Ci(()=>void(B.visible=!l.value),[]);const R=sc(r.size,r,h,d);return Ja(e,r,R,p),D.jsxs(bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:y,activeHandlers:I,children:[D.jsxs(ld,{listeners:n,node:r,scrollPosition:p,children:[D.jsx("primitive",{object:R}),D.jsx("primitive",{object:B})]}),D.jsx(ud,{globalMatrix:o,node:r,orderInfo:g,scrollPosition:p,children:n.children})]})});const lt=k.forwardRef((n,e)=>{const t=Mo(),i=k.useRef(null),r=Ya(i);Kr(t,r,Lo);const s=Fo(t,r),o=Va(),a=Ka(s),l=zs(),A=Wa(l,a,r.size,r);Uo(n,r.size),ja(n,A);const h=Vs(n.panelMaterialClass,n),d=Li(di.Panel,n.zIndexOffset,h);Xa(t,a,r.size,void 0,r.borderInset,A,d,l,h,No);const f=BD(t,n.children,a,r,A,l,d);Ro(t,n),To(t,n),Do(t,n);const g=Po(t,n),E=ko(t,n);hs(t,"measureFunc",f),Qo(t);const v=sc(r.size,r,d,o);return Ja(e,r,v),D.jsx(bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:g,activeHandlers:E,children:D.jsx("primitive",{object:v})})});function D6(n,e,t){const i=k.useMemo(()=>Ao(()=>t.value),[t]);ku(e,r=>{r.focus!=null&&i(n,r.focus)})}const b6=Ht([0,0,0,0]),Ww=1.5,Yw=(n,e,t,i)=>{n=="color"&&i("backgroundColor",e)};function P6(n,e,t,i,r,s,o){const a=o??UI(),l=Vs(void 0,{castShadow:!1,receiveShadow:!1}),A=Li(di.Panel,void 0,l,r),h=k.useMemo(()=>Ht(void 0),[]),d=k.useMemo(()=>qt(()=>{const v=t.value;v==null&&(h.value=void 0),h.value=v;const C=setInterval(()=>h.value=h.peek()==null?v:void 0,500);return()=>clearInterval(C)}),[h,t]);k.useEffect(()=>d,[d]);const f=k.useMemo(()=>new NI(a(A.majorIndex,l),e,bn(()=>{const v=h.value;return v==null?[0,0]:[Ww,v[2]]}),bn(()=>{const v=h.value;return v==null?[0,0]:[v[0]-Ww/2,v[1]]}),b6,s,i,A.minorIndex),[a,A,l,e,s,i,h]),g=n.length;Kr(n,f,Yw),Qm(n,f,Yw);const E=n.length;for(let v=g;v()=>f.destroy(),[f])}const L6=Ht([0,0,0,0]);function N6(n,e,t,i,r,s){const o=s??UI(),a=k.useMemo(()=>[],[]),l=Vs(void 0,{castShadow:!1,receiveShadow:!1}),A=Li(di.Panel,void 0,l,i),h=k.useMemo(()=>qt(()=>{const d=e.value,f=d.length;for(let E=0;E{if(R==="backgroundColor")return 11851775;if(R==="backgroundOpacity")return 1};const B=qt(()=>{I.active.value&&(I.setProperty("backgroundColor",11851775),I.setProperty("backgroundOpacity",1))});a[E]=v={unsubscribe:B,panel:I,offset:y,size:p}}const C=d[E];v.size.value=C.size,v.offset.value=C.position}const g=a.length;for(let E=f;E()=>{h();const d=a.length;for(let f=0;f{const t=k.useMemo(()=>Ht(n.defaultValue??""),[]),i=k.useMemo(()=>n.value??t,[n.value,t]),r=k.useRef(n.onValueChange);r.current=n.onValueChange;const s=k.useRef(void 0),o=n.value!=null,a=k.useCallback(re=>{var ne;o||(t.value=re),(ne=r.current)==null||ne.call(r,re)},[t,o]),l=k.useMemo(()=>Ht(void 0),[]),A=O6(i,l,a,n.multiline);A.tabIndex=n.tabIndex??0,A.disabled=n.disabled??!1;const h=k.useMemo(()=>Ht(document.activeElement===A),[]);k.useEffect(()=>{const re=()=>h.value=document.activeElement===A;return A.addEventListener("focus",re),A.addEventListener("blur",re),()=>{A.removeEventListener("focus",re),A.removeEventListener("blur",re)}},[A,h]);const d=k.useCallback(re=>{h.peek()!==re&&(re?A.focus():A.blur())},[h,A]),f=Mo(),g=k.useRef(null),E=Ya(g);Kr(f,E,Lo);const v=Fo(f,E),C=Va(),p=Ka(v),y=zs(),I=Wa(y,p,E.size,E);Uo(n,E.size),ja(n,I);const B=Vs(n.panelMaterialClass,n),R=Li(di.Panel,n.zIndexOffset,B);Xa(f,p,E.size,void 0,E.borderInset,I,R,y,B,No);const M=k.useMemo(()=>Ht([]),[]),T=k.useMemo(()=>Ht(void 0),[]),U=N6(p,M,I,R,y);P6(f,p,T,I,R,y);const K=sc(E.size,E,R,C),w=k.useRef(),P=BD(f,i,p,E,I,y,U,l,M,T,w),q=n.disabled??!1;Ro(f,n),To(f,n),Do(f,n);const fe=Po(f,n,q?void 0:"text"),J=ko(f,n);return D6(f,n,h),hs(f,"measureFunc",P),Qo(f),k.useImperativeHandle(e,()=>({focus:()=>d(!0),value:i,borderInset:E.borderInset,paddingInset:E.paddingInset,pixelSize:E.pixelSize,center:E.relativeCenter,size:E.size,interactionPanel:K}),[K,E,i,d]),D.jsx(bo,{groupRef:g,matrix:v,handlers:n,inputHandlers:q?void 0:{onPointerDown:re=>{var ue;if((ue=n.onPointerDown)==null||ue.call(n,re),re.defaultPrevented||re.uv==null||w.current==null)return;F6(re.nativeEvent),re.stopPropagation();const ne=Xw(E,re.uv,w.current);s.current=ne,setTimeout(()=>{d(!0),l.value=[ne,ne],A.setSelectionRange(ne,ne)})},onPointerUp:re=>{var ne;(ne=n.onPointerUp)==null||ne.call(n,re),s.current=void 0},onPointerMove:re=>{var te;if((te=n.onPointerMove)==null||te.call(n,re),s.current==null||re.uv==null||w.current==null)return;re.stopPropagation();const ne=Xw(E,re.uv,w.current),ue=Math.min(s.current,ne),F=Math.max(s.current,ne),ee=s.current{d(!0),l.value=[ue,F],A.setSelectionRange(ue,F,ee)})}},hoverHandlers:fe,activeHandlers:J,children:D.jsx("primitive",{object:K})})});function O6(n,e,t,i=!1){const r=k.useMemo(()=>{const s=document.createElement(i?"textarea":"input"),o=s.style;o.setProperty("position","absolute"),o.setProperty("left","-1000vw"),o.setProperty("pointerEvents","none"),o.setProperty("opacity","0"),s.addEventListener("input",()=>{t==null||t(s.value),a()});const a=()=>{const{selectionStart:l,selectionEnd:A}=s;if(l==null||A==null){e.value=void 0;return}const h=e.peek();h!=null&&h[0]===l&&h[1]===A||(e.value=[l,A])};return s.addEventListener("keydown",a),s.addEventListener("keyup",a),s.addEventListener("blur",()=>e.value=void 0),document.body.appendChild(s),s},[t,e,i]);return Ci(()=>{r.value=Dg(n)},[n]),k.useEffect(()=>()=>r.remove(),[r]),r}function Xw({size:n,borderInset:e,paddingInset:t},i,r){const[s,o]=n.peek(),[a,,,l]=e.peek(),[A,,,h]=t.peek(),d=i.x*s-l-h,f=-i.y*o+a+A;return r.getCharIndex(d,f)}const G6=k.forwardRef((n,e)=>{const t=wo(),i=n.pixelSize??t3,[r,s]=k.useMemo(()=>{const{width:A,height:h}=t.getState().size;return[Ht(A*i),Ht(h*i)]},[i,t]);k.useEffect(()=>{const A=h=>{iD(()=>{r.value=h.size.width*i,s.value=h.size.height*i})};return A(t.getState()),t.subscribe(A)},[i,r,s,t]);const o=_m(A=>A.camera),a=k.useRef(null);jr(()=>{if(a.current==null)return;let A=1;o instanceof ni&&(A=s.peek()/(2*Math.tan(o.fov/360*Math.PI))),a.current.position.z=-A,a.current.updateMatrix()});const l=n.attachCamera??!0;return D.jsxs(D.Fragment,{children:[l&&D.jsx("primitive",{object:o}),ZT(D.jsx("group",{ref:a,matrixAutoUpdate:!1,children:D.jsx(S6,{ref:e,...n,sizeX:r,sizeY:s,children:n.children})}),o)]})}),Jw=new Ke,H6=["color","opacity"],z6=new Gu,qi=k.forwardRef((n,e)=>{const t=Mo(),i=k.useRef(null),r=Ya(i);Kr(t,r,Lo);const s=Fo(t,r),o=Ka(s),a=zs(),l=Wa(a,o,r.size,r),A=Vs(n.panelMaterialClass,n),h=Li(di.Panel,n.zIndexOffset,A);Xa(t,o,r.size,void 0,r.borderInset,l,h,a,A,No);const d=Va(),f=od(a,d),g=Li(di.Svg,void 0,void 0,h),E=k.useMemo(()=>{const B=new Hr;B.matrixAutoUpdate=!1;const R=z6.parse(n.text);for(const M of R.paths){const T=Gu.createShapes(M),U=new(n.materialClass??lr);U.transparent=!0,U.depthWrite=!1,U.toneMapped=!1,U.clippingPlanes=f;for(const K of T){const w=new Uu(K);w.computeBoundingBox();const P=new $t(w,U);P.matrixAutoUpdate=!1,P.raycast=Ou(P,P.raycast,d,a,g),rc(P,r.cameraDistance,g),P.userData.color=M.color,P.scale.y=-1,P.updateMatrix(),B.add(P)}}return B},[n.text,n.materialClass,f,d,a,r,g]),v=ps(t,H6);Ci(()=>{const B=v.value;if(B==null)return;const R=B("color"),M=B("opacity");let T;Array.isArray(R)?T=Jw.setRGB(...R):R!=null&&(T=Jw.set(R)),E.traverse(U=>{if(!(U instanceof $t))return;U.receiveShadow=n.receiveShadow??!1,U.castShadow=n.castShadow??!1;const K=U.material;K.color.copy(T??U.userData.color),K.opacity=M??1})},[E,n.color,n.receiveShadow,n.castShadow]);const C=ad();cd(t,C,r,o,l,n.scrollbarPanelMaterialClass,a,g),hs(t,"width",n.svgWidth),hs(t,"height",n.svgHeight),Ro(t,n),To(t,n),Do(t,n);const p=Po(t,n),y=ko(t,n);hs(t,"aspectRatio",n.svgWidth/n.svgHeight),Qo(t),Uo(n,r.size),ja(n,l),Ci(()=>{const B=n.svgWidth/n.svgHeight,[R,M,T]=gD(r.size,r.paddingInset,r.borderInset,r.pixelSize,n.svgWidth/n.svgHeight);E.position.set(R-T*B/2,M+T/2,0),E.scale.setScalar(T/n.svgHeight),E.updateMatrix()},[r,E,n.svgWidth,n.svgHeight]),Ci(()=>void(E.visible=!l.value),[]);const I=sc(r.size,r,h,d);return Ja(e,r,I,C),D.jsxs(bo,{groupRef:i,matrix:s,handlers:n,hoverHandlers:p,activeHandlers:y,children:[D.jsxs(ld,{listeners:n,node:r,scrollPosition:C,children:[D.jsx("primitive",{object:I}),D.jsx("primitive",{object:E})]}),D.jsx(ud,{globalMatrix:o,node:r,orderInfo:g,scrollPosition:C,children:n.children})]})});k.forwardRef(({children:n,resolution:e=1,frames:t=1/0,renderPriority:i=0,eventPriority:r=0,...s},o)=>{const a=k.useMemo(()=>new Jr(1,1,{minFilter:xn,magFilter:xn,type:Jl}),[]),l=k.useRef(null),A=k.useMemo(()=>({events:{compute:V6.bind(null,l),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);k.useEffect(()=>{if(l.current==null)return;const{size:d}=l.current,f=qt(()=>{const[g,E]=d.value;a.setSize(g,E),A.size.width=g,A.size.height=E});return()=>{f(),a.dispose()}},[a,A]),k.useImperativeHandle(o,()=>l.current,[]);const h=k.useMemo(()=>new Dh,[]);return D.jsxs(D.Fragment,{children:[ZT(D.jsxs(W6,{imageRef:l,renderPriority:i,frames:t,fbo:a,children:[n,D.jsx("group",{onPointerOver:()=>null})]}),h,A),D.jsx(e3,{...s,src:a.texture,fit:"fill",keepAspectRatio:!1,ref:l})]})});function V6({current:n},e,t,i){var o,a,l;if(n==null||i==null)return!1;i.raycaster.camera||(l=(a=i.events).compute)==null||l.call(a,e,i,(o=i.previousRoot)==null?void 0:o.getState());const[r]=i.raycaster.intersectObject(n.interactionPanel);if(!r)return!1;const s=r.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(s.x*2-1,s.y*2-1),t.camera)}function W6({frames:n,renderPriority:e,children:t,fbo:i,imageRef:r}){const s=wo();k.useEffect(()=>{if(r.current==null)return;const{size:A}=r.current;return qt(()=>{const[h,d]=A.value;s.setState({size:{width:h,height:d,top:0,left:0}})})});let o=0,a,l;return jr(A=>{(n===1/0||oD.jsx(qi,{...n,ref:e,text:Y6,svgWidth:24,svgHeight:24})),J6='',n3=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:J6,svgWidth:24,svgHeight:24})),j6='',i3=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:j6,svgWidth:24,svgHeight:24})),K6='',q6=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:K6,svgWidth:24,svgHeight:24})),Z6='',$6=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:Z6,svgWidth:24,svgHeight:24})),ez='',r3=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:ez,svgWidth:24,svgHeight:24})),tz='',nz=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:tz,svgWidth:24,svgHeight:24})),iz='',rz=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:iz,svgWidth:24,svgHeight:24})),sz='',oz=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:sz,svgWidth:24,svgHeight:24})),az='',lz=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:az,svgWidth:24,svgHeight:24})),cz='',uz=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:cz,svgWidth:24,svgHeight:24})),Az='',hz=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:Az,svgWidth:24,svgHeight:24})),dz='',fz=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:dz,svgWidth:24,svgHeight:24})),pz='',gz=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:pz,svgWidth:24,svgHeight:24})),mz='',Ez=k.forwardRef((n,e)=>D.jsx(qi,{...n,ref:e,text:mz,svgWidth:24,svgHeight:24}));function Gt(n,e,t){return new Ke().setHSL(n/360,e/100,t/100,"srgb")}const Xe=MG({light:{background:Gt(0,0,100),foreground:Gt(222.2,84,4.9),card:Gt(0,0,100),cardForeground:Gt(222.2,84,4.9),popover:Gt(0,0,100),popoverForeground:Gt(222.2,84,4.9),primary:Gt(222.2,47.4,11.2),primaryForeground:Gt(210,40,98),secondary:Gt(210,40,96.1),secondaryForeground:Gt(222.2,47.4,11.2),muted:Gt(210,40,96.1),mutedForeground:Gt(215.4,16.3,46.9),accent:Gt(210,40,96.1),accentForeground:Gt(222.2,47.4,11.2),destructive:Gt(0,72.22,50.59),destructiveForeground:Gt(210,40,98),border:Gt(214.3,31.8,91.4),input:Gt(214.3,31.8,91.4),ring:Gt(222.2,84,4.9)},dark:{background:Gt(222.2,84,4.9),foreground:Gt(210,40,98),card:Gt(222.2,84,4.9),cardForeground:Gt(210,40,98),popover:Gt(222.2,84,4.9),popoverForeground:Gt(210,40,98),primary:Gt(210,40,98),primaryForeground:Gt(222.2,47.4,11.2),secondary:Gt(217.2,32.6,17.5),secondaryForeground:Gt(210,40,98),muted:Gt(217.2,32.6,17.5),mutedForeground:Gt(215,20.2,65.1),accent:Gt(217.2,32.6,17.5),accentForeground:Gt(210,40,98),destructive:Gt(0,62.8,30.6),destructiveForeground:Gt(210,40,98),border:Gt(217.2,32.6,17.5),input:Gt(217.2,32.6,17.5),ring:Gt(212.7,26.8,83.9)}});function Cz(n){return D.jsx(En,{scrollbarColor:Xe.foreground,scrollbarBorderRadius:4,scrollbarOpacity:.3,borderColor:Xe.border,color:Xe.foreground,...n})}const yz={default:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:Xe.primary},defaultProps:{color:Xe.primaryForeground}},destructive:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:Xe.destructive},defaultProps:{color:Xe.destructiveForeground}},outline:{containerHoverProps:{backgroundColor:Xe.accent},containerProps:{border:1,borderColor:Xe.input,backgroundColor:Xe.background}},secondary:{containerHoverProps:{backgroundOpacity:.8},containerProps:{backgroundColor:Xe.secondary},defaultProps:{color:Xe.secondaryForeground}},ghost:{containerHoverProps:{backgroundColor:Xe.accent},defaultProps:{}},link:{containerProps:{},defaultProps:{color:Xe.primary}}},vz={default:{height:40,paddingX:16,paddingY:8},sm:{height:36,paddingX:12},lg:{height:42,paddingX:32},icon:{height:40,width:40}};function Gs({children:n,variant:e="default",size:t="default",disabled:i=!1,hover:r,...s}){const{containerProps:o,defaultProps:a,containerHoverProps:l}=yz[e],A=vz[t];return D.jsx(Je,{borderRadius:6,alignItems:"center",justifyContent:"center",...o,...A,borderOpacity:i?.5:void 0,backgroundOpacity:i?.5:void 0,cursor:i?void 0:"pointer",flexDirection:"row",hover:{...l,...r},...s,children:D.jsx(En,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",...a,opacity:i?.5:void 0,children:n})})}function Pg({children:n,...e}){return D.jsx(Je,{borderRadius:8,border:1,backgroundColor:Xe.card,...e,children:D.jsx(En,{color:Xe.cardForeground,children:n})})}function P1(n){return D.jsx(Je,{padding:24,flexDirection:"column",gap:6,...n})}function L1({children:n}){return D.jsx(En,{fontWeight:"semi-bold",letterSpacing:-.4,fontSize:24,lineHeight:1,children:n})}function N1({children:n}){return D.jsx(En,{fontSize:14,lineHeight:1.43,color:Xe.mutedForeground,children:n})}function U1(n){return D.jsx(Je,{padding:24,paddingTop:0,...n})}function F1(n){return D.jsx(Je,{flexDirection:"row",alignItems:"center",padding:24,paddingTop:0,...n})}function $p({orientation:n="horizontal",...e}){return D.jsx(Je,{flexShrink:0,backgroundColor:Xe.border,width:n==="horizontal"?"100%":1,height:n==="horizontal"?1:"100%",...e})}const kI=k.createContext({});function s3({value:n,onValueChange:e,defaultValue:t,children:i,...r}){const[s,o]=k.useState(t),a=k.useMemo(()=>n==null?{value:s,setValue:l=>{o(l),e==null||e(l)}}:{value:n,setValue:e},[s,e,n]);return D.jsx(Je,{...r,children:D.jsx(kI.Provider,{value:a,children:i})})}function o3({children:n,...e}){return D.jsx(Je,{height:40,flexDirection:"row",alignItems:"center",borderRadius:6,backgroundColor:Xe.muted,padding:4,...e,children:D.jsx(En,{color:Xe.mutedForeground,children:n})})}function k1({children:n,value:e,disabled:t=!1,...i}){const{setValue:r,value:s}=k.useContext(kI),o=e===s;return D.jsx(Je,{onClick:t?void 0:a=>r==null?void 0:r(e),cursor:t?void 0:"pointer",flexDirection:"row",alignItems:"center",borderRadius:2,paddingX:12,backgroundOpacity:t?.5:void 0,backgroundColor:o?Xe.background:void 0,paddingY:6,justifyContent:"center",...i,children:D.jsx(En,{opacity:t?.5:void 0,color:o?Xe.foreground:void 0,fontSize:14,fontWeight:"medium",lineHeight:1.43,wordBreak:"keep-all",children:n})})}function O1({value:n,...e}){const{value:t}=k.useContext(kI);return n!=t?null:D.jsx(Je,{marginTop:8,...e})}const a3=k.createContext(void 0);function Iz({children:n}){const[e,t]=k.useState(void 0),i=k.useCallback((r,s)=>t(o=>o===r?s:o),[]);return D.jsxs(D.Fragment,{children:[D.jsx(xz,{set:i,children:n}),e]})}const xz=k.memo(({children:n,set:e})=>D.jsx(a3.Provider,{value:e,children:n})),OI=k.createContext(void 0);function GI(){const n=k.useContext(OI);if(n==null)throw new Error("Can only be used inside a component.");return n}function l3({children:n,open:e,onOpenChange:t,defaultOpen:i}){const[r,s]=k.useState(i??!1),o=e??r,a=k.useContext(a3);if(a==null)throw new Error("Can only be used inside a component.");const l=k.useRef(void 0),A=k.useRef(void 0);k.useEffect(()=>{if(!o){a(A.current,void 0),A.current=void 0;return}l.current!=null&&(a(void 0,l.current),A.current=l.current)},[o,a]);const h=k.useRef(t);h.current=t;const d=e!=null,f=k.useMemo(()=>({setContent(g){A.current!=null&&(a(A.current,g),A.current=g),l.current=g},setOpen(g){var E;d||s(g),(E=h.current)==null||E.call(h,g)}}),[d,a]);return D.jsx(OI.Provider,{value:f,children:n})}function c3({children:n}){const{setOpen:e}=GI();return D.jsx(Je,{onClick:()=>e(!0),children:n})}function u3(n){return D.jsx(Je,{onPointerMove:e=>e.stopPropagation(),onWheel:e=>e.stopPropagation(),positionType:"absolute",inset:0,zIndexOffset:50,backgroundColor:"black",backgroundOpacity:.8,...n})}function Tm(){const{setOpen:n}=GI();return k.useCallback(()=>n(!1),[n])}function A3({children:n}){const e=GI();return k.useEffect(()=>e.setContent(D.jsx(OI.Provider,{value:e,children:n}))),null}function Bz({children:n,sm:e,...t}){const i=Tm();return D.jsx(A3,{children:D.jsx(u3,{onClick:r=>{i(),r.stopPropagation()},alignItems:"center",justifyContent:"center",children:D.jsxs(Je,{onClick:r=>r.stopPropagation(),positionType:"relative",width:"100%",gap:16,border:1,backgroundColor:Xe.background,padding:24,sm:{borderRadius:8,...e},...t,children:[n,D.jsx(Ez,{color:Xe.mutedForeground,onClick:i,cursor:"pointer",positionType:"absolute",positionRight:16,positionTop:16,borderRadius:2,opacity:.7,backgroundOpacity:.7,hover:{opacity:1,backgroundOpacity:1},width:16,height:16})]})})})}function h3({children:n,...e}){return D.jsx(Je,{flexDirection:"column",gap:6,...e,children:D.jsx(En,{horizontalAlign:"center",sm:{horizontalAlign:"left"},children:n})})}function d3(n){return D.jsx(Je,{flexDirection:"column-reverse",sm:{flexDirection:"row",justifyContent:"flex-end"},gap:8,...n})}function Sz({children:n}){return D.jsx(En,{fontSize:18,lineHeight:1,letterSpacing:-.4,fontWeight:"semi-bold",children:n})}function f3({children:n}){return D.jsx(En,{fontSize:14,lineHeight:1.43,color:Xe.mutedForeground,children:n})}const ao=new id,gC=new PT,jw=new sn;function _z(n,e,t,i,r){const s=[];for(const[o,a]of r){gC.set(i[a.lineIndex],i[a.lineIndex+1]).applyMatrix4(n.matrixWorld);const l=gC.at(a.distanceOnLine/gC.distance(),new H);bm(jw,a,o);const A=wz(n,i,jw)??l;s.push({...a,intersections:s,pointOnFace:A,point:l,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),capturedObject:o})}return s}const Kw=new H,mC=new ka;function wz(n,e,t){for(let i=e.length-1;i>0;i--){const r=e[i-1],s=e[i];if(mC.origin.copy(r).applyMatrix4(n.matrixWorld),mC.direction.copy(s).applyMatrix4(n.matrixWorld).sub(ao.ray.origin).normalize(),mC.intersectPlane(t,Kw)!=null)return Kw.clone()}}const Mz=new ht;function Qz(n,e,t,i,r,s,o){const a=[];return Ad(r,s.hasEventHandlers.bind(s),l=>{let A=0;for(let h=1;hy===v.object)!=-1)continue;const p=v.distance;v.distance+=A,a.push(Object.assign(v,{intersections:a,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),lineIndex:h-1,distanceOnLine:p,pointOnFace:v.point,localPoint:v.point.clone().applyMatrix4(Mz.copy(v.object.matrixWorld).invert())}))}A+=g}}),a.sort((l,A)=>l.distance-A.distance)}const Ps=new id,Eu=new H,ho=new sn,qw=new ka;function Rz(n,e,t,i){Eu.copy(i).applyQuaternion(e);const r=[];for(const[s,o]of t){qw.set(n,Eu),bm(ho,o,s);const a=qw.intersectPlane(ho,new H)??o.point;r.push({...o,intersections:r,pointOnFace:a,point:Eu.clone().multiplyScalar(o.distance).add(n),inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),capturedObject:s})}return r}function Tz(n,e,t,i,r){Ps.setFromCamera(e,n),n.getWorldPosition(i),n.getWorldQuaternion(r),n.getWorldDirection(Eu);const s=[];for(const[o,a]of t){ho.setFromNormalAndCoplanarPoint(Eu,Ps.ray.origin),ho.constant-=a.distanceViewPlane;const l=Ps.ray.intersectPlane(ho,new H);if(l==null)continue;bm(ho,a,o);const A=Ps.ray.intersectPlane(ho,new H)??l;s.push({...a,intersections:s,point:l,pointOnFace:A,inputDevicePosition:i.clone(),inputDeviceRotation:r.clone(),capturedObject:o})}return s}const Lg=new ht;function Dz(n,e,t,i,r,s){Ps.ray.origin.copy(n),Ps.ray.direction.copy(s).applyQuaternion(e);const o=[];return Ad(t,i.hasEventHandlers.bind(i),a=>{const l=Ps.intersectObject(a,!0);for(const A of l)r&&!Dm(A)||(Lg.copy(a.matrixWorld).invert(),o.push(Object.assign(A,{intersections:o,inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),pointOnFace:A.point,localPoint:A.point.clone().applyMatrix4(Lg)})))}),o.sort((a,l)=>a.distance-l.distance)}function bz(n,e,t,i,r,s,o){Ps.setFromCamera(e,n),n.getWorldPosition(s),n.getWorldQuaternion(o),ho.setFromNormalAndCoplanarPoint(n.getWorldDirection(Eu),Ps.ray.origin);const a=[];return Ad(t,i.hasEventHandlers.bind(i),l=>{const A=Ps.intersectObject(l,!0);for(const h of A)r&&!Dm(h)||(Lg.copy(l.matrixWorld).invert(),a.push(Object.assign(h,{intersections:a,pointOnFace:h.point,inputDevicePosition:s.clone(),inputDeviceRotation:o.clone(),distanceViewPlane:ho.distanceToPoint(h.point),localPoint:h.point.clone().applyMatrix4(Lg)})))}),a.sort((l,A)=>l.distance-A.distance)}const Zw=new H,$w=new Yn,eM=new sn;function Pz(n,e,t){const i=[];for(const[r,s]of t){Zw.copy(s.point).sub(s.inputDevicePosition),$w.copy(s.inputDeviceRotation).invert().multiply(e);const o=Zw.clone().applyQuaternion($w).add(n);bm(eM,s,r);const a=eM.projectPoint(n,new H);i.push({distance:s.distance,intersections:i,inputDevicePosition:n.clone(),inputDeviceRotation:e.clone(),object:s.object,point:o,pointOnFace:a,face:s.face,capturedObject:r,distanceToFace:a.distanceTo(n),localPoint:s.localPoint})}return i}const zr=new $n;function Lz(n,e,t,i,r,s){zr.center.copy(n),zr.radius=t;const o=[];return Ad(i,r.hasEventHandlers.bind(r),a=>p3(a,e,s,o)),o.sort((a,l)=>a.distance-l.distance)}function p3(n,e,t,i){Uz(n,e,t,i);for(const r of n.children)p3(r,e,t,i)}const MA=new ht,QA=new ht;function Nz(n){return"spherecast"in n}function Uz(n,e,t,i){if(n.updateWorldMatrix(!0,!1),Nz(n)){const r=[];n.spherecast(zr,r);for(const s of r)t&&!Dm(s)||i.push({...s,pointOnFace:s.point,intersections:i,inputDevicePosition:zr.center.clone(),inputDeviceRotation:e.clone(),localPoint:s.point.clone().applyMatrix4(MA.copy(s.object.matrixWorld).invert())})}if(n instanceof oI){n.geometry.boundingSphere==null&&n.geometry.computeBoundingSphere(),n.geometry.boundingBox==null&&n.geometry.computeBoundingBox();const r=[];for(let s=0;szr.radius*zr.radius)return;EC.max(Fz);const h=Cu.center.clone().sub(nM);h.divide(EC),kz(h);const d=Bp.clone();o&&!Oz(n,d)||a.push({intersections:a,distance:Math.sqrt(A),object:n,face:{a:0,b:0,c:0,materialIndex:0,normal:h},pointOnFace:d,point:d,instanceId:l,inputDevicePosition:e.clone(),inputDeviceRotation:t.clone(),localPoint:d.clone().applyMatrix4(r)})}function kz(n){const e=Math.abs(n.x),t=Math.abs(n.y),i=Math.abs(n.z);if(e>=t&&e>=i){n.set(n.x<0?-1:1,0,0);return}if(t>=e&&t>=i){n.set(0,n.y<0?-1:1,0);return}n.set(0,0,n.z<0?-1:1)}function Ad(n,e,t){if(e(n))return t(n);for(const i of n.children)Ad(i,e,t)}function Dm(n){if(!(n.object instanceof $t)||n.object.material.clippingPlanes==null)return!0;const e=n.object.material.clippingPlanes;for(const t of e)if(t.distanceToPoint(n.point)<0)return!1;return!0}function Oz(n,e){if(!(n instanceof $t)||n.material.clippingPlanes==null)return!0;const t=n.material.clippingPlanes;for(const i of t)if(i.distanceToPoint(e)<0)return!1;return!0}function bm(n,e,t){return e.face==null?!1:(n.setFromNormalAndCoplanarPoint(e.face.normal,e.localPoint),n.applyMatrix4(t.matrixWorld),!0)}const CC=new H,rM=new Yn,sM=Symbol("traversal-id"),oM=[],G1=new Vt;class Pm{constructor(e,t,i,r,s,o,a,l,A,h,d){be(this,"inputDeviceId");be(this,"dispatchPressAlways");be(this,"eventDispatcher");be(this,"computeIntersections");be(this,"getPressedElementIds");be(this,"getInputDeviceTransformation");be(this,"wasDragged");be(this,"onIntersections");be(this,"filterIntersections");be(this,"onStartEventCaptures");be(this,"onEndEventCaptures");be(this,"intersections",[]);be(this,"lastPositionChangeTime");be(this,"capturedEvents");be(this,"objectInteractionStateMap",new Map);this.inputDeviceId=e,this.dispatchPressAlways=t,this.eventDispatcher=i,this.computeIntersections=r,this.getPressedElementIds=s,this.getInputDeviceTransformation=o,this.wasDragged=a,this.onIntersections=l,this.filterIntersections=A,this.onStartEventCaptures=h,this.onEndEventCaptures=d}update(e,t,i,...r){var a;this.eventDispatcher.bind(e,this);const s=performance.now(),o=this.intersections;if(t&&(this.intersections=this.computeIntersections(e,this.capturedEvents),this.capturedEvents==null&&this.filterIntersections!=null&&(this.intersections=this.filterIntersections(this.intersections)),(a=this.onIntersections)==null||a.call(this,this.intersections),this.intersections.length===0&&(this.getInputDeviceTransformation(CC,rM),this.intersections=[{distance:1/0,inputDevicePosition:CC.clone(),inputDeviceRotation:rM.clone(),object:G1,point:CC.clone()}])),this.traverseIntersections(this.intersections,(l,A,h,d,f)=>(t&&(this.dispatchEnterOrMove(l,A,h),A.lastIntersectedTime=s),i&&(this.dispatchPress(l,h,f,r),this.dispatchRelease(e,l,h,A,f),this.updateElementStateMap(h,A,f,r,s)),A.lastPressedElementIds=f,A.blockFollowingIntersections&&(this.intersections.length=d+1),!0),l=>this.getPressedElementIds(l)),t){const l=this.getPressedElementIds();this.traverseIntersections(o,(A,h,d)=>h.lastIntersectedTime===s?!1:(this.dispatchRelease(e,A,d,h,l),this.eventDispatcher.leave(A,d),h.lastLeftTime=s,h.lastPressedElementIds=oM,!0)),this.lastPositionChangeTime=s}}cancel(e){this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(t,i,r)=>(this.eventDispatcher.cancel(t,r),!0))}wheel(e){this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(t,i,r)=>(this.eventDispatcher.wheel(t,r),!0))}leave(e){var t;this.eventDispatcher.bind(e,this),this.traverseIntersections(this.intersections,(i,r,s)=>(this.eventDispatcher.leave(i,s),!0)),this.capturedEvents!=null&&((t=this.onEndEventCaptures)==null||t.call(this,e)),this.lastPositionChangeTime=void 0,this.intersections.length=0,this.capturedEvents=void 0}updateElementStateMap(e,t,i,r,s){for(const o of i)(r.includes(o)||this.dispatchPressAlways)&&t.elementStateMap.set(o,{lastPressEventTime:s,lastPressEventIntersection:e})}dispatchPress(e,t,i,r){for(const s of i)(this.dispatchPressAlways||r.includes(s))&&this.eventDispatcher.press(e,t,s)}dispatchRelease(e,t,i,r,s){for(const o of r.lastPressedElementIds){if(s.includes(o))continue;this.eventDispatcher.release(t,i,o),this.removeEventCapture(e,t);const a=r.elementStateMap.get(o);a!=null&&(r.lastLeftTime==null||r.lastLeftTime{}){const r=Math.random();e:for(let s=0;snew Map,[]),d=k.useMemo(()=>new Lm,[]);d.onPointerDownMissed=r,d.onPointerUpMissed=s,d.onClickMissed=o;const f=k.useMemo(()=>({filterClipped:A??!0,computeIntersections:n,isDrag:e,onIntersections:t,filterIntersections:i,onStartEventCaptures:a,onEndEventCaptures:l}),[]);f.filterClipped=A??!0,f.computeIntersections=n,f.isDrag=e,f.onIntersections=t,f.filterIntersections=i,f.onStartEventCaptures=a,f.onEndEventCaptures=l;for(const[g,E]of h)g3(E.translator,g,f);return k.useEffect(()=>()=>{for(const{translator:g}of h.values())g.leave({});h.clear()},[]),k.useMemo(()=>{const g=E=>zz(h,d,f,E);return{cancel:(E,v)=>{const{translator:C}=g(E);C.cancel(v)},enter:(E,v)=>{const{translator:C}=g(E);C.update(v,!0,!0)},leave:(E,v)=>{const{translator:C}=g(E);C.leave(v),h.delete(E)},press:(E,v,...C)=>{const{inputDeviceElementPressMap:p,inputDeviceElementPressSet:y,translator:I}=g(E);for(const B of C)y.add(B),p.set(B,v);I.update(v,!1,!0,...C)},release:(E,v,...C)=>{const{inputDeviceElementPressMap:p,inputDeviceElementPressSet:y,inputDeviceElementDragSet:I,translator:B}=g(E);for(const R of C)y.delete(R),p.delete(R);B.update(v,!1,!0);for(const R of C)I.delete(R)},move:(E,v)=>{const{translator:C,inputDeviceElementPressMap:p,inputDeviceElementDragSet:y}=g(E);for(const[I,B]of p)f.isDrag(B,v)&&y.add(I);C.update(v,!0,!1)},wheel:E=>{for(const{translator:v}of h.values())v.wheel(E)},blur:E=>{for(const{translator:v}of h.values())v.leave(E);h.clear()}}},[])}function g3(n,e,{filterIntersections:t,onEndEventCaptures:i,onIntersections:r,onStartEventCaptures:s}){n.onIntersections=r==null?void 0:r.bind(null,e),n.filterIntersections=t==null?void 0:t.bind(null,e),n.onStartEventCaptures=s==null?void 0:s.bind(null,e),n.onEndEventCaptures=i==null?void 0:i.bind(null,e)}function zz(n,e,t,i){let r=n.get(i);if(r==null){const s=new H,o=new Yn,a={inputDeviceElementPressSet:new Set,inputDeviceElementPressMap:new Map,translator:new Pm(i,!1,e,(l,A)=>t.computeIntersections(l,A,t.filterClipped,e,s,o),()=>[...a.inputDeviceElementPressSet],(l,A)=>{l.copy(s),A.copy(o)},l=>a.inputDeviceElementDragSet.has(l)),inputDeviceElementDragSet:new Set};g3(a.translator,i,t),n.set(i,r=a)}return r}new H;const Vz=[];function Wz(n,e,t){if(n.current==null)return!1;const i=n.current*n.current,r=e.offsetX-t.offsetX,s=e.offsetY-t.offsetY;return r*r+s*s>i}function Yz({filterClipped:n,filterIntersections:e,onClickMissed:t,onIntersections:i,onPointerDownMissed:r,onPointerUpMissed:s,dragDistance:o}){const a=wo(),l=_m(({gl:f})=>f.domElement),A=k.useMemo(()=>Xz.bind(null,a),[a]),h=k.useRef(o);h.current=o;const d=Hz(A,Wz.bind(null,h),i,e,r,s,t,Jz,jz,n);return k.useEffect(()=>{const f=y=>d.cancel(y.pointerId,y),g=y=>d.press(y.pointerId,y,y.button),E=y=>d.release(y.pointerId,y,y.button),v=y=>d.enter(y.pointerId,y),C=y=>d.leave(y.pointerId,y),p=y=>d.move(y.pointerId,y);return l.addEventListener("pointercancel",f),l.addEventListener("pointerdown",g),l.addEventListener("pointerup",E),l.addEventListener("pointerover",v),l.addEventListener("pointerout",C),l.addEventListener("pointermove",p),l.addEventListener("wheel",d.wheel),l.addEventListener("blur",d.blur),()=>{l.removeEventListener("pointercancel",f),l.removeEventListener("pointerdown",g),l.removeEventListener("pointerup",E),l.removeEventListener("pointerover",v),l.removeEventListener("pointerout",C),l.removeEventListener("pointermove",p),l.removeEventListener("wheel",d.wheel),l.removeEventListener("blur",d.blur)}},[l,d]),null}function Xz(n,e,t,i,r,s,o){if(!(e.target instanceof HTMLCanvasElement))return Vz;const{camera:a,scene:l,size:A}=n.getState(),h=new Be(e.offsetX/A.width*2-1,-(e.offsetY/A.height)*2+1);return t==null?bz(a,h,l,r,i,s,o):Tz(a,h,t,s,o)}function Jz(n,e){e.target instanceof HTMLCanvasElement&&e.target.setPointerCapture(n)}function jz(n,e){e.target instanceof HTMLCanvasElement&&e.target.releasePointerCapture(n)}const yC=new H,vC=new Yn,Kz=new H(0,0,1);k.forwardRef(({id:n,onIntersections:e,filterIntersections:t,onClickMissed:i,onPointerDownMissed:r,onPointerUpMissed:s,filterClipped:o=!0,direction:a=Kz,initialPressedElementIds:l},A)=>{const h=wo(),d=k.useMemo(()=>new Vt,[]),f=k.useMemo(()=>new Lm,[]);f.onPointerDownMissed=r,f.onPointerUpMissed=s,f.onClickMissed=i;const g=k.useMemo(()=>new Set(l),[]),E=k.useMemo(()=>({filterClipped:o,direction:a}),[]);E.filterClipped=o,E.direction=a;const v=k.useMemo(()=>new Pm(n,!1,f,(p,y)=>(d.getWorldPosition(yC),d.getWorldQuaternion(vC),y==null?Dz(yC,vC,h.getState().scene,f,E.filterClipped,E.direction):Rz(yC,vC,y,E.direction)),()=>[...g],(p,y)=>{d.getWorldPosition(p),d.getWorldQuaternion(y)}),[n,h]);v.onIntersections=e,v.filterIntersections=t,k.useImperativeHandle(A,()=>({press:(p,y)=>{g.add(p),v.update(y,!1,!0,p)},release:(p,y)=>{g.delete(p),v.update(y,!1,!0)},cancel:v.cancel.bind(v),wheel(p){v.wheel(p)}}),[v]),k.useEffect(()=>v.leave.bind(v,{}),[v]);const C=k.useRef(g.size>0);return jr(()=>{v.update({},!0,C.current,...g),C.current=!1}),X1.createElement("primitive",{object:d})});const IC=new H,xC=new Yn;k.forwardRef(({id:n,distanceElement:e,radius:t,onIntersections:i,filterIntersections:r,onClickMissed:s,onPointerDownMissed:o,onPointerUpMissed:a,filterClipped:l=!0,initialPressedElementIds:A},h)=>{const d=k.useMemo(()=>new Vt,[]),f=wo(),g=k.useMemo(()=>new Set(A),[]),E=k.useMemo(()=>new Lm,[]);E.onPointerDownMissed=o,E.onPointerUpMissed=a,E.onClickMissed=s;const v=k.useMemo(()=>({distanceElement:e,radius:t,filterClipped:l}),[]);v.distanceElement=e,v.radius=t,v.filterClipped=l;const C=k.useMemo(()=>new Pm(n,!0,E,(y,I)=>(d.getWorldPosition(IC),d.getWorldQuaternion(xC),I==null?Lz(IC,xC,v.radius,f.getState().scene,E,v.filterClipped):Pz(IC,xC,I)),y=>y!=null&&v.distanceElement!=null&&y.distance<=v.distanceElement.downRadius&&(y.distanceToFace==null||y.distanceToFace<2*v.distanceElement.downRadius*2)?[...g,v.distanceElement.id]:[...g],(y,I)=>{d.getWorldPosition(y),d.getWorldQuaternion(I)}),[n,f]);C.onIntersections=i,C.filterIntersections=r,k.useImperativeHandle(h,()=>({press:(y,I)=>{g.add(y),C.update(I,!1,!0,y)},release:(y,I)=>{g.delete(y),C.update(I,!1,!0)},cancel:C.cancel.bind(C),wheel(y){C.wheel(y)}}),[C]),k.useEffect(()=>C.leave.bind(C,{}),[C]);const p=k.useRef(g.size>0);return jr(()=>{C.update({},!0,p.current||e!=null,...g),p.current=!1}),X1.createElement("primitive",{object:d})});const BC=new H,SC=new Yn;k.forwardRef(({id:n,points:e,onIntersections:t,filterIntersections:i,onClickMissed:r,onPointerDownMissed:s,onPointerUpMissed:o,filterClipped:a=!0,initialPressedElementIds:l},A)=>{const h=k.useMemo(()=>new Vt,[]),d=wo(),f=k.useMemo(()=>new Lm,[]);f.onPointerDownMissed=s,f.onPointerUpMissed=o,f.onClickMissed=r;const g=k.useMemo(()=>new Set(l),[]),E=k.useMemo(()=>({points:e,filterClipped:a}),[]);E.points=e,E.filterClipped=a;const v=k.useMemo(()=>new Pm(n,!1,f,(p,y)=>(h.getWorldPosition(BC),h.getWorldQuaternion(SC),y==null?Qz(h,BC,SC,E.points,d.getState().scene,f,E.filterClipped):_z(h,BC,SC,E.points,y)),()=>[...g],(p,y)=>{h.getWorldPosition(p),h.getWorldQuaternion(y)}),[n,d]);v.onIntersections=t,v.filterIntersections=i,k.useImperativeHandle(A,()=>({press:(p,y)=>{g.add(p),v.update(y,!1,!0,p)},release:(p,y)=>{g.delete(p),v.update(y,!1,!0)},cancel:v.cancel.bind(v),wheel(p){v.wheel(p)}}),[v]),k.useEffect(()=>v.leave.bind(v,{}),[v]);const C=k.useRef(g.size>0);return jr(()=>{v.update({},!0,C.current,...g),C.current=!1}),X1.createElement("primitive",{object:h})});const qz=()=>({enabled:!1,priority:0});class Lm{constructor(e,t,i){be(this,"onPointerDownMissed");be(this,"onPointerUpMissed");be(this,"onClickMissed");be(this,"stoppedEventTypeSet");be(this,"event");be(this,"translator");be(this,"press",this.dispatch.bind(this,["onPointerDown"]));be(this,"release",this.dispatch.bind(this,["onPointerUp"]));be(this,"cancel",this.dispatch.bind(this,["onPointerCancel"]));be(this,"select",this.dispatch.bind(this,["onClick"]));be(this,"move",this.dispatch.bind(this,["onPointerMove"]));be(this,"enter",this.dispatch.bind(this,["onPointerEnter","onPointerOver"]));be(this,"leave",this.dispatch.bind(this,["onPointerLeave","onPointerOut"]));be(this,"wheel",this.dispatch.bind(this,["onWheel"]));be(this,"losteventcapture",()=>{});this.onPointerDownMissed=e,this.onPointerUpMissed=t,this.onClickMissed=i}dispatch(e,t,i,r){var s,o;for(const a of e){if(this.stoppedEventTypeSet.has(a))return;if(t==G1){switch(a){case"onClick":case"onPointerDown":case"onPointerUp":{const A=this[`${a}Missed`];if(A==null)return;A(this.createEvent(a,t,i,r))}}return}(o=(s=t.__r3f.handlers)[a])==null||o.call(s,this.createEvent(a,t,i,r))}}createEvent(e,t,i,r){const s=this.stoppedEventTypeSet,o=this.translator,a={setPointerCapture:this.translator.addEventCapture.bind(this.translator,this.event,t,i),releasePointerCapture:this.translator.removeEventCapture.bind(this.translator,this.event,t),hasPointerCapture:this.translator.hasEventCapture.bind(this.translator,t)},l={};for(const A in this.event){const h=this.event[A];typeof h!="function"&&(l[A]=h)}return Object.assign(l,i,{eventObject:t,pointer:null,stopped:null,delta:0,unprojectedPoint:null,ray:null,camera:null,stopPropagation(){s.add(e),e=="onPointerEnter"&&o.blockFollowingIntersections(t)},pointerId:this.translator.inputDeviceId,target:a,currentTarget:a,nativeEvent:this.event,inputDeviceElementId:r,inputDeviceId:this.translator.inputDeviceId}),l}bind(e,t){this.stoppedEventTypeSet=new Set,this.event=e,this.translator=t}hasEventHandlers(e){if(e===G1)return!0;const t=e.__r3f;return t!=null&&t.eventCount>0}}const m3=k.createContext(null);function Zz({children:n,...e}){const[t,i]=k.useState(!1),r=k.useRef(void 0);return k.useEffect(()=>()=>{r.current!=null&&clearTimeout(r.current)},[]),D.jsx(Je,{onPointerOver:()=>{r.current==null&&(r.current=setTimeout(()=>{r.current=void 0,i(!0)},1e3))},onPointerOut:()=>{if(r.current!=null){clearTimeout(r.current),r.current=void 0;return}i(!1)},positionType:"relative",flexDirection:"column",alignItems:"center",...e,children:D.jsx(m3.Provider,{value:t,children:n})})}function $z(n){return D.jsx(Je,{alignSelf:"stretch",...n})}function e9({children:n,sideOffset:e=4,...t}){return k.useContext(m3)?D.jsx(Je,{positionType:"absolute",positionBottom:"100%",marginBottom:e,zIndexOffset:50,overflow:"hidden",borderRadius:6,border:1,backgroundColor:Xe.popover,paddingX:12,paddingY:6,...t,children:D.jsx(En,{wordBreak:"keep-all",fontSize:14,lineHeight:1.4333,color:Xe.popoverForeground,children:n})}):null}function t9(){return D.jsxs(Zz,{children:[D.jsx($z,{children:D.jsx(Gs,{variant:"outline",children:D.jsx(lt,{children:"Hover"})})}),D.jsx(e9,{children:D.jsx(lt,{children:"Add to library"})})]})}const Nm=k.createContext(null);function n9({children:n}){const e=k.useState(void 0);return D.jsx(Je,{flexDirection:"column",children:D.jsx(Nm.Provider,{value:e,children:n})})}const HI=k.createContext("");function _C({children:n,...e}){const[t,i]=k.useContext(Nm),r=e.value===t;return D.jsx(Je,{cursor:"pointer",onClick:()=>i(r?void 0:e.value),borderBottom:1,...e,children:D.jsx(HI.Provider,{value:e.value,children:n})})}function wC({children:n,...e}){const t=k.useContext(HI),[i]=k.useContext(Nm),r=t===i;return D.jsxs(Je,{flexDirection:"row",flexGrow:1,flexShrink:1,alignItems:"center",justifyContent:"space-between",paddingY:16,...e,children:[D.jsx(En,{fontWeight:"medium",children:n}),D.jsx(q6,{transformRotateZ:r?180:0,width:16,height:16,flexShrink:0})]})}function MC({children:n,...e}){const t=k.useContext(HI),[i]=k.useContext(Nm);return i!=t?null:D.jsx(Je,{overflow:"hidden",...e,children:D.jsx(Je,{paddingBottom:16,children:D.jsx(En,{fontSize:14,children:n})})})}function i9(){return D.jsx(Je,{width:300,children:D.jsxs(n9,{children:[D.jsxs(_C,{value:"item-1",children:[D.jsx(wC,{children:D.jsx(lt,{children:"Is it accessible?"})}),D.jsx(MC,{children:D.jsx(lt,{children:"Yes. It adheres to the WAI-ARIA design pattern."})})]}),D.jsxs(_C,{value:"item-2",children:[D.jsx(wC,{children:D.jsx(lt,{children:"Is it styled?"})}),D.jsx(MC,{children:D.jsx(lt,{children:"Yes. It comes with default styles that matches the other components' aesthetic."})})]}),D.jsxs(_C,{value:"item-3",children:[D.jsx(wC,{children:D.jsx(lt,{children:"Is it animated?"})}),D.jsx(MC,{children:D.jsx(lt,{children:"Yes. It's animated by default, but you can disable it if you prefer."})})]})]})})}const r9={default:{},destructive:{borderColor:Xe.destructive,borderOpacity:.5,color:Xe.destructive}};function s9(n){return D.jsx(En,{...r9[n.variant??"default"],children:D.jsx(Je,{positionType:"relative",width:"100%",borderRadius:8,border:1,padding:16,...n})})}function o9(n){return D.jsx(Je,{positionLeft:16,positionTop:16,positionType:"absolute",...n})}function a9({children:n,...e}){return D.jsx(Je,{marginBottom:4,padding:0,paddingLeft:28,...e,children:D.jsx(En,{fontWeight:"medium",letterSpacing:-.4,lineHeight:1,children:n})})}function l9({children:n}){return D.jsx(Je,{paddingLeft:28,children:D.jsx(En,{lineHeight:1.625,fontSize:14,children:n})})}function c9(){return D.jsxs(s9,{children:[D.jsx(o9,{children:D.jsx(fz,{width:16,height:16})}),D.jsx(a9,{children:D.jsx(lt,{children:"Error"})}),D.jsx(l9,{children:D.jsx(lt,{children:"You can add components to your app using the cli."})})]})}const u9=l3,A9=c3;function h9(n){const e=Tm();return D.jsx(A3,{children:D.jsx(u3,{onClick:t=>{e(),t.stopPropagation()},alignItems:"center",justifyContent:"center",children:D.jsx(Je,{onClick:t=>t.stopPropagation(),positionType:"relative",maxWidth:512,width:"100%",gap:16,border:1,backgroundColor:Xe.background,padding:24,sm:{borderRadius:8},...n})})})}const d9=h3,f9=d3;function p9({children:n}){return D.jsx(En,{fontSize:18,lineHeight:1.5555,fontWeight:"semi-bold",children:n})}const g9=f3;function m9({children:n,onClick:e,...t}){const i=Tm();return D.jsx(Je,{borderRadius:6,height:40,paddingX:16,paddingY:8,alignItems:"center",justifyContent:"center",cursor:"pointer",flexDirection:"row",backgroundColor:Xe.primary,onClick:r=>{r.stopPropagation(),i(),e==null||e(r)},hover:{backgroundOpacity:.9},...t,children:D.jsx(En,{children:D.jsx(En,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",color:Xe.primaryForeground,children:n})})})}function E9({children:n,onClick:e,...t}){const i=Tm();return D.jsx(Je,{borderRadius:6,height:40,paddingX:16,paddingY:8,alignItems:"center",justifyContent:"center",cursor:"pointer",flexDirection:"row",border:1,borderColor:Xe.input,backgroundColor:Xe.background,onClick:r=>{r.stopPropagation(),i(),e==null||e(r)},hover:{backgroundColor:Xe.accent},...t,children:D.jsx(En,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",children:n})})}function C9(){return D.jsxs(u9,{children:[D.jsx(A9,{children:D.jsx(Gs,{variant:"outline",children:D.jsx(lt,{children:"Show Dialog"})})}),D.jsxs(h9,{children:[D.jsxs(d9,{children:[D.jsx(p9,{children:D.jsx(lt,{children:"Are you absolutely sure?"})}),D.jsx(g9,{children:D.jsx(lt,{children:"This action cannot be undone. This will permanently delete your account and remove your data from our servers."})})]}),D.jsxs(f9,{children:[D.jsx(E9,{children:D.jsx(lt,{children:"Cancel"})}),D.jsx(m9,{children:D.jsx(lt,{children:"Continue"})})]})]})]})}function y9(n){return D.jsx(e3,{width:40,height:40,flexShrink:0,aspectRatio:1,fit:"cover",borderRadius:20,...n})}function v9(){return D.jsx(Je,{alignItems:"center",children:D.jsx(y9,{src:"https://picsum.photos/100/100"})})}const I9={default:{defaultProps:{color:Xe.primaryForeground},containerProps:{backgroundColor:Xe.primary},containerHoverProps:{backgroundOpacity:.8}},secondary:{defaultProps:{color:Xe.secondaryForeground},containerProps:{backgroundColor:Xe.secondary},containerHoverProps:{backgroundOpacity:.8}},destructive:{defaultProps:{color:Xe.destructiveForeground},containerProps:{backgroundColor:Xe.destructive},containerHoverProps:{backgroundOpacity:.8}},outline:{}};function x9({children:n,variant:e="default",hover:t,...i}){const{containerProps:r,defaultProps:s,containerHoverProps:o}=I9[e];return D.jsx(Je,{borderRadius:1e3,border:1,paddingX:10,paddingY:2,hover:{...o,...t},...r,...i,children:D.jsx(En,{fontSize:12,lineHeight:1.3333,fontWeight:"semi-bold",...s,children:n})})}function B9(){return D.jsx(x9,{children:D.jsx(lt,{children:"Badge"})})}function S9(){return D.jsx(Gs,{variant:"outline",size:"icon",children:D.jsx(r3,{width:16,height:16})})}function E3({defaultChecked:n,checked:e,disabled:t=!1,onCheckedChange:i,...r}){const[s,o]=k.useState(n??!1),a=e??s;return D.jsx(Je,{height:24,width:44,flexShrink:0,flexDirection:"row",padding:2,alignItems:"center",backgroundOpacity:t?.5:void 0,borderRadius:1e3,backgroundColor:a?Xe.primary:Xe.input,cursor:t?void 0:"pointer",onClick:t?void 0:()=>{e==null&&o(!a),i==null||i(!a)},...r,children:D.jsx(Je,{width:20,height:20,borderRadius:1e3,transformTranslateX:a?20:0,backgroundColor:Xe.background})})}const QC=[{title:"Your call has been confirmed.",description:"1 hour ago"},{title:"You have a new message!",description:"1 hour ago"},{title:"Your subscription is expiring soon!",description:"2 hours ago"}];function _9(){return D.jsxs(Pg,{width:380,children:[D.jsxs(P1,{children:[D.jsx(L1,{children:D.jsx(lt,{children:"Notifications"})}),D.jsx(N1,{children:D.jsx(lt,{children:"You have 3 unread messages."})})]}),D.jsxs(U1,{flexDirection:"column",gap:16,children:[D.jsxs(Je,{flexDirection:"row",alignItems:"center",gap:16,borderRadius:6,border:1,padding:16,children:[D.jsx(X6,{}),D.jsxs(Je,{gap:4,children:[D.jsx(lt,{fontSize:14,lineHeight:1,children:"Push Notifications"}),D.jsx(lt,{fontSize:14,lineHeight:1.43,color:Xe.mutedForeground,children:"Send notifications to device."})]}),D.jsx(E3,{})]}),D.jsx(Je,{children:QC.map((n,e)=>D.jsxs(Je,{marginBottom:e===QC.length-1?0:16,paddingBottom:e===QC.length-1?0:16,alignItems:"flex-start",flexDirection:"row",gap:17,children:[D.jsx(Je,{height:8,width:8,transformTranslateY:4,borderRadius:1e3,backgroundColor:959977}),D.jsxs(Je,{gap:4,children:[D.jsx(lt,{fontSize:14,lineHeight:1,children:n.title}),D.jsx(lt,{fontSize:14,lineHeight:1.43,color:Xe.mutedForeground,children:n.description})]})]},e))})]}),D.jsx(F1,{children:D.jsxs(Gs,{flexDirection:"row",width:"100%",children:[D.jsx(i3,{marginRight:8,height:16,width:16}),D.jsx(lt,{children:"Mark all as read"})]})})]})}function w9({defaultChecked:n,checked:e,disabled:t=!1,onCheckedChange:i,...r}){const[s,o]=k.useState(n??!1),a=e??s;return D.jsx(Je,{alignItems:"center",justifyContent:"center",cursor:t?void 0:"pointer",onClick:t?void 0:()=>{e==null&&o(!a),i==null||i(!a)},borderRadius:4,width:16,height:16,border:1,borderColor:Xe.primary,backgroundColor:a?Xe.primary:void 0,backgroundOpacity:t?.5:void 0,borderOpacity:t?.5:void 0,...r,children:D.jsx(i3,{color:a?Xe.primaryForeground:void 0,opacity:a?t?.5:void 0:0,width:14,height:14})})}function ls({disabled:n,children:e}){return D.jsx(En,{fontWeight:"medium",fontSize:14,lineHeight:1,opacity:n?.7:void 0,children:e})}function M9(){return D.jsxs(Je,{flexDirection:"row",gap:8,alignItems:"center",children:[D.jsx(w9,{}),D.jsx(ls,{children:D.jsx(lt,{children:"Accept terms and conditions"})})]})}function Q9(){return D.jsxs(l3,{children:[D.jsx(c3,{children:D.jsx(Gs,{variant:"outline",children:D.jsx(lt,{children:"Edit Profile"})})}),D.jsxs(Bz,{sm:{maxWidth:425},children:[D.jsxs(h3,{children:[D.jsx(Sz,{children:D.jsx(lt,{children:"Edit profile"})}),D.jsx(f3,{children:D.jsx(lt,{children:"Make changes to your profile here. Click save when you're done."})})]}),D.jsxs(Je,{gap:16,paddingY:16,children:[D.jsx(Je,{alignItems:"center",gap:16,children:D.jsx(ls,{children:D.jsx(lt,{horizontalAlign:"right",children:"Name"})})}),D.jsx(Je,{alignItems:"center",gap:16,children:D.jsx(ls,{children:D.jsx(lt,{horizontalAlign:"right",children:"Username"})})})]}),D.jsx(d3,{children:D.jsx(Gs,{children:D.jsx(lt,{children:"Save changes"})})})]})]})}function R9(n){return D.jsx(Je,{marginX:"auto",flexDirection:"row",width:"100%",justifyContent:"center",...n})}function T9(n){return D.jsx(Je,{flexDirection:"row",alignItems:"center",gap:4,...n})}const zc=Je,D9={outline:{containerProps:{border:1,borderColor:Xe.input,backgroundColor:Xe.background},containerHoverProps:{backgroundColor:Xe.accent}},ghost:{containerHoverProps:{backgroundColor:Xe.accent}}},b9={default:{height:40,paddingX:16,paddingY:8},sm:{height:36,paddingX:12},lg:{height:42,paddingX:32},icon:{height:40,width:40}};function eh({isActive:n=!1,size:e="icon",hover:t,...i}){const{containerProps:r,containerHoverProps:s}=D9[n?"outline":"ghost"],o=b9[e];return D.jsx(Je,{cursor:"pointer",borderRadius:6,alignItems:"center",justifyContent:"center",hover:{...s,...t},...r,...o,...i})}function P9(n){return D.jsxs(eh,{flexDirection:"row",size:"default",gap:4,paddingLeft:10,...n,children:[D.jsx($6,{width:16,height:16}),D.jsx(lt,{children:"Previous"})]})}function L9(n){return D.jsxs(eh,{flexDirection:"row",size:"default",gap:4,paddingRight:10,...n,children:[D.jsx(lt,{children:"Next"}),D.jsx(r3,{width:16,height:16})]})}function N9(n){return D.jsx(Je,{flexDirection:"row",height:36,width:36,alignItems:"center",justifyContent:"center",...n,children:D.jsx(lz,{width:16,height:16})})}function U9(){return D.jsx(R9,{children:D.jsxs(T9,{children:[D.jsx(zc,{children:D.jsx(P9,{})}),D.jsx(zc,{children:D.jsx(eh,{children:D.jsx(lt,{children:"1"})})}),D.jsx(zc,{children:D.jsx(eh,{isActive:!0,children:D.jsx(lt,{children:"2"})})}),D.jsx(zc,{children:D.jsx(eh,{children:D.jsx(lt,{children:"3"})})}),D.jsx(zc,{children:D.jsx(N9,{})}),D.jsx(zc,{children:D.jsx(L9,{})})]})})}function F9({value:n,...e}){const t=k.useMemo(()=>bn(()=>`${n??0}%`),[n]);return D.jsx(Je,{height:16,width:"100%",borderRadius:1e3,backgroundColor:Xe.secondary,...e,children:D.jsx(Je,{height:"100%",borderRadius:1e3,backgroundColor:Xe.primary,width:t})})}function k9(){const[n,e]=k.useState(13);return k.useEffect(()=>{const t=setTimeout(()=>e(66),500);return()=>clearTimeout(t)},[]),D.jsx(F9,{value:n,width:200})}const C3=k.createContext({});function O9({defaultValue:n,value:e,onValueChange:t,children:i,...r}){const[s,o]=k.useState(n),a=k.useMemo(()=>e==null?{value:s,setValue:l=>{o(l),t==null||t(l)}}:{value:e,onValueChange:t},[s,t,e]);return D.jsx(Je,{gap:8,...r,children:D.jsx(C3.Provider,{value:a,children:i})})}function RC({disabled:n=!1,value:e,children:t,...i}){const{value:r,setValue:s}=k.useContext(C3);return D.jsxs(Je,{cursor:n?void 0:"pointer",onClick:n?void 0:()=>s==null?void 0:s(e),flexDirection:"row",alignItems:"center",gap:8,children:[D.jsx(Je,{aspectRatio:1,height:16,width:16,borderRadius:1e3,border:1,borderOpacity:n?.5:void 0,borderColor:Xe.primary,alignItems:"center",justifyContent:"center",...i,children:D.jsx(Je,{borderRadius:1e3,aspectRatio:1,backgroundColor:Xe.primary,backgroundOpacity:e===r?1:0,height:9,width:9})}),t]})}function G9(){return D.jsxs(O9,{defaultValue:"comfortable",children:[D.jsx(RC,{value:"default",children:D.jsx(ls,{children:D.jsx(lt,{children:"Default"})})}),D.jsx(RC,{value:"comfortable",children:D.jsx(ls,{children:D.jsx(lt,{children:"Comfortable"})})}),D.jsx(RC,{value:"compact",children:D.jsx(ls,{children:D.jsx(lt,{children:"Compact"})})})]})}function H9(){return D.jsxs(Je,{children:[D.jsxs(Je,{gap:4,children:[D.jsx(lt,{fontSize:14,lineHeight:1,children:"Radix Primitives"}),D.jsx(lt,{fontSize:14,lineHeight:1.43,color:Xe.mutedForeground,children:"An open-source UI component library."})]}),D.jsx($p,{marginY:16}),D.jsx(Je,{flexDirection:"row",height:20,alignItems:"center",gap:16,children:D.jsxs(En,{fontSize:14,lineHeight:1.43,children:[D.jsx(lt,{children:"Blog"}),D.jsx($p,{orientation:"vertical"}),D.jsx(lt,{children:"Docs"}),D.jsx($p,{orientation:"vertical"}),D.jsx(lt,{children:"Source"})]})})]})}function TC(n){const e=k.useMemo(()=>Ht(1),[]),t=k.useRef(0);return jr((i,r)=>{e.value=Math.cos(t.current*Math.PI)*.25+.75,t.current+=r}),D.jsx(Je,{borderRadius:6,backgroundColor:Xe.muted,backgroundOpacity:e,...n})}function z9(){return D.jsxs(Je,{flexDirection:"row",alignItems:"center",gap:16,children:[D.jsx(TC,{borderRadius:1e3,height:48,width:48}),D.jsxs(Je,{gap:8,children:[D.jsx(TC,{height:16,width:250}),D.jsx(TC,{height:16,width:200})]})]})}const DC=new H;function V9({disabled:n=!1,value:e,defaultValue:t,onValueChange:i,min:r=0,max:s=100,step:o=1,...a}){const[l,A]=k.useState(t),h=e??l??50,d=s-r,f=`${100*h/d}%`,g=k.useRef(null),E=k.useRef(i);E.current=i;const v=e!=null,C=k.useMemo(()=>{let p=!1;function y(I){var R;if(g.current==null)return;DC.copy(I.point),g.current.interactionPanel.worldToLocal(DC);const B=Math.min(Math.max(Math.round(((DC.x+.5)*(s-r)+r)/o)*o,r),s);v||A(B),(R=E.current)==null||R.call(E,B),I.stopPropagation()}return{onPointerDown(I){p=!0,y(I),I.target.setPointerCapture(I.pointerId)},onPointerMove(I){p&&y(I)},onPointerUp(I){p&&(p=!1,I.stopPropagation())}}},[s,r,v,o]);return D.jsxs(Je,{ref:g,...n?{}:C,positionType:"relative",height:8,width:"100%",alignItems:"center",...a,children:[D.jsx(Je,{height:8,positionType:"absolute",positionLeft:0,positionRight:0,flexGrow:1,borderRadius:1e3,backgroundColor:Xe.secondary,children:D.jsx(Je,{height:"100%",width:f,borderRadius:1e3,backgroundColor:Xe.primary})}),D.jsx(Je,{zIndexOffset:{minor:100},positionType:"absolute",positionLeft:f,transformTranslateX:-10,transformTranslateY:-6,cursor:"pointer",borderOpacity:n?.5:void 0,backgroundOpacity:n?.5:void 0,height:20,width:20,border:2,borderRadius:1e3,borderColor:Xe.primary,backgroundColor:Xe.background})]})}function W9(){return D.jsx(V9,{defaultValue:50,max:100,step:1,width:300})}function Y9(){return D.jsxs(Je,{flexDirection:"row",alignItems:"center",gap:8,children:[D.jsx(E3,{}),D.jsx(ls,{children:D.jsx(lt,{children:"Airplane Mode"})})]})}function X9(){return D.jsxs(s3,{defaultValue:"account",width:400,children:[D.jsxs(o3,{width:"100%",children:[D.jsx(k1,{flexGrow:1,value:"account",children:D.jsx(lt,{children:"Account"})}),D.jsx(k1,{flexGrow:1,value:"password",children:D.jsx(lt,{children:"Password"})})]}),D.jsx(O1,{value:"account",children:D.jsxs(Pg,{children:[D.jsxs(P1,{children:[D.jsx(L1,{children:D.jsx(lt,{children:"Account"})}),D.jsx(N1,{children:D.jsx(lt,{children:"Make changes to your account here. Click save when you're done."})})]}),D.jsxs(U1,{gap:8,children:[D.jsxs(Je,{gap:4,children:[D.jsx(ls,{children:D.jsx(lt,{children:"Name"})}),D.jsx(lt,{children:"Pedro Duarte"})]}),D.jsxs(Je,{gap:4,children:[D.jsx(ls,{children:D.jsx(lt,{children:"Username"})}),D.jsx(lt,{children:"@peduarte"})]})]}),D.jsx(F1,{children:D.jsx(Gs,{children:D.jsx(lt,{children:"Save changes"})})})]})}),D.jsx(O1,{value:"password",children:D.jsxs(Pg,{children:[D.jsxs(P1,{children:[D.jsx(L1,{children:D.jsx(lt,{children:"Password"})}),D.jsx(N1,{children:D.jsx(lt,{children:"Change your password here. After saving, you'll be logged out."})})]}),D.jsxs(U1,{gap:8,children:[D.jsxs(Je,{gap:4,children:[D.jsx(ls,{children:D.jsx(lt,{children:"Current password"})}),D.jsx(lt,{children:"password"})]}),D.jsxs(Je,{gap:4,children:[D.jsx(ls,{children:D.jsx(lt,{children:"New password"})}),D.jsx(lt,{children:"password"})]})]}),D.jsx(F1,{children:D.jsx(Gs,{children:D.jsx(lt,{children:"Save password"})})})]})})]})}const aM={default:{},outline:{containerProps:{border:1,borderColor:Xe.input},containerHoverProps:{backgroundColor:Xe.accent}}},J9={default:{height:40,paddingX:12},sm:{height:36,paddingX:10},lg:{height:44,paddingX:20}};function j9({children:n,size:e="default",variant:t="default",defaultChecked:i,checked:r,disabled:s=!1,onCheckedChange:o,hover:a,...l}){const[A,h]=k.useState(i??!1),d=r??A;return D.jsx(Je,{onClick:s?void 0:()=>{r==null&&h(!d),o==null||o(!d)},alignItems:"center",justifyContent:"center",borderRadius:6,cursor:s?void 0:"pointer",backgroundOpacity:s?.5:void 0,borderOpacity:s?.5:void 0,backgroundColor:d?Xe.accent:void 0,hover:s?a:{backgroundColor:Xe.muted,...aM[t].containerHoverProps,...a},...aM[t].containerProps,...J9[e],...l,children:D.jsx(En,{color:d?Xe.accentForeground:void 0,opacity:s?.5:void 0,fontSize:14,lineHeight:1.43,fontWeight:"medium",children:n})})}function K9(){return D.jsx(j9,{children:D.jsx(n3,{height:16,width:16})})}const lM={default:{containerHoverProps:void 0,containerProps:void 0},outline:{containerProps:{border:1,borderColor:Xe.input},containerHoverProps:{backgroundColor:Xe.accent}}},q9={default:{height:40,paddingX:12},sm:{height:36,paddingX:10},lg:{height:44,paddingX:20}},y3=k.createContext({size:"default",variant:"default"});function Z9({children:n,size:e="default",variant:t="default",...i}){return D.jsx(Je,{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:4,...i,children:D.jsx(y3.Provider,{value:{variant:t,size:e},children:n})})}function bC({children:n,defaultChecked:e,checked:t,disabled:i=!1,onCheckedChange:r,hover:s,...o}){const{size:a,variant:l}=k.useContext(y3),[A,h]=k.useState(e??!1),d=t??A;return D.jsx(Je,{onClick:i?void 0:()=>{t==null&&h(!d),r==null||r(!d)},alignItems:"center",justifyContent:"center",borderRadius:6,cursor:i?void 0:"pointer",backgroundOpacity:i?.5:void 0,borderOpacity:i?.5:void 0,backgroundColor:d?Xe.accent:void 0,hover:i?s:{backgroundColor:Xe.muted,...lM[l].containerHoverProps,...s},...lM[l].containerProps,...q9[a],...o,children:D.jsx(En,{color:d?Xe.accentForeground:void 0,opacity:i?.5:void 0,fontSize:14,lineHeight:1.43,children:n})})}function $9(){return D.jsxs(Z9,{children:[D.jsx(bC,{"aria-label":"Toggle bold",children:D.jsx(n3,{height:16,width:16})}),D.jsx(bC,{"aria-label":"Toggle italic",children:D.jsx(rz,{height:16,width:16})}),D.jsx(bC,{"aria-label":"Toggle underline",children:D.jsx(gz,{width:16,height:16})})]})}function e7({panelMaterialClass:n,multiline:e,value:t,defaultValue:i,onValueChange:r,tabIndex:s,disabled:o=!1,placeholder:a,...l}){const[A,h]=k.useState(null),d=k.useMemo(()=>{if(A!=null){if(A.value instanceof On){const f=A.value;return bn(()=>f.value.length>0?0:void 0)}return A.value.length>0?0:void 0}},[A]);return D.jsx(Je,{height:40,positionType:"relative",overflow:"hidden",...l,children:D.jsxs(En,{fontSize:14,height:"100%",width:"100%",border:1,paddingX:12,paddingY:8,lineHeight:1.43,opacity:o?.5:void 0,backgroundOpacity:o?.5:void 0,children:[D.jsx(k6,{ref:h,borderRadius:6,backgroundColor:Xe.background,borderColor:Xe.input,focus:{borderColor:Xe.ring},panelMaterialClass:n,multiline:e,value:t,defaultValue:i,onValueChange:r,tabIndex:s,disabled:o}),a!=null&&D.jsx(lt,{color:Xe.mutedForeground,opacity:d,borderOpacity:0,inset:0,positionType:"absolute",children:a})]})})}function t7(){return D.jsx(e7,{width:200,placeholder:"Email"})}const PC={accordion:i9,alert:c9,"alert-dialog":C9,avatar:v9,badge:B9,button:S9,card:_9,checkbox:M9,dialog:Q9,pagination:U9,progress:k9,"radio-group":G9,separator:H9,skeleton:z9,slider:W9,switch:Y9,tabs:X9,toggle:K9,"toggle-group":$9,tooltip:t9,input:t7},n7="card";function i7(){const[n,e]=k.useState(()=>{let o=new URLSearchParams(window.location.search).get("component");return(o==null||!(o in PC))&&(o=n7),o}),t=s=>{const o=new URLSearchParams(window.location.search);o.set("component",s),history.replaceState(null,"","?"+o.toString()),e(s)},[i,r]=k.useState(()=>vw());return D.jsxs(fG,{events:qz,style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:[D.jsx(Yz,{}),D.jsx("color",{attach:"background",args:["black"]}),D.jsx("ambientLight",{intensity:.5}),D.jsx("directionalLight",{intensity:0,position:[5,1,10]}),D.jsx(Cz,{children:D.jsx(G6,{scrollbarColor:"black",backgroundColor:Xe.background,alignItems:"center",padding:32,children:D.jsxs(Iz,{children:[D.jsxs(s3,{alignSelf:"stretch",flexGrow:1,value:n,onValueChange:t,children:[D.jsx(o3,{height:55,paddingBottom:10,overflow:"scroll",maxWidth:"100%",children:Object.keys(PC).map(s=>D.jsx(k1,{value:s,children:D.jsxs(lt,{children:[s[0].toUpperCase(),s.slice(1)]})},s))}),Object.entries(PC).map(([s,o])=>D.jsx(O1,{flexGrow:1,alignItems:"center",justifyContent:"center",value:s,children:D.jsx(Je,{children:D.jsx(o,{})})},s))]}),D.jsxs(Pg,{padding:8,flexDirection:"row",gap:8,alignItems:"center",children:[D.jsx(Gs,{size:"icon",variant:"ghost",onClick:()=>{_G(i==="light"?"dark":i==="dark"?"system":"light"),r(vw())},children:i==="dark"?D.jsx(oz,{}):i==="system"?D.jsx(uz,{}):D.jsx(hz,{})}),D.jsx($p,{orientation:"vertical"}),D.jsxs(lt,{padding:8,children:["npx uikit component add default ",n]}),D.jsx(Gs,{onClick:()=>navigator.clipboard.writeText(`npx uikit component add apfel ${n}`),size:"icon",variant:"secondary",children:D.jsx(nz,{})})]})]})})})]})}IQ(document.getElementById("root")).render(D.jsx(k.StrictMode,{children:D.jsx(i7,{})})); diff --git a/examples/default/index.html b/examples/default/index.html index f5bd4772..b71cbb60 100644 --- a/examples/default/index.html +++ b/examples/default/index.html @@ -5,7 +5,7 @@ Document - +
diff --git a/examples/lucide/assets/index-SlH4at9C.js b/examples/lucide/assets/index-SlH4at9C.js new file mode 100644 index 00000000..ba55cce4 --- /dev/null +++ b/examples/lucide/assets/index-SlH4at9C.js @@ -0,0 +1,4057 @@ +var gE=Object.defineProperty;var pE=(t,e,n)=>e in t?gE(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var V1=(t,e,n)=>(pE(t,typeof e!="symbol"?e+"":e,n),n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))C(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&C(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function C(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function Uv(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Fv={exports:{}},ho={},Wv={exports:{}},F0={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Mn=Symbol.for("react.element"),AE=Symbol.for("react.portal"),vE=Symbol.for("react.fragment"),LE=Symbol.for("react.strict_mode"),wE=Symbol.for("react.profiler"),xE=Symbol.for("react.provider"),mE=Symbol.for("react.context"),kE=Symbol.for("react.forward_ref"),ME=Symbol.for("react.suspense"),EE=Symbol.for("react.memo"),yE=Symbol.for("react.lazy"),dg=Symbol.iterator;function IE(t){return t===null||typeof t!="object"?null:(t=dg&&t[dg]||t["@@iterator"],typeof t=="function"?t:null)}var Gv={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ov=Object.assign,zv={};function he(t,e,n){this.props=t,this.context=e,this.refs=zv,this.updater=n||Gv}he.prototype.isReactComponent={};he.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};he.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function Vv(){}Vv.prototype=he.prototype;function ju(t,e,n){this.props=t,this.context=e,this.refs=zv,this.updater=n||Gv}var Uu=ju.prototype=new Vv;Uu.constructor=ju;Ov(Uu,he.prototype);Uu.isPureReactComponent=!0;var hg=Array.isArray,$v=Object.prototype.hasOwnProperty,Fu={current:null},Yv={key:!0,ref:!0,__self:!0,__source:!0};function Xv(t,e,n){var C,r={},i=null,o=null;if(e!=null)for(C in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(i=""+e.key),e)$v.call(e,C)&&!Yv.hasOwnProperty(C)&&(r[C]=e[C]);var s=arguments.length-2;if(s===1)r.children=n;else if(1>>1,x1=U[d1];if(0>>1;d1r(O,n1))Wr(F,O)?(U[d1]=F,U[W]=n1,d1=W):(U[d1]=O,U[$]=n1,d1=$);else if(Wr(F,n1))U[d1]=F,U[W]=n1,d1=W;else break e}}return t1}function r(U,t1){var n1=U.sortIndex-t1.sortIndex;return n1!==0?n1:U.id-t1.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;t.unstable_now=function(){return i.now()}}else{var o=Date,s=o.now();t.unstable_now=function(){return o.now()-s}}var a=[],d=[],g=1,p=null,A=3,w=!1,x=!1,y=!1,m=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function k(U){for(var t1=n(d);t1!==null;){if(t1.callback===null)C(d);else if(t1.startTime<=U)C(d),t1.sortIndex=t1.expirationTime,e(a,t1);else break;t1=n(d)}}function I(U){if(y=!1,k(U),!x)if(n(a)!==null)x=!0,C1(Q);else{var t1=n(d);t1!==null&&u1(I,t1.startTime-U)}}function Q(U,t1){x=!1,y&&(y=!1,v(j),j=-1),w=!0;var n1=A;try{for(k(t1),p=n(a);p!==null&&(!(p.expirationTime>t1)||U&&!P());){var d1=p.callback;if(typeof d1=="function"){p.callback=null,A=p.priorityLevel;var x1=d1(p.expirationTime<=t1);t1=t.unstable_now(),typeof x1=="function"?p.callback=x1:p===n(a)&&C(a),k(t1)}else C(a);p=n(a)}if(p!==null)var U1=!0;else{var $=n(d);$!==null&&u1(I,$.startTime-t1),U1=!1}return U1}finally{p=null,A=n1,w=!1}}var R=!1,T=null,j=-1,q=5,_=-1;function P(){return!(t.unstable_now()-_U||125d1?(U.sortIndex=n1,e(d,U),n(a)===null&&U===n(d)&&(y?(v(j),j=-1):y=!0,u1(I,n1-d1))):(U.sortIndex=x1,e(a,U),x||w||(x=!0,C1(Q))),U},t.unstable_shouldYield=P,t.unstable_wrapCallback=function(U){var t1=A;return function(){var n1=A;A=t1;try{return U.apply(this,arguments)}finally{A=n1}}}})(Zv);Kv.exports=Zv;var HE=Kv.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var eL=u,L8=HE;function j1(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Fa=Object.prototype.hasOwnProperty,jE=/^[: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]*$/,gg={},pg={};function UE(t){return Fa.call(pg,t)?!0:Fa.call(gg,t)?!1:jE.test(t)?pg[t]=!0:(gg[t]=!0,!1)}function FE(t,e,n,C){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return C?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function WE(t,e,n,C){if(e===null||typeof e>"u"||FE(t,e,n,C))return!0;if(C)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function G9(t,e,n,C,r,i,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=C,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=i,this.removeEmptyString=o}var g9={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){g9[t]=new G9(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];g9[e]=new G9(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){g9[t]=new G9(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){g9[t]=new G9(t,2,!1,t,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(t){g9[t]=new G9(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){g9[t]=new G9(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){g9[t]=new G9(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){g9[t]=new G9(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){g9[t]=new G9(t,5,!1,t.toLowerCase(),null,!1,!1)});var Gu=/[\-:]([a-z])/g;function Ou(t){return t[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(t){var e=t.replace(Gu,Ou);g9[e]=new G9(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(Gu,Ou);g9[e]=new G9(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(Gu,Ou);g9[e]=new G9(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){g9[t]=new G9(t,1,!1,t.toLowerCase(),null,!1,!1)});g9.xlinkHref=new G9("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){g9[t]=new G9(t,1,!1,t.toLowerCase(),null,!0,!0)});function zu(t,e,n,C){var r=g9.hasOwnProperty(e)?g9[e]:null;(r!==null?r.type!==0:C||!(2s||r[o]!==i[s]){var a=` +`+r[o].replace(" at new "," at ");return t.displayName&&a.includes("")&&(a=a.replace("",t.displayName)),a}while(1<=o&&0<=s);break}}}finally{dl=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?dt(t):""}function GE(t){switch(t.tag){case 5:return dt(t.type);case 16:return dt("Lazy");case 13:return dt("Suspense");case 19:return dt("SuspenseList");case 0:case 2:case 15:return t=hl(t.type,!1),t;case 11:return t=hl(t.type.render,!1),t;case 1:return t=hl(t.type,!0),t;default:return""}}function za(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case Q7:return"Fragment";case b7:return"Portal";case Wa:return"Profiler";case Vu:return"StrictMode";case Ga:return"Suspense";case Oa:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case CL:return(t.displayName||"Context")+".Consumer";case nL:return(t._context.displayName||"Context")+".Provider";case $u:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case Yu:return e=t.displayName||null,e!==null?e:za(t.type)||"Memo";case $6:e=t._payload,t=t._init;try{return za(t(e))}catch{}}return null}function OE(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return za(e);case 8:return e===Vu?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function g5(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function iL(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function zE(t){var e=iL(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),C=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var r=n.get,i=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){C=""+o,i.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return C},setValue:function(o){C=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function jC(t){t._valueTracker||(t._valueTracker=zE(t))}function oL(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),C="";return t&&(C=iL(t)?t.checked?"true":"false":t.value),t=C,t!==n?(e.setValue(t),!0):!1}function bi(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Va(t,e){var n=e.checked;return B2({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function vg(t,e){var n=e.defaultValue==null?"":e.defaultValue,C=e.checked!=null?e.checked:e.defaultChecked;n=g5(e.value!=null?e.value:n),t._wrapperState={initialChecked:C,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function sL(t,e){e=e.checked,e!=null&&zu(t,"checked",e,!1)}function $a(t,e){sL(t,e);var n=g5(e.value),C=e.type;if(n!=null)C==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(C==="submit"||C==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?Ya(t,e.type,n):e.hasOwnProperty("defaultValue")&&Ya(t,e.type,g5(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function Lg(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var C=e.type;if(!(C!=="submit"&&C!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function Ya(t,e,n){(e!=="number"||bi(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var ht=Array.isArray;function X7(t,e,n,C){if(t=t.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=UC.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function Nt(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var xt={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},VE=["Webkit","ms","Moz","O"];Object.keys(xt).forEach(function(t){VE.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),xt[e]=xt[t]})});function uL(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||xt.hasOwnProperty(t)&&xt[t]?(""+e).trim():e+"px"}function dL(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var C=n.indexOf("--")===0,r=uL(n,e[n],C);n==="float"&&(n="cssFloat"),C?t.setProperty(n,r):t[n]=r}}var $E=B2({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function qa(t,e){if(e){if($E[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(j1(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(j1(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(j1(61))}if(e.style!=null&&typeof e.style!="object")throw Error(j1(62))}}function Ka(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){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!1;default:return!0}}var Za=null;function Xu(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var ec=null,J7=null,q7=null;function mg(t){if(t=In(t)){if(typeof ec!="function")throw Error(j1(280));var e=t.stateNode;e&&(e=vo(e),ec(t.stateNode,t.type,e))}}function hL(t){J7?q7?q7.push(t):q7=[t]:J7=t}function fL(){if(J7){var t=J7,e=q7;if(q7=J7=null,mg(t),e)for(t=0;t>>=0,t===0?32:31-(ry(t)/iy|0)|0}var FC=64,WC=4194304;function ft(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Pi(t,e){var n=t.pendingLanes;if(n===0)return 0;var C=0,r=t.suspendedLanes,i=t.pingedLanes,o=n&268435455;if(o!==0){var s=o&~r;s!==0?C=ft(s):(i&=o,i!==0&&(C=ft(i)))}else o=n&~r,o!==0?C=ft(o):i!==0&&(C=ft(i));if(C===0)return 0;if(e!==0&&e!==C&&!(e&r)&&(r=C&-C,i=e&-e,r>=i||r===16&&(i&4194240)!==0))return e;if(C&4&&(C|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=C;0n;n++)e.push(t);return e}function En(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-Z8(e),t[e]=n}function ay(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var C=t.eventTimes;for(t=t.expirationTimes;0=kt),Rg=" ",bg=!1;function TL(t,e){switch(t){case"keyup":return Ny.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function DL(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var T7=!1;function jy(t,e){switch(t){case"compositionend":return DL(e);case"keypress":return e.which!==32?null:(bg=!0,Rg);case"textInput":return t=e.data,t===Rg&&bg?null:t;default:return null}}function Uy(t,e){if(T7)return t==="compositionend"||!Cd&&TL(t,e)?(t=bL(),si=ed=K6=null,T7=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=C}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Pg(n)}}function jL(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?jL(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function UL(){for(var t=window,e=bi();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=bi(t.document)}return e}function rd(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function Xy(t){var e=UL(),n=t.focusedElem,C=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&jL(n.ownerDocument.documentElement,n)){if(C!==null&&rd(n)){if(e=C.start,t=C.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var r=n.textContent.length,i=Math.min(C.start,r);C=C.end===void 0?i:Math.min(C.end,r),!t.extend&&i>C&&(r=C,C=i,i=r),r=Ng(n,i);var o=Ng(n,C);r&&o&&(t.rangeCount!==1||t.anchorNode!==r.node||t.anchorOffset!==r.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),t.removeAllRanges(),i>C?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,D7=null,oc=null,Et=null,sc=!1;function Hg(t,e,n){var C=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;sc||D7==null||D7!==bi(C)||(C=D7,"selectionStart"in C&&rd(C)?C={start:C.selectionStart,end:C.selectionEnd}:(C=(C.ownerDocument&&C.ownerDocument.defaultView||window).getSelection(),C={anchorNode:C.anchorNode,anchorOffset:C.anchorOffset,focusNode:C.focusNode,focusOffset:C.focusOffset}),Et&&Gt(Et,C)||(Et=C,C=ji(oc,"onSelect"),0H7||(t.current=hc[H7],hc[H7]=null,H7--)}function h2(t,e){H7++,hc[H7]=t.current,t.current=e}var p5={},B9=w5(p5),Z9=w5(!1),B3=p5;function re(t,e){var n=t.type.contextTypes;if(!n)return p5;var C=t.stateNode;if(C&&C.__reactInternalMemoizedUnmaskedChildContext===e)return C.__reactInternalMemoizedMaskedChildContext;var r={},i;for(i in n)r[i]=e[i];return C&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=r),r}function e8(t){return t=t.childContextTypes,t!=null}function Fi(){L2(Z9),L2(B9)}function zg(t,e,n){if(B9.current!==p5)throw Error(j1(168));h2(B9,e),h2(Z9,n)}function XL(t,e,n){var C=t.stateNode;if(e=e.childContextTypes,typeof C.getChildContext!="function")return n;C=C.getChildContext();for(var r in C)if(!(r in e))throw Error(j1(108,OE(t)||"Unknown",r));return B2({},n,C)}function Wi(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||p5,B3=B9.current,h2(B9,t),h2(Z9,Z9.current),!0}function Vg(t,e,n){var C=t.stateNode;if(!C)throw Error(j1(169));n?(t=XL(t,e,B3),C.__reactInternalMemoizedMergedChildContext=t,L2(Z9),L2(B9),h2(B9,t)):L2(Z9),h2(Z9,n)}var J4=null,Lo=!1,Il=!1;function JL(t){J4===null?J4=[t]:J4.push(t)}function sI(t){Lo=!0,JL(t)}function x5(){if(!Il&&J4!==null){Il=!0;var t=0,e=o2;try{var n=J4;for(o2=1;t>=o,r-=o,Z4=1<<32-Z8(e)+r|n<j?(q=T,T=null):q=T.sibling;var _=A(v,T,k[j],I);if(_===null){T===null&&(T=q);break}t&&T&&_.alternate===null&&e(v,T),E=i(_,E,j),R===null?Q=_:R.sibling=_,R=_,T=q}if(j===k.length)return n(v,T),m2&&i3(v,j),Q;if(T===null){for(;jj?(q=T,T=null):q=T.sibling;var P=A(v,T,_.value,I);if(P===null){T===null&&(T=q);break}t&&T&&P.alternate===null&&e(v,T),E=i(P,E,j),R===null?Q=P:R.sibling=P,R=P,T=q}if(_.done)return n(v,T),m2&&i3(v,j),Q;if(T===null){for(;!_.done;j++,_=k.next())_=p(v,_.value,I),_!==null&&(E=i(_,E,j),R===null?Q=_:R.sibling=_,R=_);return m2&&i3(v,j),Q}for(T=C(v,T);!_.done;j++,_=k.next())_=w(T,v,j,_.value,I),_!==null&&(t&&_.alternate!==null&&T.delete(_.key===null?j:_.key),E=i(_,E,j),R===null?Q=_:R.sibling=_,R=_);return t&&T.forEach(function(K){return e(v,K)}),m2&&i3(v,j),Q}function m(v,E,k,I){if(typeof k=="object"&&k!==null&&k.type===Q7&&k.key===null&&(k=k.props.children),typeof k=="object"&&k!==null){switch(k.$$typeof){case HC:e:{for(var Q=k.key,R=E;R!==null;){if(R.key===Q){if(Q=k.type,Q===Q7){if(R.tag===7){n(v,R.sibling),E=r(R,k.props.children),E.return=v,v=E;break e}}else if(R.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===$6&&Zg(Q)===R.type){n(v,R.sibling),E=r(R,k.props),E.ref=Je(v,R,k),E.return=v,v=E;break e}n(v,R);break}else e(v,R);R=R.sibling}k.type===Q7?(E=m3(k.props.children,v.mode,I,k.key),E.return=v,v=E):(I=gi(k.type,k.key,k.props,null,v.mode,I),I.ref=Je(v,E,k),I.return=v,v=I)}return o(v);case b7:e:{for(R=k.key;E!==null;){if(E.key===R)if(E.tag===4&&E.stateNode.containerInfo===k.containerInfo&&E.stateNode.implementation===k.implementation){n(v,E.sibling),E=r(E,k.children||[]),E.return=v,v=E;break e}else{n(v,E);break}else e(v,E);E=E.sibling}E=Dl(k,v.mode,I),E.return=v,v=E}return o(v);case $6:return R=k._init,m(v,E,R(k._payload),I)}if(ht(k))return x(v,E,k,I);if(ze(k))return y(v,E,k,I);XC(v,k)}return typeof k=="string"&&k!==""||typeof k=="number"?(k=""+k,E!==null&&E.tag===6?(n(v,E.sibling),E=r(E,k),E.return=v,v=E):(n(v,E),E=Tl(k,v.mode,I),E.return=v,v=E),o(v)):n(v,E)}return m}var oe=rw(!0),iw=rw(!1),Bn={},E4=w5(Bn),$t=w5(Bn),Yt=w5(Bn);function g3(t){if(t===Bn)throw Error(j1(174));return t}function hd(t,e){switch(h2(Yt,e),h2($t,t),h2(E4,Bn),t=e.nodeType,t){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:Ja(null,"");break;default:t=t===8?e.parentNode:e,e=t.namespaceURI||null,t=t.tagName,e=Ja(e,t)}L2(E4),h2(E4,e)}function se(){L2(E4),L2($t),L2(Yt)}function ow(t){g3(Yt.current);var e=g3(E4.current),n=Ja(e,t.type);e!==n&&(h2($t,t),h2(E4,n))}function fd(t){$t.current===t&&(L2(E4),L2($t))}var E2=w5(0);function Yi(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var Bl=[];function gd(){for(var t=0;tn?n:4,t(!0);var C=Sl.transition;Sl.transition={};try{t(!1),e()}finally{o2=n,Sl.transition=C}}function mw(){return H8().memoizedState}function uI(t,e,n){var C=s5(t);if(n={lane:C,action:n,hasEagerState:!1,eagerState:null,next:null},kw(t))Mw(e,n);else if(n=ew(t,e,n,C),n!==null){var r=j9();e4(n,t,C,r),Ew(n,e,C)}}function dI(t,e,n){var C=s5(t),r={lane:C,action:n,hasEagerState:!1,eagerState:null,next:null};if(kw(t))Mw(e,r);else{var i=t.alternate;if(t.lanes===0&&(i===null||i.lanes===0)&&(i=e.lastRenderedReducer,i!==null))try{var o=e.lastRenderedState,s=i(o,n);if(r.hasEagerState=!0,r.eagerState=s,C4(s,o)){var a=e.interleaved;a===null?(r.next=r,ud(e)):(r.next=a.next,a.next=r),e.interleaved=r;return}}catch{}finally{}n=ew(t,e,r,C),n!==null&&(r=j9(),e4(n,t,C,r),Ew(n,e,C))}}function kw(t){var e=t.alternate;return t===I2||e!==null&&e===I2}function Mw(t,e){yt=Xi=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function Ew(t,e,n){if(n&4194240){var C=e.lanes;C&=t.pendingLanes,n|=C,e.lanes=n,qu(t,n)}}var Ji={readContext:N8,useCallback:x9,useContext:x9,useEffect:x9,useImperativeHandle:x9,useInsertionEffect:x9,useLayoutEffect:x9,useMemo:x9,useReducer:x9,useRef:x9,useState:x9,useDebugValue:x9,useDeferredValue:x9,useTransition:x9,useMutableSource:x9,useSyncExternalStore:x9,useId:x9,unstable_isNewReconciler:!1},hI={readContext:N8,useCallback:function(t,e){return v4().memoizedState=[t,e===void 0?null:e],t},useContext:N8,useEffect:tp,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,ui(4194308,4,Aw.bind(null,e,t),n)},useLayoutEffect:function(t,e){return ui(4194308,4,t,e)},useInsertionEffect:function(t,e){return ui(4,2,t,e)},useMemo:function(t,e){var n=v4();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var C=v4();return e=n!==void 0?n(e):e,C.memoizedState=C.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},C.queue=t,t=t.dispatch=uI.bind(null,I2,t),[C.memoizedState,t]},useRef:function(t){var e=v4();return t={current:t},e.memoizedState=t},useState:ep,useDebugValue:wd,useDeferredValue:function(t){return v4().memoizedState=t},useTransition:function(){var t=ep(!1),e=t[0];return t=cI.bind(null,t[1]),v4().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var C=I2,r=v4();if(m2){if(n===void 0)throw Error(j1(407));n=n()}else{if(n=e(),i9===null)throw Error(j1(349));_3&30||aw(C,e,n)}r.memoizedState=n;var i={value:n,getSnapshot:e};return r.queue=i,tp(uw.bind(null,C,i,t),[t]),C.flags|=2048,qt(9,cw.bind(null,C,i,n,e),void 0,null),n},useId:function(){var t=v4(),e=i9.identifierPrefix;if(m2){var n=e6,C=Z4;n=(C&~(1<<32-Z8(C)-1)).toString(32)+n,e=":"+e+"R"+n,n=Xt++,0<\/script>",t=t.removeChild(t.firstChild)):typeof C.is=="string"?t=o.createElement(n,{is:C.is}):(t=o.createElement(n),n==="select"&&(o=t,C.multiple?o.multiple=!0:C.size&&(o.size=C.size))):t=o.createElementNS(t,n),t[w4]=e,t[Vt]=C,Tw(t,e,!1,!1),e.stateNode=t;e:{switch(o=Ka(n,C),n){case"dialog":p2("cancel",t),p2("close",t),r=C;break;case"iframe":case"object":case"embed":p2("load",t),r=C;break;case"video":case"audio":for(r=0;rae&&(e.flags|=128,C=!0,qe(i,!1),e.lanes=4194304)}else{if(!C)if(t=Yi(o),t!==null){if(e.flags|=128,C=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),qe(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!m2)return m9(e),null}else 2*H2()-i.renderingStartTime>ae&&n!==1073741824&&(e.flags|=128,C=!0,qe(i,!1),e.lanes=4194304);i.isBackwards?(o.sibling=e.child,e.child=o):(n=i.last,n!==null?n.sibling=o:e.child=o,i.last=o)}return i.tail!==null?(e=i.tail,i.rendering=e,i.tail=e.sibling,i.renderingStartTime=H2(),e.sibling=null,n=E2.current,h2(E2,C?n&1|2:n&1),e):(m9(e),null);case 22:case 23:return yd(),C=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==C&&(e.flags|=8192),C&&e.mode&1?h8&1073741824&&(m9(e),e.subtreeFlags&6&&(e.flags|=8192)):m9(e),null;case 24:return null;case 25:return null}throw Error(j1(156,e.tag))}function xI(t,e){switch(od(e),e.tag){case 1:return e8(e.type)&&Fi(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return se(),L2(Z9),L2(B9),gd(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return fd(e),null;case 13:if(L2(E2),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(j1(340));ie()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return L2(E2),null;case 4:return se(),null;case 10:return cd(e.type._context),null;case 22:case 23:return yd(),null;case 24:return null;default:return null}}var qC=!1,y9=!1,mI=typeof WeakSet=="function"?WeakSet:Set,C0=null;function W7(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(C){b2(t,e,C)}else n.current=null}function Ec(t,e,n){try{n()}catch(C){b2(t,e,C)}}var cp=!1;function kI(t,e){if(lc=Ni,t=UL(),rd(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var C=n.getSelection&&n.getSelection();if(C&&C.rangeCount!==0){n=C.anchorNode;var r=C.anchorOffset,i=C.focusNode;C=C.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,s=-1,a=-1,d=0,g=0,p=t,A=null;t:for(;;){for(var w;p!==n||r!==0&&p.nodeType!==3||(s=o+r),p!==i||C!==0&&p.nodeType!==3||(a=o+C),p.nodeType===3&&(o+=p.nodeValue.length),(w=p.firstChild)!==null;)A=p,p=w;for(;;){if(p===t)break t;if(A===n&&++d===r&&(s=o),A===i&&++g===C&&(a=o),(w=p.nextSibling)!==null)break;p=A,A=p.parentNode}p=w}n=s===-1||a===-1?null:{start:s,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(ac={focusedElem:t,selectionRange:n},Ni=!1,C0=e;C0!==null;)if(e=C0,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,C0=t;else for(;C0!==null;){e=C0;try{var x=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var y=x.memoizedProps,m=x.memoizedState,v=e.stateNode,E=v.getSnapshotBeforeUpdate(e.elementType===e.type?y:Y8(e.type,y),m);v.__reactInternalSnapshotBeforeUpdate=E}break;case 3:var k=e.stateNode.containerInfo;k.nodeType===1?k.textContent="":k.nodeType===9&&k.documentElement&&k.removeChild(k.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(j1(163))}}catch(I){b2(e,e.return,I)}if(t=e.sibling,t!==null){t.return=e.return,C0=t;break}C0=e.return}return x=cp,cp=!1,x}function It(t,e,n){var C=e.updateQueue;if(C=C!==null?C.lastEffect:null,C!==null){var r=C=C.next;do{if((r.tag&t)===t){var i=r.destroy;r.destroy=void 0,i!==void 0&&Ec(e,n,i)}r=r.next}while(r!==C)}}function mo(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var C=n.create;n.destroy=C()}n=n.next}while(n!==e)}}function yc(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function Nw(t){var e=t.alternate;e!==null&&(t.alternate=null,Nw(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[w4],delete e[Vt],delete e[dc],delete e[iI],delete e[oI])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function Hw(t){return t.tag===5||t.tag===3||t.tag===4}function up(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Hw(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Ic(t,e,n){var C=t.tag;if(C===5||C===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=Ui));else if(C!==4&&(t=t.child,t!==null))for(Ic(t,e,n),t=t.sibling;t!==null;)Ic(t,e,n),t=t.sibling}function Bc(t,e,n){var C=t.tag;if(C===5||C===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(C!==4&&(t=t.child,t!==null))for(Bc(t,e,n),t=t.sibling;t!==null;)Bc(t,e,n),t=t.sibling}var d9=null,J8=!1;function D6(t,e,n){for(n=n.child;n!==null;)jw(t,e,n),n=n.sibling}function jw(t,e,n){if(M4&&typeof M4.onCommitFiberUnmount=="function")try{M4.onCommitFiberUnmount(fo,n)}catch{}switch(n.tag){case 5:y9||W7(n,e);case 6:var C=d9,r=J8;d9=null,D6(t,e,n),d9=C,J8=r,d9!==null&&(J8?(t=d9,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):d9.removeChild(n.stateNode));break;case 18:d9!==null&&(J8?(t=d9,n=n.stateNode,t.nodeType===8?yl(t.parentNode,n):t.nodeType===1&&yl(t,n),Ft(t)):yl(d9,n.stateNode));break;case 4:C=d9,r=J8,d9=n.stateNode.containerInfo,J8=!0,D6(t,e,n),d9=C,J8=r;break;case 0:case 11:case 14:case 15:if(!y9&&(C=n.updateQueue,C!==null&&(C=C.lastEffect,C!==null))){r=C=C.next;do{var i=r,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&Ec(n,e,o),r=r.next}while(r!==C)}D6(t,e,n);break;case 1:if(!y9&&(W7(n,e),C=n.stateNode,typeof C.componentWillUnmount=="function"))try{C.props=n.memoizedProps,C.state=n.memoizedState,C.componentWillUnmount()}catch(s){b2(n,e,s)}D6(t,e,n);break;case 21:D6(t,e,n);break;case 22:n.mode&1?(y9=(C=y9)||n.memoizedState!==null,D6(t,e,n),y9=C):D6(t,e,n);break;default:D6(t,e,n)}}function dp(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new mI),e.forEach(function(C){var r=bI.bind(null,t,C);n.has(C)||(n.add(C),C.then(r,r))})}}function O8(t,e){var n=e.deletions;if(n!==null)for(var C=0;Cr&&(r=o),C&=~i}if(C=r,C=H2()-C,C=(120>C?120:480>C?480:1080>C?1080:1920>C?1920:3e3>C?3e3:4320>C?4320:1960*EI(C/1960))-C,10t?16:t,Z6===null)var C=!1;else{if(t=Z6,Z6=null,Zi=0,Y0&6)throw Error(j1(331));var r=Y0;for(Y0|=4,C0=t.current;C0!==null;){var i=C0,o=i.child;if(C0.flags&16){var s=i.deletions;if(s!==null){for(var a=0;aH2()-Md?x3(t,0):kd|=n),t8(t,e)}function $w(t,e){e===0&&(t.mode&1?(e=WC,WC<<=1,!(WC&130023424)&&(WC=4194304)):e=1);var n=j9();t=s6(t,e),t!==null&&(En(t,e,n),t8(t,n))}function RI(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),$w(t,n)}function bI(t,e){var n=0;switch(t.tag){case 13:var C=t.stateNode,r=t.memoizedState;r!==null&&(n=r.retryLane);break;case 19:C=t.stateNode;break;default:throw Error(j1(314))}C!==null&&C.delete(e),$w(t,n)}var Yw;Yw=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||Z9.current)K9=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return K9=!1,LI(t,e,n);K9=!!(t.flags&131072)}else K9=!1,m2&&e.flags&1048576&&qL(e,Oi,e.index);switch(e.lanes=0,e.tag){case 2:var C=e.type;di(t,e),t=e.pendingProps;var r=re(e,B9.current);Z7(e,n),r=Ad(null,e,C,t,r,n);var i=vd();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,e8(C)?(i=!0,Wi(e)):i=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,dd(e),r.updater=wo,e.stateNode=r,r._reactInternals=e,vc(e,C,t,n),e=xc(null,e,C,!0,i,n)):(e.tag=0,m2&&i&&id(e),P9(null,e,r,n),e=e.child),e;case 16:C=e.elementType;e:{switch(di(t,e),t=e.pendingProps,r=C._init,C=r(C._payload),e.type=C,r=e.tag=TI(C),t=Y8(C,t),r){case 0:e=wc(null,e,C,t,n);break e;case 1:e=sp(null,e,C,t,n);break e;case 11:e=ip(null,e,C,t,n);break e;case 14:e=op(null,e,C,Y8(C.type,t),n);break e}throw Error(j1(306,C,""))}return e;case 0:return C=e.type,r=e.pendingProps,r=e.elementType===C?r:Y8(C,r),wc(t,e,C,r,n);case 1:return C=e.type,r=e.pendingProps,r=e.elementType===C?r:Y8(C,r),sp(t,e,C,r,n);case 3:e:{if(Rw(e),t===null)throw Error(j1(387));C=e.pendingProps,i=e.memoizedState,r=i.element,tw(t,e),$i(e,C,null,n);var o=e.memoizedState;if(C=o.element,i.isDehydrated)if(i={element:C,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=i,e.memoizedState=i,e.flags&256){r=le(Error(j1(423)),e),e=lp(t,e,C,n,r);break e}else if(C!==r){r=le(Error(j1(424)),e),e=lp(t,e,C,n,r);break e}else for(g8=r5(e.stateNode.containerInfo.firstChild),A8=e,m2=!0,q8=null,n=iw(e,null,C,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ie(),C===r){e=l6(t,e,n);break e}P9(t,e,C,n)}e=e.child}return e;case 5:return ow(e),t===null&&gc(e),C=e.type,r=e.pendingProps,i=t!==null?t.memoizedProps:null,o=r.children,cc(C,r)?o=null:i!==null&&cc(C,i)&&(e.flags|=32),_w(t,e),P9(t,e,o,n),e.child;case 6:return t===null&&gc(e),null;case 13:return bw(t,e,n);case 4:return hd(e,e.stateNode.containerInfo),C=e.pendingProps,t===null?e.child=oe(e,null,C,n):P9(t,e,C,n),e.child;case 11:return C=e.type,r=e.pendingProps,r=e.elementType===C?r:Y8(C,r),ip(t,e,C,r,n);case 7:return P9(t,e,e.pendingProps,n),e.child;case 8:return P9(t,e,e.pendingProps.children,n),e.child;case 12:return P9(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(C=e.type._context,r=e.pendingProps,i=e.memoizedProps,o=r.value,h2(zi,C._currentValue),C._currentValue=o,i!==null)if(C4(i.value,o)){if(i.children===r.children&&!Z9.current){e=l6(t,e,n);break e}}else for(i=e.child,i!==null&&(i.return=e);i!==null;){var s=i.dependencies;if(s!==null){o=i.child;for(var a=s.firstContext;a!==null;){if(a.context===C){if(i.tag===1){a=C6(-1,n&-n),a.tag=2;var d=i.updateQueue;if(d!==null){d=d.shared;var g=d.pending;g===null?a.next=a:(a.next=g.next,g.next=a),d.pending=a}}i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),pc(i.return,n,e),s.lanes|=n;break}a=a.next}}else if(i.tag===10)o=i.type===e.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(j1(341));o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),pc(o,n,e),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===e){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}P9(t,e,r.children,n),e=e.child}return e;case 9:return r=e.type,C=e.pendingProps.children,Z7(e,n),r=N8(r),C=C(r),e.flags|=1,P9(t,e,C,n),e.child;case 14:return C=e.type,r=Y8(C,e.pendingProps),r=Y8(C.type,r),op(t,e,C,r,n);case 15:return Bw(t,e,e.type,e.pendingProps,n);case 17:return C=e.type,r=e.pendingProps,r=e.elementType===C?r:Y8(C,r),di(t,e),e.tag=1,e8(C)?(t=!0,Wi(e)):t=!1,Z7(e,n),Cw(e,C,r),vc(e,C,r,n),xc(null,e,C,!0,t,n);case 19:return Qw(t,e,n);case 22:return Sw(t,e,n)}throw Error(j1(156,e.tag))};function Xw(t,e){return xL(t,e)}function QI(t,e,n,C){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=C,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function T8(t,e,n,C){return new QI(t,e,n,C)}function Bd(t){return t=t.prototype,!(!t||!t.isReactComponent)}function TI(t){if(typeof t=="function")return Bd(t)?1:0;if(t!=null){if(t=t.$$typeof,t===$u)return 11;if(t===Yu)return 14}return 2}function l5(t,e){var n=t.alternate;return n===null?(n=T8(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function gi(t,e,n,C,r,i){var o=2;if(C=t,typeof t=="function")Bd(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case Q7:return m3(n.children,r,i,e);case Vu:o=8,r|=8;break;case Wa:return t=T8(12,n,e,r|2),t.elementType=Wa,t.lanes=i,t;case Ga:return t=T8(13,n,e,r),t.elementType=Ga,t.lanes=i,t;case Oa:return t=T8(19,n,e,r),t.elementType=Oa,t.lanes=i,t;case rL:return Mo(n,r,i,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case nL:o=10;break e;case CL:o=9;break e;case $u:o=11;break e;case Yu:o=14;break e;case $6:o=16,C=null;break e}throw Error(j1(130,t==null?t:typeof t,""))}return e=T8(o,n,e,r),e.elementType=t,e.type=C,e.lanes=i,e}function m3(t,e,n,C){return t=T8(7,t,C,e),t.lanes=n,t}function Mo(t,e,n,C){return t=T8(22,t,C,e),t.elementType=rL,t.lanes=n,t.stateNode={isHidden:!1},t}function Tl(t,e,n){return t=T8(6,t,null,e),t.lanes=n,t}function Dl(t,e,n){return e=T8(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function DI(t,e,n,C,r){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gl(0),this.expirationTimes=gl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gl(0),this.identifierPrefix=C,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function Sd(t,e,n,C,r,i,o,s,a){return t=new DI(t,e,n,s,a),e===1?(e=1,i===!0&&(e|=8)):e=0,i=T8(3,null,null,e),t.current=i,i.stateNode=t,i.memoizedState={element:C,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},dd(i),t}function PI(t,e,n){var C=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Zw)}catch(t){console.error(t)}}Zw(),qv.exports=w8;var FI=qv.exports,ex,wp=FI;ex=wp.createRoot,wp.hydrateRoot;/** + * @license + * Copyright 2010-2023 Three.js Authors + * SPDX-License-Identifier: MIT + */const So="161",WI={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},GI={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},tx=0,Qc=1,nx=2,OI=3,Cx=0,_o=1,_t=2,X8=3,j8=0,U9=1,x4=2,r6=0,k3=1,Tc=2,Dc=3,Pc=4,rx=5,q6=100,ix=101,ox=102,Nc=103,Hc=104,sx=200,lx=201,ax=202,cx=203,no=204,Co=205,ux=206,dx=207,hx=208,fx=209,gx=210,px=211,Ax=212,vx=213,Lx=214,wx=0,xx=1,mx=2,Zt=3,kx=4,Mx=5,Ex=6,yx=7,Sn=0,Ix=1,Bx=2,y4=0,Sx=1,_x=2,Rx=3,Qd=4,bx=5,Qx=6,jc="attached",Tx="detached",Ro=300,a6=301,A5=302,en=303,tn=304,pe=306,nn=1e3,I9=1001,Cn=1002,P2=1003,ro=1004,zI=1004,u3=1005,VI=1005,v2=1006,Rt=1007,$I=1007,m4=1008,YI=1008,I4=1009,Dx=1010,Px=1011,bo=1012,Td=1013,t6=1014,Q8=1015,Q3=1016,Dd=1017,Pd=1018,a5=1020,Nx=1021,N9=1023,Hx=1024,jx=1025,c5=1026,T3=1027,Ux=1028,Nd=1029,Fx=1030,Hd=1031,jd=1033,pi=33776,Ai=33777,vi=33778,Li=33779,Uc=35840,Fc=35841,Wc=35842,Gc=35843,Ud=36196,Oc=37492,zc=37496,Vc=37808,$c=37809,Yc=37810,Xc=37811,Jc=37812,qc=37813,Kc=37814,Zc=37815,eu=37816,tu=37817,nu=37818,Cu=37819,ru=37820,iu=37821,wi=36492,ou=36494,su=36495,Wx=36283,lu=36284,au=36285,cu=36286,Gx=2200,Ox=2201,zx=2202,rn=2300,on=2301,xi=2302,p3=2400,A3=2401,sn=2402,Qo=2500,Fd=2501,XI=0,JI=1,qI=2,Wd=3e3,u5=3001,Vx=3200,Gd=3201,m5=0,$x=1,f8="",N2="srgb",B4="srgb-linear",To="display-p3",_n="display-p3-linear",ln="linear",d2="srgb",an="rec709",cn="p3",KI=0,s3=7680,ZI=7681,eB=7682,tB=7683,nB=34055,CB=34056,rB=5386,iB=512,oB=513,sB=514,lB=515,aB=516,cB=517,uB=518,uu=519,Yx=512,Xx=513,Jx=514,Od=515,qx=516,Kx=517,Zx=518,em=519,un=35044,e5=35048,dB=35040,hB=35045,fB=35049,gB=35041,pB=35046,AB=35050,vB=35042,LB="100",du="300 es",io=1035,k4=2e3,dn=2001;class u6{addEventListener(e,n){this._listeners===void 0&&(this._listeners={});const C=this._listeners;C[e]===void 0&&(C[e]=[]),C[e].indexOf(n)===-1&&C[e].push(n)}hasEventListener(e,n){if(this._listeners===void 0)return!1;const C=this._listeners;return C[e]!==void 0&&C[e].indexOf(n)!==-1}removeEventListener(e,n){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const i=r.indexOf(n);i!==-1&&r.splice(i,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const C=this._listeners[e.type];if(C!==void 0){e.target=this;const r=C.slice(0);for(let i=0,o=r.length;i>8&255]+k9[t>>16&255]+k9[t>>24&255]+"-"+k9[e&255]+k9[e>>8&255]+"-"+k9[e>>16&15|64]+k9[e>>24&255]+"-"+k9[n&63|128]+k9[n>>8&255]+"-"+k9[n>>16&255]+k9[n>>24&255]+k9[C&255]+k9[C>>8&255]+k9[C>>16&255]+k9[C>>24&255]).toLowerCase()}function Q2(t,e,n){return Math.max(e,Math.min(n,t))}function zd(t,e){return(t%e+e)%e}function wB(t,e,n,C,r){return C+(t-e)*(r-C)/(n-e)}function xB(t,e,n){return t!==e?(n-t)/(e-t):0}function bt(t,e,n){return(1-n)*t+n*e}function mB(t,e,n,C){return bt(t,e,1-Math.exp(-n*C))}function kB(t,e=1){return e-Math.abs(zd(t,e*2)-e)}function MB(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e),t*t*(3-2*t))}function EB(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e),t*t*t*(t*(t*6-15)+10))}function yB(t,e){return t+Math.floor(Math.random()*(e-t+1))}function IB(t,e){return t+Math.random()*(e-t)}function BB(t){return t*(.5-Math.random())}function SB(t){t!==void 0&&(xp=t);let e=xp+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function _B(t){return t*M3}function RB(t){return t*ce}function hu(t){return(t&t-1)===0&&t!==0}function bB(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function oo(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function QB(t,e,n,C,r){const i=Math.cos,o=Math.sin,s=i(n/2),a=o(n/2),d=i((e+C)/2),g=o((e+C)/2),p=i((e-C)/2),A=o((e-C)/2),w=i((C-e)/2),x=o((C-e)/2);switch(r){case"XYX":t.set(s*g,a*p,a*A,s*d);break;case"YZY":t.set(a*A,s*g,a*p,s*d);break;case"ZXZ":t.set(a*p,a*A,s*g,s*d);break;case"XZX":t.set(s*g,a*x,a*w,s*d);break;case"YXY":t.set(a*w,s*g,a*x,s*d);break;case"ZYZ":t.set(a*x,a*w,s*g,s*d);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function H9(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function R0(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(t*4294967295);case Uint16Array:return Math.round(t*65535);case Uint8Array:return Math.round(t*255);case Int32Array:return Math.round(t*2147483647);case Int16Array:return Math.round(t*32767);case Int8Array:return Math.round(t*127);default:throw new Error("Invalid component type.")}}const TB={DEG2RAD:M3,RAD2DEG:ce,generateUUID:v8,clamp:Q2,euclideanModulo:zd,mapLinear:wB,inverseLerp:xB,lerp:bt,damp:mB,pingpong:kB,smoothstep:MB,smootherstep:EB,randInt:yB,randFloat:IB,randFloatSpread:BB,seededRandom:SB,degToRad:_B,radToDeg:RB,isPowerOfTwo:hu,ceilPowerOfTwo:bB,floorPowerOfTwo:oo,setQuaternionFromProperEuler:QB,normalize:R0,denormalize:H9};class y1{constructor(e=0,n=0){y1.prototype.isVector2=!0,this.x=e,this.y=n}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,n){return this.x=e,this.y=n,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const n=this.x,C=this.y,r=e.elements;return this.x=r[0]*n+r[3]*C+r[6],this.y=r[1]*n+r[4]*C+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,n){return this.x=Math.max(e.x,Math.min(n.x,this.x)),this.y=Math.max(e.y,Math.min(n.y,this.y)),this}clampScalar(e,n){return this.x=Math.max(e,Math.min(n,this.x)),this.y=Math.max(e,Math.min(n,this.y)),this}clampLength(e,n){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(e,Math.min(n,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const n=Math.sqrt(this.lengthSq()*e.lengthSq());if(n===0)return Math.PI/2;const C=this.dot(e)/n;return Math.acos(Q2(C,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const n=this.x-e.x,C=this.y-e.y;return n*n+C*C}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this}lerpVectors(e,n,C){return this.x=e.x+(n.x-e.x)*C,this.y=e.y+(n.y-e.y)*C,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this}rotateAround(e,n){const C=Math.cos(n),r=Math.sin(n),i=this.x-e.x,o=this.y-e.y;return this.x=i*C-o*r+e.x,this.y=i*r+o*C+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class B0{constructor(e,n,C,r,i,o,s,a,d){B0.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,n,C,r,i,o,s,a,d)}set(e,n,C,r,i,o,s,a,d){const g=this.elements;return g[0]=e,g[1]=r,g[2]=s,g[3]=n,g[4]=i,g[5]=a,g[6]=C,g[7]=o,g[8]=d,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const n=this.elements,C=e.elements;return n[0]=C[0],n[1]=C[1],n[2]=C[2],n[3]=C[3],n[4]=C[4],n[5]=C[5],n[6]=C[6],n[7]=C[7],n[8]=C[8],this}extractBasis(e,n,C){return e.setFromMatrix3Column(this,0),n.setFromMatrix3Column(this,1),C.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const n=e.elements;return this.set(n[0],n[4],n[8],n[1],n[5],n[9],n[2],n[6],n[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,n){const C=e.elements,r=n.elements,i=this.elements,o=C[0],s=C[3],a=C[6],d=C[1],g=C[4],p=C[7],A=C[2],w=C[5],x=C[8],y=r[0],m=r[3],v=r[6],E=r[1],k=r[4],I=r[7],Q=r[2],R=r[5],T=r[8];return i[0]=o*y+s*E+a*Q,i[3]=o*m+s*k+a*R,i[6]=o*v+s*I+a*T,i[1]=d*y+g*E+p*Q,i[4]=d*m+g*k+p*R,i[7]=d*v+g*I+p*T,i[2]=A*y+w*E+x*Q,i[5]=A*m+w*k+x*R,i[8]=A*v+w*I+x*T,this}multiplyScalar(e){const n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=e,n[4]*=e,n[7]*=e,n[2]*=e,n[5]*=e,n[8]*=e,this}determinant(){const e=this.elements,n=e[0],C=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=e[6],d=e[7],g=e[8];return n*o*g-n*s*d-C*i*g+C*s*a+r*i*d-r*o*a}invert(){const e=this.elements,n=e[0],C=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=e[6],d=e[7],g=e[8],p=g*o-s*d,A=s*a-g*i,w=d*i-o*a,x=n*p+C*A+r*w;if(x===0)return this.set(0,0,0,0,0,0,0,0,0);const y=1/x;return e[0]=p*y,e[1]=(r*d-g*C)*y,e[2]=(s*C-r*o)*y,e[3]=A*y,e[4]=(g*n-r*a)*y,e[5]=(r*i-s*n)*y,e[6]=w*y,e[7]=(C*a-d*n)*y,e[8]=(o*n-C*i)*y,this}transpose(){let e;const n=this.elements;return e=n[1],n[1]=n[3],n[3]=e,e=n[2],n[2]=n[6],n[6]=e,e=n[5],n[5]=n[7],n[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const n=this.elements;return e[0]=n[0],e[1]=n[3],e[2]=n[6],e[3]=n[1],e[4]=n[4],e[5]=n[7],e[6]=n[2],e[7]=n[5],e[8]=n[8],this}setUvTransform(e,n,C,r,i,o,s){const a=Math.cos(i),d=Math.sin(i);return this.set(C*a,C*d,-C*(a*o+d*s)+o+e,-r*d,r*a,-r*(-d*o+a*s)+s+n,0,0,1),this}scale(e,n){return this.premultiply(Pl.makeScale(e,n)),this}rotate(e){return this.premultiply(Pl.makeRotation(-e)),this}translate(e,n){return this.premultiply(Pl.makeTranslation(e,n)),this}makeTranslation(e,n){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,n,0,0,1),this}makeRotation(e){const n=Math.cos(e),C=Math.sin(e);return this.set(n,-C,0,C,n,0,0,0,1),this}makeScale(e,n){return this.set(e,0,0,0,n,0,0,0,1),this}equals(e){const n=this.elements,C=e.elements;for(let r=0;r<9;r++)if(n[r]!==C[r])return!1;return!0}fromArray(e,n=0){for(let C=0;C<9;C++)this.elements[C]=e[C+n];return this}toArray(e=[],n=0){const C=this.elements;return e[n]=C[0],e[n+1]=C[1],e[n+2]=C[2],e[n+3]=C[3],e[n+4]=C[4],e[n+5]=C[5],e[n+6]=C[6],e[n+7]=C[7],e[n+8]=C[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const Pl=new B0;function tm(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const DB={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function O7(t,e){return new DB[t](e)}function hn(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function nm(){const t=hn("canvas");return t.style.display="block",t}const mp={};function E3(t){t in mp||(mp[t]=!0,console.warn(t))}const kp=new B0().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),Mp=new B0().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),er={[B4]:{transfer:ln,primaries:an,toReference:t=>t,fromReference:t=>t},[N2]:{transfer:d2,primaries:an,toReference:t=>t.convertSRGBToLinear(),fromReference:t=>t.convertLinearToSRGB()},[_n]:{transfer:ln,primaries:cn,toReference:t=>t.applyMatrix3(Mp),fromReference:t=>t.applyMatrix3(kp)},[To]:{transfer:d2,primaries:cn,toReference:t=>t.convertSRGBToLinear().applyMatrix3(Mp),fromReference:t=>t.applyMatrix3(kp).convertLinearToSRGB()}},PB=new Set([B4,_n]),r2={enabled:!0,_workingColorSpace:B4,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(t){if(!PB.has(t))throw new Error(`Unsupported working color space, "${t}".`);this._workingColorSpace=t},convert:function(t,e,n){if(this.enabled===!1||e===n||!e||!n)return t;const C=er[e].toReference,r=er[n].fromReference;return r(C(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this._workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this._workingColorSpace)},getPrimaries:function(t){return er[t].primaries},getTransfer:function(t){return t===f8?ln:er[t].transfer}};function te(t){return t<.04045?t*.0773993808:Math.pow(t*.9478672986+.0521327014,2.4)}function Nl(t){return t<.0031308?t*12.92:1.055*Math.pow(t,.41666)-.055}let r7;class Vd{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let n;if(e instanceof HTMLCanvasElement)n=e;else{r7===void 0&&(r7=hn("canvas")),r7.width=e.width,r7.height=e.height;const C=r7.getContext("2d");e instanceof ImageData?C.putImageData(e,0,0):C.drawImage(e,0,0,e.width,e.height),n=r7}return n.width>2048||n.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),n.toDataURL("image/jpeg",.6)):n.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const n=hn("canvas");n.width=e.width,n.height=e.height;const C=n.getContext("2d");C.drawImage(e,0,0,e.width,e.height);const r=C.getImageData(0,0,e.width,e.height),i=r.data;for(let o=0;o0&&(C.userData=this.userData),n||(e.textures[this.uuid]=C),C}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==Ro)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case nn:e.x=e.x-Math.floor(e.x);break;case I9:e.x=e.x<0?0:1;break;case Cn:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case nn:e.y=e.y-Math.floor(e.y);break;case I9:e.y=e.y<0?0:1;break;case Cn:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return E3("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===N2?u5:Wd}set encoding(e){E3("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===u5?N2:f8}}k2.DEFAULT_IMAGE=null;k2.DEFAULT_MAPPING=Ro;k2.DEFAULT_ANISOTROPY=1;class i2{constructor(e=0,n=0,C=0,r=1){i2.prototype.isVector4=!0,this.x=e,this.y=n,this.z=C,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,n,C,r){return this.x=e,this.y=n,this.z=C,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;case 3:this.w=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this.z=e.z+n.z,this.w=e.w+n.w,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this.z+=e.z*n,this.w+=e.w*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this.z=e.z-n.z,this.w=e.w-n.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const n=this.x,C=this.y,r=this.z,i=this.w,o=e.elements;return this.x=o[0]*n+o[4]*C+o[8]*r+o[12]*i,this.y=o[1]*n+o[5]*C+o[9]*r+o[13]*i,this.z=o[2]*n+o[6]*C+o[10]*r+o[14]*i,this.w=o[3]*n+o[7]*C+o[11]*r+o[15]*i,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const n=Math.sqrt(1-e.w*e.w);return n<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/n,this.y=e.y/n,this.z=e.z/n),this}setAxisAngleFromRotationMatrix(e){let n,C,r,i;const a=e.elements,d=a[0],g=a[4],p=a[8],A=a[1],w=a[5],x=a[9],y=a[2],m=a[6],v=a[10];if(Math.abs(g-A)<.01&&Math.abs(p-y)<.01&&Math.abs(x-m)<.01){if(Math.abs(g+A)<.1&&Math.abs(p+y)<.1&&Math.abs(x+m)<.1&&Math.abs(d+w+v-3)<.1)return this.set(1,0,0,0),this;n=Math.PI;const k=(d+1)/2,I=(w+1)/2,Q=(v+1)/2,R=(g+A)/4,T=(p+y)/4,j=(x+m)/4;return k>I&&k>Q?k<.01?(C=0,r=.707106781,i=.707106781):(C=Math.sqrt(k),r=R/C,i=T/C):I>Q?I<.01?(C=.707106781,r=0,i=.707106781):(r=Math.sqrt(I),C=R/r,i=j/r):Q<.01?(C=.707106781,r=.707106781,i=0):(i=Math.sqrt(Q),C=T/i,r=j/i),this.set(C,r,i,n),this}let E=Math.sqrt((m-x)*(m-x)+(p-y)*(p-y)+(A-g)*(A-g));return Math.abs(E)<.001&&(E=1),this.x=(m-x)/E,this.y=(p-y)/E,this.z=(A-g)/E,this.w=Math.acos((d+w+v-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,n){return this.x=Math.max(e.x,Math.min(n.x,this.x)),this.y=Math.max(e.y,Math.min(n.y,this.y)),this.z=Math.max(e.z,Math.min(n.z,this.z)),this.w=Math.max(e.w,Math.min(n.w,this.w)),this}clampScalar(e,n){return this.x=Math.max(e,Math.min(n,this.x)),this.y=Math.max(e,Math.min(n,this.y)),this.z=Math.max(e,Math.min(n,this.z)),this.w=Math.max(e,Math.min(n,this.w)),this}clampLength(e,n){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(e,Math.min(n,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this.z+=(e.z-this.z)*n,this.w+=(e.w-this.w)*n,this}lerpVectors(e,n,C){return this.x=e.x+(n.x-e.x)*C,this.y=e.y+(n.y-e.y)*C,this.z=e.z+(n.z-e.z)*C,this.w=e.w+(n.w-e.w)*C,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this.z=e[n+2],this.w=e[n+3],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e[n+2]=this.z,e[n+3]=this.w,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this.z=e.getZ(n),this.w=e.getW(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class Cm extends u6{constructor(e=1,n=1,C={}){super(),this.isRenderTarget=!0,this.width=e,this.height=n,this.depth=1,this.scissor=new i2(0,0,e,n),this.scissorTest=!1,this.viewport=new i2(0,0,e,n);const r={width:e,height:n,depth:1};C.encoding!==void 0&&(E3("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),C.colorSpace=C.encoding===u5?N2:f8),C=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:v2,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},C),this.texture=new k2(r,C.mapping,C.wrapS,C.wrapT,C.magFilter,C.minFilter,C.format,C.type,C.anisotropy,C.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=C.generateMipmaps,this.texture.internalFormat=C.internalFormat,this.depthBuffer=C.depthBuffer,this.stencilBuffer=C.stencilBuffer,this.depthTexture=C.depthTexture,this.samples=C.samples}setSize(e,n,C=1){(this.width!==e||this.height!==n||this.depth!==C)&&(this.width=e,this.height=n,this.depth=C,this.texture.image.width=e,this.texture.image.height=n,this.texture.image.depth=C,this.dispose()),this.viewport.set(0,0,e,n),this.scissor.set(0,0,e,n)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const n=Object.assign({},e.texture.image);return this.texture.source=new v3(n),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class U8 extends Cm{constructor(e=1,n=1,C={}){super(e,n,C),this.isWebGLRenderTarget=!0}}class Do extends k2{constructor(e=null,n=1,C=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:n,height:C,depth:r},this.magFilter=P2,this.minFilter=P2,this.wrapR=I9,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class jB extends U8{constructor(e=1,n=1,C=1,r={}){super(e,n,r),this.isWebGLArrayRenderTarget=!0,this.depth=C,this.texture=new Do(null,e,n,C),this.texture.isRenderTargetTexture=!0}}class $d extends k2{constructor(e=null,n=1,C=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:n,height:C,depth:r},this.magFilter=P2,this.minFilter=P2,this.wrapR=I9,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class UB extends U8{constructor(e=1,n=1,C=1,r={}){super(e,n,r),this.isWebGL3DRenderTarget=!0,this.depth=C,this.texture=new $d(null,e,n,C),this.texture.isRenderTargetTexture=!0}}class FB extends U8{constructor(e=1,n=1,C=1,r={}){super(e,n,r),this.isWebGLMultipleRenderTargets=!0;const i=this.texture;this.texture=[];for(let o=0;o=0?1:-1,k=1-v*v;if(k>Number.EPSILON){const Q=Math.sqrt(k),R=Math.atan2(Q,v*E);m=Math.sin(m*R)/Q,s=Math.sin(s*R)/Q}const I=s*E;if(a=a*m+A*I,d=d*m+w*I,g=g*m+x*I,p=p*m+y*I,m===1-s){const Q=1/Math.sqrt(a*a+d*d+g*g+p*p);a*=Q,d*=Q,g*=Q,p*=Q}}e[n]=a,e[n+1]=d,e[n+2]=g,e[n+3]=p}static multiplyQuaternionsFlat(e,n,C,r,i,o){const s=C[r],a=C[r+1],d=C[r+2],g=C[r+3],p=i[o],A=i[o+1],w=i[o+2],x=i[o+3];return e[n]=s*x+g*p+a*w-d*A,e[n+1]=a*x+g*A+d*p-s*w,e[n+2]=d*x+g*w+s*A-a*p,e[n+3]=g*x-s*p-a*A-d*w,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,n,C,r){return this._x=e,this._y=n,this._z=C,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,n=!0){const C=e._x,r=e._y,i=e._z,o=e._order,s=Math.cos,a=Math.sin,d=s(C/2),g=s(r/2),p=s(i/2),A=a(C/2),w=a(r/2),x=a(i/2);switch(o){case"XYZ":this._x=A*g*p+d*w*x,this._y=d*w*p-A*g*x,this._z=d*g*x+A*w*p,this._w=d*g*p-A*w*x;break;case"YXZ":this._x=A*g*p+d*w*x,this._y=d*w*p-A*g*x,this._z=d*g*x-A*w*p,this._w=d*g*p+A*w*x;break;case"ZXY":this._x=A*g*p-d*w*x,this._y=d*w*p+A*g*x,this._z=d*g*x+A*w*p,this._w=d*g*p-A*w*x;break;case"ZYX":this._x=A*g*p-d*w*x,this._y=d*w*p+A*g*x,this._z=d*g*x-A*w*p,this._w=d*g*p+A*w*x;break;case"YZX":this._x=A*g*p+d*w*x,this._y=d*w*p+A*g*x,this._z=d*g*x-A*w*p,this._w=d*g*p-A*w*x;break;case"XZY":this._x=A*g*p-d*w*x,this._y=d*w*p-A*g*x,this._z=d*g*x+A*w*p,this._w=d*g*p+A*w*x;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return n===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,n){const C=n/2,r=Math.sin(C);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(C),this._onChangeCallback(),this}setFromRotationMatrix(e){const n=e.elements,C=n[0],r=n[4],i=n[8],o=n[1],s=n[5],a=n[9],d=n[2],g=n[6],p=n[10],A=C+s+p;if(A>0){const w=.5/Math.sqrt(A+1);this._w=.25/w,this._x=(g-a)*w,this._y=(i-d)*w,this._z=(o-r)*w}else if(C>s&&C>p){const w=2*Math.sqrt(1+C-s-p);this._w=(g-a)/w,this._x=.25*w,this._y=(r+o)/w,this._z=(i+d)/w}else if(s>p){const w=2*Math.sqrt(1+s-C-p);this._w=(i-d)/w,this._x=(r+o)/w,this._y=.25*w,this._z=(a+g)/w}else{const w=2*Math.sqrt(1+p-C-s);this._w=(o-r)/w,this._x=(i+d)/w,this._y=(a+g)/w,this._z=.25*w}return this._onChangeCallback(),this}setFromUnitVectors(e,n){let C=e.dot(n)+1;return CMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=C):(this._x=0,this._y=-e.z,this._z=e.y,this._w=C)):(this._x=e.y*n.z-e.z*n.y,this._y=e.z*n.x-e.x*n.z,this._z=e.x*n.y-e.y*n.x,this._w=C),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Q2(this.dot(e),-1,1)))}rotateTowards(e,n){const C=this.angleTo(e);if(C===0)return this;const r=Math.min(1,n/C);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,n){const C=e._x,r=e._y,i=e._z,o=e._w,s=n._x,a=n._y,d=n._z,g=n._w;return this._x=C*g+o*s+r*d-i*a,this._y=r*g+o*a+i*s-C*d,this._z=i*g+o*d+C*a-r*s,this._w=o*g-C*s-r*a-i*d,this._onChangeCallback(),this}slerp(e,n){if(n===0)return this;if(n===1)return this.copy(e);const C=this._x,r=this._y,i=this._z,o=this._w;let s=o*e._w+C*e._x+r*e._y+i*e._z;if(s<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,s=-s):this.copy(e),s>=1)return this._w=o,this._x=C,this._y=r,this._z=i,this;const a=1-s*s;if(a<=Number.EPSILON){const w=1-n;return this._w=w*o+n*this._w,this._x=w*C+n*this._x,this._y=w*r+n*this._y,this._z=w*i+n*this._z,this.normalize(),this}const d=Math.sqrt(a),g=Math.atan2(d,s),p=Math.sin((1-n)*g)/d,A=Math.sin(n*g)/d;return this._w=o*p+this._w*A,this._x=C*p+this._x*A,this._y=r*p+this._y*A,this._z=i*p+this._z*A,this._onChangeCallback(),this}slerpQuaternions(e,n,C){return this.copy(e).slerp(n,C)}random(){const e=Math.random(),n=Math.sqrt(1-e),C=Math.sqrt(e),r=2*Math.PI*Math.random(),i=2*Math.PI*Math.random();return this.set(n*Math.cos(r),C*Math.sin(i),C*Math.cos(i),n*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,n=0){return this._x=e[n],this._y=e[n+1],this._z=e[n+2],this._w=e[n+3],this._onChangeCallback(),this}toArray(e=[],n=0){return e[n]=this._x,e[n+1]=this._y,e[n+2]=this._z,e[n+3]=this._w,e}fromBufferAttribute(e,n){return this._x=e.getX(n),this._y=e.getY(n),this._z=e.getZ(n),this._w=e.getW(n),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class G{constructor(e=0,n=0,C=0){G.prototype.isVector3=!0,this.x=e,this.y=n,this.z=C}set(e,n,C){return C===void 0&&(C=this.z),this.x=e,this.y=n,this.z=C,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this.z=e.z+n.z,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this.z+=e.z*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this.z=e.z-n.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,n){return this.x=e.x*n.x,this.y=e.y*n.y,this.z=e.z*n.z,this}applyEuler(e){return this.applyQuaternion(Ep.setFromEuler(e))}applyAxisAngle(e,n){return this.applyQuaternion(Ep.setFromAxisAngle(e,n))}applyMatrix3(e){const n=this.x,C=this.y,r=this.z,i=e.elements;return this.x=i[0]*n+i[3]*C+i[6]*r,this.y=i[1]*n+i[4]*C+i[7]*r,this.z=i[2]*n+i[5]*C+i[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const n=this.x,C=this.y,r=this.z,i=e.elements,o=1/(i[3]*n+i[7]*C+i[11]*r+i[15]);return this.x=(i[0]*n+i[4]*C+i[8]*r+i[12])*o,this.y=(i[1]*n+i[5]*C+i[9]*r+i[13])*o,this.z=(i[2]*n+i[6]*C+i[10]*r+i[14])*o,this}applyQuaternion(e){const n=this.x,C=this.y,r=this.z,i=e.x,o=e.y,s=e.z,a=e.w,d=2*(o*r-s*C),g=2*(s*n-i*r),p=2*(i*C-o*n);return this.x=n+a*d+o*p-s*g,this.y=C+a*g+s*d-i*p,this.z=r+a*p+i*g-o*d,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const n=this.x,C=this.y,r=this.z,i=e.elements;return this.x=i[0]*n+i[4]*C+i[8]*r,this.y=i[1]*n+i[5]*C+i[9]*r,this.z=i[2]*n+i[6]*C+i[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,n){return this.x=Math.max(e.x,Math.min(n.x,this.x)),this.y=Math.max(e.y,Math.min(n.y,this.y)),this.z=Math.max(e.z,Math.min(n.z,this.z)),this}clampScalar(e,n){return this.x=Math.max(e,Math.min(n,this.x)),this.y=Math.max(e,Math.min(n,this.y)),this.z=Math.max(e,Math.min(n,this.z)),this}clampLength(e,n){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(e,Math.min(n,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this.z+=(e.z-this.z)*n,this}lerpVectors(e,n,C){return this.x=e.x+(n.x-e.x)*C,this.y=e.y+(n.y-e.y)*C,this.z=e.z+(n.z-e.z)*C,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,n){const C=e.x,r=e.y,i=e.z,o=n.x,s=n.y,a=n.z;return this.x=r*a-i*s,this.y=i*o-C*a,this.z=C*s-r*o,this}projectOnVector(e){const n=e.lengthSq();if(n===0)return this.set(0,0,0);const C=e.dot(this)/n;return this.copy(e).multiplyScalar(C)}projectOnPlane(e){return jl.copy(this).projectOnVector(e),this.sub(jl)}reflect(e){return this.sub(jl.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const n=Math.sqrt(this.lengthSq()*e.lengthSq());if(n===0)return Math.PI/2;const C=this.dot(e)/n;return Math.acos(Q2(C,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const n=this.x-e.x,C=this.y-e.y,r=this.z-e.z;return n*n+C*C+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,n,C){const r=Math.sin(n)*e;return this.x=r*Math.sin(C),this.y=Math.cos(n)*e,this.z=r*Math.cos(C),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,n,C){return this.x=e*Math.sin(n),this.y=C,this.z=e*Math.cos(n),this}setFromMatrixPosition(e){const n=e.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this}setFromMatrixScale(e){const n=this.setFromMatrixColumn(e,0).length(),C=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=n,this.y=C,this.z=r,this}setFromMatrixColumn(e,n){return this.fromArray(e.elements,n*4)}setFromMatrix3Column(e,n){return this.fromArray(e.elements,n*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this.z=e[n+2],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e[n+2]=this.z,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this.z=e.getZ(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,n=Math.random()*Math.PI*2,C=Math.sqrt(1-e**2);return this.x=C*Math.cos(n),this.y=C*Math.sin(n),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const jl=new G,Ep=new F9;class q2{constructor(e=new G(1/0,1/0,1/0),n=new G(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=n}set(e,n){return this.min.copy(e),this.max.copy(n),this}setFromArray(e){this.makeEmpty();for(let n=0,C=e.length;nthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,n){return n.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,z8),z8.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let n,C;return e.normal.x>0?(n=e.normal.x*this.min.x,C=e.normal.x*this.max.x):(n=e.normal.x*this.max.x,C=e.normal.x*this.min.x),e.normal.y>0?(n+=e.normal.y*this.min.y,C+=e.normal.y*this.max.y):(n+=e.normal.y*this.max.y,C+=e.normal.y*this.min.y),e.normal.z>0?(n+=e.normal.z*this.min.z,C+=e.normal.z*this.max.z):(n+=e.normal.z*this.max.z,C+=e.normal.z*this.min.z),n<=-e.constant&&C>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Ze),nr.subVectors(this.max,Ze),i7.subVectors(e.a,Ze),o7.subVectors(e.b,Ze),s7.subVectors(e.c,Ze),P6.subVectors(o7,i7),N6.subVectors(s7,o7),V5.subVectors(i7,s7);let n=[0,-P6.z,P6.y,0,-N6.z,N6.y,0,-V5.z,V5.y,P6.z,0,-P6.x,N6.z,0,-N6.x,V5.z,0,-V5.x,-P6.y,P6.x,0,-N6.y,N6.x,0,-V5.y,V5.x,0];return!Ul(n,i7,o7,s7,nr)||(n=[1,0,0,0,1,0,0,0,1],!Ul(n,i7,o7,s7,nr))?!1:(Cr.crossVectors(P6,N6),n=[Cr.x,Cr.y,Cr.z],Ul(n,i7,o7,s7,nr))}clampPoint(e,n){return n.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,z8).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(z8).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(F4[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),F4[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),F4[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),F4[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),F4[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),F4[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),F4[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),F4[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(F4),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const F4=[new G,new G,new G,new G,new G,new G,new G,new G],z8=new G,tr=new q2,i7=new G,o7=new G,s7=new G,P6=new G,N6=new G,V5=new G,Ze=new G,nr=new G,Cr=new G,$5=new G;function Ul(t,e,n,C,r){for(let i=0,o=t.length-3;i<=o;i+=3){$5.fromArray(t,i);const s=r.x*Math.abs($5.x)+r.y*Math.abs($5.y)+r.z*Math.abs($5.z),a=e.dot($5),d=n.dot($5),g=C.dot($5);if(Math.max(-Math.max(a,d,g),Math.min(a,d,g))>s)return!1}return!0}const WB=new q2,et=new G,Fl=new G;class o9{constructor(e=new G,n=-1){this.isSphere=!0,this.center=e,this.radius=n}set(e,n){return this.center.copy(e),this.radius=n,this}setFromPoints(e,n){const C=this.center;n!==void 0?C.copy(n):WB.setFromPoints(e).getCenter(C);let r=0;for(let i=0,o=e.length;ithis.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;et.subVectors(e,this.center);const n=et.lengthSq();if(n>this.radius*this.radius){const C=Math.sqrt(n),r=(C-this.radius)*.5;this.center.addScaledVector(et,r/C),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(Fl.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(et.copy(e.center).add(Fl)),this.expandByPoint(et.copy(e.center).sub(Fl))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const W4=new G,Wl=new G,rr=new G,H6=new G,Gl=new G,ir=new G,Ol=new G;class Ae{constructor(e=new G,n=new G(0,0,-1)){this.origin=e,this.direction=n}set(e,n){return this.origin.copy(e),this.direction.copy(n),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,n){return n.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,W4)),this}closestPointToPoint(e,n){n.subVectors(e,this.origin);const C=n.dot(this.direction);return C<0?n.copy(this.origin):n.copy(this.origin).addScaledVector(this.direction,C)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const n=W4.subVectors(e,this.origin).dot(this.direction);return n<0?this.origin.distanceToSquared(e):(W4.copy(this.origin).addScaledVector(this.direction,n),W4.distanceToSquared(e))}distanceSqToSegment(e,n,C,r){Wl.copy(e).add(n).multiplyScalar(.5),rr.copy(n).sub(e).normalize(),H6.copy(this.origin).sub(Wl);const i=e.distanceTo(n)*.5,o=-this.direction.dot(rr),s=H6.dot(this.direction),a=-H6.dot(rr),d=H6.lengthSq(),g=Math.abs(1-o*o);let p,A,w,x;if(g>0)if(p=o*a-s,A=o*s-a,x=i*g,p>=0)if(A>=-x)if(A<=x){const y=1/g;p*=y,A*=y,w=p*(p+o*A+2*s)+A*(o*p+A+2*a)+d}else A=i,p=Math.max(0,-(o*A+s)),w=-p*p+A*(A+2*a)+d;else A=-i,p=Math.max(0,-(o*A+s)),w=-p*p+A*(A+2*a)+d;else A<=-x?(p=Math.max(0,-(-o*i+s)),A=p>0?-i:Math.min(Math.max(-i,-a),i),w=-p*p+A*(A+2*a)+d):A<=x?(p=0,A=Math.min(Math.max(-i,-a),i),w=A*(A+2*a)+d):(p=Math.max(0,-(o*i+s)),A=p>0?i:Math.min(Math.max(-i,-a),i),w=-p*p+A*(A+2*a)+d);else A=o>0?-i:i,p=Math.max(0,-(o*A+s)),w=-p*p+A*(A+2*a)+d;return C&&C.copy(this.origin).addScaledVector(this.direction,p),r&&r.copy(Wl).addScaledVector(rr,A),w}intersectSphere(e,n){W4.subVectors(e.center,this.origin);const C=W4.dot(this.direction),r=W4.dot(W4)-C*C,i=e.radius*e.radius;if(r>i)return null;const o=Math.sqrt(i-r),s=C-o,a=C+o;return a<0?null:s<0?this.at(a,n):this.at(s,n)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const n=e.normal.dot(this.direction);if(n===0)return e.distanceToPoint(this.origin)===0?0:null;const C=-(this.origin.dot(e.normal)+e.constant)/n;return C>=0?C:null}intersectPlane(e,n){const C=this.distanceToPlane(e);return C===null?null:this.at(C,n)}intersectsPlane(e){const n=e.distanceToPoint(this.origin);return n===0||e.normal.dot(this.direction)*n<0}intersectBox(e,n){let C,r,i,o,s,a;const d=1/this.direction.x,g=1/this.direction.y,p=1/this.direction.z,A=this.origin;return d>=0?(C=(e.min.x-A.x)*d,r=(e.max.x-A.x)*d):(C=(e.max.x-A.x)*d,r=(e.min.x-A.x)*d),g>=0?(i=(e.min.y-A.y)*g,o=(e.max.y-A.y)*g):(i=(e.max.y-A.y)*g,o=(e.min.y-A.y)*g),C>o||i>r||((i>C||isNaN(C))&&(C=i),(o=0?(s=(e.min.z-A.z)*p,a=(e.max.z-A.z)*p):(s=(e.max.z-A.z)*p,a=(e.min.z-A.z)*p),C>a||s>r)||((s>C||C!==C)&&(C=s),(a=0?C:r,n)}intersectsBox(e){return this.intersectBox(e,W4)!==null}intersectTriangle(e,n,C,r,i){Gl.subVectors(n,e),ir.subVectors(C,e),Ol.crossVectors(Gl,ir);let o=this.direction.dot(Ol),s;if(o>0){if(r)return null;s=1}else if(o<0)s=-1,o=-o;else return null;H6.subVectors(this.origin,e);const a=s*this.direction.dot(ir.crossVectors(H6,ir));if(a<0)return null;const d=s*this.direction.dot(Gl.cross(H6));if(d<0||a+d>o)return null;const g=-s*H6.dot(Ol);return g<0?null:this.at(g/o,i)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class f0{constructor(e,n,C,r,i,o,s,a,d,g,p,A,w,x,y,m){f0.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,n,C,r,i,o,s,a,d,g,p,A,w,x,y,m)}set(e,n,C,r,i,o,s,a,d,g,p,A,w,x,y,m){const v=this.elements;return v[0]=e,v[4]=n,v[8]=C,v[12]=r,v[1]=i,v[5]=o,v[9]=s,v[13]=a,v[2]=d,v[6]=g,v[10]=p,v[14]=A,v[3]=w,v[7]=x,v[11]=y,v[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new f0().fromArray(this.elements)}copy(e){const n=this.elements,C=e.elements;return n[0]=C[0],n[1]=C[1],n[2]=C[2],n[3]=C[3],n[4]=C[4],n[5]=C[5],n[6]=C[6],n[7]=C[7],n[8]=C[8],n[9]=C[9],n[10]=C[10],n[11]=C[11],n[12]=C[12],n[13]=C[13],n[14]=C[14],n[15]=C[15],this}copyPosition(e){const n=this.elements,C=e.elements;return n[12]=C[12],n[13]=C[13],n[14]=C[14],this}setFromMatrix3(e){const n=e.elements;return this.set(n[0],n[3],n[6],0,n[1],n[4],n[7],0,n[2],n[5],n[8],0,0,0,0,1),this}extractBasis(e,n,C){return e.setFromMatrixColumn(this,0),n.setFromMatrixColumn(this,1),C.setFromMatrixColumn(this,2),this}makeBasis(e,n,C){return this.set(e.x,n.x,C.x,0,e.y,n.y,C.y,0,e.z,n.z,C.z,0,0,0,0,1),this}extractRotation(e){const n=this.elements,C=e.elements,r=1/l7.setFromMatrixColumn(e,0).length(),i=1/l7.setFromMatrixColumn(e,1).length(),o=1/l7.setFromMatrixColumn(e,2).length();return n[0]=C[0]*r,n[1]=C[1]*r,n[2]=C[2]*r,n[3]=0,n[4]=C[4]*i,n[5]=C[5]*i,n[6]=C[6]*i,n[7]=0,n[8]=C[8]*o,n[9]=C[9]*o,n[10]=C[10]*o,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromEuler(e){const n=this.elements,C=e.x,r=e.y,i=e.z,o=Math.cos(C),s=Math.sin(C),a=Math.cos(r),d=Math.sin(r),g=Math.cos(i),p=Math.sin(i);if(e.order==="XYZ"){const A=o*g,w=o*p,x=s*g,y=s*p;n[0]=a*g,n[4]=-a*p,n[8]=d,n[1]=w+x*d,n[5]=A-y*d,n[9]=-s*a,n[2]=y-A*d,n[6]=x+w*d,n[10]=o*a}else if(e.order==="YXZ"){const A=a*g,w=a*p,x=d*g,y=d*p;n[0]=A+y*s,n[4]=x*s-w,n[8]=o*d,n[1]=o*p,n[5]=o*g,n[9]=-s,n[2]=w*s-x,n[6]=y+A*s,n[10]=o*a}else if(e.order==="ZXY"){const A=a*g,w=a*p,x=d*g,y=d*p;n[0]=A-y*s,n[4]=-o*p,n[8]=x+w*s,n[1]=w+x*s,n[5]=o*g,n[9]=y-A*s,n[2]=-o*d,n[6]=s,n[10]=o*a}else if(e.order==="ZYX"){const A=o*g,w=o*p,x=s*g,y=s*p;n[0]=a*g,n[4]=x*d-w,n[8]=A*d+y,n[1]=a*p,n[5]=y*d+A,n[9]=w*d-x,n[2]=-d,n[6]=s*a,n[10]=o*a}else if(e.order==="YZX"){const A=o*a,w=o*d,x=s*a,y=s*d;n[0]=a*g,n[4]=y-A*p,n[8]=x*p+w,n[1]=p,n[5]=o*g,n[9]=-s*g,n[2]=-d*g,n[6]=w*p+x,n[10]=A-y*p}else if(e.order==="XZY"){const A=o*a,w=o*d,x=s*a,y=s*d;n[0]=a*g,n[4]=-p,n[8]=d*g,n[1]=A*p+y,n[5]=o*g,n[9]=w*p-x,n[2]=x*p-w,n[6]=s*g,n[10]=y*p+A}return n[3]=0,n[7]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromQuaternion(e){return this.compose(GB,e,OB)}lookAt(e,n,C){const r=this.elements;return u8.subVectors(e,n),u8.lengthSq()===0&&(u8.z=1),u8.normalize(),j6.crossVectors(C,u8),j6.lengthSq()===0&&(Math.abs(C.z)===1?u8.x+=1e-4:u8.z+=1e-4,u8.normalize(),j6.crossVectors(C,u8)),j6.normalize(),or.crossVectors(u8,j6),r[0]=j6.x,r[4]=or.x,r[8]=u8.x,r[1]=j6.y,r[5]=or.y,r[9]=u8.y,r[2]=j6.z,r[6]=or.z,r[10]=u8.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,n){const C=e.elements,r=n.elements,i=this.elements,o=C[0],s=C[4],a=C[8],d=C[12],g=C[1],p=C[5],A=C[9],w=C[13],x=C[2],y=C[6],m=C[10],v=C[14],E=C[3],k=C[7],I=C[11],Q=C[15],R=r[0],T=r[4],j=r[8],q=r[12],_=r[1],P=r[5],K=r[9],g1=r[13],X=r[2],i1=r[6],C1=r[10],u1=r[14],U=r[3],t1=r[7],n1=r[11],d1=r[15];return i[0]=o*R+s*_+a*X+d*U,i[4]=o*T+s*P+a*i1+d*t1,i[8]=o*j+s*K+a*C1+d*n1,i[12]=o*q+s*g1+a*u1+d*d1,i[1]=g*R+p*_+A*X+w*U,i[5]=g*T+p*P+A*i1+w*t1,i[9]=g*j+p*K+A*C1+w*n1,i[13]=g*q+p*g1+A*u1+w*d1,i[2]=x*R+y*_+m*X+v*U,i[6]=x*T+y*P+m*i1+v*t1,i[10]=x*j+y*K+m*C1+v*n1,i[14]=x*q+y*g1+m*u1+v*d1,i[3]=E*R+k*_+I*X+Q*U,i[7]=E*T+k*P+I*i1+Q*t1,i[11]=E*j+k*K+I*C1+Q*n1,i[15]=E*q+k*g1+I*u1+Q*d1,this}multiplyScalar(e){const n=this.elements;return n[0]*=e,n[4]*=e,n[8]*=e,n[12]*=e,n[1]*=e,n[5]*=e,n[9]*=e,n[13]*=e,n[2]*=e,n[6]*=e,n[10]*=e,n[14]*=e,n[3]*=e,n[7]*=e,n[11]*=e,n[15]*=e,this}determinant(){const e=this.elements,n=e[0],C=e[4],r=e[8],i=e[12],o=e[1],s=e[5],a=e[9],d=e[13],g=e[2],p=e[6],A=e[10],w=e[14],x=e[3],y=e[7],m=e[11],v=e[15];return x*(+i*a*p-r*d*p-i*s*A+C*d*A+r*s*w-C*a*w)+y*(+n*a*w-n*d*A+i*o*A-r*o*w+r*d*g-i*a*g)+m*(+n*d*p-n*s*w-i*o*p+C*o*w+i*s*g-C*d*g)+v*(-r*s*g-n*a*p+n*s*A+r*o*p-C*o*A+C*a*g)}transpose(){const e=this.elements;let n;return n=e[1],e[1]=e[4],e[4]=n,n=e[2],e[2]=e[8],e[8]=n,n=e[6],e[6]=e[9],e[9]=n,n=e[3],e[3]=e[12],e[12]=n,n=e[7],e[7]=e[13],e[13]=n,n=e[11],e[11]=e[14],e[14]=n,this}setPosition(e,n,C){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=n,r[14]=C),this}invert(){const e=this.elements,n=e[0],C=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=e[6],d=e[7],g=e[8],p=e[9],A=e[10],w=e[11],x=e[12],y=e[13],m=e[14],v=e[15],E=p*m*d-y*A*d+y*a*w-s*m*w-p*a*v+s*A*v,k=x*A*d-g*m*d-x*a*w+o*m*w+g*a*v-o*A*v,I=g*y*d-x*p*d+x*s*w-o*y*w-g*s*v+o*p*v,Q=x*p*a-g*y*a-x*s*A+o*y*A+g*s*m-o*p*m,R=n*E+C*k+r*I+i*Q;if(R===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/R;return e[0]=E*T,e[1]=(y*A*i-p*m*i-y*r*w+C*m*w+p*r*v-C*A*v)*T,e[2]=(s*m*i-y*a*i+y*r*d-C*m*d-s*r*v+C*a*v)*T,e[3]=(p*a*i-s*A*i-p*r*d+C*A*d+s*r*w-C*a*w)*T,e[4]=k*T,e[5]=(g*m*i-x*A*i+x*r*w-n*m*w-g*r*v+n*A*v)*T,e[6]=(x*a*i-o*m*i-x*r*d+n*m*d+o*r*v-n*a*v)*T,e[7]=(o*A*i-g*a*i+g*r*d-n*A*d-o*r*w+n*a*w)*T,e[8]=I*T,e[9]=(x*p*i-g*y*i-x*C*w+n*y*w+g*C*v-n*p*v)*T,e[10]=(o*y*i-x*s*i+x*C*d-n*y*d-o*C*v+n*s*v)*T,e[11]=(g*s*i-o*p*i-g*C*d+n*p*d+o*C*w-n*s*w)*T,e[12]=Q*T,e[13]=(g*y*r-x*p*r+x*C*A-n*y*A-g*C*m+n*p*m)*T,e[14]=(x*s*r-o*y*r-x*C*a+n*y*a+o*C*m-n*s*m)*T,e[15]=(o*p*r-g*s*r+g*C*a-n*p*a-o*C*A+n*s*A)*T,this}scale(e){const n=this.elements,C=e.x,r=e.y,i=e.z;return n[0]*=C,n[4]*=r,n[8]*=i,n[1]*=C,n[5]*=r,n[9]*=i,n[2]*=C,n[6]*=r,n[10]*=i,n[3]*=C,n[7]*=r,n[11]*=i,this}getMaxScaleOnAxis(){const e=this.elements,n=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],C=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(n,C,r))}makeTranslation(e,n,C){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,n,0,0,1,C,0,0,0,1),this}makeRotationX(e){const n=Math.cos(e),C=Math.sin(e);return this.set(1,0,0,0,0,n,-C,0,0,C,n,0,0,0,0,1),this}makeRotationY(e){const n=Math.cos(e),C=Math.sin(e);return this.set(n,0,C,0,0,1,0,0,-C,0,n,0,0,0,0,1),this}makeRotationZ(e){const n=Math.cos(e),C=Math.sin(e);return this.set(n,-C,0,0,C,n,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,n){const C=Math.cos(n),r=Math.sin(n),i=1-C,o=e.x,s=e.y,a=e.z,d=i*o,g=i*s;return this.set(d*o+C,d*s-r*a,d*a+r*s,0,d*s+r*a,g*s+C,g*a-r*o,0,d*a-r*s,g*a+r*o,i*a*a+C,0,0,0,0,1),this}makeScale(e,n,C){return this.set(e,0,0,0,0,n,0,0,0,0,C,0,0,0,0,1),this}makeShear(e,n,C,r,i,o){return this.set(1,C,i,0,e,1,o,0,n,r,1,0,0,0,0,1),this}compose(e,n,C){const r=this.elements,i=n._x,o=n._y,s=n._z,a=n._w,d=i+i,g=o+o,p=s+s,A=i*d,w=i*g,x=i*p,y=o*g,m=o*p,v=s*p,E=a*d,k=a*g,I=a*p,Q=C.x,R=C.y,T=C.z;return r[0]=(1-(y+v))*Q,r[1]=(w+I)*Q,r[2]=(x-k)*Q,r[3]=0,r[4]=(w-I)*R,r[5]=(1-(A+v))*R,r[6]=(m+E)*R,r[7]=0,r[8]=(x+k)*T,r[9]=(m-E)*T,r[10]=(1-(A+y))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,n,C){const r=this.elements;let i=l7.set(r[0],r[1],r[2]).length();const o=l7.set(r[4],r[5],r[6]).length(),s=l7.set(r[8],r[9],r[10]).length();this.determinant()<0&&(i=-i),e.x=r[12],e.y=r[13],e.z=r[14],V8.copy(this);const d=1/i,g=1/o,p=1/s;return V8.elements[0]*=d,V8.elements[1]*=d,V8.elements[2]*=d,V8.elements[4]*=g,V8.elements[5]*=g,V8.elements[6]*=g,V8.elements[8]*=p,V8.elements[9]*=p,V8.elements[10]*=p,n.setFromRotationMatrix(V8),C.x=i,C.y=o,C.z=s,this}makePerspective(e,n,C,r,i,o,s=k4){const a=this.elements,d=2*i/(n-e),g=2*i/(C-r),p=(n+e)/(n-e),A=(C+r)/(C-r);let w,x;if(s===k4)w=-(o+i)/(o-i),x=-2*o*i/(o-i);else if(s===dn)w=-o/(o-i),x=-o*i/(o-i);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+s);return a[0]=d,a[4]=0,a[8]=p,a[12]=0,a[1]=0,a[5]=g,a[9]=A,a[13]=0,a[2]=0,a[6]=0,a[10]=w,a[14]=x,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(e,n,C,r,i,o,s=k4){const a=this.elements,d=1/(n-e),g=1/(C-r),p=1/(o-i),A=(n+e)*d,w=(C+r)*g;let x,y;if(s===k4)x=(o+i)*p,y=-2*p;else if(s===dn)x=i*p,y=-1*p;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+s);return a[0]=2*d,a[4]=0,a[8]=0,a[12]=-A,a[1]=0,a[5]=2*g,a[9]=0,a[13]=-w,a[2]=0,a[6]=0,a[10]=y,a[14]=-x,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){const n=this.elements,C=e.elements;for(let r=0;r<16;r++)if(n[r]!==C[r])return!1;return!0}fromArray(e,n=0){for(let C=0;C<16;C++)this.elements[C]=e[C+n];return this}toArray(e=[],n=0){const C=this.elements;return e[n]=C[0],e[n+1]=C[1],e[n+2]=C[2],e[n+3]=C[3],e[n+4]=C[4],e[n+5]=C[5],e[n+6]=C[6],e[n+7]=C[7],e[n+8]=C[8],e[n+9]=C[9],e[n+10]=C[10],e[n+11]=C[11],e[n+12]=C[12],e[n+13]=C[13],e[n+14]=C[14],e[n+15]=C[15],e}}const l7=new G,V8=new f0,GB=new G(0,0,0),OB=new G(1,1,1),j6=new G,or=new G,u8=new G,yp=new f0,Ip=new F9;class ve{constructor(e=0,n=0,C=0,r=ve.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=n,this._z=C,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,n,C,r=this._order){return this._x=e,this._y=n,this._z=C,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,n=this._order,C=!0){const r=e.elements,i=r[0],o=r[4],s=r[8],a=r[1],d=r[5],g=r[9],p=r[2],A=r[6],w=r[10];switch(n){case"XYZ":this._y=Math.asin(Q2(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-g,w),this._z=Math.atan2(-o,i)):(this._x=Math.atan2(A,d),this._z=0);break;case"YXZ":this._x=Math.asin(-Q2(g,-1,1)),Math.abs(g)<.9999999?(this._y=Math.atan2(s,w),this._z=Math.atan2(a,d)):(this._y=Math.atan2(-p,i),this._z=0);break;case"ZXY":this._x=Math.asin(Q2(A,-1,1)),Math.abs(A)<.9999999?(this._y=Math.atan2(-p,w),this._z=Math.atan2(-o,d)):(this._y=0,this._z=Math.atan2(a,i));break;case"ZYX":this._y=Math.asin(-Q2(p,-1,1)),Math.abs(p)<.9999999?(this._x=Math.atan2(A,w),this._z=Math.atan2(a,i)):(this._x=0,this._z=Math.atan2(-o,d));break;case"YZX":this._z=Math.asin(Q2(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-g,d),this._y=Math.atan2(-p,i)):(this._x=0,this._y=Math.atan2(s,w));break;case"XZY":this._z=Math.asin(-Q2(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(A,d),this._y=Math.atan2(s,i)):(this._x=Math.atan2(-g,w),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+n)}return this._order=n,C===!0&&this._onChangeCallback(),this}setFromQuaternion(e,n,C){return yp.makeRotationFromQuaternion(e),this.setFromRotationMatrix(yp,n,C)}setFromVector3(e,n=this._order){return this.set(e.x,e.y,e.z,n)}reorder(e){return Ip.setFromEuler(this),this.setFromQuaternion(Ip,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],n=0){return e[n]=this._x,e[n+1]=this._y,e[n+2]=this._z,e[n+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}ve.DEFAULT_ORDER="XYZ";let y3=class{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let n=0;n1){for(let C=0;C0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(s=>({boxInitialized:s.boxInitialized,boxMin:s.box.min.toArray(),boxMax:s.box.max.toArray(),sphereInitialized:s.sphereInitialized,sphereRadius:s.sphere.radius,sphereCenter:s.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function i(s,a){return s[a.uuid]===void 0&&(s[a.uuid]=a.toJSON(e)),a.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=i(e.geometries,this.geometry);const s=this.geometry.parameters;if(s!==void 0&&s.shapes!==void 0){const a=s.shapes;if(Array.isArray(a))for(let d=0,g=a.length;d0){r.children=[];for(let s=0;s0){r.animations=[];for(let s=0;s0&&(C.geometries=s),a.length>0&&(C.materials=a),d.length>0&&(C.textures=d),g.length>0&&(C.images=g),p.length>0&&(C.shapes=p),A.length>0&&(C.skeletons=A),w.length>0&&(C.animations=w),x.length>0&&(C.nodes=x)}return C.object=r,C;function o(s){const a=[];for(const d in s){const g=s[d];delete g.metadata,a.push(g)}return a}}clone(e){return new this.constructor().copy(this,e)}copy(e,n=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),n===!0)for(let C=0;C0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)}static getBarycoord(e,n,C,r,i){$8.subVectors(r,n),O4.subVectors(C,n),zl.subVectors(e,n);const o=$8.dot($8),s=$8.dot(O4),a=$8.dot(zl),d=O4.dot(O4),g=O4.dot(zl),p=o*d-s*s;if(p===0)return i.set(0,0,0),null;const A=1/p,w=(d*a-s*g)*A,x=(o*g-s*a)*A;return i.set(1-w-x,x,w)}static containsPoint(e,n,C,r){return this.getBarycoord(e,n,C,r,z4)===null?!1:z4.x>=0&&z4.y>=0&&z4.x+z4.y<=1}static getInterpolation(e,n,C,r,i,o,s,a){return this.getBarycoord(e,n,C,r,z4)===null?(a.x=0,a.y=0,"z"in a&&(a.z=0),"w"in a&&(a.w=0),null):(a.setScalar(0),a.addScaledVector(i,z4.x),a.addScaledVector(o,z4.y),a.addScaledVector(s,z4.z),a)}static isFrontFacing(e,n,C,r){return $8.subVectors(C,n),O4.subVectors(e,n),$8.cross(O4).dot(r)<0}set(e,n,C){return this.a.copy(e),this.b.copy(n),this.c.copy(C),this}setFromPointsAndIndices(e,n,C,r){return this.a.copy(e[n]),this.b.copy(e[C]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,n,C,r){return this.a.fromBufferAttribute(e,n),this.b.fromBufferAttribute(e,C),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return $8.subVectors(this.c,this.b),O4.subVectors(this.a,this.b),$8.cross(O4).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return B7.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,n){return B7.getBarycoord(e,this.a,this.b,this.c,n)}getInterpolation(e,n,C,r,i){return B7.getInterpolation(e,this.a,this.b,this.c,n,C,r,i)}containsPoint(e){return B7.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return B7.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,n){const C=this.a,r=this.b,i=this.c;let o,s;c7.subVectors(r,C),u7.subVectors(i,C),Vl.subVectors(e,C);const a=c7.dot(Vl),d=u7.dot(Vl);if(a<=0&&d<=0)return n.copy(C);$l.subVectors(e,r);const g=c7.dot($l),p=u7.dot($l);if(g>=0&&p<=g)return n.copy(r);const A=a*p-g*d;if(A<=0&&a>=0&&g<=0)return o=a/(a-g),n.copy(C).addScaledVector(c7,o);Yl.subVectors(e,i);const w=c7.dot(Yl),x=u7.dot(Yl);if(x>=0&&w<=x)return n.copy(i);const y=w*d-a*x;if(y<=0&&d>=0&&x<=0)return s=d/(d-x),n.copy(C).addScaledVector(u7,s);const m=g*x-w*p;if(m<=0&&p-g>=0&&w-x>=0)return bp.subVectors(i,r),s=(p-g)/(p-g+(w-x)),n.copy(r).addScaledVector(bp,s);const v=1/(m+y+A);return o=y*v,s=A*v,n.copy(C).addScaledVector(c7,o).addScaledVector(u7,s)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}};const rm={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},U6={h:0,s:0,l:0},lr={h:0,s:0,l:0};function Xl(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*6*(2/3-n):t}class J1{constructor(e,n,C){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,n,C)}set(e,n,C){if(n===void 0&&C===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,n,C);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,n=N2){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,r2.toWorkingColorSpace(this,n),this}setRGB(e,n,C,r=r2.workingColorSpace){return this.r=e,this.g=n,this.b=C,r2.toWorkingColorSpace(this,r),this}setHSL(e,n,C,r=r2.workingColorSpace){if(e=zd(e,1),n=Q2(n,0,1),C=Q2(C,0,1),n===0)this.r=this.g=this.b=C;else{const i=C<=.5?C*(1+n):C+n-C*n,o=2*C-i;this.r=Xl(o,i,e+1/3),this.g=Xl(o,i,e),this.b=Xl(o,i,e-1/3)}return r2.toWorkingColorSpace(this,r),this}setStyle(e,n=N2){function C(i){i!==void 0&&parseFloat(i)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let i;const o=r[1],s=r[2];switch(o){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return C(i[4]),this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,n);if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return C(i[4]),this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,n);break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return C(i[4]),this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,n);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const i=r[1],o=i.length;if(o===3)return this.setRGB(parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,n);if(o===6)return this.setHex(parseInt(i,16),n);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,n);return this}setColorName(e,n=N2){const C=rm[e.toLowerCase()];return C!==void 0?this.setHex(C,n):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=te(e.r),this.g=te(e.g),this.b=te(e.b),this}copyLinearToSRGB(e){return this.r=Nl(e.r),this.g=Nl(e.g),this.b=Nl(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=N2){return r2.fromWorkingColorSpace(M9.copy(this),e),Math.round(Q2(M9.r*255,0,255))*65536+Math.round(Q2(M9.g*255,0,255))*256+Math.round(Q2(M9.b*255,0,255))}getHexString(e=N2){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,n=r2.workingColorSpace){r2.fromWorkingColorSpace(M9.copy(this),n);const C=M9.r,r=M9.g,i=M9.b,o=Math.max(C,r,i),s=Math.min(C,r,i);let a,d;const g=(s+o)/2;if(s===o)a=0,d=0;else{const p=o-s;switch(d=g<=.5?p/(o+s):p/(2-o-s),o){case C:a=(r-i)/p+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const n in e){const C=e[n];if(C===void 0){console.warn(`THREE.Material: parameter '${n}' has value of undefined.`);continue}const r=this[n];if(r===void 0){console.warn(`THREE.Material: '${n}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(C):r&&r.isVector3&&C&&C.isVector3?r.copy(C):this[n]=C}}toJSON(e){const n=e===void 0||typeof e=="string";n&&(e={textures:{},images:{}});const C={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};C.uuid=this.uuid,C.type=this.type,this.name!==""&&(C.name=this.name),this.color&&this.color.isColor&&(C.color=this.color.getHex()),this.roughness!==void 0&&(C.roughness=this.roughness),this.metalness!==void 0&&(C.metalness=this.metalness),this.sheen!==void 0&&(C.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(C.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(C.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(C.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(C.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(C.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(C.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(C.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(C.shininess=this.shininess),this.clearcoat!==void 0&&(C.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(C.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(C.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(C.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(C.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,C.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(C.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(C.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(C.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(C.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(C.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(C.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(C.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(C.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(C.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(C.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(C.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(C.lightMap=this.lightMap.toJSON(e).uuid,C.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(C.aoMap=this.aoMap.toJSON(e).uuid,C.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(C.bumpMap=this.bumpMap.toJSON(e).uuid,C.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(C.normalMap=this.normalMap.toJSON(e).uuid,C.normalMapType=this.normalMapType,C.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(C.displacementMap=this.displacementMap.toJSON(e).uuid,C.displacementScale=this.displacementScale,C.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(C.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(C.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(C.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(C.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(C.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(C.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(C.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(C.combine=this.combine)),this.envMapIntensity!==void 0&&(C.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(C.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(C.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(C.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(C.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(C.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(C.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(C.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(C.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(C.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(C.size=this.size),this.shadowSide!==null&&(C.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(C.sizeAttenuation=this.sizeAttenuation),this.blending!==k3&&(C.blending=this.blending),this.side!==j8&&(C.side=this.side),this.vertexColors===!0&&(C.vertexColors=!0),this.opacity<1&&(C.opacity=this.opacity),this.transparent===!0&&(C.transparent=!0),this.blendSrc!==no&&(C.blendSrc=this.blendSrc),this.blendDst!==Co&&(C.blendDst=this.blendDst),this.blendEquation!==q6&&(C.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(C.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(C.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(C.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(C.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(C.blendAlpha=this.blendAlpha),this.depthFunc!==Zt&&(C.depthFunc=this.depthFunc),this.depthTest===!1&&(C.depthTest=this.depthTest),this.depthWrite===!1&&(C.depthWrite=this.depthWrite),this.colorWrite===!1&&(C.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(C.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==uu&&(C.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(C.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(C.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==s3&&(C.stencilFail=this.stencilFail),this.stencilZFail!==s3&&(C.stencilZFail=this.stencilZFail),this.stencilZPass!==s3&&(C.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(C.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(C.rotation=this.rotation),this.polygonOffset===!0&&(C.polygonOffset=!0),this.polygonOffsetFactor!==0&&(C.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(C.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(C.linewidth=this.linewidth),this.dashSize!==void 0&&(C.dashSize=this.dashSize),this.gapSize!==void 0&&(C.gapSize=this.gapSize),this.scale!==void 0&&(C.scale=this.scale),this.dithering===!0&&(C.dithering=!0),this.alphaTest>0&&(C.alphaTest=this.alphaTest),this.alphaHash===!0&&(C.alphaHash=!0),this.alphaToCoverage===!0&&(C.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(C.premultipliedAlpha=!0),this.forceSinglePass===!0&&(C.forceSinglePass=!0),this.wireframe===!0&&(C.wireframe=!0),this.wireframeLinewidth>1&&(C.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(C.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(C.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(C.flatShading=!0),this.visible===!1&&(C.visible=!1),this.toneMapped===!1&&(C.toneMapped=!1),this.fog===!1&&(C.fog=!1),Object.keys(this.userData).length>0&&(C.userData=this.userData);function r(i){const o=[];for(const s in i){const a=i[s];delete a.metadata,o.push(a)}return o}if(n){const i=r(e.textures),o=r(e.images);i.length>0&&(C.textures=i),o.length>0&&(C.images=o)}return C}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const n=e.clippingPlanes;let C=null;if(n!==null){const r=n.length;C=new Array(r);for(let i=0;i!==r;++i)C[i]=n[i].clone()}return this.clippingPlanes=C,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class n8 extends l9{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new J1(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Sn,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const q4=qB();function qB(){const t=new ArrayBuffer(4),e=new Float32Array(t),n=new Uint32Array(t),C=new Uint32Array(512),r=new Uint32Array(512);for(let a=0;a<256;++a){const d=a-127;d<-27?(C[a]=0,C[a|256]=32768,r[a]=24,r[a|256]=24):d<-14?(C[a]=1024>>-d-14,C[a|256]=1024>>-d-14|32768,r[a]=-d-1,r[a|256]=-d-1):d<=15?(C[a]=d+15<<10,C[a|256]=d+15<<10|32768,r[a]=13,r[a|256]=13):d<128?(C[a]=31744,C[a|256]=64512,r[a]=24,r[a|256]=24):(C[a]=31744,C[a|256]=64512,r[a]=13,r[a|256]=13)}const i=new Uint32Array(2048),o=new Uint32Array(64),s=new Uint32Array(64);for(let a=1;a<1024;++a){let d=a<<13,g=0;for(;!(d&8388608);)d<<=1,g-=8388608;d&=-8388609,g+=947912704,i[a]=d|g}for(let a=1024;a<2048;++a)i[a]=939524096+(a-1024<<13);for(let a=1;a<31;++a)o[a]=a<<23;o[31]=1199570944,o[32]=2147483648;for(let a=33;a<63;++a)o[a]=2147483648+(a-32<<23);o[63]=3347054592;for(let a=1;a<64;++a)a!==32&&(s[a]=1024);return{floatView:e,uint32View:n,baseTable:C,shiftTable:r,mantissaTable:i,exponentTable:o,offsetTable:s}}function J9(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=Q2(t,-65504,65504),q4.floatView[0]=t;const e=q4.uint32View[0],n=e>>23&511;return q4.baseTable[n]+((e&8388607)>>q4.shiftTable[n])}function pt(t){const e=t>>10;return q4.uint32View[0]=q4.mantissaTable[q4.offsetTable[e]+(t&1023)]+q4.exponentTable[e],q4.floatView[0]}const KB={toHalfFloat:J9,fromHalfFloat:pt},O2=new G,ar=new y1;class C2{constructor(e,n,C=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=n,this.count=e!==void 0?e.length/n:0,this.normalized=C,this.usage=un,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Q8,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return E3("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,n,C){e*=this.itemSize,C*=n.itemSize;for(let r=0,i=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const a=this.parameters;for(const d in a)a[d]!==void 0&&(e[d]=a[d]);return e}e.data={attributes:{}};const n=this.index;n!==null&&(e.data.index={type:n.array.constructor.name,array:Array.prototype.slice.call(n.array)});const C=this.attributes;for(const a in C){const d=C[a];e.data.attributes[a]=d.toJSON(e.data)}const r={};let i=!1;for(const a in this.morphAttributes){const d=this.morphAttributes[a],g=[];for(let p=0,A=d.length;p0&&(r[a]=g,i=!0)}i&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const s=this.boundingSphere;return s!==null&&(e.data.boundingSphere={center:s.center.toArray(),radius:s.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const n={};this.name=e.name;const C=e.index;C!==null&&this.setIndex(C.clone(n));const r=e.attributes;for(const d in r){const g=r[d];this.setAttribute(d,g.clone(n))}const i=e.morphAttributes;for(const d in i){const g=[],p=i[d];for(let A=0,w=p.length;A0){const r=n[C[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,o=r.length;i(e.far-e.near)**2))&&(Qp.copy(i).invert(),Y5.copy(e.ray).applyMatrix4(Qp),!(C.boundingBox!==null&&Y5.intersectsBox(C.boundingBox)===!1)&&this._computeIntersections(e,n,Y5)))}_computeIntersections(e,n,C){let r;const i=this.geometry,o=this.material,s=i.index,a=i.attributes.position,d=i.attributes.uv,g=i.attributes.uv1,p=i.attributes.normal,A=i.groups,w=i.drawRange;if(s!==null)if(Array.isArray(o))for(let x=0,y=A.length;xn.far?null:{distance:d,point:pr.clone(),object:t}}function Ar(t,e,n,C,r,i,o,s,a,d){t.getVertexPosition(s,h7),t.getVertexPosition(a,f7),t.getVertexPosition(d,g7);const g=sS(t,e,n,C,h7,f7,g7,gr);if(g){r&&(dr.fromBufferAttribute(r,s),hr.fromBufferAttribute(r,a),fr.fromBufferAttribute(r,d),g.uv=L3.getInterpolation(gr,h7,f7,g7,dr,hr,fr,new y1)),i&&(dr.fromBufferAttribute(i,s),hr.fromBufferAttribute(i,a),fr.fromBufferAttribute(i,d),g.uv1=L3.getInterpolation(gr,h7,f7,g7,dr,hr,fr,new y1),g.uv2=g.uv1),o&&(Dp.fromBufferAttribute(o,s),Pp.fromBufferAttribute(o,a),Np.fromBufferAttribute(o,d),g.normal=L3.getInterpolation(gr,h7,f7,g7,Dp,Pp,Np,new G),g.normal.dot(C.direction)>0&&g.normal.multiplyScalar(-1));const p={a:s,b:a,c:d,normal:new G,materialIndex:0};L3.getNormal(h7,f7,g7,p.normal),g.face=p}return g}class j3 extends b0{constructor(e=1,n=1,C=1,r=1,i=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:n,depth:C,widthSegments:r,heightSegments:i,depthSegments:o};const s=this;r=Math.floor(r),i=Math.floor(i),o=Math.floor(o);const a=[],d=[],g=[],p=[];let A=0,w=0;x("z","y","x",-1,-1,C,n,e,o,i,0),x("z","y","x",1,-1,C,n,-e,o,i,1),x("x","z","y",1,1,e,C,n,r,o,2),x("x","z","y",1,-1,e,C,-n,r,o,3),x("x","y","z",1,-1,e,n,C,r,i,4),x("x","y","z",-1,-1,e,n,-C,r,i,5),this.setIndex(a),this.setAttribute("position",new o0(d,3)),this.setAttribute("normal",new o0(g,3)),this.setAttribute("uv",new o0(p,2));function x(y,m,v,E,k,I,Q,R,T,j,q){const _=I/T,P=Q/j,K=I/2,g1=Q/2,X=R/2,i1=T+1,C1=j+1;let u1=0,U=0;const t1=new G;for(let n1=0;n10?1:-1,g.push(t1.x,t1.y,t1.z),p.push(x1/T),p.push(1-n1/j),u1+=1}}for(let n1=0;n10&&(n.defines=this.defines),n.vertexShader=this.vertexShader,n.fragmentShader=this.fragmentShader,n.lights=this.lights,n.clipping=this.clipping;const C={};for(const r in this.extensions)this.extensions[r]===!0&&(C[r]=!0);return Object.keys(C).length>0&&(n.extensions=C),n}}let Rn=class extends Z0{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new f0,this.projectionMatrix=new f0,this.projectionMatrixInverse=new f0,this.coordinateSystem=k4}copy(e,n){return super.copy(e,n),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}};const F6=new G,Hp=new y1,jp=new y1;class X2 extends Rn{constructor(e=50,n=1,C=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=C,this.far=r,this.focus=10,this.aspect=n,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,n){return super.copy(e,n),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const n=.5*this.getFilmHeight()/e;this.fov=ce*2*Math.atan(n),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(M3*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return ce*2*Math.atan(Math.tan(M3*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,n,C){F6.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(F6.x,F6.y).multiplyScalar(-e/F6.z),F6.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),C.set(F6.x,F6.y).multiplyScalar(-e/F6.z)}getViewSize(e,n){return this.getViewBounds(e,Hp,jp),n.subVectors(jp,Hp)}setViewOffset(e,n,C,r,i,o){this.aspect=e/n,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=n,this.view.offsetX=C,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let n=e*Math.tan(M3*.5*this.fov)/this.zoom,C=2*n,r=this.aspect*C,i=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const a=o.fullWidth,d=o.fullHeight;i+=o.offsetX*r/a,n-=o.offsetY*C/d,r*=o.width/a,C*=o.height/d}const s=this.filmOffset;s!==0&&(i+=e*s/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+r,n,n-C,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const n=super.toJSON(e);return n.object.fov=this.fov,n.object.zoom=this.zoom,n.object.near=this.near,n.object.far=this.far,n.object.focus=this.focus,n.object.aspect=this.aspect,this.view!==null&&(n.object.view=Object.assign({},this.view)),n.object.filmGauge=this.filmGauge,n.object.filmOffset=this.filmOffset,n}}const p7=-90,A7=1;class sm extends Z0{constructor(e,n,C){super(),this.type="CubeCamera",this.renderTarget=C,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new X2(p7,A7,e,n);r.layers=this.layers,this.add(r);const i=new X2(p7,A7,e,n);i.layers=this.layers,this.add(i);const o=new X2(p7,A7,e,n);o.layers=this.layers,this.add(o);const s=new X2(p7,A7,e,n);s.layers=this.layers,this.add(s);const a=new X2(p7,A7,e,n);a.layers=this.layers,this.add(a);const d=new X2(p7,A7,e,n);d.layers=this.layers,this.add(d)}updateCoordinateSystem(){const e=this.coordinateSystem,n=this.children.concat(),[C,r,i,o,s,a]=n;for(const d of n)this.remove(d);if(e===k4)C.up.set(0,1,0),C.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),i.up.set(0,0,-1),i.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),s.up.set(0,1,0),s.lookAt(0,0,1),a.up.set(0,1,0),a.lookAt(0,0,-1);else if(e===dn)C.up.set(0,-1,0),C.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),i.up.set(0,0,1),i.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),s.up.set(0,-1,0),s.lookAt(0,0,1),a.up.set(0,-1,0),a.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const d of n)this.add(d),d.updateMatrixWorld()}update(e,n){this.parent===null&&this.updateMatrixWorld();const{renderTarget:C,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[i,o,s,a,d,g]=this.children,p=e.getRenderTarget(),A=e.getActiveCubeFace(),w=e.getActiveMipmapLevel(),x=e.xr.enabled;e.xr.enabled=!1;const y=C.texture.generateMipmaps;C.texture.generateMipmaps=!1,e.setRenderTarget(C,0,r),e.render(n,i),e.setRenderTarget(C,1,r),e.render(n,o),e.setRenderTarget(C,2,r),e.render(n,s),e.setRenderTarget(C,3,r),e.render(n,a),e.setRenderTarget(C,4,r),e.render(n,d),C.texture.generateMipmaps=y,e.setRenderTarget(C,5,r),e.render(n,g),e.setRenderTarget(p,A,w),e.xr.enabled=x,C.texture.needsPMREMUpdate=!0}}class bn extends k2{constructor(e,n,C,r,i,o,s,a,d,g){e=e!==void 0?e:[],n=n!==void 0?n:a6,super(e,n,C,r,i,o,s,a,d,g),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class lm extends U8{constructor(e=1,n={}){super(e,e,n),this.isWebGLCubeRenderTarget=!0;const C={width:e,height:e,depth:1},r=[C,C,C,C,C,C];n.encoding!==void 0&&(E3("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),n.colorSpace=n.encoding===u5?N2:f8),this.texture=new bn(r,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:v2}fromEquirectangularTexture(e,n){this.texture.type=n.type,this.texture.colorSpace=n.colorSpace,this.texture.generateMipmaps=n.generateMipmaps,this.texture.minFilter=n.minFilter,this.texture.magFilter=n.magFilter;const C={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},r=new j3(5,5,5),i=new r4({name:"CubemapFromEquirect",uniforms:ue(C.uniforms),vertexShader:C.vertexShader,fragmentShader:C.fragmentShader,side:U9,blending:r6});i.uniforms.tEquirect.value=n;const o=new n2(r,i),s=n.minFilter;return n.minFilter===m4&&(n.minFilter=v2),new sm(1,10,this).update(e,o),n.minFilter=s,o.geometry.dispose(),o.material.dispose(),this}clear(e,n,C,r){const i=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(n,C,r);e.setRenderTarget(i)}}const Kl=new G,uS=new G,dS=new B0;let s2=class{constructor(e=new G(1,0,0),n=0){this.isPlane=!0,this.normal=e,this.constant=n}set(e,n){return this.normal.copy(e),this.constant=n,this}setComponents(e,n,C,r){return this.normal.set(e,n,C),this.constant=r,this}setFromNormalAndCoplanarPoint(e,n){return this.normal.copy(e),this.constant=-n.dot(this.normal),this}setFromCoplanarPoints(e,n,C){const r=Kl.subVectors(C,n).cross(uS.subVectors(e,n)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,n){return n.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,n){const C=e.delta(Kl),r=this.normal.dot(C);if(r===0)return this.distanceToPoint(e.start)===0?n.copy(e.start):null;const i=-(e.start.dot(this.normal)+this.constant)/r;return i<0||i>1?null:n.copy(e.start).addScaledVector(C,i)}intersectsLine(e){const n=this.distanceToPoint(e.start),C=this.distanceToPoint(e.end);return n<0&&C>0||C<0&&n>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,n){const C=n||dS.getNormalMatrix(e),r=this.coplanarPoint(Kl).applyMatrix4(e),i=this.normal.applyMatrix3(C).normalize();return this.constant=-r.dot(i),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}};const X5=new o9,vr=new G;class Qn{constructor(e=new s2,n=new s2,C=new s2,r=new s2,i=new s2,o=new s2){this.planes=[e,n,C,r,i,o]}set(e,n,C,r,i,o){const s=this.planes;return s[0].copy(e),s[1].copy(n),s[2].copy(C),s[3].copy(r),s[4].copy(i),s[5].copy(o),this}copy(e){const n=this.planes;for(let C=0;C<6;C++)n[C].copy(e.planes[C]);return this}setFromProjectionMatrix(e,n=k4){const C=this.planes,r=e.elements,i=r[0],o=r[1],s=r[2],a=r[3],d=r[4],g=r[5],p=r[6],A=r[7],w=r[8],x=r[9],y=r[10],m=r[11],v=r[12],E=r[13],k=r[14],I=r[15];if(C[0].setComponents(a-i,A-d,m-w,I-v).normalize(),C[1].setComponents(a+i,A+d,m+w,I+v).normalize(),C[2].setComponents(a+o,A+g,m+x,I+E).normalize(),C[3].setComponents(a-o,A-g,m-x,I-E).normalize(),C[4].setComponents(a-s,A-p,m-y,I-k).normalize(),n===k4)C[5].setComponents(a+s,A+p,m+y,I+k).normalize();else if(n===dn)C[5].setComponents(s,p,y,k).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+n);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),X5.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const n=e.geometry;n.boundingSphere===null&&n.computeBoundingSphere(),X5.copy(n.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(X5)}intersectsSprite(e){return X5.center.set(0,0,0),X5.radius=.7071067811865476,X5.applyMatrix4(e.matrixWorld),this.intersectsSphere(X5)}intersectsSphere(e){const n=this.planes,C=e.center,r=-e.radius;for(let i=0;i<6;i++)if(n[i].distanceToPoint(C)0?e.max.x:e.min.x,vr.y=r.normal.y>0?e.max.y:e.min.y,vr.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(vr)<0)return!1}return!0}containsPoint(e){const n=this.planes;for(let C=0;C<6;C++)if(n[C].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function am(){let t=null,e=!1,n=null,C=null;function r(i,o){n(i,o),C=t.requestAnimationFrame(r)}return{start:function(){e!==!0&&n!==null&&(C=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(C),e=!1},setAnimationLoop:function(i){n=i},setContext:function(i){t=i}}}function hS(t,e){const n=e.isWebGL2,C=new WeakMap;function r(d,g){const p=d.array,A=d.usage,w=p.byteLength,x=t.createBuffer();t.bindBuffer(g,x),t.bufferData(g,p,A),d.onUploadCallback();let y;if(p instanceof Float32Array)y=t.FLOAT;else if(p instanceof Uint16Array)if(d.isFloat16BufferAttribute)if(n)y=t.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else y=t.UNSIGNED_SHORT;else if(p instanceof Int16Array)y=t.SHORT;else if(p instanceof Uint32Array)y=t.UNSIGNED_INT;else if(p instanceof Int32Array)y=t.INT;else if(p instanceof Int8Array)y=t.BYTE;else if(p instanceof Uint8Array)y=t.UNSIGNED_BYTE;else if(p instanceof Uint8ClampedArray)y=t.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+p);return{buffer:x,type:y,bytesPerElement:p.BYTES_PER_ELEMENT,version:d.version,size:w}}function i(d,g,p){const A=g.array,w=g._updateRange,x=g.updateRanges;if(t.bindBuffer(p,d),w.count===-1&&x.length===0&&t.bufferSubData(p,0,A),x.length!==0){for(let y=0,m=x.length;y 0 + vec4 plane; + #ifdef ALPHA_TO_COVERAGE + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + if ( clipOpacity == 0.0 ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + float unionClipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + } + #pragma unroll_loop_end + clipOpacity *= 1.0 - unionClipOpacity; + #endif + diffuseColor.a *= clipOpacity; + if ( diffuseColor.a == 0.0 ) discard; + #else + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif + #endif +#endif`,_S=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,RS=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,bS=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,QS=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,TS=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,DS=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,PS=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,NS=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +#ifdef USE_ALPHAHASH + varying vec3 vPosition; +#endif +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); + return dot( weights, rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +} +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} // validated`,HS=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,jS=`vec3 transformedNormal = objectNormal; +#ifdef USE_TANGENT + vec3 transformedTangent = objectTangent; +#endif +#ifdef USE_BATCHING + mat3 bm = mat3( batchingMatrix ); + transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); + transformedNormal = bm * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = bm * transformedTangent; + #endif +#endif +#ifdef USE_INSTANCING + mat3 im = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); + transformedNormal = im * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = im * transformedTangent; + #endif +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,US=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,FS=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,WS=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,GS=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,OS="gl_FragColor = linearToOutputTexel( gl_FragColor );",zS=` +const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( + vec3( 0.8224621, 0.177538, 0.0 ), + vec3( 0.0331941, 0.9668058, 0.0 ), + vec3( 0.0170827, 0.0723974, 0.9105199 ) +); +const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( + vec3( 1.2249401, - 0.2249404, 0.0 ), + vec3( - 0.0420569, 1.0420571, 0.0 ), + vec3( - 0.0196376, - 0.0786361, 1.0982735 ) +); +vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { + return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); +} +vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { + return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); +} +vec4 LinearTransferOETF( in vec4 value ) { + return value; +} +vec4 sRGBTransferOETF( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +} +vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return sRGBTransferOETF( value ); +}`,VS=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,$S=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,YS=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,XS=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,JS=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,qS=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,KS=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,ZS=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,e_=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,t_=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,n_=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif`,C_=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,r_=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,i_=`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,o_=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +#if defined( USE_LIGHT_PROBES ) + uniform vec3 lightProbe[ 9 ]; +#endif +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( LEGACY_LIGHTS ) + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #else + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometryPosition; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometryPosition; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,s_=`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #ifdef USE_ANISOTROPY + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); + return getIBLRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif +#endif`,l_=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,a_=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,c_=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,u_=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,d_=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef USE_SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULAR_COLORMAP + specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEEN_COLORMAP + material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEEN_ROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; + #endif +#endif +#ifdef USE_ANISOTROPY + #ifdef USE_ANISOTROPYMAP + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; + #else + vec2 anisotropyV = anisotropyVector; + #endif + material.anisotropy = length( anisotropyV ); + if( material.anisotropy == 0.0 ) { + anisotropyV = vec2( 1.0, 0.0 ); + } else { + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + } + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; + material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; +#endif`,h_=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaT; + vec3 anisotropyT; + vec3 anisotropyB; + #endif +}; +vec3 clearcoatSpecularDirect = vec3( 0.0 ); +vec3 clearcoatSpecularIndirect = vec3( 0.0 ); +vec3 sheenSpecularDirect = vec3( 0.0 ); +vec3 sheenSpecularIndirect = vec3(0.0 ); +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +#ifdef USE_ANISOTROPY + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( gv + gl ); + return saturate(v); + } + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + return RECIPROCAL_PI * a2 * pow2 ( w2 ); + } +#endif +#ifdef USE_CLEARCOAT + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); + } +#endif +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + #ifdef USE_IRIDESCENCE + F = mix( F, material.iridescenceFresnel, material.iridescence ); + #endif + #ifdef USE_ANISOTROPY + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); + #else + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + #endif + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometryNormal; + vec3 viewDir = geometryViewDir; + vec3 position = geometryPosition; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); + #endif + #ifdef USE_SHEEN + sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,f_=` +vec3 geometryPosition = - vViewPosition; +vec3 geometryNormal = normal; +vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +vec3 geometryClearcoatNormal = vec3( 0.0 ); +#ifdef USE_CLEARCOAT + geometryClearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometryViewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometryPosition, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometryPosition, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + #if defined( USE_LIGHT_PROBES ) + irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); + #endif + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,g_=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,p_=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif`,A_=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,v_=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,L_=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,w_=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,x_=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,m_=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,k_=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + #if defined( USE_POINTS_UV ) + vec2 uv = vUv; + #else + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; + #endif +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,M_=`#if defined( USE_POINTS_UV ) + varying vec2 vUv; +#else + #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; + #endif +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,E_=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,y_=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,I_=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,B_=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif`,S_=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif`,__=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif`,R_=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal *= faceDirection; + #endif +#endif +#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #ifdef USE_TANGENT + mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn = getTangentFrame( - vViewPosition, normal, + #if defined( USE_NORMALMAP ) + vNormalMapUv + #elif defined( USE_CLEARCOAT_NORMALMAP ) + vClearcoatNormalMapUv + #else + vUv + #endif + ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn[0] *= faceDirection; + tbn[1] *= faceDirection; + #endif +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + #ifdef USE_TANGENT + mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,b_=`#ifdef USE_NORMALMAP_OBJECTSPACE + normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( USE_NORMALMAP_TANGENTSPACE ) + vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,Q_=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,T_=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,D_=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,P_=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef USE_NORMALMAP_OBJECTSPACE + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) + mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( uv.st ); + vec2 st1 = dFdy( uv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); + return mat3( T * scale, B * scale, N ); + } +#endif`,N_=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,H_=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,j_=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif`,U_=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,F_=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,W_=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec2 packDepthToRG( in highp float v ) { + return packDepthToRGBA( v ).yx; +} +float unpackRGToDepth( const in highp vec2 v ) { + return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { + return depth * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * depth - far ); +}`,G_=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,O_=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_BATCHING + mvPosition = batchingMatrix * mvPosition; +#endif +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,z_=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,V_=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,$_=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,Y_=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,X_=`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,J_=`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,q_=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,K_=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,Z_=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,eR=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + mat4 getBoneMatrix( const in float i ) { + int size = textureSize( boneTexture, 0 ).x; + int j = int( i ) * 4; + int x = j % size; + int y = j / size; + vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); + vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); + vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); + vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); + return mat4( v1, v2, v3, v4 ); + } +#endif`,tR=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,nR=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,CR=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,rR=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,iR=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,oR=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return saturate( toneMappingExposure * color ); +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( + vec3( 1.6605, - 0.1246, - 0.0182 ), + vec3( - 0.5876, 1.1329, - 0.1006 ), + vec3( - 0.0728, - 0.0083, 1.1187 ) +); +const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( + vec3( 0.6274, 0.0691, 0.0164 ), + vec3( 0.3293, 0.9195, 0.0880 ), + vec3( 0.0433, 0.0113, 0.8956 ) +); +vec3 agxDefaultContrastApprox( vec3 x ) { + vec3 x2 = x * x; + vec3 x4 = x2 * x2; + return + 15.5 * x4 * x2 + - 40.14 * x4 * x + + 31.96 * x4 + - 6.868 * x2 * x + + 0.4298 * x2 + + 0.1191 * x + - 0.00232; +} +vec3 AgXToneMapping( vec3 color ) { + const mat3 AgXInsetMatrix = mat3( + vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), + vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), + vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) + ); + const mat3 AgXOutsetMatrix = mat3( + vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), + vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), + vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) + ); + const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; + color *= toneMappingExposure; + color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; + color = AgXInsetMatrix * color; + color = max( color, 1e-10 ); color = log2( color ); + color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); + color = clamp( color, 0.0, 1.0 ); + color = agxDefaultContrastApprox( color ); + color = AgXOutsetMatrix * color; + color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); + color = LINEAR_REC2020_TO_LINEAR_SRGB * color; + color = clamp( color, 0.0, 1.0 ); + return color; +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,sR=`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); +#endif`,lR=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + float w0( float a ) { + return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); + } + float w1( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); + } + float w2( float a ){ + return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); + } + float w3( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * a ); + } + float g0( float a ) { + return w0( a ) + w1( a ); + } + float g1( float a ) { + return w2( a ) + w3( a ); + } + float h0( float a ) { + return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); + } + float h1( float a ) { + return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); + } + vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { + uv = uv * texelSize.zw + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + float g0x = g0( fuv.x ); + float g1x = g1( fuv.x ); + float h0x = h0( fuv.x ); + float h1x = h1( fuv.x ); + float h0y = h0( fuv.y ); + float h1y = h1( fuv.y ); + vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); + } + vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { + vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); + vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); + vec2 fLodSizeInv = 1.0 / fLodSize; + vec2 cLodSizeInv = 1.0 / cLodSize; + vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); + vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); + return mix( fSample, cSample, fract( lod ) ); + } + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); + } + vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return vec3( 1.0 ); + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 attenuatedColor = transmittance * transmittedLight.rgb; + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; + return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); + } +#endif`,aR=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + varying vec2 vNormalMapUv; +#endif +#ifdef USE_EMISSIVEMAP + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_SPECULARMAP + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,cR=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + uniform mat3 mapTransform; + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + uniform mat3 alphaMapTransform; + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + uniform mat3 lightMapTransform; + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + uniform mat3 aoMapTransform; + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + uniform mat3 bumpMapTransform; + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + uniform mat3 normalMapTransform; + varying vec2 vNormalMapUv; +#endif +#ifdef USE_DISPLACEMENTMAP + uniform mat3 displacementMapTransform; + varying vec2 vDisplacementMapUv; +#endif +#ifdef USE_EMISSIVEMAP + uniform mat3 emissiveMapTransform; + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + uniform mat3 metalnessMapTransform; + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + uniform mat3 roughnessMapTransform; + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + uniform mat3 anisotropyMapTransform; + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + uniform mat3 clearcoatMapTransform; + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform mat3 clearcoatNormalMapTransform; + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform mat3 clearcoatRoughnessMapTransform; + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + uniform mat3 sheenColorMapTransform; + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + uniform mat3 sheenRoughnessMapTransform; + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + uniform mat3 iridescenceMapTransform; + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform mat3 iridescenceThicknessMapTransform; + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SPECULARMAP + uniform mat3 specularMapTransform; + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + uniform mat3 specularColorMapTransform; + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + uniform mat3 specularIntensityMapTransform; + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,uR=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + vUv = vec3( uv, 1 ).xy; +#endif +#ifdef USE_MAP + vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ALPHAMAP + vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_LIGHTMAP + vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_AOMAP + vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_BUMPMAP + vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_NORMALMAP + vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_DISPLACEMENTMAP + vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_EMISSIVEMAP + vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_METALNESSMAP + vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ROUGHNESSMAP + vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ANISOTROPYMAP + vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOATMAP + vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCEMAP + vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_COLORMAP + vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULARMAP + vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_COLORMAP + vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_TRANSMISSIONMAP + vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_THICKNESSMAP + vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; +#endif`,dR=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_BATCHING + worldPosition = batchingMatrix * worldPosition; + #endif + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const hR=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,fR=`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,gR=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,pR=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,AR=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,vR=`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,LR=`#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,wR=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,xR=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,mR=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +#include +void main () { + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,kR=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,MR=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,ER=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,yR=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,IR=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,BR=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,SR=`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,_R=`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,RR=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,bR=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,QR=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + vViewPosition = - mvPosition.xyz; +#endif +}`,TR=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,DR=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,PR=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,NR=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,HR=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define USE_SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef USE_SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULAR_COLORMAP + uniform sampler2D specularColorMap; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEEN_COLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEEN_ROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropyVector; + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,jR=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,UR=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,FR=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +#ifdef USE_POINTS_UV + varying vec2 vUv; + uniform mat3 uvTransform; +#endif +void main() { + #ifdef USE_POINTS_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + #endif + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,WR=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,GR=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,OR=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,zR=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,VR=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,T0={alphahash_fragment:fS,alphahash_pars_fragment:gS,alphamap_fragment:pS,alphamap_pars_fragment:AS,alphatest_fragment:vS,alphatest_pars_fragment:LS,aomap_fragment:wS,aomap_pars_fragment:xS,batching_pars_vertex:mS,batching_vertex:kS,begin_vertex:MS,beginnormal_vertex:ES,bsdfs:yS,iridescence_fragment:IS,bumpmap_pars_fragment:BS,clipping_planes_fragment:SS,clipping_planes_pars_fragment:_S,clipping_planes_pars_vertex:RS,clipping_planes_vertex:bS,color_fragment:QS,color_pars_fragment:TS,color_pars_vertex:DS,color_vertex:PS,common:NS,cube_uv_reflection_fragment:HS,defaultnormal_vertex:jS,displacementmap_pars_vertex:US,displacementmap_vertex:FS,emissivemap_fragment:WS,emissivemap_pars_fragment:GS,colorspace_fragment:OS,colorspace_pars_fragment:zS,envmap_fragment:VS,envmap_common_pars_fragment:$S,envmap_pars_fragment:YS,envmap_pars_vertex:XS,envmap_physical_pars_fragment:s_,envmap_vertex:JS,fog_vertex:qS,fog_pars_vertex:KS,fog_fragment:ZS,fog_pars_fragment:e_,gradientmap_pars_fragment:t_,lightmap_fragment:n_,lightmap_pars_fragment:C_,lights_lambert_fragment:r_,lights_lambert_pars_fragment:i_,lights_pars_begin:o_,lights_toon_fragment:l_,lights_toon_pars_fragment:a_,lights_phong_fragment:c_,lights_phong_pars_fragment:u_,lights_physical_fragment:d_,lights_physical_pars_fragment:h_,lights_fragment_begin:f_,lights_fragment_maps:g_,lights_fragment_end:p_,logdepthbuf_fragment:A_,logdepthbuf_pars_fragment:v_,logdepthbuf_pars_vertex:L_,logdepthbuf_vertex:w_,map_fragment:x_,map_pars_fragment:m_,map_particle_fragment:k_,map_particle_pars_fragment:M_,metalnessmap_fragment:E_,metalnessmap_pars_fragment:y_,morphcolor_vertex:I_,morphnormal_vertex:B_,morphtarget_pars_vertex:S_,morphtarget_vertex:__,normal_fragment_begin:R_,normal_fragment_maps:b_,normal_pars_fragment:Q_,normal_pars_vertex:T_,normal_vertex:D_,normalmap_pars_fragment:P_,clearcoat_normal_fragment_begin:N_,clearcoat_normal_fragment_maps:H_,clearcoat_pars_fragment:j_,iridescence_pars_fragment:U_,opaque_fragment:F_,packing:W_,premultiplied_alpha_fragment:G_,project_vertex:O_,dithering_fragment:z_,dithering_pars_fragment:V_,roughnessmap_fragment:$_,roughnessmap_pars_fragment:Y_,shadowmap_pars_fragment:X_,shadowmap_pars_vertex:J_,shadowmap_vertex:q_,shadowmask_pars_fragment:K_,skinbase_vertex:Z_,skinning_pars_vertex:eR,skinning_vertex:tR,skinnormal_vertex:nR,specularmap_fragment:CR,specularmap_pars_fragment:rR,tonemapping_fragment:iR,tonemapping_pars_fragment:oR,transmission_fragment:sR,transmission_pars_fragment:lR,uv_pars_fragment:aR,uv_pars_vertex:cR,uv_vertex:uR,worldpos_vertex:dR,background_vert:hR,background_frag:fR,backgroundCube_vert:gR,backgroundCube_frag:pR,cube_vert:AR,cube_frag:vR,depth_vert:LR,depth_frag:wR,distanceRGBA_vert:xR,distanceRGBA_frag:mR,equirect_vert:kR,equirect_frag:MR,linedashed_vert:ER,linedashed_frag:yR,meshbasic_vert:IR,meshbasic_frag:BR,meshlambert_vert:SR,meshlambert_frag:_R,meshmatcap_vert:RR,meshmatcap_frag:bR,meshnormal_vert:QR,meshnormal_frag:TR,meshphong_vert:DR,meshphong_frag:PR,meshphysical_vert:NR,meshphysical_frag:HR,meshtoon_vert:jR,meshtoon_frag:UR,points_vert:FR,points_frag:WR,shadow_vert:GR,shadow_frag:OR,sprite_vert:zR,sprite_frag:VR},$1={common:{diffuse:{value:new J1(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new B0},alphaMap:{value:null},alphaMapTransform:{value:new B0},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new B0}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new B0}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new B0}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new B0},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new B0},normalScale:{value:new y1(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new B0},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new B0}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new B0}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new B0}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new J1(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new J1(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new B0},alphaTest:{value:0},uvTransform:{value:new B0}},sprite:{diffuse:{value:new J1(16777215)},opacity:{value:1},center:{value:new y1(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new B0},alphaMap:{value:null},alphaMapTransform:{value:new B0},alphaTest:{value:0}}},K8={basic:{uniforms:T9([$1.common,$1.specularmap,$1.envmap,$1.aomap,$1.lightmap,$1.fog]),vertexShader:T0.meshbasic_vert,fragmentShader:T0.meshbasic_frag},lambert:{uniforms:T9([$1.common,$1.specularmap,$1.envmap,$1.aomap,$1.lightmap,$1.emissivemap,$1.bumpmap,$1.normalmap,$1.displacementmap,$1.fog,$1.lights,{emissive:{value:new J1(0)}}]),vertexShader:T0.meshlambert_vert,fragmentShader:T0.meshlambert_frag},phong:{uniforms:T9([$1.common,$1.specularmap,$1.envmap,$1.aomap,$1.lightmap,$1.emissivemap,$1.bumpmap,$1.normalmap,$1.displacementmap,$1.fog,$1.lights,{emissive:{value:new J1(0)},specular:{value:new J1(1118481)},shininess:{value:30}}]),vertexShader:T0.meshphong_vert,fragmentShader:T0.meshphong_frag},standard:{uniforms:T9([$1.common,$1.envmap,$1.aomap,$1.lightmap,$1.emissivemap,$1.bumpmap,$1.normalmap,$1.displacementmap,$1.roughnessmap,$1.metalnessmap,$1.fog,$1.lights,{emissive:{value:new J1(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:T0.meshphysical_vert,fragmentShader:T0.meshphysical_frag},toon:{uniforms:T9([$1.common,$1.aomap,$1.lightmap,$1.emissivemap,$1.bumpmap,$1.normalmap,$1.displacementmap,$1.gradientmap,$1.fog,$1.lights,{emissive:{value:new J1(0)}}]),vertexShader:T0.meshtoon_vert,fragmentShader:T0.meshtoon_frag},matcap:{uniforms:T9([$1.common,$1.bumpmap,$1.normalmap,$1.displacementmap,$1.fog,{matcap:{value:null}}]),vertexShader:T0.meshmatcap_vert,fragmentShader:T0.meshmatcap_frag},points:{uniforms:T9([$1.points,$1.fog]),vertexShader:T0.points_vert,fragmentShader:T0.points_frag},dashed:{uniforms:T9([$1.common,$1.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:T0.linedashed_vert,fragmentShader:T0.linedashed_frag},depth:{uniforms:T9([$1.common,$1.displacementmap]),vertexShader:T0.depth_vert,fragmentShader:T0.depth_frag},normal:{uniforms:T9([$1.common,$1.bumpmap,$1.normalmap,$1.displacementmap,{opacity:{value:1}}]),vertexShader:T0.meshnormal_vert,fragmentShader:T0.meshnormal_frag},sprite:{uniforms:T9([$1.sprite,$1.fog]),vertexShader:T0.sprite_vert,fragmentShader:T0.sprite_frag},background:{uniforms:{uvTransform:{value:new B0},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:T0.background_vert,fragmentShader:T0.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:T0.backgroundCube_vert,fragmentShader:T0.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:T0.cube_vert,fragmentShader:T0.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:T0.equirect_vert,fragmentShader:T0.equirect_frag},distanceRGBA:{uniforms:T9([$1.common,$1.displacementmap,{referencePosition:{value:new G},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:T0.distanceRGBA_vert,fragmentShader:T0.distanceRGBA_frag},shadow:{uniforms:T9([$1.lights,$1.fog,{color:{value:new J1(0)},opacity:{value:1}}]),vertexShader:T0.shadow_vert,fragmentShader:T0.shadow_frag}};K8.physical={uniforms:T9([K8.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new B0},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new B0},clearcoatNormalScale:{value:new y1(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new B0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new B0},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new B0},sheen:{value:0},sheenColor:{value:new J1(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new B0},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new B0},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new B0},transmissionSamplerSize:{value:new y1},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new B0},attenuationDistance:{value:0},attenuationColor:{value:new J1(0)},specularColor:{value:new J1(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new B0},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new B0},anisotropyVector:{value:new y1},anisotropyMap:{value:null},anisotropyMapTransform:{value:new B0}}]),vertexShader:T0.meshphysical_vert,fragmentShader:T0.meshphysical_frag};const Lr={r:0,b:0,g:0};function $R(t,e,n,C,r,i,o){const s=new J1(0);let a=i===!0?0:1,d,g,p=null,A=0,w=null;function x(m,v){let E=!1,k=v.isScene===!0?v.background:null;k&&k.isTexture&&(k=(v.backgroundBlurriness>0?n:e).get(k)),k===null?y(s,a):k&&k.isColor&&(y(k,1),E=!0);const I=t.xr.getEnvironmentBlendMode();I==="additive"?C.buffers.color.setClear(0,0,0,1,o):I==="alpha-blend"&&C.buffers.color.setClear(0,0,0,0,o),(t.autoClear||E)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),k&&(k.isCubeTexture||k.mapping===pe)?(g===void 0&&(g=new n2(new j3(1,1,1),new r4({name:"BackgroundCubeMaterial",uniforms:ue(K8.backgroundCube.uniforms),vertexShader:K8.backgroundCube.vertexShader,fragmentShader:K8.backgroundCube.fragmentShader,side:U9,depthTest:!1,depthWrite:!1,fog:!1})),g.geometry.deleteAttribute("normal"),g.geometry.deleteAttribute("uv"),g.onBeforeRender=function(Q,R,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(g.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(g)),g.material.uniforms.envMap.value=k,g.material.uniforms.flipEnvMap.value=k.isCubeTexture&&k.isRenderTargetTexture===!1?-1:1,g.material.uniforms.backgroundBlurriness.value=v.backgroundBlurriness,g.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,g.material.toneMapped=r2.getTransfer(k.colorSpace)!==d2,(p!==k||A!==k.version||w!==t.toneMapping)&&(g.material.needsUpdate=!0,p=k,A=k.version,w=t.toneMapping),g.layers.enableAll(),m.unshift(g,g.geometry,g.material,0,0,null)):k&&k.isTexture&&(d===void 0&&(d=new n2(new k5(2,2),new r4({name:"BackgroundMaterial",uniforms:ue(K8.background.uniforms),vertexShader:K8.background.vertexShader,fragmentShader:K8.background.fragmentShader,side:j8,depthTest:!1,depthWrite:!1,fog:!1})),d.geometry.deleteAttribute("normal"),Object.defineProperty(d.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(d)),d.material.uniforms.t2D.value=k,d.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,d.material.toneMapped=r2.getTransfer(k.colorSpace)!==d2,k.matrixAutoUpdate===!0&&k.updateMatrix(),d.material.uniforms.uvTransform.value.copy(k.matrix),(p!==k||A!==k.version||w!==t.toneMapping)&&(d.material.needsUpdate=!0,p=k,A=k.version,w=t.toneMapping),d.layers.enableAll(),m.unshift(d,d.geometry,d.material,0,0,null))}function y(m,v){m.getRGB(Lr,im(t)),C.buffers.color.setClear(Lr.r,Lr.g,Lr.b,v,o)}return{getClearColor:function(){return s},setClearColor:function(m,v=1){s.set(m),a=v,y(s,a)},getClearAlpha:function(){return a},setClearAlpha:function(m){a=m,y(s,a)},render:x}}function YR(t,e,n,C){const r=t.getParameter(t.MAX_VERTEX_ATTRIBS),i=C.isWebGL2?null:e.get("OES_vertex_array_object"),o=C.isWebGL2||i!==null,s={},a=m(null);let d=a,g=!1;function p(X,i1,C1,u1,U){let t1=!1;if(o){const n1=y(u1,C1,i1);d!==n1&&(d=n1,w(d.object)),t1=v(X,u1,C1,U),t1&&E(X,u1,C1,U)}else{const n1=i1.wireframe===!0;(d.geometry!==u1.id||d.program!==C1.id||d.wireframe!==n1)&&(d.geometry=u1.id,d.program=C1.id,d.wireframe=n1,t1=!0)}U!==null&&n.update(U,t.ELEMENT_ARRAY_BUFFER),(t1||g)&&(g=!1,j(X,i1,C1,u1),U!==null&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,n.get(U).buffer))}function A(){return C.isWebGL2?t.createVertexArray():i.createVertexArrayOES()}function w(X){return C.isWebGL2?t.bindVertexArray(X):i.bindVertexArrayOES(X)}function x(X){return C.isWebGL2?t.deleteVertexArray(X):i.deleteVertexArrayOES(X)}function y(X,i1,C1){const u1=C1.wireframe===!0;let U=s[X.id];U===void 0&&(U={},s[X.id]=U);let t1=U[i1.id];t1===void 0&&(t1={},U[i1.id]=t1);let n1=t1[u1];return n1===void 0&&(n1=m(A()),t1[u1]=n1),n1}function m(X){const i1=[],C1=[],u1=[];for(let U=0;U=0){const $=U[x1];let O=t1[x1];if(O===void 0&&(x1==="instanceMatrix"&&X.instanceMatrix&&(O=X.instanceMatrix),x1==="instanceColor"&&X.instanceColor&&(O=X.instanceColor)),$===void 0||$.attribute!==O||O&&$.data!==O.data)return!0;n1++}return d.attributesNum!==n1||d.index!==u1}function E(X,i1,C1,u1){const U={},t1=i1.attributes;let n1=0;const d1=C1.getAttributes();for(const x1 in d1)if(d1[x1].location>=0){let $=t1[x1];$===void 0&&(x1==="instanceMatrix"&&X.instanceMatrix&&($=X.instanceMatrix),x1==="instanceColor"&&X.instanceColor&&($=X.instanceColor));const O={};O.attribute=$,$&&$.data&&(O.data=$.data),U[x1]=O,n1++}d.attributes=U,d.attributesNum=n1,d.index=u1}function k(){const X=d.newAttributes;for(let i1=0,C1=X.length;i1=0){let U1=U[d1];if(U1===void 0&&(d1==="instanceMatrix"&&X.instanceMatrix&&(U1=X.instanceMatrix),d1==="instanceColor"&&X.instanceColor&&(U1=X.instanceColor)),U1!==void 0){const $=U1.normalized,O=U1.itemSize,W=n.get(U1);if(W===void 0)continue;const F=W.buffer,v1=W.type,k1=W.bytesPerElement,s1=C.isWebGL2===!0&&(v1===t.INT||v1===t.UNSIGNED_INT||U1.gpuType===Td);if(U1.isInterleavedBufferAttribute){const E1=U1.data,z=E1.stride,L1=U1.offset;if(E1.isInstancedInterleavedBuffer){for(let r1=0;r10&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&t.constructor.name==="WebGL2RenderingContext";let s=n.precision!==void 0?n.precision:"highp";const a=i(s);a!==s&&(console.warn("THREE.WebGLRenderer:",s,"not supported, using",a,"instead."),s=a);const d=o||e.has("WEBGL_draw_buffers"),g=n.logarithmicDepthBuffer===!0,p=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),A=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),w=t.getParameter(t.MAX_TEXTURE_SIZE),x=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),y=t.getParameter(t.MAX_VERTEX_ATTRIBS),m=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),v=t.getParameter(t.MAX_VARYING_VECTORS),E=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),k=A>0,I=o||e.has("OES_texture_float"),Q=k&&I,R=o?t.getParameter(t.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:d,getMaxAnisotropy:r,getMaxPrecision:i,precision:s,logarithmicDepthBuffer:g,maxTextures:p,maxVertexTextures:A,maxTextureSize:w,maxCubemapSize:x,maxAttributes:y,maxVertexUniforms:m,maxVaryings:v,maxFragmentUniforms:E,vertexTextures:k,floatFragmentTextures:I,floatVertexTextures:Q,maxSamples:R}}function qR(t){const e=this;let n=null,C=0,r=!1,i=!1;const o=new s2,s=new B0,a={value:null,needsUpdate:!1};this.uniform=a,this.numPlanes=0,this.numIntersection=0,this.init=function(p,A){const w=p.length!==0||A||C!==0||r;return r=A,C=p.length,w},this.beginShadows=function(){i=!0,g(null)},this.endShadows=function(){i=!1},this.setGlobalState=function(p,A){n=g(p,A,0)},this.setState=function(p,A,w){const x=p.clippingPlanes,y=p.clipIntersection,m=p.clipShadows,v=t.get(p);if(!r||x===null||x.length===0||i&&!m)i?g(null):d();else{const E=i?0:C,k=E*4;let I=v.clippingState||null;a.value=I,I=g(x,A,k,w);for(let Q=0;Q!==k;++Q)I[Q]=n[Q];v.clippingState=I,this.numIntersection=y?this.numPlanes:0,this.numPlanes+=E}};function d(){a.value!==n&&(a.value=n,a.needsUpdate=C>0),e.numPlanes=C,e.numIntersection=0}function g(p,A,w,x){const y=p!==null?p.length:0;let m=null;if(y!==0){if(m=a.value,x!==!0||m===null){const v=w+y*4,E=A.matrixWorldInverse;s.getNormalMatrix(E),(m===null||m.length0){const d=new lm(a.height);return d.fromEquirectangularTexture(t,o),e.set(o,d),o.addEventListener("dispose",r),n(d.texture,o.mapping)}else return null}}return o}function r(o){const s=o.target;s.removeEventListener("dispose",r);const a=e.get(s);a!==void 0&&(e.delete(s),a.dispose())}function i(){e=new WeakMap}return{get:C,dispose:i}}class Tn extends Rn{constructor(e=-1,n=1,C=1,r=-1,i=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=n,this.top=C,this.bottom=r,this.near=i,this.far=o,this.updateProjectionMatrix()}copy(e,n){return super.copy(e,n),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,n,C,r,i,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=n,this.view.offsetX=C,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),n=(this.top-this.bottom)/(2*this.zoom),C=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let i=C-e,o=C+e,s=r+n,a=r-n;if(this.view!==null&&this.view.enabled){const d=(this.right-this.left)/this.view.fullWidth/this.zoom,g=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=d*this.view.offsetX,o=i+d*this.view.width,s-=g*this.view.offsetY,a=s-g*this.view.height}this.projectionMatrix.makeOrthographic(i,o,s,a,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const n=super.toJSON(e);return n.object.zoom=this.zoom,n.object.left=this.left,n.object.right=this.right,n.object.top=this.top,n.object.bottom=this.bottom,n.object.near=this.near,n.object.far=this.far,this.view!==null&&(n.object.view=Object.assign({},this.view)),n}}const z7=4,Up=[.125,.215,.35,.446,.526,.582],d3=20,Zl=new Tn,Fp=new J1;let ea=null,ta=0,na=0;const l3=(1+Math.sqrt(5))/2,v7=1/l3,Wp=[new G(1,1,1),new G(-1,1,1),new G(1,1,-1),new G(-1,1,-1),new G(0,l3,v7),new G(0,l3,-v7),new G(v7,0,l3),new G(-v7,0,l3),new G(l3,v7,0),new G(-l3,v7,0)];class fu{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,n=0,C=.1,r=100){ea=this._renderer.getRenderTarget(),ta=this._renderer.getActiveCubeFace(),na=this._renderer.getActiveMipmapLevel(),this._setSize(256);const i=this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(e,C,r,i),n>0&&this._blur(i,0,0,n),this._applyPMREM(i),this._cleanup(i),i}fromEquirectangular(e,n=null){return this._fromTexture(e,n)}fromCubemap(e,n=null){return this._fromTexture(e,n)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=zp(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Op(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?k:0,k,k),g.setRenderTarget(r),y&&g.render(x,s),g.render(e,s)}x.geometry.dispose(),x.material.dispose(),g.toneMapping=A,g.autoClear=p,e.background=m}_textureToCubeUV(e,n){const C=this._renderer,r=e.mapping===a6||e.mapping===A5;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=zp()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Op());const i=r?this._cubemapMaterial:this._equirectMaterial,o=new n2(this._lodPlanes[0],i),s=i.uniforms;s.envMap.value=e;const a=this._cubeSize;wr(n,0,0,3*a,2*a),C.setRenderTarget(n),C.render(o,Zl)}_applyPMREM(e){const n=this._renderer,C=n.autoClear;n.autoClear=!1;for(let r=1;rd3&&console.warn(`sigmaRadians, ${i}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${d3}`);const v=[];let E=0;for(let T=0;Tk-z7?r-k+z7:0),R=4*(this._cubeSize-I);wr(n,Q,R,3*I,2*I),a.setRenderTarget(n),a.render(p,Zl)}}function ZR(t){const e=[],n=[],C=[];let r=t;const i=t-z7+1+Up.length;for(let o=0;ot-z7?a=Up[o-t+z7-1]:o===0&&(a=0),C.push(a);const d=1/(s-2),g=-d,p=1+d,A=[g,g,p,g,p,p,g,g,p,p,g,p],w=6,x=6,y=3,m=2,v=1,E=new Float32Array(y*x*w),k=new Float32Array(m*x*w),I=new Float32Array(v*x*w);for(let R=0;R2?0:-1,q=[T,j,0,T+2/3,j,0,T+2/3,j+1,0,T,j,0,T+2/3,j+1,0,T,j+1,0];E.set(q,y*x*R),k.set(A,m*x*R);const _=[R,R,R,R,R,R];I.set(_,v*x*R)}const Q=new b0;Q.setAttribute("position",new C2(E,y)),Q.setAttribute("uv",new C2(k,m)),Q.setAttribute("faceIndex",new C2(I,v)),e.push(Q),r>z7&&r--}return{lodPlanes:e,sizeLods:n,sigmas:C}}function Gp(t,e,n){const C=new U8(t,e,n);return C.texture.mapping=pe,C.texture.name="PMREM.cubeUv",C.scissorTest=!0,C}function wr(t,e,n,C,r){t.viewport.set(e,n,C,r),t.scissor.set(e,n,C,r)}function eb(t,e,n){const C=new Float32Array(d3),r=new G(0,1,0);return new r4({name:"SphericalGaussianBlur",defines:{n:d3,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:C},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:Jd(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:r6,depthTest:!1,depthWrite:!1})}function Op(){return new r4({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Jd(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:r6,depthTest:!1,depthWrite:!1})}function zp(){return new r4({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Jd(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:r6,depthTest:!1,depthWrite:!1})}function Jd(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function tb(t){let e=new WeakMap,n=null;function C(s){if(s&&s.isTexture){const a=s.mapping,d=a===en||a===tn,g=a===a6||a===A5;if(d||g)if(s.isRenderTargetTexture&&s.needsPMREMUpdate===!0){s.needsPMREMUpdate=!1;let p=e.get(s);return n===null&&(n=new fu(t)),p=d?n.fromEquirectangular(s,p):n.fromCubemap(s,p),e.set(s,p),p.texture}else{if(e.has(s))return e.get(s).texture;{const p=s.image;if(d&&p&&p.height>0||g&&p&&r(p)){n===null&&(n=new fu(t));const A=d?n.fromEquirectangular(s):n.fromCubemap(s);return e.set(s,A),s.addEventListener("dispose",i),A.texture}else return null}}}return s}function r(s){let a=0;const d=6;for(let g=0;ge.maxTextureSize&&(P=Math.ceil(_/e.maxTextureSize),_=e.maxTextureSize);const K=new Float32Array(_*P*4*y),g1=new Do(K,_,P,y);g1.type=Q8,g1.needsUpdate=!0;const X=q*4;for(let C1=0;C10)return t;const r=e*n;let i=Vp[r];if(i===void 0&&(i=new Float32Array(r),Vp[r]=i),e!==0){C.toArray(i,0);for(let o=1,s=0;o!==e;++o)s+=n,t[o].toArray(i,s)}return i}function K2(t,e){if(t.length!==e.length)return!1;for(let n=0,C=t.length;n":" "} ${s}: ${n[o]}`)}return C.join(` +`)}function CQ(t){const e=r2.getPrimaries(r2.workingColorSpace),n=r2.getPrimaries(t);let C;switch(e===n?C="":e===cn&&n===an?C="LinearDisplayP3ToLinearSRGB":e===an&&n===cn&&(C="LinearSRGBToLinearDisplayP3"),t){case B4:case _n:return[C,"LinearTransferOETF"];case N2:case To:return[C,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),[C,"LinearTransferOETF"]}}function Zp(t,e,n){const C=t.getShaderParameter(e,t.COMPILE_STATUS),r=t.getShaderInfoLog(e).trim();if(C&&r==="")return"";const i=/ERROR: 0:(\d+)/.exec(r);if(i){const o=parseInt(i[1]);return n.toUpperCase()+` + +`+r+` + +`+nQ(t.getShaderSource(e),o)}else return r}function rQ(t,e){const n=CQ(e);return`vec4 ${t}( vec4 value ) { return ${n[0]}( ${n[1]}( value ) ); }`}function iQ(t,e){let n;switch(e){case Sx:n="Linear";break;case _x:n="Reinhard";break;case Rx:n="OptimizedCineon";break;case Qd:n="ACESFilmic";break;case Qx:n="AgX";break;case bx:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function oQ(t){return[t.extensionDerivatives||t.envMapCubeUVHeight||t.bumpMap||t.normalMapTangentSpace||t.clearcoatNormalMap||t.flatShading||t.alphaToCoverage||t.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap||t.transmission)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(V7).join(` +`)}function sQ(t){return[t.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",t.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(V7).join(` +`)}function lQ(t){const e=[];for(const n in t){const C=t[n];C!==!1&&e.push("#define "+n+" "+C)}return e.join(` +`)}function aQ(t,e){const n={},C=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function gu(t){return t.replace(cQ,dQ)}const uQ=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function dQ(t,e){let n=T0[e];if(n===void 0){const C=uQ.get(e);if(C!==void 0)n=T0[C],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,C);else throw new Error("Can not resolve #include <"+e+">")}return gu(n)}const hQ=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function nA(t){return t.replace(hQ,fQ)}function fQ(t,e,n,C){let r="";for(let i=parseInt(e);i0&&(v+=` +`),E=[w,"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y].filter(V7).join(` +`),E.length>0&&(E+=` +`)):(v=[CA(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+g:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&n.flatShading===!1?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+a:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(V7).join(` +`),E=[w,CA(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+g:"",n.envMap?"#define "+p:"",A?"#define CUBEUV_TEXEL_WIDTH "+A.texelWidth:"",A?"#define CUBEUV_TEXEL_HEIGHT "+A.texelHeight:"",A?"#define CUBEUV_MAX_MIP "+A.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+a:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==y4?"#define TONE_MAPPING":"",n.toneMapping!==y4?T0.tonemapping_pars_fragment:"",n.toneMapping!==y4?iQ("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",T0.colorspace_pars_fragment,rQ("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"",` +`].filter(V7).join(` +`)),o=gu(o),o=eA(o,n),o=tA(o,n),s=gu(s),s=eA(s,n),s=tA(s,n),o=nA(o),s=nA(s),n.isWebGL2&&n.isRawShaderMaterial!==!0&&(k=`#version 300 es +`,v=[x,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+v,E=["precision mediump sampler2DArray;","#define varying in",n.glslVersion===du?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===du?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+E);const I=k+v+o,Q=k+E+s,R=Kp(r,r.VERTEX_SHADER,I),T=Kp(r,r.FRAGMENT_SHADER,Q);r.attachShader(m,R),r.attachShader(m,T),n.index0AttributeName!==void 0?r.bindAttribLocation(m,0,n.index0AttributeName):n.morphTargets===!0&&r.bindAttribLocation(m,0,"position"),r.linkProgram(m);function j(K){if(t.debug.checkShaderErrors){const g1=r.getProgramInfoLog(m).trim(),X=r.getShaderInfoLog(R).trim(),i1=r.getShaderInfoLog(T).trim();let C1=!0,u1=!0;if(r.getProgramParameter(m,r.LINK_STATUS)===!1)if(C1=!1,typeof t.debug.onShaderError=="function")t.debug.onShaderError(r,m,R,T);else{const U=Zp(r,R,"vertex"),t1=Zp(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(m,r.VALIDATE_STATUS)+` + +Material Name: `+K.name+` +Material Type: `+K.type+` + +Program Info Log: `+g1+` +`+U+` +`+t1)}else g1!==""?console.warn("THREE.WebGLProgram: Program Info Log:",g1):(X===""||i1==="")&&(u1=!1);u1&&(K.diagnostics={runnable:C1,programLog:g1,vertexShader:{log:X,prefix:v},fragmentShader:{log:i1,prefix:E}})}r.deleteShader(R),r.deleteShader(T),q=new mi(r,m),_=aQ(r,m)}let q;this.getUniforms=function(){return q===void 0&&j(this),q};let _;this.getAttributes=function(){return _===void 0&&j(this),_};let P=n.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return P===!1&&(P=r.getProgramParameter(m,eQ)),P},this.destroy=function(){C.releaseStatesOfProgram(this),r.deleteProgram(m),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=tQ++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=R,this.fragmentShader=T,this}let xQ=0;class mQ{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const n=e.vertexShader,C=e.fragmentShader,r=this._getShaderStage(n),i=this._getShaderStage(C),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(i)===!1&&(o.add(i),i.usedTimes++),this}remove(e){const n=this.materialCache.get(e);for(const C of n)C.usedTimes--,C.usedTimes===0&&this.shaderCache.delete(C.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const n=this.materialCache;let C=n.get(e);return C===void 0&&(C=new Set,n.set(e,C)),C}_getShaderStage(e){const n=this.shaderCache;let C=n.get(e);return C===void 0&&(C=new kQ(e),n.set(e,C)),C}}class kQ{constructor(e){this.id=xQ++,this.code=e,this.usedTimes=0}}function MQ(t,e,n,C,r,i,o){const s=new y3,a=new mQ,d=new Set,g=[],p=r.isWebGL2,A=r.logarithmicDepthBuffer,w=r.vertexTextures;let x=r.precision;const y={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function m(_){return d.add(_),_===0?"uv":`uv${_}`}function v(_,P,K,g1,X){const i1=g1.fog,C1=X.geometry,u1=_.isMeshStandardMaterial?g1.environment:null,U=(_.isMeshStandardMaterial?n:e).get(_.envMap||u1),t1=U&&U.mapping===pe?U.image.height:null,n1=y[_.type];_.precision!==null&&(x=r.getMaxPrecision(_.precision),x!==_.precision&&console.warn("THREE.WebGLProgram.getParameters:",_.precision,"not supported, using",x,"instead."));const d1=C1.morphAttributes.position||C1.morphAttributes.normal||C1.morphAttributes.color,x1=d1!==void 0?d1.length:0;let U1=0;C1.morphAttributes.position!==void 0&&(U1=1),C1.morphAttributes.normal!==void 0&&(U1=2),C1.morphAttributes.color!==void 0&&(U1=3);let $,O,W,F;if(n1){const z0=K8[n1];$=z0.vertexShader,O=z0.fragmentShader}else $=_.vertexShader,O=_.fragmentShader,a.update(_),W=a.getVertexShaderID(_),F=a.getFragmentShaderID(_);const v1=t.getRenderTarget(),k1=X.isInstancedMesh===!0,s1=X.isBatchedMesh===!0,E1=!!_.map,z=!!_.matcap,L1=!!U,r1=!!_.aoMap,a1=!!_.lightMap,f1=!!_.bumpMap,b1=!!_.normalMap,e1=!!_.displacementMap,S=!!_.emissiveMap,D=!!_.metalnessMap,o1=!!_.roughnessMap,T1=_.anisotropy>0,Q1=_.clearcoat>0,_1=_.iridescence>0,Y1=_.sheen>0,O1=_.transmission>0,q1=T1&&!!_.anisotropyMap,l0=Q1&&!!_.clearcoatMap,w0=Q1&&!!_.clearcoatNormalMap,P1=Q1&&!!_.clearcoatRoughnessMap,Q0=_1&&!!_.iridescenceMap,E0=_1&&!!_.iridescenceThicknessMap,g0=Y1&&!!_.sheenColorMap,s0=Y1&&!!_.sheenRoughnessMap,n0=!!_.specularMap,m0=!!_.specularColorMap,N0=!!_.specularIntensityMap,X0=O1&&!!_.transmissionMap,y0=O1&&!!_.thicknessMap,G0=!!_.gradientMap,J=!!_.alphaMap,F1=_.alphaTest>0,H1=!!_.alphaHash,r0=!!_.extensions;let d0=y4;_.toneMapped&&(v1===null||v1.isXRRenderTarget===!0)&&(d0=t.toneMapping);const O0={isWebGL2:p,shaderID:n1,shaderType:_.type,shaderName:_.name,vertexShader:$,fragmentShader:O,defines:_.defines,customVertexShaderID:W,customFragmentShaderID:F,isRawShaderMaterial:_.isRawShaderMaterial===!0,glslVersion:_.glslVersion,precision:x,batching:s1,instancing:k1,instancingColor:k1&&X.instanceColor!==null,supportsVertexTextures:w,outputColorSpace:v1===null?t.outputColorSpace:v1.isXRRenderTarget===!0?v1.texture.colorSpace:B4,alphaToCoverage:!!_.alphaToCoverage,map:E1,matcap:z,envMap:L1,envMapMode:L1&&U.mapping,envMapCubeUVHeight:t1,aoMap:r1,lightMap:a1,bumpMap:f1,normalMap:b1,displacementMap:w&&e1,emissiveMap:S,normalMapObjectSpace:b1&&_.normalMapType===$x,normalMapTangentSpace:b1&&_.normalMapType===m5,metalnessMap:D,roughnessMap:o1,anisotropy:T1,anisotropyMap:q1,clearcoat:Q1,clearcoatMap:l0,clearcoatNormalMap:w0,clearcoatRoughnessMap:P1,iridescence:_1,iridescenceMap:Q0,iridescenceThicknessMap:E0,sheen:Y1,sheenColorMap:g0,sheenRoughnessMap:s0,specularMap:n0,specularColorMap:m0,specularIntensityMap:N0,transmission:O1,transmissionMap:X0,thicknessMap:y0,gradientMap:G0,opaque:_.transparent===!1&&_.blending===k3&&_.alphaToCoverage===!1,alphaMap:J,alphaTest:F1,alphaHash:H1,combine:_.combine,mapUv:E1&&m(_.map.channel),aoMapUv:r1&&m(_.aoMap.channel),lightMapUv:a1&&m(_.lightMap.channel),bumpMapUv:f1&&m(_.bumpMap.channel),normalMapUv:b1&&m(_.normalMap.channel),displacementMapUv:e1&&m(_.displacementMap.channel),emissiveMapUv:S&&m(_.emissiveMap.channel),metalnessMapUv:D&&m(_.metalnessMap.channel),roughnessMapUv:o1&&m(_.roughnessMap.channel),anisotropyMapUv:q1&&m(_.anisotropyMap.channel),clearcoatMapUv:l0&&m(_.clearcoatMap.channel),clearcoatNormalMapUv:w0&&m(_.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:P1&&m(_.clearcoatRoughnessMap.channel),iridescenceMapUv:Q0&&m(_.iridescenceMap.channel),iridescenceThicknessMapUv:E0&&m(_.iridescenceThicknessMap.channel),sheenColorMapUv:g0&&m(_.sheenColorMap.channel),sheenRoughnessMapUv:s0&&m(_.sheenRoughnessMap.channel),specularMapUv:n0&&m(_.specularMap.channel),specularColorMapUv:m0&&m(_.specularColorMap.channel),specularIntensityMapUv:N0&&m(_.specularIntensityMap.channel),transmissionMapUv:X0&&m(_.transmissionMap.channel),thicknessMapUv:y0&&m(_.thicknessMap.channel),alphaMapUv:J&&m(_.alphaMap.channel),vertexTangents:!!C1.attributes.tangent&&(b1||T1),vertexColors:_.vertexColors,vertexAlphas:_.vertexColors===!0&&!!C1.attributes.color&&C1.attributes.color.itemSize===4,pointsUvs:X.isPoints===!0&&!!C1.attributes.uv&&(E1||J),fog:!!i1,useFog:_.fog===!0,fogExp2:!!i1&&i1.isFogExp2,flatShading:_.flatShading===!0,sizeAttenuation:_.sizeAttenuation===!0,logarithmicDepthBuffer:A,skinning:X.isSkinnedMesh===!0,morphTargets:C1.morphAttributes.position!==void 0,morphNormals:C1.morphAttributes.normal!==void 0,morphColors:C1.morphAttributes.color!==void 0,morphTargetsCount:x1,morphTextureStride:U1,numDirLights:P.directional.length,numPointLights:P.point.length,numSpotLights:P.spot.length,numSpotLightMaps:P.spotLightMap.length,numRectAreaLights:P.rectArea.length,numHemiLights:P.hemi.length,numDirLightShadows:P.directionalShadowMap.length,numPointLightShadows:P.pointShadowMap.length,numSpotLightShadows:P.spotShadowMap.length,numSpotLightShadowsWithMaps:P.numSpotLightShadowsWithMaps,numLightProbes:P.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:_.dithering,shadowMapEnabled:t.shadowMap.enabled&&K.length>0,shadowMapType:t.shadowMap.type,toneMapping:d0,useLegacyLights:t._useLegacyLights,decodeVideoTexture:E1&&_.map.isVideoTexture===!0&&r2.getTransfer(_.map.colorSpace)===d2,premultipliedAlpha:_.premultipliedAlpha,doubleSided:_.side===x4,flipSided:_.side===U9,useDepthPacking:_.depthPacking>=0,depthPacking:_.depthPacking||0,index0AttributeName:_.index0AttributeName,extensionDerivatives:r0&&_.extensions.derivatives===!0,extensionFragDepth:r0&&_.extensions.fragDepth===!0,extensionDrawBuffers:r0&&_.extensions.drawBuffers===!0,extensionShaderTextureLOD:r0&&_.extensions.shaderTextureLOD===!0,extensionClipCullDistance:r0&&_.extensions.clipCullDistance===!0&&C.has("WEBGL_clip_cull_distance"),extensionMultiDraw:r0&&_.extensions.multiDraw===!0&&C.has("WEBGL_multi_draw"),rendererExtensionFragDepth:p||C.has("EXT_frag_depth"),rendererExtensionDrawBuffers:p||C.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:p||C.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:C.has("KHR_parallel_shader_compile"),customProgramCacheKey:_.customProgramCacheKey()};return O0.vertexUv1s=d.has(1),O0.vertexUv2s=d.has(2),O0.vertexUv3s=d.has(3),d.clear(),O0}function E(_){const P=[];if(_.shaderID?P.push(_.shaderID):(P.push(_.customVertexShaderID),P.push(_.customFragmentShaderID)),_.defines!==void 0)for(const K in _.defines)P.push(K),P.push(_.defines[K]);return _.isRawShaderMaterial===!1&&(k(P,_),I(P,_),P.push(t.outputColorSpace)),P.push(_.customProgramCacheKey),P.join()}function k(_,P){_.push(P.precision),_.push(P.outputColorSpace),_.push(P.envMapMode),_.push(P.envMapCubeUVHeight),_.push(P.mapUv),_.push(P.alphaMapUv),_.push(P.lightMapUv),_.push(P.aoMapUv),_.push(P.bumpMapUv),_.push(P.normalMapUv),_.push(P.displacementMapUv),_.push(P.emissiveMapUv),_.push(P.metalnessMapUv),_.push(P.roughnessMapUv),_.push(P.anisotropyMapUv),_.push(P.clearcoatMapUv),_.push(P.clearcoatNormalMapUv),_.push(P.clearcoatRoughnessMapUv),_.push(P.iridescenceMapUv),_.push(P.iridescenceThicknessMapUv),_.push(P.sheenColorMapUv),_.push(P.sheenRoughnessMapUv),_.push(P.specularMapUv),_.push(P.specularColorMapUv),_.push(P.specularIntensityMapUv),_.push(P.transmissionMapUv),_.push(P.thicknessMapUv),_.push(P.combine),_.push(P.fogExp2),_.push(P.sizeAttenuation),_.push(P.morphTargetsCount),_.push(P.morphAttributeCount),_.push(P.numDirLights),_.push(P.numPointLights),_.push(P.numSpotLights),_.push(P.numSpotLightMaps),_.push(P.numHemiLights),_.push(P.numRectAreaLights),_.push(P.numDirLightShadows),_.push(P.numPointLightShadows),_.push(P.numSpotLightShadows),_.push(P.numSpotLightShadowsWithMaps),_.push(P.numLightProbes),_.push(P.shadowMapType),_.push(P.toneMapping),_.push(P.numClippingPlanes),_.push(P.numClipIntersection),_.push(P.depthPacking)}function I(_,P){s.disableAll(),P.isWebGL2&&s.enable(0),P.supportsVertexTextures&&s.enable(1),P.instancing&&s.enable(2),P.instancingColor&&s.enable(3),P.matcap&&s.enable(4),P.envMap&&s.enable(5),P.normalMapObjectSpace&&s.enable(6),P.normalMapTangentSpace&&s.enable(7),P.clearcoat&&s.enable(8),P.iridescence&&s.enable(9),P.alphaTest&&s.enable(10),P.vertexColors&&s.enable(11),P.vertexAlphas&&s.enable(12),P.vertexUv1s&&s.enable(13),P.vertexUv2s&&s.enable(14),P.vertexUv3s&&s.enable(15),P.vertexTangents&&s.enable(16),P.anisotropy&&s.enable(17),P.alphaHash&&s.enable(18),P.batching&&s.enable(19),_.push(s.mask),s.disableAll(),P.fog&&s.enable(0),P.useFog&&s.enable(1),P.flatShading&&s.enable(2),P.logarithmicDepthBuffer&&s.enable(3),P.skinning&&s.enable(4),P.morphTargets&&s.enable(5),P.morphNormals&&s.enable(6),P.morphColors&&s.enable(7),P.premultipliedAlpha&&s.enable(8),P.shadowMapEnabled&&s.enable(9),P.useLegacyLights&&s.enable(10),P.doubleSided&&s.enable(11),P.flipSided&&s.enable(12),P.useDepthPacking&&s.enable(13),P.dithering&&s.enable(14),P.transmission&&s.enable(15),P.sheen&&s.enable(16),P.opaque&&s.enable(17),P.pointsUvs&&s.enable(18),P.decodeVideoTexture&&s.enable(19),P.alphaToCoverage&&s.enable(20),_.push(s.mask)}function Q(_){const P=y[_.type];let K;if(P){const g1=K8[P];K=om.clone(g1.uniforms)}else K=_.uniforms;return K}function R(_,P){let K;for(let g1=0,X=g.length;g10?C.push(v):w.transparent===!0?r.push(v):n.push(v)}function a(p,A,w,x,y,m){const v=o(p,A,w,x,y,m);w.transmission>0?C.unshift(v):w.transparent===!0?r.unshift(v):n.unshift(v)}function d(p,A){n.length>1&&n.sort(p||yQ),C.length>1&&C.sort(A||rA),r.length>1&&r.sort(A||rA)}function g(){for(let p=e,A=t.length;p=i.length?(o=new iA,i.push(o)):o=i[r],o}function n(){t=new WeakMap}return{get:e,dispose:n}}function BQ(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new G,color:new J1};break;case"SpotLight":n={position:new G,direction:new G,color:new J1,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new G,color:new J1,distance:0,decay:0};break;case"HemisphereLight":n={direction:new G,skyColor:new J1,groundColor:new J1};break;case"RectAreaLight":n={color:new J1,position:new G,halfWidth:new G,halfHeight:new G};break}return t[e.id]=n,n}}}function SQ(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new y1};break;case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new y1};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new y1,shadowCameraNear:1,shadowCameraFar:1e3};break}return t[e.id]=n,n}}}let _Q=0;function RQ(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function bQ(t,e){const n=new BQ,C=SQ(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let g=0;g<9;g++)r.probe.push(new G);const i=new G,o=new f0,s=new f0;function a(g,p){let A=0,w=0,x=0;for(let K=0;K<9;K++)r.probe[K].set(0,0,0);let y=0,m=0,v=0,E=0,k=0,I=0,Q=0,R=0,T=0,j=0,q=0;g.sort(RQ);const _=p===!0?Math.PI:1;for(let K=0,g1=g.length;K0&&(e.isWebGL2?t.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=$1.LTC_FLOAT_1,r.rectAreaLTC2=$1.LTC_FLOAT_2):(r.rectAreaLTC1=$1.LTC_HALF_1,r.rectAreaLTC2=$1.LTC_HALF_2):t.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=$1.LTC_FLOAT_1,r.rectAreaLTC2=$1.LTC_FLOAT_2):t.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=$1.LTC_HALF_1,r.rectAreaLTC2=$1.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=A,r.ambient[1]=w,r.ambient[2]=x;const P=r.hash;(P.directionalLength!==y||P.pointLength!==m||P.spotLength!==v||P.rectAreaLength!==E||P.hemiLength!==k||P.numDirectionalShadows!==I||P.numPointShadows!==Q||P.numSpotShadows!==R||P.numSpotMaps!==T||P.numLightProbes!==q)&&(r.directional.length=y,r.spot.length=v,r.rectArea.length=E,r.point.length=m,r.hemi.length=k,r.directionalShadow.length=I,r.directionalShadowMap.length=I,r.pointShadow.length=Q,r.pointShadowMap.length=Q,r.spotShadow.length=R,r.spotShadowMap.length=R,r.directionalShadowMatrix.length=I,r.pointShadowMatrix.length=Q,r.spotLightMatrix.length=R+T-j,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=j,r.numLightProbes=q,P.directionalLength=y,P.pointLength=m,P.spotLength=v,P.rectAreaLength=E,P.hemiLength=k,P.numDirectionalShadows=I,P.numPointShadows=Q,P.numSpotShadows=R,P.numSpotMaps=T,P.numLightProbes=q,r.version=_Q++)}function d(g,p){let A=0,w=0,x=0,y=0,m=0;const v=p.matrixWorldInverse;for(let E=0,k=g.length;E=s.length?(a=new oA(t,e),s.push(a)):a=s[o],a}function r(){n=new WeakMap}return{get:C,dispose:r}}class No extends l9{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Vx,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class Ho extends l9{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const TQ=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,DQ=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function PQ(t,e,n){let C=new Qn;const r=new y1,i=new y1,o=new i2,s=new No({depthPacking:Gd}),a=new Ho,d={},g=n.maxTextureSize,p={[j8]:U9,[U9]:j8,[x4]:x4},A=new r4({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new y1},radius:{value:4}},vertexShader:TQ,fragmentShader:DQ}),w=A.clone();w.defines.HORIZONTAL_PASS=1;const x=new b0;x.setAttribute("position",new C2(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const y=new n2(x,A),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=_o;let v=this.type;this.render=function(R,T,j){if(m.enabled===!1||m.autoUpdate===!1&&m.needsUpdate===!1||R.length===0)return;const q=t.getRenderTarget(),_=t.getActiveCubeFace(),P=t.getActiveMipmapLevel(),K=t.state;K.setBlending(r6),K.buffers.color.setClear(1,1,1,1),K.buffers.depth.setTest(!0),K.setScissorTest(!1);const g1=v!==X8&&this.type===X8,X=v===X8&&this.type!==X8;for(let i1=0,C1=R.length;i1g||r.y>g)&&(r.x>g&&(i.x=Math.floor(g/t1.x),r.x=i.x*t1.x,U.mapSize.x=i.x),r.y>g&&(i.y=Math.floor(g/t1.y),r.y=i.y*t1.y,U.mapSize.y=i.y)),U.map===null||g1===!0||X===!0){const d1=this.type!==X8?{minFilter:P2,magFilter:P2}:{};U.map!==null&&U.map.dispose(),U.map=new U8(r.x,r.y,d1),U.map.texture.name=u1.name+".shadowMap",U.camera.updateProjectionMatrix()}t.setRenderTarget(U.map),t.clear();const n1=U.getViewportCount();for(let d1=0;d10||T.map&&T.alphaTest>0){const K=_.uuid,g1=T.uuid;let X=d[K];X===void 0&&(X={},d[K]=X);let i1=X[g1];i1===void 0&&(i1=_.clone(),X[g1]=i1,T.addEventListener("dispose",Q)),_=i1}if(_.visible=T.visible,_.wireframe=T.wireframe,q===X8?_.side=T.shadowSide!==null?T.shadowSide:T.side:_.side=T.shadowSide!==null?T.shadowSide:p[T.side],_.alphaMap=T.alphaMap,_.alphaTest=T.alphaTest,_.map=T.map,_.clipShadows=T.clipShadows,_.clippingPlanes=T.clippingPlanes,_.clipIntersection=T.clipIntersection,_.displacementMap=T.displacementMap,_.displacementScale=T.displacementScale,_.displacementBias=T.displacementBias,_.wireframeLinewidth=T.wireframeLinewidth,_.linewidth=T.linewidth,j.isPointLight===!0&&_.isMeshDistanceMaterial===!0){const K=t.properties.get(_);K.light=j}return _}function I(R,T,j,q,_){if(R.visible===!1)return;if(R.layers.test(T.layers)&&(R.isMesh||R.isLine||R.isPoints)&&(R.castShadow||R.receiveShadow&&_===X8)&&(!R.frustumCulled||C.intersectsObject(R))){R.modelViewMatrix.multiplyMatrices(j.matrixWorldInverse,R.matrixWorld);const g1=e.update(R),X=R.material;if(Array.isArray(X)){const i1=g1.groups;for(let C1=0,u1=i1.length;C1=1):n1.indexOf("OpenGL ES")!==-1&&(t1=parseFloat(/^OpenGL ES (\d)/.exec(n1)[1]),U=t1>=2);let d1=null,x1={};const U1=t.getParameter(t.SCISSOR_BOX),$=t.getParameter(t.VIEWPORT),O=new i2().fromArray(U1),W=new i2().fromArray($);function F(J,F1,H1,r0){const d0=new Uint8Array(4),O0=t.createTexture();t.bindTexture(J,O0),t.texParameteri(J,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(J,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let z0=0;z0"u"?!1:/OculusBrowser/g.test(navigator.userAgent),g=new WeakMap;let p;const A=new WeakMap;let w=!1;try{w=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function x(S,D){return w?new OffscreenCanvas(S,D):hn("canvas")}function y(S,D,o1,T1){let Q1=1;if((S.width>T1||S.height>T1)&&(Q1=T1/Math.max(S.width,S.height)),Q1<1||D===!0)if(typeof HTMLImageElement<"u"&&S instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&S instanceof ImageBitmap){const _1=D?oo:Math.floor,Y1=_1(Q1*S.width),O1=_1(Q1*S.height);p===void 0&&(p=x(Y1,O1));const q1=o1?x(Y1,O1):p;return q1.width=Y1,q1.height=O1,q1.getContext("2d").drawImage(S,0,0,Y1,O1),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+S.width+"x"+S.height+") to ("+Y1+"x"+O1+")."),q1}else return"data"in S&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+S.width+"x"+S.height+")."),S;return S}function m(S){return hu(S.width)&&hu(S.height)}function v(S){return s?!1:S.wrapS!==I9||S.wrapT!==I9||S.minFilter!==P2&&S.minFilter!==v2}function E(S,D){return S.generateMipmaps&&D&&S.minFilter!==P2&&S.minFilter!==v2}function k(S){t.generateMipmap(S)}function I(S,D,o1,T1,Q1=!1){if(s===!1)return D;if(S!==null){if(t[S]!==void 0)return t[S];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+S+"'")}let _1=D;if(D===t.RED&&(o1===t.FLOAT&&(_1=t.R32F),o1===t.HALF_FLOAT&&(_1=t.R16F),o1===t.UNSIGNED_BYTE&&(_1=t.R8)),D===t.RED_INTEGER&&(o1===t.UNSIGNED_BYTE&&(_1=t.R8UI),o1===t.UNSIGNED_SHORT&&(_1=t.R16UI),o1===t.UNSIGNED_INT&&(_1=t.R32UI),o1===t.BYTE&&(_1=t.R8I),o1===t.SHORT&&(_1=t.R16I),o1===t.INT&&(_1=t.R32I)),D===t.RG&&(o1===t.FLOAT&&(_1=t.RG32F),o1===t.HALF_FLOAT&&(_1=t.RG16F),o1===t.UNSIGNED_BYTE&&(_1=t.RG8)),D===t.RGBA){const Y1=Q1?ln:r2.getTransfer(T1);o1===t.FLOAT&&(_1=t.RGBA32F),o1===t.HALF_FLOAT&&(_1=t.RGBA16F),o1===t.UNSIGNED_BYTE&&(_1=Y1===d2?t.SRGB8_ALPHA8:t.RGBA8),o1===t.UNSIGNED_SHORT_4_4_4_4&&(_1=t.RGBA4),o1===t.UNSIGNED_SHORT_5_5_5_1&&(_1=t.RGB5_A1)}return(_1===t.R16F||_1===t.R32F||_1===t.RG16F||_1===t.RG32F||_1===t.RGBA16F||_1===t.RGBA32F)&&e.get("EXT_color_buffer_float"),_1}function Q(S,D,o1){return E(S,o1)===!0||S.isFramebufferTexture&&S.minFilter!==P2&&S.minFilter!==v2?Math.log2(Math.max(D.width,D.height))+1:S.mipmaps!==void 0&&S.mipmaps.length>0?S.mipmaps.length:S.isCompressedTexture&&Array.isArray(S.image)?D.mipmaps.length:1}function R(S){return S===P2||S===ro||S===u3?t.NEAREST:t.LINEAR}function T(S){const D=S.target;D.removeEventListener("dispose",T),q(D),D.isVideoTexture&&g.delete(D)}function j(S){const D=S.target;D.removeEventListener("dispose",j),P(D)}function q(S){const D=C.get(S);if(D.__webglInit===void 0)return;const o1=S.source,T1=A.get(o1);if(T1){const Q1=T1[D.__cacheKey];Q1.usedTimes--,Q1.usedTimes===0&&_(S),Object.keys(T1).length===0&&A.delete(o1)}C.remove(S)}function _(S){const D=C.get(S);t.deleteTexture(D.__webglTexture);const o1=S.source,T1=A.get(o1);delete T1[D.__cacheKey],o.memory.textures--}function P(S){const D=S.texture,o1=C.get(S),T1=C.get(D);if(T1.__webglTexture!==void 0&&(t.deleteTexture(T1.__webglTexture),o.memory.textures--),S.depthTexture&&S.depthTexture.dispose(),S.isWebGLCubeRenderTarget)for(let Q1=0;Q1<6;Q1++){if(Array.isArray(o1.__webglFramebuffer[Q1]))for(let _1=0;_1=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+S+" texture units while this GPU supports only "+r.maxTextures),K+=1,S}function i1(S){const D=[];return D.push(S.wrapS),D.push(S.wrapT),D.push(S.wrapR||0),D.push(S.magFilter),D.push(S.minFilter),D.push(S.anisotropy),D.push(S.internalFormat),D.push(S.format),D.push(S.type),D.push(S.generateMipmaps),D.push(S.premultiplyAlpha),D.push(S.flipY),D.push(S.unpackAlignment),D.push(S.colorSpace),D.join()}function C1(S,D){const o1=C.get(S);if(S.isVideoTexture&&b1(S),S.isRenderTargetTexture===!1&&S.version>0&&o1.__version!==S.version){const T1=S.image;if(T1===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(T1.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{O(o1,S,D);return}}n.bindTexture(t.TEXTURE_2D,o1.__webglTexture,t.TEXTURE0+D)}function u1(S,D){const o1=C.get(S);if(S.version>0&&o1.__version!==S.version){O(o1,S,D);return}n.bindTexture(t.TEXTURE_2D_ARRAY,o1.__webglTexture,t.TEXTURE0+D)}function U(S,D){const o1=C.get(S);if(S.version>0&&o1.__version!==S.version){O(o1,S,D);return}n.bindTexture(t.TEXTURE_3D,o1.__webglTexture,t.TEXTURE0+D)}function t1(S,D){const o1=C.get(S);if(S.version>0&&o1.__version!==S.version){W(o1,S,D);return}n.bindTexture(t.TEXTURE_CUBE_MAP,o1.__webglTexture,t.TEXTURE0+D)}const n1={[nn]:t.REPEAT,[I9]:t.CLAMP_TO_EDGE,[Cn]:t.MIRRORED_REPEAT},d1={[P2]:t.NEAREST,[ro]:t.NEAREST_MIPMAP_NEAREST,[u3]:t.NEAREST_MIPMAP_LINEAR,[v2]:t.LINEAR,[Rt]:t.LINEAR_MIPMAP_NEAREST,[m4]:t.LINEAR_MIPMAP_LINEAR},x1={[Yx]:t.NEVER,[em]:t.ALWAYS,[Xx]:t.LESS,[Od]:t.LEQUAL,[Jx]:t.EQUAL,[Zx]:t.GEQUAL,[qx]:t.GREATER,[Kx]:t.NOTEQUAL};function U1(S,D,o1){if(D.type===Q8&&e.has("OES_texture_float_linear")===!1&&(D.magFilter===v2||D.magFilter===Rt||D.magFilter===u3||D.magFilter===m4||D.minFilter===v2||D.minFilter===Rt||D.minFilter===u3||D.minFilter===m4)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),o1?(t.texParameteri(S,t.TEXTURE_WRAP_S,n1[D.wrapS]),t.texParameteri(S,t.TEXTURE_WRAP_T,n1[D.wrapT]),(S===t.TEXTURE_3D||S===t.TEXTURE_2D_ARRAY)&&t.texParameteri(S,t.TEXTURE_WRAP_R,n1[D.wrapR]),t.texParameteri(S,t.TEXTURE_MAG_FILTER,d1[D.magFilter]),t.texParameteri(S,t.TEXTURE_MIN_FILTER,d1[D.minFilter])):(t.texParameteri(S,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(S,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),(S===t.TEXTURE_3D||S===t.TEXTURE_2D_ARRAY)&&t.texParameteri(S,t.TEXTURE_WRAP_R,t.CLAMP_TO_EDGE),(D.wrapS!==I9||D.wrapT!==I9)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(S,t.TEXTURE_MAG_FILTER,R(D.magFilter)),t.texParameteri(S,t.TEXTURE_MIN_FILTER,R(D.minFilter)),D.minFilter!==P2&&D.minFilter!==v2&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),D.compareFunction&&(t.texParameteri(S,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(S,t.TEXTURE_COMPARE_FUNC,x1[D.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const T1=e.get("EXT_texture_filter_anisotropic");if(D.magFilter===P2||D.minFilter!==u3&&D.minFilter!==m4||D.type===Q8&&e.has("OES_texture_float_linear")===!1||s===!1&&D.type===Q3&&e.has("OES_texture_half_float_linear")===!1)return;(D.anisotropy>1||C.get(D).__currentAnisotropy)&&(t.texParameterf(S,T1.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,r.getMaxAnisotropy())),C.get(D).__currentAnisotropy=D.anisotropy)}}function $(S,D){let o1=!1;S.__webglInit===void 0&&(S.__webglInit=!0,D.addEventListener("dispose",T));const T1=D.source;let Q1=A.get(T1);Q1===void 0&&(Q1={},A.set(T1,Q1));const _1=i1(D);if(_1!==S.__cacheKey){Q1[_1]===void 0&&(Q1[_1]={texture:t.createTexture(),usedTimes:0},o.memory.textures++,o1=!0),Q1[_1].usedTimes++;const Y1=Q1[S.__cacheKey];Y1!==void 0&&(Q1[S.__cacheKey].usedTimes--,Y1.usedTimes===0&&_(D)),S.__cacheKey=_1,S.__webglTexture=Q1[_1].texture}return o1}function O(S,D,o1){let T1=t.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&&(T1=t.TEXTURE_2D_ARRAY),D.isData3DTexture&&(T1=t.TEXTURE_3D);const Q1=$(S,D),_1=D.source;n.bindTexture(T1,S.__webglTexture,t.TEXTURE0+o1);const Y1=C.get(_1);if(_1.version!==Y1.__version||Q1===!0){n.activeTexture(t.TEXTURE0+o1);const O1=r2.getPrimaries(r2.workingColorSpace),q1=D.colorSpace===f8?null:r2.getPrimaries(D.colorSpace),l0=D.colorSpace===f8||O1===q1?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,D.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,D.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,l0);const w0=v(D)&&m(D.image)===!1;let P1=y(D.image,w0,!1,r.maxTextureSize);P1=e1(D,P1);const Q0=m(P1)||s,E0=i.convert(D.format,D.colorSpace);let g0=i.convert(D.type),s0=I(D.internalFormat,E0,g0,D.colorSpace,D.isVideoTexture);U1(T1,D,Q0);let n0;const m0=D.mipmaps,N0=s&&D.isVideoTexture!==!0&&s0!==Ud,X0=Y1.__version===void 0||Q1===!0,y0=_1.dataReady,G0=Q(D,P1,Q0);if(D.isDepthTexture)s0=t.DEPTH_COMPONENT,s?D.type===Q8?s0=t.DEPTH_COMPONENT32F:D.type===t6?s0=t.DEPTH_COMPONENT24:D.type===a5?s0=t.DEPTH24_STENCIL8:s0=t.DEPTH_COMPONENT16:D.type===Q8&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),D.format===c5&&s0===t.DEPTH_COMPONENT&&D.type!==bo&&D.type!==t6&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),D.type=t6,g0=i.convert(D.type)),D.format===T3&&s0===t.DEPTH_COMPONENT&&(s0=t.DEPTH_STENCIL,D.type!==a5&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),D.type=a5,g0=i.convert(D.type))),X0&&(N0?n.texStorage2D(t.TEXTURE_2D,1,s0,P1.width,P1.height):n.texImage2D(t.TEXTURE_2D,0,s0,P1.width,P1.height,0,E0,g0,null));else if(D.isDataTexture)if(m0.length>0&&Q0){N0&&X0&&n.texStorage2D(t.TEXTURE_2D,G0,s0,m0[0].width,m0[0].height);for(let J=0,F1=m0.length;J>=1,F1>>=1}}else if(m0.length>0&&Q0){N0&&X0&&n.texStorage2D(t.TEXTURE_2D,G0,s0,m0[0].width,m0[0].height);for(let J=0,F1=m0.length;J0&&y0++,n.texStorage2D(t.TEXTURE_CUBE_MAP,y0,n0,P1[0].width,P1[0].height));for(let J=0;J<6;J++)if(w0){m0?X0&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,0,0,P1[J].width,P1[J].height,g0,s0,P1[J].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,n0,P1[J].width,P1[J].height,0,g0,s0,P1[J].data);for(let F1=0;F1>_1),P1=Math.max(1,D.height>>_1);Q1===t.TEXTURE_3D||Q1===t.TEXTURE_2D_ARRAY?n.texImage3D(Q1,_1,q1,w0,P1,D.depth,0,Y1,O1,null):n.texImage2D(Q1,_1,q1,w0,P1,0,Y1,O1,null)}n.bindFramebuffer(t.FRAMEBUFFER,S),f1(D)?a.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,T1,Q1,C.get(o1).__webglTexture,0,a1(D)):(Q1===t.TEXTURE_2D||Q1>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&Q1<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,T1,Q1,C.get(o1).__webglTexture,_1),n.bindFramebuffer(t.FRAMEBUFFER,null)}function v1(S,D,o1){if(t.bindRenderbuffer(t.RENDERBUFFER,S),D.depthBuffer&&!D.stencilBuffer){let T1=s===!0?t.DEPTH_COMPONENT24:t.DEPTH_COMPONENT16;if(o1||f1(D)){const Q1=D.depthTexture;Q1&&Q1.isDepthTexture&&(Q1.type===Q8?T1=t.DEPTH_COMPONENT32F:Q1.type===t6&&(T1=t.DEPTH_COMPONENT24));const _1=a1(D);f1(D)?a.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,_1,T1,D.width,D.height):t.renderbufferStorageMultisample(t.RENDERBUFFER,_1,T1,D.width,D.height)}else t.renderbufferStorage(t.RENDERBUFFER,T1,D.width,D.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,S)}else if(D.depthBuffer&&D.stencilBuffer){const T1=a1(D);o1&&f1(D)===!1?t.renderbufferStorageMultisample(t.RENDERBUFFER,T1,t.DEPTH24_STENCIL8,D.width,D.height):f1(D)?a.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,T1,t.DEPTH24_STENCIL8,D.width,D.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,D.width,D.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,S)}else{const T1=D.isWebGLMultipleRenderTargets===!0?D.texture:[D.texture];for(let Q1=0;Q10){o1.__webglFramebuffer[O1]=[];for(let q1=0;q10){o1.__webglFramebuffer=[];for(let O1=0;O10&&f1(S)===!1){const O1=_1?D:[D];o1.__webglMultisampledFramebuffer=t.createFramebuffer(),o1.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,o1.__webglMultisampledFramebuffer);for(let q1=0;q10)for(let q1=0;q10)for(let q1=0;q10&&f1(S)===!1){const D=S.isWebGLMultipleRenderTargets?S.texture:[S.texture],o1=S.width,T1=S.height;let Q1=t.COLOR_BUFFER_BIT;const _1=[],Y1=S.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,O1=C.get(S),q1=S.isWebGLMultipleRenderTargets===!0;if(q1)for(let l0=0;l00&&e.has("WEBGL_multisampled_render_to_texture")===!0&&D.__useRenderToTexture!==!1}function b1(S){const D=o.render.frame;g.get(S)!==D&&(g.set(S,D),S.update())}function e1(S,D){const o1=S.colorSpace,T1=S.format,Q1=S.type;return S.isCompressedTexture===!0||S.isVideoTexture===!0||S.format===io||o1!==B4&&o1!==f8&&(r2.getTransfer(o1)===d2?s===!1?e.has("EXT_sRGB")===!0&&T1===N9?(S.format=io,S.minFilter=v2,S.generateMipmaps=!1):D=Vd.sRGBToLinear(D):(T1!==N9||Q1!==I4)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",o1)),D}this.allocateTextureUnit=X,this.resetTextureUnits=g1,this.setTexture2D=C1,this.setTexture2DArray=u1,this.setTexture3D=U,this.setTextureCube=t1,this.rebindTextures=E1,this.setupRenderTarget=z,this.updateRenderTargetMipmap=L1,this.updateMultisampleRenderTarget=r1,this.setupDepthRenderbuffer=s1,this.setupFrameBufferTexture=F,this.useMultisampledRTT=f1}function gm(t,e,n){const C=n.isWebGL2;function r(i,o=f8){let s;const a=r2.getTransfer(o);if(i===I4)return t.UNSIGNED_BYTE;if(i===Dd)return t.UNSIGNED_SHORT_4_4_4_4;if(i===Pd)return t.UNSIGNED_SHORT_5_5_5_1;if(i===Dx)return t.BYTE;if(i===Px)return t.SHORT;if(i===bo)return t.UNSIGNED_SHORT;if(i===Td)return t.INT;if(i===t6)return t.UNSIGNED_INT;if(i===Q8)return t.FLOAT;if(i===Q3)return C?t.HALF_FLOAT:(s=e.get("OES_texture_half_float"),s!==null?s.HALF_FLOAT_OES:null);if(i===Nx)return t.ALPHA;if(i===N9)return t.RGBA;if(i===Hx)return t.LUMINANCE;if(i===jx)return t.LUMINANCE_ALPHA;if(i===c5)return t.DEPTH_COMPONENT;if(i===T3)return t.DEPTH_STENCIL;if(i===io)return s=e.get("EXT_sRGB"),s!==null?s.SRGB_ALPHA_EXT:null;if(i===Ux)return t.RED;if(i===Nd)return t.RED_INTEGER;if(i===Fx)return t.RG;if(i===Hd)return t.RG_INTEGER;if(i===jd)return t.RGBA_INTEGER;if(i===pi||i===Ai||i===vi||i===Li)if(a===d2)if(s=e.get("WEBGL_compressed_texture_s3tc_srgb"),s!==null){if(i===pi)return s.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===Ai)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===vi)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===Li)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(s=e.get("WEBGL_compressed_texture_s3tc"),s!==null){if(i===pi)return s.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===Ai)return s.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===vi)return s.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===Li)return s.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===Uc||i===Fc||i===Wc||i===Gc)if(s=e.get("WEBGL_compressed_texture_pvrtc"),s!==null){if(i===Uc)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===Fc)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===Wc)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===Gc)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===Ud)return s=e.get("WEBGL_compressed_texture_etc1"),s!==null?s.COMPRESSED_RGB_ETC1_WEBGL:null;if(i===Oc||i===zc)if(s=e.get("WEBGL_compressed_texture_etc"),s!==null){if(i===Oc)return a===d2?s.COMPRESSED_SRGB8_ETC2:s.COMPRESSED_RGB8_ETC2;if(i===zc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:s.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===Vc||i===$c||i===Yc||i===Xc||i===Jc||i===qc||i===Kc||i===Zc||i===eu||i===tu||i===nu||i===Cu||i===ru||i===iu)if(s=e.get("WEBGL_compressed_texture_astc"),s!==null){if(i===Vc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:s.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===$c)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:s.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===Yc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:s.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===Xc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:s.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===Jc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:s.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===qc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:s.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===Kc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:s.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===Zc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:s.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===eu)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:s.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===tu)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:s.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===nu)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:s.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===Cu)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:s.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===ru)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:s.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===iu)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:s.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===wi||i===ou||i===su)if(s=e.get("EXT_texture_compression_bptc"),s!==null){if(i===wi)return a===d2?s.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:s.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(i===ou)return s.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(i===su)return s.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(i===Wx||i===lu||i===au||i===cu)if(s=e.get("EXT_texture_compression_rgtc"),s!==null){if(i===wi)return s.COMPRESSED_RED_RGTC1_EXT;if(i===lu)return s.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(i===au)return s.COMPRESSED_RED_GREEN_RGTC2_EXT;if(i===cu)return s.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return i===a5?C?t.UNSIGNED_INT_24_8:(s=e.get("WEBGL_depth_texture"),s!==null?s.UNSIGNED_INT_24_8_WEBGL:null):t[i]!==void 0?t[i]:null}return{convert:r}}class pm extends X2{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}let D8=class extends Z0{constructor(){super(),this.isGroup=!0,this.type="Group"}};const jQ={type:"move"};class ra{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new D8,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new D8,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new G,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new G),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new D8,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new G,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new G),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const n=this._hand;if(n)for(const C of e.hand.values())this._getHandJoint(n,C)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,n,C){let r=null,i=null,o=null;const s=this._targetRay,a=this._grip,d=this._hand;if(e&&n.session.visibilityState!=="visible-blurred"){if(d&&e.hand){o=!0;for(const y of e.hand.values()){const m=n.getJointPose(y,C),v=this._getHandJoint(d,y);m!==null&&(v.matrix.fromArray(m.transform.matrix),v.matrix.decompose(v.position,v.rotation,v.scale),v.matrixWorldNeedsUpdate=!0,v.jointRadius=m.radius),v.visible=m!==null}const g=d.joints["index-finger-tip"],p=d.joints["thumb-tip"],A=g.position.distanceTo(p.position),w=.02,x=.005;d.inputState.pinching&&A>w+x?(d.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!d.inputState.pinching&&A<=w-x&&(d.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else a!==null&&e.gripSpace&&(i=n.getPose(e.gripSpace,C),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1));s!==null&&(r=n.getPose(e.targetRaySpace,C),r===null&&i!==null&&(r=i),r!==null&&(s.matrix.fromArray(r.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.matrixWorldNeedsUpdate=!0,r.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(r.linearVelocity)):s.hasLinearVelocity=!1,r.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(r.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(jQ)))}return s!==null&&(s.visible=r!==null),a!==null&&(a.visible=i!==null),d!==null&&(d.visible=o!==null),this}_getHandJoint(e,n){if(e.joints[n.jointName]===void 0){const C=new D8;C.matrixAutoUpdate=!1,C.visible=!1,e.joints[n.jointName]=C,e.add(C)}return e.joints[n.jointName]}}const UQ=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,FQ=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class WQ{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,n,C){if(this.texture===null){const r=new k2,i=e.properties.get(r);i.__webglTexture=n.texture,(n.depthNear!=C.depthNear||n.depthFar!=C.depthFar)&&(this.depthNear=n.depthNear,this.depthFar=n.depthFar),this.texture=r}}render(e,n){if(this.texture!==null){if(this.mesh===null){const C=n.cameras[0].viewport,r=new r4({extensions:{fragDepth:!0},vertexShader:UQ,fragmentShader:FQ,uniforms:{depthColor:{value:this.texture},depthWidth:{value:C.z},depthHeight:{value:C.w}}});this.mesh=new n2(new k5(20,20),r)}e.render(this.mesh,n)}}reset(){this.texture=null,this.mesh=null}}class GQ extends u6{constructor(e,n){super();const C=this;let r=null,i=1,o=null,s="local-floor",a=1,d=null,g=null,p=null,A=null,w=null,x=null;const y=new WQ,m=n.getContextAttributes();let v=null,E=null;const k=[],I=[],Q=new y1;let R=null;const T=new X2;T.layers.enable(1),T.viewport=new i2;const j=new X2;j.layers.enable(2),j.viewport=new i2;const q=[T,j],_=new pm;_.layers.enable(1),_.layers.enable(2);let P=null,K=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function($){let O=k[$];return O===void 0&&(O=new ra,k[$]=O),O.getTargetRaySpace()},this.getControllerGrip=function($){let O=k[$];return O===void 0&&(O=new ra,k[$]=O),O.getGripSpace()},this.getHand=function($){let O=k[$];return O===void 0&&(O=new ra,k[$]=O),O.getHandSpace()};function g1($){const O=I.indexOf($.inputSource);if(O===-1)return;const W=k[O];W!==void 0&&(W.update($.inputSource,$.frame,d||o),W.dispatchEvent({type:$.type,data:$.inputSource}))}function X(){r.removeEventListener("select",g1),r.removeEventListener("selectstart",g1),r.removeEventListener("selectend",g1),r.removeEventListener("squeeze",g1),r.removeEventListener("squeezestart",g1),r.removeEventListener("squeezeend",g1),r.removeEventListener("end",X),r.removeEventListener("inputsourceschange",i1);for(let $=0;$=0&&(I[F]=null,k[F].disconnect(W))}for(let O=0;O<$.added.length;O++){const W=$.added[O];let F=I.indexOf(W);if(F===-1){for(let k1=0;k1=I.length){I.push(W),F=k1;break}else if(I[k1]===null){I[k1]=W,F=k1;break}if(F===-1)break}const v1=k[F];v1&&v1.connect(W)}}const C1=new G,u1=new G;function U($,O,W){C1.setFromMatrixPosition(O.matrixWorld),u1.setFromMatrixPosition(W.matrixWorld);const F=C1.distanceTo(u1),v1=O.projectionMatrix.elements,k1=W.projectionMatrix.elements,s1=v1[14]/(v1[10]-1),E1=v1[14]/(v1[10]+1),z=(v1[9]+1)/v1[5],L1=(v1[9]-1)/v1[5],r1=(v1[8]-1)/v1[0],a1=(k1[8]+1)/k1[0],f1=s1*r1,b1=s1*a1,e1=F/(-r1+a1),S=e1*-r1;O.matrixWorld.decompose($.position,$.quaternion,$.scale),$.translateX(S),$.translateZ(e1),$.matrixWorld.compose($.position,$.quaternion,$.scale),$.matrixWorldInverse.copy($.matrixWorld).invert();const D=s1+e1,o1=E1+e1,T1=f1-S,Q1=b1+(F-S),_1=z*E1/o1*D,Y1=L1*E1/o1*D;$.projectionMatrix.makePerspective(T1,Q1,_1,Y1,D,o1),$.projectionMatrixInverse.copy($.projectionMatrix).invert()}function t1($,O){O===null?$.matrixWorld.copy($.matrix):$.matrixWorld.multiplyMatrices(O.matrixWorld,$.matrix),$.matrixWorldInverse.copy($.matrixWorld).invert()}this.updateCamera=function($){if(r===null)return;y.texture!==null&&($.near=y.depthNear,$.far=y.depthFar),_.near=j.near=T.near=$.near,_.far=j.far=T.far=$.far,(P!==_.near||K!==_.far)&&(r.updateRenderState({depthNear:_.near,depthFar:_.far}),P=_.near,K=_.far,T.near=P,T.far=K,j.near=P,j.far=K,T.updateProjectionMatrix(),j.updateProjectionMatrix(),$.updateProjectionMatrix());const O=$.parent,W=_.cameras;t1(_,O);for(let F=0;F0&&(m.alphaTest.value=v.alphaTest);const E=e.get(v).envMap;if(E&&(m.envMap.value=E,m.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=v.reflectivity,m.ior.value=v.ior,m.refractionRatio.value=v.refractionRatio),v.lightMap){m.lightMap.value=v.lightMap;const k=t._useLegacyLights===!0?Math.PI:1;m.lightMapIntensity.value=v.lightMapIntensity*k,n(v.lightMap,m.lightMapTransform)}v.aoMap&&(m.aoMap.value=v.aoMap,m.aoMapIntensity.value=v.aoMapIntensity,n(v.aoMap,m.aoMapTransform))}function o(m,v){m.diffuse.value.copy(v.color),m.opacity.value=v.opacity,v.map&&(m.map.value=v.map,n(v.map,m.mapTransform))}function s(m,v){m.dashSize.value=v.dashSize,m.totalSize.value=v.dashSize+v.gapSize,m.scale.value=v.scale}function a(m,v,E,k){m.diffuse.value.copy(v.color),m.opacity.value=v.opacity,m.size.value=v.size*E,m.scale.value=k*.5,v.map&&(m.map.value=v.map,n(v.map,m.uvTransform)),v.alphaMap&&(m.alphaMap.value=v.alphaMap,n(v.alphaMap,m.alphaMapTransform)),v.alphaTest>0&&(m.alphaTest.value=v.alphaTest)}function d(m,v){m.diffuse.value.copy(v.color),m.opacity.value=v.opacity,m.rotation.value=v.rotation,v.map&&(m.map.value=v.map,n(v.map,m.mapTransform)),v.alphaMap&&(m.alphaMap.value=v.alphaMap,n(v.alphaMap,m.alphaMapTransform)),v.alphaTest>0&&(m.alphaTest.value=v.alphaTest)}function g(m,v){m.specular.value.copy(v.specular),m.shininess.value=Math.max(v.shininess,1e-4)}function p(m,v){v.gradientMap&&(m.gradientMap.value=v.gradientMap)}function A(m,v){m.metalness.value=v.metalness,v.metalnessMap&&(m.metalnessMap.value=v.metalnessMap,n(v.metalnessMap,m.metalnessMapTransform)),m.roughness.value=v.roughness,v.roughnessMap&&(m.roughnessMap.value=v.roughnessMap,n(v.roughnessMap,m.roughnessMapTransform)),e.get(v).envMap&&(m.envMapIntensity.value=v.envMapIntensity)}function w(m,v,E){m.ior.value=v.ior,v.sheen>0&&(m.sheenColor.value.copy(v.sheenColor).multiplyScalar(v.sheen),m.sheenRoughness.value=v.sheenRoughness,v.sheenColorMap&&(m.sheenColorMap.value=v.sheenColorMap,n(v.sheenColorMap,m.sheenColorMapTransform)),v.sheenRoughnessMap&&(m.sheenRoughnessMap.value=v.sheenRoughnessMap,n(v.sheenRoughnessMap,m.sheenRoughnessMapTransform))),v.clearcoat>0&&(m.clearcoat.value=v.clearcoat,m.clearcoatRoughness.value=v.clearcoatRoughness,v.clearcoatMap&&(m.clearcoatMap.value=v.clearcoatMap,n(v.clearcoatMap,m.clearcoatMapTransform)),v.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=v.clearcoatRoughnessMap,n(v.clearcoatRoughnessMap,m.clearcoatRoughnessMapTransform)),v.clearcoatNormalMap&&(m.clearcoatNormalMap.value=v.clearcoatNormalMap,n(v.clearcoatNormalMap,m.clearcoatNormalMapTransform),m.clearcoatNormalScale.value.copy(v.clearcoatNormalScale),v.side===U9&&m.clearcoatNormalScale.value.negate())),v.iridescence>0&&(m.iridescence.value=v.iridescence,m.iridescenceIOR.value=v.iridescenceIOR,m.iridescenceThicknessMinimum.value=v.iridescenceThicknessRange[0],m.iridescenceThicknessMaximum.value=v.iridescenceThicknessRange[1],v.iridescenceMap&&(m.iridescenceMap.value=v.iridescenceMap,n(v.iridescenceMap,m.iridescenceMapTransform)),v.iridescenceThicknessMap&&(m.iridescenceThicknessMap.value=v.iridescenceThicknessMap,n(v.iridescenceThicknessMap,m.iridescenceThicknessMapTransform))),v.transmission>0&&(m.transmission.value=v.transmission,m.transmissionSamplerMap.value=E.texture,m.transmissionSamplerSize.value.set(E.width,E.height),v.transmissionMap&&(m.transmissionMap.value=v.transmissionMap,n(v.transmissionMap,m.transmissionMapTransform)),m.thickness.value=v.thickness,v.thicknessMap&&(m.thicknessMap.value=v.thicknessMap,n(v.thicknessMap,m.thicknessMapTransform)),m.attenuationDistance.value=v.attenuationDistance,m.attenuationColor.value.copy(v.attenuationColor)),v.anisotropy>0&&(m.anisotropyVector.value.set(v.anisotropy*Math.cos(v.anisotropyRotation),v.anisotropy*Math.sin(v.anisotropyRotation)),v.anisotropyMap&&(m.anisotropyMap.value=v.anisotropyMap,n(v.anisotropyMap,m.anisotropyMapTransform))),m.specularIntensity.value=v.specularIntensity,m.specularColor.value.copy(v.specularColor),v.specularColorMap&&(m.specularColorMap.value=v.specularColorMap,n(v.specularColorMap,m.specularColorMapTransform)),v.specularIntensityMap&&(m.specularIntensityMap.value=v.specularIntensityMap,n(v.specularIntensityMap,m.specularIntensityMapTransform))}function x(m,v){v.matcap&&(m.matcap.value=v.matcap)}function y(m,v){const E=e.get(v).light;m.referencePosition.value.setFromMatrixPosition(E.matrixWorld),m.nearDistance.value=E.shadow.camera.near,m.farDistance.value=E.shadow.camera.far}return{refreshFogUniforms:C,refreshMaterialUniforms:r}}function zQ(t,e,n,C){let r={},i={},o=[];const s=n.isWebGL2?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0;function a(E,k){const I=k.program;C.uniformBlockBinding(E,I)}function d(E,k){let I=r[E.id];I===void 0&&(x(E),I=g(E),r[E.id]=I,E.addEventListener("dispose",m));const Q=k.program;C.updateUBOMapping(E,Q);const R=e.render.frame;i[E.id]!==R&&(A(E),i[E.id]=R)}function g(E){const k=p();E.__bindingPointIndex=k;const I=t.createBuffer(),Q=E.__size,R=E.usage;return t.bindBuffer(t.UNIFORM_BUFFER,I),t.bufferData(t.UNIFORM_BUFFER,Q,R),t.bindBuffer(t.UNIFORM_BUFFER,null),t.bindBufferBase(t.UNIFORM_BUFFER,k,I),I}function p(){for(let E=0;E0&&(I+=Q-R),E.__size=I,E.__cache={},this}function y(E){const k={boundary:0,storage:0};return typeof E=="number"||typeof E=="boolean"?(k.boundary=4,k.storage=4):E.isVector2?(k.boundary=8,k.storage=8):E.isVector3||E.isColor?(k.boundary=16,k.storage=12):E.isVector4?(k.boundary=16,k.storage=16):E.isMatrix3?(k.boundary=48,k.storage=48):E.isMatrix4?(k.boundary=64,k.storage=64):E.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",E),k}function m(E){const k=E.target;k.removeEventListener("dispose",m);const I=o.indexOf(k.__bindingPointIndex);o.splice(I,1),t.deleteBuffer(r[k.id]),delete r[k.id],delete i[k.id]}function v(){for(const E in r)t.deleteBuffer(r[E]);o=[],r={},i={}}return{bind:a,update:d,dispose:v}}class Kd{constructor(e={}){const{canvas:n=nm(),context:C=null,depth:r=!0,stencil:i=!0,alpha:o=!1,antialias:s=!1,premultipliedAlpha:a=!0,preserveDrawingBuffer:d=!1,powerPreference:g="default",failIfMajorPerformanceCaveat:p=!1}=e;this.isWebGLRenderer=!0;let A;C!==null?A=C.getContextAttributes().alpha:A=o;const w=new Uint32Array(4),x=new Int32Array(4);let y=null,m=null;const v=[],E=[];this.domElement=n,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=N2,this._useLegacyLights=!1,this.toneMapping=y4,this.toneMappingExposure=1;const k=this;let I=!1,Q=0,R=0,T=null,j=-1,q=null;const _=new i2,P=new i2;let K=null;const g1=new J1(0);let X=0,i1=n.width,C1=n.height,u1=1,U=null,t1=null;const n1=new i2(0,0,i1,C1),d1=new i2(0,0,i1,C1);let x1=!1;const U1=new Qn;let $=!1,O=!1,W=null;const F=new f0,v1=new y1,k1=new G,s1={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function E1(){return T===null?u1:1}let z=C;function L1(V,p1){for(let M1=0;M1{function Z1(){if(I1.forEach(function(a0){e1.get(a0).currentProgram.isReady()&&I1.delete(a0)}),I1.size===0){m1(V);return}setTimeout(Z1,10)}r1.get("KHR_parallel_shader_compile")!==null?Z1():setTimeout(Z1,10)})};let z0=null;function S2(V){z0&&z0(V)}function a9(){l2.stop()}function e2(){l2.start()}const l2=new am;l2.setAnimationLoop(S2),typeof self<"u"&&l2.setContext(self),this.setAnimationLoop=function(V){z0=V,y0.setAnimationLoop(V),V===null?l2.stop():l2.start()},y0.addEventListener("sessionstart",a9),y0.addEventListener("sessionend",e2),this.render=function(V,p1){if(p1!==void 0&&p1.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(I===!0)return;V.matrixWorldAutoUpdate===!0&&V.updateMatrixWorld(),p1.parent===null&&p1.matrixWorldAutoUpdate===!0&&p1.updateMatrixWorld(),y0.enabled===!0&&y0.isPresenting===!0&&(y0.cameraAutoUpdate===!0&&y0.updateCamera(p1),p1=y0.getCamera()),V.isScene===!0&&V.onBeforeRender(k,V,p1,T),m=l0.get(V,E.length),m.init(),E.push(m),F.multiplyMatrices(p1.projectionMatrix,p1.matrixWorldInverse),U1.setFromProjectionMatrix(F),O=this.localClippingEnabled,$=w0.init(this.clippingPlanes,O),y=q1.get(V,v.length),y.init(),v.push(y),V9(V,p1,0,k.sortObjects),y.finish(),k.sortObjects===!0&&y.sort(U,t1),this.info.render.frame++,$===!0&&w0.beginShadows();const M1=m.state.shadowsArray;if(P1.render(M1,V,p1),$===!0&&w0.endShadows(),this.info.autoReset===!0&&this.info.reset(),(y0.enabled===!1||y0.isPresenting===!1||y0.hasDepthSensing()===!1)&&Q0.render(y,V),m.setupLights(k._useLegacyLights),p1.isArrayCamera){const I1=p1.cameras;for(let m1=0,Z1=I1.length;m10?m=E[E.length-1]:m=null,v.pop(),v.length>0?y=v[v.length-1]:y=null};function V9(V,p1,M1,I1){if(V.visible===!1)return;if(V.layers.test(p1.layers)){if(V.isGroup)M1=V.renderOrder;else if(V.isLOD)V.autoUpdate===!0&&V.update(p1);else if(V.isLight)m.pushLight(V),V.castShadow&&m.pushShadow(V);else if(V.isSprite){if(!V.frustumCulled||U1.intersectsSprite(V)){I1&&k1.setFromMatrixPosition(V.matrixWorld).applyMatrix4(F);const a0=_1.update(V),A0=V.material;A0.visible&&y.push(V,a0,A0,M1,k1.z,null)}}else if((V.isMesh||V.isLine||V.isPoints)&&(!V.frustumCulled||U1.intersectsObject(V))){const a0=_1.update(V),A0=V.material;if(I1&&(V.boundingSphere!==void 0?(V.boundingSphere===null&&V.computeBoundingSphere(),k1.copy(V.boundingSphere.center)):(a0.boundingSphere===null&&a0.computeBoundingSphere(),k1.copy(a0.boundingSphere.center)),k1.applyMatrix4(V.matrixWorld).applyMatrix4(F)),Array.isArray(A0)){const p0=a0.groups;for(let I0=0,k0=p0.length;I00&&c9(m1,Z1,p1,M1),I1&&f1.viewport(_.copy(I1)),m1.length>0&&Q4(m1,p1,M1),Z1.length>0&&Q4(Z1,p1,M1),a0.length>0&&Q4(a0,p1,M1),f1.buffers.depth.setTest(!0),f1.buffers.depth.setMask(!0),f1.buffers.color.setMask(!0),f1.setPolygonOffset(!1)}function c9(V,p1,M1,I1){if((M1.isScene===!0?M1.overrideMaterial:null)!==null)return;const Z1=a1.isWebGL2;W===null&&(W=new U8(1,1,{generateMipmaps:!0,type:r1.has("EXT_color_buffer_half_float")?Q3:I4,minFilter:m4,samples:Z1?4:0})),k.getDrawingBufferSize(v1),Z1?W.setSize(v1.x,v1.y):W.setSize(oo(v1.x),oo(v1.y));const a0=k.getRenderTarget();k.setRenderTarget(W),k.getClearColor(g1),X=k.getClearAlpha(),X<1&&k.setClearColor(16777215,.5),k.clear();const A0=k.toneMapping;k.toneMapping=y4,Q4(V,M1,I1),S.updateMultisampleRenderTarget(W),S.updateRenderTargetMipmap(W);let p0=!1;for(let I0=0,k0=p1.length;I00),M0=!!M1.morphAttributes.position,f2=!!M1.morphAttributes.normal,U2=!!M1.morphAttributes.color;let t2=y4;I1.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&(t2=k.toneMapping);const F2=M1.morphAttributes.position||M1.morphAttributes.normal||M1.morphAttributes.color,L0=F2!==void 0?F2.length:0,t0=e1.get(I1),p9=m.state.lights;if($===!0&&(O===!0||V!==q)){const B1=V===q&&I1.id===j;w0.setState(I1,V,B1)}let x0=!1;I1.version===t0.__version?(t0.needsLights&&t0.lightsStateVersion!==p9.state.version||t0.outputColorSpace!==A0||m1.isBatchedMesh&&t0.batching===!1||!m1.isBatchedMesh&&t0.batching===!0||m1.isInstancedMesh&&t0.instancing===!1||!m1.isInstancedMesh&&t0.instancing===!0||m1.isSkinnedMesh&&t0.skinning===!1||!m1.isSkinnedMesh&&t0.skinning===!0||m1.isInstancedMesh&&t0.instancingColor===!0&&m1.instanceColor===null||m1.isInstancedMesh&&t0.instancingColor===!1&&m1.instanceColor!==null||t0.envMap!==p0||I1.fog===!0&&t0.fog!==Z1||t0.numClippingPlanes!==void 0&&(t0.numClippingPlanes!==w0.numPlanes||t0.numIntersection!==w0.numIntersection)||t0.vertexAlphas!==I0||t0.vertexTangents!==k0||t0.morphTargets!==M0||t0.morphNormals!==f2||t0.morphColors!==U2||t0.toneMapping!==t2||a1.isWebGL2===!0&&t0.morphTargetsCount!==L0)&&(x0=!0):(x0=!0,t0.__version=I1.version);let a2=t0.currentProgram;x0===!0&&(a2=l4(I1,p1,m1));let r8=!1,N=!1,H=!1;const Z=a2.getUniforms(),l1=t0.uniforms;if(f1.useProgram(a2.program)&&(r8=!0,N=!0,H=!0),I1.id!==j&&(j=I1.id,N=!0),r8||q!==V){Z.setValue(z,"projectionMatrix",V.projectionMatrix),Z.setValue(z,"viewMatrix",V.matrixWorldInverse);const B1=Z.map.cameraPosition;B1!==void 0&&B1.setValue(z,k1.setFromMatrixPosition(V.matrixWorld)),a1.logarithmicDepthBuffer&&Z.setValue(z,"logDepthBufFC",2/(Math.log(V.far+1)/Math.LN2)),(I1.isMeshPhongMaterial||I1.isMeshToonMaterial||I1.isMeshLambertMaterial||I1.isMeshBasicMaterial||I1.isMeshStandardMaterial||I1.isShaderMaterial)&&Z.setValue(z,"isOrthographic",V.isOrthographicCamera===!0),q!==V&&(q=V,N=!0,H=!0)}if(m1.isSkinnedMesh){Z.setOptional(z,m1,"bindMatrix"),Z.setOptional(z,m1,"bindMatrixInverse");const B1=m1.skeleton;B1&&(a1.floatVertexTextures?(B1.boneTexture===null&&B1.computeBoneTexture(),Z.setValue(z,"boneTexture",B1.boneTexture,S)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}m1.isBatchedMesh&&(Z.setOptional(z,m1,"batchingTexture"),Z.setValue(z,"batchingTexture",m1._matricesTexture,S));const A1=M1.morphAttributes;if((A1.position!==void 0||A1.normal!==void 0||A1.color!==void 0&&a1.isWebGL2===!0)&&E0.update(m1,M1,a2),(N||t0.receiveShadow!==m1.receiveShadow)&&(t0.receiveShadow=m1.receiveShadow,Z.setValue(z,"receiveShadow",m1.receiveShadow)),I1.isMeshGouraudMaterial&&I1.envMap!==null&&(l1.envMap.value=p0,l1.flipEnvMap.value=p0.isCubeTexture&&p0.isRenderTargetTexture===!1?-1:1),N&&(Z.setValue(z,"toneMappingExposure",k.toneMappingExposure),t0.needsLights&&ye(l1,H),Z1&&I1.fog===!0&&O1.refreshFogUniforms(l1,Z1),O1.refreshMaterialUniforms(l1,I1,u1,C1,W),mi.upload(z,M6(t0),l1,S)),I1.isShaderMaterial&&I1.uniformsNeedUpdate===!0&&(mi.upload(z,M6(t0),l1,S),I1.uniformsNeedUpdate=!1),I1.isSpriteMaterial&&Z.setValue(z,"center",m1.center),Z.setValue(z,"modelViewMatrix",m1.modelViewMatrix),Z.setValue(z,"normalMatrix",m1.normalMatrix),Z.setValue(z,"modelMatrix",m1.matrixWorld),I1.isShaderMaterial||I1.isRawShaderMaterial){const B1=I1.uniformsGroups;for(let N1=0,D1=B1.length;N10&&S.useMultisampledRTT(V)===!1?m1=e1.get(V).__webglMultisampledFramebuffer:Array.isArray(k0)?m1=k0[M1]:m1=k0,_.copy(V.viewport),P.copy(V.scissor),K=V.scissorTest}else _.copy(n1).multiplyScalar(u1).floor(),P.copy(d1).multiplyScalar(u1).floor(),K=x1;if(f1.bindFramebuffer(z.FRAMEBUFFER,m1)&&a1.drawBuffers&&I1&&f1.drawBuffers(V,m1),f1.viewport(_),f1.scissor(P),f1.setScissorTest(K),Z1){const p0=e1.get(V.texture);z.framebufferTexture2D(z.FRAMEBUFFER,z.COLOR_ATTACHMENT0,z.TEXTURE_CUBE_MAP_POSITIVE_X+p1,p0.__webglTexture,M1)}else if(a0){const p0=e1.get(V.texture),I0=p1||0;z.framebufferTextureLayer(z.FRAMEBUFFER,z.COLOR_ATTACHMENT0,p0.__webglTexture,M1||0,I0)}j=-1},this.readRenderTargetPixels=function(V,p1,M1,I1,m1,Z1,a0){if(!(V&&V.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let A0=e1.get(V).__webglFramebuffer;if(V.isWebGLCubeRenderTarget&&a0!==void 0&&(A0=A0[a0]),A0){f1.bindFramebuffer(z.FRAMEBUFFER,A0);try{const p0=V.texture,I0=p0.format,k0=p0.type;if(I0!==N9&&n0.convert(I0)!==z.getParameter(z.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const M0=k0===Q3&&(r1.has("EXT_color_buffer_half_float")||a1.isWebGL2&&r1.has("EXT_color_buffer_float"));if(k0!==I4&&n0.convert(k0)!==z.getParameter(z.IMPLEMENTATION_COLOR_READ_TYPE)&&!(k0===Q8&&(a1.isWebGL2||r1.has("OES_texture_float")||r1.has("WEBGL_color_buffer_float")))&&!M0){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}p1>=0&&p1<=V.width-I1&&M1>=0&&M1<=V.height-m1&&z.readPixels(p1,M1,I1,m1,n0.convert(I0),n0.convert(k0),Z1)}finally{const p0=T!==null?e1.get(T).__webglFramebuffer:null;f1.bindFramebuffer(z.FRAMEBUFFER,p0)}}},this.copyFramebufferToTexture=function(V,p1,M1=0){const I1=Math.pow(2,-M1),m1=Math.floor(p1.image.width*I1),Z1=Math.floor(p1.image.height*I1);S.setTexture2D(p1,0),z.copyTexSubImage2D(z.TEXTURE_2D,M1,0,0,V.x,V.y,m1,Z1),f1.unbindTexture()},this.copyTextureToTexture=function(V,p1,M1,I1=0){const m1=p1.image.width,Z1=p1.image.height,a0=n0.convert(M1.format),A0=n0.convert(M1.type);S.setTexture2D(M1,0),z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,M1.flipY),z.pixelStorei(z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,M1.premultiplyAlpha),z.pixelStorei(z.UNPACK_ALIGNMENT,M1.unpackAlignment),p1.isDataTexture?z.texSubImage2D(z.TEXTURE_2D,I1,V.x,V.y,m1,Z1,a0,A0,p1.image.data):p1.isCompressedTexture?z.compressedTexSubImage2D(z.TEXTURE_2D,I1,V.x,V.y,p1.mipmaps[0].width,p1.mipmaps[0].height,a0,p1.mipmaps[0].data):z.texSubImage2D(z.TEXTURE_2D,I1,V.x,V.y,a0,A0,p1.image),I1===0&&M1.generateMipmaps&&z.generateMipmap(z.TEXTURE_2D),f1.unbindTexture()},this.copyTextureToTexture3D=function(V,p1,M1,I1,m1=0){if(k.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Z1=V.max.x-V.min.x+1,a0=V.max.y-V.min.y+1,A0=V.max.z-V.min.z+1,p0=n0.convert(I1.format),I0=n0.convert(I1.type);let k0;if(I1.isData3DTexture)S.setTexture3D(I1,0),k0=z.TEXTURE_3D;else if(I1.isDataArrayTexture||I1.isCompressedArrayTexture)S.setTexture2DArray(I1,0),k0=z.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,I1.flipY),z.pixelStorei(z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,I1.premultiplyAlpha),z.pixelStorei(z.UNPACK_ALIGNMENT,I1.unpackAlignment);const M0=z.getParameter(z.UNPACK_ROW_LENGTH),f2=z.getParameter(z.UNPACK_IMAGE_HEIGHT),U2=z.getParameter(z.UNPACK_SKIP_PIXELS),t2=z.getParameter(z.UNPACK_SKIP_ROWS),F2=z.getParameter(z.UNPACK_SKIP_IMAGES),L0=M1.isCompressedTexture?M1.mipmaps[m1]:M1.image;z.pixelStorei(z.UNPACK_ROW_LENGTH,L0.width),z.pixelStorei(z.UNPACK_IMAGE_HEIGHT,L0.height),z.pixelStorei(z.UNPACK_SKIP_PIXELS,V.min.x),z.pixelStorei(z.UNPACK_SKIP_ROWS,V.min.y),z.pixelStorei(z.UNPACK_SKIP_IMAGES,V.min.z),M1.isDataTexture||M1.isData3DTexture?z.texSubImage3D(k0,m1,p1.x,p1.y,p1.z,Z1,a0,A0,p0,I0,L0.data):M1.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),z.compressedTexSubImage3D(k0,m1,p1.x,p1.y,p1.z,Z1,a0,A0,p0,L0.data)):z.texSubImage3D(k0,m1,p1.x,p1.y,p1.z,Z1,a0,A0,p0,I0,L0),z.pixelStorei(z.UNPACK_ROW_LENGTH,M0),z.pixelStorei(z.UNPACK_IMAGE_HEIGHT,f2),z.pixelStorei(z.UNPACK_SKIP_PIXELS,U2),z.pixelStorei(z.UNPACK_SKIP_ROWS,t2),z.pixelStorei(z.UNPACK_SKIP_IMAGES,F2),m1===0&&I1.generateMipmaps&&z.generateMipmap(k0),f1.unbindTexture()},this.initTexture=function(V){V.isCubeTexture?S.setTextureCube(V,0):V.isData3DTexture?S.setTexture3D(V,0):V.isDataArrayTexture||V.isCompressedArrayTexture?S.setTexture2DArray(V,0):S.setTexture2D(V,0),f1.unbindTexture()},this.resetState=function(){Q=0,R=0,T=null,f1.reset(),m0.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return k4}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const n=this.getContext();n.drawingBufferColorSpace=e===To?"display-p3":"srgb",n.unpackColorSpace=r2.workingColorSpace===_n?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===N2?u5:Wd}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===u5?N2:B4}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class Am extends Kd{}Am.prototype.isWebGL1Renderer=!0;class jo{constructor(e,n=25e-5){this.isFogExp2=!0,this.name="",this.color=new J1(e),this.density=n}clone(){return new jo(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Uo{constructor(e,n=1,C=1e3){this.isFog=!0,this.name="",this.color=new J1(e),this.near=n,this.far=C}clone(){return new Uo(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class fn extends Z0{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,n){return super.copy(e,n),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const n=super.toJSON(e);return this.fog!==null&&(n.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(n.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(n.object.backgroundIntensity=this.backgroundIntensity),n}}class Fo{constructor(e,n){this.isInterleavedBuffer=!0,this.array=e,this.stride=n,this.count=e!==void 0?e.length/n:0,this.usage=un,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=v8()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return E3("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,n,C){e*=this.stride,C*=n.stride;for(let r=0,i=this.stride;re.far||n.push({distance:a,point:Ct.clone(),uv:L3.getInterpolation(Ct,xr,it,mr,sA,ia,lA,new y1),face:null,object:this})}copy(e,n){return super.copy(e,n),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function kr(t,e,n,C,r,i){m7.subVectors(t,n).addScalar(.5).multiply(C),r!==void 0?(rt.x=i*m7.x-r*m7.y,rt.y=r*m7.x+i*m7.y):rt.copy(m7),t.copy(e),t.x+=rt.x,t.y+=rt.y,t.applyMatrix4(vm)}const Mr=new G,aA=new G;class wm extends Z0{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const n=e.levels;for(let C=0,r=n.length;C0){let C,r;for(C=1,r=n.length;C0){Mr.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(Mr);this.getObjectForDistance(r).raycast(e,n)}}update(e){const n=this.levels;if(n.length>1){Mr.setFromMatrixPosition(e.matrixWorld),aA.setFromMatrixPosition(this.matrixWorld);const C=Mr.distanceTo(aA)/e.zoom;n[0].object.visible=!0;let r,i;for(r=1,i=n.length;r=o)n[r-1].object.visible=!1,n[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=C.length&&C.push({start:-1,count:-1,z:-1});const i=C[this.index];r.push(i),this.index++,i.start=e.start,i.count=e.count,i.z=n}reset(){this.list.length=0,this.index=0}}const M7="batchId",W6=new f0,vA=new f0,KQ=new f0,LA=new f0,la=new Qn,Ir=new q2,J5=new o9,lt=new G,aa=new qQ,E9=new n2,Br=[];function ZQ(t,e,n=0){const C=e.itemSize;if(t.isInterleavedBufferAttribute||t.array.constructor!==e.array.constructor){const r=t.count;for(let i=0;i65536?new Uint32Array(i):new Uint16Array(i);n.setIndex(new C2(s,1))}const o=r>65536?new Uint32Array(C):new Uint16Array(C);n.setAttribute(M7,new C2(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(M7))throw new Error(`BatchedMesh: Geometry cannot use attribute "${M7}"`);const n=this.geometry;if(!!e.getIndex()!=!!n.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const C in n.attributes){if(C===M7)continue;if(!e.hasAttribute(C))throw new Error(`BatchedMesh: Added geometry missing "${C}". All geometries must have consistent attributes.`);const r=e.getAttribute(C),i=n.getAttribute(C);if(r.itemSize!==i.itemSize||r.normalized!==i.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new q2);const e=this._geometryCount,n=this.boundingBox,C=this._active;n.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let i=null;const o=this._reservedRanges,s=this._drawRanges,a=this._bounds;this._geometryCount!==0&&(i=o[o.length-1]),n===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=n,i===null?r.vertexStart=0:r.vertexStart=i.vertexStart+i.vertexCount;const d=e.getIndex(),g=d!==null;if(g&&(C===-1?r.indexCount=d.count:r.indexCount=C,i===null?r.indexStart=0:r.indexStart=i.indexStart+i.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const p=this._visibility,A=this._active,w=this._matricesTexture,x=this._matricesTexture.image.data;p.push(!0),A.push(!0);const y=this._geometryCount;this._geometryCount++,KQ.toArray(x,y*16),w.needsUpdate=!0,o.push(r),s.push({start:g?r.indexStart:r.vertexStart,count:-1}),a.push({boxInitialized:!1,box:new q2,sphereInitialized:!1,sphere:new o9});const m=this.geometry.getAttribute(M7);for(let v=0;v=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(n);const C=this.geometry,r=C.getIndex()!==null,i=C.getIndex(),o=n.getIndex(),s=this._reservedRanges[e];if(r&&o.count>s.indexCount||n.attributes.position.count>s.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const a=s.vertexStart,d=s.vertexCount;for(const w in C.attributes){if(w===M7)continue;const x=n.getAttribute(w),y=C.getAttribute(w);ZQ(x,y,a);const m=x.itemSize;for(let v=x.count,E=d;v=n.length||n[e]===!1?this:(n[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,n){if(this._active[e]===!1)return null;const r=this._bounds[e],i=r.box,o=this.geometry;if(r.boxInitialized===!1){i.makeEmpty();const s=o.index,a=o.attributes.position,d=this._drawRanges[e];for(let g=d.start,p=d.start+d.count;g=o||C[e]===!1?this:(n.toArray(i,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,n){const C=this._active,r=this._matricesTexture.image.data,i=this._geometryCount;return e>=i||C[e]===!1?null:n.fromArray(r,e*16)}setVisibleAt(e,n){const C=this._visibility,r=this._active,i=this._geometryCount;return e>=i||r[e]===!1||C[e]===n?this:(C[e]=n,this._visibilityChanged=!0,this)}getVisibleAt(e){const n=this._visibility,C=this._active,r=this._geometryCount;return e>=r||C[e]===!1?!1:n[e]}raycast(e,n){const C=this._visibility,r=this._active,i=this._drawRanges,o=this._geometryCount,s=this.matrixWorld,a=this.geometry;E9.material=this.material,E9.geometry.index=a.index,E9.geometry.attributes=a.attributes,E9.geometry.boundingBox===null&&(E9.geometry.boundingBox=new q2),E9.geometry.boundingSphere===null&&(E9.geometry.boundingSphere=new o9);for(let d=0;d({...n})),this._reservedRanges=e._reservedRanges.map(n=>({...n})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(n=>({boxInitialized:n.boxInitialized,box:n.box.clone(),sphereInitialized:n.sphereInitialized,sphere:n.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,n,C,r,i){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),s=o===null?1:o.array.BYTES_PER_ELEMENT,a=this._active,d=this._visibility,g=this._multiDrawStarts,p=this._multiDrawCounts,A=this._drawRanges,w=this.perObjectFrustumCulled;w&&(LA.multiplyMatrices(C.projectionMatrix,C.matrixWorldInverse).multiply(this.matrixWorld),la.setFromProjectionMatrix(LA,e.coordinateSystem));let x=0;if(this.sortObjects){vA.copy(this.matrixWorld).invert(),lt.setFromMatrixPosition(C.matrixWorld).applyMatrix4(vA);for(let v=0,E=d.length;va)continue;A.applyMatrix4(this.matrixWorld);const j=e.ray.origin.distanceTo(A);je.far||n.push({distance:j,point:p.clone().applyMatrix4(this.matrixWorld),index:k,face:null,faceIndex:null,object:this})}}else{const v=Math.max(0,o.start),E=Math.min(m.count,o.start+o.count);for(let k=v,I=E-1;ka)continue;A.applyMatrix4(this.matrixWorld);const R=e.ray.origin.distanceTo(A);Re.far||n.push({distance:R,point:p.clone().applyMatrix4(this.matrixWorld),index:k,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const n=this.geometry.morphAttributes,C=Object.keys(n);if(C.length>0){const r=n[C[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,o=r.length;i0){const r=n[C[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,o=r.length;ir.far)return;i.push({distance:d,distanceToRay:Math.sqrt(s),point:a,index:e,face:null,object:o})}}class eT extends k2{constructor(e,n,C,r,i,o,s,a,d){super(e,n,C,r,i,o,s,a,d),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:v2,this.magFilter=i!==void 0?i:v2,this.generateMipmaps=!1;const g=this;function p(){g.needsUpdate=!0,e.requestVideoFrameCallback(p)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(p)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class tT extends k2{constructor(e,n){super({width:e,height:n}),this.isFramebufferTexture=!0,this.magFilter=P2,this.minFilter=P2,this.generateMipmaps=!1,this.needsUpdate=!0}}class Go extends k2{constructor(e,n,C,r,i,o,s,a,d,g,p,A){super(null,o,s,a,d,g,r,i,p,A),this.isCompressedTexture=!0,this.image={width:n,height:C},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class nT extends Go{constructor(e,n,C,r,i,o){super(e,n,C,i,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=I9}}class CT extends Go{constructor(e,n,C){super(void 0,e[0].width,e[0].height,n,C,a6),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class rT extends k2{constructor(e,n,C,r,i,o,s,a,d){super(e,n,C,r,i,o,s,a,d),this.isCanvasTexture=!0,this.needsUpdate=!0}}class o4{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,n){const C=this.getUtoTmapping(e);return this.getPoint(C,n)}getPoints(e=5){const n=[];for(let C=0;C<=e;C++)n.push(this.getPoint(C/e));return n}getSpacedPoints(e=5){const n=[];for(let C=0;C<=e;C++)n.push(this.getPointAt(C/e));return n}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const n=[];let C,r=this.getPoint(0),i=0;n.push(0);for(let o=1;o<=e;o++)C=this.getPoint(o/e),i+=C.distanceTo(r),n.push(i),r=C;return this.cacheArcLengths=n,n}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,n){const C=this.getLengths();let r=0;const i=C.length;let o;n?o=n:o=e*C[i-1];let s=0,a=i-1,d;for(;s<=a;)if(r=Math.floor(s+(a-s)/2),d=C[r]-o,d<0)s=r+1;else if(d>0)a=r-1;else{a=r;break}if(r=a,C[r]===o)return r/(i-1);const g=C[r],A=C[r+1]-g,w=(o-g)/A;return(r+w)/(i-1)}getTangent(e,n){let r=e-1e-4,i=e+1e-4;r<0&&(r=0),i>1&&(i=1);const o=this.getPoint(r),s=this.getPoint(i),a=n||(o.isVector2?new y1:new G);return a.copy(s).sub(o).normalize(),a}getTangentAt(e,n){const C=this.getUtoTmapping(e);return this.getTangent(C,n)}computeFrenetFrames(e,n){const C=new G,r=[],i=[],o=[],s=new G,a=new f0;for(let w=0;w<=e;w++){const x=w/e;r[w]=this.getTangentAt(x,new G)}i[0]=new G,o[0]=new G;let d=Number.MAX_VALUE;const g=Math.abs(r[0].x),p=Math.abs(r[0].y),A=Math.abs(r[0].z);g<=d&&(d=g,C.set(1,0,0)),p<=d&&(d=p,C.set(0,1,0)),A<=d&&C.set(0,0,1),s.crossVectors(r[0],C).normalize(),i[0].crossVectors(r[0],s),o[0].crossVectors(r[0],i[0]);for(let w=1;w<=e;w++){if(i[w]=i[w-1].clone(),o[w]=o[w-1].clone(),s.crossVectors(r[w-1],r[w]),s.length()>Number.EPSILON){s.normalize();const x=Math.acos(Q2(r[w-1].dot(r[w]),-1,1));i[w].applyMatrix4(a.makeRotationAxis(s,x))}o[w].crossVectors(r[w],i[w])}if(n===!0){let w=Math.acos(Q2(i[0].dot(i[e]),-1,1));w/=e,r[0].dot(s.crossVectors(i[0],i[e]))>0&&(w=-w);for(let x=1;x<=e;x++)i[x].applyMatrix4(a.makeRotationAxis(r[x],w*x)),o[x].crossVectors(r[x],i[x])}return{tangents:r,normals:i,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class Oo extends o4{constructor(e=0,n=0,C=1,r=1,i=0,o=Math.PI*2,s=!1,a=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=n,this.xRadius=C,this.yRadius=r,this.aStartAngle=i,this.aEndAngle=o,this.aClockwise=s,this.aRotation=a}getPoint(e,n){const C=n||new y1,r=Math.PI*2;let i=this.aEndAngle-this.aStartAngle;const o=Math.abs(i)r;)i-=r;i0?0:(Math.floor(Math.abs(s)/i)+1)*i:a===0&&s===i-1&&(s=i-2,a=1);let d,g;this.closed||s>0?d=r[(s-1)%i]:(br.subVectors(r[0],r[1]).add(r[0]),d=br);const p=r[s%i],A=r[(s+1)%i];if(this.closed||s+2r.length-2?r.length-1:o+1],p=r[o>r.length-3?r.length-1:o+2];return C.set(IA(s,a.x,d.x,g.x,p.x),IA(s,a.y,d.y,g.y,p.y)),C}copy(e){super.copy(e),this.points=[];for(let n=0,C=e.points.length;n=C){const o=r[i]-C,s=this.curves[i],a=s.getLength(),d=a===0?0:1-o/a;return s.getPointAt(d,n)}i++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let n=0;for(let C=0,r=this.curves.length;C1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n}copy(e){super.copy(e),this.curves=[];for(let n=0,C=e.curves.length;n0){const p=d.getPoint(0);p.equals(this.currentPoint)||this.lineTo(p.x,p.y)}this.curves.push(d);const g=d.getPoint(1);return this.currentPoint.copy(g),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class Dn extends b0{constructor(e=[new y1(0,-.5),new y1(.5,0),new y1(0,.5)],n=12,C=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:n,phiStart:C,phiLength:r},n=Math.floor(n),r=Q2(r,0,Math.PI*2);const i=[],o=[],s=[],a=[],d=[],g=1/n,p=new G,A=new y1,w=new G,x=new G,y=new G;let m=0,v=0;for(let E=0;E<=e.length-1;E++)switch(E){case 0:m=e[E+1].x-e[E].x,v=e[E+1].y-e[E].y,w.x=v*1,w.y=-m,w.z=v*0,y.copy(w),w.normalize(),a.push(w.x,w.y,w.z);break;case e.length-1:a.push(y.x,y.y,y.z);break;default:m=e[E+1].x-e[E].x,v=e[E+1].y-e[E].y,w.x=v*1,w.y=-m,w.z=v*0,x.copy(w),w.x+=y.x,w.y+=y.y,w.z+=y.z,w.normalize(),a.push(w.x,w.y,w.z),y.copy(x)}for(let E=0;E<=n;E++){const k=C+E*g*r,I=Math.sin(k),Q=Math.cos(k);for(let R=0;R<=e.length-1;R++){p.x=e[R].x*I,p.y=e[R].y,p.z=e[R].x*Q,o.push(p.x,p.y,p.z),A.x=E/n,A.y=R/(e.length-1),s.push(A.x,A.y);const T=a[3*R+0]*I,j=a[3*R+1],q=a[3*R+0]*Q;d.push(T,j,q)}}for(let E=0;E0&&k(!0),n>0&&k(!1)),this.setIndex(g),this.setAttribute("position",new o0(p,3)),this.setAttribute("normal",new o0(A,3)),this.setAttribute("uv",new o0(w,2));function E(){const I=new G,Q=new G;let R=0;const T=(n-e)/C;for(let j=0;j<=i;j++){const q=[],_=j/i,P=_*(n-e)+e;for(let K=0;K<=r;K++){const g1=K/r,X=g1*a+s,i1=Math.sin(X),C1=Math.cos(X);Q.x=P*i1,Q.y=-_*C+m,Q.z=P*C1,p.push(Q.x,Q.y,Q.z),I.set(i1,T,C1).normalize(),A.push(I.x,I.y,I.z),w.push(g1,1-_),q.push(x++)}y.push(q)}for(let j=0;j.9&&T<.1&&(k<.2&&(o[E+0]+=1),I<.2&&(o[E+2]+=1),Q<.2&&(o[E+4]+=1))}}function A(E){i.push(E.x,E.y,E.z)}function w(E,k){const I=E*3;k.x=e[I+0],k.y=e[I+1],k.z=e[I+2]}function x(){const E=new G,k=new G,I=new G,Q=new G,R=new y1,T=new y1,j=new y1;for(let q=0,_=0;q80*n){s=d=t[0],a=g=t[1];for(let x=n;xd&&(d=p),A>g&&(g=A);w=Math.max(d-s,g-a),w=w!==0?32767/w:0}return gn(i,o,n,s,a,w,0),o}};function bm(t,e,n,C,r){let i,o;if(r===BT(t,e,n,C)>0)for(i=e;i=e;i-=C)o=BA(i,t[i],t[i+1],o);return o&&Xo(o,o.next)&&(An(o),o=o.next),o}function P3(t,e){if(!t)return t;e||(e=t);let n=t,C;do if(C=!1,!n.steiner&&(Xo(n,n.next)||y2(n.prev,n,n.next)===0)){if(An(n),n=e=n.prev,n===n.next)break;C=!0}else n=n.next;while(C||n!==e);return e}function gn(t,e,n,C,r,i,o){if(!t)return;!o&&i&&mT(t,C,r,i);let s=t,a,d;for(;t.prev!==t.next;){if(a=t.prev,d=t.next,i?fT(t,C,r,i):hT(t)){e.push(a.i/n|0),e.push(t.i/n|0),e.push(d.i/n|0),An(t),t=d.next,s=d.next;continue}if(t=d,t===s){o?o===1?(t=gT(P3(t),e,n),gn(t,e,n,C,r,i,2)):o===2&&pT(t,e,n,C,r,i):gn(P3(t),e,n,C,r,i,1);break}}}function hT(t){const e=t.prev,n=t,C=t.next;if(y2(e,n,C)>=0)return!1;const r=e.x,i=n.x,o=C.x,s=e.y,a=n.y,d=C.y,g=ri?r>o?r:o:i>o?i:o,w=s>a?s>d?s:d:a>d?a:d;let x=C.next;for(;x!==e;){if(x.x>=g&&x.x<=A&&x.y>=p&&x.y<=w&&$7(r,s,i,a,o,d,x.x,x.y)&&y2(x.prev,x,x.next)>=0)return!1;x=x.next}return!0}function fT(t,e,n,C){const r=t.prev,i=t,o=t.next;if(y2(r,i,o)>=0)return!1;const s=r.x,a=i.x,d=o.x,g=r.y,p=i.y,A=o.y,w=sa?s>d?s:d:a>d?a:d,m=g>p?g>A?g:A:p>A?p:A,v=Au(w,x,e,n,C),E=Au(y,m,e,n,C);let k=t.prevZ,I=t.nextZ;for(;k&&k.z>=v&&I&&I.z<=E;){if(k.x>=w&&k.x<=y&&k.y>=x&&k.y<=m&&k!==r&&k!==o&&$7(s,g,a,p,d,A,k.x,k.y)&&y2(k.prev,k,k.next)>=0||(k=k.prevZ,I.x>=w&&I.x<=y&&I.y>=x&&I.y<=m&&I!==r&&I!==o&&$7(s,g,a,p,d,A,I.x,I.y)&&y2(I.prev,I,I.next)>=0))return!1;I=I.nextZ}for(;k&&k.z>=v;){if(k.x>=w&&k.x<=y&&k.y>=x&&k.y<=m&&k!==r&&k!==o&&$7(s,g,a,p,d,A,k.x,k.y)&&y2(k.prev,k,k.next)>=0)return!1;k=k.prevZ}for(;I&&I.z<=E;){if(I.x>=w&&I.x<=y&&I.y>=x&&I.y<=m&&I!==r&&I!==o&&$7(s,g,a,p,d,A,I.x,I.y)&&y2(I.prev,I,I.next)>=0)return!1;I=I.nextZ}return!0}function gT(t,e,n){let C=t;do{const r=C.prev,i=C.next.next;!Xo(r,i)&&Qm(r,C,C.next,i)&&pn(r,i)&&pn(i,r)&&(e.push(r.i/n|0),e.push(C.i/n|0),e.push(i.i/n|0),An(C),An(C.next),C=t=i),C=C.next}while(C!==t);return P3(C)}function pT(t,e,n,C,r,i){let o=t;do{let s=o.next.next;for(;s!==o.prev;){if(o.i!==s.i&&ET(o,s)){let a=Tm(o,s);o=P3(o,o.next),a=P3(a,a.next),gn(o,e,n,C,r,i,0),gn(a,e,n,C,r,i,0);return}s=s.next}o=o.next}while(o!==t)}function AT(t,e,n,C){const r=[];let i,o,s,a,d;for(i=0,o=e.length;i=n.next.y&&n.next.y!==n.y){const A=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(A<=i&&A>C&&(C=A,r=n.x=n.x&&n.x>=a&&i!==n.x&&$7(or.x||n.x===r.x&&xT(r,n)))&&(r=n,g=p)),n=n.next;while(n!==s);return r}function xT(t,e){return y2(t.prev,t,e.prev)<0&&y2(e.next,t,t.next)<0}function mT(t,e,n,C){let r=t;do r.z===0&&(r.z=Au(r.x,r.y,e,n,C)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,kT(r)}function kT(t){let e,n,C,r,i,o,s,a,d=1;do{for(n=t,t=null,i=null,o=0;n;){for(o++,C=n,s=0,e=0;e0||a>0&&C;)s!==0&&(a===0||!C||n.z<=C.z)?(r=n,n=n.nextZ,s--):(r=C,C=C.nextZ,a--),i?i.nextZ=r:t=r,r.prevZ=i,i=r;n=C}i.nextZ=null,d*=2}while(o>1);return t}function Au(t,e,n,C,r){return t=(t-n)*r|0,e=(e-C)*r|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function MT(t){let e=t,n=t;do(e.x=(t-o)*(i-s)&&(t-o)*(C-s)>=(n-o)*(e-s)&&(n-o)*(i-s)>=(r-o)*(C-s)}function ET(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!yT(t,e)&&(pn(t,e)&&pn(e,t)&&IT(t,e)&&(y2(t.prev,t,e.prev)||y2(t,e.prev,e))||Xo(t,e)&&y2(t.prev,t,t.next)>0&&y2(e.prev,e,e.next)>0)}function y2(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Xo(t,e){return t.x===e.x&&t.y===e.y}function Qm(t,e,n,C){const r=Nr(y2(t,e,n)),i=Nr(y2(t,e,C)),o=Nr(y2(n,C,t)),s=Nr(y2(n,C,e));return!!(r!==i&&o!==s||r===0&&Pr(t,n,e)||i===0&&Pr(t,C,e)||o===0&&Pr(n,t,C)||s===0&&Pr(n,e,C))}function Pr(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Nr(t){return t>0?1:t<0?-1:0}function yT(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Qm(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}function pn(t,e){return y2(t.prev,t,t.next)<0?y2(t,e,t.next)>=0&&y2(t,t.prev,e)>=0:y2(t,e,t.prev)<0||y2(t,t.next,e)<0}function IT(t,e){let n=t,C=!1;const r=(t.x+e.x)/2,i=(t.y+e.y)/2;do n.y>i!=n.next.y>i&&n.next.y!==n.y&&r<(n.next.x-n.x)*(i-n.y)/(n.next.y-n.y)+n.x&&(C=!C),n=n.next;while(n!==t);return C}function Tm(t,e){const n=new vu(t.i,t.x,t.y),C=new vu(e.i,e.x,e.y),r=t.next,i=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,C.next=n,n.prev=C,i.next=C,C.prev=i,C}function BA(t,e,n,C){const r=new vu(t,e,n);return C?(r.next=C.next,r.prev=C,C.next.prev=r,C.next=r):(r.prev=r,r.next=r),r}function An(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function vu(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function BT(t,e,n,C){let r=0;for(let i=e,o=n-C;i2&&t[e-1].equals(t[0])&&t.pop()}function _A(t,e){for(let n=0;nNumber.EPSILON){const _1=Math.sqrt(T1),Y1=Math.sqrt(D*D+o1*o1),O1=L1.x-S/_1,q1=L1.y+e1/_1,l0=r1.x-o1/Y1,w0=r1.y+D/Y1,P1=((l0-O1)*o1-(w0-q1)*D)/(e1*o1-S*D);a1=O1+e1*P1-z.x,f1=q1+S*P1-z.y;const Q0=a1*a1+f1*f1;if(Q0<=2)return new y1(a1,f1);b1=Math.sqrt(Q0/2)}else{let _1=!1;e1>Number.EPSILON?D>Number.EPSILON&&(_1=!0):e1<-Number.EPSILON?D<-Number.EPSILON&&(_1=!0):Math.sign(S)===Math.sign(o1)&&(_1=!0),_1?(a1=-S,f1=e1,b1=Math.sqrt(T1)):(a1=e1,f1=S,b1=Math.sqrt(T1/2))}return new y1(a1/b1,f1/b1)}const t1=[];for(let z=0,L1=X.length,r1=L1-1,a1=z+1;z=0;z--){const L1=z/m,r1=w*Math.cos(L1*Math.PI/2),a1=x*Math.sin(L1*Math.PI/2)+y;for(let f1=0,b1=X.length;f1=0;){const a1=r1;let f1=r1-1;f1<0&&(f1=z.length-1);for(let b1=0,e1=g+m*2;b10)&&w.push(k,I,R),(v!==C-1||a0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class jm extends l9{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new J1(16777215),this.specular=new J1(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new J1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=m5,this.normalScale=new y1(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Sn,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class Um extends l9{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new J1(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new J1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=m5,this.normalScale=new y1(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class Fm extends l9{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=m5,this.normalScale=new y1(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class Wm extends l9{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new J1(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new J1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=m5,this.normalScale=new y1(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Sn,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class Gm extends l9{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new J1(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=m5,this.normalScale=new y1(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class Om extends O9{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function w3(t,e,n){return!t||!n&&t.constructor===e?t:typeof e.BYTES_PER_ELEMENT=="number"?new e(t):Array.prototype.slice.call(t)}function zm(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Vm(t){function e(r,i){return t[r]-t[i]}const n=t.length,C=new Array(n);for(let r=0;r!==n;++r)C[r]=r;return C.sort(e),C}function Lu(t,e,n){const C=t.length,r=new t.constructor(C);for(let i=0,o=0;o!==C;++i){const s=n[i]*e;for(let a=0;a!==e;++a)r[o++]=t[s+a]}return r}function ah(t,e,n,C){let r=1,i=t[0];for(;i!==void 0&&i[C]===void 0;)i=t[r++];if(i===void 0)return;let o=i[C];if(o!==void 0)if(Array.isArray(o))do o=i[C],o!==void 0&&(e.push(i.time),n.push.apply(n,o)),i=t[r++];while(i!==void 0);else if(o.toArray!==void 0)do o=i[C],o!==void 0&&(e.push(i.time),o.toArray(n,n.length)),i=t[r++];while(i!==void 0);else do o=i[C],o!==void 0&&(e.push(i.time),n.push(o)),i=t[r++];while(i!==void 0)}function bT(t,e,n,C,r=30){const i=t.clone();i.name=e;const o=[];for(let a=0;a=C)){p.push(d.times[w]);for(let y=0;yi.tracks[a].times[0]&&(s=i.tracks[a].times[0]);for(let a=0;a=s.times[x]){const v=x*p+g,E=v+p-g;y=s.values.slice(v,E)}else{const v=s.createInterpolant(),E=g,k=p-g;v.evaluate(i),y=v.resultBuffer.slice(E,k)}a==="quaternion"&&new F9().fromArray(y).normalize().conjugate().toArray(y);const m=d.times.length;for(let v=0;v=i)){const s=n[1];e=i)break t}o=C,C=0;break n}break e}for(;C>>1;en;)--o;if(++o,i!==0||o!==r){i>=o&&(o=Math.max(o,1),i=o-1);const s=this.getValueSize();this.times=C.slice(i,o),this.values=this.values.slice(i*s,o*s)}return this}validate(){let e=!0;const n=this.getValueSize();n-Math.floor(n)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const C=this.times,r=this.values,i=C.length;i===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let s=0;s!==i;s++){const a=C[s];if(typeof a=="number"&&isNaN(a)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,s,a),e=!1;break}if(o!==null&&o>a){console.error("THREE.KeyframeTrack: Out of order keys.",this,s,a,o),e=!1;break}o=a}if(r!==void 0&&zm(r))for(let s=0,a=r.length;s!==a;++s){const d=r[s];if(isNaN(d)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,s,d),e=!1;break}}return e}optimize(){const e=this.times.slice(),n=this.values.slice(),C=this.getValueSize(),r=this.getInterpolation()===xi,i=e.length-1;let o=1;for(let s=1;s0){e[o]=e[i];for(let s=i*C,a=o*C,d=0;d!==C;++d)n[a+d]=n[s+d];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=n.slice(0,o*C)):(this.times=e,this.values=n),this}clone(){const e=this.times.slice(),n=this.values.slice(),C=this.constructor,r=new C(this.name,e,n);return r.createInterpolant=this.createInterpolant,r}}s4.prototype.TimeBufferType=Float32Array;s4.prototype.ValueBufferType=Float32Array;s4.prototype.DefaultInterpolation=on;class U3 extends s4{}U3.prototype.ValueTypeName="bool";U3.prototype.ValueBufferType=Array;U3.prototype.DefaultInterpolation=rn;U3.prototype.InterpolantFactoryMethodLinear=void 0;U3.prototype.InterpolantFactoryMethodSmooth=void 0;class uh extends s4{}uh.prototype.ValueTypeName="color";class vn extends s4{}vn.prototype.ValueTypeName="number";class Xm extends Hn{constructor(e,n,C,r){super(e,n,C,r)}interpolate_(e,n,C,r){const i=this.resultBuffer,o=this.sampleValues,s=this.valueSize,a=(C-n)/(r-n);let d=e*s;for(let g=d+s;d!==g;d+=4)F9.slerpFlat(i,0,o,d-s,o,d,a);return i}}class me extends s4{InterpolantFactoryMethodLinear(e){return new Xm(this.times,this.values,this.getValueSize(),e)}}me.prototype.ValueTypeName="quaternion";me.prototype.DefaultInterpolation=on;me.prototype.InterpolantFactoryMethodSmooth=void 0;class F3 extends s4{}F3.prototype.ValueTypeName="string";F3.prototype.ValueBufferType=Array;F3.prototype.DefaultInterpolation=rn;F3.prototype.InterpolantFactoryMethodLinear=void 0;F3.prototype.InterpolantFactoryMethodSmooth=void 0;class Ln extends s4{}Ln.prototype.ValueTypeName="vector";class wn{constructor(e,n=-1,C,r=Qo){this.name=e,this.tracks=C,this.duration=n,this.blendMode=r,this.uuid=v8(),this.duration<0&&this.resetDuration()}static parse(e){const n=[],C=e.tracks,r=1/(e.fps||1);for(let o=0,s=C.length;o!==s;++o)n.push(PT(C[o]).scale(r));const i=new this(e.name,e.duration,n,e.blendMode);return i.uuid=e.uuid,i}static toJSON(e){const n=[],C=e.tracks,r={name:e.name,duration:e.duration,tracks:n,uuid:e.uuid,blendMode:e.blendMode};for(let i=0,o=C.length;i!==o;++i)n.push(s4.toJSON(C[i]));return r}static CreateFromMorphTargetSequence(e,n,C,r){const i=n.length,o=[];for(let s=0;s1){const p=g[1];let A=r[p];A||(r[p]=A=[]),A.push(d)}}const o=[];for(const s in r)o.push(this.CreateFromMorphTargetSequence(s,r[s],n,C));return o}static parseAnimation(e,n){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const C=function(p,A,w,x,y){if(w.length!==0){const m=[],v=[];ah(w,m,v,x),m.length!==0&&y.push(new p(A,m,v))}},r=[],i=e.name||"default",o=e.fps||30,s=e.blendMode;let a=e.length||-1;const d=e.hierarchy||[];for(let p=0;p{n&&n(i),this.manager.itemEnd(e)},0),i;if(V4[e]!==void 0){V4[e].push({onLoad:n,onProgress:C,onError:r});return}V4[e]=[],V4[e].push({onLoad:n,onProgress:C,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),s=this.mimeType,a=this.responseType;fetch(o).then(d=>{if(d.status===200||d.status===0){if(d.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||d.body===void 0||d.body.getReader===void 0)return d;const g=V4[e],p=d.body.getReader(),A=d.headers.get("Content-Length")||d.headers.get("X-File-Size"),w=A?parseInt(A):0,x=w!==0;let y=0;const m=new ReadableStream({start(v){E();function E(){p.read().then(({done:k,value:I})=>{if(k)v.close();else{y+=I.byteLength;const Q=new ProgressEvent("progress",{lengthComputable:x,loaded:y,total:w});for(let R=0,T=g.length;R{switch(a){case"arraybuffer":return d.arrayBuffer();case"blob":return d.blob();case"document":return d.text().then(g=>new DOMParser().parseFromString(g,s));case"json":return d.json();default:if(s===void 0)return d.text();{const p=/charset="?([^;"\s]*)"?/i.exec(s),A=p&&p[1]?p[1].toLowerCase():void 0,w=new TextDecoder(A);return d.arrayBuffer().then(x=>w.decode(x))}}}).then(d=>{n6.add(e,d);const g=V4[e];delete V4[e];for(let p=0,A=g.length;p{const g=V4[e];if(g===void 0)throw this.manager.itemError(e),d;delete V4[e];for(let p=0,A=g.length;p{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class HT extends z9{constructor(e){super(e)}load(e,n,C,r){const i=this,o=new S4(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(s){try{n(i.parse(JSON.parse(s)))}catch(a){r?r(a):console.error(a),i.manager.itemError(e)}},C,r)}parse(e){const n=[];for(let C=0;C0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const i in e.uniforms){const o=e.uniforms[i];switch(r.uniforms[i]={},o.type){case"t":r.uniforms[i].value=C(o.value);break;case"c":r.uniforms[i].value=new J1().setHex(o.value);break;case"v2":r.uniforms[i].value=new y1().fromArray(o.value);break;case"v3":r.uniforms[i].value=new G().fromArray(o.value);break;case"v4":r.uniforms[i].value=new i2().fromArray(o.value);break;case"m3":r.uniforms[i].value=new B0().fromArray(o.value);break;case"m4":r.uniforms[i].value=new f0().fromArray(o.value);break;default:r.uniforms[i].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const i in e.extensions)r.extensions[i]=e.extensions[i];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=C(e.map)),e.matcap!==void 0&&(r.matcap=C(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=C(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=C(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=C(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let i=e.normalScale;Array.isArray(i)===!1&&(i=[i,i]),r.normalScale=new y1().fromArray(i)}return e.displacementMap!==void 0&&(r.displacementMap=C(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=C(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=C(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=C(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=C(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=C(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=C(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=C(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=C(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=C(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=C(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=C(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=C(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=C(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new y1().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=C(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=C(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=C(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=C(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=C(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=C(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=C(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const n={ShadowMaterial:Pm,SpriteMaterial:Zd,RawShaderMaterial:Nm,ShaderMaterial:r4,PointsMaterial:th,MeshPhysicalMaterial:Hm,MeshStandardMaterial:lh,MeshPhongMaterial:jm,MeshToonMaterial:Um,MeshNormalMaterial:Fm,MeshLambertMaterial:Wm,MeshDepthMaterial:No,MeshDistanceMaterial:Ho,MeshBasicMaterial:n8,MeshMatcapMaterial:Gm,LineDashedMaterial:Om,LineBasicMaterial:O9,Material:l9};return new n[e]}}class wu{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let n="";for(let C=0,r=e.length;C0){const a=new dh(n);i=new xn(a),i.setCrossOrigin(this.crossOrigin);for(let d=0,g=e.length;d0){r=new xn(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,s=e.length;o{const m=new q2;m.min.fromArray(y.boxMin),m.max.fromArray(y.boxMax);const v=new o9;return v.radius=y.sphereRadius,v.center.fromArray(y.sphereCenter),{boxInitialized:y.boxInitialized,box:m,sphereInitialized:y.sphereInitialized,sphere:v}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=d(e.matricesTexture.uuid);break;case"LOD":o=new wm;break;case"Line":o=new v5(s(e.geometry),a(e.material));break;case"LineLoop":o=new Mm(s(e.geometry),a(e.material));break;case"LineSegments":o=new _4(s(e.geometry),a(e.material));break;case"PointCloud":case"Points":o=new Em(s(e.geometry),a(e.material));break;case"Sprite":o=new Lm(a(e.material));break;case"Group":o=new D8;break;case"Bone":o=new eh;break;default:o=new Z0}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const A=e.children;for(let w=0;w"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,n,C,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const i=this,o=n6.get(e);if(o!==void 0){if(i.manager.itemStart(e),o.then){o.then(d=>{n&&n(d),i.manager.itemEnd(e)}).catch(d=>{r&&r(d)});return}return setTimeout(function(){n&&n(o),i.manager.itemEnd(e)},0),o}const s={};s.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",s.headers=this.requestHeader;const a=fetch(e,s).then(function(d){return d.blob()}).then(function(d){return createImageBitmap(d,Object.assign(i.options,{colorSpaceConversion:"none"}))}).then(function(d){return n6.add(e,d),n&&n(d),i.manager.itemEnd(e),d}).catch(function(d){r&&r(d),n6.remove(e),i.manager.itemError(e),i.manager.itemEnd(e)});n6.add(e,a),i.manager.itemStart(e)}}let Hr;class gh{static getContext(){return Hr===void 0&&(Hr=new(window.AudioContext||window.webkitAudioContext)),Hr}static setContext(e){Hr=e}}class YT extends z9{constructor(e){super(e)}load(e,n,C,r){const i=this,o=new S4(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{const d=a.slice(0);gh.getContext().decodeAudioData(d,function(p){n(p)}).catch(s)}catch(d){s(d)}},C,r);function s(a){r?r(a):console.error(a),i.manager.itemError(e)}}}const HA=new f0,jA=new f0,q5=new f0;class XT{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new X2,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new X2,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const n=this._cache;if(n.focus!==e.focus||n.fov!==e.fov||n.aspect!==e.aspect*this.aspect||n.near!==e.near||n.far!==e.far||n.zoom!==e.zoom||n.eyeSep!==this.eyeSep){n.focus=e.focus,n.fov=e.fov,n.aspect=e.aspect*this.aspect,n.near=e.near,n.far=e.far,n.zoom=e.zoom,n.eyeSep=this.eyeSep,q5.copy(e.projectionMatrix);const r=n.eyeSep/2,i=r*n.near/n.focus,o=n.near*Math.tan(M3*n.fov*.5)/n.zoom;let s,a;jA.elements[12]=-r,HA.elements[12]=r,s=-o*n.aspect+i,a=o*n.aspect+i,q5.elements[0]=2*n.near/(a-s),q5.elements[8]=(a+s)/(a-s),this.cameraL.projectionMatrix.copy(q5),s=-o*n.aspect-i,a=o*n.aspect-i,q5.elements[0]=2*n.near/(a-s),q5.elements[8]=(a+s)/(a-s),this.cameraR.projectionMatrix.copy(q5)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(jA),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(HA)}}let ph=class{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=UA(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const n=UA();e=(n-this.oldTime)/1e3,this.oldTime=n,this.elapsedTime+=e}return e}};function UA(){return(typeof performance>"u"?Date:performance).now()}const K5=new G,FA=new F9,JT=new G,Z5=new G;class qT extends Z0{constructor(){super(),this.type="AudioListener",this.context=gh.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new ph}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const n=this.context.listener,C=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(K5,FA,JT),Z5.set(0,0,-1).applyQuaternion(FA),n.positionX){const r=this.context.currentTime+this.timeDelta;n.positionX.linearRampToValueAtTime(K5.x,r),n.positionY.linearRampToValueAtTime(K5.y,r),n.positionZ.linearRampToValueAtTime(K5.z,r),n.forwardX.linearRampToValueAtTime(Z5.x,r),n.forwardY.linearRampToValueAtTime(Z5.y,r),n.forwardZ.linearRampToValueAtTime(Z5.z,r),n.upX.linearRampToValueAtTime(C.x,r),n.upY.linearRampToValueAtTime(C.y,r),n.upZ.linearRampToValueAtTime(C.z,r)}else n.setPosition(K5.x,K5.y,K5.z),n.setOrientation(Z5.x,Z5.y,Z5.z,C.x,C.y,C.z)}}class sk extends Z0{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const n=this.context.createBufferSource();return n.buffer=this.buffer,n.loop=this.loop,n.loopStart=this.loopStart,n.loopEnd=this.loopEnd,n.onended=this.onEnded.bind(this),n.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=n,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,n=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,n=this.filters.length;e0&&this._mixBufferRegionAdditive(C,r,this._addIndex*n,1,n);for(let a=n,d=n+n;a!==d;++a)if(C[a]!==C[a+n]){s.setValue(C,r);break}}saveOriginalState(){const e=this.binding,n=this.buffer,C=this.valueSize,r=C*this._origIndex;e.getValue(n,r);for(let i=C,o=r;i!==o;++i)n[i]=n[r+i%C];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,n=e+this.valueSize;for(let C=e;C=.5)for(let o=0;o!==i;++o)e[n+o]=e[C+o]}_slerp(e,n,C,r){F9.slerpFlat(e,n,e,n,e,C,r)}_slerpAdditive(e,n,C,r,i){const o=this._workIndex*i;F9.multiplyQuaternionsFlat(e,o,e,n,e,C),F9.slerpFlat(e,n,e,n,e,o,r)}_lerp(e,n,C,r,i){const o=1-r;for(let s=0;s!==i;++s){const a=n+s;e[a]=e[a]*o+e[C+s]*r}}_lerpAdditive(e,n,C,r,i){for(let o=0;o!==i;++o){const s=n+o;e[s]=e[s]+e[C+o]*r}}}const Ah="\\[\\]\\.:\\/",tD=new RegExp("["+Ah+"]","g"),vh="[^"+Ah+"]",nD="[^"+Ah.replace("\\.","")+"]",CD=/((?:WC+[\/:])*)/.source.replace("WC",vh),rD=/(WCOD+)?/.source.replace("WCOD",nD),iD=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",vh),oD=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",vh),sD=new RegExp("^"+CD+rD+iD+oD+"$"),lD=["material","materials","bones","map"];class aD{constructor(e,n,C){const r=C||V0.parseTrackName(n);this._targetGroup=e,this._bindings=e.subscribe_(n,r)}getValue(e,n){this.bind();const C=this._targetGroup.nCachedObjects_,r=this._bindings[C];r!==void 0&&r.getValue(e,n)}setValue(e,n){const C=this._bindings;for(let r=this._targetGroup.nCachedObjects_,i=C.length;r!==i;++r)C[r].setValue(e,n)}bind(){const e=this._bindings;for(let n=this._targetGroup.nCachedObjects_,C=e.length;n!==C;++n)e[n].bind()}unbind(){const e=this._bindings;for(let n=this._targetGroup.nCachedObjects_,C=e.length;n!==C;++n)e[n].unbind()}}class V0{constructor(e,n,C){this.path=n,this.parsedPath=C||V0.parseTrackName(n),this.node=V0.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,n,C){return e&&e.isAnimationObjectGroup?new V0.Composite(e,n,C):new V0(e,n,C)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(tD,"")}static parseTrackName(e){const n=sD.exec(e);if(n===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const C={nodeName:n[2],objectName:n[3],objectIndex:n[4],propertyName:n[5],propertyIndex:n[6]},r=C.nodeName&&C.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const i=C.nodeName.substring(r+1);lD.indexOf(i)!==-1&&(C.nodeName=C.nodeName.substring(0,r),C.objectName=i)}if(C.propertyName===null||C.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return C}static findNode(e,n){if(n===void 0||n===""||n==="."||n===-1||n===e.name||n===e.uuid)return e;if(e.skeleton){const C=e.skeleton.getBoneByName(n);if(C!==void 0)return C}if(e.children){const C=function(i){for(let o=0;o=i){const p=i++,A=e[p];n[A.uuid]=g,e[g]=A,n[d]=p,e[p]=a;for(let w=0,x=r;w!==x;++w){const y=C[w],m=y[p],v=y[g];y[g]=m,y[p]=v}}}this.nCachedObjects_=i}uncache(){const e=this._objects,n=this._indicesByUUID,C=this._bindings,r=C.length;let i=this.nCachedObjects_,o=e.length;for(let s=0,a=arguments.length;s!==a;++s){const d=arguments[s],g=d.uuid,p=n[g];if(p!==void 0)if(delete n[g],p0&&(n[w.uuid]=p),e[p]=w,e.pop();for(let x=0,y=r;x!==y;++x){const m=C[x];m[p]=m[A],m.pop()}}}this.nCachedObjects_=i}subscribe_(e,n){const C=this._bindingsIndicesByPath;let r=C[e];const i=this._bindings;if(r!==void 0)return i[r];const o=this._paths,s=this._parsedPaths,a=this._objects,d=a.length,g=this.nCachedObjects_,p=new Array(d);r=i.length,C[e]=r,o.push(e),s.push(n),i.push(p);for(let A=g,w=a.length;A!==w;++A){const x=a[A];p[A]=new V0(x,e,n)}return p}unsubscribe_(e){const n=this._bindingsIndicesByPath,C=n[e];if(C!==void 0){const r=this._paths,i=this._parsedPaths,o=this._bindings,s=o.length-1,a=o[s],d=e[s];n[d]=C,o[C]=a,o.pop(),i[C]=i[s],i.pop(),r[C]=r[s],r.pop()}}}class ak{constructor(e,n,C=null,r=n.blendMode){this._mixer=e,this._clip=n,this._localRoot=C,this.blendMode=r;const i=n.tracks,o=i.length,s=new Array(o),a={endingStart:p3,endingEnd:p3};for(let d=0;d!==o;++d){const g=i[d].createInterpolant(null);s[d]=g,g.settings=a}this._interpolantSettings=a,this._interpolants=s,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=Ox,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,n){return this.loop=e,this.repetitions=n,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,n,C){if(e.fadeOut(n),this.fadeIn(n),C){const r=this._clip.duration,i=e._clip.duration,o=i/r,s=r/i;e.warp(1,o,n),this.warp(s,1,n)}return this}crossFadeTo(e,n,C){return e.crossFadeFrom(this,n,C)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,n,C){const r=this._mixer,i=r.time,o=this.timeScale;let s=this._timeScaleInterpolant;s===null&&(s=r._lendControlInterpolant(),this._timeScaleInterpolant=s);const a=s.parameterPositions,d=s.sampleValues;return a[0]=i,a[1]=i+C,d[0]=e/o,d[1]=n/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,n,C,r){if(!this.enabled){this._updateWeight(e);return}const i=this._startTime;if(i!==null){const a=(e-i)*C;a<0||C===0?n=0:(this._startTime=null,n=C*a)}n*=this._updateTimeScale(e);const o=this._updateTime(n),s=this._updateWeight(e);if(s>0){const a=this._interpolants,d=this._propertyBindings;switch(this.blendMode){case Fd:for(let g=0,p=a.length;g!==p;++g)a[g].evaluate(o),d[g].accumulateAdditive(s);break;case Qo:default:for(let g=0,p=a.length;g!==p;++g)a[g].evaluate(o),d[g].accumulate(r,s)}}}_updateWeight(e){let n=0;if(this.enabled){n=this.weight;const C=this._weightInterpolant;if(C!==null){const r=C.evaluate(e)[0];n*=r,e>C.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=n,n}_updateTimeScale(e){let n=0;if(!this.paused){n=this.timeScale;const C=this._timeScaleInterpolant;if(C!==null){const r=C.evaluate(e)[0];n*=r,e>C.parameterPositions[1]&&(this.stopWarping(),n===0?this.paused=!0:this.timeScale=n)}}return this._effectiveTimeScale=n,n}_updateTime(e){const n=this._clip.duration,C=this.loop;let r=this.time+e,i=this._loopCount;const o=C===zx;if(e===0)return i===-1?r:o&&(i&1)===1?n-r:r;if(C===Gx){i===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=n)r=n;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(i===-1&&(e>=0?(i=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=n||r<0){const s=Math.floor(r/n);r-=n*s,i+=Math.abs(s);const a=this.repetitions-i;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?n:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(a===1){const d=e<0;this._setEndings(d,!d,o)}else this._setEndings(!1,!1,o);this._loopCount=i,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:s})}}else this.time=r;if(o&&(i&1)===1)return n-r}return r}_setEndings(e,n,C){const r=this._interpolantSettings;C?(r.endingStart=A3,r.endingEnd=A3):(e?r.endingStart=this.zeroSlopeAtStart?A3:p3:r.endingStart=sn,n?r.endingEnd=this.zeroSlopeAtEnd?A3:p3:r.endingEnd=sn)}_scheduleFading(e,n,C){const r=this._mixer,i=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const s=o.parameterPositions,a=o.sampleValues;return s[0]=i,a[0]=n,s[1]=i+e,a[1]=C,this}}const uD=new Float32Array(1);class dD extends u6{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,n){const C=e._localRoot||this._root,r=e._clip.tracks,i=r.length,o=e._propertyBindings,s=e._interpolants,a=C.uuid,d=this._bindingsByRootAndName;let g=d[a];g===void 0&&(g={},d[a]=g);for(let p=0;p!==i;++p){const A=r[p],w=A.name;let x=g[w];if(x!==void 0)++x.referenceCount,o[p]=x;else{if(x=o[p],x!==void 0){x._cacheIndex===null&&(++x.referenceCount,this._addInactiveBinding(x,a,w));continue}const y=n&&n._propertyBindings[p].binding.parsedPath;x=new lk(V0.create(C,w,y),A.ValueTypeName,A.getValueSize()),++x.referenceCount,this._addInactiveBinding(x,a,w),o[p]=x}s[p].resultBuffer=x.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const C=(e._localRoot||this._root).uuid,r=e._clip.uuid,i=this._actionsByClip[r];this._bindAction(e,i&&i.knownActions[0]),this._addInactiveAction(e,r,C)}const n=e._propertyBindings;for(let C=0,r=n.length;C!==r;++C){const i=n[C];i.useCount++===0&&(this._lendBinding(i),i.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const n=e._propertyBindings;for(let C=0,r=n.length;C!==r;++C){const i=n[C];--i.useCount===0&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const n=e._cacheIndex;return n!==null&&n=0;--C)e[C].stop();return this}update(e){e*=this.timeScale;const n=this._actions,C=this._nActiveActions,r=this.time+=e,i=Math.sign(e),o=this._accuIndex^=1;for(let d=0;d!==C;++d)n[d]._update(r,e,i,o);const s=this._bindings,a=this._nActiveBindings;for(let d=0;d!==a;++d)s[d].apply(o);return this}setTime(e){this.time=0;for(let n=0;nthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,n){return n.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,n){return n.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,OA).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const zA=new G,jr=new G;class LD{constructor(e=new G,n=new G){this.start=e,this.end=n}set(e,n){return this.start.copy(e),this.end.copy(n),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,n){return this.delta(n).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,n){zA.subVectors(e,this.start),jr.subVectors(this.end,this.start);const C=jr.dot(jr);let i=jr.dot(zA)/C;return n&&(i=Q2(i,0,1)),i}closestPointToPoint(e,n,C){const r=this.closestPointToPointParameter(e,n);return this.delta(C).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const VA=new G;class wD extends Z0{constructor(e,n){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,this.type="SpotLightHelper";const C=new b0,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,s=1,a=32;o1)for(let p=0;p.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{qA.set(e.z,0,-e.x).normalize();const n=Math.acos(e.y);this.quaternion.setFromAxisAngle(qA,n)}}setLength(e,n=e*.2,C=n*.2){this.line.scale.set(1,Math.max(1e-4,e-n),1),this.line.updateMatrix(),this.cone.scale.set(C,n,C),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class QD extends _4{constructor(e=1){const n=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],C=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new b0;r.setAttribute("position",new o0(n,3)),r.setAttribute("color",new o0(C,3));const i=new O9({vertexColors:!0,toneMapped:!1});super(r,i),this.type="AxesHelper"}setColors(e,n,C){const r=new J1,i=this.geometry.attributes.color.array;return r.set(e),r.toArray(i,0),r.toArray(i,3),r.set(n),r.toArray(i,6),r.toArray(i,9),r.set(C),r.toArray(i,12),r.toArray(i,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class V6{constructor(){this.type="ShapePath",this.color=new J1,this.subPaths=[],this.currentPath=null}moveTo(e,n){return this.currentPath=new d5,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,n),this}lineTo(e,n){return this.currentPath.lineTo(e,n),this}quadraticCurveTo(e,n,C,r){return this.currentPath.quadraticCurveTo(e,n,C,r),this}bezierCurveTo(e,n,C,r,i,o){return this.currentPath.bezierCurveTo(e,n,C,r,i,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function n(v){const E=[];for(let k=0,I=v.length;kNumber.EPSILON){if(_<0&&(T=E[R],q=-q,j=E[Q],_=-_),v.yj.y)continue;if(v.y===T.y){if(v.x===T.x)return!0}else{const P=_*(v.x-T.x)-q*(v.y-T.y);if(P===0)return!0;if(P<0)continue;I=!I}}else{if(v.y!==T.y)continue;if(j.x<=v.x&&v.x<=T.x||T.x<=v.x&&v.x<=j.x)return!0}}return I}const r=t4.isClockWise,i=this.subPaths;if(i.length===0)return[];let o,s,a;const d=[];if(i.length===1)return s=i[0],a=new h5,a.curves=s.curves,d.push(a),d;let g=!r(i[0].getPoints());g=e?!g:g;const p=[],A=[];let w=[],x=0,y;A[x]=void 0,w[x]=[];for(let v=0,E=i.length;v1){let v=!1,E=0;for(let k=0,I=A.length;k0&&v===!1&&(w=p)}let m;for(let v=0,E=A.length;v{const p=typeof d=="function"?d(e):d;if(p!==e){const A=e;e=g?p:Object.assign({},e,p),n.forEach(w=>w(e,A))}},r=()=>e,i=(d,g=r,p=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let A=g(e);function w(){const x=g(e);if(!p(A,x)){const y=A;d(A=x,y)}}return n.add(w),()=>n.delete(w)},a={setState:C,getState:r,subscribe:(d,g,p)=>g||p?i(d,g,p):(n.add(d),()=>n.delete(d)),destroy:()=>n.clear()};return e=t(C,r,a),a}const PD=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),KA=PD?u.useEffect:u.useLayoutEffect;function hk(t){const e=typeof t=="function"?DD(t):t,n=(C=e.getState,r=Object.is)=>{const[,i]=u.useReducer(m=>m+1,0),o=e.getState(),s=u.useRef(o),a=u.useRef(C),d=u.useRef(r),g=u.useRef(!1),p=u.useRef();p.current===void 0&&(p.current=C(o));let A,w=!1;(s.current!==o||a.current!==C||d.current!==r||g.current)&&(A=C(o),w=!r(p.current,A)),KA(()=>{w&&(p.current=A),s.current=o,a.current=C,d.current=r,g.current=!1});const x=u.useRef(o);KA(()=>{const m=()=>{try{const E=e.getState(),k=a.current(E);d.current(p.current,k)||(s.current=E,p.current=k,i())}catch{g.current=!0,i()}},v=e.subscribe(m);return e.getState()!==x.current&&m(),v},[]);const y=w?A:p.current;return u.useDebugValue(y),y};return Object.assign(n,e),n[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const C=[n,e];return{next(){const r=C.length<=0;return{value:C.shift(),done:r}}}},n}var fk={exports:{}},gk={exports:{}},pk={};/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(t){function e(U,t1){var n1=U.length;U.push(t1);e:for(;0>>1,x1=U[d1];if(0>>1;d1r(O,n1))Wr(F,O)?(U[d1]=F,U[W]=n1,d1=W):(U[d1]=O,U[$]=n1,d1=$);else if(Wr(F,n1))U[d1]=F,U[W]=n1,d1=W;else break e}}return t1}function r(U,t1){var n1=U.sortIndex-t1.sortIndex;return n1!==0?n1:U.id-t1.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;t.unstable_now=function(){return i.now()}}else{var o=Date,s=o.now();t.unstable_now=function(){return o.now()-s}}var a=[],d=[],g=1,p=null,A=3,w=!1,x=!1,y=!1,m=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function k(U){for(var t1=n(d);t1!==null;){if(t1.callback===null)C(d);else if(t1.startTime<=U)C(d),t1.sortIndex=t1.expirationTime,e(a,t1);else break;t1=n(d)}}function I(U){if(y=!1,k(U),!x)if(n(a)!==null)x=!0,C1(Q);else{var t1=n(d);t1!==null&&u1(I,t1.startTime-U)}}function Q(U,t1){x=!1,y&&(y=!1,v(j),j=-1),w=!0;var n1=A;try{for(k(t1),p=n(a);p!==null&&(!(p.expirationTime>t1)||U&&!P());){var d1=p.callback;if(typeof d1=="function"){p.callback=null,A=p.priorityLevel;var x1=d1(p.expirationTime<=t1);t1=t.unstable_now(),typeof x1=="function"?p.callback=x1:p===n(a)&&C(a),k(t1)}else C(a);p=n(a)}if(p!==null)var U1=!0;else{var $=n(d);$!==null&&u1(I,$.startTime-t1),U1=!1}return U1}finally{p=null,A=n1,w=!1}}var R=!1,T=null,j=-1,q=5,_=-1;function P(){return!(t.unstable_now()-_U||125d1?(U.sortIndex=n1,e(d,U),n(a)===null&&U===n(d)&&(y?(v(j),j=-1):y=!0,u1(I,n1-d1))):(U.sortIndex=x1,e(a,U),x||w||(x=!0,C1(Q))),U},t.unstable_shouldYield=P,t.unstable_wrapCallback=function(U){var t1=A;return function(){var n1=A;A=t1;try{return U.apply(this,arguments)}finally{A=n1}}}})(pk);gk.exports=pk;var mu=gk.exports;/** + * @license React + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ND=function(e){var n={},C=u,r=mu,i=Object.assign;function o(l){for(var c="https://reactjs.org/docs/error-decoder.html?invariant="+l,L=1;Lc1||B[Y]!==b[c1]){var R1=` +`+B[Y].replace(" at new "," at ");return l.displayName&&R1.includes("")&&(R1=R1.replace("",l.displayName)),R1}while(1<=Y&&0<=c1);break}}}finally{k0=!1,Error.prepareStackTrace=L}return(l=l?l.displayName||l.name:"")?I0(l):""}var f2=Object.prototype.hasOwnProperty,U2=[],t2=-1;function F2(l){return{current:l}}function L0(l){0>t2||(l.current=U2[t2],U2[t2]=null,t2--)}function t0(l,c){t2++,U2[t2]=l.current,l.current=c}var p9={},x0=F2(p9),a2=F2(!1),r8=p9;function N(l,c){var L=l.type.contextTypes;if(!L)return p9;var M=l.stateNode;if(M&&M.__reactInternalMemoizedUnmaskedChildContext===c)return M.__reactInternalMemoizedMaskedChildContext;var B={},b;for(b in L)B[b]=c[b];return M&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=c,l.__reactInternalMemoizedMaskedChildContext=B),B}function H(l){return l=l.childContextTypes,l!=null}function Z(){L0(a2),L0(x0)}function l1(l,c,L){if(x0.current!==p9)throw Error(o(168));t0(x0,c),t0(a2,L)}function A1(l,c,L){var M=l.stateNode;if(c=c.childContextTypes,typeof M.getChildContext!="function")return L;M=M.getChildContext();for(var B in M)if(!(B in c))throw Error(o(108,j(l)||"Unknown",B));return i({},L,M)}function B1(l){return l=(l=l.stateNode)&&l.__reactInternalMemoizedMergedChildContext||p9,r8=x0.current,t0(x0,l),t0(a2,a2.current),!0}function N1(l,c,L){var M=l.stateNode;if(!M)throw Error(o(169));L?(l=A1(l,c,r8),M.__reactInternalMemoizedMergedChildContext=l,L0(a2),L0(x0),t0(x0,l)):L0(a2),t0(a2,L)}var D1=Math.clz32?Math.clz32:e0,z1=Math.log,W1=Math.LN2;function e0(l){return l>>>=0,l===0?32:31-(z1(l)/W1|0)|0}var h0=64,j0=4194304;function u2(l){switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return l&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return l}}function W0(l,c){var L=l.pendingLanes;if(L===0)return 0;var M=0,B=l.suspendedLanes,b=l.pingedLanes,Y=L&268435455;if(Y!==0){var c1=Y&~B;c1!==0?M=u2(c1):(b&=Y,b!==0&&(M=u2(b)))}else Y=L&~B,Y!==0?M=u2(Y):b!==0&&(M=u2(b));if(M===0)return 0;if(c!==0&&c!==M&&!(c&B)&&(B=M&-M,b=c&-c,B>=b||B===16&&(b&4194240)!==0))return c;if(M&4&&(M|=L&16),c=l.entangledLanes,c!==0)for(l=l.entanglements,c&=M;0L;L++)c.push(l);return c}function y6(l,c,L){l.pendingLanes|=c,c!==536870912&&(l.suspendedLanes=0,l.pingedLanes=0),l=l.eventTimes,c=31-D1(c),l[c]=L}function $n(l,c){var L=l.pendingLanes&~c;l.pendingLanes=c,l.suspendedLanes=0,l.pingedLanes=0,l.expiredLanes&=c,l.mutableReadLanes&=c,l.entangledLanes&=c,c=l.entanglements;var M=l.eventTimes;for(l=l.expirationTimes;0>=Y,B-=Y,N4=1<<32-D1(c)+B|L<q0?(n9=_0,_0=null):n9=_0.sibling;var K0=v0(w1,_0,S1[q0],K1);if(K0===null){_0===null&&(_0=n9);break}l&&_0&&K0.alternate===null&&c(w1,_0),h1=b(K0,h1,q0),P0===null?c0=K0:P0.sibling=K0,P0=K0,_0=n9}if(q0===S1.length)return L(w1,_0),w2&&H5(w1,q0),c0;if(_0===null){for(;q0q0?(n9=_0,_0=null):n9=_0.sibling;var T6=v0(w1,_0,K0.value,K1);if(T6===null){_0===null&&(_0=n9);break}l&&_0&&T6.alternate===null&&c(w1,_0),h1=b(T6,h1,q0),P0===null?c0=T6:P0.sibling=T6,P0=T6,_0=n9}if(K0.done)return L(w1,_0),w2&&H5(w1,q0),c0;if(_0===null){for(;!K0.done;q0++,K0=S1.next())K0=S0(w1,K0.value,K1),K0!==null&&(h1=b(K0,h1,q0),P0===null?c0=K0:P0.sibling=K0,P0=K0);return w2&&H5(w1,q0),c0}for(_0=M(w1,_0);!K0.done;q0++,K0=S1.next())K0=c2(_0,w1,q0,K0.value,K1),K0!==null&&(l&&K0.alternate!==null&&_0.delete(K0.key===null?q0:K0.key),h1=b(K0,h1,q0),P0===null?c0=K0:P0.sibling=K0,P0=K0);return l&&_0.forEach(function(fE){return c(w1,fE)}),w2&&H5(w1,q0),c0}function S8(w1,h1,S1,K1){if(typeof S1=="object"&&S1!==null&&S1.type===g&&S1.key===null&&(S1=S1.props.children),typeof S1=="object"&&S1!==null){switch(S1.$$typeof){case a:e:{for(var c0=S1.key,P0=h1;P0!==null;){if(P0.key===c0){if(c0=S1.type,c0===g){if(P0.tag===7){L(w1,P0.sibling),h1=B(P0,S1.props.children),h1.return=w1,w1=h1;break e}}else if(P0.elementType===c0||typeof c0=="object"&&c0!==null&&c0.$$typeof===k&&Xh(c0)===P0.type){L(w1,P0.sibling),h1=B(P0,S1.props),h1.ref=_e(w1,P0,S1),h1.return=w1,w1=h1;break e}L(w1,P0);break}else c(w1,P0);P0=P0.sibling}S1.type===g?(h1=z5(S1.props.children,w1.mode,K1,S1.key),h1.return=w1,w1=h1):(K1=DC(S1.type,S1.key,S1.props,null,w1.mode,K1),K1.ref=_e(w1,h1,S1),K1.return=w1,w1=K1)}return Y(w1);case d:e:{for(P0=S1.key;h1!==null;){if(h1.key===P0)if(h1.tag===4&&h1.stateNode.containerInfo===S1.containerInfo&&h1.stateNode.implementation===S1.implementation){L(w1,h1.sibling),h1=B(h1,S1.children||[]),h1.return=w1,w1=h1;break e}else{L(w1,h1);break}else c(w1,h1);h1=h1.sibling}h1=ll(S1,w1.mode,K1),h1.return=w1,w1=h1}return Y(w1);case k:return P0=S1._init,S8(w1,h1,P0(S1._payload),K1)}if(i1(S1))return u0(w1,h1,S1,K1);if(R(S1))return w9(w1,h1,S1,K1);rC(w1,S1)}return typeof S1=="string"&&S1!==""||typeof S1=="number"?(S1=""+S1,h1!==null&&h1.tag===6?(L(w1,h1.sibling),h1=B(h1,S1),h1.return=w1,w1=h1):(L(w1,h1),h1=sl(S1,w1.mode,K1),h1.return=w1,w1=h1),Y(w1)):L(w1,h1)}return S8}var J3=Jh(!0),qh=Jh(!1),Re={},E8=F2(Re),be=F2(Re),q3=F2(Re);function h4(l){if(l===Re)throw Error(o(174));return l}function Es(l,c){t0(q3,c),t0(be,l),t0(E8,Re),l=u1(c),L0(E8),t0(E8,l)}function K3(){L0(E8),L0(be),L0(q3)}function Kh(l){var c=h4(q3.current),L=h4(E8.current);c=U(L,l.type,c),L!==c&&(t0(be,l),t0(E8,c))}function ys(l){be.current===l&&(L0(E8),L0(be))}var M2=F2(0);function iC(l){for(var c=l;c!==null;){if(c.tag===13){var L=c.memoizedState;if(L!==null&&(L=L.dehydrated,L===null||D5(L)||c9(L)))return c}else if(c.tag===19&&c.memoizedProps.revealOrder!==void 0){if(c.flags&128)return c}else if(c.child!==null){c.child.return=c,c=c.child;continue}if(c===l)break;for(;c.sibling===null;){if(c.return===null||c.return===l)return null;c=c.return}c.sibling.return=c.return,c=c.sibling}return null}var Is=[];function Bs(){for(var l=0;lL?L:4,l(!0);var M=y8.transition;y8.transition={};try{l(!1),c()}finally{J0=L,y8.transition=M}}function hf(){return f4().memoizedState}function FM(l,c,L){var M=R6(l);L={lane:M,action:L,hasEagerState:!1,eagerState:null,next:null},ff(l)?gf(c,L):(pf(l,c,L),L=b9(),l=I8(l,M,L),l!==null&&Af(l,c,M))}function WM(l,c,L){var M=R6(l),B={lane:M,action:L,hasEagerState:!1,eagerState:null,next:null};if(ff(l))gf(c,B);else{pf(l,c,B);var b=l.alternate;if(l.lanes===0&&(b===null||b.lanes===0)&&(b=c.lastRenderedReducer,b!==null))try{var Y=c.lastRenderedState,c1=b(Y,L);if(B.hasEagerState=!0,B.eagerState=c1,c4(c1,Y))return}catch{}finally{}L=b9(),l=I8(l,M,L),l!==null&&Af(l,c,M)}}function ff(l){var c=l.alternate;return l===_2||c!==null&&c===_2}function gf(l,c){Qe=sC=!0;var L=l.pending;L===null?c.next=c:(c.next=L.next,L.next=c),l.pending=c}function pf(l,c,L){W2!==null&&l.mode&1&&!(H0&2)?(l=c.interleaved,l===null?(L.next=L,d4===null?d4=[c]:d4.push(c)):(L.next=l.next,l.next=L),c.interleaved=L):(l=c.pending,l===null?L.next=L:(L.next=l.next,l.next=L),c.pending=L)}function Af(l,c,L){if(L&4194240){var M=c.lanes;M&=l.pendingLanes,L|=M,c.lanes=L,ls(l,L)}}var dC={readContext:m8,useCallback:v9,useContext:v9,useEffect:v9,useImperativeHandle:v9,useInsertionEffect:v9,useLayoutEffect:v9,useMemo:v9,useReducer:v9,useRef:v9,useState:v9,useDebugValue:v9,useDeferredValue:v9,useTransition:v9,useMutableSource:v9,useSyncExternalStore:v9,useId:v9,unstable_isNewReconciler:!1},GM={readContext:m8,useCallback:function(l,c){return j4().memoizedState=[l,c===void 0?null:c],l},useContext:m8,useEffect:Qs,useImperativeHandle:function(l,c,L){return L=L!=null?L.concat([l]):null,cC(4194308,4,af.bind(null,c,l),L)},useLayoutEffect:function(l,c){return cC(4194308,4,l,c)},useInsertionEffect:function(l,c){return cC(4,2,l,c)},useMemo:function(l,c){var L=j4();return c=c===void 0?null:c,l=l(),L.memoizedState=[l,c],l},useReducer:function(l,c,L){var M=j4();return c=L!==void 0?L(c):c,M.memoizedState=M.baseState=c,l={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:c},M.queue=l,l=l.dispatch=FM.bind(null,_2,l),[M.memoizedState,l]},useRef:function(l){var c=j4();return l={current:l},c.memoizedState=l},useState:bs,useDebugValue:Ts,useDeferredValue:function(l){var c=bs(l),L=c[0],M=c[1];return Qs(function(){var B=y8.transition;y8.transition={};try{M(l)}finally{y8.transition=B}},[l]),L},useTransition:function(){var l=bs(!1),c=l[0];return l=UM.bind(null,l[1]),j4().memoizedState=l,[c,l]},useMutableSource:function(){},useSyncExternalStore:function(l,c,L){var M=_2,B=j4();if(w2){if(L===void 0)throw Error(o(407));L=L()}else{if(L=c(),W2===null)throw Error(o(349));Z3&30||tf(M,c,L)}B.memoizedState=L;var b={value:L,getSnapshot:c};return B.queue=b,Qs(Cf.bind(null,M,b,l),[l]),M.flags|=2048,De(9,nf.bind(null,M,b,L,c),void 0,null),L},useId:function(){var l=j4(),c=W2.identifierPrefix;if(w2){var L=H4,M=N4;L=(M&~(1<<32-D1(M)-1)).toString(32)+L,c=":"+c+"R"+L,L=Te++,0Zs&&(c.flags|=128,M=!0,je(B,!1),c.lanes=4194304)}else{if(!M)if(l=iC(b),l!==null){if(c.flags|=128,M=!0,l=l.updateQueue,l!==null&&(c.updateQueue=l,c.flags|=4),je(B,!0),B.tail===null&&B.tailMode==="hidden"&&!b.alternate&&!w2)return L9(c),null}else 2*e9()-B.renderingStartTime>Zs&&L!==1073741824&&(c.flags|=128,M=!0,je(B,!1),c.lanes=4194304);B.isBackwards?(b.sibling=c.child,c.child=b):(l=B.last,l!==null?l.sibling=b:c.child=b,B.last=b)}return B.tail!==null?(c=B.tail,B.rendering=c,B.tail=c.sibling,B.renderingStartTime=e9(),c.sibling=null,l=M2.current,t0(M2,M?l&1|2:l&1),c):(L9(c),null);case 22:case 23:return rl(),M=c.memoizedState!==null,l!==null&&l.memoizedState!==null!==M&&(c.flags|=8192),M&&c.mode&1?c8&1073741824&&(L9(c),E1&&c.subtreeFlags&6&&(c.flags|=8192)):L9(c),null;case 24:return null;case 25:return null}throw Error(o(156,c.tag))}var YM=s.ReactCurrentOwner,a8=!1;function R9(l,c,L,M){c.child=l===null?qh(c,null,L,M):J3(c,l.child,L,M)}function Ef(l,c,L,M,B){L=L.render;var b=c.ref;return V3(c,B),M=_s(l,c,L,M,b,B),L=Rs(),l!==null&&!a8?(c.updateQueue=l.updateQueue,c.flags&=-2053,l.lanes&=~B,U4(l,c,B)):(w2&&L&&ws(c),c.flags|=1,R9(l,c,M,B),c.child)}function yf(l,c,L,M,B){if(l===null){var b=L.type;return typeof b=="function"&&!ol(b)&&b.defaultProps===void 0&&L.compare===null&&L.defaultProps===void 0?(c.tag=15,c.type=b,If(l,c,b,M,B)):(l=DC(L.type,null,M,c,c.mode,B),l.ref=c.ref,l.return=c,c.child=l)}if(b=l.child,!(l.lanes&B)){var Y=b.memoizedProps;if(L=L.compare,L=L!==null?L:Jn,L(Y,M)&&l.ref===c.ref)return U4(l,c,B)}return c.flags|=1,l=Q6(b,M),l.ref=c.ref,l.return=c,c.child=l}function If(l,c,L,M,B){if(l!==null&&Jn(l.memoizedProps,M)&&l.ref===c.ref)if(a8=!1,(l.lanes&B)!==0)l.flags&131072&&(a8=!0);else return c.lanes=l.lanes,U4(l,c,B);return Ns(l,c,L,M,B)}function Bf(l,c,L){var M=c.pendingProps,B=M.children,b=l!==null?l.memoizedState:null;if(M.mode==="hidden")if(!(c.mode&1))c.memoizedState={baseLanes:0,cachePool:null},t0(e7,c8),c8|=L;else if(L&1073741824)c.memoizedState={baseLanes:0,cachePool:null},M=b!==null?b.baseLanes:L,t0(e7,c8),c8|=M;else return l=b!==null?b.baseLanes|L:L,c.lanes=c.childLanes=1073741824,c.memoizedState={baseLanes:l,cachePool:null},c.updateQueue=null,t0(e7,c8),c8|=l,null;else b!==null?(M=b.baseLanes|L,c.memoizedState=null):M=L,t0(e7,c8),c8|=M;return R9(l,c,B,L),c.child}function Sf(l,c){var L=c.ref;(l===null&&L!==null||l!==null&&l.ref!==L)&&(c.flags|=512,c.flags|=2097152)}function Ns(l,c,L,M,B){var b=H(L)?r8:x0.current;return b=N(c,b),V3(c,B),L=_s(l,c,L,M,b,B),M=Rs(),l!==null&&!a8?(c.updateQueue=l.updateQueue,c.flags&=-2053,l.lanes&=~B,U4(l,c,B)):(w2&&M&&ws(c),c.flags|=1,R9(l,c,L,B),c.child)}function _f(l,c,L,M,B){if(H(L)){var b=!0;B1(c)}else b=!1;if(V3(c,B),c.stateNode===null)l!==null&&(l.alternate=null,c.alternate=null,c.flags|=2),Gh(c,L,M),Ls(c,L,M,B),M=!0;else if(l===null){var Y=c.stateNode,c1=c.memoizedProps;Y.props=c1;var R1=Y.context,G1=L.contextType;typeof G1=="object"&&G1!==null?G1=m8(G1):(G1=H(L)?r8:x0.current,G1=N(c,G1));var i0=L.getDerivedStateFromProps,S0=typeof i0=="function"||typeof Y.getSnapshotBeforeUpdate=="function";S0||typeof Y.UNSAFE_componentWillReceiveProps!="function"&&typeof Y.componentWillReceiveProps!="function"||(c1!==M||R1!==G1)&&Oh(c,Y,M,G1),I6=!1;var v0=c.memoizedState;Y.state=v0,eC(c,M,Y,B),R1=c.memoizedState,c1!==M||v0!==R1||a2.current||I6?(typeof i0=="function"&&(vs(c,L,i0,M),R1=c.memoizedState),(c1=I6||Wh(c,L,c1,M,v0,R1,G1))?(S0||typeof Y.UNSAFE_componentWillMount!="function"&&typeof Y.componentWillMount!="function"||(typeof Y.componentWillMount=="function"&&Y.componentWillMount(),typeof Y.UNSAFE_componentWillMount=="function"&&Y.UNSAFE_componentWillMount()),typeof Y.componentDidMount=="function"&&(c.flags|=4194308)):(typeof Y.componentDidMount=="function"&&(c.flags|=4194308),c.memoizedProps=M,c.memoizedState=R1),Y.props=M,Y.state=R1,Y.context=G1,M=c1):(typeof Y.componentDidMount=="function"&&(c.flags|=4194308),M=!1)}else{Y=c.stateNode,Hh(l,c),c1=c.memoizedProps,G1=c.type===c.elementType?c1:W8(c.type,c1),Y.props=G1,S0=c.pendingProps,v0=Y.context,R1=L.contextType,typeof R1=="object"&&R1!==null?R1=m8(R1):(R1=H(L)?r8:x0.current,R1=N(c,R1));var c2=L.getDerivedStateFromProps;(i0=typeof c2=="function"||typeof Y.getSnapshotBeforeUpdate=="function")||typeof Y.UNSAFE_componentWillReceiveProps!="function"&&typeof Y.componentWillReceiveProps!="function"||(c1!==S0||v0!==R1)&&Oh(c,Y,M,R1),I6=!1,v0=c.memoizedState,Y.state=v0,eC(c,M,Y,B);var u0=c.memoizedState;c1!==S0||v0!==u0||a2.current||I6?(typeof c2=="function"&&(vs(c,L,c2,M),u0=c.memoizedState),(G1=I6||Wh(c,L,G1,M,v0,u0,R1)||!1)?(i0||typeof Y.UNSAFE_componentWillUpdate!="function"&&typeof Y.componentWillUpdate!="function"||(typeof Y.componentWillUpdate=="function"&&Y.componentWillUpdate(M,u0,R1),typeof Y.UNSAFE_componentWillUpdate=="function"&&Y.UNSAFE_componentWillUpdate(M,u0,R1)),typeof Y.componentDidUpdate=="function"&&(c.flags|=4),typeof Y.getSnapshotBeforeUpdate=="function"&&(c.flags|=1024)):(typeof Y.componentDidUpdate!="function"||c1===l.memoizedProps&&v0===l.memoizedState||(c.flags|=4),typeof Y.getSnapshotBeforeUpdate!="function"||c1===l.memoizedProps&&v0===l.memoizedState||(c.flags|=1024),c.memoizedProps=M,c.memoizedState=u0),Y.props=M,Y.state=u0,Y.context=R1,M=G1):(typeof Y.componentDidUpdate!="function"||c1===l.memoizedProps&&v0===l.memoizedState||(c.flags|=4),typeof Y.getSnapshotBeforeUpdate!="function"||c1===l.memoizedProps&&v0===l.memoizedState||(c.flags|=1024),M=!1)}return Hs(l,c,L,M,b,B)}function Hs(l,c,L,M,B,b){Sf(l,c);var Y=(c.flags&128)!==0;if(!M&&!Y)return B&&N1(c,L,!1),U4(l,c,b);M=c.stateNode,YM.current=c;var c1=Y&&typeof L.getDerivedStateFromError!="function"?null:M.render();return c.flags|=1,l!==null&&Y?(c.child=J3(c,l.child,null,b),c.child=J3(c,null,c1,b)):R9(l,c,c1,b),c.memoizedState=M.state,B&&N1(c,L,!0),c.child}function Rf(l){var c=l.stateNode;c.pendingContext?l1(l,c.pendingContext,c.pendingContext!==c.context):c.context&&l1(l,c.context,!1),Es(l,c.containerInfo)}function bf(l,c,L,M,B){return X3(),Ms(B),c.flags|=256,R9(l,c,L,M),c.child}var gC={dehydrated:null,treeContext:null,retryLane:0};function pC(l){return{baseLanes:l,cachePool:null}}function Qf(l,c,L){var M=c.pendingProps,B=M2.current,b=!1,Y=(c.flags&128)!==0,c1;if((c1=Y)||(c1=l!==null&&l.memoizedState===null?!1:(B&2)!==0),c1?(b=!0,c.flags&=-129):(l===null||l.memoizedState!==null)&&(B|=1),t0(M2,B&1),l===null)return ks(c),l=c.memoizedState,l!==null&&(l=l.dehydrated,l!==null)?(c.mode&1?c9(l)?c.lanes=8:c.lanes=1073741824:c.lanes=1,null):(B=M.children,l=M.fallback,b?(M=c.mode,b=c.child,B={mode:"hidden",children:B},!(M&1)&&b!==null?(b.childLanes=0,b.pendingProps=B):b=PC(B,M,0,null),l=z5(l,M,L,null),b.return=c,l.return=c,b.sibling=l,c.child=b,c.child.memoizedState=pC(L),c.memoizedState=gC,l):js(c,B));if(B=l.memoizedState,B!==null){if(c1=B.dehydrated,c1!==null){if(Y)return c.flags&256?(c.flags&=-257,AC(l,c,L,Error(o(422)))):c.memoizedState!==null?(c.child=l.child,c.flags|=128,null):(b=M.fallback,B=c.mode,M=PC({mode:"visible",children:M.children},B,0,null),b=z5(b,B,L,null),b.flags|=2,M.return=c,b.return=c,M.sibling=b,c.child=M,c.mode&1&&J3(c,l.child,null,L),c.child.memoizedState=pC(L),c.memoizedState=gC,b);if(!(c.mode&1))c=AC(l,c,L,null);else if(c9(c1))c=AC(l,c,L,Error(o(419)));else if(M=(L&l.childLanes)!==0,a8||M){if(M=W2,M!==null){switch(L&-L){case 4:b=2;break;case 16:b=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:b=32;break;case 536870912:b=268435456;break;default:b=0}M=b&(M.suspendedLanes|L)?0:b,M!==0&&M!==B.retryLane&&(B.retryLane=M,I8(l,M,-1))}il(),c=AC(l,c,L,Error(o(421)))}else D5(c1)?(c.flags|=128,c.child=l.child,c=sE.bind(null,l),Q4(c1,c),c=null):(L=B.treeContext,L1&&(l8=E6(c1),s8=c,w2=!0,G8=null,Be=!1,L!==null&&(k8[M8++]=N4,k8[M8++]=H4,k8[M8++]=N5,N4=L.id,H4=L.overflow,N5=c)),c=js(c,c.pendingProps.children),c.flags|=4096);return c}return b?(M=Df(l,c,M.children,M.fallback,L),b=c.child,B=l.child.memoizedState,b.memoizedState=B===null?pC(L):{baseLanes:B.baseLanes|L,cachePool:null},b.childLanes=l.childLanes&~L,c.memoizedState=gC,M):(L=Tf(l,c,M.children,L),c.memoizedState=null,L)}return b?(M=Df(l,c,M.children,M.fallback,L),b=c.child,B=l.child.memoizedState,b.memoizedState=B===null?pC(L):{baseLanes:B.baseLanes|L,cachePool:null},b.childLanes=l.childLanes&~L,c.memoizedState=gC,M):(L=Tf(l,c,M.children,L),c.memoizedState=null,L)}function js(l,c){return c=PC({mode:"visible",children:c},l.mode,0,null),c.return=l,l.child=c}function Tf(l,c,L,M){var B=l.child;return l=B.sibling,L=Q6(B,{mode:"visible",children:L}),!(c.mode&1)&&(L.lanes=M),L.return=c,L.sibling=null,l!==null&&(M=c.deletions,M===null?(c.deletions=[l],c.flags|=16):M.push(l)),c.child=L}function Df(l,c,L,M,B){var b=c.mode;l=l.child;var Y=l.sibling,c1={mode:"hidden",children:L};return!(b&1)&&c.child!==l?(L=c.child,L.childLanes=0,L.pendingProps=c1,c.deletions=null):(L=Q6(l,c1),L.subtreeFlags=l.subtreeFlags&14680064),Y!==null?M=Q6(Y,M):(M=z5(M,b,B,null),M.flags|=2),M.return=c,L.return=c,L.sibling=M,c.child=L,M}function AC(l,c,L,M){return M!==null&&Ms(M),J3(c,l.child,null,L),l=js(c,c.pendingProps.children),l.flags|=2,c.memoizedState=null,l}function Pf(l,c,L){l.lanes|=c;var M=l.alternate;M!==null&&(M.lanes|=c),ps(l.return,c,L)}function Us(l,c,L,M,B){var b=l.memoizedState;b===null?l.memoizedState={isBackwards:c,rendering:null,renderingStartTime:0,last:M,tail:L,tailMode:B}:(b.isBackwards=c,b.rendering=null,b.renderingStartTime=0,b.last=M,b.tail=L,b.tailMode=B)}function Nf(l,c,L){var M=c.pendingProps,B=M.revealOrder,b=M.tail;if(R9(l,c,M.children,L),M=M2.current,M&2)M=M&1|2,c.flags|=128;else{if(l!==null&&l.flags&128)e:for(l=c.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&Pf(l,L,c);else if(l.tag===19)Pf(l,L,c);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===c)break e;for(;l.sibling===null;){if(l.return===null||l.return===c)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}M&=1}if(t0(M2,M),!(c.mode&1))c.memoizedState=null;else switch(B){case"forwards":for(L=c.child,B=null;L!==null;)l=L.alternate,l!==null&&iC(l)===null&&(B=L),L=L.sibling;L=B,L===null?(B=c.child,c.child=null):(B=L.sibling,L.sibling=null),Us(c,!1,B,L,b);break;case"backwards":for(L=null,B=c.child,c.child=null;B!==null;){if(l=B.alternate,l!==null&&iC(l)===null){c.child=B;break}l=B.sibling,B.sibling=L,L=B,B=l}Us(c,!0,L,null,b);break;case"together":Us(c,!1,null,null,void 0);break;default:c.memoizedState=null}return c.child}function U4(l,c,L){if(l!==null&&(c.dependencies=l.dependencies),t7|=c.lanes,!(L&c.childLanes))return null;if(l!==null&&c.child!==l.child)throw Error(o(153));if(c.child!==null){for(l=c.child,L=Q6(l,l.pendingProps),c.child=L,L.return=c;l.sibling!==null;)l=l.sibling,L=L.sibling=Q6(l,l.pendingProps),L.return=c;L.sibling=null}return c.child}function XM(l,c,L){switch(c.tag){case 3:Rf(c),X3();break;case 5:Kh(c);break;case 1:H(c.type)&&B1(c);break;case 4:Es(c,c.stateNode.containerInfo);break;case 10:Nh(c,c.type._context,c.memoizedProps.value);break;case 13:var M=c.memoizedState;if(M!==null)return M.dehydrated!==null?(t0(M2,M2.current&1),c.flags|=128,null):L&c.child.childLanes?Qf(l,c,L):(t0(M2,M2.current&1),l=U4(l,c,L),l!==null?l.sibling:null);t0(M2,M2.current&1);break;case 19:if(M=(L&c.childLanes)!==0,l.flags&128){if(M)return Nf(l,c,L);c.flags|=128}var B=c.memoizedState;if(B!==null&&(B.rendering=null,B.tail=null,B.lastEffect=null),t0(M2,M2.current),M)break;return null;case 22:case 23:return c.lanes=0,Bf(l,c,L)}return U4(l,c,L)}function JM(l,c){switch(xs(c),c.tag){case 1:return H(c.type)&&Z(),l=c.flags,l&65536?(c.flags=l&-65537|128,c):null;case 3:return K3(),L0(a2),L0(x0),Bs(),l=c.flags,l&65536&&!(l&128)?(c.flags=l&-65537|128,c):null;case 5:return ys(c),null;case 13:if(L0(M2),l=c.memoizedState,l!==null&&l.dehydrated!==null){if(c.alternate===null)throw Error(o(340));X3()}return l=c.flags,l&65536?(c.flags=l&-65537|128,c):null;case 19:return L0(M2),null;case 4:return K3(),null;case 10:return gs(c.type._context),null;case 22:case 23:return rl(),null;case 24:return null;default:return null}}var vC=!1,U5=!1,qM=typeof WeakSet=="function"?WeakSet:Set,X1=null;function LC(l,c){var L=l.ref;if(L!==null)if(typeof L=="function")try{L(null)}catch(M){X9(l,c,M)}else L.current=null}function Fs(l,c,L){try{L()}catch(M){X9(l,c,M)}}var Hf=!1;function KM(l,c){for(t1(l.containerInfo),X1=c;X1!==null;)if(l=X1,c=l.child,(l.subtreeFlags&1028)!==0&&c!==null)c.return=l,X1=c;else for(;X1!==null;){l=X1;try{var L=l.alternate;if(l.flags&1024)switch(l.tag){case 0:case 11:case 15:break;case 1:if(L!==null){var M=L.memoizedProps,B=L.memoizedState,b=l.stateNode,Y=b.getSnapshotBeforeUpdate(l.elementType===l.type?M:W8(l.type,M),B);b.__reactInternalSnapshotBeforeUpdate=Y}break;case 3:E1&&F1(l.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(c1){X9(l,l.return,c1)}if(c=l.sibling,c!==null){c.return=l.return,X1=c;break}X1=l.return}return L=Hf,Hf=!1,L}function F5(l,c,L){var M=c.updateQueue;if(M=M!==null?M.lastEffect:null,M!==null){var B=M=M.next;do{if((B.tag&l)===l){var b=B.destroy;B.destroy=void 0,b!==void 0&&Fs(c,L,b)}B=B.next}while(B!==M)}}function Ue(l,c){if(c=c.updateQueue,c=c!==null?c.lastEffect:null,c!==null){var L=c=c.next;do{if((L.tag&l)===l){var M=L.create;L.destroy=M()}L=L.next}while(L!==c)}}function Ws(l){var c=l.ref;if(c!==null){var L=l.stateNode;switch(l.tag){case 5:l=C1(L);break;default:l=L}typeof c=="function"?c(l):c.current=l}}function jf(l,c,L){if(a4&&typeof a4.onCommitFiberUnmount=="function")try{a4.onCommitFiberUnmount(Yn,c)}catch{}switch(c.tag){case 0:case 11:case 14:case 15:if(l=c.updateQueue,l!==null&&(l=l.lastEffect,l!==null)){var M=l=l.next;do{var B=M,b=B.destroy;B=B.tag,b!==void 0&&(B&2||B&4)&&Fs(c,L,b),M=M.next}while(M!==l)}break;case 1:if(LC(c,L),l=c.stateNode,typeof l.componentWillUnmount=="function")try{l.props=c.memoizedProps,l.state=c.memoizedState,l.componentWillUnmount()}catch(Y){X9(c,L,Y)}break;case 5:LC(c,L);break;case 4:E1?zf(l,c,L):z&&z&&(c=c.stateNode.containerInfo,L=r0(c),z0(c,L))}}function Uf(l,c,L){for(var M=c;;)if(jf(l,M,L),M.child===null||E1&&M.tag===4){if(M===c)break;for(;M.sibling===null;){if(M.return===null||M.return===c)return;M=M.return}M.sibling.return=M.return,M=M.sibling}else M.child.return=M,M=M.child}function Ff(l){var c=l.alternate;c!==null&&(l.alternate=null,Ff(c)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(c=l.stateNode,c!==null&&b1(c)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}function Wf(l){return l.tag===5||l.tag===3||l.tag===4}function Gf(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||Wf(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function Of(l){if(E1){e:{for(var c=l.return;c!==null;){if(Wf(c))break e;c=c.return}throw Error(o(160))}var L=c;switch(L.tag){case 5:c=L.stateNode,L.flags&32&&(N0(c),L.flags&=-33),L=Gf(l),Os(l,L,c);break;case 3:case 4:c=L.stateNode.containerInfo,L=Gf(l),Gs(l,L,c);break;default:throw Error(o(161))}}}function Gs(l,c,L){var M=l.tag;if(M===5||M===6)l=l.stateNode,c?s0(L,l,c):w0(L,l);else if(M!==4&&(l=l.child,l!==null))for(Gs(l,c,L),l=l.sibling;l!==null;)Gs(l,c,L),l=l.sibling}function Os(l,c,L){var M=l.tag;if(M===5||M===6)l=l.stateNode,c?g0(L,l,c):l0(L,l);else if(M!==4&&(l=l.child,l!==null))for(Os(l,c,L),l=l.sibling;l!==null;)Os(l,c,L),l=l.sibling}function zf(l,c,L){for(var M=c,B=!1,b,Y;;){if(!B){B=M.return;e:for(;;){if(B===null)throw Error(o(160));switch(b=B.stateNode,B.tag){case 5:Y=!1;break e;case 3:b=b.containerInfo,Y=!0;break e;case 4:b=b.containerInfo,Y=!0;break e}B=B.return}B=!0}if(M.tag===5||M.tag===6)Uf(l,M,L),Y?m0(b,M.stateNode):n0(b,M.stateNode);else if(M.tag===18)Y?m1(b,M.stateNode):I1(b,M.stateNode);else if(M.tag===4){if(M.child!==null){b=M.stateNode.containerInfo,Y=!0,M.child.return=M,M=M.child;continue}}else if(jf(l,M,L),M.child!==null){M.child.return=M,M=M.child;continue}if(M===c)break;for(;M.sibling===null;){if(M.return===null||M.return===c)return;M=M.return,M.tag===4&&(B=!1)}M.sibling.return=M.return,M=M.sibling}}function zs(l,c){if(E1){switch(c.tag){case 0:case 11:case 14:case 15:F5(3,c,c.return),Ue(3,c),F5(5,c,c.return);return;case 1:return;case 5:var L=c.stateNode;if(L!=null){var M=c.memoizedProps;l=l!==null?l.memoizedProps:M;var B=c.type,b=c.updateQueue;c.updateQueue=null,b!==null&&E0(L,b,B,l,M,c)}return;case 6:if(c.stateNode===null)throw Error(o(162));L=c.memoizedProps,P1(c.stateNode,l!==null?l.memoizedProps:L,L);return;case 3:L1&&l!==null&&l.memoizedState.isDehydrated&&p1(c.stateNode.containerInfo);return;case 12:return;case 13:wC(c);return;case 19:wC(c);return;case 17:return}throw Error(o(163))}switch(c.tag){case 0:case 11:case 14:case 15:F5(3,c,c.return),Ue(3,c),F5(5,c,c.return);return;case 12:return;case 13:wC(c);return;case 19:wC(c);return;case 3:L1&&l!==null&&l.memoizedState.isDehydrated&&p1(c.stateNode.containerInfo);break;case 22:case 23:return}e:if(z){switch(c.tag){case 1:case 5:case 6:break e;case 3:case 4:c=c.stateNode,z0(c.containerInfo,c.pendingChildren);break e}throw Error(o(163))}}function wC(l){var c=l.updateQueue;if(c!==null){l.updateQueue=null;var L=l.stateNode;L===null&&(L=l.stateNode=new qM),c.forEach(function(M){var B=lE.bind(null,l,M);L.has(M)||(L.add(M),M.then(B,B))})}}function ZM(l,c){for(X1=c;X1!==null;){c=X1;var L=c.deletions;if(L!==null)for(var M=0;M";case mC:return":has("+(Ys(l)||"")+")";case kC:return'[role="'+l.value+'"]';case EC:return'"'+l.value+'"';case MC:return'[data-testname="'+l.value+'"]';default:throw Error(o(365))}}function Jf(l,c){var L=[];l=[l,0];for(var M=0;MB&&(B=Y),M&=~b}if(M=B,M=e9()-M,M=(120>M?120:480>M?480:1080>M?1080:1920>M?1920:3e3>M?3e3:4320>M?4320:1960*tE(M/1960))-M,10l?16:l,_6===null)var M=!1;else{if(l=_6,_6=null,_C=0,H0&6)throw Error(o(331));var B=H0;for(H0|=4,X1=l.current;X1!==null;){var b=X1,Y=b.child;if(X1.flags&16){var c1=b.deletions;if(c1!==null){for(var R1=0;R1e9()-Ks?W5(l,0):qs|=L),Y9(l,c)}function ig(l,c){c===0&&(l.mode&1?(c=j0,j0<<=1,!(j0&130023424)&&(j0=4194304)):c=1);var L=b9();l=QC(l,c),l!==null&&(y6(l,c,L),Y9(l,L))}function sE(l){var c=l.memoizedState,L=0;c!==null&&(L=c.retryLane),ig(l,L)}function lE(l,c){var L=0;switch(l.tag){case 13:var M=l.stateNode,B=l.memoizedState;B!==null&&(L=B.retryLane);break;case 19:M=l.stateNode;break;default:throw Error(o(314))}M!==null&&M.delete(c),ig(l,L)}var og;og=function(l,c,L){if(l!==null)if(l.memoizedProps!==c.pendingProps||a2.current)a8=!0;else{if(!(l.lanes&L)&&!(c.flags&128))return a8=!1,XM(l,c,L);a8=!!(l.flags&131072)}else a8=!1,w2&&c.flags&1048576&&zh(c,CC,c.index);switch(c.lanes=0,c.tag){case 2:var M=c.type;l!==null&&(l.alternate=null,c.alternate=null,c.flags|=2),l=c.pendingProps;var B=N(c,x0.current);V3(c,L),B=_s(null,c,M,l,B,L);var b=Rs();return c.flags|=1,typeof B=="object"&&B!==null&&typeof B.render=="function"&&B.$$typeof===void 0?(c.tag=1,c.memoizedState=null,c.updateQueue=null,H(M)?(b=!0,B1(c)):b=!1,c.memoizedState=B.state!==null&&B.state!==void 0?B.state:null,As(c),B.updater=tC,c.stateNode=B,B._reactInternals=c,Ls(c,M,l,L),c=Hs(null,c,M,!0,b,L)):(c.tag=0,w2&&b&&ws(c),R9(null,c,B,L),c=c.child),c;case 16:M=c.elementType;e:{switch(l!==null&&(l.alternate=null,c.alternate=null,c.flags|=2),l=c.pendingProps,B=M._init,M=B(M._payload),c.type=M,B=c.tag=cE(M),l=W8(M,l),B){case 0:c=Ns(null,c,M,l,L);break e;case 1:c=_f(null,c,M,l,L);break e;case 11:c=Ef(null,c,M,l,L);break e;case 14:c=yf(null,c,M,W8(M.type,l),L);break e}throw Error(o(306,M,""))}return c;case 0:return M=c.type,B=c.pendingProps,B=c.elementType===M?B:W8(M,B),Ns(l,c,M,B,L);case 1:return M=c.type,B=c.pendingProps,B=c.elementType===M?B:W8(M,B),_f(l,c,M,B,L);case 3:e:{if(Rf(c),l===null)throw Error(o(387));M=c.pendingProps,b=c.memoizedState,B=b.element,Hh(l,c),eC(c,M,null,L);var Y=c.memoizedState;if(M=Y.element,L1&&b.isDehydrated)if(b={element:M,isDehydrated:!1,cache:Y.cache,transitions:Y.transitions},c.updateQueue.baseState=b,c.memoizedState=b,c.flags&256){B=Error(o(423)),c=bf(l,c,M,L,B);break e}else if(M!==B){B=Error(o(424)),c=bf(l,c,M,L,B);break e}else for(L1&&(l8=M6(c.stateNode.containerInfo),s8=c,w2=!0,G8=null,Be=!1),L=qh(c,null,M,L),c.child=L;L;)L.flags=L.flags&-3|4096,L=L.sibling;else{if(X3(),M===B){c=U4(l,c,L);break e}R9(l,c,M,L)}c=c.child}return c;case 5:return Kh(c),l===null&&ks(c),M=c.type,B=c.pendingProps,b=l!==null?l.memoizedProps:null,Y=B.children,O(M,B)?Y=null:b!==null&&O(M,b)&&(c.flags|=32),Sf(l,c),R9(l,c,Y,L),c.child;case 6:return l===null&&ks(c),null;case 13:return Qf(l,c,L);case 4:return Es(c,c.stateNode.containerInfo),M=c.pendingProps,l===null?c.child=J3(c,null,M,L):R9(l,c,M,L),c.child;case 11:return M=c.type,B=c.pendingProps,B=c.elementType===M?B:W8(M,B),Ef(l,c,M,B,L);case 7:return R9(l,c,c.pendingProps,L),c.child;case 8:return R9(l,c,c.pendingProps.children,L),c.child;case 12:return R9(l,c,c.pendingProps.children,L),c.child;case 10:e:{if(M=c.type._context,B=c.pendingProps,b=c.memoizedProps,Y=B.value,Nh(c,M,Y),b!==null)if(c4(b.value,Y)){if(b.children===B.children&&!a2.current){c=U4(l,c,L);break e}}else for(b=c.child,b!==null&&(b.return=c);b!==null;){var c1=b.dependencies;if(c1!==null){Y=b.child;for(var R1=c1.firstContext;R1!==null;){if(R1.context===M){if(b.tag===1){R1=P4(-1,L&-L),R1.tag=2;var G1=b.updateQueue;if(G1!==null){G1=G1.shared;var i0=G1.pending;i0===null?R1.next=R1:(R1.next=i0.next,i0.next=R1),G1.pending=R1}}b.lanes|=L,R1=b.alternate,R1!==null&&(R1.lanes|=L),ps(b.return,L,c),c1.lanes|=L;break}R1=R1.next}}else if(b.tag===10)Y=b.type===c.type?null:b.child;else if(b.tag===18){if(Y=b.return,Y===null)throw Error(o(341));Y.lanes|=L,c1=Y.alternate,c1!==null&&(c1.lanes|=L),ps(Y,L,c),Y=b.sibling}else Y=b.child;if(Y!==null)Y.return=b;else for(Y=b;Y!==null;){if(Y===c){Y=null;break}if(b=Y.sibling,b!==null){b.return=Y.return,Y=b;break}Y=Y.return}b=Y}R9(l,c,B.children,L),c=c.child}return c;case 9:return B=c.type,M=c.pendingProps.children,V3(c,L),B=m8(B),M=M(B),c.flags|=1,R9(l,c,M,L),c.child;case 14:return M=c.type,B=W8(M,c.pendingProps),B=W8(M.type,B),yf(l,c,M,B,L);case 15:return If(l,c,c.type,c.pendingProps,L);case 17:return M=c.type,B=c.pendingProps,B=c.elementType===M?B:W8(M,B),l!==null&&(l.alternate=null,c.alternate=null,c.flags|=2),c.tag=1,H(M)?(l=!0,B1(c)):l=!1,V3(c,L),Gh(c,M,B),Ls(c,M,B,L),Hs(null,c,M,!0,l,L);case 19:return Nf(l,c,L);case 22:return Bf(l,c,L)}throw Error(o(156,c.tag))};function sg(l,c){return as(l,c)}function aE(l,c,L,M){this.tag=l,this.key=L,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=c,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=M,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function B8(l,c,L,M){return new aE(l,c,L,M)}function ol(l){return l=l.prototype,!(!l||!l.isReactComponent)}function cE(l){if(typeof l=="function")return ol(l)?1:0;if(l!=null){if(l=l.$$typeof,l===y)return 11;if(l===E)return 14}return 2}function Q6(l,c){var L=l.alternate;return L===null?(L=B8(l.tag,c,l.key,l.mode),L.elementType=l.elementType,L.type=l.type,L.stateNode=l.stateNode,L.alternate=l,l.alternate=L):(L.pendingProps=c,L.type=l.type,L.flags=0,L.subtreeFlags=0,L.deletions=null),L.flags=l.flags&14680064,L.childLanes=l.childLanes,L.lanes=l.lanes,L.child=l.child,L.memoizedProps=l.memoizedProps,L.memoizedState=l.memoizedState,L.updateQueue=l.updateQueue,c=l.dependencies,L.dependencies=c===null?null:{lanes:c.lanes,firstContext:c.firstContext},L.sibling=l.sibling,L.index=l.index,L.ref=l.ref,L}function DC(l,c,L,M,B,b){var Y=2;if(M=l,typeof l=="function")ol(l)&&(Y=1);else if(typeof l=="string")Y=5;else e:switch(l){case g:return z5(L.children,B,b,c);case p:Y=8,B|=8;break;case A:return l=B8(12,L,c,B|2),l.elementType=A,l.lanes=b,l;case m:return l=B8(13,L,c,B),l.elementType=m,l.lanes=b,l;case v:return l=B8(19,L,c,B),l.elementType=v,l.lanes=b,l;case I:return PC(L,B,b,c);default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case w:Y=10;break e;case x:Y=9;break e;case y:Y=11;break e;case E:Y=14;break e;case k:Y=16,M=null;break e}throw Error(o(130,l==null?l:typeof l,""))}return c=B8(Y,L,c,B),c.elementType=l,c.type=M,c.lanes=b,c}function z5(l,c,L,M){return l=B8(7,l,M,c),l.lanes=L,l}function PC(l,c,L,M){return l=B8(22,l,M,c),l.elementType=I,l.lanes=L,l.stateNode={},l}function sl(l,c,L){return l=B8(6,l,null,c),l.lanes=L,l}function ll(l,c,L){return c=B8(4,l.children!==null?l.children:[],l.key,c),c.lanes=L,c.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},c}function uE(l,c,L,M,B){this.tag=c,this.containerInfo=l,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=k1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=o8(0),this.expirationTimes=o8(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=o8(0),this.identifierPrefix=M,this.onRecoverableError=B,L1&&(this.mutableSourceEagerHydrationData=null)}function lg(l,c,L,M,B,b,Y,c1,R1){return l=new uE(l,c,L,c1,R1),c===1?(c=1,b===!0&&(c|=8)):c=0,b=B8(3,null,null,c),l.current=b,b.stateNode=l,b.memoizedState={element:M,isDehydrated:L,cache:null,transitions:null},As(b),l}function ag(l){if(!l)return p9;l=l._reactInternals;e:{if(q(l)!==l||l.tag!==1)throw Error(o(170));var c=l;do{switch(c.tag){case 3:c=c.stateNode.context;break e;case 1:if(H(c.type)){c=c.stateNode.__reactInternalMemoizedMergedChildContext;break e}}c=c.return}while(c!==null);throw Error(o(171))}if(l.tag===1){var L=l.type;if(H(L))return A1(l,L,c)}return c}function cg(l){var c=l._reactInternals;if(c===void 0)throw typeof l.render=="function"?Error(o(188)):(l=Object.keys(l).join(","),Error(o(268,l)));return l=K(c),l===null?null:l.stateNode}function ug(l,c){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var L=l.retryLane;l.retryLane=L!==0&&L=G1&&b>=S0&&B<=i0&&Y<=v0){l.splice(c,1);break}else if(M!==G1||L.width!==R1.width||v0Y){if(!(b!==S0||L.height!==R1.height||i0B)){G1>M&&(R1.width+=G1-M,R1.x=M),i0b&&(R1.height+=S0-b,R1.y=b),v0L&&(L=Y)),Y ")+` + +No matching component was found for: + `)+l.join(" > ")}return null},n.getPublicRootInstance=function(l){if(l=l.current,!l.child)return null;switch(l.child.tag){case 5:return C1(l.child.stateNode);default:return l.child.stateNode}},n.injectIntoDevTools=function(l){if(l={bundleType:l.bundleType,version:l.version,rendererPackageName:l.rendererPackageName,rendererConfig:l.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:s.ReactCurrentDispatcher,findHostInstanceByFiber:dE,findFiberByHostInstance:l.findFiberByHostInstance||hE,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")l=!1;else{var c=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(c.isDisabled||!c.supportsFiber)l=!0;else{try{Yn=c.inject(l),a4=c}catch{}l=!!c.checkDCE}}return l},n.isAlreadyRendering=function(){return!1},n.observeVisibleRects=function(l,c,L,M){if(!D)throw Error(o(363));l=Xs(l,c);var B=q1(l,L,M).disconnect;return{disconnect:function(){B()}}},n.registerMutableSourceForHydration=function(l,c){var L=c._getVersion;L=L(c._source),l.mutableSourceEagerHydrationData==null?l.mutableSourceEagerHydrationData=[c,L]:l.mutableSourceEagerHydrationData.push(c,L)},n.runWithPriority=function(l,c){var L=J0;try{return J0=l,c()}finally{J0=L}},n.shouldError=function(){return null},n.shouldSuspend=function(){return!1},n.updateContainer=function(l,c,L,M){var B=c.current,b=b9(),Y=R6(B);return L=ag(L),c.context===null?c.context=L:c.pendingContext=L,c=P4(b,Y),c.payload={element:l},M=M===void 0?null:M,M!==null&&(c.callback=M),B6(B,c),l=I8(B,Y,b),l!==null&&Zn(l,B,Y),Y},n};fk.exports=ND;var HD=fk.exports;const jD=Uv(HD),xh={},UD=t=>void Object.assign(xh,t);function FD(t,e){function n(g,{args:p=[],attach:A,...w},x){let y=`${g[0].toUpperCase()}${g.slice(1)}`,m;if(g==="primitive"){if(w.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const v=w.object;m=S7(v,{type:g,root:x,attach:A,primitive:!0})}else{const v=xh[y];if(!v)throw new Error(`R3F: ${y} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(p))throw new Error("R3F: The args prop must be an array!");m=S7(new v(...p),{type:g,root:x,attach:A,memoizedProps:{args:p}})}return m.__r3f.attach===void 0&&(m instanceof b0?m.__r3f.attach="geometry":m instanceof l9&&(m.__r3f.attach="material")),y!=="inject"&&xa(m,w),m}function C(g,p){let A=!1;if(p){var w,x;(w=p.__r3f)!=null&&w.attach?wa(g,p,p.__r3f.attach):p.isObject3D&&g.isObject3D&&(g.add(p),A=!0),A||(x=g.__r3f)==null||x.objects.push(p),p.__r3f||S7(p,{}),p.__r3f.parent=g,Mu(p),_7(p)}}function r(g,p,A){let w=!1;if(p){var x,y;if((x=p.__r3f)!=null&&x.attach)wa(g,p,p.__r3f.attach);else if(p.isObject3D&&g.isObject3D){p.parent=g,p.dispatchEvent({type:"added"});const m=g.children.filter(E=>E!==p),v=m.indexOf(A);g.children=[...m.slice(0,v),p,...m.slice(v)],w=!0}w||(y=g.__r3f)==null||y.objects.push(p),p.__r3f||S7(p,{}),p.__r3f.parent=g,Mu(p),_7(p)}}function i(g,p,A=!1){g&&[...g].forEach(w=>o(p,w,A))}function o(g,p,A){if(p){var w,x,y;if(p.__r3f&&(p.__r3f.parent=null),(w=g.__r3f)!=null&&w.objects&&(g.__r3f.objects=g.__r3f.objects.filter(I=>I!==p)),(x=p.__r3f)!=null&&x.attach)Cv(g,p,p.__r3f.attach);else if(p.isObject3D&&g.isObject3D){var m;g.remove(p),(m=p.__r3f)!=null&&m.root&&YD(p.__r3f.root,p)}const E=(y=p.__r3f)==null?void 0:y.primitive,k=!E&&(A===void 0?p.dispose!==null:A);if(!E){var v;i((v=p.__r3f)==null?void 0:v.objects,p,k),i(p.children,p,k)}if(delete p.__r3f,k&&p.dispose&&p.type!=="Scene"){const I=()=>{try{p.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?mu.unstable_scheduleCallback(mu.unstable_IdlePriority,I):I()}_7(g)}}function s(g,p,A,w){var x;const y=(x=g.__r3f)==null?void 0:x.parent;if(!y)return;const m=n(p,A,g.__r3f.root);if(g.children){for(const v of g.children)v.__r3f&&C(m,v);g.children=g.children.filter(v=>!v.__r3f)}g.__r3f.objects.forEach(v=>C(m,v)),g.__r3f.objects=[],g.__r3f.autoRemovedBeforeAppend||o(y,g),m.parent&&(m.__r3f.autoRemovedBeforeAppend=!0),C(y,m),m.raycast&&m.__r3f.eventCount&&m.__r3f.root.getState().internal.interaction.push(m),[w,w.alternate].forEach(v=>{v!==null&&(v.stateNode=m,v.ref&&(typeof v.ref=="function"?v.ref(m):v.ref.current=m))})}const a=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:jD({createInstance:n,removeChild:o,appendChild:C,appendInitialChild:C,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(g,p)=>{if(!p)return;const A=g.getState().scene;A.__r3f&&(A.__r3f.root=g,C(A,p))},removeChildFromContainer:(g,p)=>{p&&o(g.getState().scene,p)},insertInContainerBefore:(g,p,A)=>{if(!p||!A)return;const w=g.getState().scene;w.__r3f&&r(w,p,A)},getRootHostContext:()=>null,getChildHostContext:g=>g,finalizeInitialChildren(g){var p;return!!((p=g==null?void 0:g.__r3f)!=null?p:{}).handlers},prepareUpdate(g,p,A,w){var x;if(((x=g==null?void 0:g.__r3f)!=null?x:{}).primitive&&w.object&&w.object!==g)return[!0];{const{args:m=[],children:v,...E}=w,{args:k=[],children:I,...Q}=A;if(!Array.isArray(m))throw new Error("R3F: the args prop must be an array!");if(m.some((T,j)=>T!==k[j]))return[!0];const R=kk(g,E,Q,!0);return R.changes.length?[!1,R]:null}},commitUpdate(g,[p,A],w,x,y,m){p?s(g,w,y,m):xa(g,A)},commitMount(g,p,A,w){var x;const y=(x=g.__r3f)!=null?x:{};g.raycast&&y.handlers&&y.eventCount&&g.__r3f.root.getState().internal.interaction.push(g)},getPublicInstance:g=>g,prepareForCommit:()=>null,preparePortalMount:g=>S7(g.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(g){var p;const{attach:A,parent:w}=(p=g.__r3f)!=null?p:{};A&&w&&Cv(w,g,A),g.isObject3D&&(g.visible=!1),_7(g)},unhideInstance(g,p){var A;const{attach:w,parent:x}=(A=g.__r3f)!=null?A:{};w&&x&&wa(x,g,w),(g.isObject3D&&p.visible==null||p.visible)&&(g.visible=!0),_7(g)},createTextInstance:a,hideTextInstance:a,unhideTextInstance:a,getCurrentEventPriority:()=>e?e():Y7.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&x2.fun(performance.now)?performance.now:x2.fun(Date.now)?Date.now:()=>0,scheduleTimeout:x2.fun(setTimeout)?setTimeout:void 0,cancelTimeout:x2.fun(clearTimeout)?clearTimeout:void 0}),applyProps:xa}}var ZA,ev;const La=t=>"colorSpace"in t||"outputColorSpace"in t,Ak=()=>{var t;return(t=xh.ColorManagement)!=null?t:null},vk=t=>t&&t.isOrthographicCamera,WD=t=>t&&t.hasOwnProperty("current"),jn=typeof window<"u"&&((ZA=window.document)!=null&&ZA.createElement||((ev=window.navigator)==null?void 0:ev.product)==="ReactNative")?u.useLayoutEffect:u.useEffect;function Lk(t){const e=u.useRef(t);return jn(()=>void(e.current=t),[t]),e}function GD({set:t}){return jn(()=>(t(new Promise(()=>null)),()=>t(!1)),[t]),null}class wk extends u.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}wk.getDerivedStateFromError=()=>({error:!0});const xk="__default",tv=new Map,OD=t=>t&&!!t.memoized&&!!t.changes;function mk(t){var e;const n=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(t)?Math.min(Math.max(t[0],n),t[1]):t}const ct=t=>{var e;return(e=t.__r3f)==null?void 0:e.root.getState()},x2={obj:t=>t===Object(t)&&!x2.arr(t)&&typeof t!="function",fun:t=>typeof t=="function",str:t=>typeof t=="string",num:t=>typeof t=="number",boo:t=>typeof t=="boolean",und:t=>t===void 0,arr:t=>Array.isArray(t),equ(t,e,{arrays:n="shallow",objects:C="reference",strict:r=!0}={}){if(typeof t!=typeof e||!!t!=!!e)return!1;if(x2.str(t)||x2.num(t))return t===e;const i=x2.obj(t);if(i&&C==="reference")return t===e;const o=x2.arr(t);if(o&&n==="reference")return t===e;if((o||i)&&t===e)return!0;let s;for(s in t)if(!(s in e))return!1;if(i&&n==="shallow"&&C==="shallow"){for(s in r?e:t)if(!x2.equ(t[s],e[s],{strict:r,objects:"reference"}))return!1}else for(s in r?e:t)if(t[s]!==e[s])return!1;if(x2.und(s)){if(o&&t.length===0&&e.length===0||i&&Object.keys(t).length===0&&Object.keys(e).length===0)return!0;if(t!==e)return!1}return!0}};function zD(t){t.dispose&&t.type!=="Scene"&&t.dispose();for(const e in t)e.dispose==null||e.dispose(),delete t[e]}function S7(t,e){const n=t;return n.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},t}function ku(t,e){let n=t;if(e.includes("-")){const C=e.split("-"),r=C.pop();return n=C.reduce((i,o)=>i[o],t),{target:n,key:r}}else return{target:n,key:e}}const nv=/-\d+$/;function wa(t,e,n){if(x2.str(n)){if(nv.test(n)){const i=n.replace(nv,""),{target:o,key:s}=ku(t,i);Array.isArray(o[s])||(o[s]=[])}const{target:C,key:r}=ku(t,n);e.__r3f.previousAttach=C[r],C[r]=e}else e.__r3f.previousAttach=n(t,e)}function Cv(t,e,n){var C,r;if(x2.str(n)){const{target:i,key:o}=ku(t,n),s=e.__r3f.previousAttach;s===void 0?delete i[o]:i[o]=s}else(C=e.__r3f)==null||C.previousAttach==null||C.previousAttach(t,e);(r=e.__r3f)==null||delete r.previousAttach}function kk(t,{children:e,key:n,ref:C,...r},{children:i,key:o,ref:s,...a}={},d=!1){var g;const p=(g=t==null?void 0:t.__r3f)!=null?g:{},A=Object.entries(r),w=[];if(d){const y=Object.keys(a);for(let m=0;m{var v;if((v=t.__r3f)!=null&&v.primitive&&y==="object"||x2.equ(m,a[y]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(y))return w.push([y,m,!0,[]]);let E=[];y.includes("-")&&(E=y.split("-")),w.push([y,m,!1,E]);for(const k in r){const I=r[k];k.startsWith(`${y}-`)&&w.push([k,I,!1,k.split("-")])}});const x={...r};return p.memoizedProps&&p.memoizedProps.args&&(x.args=p.memoizedProps.args),p.memoizedProps&&p.memoizedProps.attach&&(x.attach=p.memoizedProps.attach),{memoized:x,changes:w}}const VD=typeof process<"u"&&!1;function xa(t,e){var n,C,r;const i=(n=t.__r3f)!=null?n:{},o=i.root,s=(C=o==null||o.getState==null?void 0:o.getState())!=null?C:{},{memoized:a,changes:d}=OD(e)?e:kk(t,e),g=i.eventCount;t.__r3f&&(t.__r3f.memoizedProps=a);for(let A=0;Ak[I],t),!(E&&E.set))){const[k,...I]=m.reverse();v=I.reverse().reduce((Q,R)=>Q[R],t),w=k}if(x===xk+"remove")if(v.constructor){let k=tv.get(v.constructor);k||(k=new v.constructor,tv.set(v.constructor,k)),x=k[w]}else x=0;if(y)x?i.handlers[w]=x:delete i.handlers[w],i.eventCount=Object.keys(i.handlers).length;else if(E&&E.set&&(E.copy||E instanceof y3)){if(Array.isArray(x))E.fromArray?E.fromArray(x):E.set(...x);else if(E.copy&&x&&x.constructor&&(VD?E.constructor.name===x.constructor.name:E.constructor===x.constructor))E.copy(x);else if(x!==void 0){const k=E instanceof J1;!k&&E.setScalar?E.setScalar(x):E instanceof y3&&x instanceof y3?E.mask=x.mask:E.set(x),!Ak()&&!s.linear&&k&&E.convertSRGBToLinear()}}else if(v[w]=x,v[w]instanceof k2&&v[w].format===N9&&v[w].type===I4){const k=v[w];La(k)&&La(s.gl)?k.colorSpace=s.gl.outputColorSpace:k.encoding=s.gl.outputEncoding}_7(t)}if(i.parent&&s.internal&&t.raycast&&g!==i.eventCount){const A=s.internal.interaction.indexOf(t);A>-1&&s.internal.interaction.splice(A,1),i.eventCount&&s.internal.interaction.push(t)}return!(d.length===1&&d[0][0]==="onUpdate")&&d.length&&(r=t.__r3f)!=null&&r.parent&&Mu(t),t}function _7(t){var e,n;const C=(e=t.__r3f)==null||(n=e.root)==null||n.getState==null?void 0:n.getState();C&&C.internal.frames===0&&C.invalidate()}function Mu(t){t.onUpdate==null||t.onUpdate(t)}function Mk(t,e){t.manual||(vk(t)?(t.left=e.width/-2,t.right=e.width/2,t.top=e.height/2,t.bottom=e.height/-2):t.aspect=e.width/e.height,t.updateProjectionMatrix(),t.updateMatrixWorld())}function zr(t){return(t.eventObject||t.object).uuid+"/"+t.index+t.instanceId}function $D(){var t;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return Y7.DefaultEventPriority;switch((t=e.event)==null?void 0:t.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return Y7.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return Y7.ContinuousEventPriority;default:return Y7.DefaultEventPriority}}function Ek(t,e,n,C){const r=n.get(e);r&&(n.delete(e),n.size===0&&(t.delete(C),r.target.releasePointerCapture(C)))}function YD(t,e){const{internal:n}=t.getState();n.interaction=n.interaction.filter(C=>C!==e),n.initialHits=n.initialHits.filter(C=>C!==e),n.hovered.forEach((C,r)=>{(C.eventObject===e||C.object===e)&&n.hovered.delete(r)}),n.capturedMap.forEach((C,r)=>{Ek(n.capturedMap,e,C,r)})}function XD(t){function e(a){const{internal:d}=t.getState(),g=a.offsetX-d.initialClick[0],p=a.offsetY-d.initialClick[1];return Math.round(Math.sqrt(g*g+p*p))}function n(a){return a.filter(d=>["Move","Over","Enter","Out","Leave"].some(g=>{var p;return(p=d.__r3f)==null?void 0:p.handlers["onPointer"+g]}))}function C(a,d){const g=t.getState(),p=new Set,A=[],w=d?d(g.internal.interaction):g.internal.interaction;for(let v=0;v{const k=ct(v.object),I=ct(E.object);return!k||!I?v.distance-E.distance:I.events.priority-k.events.priority||v.distance-E.distance}).filter(v=>{const E=zr(v);return p.has(E)?!1:(p.add(E),!0)});g.events.filter&&(y=g.events.filter(y,g));for(const v of y){let E=v.object;for(;E;){var m;(m=E.__r3f)!=null&&m.eventCount&&A.push({...v,eventObject:E}),E=E.parent}}if("pointerId"in a&&g.internal.capturedMap.has(a.pointerId))for(let v of g.internal.capturedMap.get(a.pointerId).values())p.has(zr(v.intersection))||A.push(v.intersection);return A}function r(a,d,g,p){const A=t.getState();if(a.length){const w={stopped:!1};for(const x of a){const y=ct(x.object)||A,{raycaster:m,pointer:v,camera:E,internal:k}=y,I=new G(v.x,v.y,0).unproject(E),Q=_=>{var P,K;return(P=(K=k.capturedMap.get(_))==null?void 0:K.has(x.eventObject))!=null?P:!1},R=_=>{const P={intersection:x,target:d.target};k.capturedMap.has(_)?k.capturedMap.get(_).set(x.eventObject,P):k.capturedMap.set(_,new Map([[x.eventObject,P]])),d.target.setPointerCapture(_)},T=_=>{const P=k.capturedMap.get(_);P&&Ek(k.capturedMap,x.eventObject,P,_)};let j={};for(let _ in d){let P=d[_];typeof P!="function"&&(j[_]=P)}let q={...x,...j,pointer:v,intersections:a,stopped:w.stopped,delta:g,unprojectedPoint:I,ray:m.ray,camera:E,stopPropagation(){const _="pointerId"in d&&k.capturedMap.get(d.pointerId);if((!_||_.has(x.eventObject))&&(q.stopped=w.stopped=!0,k.hovered.size&&Array.from(k.hovered.values()).find(P=>P.eventObject===x.eventObject))){const P=a.slice(0,a.indexOf(x));i([...P,x])}},target:{hasPointerCapture:Q,setPointerCapture:R,releasePointerCapture:T},currentTarget:{hasPointerCapture:Q,setPointerCapture:R,releasePointerCapture:T},nativeEvent:d};if(p(q),w.stopped===!0)break}}return a}function i(a){const{internal:d}=t.getState();for(const g of d.hovered.values())if(!a.length||!a.find(p=>p.object===g.object&&p.index===g.index&&p.instanceId===g.instanceId)){const A=g.eventObject.__r3f,w=A==null?void 0:A.handlers;if(d.hovered.delete(zr(g)),A!=null&&A.eventCount){const x={...g,intersections:a};w.onPointerOut==null||w.onPointerOut(x),w.onPointerLeave==null||w.onPointerLeave(x)}}}function o(a,d){for(let g=0;gi([]);case"onLostPointerCapture":return d=>{const{internal:g}=t.getState();"pointerId"in d&&g.capturedMap.has(d.pointerId)&&requestAnimationFrame(()=>{g.capturedMap.has(d.pointerId)&&(g.capturedMap.delete(d.pointerId),i([]))})}}return function(g){const{onPointerMissed:p,internal:A}=t.getState();A.lastEvent.current=g;const w=a==="onPointerMove",x=a==="onClick"||a==="onContextMenu"||a==="onDoubleClick",m=C(g,w?n:void 0),v=x?e(g):0;a==="onPointerDown"&&(A.initialClick=[g.offsetX,g.offsetY],A.initialHits=m.map(k=>k.eventObject)),x&&!m.length&&v<=2&&(o(g,A.interaction),p&&p(g)),w&&i(m);function E(k){const I=k.eventObject,Q=I.__r3f,R=Q==null?void 0:Q.handlers;if(Q!=null&&Q.eventCount)if(w){if(R.onPointerOver||R.onPointerEnter||R.onPointerOut||R.onPointerLeave){const T=zr(k),j=A.hovered.get(T);j?j.stopped&&k.stopPropagation():(A.hovered.set(T,k),R.onPointerOver==null||R.onPointerOver(k),R.onPointerEnter==null||R.onPointerEnter(k))}R.onPointerMove==null||R.onPointerMove(k)}else{const T=R[a];T?(!x||A.initialHits.includes(I))&&(o(g,A.interaction.filter(j=>!A.initialHits.includes(j))),T(k)):x&&A.initialHits.includes(I)&&o(g,A.interaction.filter(j=>!A.initialHits.includes(j)))}}r(m,g,v,E)}}return{handlePointer:s}}const JD=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],yk=t=>!!(t!=null&&t.render),mh=u.createContext(null),qD=(t,e)=>{const n=hk((s,a)=>{const d=new G,g=new G,p=new G;function A(v=a().camera,E=g,k=a().size){const{width:I,height:Q,top:R,left:T}=k,j=I/Q;E instanceof G?p.copy(E):p.set(...E);const q=v.getWorldPosition(d).distanceTo(p);if(vk(v))return{width:I/v.zoom,height:Q/v.zoom,top:R,left:T,factor:1,distance:q,aspect:j};{const _=v.fov*Math.PI/180,P=2*Math.tan(_/2)*q,K=P*(I/Q);return{width:K,height:P,top:R,left:T,factor:I/K,distance:q,aspect:j}}}let w;const x=v=>s(E=>({performance:{...E.performance,current:v}})),y=new y1;return{set:s,get:a,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(v=1)=>t(a(),v),advance:(v,E)=>e(v,E,a()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new ph,pointer:y,mouse:y,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const v=a();w&&clearTimeout(w),v.performance.current!==v.performance.min&&x(v.performance.min),w=setTimeout(()=>x(a().performance.max),v.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:A},setEvents:v=>s(E=>({...E,events:{...E.events,...v}})),setSize:(v,E,k,I,Q)=>{const R=a().camera,T={width:v,height:E,top:I||0,left:Q||0,updateStyle:k};s(j=>({size:T,viewport:{...j.viewport,...A(R,g,T)}}))},setDpr:v=>s(E=>{const k=mk(v);return{viewport:{...E.viewport,dpr:k,initialDpr:E.viewport.initialDpr||k}}}),setFrameloop:(v="always")=>{const E=a().clock;E.stop(),E.elapsedTime=0,v!=="never"&&(E.start(),E.elapsedTime=0),s(()=>({frameloop:v}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:u.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(v,E,k)=>{const I=a().internal;return I.priority=I.priority+(E>0?1:0),I.subscribers.push({ref:v,priority:E,store:k}),I.subscribers=I.subscribers.sort((Q,R)=>Q.priority-R.priority),()=>{const Q=a().internal;Q!=null&&Q.subscribers&&(Q.priority=Q.priority-(E>0?1:0),Q.subscribers=Q.subscribers.filter(R=>R.ref!==v))}}}}}),C=n.getState();let r=C.size,i=C.viewport.dpr,o=C.camera;return n.subscribe(()=>{const{camera:s,size:a,viewport:d,gl:g,set:p}=n.getState();if(a.width!==r.width||a.height!==r.height||d.dpr!==i){var A;r=a,i=d.dpr,Mk(s,a),g.setPixelRatio(d.dpr);const w=(A=a.updateStyle)!=null?A:typeof HTMLCanvasElement<"u"&&g.domElement instanceof HTMLCanvasElement;g.setSize(a.width,a.height,w)}s!==o&&(o=s,p(w=>({viewport:{...w.viewport,...w.viewport.getCurrentViewport(s)}})))}),n.subscribe(s=>t(s)),n};let Vr,KD=new Set,ZD=new Set,eP=new Set;function ma(t,e){if(t.size)for(const{callback:n}of t.values())n(e)}function ut(t,e){switch(t){case"before":return ma(KD,e);case"after":return ma(ZD,e);case"tail":return ma(eP,e)}}let ka,Ma;function Ea(t,e,n){let C=e.clock.getDelta();for(e.frameloop==="never"&&typeof t=="number"&&(C=t-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=t),ka=e.internal.subscribers,Vr=0;Vr0)&&!((d=r.gl.xr)!=null&&d.isPresenting)&&(n+=Ea(a,r))}if(ut("after",a),n===0)return ut("tail",a),e=!1,cancelAnimationFrame(C)}function o(a,d=1){var g;if(!a)return t.forEach(p=>o(p.store.getState()),d);(g=a.gl.xr)!=null&&g.isPresenting||!a.internal.active||a.frameloop==="never"||(a.internal.frames=Math.min(60,a.internal.frames+d),e||(e=!0,requestAnimationFrame(i)))}function s(a,d=!0,g,p){if(d&&ut("before",a),g)Ea(a,g,p);else for(const A of t.values())Ea(a,A.store.getState());d&&ut("after",a)}return{loop:i,invalidate:o,advance:s}}function Un(){const t=u.useContext(mh);if(!t)throw new Error("R3F: Hooks can only be used within the Canvas component!");return t}function kh(t=n=>n,e){return Un()(t,e)}function y5(t,e=0){const n=Un(),C=n.getState().internal.subscribe,r=Lk(t);return jn(()=>C(r,e,n),[e,C,n]),null}const de=new Map,{invalidate:rv,advance:iv}=tP(de),{reconciler:mn,applyProps:E7}=FD(de,$D),y7={objects:"shallow",strict:!1},nP=(t,e)=>{const n=typeof t=="function"?t(e):t;return yk(n)?n:new Kd({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...t})};function CP(t,e){const n=typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement;if(e){const{width:C,height:r,top:i,left:o,updateStyle:s=n}=e;return{width:C,height:r,top:i,left:o,updateStyle:s}}else if(typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement&&t.parentElement){const{width:C,height:r,top:i,left:o}=t.parentElement.getBoundingClientRect();return{width:C,height:r,top:i,left:o,updateStyle:n}}else if(typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas)return{width:t.width,height:t.height,top:0,left:0,updateStyle:n};return{width:0,height:0,top:0,left:0}}function rP(t){const e=de.get(t),n=e==null?void 0:e.fiber,C=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,i=C||qD(rv,iv),o=n||mn.createContainer(i,Y7.ConcurrentRoot,null,!1,null,"",r,null);e||de.set(t,{fiber:o,store:i});let s,a=!1,d;return{configure(g={}){let{gl:p,size:A,scene:w,events:x,onCreated:y,shadows:m=!1,linear:v=!1,flat:E=!1,legacy:k=!1,orthographic:I=!1,frameloop:Q="always",dpr:R=[1,2],performance:T,raycaster:j,camera:q,onPointerMissed:_}=g,P=i.getState(),K=P.gl;P.gl||P.set({gl:K=nP(p,t)});let g1=P.raycaster;g1||P.set({raycaster:g1=new wh});const{params:X,...i1}=j||{};if(x2.equ(i1,g1,y7)||E7(g1,{...i1}),x2.equ(X,g1.params,y7)||E7(g1,{params:{...g1.params,...X}}),!P.camera||P.camera===d&&!x2.equ(d,q,y7)){d=q;const x1=q instanceof Rn,U1=x1?q:I?new Tn(0,0,0,0,.1,1e3):new X2(75,0,.1,1e3);x1||(U1.position.z=5,q&&E7(U1,q),!P.camera&&!(q!=null&&q.rotation)&&U1.lookAt(0,0,0)),P.set({camera:U1}),g1.camera=U1}if(!P.scene){let x1;w instanceof fn?x1=w:(x1=new fn,w&&E7(x1,w)),P.set({scene:S7(x1)})}if(!P.xr){var C1;const x1=(O,W)=>{const F=i.getState();F.frameloop!=="never"&&iv(O,!0,F,W)},U1=()=>{const O=i.getState();O.gl.xr.enabled=O.gl.xr.isPresenting,O.gl.xr.setAnimationLoop(O.gl.xr.isPresenting?x1:null),O.gl.xr.isPresenting||rv(O)},$={connect(){const O=i.getState().gl;O.xr.addEventListener("sessionstart",U1),O.xr.addEventListener("sessionend",U1)},disconnect(){const O=i.getState().gl;O.xr.removeEventListener("sessionstart",U1),O.xr.removeEventListener("sessionend",U1)}};typeof((C1=K.xr)==null?void 0:C1.addEventListener)=="function"&&$.connect(),P.set({xr:$})}if(K.shadowMap){const x1=K.shadowMap.enabled,U1=K.shadowMap.type;if(K.shadowMap.enabled=!!m,x2.boo(m))K.shadowMap.type=_t;else if(x2.str(m)){var u1;const $={basic:Cx,percentage:_o,soft:_t,variance:X8};K.shadowMap.type=(u1=$[m])!=null?u1:_t}else x2.obj(m)&&Object.assign(K.shadowMap,m);(x1!==K.shadowMap.enabled||U1!==K.shadowMap.type)&&(K.shadowMap.needsUpdate=!0)}const U=Ak();U&&("enabled"in U?U.enabled=!k:"legacyMode"in U&&(U.legacyMode=k)),E7(K,{outputEncoding:v?3e3:3001,toneMapping:E?y4:Qd}),P.legacy!==k&&P.set(()=>({legacy:k})),P.linear!==v&&P.set(()=>({linear:v})),P.flat!==E&&P.set(()=>({flat:E})),p&&!x2.fun(p)&&!yk(p)&&!x2.equ(p,K,y7)&&E7(K,p),x&&!P.events.handlers&&P.set({events:x(i)});const d1=CP(t,A);return x2.equ(d1,P.size,y7)||P.setSize(d1.width,d1.height,d1.updateStyle,d1.top,d1.left),R&&P.viewport.dpr!==mk(R)&&P.setDpr(R),P.frameloop!==Q&&P.setFrameloop(Q),P.onPointerMissed||P.set({onPointerMissed:_}),T&&!x2.equ(T,P.performance,y7)&&P.set(x1=>({performance:{...x1.performance,...T}})),s=y,a=!0,this},render(g){return a||this.configure(),mn.updateContainer(u.createElement(iP,{store:i,children:g,onCreated:s,rootElement:t}),o,null,()=>{}),i},unmount(){Ik(t)}}}function iP({store:t,children:e,onCreated:n,rootElement:C}){return jn(()=>{const r=t.getState();r.set(i=>({internal:{...i.internal,active:!0}})),n&&n(r),t.getState().events.connected||r.events.connect==null||r.events.connect(C)},[]),u.createElement(mh.Provider,{value:t},e)}function Ik(t,e){const n=de.get(t),C=n==null?void 0:n.fiber;if(C){const r=n==null?void 0:n.store.getState();r&&(r.internal.active=!1),mn.updateContainer(null,C,null,()=>{r&&setTimeout(()=>{try{var i,o,s,a;r.events.disconnect==null||r.events.disconnect(),(i=r.gl)==null||(o=i.renderLists)==null||o.dispose==null||o.dispose(),(s=r.gl)==null||s.forceContextLoss==null||s.forceContextLoss(),(a=r.gl)!=null&&a.xr&&r.xr.disconnect(),zD(r),de.delete(t),e&&e(t)}catch{}},500)})}}function Bk(t,e,n){return u.createElement(oP,{key:e.uuid,children:t,container:e,state:n})}function oP({state:t={},children:e,container:n}){const{events:C,size:r,...i}=t,o=Un(),[s]=u.useState(()=>new wh),[a]=u.useState(()=>new y1),d=u.useCallback((p,A)=>{const w={...p};Object.keys(p).forEach(y=>{(JD.includes(y)||p[y]!==A[y]&&A[y])&&delete w[y]});let x;if(A&&r){const y=A.camera;x=p.viewport.getCurrentViewport(y,new G,r),y!==p.camera&&Mk(y,r)}return{...w,scene:n,raycaster:s,pointer:a,mouse:a,previousRoot:o,events:{...p.events,...A==null?void 0:A.events,...C},size:{...p.size,...r},viewport:{...p.viewport,...x},...i}},[t]),[g]=u.useState(()=>{const p=o.getState();return hk((w,x)=>({...p,scene:n,raycaster:s,pointer:a,mouse:a,previousRoot:o,events:{...p.events,...C},size:{...p.size,...r},...i,set:w,get:x,setEvents:y=>w(m=>({...m,events:{...m.events,...y}}))}))});return u.useEffect(()=>{const p=o.subscribe(A=>g.setState(w=>d(A,w)));return()=>{p(),g.destroy()}},[]),u.useEffect(()=>{g.setState(p=>d(o.getState(),p))},[d]),u.createElement(u.Fragment,null,mn.createPortal(u.createElement(mh.Provider,{value:g},e),g,null))}mn.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:u.version});function lo(){return lo=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0?C=setTimeout(a,e-g):(C=null,n||(s=t.apply(i,r),i=r=null))}var d=function(){i=this,r=arguments,o=Date.now();var g=n&&!C;return C||(C=setTimeout(a,e)),g&&(s=t.apply(i,r),i=r=null),s};return d.clear=function(){C&&(clearTimeout(C),C=null)},d.flush=function(){C&&(s=t.apply(i,r),i=r=null,clearTimeout(C),C=null)},d}Eu.debounce=Eu;var sP=Eu;const ov=Uv(sP);function lP(t){let{debounce:e,scroll:n,polyfill:C,offsetSize:r}=t===void 0?{debounce:0,scroll:!1,offsetSize:!1}:t;const i=C||(typeof window>"u"?class{}:window.ResizeObserver);if(!i)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,s]=u.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),a=u.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),d=e?typeof e=="number"?e:e.scroll:null,g=e?typeof e=="number"?e:e.resize:null,p=u.useRef(!1);u.useEffect(()=>(p.current=!0,()=>void(p.current=!1)));const[A,w,x]=u.useMemo(()=>{const E=()=>{if(!a.current.element)return;const{left:k,top:I,width:Q,height:R,bottom:T,right:j,x:q,y:_}=a.current.element.getBoundingClientRect(),P={left:k,top:I,width:Q,height:R,bottom:T,right:j,x:q,y:_};a.current.element instanceof HTMLElement&&r&&(P.height=a.current.element.offsetHeight,P.width=a.current.element.offsetWidth),Object.freeze(P),p.current&&!dP(a.current.lastBounds,P)&&s(a.current.lastBounds=P)};return[E,g?ov(E,g):E,d?ov(E,d):E]},[s,r,d,g]);function y(){a.current.scrollContainers&&(a.current.scrollContainers.forEach(E=>E.removeEventListener("scroll",x,!0)),a.current.scrollContainers=null),a.current.resizeObserver&&(a.current.resizeObserver.disconnect(),a.current.resizeObserver=null)}function m(){a.current.element&&(a.current.resizeObserver=new i(x),a.current.resizeObserver.observe(a.current.element),n&&a.current.scrollContainers&&a.current.scrollContainers.forEach(E=>E.addEventListener("scroll",x,{capture:!0,passive:!0})))}const v=E=>{!E||E===a.current.element||(y(),a.current.element=E,a.current.scrollContainers=Sk(E),m())};return cP(x,!!n),aP(w),u.useEffect(()=>{y(),m()},[n,x,w]),u.useEffect(()=>y,[]),[v,o,A]}function aP(t){u.useEffect(()=>{const e=t;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[t])}function cP(t,e){u.useEffect(()=>{if(e){const n=t;return window.addEventListener("scroll",n,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",n,!0)}},[t,e])}function Sk(t){const e=[];if(!t||t===document.body)return e;const{overflow:n,overflowX:C,overflowY:r}=window.getComputedStyle(t);return[n,C,r].some(i=>i==="auto"||i==="scroll")&&e.push(t),[...e,...Sk(t.parentElement)]}const uP=["x","y","top","bottom","left","right","width","height"],dP=(t,e)=>uP.every(n=>t[n]===e[n]);var hP=Object.defineProperty,fP=Object.defineProperties,gP=Object.getOwnPropertyDescriptors,sv=Object.getOwnPropertySymbols,pP=Object.prototype.hasOwnProperty,AP=Object.prototype.propertyIsEnumerable,lv=(t,e,n)=>e in t?hP(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,av=(t,e)=>{for(var n in e||(e={}))pP.call(e,n)&&lv(t,n,e[n]);if(sv)for(var n of sv(e))AP.call(e,n)&&lv(t,n,e[n]);return t},vP=(t,e)=>fP(t,gP(e));function _k(t,e,n){if(!t)return;if(n(t)===!0)return t;let C=e?t.return:t.child;for(;C;){const r=_k(C,e,n);if(r)return r;C=e?null:C.sibling}}function Rk(t){try{return Object.defineProperties(t,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return t}}const Mh=Rk(u.createContext(null));class bk extends u.Component{render(){return u.createElement(Mh.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:cv,ReactCurrentDispatcher:uv}=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function LP(){const t=u.useContext(Mh);if(t===null)throw new Error("its-fine: useFiber must be called within a !");const e=u.useId();return u.useMemo(()=>{for(const C of[cv==null?void 0:cv.current,t,t==null?void 0:t.alternate]){if(!C)continue;const r=_k(C,!1,i=>{let o=i.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[t,e])}function wP(){var t,e;const n=LP(),[C]=u.useState(()=>new Map);C.clear();let r=n;for(;r;){const i=(t=r.type)==null?void 0:t._context;i&&i!==Mh&&!C.has(i)&&C.set(i,(e=uv==null?void 0:uv.current)==null?void 0:e.readContext(Rk(i))),r=r.return}return C}function xP(){const t=wP();return u.useMemo(()=>Array.from(t.keys()).reduce((e,n)=>C=>u.createElement(e,null,u.createElement(n.Provider,vP(av({},C),{value:t.get(n)}))),e=>u.createElement(bk,av({},e))),[t])}const ya={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function mP(t){const{handlePointer:e}=XD(t);return{priority:1,enabled:!0,compute(n,C,r){C.pointer.set(n.offsetX/C.size.width*2-1,-(n.offsetY/C.size.height)*2+1),C.raycaster.setFromCamera(C.pointer,C.camera)},connected:void 0,handlers:Object.keys(ya).reduce((n,C)=>({...n,[C]:e(C)}),{}),update:()=>{var n;const{events:C,internal:r}=t.getState();(n=r.lastEvent)!=null&&n.current&&C.handlers&&C.handlers.onPointerMove(r.lastEvent.current)},connect:n=>{var C;const{set:r,events:i}=t.getState();i.disconnect==null||i.disconnect(),r(o=>({events:{...o.events,connected:n}})),Object.entries((C=i.handlers)!=null?C:[]).forEach(([o,s])=>{const[a,d]=ya[o];n.addEventListener(a,s,{passive:d})})},disconnect:()=>{const{set:n,events:C}=t.getState();if(C.connected){var r;Object.entries((r=C.handlers)!=null?r:[]).forEach(([i,o])=>{if(C&&C.connected instanceof HTMLElement){const[s]=ya[i];C.connected.removeEventListener(s,o)}}),n(i=>({events:{...i.events,connected:void 0}}))}}}}const kP=u.forwardRef(function({children:e,fallback:n,resize:C,style:r,gl:i,events:o=mP,eventSource:s,eventPrefix:a,shadows:d,linear:g,flat:p,legacy:A,orthographic:w,frameloop:x,dpr:y,performance:m,raycaster:v,camera:E,scene:k,onPointerMissed:I,onCreated:Q,...R},T){u.useMemo(()=>UD(TD),[]);const j=xP(),[q,_]=lP({scroll:!0,debounce:{scroll:50,resize:0},...C}),P=u.useRef(null),K=u.useRef(null);u.useImperativeHandle(T,()=>P.current);const g1=Lk(I),[X,i1]=u.useState(!1),[C1,u1]=u.useState(!1);if(X)throw X;if(C1)throw C1;const U=u.useRef(null);jn(()=>{const n1=P.current;_.width>0&&_.height>0&&n1&&(U.current||(U.current=rP(n1)),U.current.configure({gl:i,events:o,shadows:d,linear:g,flat:p,legacy:A,orthographic:w,frameloop:x,dpr:y,performance:m,raycaster:v,camera:E,scene:k,size:_,onPointerMissed:(...d1)=>g1.current==null?void 0:g1.current(...d1),onCreated:d1=>{d1.events.connect==null||d1.events.connect(s?WD(s)?s.current:s:K.current),a&&d1.setEvents({compute:(x1,U1)=>{const $=x1[a+"X"],O=x1[a+"Y"];U1.pointer.set($/U1.size.width*2-1,-(O/U1.size.height)*2+1),U1.raycaster.setFromCamera(U1.pointer,U1.camera)}}),Q==null||Q(d1)}}),U.current.render(u.createElement(j,null,u.createElement(wk,{set:u1},u.createElement(u.Suspense,{fallback:u.createElement(GD,{set:i1})},e)))))}),u.useEffect(()=>{const n1=P.current;if(n1)return()=>Ik(n1)},[]);const t1=s?"none":"auto";return u.createElement("div",lo({ref:K,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:t1,...r}},R),u.createElement("div",{ref:q,style:{width:"100%",height:"100%"}},u.createElement("canvas",{ref:P,style:{display:"block"}},n)))}),MP=u.forwardRef(function(e,n){return u.createElement(bk,null,u.createElement(kP,lo({},e,{ref:n})))});function rs(){throw new Error("Cycle detected")}var EP=Symbol.for("preact-signals");function is(){if(f5>1)f5--;else{for(var t,e=!1;Dt!==void 0;){var n=Dt;for(Dt=void 0,yu++;n!==void 0;){var C=n.o;if(n.o=void 0,n.f&=-3,!(8&n.f)&&Dk(n))try{n.c()}catch(r){e||(t=r,e=!0)}n=C}}if(yu=0,f5--,e)throw t}}function Qk(t){if(f5>0)return t();f5++;try{return t()}finally{is()}}var A2=void 0,Ia=0;function Ba(t){if(Ia>0)return t();var e=A2;A2=void 0,Ia++;try{return t()}finally{Ia--,A2=e}}var Dt=void 0,f5=0,yu=0,ao=0;function Tk(t){if(A2!==void 0){var e=t.n;if(e===void 0||e.t!==A2)return e={i:0,S:t,p:A2.s,n:void 0,t:A2,e:void 0,x:void 0,r:e},A2.s!==void 0&&(A2.s.n=e),A2.s=e,t.n=e,32&A2.f&&t.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=A2.s,e.n=void 0,A2.s.n=e,A2.s=e),e}}function j2(t){this.v=t,this.i=0,this.n=void 0,this.t=void 0}j2.prototype.brand=EP;j2.prototype.h=function(){return!0};j2.prototype.S=function(t){this.t!==t&&t.e===void 0&&(t.x=this.t,this.t!==void 0&&(this.t.e=t),this.t=t)};j2.prototype.U=function(t){if(this.t!==void 0){var e=t.e,n=t.x;e!==void 0&&(e.x=n,t.e=void 0),n!==void 0&&(n.e=e,t.x=void 0),t===this.t&&(this.t=n)}};j2.prototype.subscribe=function(t){var e=this;return $0(function(){var n=e.value,C=32&this.f;this.f&=-33;try{t(n)}finally{this.f|=C}})};j2.prototype.valueOf=function(){return this.value};j2.prototype.toString=function(){return this.value+""};j2.prototype.toJSON=function(){return this.value};j2.prototype.peek=function(){return this.v};Object.defineProperty(j2.prototype,"value",{get:function(){var t=Tk(this);return t!==void 0&&(t.i=this.i),this.v},set:function(t){if(A2 instanceof I5&&function(){throw new Error("Computed cannot have side-effects")}(),t!==this.v){yu>100&&rs(),this.v=t,this.i++,ao++,f5++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{is()}}}});function U0(t){return new j2(t)}function Dk(t){for(var e=t.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function Pk(t){for(var e=t.s;e!==void 0;e=e.n){var n=e.S.n;if(n!==void 0&&(e.r=n),e.S.n=e,e.i=-1,e.n===void 0){t.s=e;break}}}function Nk(t){for(var e=t.s,n=void 0;e!==void 0;){var C=e.p;e.i===-1?(e.S.U(e),C!==void 0&&(C.n=e.n),e.n!==void 0&&(e.n.p=C)):n=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=C}t.s=n}function I5(t){j2.call(this,void 0),this.x=t,this.s=void 0,this.g=ao-1,this.f=4}(I5.prototype=new j2).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===ao))return!0;if(this.g=ao,this.f|=1,this.i>0&&!Dk(this))return this.f&=-2,!0;var t=A2;try{Pk(this),A2=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(n){this.v=n,this.f|=16,this.i++}return A2=t,Nk(this),this.f&=-2,!0};I5.prototype.S=function(t){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}j2.prototype.S.call(this,t)};I5.prototype.U=function(t){if(this.t!==void 0&&(j2.prototype.U.call(this,t),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};I5.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var t=this.t;t!==void 0;t=t.x)t.t.N()}};I5.prototype.peek=function(){if(this.h()||rs(),16&this.f)throw this.v;return this.v};Object.defineProperty(I5.prototype,"value",{get:function(){1&this.f&&rs();var t=Tk(this);if(this.h(),t!==void 0&&(t.i=this.i),16&this.f)throw this.v;return this.v}});function V2(t){return new I5(t)}function Hk(t){var e=t.u;if(t.u=void 0,typeof e=="function"){f5++;var n=A2;A2=void 0;try{e()}catch(C){throw t.f&=-2,t.f|=8,Eh(t),C}finally{A2=n,is()}}}function Eh(t){for(var e=t.s;e!==void 0;e=e.n)e.S.U(e);t.x=void 0,t.s=void 0,Hk(t)}function yP(t){if(A2!==this)throw new Error("Out-of-order effect");Nk(this),A2=t,this.f&=-2,8&this.f&&Eh(this),is()}function Fn(t){this.x=t,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}Fn.prototype.c=function(){var t=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{t()}};Fn.prototype.S=function(){1&this.f&&rs(),this.f|=1,this.f&=-9,Hk(this),Pk(this),f5++;var t=A2;return A2=this,yP.bind(this,t)};Fn.prototype.N=function(){2&this.f||(this.f|=2,this.o=Dt,Dt=this)};Fn.prototype.d=function(){this.f|=8,1&this.f||Eh(this)};function $0(t){var e=new Fn(t);try{e.c()}catch(n){throw e.d(),n}return e.d.bind(e)}function os(t,e,n){const C=u.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=u.useMemo(()=>{let i={};return(o,s)=>{let a=0,d=!1;for(const g in i){if(!Uk(i[g],o[g])){d=!0;break}++a}d||(d=a!=s),i=o,!(!d&&e.getProperty.peek()!=null)&&(e.getProperty.value=g=>Iu(o[g]))}},[e]);jk(t,C,r,n)}function IP(t,e){const n=t.length;for(const C in e)for(let r=0;r{let r={},i=0;const o=(a,d)=>{if(d===void 0)return;const g=r[a];if(g===void 0&&++i,g==null||!(d instanceof j2)){r[a]=d;return}if(Array.isArray(g)){g.push(d);return}r[a]=[g,d]};return{add:(a,d)=>{if(d!==void 0){if(C!=null){C(a,d,e,o);return}e(a)&&o(a,d)}},finish:()=>{n(r,i),i=0,r={}}}},[e,n,C]))}function Uk(t,e){if(!Array.isArray(t))return t===e;if(!Array.isArray(e))return!1;const n=t.length;if(n!=e.length)return!1;for(let C=0;CU0(void 0),[]),r=u.useMemo(()=>({hasBatchedProperty:i=>e.includes(i),getProperty:C}),[e]);return os(t,r,n),C}const BP=u.createContext(void 0);function ke(t,e){const n=u.useContext(BP);n!=null&&e(n);const{classes:C}=t;if(Array.isArray(C)){const r=C.length;for(let i=0;iIP(t,n))}var D9={},yh={},D0={};Object.defineProperty(D0,"__esModule",{value:!0});D0.default=D0.Wrap=D0.Unit=D0.PrintOptions=D0.PositionType=D0.Overflow=D0.NodeType=D0.MeasureMode=D0.LogLevel=D0.Justify=D0.Gutter=D0.FlexDirection=D0.ExperimentalFeature=D0.Errata=D0.Edge=D0.Display=D0.Direction=D0.Dimension=D0.Align=void 0;let Y4=function(t){return t[t.Auto=0]="Auto",t[t.FlexStart=1]="FlexStart",t[t.Center=2]="Center",t[t.FlexEnd=3]="FlexEnd",t[t.Stretch=4]="Stretch",t[t.Baseline=5]="Baseline",t[t.SpaceBetween=6]="SpaceBetween",t[t.SpaceAround=7]="SpaceAround",t}({});D0.Align=Y4;let Bu=function(t){return t[t.Width=0]="Width",t[t.Height=1]="Height",t}({});D0.Dimension=Bu;let ki=function(t){return t[t.Inherit=0]="Inherit",t[t.LTR=1]="LTR",t[t.RTL=2]="RTL",t}({});D0.Direction=ki;let Su=function(t){return t[t.Flex=0]="Flex",t[t.None=1]="None",t}({});D0.Display=Su;let A4=function(t){return t[t.Left=0]="Left",t[t.Top=1]="Top",t[t.Right=2]="Right",t[t.Bottom=3]="Bottom",t[t.Start=4]="Start",t[t.End=5]="End",t[t.Horizontal=6]="Horizontal",t[t.Vertical=7]="Vertical",t[t.All=8]="All",t}({});D0.Edge=A4;let At=function(t){return t[t.None=0]="None",t[t.StretchFlexBasis=1]="StretchFlexBasis",t[t.All=2147483647]="All",t[t.Classic=2147483646]="Classic",t}({});D0.Errata=At;let Mi=function(t){return t[t.WebFlexBasis=0]="WebFlexBasis",t[t.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",t[t.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",t}({});D0.ExperimentalFeature=Mi;let vt=function(t){return t[t.Column=0]="Column",t[t.ColumnReverse=1]="ColumnReverse",t[t.Row=2]="Row",t[t.RowReverse=3]="RowReverse",t}({});D0.FlexDirection=vt;let Ei=function(t){return t[t.Column=0]="Column",t[t.Row=1]="Row",t[t.All=2]="All",t}({});D0.Gutter=Ei;let a3=function(t){return t[t.FlexStart=0]="FlexStart",t[t.Center=1]="Center",t[t.FlexEnd=2]="FlexEnd",t[t.SpaceBetween=3]="SpaceBetween",t[t.SpaceAround=4]="SpaceAround",t[t.SpaceEvenly=5]="SpaceEvenly",t}({});D0.Justify=a3;let c3=function(t){return t[t.Error=0]="Error",t[t.Warn=1]="Warn",t[t.Info=2]="Info",t[t.Debug=3]="Debug",t[t.Verbose=4]="Verbose",t[t.Fatal=5]="Fatal",t}({});D0.LogLevel=c3;let yi=function(t){return t[t.Undefined=0]="Undefined",t[t.Exactly=1]="Exactly",t[t.AtMost=2]="AtMost",t}({});D0.MeasureMode=yi;let _u=function(t){return t[t.Default=0]="Default",t[t.Text=1]="Text",t}({});D0.NodeType=_u;let Ii=function(t){return t[t.Visible=0]="Visible",t[t.Hidden=1]="Hidden",t[t.Scroll=2]="Scroll",t}({});D0.Overflow=Ii;let Bi=function(t){return t[t.Static=0]="Static",t[t.Relative=1]="Relative",t[t.Absolute=2]="Absolute",t}({});D0.PositionType=Bi;let Si=function(t){return t[t.Layout=1]="Layout",t[t.Style=2]="Style",t[t.Children=4]="Children",t}({});D0.PrintOptions=Si;let Lt=function(t){return t[t.Undefined=0]="Undefined",t[t.Point=1]="Point",t[t.Percent=2]="Percent",t[t.Auto=3]="Auto",t}({});D0.Unit=Lt;let _i=function(t){return t[t.NoWrap=0]="NoWrap",t[t.Wrap=1]="Wrap",t[t.WrapReverse=2]="WrapReverse",t}({});D0.Wrap=_i;const SP={ALIGN_AUTO:Y4.Auto,ALIGN_FLEX_START:Y4.FlexStart,ALIGN_CENTER:Y4.Center,ALIGN_FLEX_END:Y4.FlexEnd,ALIGN_STRETCH:Y4.Stretch,ALIGN_BASELINE:Y4.Baseline,ALIGN_SPACE_BETWEEN:Y4.SpaceBetween,ALIGN_SPACE_AROUND:Y4.SpaceAround,DIMENSION_WIDTH:Bu.Width,DIMENSION_HEIGHT:Bu.Height,DIRECTION_INHERIT:ki.Inherit,DIRECTION_LTR:ki.LTR,DIRECTION_RTL:ki.RTL,DISPLAY_FLEX:Su.Flex,DISPLAY_NONE:Su.None,EDGE_LEFT:A4.Left,EDGE_TOP:A4.Top,EDGE_RIGHT:A4.Right,EDGE_BOTTOM:A4.Bottom,EDGE_START:A4.Start,EDGE_END:A4.End,EDGE_HORIZONTAL:A4.Horizontal,EDGE_VERTICAL:A4.Vertical,EDGE_ALL:A4.All,ERRATA_NONE:At.None,ERRATA_STRETCH_FLEX_BASIS:At.StretchFlexBasis,ERRATA_ALL:At.All,ERRATA_CLASSIC:At.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Mi.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:Mi.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:Mi.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:vt.Column,FLEX_DIRECTION_COLUMN_REVERSE:vt.ColumnReverse,FLEX_DIRECTION_ROW:vt.Row,FLEX_DIRECTION_ROW_REVERSE:vt.RowReverse,GUTTER_COLUMN:Ei.Column,GUTTER_ROW:Ei.Row,GUTTER_ALL:Ei.All,JUSTIFY_FLEX_START:a3.FlexStart,JUSTIFY_CENTER:a3.Center,JUSTIFY_FLEX_END:a3.FlexEnd,JUSTIFY_SPACE_BETWEEN:a3.SpaceBetween,JUSTIFY_SPACE_AROUND:a3.SpaceAround,JUSTIFY_SPACE_EVENLY:a3.SpaceEvenly,LOG_LEVEL_ERROR:c3.Error,LOG_LEVEL_WARN:c3.Warn,LOG_LEVEL_INFO:c3.Info,LOG_LEVEL_DEBUG:c3.Debug,LOG_LEVEL_VERBOSE:c3.Verbose,LOG_LEVEL_FATAL:c3.Fatal,MEASURE_MODE_UNDEFINED:yi.Undefined,MEASURE_MODE_EXACTLY:yi.Exactly,MEASURE_MODE_AT_MOST:yi.AtMost,NODE_TYPE_DEFAULT:_u.Default,NODE_TYPE_TEXT:_u.Text,OVERFLOW_VISIBLE:Ii.Visible,OVERFLOW_HIDDEN:Ii.Hidden,OVERFLOW_SCROLL:Ii.Scroll,POSITION_TYPE_STATIC:Bi.Static,POSITION_TYPE_RELATIVE:Bi.Relative,POSITION_TYPE_ABSOLUTE:Bi.Absolute,PRINT_OPTIONS_LAYOUT:Si.Layout,PRINT_OPTIONS_STYLE:Si.Style,PRINT_OPTIONS_CHILDREN:Si.Children,UNIT_UNDEFINED:Lt.Undefined,UNIT_POINT:Lt.Point,UNIT_PERCENT:Lt.Percent,UNIT_AUTO:Lt.Auto,WRAP_NO_WRAP:_i.NoWrap,WRAP_WRAP:_i.Wrap,WRAP_WRAP_REVERSE:_i.WrapReverse};var _P=SP;D0.default=_P;Object.defineProperty(yh,"__esModule",{value:!0});yh.default=bP;var O6=RP(D0);function Fk(t){if(typeof WeakMap!="function")return null;var e=new WeakMap,n=new WeakMap;return(Fk=function(C){return C?n:e})(t)}function RP(t,e){if(!e&&t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var n=Fk(e);if(n&&n.has(t))return n.get(t);var C={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(i!=="default"&&Object.prototype.hasOwnProperty.call(t,i)){var o=r?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(C,i,o):C[i]=t[i]}return C.default=t,n&&n.set(t,C),C}function bP(t){function e(r,i,o){const s=r[i];r[i]=function(){for(var a=arguments.length,d=new Array(a),g=0;g1?s-1:0),d=1;di?t.Node.createWithConfig(i):t.Node.createDefault()),e(t.Node.prototype,"free",function(){t.Node.destroy(this)}),e(t.Node.prototype,"freeRecursive",function(){for(let r=0,i=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:O6.Direction.LTR;return r.call(this,i,o,s)}),{Config:t.Config,Node:t.Node,...O6.default}}var Wk={exports:{}};(function(t,e){var n=(()=>{var C=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var i;i||(i=typeof r<"u"?r:{});var o,s;i.ready=new Promise(function(N,H){o=N,s=H});var a=Object.assign({},i),d="";typeof document<"u"&&document.currentScript&&(d=document.currentScript.src),C&&(d=C),d.indexOf("blob:")!==0?d=d.substr(0,d.replace(/[?#].*/,"").lastIndexOf("/")+1):d="";var g=i.print||console.log.bind(console),p=i.printErr||console.warn.bind(console);Object.assign(i,a),a=null;var A;i.wasmBinary&&(A=i.wasmBinary),i.noExitRuntime,typeof WebAssembly!="object"&&u1("no native wasm support detected");var w,x=!1;function y(N,H,Z){Z=H+Z;for(var l1="";!(H>=Z);){var A1=N[H++];if(!A1)break;if(A1&128){var B1=N[H++]&63;if((A1&224)==192)l1+=String.fromCharCode((A1&31)<<6|B1);else{var N1=N[H++]&63;A1=(A1&240)==224?(A1&15)<<12|B1<<6|N1:(A1&7)<<18|B1<<12|N1<<6|N[H++]&63,65536>A1?l1+=String.fromCharCode(A1):(A1-=65536,l1+=String.fromCharCode(55296|A1>>10,56320|A1&1023))}}else l1+=String.fromCharCode(A1)}return l1}var m,v,E,k,I,Q,R,T,j;function q(){var N=w.buffer;m=N,i.HEAP8=v=new Int8Array(N),i.HEAP16=k=new Int16Array(N),i.HEAP32=Q=new Int32Array(N),i.HEAPU8=E=new Uint8Array(N),i.HEAPU16=I=new Uint16Array(N),i.HEAPU32=R=new Uint32Array(N),i.HEAPF32=T=new Float32Array(N),i.HEAPF64=j=new Float64Array(N)}var _,P=[],K=[],g1=[];function X(){var N=i.preRun.shift();P.unshift(N)}var i1=0,C1=null;function u1(N){throw i.onAbort&&i.onAbort(N),N="Aborted("+N+")",p(N),x=!0,N=new WebAssembly.RuntimeError(N+". Build with -sASSERTIONS for more info."),s(N),N}function U(N){return N.startsWith("data:application/octet-stream;base64,")}var t1;if(t1="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVp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",!U(t1)){var n1=t1;t1=i.locateFile?i.locateFile(n1,d):d+n1}function d1(){var N=t1;try{if(N==t1&&A)return new Uint8Array(A);if(U(N))try{var H=F2(N.slice(37)),Z=new Uint8Array(H.length);for(N=0;N=H?"_"+N:N}function O(N,H){return N=$(N),function(){return H.apply(this,arguments)}}var W=[{},{value:void 0},{value:null},{value:!0},{value:!1}],F=[];function v1(N){var H=Error,Z=O(N,function(l1){this.name=N,this.message=l1,l1=Error(l1).stack,l1!==void 0&&(this.stack=this.toString()+` +`+l1.replace(/^Error(:[^\n]*)?\n/,""))});return Z.prototype=Object.create(H.prototype),Z.prototype.constructor=Z,Z.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Z}var k1=void 0;function s1(N){throw new k1(N)}var E1=N=>(N||s1("Cannot use deleted val. handle = "+N),W[N].value),z=N=>{switch(N){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var H=F.length?F.pop():W.length;return W[H]={fa:1,value:N},H}},L1=void 0,r1=void 0;function a1(N){for(var H="";E[N];)H+=r1[E[N++]];return H}var f1=[];function b1(){for(;f1.length;){var N=f1.pop();N.L.Z=!1,N.delete()}}var e1=void 0,S={};function D(N,H){for(H===void 0&&s1("ptr should not be undefined");N.P;)H=N.aa(H),N=N.P;return H}var o1={};function T1(N){N=t0(N);var H=a1(N);return x0(N),H}function Q1(N,H){var Z=o1[N];return Z===void 0&&s1(H+" has unknown type "+T1(N)),Z}function _1(){}var Y1=!1;function O1(N){--N.count.value,N.count.value===0&&(N.S?N.T.V(N.S):N.O.M.V(N.N))}function q1(N,H,Z){return H===Z?N:Z.P===void 0?null:(N=q1(N,H,Z.P),N===null?null:Z.ma(N))}var l0={};function w0(N,H){return H=D(N,H),S[H]}var P1=void 0;function Q0(N){throw new P1(N)}function E0(N,H){return H.O&&H.N||Q0("makeClassHandle requires ptr and ptrType"),!!H.T!=!!H.S&&Q0("Both smartPtrType and smartPtr must be specified"),H.count={value:1},g0(Object.create(N,{L:{value:H}}))}function g0(N){return typeof FinalizationRegistry>"u"?(g0=H=>H,N):(Y1=new FinalizationRegistry(H=>{O1(H.L)}),g0=H=>{var Z=H.L;return Z.S&&Y1.register(H,{L:Z},H),H},_1=H=>{Y1.unregister(H)},g0(N))}var s0={};function n0(N){for(;N.length;){var H=N.pop();N.pop()(H)}}function m0(N){return this.fromWireType(Q[N>>2])}var N0={},X0={};function y0(N,H,Z){function l1(D1){D1=Z(D1),D1.length!==N.length&&Q0("Mismatched type converter count");for(var z1=0;z1{o1.hasOwnProperty(D1)?A1[z1]=o1[D1]:(B1.push(D1),N0.hasOwnProperty(D1)||(N0[D1]=[]),N0[D1].push(()=>{A1[z1]=o1[D1],++N1,N1===B1.length&&l1(A1)}))}),B1.length===0&&l1(A1)}function G0(N){switch(N){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+N)}}function J(N,H,Z={}){if(!("argPackAdvance"in H))throw new TypeError("registerType registeredInstance requires argPackAdvance");var l1=H.name;if(N||s1('type "'+l1+'" must have a positive integer typeid pointer'),o1.hasOwnProperty(N)){if(Z.ta)return;s1("Cannot register type '"+l1+"' twice")}o1[N]=H,delete X0[N],N0.hasOwnProperty(N)&&(H=N0[N],delete N0[N],H.forEach(A1=>A1()))}function F1(N){s1(N.L.O.M.name+" instance already deleted")}function H1(){}function r0(N,H,Z){if(N[H].R===void 0){var l1=N[H];N[H]=function(){return N[H].R.hasOwnProperty(arguments.length)||s1("Function '"+Z+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+N[H].R+")!"),N[H].R[arguments.length].apply(this,arguments)},N[H].R=[],N[H].R[l1.Y]=l1}}function d0(N,H){i.hasOwnProperty(N)?(s1("Cannot register public name '"+N+"' twice"),r0(i,N,N),i.hasOwnProperty(void 0)&&s1("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),i[N].R[void 0]=H):i[N]=H}function O0(N,H,Z,l1,A1,B1,N1,D1){this.name=N,this.constructor=H,this.W=Z,this.V=l1,this.P=A1,this.oa=B1,this.aa=N1,this.ma=D1,this.ia=[]}function z0(N,H,Z){for(;H!==Z;)H.aa||s1("Expected null or instance of "+Z.name+", got an instance of "+H.name),N=H.aa(N),H=H.P;return N}function S2(N,H){return H===null?(this.da&&s1("null is not a valid "+this.name),0):(H.L||s1('Cannot pass "'+P5(H)+'" as a '+this.name),H.L.N||s1("Cannot pass deleted object as a pointer of type "+this.name),z0(H.L.N,H.L.O.M,this.M))}function a9(N,H){if(H===null){if(this.da&&s1("null is not a valid "+this.name),this.ca){var Z=this.ea();return N!==null&&N.push(this.V,Z),Z}return 0}if(H.L||s1('Cannot pass "'+P5(H)+'" as a '+this.name),H.L.N||s1("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&H.L.O.ba&&s1("Cannot convert argument of type "+(H.L.T?H.L.T.name:H.L.O.name)+" to parameter type "+this.name),Z=z0(H.L.N,H.L.O.M,this.M),this.ca)switch(H.L.S===void 0&&s1("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:H.L.T===this?Z=H.L.S:s1("Cannot convert argument of type "+(H.L.T?H.L.T.name:H.L.O.name)+" to parameter type "+this.name);break;case 1:Z=H.L.S;break;case 2:if(H.L.T===this)Z=H.L.S;else{var l1=H.clone();Z=this.wa(Z,z(function(){l1.delete()})),N!==null&&N.push(this.V,Z)}break;default:s1("Unsupporting sharing policy")}return Z}function e2(N,H){return H===null?(this.da&&s1("null is not a valid "+this.name),0):(H.L||s1('Cannot pass "'+P5(H)+'" as a '+this.name),H.L.N||s1("Cannot pass deleted object as a pointer of type "+this.name),H.L.O.ba&&s1("Cannot convert argument of type "+H.L.O.name+" to parameter type "+this.name),z0(H.L.N,H.L.O.M,this.M))}function l2(N,H,Z,l1){this.name=N,this.M=H,this.da=Z,this.ba=l1,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,H.P!==void 0?this.toWireType=a9:(this.toWireType=l1?S2:e2,this.U=null)}function V9(N,H){i.hasOwnProperty(N)||Q0("Replacing nonexistant public symbol"),i[N]=H,i[N].Y=void 0}function D5(N,H){var Z=[];return function(){if(Z.length=0,Object.assign(Z,arguments),N.includes("j")){var l1=i["dynCall_"+N];l1=Z&&Z.length?l1.apply(null,[H].concat(Z)):l1.call(null,H)}else l1=_.get(H).apply(null,Z);return l1}}function c9(N,H){N=a1(N);var Z=N.includes("j")?D5(N,H):_.get(H);return typeof Z!="function"&&s1("unknown function pointer with signature "+N+": "+H),Z}var Q4=void 0;function C8(N,H){function Z(B1){A1[B1]||o1[B1]||(X0[B1]?X0[B1].forEach(Z):(l1.push(B1),A1[B1]=!0))}var l1=[],A1={};throw H.forEach(Z),new Q4(N+": "+l1.map(T1).join([", "]))}function l4(N,H,Z,l1,A1){var B1=H.length;2>B1&&s1("argTypes array size mismatch! Must at least get return value and 'this' types!");var N1=H[1]!==null&&Z!==null,D1=!1;for(Z=1;Z>2]);return Z}function E6(N){4>2])};case 3:return function(Z){return this.fromWireType(j[Z>>3])};default:throw new TypeError("Unknown float type: "+N)}}function Ie(N,H,Z){switch(H){case 0:return Z?function(l1){return v[l1]}:function(l1){return E[l1]};case 1:return Z?function(l1){return k[l1>>1]}:function(l1){return I[l1>>1]};case 2:return Z?function(l1){return Q[l1>>2]}:function(l1){return R[l1>>2]};default:throw new TypeError("Unknown integer type: "+N)}}function V(N,H){for(var Z="",l1=0;!(l1>=H/2);++l1){var A1=k[N+2*l1>>1];if(A1==0)break;Z+=String.fromCharCode(A1)}return Z}function p1(N,H,Z){if(Z===void 0&&(Z=2147483647),2>Z)return 0;Z-=2;var l1=H;Z=Z<2*N.length?Z/2:N.length;for(var A1=0;A1>1]=N.charCodeAt(A1),H+=2;return k[H>>1]=0,H-l1}function M1(N){return 2*N.length}function I1(N,H){for(var Z=0,l1="";!(Z>=H/4);){var A1=Q[N+4*Z>>2];if(A1==0)break;++Z,65536<=A1?(A1-=65536,l1+=String.fromCharCode(55296|A1>>10,56320|A1&1023)):l1+=String.fromCharCode(A1)}return l1}function m1(N,H,Z){if(Z===void 0&&(Z=2147483647),4>Z)return 0;var l1=H;Z=l1+Z-4;for(var A1=0;A1=B1){var N1=N.charCodeAt(++A1);B1=65536+((B1&1023)<<10)|N1&1023}if(Q[H>>2]=B1,H+=4,H+4>Z)break}return Q[H>>2]=0,H-l1}function Z1(N){for(var H=0,Z=0;Z=l1&&++Z,H+=4}return H}var a0={};function A0(N){var H=a0[N];return H===void 0?a1(N):H}var p0=[];function I0(N){var H=p0.length;return p0.push(N),H}function k0(N,H){for(var Z=Array(N),l1=0;l1>2],"parameter "+l1);return Z}var M0=[],f2=[null,[],[]];k1=i.BindingError=v1("BindingError"),i.count_emval_handles=function(){for(var N=0,H=5;Ht2;++t2)U2[t2]=String.fromCharCode(t2);r1=U2,i.getInheritedInstanceCount=function(){return Object.keys(S).length},i.getLiveInheritedInstances=function(){var N=[],H;for(H in S)S.hasOwnProperty(H)&&N.push(S[H]);return N},i.flushPendingDeletes=b1,i.setDelayFunction=function(N){e1=N,f1.length&&e1&&e1(b1)},P1=i.InternalError=v1("InternalError"),H1.prototype.isAliasOf=function(N){if(!(this instanceof H1&&N instanceof H1))return!1;var H=this.L.O.M,Z=this.L.N,l1=N.L.O.M;for(N=N.L.N;H.P;)Z=H.aa(Z),H=H.P;for(;l1.P;)N=l1.aa(N),l1=l1.P;return H===l1&&Z===N},H1.prototype.clone=function(){if(this.L.N||F1(this),this.L.$)return this.L.count.value+=1,this;var N=g0,H=Object,Z=H.create,l1=Object.getPrototypeOf(this),A1=this.L;return N=N(Z.call(H,l1,{L:{value:{count:A1.count,Z:A1.Z,$:A1.$,N:A1.N,O:A1.O,S:A1.S,T:A1.T}}})),N.L.count.value+=1,N.L.Z=!1,N},H1.prototype.delete=function(){this.L.N||F1(this),this.L.Z&&!this.L.$&&s1("Object already scheduled for deletion"),_1(this),O1(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},H1.prototype.isDeleted=function(){return!this.L.N},H1.prototype.deleteLater=function(){return this.L.N||F1(this),this.L.Z&&!this.L.$&&s1("Object already scheduled for deletion"),f1.push(this),f1.length===1&&e1&&e1(b1),this.L.Z=!0,this},l2.prototype.pa=function(N){return this.ja&&(N=this.ja(N)),N},l2.prototype.ga=function(N){this.V&&this.V(N)},l2.prototype.argPackAdvance=8,l2.prototype.readValueFromPointer=m0,l2.prototype.deleteObject=function(N){N!==null&&N.delete()},l2.prototype.fromWireType=function(N){function H(){return this.ca?E0(this.M.W,{O:this.va,N:Z,T:this,S:N}):E0(this.M.W,{O:this,N})}var Z=this.pa(N);if(!Z)return this.ga(N),null;var l1=w0(this.M,Z);if(l1!==void 0)return l1.L.count.value===0?(l1.L.N=Z,l1.L.S=N,l1.clone()):(l1=l1.clone(),this.ga(N),l1);if(l1=this.M.oa(Z),l1=l0[l1],!l1)return H.call(this);l1=this.ba?l1.ka:l1.pointerType;var A1=q1(Z,this.M,l1.M);return A1===null?H.call(this):this.ca?E0(l1.M.W,{O:l1,N:A1,T:this,S:N}):E0(l1.M.W,{O:l1,N:A1})},Q4=i.UnboundTypeError=v1("UnboundTypeError");var F2=typeof atob=="function"?atob:function(N){var H="",Z=0;N=N.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var l1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),A1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),B1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++)),N1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(Z++));l1=l1<<2|A1>>4,A1=(A1&15)<<4|B1>>2;var D1=(B1&3)<<6|N1;H+=String.fromCharCode(l1),B1!==64&&(H+=String.fromCharCode(A1)),N1!==64&&(H+=String.fromCharCode(D1))}while(ZN1.sa).concat(A1.map(N1=>N1.ya));y0([N],B1,N1=>{var D1={};return A1.forEach((z1,W1)=>{var e0=N1[W1],h0=z1.qa,j0=z1.ra,u2=N1[W1+A1.length],W0=z1.xa,_9=z1.za;D1[z1.na]={read:i8=>e0.fromWireType(h0(j0,i8)),write:(i8,T4)=>{var o8=[];W0(_9,i8,u2.toWireType(o8,T4)),n0(o8)}}}),[{name:H.name,fromWireType:function(z1){var W1={},e0;for(e0 in D1)W1[e0]=D1[e0].read(z1);return l1(z1),W1},toWireType:function(z1,W1){for(var e0 in D1)if(!(e0 in W1))throw new TypeError('Missing field: "'+e0+'"');var h0=Z();for(e0 in D1)D1[e0].write(h0,W1[e0]);return z1!==null&&z1.push(l1,h0),h0},argPackAdvance:8,readValueFromPointer:m0,U:l1}]})},v:function(){},B:function(N,H,Z,l1,A1){var B1=G0(Z);H=a1(H),J(N,{name:H,fromWireType:function(N1){return!!N1},toWireType:function(N1,D1){return D1?l1:A1},argPackAdvance:8,readValueFromPointer:function(N1){if(Z===1)var D1=v;else if(Z===2)D1=k;else if(Z===4)D1=Q;else throw new TypeError("Unknown boolean type size: "+H);return this.fromWireType(D1[N1>>B1])},U:null})},f:function(N,H,Z,l1,A1,B1,N1,D1,z1,W1,e0,h0,j0){e0=a1(e0),B1=c9(A1,B1),D1&&(D1=c9(N1,D1)),W1&&(W1=c9(z1,W1)),j0=c9(h0,j0);var u2=$(e0);d0(u2,function(){C8("Cannot construct "+e0+" due to unbound types",[l1])}),y0([N,H,Z],l1?[l1]:[],function(W0){if(W0=W0[0],l1)var _9=W0.M,i8=_9.W;else i8=H1.prototype;W0=O(u2,function(){if(Object.getPrototypeOf(this)!==T4)throw new k1("Use 'new' to construct "+e0);if(o8.X===void 0)throw new k1(e0+" has no accessible constructor");var $n=o8.X[arguments.length];if($n===void 0)throw new k1("Tried to invoke ctor of "+e0+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(o8.X).toString()+") parameters instead!");return $n.apply(this,arguments)});var T4=Object.create(i8,{constructor:{value:W0}});W0.prototype=T4;var o8=new O0(e0,W0,T4,j0,_9,B1,D1,W1);_9=new l2(e0,o8,!0,!1),i8=new l2(e0+"*",o8,!1,!1);var y6=new l2(e0+" const*",o8,!1,!0);return l0[N]={pointerType:i8,ka:y6},V9(u2,W0),[_9,i8,y6]})},c:function(N,H,Z,l1,A1,B1,N1){var D1=M6(Z,l1);H=a1(H),B1=c9(A1,B1),y0([],[N],function(z1){function W1(){C8("Cannot call "+e0+" due to unbound types",D1)}z1=z1[0];var e0=z1.name+"."+H;H.startsWith("@@")&&(H=Symbol[H.substring(2)]);var h0=z1.M.constructor;return h0[H]===void 0?(W1.Y=Z-1,h0[H]=W1):(r0(h0,H,e0),h0[H].R[Z-1]=W1),y0([],D1,function(j0){return j0=l4(e0,[j0[0],null].concat(j0.slice(1)),null,B1,N1),h0[H].R===void 0?(j0.Y=Z-1,h0[H]=j0):h0[H].R[Z-1]=j0,[]}),[]})},o:function(N,H,Z,l1,A1,B1){0{C8("Cannot construct "+D1.name+" due to unbound types",N1)},y0([],N1,function(W1){return W1.splice(1,0,null),D1.M.X[H-1]=l4(z1,W1,null,A1,B1),[]}),[]})},a:function(N,H,Z,l1,A1,B1,N1,D1){var z1=M6(Z,l1);H=a1(H),B1=c9(A1,B1),y0([],[N],function(W1){function e0(){C8("Cannot call "+h0+" due to unbound types",z1)}W1=W1[0];var h0=W1.name+"."+H;H.startsWith("@@")&&(H=Symbol[H.substring(2)]),D1&&W1.M.ia.push(H);var j0=W1.M.W,u2=j0[H];return u2===void 0||u2.R===void 0&&u2.className!==W1.name&&u2.Y===Z-2?(e0.Y=Z-2,e0.className=W1.name,j0[H]=e0):(r0(j0,H,h0),j0[H].R[Z-2]=e0),y0([],z1,function(W0){return W0=l4(h0,W0,W1,B1,N1),j0[H].R===void 0?(W0.Y=Z-2,j0[H]=W0):j0[H].R[Z-2]=W0,[]}),[]})},A:function(N,H){H=a1(H),J(N,{name:H,fromWireType:function(Z){var l1=E1(Z);return E6(Z),l1},toWireType:function(Z,l1){return z(l1)},argPackAdvance:8,readValueFromPointer:m0,U:null})},m:function(N,H,Z){Z=G0(Z),H=a1(H),J(N,{name:H,fromWireType:function(l1){return l1},toWireType:function(l1,A1){return A1},argPackAdvance:8,readValueFromPointer:ye(H,Z),U:null})},d:function(N,H,Z,l1,A1){H=a1(H),A1===-1&&(A1=4294967295),A1=G0(Z);var B1=D1=>D1;if(l1===0){var N1=32-8*Z;B1=D1=>D1<>>N1}Z=H.includes("unsigned")?function(D1,z1){return z1>>>0}:function(D1,z1){return z1},J(N,{name:H,fromWireType:B1,toWireType:Z,argPackAdvance:8,readValueFromPointer:Ie(H,A1,l1!==0),U:null})},b:function(N,H,Z){function l1(B1){B1>>=2;var N1=R;return new A1(m,N1[B1+1],N1[B1])}var A1=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][H];Z=a1(Z),J(N,{name:Z,fromWireType:l1,argPackAdvance:8,readValueFromPointer:l1},{ta:!0})},n:function(N,H){H=a1(H);var Z=H==="std::string";J(N,{name:H,fromWireType:function(l1){var A1=R[l1>>2],B1=l1+4;if(Z)for(var N1=B1,D1=0;D1<=A1;++D1){var z1=B1+D1;if(D1==A1||E[z1]==0){if(N1=N1?y(E,N1,z1-N1):"",W1===void 0)var W1=N1;else W1+="\0",W1+=N1;N1=z1+1}}else{for(W1=Array(A1),D1=0;D1=z1?D1++:2047>=z1?D1+=2:55296<=z1&&57343>=z1?(D1+=4,++B1):D1+=3}B1=D1}else B1=A1.length;if(D1=p9(4+B1+1),z1=D1+4,R[D1>>2]=B1,Z&&N1){if(N1=z1,z1=B1+1,B1=E,0=e0){var h0=A1.charCodeAt(++W1);e0=65536+((e0&1023)<<10)|h0&1023}if(127>=e0){if(N1>=z1)break;B1[N1++]=e0}else{if(2047>=e0){if(N1+1>=z1)break;B1[N1++]=192|e0>>6}else{if(65535>=e0){if(N1+2>=z1)break;B1[N1++]=224|e0>>12}else{if(N1+3>=z1)break;B1[N1++]=240|e0>>18,B1[N1++]=128|e0>>12&63}B1[N1++]=128|e0>>6&63}B1[N1++]=128|e0&63}}B1[N1]=0}}else if(N1)for(N1=0;N1I,D1=1;else H===4&&(l1=I1,A1=m1,B1=Z1,N1=()=>R,D1=2);J(N,{name:Z,fromWireType:function(z1){for(var W1=R[z1>>2],e0=N1(),h0,j0=z1+4,u2=0;u2<=W1;++u2){var W0=z1+4+u2*H;(u2==W1||e0[W0>>D1]==0)&&(j0=l1(j0,W0-j0),h0===void 0?h0=j0:(h0+="\0",h0+=j0),j0=W0+H)}return x0(z1),h0},toWireType:function(z1,W1){typeof W1!="string"&&s1("Cannot pass non-string to C++ string type "+Z);var e0=B1(W1),h0=p9(4+e0+H);return R[h0>>2]=e0>>D1,A1(W1,h0+4,e0+H),z1!==null&&z1.push(x0,h0),h0},argPackAdvance:8,readValueFromPointer:m0,U:function(z1){x0(z1)}})},k:function(N,H,Z,l1,A1,B1){s0[N]={name:a1(H),ea:c9(Z,l1),V:c9(A1,B1),ha:[]}},h:function(N,H,Z,l1,A1,B1,N1,D1,z1,W1){s0[N].ha.push({na:a1(H),sa:Z,qa:c9(l1,A1),ra:B1,ya:N1,xa:c9(D1,z1),za:W1})},C:function(N,H){H=a1(H),J(N,{ua:!0,name:H,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(N,H,Z,l1,A1){N=p0[N],H=E1(H),Z=A0(Z);var B1=[];return R[l1>>2]=z(B1),N(H,Z,B1,A1)},t:function(N,H,Z,l1){N=p0[N],H=E1(H),Z=A0(Z),N(H,Z,null,l1)},g:E6,l:function(N,H){var Z=k0(N,H),l1=Z[0];H=l1.name+"_$"+Z.slice(1).map(function(N1){return N1.name}).join("_")+"$";var A1=M0[H];if(A1!==void 0)return A1;var B1=Array(N-1);return A1=I0((N1,D1,z1,W1)=>{for(var e0=0,h0=0;h0>>=0,2147483648=Z;Z*=2){var l1=H*(1+.2/Z);l1=Math.min(l1,N+100663296);var A1=Math;l1=Math.max(N,l1),A1=A1.min.call(A1,2147483648,l1+(65536-l1%65536)%65536);e:{try{w.grow(A1-m.byteLength+65535>>>16),q();var B1=1;break e}catch{}B1=void 0}if(B1)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(N,H,Z,l1){for(var A1=0,B1=0;B1>2],D1=R[H+4>>2];H+=8;for(var z1=0;z1>2]=A1,0}};(function(){function N(A1){i.asm=A1.exports,w=i.asm.D,q(),_=i.asm.I,K.unshift(i.asm.E),i1--,i.monitorRunDependencies&&i.monitorRunDependencies(i1),i1==0&&C1&&(A1=C1,C1=null,A1())}function H(A1){N(A1.instance)}function Z(A1){return x1().then(function(B1){return WebAssembly.instantiate(B1,l1)}).then(function(B1){return B1}).then(A1,function(B1){p("failed to asynchronously prepare wasm: "+B1),u1(B1)})}var l1={a:L0};if(i1++,i.monitorRunDependencies&&i.monitorRunDependencies(i1),i.instantiateWasm)try{return i.instantiateWasm(l1,N)}catch(A1){p("Module.instantiateWasm callback failed with error: "+A1),s(A1)}return function(){return A||typeof WebAssembly.instantiateStreaming!="function"||U(t1)||typeof fetch!="function"?Z(H):fetch(t1,{credentials:"same-origin"}).then(function(A1){return WebAssembly.instantiateStreaming(A1,l1).then(H,function(B1){return p("wasm streaming compile failed: "+B1),p("falling back to ArrayBuffer instantiation"),Z(H)})})}().catch(s),{}})(),i.___wasm_call_ctors=function(){return(i.___wasm_call_ctors=i.asm.E).apply(null,arguments)};var t0=i.___getTypeName=function(){return(t0=i.___getTypeName=i.asm.F).apply(null,arguments)};i.__embind_initialize_bindings=function(){return(i.__embind_initialize_bindings=i.asm.G).apply(null,arguments)};var p9=i._malloc=function(){return(p9=i._malloc=i.asm.H).apply(null,arguments)},x0=i._free=function(){return(x0=i._free=i.asm.J).apply(null,arguments)};i.dynCall_jiji=function(){return(i.dynCall_jiji=i.asm.K).apply(null,arguments)};var a2;C1=function N(){a2||r8(),a2||(C1=N)};function r8(){function N(){if(!a2&&(a2=!0,i.calledRun=!0,!x)){if(U1(K),o(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),i.postRun)for(typeof i.postRun=="function"&&(i.postRun=[i.postRun]);i.postRun.length;){var H=i.postRun.shift();g1.unshift(H)}U1(g1)}}if(!(0$0(t),e);u.useEffect(()=>n,[n])}let Sa;function DP(){if(Sa==null){const t=Sa=U0(void 0);D9.loadYoga().then(e=>t.value=e)}return Sa}function zk(t,e,...n){const C=u.useMemo(()=>U0(void 0),[]);return u.useEffect(()=>{if(!(e instanceof j2)){let r=!1;return t(e,...n).then(i=>r?void 0:C.value=i),()=>r=!0}return $0(()=>{let r=!1;return t(e.value,...n).then(i=>r?void 0:C.value=i).catch(console.error),()=>r=!0})},[e,...n]),C}function Vk(t,e,n,C,r){const[i,o]=t.value,[s,a,d,g]=e.value,[p,A,w,x]=n.value,y=s+p,m=a+A,v=d+w,E=g+x,k=i-E-m,I=o-y-v,Q=k/I;let R=1;return Q>r?R=I*C:R=k*C/r,[(E-m)*.5*C,(v-y)*.5*C,R]}const dv=new J1;function Ru(t,e,n,C=0){const r=e*t.itemSize+C;t.addUpdateRange(r,3),Array.isArray(n)?t.set(n,r):(dv.set(n),dv.toArray(t.array,r)),t.needsUpdate=!0}function co(t){return t instanceof j2?t.value:t}const $k=u.createContext(void 0);function B5(){const t=u.useContext($k);if(t==null)throw new Error("Can only be used inside a component.");return t}const PP=$k.Provider;function K4(t){const e=new Map;return(n,C)=>{const r=n.length;for(const i in C){const o=C[i];if(o===void 0)return;let s=e.get(o);s==null&&e.set(o,s=V2(()=>t()?co(o):void 0));for(let a=0;a"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),Yk=U0((ne==null?void 0:ne.matches)??!1);ne==null||ne.addEventListener("change",t=>Yk.value=t.matches);const NP=U0("system"),HP=V2(()=>{switch(NP.value){case"system":return Yk.value;case"dark":return!0;case"light":return!1}}),jP=K4(()=>HP.value);function g6(t,e){ke(e,n=>{const C=n.dark;C!=null&&jP(t,C)})}const UP=Math.cos(45/180*Math.PI),_a=[new s2,new s2,new s2,new s2],hv=new G;class FP{constructor(e,n,C,r,i){V1(this,"planes");V1(this,"facePlane");V1(this,"originalCenter");this.originalCenter=new G(n,C,0).applyMatrix4(e),this.facePlane=new s2(new G(0,0,1),0).applyMatrix4(e);const o=r/2,s=i/2,a=C+s,d=n+o,g=-C+s,p=-n+o;this.planes=[new s2(new G(0,-1,0),g).applyMatrix4(e),new s2(new G(-1,0,0),p).applyMatrix4(e),new s2(new G(0,1,0),a).applyMatrix4(e),new s2(new G(1,0,0),d).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const i=this.facePlane,o=e[r],s=i.normal.dot(o.normal);if(Math.abs(s)>.99)return this;const a=_a[r];if(Math.abs(s)<.01){a.copy(o);continue}a.normal.crossVectors(i.normal,o.normal).normalize().cross(i.normal).negate();const d=1-s*s,g=(i.constant-o.constant*s)/d,p=(o.constant-i.constant*s)/d;hv.copy(i.normal).multiplyScalar(g).addScaledVector(o.normal,p),a.constant=-hv.dot(a.normal)}let n=0;const C=this.planes[0].normal;for(;_a[n].normal.dot(C)>UP;)break;for(let r=0;r<4;r++){const i=this.planes[r],o=(r+n)%4;_a[o].distanceToPoint(this.originalCenter)V2(()=>{const r=e.value,i=t==null?void 0:t.value;if(i==null||r==null)return!1;const[o,s]=n.value;for(let g=0;g<4;g++){const[p,A]=OP[g];fv[g].set(p*C.pixelSize*o,A*C.pixelSize*s,0).applyMatrix4(r)}const{planes:a}=i;let d;for(let g=0;g<4;g++){const p=a[g];d=!0;for(let A=0;A<4;A++){const w=fv[A];p.distanceToPoint(w)>=0&&(d=!1)}if(d)return!0}return!1}),[e,t,C,n])}function zP(t,e,n,C,r,i){return u.useMemo(()=>V2(()=>{const o=t.value;if(o==null||C.value===D9.Overflow.Visible)return i==null?void 0:i.value;const[s,a]=e.value,[d,g,p,A]=n.value,w=new FP(o,(g-A)*r.pixelSize/2,(d-p)*r.pixelSize/2,(s-A-g)*r.pixelSize,(a-d-p)*r.pixelSize);return(i==null?void 0:i.value)!=null&&w.min(i.value),w}),[t,e,n,r,C,i])}const bu=new s2(new G(-1,0,0),Number.MAX_SAFE_INTEGER),uo=new Float32Array(16);for(let t=0;t<4;t++)bu.normal.toArray(uo,t*4),uo[t*4+3]=bu.constant;function Wn(t,e){const n=u.useMemo(()=>[new s2,new s2,new s2,new s2],[]);return y5(()=>{var i;const C=e.current;if(C==null)return;const r=(i=t==null?void 0:t.value)==null?void 0:i.planes;if(r==null){for(let o=0;o<4;o++)n[o].copy(bu);return}for(let o=0;o<4;o++)n[o].copy(r[o]).applyMatrix4(C.matrixWorld)}),n}class VP{constructor(e,n){V1(this,"glyphInfoMap",new Map);V1(this,"kerningMap",new Map);V1(this,"questionmarkGlyphInfo");V1(this,"pageWidth");V1(this,"pageHeight");V1(this,"distanceRange");this.page=n;const{scaleW:C,scaleH:r,lineHeight:i}=e.common;this.pageWidth=C,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const a of e.chars)a.uvX=a.x/C,a.uvY=a.y/r,a.uvWidth=a.width/C,a.uvHeight=a.height/r,a.width/=o,a.height/=o,a.xadvance/=o,a.xoffset/=o,a.yoffset-=i-o,a.yoffset/=o,this.glyphInfoMap.set(a.char,a);for(const{first:a,second:d,amount:g}of e.kernings)this.kerningMap.set(`${a}/${d}`,g/o);const s=this.glyphInfoMap.get("?");if(s==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=s}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` +`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,n){return this.kerningMap.get(`${e}/${n}`)??0}}function $P(t,e,n){e[n+0]=t.uvX,e[n+1]=t.uvY+t.uvHeight,e[n+2]=t.uvWidth,e[n+3]=-t.uvHeight}const gv=new f0,YP=new f0;class XP{constructor(e,n,C,r,i){V1(this,"index");V1(this,"hidden",!0);V1(this,"glyphInfo");V1(this,"x",0);V1(this,"y",0);V1(this,"fontSize",0);V1(this,"pixelSize",0);this.group=e,this.baseMatrix=n,this.color=C,this.opacity=r,this.clippingRect=i}getX(e){return this.glyphInfo==null?this.x:this.x+e*this.glyphInfo.width*this.fontSize}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const n=this.index*16,{instanceClipping:C}=this.group;this.clippingRect==null?C.set(uo,n):this.clippingRect.toArray(C.array,n),C.addUpdateRange(n,16),C.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&Ru(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:n}=this.group,C=this.index*4+3;n.array[C]=e,n.addUpdateRange(C,1),n.needsUpdate=!0}updateGlyphAndTransformation(e,n,C,r,i){this.glyphInfo===e&&this.x===n&&this.y===C&&this.fontSize===r&&this.pixelSize===i||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=n,this.y=C,this.fontSize=r,this.pixelSize=i,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:n}=this.group;$P(this.glyphInfo,n.array,e),n.addUpdateRange(e,4),n.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:n}=this.group;n.addUpdateRange(e,16),gv.makeTranslation(this.x*this.pixelSize,this.y*this.pixelSize,0).multiply(YP.makeScale(this.fontSize*this.glyphInfo.width*this.pixelSize,this.fontSize*this.glyphInfo.height*this.pixelSize,1)).premultiply(this.baseMatrix),gv.toArray(n.array,e),n.needsUpdate=!0}}function pv(t,e,n,C){return((C==null?0:t.getKerning(C,n.id))+n.xoffset)*e}function Ra(t,e,n){return(((n==null?void 0:n.yoffset)??0)+(e-1)/2)*t}function kn(t,e,n){return e.xadvance*t+n}function $r(t,e){return t*e}function Qu(t,{lineHeight:e,fontSize:n}){return Math.max(t,1)*n*e}const JP=[];class qP{constructor(e,n,C,r,i,o,s,a,d,g){V1(this,"glyphLines",[]);V1(this,"lastLayout");V1(this,"unsubscribeInitialList",[]);V1(this,"unsubscribeShowList",[]);V1(this,"opacity",1);V1(this,"color",16777215);this.group=e,this.getAlignmentProperties=n,this.getAppearanceProperties=C,this.layoutSignal=r,this.matrix=i,this.parentClippingRect=s,this.selectionRange=a,this.selectionBoxes=d,this.caretPosition=g,this.unsubscribeInitialList=[$0(()=>{const p=C.value;if(p==null||(o==null?void 0:o.value)===!0||(p("opacity")??1)<.01){this.hide();return}this.show()}),$0(()=>this.updateSelectionBoxes(this.lastLayout,a==null?void 0:a.value,Ba(()=>{var p;return((p=n.value)==null?void 0:p.call(n,"verticalAlign"))??"top"}),Ba(()=>{var p;return((p=n.value)==null?void 0:p.call(n,"horizontalAlign"))??"left"})))]}getCharIndex(e,n){const C=Ba(()=>{var p,A;return((A=(p=this.getAlignmentProperties).value)==null?void 0:A.call(p,"verticalAlign"))??"top"}),r=this.lastLayout;if(r==null)return 0;n-=-Yr(r,C);const i=Math.floor(n/-$r(r.lineHeight,r.fontSize)),o=r.lines;if(i<0||o.length===0)return 0;if(i>=o.length){const p=o[o.length-1];return p.charIndexOffset+p.charLength+1}const s=o[i],a=r.font.getGlyphInfo(" ").xadvance*r.fontSize,d=this.glyphLines[i];let g=d.length;for(let p=0;p=p.charIndexOffset+p.charLength)continue;const A=this.glyphLines[g][Math.max(C-p.charIndexOffset,0)];return{lineIndex:g,x:this.getGlyphX(A,r?0:1,i)}}const a=e[s-1];if(a.charLength===0)return{lineIndex:s-1,x:Av(n,a.nonWhitespaceWidth,o)-n/2};const d=this.glyphLines[s-1][a.charLength-1];return{lineIndex:s-1,x:this.getGlyphX(d,1,i)}}getGlyphX(e,n,C){return typeof e=="number"?e+n*C:e.getX(n)}show(){this.unsubscribeShowList.length>0||(n3(this.glyphLines,e=>e.show()),this.unsubscribeShowList.push($0(()=>{const e=this.matrix.value;e!=null&&n3(this.glyphLines,n=>n.updateBaseMatrix(e))}),$0(()=>{var n;const e=(n=this.parentClippingRect)==null?void 0:n.value;n3(this.glyphLines,C=>C.updateClippingRect(e))}),$0(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const n=this.color=e("color")??16777215;n3(this.glyphLines,C=>C.updateColor(n))}),$0(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const n=this.opacity=e("opacity")??1;n3(this.glyphLines,C=>C.updateOpacity(n))}),$0(()=>{var y,m;const e=this.layoutSignal.value,n=this.getAlignmentProperties.value;if(e==null||n==null)return;const{text:C,font:r,lines:i,letterSpacing:o=0,fontSize:s=16,lineHeight:a=1.2,availableWidth:d}=e,g=n("verticalAlign")??"top",p=n("horizontalAlign")??"left";let A=Yr(e,g)-e.availableHeight/2;const w=i.length,x=this.group.pixelSize;for(let v=0;vQ+I){q=C1.id;const t1=j+pv(r,s,C1,q);typeof _[X]=="number"?_[X]=j:_.splice(X,0,t1),j+=T+kn(s,C1,o);continue}let u1=_[X];for(;X<_.length&&typeof u1=="number";)_.splice(X,1),u1=_[X];let U=u1;U==null&&(_[X]=U=new XP(this.group,this.matrix.peek(),this.color,this.opacity,(y=this.parentClippingRect)==null?void 0:y.peek())),U.updateGlyphAndTransformation(C1,j+pv(r,s,C1,q),-(A+Ra(s,a,C1)),s,x),U.show(),q=C1.id,j+=kn(s,C1,o)}A+=$r(a,s);const P=_.length,K=R;for(let g1=K;g1v.hide(),w),this.glyphLines.length=w,this.lastLayout=e,this.updateSelectionBoxes(e,(m=this.selectionRange)==null?void 0:m.peek(),g,p)})))}hide(){const e=this.unsubscribeShowList.length;if(e!==0){for(let n=0;nn.hide())}}destroy(){this.hide(),this.glyphLines.length=0;const e=this.unsubscribeInitialList.length;for(let n=0;n{n.uniforms.fontPage={value:e.page},n.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},n.uniforms.distanceRange={value:e.distanceRange},n.uniforms.v_weight={value:.3},n.vertexShader=`attribute vec4 instanceUVOffset; + varying vec2 fontUv; + attribute vec4 instanceRGBA; + varying vec4 rgba; + attribute mat4 instanceClipping; + varying mat4 clipping; + varying vec3 localPosition; + `+n.vertexShader,n.vertexShader=n.vertexShader.replace("#include ",`#include + fontUv = instanceUVOffset.xy + uv * instanceUVOffset.zw; + rgba = instanceRGBA; + clipping = instanceClipping; + localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`),n.fragmentShader=`uniform sampler2D fontPage; + uniform vec2 pageSize; + uniform int distanceRange; + uniform float v_weight; + varying vec2 fontUv; + varying vec4 rgba; + varying mat4 clipping; + varying vec3 localPosition; + float median(float r, float g, float b) { + return max(min(r, g), min(max(r, g), b)); + } + float getDistance() { + vec3 msdf = texture(fontPage, fontUv).rgb; + return median(msdf.r, msdf.g, msdf.b); + } + `+n.fragmentShader,n.fragmentShader=n.fragmentShader.replace("#include ",` #include + vec4 plane; + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + for(int i = 0; i < 4; i++) { + plane = clipping[ i ]; + distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + + if ( clipOpacity == 0.0 ) discard; + } + vec2 dxdy = fwidth(fontUv) * pageSize; + float dist = getDistance() + min(float(v_weight), 0.5 - 1.0 / float(distanceRange)) - 0.5; + float multiplier = clamp(dist * float(distanceRange) / length(dxdy) + 0.5, 0.0, 1.0); + if(multiplier <= 0.5) { + discard; + } + diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); + diffuseColor *= rgba; + `)}}}const Tu=Symbol("camera-distance-key"),Du=Symbol("order-info-key");function eN(t,e){if(t.groupOrder!==e.groupOrder)return t.groupOrder-e.groupOrder;if(t.renderOrder!==e.renderOrder)return t.renderOrder-e.renderOrder;const n=t.object[Tu],C=e.object[Tu];return n==null||C==null?t.z!==e.z?e.z-t.z:t.id-e.id:n===C?nN(t.object[Du],e.object[Du]):C.current-n.current}function tN(t){t.setTransparentSort(eN)}const s9={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function nN(t,e){let n=t.majorIndex-e.majorIndex;return n!=0||(n=t.elementType-e.elementType,n!=0)?n:t.minorIndex-e.minorIndex}const Jk=u.createContext(void 0),CN=Jk.Provider;function S9(t,e,n,C){const r=C??u.useContext(Jk),i=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return u.useMemo(()=>{let s,a;return r==null?(s=0,a=0):t>r.elementType?(s=r.majorIndex,a=0):t!=r.elementType||!rN(n,r.instancedGroupDependencies)?(s=r.majorIndex+1,a=0):(s=r.majorIndex,a=r.minorIndex+1),i>0&&(s+=i,a=0),a+=o,{instancedGroupDependencies:n,elementType:t,majorIndex:s,minorIndex:a}},[i,o,r,t,n])}function rN(t,e){if(t===e)return!0;if(t==null||e==null)return!1;let n=0;for(const C in t){if(t[C]!=e[C])return!1;++n}return n===Object.keys(e).length}function G3(t,e,n){return t[Tu]=e,t[Du]=n,t}class iN extends D8{constructor(n,C,r,i){super();V1(this,"instanceMatrix");V1(this,"instanceUV");V1(this,"instanceRGBA");V1(this,"instanceClipping");V1(this,"glyphs",[]);V1(this,"requestedGlyphs",[]);V1(this,"holeIndicies",[]);V1(this,"mesh");V1(this,"material");V1(this,"timeTillDecimate");this.pixelSize=C,this.cameraDistance=r,this.orderInfo=i,this.material=new ZP(n)}requestActivate(n){const C=this.holeIndicies.shift();if(C!=null){this.glyphs[C]=n,n.activate(C);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(n);return}const r=this.mesh.count;this.glyphs[r]=n,n.activate(r),this.mesh.count+=1}delete(n){if(n.index==null){const i=this.requestedGlyphs.indexOf(n);if(i===-1)return;this.requestedGlyphs.splice(i,1);return}const C=this.requestedGlyphs.shift();if(C!=null){C.activate(n.index),this.glyphs[n.index]=C,n.index=void 0;return}if(n.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,n.index=void 0;return}const r=n.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(n.index),this.glyphs[n.index]=void 0,n.index=void 0}onFrame(n){var s;const C=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(C===0){this.visible=!1;return}this.visible=!0;const r=((s=this.instanceMatrix)==null?void 0:s.count)??0;if(C0)&&C<=r)return;this.timeTillDecimate=void 0,this.resize(C);const i=this.mesh.count,o=this.requestedGlyphs.length;for(let a=0;aA-w);const d=this.holeIndicies.length;let g=0,p=0;for(;p0)for(let A=this.holeIndicies[0];A{for(const o of r)o(i);ba.set(t,i)}).catch(console.error)}async function lN(t,e){const n=await(await fetch(t)).json();if(n.pages.length!==1)throw new Error("only supporting exactly 1 page");const C=await oN.loadAsync(new URL(n.pages[0],t).href);return C.anisotropy=e.capabilities.getMaxAnisotropy(),C.flipY=!1,new VP(n,C)}const aN=({text:t,fontSize:e,font:n,letterSpacing:C},r,i,o)=>{i=Ih(t,i);const s=i;o.charIndexOffset=s,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let a=0,d=0;for(;ir)break;o.nonWhitespaceCharLength=i-s+1,o.nonWhitespaceWidth=a,o.whitespacesBetween=d}o.charLength=i-s},cN=({text:t,fontSize:e,font:n,letterSpacing:C},r,i,o)=>{i=Ih(t,i);const s=i;o.charIndexOffset=s,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let a=0,d=0;for(;i{i=Ih(t,i);const s=i;o.charIndexOffset=s,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let a=0,d=0;for(;i0&&r!=null&&a>r)break;const p=t[i+1];(p===" "||p===` +`||p==null)&&(o.charLength=i-s+1,o.nonWhitespaceCharLength=o.charLength,o.nonWhitespaceWidth=a,o.whitespacesBetween=d)}};function Ih(t,e){const n=t.length;for(;t[e]===" "&&enew Map,[]),r=u.useCallback((i,o)=>{let s=C.get(o);s==null&&C.set(o,s=new Map);let a=s==null?void 0:s.get(i);return a==null&&(s.set(i,a=new iN(o,t,e,{majorIndex:i,elementType:s9.Text,minorIndex:0})),n.add(a)),a},[t,e,n]);return y5((i,o)=>{for(const s of C.values())for(const a of s.values())a.onFrame(o)}),r}const pN=u.createContext(null),AN={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},Pu={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},vN=["horizontalAlign","verticalAlign"],LN=["color","opacity"],wN=["fontSize","letterSpacing","lineHeight","wordBreak"];function Zk(t,e,n,C,r,i,o,s,a,d,g){const p=S9(s9.Text,void 0,void 0,o),A=u.useContext(Kk);if(A==null)throw new Error("Can only be used inside a component.");const w=mN(t),x=u.useMemo(()=>U0(e),[]);x.value=e;const y=u.useRef(void 0),m=EN(t,w,x,y),v=i4(t,vN),E=i4(t,LN),k=u.useMemo(()=>U0(void 0),[]);return u.useEffect(()=>C.addLayoutChangeListener(()=>{const I=y.current;if(I==null)return;const{size:Q,paddingInset:R,borderInset:T}=C,[j,q]=Q.value,[_,P,K,g1]=R.value,[X,i1,C1,u1]=T.value,U=j-P-g1-i1-u1,t1=q-_-K-X-C1;k.value=hN(I,U,t1)}),[C]),h9(()=>{const I=w.value;if(I==null)return;const Q=new qP(A(p.majorIndex,I),v,E,k,n,r,i,s,a,d);return g!=null&&(g.current=Q),()=>Q.destroy()},[A,n,C,r,i,p.majorIndex,a,g]),m}const xN=["fontFamily","fontWeight"];function mN(t){const e=u.useMemo(()=>U0(void 0),[]),n=u.useContext(pN)??AN,C=i4(t,xN),r=kh(({gl:i})=>i);return h9(()=>{const i=C.value;if(i==null)return;let o=i("fontWeight")??"normal";typeof o=="string"&&(o=Pu[o]);let s=i("fontFamily");s==null&&(s=Object.keys(n)[0]);const a=kN(n[s],o);let d=!1;return sN(a,r,g=>d?void 0:e.value=g),()=>d=!0},[n,r]),e}function kN(t,e){let n=1/0,C;for(const r in t){const i=Math.abs(e-MN(r));if(i===0)return t[r];iV2(()=>{const o=e.value,s=r.value;if(o==null||s==null)return;const a=n.value,d={font:o,fontSize:s("fontSize")??16,letterSpacing:s("letterSpacing")??0,lineHeight:s("lineHeight")??1.2,text:Array.isArray(a)?a.map(g=>co(g)).join(""):co(a),wordBreak:s("wordBreak")??"break-word"};return C.current=d,(g,p)=>dN(d,p===D9.MeasureMode.Undefined?void 0:g)}),[e,r,C,n])}const R7={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},eM=Object.keys(R7),yN=eM.length,tM=u.createContext(void 0),IN=tM.Provider;function p6(t,e,n){const C=n??u.useContext(tM);if(C==null)throw new Error("Can only be used inside a component.");const r=u.useMemo(()=>({sm:K4(()=>C.value[0]>R7.sm),md:K4(()=>C.value[0]>R7.md),lg:K4(()=>C.value[0]>R7.lg),xl:K4(()=>C.value[0]>R7.xl),"2xl":K4(()=>C.value[0]>R7["2xl"])}),[C]);ke(e,i=>{for(let o=0;oe.createChild(t),[t,e]);return u.useEffect(()=>(e.addChild(n),()=>{e.removeChild(n),n.destroy()}),[e,n]),n}function SN(){let t=u.useRef(void 0);return y5(()=>{if(t.current==null)return;const e=t.current;t.current=void 0,e.calculateLayout()}),u.useCallback(e=>{t.current!=null||e.yogaNode==null||(t.current=e)},[])}const Bh=nM.Provider,L4=new s2,qr=new G,_N=[new s2().setFromNormalAndCoplanarPoint(new G(1,0,0),new G(-.5,0,0)),new s2().setFromNormalAndCoplanarPoint(new G(-1,0,0),new G(.5,0,0)),new s2().setFromNormalAndCoplanarPoint(new G(0,1,0),new G(0,-.5,0)),new s2().setFromNormalAndCoplanarPoint(new G(0,-1,0),new G(0,.5,0))],C3=[0,0,0,0];function CM(t){return(e,n)=>{const C=t.matrixWorld;if(L4.constant=0,L4.normal.set(0,0,1),L4.applyMatrix4(C),L4.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(L4,qr)==null)return;const r=L4.normal.clone();for(let i=0;i<4;i++){const o=_N[i];if(L4.copy(o).applyMatrix4(C),(C3[i]=L4.distanceToPoint(qr))<0)return}n.push({distance:qr.distanceTo(e.ray.origin),object:t,point:qr.clone(),uv:new y1(C3[0]/(C3[0]+C3[1]),C3[3]/(C3[2]+C3[3])),normal:r})}}function Me(t,e,n,C,r){return(i,o)=>{var p;const s=n.current;if(s==null)return;const a=o.length;e.call(t,i,o);const d=(p=C==null?void 0:C.value)==null?void 0:p.planes,g=s.matrixWorld;e:for(let A=o.length-1;A>=a;A--){const w=o[A];if(w.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,d!=null){for(let x=0;x<4;x++)if(L4.copy(d[x]).applyMatrix4(g),L4.distanceToPoint(w.point)<0){o.splice(A,1);continue e}}}}}function rM(t,e){for(;e>=t.length;){let n=0,C=0;if(t.length>0){const r=t[t.length-1];n+=r.offset+r.elements.length,C=Math.min(0,r.missingSpace),r.missingSpace-=C}t.push({add:[],missingSpace:C,offset:n,elements:[]})}}function RN(t,e,n){rM(t,0);const C=t[t.length-1];C.missingSpace+=e-n}function bN(t,e,n,C){rM(t,e);const r=t[e];return r.missingSpace+=1,r.missingSpace<=0?(C(n,r,r.elements.length),r.elements.push(n),!1):(r.add.push(n),!0)}function QN(t,e,n,C,r,i,o,s){if(e>=t.length)throw new Error(`no bucket at index ${e}`);const a=t[e];a.missingSpace-=1;const d=a.add.indexOf(n);if(d!=-1)return a.add.splice(d,1),!1;if(C==null||C>=a.elements.length)throw new Error(`no element at index ${C}`);if(a.add.length>0){const w=a.add.shift();return a.elements[C]=w,r(w,a,C),!1}const g=a.offset,p=a.elements.length-1;if(p!=C){const w=g+p,x=g+C;s(x,w,w+1);const y=a.elements[p];a.elements[C]=y,o(y,C)}if(i(g+p),a.elements.length-=1,e0;){const w=t[e-1];w.missingSpace+=A.missingSpace,A=t[--e]}return t.length=e+1,!1}function TN(t,e,n){let C=t.length,r=-1;for(let o=0;o0&&(r=o);const a=o===C-1;if(!a&&s.missingSpace===0)continue;const d=s.missingSpace<0;for(let g=o-1;g>=0;g--){const p=t[g];if(p.missingSpace===0)continue;const A=p.missingSpace<0;if(A&&(a||d)){Lv(t,n,g,o,Math.abs(p.missingSpace));continue}if(!d&&!A)continue;const w=Math.min(Math.abs(p.missingSpace),Math.abs(s.missingSpace));d?DN(t,n,g,o,w):Lv(t,n,g,o,w)}}const i=t[r];for(let o=r+1;og>0)&&(C==null||C>0),[s,a]=e.value;return!(s>0&&a>0&&(r==null||r>0)&&i!=null)&&!o?!1:n==null?!0:!n.value}function wt(t,e,n,C,r){t[e]=PN(t[e],n,Sh(Math.ceil((C??0)/r*100),0,49))}const Kr=new J1,sM=new J1(-1,-1,-1),wv={backgroundColor:(t,e)=>(Array.isArray(e)?Kr.setRGB(...e):Kr.set(e??sM)).toArray(t,4),borderBottomLeftRadius:(t,e,n)=>wt(t,7,0,e,n.value[1]),borderBottomRightRadius:(t,e,n)=>wt(t,7,1,e,n.value[1]),borderTopRightRadius:(t,e,n)=>wt(t,7,2,e,n.value[1]),borderTopLeftRadius:(t,e,n)=>wt(t,7,3,e,n.value[1]),borderColor:(t,e)=>(Array.isArray(e)?Kr.setRGB(...e):Kr.set(e??16777215)).toArray(t,8),borderBend:(t,e)=>t[11]=e??0,borderOpacity:(t,e)=>t[12]=e??1,backgroundOpacity:(t,e)=>t[15]=e??-1},lM=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],NN=["borderOpacity","backgroundColor","backgroundOpacity"];class HN{constructor(e,n,C){V1(this,"data",new Float32Array(16));V1(this,"unsubscribeList",[]);V1(this,"unsubscribe");V1(this,"visible",!1);V1(this,"materials",[]);V1(this,"active",U0(!1));V1(this,"getProperty",U0(void 0));this.size=e,this.size=e,this.unsubscribe=$0(()=>{const r=this.getProperty.value,i=r!=null&&oM(n,e,C,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=i,!i){this.deactivate();return}this.activate(e,n)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return NN.includes(e)}hasImmediateProperty(e){return e in wv}setProperty(e,n){const C=wv[e];C(this.data,n,this.size)}activate(e,n){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(lM),this.unsubscribeList.push($0(()=>this.data.set(e.value,13)),$0(()=>this.data.set(n.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let n=0;n{C.call(n,r,i),e.type==="normal"&&(r.uniforms.data={value:e.data}),FN(r,e.type==="instanced")},n}class cM extends Ho{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,n){super.onBeforeCompile(e,n),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),dM(e,this.info.type==="instanced")}}class uM extends No{constructor(e){super({depthPacking:Gd}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,n){super.onBeforeCompile(e,n),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),dM(e,this.info.type==="instanced")}}const jN=new uM({type:"instanced"}),UN=new cM({type:"instanced"});function dM(t,e){hM(t,e),t.fragmentShader=t.fragmentShader.replace("#include ",`#include + ${fM(e,void 0)} + `)}function hM(t,e){t.vertexShader=t.vertexShader.replace("#include ",` #include + out vec4 borderRadius; + ${e?"":"uniform highp mat4 data;"}`),t.vertexShader=t.vertexShader.replace("#include ",` #include + highp int packedBorderRadius = int(data[1].w); + borderRadius = vec4( + packedBorderRadius / 125000 % 50, + packedBorderRadius / 2500 % 50, + packedBorderRadius / 50 % 50, + packedBorderRadius % 50 + ) * vec4(0.5 / 50.0);`),e&&(t.vertexShader=t.vertexShader.replace("#include ",` #include + attribute highp mat4 aData; + attribute mat4 aClipping; + out mat4 data; + out mat4 clipping; + out vec3 localPosition;`),t.vertexShader=t.vertexShader.replace("#include ",` #include + data = aData; + clipping = aClipping; + localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`)),t.fragmentShader=`${e?"in":"uniform"} highp mat4 data; + in vec4 borderRadius; + ${e?` + in vec3 localPosition; + in mat4 clipping; + `:""} + + float min4 (vec4 v) { + return min(min(min(v.x,v.y),v.z),v.w); + } + float max4 (vec4 v) { + return max(max(max(v.x,v.y),v.z),v.w); + } + vec2 radiusDistance(float radius, vec2 outside, vec2 border, vec2 borderSize) { + vec2 outerRadiusXX = vec2(radius, radius); + vec2 innerRadiusXX = outerRadiusXX - borderSize; + vec2 radiusWeightUnnormalized = abs(innerRadiusXX - border); + vec2 radiusWeight = radiusWeightUnnormalized / vec2(radiusWeightUnnormalized.x + radiusWeightUnnormalized.y); + return vec2( + radius - distance(outside, outerRadiusXX), + dot(radiusWeight, innerRadiusXX) - distance(border, innerRadiusXX) + ); + } + `+t.fragmentShader,t.fragmentShader=t.fragmentShader.replace("#include ",` ${e?` + vec4 plane; + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + + for(int i = 0; i < 4; i++) { + plane = clipping[ i ]; + distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + + if ( clipOpacity < 0.01 ) discard; + } + `:""} + vec4 absoluteBorderSize = data[0]; + vec3 backgroundColor = data[1].xyz; + vec3 borderColor = data[2].xyz; + float borderBend = data[2].w; + float borderOpacity = data[3].x; + float width = data[3].y; + float height = data[3].z; + float backgroundOpacity = data[3].w; + float ratio = width / height; + vec4 relative = vec4(height, height, height, height); + vec4 borderSize = absoluteBorderSize / relative; + vec4 v_outsideDistance = vec4(1.0 - vUv.y, (1.0 - vUv.x) * ratio, vUv.y, vUv.x * ratio); + vec4 v_borderDistance = v_outsideDistance - borderSize; + + vec2 distance = vec2(min4(v_outsideDistance), min4(v_borderDistance)); + vec4 negateBorderDistance = vec4(1.0) - v_borderDistance; + float maxWeight = max4(negateBorderDistance); + vec4 borderWeight = step(maxWeight, negateBorderDistance); + + vec4 insideBorder; + + if(all(lessThan(v_outsideDistance.xw, borderRadius.xx))) { + distance = radiusDistance(borderRadius.x, v_outsideDistance.xw, v_borderDistance.xw, borderSize.xw); + + float tmp = borderRadius.x - borderSize.w; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.x - borderSize.x; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.yz = vec2(0.0); + insideBorder.xw = max(vec2(0.0), lineIntersection - v_borderDistance.xw); + + } else if(all(lessThan(v_outsideDistance.xy, borderRadius.yy))) { + distance = radiusDistance(borderRadius.y, v_outsideDistance.xy, v_borderDistance.xy, borderSize.xy); + + float tmp = borderRadius.y - borderSize.y; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.y - borderSize.x; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.zw = vec2(0.0); + insideBorder.xy = max(vec2(0.0), lineIntersection - v_borderDistance.xy); + + } else if(all(lessThan(v_outsideDistance.zy, borderRadius.zz))) { + distance = radiusDistance(borderRadius.z, v_outsideDistance.zy, v_borderDistance.zy, borderSize.zy); + + float tmp = borderRadius.z - borderSize.y; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.z - borderSize.z; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.xw = vec2(0.0); + insideBorder.zy =max(vec2(0.0), lineIntersection - v_borderDistance.zy); + + } else if(all(lessThan(v_outsideDistance.zw, borderRadius.ww))) { + distance = radiusDistance(borderRadius.w, v_outsideDistance.zw, v_borderDistance.zw, borderSize.zw); + + float tmp = borderRadius.w - borderSize.w; + vec2 xIntersection = vec2(tmp, tmp / ratio); + tmp = borderRadius.w - borderSize.z; + vec2 yIntersection = vec2(tmp * ratio, tmp); + vec2 lineIntersection = min(xIntersection, yIntersection); + + insideBorder.xy = vec2(0.0); + insideBorder.zw = max(vec2(0.0), lineIntersection - v_borderDistance.zw); + + } + + if(insideBorder.x + insideBorder.y + insideBorder.z + insideBorder.w > 0.0) { + borderWeight = normalize(insideBorder); + } + + #include `)}function fM(t,e){return`float ddx = fwidth(distance.x); + float outer = smoothstep(-ddx, ddx, distance.x); + + float ddy = fwidth(distance.y); + float inner = smoothstep(-ddy, ddy, distance.y); + + float transition = 1.0 - step(0.1, outer - inner) * (1.0 - inner); + + if(backgroundColor.r < 0.0 && backgroundOpacity >= 0.0) { + backgroundColor = vec3(1.0); + } + if(backgroundOpacity < 0.0) { + backgroundOpacity = backgroundColor.r >= 0.0 ? 1.0 : 0.0; + } + + if(backgroundOpacity < 0.0) { + backgroundOpacity = 0.0; + } + + float outOpacity = ${t?"clipOpacity * ":""} outer * mix(borderOpacity, ${e==null?"":`${e} *`} backgroundOpacity, transition); + + if(outOpacity < 0.01) { + discard; + }`}function FN(t,e){hM(t,e),t.fragmentShader=t.fragmentShader.replace("#include ",` #include + ${fM(e,"diffuseColor.a")} + diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); + diffuseColor.a = outOpacity; + `),t.fragmentShader=t.fragmentShader.replace("#include ",` #include + vec3 b = normalize(vBitangent); + vec3 t = normalize(vTangent); + mat4 directions = mat4(vec4(b, 1.0), vec4(t, 1.0), vec4(-b, 1.0), vec4(-t, 1.0)); + float currentBorderSize = distance.x - distance.y; + float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; + vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; + normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); + `)}class WN extends n2{constructor(n,C,r){const i=iM();super(i);V1(this,"count",0);V1(this,"isInstancedMesh",!0);V1(this,"instanceColor",null);V1(this,"morphTexture",null);V1(this,"boundingBox",new q2);V1(this,"boundingSphere",new o9);this.instanceMatrix=n,this.frustumCulled=!1,i.attributes.aData=C,i.attributes.aClipping=r,this.customDepthMaterial=jN,this.customDistanceMaterial=UN}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class GN extends D8{constructor(n,C,r,i,o,s){super();V1(this,"mesh");V1(this,"instanceMatrix");V1(this,"instanceData");V1(this,"instanceClipping");V1(this,"buckets",[]);V1(this,"elementCount",0);V1(this,"bufferElementSize",0);V1(this,"timeToNextUpdate");V1(this,"activateElement",(n,C,r)=>{const i=C.offset+r;this.instanceData.set(lM,16*i),this.instanceData.addUpdateRange(16*i,16),this.instanceData.needsUpdate=!0,n.activate(C,r)});V1(this,"setElementIndex",(n,C)=>{n.setIndexInBucket(C)});V1(this,"bufferCopyWithin",(n,C,r)=>{Qa(this.instanceMatrix,n,C,r),Qa(this.instanceData,n,C,r),Qa(this.instanceClipping,n,C,r)});V1(this,"clearBufferAt",n=>{const C=n*16;this.instanceMatrix.array.fill(0,C,C+16),this.instanceMatrix.addUpdateRange(C,16),this.instanceMatrix.needsUpdate=!0});this.material=n,this.pixelSize=C,this.cameraDistance=r,this.orderInfo=i,this.meshReceiveShadow=o,this.meshCastShadow=s}updateCount(){const n=this.buckets[this.buckets.length-1],C=n.offset+n.elements.length;this.mesh!=null&&(this.mesh.count=C),this.visible=C>0}insert(n,C){if(this.elementCount+=1,!bN(this.buckets,n,C,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(n,C,r){if(this.elementCount-=1,!QN(this.buckets,n,r,C,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(n){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=n,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(n){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,n)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),TN(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const n=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),RN(this.buckets,n,this.bufferElementSize);const C=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&C.set(this.instanceMatrix.array.subarray(0,C.length)),this.instanceMatrix=new p8(C,16,!1),this.instanceMatrix.setUsage(e5);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new p8(r,16,!1),this.instanceData.setUsage(e5);const i=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&i.set(this.instanceClipping.array.subarray(0,i.length)),this.instanceClipping=new p8(i,16,!1),this.instanceClipping.setUsage(e5),this.mesh=new WN(this.instanceMatrix,this.instanceData,this.instanceClipping),G3(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function Qa(t,e,n,C){const r=t.itemSize,i=n*r,o=C*r,s=e*r;t.array.copyWithin(s,i,o);const a=o-i;t.addUpdateRange(i,a),t.addUpdateRange(s,a),t.needsUpdate=!0}const xv={backgroundColor:(t,e,n)=>Ru(t.instanceData,e,n??sM,4),borderBottomLeftRadius:(t,e,n,{value:C})=>ei(t.instanceData,e,7,0,n,C[1]),borderBottomRightRadius:(t,e,n,{value:C})=>ei(t.instanceData,e,7,1,n,C[1]),borderTopRightRadius:(t,e,n,{value:C})=>ei(t.instanceData,e,7,2,n,C[1]),borderTopLeftRadius:(t,e,n,{value:C})=>ei(t.instanceData,e,7,3,n,C[1]),borderColor:(t,e,n)=>Ru(t.instanceData,e,n??16777215,8),borderBend:(t,e,n)=>Ta(t.instanceData,e,11,n??0),borderOpacity:(t,e,n)=>Ta(t.instanceData,e,12,n??1),backgroundOpacity:(t,e,n)=>Ta(t.instanceData,e,15,n??-1)},ON=["borderOpacity","backgroundColor","backgroundOpacity"],Zr=new f0,zN=new f0;class Rh{constructor(e,n,C,r,i,o,s,a){V1(this,"indexInBucket");V1(this,"bucket");V1(this,"unsubscribeList",[]);V1(this,"unsubscribeVisible");V1(this,"destroyed",!1);V1(this,"insertedIntoGroup",!1);V1(this,"active",U0(!1));V1(this,"getProperty",U0(void 0));this.group=e,this.matrix=n,this.size=C,this.offset=r,this.borderInset=i,this.clippingRect=o,this.minorIndex=a,this.unsubscribeVisible=$0(()=>{const d=this.getProperty.value;if(d!=null&&oM(i,C,s,d("borderOpacity"),d("backgroundOpacity"),d("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return ON.includes(e)}hasImmediateProperty(e){return e in xv}setProperty(e,n){const C=this.getIndexInBuffer();C!=null&&xv[e](this.group,C,n,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,n){this.bucket=e,this.indexInBucket=n,this.active.value=!0,this.unsubscribeList.push($0(()=>{const C=this.matrix.value;if(C==null)return;const{instanceMatrix:r,pixelSize:i}=this.group,o=this.getIndexInBuffer();if(o==null)return;const s=o*16,[a,d]=this.size.value;if(Zr.makeScale(a*i,d*i,1),this.offset!=null){const[g,p]=this.offset.value;Zr.premultiply(zN.makeTranslation(g*i,p*i,0))}Zr.premultiply(C),Zr.toArray(r.array,s),r.addUpdateRange(s,16),r.needsUpdate=!0}),$0(()=>{const[C,r]=this.size.value,{instanceData:i}=this.group,{array:o}=i,s=this.getIndexInBuffer();if(s==null)return;const a=s*16+13;o[a]=C,o[a+1]=r,i.addUpdateRange(a,2),i.needsUpdate=!0}),$0(()=>{const{instanceData:C}=this.group,r=this.getIndexInBuffer();if(r==null)return;const i=r*16+0;C.array.set(this.borderInset.value,i),C.addUpdateRange(i,4),C.needsUpdate=!0}),$0(()=>{var s;const{instanceClipping:C}=this.group,r=this.getIndexInBuffer();if(r==null)return;const i=r*16,o=(s=this.clippingRect)==null?void 0:s.value;o!=null?o.toArray(C.array,i):C.array.set(uo,i),C.addUpdateRange(i,16),C.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let n=0;ne.hasImmediateProperty.bind(e),[e]),s=u.useCallback(a=>{if(!C.current){r.current=a;return}mv(a,r.current,i.current,e),r.current=a},[e]);h9(()=>{if(C.current=e.active.value,!C.current){kv(i.current),i.current={};return}return mv(r.current,VN,i.current,e),()=>{kv(i.current),i.current={}}},[e]),jk(t,o,s,n)}function mv(t,e,n,C){var r,i;for(const o in t){const s=t[o];if(o in e){const a=e[o];if(delete e[o],Uk(s,a))continue;(r=n[o])==null||r.call(n)}n[o]=$0(()=>{const a=Iu(s);C.setProperty(o,a)})}for(const o in e)(i=n[o])==null||i.call(n),delete n[o],Iu(e[o])!==void 0&&C.setProperty(o,void 0)}function kv(t){for(const e in t)t[e]()}function A6({handlers:t,hoverHandlers:e,activeHandlers:n,inputHandlers:C,matrix:r,children:i,groupRef:o}){return u.useEffect(()=>{const s=o.current;if(s!=null)return $0(()=>r.value!=null&&s.matrix.copy(r.value))},[o,r]),h.jsx("group",{ref:o,onPointerOut:z6(t.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:z6(t.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:z6(t.onPointerUp,z6(n==null?void 0:n.onPointerUp,C==null?void 0:C.onPointerUp)),onPointerDown:z6(t.onPointerDown,z6(n==null?void 0:n.onPointerDown,C==null?void 0:C.onPointerDown)),onPointerLeave:z6(t.onPointerLeave,n==null?void 0:n.onPointerLeave),onPointerMove:z6(t.onPointerMove,C==null?void 0:C.onPointerMove),onWheel:t.onWheel,onClick:t.onClick,onContextMenu:t.onContextMenu,onDoubleClick:t.onDoubleClick,onPointerCancel:t.onPointerCancel,onPointerEnter:t.onPointerEnter,onPointerMissed:t.onPointerMissed,matrixAutoUpdate:!1,children:i})}function z6(t,e){return t==null?e:e==null?t:n=>{e(n),!n.stopped&&t(n)}}function O3(t,e,n,C){const r=R4(),i=u.useMemo(()=>{const o=new n2(_h);return o.matrixAutoUpdate=!1,o.raycast=Me(o,CM(o),C,r,n),o.visible=!1,o},[r,n,C]);return h9(()=>{const[o,s]=t.value;i.scale.set(o*e.pixelSize,s*e.pixelSize,1),i.updateMatrix()},[t,e]),i}const gM=u.createContext(void 0);function bh(){const t=u.useContext(gM);if(t==null)throw new Error("Can only be used inside a component.");return t}function $N(t,e,n,C,r,i,o){const{materials:s,setter:a}=u.useMemo(()=>{const d=new HN(e,n,C),g={data:d.data,type:"normal"},p=aM(r??n8,g),A=new uM(g),w=new cM(g);return p.clippingPlanes=i,A.clippingPlanes=i,w.clippingPlanes=i,{materials:[p,A,w],setter:d}},[e,n,C,r,i]);return F8(t,a,o),os(t,a,o),u.useEffect(()=>()=>a.destroy(),[a]),s}function b4(t=n8,{castShadow:e=!1,receiveShadow:n=!1}){return u.useMemo(()=>({materialClass:t,castShadow:e,receiveShadow:n}),[t,e,n])}function R5(t,e,n,C,r,i,o,s,a,d,g){const p=g??bh(),A=u.useMemo(()=>new Rh(p(o.majorIndex,a),e,n,C,r,s,i,o.minorIndex),[p,e,n,r,s,i,o,C,a]);u.useEffect(()=>()=>A.destroy(),[A]),F8(t,A,d),os(t,A,d)}function YN(t,e,n){const C=u.useMemo(()=>new Map,[]),r=u.useCallback((i,{materialClass:o,receiveShadow:s,castShadow:a})=>{let d=C.get(o);d==null&&C.set(o,d=new Map);const g=(i<<2)+((s?1:0)<<1)+(a?1:0);let p=d.get(g);if(p==null){const A=aM(o,{type:"instanced"});d.set(g,p=new GN(A,t,e,{elementType:s9.Panel,majorIndex:i,minorIndex:0},s,a)),n.add(p)}return p},[t,C,e,n]);return y5((i,o)=>{for(const s of C.values())for(const a of s.values())a.onFrame(o)}),r}const XN=gM.Provider,Nu=[],Ri=[];function JN(t,e){Nu.push(t),Ri.push(e),document.body.style.cursor=e}function Mv(t){const e=Nu.indexOf(t);e!=-1&&(Nu.splice(e,1),Ri.splice(e,1),document.body.style.cursor=Ri[Ri.length-1]??"default")}function v6(t,e,n){const C=u.useMemo(()=>U0([]),[]),r=u.useMemo(()=>K4(()=>C.value.length>0),[]);let i=!1;ke(e,s=>{s.hover!=null&&(i=!0,r(t,s.hover))}),u.useEffect(()=>()=>Mv(C),[]);const o=e.cursor??n;if(!i&&e.onHoverChange==null&&o==null){C.value.length=0;return}return{onPointerOver:s=>{C.value=[s.pointerId,...C.value],e.onHoverChange!=null&&C.value.length===1&&e.onHoverChange(!0),o!=null&&JN(C,o)},onPointerOut:s=>{C.value=C.value.filter(a=>a!=s.pointerId),e.onHoverChange!=null&&C.value.length===0&&e.onHoverChange(!1),Mv(C)}}}function ss(t){return(e,n,C,r)=>{if(C(e)){r(e,n);return}const i=t[e];if(i==null)return;const o=i.length;if(C(i[0]))for(let s=0;sU0([0,0]),[])}function nH(t,e,n){return u.useMemo(()=>V2(()=>{const C=n.value;if(C==null)return;const[r,i]=t.value,{pixelSize:o}=e;return new f0().makeTranslation(-r*o,i*o,0).premultiply(C)}),[t,e,n])}function CH({node:t,scrollPosition:e,children:n}){const C=u.useRef(null);return u.useEffect(()=>$0(()=>{var s,a;const[r,i]=e.value,{pixelSize:o}=t;(s=C.current)==null||s.position.set(-r*o,i*o,0),(a=C.current)==null||a.updateMatrix()}),[t,e]),h.jsx("group",{ref:C,children:n})}function On({listeners:t,node:e,scrollPosition:n,children:C}){const[r,i]=u.useState(()=>e.scrollable.value.some(p=>p));h9(()=>i(e.scrollable.value.some(p=>p)),[e]);const o=u.useRef(t.onScroll);o.current=t.onScroll;const s=u.useMemo(()=>new Map,[]),a=u.useMemo(()=>new y1,[]),d=u.useCallback((p,A,w,x,y)=>{var P,K;const[m,v]=p==null?[!1,!1]:rH(p.nativeEvent);m&&(A=0),v&&(w=0);const[E,k]=n.value,[I,Q]=e.maxScrollPosition.value;let[R,T]=n.value;const[j,q]=((P=e.anyAncestorScrollable)==null?void 0:P.value)??[!1,!1];R=Ev(E,I,A,y&&!j),T=Ev(k,Q,w,y&&!q),x!=null&&x>0&&a.set(A,w).divideScalar(x),p!=null&&iH(p.nativeEvent,m||Math.min(E,(I??0)-E)>5,v||Math.min(k,(Q??0)-k)>5),!(((K=o.current)==null?void 0:K.call(o,R,T,n,p))===!1||E===R&&k===T)&&(n.value=[R,T])},[e,n,a]);y5((p,A)=>{if(s.size>0)return;let w=0,x=0;const[y,m]=n.value,[v,E]=e.maxScrollPosition.value;w+=Hu(y,0,v??0)*-.3,x+=Hu(m,0,E??0)*-.3,w+=a.x*A,x+=a.y*A,a.multiplyScalar(.9),Math.abs(a.x)<.01&&(a.x=0),Math.abs(a.y)<.01&&(a.y=0),!(w===0&&x===0)&&d(void 0,w,x,void 0,!0)});const g=u.useRef(null);return r?h.jsx("group",{ref:g,matrixAutoUpdate:!1,onPointerDown:p=>{let A=s.get(p.pointerId);A==null&&s.set(p.pointerId,A={timestamp:0,point:new G}),A.timestamp=performance.now()/1e3,g.current.worldToLocal(A.point.copy(p.point))},onPointerUp:p=>{s.delete(p.pointerId)},onPointerLeave:p=>{s.delete(p.pointerId)},onPointerCancel:p=>{s.delete(p.pointerId)},onContextMenu:p=>p.nativeEvent.preventDefault(),onPointerMove:p=>{const A=s.get(p.pointerId);if(A==null)return;g.current.worldToLocal(Pa.copy(p.point)),Da.copy(Pa).sub(A.point).divideScalar(e.pixelSize);const w=performance.now()/1e3,x=w-A.timestamp;A.point.copy(Pa),A.timestamp=w,!p.defaultPrevented&&d(p,-Da.x,Da.y,x,!0)},onWheel:p=>{p.defaultPrevented||d(p,p.deltaX,p.deltaY,void 0,!1)},children:C}):h.jsx("group",{matrixAutoUpdate:!1,children:C})}const AM=Symbol("was-scrolled");function rH(t){return t[AM]??[!1,!1]}function iH(t,e,n){t[AM]=[e,n]}function Ev(t,e,n,C){if(n===0)return t;const r=Hu(t,0,e??0);yv(n)===yv(r)&&(n*=Math.max(0,1-Math.abs(r)/100));let i=t+n;return C&&e!=null?i:Sh(i,0,e??0)}function yv(t){return t>=0}function Hu(t,e,n){return tn?t-n:0}const Iv=9;function vM(t){return t[Iv].toLowerCase()+t.slice(Iv+1)}const oH=(t,e,n,C)=>{if(t.startsWith("scrollbarBorder")){if(t=vM(t),n(t)){C(t,e);return}qN(t,e,n,C)}},sH=(t,e,n,C)=>{if(t.startsWith("scrollbar")){if(t==="scrollbarOpacity"){C("backgroundOpacity",e);return}if(t==="scrollbarColor"){C("backgroundColor",e);return}if(t=vM(t),n(t)){C(t,e);return}w6(t,e,n,C)}};function zn(t,e,n,C,r,i,o,s,a){const d=b4(i,{castShadow:!1,receiveShadow:!1}),g=S9(s9.Panel,void 0,d,s),p=i4(t,lH),A=i4(t,aH,oH),w=u.useMemo(()=>V2(()=>{const m=A.value;return[(m==null?void 0:m("scrollbarBorderTop"))??0,(m==null?void 0:m("scrollbarBorderRight"))??0,(m==null?void 0:m("scrollbarBorderBottom"))??0,(m==null?void 0:m("scrollbarBorderLeft"))??0]}),[A]),x=t.length;Bv(t,0,e,n,C,r,i,o,g,a,p,w),Bv(t,1,e,n,C,r,i,o,g,a,p,w);const y=t.length;for(let m=x;m{const y=V2(()=>{const m=g.value;if(m!=null)return cH(e,m("scrollbarWidth")??10,C.size.value,C.maxScrollPosition.value,C.borderInset.value,n.value)});return[V2(()=>{var m;return((m=y.value)==null?void 0:m.slice(0,2))??[0,0]}),V2(()=>{var m;return((m=y.value)==null?void 0:m.slice(2,4))??[0,0]})]},[e,C,n,g]),x=u.useMemo(()=>({materialClass:o??n8,receiveShadow:!1,castShadow:!1}),[o]);R5(t,r,w,A,p,i,a,s,x,sH,d)}function cH(t,e,n,C,r,i){const o=[0,0,0,0],s=C[t];if(s==null)return o;const a=1-t,d=n[t]-r[a]-r[a+2],g=Math.max(e,d*d/(s+d)),p=d-g,A=i[t];return o[t]=n[t]*.5-g*.5-r[(t+3)%4]-p*Sh(A/s,0,1),o[a]=n[a]*.5-e*.5-r[a+1],t===0&&(o[0]*=-1,o[1]*=-1),o[t+2]=g,o[a+2]=e,o}function b5(t,e,n,C){u.useImperativeHandle(t,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:n instanceof n2?n:n.current,scrollPosition:C}),[n,e,C])}function x6({onSizeChange:t},e){const n=u.useMemo(()=>{if(t==null)return;let C=!0;return $0(()=>{const r=e.value;if(C){C=!1;return}t(...r)})},[t,e]);u.useEffect(()=>n,[n])}function Q5({onIsInViewportChange:t},e){const n=u.useMemo(()=>{if(t==null)return;let C=!0;return $0(()=>{const r=!e.value;if(C){C=!1;return}t(r)})},[e,t]);u.useEffect(()=>n,[n])}function T5(t){const e=u.useContext(LM);if(e==null)throw new Error("Can only be used inside a uikit component.");return u.useMemo(()=>V2(()=>{const n=t.value,C=e.value;if(!(n==null||C==null))return C.clone().multiply(n)}),[t,e])}const LM=u.createContext(void 0),uH=LM.Provider;function Vn({globalMatrix:t,node:e,scrollPosition:n,children:C,orderInfo:r}){const i=R4(),o=zP(t,e.size,e.borderInset,e.overflow,e,i),s=nH(n,e,t);return h.jsx(CH,{node:e,scrollPosition:n,children:h.jsx(uH,{value:s,children:h.jsx(Bh,{value:e,children:h.jsx(GP,{value:o,children:h.jsx(CN,{value:r,children:C})})})})})}const wM="transformTranslateX",xM="transformTranslateY",mM="transformTranslateZ",kM="transformRotateX",MM="transformRotateY",EM="transformRotateZ",yM="transformScaleX",IM="transformScaleY",BM="transformScaleZ",dH=[wM,xM,mM,kM,MM,EM,yM,IM,BM],hH=new G,fH=new G,ti=new G,Na=new f0,gH=new ve,pH=new F9,Ha=Math.PI/180;function AH([t,e,n]){return pH.setFromEuler(gH.set(t*Ha,e*Ha,n*Ha))}function m6(t,e){const n=i4(t,dH,tH);return u.useMemo(()=>V2(()=>{const C=n.value;if(C==null)return;const{pixelSize:r,relativeCenter:i}=e,[o,s]=i.value,a=new f0().makeTranslation(o*r,s*r,0),d=C("transformOriginX")??"center",g=C("transformOriginY")??"center";let p=!0;if(d!="center"||g!="center"){const[y,m]=e.size.value;p=!1,ti.set(-Gk[d]*y*r,-Ok[g]*m*r,0),a.multiply(Na.makeTranslation(ti)),ti.negate()}const A=[C(kM)??0,C(MM)??0,C(EM)??0],w=[C(wM)??0,-(C(xM)??0),C(mM)??0],x=[C(yM)??1,C(IM)??1,C(BM)??1];return(w.some(y=>y!=0)||A.some(y=>y!=0)||x.some(y=>y!=1))&&a.multiply(Na.compose(hH.fromArray(w).multiplyScalar(r),AH(A),fH.fromArray(x))),p||a.multiply(Na.makeTranslation(ti)),a}),[n,e])}function k6(t,e){const n=u.useMemo(()=>U0([]),[]),C=u.useMemo(()=>K4(()=>n.value.length>0),[]);let r=!1;if(ke(e,o=>{o.active!=null&&(r=!0,C(t,o.active))}),!r&&e.onActiveChange==null){n.value.length=0;return}const i=o=>{n.value=n.value.filter(s=>s!=o.pointerId),!(e.onActiveChange==null||n.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{n.value=[o.pointerId,...n.value],!(e.onActiveChange==null||n.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:i,onPointerLeave:i}}u.forwardRef((t,e)=>{const n=d6(),C=u.useRef(null),r=_5(C);F8(n,r,L6);const i=m6(n,r),o=T5(i),s=R4(),a=S5(s,o,r.size,r);x6(t,r.size),Q5(t,a);const d=b4(t.panelMaterialClass,t),g=S9(s9.Panel,t.zIndexOffset,d);R5(n,o,r.size,void 0,r.borderInset,a,g,s,d,w6);const p=u.useRef(null),A=B5(),w=S9(s9.Object,void 0,void 0,g),x=wH(n,p,A,r.cameraDistance,s,w);f6(n,t),g6(n,t),p6(n,t);const y=v6(n,t),m=k6(n,t),v=u.useMemo(()=>V2(()=>{const[I,Q]=x.value;return I/Q}),[x]);(t.keepAspectRatio??!0)&&n4(n,"aspectRatio",v),h6(n);const E=u.useRef(null);u.useEffect(()=>$0(()=>{const[I,Q]=r.size.value,[R,T,j,q]=r.paddingInset.value,[_,P,K,g1]=r.borderInset.value,X=R+_,i1=T+P,C1=j+K,u1=q+g1,U=I-u1-i1,t1=Q-X-C1,{pixelSize:n1}=r,{current:d1}=E;d1==null||d1.position.set((u1-i1)*.5*n1,(C1-X)*.5*n1,0);const[,x1,U1]=x.value;d1==null||d1.scale.set(U*n1,t1*n1,t.keepAspectRatio?t1*n1*U1/x1:U1),d1==null||d1.updateMatrix()}),[r,t.keepAspectRatio,x]);const k=O3(r.size,r,g,A);return b5(e,r,k),h.jsxs(A6,{groupRef:C,matrix:i,handlers:t,hoverHandlers:y,activeHandlers:m,children:[h.jsx("primitive",{object:k}),h.jsx("group",{matrixAutoUpdate:!1,ref:E,children:h.jsx("group",{ref:p,matrixAutoUpdate:!1,children:h.jsx(Bh,{value:void 0,children:t.children})})})]})});const ja=new q2,vH=new G().setScalar(.001),LH=["depthAlign"];function wH(t,e,n,C,r,i){const o=u.useMemo(()=>U0(new G(1,1,1)),[]),s=Wn(r,n),a=i4(t,LH);return u.useEffect(()=>{const d=e.current;if(d==null)return;d.traverse(w=>{w instanceof n2&&(G3(w,C,i),w.material.clippingPlanes=s,w.material.needsUpdate=!0,w.raycast=Me(w,w.raycast,n,r,i))});const g=d.parent;g==null||g.remove(d),ja.setFromObject(d);const p=new G,A=new G;return ja.getSize(p).max(vH),o.value=p,d.scale.set(1,1,1).divide(p),g!=null&&g.add(d),ja.getCenter(A),$0(()=>{const w=a.value;w!=null&&(d.position.copy(A).negate(),d.position.z-=TP[w("depthAlign")??"back"]*p.z,d.position.divide(p),d.updateMatrix())})},[a,C,s,n]),o}u.forwardRef((t,e)=>{const n=d6(),C=u.useRef(null),r=_5(C);F8(n,r,L6);const i=m6(n,r),o=R4(),s=T5(i),a=S5(o,s,r.size,r),d=b4(t.panelMaterialClass,t),g=S9(s9.Panel,t.zIndexOffset,d);R5(n,s,r.size,void 0,r.borderInset,a,g,o,d,w6);const p=Gn();zn(n,p,r,s,a,t.scrollbarPanelMaterialClass,o,g),f6(n,t),g6(n,t),p6(n,t);const A=v6(n,t),w=k6(n,t);h6(n),x6(t,r.size),Q5(t,a);const x=B5(),y=O3(r.size,r,g,x);return b5(e,r,y,p),h.jsxs(A6,{groupRef:C,matrix:i,handlers:t,hoverHandlers:A,activeHandlers:w,children:[h.jsx(On,{listeners:t,node:r,scrollPosition:p,children:h.jsx("primitive",{object:y})}),h.jsx(Vn,{globalMatrix:s,node:r,orderInfo:g,scrollPosition:p,children:t.children})]})});u.forwardRef((t,e)=>{const n=d6(),C=u.useRef(null),r=_5(C);F8(n,r,L6);const i=m6(n,r),o=R4(),s=B5(),a=Wn(o,s),d=S9(s9.Custom,t.zIndexOffset,void 0),g=u.useRef(null),p=T5(i),A=S5(o,p,r.size,r);u.useEffect(()=>{const y=g.current;if(y==null)return;y.raycast=Me(y,y.raycast,s,o,d),G3(y,r.cameraDistance,d),y.material instanceof l9&&(y.material.clippingPlanes=a,y.material.needsUpdate=!0,y.material.shadowSide=j8);const m=$0(()=>{const[E,k]=r.size.value;y.scale.set(E*r.pixelSize,k*r.pixelSize,1),y.updateMatrix()}),v=$0(()=>void(y.visible=!A.value));return()=>{m(),v()}},[a,r,A,o,d,s]),f6(n,t),g6(n,t),p6(n,t);const w=v6(n,t),x=k6(n,t);return h6(n),x6(t,r.size),Q5(t,A),b5(e,r,g),h.jsx(A6,{groupRef:C,matrix:i,handlers:t,hoverHandlers:w,activeHandlers:x,children:h.jsx("mesh",{receiveShadow:t.receiveShadow,castShadow:t.castShadow,customDepthMaterial:t.customDepthMaterial,customDistanceMaterial:t.customDistanceMaterial,ref:g,matrixAutoUpdate:!1,geometry:_h,children:h.jsx(Bh,{value:void 0,children:t.children})})})});const xH="fill",mH=(t,e,n,C)=>{if(t==="opacity"){C("backgroundOpacity",e);return}w6(t,e,n,C)},kH=u.forwardRef((t,e)=>{const n=d6(),C=zk(IH,t.src),r=u.useMemo(()=>V2(()=>{const k=C.value;if(k==null)return;const I=k.source.data;return I.width/I.height}),[C]),i=u.useRef(null),o=_5(i);F8(n,o,L6),EH(n,C,o.borderInset,o.size);const s=m6(n,o),a=R4(),d=B5(),g=Wn(a,d),p=T5(s),A=S5(a,p,o.size,o),w=$N(n,o.size,o.borderInset,A,t.materialClass,g,mH),x=S9(s9.Image,t.zIndexOffset,void 0),y=u.useMemo(()=>{const[k,I,Q]=w,R=new n2(_h,k);return R.matrixAutoUpdate=!1,R.castShadow=t.castShadow??!1,R.receiveShadow=t.receiveShadow??!1,R.customDepthMaterial=I,R.customDistanceMaterial=Q,R.raycast=Me(R,CM(R),d,a,x),G3(R,o.cameraDistance,x),R},[o,w,d,a,x,t.receiveShadow,t.castShadow]),m=Gn();zn(n,m,o,p,A,t.scrollbarPanelMaterialClass,a,x),f6(n,t),g6(n,t),p6(n,t);const v=v6(n,t),E=k6(n,t);return n4(n,"backgroundColor",16777215),(t.keepAspectRatio??!0)&&n4(n,"aspectRatio",r),h6(n),x6(t,o.size),Q5(t,A),h9(()=>{const k=C.value??null;y.material.map!==k&&(y.material.map=k,y.material.needsUpdate=!0)},[y,C]),h9(()=>{const[k,I]=o.size.value;y.scale.set(k*o.pixelSize,I*o.pixelSize,1),y.updateMatrix()},[y]),h9(()=>void(y.visible=!A.value),[y,A]),b5(e,o,y,m),h.jsxs(A6,{groupRef:i,hoverHandlers:v,handlers:t,matrix:s,activeHandlers:E,children:[h.jsx(On,{listeners:t,node:o,scrollPosition:m,children:h.jsx("primitive",{object:y})}),h.jsx(Vn,{globalMatrix:p,node:o,orderInfo:x,scrollPosition:m,children:t.children})]})}),MH=["fit"];function EH(t,e,n,C){const r=i4(t,MH);h9(()=>{const i=r.value,o=e.value;if(o==null||i==null)return;const s=i("fit")??xH;if(o.matrix.identity(),s==="fill"||o==null){Sv(n,C,o);return}const{width:a,height:d}=o.source.data,g=a/d,[p,A]=C.value,[w,x,y,m]=n.value,v=(p-m-x)/(A-w-y);g>v?o.matrix.translate(-(.5*(v-g))/v,0).scale(v/g,1):o.matrix.translate(0,-(.5*(g-v))/g).scale(1,g/v),Sv(n,C,o)},[e,n,C])}function Sv(t,e,n){const[C,r]=e.value,[i,o,s,a]=t.value,d=C-a-o,g=r-i-s;n.matrix.translate(-1+(a+d)/C,-1+(i+g)/r).scale(C/d,r/g)}const yH=new hh;async function IH(t){if(t==null)return Promise.resolve(void 0);if(t instanceof k2)return Promise.resolve(t);try{const e=await yH.loadAsync(t);return e.colorSpace=N2,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function $4(t,e,n){if(e==null)return n;const C=t[e];if(C==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(t).join(", ")}`);return C}function g2(t,e,n){return typeof t=="number"?Math.round(t/e):t??n}const BH={static:0,relative:1,absolute:2},Ua={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},SH={column:0,"column-reverse":1,row:2,"row-reverse":3},_H={"no-wrap":0,wrap:1,"wrap-reverse":2},RH={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},bH={visible:0,hidden:1,scroll:2},QH={flex:0,none:1},_v={positionType:(t,e,n)=>t.setPositionType($4(BH,n,0)),positionTop:(t,e,n)=>t.setPosition(1,g2(n,e,NaN)),positionLeft:(t,e,n)=>t.setPosition(0,g2(n,e,NaN)),positionRight:(t,e,n)=>t.setPosition(2,g2(n,e,NaN)),positionBottom:(t,e,n)=>t.setPosition(3,g2(n,e,NaN)),alignContent:(t,e,n)=>t.setAlignContent($4(Ua,n,1)),alignItems:(t,e,n)=>t.setAlignItems($4(Ua,n,4)),alignSelf:(t,e,n)=>t.setAlignSelf($4(Ua,n,0)),flexDirection:(t,e,n)=>t.setFlexDirection($4(SH,n,0)),flexWrap:(t,e,n)=>t.setFlexWrap($4(_H,n,0)),justifyContent:(t,e,n)=>t.setJustifyContent($4(RH,n,0)),marginTop:(t,e,n)=>t.setMargin(1,g2(n,e,NaN)),marginLeft:(t,e,n)=>t.setMargin(0,g2(n,e,NaN)),marginRight:(t,e,n)=>t.setMargin(2,g2(n,e,NaN)),marginBottom:(t,e,n)=>t.setMargin(3,g2(n,e,NaN)),flexBasis:(t,e,n)=>t.setFlexBasis(g2(n,e,NaN)),flexGrow:(t,e,n)=>t.setFlexGrow(n??0),flexShrink:(t,e,n)=>t.setFlexShrink(n??0),width:(t,e,n)=>t.setWidth(g2(n,e,NaN)),height:(t,e,n)=>t.setHeight(g2(n,e,NaN)),minWidth:(t,e,n)=>t.setMinWidth(g2(n,e,NaN)),minHeight:(t,e,n)=>t.setMinHeight(g2(n,e,NaN)),maxWidth:(t,e,n)=>t.setMaxWidth(g2(n,e,NaN)),maxHeight:(t,e,n)=>t.setMaxHeight(g2(n,e,NaN)),aspectRatio:(t,e,n)=>t.setAspectRatio(n??NaN),borderTop:(t,e,n)=>t.setBorder(1,g2(n,e,NaN)),borderLeft:(t,e,n)=>t.setBorder(0,g2(n,e,NaN)),borderRight:(t,e,n)=>t.setBorder(2,g2(n,e,NaN)),borderBottom:(t,e,n)=>t.setBorder(3,g2(n,e,NaN)),overflow:(t,e,n)=>t.setOverflow($4(bH,n,0)),display:(t,e,n)=>t.setDisplay($4(QH,n,0)),paddingTop:(t,e,n)=>t.setPadding(1,g2(n,e,NaN)),paddingLeft:(t,e,n)=>t.setPadding(0,g2(n,e,NaN)),paddingRight:(t,e,n)=>t.setPadding(2,g2(n,e,NaN)),paddingBottom:(t,e,n)=>t.setPadding(3,g2(n,e,NaN)),gapRow:(t,e,n)=>t.setGap(1,g2(n,e,NaN)),gapColumn:(t,e,n)=>t.setGap(0,g2(n,e,NaN))};function TH(t,e){return t.L===e.L}function DH(t,e,n){if(n==null){t.setMeasureFunc(null);return}t.setMeasureFunc((C,r,i,o)=>{const s=n(C*e,r,i*e,o);return{width:Math.ceil(Math.ceil(s.width)/e),height:Math.ceil(Math.ceil(s.height)/e)}}),t.markDirty()}class Qh{constructor(e,n,C,r,i,o,s){V1(this,"size",U0([0,0]));V1(this,"relativeCenter",U0([0,0]));V1(this,"borderInset",U0([0,0,0,0]));V1(this,"paddingInset",U0([0,0,0,0]));V1(this,"overflow",U0(D9.Overflow.Visible));V1(this,"maxScrollPosition",U0([void 0,void 0]));V1(this,"scrollable",U0([!1,!1]));V1(this,"children",[]);V1(this,"yogaNode");V1(this,"unsubscribeYoga");V1(this,"layoutChangeListeners",new Set);V1(this,"requestCalculateLayout");V1(this,"active",U0(!1));this.groupRef=e,this.cameraDistance=n,this.yoga=C,this.precision=r,this.pixelSize=i,this.anyAncestorScrollable=s,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=$0(()=>{var a;C.value!=null&&((a=this.unsubscribeYoga)==null||a.call(this),this.unsubscribeYoga=void 0,this.yogaNode=C.value.Node.create(),this.active.value=!0)})}setProperty(e,n){e==="measureFunc"?DH(this.yogaNode,this.precision,n):_v[e](this.yogaNode,this.precision,n),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in _v}destroy(){var e,n;(e=this.unsubscribeYoga)==null||e.call(this),(n=this.yogaNode)==null||n.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),Qk(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new Qh(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,V2(()=>{var s;const[C,r]=((s=this.anyAncestorScrollable)==null?void 0:s.value)??[!1,!1],[i,o]=this.scrollable.value;return[C||i,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const n=this.children.indexOf(e);n!==-1&&(this.children.splice(n,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((s,a)=>{var w,x;if(e??(e=(x=(w=s.groupRef.current)==null?void 0:w.parent)==null?void 0:x.children),e==null)return 0;const d=s.groupRef.current,g=a.groupRef.current;if(d==null||g==null)return 0;const p=e.indexOf(d);if(p===-1)throw new Error("parent mismatch");const A=e.indexOf(g);if(A===-1)throw new Error("parent mismatch");return p-A});let n=0,C=this.yogaNode.getChild(n),r=this.children[n];for(;r!=null||C!=null;){if(r!=null&&C!=null&&TH(C,bv(r.yogaNode))){r=this.children[++n],C=this.yogaNode.getChild(n);continue}if(C!=null&&this.yogaNode.removeChild(C),r!=null){const s=bv(r.yogaNode);(o=s.getParent())==null||o.removeChild(s),this.yogaNode.insertChild(s,n),r=this.children[++n]}C=this.yogaNode.getChild(n)}const i=this.children.length;for(let s=0;s0,j>0)}else I7(this.maxScrollPosition,void 0,void 0),I7(this.scrollable,!1,!1);const I=this.overflow.value===D9.Overflow.Visible;return[i+Math.max(C,I?E:0),o+Math.max(r,I?k:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function I7(t,e,n){const[C,r]=t.value;C===e&&r===n||(t.value=[e,n])}function Rv(t,e,n,C,r){const[i,o,s,a]=t.value;i==e&&o==n&&s==C&&a==r||(t.value=[e,n,C,r])}function bv(t){if(t==null)throw new Error("commit cannot be called with a children that miss a yoga node");return t}const PH=.1,SM=.002,ni=new s2,Qv=new G,NH=u.forwardRef((t,e)=>{const n=d6(),C=kh(j=>j.gl);u.useEffect(()=>tN(C),[C]);const{sizeX:r,sizeY:i}=t,[o,s]=u.useMemo(()=>[t.precision??PH,t.pixelSize??SM],[]),a=DP(),d=u.useMemo(()=>({current:0}),[]),g=u.useRef(null),p=SN(),A=u.useMemo(()=>new Qh(g,d,a,o,s,p,void 0),[p,g,a]);F8(n,A,L6),u.useEffect(()=>()=>A.destroy(),[A]);const w=m6(n,A),x=u.useMemo(()=>{const j=new D8;return j.matrixAutoUpdate=!1,j},[]),y=YN(s,A.cameraDistance,x),m=gN(s,A.cameraDistance,x),v=b4(t.panelMaterialClass,t),E=S9(s9.Panel,void 0,v),k=jH(w,A.size,s,t),I=Gn();zn(n,I,A,k,void 0,t.scrollbarPanelMaterialClass,void 0,E,y),R5(n,k,A.size,void 0,A.borderInset,void 0,E,void 0,v,w6,y),f6(n,t),g6(n,t),p6(n,t,A.size);const Q=v6(n,t),R=k6(n,t);n4(n,"width",Tv(r,s)),n4(n,"height",Tv(i,s)),h6(n),x6(t,A.size);const T=O3(A.size,A,E,g);return b5(e,A,T,I),y5(({camera:j})=>{ni.normal.set(0,0,1),ni.constant=0,ni.applyMatrix4(T.matrixWorld),Qv.setFromMatrixPosition(j.matrixWorld),d.current=ni.distanceToPoint(Qv)}),h.jsxs(h.Fragment,{children:[h.jsx("primitive",{object:x}),h.jsx(A6,{groupRef:g,matrix:k,handlers:t,hoverHandlers:Q,activeHandlers:R,children:h.jsx(PP,{value:g,children:h.jsx(fN,{value:m,children:h.jsxs(XN,{value:y,children:[h.jsx(On,{node:A,scrollPosition:I,listeners:t,children:h.jsx("primitive",{object:T})}),h.jsx(IN,{value:A.size,children:h.jsx(Vn,{globalMatrix:k,node:A,orderInfo:E,scrollPosition:I,children:t.children})})]})})})})]})});function Tv(t,e){return u.useMemo(()=>t===void 0?void 0:t instanceof j2?V2(()=>{const n=t.value;if(n!=null)return n/e}):t/e,[t,e])}const HH=new f0;function jH(t,e,n,{anchorX:C="center",anchorY:r="center"}){return u.useMemo(()=>V2(()=>{var s;const[i,o]=e.value;return(s=t.value)==null?void 0:s.clone().premultiply(HH.makeTranslation(Gk[C]*i*n,Ok[r]*o*n,0))}),[t,e,C,r,n])}const UH=N2;class Ee extends z9{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,n,C,r){const i=this,o=new S4(i.manager);o.setPath(i.path),o.setRequestHeader(i.requestHeader),o.setWithCredentials(i.withCredentials),o.load(e,function(s){try{n(i.parse(s))}catch(a){r?r(a):console.error(a),i.manager.itemError(e)}},C,r)}parse(e){const n=this;function C($,O){if($.nodeType!==1)return;const W=I($);let F=!1,v1=null;switch($.nodeName){case"svg":O=x($,O);break;case"style":i($);break;case"g":O=x($,O);break;case"path":O=x($,O),$.hasAttribute("d")&&(v1=r($));break;case"rect":O=x($,O),v1=a($);break;case"polygon":O=x($,O),v1=d($);break;case"polyline":O=x($,O),v1=g($);break;case"circle":O=x($,O),v1=p($);break;case"ellipse":O=x($,O),v1=A($);break;case"line":O=x($,O),v1=w($);break;case"defs":F=!0;break;case"use":O=x($,O);const E1=($.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),z=$.viewportElement.getElementById(E1);z?C(z,O):console.warn("SVGLoader: 'use node' references non-existent node id: "+E1);break}v1&&(O.fill!==void 0&&O.fill!=="none"&&v1.color.setStyle(O.fill,UH),R(v1,d1),K.push(v1),v1.userData={node:$,style:O});const k1=$.childNodes;for(let s1=0;s10?d1.copy(X[X.length-1]):d1.identity())}function r($){const O=new V6,W=new y1,F=new y1,v1=new y1;let k1=!0,s1=!1;const E1=$.getAttribute("d");if(E1===""||E1==="none")return null;const z=E1.match(/[a-df-z][^a-df-z]*/ig);for(let L1=0,r1=z.length;L10&&(W.copy(v1),O.currentPath.currentPoint.copy(W),k1=!0);break;default:console.warn(a1)}s1=!1}return O}function i($){if(!(!$.sheet||!$.sheet.cssRules||!$.sheet.cssRules.length))for(let O=0;O<$.sheet.cssRules.length;O++){const W=$.sheet.cssRules[O];if(W.type!==1)continue;const F=W.selectorText.split(/,/gm).filter(Boolean).map(v1=>v1.trim());for(let v1=0;v1s1!==""));g1[F[v1]]=Object.assign(g1[F[v1]]||{},k1)}}}function o($,O,W,F,v1,k1,s1,E1){if(O==0||W==0){$.lineTo(E1.x,E1.y);return}F=F*Math.PI/180,O=Math.abs(O),W=Math.abs(W);const z=(s1.x-E1.x)/2,L1=(s1.y-E1.y)/2,r1=Math.cos(F)*z+Math.sin(F)*L1,a1=-Math.sin(F)*z+Math.cos(F)*L1;let f1=O*O,b1=W*W;const e1=r1*r1,S=a1*a1,D=e1/f1+S/b1;if(D>1){const P1=Math.sqrt(D);O=P1*O,W=P1*W,f1=O*O,b1=W*W}const o1=f1*S+b1*e1,T1=(f1*b1-o1)/o1;let Q1=Math.sqrt(Math.max(0,T1));v1===k1&&(Q1=-Q1);const _1=Q1*O*a1/W,Y1=-Q1*W*r1/O,O1=Math.cos(F)*_1-Math.sin(F)*Y1+(s1.x+E1.x)/2,q1=Math.sin(F)*_1+Math.cos(F)*Y1+(s1.y+E1.y)/2,l0=s(1,0,(r1-_1)/O,(a1-Y1)/W),w0=s((r1-_1)/O,(a1-Y1)/W,(-r1-_1)/O,(-a1-Y1)/W)%(Math.PI*2);$.currentPath.absellipse(O1,q1,O,W,l0,l0+w0,k1===0,F)}function s($,O,W,F){const v1=$*W+O*F,k1=Math.sqrt($*$+O*O)*Math.sqrt(W*W+F*F);let s1=Math.acos(Math.max(-1,Math.min(1,v1/k1)));return $*F-O*W<0&&(s1=-s1),s1}function a($){const O=k($.getAttribute("x")||0),W=k($.getAttribute("y")||0),F=k($.getAttribute("rx")||$.getAttribute("ry")||0),v1=k($.getAttribute("ry")||$.getAttribute("rx")||0),k1=k($.getAttribute("width")),s1=k($.getAttribute("height")),E1=1-.551915024494,z=new V6;return z.moveTo(O+F,W),z.lineTo(O+k1-F,W),(F!==0||v1!==0)&&z.bezierCurveTo(O+k1-F*E1,W,O+k1,W+v1*E1,O+k1,W+v1),z.lineTo(O+k1,W+s1-v1),(F!==0||v1!==0)&&z.bezierCurveTo(O+k1,W+s1-v1*E1,O+k1-F*E1,W+s1,O+k1-F,W+s1),z.lineTo(O+F,W+s1),(F!==0||v1!==0)&&z.bezierCurveTo(O+F*E1,W+s1,O,W+s1-v1*E1,O,W+s1-v1),z.lineTo(O,W+v1),(F!==0||v1!==0)&&z.bezierCurveTo(O,W+v1*E1,O+F*E1,W,O+F,W),z}function d($){function O(k1,s1,E1){const z=k(s1),L1=k(E1);v1===0?F.moveTo(z,L1):F.lineTo(z,L1),v1++}const W=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new V6;let v1=0;return $.getAttribute("points").replace(W,O),F.currentPath.autoClose=!0,F}function g($){function O(k1,s1,E1){const z=k(s1),L1=k(E1);v1===0?F.moveTo(z,L1):F.lineTo(z,L1),v1++}const W=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new V6;let v1=0;return $.getAttribute("points").replace(W,O),F.currentPath.autoClose=!1,F}function p($){const O=k($.getAttribute("cx")||0),W=k($.getAttribute("cy")||0),F=k($.getAttribute("r")||0),v1=new d5;v1.absarc(O,W,F,0,Math.PI*2);const k1=new V6;return k1.subPaths.push(v1),k1}function A($){const O=k($.getAttribute("cx")||0),W=k($.getAttribute("cy")||0),F=k($.getAttribute("rx")||0),v1=k($.getAttribute("ry")||0),k1=new d5;k1.absellipse(O,W,F,v1,0,Math.PI*2);const s1=new V6;return s1.subPaths.push(k1),s1}function w($){const O=k($.getAttribute("x1")||0),W=k($.getAttribute("y1")||0),F=k($.getAttribute("x2")||0),v1=k($.getAttribute("y2")||0),k1=new V6;return k1.moveTo(O,W),k1.lineTo(F,v1),k1.currentPath.autoClose=!1,k1}function x($,O){O=Object.assign({},O);let W={};if($.hasAttribute("class")){const s1=$.getAttribute("class").split(/\s/).filter(Boolean).map(E1=>E1.trim());for(let E1=0;E10&&O.premultiply(X[X.length-1]),d1.copy(O),X.push(O),O}function Q($){const O=new B0,W=i1;if($.nodeName==="use"&&($.hasAttribute("x")||$.hasAttribute("y"))){const F=k($.getAttribute("x")),v1=k($.getAttribute("y"));O.translate(F,v1)}if($.hasAttribute("transform")){const F=$.getAttribute("transform").split(")");for(let v1=F.length-1;v1>=0;v1--){const k1=F[v1].trim();if(k1==="")continue;const s1=k1.indexOf("("),E1=k1.length;if(s1>0&&s1=1){const r1=L1[0];let a1=0;L1.length>=2&&(a1=L1[1]),W.translate(r1,a1)}break;case"rotate":if(L1.length>=1){let r1=0,a1=0,f1=0;r1=L1[0]*Math.PI/180,L1.length>=3&&(a1=L1[1],f1=L1[2]),C1.makeTranslation(-a1,-f1),u1.makeRotation(r1),U.multiplyMatrices(u1,C1),C1.makeTranslation(a1,f1),W.multiplyMatrices(C1,U)}break;case"scale":if(L1.length>=1){const r1=L1[0];let a1=r1;L1.length>=2&&(a1=L1[1]),W.scale(r1,a1)}break;case"skewX":L1.length===1&&W.set(1,Math.tan(L1[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":L1.length===1&&W.set(1,0,0,Math.tan(L1[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":L1.length===6&&W.set(L1[0],L1[2],L1[4],L1[1],L1[3],L1[5],0,0,1);break}}O.premultiply(W)}}return O}function R($,O){function W(s1){n1.set(s1.x,s1.y,1).applyMatrix3(O),s1.set(n1.x,n1.y)}function F(s1){const E1=s1.xRadius,z=s1.yRadius,L1=Math.cos(s1.aRotation),r1=Math.sin(s1.aRotation),a1=new G(E1*L1,E1*r1,0),f1=new G(-z*r1,z*L1,0),b1=a1.applyMatrix3(O),e1=f1.applyMatrix3(O),S=i1.set(b1.x,e1.x,0,b1.y,e1.y,0,0,0,1),D=C1.copy(S).invert(),Q1=u1.copy(D).transpose().multiply(D).elements,_1=P(Q1[0],Q1[1],Q1[4]),Y1=Math.sqrt(_1.rt1),O1=Math.sqrt(_1.rt2);if(s1.xRadius=1/Y1,s1.yRadius=1/O1,s1.aRotation=Math.atan2(_1.sn,_1.cs),!((s1.aEndAngle-s1.aStartAngle)%(2*Math.PI){const{x:g0,y:s0}=new G(Math.cos(E0),Math.sin(E0),0).applyMatrix3(P1);return Math.atan2(s0,g0)};s1.aStartAngle=Q0(s1.aStartAngle),s1.aEndAngle=Q0(s1.aEndAngle),T(O)&&(s1.aClockwise=!s1.aClockwise)}}function v1(s1){const E1=q(O),z=_(O);s1.xRadius*=E1,s1.yRadius*=z;const L1=E1>Number.EPSILON?Math.atan2(O.elements[1],O.elements[0]):Math.atan2(-O.elements[3],O.elements[4]);s1.aRotation+=L1,T(O)&&(s1.aStartAngle*=-1,s1.aEndAngle*=-1,s1.aClockwise=!s1.aClockwise)}const k1=$.subPaths;for(let s1=0,E1=k1.length;s1Number.EPSILON}function q($){const O=$.elements;return Math.sqrt(O[0]*O[0]+O[1]*O[1])}function _($){const O=$.elements;return Math.sqrt(O[3]*O[3]+O[4]*O[4])}function P($,O,W){let F,v1,k1,s1,E1;const z=$+W,L1=$-W,r1=Math.sqrt(L1*L1+4*O*O);return z>0?(F=.5*(z+r1),E1=1/F,v1=$*E1*W-O*E1*O):z<0?v1=.5*(z-r1):(F=.5*r1,v1=-.5*r1),L1>0?k1=L1+r1:k1=L1-r1,Math.abs(k1)>2*Math.abs(O)?(E1=-2*O/k1,s1=1/Math.sqrt(1+E1*E1),k1=E1*s1):Math.abs(O)===0?(k1=1,s1=0):(E1=-.5*k1/O,k1=1/Math.sqrt(1+E1*E1),s1=E1*k1),L1>0&&(E1=k1,k1=-s1,s1=E1),{rt1:F,rt2:v1,cs:k1,sn:s1}}const K=[],g1={},X=[],i1=new B0,C1=new B0,u1=new B0,U=new B0,t1=new y1,n1=new G,d1=new B0,x1=new DOMParser().parseFromString(e,"image/svg+xml");return C(x1.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:K,xml:x1.documentElement}}static createShapes(e){const C={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:C.ORIGIN,t:0};function i(y,m,v,E){const k=y.x,I=m.x,Q=v.x,R=E.x,T=y.y,j=m.y,q=v.y,_=E.y,P=(R-Q)*(T-q)-(_-q)*(k-Q),K=(I-k)*(T-q)-(j-T)*(k-Q),g1=(_-q)*(I-k)-(R-Q)*(j-T),X=P/g1,i1=K/g1;if(g1===0&&P!==0||X<=0||X>=1||i1<0||i1>1)return null;if(P===0&&g1===0){for(let C1=0;C1<2;C1++)if(o(C1===0?v:E,y,m),r.loc==C.ORIGIN){const u1=C1===0?v:E;return{x:u1.x,y:u1.y,t:r.t}}else if(r.loc==C.BETWEEN){const u1=+(k+r.t*(I-k)).toPrecision(10),U=+(T+r.t*(j-T)).toPrecision(10);return{x:u1,y:U,t:r.t}}return null}else{for(let U=0;U<2;U++)if(o(U===0?v:E,y,m),r.loc==C.ORIGIN){const t1=U===0?v:E;return{x:t1.x,y:t1.y,t:r.t}}const C1=+(k+X*(I-k)).toPrecision(10),u1=+(T+X*(j-T)).toPrecision(10);return{x:C1,y:u1,t:X}}}function o(y,m,v){const E=v.x-m.x,k=v.y-m.y,I=y.x-m.x,Q=y.y-m.y,R=E*Q-I*k;if(y.x===m.x&&y.y===m.y){r.loc=C.ORIGIN,r.t=0;return}if(y.x===v.x&&y.y===v.y){r.loc=C.DESTINATION,r.t=1;return}if(R<-Number.EPSILON){r.loc=C.LEFT;return}if(R>Number.EPSILON){r.loc=C.RIGHT;return}if(E*I<0||k*Q<0){r.loc=C.BEHIND;return}if(Math.sqrt(E*E+k*k)_.t<=q.t+Number.EPSILON&&_.t>=q.t-Number.EPSILON)===void 0&&(v.push(q),E.push(new y1(q.x,q.y)))}}return E}function a(y,m,v){const E=new y1;m.getCenter(E);const k=[];return v.forEach(I=>{I.boundingBox.containsPoint(E)&&s(y,I.points).forEach(R=>{k.push({identifier:I.identifier,isCW:I.isCW,point:R})})}),k.sort((I,Q)=>I.point.x-Q.point.x),k}function d(y,m,v,E,k){(k==null||k==="")&&(k="nonzero");const I=new y1;y.boundingBox.getCenter(I);const Q=[new y1(v,I.y),new y1(E,I.y)],R=a(Q,y.boundingBox,m);R.sort((K,g1)=>K.point.x-g1.point.x);const T=[],j=[];R.forEach(K=>{K.identifier===y.identifier?T.push(K):j.push(K)});const q=T[0].point.x,_=[];let P=0;for(;P0&&_[_.length-1]===j[P].identifier?_.pop():_.push(j[P].identifier),P++;if(_.push(y.identifier),k==="evenodd"){const K=_.length%2===0,g1=_[_.length-2];return{identifier:y.identifier,isHole:K,for:g1}}else if(k==="nonzero"){let K=!0,g1=null,X=null;for(let i1=0;i1<_.length;i1++){const C1=_[i1];K?(X=m[C1].isCW,K=!1,g1=C1):X!==m[C1].isCW&&(X=m[C1].isCW,K=!0)}return{identifier:y.identifier,isHole:K,for:g1}}else console.warn('fill-rule: "'+k+'" is currently not implemented.')}let g=999999999,p=-999999999,A=e.subPaths.map(y=>{const m=y.getPoints();let v=-999999999,E=999999999,k=-999999999,I=999999999;for(let Q=0;Qv&&(v=R.y),R.yk&&(k=R.x),R.x=I&&(g=I-1),{curves:y.curves,points:m,isCW:t4.isClockWise(m),identifier:-1,boundingBox:new ck(new y1(I,E),new y1(k,v))}});A=A.filter(y=>y.points.length>1);for(let y=0;yd(y,A,g,p,e.userData?e.userData.style.fillRule:void 0)),x=[];return A.forEach(y=>{if(!w[y.identifier].isHole){const v=new h5;v.curves=y.curves,w.filter(k=>k.isHole&&k.for===y.identifier).forEach(k=>{const I=A[k.identifier],Q=new d5;Q.curves=I.curves,v.holes.push(Q)}),x.push(v)}}),x}static getStrokeStyle(e,n,C,r,i){return e=e!==void 0?e:1,n=n!==void 0?n:"#000",C=C!==void 0?C:"miter",r=r!==void 0?r:"butt",i=i!==void 0?i:4,{strokeColor:n,strokeWidth:e,strokeLineJoin:C,strokeLineCap:r,strokeMiterLimit:i}}static pointsToStroke(e,n,C,r){const i=[],o=[],s=[];if(Ee.pointsToStrokeWithBuffers(e,n,C,r,i,o,s)===0)return null;const a=new b0;return a.setAttribute("position",new o0(i,3)),a.setAttribute("normal",new o0(o,3)),a.setAttribute("uv",new o0(s,2)),a}static pointsToStrokeWithBuffers(e,n,C,r,i,o,s,a){const d=new y1,g=new y1,p=new y1,A=new y1,w=new y1,x=new y1,y=new y1,m=new y1,v=new y1,E=new y1,k=new y1,I=new y1,Q=new y1,R=new y1,T=new y1,j=new y1,q=new y1;C=C!==void 0?C:12,r=r!==void 0?r:.001,a=a!==void 0?a:0,e=L1(e);const _=e.length;if(_<2)return 0;const P=e[0].equals(e[_-1]);let K,g1=e[0],X;const i1=n.strokeWidth/2,C1=1/(_-1);let u1=0,U,t1,n1,d1,x1=!1,U1=0,$=a*3,O=a*2;W(e[0],e[1],d).multiplyScalar(i1),m.copy(e[0]).sub(d),v.copy(e[0]).add(d),E.copy(m),k.copy(v);for(let r1=1;r1<_;r1++){K=e[r1],r1===_-1?P?X=e[1]:X=void 0:X=e[r1+1];const a1=d;if(W(g1,K,a1),p.copy(a1).multiplyScalar(i1),I.copy(K).sub(p),Q.copy(K).add(p),U=u1+C1,t1=!1,X!==void 0){W(K,X,g),p.copy(g).multiplyScalar(i1),R.copy(K).sub(p),T.copy(K).add(p),n1=!0,p.subVectors(X,g1),a1.dot(p)<0&&(n1=!1),r1===1&&(x1=n1),p.subVectors(X,K),p.normalize();const f1=Math.abs(a1.dot(p));if(f1>Number.EPSILON){const b1=i1/f1;p.multiplyScalar(-b1),A.subVectors(K,g1),w.copy(A).setLength(b1).add(p),j.copy(w).negate();const e1=w.length(),S=A.length();A.divideScalar(S),x.subVectors(X,K);const D=x.length();switch(x.divideScalar(D),A.dot(j)=r&&f1.push(r1[b1]);return f1.push(r1[r1.length-1]),f1}}}const FH=new Ee,Ci=new q2,r3=new G;async function WH(t,e,n=n8,C,r,i,o){const s=new D8;s.matrixAutoUpdate=!1;const a=await FH.loadAsync(t);Ci.makeEmpty();for(const p of a.paths){const A=Ee.createShapes(p),w=new n;w.transparent=!0,w.depthWrite=!1,w.toneMapped=!1,w.clippingPlanes=C;for(const x of A){const y=new xe(x);y.computeBoundingBox(),Ci.union(y.boundingBox);const m=new n2(y,w);m.matrixAutoUpdate=!1,m.raycast=Me(m,m.raycast,i,r,o),G3(m,e,o),m.userData.color=p.color,m.scale.y=-1,m.updateMatrix(),s.add(m)}}Ci.getSize(r3);const d=r3.x/r3.y,g=1/r3.y;return s.scale.set(1,1,1).multiplyScalar(g),Ci.getCenter(r3),r3.y*=-1,s.position.copy(r3).negate().multiplyScalar(g),s.updateMatrix(),Object.assign(s,{aspectRatio:d})}const Dv=new J1,GH=["color","opacity"];u.forwardRef((t,e)=>{const n=d6(),C=u.useRef(null),r=_5(C);F8(n,r,L6);const i=m6(n,r),o=T5(i),s=R4(),a=S5(s,o,r.size,r),d=b4(t.panelMaterialClass,t),g=S9(s9.Panel,t.zIndexOffset,d);R5(n,o,r.size,void 0,r.borderInset,a,g,s,d,w6);const p=B5(),A=Wn(s,p),w=S9(s9.Svg,void 0,void 0,g),x=zk(WH,t.src,r.cameraDistance,t.materialClass,A,s,p,w),y=i4(n,GH);h9(()=>{var _;const R=y.value;if(R==null)return;const T=R("color"),j=R("opacity");let q;Array.isArray(T)?q=Dv.setRGB(...T):T!=null&&(q=Dv.set(T)),(_=x.value)==null||_.traverse(P=>{if(!(P instanceof n2))return;P.receiveShadow=t.receiveShadow??!1,P.castShadow=t.castShadow??!1;const K=P.material;K.color.copy(q??P.userData.color),K.opacity=j??1})},[x,t.color,t.receiveShadow,t.castShadow]);const m=u.useMemo(()=>V2(()=>{var R;return(R=x.value)==null?void 0:R.aspectRatio}),[x]),v=Gn();zn(n,v,r,o,a,t.scrollbarPanelMaterialClass,s,w),f6(n,t),g6(n,t),p6(n,t);const E=v6(n,t),k=k6(n,t);n4(n,"aspectRatio",m),h6(n),x6(t,r.size),Q5(t,a);const I=u.useMemo(()=>{const R=new D8;return R.matrixAutoUpdate=!1,R},[]);h9(()=>{var q;const[R,T,j]=Vk(r.size,r.paddingInset,r.borderInset,r.pixelSize,((q=x.value)==null?void 0:q.aspectRatio)??1);I.position.set(R,T,0),I.scale.setScalar(j),I.updateMatrix()},[r,x]),h9(()=>{const R=x.value;if(R!=null)return I.add(R),()=>I.remove(R)},[x,I]),h9(()=>void(I.visible=!a.value),[]);const Q=O3(r.size,r,g,p);return b5(e,r,Q,v),h.jsxs(A6,{groupRef:C,matrix:i,handlers:t,hoverHandlers:E,activeHandlers:k,children:[h.jsxs(On,{listeners:t,node:r,scrollPosition:v,children:[h.jsx("primitive",{object:Q}),h.jsx("primitive",{object:I})]}),h.jsx(Vn,{globalMatrix:o,node:r,orderInfo:w,scrollPosition:v,children:t.children})]})});u.forwardRef((t,e)=>{const n=d6(),C=u.useRef(null),r=_5(C);F8(n,r,L6);const i=m6(n,r),o=B5(),s=T5(i),a=R4(),d=S5(a,s,r.size,r);x6(t,r.size),Q5(t,d);const g=b4(t.panelMaterialClass,t),p=S9(s9.Panel,t.zIndexOffset,g);R5(n,s,r.size,void 0,r.borderInset,d,p,a,g,w6);const A=Zk(n,t.children,s,r,d,a,p);f6(n,t),g6(n,t),p6(n,t);const w=v6(n,t),x=k6(n,t);n4(n,"measureFunc",A),h6(n);const y=O3(r.size,r,p,o);return b5(e,r,y),h.jsx(A6,{groupRef:C,matrix:i,handlers:t,hoverHandlers:w,activeHandlers:x,children:h.jsx("primitive",{object:y})})});function OH(t,e,n){const C=u.useMemo(()=>K4(()=>n.value),[n]);ke(e,r=>{r.focus!=null&&C(t,r.focus)})}const zH=U0([0,0,0,0]),Pv=1.5,Nv=(t,e,n,C)=>{t=="color"&&C("backgroundColor",e)};function VH(t,e,n,C,r,i,o){const s=o??bh(),a=b4(void 0,{castShadow:!1,receiveShadow:!1}),d=S9(s9.Panel,void 0,a,r),g=u.useMemo(()=>U0(void 0),[]),p=u.useMemo(()=>$0(()=>{const y=n.value;y==null&&(g.value=void 0),g.value=y;const m=setInterval(()=>g.value=g.peek()==null?y:void 0,500);return()=>clearInterval(m)}),[g,n]);u.useEffect(()=>p,[p]);const A=u.useMemo(()=>new Rh(s(d.majorIndex,a),e,V2(()=>{const y=g.value;return y==null?[0,0]:[Pv,y[2]]}),V2(()=>{const y=g.value;return y==null?[0,0]:[y[0]-Pv/2,y[1]]}),zH,i,C,d.minorIndex),[s,d,a,e,i,C,g]),w=t.length;F8(t,A,Nv),os(t,A,Nv);const x=t.length;for(let y=w;y()=>A.destroy(),[A])}const $H=U0([0,0,0,0]);function YH(t,e,n,C,r,i){const o=i??bh(),s=u.useMemo(()=>[],[]),a=b4(void 0,{castShadow:!1,receiveShadow:!1}),d=S9(s9.Panel,void 0,a,C),g=u.useMemo(()=>$0(()=>{const p=e.value,A=p.length;for(let x=0;x{if(Q==="backgroundColor")return 11851775;if(Q==="backgroundOpacity")return 1};const I=$0(()=>{k.active.value&&(k.setProperty("backgroundColor",11851775),k.setProperty("backgroundOpacity",1))});s[x]=y={unsubscribe:I,panel:k,offset:E,size:v}}const m=p[x];y.size.value=m.size,y.offset.value=m.position}const w=s.length;for(let x=A;x()=>{g();const p=s.length;for(let A=0;A{const n=u.useMemo(()=>U0(t.defaultValue??""),[]),C=u.useMemo(()=>t.value??n,[t.value,n]),r=u.useRef(t.onValueChange);r.current=t.onValueChange;const i=u.useRef(void 0),o=t.value!=null,s=u.useCallback(i1=>{var C1;o||(n.value=i1),(C1=r.current)==null||C1.call(r,i1)},[n,o]),a=u.useMemo(()=>U0(void 0),[]),d=qH(C,a,s,t.multiline);d.tabIndex=t.tabIndex??0,d.disabled=t.disabled??!1;const g=u.useMemo(()=>U0(document.activeElement===d),[]);u.useEffect(()=>{const i1=()=>g.value=document.activeElement===d;return d.addEventListener("focus",i1),d.addEventListener("blur",i1),()=>{d.removeEventListener("focus",i1),d.removeEventListener("blur",i1)}},[d,g]);const p=u.useCallback(i1=>{g.peek()!==i1&&(i1?d.focus():d.blur())},[g,d]),A=d6(),w=u.useRef(null),x=_5(w);F8(A,x,L6);const y=m6(A,x),m=B5(),v=T5(y),E=R4(),k=S5(E,v,x.size,x);x6(t,x.size),Q5(t,k);const I=b4(t.panelMaterialClass,t),Q=S9(s9.Panel,t.zIndexOffset,I);R5(A,v,x.size,void 0,x.borderInset,k,Q,E,I,w6);const R=u.useMemo(()=>U0([]),[]),T=u.useMemo(()=>U0(void 0),[]),j=YH(v,R,k,Q,E);VH(A,v,T,k,Q,E);const q=O3(x.size,x,Q,m),_=u.useRef(),P=Zk(A,C,v,x,k,E,j,a,R,T,_),K=t.disabled??!1;f6(A,t),g6(A,t),p6(A,t);const g1=v6(A,t,K?void 0:"text"),X=k6(A,t);return OH(A,t,g),n4(A,"measureFunc",P),h6(A),u.useImperativeHandle(e,()=>({focus:()=>p(!0),value:C,borderInset:x.borderInset,paddingInset:x.paddingInset,pixelSize:x.pixelSize,center:x.relativeCenter,size:x.size,interactionPanel:q}),[q,x,C,p]),h.jsx(A6,{groupRef:w,matrix:y,handlers:t,inputHandlers:K?void 0:{onPointerDown:i1=>{var u1;if((u1=t.onPointerDown)==null||u1.call(t,i1),i1.defaultPrevented||i1.uv==null||_.current==null)return;JH(i1.nativeEvent),i1.stopPropagation();const C1=Hv(x,i1.uv,_.current);i.current=C1,setTimeout(()=>{p(!0),a.value=[C1,C1],d.setSelectionRange(C1,C1)})},onPointerUp:i1=>{var C1;(C1=t.onPointerUp)==null||C1.call(t,i1),i.current=void 0},onPointerMove:i1=>{var n1;if((n1=t.onPointerMove)==null||n1.call(t,i1),i.current==null||i1.uv==null||_.current==null)return;i1.stopPropagation();const C1=Hv(x,i1.uv,_.current),u1=Math.min(i.current,C1),U=Math.max(i.current,C1),t1=i.current{p(!0),a.value=[u1,U],d.setSelectionRange(u1,U,t1)})}},hoverHandlers:g1,activeHandlers:X,children:h.jsx("primitive",{object:q})})});function qH(t,e,n,C=!1){const r=u.useMemo(()=>{const i=document.createElement(C?"textarea":"input"),o=i.style;o.setProperty("position","absolute"),o.setProperty("left","-1000vw"),o.setProperty("pointerEvents","none"),o.setProperty("opacity","0"),i.addEventListener("input",()=>{n==null||n(i.value),s()});const s=()=>{const{selectionStart:a,selectionEnd:d}=i;if(a==null||d==null){e.value=void 0;return}const g=e.peek();g!=null&&g[0]===a&&g[1]===d||(e.value=[a,d])};return i.addEventListener("keydown",s),i.addEventListener("keyup",s),i.addEventListener("blur",()=>e.value=void 0),document.body.appendChild(i),i},[n,e,C]);return h9(()=>{r.value=co(t)},[t]),u.useEffect(()=>()=>r.remove(),[r]),r}function Hv({size:t,borderInset:e,paddingInset:n},C,r){const[i,o]=t.peek(),[s,,,a]=e.peek(),[d,,,g]=n.peek(),p=C.x*i-a-g,A=-C.y*o+s+d;return r.getCharIndex(p,A)}const KH=u.forwardRef((t,e)=>{const n=Un(),C=t.pixelSize??SM,[r,i]=u.useMemo(()=>{const{width:d,height:g}=n.getState().size;return[U0(d*C),U0(g*C)]},[C,n]);u.useEffect(()=>{const d=g=>{Qk(()=>{r.value=g.size.width*C,i.value=g.size.height*C})};return d(n.getState()),n.subscribe(d)},[C,r,i,n]);const o=kh(d=>d.camera),s=u.useRef(null);y5(()=>{if(s.current==null)return;let d=1;o instanceof X2&&(d=i.peek()/(2*Math.tan(o.fov/360*Math.PI))),s.current.position.z=-d,s.current.updateMatrix()});const a=t.attachCamera??!0;return h.jsxs(h.Fragment,{children:[a&&h.jsx("primitive",{object:o}),Bk(h.jsx("group",{ref:s,matrixAutoUpdate:!1,children:h.jsx(NH,{ref:e,...t,sizeX:r,sizeY:i,children:t.children})}),o)]})}),jv=new J1,ZH=["color","opacity"],ej=new Ee,f=u.forwardRef((t,e)=>{const n=d6(),C=u.useRef(null),r=_5(C);F8(n,r,L6);const i=m6(n,r),o=T5(i),s=R4(),a=S5(s,o,r.size,r),d=b4(t.panelMaterialClass,t),g=S9(s9.Panel,t.zIndexOffset,d);R5(n,o,r.size,void 0,r.borderInset,a,g,s,d,w6);const p=B5(),A=Wn(s,p),w=S9(s9.Svg,void 0,void 0,g),x=u.useMemo(()=>{const I=new D8;I.matrixAutoUpdate=!1;const Q=ej.parse(t.text);for(const R of Q.paths){const T=Ee.createShapes(R),j=new(t.materialClass??n8);j.transparent=!0,j.depthWrite=!1,j.toneMapped=!1,j.clippingPlanes=A;for(const q of T){const _=new xe(q);_.computeBoundingBox();const P=new n2(_,j);P.matrixAutoUpdate=!1,P.raycast=Me(P,P.raycast,p,s,w),G3(P,r.cameraDistance,w),P.userData.color=R.color,P.scale.y=-1,P.updateMatrix(),I.add(P)}}return I},[t.text,t.materialClass,A,p,s,r,w]),y=i4(n,ZH);h9(()=>{const I=y.value;if(I==null)return;const Q=I("color"),R=I("opacity");let T;Array.isArray(Q)?T=jv.setRGB(...Q):Q!=null&&(T=jv.set(Q)),x.traverse(j=>{if(!(j instanceof n2))return;j.receiveShadow=t.receiveShadow??!1,j.castShadow=t.castShadow??!1;const q=j.material;q.color.copy(T??j.userData.color),q.opacity=R??1})},[x,t.color,t.receiveShadow,t.castShadow]);const m=Gn();zn(n,m,r,o,a,t.scrollbarPanelMaterialClass,s,w),n4(n,"width",t.svgWidth),n4(n,"height",t.svgHeight),f6(n,t),g6(n,t),p6(n,t);const v=v6(n,t),E=k6(n,t);n4(n,"aspectRatio",t.svgWidth/t.svgHeight),h6(n),x6(t,r.size),Q5(t,a),h9(()=>{const I=t.svgWidth/t.svgHeight,[Q,R,T]=Vk(r.size,r.paddingInset,r.borderInset,r.pixelSize,t.svgWidth/t.svgHeight);x.position.set(Q-T*I/2,R+T/2,0),x.scale.setScalar(T/t.svgHeight),x.updateMatrix()},[r,x,t.svgWidth,t.svgHeight]),h9(()=>void(x.visible=!a.value),[]);const k=O3(r.size,r,g,p);return b5(e,r,k,m),h.jsxs(A6,{groupRef:C,matrix:i,handlers:t,hoverHandlers:v,activeHandlers:E,children:[h.jsxs(On,{listeners:t,node:r,scrollPosition:m,children:[h.jsx("primitive",{object:k}),h.jsx("primitive",{object:x})]}),h.jsx(Vn,{globalMatrix:o,node:r,orderInfo:w,scrollPosition:m,children:t.children})]})});u.forwardRef(({children:t,resolution:e=1,frames:n=1/0,renderPriority:C=0,eventPriority:r=0,...i},o)=>{const s=u.useMemo(()=>new U8(1,1,{minFilter:v2,magFilter:v2,type:Q3}),[]),a=u.useRef(null),d=u.useMemo(()=>({events:{compute:tj.bind(null,a),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);u.useEffect(()=>{if(a.current==null)return;const{size:p}=a.current,A=$0(()=>{const[w,x]=p.value;s.setSize(w,x),d.size.width=w,d.size.height=x});return()=>{A(),s.dispose()}},[s,d]),u.useImperativeHandle(o,()=>a.current,[]);const g=u.useMemo(()=>new fn,[]);return h.jsxs(h.Fragment,{children:[Bk(h.jsxs(nj,{imageRef:a,renderPriority:C,frames:n,fbo:s,children:[t,h.jsx("group",{onPointerOver:()=>null})]}),g,d),h.jsx(kH,{...i,src:s.texture,fit:"fill",keepAspectRatio:!1,ref:a})]})});function tj({current:t},e,n,C){var o,s,a;if(t==null||C==null)return!1;C.raycaster.camera||(a=(s=C.events).compute)==null||a.call(s,e,C,(o=C.previousRoot)==null?void 0:o.getState());const[r]=C.raycaster.intersectObject(t.interactionPanel);if(!r)return!1;const i=r.uv;if(!i)return!1;n.raycaster.setFromCamera(n.pointer.set(i.x*2-1,i.y*2-1),n.camera)}function nj({frames:t,renderPriority:e,children:n,fbo:C,imageRef:r}){const i=Un();u.useEffect(()=>{if(r.current==null)return;const{size:d}=r.current;return $0(()=>{const[g,p]=d.value;i.setState({size:{width:g,height:p,top:0,left:0}})})});let o=0,s,a;return y5(d=>{(t===1/0||oh.jsx(f,{...t,ref:e,text:Cj,svgWidth:24,svgHeight:24})),ij='',oj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ij,svgWidth:24,svgHeight:24})),sj='',lj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sj,svgWidth:24,svgHeight:24})),aj='',cj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aj,svgWidth:24,svgHeight:24})),uj='',dj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uj,svgWidth:24,svgHeight:24})),hj='',fj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hj,svgWidth:24,svgHeight:24})),gj='',pj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gj,svgWidth:24,svgHeight:24})),Aj='',vj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Aj,svgWidth:24,svgHeight:24})),Lj='',wj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lj,svgWidth:24,svgHeight:24})),xj='',mj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xj,svgWidth:24,svgHeight:24})),kj='',Mj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kj,svgWidth:24,svgHeight:24})),Ej='',yj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ej,svgWidth:24,svgHeight:24})),Ij='',Bj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ij,svgWidth:24,svgHeight:24})),Sj='',_j=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sj,svgWidth:24,svgHeight:24})),Rj='',bj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rj,svgWidth:24,svgHeight:24})),Qj='',Tj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qj,svgWidth:24,svgHeight:24})),Dj='',Pj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dj,svgWidth:24,svgHeight:24})),Nj='',Hj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nj,svgWidth:24,svgHeight:24})),jj='',Uj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jj,svgWidth:24,svgHeight:24})),Fj='',Wj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fj,svgWidth:24,svgHeight:24})),Gj='',Oj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gj,svgWidth:24,svgHeight:24})),zj='',Vj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zj,svgWidth:24,svgHeight:24})),$j='',Yj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$j,svgWidth:24,svgHeight:24})),Xj='',Jj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xj,svgWidth:24,svgHeight:24})),qj='',Kj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qj,svgWidth:24,svgHeight:24})),Zj='',eU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zj,svgWidth:24,svgHeight:24})),tU='',nU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tU,svgWidth:24,svgHeight:24})),CU='',rU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CU,svgWidth:24,svgHeight:24})),iU='',oU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iU,svgWidth:24,svgHeight:24})),sU='',lU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sU,svgWidth:24,svgHeight:24})),aU='',cU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aU,svgWidth:24,svgHeight:24})),uU='',dU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uU,svgWidth:24,svgHeight:24})),hU='',fU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hU,svgWidth:24,svgHeight:24})),gU='',pU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gU,svgWidth:24,svgHeight:24})),AU='',vU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AU,svgWidth:24,svgHeight:24})),LU='',wU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LU,svgWidth:24,svgHeight:24})),xU='',mU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xU,svgWidth:24,svgHeight:24})),kU='',MU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kU,svgWidth:24,svgHeight:24})),EU='',yU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EU,svgWidth:24,svgHeight:24})),IU='',BU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IU,svgWidth:24,svgHeight:24})),SU='',_U=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SU,svgWidth:24,svgHeight:24})),RU='',bU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RU,svgWidth:24,svgHeight:24})),QU='',TU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QU,svgWidth:24,svgHeight:24})),DU='',PU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DU,svgWidth:24,svgHeight:24})),NU='',HU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NU,svgWidth:24,svgHeight:24})),jU='',UU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jU,svgWidth:24,svgHeight:24})),FU='',WU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FU,svgWidth:24,svgHeight:24})),GU='',OU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GU,svgWidth:24,svgHeight:24})),zU='',VU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zU,svgWidth:24,svgHeight:24})),$U='',YU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$U,svgWidth:24,svgHeight:24})),XU='',JU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XU,svgWidth:24,svgHeight:24})),qU='',KU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qU,svgWidth:24,svgHeight:24})),ZU='',eF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZU,svgWidth:24,svgHeight:24})),tF='',nF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tF,svgWidth:24,svgHeight:24})),CF='',rF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CF,svgWidth:24,svgHeight:24})),iF='',oF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iF,svgWidth:24,svgHeight:24})),sF='',lF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sF,svgWidth:24,svgHeight:24})),aF='',cF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aF,svgWidth:24,svgHeight:24})),uF='',dF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uF,svgWidth:24,svgHeight:24})),hF='',fF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hF,svgWidth:24,svgHeight:24})),gF='',pF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gF,svgWidth:24,svgHeight:24})),AF='',vF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AF,svgWidth:24,svgHeight:24})),LF='',wF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LF,svgWidth:24,svgHeight:24})),xF='',mF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xF,svgWidth:24,svgHeight:24})),kF='',MF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kF,svgWidth:24,svgHeight:24})),EF='',yF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EF,svgWidth:24,svgHeight:24})),IF='',BF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IF,svgWidth:24,svgHeight:24})),SF='',_F=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SF,svgWidth:24,svgHeight:24})),RF='',bF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RF,svgWidth:24,svgHeight:24})),QF='',TF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QF,svgWidth:24,svgHeight:24})),DF='',PF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DF,svgWidth:24,svgHeight:24})),NF='',HF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NF,svgWidth:24,svgHeight:24})),jF='',UF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jF,svgWidth:24,svgHeight:24})),FF='',WF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FF,svgWidth:24,svgHeight:24})),GF='',OF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GF,svgWidth:24,svgHeight:24})),zF='',VF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zF,svgWidth:24,svgHeight:24})),$F='',YF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$F,svgWidth:24,svgHeight:24})),XF='',JF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XF,svgWidth:24,svgHeight:24})),qF='',KF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qF,svgWidth:24,svgHeight:24})),ZF='',eW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZF,svgWidth:24,svgHeight:24})),tW='',nW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tW,svgWidth:24,svgHeight:24})),CW='',rW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CW,svgWidth:24,svgHeight:24})),iW='',oW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iW,svgWidth:24,svgHeight:24})),sW='',lW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sW,svgWidth:24,svgHeight:24})),aW='',cW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aW,svgWidth:24,svgHeight:24})),uW='',dW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uW,svgWidth:24,svgHeight:24})),hW='',fW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hW,svgWidth:24,svgHeight:24})),gW='',pW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gW,svgWidth:24,svgHeight:24})),AW='',vW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AW,svgWidth:24,svgHeight:24})),LW='',wW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LW,svgWidth:24,svgHeight:24})),xW='',mW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xW,svgWidth:24,svgHeight:24})),kW='',MW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kW,svgWidth:24,svgHeight:24})),EW='',yW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EW,svgWidth:24,svgHeight:24})),IW='',BW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IW,svgWidth:24,svgHeight:24})),SW='',_W=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SW,svgWidth:24,svgHeight:24})),RW='',bW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RW,svgWidth:24,svgHeight:24})),QW='',TW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QW,svgWidth:24,svgHeight:24})),DW='',PW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DW,svgWidth:24,svgHeight:24})),NW='',HW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NW,svgWidth:24,svgHeight:24})),jW='',UW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jW,svgWidth:24,svgHeight:24})),FW='',WW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FW,svgWidth:24,svgHeight:24})),GW='',OW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GW,svgWidth:24,svgHeight:24})),zW='',VW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zW,svgWidth:24,svgHeight:24})),$W='',YW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$W,svgWidth:24,svgHeight:24})),XW='',JW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XW,svgWidth:24,svgHeight:24})),qW='',KW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qW,svgWidth:24,svgHeight:24})),ZW='',eG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZW,svgWidth:24,svgHeight:24})),tG='',nG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tG,svgWidth:24,svgHeight:24})),CG='',rG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CG,svgWidth:24,svgHeight:24})),iG='',oG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iG,svgWidth:24,svgHeight:24})),sG='',lG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sG,svgWidth:24,svgHeight:24})),aG='',cG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aG,svgWidth:24,svgHeight:24})),uG='',dG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uG,svgWidth:24,svgHeight:24})),hG='',fG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hG,svgWidth:24,svgHeight:24})),gG='',pG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gG,svgWidth:24,svgHeight:24})),AG='',vG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AG,svgWidth:24,svgHeight:24})),LG='',wG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LG,svgWidth:24,svgHeight:24})),xG='',mG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xG,svgWidth:24,svgHeight:24})),kG='',MG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kG,svgWidth:24,svgHeight:24})),EG='',yG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EG,svgWidth:24,svgHeight:24})),IG='',BG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IG,svgWidth:24,svgHeight:24})),SG='',_G=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SG,svgWidth:24,svgHeight:24})),RG='',bG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RG,svgWidth:24,svgHeight:24})),QG='',TG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QG,svgWidth:24,svgHeight:24})),DG='',PG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DG,svgWidth:24,svgHeight:24})),NG='',HG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NG,svgWidth:24,svgHeight:24})),jG='',UG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jG,svgWidth:24,svgHeight:24})),FG='',WG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FG,svgWidth:24,svgHeight:24})),GG='',OG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GG,svgWidth:24,svgHeight:24})),zG='',VG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zG,svgWidth:24,svgHeight:24})),$G='',YG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$G,svgWidth:24,svgHeight:24})),XG='',JG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XG,svgWidth:24,svgHeight:24})),qG='',KG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qG,svgWidth:24,svgHeight:24})),ZG='',eO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZG,svgWidth:24,svgHeight:24})),tO='',nO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tO,svgWidth:24,svgHeight:24})),CO='',rO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CO,svgWidth:24,svgHeight:24})),iO='',oO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iO,svgWidth:24,svgHeight:24})),sO='',lO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sO,svgWidth:24,svgHeight:24})),aO='',cO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aO,svgWidth:24,svgHeight:24})),uO='',dO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uO,svgWidth:24,svgHeight:24})),hO='',fO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hO,svgWidth:24,svgHeight:24})),gO='',pO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gO,svgWidth:24,svgHeight:24})),AO='',vO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AO,svgWidth:24,svgHeight:24})),LO='',wO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LO,svgWidth:24,svgHeight:24})),xO='',mO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xO,svgWidth:24,svgHeight:24})),kO='',MO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kO,svgWidth:24,svgHeight:24})),EO='',yO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EO,svgWidth:24,svgHeight:24})),IO='',BO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IO,svgWidth:24,svgHeight:24})),SO='',_O=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SO,svgWidth:24,svgHeight:24})),RO='',bO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RO,svgWidth:24,svgHeight:24})),QO='',TO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QO,svgWidth:24,svgHeight:24})),DO='',PO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DO,svgWidth:24,svgHeight:24})),NO='',HO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NO,svgWidth:24,svgHeight:24})),jO='',UO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jO,svgWidth:24,svgHeight:24})),FO='',WO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FO,svgWidth:24,svgHeight:24})),GO='',OO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GO,svgWidth:24,svgHeight:24})),zO='',VO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zO,svgWidth:24,svgHeight:24})),$O='',YO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$O,svgWidth:24,svgHeight:24})),XO='',JO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XO,svgWidth:24,svgHeight:24})),qO='',KO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qO,svgWidth:24,svgHeight:24})),ZO='',ez=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZO,svgWidth:24,svgHeight:24})),tz='',nz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tz,svgWidth:24,svgHeight:24})),Cz='',rz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cz,svgWidth:24,svgHeight:24})),iz='',oz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iz,svgWidth:24,svgHeight:24})),sz='',lz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sz,svgWidth:24,svgHeight:24})),az='',cz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:az,svgWidth:24,svgHeight:24})),uz='',dz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uz,svgWidth:24,svgHeight:24})),hz='',fz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hz,svgWidth:24,svgHeight:24})),gz='',pz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gz,svgWidth:24,svgHeight:24})),Az='',vz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Az,svgWidth:24,svgHeight:24})),Lz='',wz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lz,svgWidth:24,svgHeight:24})),xz='',mz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xz,svgWidth:24,svgHeight:24})),kz='',Mz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kz,svgWidth:24,svgHeight:24})),Ez='',yz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ez,svgWidth:24,svgHeight:24})),Iz='',Bz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Iz,svgWidth:24,svgHeight:24})),Sz='',_z=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sz,svgWidth:24,svgHeight:24})),Rz='',bz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rz,svgWidth:24,svgHeight:24})),Qz='',Tz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qz,svgWidth:24,svgHeight:24})),Dz='',Pz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dz,svgWidth:24,svgHeight:24})),Nz='',Hz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nz,svgWidth:24,svgHeight:24})),jz='',Uz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jz,svgWidth:24,svgHeight:24})),Fz='',Wz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fz,svgWidth:24,svgHeight:24})),Gz='',Oz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gz,svgWidth:24,svgHeight:24})),zz='',Vz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zz,svgWidth:24,svgHeight:24})),$z='',Yz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$z,svgWidth:24,svgHeight:24})),Xz='',Jz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xz,svgWidth:24,svgHeight:24})),qz='',Kz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qz,svgWidth:24,svgHeight:24})),Zz='',eV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zz,svgWidth:24,svgHeight:24})),tV='',nV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tV,svgWidth:24,svgHeight:24})),CV='',rV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CV,svgWidth:24,svgHeight:24})),iV='',oV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iV,svgWidth:24,svgHeight:24})),sV='',lV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sV,svgWidth:24,svgHeight:24})),aV='',cV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aV,svgWidth:24,svgHeight:24})),uV='',dV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uV,svgWidth:24,svgHeight:24})),hV='',fV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hV,svgWidth:24,svgHeight:24})),gV='',pV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gV,svgWidth:24,svgHeight:24})),AV='',vV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AV,svgWidth:24,svgHeight:24})),LV='',wV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LV,svgWidth:24,svgHeight:24})),xV='',mV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xV,svgWidth:24,svgHeight:24})),kV='',MV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kV,svgWidth:24,svgHeight:24})),EV='',yV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EV,svgWidth:24,svgHeight:24})),IV='',BV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IV,svgWidth:24,svgHeight:24})),SV='',_V=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SV,svgWidth:24,svgHeight:24})),RV='',bV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RV,svgWidth:24,svgHeight:24})),QV='',TV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QV,svgWidth:24,svgHeight:24})),DV='',PV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DV,svgWidth:24,svgHeight:24})),NV='',HV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NV,svgWidth:24,svgHeight:24})),jV='',UV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jV,svgWidth:24,svgHeight:24})),FV='',WV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FV,svgWidth:24,svgHeight:24})),GV='',OV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GV,svgWidth:24,svgHeight:24})),zV='',VV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zV,svgWidth:24,svgHeight:24})),$V='',YV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$V,svgWidth:24,svgHeight:24})),XV='',JV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XV,svgWidth:24,svgHeight:24})),qV='',KV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qV,svgWidth:24,svgHeight:24})),ZV='',e$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZV,svgWidth:24,svgHeight:24})),t$='',n$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t$,svgWidth:24,svgHeight:24})),C$='',r$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C$,svgWidth:24,svgHeight:24})),i$='',o$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i$,svgWidth:24,svgHeight:24})),s$='',l$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s$,svgWidth:24,svgHeight:24})),a$='',c$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a$,svgWidth:24,svgHeight:24})),u$='',d$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u$,svgWidth:24,svgHeight:24})),h$='',f$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h$,svgWidth:24,svgHeight:24})),g$='',p$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g$,svgWidth:24,svgHeight:24})),A$='',v$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A$,svgWidth:24,svgHeight:24})),L$='',w$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L$,svgWidth:24,svgHeight:24})),x$='',m$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x$,svgWidth:24,svgHeight:24})),k$='',M$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k$,svgWidth:24,svgHeight:24})),E$='',y$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E$,svgWidth:24,svgHeight:24})),I$='',B$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I$,svgWidth:24,svgHeight:24})),S$='',_$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S$,svgWidth:24,svgHeight:24})),R$='',b$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R$,svgWidth:24,svgHeight:24})),Q$='',T$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q$,svgWidth:24,svgHeight:24})),D$='',P$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D$,svgWidth:24,svgHeight:24})),N$='',H$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N$,svgWidth:24,svgHeight:24})),j$='',U$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j$,svgWidth:24,svgHeight:24})),F$='',W$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F$,svgWidth:24,svgHeight:24})),G$='',O$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G$,svgWidth:24,svgHeight:24})),z$='',V$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z$,svgWidth:24,svgHeight:24})),$$='',Y$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$$,svgWidth:24,svgHeight:24})),X$='',J$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X$,svgWidth:24,svgHeight:24})),q$='',K$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q$,svgWidth:24,svgHeight:24})),Z$='',eY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z$,svgWidth:24,svgHeight:24})),tY='',nY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tY,svgWidth:24,svgHeight:24})),CY='',rY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CY,svgWidth:24,svgHeight:24})),iY='',oY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iY,svgWidth:24,svgHeight:24})),sY='',lY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sY,svgWidth:24,svgHeight:24})),aY='',cY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aY,svgWidth:24,svgHeight:24})),uY='',dY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uY,svgWidth:24,svgHeight:24})),hY='',fY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hY,svgWidth:24,svgHeight:24})),gY='',pY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gY,svgWidth:24,svgHeight:24})),AY='',vY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AY,svgWidth:24,svgHeight:24})),LY='',wY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LY,svgWidth:24,svgHeight:24})),xY='',mY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xY,svgWidth:24,svgHeight:24})),kY='',MY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kY,svgWidth:24,svgHeight:24})),EY='',yY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EY,svgWidth:24,svgHeight:24})),IY='',BY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IY,svgWidth:24,svgHeight:24})),SY='',_Y=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SY,svgWidth:24,svgHeight:24})),RY='',bY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RY,svgWidth:24,svgHeight:24})),QY='',TY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QY,svgWidth:24,svgHeight:24})),DY='',PY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DY,svgWidth:24,svgHeight:24})),NY='',HY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NY,svgWidth:24,svgHeight:24})),jY='',UY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jY,svgWidth:24,svgHeight:24})),FY='',WY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FY,svgWidth:24,svgHeight:24})),GY='',OY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GY,svgWidth:24,svgHeight:24})),zY='',VY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zY,svgWidth:24,svgHeight:24})),$Y='',YY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$Y,svgWidth:24,svgHeight:24})),XY='',JY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XY,svgWidth:24,svgHeight:24})),qY='',KY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qY,svgWidth:24,svgHeight:24})),ZY='',eX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZY,svgWidth:24,svgHeight:24})),tX='',nX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tX,svgWidth:24,svgHeight:24})),CX='',rX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CX,svgWidth:24,svgHeight:24})),iX='',oX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iX,svgWidth:24,svgHeight:24})),sX='',lX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sX,svgWidth:24,svgHeight:24})),aX='',cX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aX,svgWidth:24,svgHeight:24})),uX='',dX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uX,svgWidth:24,svgHeight:24})),hX='',fX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hX,svgWidth:24,svgHeight:24})),gX='',pX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gX,svgWidth:24,svgHeight:24})),AX='',vX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AX,svgWidth:24,svgHeight:24})),LX='',wX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LX,svgWidth:24,svgHeight:24})),xX='',mX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xX,svgWidth:24,svgHeight:24})),kX='',MX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kX,svgWidth:24,svgHeight:24})),EX='',yX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EX,svgWidth:24,svgHeight:24})),IX='',BX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IX,svgWidth:24,svgHeight:24})),SX='',_X=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SX,svgWidth:24,svgHeight:24})),RX='',bX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RX,svgWidth:24,svgHeight:24})),QX='',TX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QX,svgWidth:24,svgHeight:24})),DX='',PX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DX,svgWidth:24,svgHeight:24})),NX='',HX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NX,svgWidth:24,svgHeight:24})),jX='',UX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jX,svgWidth:24,svgHeight:24})),FX='',WX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FX,svgWidth:24,svgHeight:24})),GX='',OX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GX,svgWidth:24,svgHeight:24})),zX='',VX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zX,svgWidth:24,svgHeight:24})),$X='',YX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$X,svgWidth:24,svgHeight:24})),XX='',JX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XX,svgWidth:24,svgHeight:24})),qX='',KX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qX,svgWidth:24,svgHeight:24})),ZX='',eJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZX,svgWidth:24,svgHeight:24})),tJ='',nJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tJ,svgWidth:24,svgHeight:24})),CJ='',rJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CJ,svgWidth:24,svgHeight:24})),iJ='',oJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iJ,svgWidth:24,svgHeight:24})),sJ='',lJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sJ,svgWidth:24,svgHeight:24})),aJ='',cJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aJ,svgWidth:24,svgHeight:24})),uJ='',dJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uJ,svgWidth:24,svgHeight:24})),hJ='',fJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hJ,svgWidth:24,svgHeight:24})),gJ='',pJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gJ,svgWidth:24,svgHeight:24})),AJ='',vJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AJ,svgWidth:24,svgHeight:24})),LJ='',wJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LJ,svgWidth:24,svgHeight:24})),xJ='',mJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xJ,svgWidth:24,svgHeight:24})),kJ='',MJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kJ,svgWidth:24,svgHeight:24})),EJ='',yJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EJ,svgWidth:24,svgHeight:24})),IJ='',BJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IJ,svgWidth:24,svgHeight:24})),SJ='',_J=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SJ,svgWidth:24,svgHeight:24})),RJ='',bJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RJ,svgWidth:24,svgHeight:24})),QJ='',TJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QJ,svgWidth:24,svgHeight:24})),DJ='',PJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DJ,svgWidth:24,svgHeight:24})),NJ='',HJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NJ,svgWidth:24,svgHeight:24})),jJ='',UJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jJ,svgWidth:24,svgHeight:24})),FJ='',WJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FJ,svgWidth:24,svgHeight:24})),GJ='',OJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GJ,svgWidth:24,svgHeight:24})),zJ='',VJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zJ,svgWidth:24,svgHeight:24})),$J='',YJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$J,svgWidth:24,svgHeight:24})),XJ='',JJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XJ,svgWidth:24,svgHeight:24})),qJ='',KJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qJ,svgWidth:24,svgHeight:24})),ZJ='',eq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZJ,svgWidth:24,svgHeight:24})),tq='',nq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tq,svgWidth:24,svgHeight:24})),Cq='',rq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cq,svgWidth:24,svgHeight:24})),iq='',oq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iq,svgWidth:24,svgHeight:24})),sq='',lq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sq,svgWidth:24,svgHeight:24})),aq='',cq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aq,svgWidth:24,svgHeight:24})),uq='',dq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uq,svgWidth:24,svgHeight:24})),hq='',fq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hq,svgWidth:24,svgHeight:24})),gq='',pq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gq,svgWidth:24,svgHeight:24})),Aq='',vq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Aq,svgWidth:24,svgHeight:24})),Lq='',wq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lq,svgWidth:24,svgHeight:24})),xq='',mq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xq,svgWidth:24,svgHeight:24})),kq='',Mq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kq,svgWidth:24,svgHeight:24})),Eq='',yq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Eq,svgWidth:24,svgHeight:24})),Iq='',Bq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Iq,svgWidth:24,svgHeight:24})),Sq='',_q=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sq,svgWidth:24,svgHeight:24})),Rq='',bq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rq,svgWidth:24,svgHeight:24})),Qq='',Tq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qq,svgWidth:24,svgHeight:24})),Dq='',Pq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dq,svgWidth:24,svgHeight:24})),Nq='',Hq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nq,svgWidth:24,svgHeight:24})),jq='',Uq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jq,svgWidth:24,svgHeight:24})),Fq='',Wq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fq,svgWidth:24,svgHeight:24})),Gq='',Oq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gq,svgWidth:24,svgHeight:24})),zq='',Vq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zq,svgWidth:24,svgHeight:24})),$q='',Yq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$q,svgWidth:24,svgHeight:24})),Xq='',Jq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xq,svgWidth:24,svgHeight:24})),qq='',Kq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qq,svgWidth:24,svgHeight:24})),Zq='',eK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zq,svgWidth:24,svgHeight:24})),tK='',nK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tK,svgWidth:24,svgHeight:24})),CK='',rK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CK,svgWidth:24,svgHeight:24})),iK='',oK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iK,svgWidth:24,svgHeight:24})),sK='',lK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sK,svgWidth:24,svgHeight:24})),aK='',cK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aK,svgWidth:24,svgHeight:24})),uK='',dK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uK,svgWidth:24,svgHeight:24})),hK='',fK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hK,svgWidth:24,svgHeight:24})),gK='',pK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gK,svgWidth:24,svgHeight:24})),AK='',vK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AK,svgWidth:24,svgHeight:24})),LK='',wK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LK,svgWidth:24,svgHeight:24})),xK='',mK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xK,svgWidth:24,svgHeight:24})),kK='',MK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kK,svgWidth:24,svgHeight:24})),EK='',yK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EK,svgWidth:24,svgHeight:24})),IK='',BK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IK,svgWidth:24,svgHeight:24})),SK='',_K=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SK,svgWidth:24,svgHeight:24})),RK='',bK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RK,svgWidth:24,svgHeight:24})),QK='',TK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QK,svgWidth:24,svgHeight:24})),DK='',PK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DK,svgWidth:24,svgHeight:24})),NK='',HK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NK,svgWidth:24,svgHeight:24})),jK='',UK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jK,svgWidth:24,svgHeight:24})),FK='',WK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FK,svgWidth:24,svgHeight:24})),GK='',OK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GK,svgWidth:24,svgHeight:24})),zK='',VK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zK,svgWidth:24,svgHeight:24})),$K='',YK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$K,svgWidth:24,svgHeight:24})),XK='',JK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XK,svgWidth:24,svgHeight:24})),qK='',KK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qK,svgWidth:24,svgHeight:24})),ZK='',eZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZK,svgWidth:24,svgHeight:24})),tZ='',nZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tZ,svgWidth:24,svgHeight:24})),CZ='',rZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CZ,svgWidth:24,svgHeight:24})),iZ='',oZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iZ,svgWidth:24,svgHeight:24})),sZ='',lZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sZ,svgWidth:24,svgHeight:24})),aZ='',cZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aZ,svgWidth:24,svgHeight:24})),uZ='',dZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uZ,svgWidth:24,svgHeight:24})),hZ='',fZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hZ,svgWidth:24,svgHeight:24})),gZ='',pZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gZ,svgWidth:24,svgHeight:24})),AZ='',vZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AZ,svgWidth:24,svgHeight:24})),LZ='',wZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LZ,svgWidth:24,svgHeight:24})),xZ='',mZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xZ,svgWidth:24,svgHeight:24})),kZ='',MZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kZ,svgWidth:24,svgHeight:24})),EZ='',yZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EZ,svgWidth:24,svgHeight:24})),IZ='',BZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IZ,svgWidth:24,svgHeight:24})),SZ='',_Z=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SZ,svgWidth:24,svgHeight:24})),RZ='',bZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RZ,svgWidth:24,svgHeight:24})),QZ='',TZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QZ,svgWidth:24,svgHeight:24})),DZ='',PZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DZ,svgWidth:24,svgHeight:24})),NZ='',HZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NZ,svgWidth:24,svgHeight:24})),jZ='',UZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jZ,svgWidth:24,svgHeight:24})),FZ='',WZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FZ,svgWidth:24,svgHeight:24})),GZ='',OZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GZ,svgWidth:24,svgHeight:24})),zZ='',VZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zZ,svgWidth:24,svgHeight:24})),$Z='',YZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$Z,svgWidth:24,svgHeight:24})),XZ='',JZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XZ,svgWidth:24,svgHeight:24})),qZ='',KZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qZ,svgWidth:24,svgHeight:24})),ZZ='',e11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZZ,svgWidth:24,svgHeight:24})),t11='',n11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t11,svgWidth:24,svgHeight:24})),C11='',r11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C11,svgWidth:24,svgHeight:24})),i11='',o11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i11,svgWidth:24,svgHeight:24})),s11='',l11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s11,svgWidth:24,svgHeight:24})),a11='',c11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a11,svgWidth:24,svgHeight:24})),u11='',d11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u11,svgWidth:24,svgHeight:24})),h11='',f11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h11,svgWidth:24,svgHeight:24})),g11='',p11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g11,svgWidth:24,svgHeight:24})),A11='',v11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A11,svgWidth:24,svgHeight:24})),L11='',w11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L11,svgWidth:24,svgHeight:24})),x11='',m11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x11,svgWidth:24,svgHeight:24})),k11='',M11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k11,svgWidth:24,svgHeight:24})),E11='',y11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E11,svgWidth:24,svgHeight:24})),I11='',B11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I11,svgWidth:24,svgHeight:24})),S11='',_11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S11,svgWidth:24,svgHeight:24})),R11='',b11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R11,svgWidth:24,svgHeight:24})),Q11='',T11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q11,svgWidth:24,svgHeight:24})),D11='',P11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D11,svgWidth:24,svgHeight:24})),N11='',H11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N11,svgWidth:24,svgHeight:24})),j11='',U11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j11,svgWidth:24,svgHeight:24})),F11='',W11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F11,svgWidth:24,svgHeight:24})),G11='',O11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G11,svgWidth:24,svgHeight:24})),z11='',V11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z11,svgWidth:24,svgHeight:24})),$11='',Y11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$11,svgWidth:24,svgHeight:24})),X11='',J11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X11,svgWidth:24,svgHeight:24})),q11='',K11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q11,svgWidth:24,svgHeight:24})),Z11='',e01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z11,svgWidth:24,svgHeight:24})),t01='',n01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t01,svgWidth:24,svgHeight:24})),C01='',r01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C01,svgWidth:24,svgHeight:24})),i01='',o01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i01,svgWidth:24,svgHeight:24})),s01='',l01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s01,svgWidth:24,svgHeight:24})),a01='',c01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a01,svgWidth:24,svgHeight:24})),u01='',d01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u01,svgWidth:24,svgHeight:24})),h01='',f01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h01,svgWidth:24,svgHeight:24})),g01='',p01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g01,svgWidth:24,svgHeight:24})),A01='',v01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A01,svgWidth:24,svgHeight:24})),L01='',w01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L01,svgWidth:24,svgHeight:24})),x01='',m01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x01,svgWidth:24,svgHeight:24})),k01='',M01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k01,svgWidth:24,svgHeight:24})),E01='',y01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E01,svgWidth:24,svgHeight:24})),I01='',B01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I01,svgWidth:24,svgHeight:24})),S01='',_01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S01,svgWidth:24,svgHeight:24})),R01='',b01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R01,svgWidth:24,svgHeight:24})),Q01='',T01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q01,svgWidth:24,svgHeight:24})),D01='',P01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D01,svgWidth:24,svgHeight:24})),N01='',H01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N01,svgWidth:24,svgHeight:24})),j01='',U01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j01,svgWidth:24,svgHeight:24})),F01='',W01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F01,svgWidth:24,svgHeight:24})),G01='',O01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G01,svgWidth:24,svgHeight:24})),z01='',V01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z01,svgWidth:24,svgHeight:24})),$01='',Y01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$01,svgWidth:24,svgHeight:24})),X01='',J01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X01,svgWidth:24,svgHeight:24})),q01='',K01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q01,svgWidth:24,svgHeight:24})),Z01='',e21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z01,svgWidth:24,svgHeight:24})),t21='',n21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t21,svgWidth:24,svgHeight:24})),C21='',r21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C21,svgWidth:24,svgHeight:24})),i21='',o21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i21,svgWidth:24,svgHeight:24})),s21='',l21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s21,svgWidth:24,svgHeight:24})),a21='',c21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a21,svgWidth:24,svgHeight:24})),u21='',d21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u21,svgWidth:24,svgHeight:24})),h21='',f21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h21,svgWidth:24,svgHeight:24})),g21='',p21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g21,svgWidth:24,svgHeight:24})),A21='',v21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A21,svgWidth:24,svgHeight:24})),L21='',w21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L21,svgWidth:24,svgHeight:24})),x21='',m21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x21,svgWidth:24,svgHeight:24})),k21='',M21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k21,svgWidth:24,svgHeight:24})),E21='',y21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E21,svgWidth:24,svgHeight:24})),I21='',B21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I21,svgWidth:24,svgHeight:24})),S21='',_21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S21,svgWidth:24,svgHeight:24})),R21='',b21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R21,svgWidth:24,svgHeight:24})),Q21='',T21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q21,svgWidth:24,svgHeight:24})),D21='',P21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D21,svgWidth:24,svgHeight:24})),N21='',H21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N21,svgWidth:24,svgHeight:24})),j21='',U21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j21,svgWidth:24,svgHeight:24})),F21='',W21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F21,svgWidth:24,svgHeight:24})),G21='',O21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G21,svgWidth:24,svgHeight:24})),z21='',V21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z21,svgWidth:24,svgHeight:24})),$21='',Y21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$21,svgWidth:24,svgHeight:24})),X21='',J21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X21,svgWidth:24,svgHeight:24})),q21='',K21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q21,svgWidth:24,svgHeight:24})),Z21='',e91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z21,svgWidth:24,svgHeight:24})),t91='',n91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t91,svgWidth:24,svgHeight:24})),C91='',r91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C91,svgWidth:24,svgHeight:24})),i91='',o91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i91,svgWidth:24,svgHeight:24})),s91='',l91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s91,svgWidth:24,svgHeight:24})),a91='',c91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a91,svgWidth:24,svgHeight:24})),u91='',d91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u91,svgWidth:24,svgHeight:24})),h91='',f91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h91,svgWidth:24,svgHeight:24})),g91='',p91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g91,svgWidth:24,svgHeight:24})),A91='',v91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A91,svgWidth:24,svgHeight:24})),L91='',w91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L91,svgWidth:24,svgHeight:24})),x91='',m91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x91,svgWidth:24,svgHeight:24})),k91='',M91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k91,svgWidth:24,svgHeight:24})),E91='',y91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E91,svgWidth:24,svgHeight:24})),I91='',B91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I91,svgWidth:24,svgHeight:24})),S91='',_91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S91,svgWidth:24,svgHeight:24})),R91='',b91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R91,svgWidth:24,svgHeight:24})),Q91='',T91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q91,svgWidth:24,svgHeight:24})),D91='',P91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D91,svgWidth:24,svgHeight:24})),N91='',H91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N91,svgWidth:24,svgHeight:24})),j91='',U91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j91,svgWidth:24,svgHeight:24})),F91='',W91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F91,svgWidth:24,svgHeight:24})),G91='',O91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G91,svgWidth:24,svgHeight:24})),z91='',V91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z91,svgWidth:24,svgHeight:24})),$91='',Y91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$91,svgWidth:24,svgHeight:24})),X91='',J91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X91,svgWidth:24,svgHeight:24})),q91='',K91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q91,svgWidth:24,svgHeight:24})),Z91='',e81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z91,svgWidth:24,svgHeight:24})),t81='',n81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t81,svgWidth:24,svgHeight:24})),C81='',r81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C81,svgWidth:24,svgHeight:24})),i81='',o81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i81,svgWidth:24,svgHeight:24})),s81='',l81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s81,svgWidth:24,svgHeight:24})),a81='',c81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a81,svgWidth:24,svgHeight:24})),u81='',d81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u81,svgWidth:24,svgHeight:24})),h81='',f81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h81,svgWidth:24,svgHeight:24})),g81='',p81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g81,svgWidth:24,svgHeight:24})),A81='',v81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A81,svgWidth:24,svgHeight:24})),L81='',w81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L81,svgWidth:24,svgHeight:24})),x81='',m81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x81,svgWidth:24,svgHeight:24})),k81='',M81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k81,svgWidth:24,svgHeight:24})),E81='',y81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E81,svgWidth:24,svgHeight:24})),I81='',B81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I81,svgWidth:24,svgHeight:24})),S81='',_81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S81,svgWidth:24,svgHeight:24})),R81='',b81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R81,svgWidth:24,svgHeight:24})),Q81='',T81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q81,svgWidth:24,svgHeight:24})),D81='',P81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D81,svgWidth:24,svgHeight:24})),N81='',H81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N81,svgWidth:24,svgHeight:24})),j81='',U81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j81,svgWidth:24,svgHeight:24})),F81='',W81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F81,svgWidth:24,svgHeight:24})),G81='',O81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G81,svgWidth:24,svgHeight:24})),z81='',V81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z81,svgWidth:24,svgHeight:24})),$81='',Y81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$81,svgWidth:24,svgHeight:24})),X81='',J81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X81,svgWidth:24,svgHeight:24})),q81='',K81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q81,svgWidth:24,svgHeight:24})),Z81='',e41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z81,svgWidth:24,svgHeight:24})),t41='',n41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t41,svgWidth:24,svgHeight:24})),C41='',r41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C41,svgWidth:24,svgHeight:24})),i41='',o41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i41,svgWidth:24,svgHeight:24})),s41='',l41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s41,svgWidth:24,svgHeight:24})),a41='',c41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a41,svgWidth:24,svgHeight:24})),u41='',d41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u41,svgWidth:24,svgHeight:24})),h41='',f41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h41,svgWidth:24,svgHeight:24})),g41='',p41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g41,svgWidth:24,svgHeight:24})),A41='',v41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A41,svgWidth:24,svgHeight:24})),L41='',w41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L41,svgWidth:24,svgHeight:24})),x41='',m41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x41,svgWidth:24,svgHeight:24})),k41='',M41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k41,svgWidth:24,svgHeight:24})),E41='',y41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E41,svgWidth:24,svgHeight:24})),I41='',B41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I41,svgWidth:24,svgHeight:24})),S41='',_41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S41,svgWidth:24,svgHeight:24})),R41='',b41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R41,svgWidth:24,svgHeight:24})),Q41='',T41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q41,svgWidth:24,svgHeight:24})),D41='',P41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D41,svgWidth:24,svgHeight:24})),N41='',H41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N41,svgWidth:24,svgHeight:24})),j41='',U41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j41,svgWidth:24,svgHeight:24})),F41='',W41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F41,svgWidth:24,svgHeight:24})),G41='',O41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G41,svgWidth:24,svgHeight:24})),z41='',V41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z41,svgWidth:24,svgHeight:24})),$41='',Y41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$41,svgWidth:24,svgHeight:24})),X41='',J41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X41,svgWidth:24,svgHeight:24})),q41='',K41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q41,svgWidth:24,svgHeight:24})),Z41='',e61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z41,svgWidth:24,svgHeight:24})),t61='',n61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t61,svgWidth:24,svgHeight:24})),C61='',r61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C61,svgWidth:24,svgHeight:24})),i61='',o61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i61,svgWidth:24,svgHeight:24})),s61='',l61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s61,svgWidth:24,svgHeight:24})),a61='',c61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a61,svgWidth:24,svgHeight:24})),u61='',d61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u61,svgWidth:24,svgHeight:24})),h61='',f61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h61,svgWidth:24,svgHeight:24})),g61='',p61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g61,svgWidth:24,svgHeight:24})),A61='',v61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A61,svgWidth:24,svgHeight:24})),L61='',w61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L61,svgWidth:24,svgHeight:24})),x61='',m61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x61,svgWidth:24,svgHeight:24})),k61='',M61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k61,svgWidth:24,svgHeight:24})),E61='',y61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E61,svgWidth:24,svgHeight:24})),I61='',B61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I61,svgWidth:24,svgHeight:24})),S61='',_61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S61,svgWidth:24,svgHeight:24})),R61='',b61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R61,svgWidth:24,svgHeight:24})),Q61='',T61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q61,svgWidth:24,svgHeight:24})),D61='',P61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D61,svgWidth:24,svgHeight:24})),N61='',H61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N61,svgWidth:24,svgHeight:24})),j61='',U61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j61,svgWidth:24,svgHeight:24})),F61='',W61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F61,svgWidth:24,svgHeight:24})),G61='',O61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G61,svgWidth:24,svgHeight:24})),z61='',V61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z61,svgWidth:24,svgHeight:24})),$61='',Y61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$61,svgWidth:24,svgHeight:24})),X61='',J61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X61,svgWidth:24,svgHeight:24})),q61='',K61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q61,svgWidth:24,svgHeight:24})),Z61='',e51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z61,svgWidth:24,svgHeight:24})),t51='',n51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t51,svgWidth:24,svgHeight:24})),C51='',r51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C51,svgWidth:24,svgHeight:24})),i51='',o51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i51,svgWidth:24,svgHeight:24})),s51='',l51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s51,svgWidth:24,svgHeight:24})),a51='',c51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a51,svgWidth:24,svgHeight:24})),u51='',d51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u51,svgWidth:24,svgHeight:24})),h51='',f51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h51,svgWidth:24,svgHeight:24})),g51='',p51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g51,svgWidth:24,svgHeight:24})),A51='',v51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A51,svgWidth:24,svgHeight:24})),L51='',w51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L51,svgWidth:24,svgHeight:24})),x51='',m51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x51,svgWidth:24,svgHeight:24})),k51='',M51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k51,svgWidth:24,svgHeight:24})),E51='',y51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E51,svgWidth:24,svgHeight:24})),I51='',B51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I51,svgWidth:24,svgHeight:24})),S51='',_51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S51,svgWidth:24,svgHeight:24})),R51='',b51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R51,svgWidth:24,svgHeight:24})),Q51='',T51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q51,svgWidth:24,svgHeight:24})),D51='',P51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D51,svgWidth:24,svgHeight:24})),N51='',H51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N51,svgWidth:24,svgHeight:24})),j51='',U51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j51,svgWidth:24,svgHeight:24})),F51='',W51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F51,svgWidth:24,svgHeight:24})),G51='',O51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G51,svgWidth:24,svgHeight:24})),z51='',V51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z51,svgWidth:24,svgHeight:24})),$51='',Y51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$51,svgWidth:24,svgHeight:24})),X51='',J51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X51,svgWidth:24,svgHeight:24})),q51='',K51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q51,svgWidth:24,svgHeight:24})),Z51='',e31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z51,svgWidth:24,svgHeight:24})),t31='',n31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t31,svgWidth:24,svgHeight:24})),C31='',r31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C31,svgWidth:24,svgHeight:24})),i31='',o31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i31,svgWidth:24,svgHeight:24})),s31='',l31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s31,svgWidth:24,svgHeight:24})),a31='',c31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a31,svgWidth:24,svgHeight:24})),u31='',d31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u31,svgWidth:24,svgHeight:24})),h31='',f31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h31,svgWidth:24,svgHeight:24})),g31='',p31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g31,svgWidth:24,svgHeight:24})),A31='',v31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A31,svgWidth:24,svgHeight:24})),L31='',w31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L31,svgWidth:24,svgHeight:24})),x31='',m31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x31,svgWidth:24,svgHeight:24})),k31='',M31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k31,svgWidth:24,svgHeight:24})),E31='',y31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E31,svgWidth:24,svgHeight:24})),I31='',B31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I31,svgWidth:24,svgHeight:24})),S31='',_31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S31,svgWidth:24,svgHeight:24})),R31='',b31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R31,svgWidth:24,svgHeight:24})),Q31='',T31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q31,svgWidth:24,svgHeight:24})),D31='',P31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D31,svgWidth:24,svgHeight:24})),N31='',H31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N31,svgWidth:24,svgHeight:24})),j31='',U31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j31,svgWidth:24,svgHeight:24})),F31='',W31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F31,svgWidth:24,svgHeight:24})),G31='',O31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G31,svgWidth:24,svgHeight:24})),z31='',V31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z31,svgWidth:24,svgHeight:24})),$31='',Y31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$31,svgWidth:24,svgHeight:24})),X31='',J31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X31,svgWidth:24,svgHeight:24})),q31='',K31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q31,svgWidth:24,svgHeight:24})),Z31='',e71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z31,svgWidth:24,svgHeight:24})),t71='',n71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:t71,svgWidth:24,svgHeight:24})),C71='',r71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:C71,svgWidth:24,svgHeight:24})),i71='',o71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:i71,svgWidth:24,svgHeight:24})),s71='',l71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:s71,svgWidth:24,svgHeight:24})),a71='',c71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:a71,svgWidth:24,svgHeight:24})),u71='',d71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:u71,svgWidth:24,svgHeight:24})),h71='',f71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:h71,svgWidth:24,svgHeight:24})),g71='',p71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:g71,svgWidth:24,svgHeight:24})),A71='',v71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:A71,svgWidth:24,svgHeight:24})),L71='',w71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:L71,svgWidth:24,svgHeight:24})),x71='',m71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:x71,svgWidth:24,svgHeight:24})),k71='',M71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:k71,svgWidth:24,svgHeight:24})),E71='',y71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:E71,svgWidth:24,svgHeight:24})),I71='',B71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:I71,svgWidth:24,svgHeight:24})),S71='',_71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:S71,svgWidth:24,svgHeight:24})),R71='',b71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:R71,svgWidth:24,svgHeight:24})),Q71='',T71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Q71,svgWidth:24,svgHeight:24})),D71='',P71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:D71,svgWidth:24,svgHeight:24})),N71='',H71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N71,svgWidth:24,svgHeight:24})),j71='',U71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:j71,svgWidth:24,svgHeight:24})),F71='',W71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:F71,svgWidth:24,svgHeight:24})),G71='',O71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:G71,svgWidth:24,svgHeight:24})),z71='',V71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:z71,svgWidth:24,svgHeight:24})),$71='',Y71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$71,svgWidth:24,svgHeight:24})),X71='',J71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:X71,svgWidth:24,svgHeight:24})),q71='',K71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:q71,svgWidth:24,svgHeight:24})),Z71='',ee1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Z71,svgWidth:24,svgHeight:24})),te1='',ne1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:te1,svgWidth:24,svgHeight:24})),Ce1='',re1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ce1,svgWidth:24,svgHeight:24})),ie1='',oe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ie1,svgWidth:24,svgHeight:24})),se1='',le1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:se1,svgWidth:24,svgHeight:24})),ae1='',ce1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ae1,svgWidth:24,svgHeight:24})),ue1='',de1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ue1,svgWidth:24,svgHeight:24})),he1='',fe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:he1,svgWidth:24,svgHeight:24})),ge1='',pe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ge1,svgWidth:24,svgHeight:24})),Ae1='',ve1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ae1,svgWidth:24,svgHeight:24})),Le1='',we1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Le1,svgWidth:24,svgHeight:24})),xe1='',me1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xe1,svgWidth:24,svgHeight:24})),ke1='',Me1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ke1,svgWidth:24,svgHeight:24})),Ee1='',ye1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ee1,svgWidth:24,svgHeight:24})),Ie1='',Be1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ie1,svgWidth:24,svgHeight:24})),Se1='',_e1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Se1,svgWidth:24,svgHeight:24})),Re1='',be1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Re1,svgWidth:24,svgHeight:24})),Qe1='',Te1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qe1,svgWidth:24,svgHeight:24})),De1='',Pe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:De1,svgWidth:24,svgHeight:24})),Ne1='',He1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ne1,svgWidth:24,svgHeight:24})),je1='',Ue1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:je1,svgWidth:24,svgHeight:24})),Fe1='',We1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fe1,svgWidth:24,svgHeight:24})),Ge1='',Oe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ge1,svgWidth:24,svgHeight:24})),ze1='',Ve1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ze1,svgWidth:24,svgHeight:24})),$e1='',Ye1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$e1,svgWidth:24,svgHeight:24})),Xe1='',Je1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xe1,svgWidth:24,svgHeight:24})),qe1='',Ke1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qe1,svgWidth:24,svgHeight:24})),Ze1='',et1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ze1,svgWidth:24,svgHeight:24})),tt1='',nt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tt1,svgWidth:24,svgHeight:24})),Ct1='',rt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ct1,svgWidth:24,svgHeight:24})),it1='',ot1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:it1,svgWidth:24,svgHeight:24})),st1='',lt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:st1,svgWidth:24,svgHeight:24})),at1='',ct1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:at1,svgWidth:24,svgHeight:24})),ut1='',dt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ut1,svgWidth:24,svgHeight:24})),ht1='',ft1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ht1,svgWidth:24,svgHeight:24})),gt1='',pt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gt1,svgWidth:24,svgHeight:24})),At1='',vt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:At1,svgWidth:24,svgHeight:24})),Lt1='',wt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lt1,svgWidth:24,svgHeight:24})),xt1='',mt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xt1,svgWidth:24,svgHeight:24})),kt1='',Mt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kt1,svgWidth:24,svgHeight:24})),Et1='',yt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Et1,svgWidth:24,svgHeight:24})),It1='',Bt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:It1,svgWidth:24,svgHeight:24})),St1='',_t1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:St1,svgWidth:24,svgHeight:24})),Rt1='',bt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rt1,svgWidth:24,svgHeight:24})),Qt1='',Tt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qt1,svgWidth:24,svgHeight:24})),Dt1='',Pt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dt1,svgWidth:24,svgHeight:24})),Nt1='',Ht1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nt1,svgWidth:24,svgHeight:24})),jt1='',Ut1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jt1,svgWidth:24,svgHeight:24})),Ft1='',Wt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ft1,svgWidth:24,svgHeight:24})),Gt1='',Ot1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gt1,svgWidth:24,svgHeight:24})),zt1='',Vt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zt1,svgWidth:24,svgHeight:24})),$t1='',Yt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$t1,svgWidth:24,svgHeight:24})),Xt1='',Jt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xt1,svgWidth:24,svgHeight:24})),qt1='',Kt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qt1,svgWidth:24,svgHeight:24})),Zt1='',en1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zt1,svgWidth:24,svgHeight:24})),tn1='',nn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tn1,svgWidth:24,svgHeight:24})),Cn1='',rn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cn1,svgWidth:24,svgHeight:24})),in1='',on1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:in1,svgWidth:24,svgHeight:24})),sn1='',ln1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sn1,svgWidth:24,svgHeight:24})),an1='',cn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:an1,svgWidth:24,svgHeight:24})),un1='',dn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:un1,svgWidth:24,svgHeight:24})),hn1='',fn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hn1,svgWidth:24,svgHeight:24})),gn1='',pn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gn1,svgWidth:24,svgHeight:24})),An1='',vn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:An1,svgWidth:24,svgHeight:24})),Ln1='',wn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ln1,svgWidth:24,svgHeight:24})),xn1='',mn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xn1,svgWidth:24,svgHeight:24})),kn1='',Mn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kn1,svgWidth:24,svgHeight:24})),En1='',yn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:En1,svgWidth:24,svgHeight:24})),In1='',Bn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:In1,svgWidth:24,svgHeight:24})),Sn1='',_n1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sn1,svgWidth:24,svgHeight:24})),Rn1='',bn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rn1,svgWidth:24,svgHeight:24})),Qn1='',Tn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qn1,svgWidth:24,svgHeight:24})),Dn1='',Pn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dn1,svgWidth:24,svgHeight:24})),Nn1='',Hn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nn1,svgWidth:24,svgHeight:24})),jn1='',Un1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jn1,svgWidth:24,svgHeight:24})),Fn1='',Wn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fn1,svgWidth:24,svgHeight:24})),Gn1='',On1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gn1,svgWidth:24,svgHeight:24})),zn1='',Vn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zn1,svgWidth:24,svgHeight:24})),$n1='',Yn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$n1,svgWidth:24,svgHeight:24})),Xn1='',Jn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xn1,svgWidth:24,svgHeight:24})),qn1='',Kn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qn1,svgWidth:24,svgHeight:24})),Zn1='',eC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zn1,svgWidth:24,svgHeight:24})),tC1='',nC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tC1,svgWidth:24,svgHeight:24})),CC1='',rC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CC1,svgWidth:24,svgHeight:24})),iC1='',oC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iC1,svgWidth:24,svgHeight:24})),sC1='',lC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sC1,svgWidth:24,svgHeight:24})),aC1='',cC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aC1,svgWidth:24,svgHeight:24})),uC1='',dC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uC1,svgWidth:24,svgHeight:24})),hC1='',fC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hC1,svgWidth:24,svgHeight:24})),gC1='',pC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gC1,svgWidth:24,svgHeight:24})),AC1='',vC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AC1,svgWidth:24,svgHeight:24})),LC1='',wC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LC1,svgWidth:24,svgHeight:24})),xC1='',mC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xC1,svgWidth:24,svgHeight:24})),kC1='',MC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kC1,svgWidth:24,svgHeight:24})),EC1='',yC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EC1,svgWidth:24,svgHeight:24})),IC1='',BC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IC1,svgWidth:24,svgHeight:24})),SC1='',_C1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SC1,svgWidth:24,svgHeight:24})),RC1='',bC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RC1,svgWidth:24,svgHeight:24})),QC1='',TC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QC1,svgWidth:24,svgHeight:24})),DC1='',PC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DC1,svgWidth:24,svgHeight:24})),NC1='',HC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NC1,svgWidth:24,svgHeight:24})),jC1='',UC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jC1,svgWidth:24,svgHeight:24})),FC1='',WC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FC1,svgWidth:24,svgHeight:24})),GC1='',OC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GC1,svgWidth:24,svgHeight:24})),zC1='',VC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zC1,svgWidth:24,svgHeight:24})),$C1='',YC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$C1,svgWidth:24,svgHeight:24})),XC1='',JC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XC1,svgWidth:24,svgHeight:24})),qC1='',KC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qC1,svgWidth:24,svgHeight:24})),ZC1='',er1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZC1,svgWidth:24,svgHeight:24})),tr1='',nr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tr1,svgWidth:24,svgHeight:24})),Cr1='',rr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cr1,svgWidth:24,svgHeight:24})),ir1='',or1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ir1,svgWidth:24,svgHeight:24})),sr1='',lr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sr1,svgWidth:24,svgHeight:24})),ar1='',cr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ar1,svgWidth:24,svgHeight:24})),ur1='',dr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ur1,svgWidth:24,svgHeight:24})),hr1='',fr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hr1,svgWidth:24,svgHeight:24})),gr1='',pr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gr1,svgWidth:24,svgHeight:24})),Ar1='',vr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ar1,svgWidth:24,svgHeight:24})),Lr1='',wr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lr1,svgWidth:24,svgHeight:24})),xr1='',mr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xr1,svgWidth:24,svgHeight:24})),kr1='',Mr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kr1,svgWidth:24,svgHeight:24})),Er1='',yr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Er1,svgWidth:24,svgHeight:24})),Ir1='',Br1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ir1,svgWidth:24,svgHeight:24})),Sr1='',_r1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sr1,svgWidth:24,svgHeight:24})),Rr1='',br1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rr1,svgWidth:24,svgHeight:24})),Qr1='',Tr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qr1,svgWidth:24,svgHeight:24})),Dr1='',Pr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dr1,svgWidth:24,svgHeight:24})),Nr1='',Hr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nr1,svgWidth:24,svgHeight:24})),jr1='',Ur1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jr1,svgWidth:24,svgHeight:24})),Fr1='',Wr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fr1,svgWidth:24,svgHeight:24})),Gr1='',Or1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gr1,svgWidth:24,svgHeight:24})),zr1='',Vr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zr1,svgWidth:24,svgHeight:24})),$r1='',Yr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$r1,svgWidth:24,svgHeight:24})),Xr1='',Jr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xr1,svgWidth:24,svgHeight:24})),qr1='',Kr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qr1,svgWidth:24,svgHeight:24})),Zr1='',ei1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zr1,svgWidth:24,svgHeight:24})),ti1='',ni1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ti1,svgWidth:24,svgHeight:24})),Ci1='',ri1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ci1,svgWidth:24,svgHeight:24})),ii1='',oi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ii1,svgWidth:24,svgHeight:24})),si1='',li1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:si1,svgWidth:24,svgHeight:24})),ai1='',ci1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ai1,svgWidth:24,svgHeight:24})),ui1='',di1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ui1,svgWidth:24,svgHeight:24})),hi1='',fi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hi1,svgWidth:24,svgHeight:24})),gi1='',pi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gi1,svgWidth:24,svgHeight:24})),Ai1='',vi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ai1,svgWidth:24,svgHeight:24})),Li1='',wi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Li1,svgWidth:24,svgHeight:24})),xi1='',mi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xi1,svgWidth:24,svgHeight:24})),ki1='',Mi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ki1,svgWidth:24,svgHeight:24})),Ei1='',yi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ei1,svgWidth:24,svgHeight:24})),Ii1='',Bi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ii1,svgWidth:24,svgHeight:24})),Si1='',_i1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Si1,svgWidth:24,svgHeight:24})),Ri1='',bi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ri1,svgWidth:24,svgHeight:24})),Qi1='',Ti1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qi1,svgWidth:24,svgHeight:24})),Di1='',Pi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Di1,svgWidth:24,svgHeight:24})),Ni1='',Hi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ni1,svgWidth:24,svgHeight:24})),ji1='',Ui1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ji1,svgWidth:24,svgHeight:24})),Fi1='',Wi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fi1,svgWidth:24,svgHeight:24})),Gi1='',Oi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gi1,svgWidth:24,svgHeight:24})),zi1='',Vi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zi1,svgWidth:24,svgHeight:24})),$i1='',Yi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$i1,svgWidth:24,svgHeight:24})),Xi1='',Ji1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xi1,svgWidth:24,svgHeight:24})),qi1='',Ki1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qi1,svgWidth:24,svgHeight:24})),Zi1='',eo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zi1,svgWidth:24,svgHeight:24})),to1='',no1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:to1,svgWidth:24,svgHeight:24})),Co1='',ro1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Co1,svgWidth:24,svgHeight:24})),io1='',oo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:io1,svgWidth:24,svgHeight:24})),so1='',lo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:so1,svgWidth:24,svgHeight:24})),ao1='',co1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ao1,svgWidth:24,svgHeight:24})),uo1='',do1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uo1,svgWidth:24,svgHeight:24})),ho1='',fo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ho1,svgWidth:24,svgHeight:24})),go1='',po1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:go1,svgWidth:24,svgHeight:24})),Ao1='',vo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ao1,svgWidth:24,svgHeight:24})),Lo1='',wo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lo1,svgWidth:24,svgHeight:24})),xo1='',mo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xo1,svgWidth:24,svgHeight:24})),ko1='',Mo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ko1,svgWidth:24,svgHeight:24})),Eo1='',yo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Eo1,svgWidth:24,svgHeight:24})),Io1='',Bo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Io1,svgWidth:24,svgHeight:24})),So1='',_o1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:So1,svgWidth:24,svgHeight:24})),Ro1='',bo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ro1,svgWidth:24,svgHeight:24})),Qo1='',To1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qo1,svgWidth:24,svgHeight:24})),Do1='',Po1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Do1,svgWidth:24,svgHeight:24})),No1='',Ho1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:No1,svgWidth:24,svgHeight:24})),jo1='',Uo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jo1,svgWidth:24,svgHeight:24})),Fo1='',Wo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fo1,svgWidth:24,svgHeight:24})),Go1='',Oo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Go1,svgWidth:24,svgHeight:24})),zo1='',Vo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zo1,svgWidth:24,svgHeight:24})),$o1='',Yo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$o1,svgWidth:24,svgHeight:24})),Xo1='',Jo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xo1,svgWidth:24,svgHeight:24})),qo1='',Ko1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qo1,svgWidth:24,svgHeight:24})),Zo1='',es1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zo1,svgWidth:24,svgHeight:24})),ts1='',ns1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ts1,svgWidth:24,svgHeight:24})),Cs1='',rs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cs1,svgWidth:24,svgHeight:24})),is1='',os1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:is1,svgWidth:24,svgHeight:24})),ss1='',ls1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ss1,svgWidth:24,svgHeight:24})),as1='',cs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:as1,svgWidth:24,svgHeight:24})),us1='',ds1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:us1,svgWidth:24,svgHeight:24})),hs1='',fs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hs1,svgWidth:24,svgHeight:24})),gs1='',ps1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gs1,svgWidth:24,svgHeight:24})),As1='',vs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:As1,svgWidth:24,svgHeight:24})),Ls1='',ws1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ls1,svgWidth:24,svgHeight:24})),xs1='',ms1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xs1,svgWidth:24,svgHeight:24})),ks1='',Ms1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ks1,svgWidth:24,svgHeight:24})),Es1='',ys1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Es1,svgWidth:24,svgHeight:24})),Is1='',Bs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Is1,svgWidth:24,svgHeight:24})),Ss1='',_s1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ss1,svgWidth:24,svgHeight:24})),Rs1='',bs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rs1,svgWidth:24,svgHeight:24})),Qs1='',Ts1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qs1,svgWidth:24,svgHeight:24})),Ds1='',Ps1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ds1,svgWidth:24,svgHeight:24})),Ns1='',Hs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ns1,svgWidth:24,svgHeight:24})),js1='',Us1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:js1,svgWidth:24,svgHeight:24})),Fs1='',Ws1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fs1,svgWidth:24,svgHeight:24})),Gs1='',Os1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gs1,svgWidth:24,svgHeight:24})),zs1='',Vs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zs1,svgWidth:24,svgHeight:24})),$s1='',Ys1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$s1,svgWidth:24,svgHeight:24})),Xs1='',Js1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xs1,svgWidth:24,svgHeight:24})),qs1='',Ks1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qs1,svgWidth:24,svgHeight:24})),Zs1='',el1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zs1,svgWidth:24,svgHeight:24})),tl1='',nl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tl1,svgWidth:24,svgHeight:24})),Cl1='',rl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cl1,svgWidth:24,svgHeight:24})),il1='',ol1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:il1,svgWidth:24,svgHeight:24})),sl1='',ll1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sl1,svgWidth:24,svgHeight:24})),al1='',cl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:al1,svgWidth:24,svgHeight:24})),ul1='',dl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ul1,svgWidth:24,svgHeight:24})),hl1='',fl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hl1,svgWidth:24,svgHeight:24})),gl1='',pl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gl1,svgWidth:24,svgHeight:24})),Al1='',vl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Al1,svgWidth:24,svgHeight:24})),Ll1='',wl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ll1,svgWidth:24,svgHeight:24})),xl1='',ml1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xl1,svgWidth:24,svgHeight:24})),kl1='',Ml1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kl1,svgWidth:24,svgHeight:24})),El1='',yl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:El1,svgWidth:24,svgHeight:24})),Il1='',Bl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Il1,svgWidth:24,svgHeight:24})),Sl1='',_l1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sl1,svgWidth:24,svgHeight:24})),Rl1='',bl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rl1,svgWidth:24,svgHeight:24})),Ql1='',Tl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ql1,svgWidth:24,svgHeight:24})),Dl1='',Pl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dl1,svgWidth:24,svgHeight:24})),Nl1='',Hl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nl1,svgWidth:24,svgHeight:24})),jl1='',Ul1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jl1,svgWidth:24,svgHeight:24})),Fl1='',Wl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fl1,svgWidth:24,svgHeight:24})),Gl1='',Ol1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gl1,svgWidth:24,svgHeight:24})),zl1='',Vl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zl1,svgWidth:24,svgHeight:24})),$l1='',Yl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$l1,svgWidth:24,svgHeight:24})),Xl1='',Jl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xl1,svgWidth:24,svgHeight:24})),ql1='',Kl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ql1,svgWidth:24,svgHeight:24})),Zl1='',ea1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zl1,svgWidth:24,svgHeight:24})),ta1='',na1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ta1,svgWidth:24,svgHeight:24})),Ca1='',ra1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ca1,svgWidth:24,svgHeight:24})),ia1='',oa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ia1,svgWidth:24,svgHeight:24})),sa1='',la1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sa1,svgWidth:24,svgHeight:24})),aa1='',ca1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aa1,svgWidth:24,svgHeight:24})),ua1='',da1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ua1,svgWidth:24,svgHeight:24})),ha1='',fa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ha1,svgWidth:24,svgHeight:24})),ga1='',pa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ga1,svgWidth:24,svgHeight:24})),Aa1='',va1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Aa1,svgWidth:24,svgHeight:24})),La1='',wa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:La1,svgWidth:24,svgHeight:24})),xa1='',ma1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xa1,svgWidth:24,svgHeight:24})),ka1='',Ma1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ka1,svgWidth:24,svgHeight:24})),Ea1='',ya1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ea1,svgWidth:24,svgHeight:24})),Ia1='',Ba1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ia1,svgWidth:24,svgHeight:24})),Sa1='',_a1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sa1,svgWidth:24,svgHeight:24})),Ra1='',ba1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ra1,svgWidth:24,svgHeight:24})),Qa1='',Ta1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qa1,svgWidth:24,svgHeight:24})),Da1='',Pa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Da1,svgWidth:24,svgHeight:24})),Na1='',Ha1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Na1,svgWidth:24,svgHeight:24})),ja1='',Ua1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ja1,svgWidth:24,svgHeight:24})),Fa1='',Wa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fa1,svgWidth:24,svgHeight:24})),Ga1='',Oa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ga1,svgWidth:24,svgHeight:24})),za1='',Va1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:za1,svgWidth:24,svgHeight:24})),$a1='',Ya1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$a1,svgWidth:24,svgHeight:24})),Xa1='',Ja1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xa1,svgWidth:24,svgHeight:24})),qa1='',Ka1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qa1,svgWidth:24,svgHeight:24})),Za1='',ec1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Za1,svgWidth:24,svgHeight:24})),tc1='',nc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tc1,svgWidth:24,svgHeight:24})),Cc1='',rc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cc1,svgWidth:24,svgHeight:24})),ic1='',oc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ic1,svgWidth:24,svgHeight:24})),sc1='',lc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sc1,svgWidth:24,svgHeight:24})),ac1='',cc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ac1,svgWidth:24,svgHeight:24})),uc1='',dc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uc1,svgWidth:24,svgHeight:24})),hc1='',fc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hc1,svgWidth:24,svgHeight:24})),gc1='',pc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gc1,svgWidth:24,svgHeight:24})),Ac1='',vc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ac1,svgWidth:24,svgHeight:24})),Lc1='',wc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lc1,svgWidth:24,svgHeight:24})),xc1='',mc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xc1,svgWidth:24,svgHeight:24})),kc1='',Mc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kc1,svgWidth:24,svgHeight:24})),Ec1='',yc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ec1,svgWidth:24,svgHeight:24})),Ic1='',Bc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ic1,svgWidth:24,svgHeight:24})),Sc1='',_c1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sc1,svgWidth:24,svgHeight:24})),Rc1='',bc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rc1,svgWidth:24,svgHeight:24})),Qc1='',Tc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qc1,svgWidth:24,svgHeight:24})),Dc1='',Pc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dc1,svgWidth:24,svgHeight:24})),Nc1='',Hc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nc1,svgWidth:24,svgHeight:24})),jc1='',Uc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jc1,svgWidth:24,svgHeight:24})),Fc1='',Wc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fc1,svgWidth:24,svgHeight:24})),Gc1='',Oc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gc1,svgWidth:24,svgHeight:24})),zc1='',Vc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zc1,svgWidth:24,svgHeight:24})),$c1='',Yc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$c1,svgWidth:24,svgHeight:24})),Xc1='',Jc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xc1,svgWidth:24,svgHeight:24})),qc1='',Kc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qc1,svgWidth:24,svgHeight:24})),Zc1='',eu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zc1,svgWidth:24,svgHeight:24})),tu1='',nu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tu1,svgWidth:24,svgHeight:24})),Cu1='',ru1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cu1,svgWidth:24,svgHeight:24})),iu1='',ou1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iu1,svgWidth:24,svgHeight:24})),su1='',lu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:su1,svgWidth:24,svgHeight:24})),au1='',cu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:au1,svgWidth:24,svgHeight:24})),uu1='',du1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uu1,svgWidth:24,svgHeight:24})),hu1='',fu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hu1,svgWidth:24,svgHeight:24})),gu1='',pu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gu1,svgWidth:24,svgHeight:24})),Au1='',vu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Au1,svgWidth:24,svgHeight:24})),Lu1='',wu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lu1,svgWidth:24,svgHeight:24})),xu1='',mu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xu1,svgWidth:24,svgHeight:24})),ku1='',Mu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ku1,svgWidth:24,svgHeight:24})),Eu1='',yu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Eu1,svgWidth:24,svgHeight:24})),Iu1='',Bu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Iu1,svgWidth:24,svgHeight:24})),Su1='',_u1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Su1,svgWidth:24,svgHeight:24})),Ru1='',bu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ru1,svgWidth:24,svgHeight:24})),Qu1='',Tu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qu1,svgWidth:24,svgHeight:24})),Du1='',Pu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Du1,svgWidth:24,svgHeight:24})),Nu1='',Hu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nu1,svgWidth:24,svgHeight:24})),ju1='',Uu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ju1,svgWidth:24,svgHeight:24})),Fu1='',Wu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fu1,svgWidth:24,svgHeight:24})),Gu1='',Ou1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gu1,svgWidth:24,svgHeight:24})),zu1='',Vu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zu1,svgWidth:24,svgHeight:24})),$u1='',Yu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$u1,svgWidth:24,svgHeight:24})),Xu1='',Ju1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xu1,svgWidth:24,svgHeight:24})),qu1='',Ku1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qu1,svgWidth:24,svgHeight:24})),Zu1='',ed1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zu1,svgWidth:24,svgHeight:24})),td1='',nd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:td1,svgWidth:24,svgHeight:24})),Cd1='',rd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cd1,svgWidth:24,svgHeight:24})),id1='',od1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:id1,svgWidth:24,svgHeight:24})),sd1='',ld1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sd1,svgWidth:24,svgHeight:24})),ad1='',cd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ad1,svgWidth:24,svgHeight:24})),ud1='',dd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ud1,svgWidth:24,svgHeight:24})),hd1='',fd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hd1,svgWidth:24,svgHeight:24})),gd1='',pd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gd1,svgWidth:24,svgHeight:24})),Ad1='',vd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ad1,svgWidth:24,svgHeight:24})),Ld1='',wd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ld1,svgWidth:24,svgHeight:24})),xd1='',md1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xd1,svgWidth:24,svgHeight:24})),kd1='',Md1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kd1,svgWidth:24,svgHeight:24})),Ed1='',yd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ed1,svgWidth:24,svgHeight:24})),Id1='',Bd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Id1,svgWidth:24,svgHeight:24})),Sd1='',_d1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sd1,svgWidth:24,svgHeight:24})),Rd1='',bd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rd1,svgWidth:24,svgHeight:24})),Qd1='',Td1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qd1,svgWidth:24,svgHeight:24})),Dd1='',Pd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dd1,svgWidth:24,svgHeight:24})),Nd1='',Hd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nd1,svgWidth:24,svgHeight:24})),jd1='',Ud1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jd1,svgWidth:24,svgHeight:24})),Fd1='',Wd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fd1,svgWidth:24,svgHeight:24})),Gd1='',Od1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gd1,svgWidth:24,svgHeight:24})),zd1='',Vd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zd1,svgWidth:24,svgHeight:24})),$d1='',Yd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$d1,svgWidth:24,svgHeight:24})),Xd1='',Jd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xd1,svgWidth:24,svgHeight:24})),qd1='',Kd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qd1,svgWidth:24,svgHeight:24})),Zd1='',eh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zd1,svgWidth:24,svgHeight:24})),th1='',nh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:th1,svgWidth:24,svgHeight:24})),Ch1='',rh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ch1,svgWidth:24,svgHeight:24})),ih1='',oh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ih1,svgWidth:24,svgHeight:24})),sh1='',lh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sh1,svgWidth:24,svgHeight:24})),ah1='',ch1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ah1,svgWidth:24,svgHeight:24})),uh1='',dh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uh1,svgWidth:24,svgHeight:24})),hh1='',fh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hh1,svgWidth:24,svgHeight:24})),gh1='',ph1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gh1,svgWidth:24,svgHeight:24})),Ah1='',vh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ah1,svgWidth:24,svgHeight:24})),Lh1='',wh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lh1,svgWidth:24,svgHeight:24})),xh1='',mh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xh1,svgWidth:24,svgHeight:24})),kh1='',Mh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kh1,svgWidth:24,svgHeight:24})),Eh1='',yh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Eh1,svgWidth:24,svgHeight:24})),Ih1='',Bh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ih1,svgWidth:24,svgHeight:24})),Sh1='',_h1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sh1,svgWidth:24,svgHeight:24})),Rh1='',bh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rh1,svgWidth:24,svgHeight:24})),Qh1='',Th1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qh1,svgWidth:24,svgHeight:24})),Dh1='',Ph1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dh1,svgWidth:24,svgHeight:24})),Nh1='',Hh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nh1,svgWidth:24,svgHeight:24})),jh1='',Uh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jh1,svgWidth:24,svgHeight:24})),Fh1='',Wh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fh1,svgWidth:24,svgHeight:24})),Gh1='',Oh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gh1,svgWidth:24,svgHeight:24})),zh1='',Vh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zh1,svgWidth:24,svgHeight:24})),$h1='',Yh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$h1,svgWidth:24,svgHeight:24})),Xh1='',Jh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xh1,svgWidth:24,svgHeight:24})),qh1='',Kh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qh1,svgWidth:24,svgHeight:24})),Zh1='',ef1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zh1,svgWidth:24,svgHeight:24})),tf1='',nf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tf1,svgWidth:24,svgHeight:24})),Cf1='',rf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cf1,svgWidth:24,svgHeight:24})),if1='',of1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:if1,svgWidth:24,svgHeight:24})),sf1='',lf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sf1,svgWidth:24,svgHeight:24})),af1='',cf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:af1,svgWidth:24,svgHeight:24})),uf1='',df1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uf1,svgWidth:24,svgHeight:24})),hf1='',ff1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hf1,svgWidth:24,svgHeight:24})),gf1='',pf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gf1,svgWidth:24,svgHeight:24})),Af1='',vf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Af1,svgWidth:24,svgHeight:24})),Lf1='',wf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lf1,svgWidth:24,svgHeight:24})),xf1='',mf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xf1,svgWidth:24,svgHeight:24})),kf1='',Mf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kf1,svgWidth:24,svgHeight:24})),Ef1='',yf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ef1,svgWidth:24,svgHeight:24})),If1='',Bf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:If1,svgWidth:24,svgHeight:24})),Sf1='',_f1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sf1,svgWidth:24,svgHeight:24})),Rf1='',bf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rf1,svgWidth:24,svgHeight:24})),Qf1='',Tf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qf1,svgWidth:24,svgHeight:24})),Df1='',Pf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Df1,svgWidth:24,svgHeight:24})),Nf1='',Hf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nf1,svgWidth:24,svgHeight:24})),jf1='',Uf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jf1,svgWidth:24,svgHeight:24})),Ff1='',Wf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ff1,svgWidth:24,svgHeight:24})),Gf1='',Of1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gf1,svgWidth:24,svgHeight:24})),zf1='',Vf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zf1,svgWidth:24,svgHeight:24})),$f1='',Yf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$f1,svgWidth:24,svgHeight:24})),Xf1='',Jf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xf1,svgWidth:24,svgHeight:24})),qf1='',Kf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qf1,svgWidth:24,svgHeight:24})),Zf1='',eg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zf1,svgWidth:24,svgHeight:24})),tg1='',ng1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tg1,svgWidth:24,svgHeight:24})),Cg1='',rg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cg1,svgWidth:24,svgHeight:24})),ig1='',og1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ig1,svgWidth:24,svgHeight:24})),sg1='',lg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sg1,svgWidth:24,svgHeight:24})),ag1='',cg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ag1,svgWidth:24,svgHeight:24})),ug1='',dg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ug1,svgWidth:24,svgHeight:24})),hg1='',fg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hg1,svgWidth:24,svgHeight:24})),gg1='',pg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gg1,svgWidth:24,svgHeight:24})),Ag1='',vg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ag1,svgWidth:24,svgHeight:24})),Lg1='',wg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lg1,svgWidth:24,svgHeight:24})),xg1='',mg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xg1,svgWidth:24,svgHeight:24})),kg1='',Mg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kg1,svgWidth:24,svgHeight:24})),Eg1='',yg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Eg1,svgWidth:24,svgHeight:24})),Ig1='',Bg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ig1,svgWidth:24,svgHeight:24})),Sg1='',_g1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sg1,svgWidth:24,svgHeight:24})),Rg1='',bg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rg1,svgWidth:24,svgHeight:24})),Qg1='',Tg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qg1,svgWidth:24,svgHeight:24})),Dg1='',Pg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dg1,svgWidth:24,svgHeight:24})),Ng1='',Hg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ng1,svgWidth:24,svgHeight:24})),jg1='',Ug1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jg1,svgWidth:24,svgHeight:24})),Fg1='',Wg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fg1,svgWidth:24,svgHeight:24})),Gg1='',Og1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gg1,svgWidth:24,svgHeight:24})),zg1='',Vg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zg1,svgWidth:24,svgHeight:24})),$g1='',Yg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$g1,svgWidth:24,svgHeight:24})),Xg1='',Jg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xg1,svgWidth:24,svgHeight:24})),qg1='',Kg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qg1,svgWidth:24,svgHeight:24})),Zg1='',ep1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zg1,svgWidth:24,svgHeight:24})),tp1='',np1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tp1,svgWidth:24,svgHeight:24})),Cp1='',rp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cp1,svgWidth:24,svgHeight:24})),ip1='',op1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ip1,svgWidth:24,svgHeight:24})),sp1='',lp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sp1,svgWidth:24,svgHeight:24})),ap1='',cp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ap1,svgWidth:24,svgHeight:24})),up1='',dp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:up1,svgWidth:24,svgHeight:24})),hp1='',fp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hp1,svgWidth:24,svgHeight:24})),gp1='',pp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gp1,svgWidth:24,svgHeight:24})),Ap1='',vp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ap1,svgWidth:24,svgHeight:24})),Lp1='',wp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lp1,svgWidth:24,svgHeight:24})),xp1='',mp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xp1,svgWidth:24,svgHeight:24})),kp1='',Mp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kp1,svgWidth:24,svgHeight:24})),Ep1='',yp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ep1,svgWidth:24,svgHeight:24})),Ip1='',Bp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ip1,svgWidth:24,svgHeight:24})),Sp1='',_p1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sp1,svgWidth:24,svgHeight:24})),Rp1='',bp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rp1,svgWidth:24,svgHeight:24})),Qp1='',Tp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qp1,svgWidth:24,svgHeight:24})),Dp1='',Pp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dp1,svgWidth:24,svgHeight:24})),Np1='',Hp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Np1,svgWidth:24,svgHeight:24})),jp1='',Up1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jp1,svgWidth:24,svgHeight:24})),Fp1='',Wp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fp1,svgWidth:24,svgHeight:24})),Gp1='',Op1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gp1,svgWidth:24,svgHeight:24})),zp1='',Vp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zp1,svgWidth:24,svgHeight:24})),$p1='',Yp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$p1,svgWidth:24,svgHeight:24})),Xp1='',Jp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xp1,svgWidth:24,svgHeight:24})),qp1='',Kp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qp1,svgWidth:24,svgHeight:24})),Zp1='',eA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zp1,svgWidth:24,svgHeight:24})),tA1='',nA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tA1,svgWidth:24,svgHeight:24})),CA1='',rA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CA1,svgWidth:24,svgHeight:24})),iA1='',oA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iA1,svgWidth:24,svgHeight:24})),sA1='',lA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sA1,svgWidth:24,svgHeight:24})),aA1='',cA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aA1,svgWidth:24,svgHeight:24})),uA1='',dA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uA1,svgWidth:24,svgHeight:24})),hA1='',fA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hA1,svgWidth:24,svgHeight:24})),gA1='',pA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gA1,svgWidth:24,svgHeight:24})),AA1='',vA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AA1,svgWidth:24,svgHeight:24})),LA1='',wA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LA1,svgWidth:24,svgHeight:24})),xA1='',mA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xA1,svgWidth:24,svgHeight:24})),kA1='',MA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kA1,svgWidth:24,svgHeight:24})),EA1='',yA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EA1,svgWidth:24,svgHeight:24})),IA1='',BA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IA1,svgWidth:24,svgHeight:24})),SA1='',_A1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SA1,svgWidth:24,svgHeight:24})),RA1='',bA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RA1,svgWidth:24,svgHeight:24})),QA1='',TA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QA1,svgWidth:24,svgHeight:24})),DA1='',PA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DA1,svgWidth:24,svgHeight:24})),NA1='',HA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NA1,svgWidth:24,svgHeight:24})),jA1='',UA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jA1,svgWidth:24,svgHeight:24})),FA1='',WA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FA1,svgWidth:24,svgHeight:24})),GA1='',OA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GA1,svgWidth:24,svgHeight:24})),zA1='',VA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zA1,svgWidth:24,svgHeight:24})),$A1='',YA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$A1,svgWidth:24,svgHeight:24})),XA1='',JA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XA1,svgWidth:24,svgHeight:24})),qA1='',KA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qA1,svgWidth:24,svgHeight:24})),ZA1='',ev1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZA1,svgWidth:24,svgHeight:24})),tv1='',nv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tv1,svgWidth:24,svgHeight:24})),Cv1='',rv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cv1,svgWidth:24,svgHeight:24})),iv1='',ov1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iv1,svgWidth:24,svgHeight:24})),sv1='',lv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sv1,svgWidth:24,svgHeight:24})),av1='',cv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:av1,svgWidth:24,svgHeight:24})),uv1='',dv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uv1,svgWidth:24,svgHeight:24})),hv1='',fv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hv1,svgWidth:24,svgHeight:24})),gv1='',pv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gv1,svgWidth:24,svgHeight:24})),Av1='',vv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Av1,svgWidth:24,svgHeight:24})),Lv1='',wv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lv1,svgWidth:24,svgHeight:24})),xv1='',mv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xv1,svgWidth:24,svgHeight:24})),kv1='',Mv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kv1,svgWidth:24,svgHeight:24})),Ev1='',yv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ev1,svgWidth:24,svgHeight:24})),Iv1='',Bv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Iv1,svgWidth:24,svgHeight:24})),Sv1='',_v1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sv1,svgWidth:24,svgHeight:24})),Rv1='',bv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rv1,svgWidth:24,svgHeight:24})),Qv1='',Tv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qv1,svgWidth:24,svgHeight:24})),Dv1='',Pv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dv1,svgWidth:24,svgHeight:24})),Nv1='',Hv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nv1,svgWidth:24,svgHeight:24})),jv1='',Uv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jv1,svgWidth:24,svgHeight:24})),Fv1='',Wv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fv1,svgWidth:24,svgHeight:24})),Gv1='',Ov1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gv1,svgWidth:24,svgHeight:24})),zv1='',Vv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zv1,svgWidth:24,svgHeight:24})),$v1='',Yv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$v1,svgWidth:24,svgHeight:24})),Xv1='',Jv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xv1,svgWidth:24,svgHeight:24})),qv1='',Kv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qv1,svgWidth:24,svgHeight:24})),Zv1='',eL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zv1,svgWidth:24,svgHeight:24})),tL1='',nL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tL1,svgWidth:24,svgHeight:24})),CL1='',rL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CL1,svgWidth:24,svgHeight:24})),iL1='',oL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iL1,svgWidth:24,svgHeight:24})),sL1='',lL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sL1,svgWidth:24,svgHeight:24})),aL1='',cL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aL1,svgWidth:24,svgHeight:24})),uL1='',dL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uL1,svgWidth:24,svgHeight:24})),hL1='',fL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hL1,svgWidth:24,svgHeight:24})),gL1='',pL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gL1,svgWidth:24,svgHeight:24})),AL1='',vL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AL1,svgWidth:24,svgHeight:24})),LL1='',wL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LL1,svgWidth:24,svgHeight:24})),xL1='',mL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xL1,svgWidth:24,svgHeight:24})),kL1='',ML1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kL1,svgWidth:24,svgHeight:24})),EL1='',yL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EL1,svgWidth:24,svgHeight:24})),IL1='',BL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IL1,svgWidth:24,svgHeight:24})),SL1='',_L1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SL1,svgWidth:24,svgHeight:24})),RL1='',bL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RL1,svgWidth:24,svgHeight:24})),QL1='',TL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QL1,svgWidth:24,svgHeight:24})),DL1='',PL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DL1,svgWidth:24,svgHeight:24})),NL1='',HL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NL1,svgWidth:24,svgHeight:24})),jL1='',UL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jL1,svgWidth:24,svgHeight:24})),FL1='',WL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FL1,svgWidth:24,svgHeight:24})),GL1='',OL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GL1,svgWidth:24,svgHeight:24})),zL1='',VL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zL1,svgWidth:24,svgHeight:24})),$L1='',YL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$L1,svgWidth:24,svgHeight:24})),XL1='',JL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XL1,svgWidth:24,svgHeight:24})),qL1='',KL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qL1,svgWidth:24,svgHeight:24})),ZL1='',ew1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZL1,svgWidth:24,svgHeight:24})),tw1='',nw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tw1,svgWidth:24,svgHeight:24})),Cw1='',rw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cw1,svgWidth:24,svgHeight:24})),iw1='',ow1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iw1,svgWidth:24,svgHeight:24})),sw1='',lw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sw1,svgWidth:24,svgHeight:24})),aw1='',cw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aw1,svgWidth:24,svgHeight:24})),uw1='',dw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uw1,svgWidth:24,svgHeight:24})),hw1='',fw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hw1,svgWidth:24,svgHeight:24})),gw1='',pw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gw1,svgWidth:24,svgHeight:24})),Aw1='',vw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Aw1,svgWidth:24,svgHeight:24})),Lw1='',ww1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lw1,svgWidth:24,svgHeight:24})),xw1='',mw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xw1,svgWidth:24,svgHeight:24})),kw1='',Mw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kw1,svgWidth:24,svgHeight:24})),Ew1='',yw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ew1,svgWidth:24,svgHeight:24})),Iw1='',Bw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Iw1,svgWidth:24,svgHeight:24})),Sw1='',_w1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sw1,svgWidth:24,svgHeight:24})),Rw1='',bw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rw1,svgWidth:24,svgHeight:24})),Qw1='',Tw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qw1,svgWidth:24,svgHeight:24})),Dw1='',Pw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dw1,svgWidth:24,svgHeight:24})),Nw1='',Hw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nw1,svgWidth:24,svgHeight:24})),jw1='',Uw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jw1,svgWidth:24,svgHeight:24})),Fw1='',Ww1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fw1,svgWidth:24,svgHeight:24})),Gw1='',Ow1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gw1,svgWidth:24,svgHeight:24})),zw1='',Vw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zw1,svgWidth:24,svgHeight:24})),$w1='',Yw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$w1,svgWidth:24,svgHeight:24})),Xw1='',Jw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xw1,svgWidth:24,svgHeight:24})),qw1='',Kw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qw1,svgWidth:24,svgHeight:24})),Zw1='',ex1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zw1,svgWidth:24,svgHeight:24})),tx1='',nx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tx1,svgWidth:24,svgHeight:24})),Cx1='',rx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cx1,svgWidth:24,svgHeight:24})),ix1='',ox1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ix1,svgWidth:24,svgHeight:24})),sx1='',lx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sx1,svgWidth:24,svgHeight:24})),ax1='',cx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ax1,svgWidth:24,svgHeight:24})),ux1='',dx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ux1,svgWidth:24,svgHeight:24})),hx1='',fx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hx1,svgWidth:24,svgHeight:24})),gx1='',px1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gx1,svgWidth:24,svgHeight:24})),Ax1='',vx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ax1,svgWidth:24,svgHeight:24})),Lx1='',wx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lx1,svgWidth:24,svgHeight:24})),xx1='',mx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xx1,svgWidth:24,svgHeight:24})),kx1='',Mx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kx1,svgWidth:24,svgHeight:24})),Ex1='',yx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ex1,svgWidth:24,svgHeight:24})),Ix1='',Bx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ix1,svgWidth:24,svgHeight:24})),Sx1='',_x1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sx1,svgWidth:24,svgHeight:24})),Rx1='',bx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rx1,svgWidth:24,svgHeight:24})),Qx1='',Tx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qx1,svgWidth:24,svgHeight:24})),Dx1='',Px1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dx1,svgWidth:24,svgHeight:24})),Nx1='',Hx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nx1,svgWidth:24,svgHeight:24})),jx1='',Ux1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jx1,svgWidth:24,svgHeight:24})),Fx1='',Wx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fx1,svgWidth:24,svgHeight:24})),Gx1='',Ox1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gx1,svgWidth:24,svgHeight:24})),zx1='',Vx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zx1,svgWidth:24,svgHeight:24})),$x1='',Yx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$x1,svgWidth:24,svgHeight:24})),Xx1='',Jx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xx1,svgWidth:24,svgHeight:24})),qx1='',Kx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qx1,svgWidth:24,svgHeight:24})),Zx1='',em1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zx1,svgWidth:24,svgHeight:24})),tm1='',nm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tm1,svgWidth:24,svgHeight:24})),Cm1='',rm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cm1,svgWidth:24,svgHeight:24})),im1='',om1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:im1,svgWidth:24,svgHeight:24})),sm1='',lm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sm1,svgWidth:24,svgHeight:24})),am1='',cm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:am1,svgWidth:24,svgHeight:24})),um1='',dm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:um1,svgWidth:24,svgHeight:24})),hm1='',fm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hm1,svgWidth:24,svgHeight:24})),gm1='',pm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gm1,svgWidth:24,svgHeight:24})),Am1='',vm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Am1,svgWidth:24,svgHeight:24})),Lm1='',wm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lm1,svgWidth:24,svgHeight:24})),xm1='',mm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xm1,svgWidth:24,svgHeight:24})),km1='',Mm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:km1,svgWidth:24,svgHeight:24})),Em1='',ym1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Em1,svgWidth:24,svgHeight:24})),Im1='',Bm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Im1,svgWidth:24,svgHeight:24})),Sm1='',_m1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sm1,svgWidth:24,svgHeight:24})),Rm1='',bm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rm1,svgWidth:24,svgHeight:24})),Qm1='',Tm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qm1,svgWidth:24,svgHeight:24})),Dm1='',Pm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dm1,svgWidth:24,svgHeight:24})),Nm1='',Hm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nm1,svgWidth:24,svgHeight:24})),jm1='',Um1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jm1,svgWidth:24,svgHeight:24})),Fm1='',Wm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fm1,svgWidth:24,svgHeight:24})),Gm1='',Om1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gm1,svgWidth:24,svgHeight:24})),zm1='',Vm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zm1,svgWidth:24,svgHeight:24})),$m1='',Ym1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$m1,svgWidth:24,svgHeight:24})),Xm1='',Jm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xm1,svgWidth:24,svgHeight:24})),qm1='',Km1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qm1,svgWidth:24,svgHeight:24})),Zm1='',ek1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zm1,svgWidth:24,svgHeight:24})),tk1='',nk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tk1,svgWidth:24,svgHeight:24})),Ck1='',rk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ck1,svgWidth:24,svgHeight:24})),ik1='',ok1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ik1,svgWidth:24,svgHeight:24})),sk1='',lk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sk1,svgWidth:24,svgHeight:24})),ak1='',ck1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ak1,svgWidth:24,svgHeight:24})),uk1='',dk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uk1,svgWidth:24,svgHeight:24})),hk1='',fk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hk1,svgWidth:24,svgHeight:24})),gk1='',pk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gk1,svgWidth:24,svgHeight:24})),Ak1='',vk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ak1,svgWidth:24,svgHeight:24})),Lk1='',wk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Lk1,svgWidth:24,svgHeight:24})),xk1='',mk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xk1,svgWidth:24,svgHeight:24})),kk1='',Mk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kk1,svgWidth:24,svgHeight:24})),Ek1='',yk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ek1,svgWidth:24,svgHeight:24})),Ik1='',Bk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ik1,svgWidth:24,svgHeight:24})),Sk1='',_k1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sk1,svgWidth:24,svgHeight:24})),Rk1='',bk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Rk1,svgWidth:24,svgHeight:24})),Qk1='',Tk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qk1,svgWidth:24,svgHeight:24})),Dk1='',Pk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dk1,svgWidth:24,svgHeight:24})),Nk1='',Hk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nk1,svgWidth:24,svgHeight:24})),jk1='',Uk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jk1,svgWidth:24,svgHeight:24})),Fk1='',Wk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fk1,svgWidth:24,svgHeight:24})),Gk1='',Ok1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gk1,svgWidth:24,svgHeight:24})),zk1='',Vk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zk1,svgWidth:24,svgHeight:24})),$k1='',Yk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$k1,svgWidth:24,svgHeight:24})),Xk1='',Jk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xk1,svgWidth:24,svgHeight:24})),qk1='',Kk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qk1,svgWidth:24,svgHeight:24})),Zk1='',eM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zk1,svgWidth:24,svgHeight:24})),tM1='',nM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tM1,svgWidth:24,svgHeight:24})),CM1='',rM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CM1,svgWidth:24,svgHeight:24})),iM1='',oM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iM1,svgWidth:24,svgHeight:24})),sM1='',lM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sM1,svgWidth:24,svgHeight:24})),aM1='',cM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aM1,svgWidth:24,svgHeight:24})),uM1='',dM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uM1,svgWidth:24,svgHeight:24})),hM1='',fM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hM1,svgWidth:24,svgHeight:24})),gM1='',pM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gM1,svgWidth:24,svgHeight:24})),AM1='',vM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AM1,svgWidth:24,svgHeight:24})),LM1='',wM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LM1,svgWidth:24,svgHeight:24})),xM1='',mM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xM1,svgWidth:24,svgHeight:24})),kM1='',MM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kM1,svgWidth:24,svgHeight:24})),EM1='',yM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EM1,svgWidth:24,svgHeight:24})),IM1='',BM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IM1,svgWidth:24,svgHeight:24})),SM1='',_M1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SM1,svgWidth:24,svgHeight:24})),RM1='',bM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RM1,svgWidth:24,svgHeight:24})),QM1='',TM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QM1,svgWidth:24,svgHeight:24})),DM1='',PM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DM1,svgWidth:24,svgHeight:24})),NM1='',HM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NM1,svgWidth:24,svgHeight:24})),jM1='',UM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jM1,svgWidth:24,svgHeight:24})),FM1='',WM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FM1,svgWidth:24,svgHeight:24})),GM1='',OM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GM1,svgWidth:24,svgHeight:24})),zM1='',VM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zM1,svgWidth:24,svgHeight:24})),$M1='',YM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$M1,svgWidth:24,svgHeight:24})),XM1='',JM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XM1,svgWidth:24,svgHeight:24})),qM1='',KM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qM1,svgWidth:24,svgHeight:24})),ZM1='',eE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZM1,svgWidth:24,svgHeight:24})),tE1='',nE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tE1,svgWidth:24,svgHeight:24})),CE1='',rE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CE1,svgWidth:24,svgHeight:24})),iE1='',oE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iE1,svgWidth:24,svgHeight:24})),sE1='',lE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sE1,svgWidth:24,svgHeight:24})),aE1='',cE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aE1,svgWidth:24,svgHeight:24})),uE1='',dE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uE1,svgWidth:24,svgHeight:24})),hE1='',fE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hE1,svgWidth:24,svgHeight:24})),gE1='',pE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gE1,svgWidth:24,svgHeight:24})),AE1='',vE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AE1,svgWidth:24,svgHeight:24})),LE1='',wE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LE1,svgWidth:24,svgHeight:24})),xE1='',mE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xE1,svgWidth:24,svgHeight:24})),kE1='',ME1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kE1,svgWidth:24,svgHeight:24})),EE1='',yE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EE1,svgWidth:24,svgHeight:24})),IE1='',BE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:IE1,svgWidth:24,svgHeight:24})),SE1='',_E1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SE1,svgWidth:24,svgHeight:24})),RE1='',bE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RE1,svgWidth:24,svgHeight:24})),QE1='',TE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QE1,svgWidth:24,svgHeight:24})),DE1='',PE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DE1,svgWidth:24,svgHeight:24})),NE1='',HE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NE1,svgWidth:24,svgHeight:24})),jE1='',UE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jE1,svgWidth:24,svgHeight:24})),FE1='',WE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FE1,svgWidth:24,svgHeight:24})),GE1='',OE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GE1,svgWidth:24,svgHeight:24})),zE1='',VE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zE1,svgWidth:24,svgHeight:24})),$E1='',YE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$E1,svgWidth:24,svgHeight:24})),XE1='',JE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:XE1,svgWidth:24,svgHeight:24})),qE1='',KE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qE1,svgWidth:24,svgHeight:24})),ZE1='',ey1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ZE1,svgWidth:24,svgHeight:24})),ty1='',ny1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ty1,svgWidth:24,svgHeight:24})),Cy1='',ry1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Cy1,svgWidth:24,svgHeight:24})),iy1='',oy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iy1,svgWidth:24,svgHeight:24})),sy1='',ly1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sy1,svgWidth:24,svgHeight:24})),ay1='',cy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ay1,svgWidth:24,svgHeight:24})),uy1='',dy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uy1,svgWidth:24,svgHeight:24})),hy1='',fy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hy1,svgWidth:24,svgHeight:24})),gy1='',py1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gy1,svgWidth:24,svgHeight:24})),Ay1='',vy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ay1,svgWidth:24,svgHeight:24})),Ly1='',wy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ly1,svgWidth:24,svgHeight:24})),xy1='',my1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xy1,svgWidth:24,svgHeight:24})),ky1='',My1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ky1,svgWidth:24,svgHeight:24})),Ey1='',yy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ey1,svgWidth:24,svgHeight:24})),Iy1='',By1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Iy1,svgWidth:24,svgHeight:24})),Sy1='',_y1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Sy1,svgWidth:24,svgHeight:24})),Ry1='',by1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ry1,svgWidth:24,svgHeight:24})),Qy1='',Ty1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Qy1,svgWidth:24,svgHeight:24})),Dy1='',Py1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Dy1,svgWidth:24,svgHeight:24})),Ny1='',Hy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ny1,svgWidth:24,svgHeight:24})),jy1='',Uy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jy1,svgWidth:24,svgHeight:24})),Fy1='',Wy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Fy1,svgWidth:24,svgHeight:24})),Gy1='',Oy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Gy1,svgWidth:24,svgHeight:24})),zy1='',Vy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zy1,svgWidth:24,svgHeight:24})),$y1='',Yy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:$y1,svgWidth:24,svgHeight:24})),Xy1='',Jy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Xy1,svgWidth:24,svgHeight:24})),qy1='',Ky1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:qy1,svgWidth:24,svgHeight:24})),Zy1='',eI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Zy1,svgWidth:24,svgHeight:24})),tI1='',nI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:tI1,svgWidth:24,svgHeight:24})),CI1='',rI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:CI1,svgWidth:24,svgHeight:24})),iI1='',oI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:iI1,svgWidth:24,svgHeight:24})),sI1='',lI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:sI1,svgWidth:24,svgHeight:24})),aI1='',cI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:aI1,svgWidth:24,svgHeight:24})),uI1='',dI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:uI1,svgWidth:24,svgHeight:24})),hI1='',fI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:hI1,svgWidth:24,svgHeight:24})),gI1='',pI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:gI1,svgWidth:24,svgHeight:24})),AI1='',vI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:AI1,svgWidth:24,svgHeight:24})),LI1='',wI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:LI1,svgWidth:24,svgHeight:24})),xI1='',mI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:xI1,svgWidth:24,svgHeight:24})),kI1='',MI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:kI1,svgWidth:24,svgHeight:24})),EI1='',yI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:EI1,svgWidth:24,svgHeight:24})),II1='',BI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:II1,svgWidth:24,svgHeight:24})),SI1='',_I1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:SI1,svgWidth:24,svgHeight:24})),RI1='',bI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:RI1,svgWidth:24,svgHeight:24})),QI1='',TI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:QI1,svgWidth:24,svgHeight:24})),DI1='',PI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:DI1,svgWidth:24,svgHeight:24})),NI1='',HI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NI1,svgWidth:24,svgHeight:24})),jI1='',UI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:jI1,svgWidth:24,svgHeight:24})),FI1='',WI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:FI1,svgWidth:24,svgHeight:24})),GI1='',OI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:GI1,svgWidth:24,svgHeight:24})),zI1='',VI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:zI1,svgWidth:24,svgHeight:24})),$I1=Object.freeze(Object.defineProperty({__proto__:null,AArrowDown:rj,AArrowUp:oj,ALargeSmall:lj,Accessibility:cj,Activity:fj,ActivitySquare:dj,AirVent:pj,Airplay:vj,AlarmClock:Bj,AlarmClockCheck:wj,AlarmClockMinus:mj,AlarmClockOff:Mj,AlarmClockPlus:yj,AlarmSmoke:_j,Album:bj,AlertCircle:Tj,AlertOctagon:Pj,AlertTriangle:Hj,AlignCenter:Oj,AlignCenterHorizontal:Uj,AlignCenterVertical:Wj,AlignEndHorizontal:Vj,AlignEndVertical:Yj,AlignHorizontalDistributeCenter:Jj,AlignHorizontalDistributeEnd:Kj,AlignHorizontalDistributeStart:eU,AlignHorizontalJustifyCenter:nU,AlignHorizontalJustifyEnd:rU,AlignHorizontalJustifyStart:oU,AlignHorizontalSpaceAround:lU,AlignHorizontalSpaceBetween:cU,AlignJustify:dU,AlignLeft:fU,AlignRight:pU,AlignStartHorizontal:vU,AlignStartVertical:wU,AlignVerticalDistributeCenter:mU,AlignVerticalDistributeEnd:MU,AlignVerticalDistributeStart:yU,AlignVerticalJustifyCenter:BU,AlignVerticalJustifyEnd:_U,AlignVerticalJustifyStart:bU,AlignVerticalSpaceAround:TU,AlignVerticalSpaceBetween:PU,Ambulance:HU,Ampersand:UU,Ampersands:WU,Anchor:OU,Angry:VU,Annoyed:YU,Antenna:JU,Anvil:KU,Aperture:eF,AppWindow:nF,Apple:rF,Archive:cF,ArchiveRestore:oF,ArchiveX:lF,AreaChart:dF,Armchair:fF,ArrowBigDown:vF,ArrowBigDownDash:pF,ArrowBigLeft:mF,ArrowBigLeftDash:wF,ArrowBigRight:yF,ArrowBigRightDash:MF,ArrowBigUp:_F,ArrowBigUpDash:BF,ArrowDown:vW,ArrowDown01:bF,ArrowDown10:TF,ArrowDownAZ:PF,ArrowDownCircle:HF,ArrowDownFromLine:UF,ArrowDownLeft:YF,ArrowDownLeftFromCircle:WF,ArrowDownLeftFromSquare:OF,ArrowDownLeftSquare:VF,ArrowDownNarrowWide:JF,ArrowDownRight:rW,ArrowDownRightFromCircle:KF,ArrowDownRightFromSquare:eW,ArrowDownRightSquare:nW,ArrowDownSquare:oW,ArrowDownToDot:lW,ArrowDownToLine:cW,ArrowDownUp:dW,ArrowDownWideNarrow:fW,ArrowDownZA:pW,ArrowLeft:_W,ArrowLeftCircle:wW,ArrowLeftFromLine:mW,ArrowLeftRight:MW,ArrowLeftSquare:yW,ArrowLeftToLine:BW,ArrowRight:WW,ArrowRightCircle:bW,ArrowRightFromLine:TW,ArrowRightLeft:PW,ArrowRightSquare:HW,ArrowRightToLine:UW,ArrowUp:_G,ArrowUp01:OW,ArrowUp10:VW,ArrowUpAZ:YW,ArrowUpCircle:JW,ArrowUpDown:KW,ArrowUpFromDot:eG,ArrowUpFromLine:nG,ArrowUpLeft:cG,ArrowUpLeftFromCircle:rG,ArrowUpLeftFromSquare:oG,ArrowUpLeftSquare:lG,ArrowUpNarrowWide:dG,ArrowUpRight:wG,ArrowUpRightFromCircle:fG,ArrowUpRightFromSquare:pG,ArrowUpRightSquare:vG,ArrowUpSquare:mG,ArrowUpToLine:MG,ArrowUpWideNarrow:yG,ArrowUpZA:BG,ArrowsUpFromLine:bG,Asterisk:PG,AsteriskSquare:TG,AtSign:HG,Atom:UG,AudioLines:WG,AudioWaveform:OG,Award:VG,Axe:YG,Axis3d:JG,Baby:KG,Backpack:eO,Badge:TO,BadgeAlert:nO,BadgeCent:rO,BadgeCheck:oO,BadgeDollarSign:lO,BadgeEuro:cO,BadgeHelp:dO,BadgeIndianRupee:fO,BadgeInfo:pO,BadgeJapaneseYen:vO,BadgeMinus:wO,BadgePercent:mO,BadgePlus:MO,BadgePoundSterling:yO,BadgeRussianRuble:BO,BadgeSwissFranc:_O,BadgeX:bO,BaggageClaim:PO,Ban:HO,Banana:UO,Banknote:WO,BarChart:nz,BarChart2:OO,BarChart3:VO,BarChart4:YO,BarChartBig:JO,BarChartHorizontal:ez,BarChartHorizontalBig:KO,Barcode:rz,Baseline:oz,Bath:lz,Battery:wz,BatteryCharging:cz,BatteryFull:dz,BatteryLow:fz,BatteryMedium:pz,BatteryWarning:vz,Beaker:mz,Bean:yz,BeanOff:Mz,Bed:bz,BedDouble:Bz,BedSingle:_z,Beef:Tz,Beer:Pz,Bell:Jz,BellDot:Hz,BellElectric:Uz,BellMinus:Wz,BellOff:Oz,BellPlus:Vz,BellRing:Yz,BetweenHorizontalEnd:Kz,BetweenHorizontalStart:eV,BetweenVerticalEnd:nV,BetweenVerticalStart:rV,Bike:oV,Binary:lV,Biohazard:cV,Bird:dV,Bitcoin:fV,Blend:pV,Blinds:vV,Blocks:wV,Bluetooth:BV,BluetoothConnected:mV,BluetoothOff:MV,BluetoothSearching:yV,Bold:_V,Bolt:bV,Bomb:TV,Bone:PV,Book:_$,BookA:HV,BookAudio:UV,BookCheck:WV,BookCopy:OV,BookDashed:VV,BookDown:YV,BookHeadphones:JV,BookHeart:KV,BookImage:e$,BookKey:n$,BookLock:r$,BookMarked:o$,BookMinus:l$,BookOpen:f$,BookOpenCheck:c$,BookOpenText:d$,BookPlus:p$,BookText:v$,BookType:w$,BookUp:M$,BookUp2:m$,BookUser:y$,BookX:B$,Bookmark:U$,BookmarkCheck:b$,BookmarkMinus:T$,BookmarkPlus:P$,BookmarkX:H$,BoomBox:W$,Bot:O$,Box:Y$,BoxSelect:V$,Boxes:J$,Braces:K$,Brackets:eY,Brain:oY,BrainCircuit:nY,BrainCog:rY,BrickWall:lY,Briefcase:cY,BringToFront:dY,Brush:fY,Bug:wY,BugOff:pY,BugPlay:vY,Building:MY,Building2:mY,Bus:BY,BusFront:yY,Cable:bY,CableCar:_Y,Cake:PY,CakeSlice:TY,Calculator:HY,Calendar:pX,CalendarCheck:WY,CalendarCheck2:UY,CalendarClock:OY,CalendarDays:VY,CalendarFold:YY,CalendarHeart:JY,CalendarMinus:eX,CalendarMinus2:KY,CalendarOff:nX,CalendarPlus:oX,CalendarPlus2:rX,CalendarRange:lX,CalendarSearch:cX,CalendarX:fX,CalendarX2:dX,Camera:wX,CameraOff:vX,CandlestickChart:mX,Candy:BX,CandyCane:MX,CandyOff:yX,Captions:bX,CaptionsOff:_X,Car:HX,CarFront:TX,CarTaxiFront:PX,Caravan:UX,Carrot:WX,CaseLower:OX,CaseSensitive:VX,CaseUpper:YX,CassetteTape:JX,Cast:KX,Castle:eJ,Cat:nJ,Cctv:rJ,Check:pJ,CheckCheck:oJ,CheckCircle:cJ,CheckCircle2:lJ,CheckSquare:fJ,CheckSquare2:dJ,ChefHat:vJ,Cherry:wJ,ChevronDown:yJ,ChevronDownCircle:mJ,ChevronDownSquare:MJ,ChevronFirst:BJ,ChevronLast:_J,ChevronLeft:PJ,ChevronLeftCircle:bJ,ChevronLeftSquare:TJ,ChevronRight:WJ,ChevronRightCircle:HJ,ChevronRightSquare:UJ,ChevronUp:YJ,ChevronUpCircle:OJ,ChevronUpSquare:VJ,ChevronsDown:KJ,ChevronsDownUp:JJ,ChevronsLeft:nq,ChevronsLeftRight:eq,ChevronsRight:oq,ChevronsRightLeft:rq,ChevronsUp:cq,ChevronsUpDown:lq,Chrome:dq,Church:fq,Cigarette:vq,CigaretteOff:pq,Circle:Oq,CircleDashed:wq,CircleDollarSign:mq,CircleDot:yq,CircleDotDashed:Mq,CircleEllipsis:Bq,CircleEqual:_q,CircleFadingPlus:bq,CircleOff:Tq,CircleSlash:Hq,CircleSlash2:Pq,CircleUser:Wq,CircleUserRound:Uq,CircuitBoard:Vq,Citrus:Yq,Clapperboard:Jq,Clipboard:vK,ClipboardCheck:Kq,ClipboardCopy:eK,ClipboardList:nK,ClipboardMinus:rK,ClipboardPaste:oK,ClipboardPen:cK,ClipboardPenLine:lK,ClipboardPlus:dK,ClipboardType:fK,ClipboardX:pK,Clock:OK,Clock1:wK,Clock10:mK,Clock11:MK,Clock12:yK,Clock2:BK,Clock3:_K,Clock4:bK,Clock5:TK,Clock6:PK,Clock7:HK,Clock8:UK,Clock9:WK,Cloud:vZ,CloudCog:VK,CloudDrizzle:YK,CloudFog:JK,CloudHail:KK,CloudLightning:eZ,CloudMoon:rZ,CloudMoonRain:nZ,CloudOff:oZ,CloudRain:cZ,CloudRainWind:lZ,CloudSnow:dZ,CloudSun:pZ,CloudSunRain:fZ,Cloudy:wZ,Clover:mZ,Club:MZ,Code:_Z,Code2:yZ,CodeSquare:BZ,Codepen:bZ,Codesandbox:TZ,Coffee:PZ,Cog:HZ,Coins:UZ,Columns2:WZ,Columns3:OZ,Columns4:VZ,Combine:YZ,Command:JZ,Compass:KZ,Component:e11,Computer:n11,ConciergeBell:r11,Cone:o11,Construction:l11,Contact:d11,Contact2:c11,Container:f11,Contrast:p11,Cookie:v11,CookingPot:w11,Copy:b11,CopyCheck:m11,CopyMinus:M11,CopyPlus:y11,CopySlash:B11,CopyX:_11,Copyleft:T11,Copyright:P11,CornerDownLeft:H11,CornerDownRight:U11,CornerLeftDown:W11,CornerLeftUp:O11,CornerRightDown:V11,CornerRightUp:Y11,CornerUpLeft:J11,CornerUpRight:K11,Cpu:e01,CreativeCommons:n01,CreditCard:r01,Croissant:o01,Crop:l01,Cross:c01,Crosshair:d01,Crown:f01,Cuboid:p01,CupSoda:v01,Currency:w01,Cylinder:m01,Database:B01,DatabaseBackup:M01,DatabaseZap:y01,Delete:_01,Dessert:b01,Diameter:T01,Diamond:P01,Dice1:H01,Dice2:U01,Dice3:W01,Dice4:O01,Dice5:V01,Dice6:Y01,Dices:J01,Diff:K01,Disc:o21,Disc2:e21,Disc3:n21,DiscAlbum:r21,Divide:d21,DivideCircle:l21,DivideSquare:c21,Dna:p21,DnaOff:f21,Dog:v21,DollarSign:w21,Donut:m21,DoorClosed:M21,DoorOpen:y21,Dot:_21,DotSquare:B21,Download:T21,DownloadCloud:b21,DraftingCompass:P21,Drama:H21,Dribbble:U21,Drill:W21,Droplet:O21,Droplets:V21,Drum:Y21,Drumstick:J21,Dumbbell:K21,Ear:n91,EarOff:e91,Eclipse:r91,Egg:c91,EggFried:o91,EggOff:l91,Equal:p91,EqualNot:d91,EqualSquare:f91,Eraser:v91,Euro:w91,Expand:m91,ExternalLink:M91,Eye:B91,EyeOff:y91,Facebook:_91,Factory:b91,Fan:T91,FastForward:P91,Feather:H91,Fence:U91,FerrisWheel:W91,Figma:O91,File:K41,FileArchive:V91,FileAudio:J91,FileAudio2:Y91,FileAxis3d:K91,FileBadge:n81,FileBadge2:e81,FileBarChart:o81,FileBarChart2:r81,FileBox:l81,FileCheck:d81,FileCheck2:c81,FileClock:f81,FileCode:v81,FileCode2:p81,FileCog:w81,FileDiff:m81,FileDigit:M81,FileDown:y81,FileHeart:B81,FileImage:_81,FileInput:b81,FileJson:P81,FileJson2:T81,FileKey:U81,FileKey2:H81,FileLineChart:W81,FileLock:V81,FileLock2:O81,FileMinus:J81,FileMinus2:Y81,FileMusic:K81,FileOutput:e41,FilePen:r41,FilePenLine:n41,FilePieChart:o41,FilePlus:c41,FilePlus2:l41,FileQuestion:d41,FileScan:f41,FileSearch:v41,FileSearch2:p41,FileSliders:w41,FileSpreadsheet:m41,FileStack:M41,FileSymlink:y41,FileTerminal:B41,FileText:_41,FileType:T41,FileType2:b41,FileUp:P41,FileVideo:U41,FileVideo2:H41,FileVolume:O41,FileVolume2:W41,FileWarning:V41,FileX:J41,FileX2:Y41,Files:e61,Film:n61,Filter:o61,FilterX:r61,Fingerprint:l61,FireExtinguisher:c61,Fish:p61,FishOff:d61,FishSymbol:f61,Flag:M61,FlagOff:v61,FlagTriangleLeft:w61,FlagTriangleRight:m61,Flame:B61,FlameKindling:y61,Flashlight:b61,FlashlightOff:_61,FlaskConical:P61,FlaskConicalOff:T61,FlaskRound:H61,FlipHorizontal:W61,FlipHorizontal2:U61,FlipVertical:V61,FlipVertical2:O61,Flower:J61,Flower2:Y61,Focus:K61,FoldHorizontal:e51,FoldVertical:n51,Folder:o31,FolderArchive:r51,FolderCheck:o51,FolderClock:l51,FolderClosed:c51,FolderCog:d51,FolderDot:f51,FolderDown:p51,FolderGit:w51,FolderGit2:v51,FolderHeart:m51,FolderInput:M51,FolderKanban:y51,FolderKey:B51,FolderLock:_51,FolderMinus:b51,FolderOpen:P51,FolderOpenDot:T51,FolderOutput:H51,FolderPen:U51,FolderPlus:W51,FolderRoot:O51,FolderSearch:Y51,FolderSearch2:V51,FolderSymlink:J51,FolderSync:K51,FolderTree:e31,FolderUp:n31,FolderX:r31,Folders:l31,Footprints:c31,Forklift:d31,FormInput:f31,Forward:p31,Frame:v31,Framer:w31,Frown:m31,Fuel:M31,Fullscreen:y31,FunctionSquare:B31,GalleryHorizontal:b31,GalleryHorizontalEnd:_31,GalleryThumbnails:T31,GalleryVertical:H31,GalleryVerticalEnd:P31,Gamepad:W31,Gamepad2:U31,GanttChart:V31,GanttChartSquare:O31,Gauge:J31,GaugeCircle:Y31,Gavel:K31,Gem:e71,Ghost:n71,Gift:r71,GitBranch:l71,GitBranchPlus:o71,GitCommitHorizontal:c71,GitCommitVertical:d71,GitCompare:p71,GitCompareArrows:f71,GitFork:v71,GitGraph:w71,GitMerge:m71,GitPullRequest:T71,GitPullRequestArrow:M71,GitPullRequestClosed:y71,GitPullRequestCreate:_71,GitPullRequestCreateArrow:B71,GitPullRequestDraft:b71,Github:P71,Gitlab:H71,GlassWater:U71,Glasses:W71,Globe:V71,Globe2:O71,Goal:Y71,Grab:J71,GraduationCap:K71,Grape:ee1,Grid2x2:ne1,Grid3x3:re1,Grip:ce1,GripHorizontal:oe1,GripVertical:le1,Group:de1,Guitar:fe1,Hammer:pe1,Hand:Be1,HandCoins:ve1,HandHeart:we1,HandHelping:me1,HandMetal:Me1,HandPlatter:ye1,Handshake:_e1,HardDrive:Pe1,HardDriveDownload:be1,HardDriveUpload:Te1,HardHat:He1,Hash:Ue1,Haze:We1,HdmiPort:Oe1,Heading:rt1,Heading1:Ve1,Heading2:Ye1,Heading3:Je1,Heading4:Ke1,Heading5:et1,Heading6:nt1,Headphones:ot1,Headset:lt1,Heart:vt1,HeartCrack:ct1,HeartHandshake:dt1,HeartOff:ft1,HeartPulse:pt1,Heater:wt1,HelpCircle:mt1,Hexagon:Mt1,Highlighter:yt1,History:Bt1,Home:_t1,Hop:Tt1,HopOff:bt1,Hotel:Pt1,Hourglass:Ht1,IceCream:Wt1,IceCream2:Ut1,Image:Kt1,ImageDown:Ot1,ImageMinus:Vt1,ImageOff:Yt1,ImagePlus:Jt1,Images:en1,Import:nn1,Inbox:rn1,Indent:on1,IndianRupee:ln1,Infinity:cn1,Info:dn1,InspectionPanel:fn1,Instagram:pn1,Italic:vn1,IterationCcw:wn1,IterationCw:mn1,JapaneseYen:Mn1,Joystick:yn1,Kanban:bn1,KanbanSquare:_n1,KanbanSquareDashed:Bn1,Key:Hn1,KeyRound:Tn1,KeySquare:Pn1,Keyboard:Wn1,KeyboardMusic:Un1,Lamp:eC1,LampCeiling:On1,LampDesk:Vn1,LampFloor:Yn1,LampWallDown:Jn1,LampWallUp:Kn1,LandPlot:nC1,Landmark:rC1,Languages:oC1,Laptop:cC1,Laptop2:lC1,Lasso:fC1,LassoSelect:dC1,Laugh:pC1,Layers:mC1,Layers2:vC1,Layers3:wC1,LayoutDashboard:MC1,LayoutGrid:yC1,LayoutList:BC1,LayoutPanelLeft:_C1,LayoutPanelTop:bC1,LayoutTemplate:TC1,Leaf:PC1,LeafyGreen:HC1,Library:OC1,LibraryBig:UC1,LibrarySquare:WC1,LifeBuoy:VC1,Ligature:YC1,Lightbulb:KC1,LightbulbOff:JC1,LineChart:er1,Link:or1,Link2:rr1,Link2Off:nr1,Linkedin:lr1,List:Hr1,ListChecks:cr1,ListCollapse:dr1,ListEnd:fr1,ListFilter:pr1,ListMinus:vr1,ListMusic:wr1,ListOrdered:mr1,ListPlus:Mr1,ListRestart:yr1,ListStart:Br1,ListTodo:_r1,ListTree:br1,ListVideo:Tr1,ListX:Pr1,Loader:Wr1,Loader2:Ur1,Locate:Yr1,LocateFixed:Or1,LocateOff:Vr1,Lock:Kr1,LockKeyhole:Jr1,LogIn:ei1,LogOut:ni1,Lollipop:ri1,Luggage:oi1,MSquare:li1,Magnet:ci1,Mail:Bi1,MailCheck:di1,MailMinus:fi1,MailOpen:pi1,MailPlus:vi1,MailQuestion:wi1,MailSearch:mi1,MailWarning:Mi1,MailX:yi1,Mailbox:_i1,Mails:bi1,Map:Ui1,MapPin:Pi1,MapPinOff:Ti1,MapPinned:Hi1,Martini:Wi1,Maximize:Vi1,Maximize2:Oi1,Medal:Yi1,Megaphone:Ki1,MegaphoneOff:Ji1,Meh:eo1,MemoryStick:no1,Menu:oo1,MenuSquare:ro1,Merge:lo1,MessageCircle:_o1,MessageCircleCode:co1,MessageCircleDashed:do1,MessageCircleHeart:fo1,MessageCircleMore:po1,MessageCircleOff:vo1,MessageCirclePlus:wo1,MessageCircleQuestion:mo1,MessageCircleReply:Mo1,MessageCircleWarning:yo1,MessageCircleX:Bo1,MessageSquare:os1,MessageSquareCode:bo1,MessageSquareDashed:To1,MessageSquareDiff:Po1,MessageSquareDot:Ho1,MessageSquareHeart:Uo1,MessageSquareMore:Wo1,MessageSquareOff:Oo1,MessageSquarePlus:Vo1,MessageSquareQuote:Yo1,MessageSquareReply:Jo1,MessageSquareShare:Ko1,MessageSquareText:es1,MessageSquareWarning:ns1,MessageSquareX:rs1,MessagesSquare:ls1,Mic:fs1,Mic2:cs1,MicOff:ds1,Microscope:ps1,Microwave:vs1,Milestone:ws1,Milk:Ms1,MilkOff:ms1,Minimize:Bs1,Minimize2:ys1,Minus:Ts1,MinusCircle:_s1,MinusSquare:bs1,Monitor:rl1,MonitorCheck:Ps1,MonitorDot:Hs1,MonitorDown:Us1,MonitorOff:Ws1,MonitorPause:Os1,MonitorPlay:Vs1,MonitorSmartphone:Ys1,MonitorSpeaker:Js1,MonitorStop:Ks1,MonitorUp:el1,MonitorX:nl1,Moon:ll1,MoonStar:ol1,MoreHorizontal:cl1,MoreVertical:dl1,Mountain:pl1,MountainSnow:fl1,Mouse:Bl1,MousePointer:yl1,MousePointer2:vl1,MousePointerClick:wl1,MousePointerSquare:Ml1,MousePointerSquareDashed:ml1,Move:na1,Move3d:_l1,MoveDiagonal:Tl1,MoveDiagonal2:bl1,MoveDown:Ul1,MoveDownLeft:Pl1,MoveDownRight:Hl1,MoveHorizontal:Wl1,MoveLeft:Ol1,MoveRight:Vl1,MoveUp:Kl1,MoveUpLeft:Yl1,MoveUpRight:Jl1,MoveVertical:ea1,Music:ca1,Music2:ra1,Music3:oa1,Music4:la1,Navigation:va1,Navigation2:fa1,Navigation2Off:da1,NavigationOff:pa1,Network:wa1,Newspaper:ma1,Nfc:Ma1,Notebook:ba1,NotebookPen:ya1,NotebookTabs:Ba1,NotebookText:_a1,NotepadText:Pa1,NotepadTextDashed:Ta1,Nut:Ua1,NutOff:Ha1,Octagon:Wa1,Option:Oa1,Orbit:Va1,Outdent:Ya1,Package:cc1,Package2:Ja1,PackageCheck:Ka1,PackageMinus:ec1,PackageOpen:nc1,PackagePlus:rc1,PackageSearch:oc1,PackageX:lc1,PaintBucket:dc1,PaintRoller:fc1,Paintbrush:vc1,Paintbrush2:pc1,Palette:wc1,Palmtree:mc1,PanelBottom:_c1,PanelBottomClose:Mc1,PanelBottomDashed:yc1,PanelBottomOpen:Bc1,PanelLeft:Hc1,PanelLeftClose:bc1,PanelLeftDashed:Tc1,PanelLeftOpen:Pc1,PanelRight:Vc1,PanelRightClose:Uc1,PanelRightDashed:Wc1,PanelRightOpen:Oc1,PanelTop:eu1,PanelTopClose:Yc1,PanelTopDashed:Jc1,PanelTopOpen:Kc1,PanelsLeftBottom:nu1,PanelsRightBottom:ru1,PanelsTopLeft:ou1,Paperclip:lu1,Parentheses:cu1,ParkingCircle:fu1,ParkingCircleOff:du1,ParkingMeter:pu1,ParkingSquare:wu1,ParkingSquareOff:vu1,PartyPopper:mu1,Pause:Bu1,PauseCircle:Mu1,PauseOctagon:yu1,PawPrint:_u1,PcCase:bu1,Pen:Hu1,PenLine:Tu1,PenTool:Pu1,Pencil:Ou1,PencilLine:Uu1,PencilRuler:Wu1,Pentagon:Vu1,Percent:ed1,PercentCircle:Yu1,PercentDiamond:Ju1,PercentSquare:Ku1,PersonStanding:nd1,Phone:pd1,PhoneCall:rd1,PhoneForwarded:od1,PhoneIncoming:ld1,PhoneMissed:cd1,PhoneOff:dd1,PhoneOutgoing:fd1,Pi:wd1,PiSquare:vd1,Piano:md1,PictureInPicture:yd1,PictureInPicture2:Md1,PieChart:Bd1,PiggyBank:_d1,Pilcrow:Td1,PilcrowSquare:bd1,Pill:Pd1,Pin:Ud1,PinOff:Hd1,Pipette:Wd1,Pizza:Od1,Plane:Jd1,PlaneLanding:Vd1,PlaneTakeoff:Yd1,Play:nh1,PlayCircle:Kd1,PlaySquare:eh1,Plug:ch1,Plug2:rh1,PlugZap:lh1,PlugZap2:oh1,Plus:ph1,PlusCircle:dh1,PlusSquare:fh1,Pocket:wh1,PocketKnife:vh1,Podcast:mh1,Pointer:yh1,PointerOff:Mh1,Popcorn:Bh1,Popsicle:_h1,PoundSterling:bh1,Power:Uh1,PowerCircle:Th1,PowerOff:Ph1,PowerSquare:Hh1,Presentation:Wh1,Printer:Oh1,Projector:Vh1,Puzzle:Yh1,Pyramid:Jh1,QrCode:Kh1,Quote:ef1,Rabbit:nf1,Radar:rf1,Radiation:of1,Radical:lf1,Radio:ff1,RadioReceiver:cf1,RadioTower:df1,Radius:pf1,RailSymbol:vf1,Rainbow:wf1,Rat:mf1,Ratio:Mf1,Receipt:Wf1,ReceiptCent:yf1,ReceiptEuro:Bf1,ReceiptIndianRupee:_f1,ReceiptJapaneseYen:bf1,ReceiptPoundSterling:Tf1,ReceiptRussianRuble:Pf1,ReceiptSwissFranc:Hf1,ReceiptText:Uf1,RectangleHorizontal:Of1,RectangleVertical:Vf1,Recycle:Yf1,Redo:eg1,Redo2:Jf1,RedoDot:Kf1,RefreshCcw:rg1,RefreshCcwDot:ng1,RefreshCw:lg1,RefreshCwOff:og1,Refrigerator:cg1,Regex:dg1,RemoveFormatting:fg1,Repeat:wg1,Repeat1:pg1,Repeat2:vg1,Replace:Mg1,ReplaceAll:mg1,Reply:Bg1,ReplyAll:yg1,Rewind:_g1,Ribbon:bg1,Rocket:Tg1,RockingChair:Pg1,RollerCoaster:Hg1,Rotate3d:Ug1,RotateCcw:Wg1,RotateCw:Og1,Route:Yg1,RouteOff:Vg1,Router:Jg1,Rows2:Kg1,Rows3:ep1,Rows4:np1,Rss:rp1,Ruler:op1,RussianRuble:lp1,Sailboat:cp1,Salad:dp1,Sandwich:fp1,Satellite:vp1,SatelliteDish:pp1,Save:mp1,SaveAll:wp1,Scale:yp1,Scale3d:Mp1,Scaling:Bp1,Scan:Wp1,ScanBarcode:_p1,ScanEye:bp1,ScanFace:Tp1,ScanLine:Pp1,ScanSearch:Hp1,ScanText:Up1,ScatterChart:Op1,School:Yp1,School2:Vp1,Scissors:nA1,ScissorsLineDashed:Jp1,ScissorsSquare:eA1,ScissorsSquareDashedBottom:Kp1,ScreenShare:oA1,ScreenShareOff:rA1,Scroll:cA1,ScrollText:lA1,Search:wA1,SearchCheck:dA1,SearchCode:fA1,SearchSlash:pA1,SearchX:vA1,Send:yA1,SendHorizontal:mA1,SendToBack:MA1,SeparatorHorizontal:BA1,SeparatorVertical:_A1,Server:HA1,ServerCog:bA1,ServerCrash:TA1,ServerOff:PA1,Settings:WA1,Settings2:UA1,Shapes:OA1,Share:YA1,Share2:VA1,Sheet:JA1,Shell:KA1,Shield:wv1,ShieldAlert:ev1,ShieldBan:nv1,ShieldCheck:rv1,ShieldEllipsis:ov1,ShieldHalf:lv1,ShieldMinus:cv1,ShieldOff:dv1,ShieldPlus:fv1,ShieldQuestion:pv1,ShieldX:vv1,Ship:Mv1,ShipWheel:mv1,Shirt:yv1,ShoppingBag:Bv1,ShoppingBasket:_v1,ShoppingCart:bv1,Shovel:Tv1,ShowerHead:Pv1,Shrink:Hv1,Shrub:Uv1,Shuffle:Wv1,Sigma:Vv1,SigmaSquare:Ov1,Signal:nL1,SignalHigh:Yv1,SignalLow:Jv1,SignalMedium:Kv1,SignalZero:eL1,Signpost:oL1,SignpostBig:rL1,Siren:lL1,SkipBack:cL1,SkipForward:dL1,Skull:fL1,Slack:pL1,Slash:wL1,SlashSquare:vL1,Slice:mL1,Sliders:yL1,SlidersHorizontal:ML1,Smartphone:bL1,SmartphoneCharging:BL1,SmartphoneNfc:_L1,Smile:PL1,SmilePlus:TL1,Snail:HL1,Snowflake:UL1,Sofa:WL1,Soup:OL1,Space:VL1,Spade:YL1,Sparkle:JL1,Sparkles:KL1,Speaker:ew1,Speech:nw1,SpellCheck:ow1,SpellCheck2:rw1,Spline:lw1,Split:fw1,SplitSquareHorizontal:cw1,SplitSquareVertical:dw1,SprayCan:pw1,Sprout:vw1,Square:Tw1,SquareDashedBottom:mw1,SquareDashedBottomCode:ww1,SquarePen:Mw1,SquareRadical:yw1,SquareStack:Bw1,SquareUser:bw1,SquareUserRound:_w1,Squircle:Pw1,Squirrel:Hw1,Stamp:Uw1,Star:Vw1,StarHalf:Ww1,StarOff:Ow1,StepBack:Yw1,StepForward:Jw1,Stethoscope:Kw1,Sticker:ex1,StickyNote:nx1,StopCircle:rx1,Store:ox1,StretchHorizontal:lx1,StretchVertical:cx1,Strikethrough:dx1,Subscript:fx1,Sun:Mx1,SunDim:px1,SunMedium:vx1,SunMoon:wx1,SunSnow:mx1,Sunrise:yx1,Sunset:Bx1,Superscript:_x1,SwatchBook:bx1,SwissFranc:Tx1,SwitchCamera:Px1,Sword:Hx1,Swords:Ux1,Syringe:Wx1,Table:Yx1,Table2:Ox1,TableProperties:Vx1,Tablet:Kx1,TabletSmartphone:Jx1,Tablets:em1,Tag:nm1,Tags:rm1,Tally1:om1,Tally2:lm1,Tally3:cm1,Tally4:dm1,Tally5:fm1,Tangent:pm1,Target:vm1,Telescope:wm1,Tent:Mm1,TentTree:mm1,Terminal:Bm1,TerminalSquare:ym1,TestTube:bm1,TestTube2:_m1,TestTubes:Tm1,Text:Vm1,TextCursor:Hm1,TextCursorInput:Pm1,TextQuote:Um1,TextSearch:Wm1,TextSelect:Om1,Theater:Ym1,Thermometer:ek1,ThermometerSnowflake:Jm1,ThermometerSun:Km1,ThumbsDown:nk1,ThumbsUp:rk1,Ticket:vk1,TicketCheck:ok1,TicketMinus:lk1,TicketPercent:ck1,TicketPlus:dk1,TicketSlash:fk1,TicketX:pk1,Timer:Mk1,TimerOff:wk1,TimerReset:mk1,ToggleLeft:yk1,ToggleRight:Bk1,Tornado:_k1,Torus:bk1,Touchpad:Pk1,TouchpadOff:Tk1,TowerControl:Hk1,ToyBrick:Uk1,Tractor:Wk1,TrafficCone:Ok1,TrainFront:Yk1,TrainFrontTunnel:Vk1,TrainTrack:Jk1,TramFront:Kk1,Trash:nM1,Trash2:eM1,TreeDeciduous:rM1,TreePine:oM1,Trees:lM1,Trello:cM1,TrendingDown:dM1,TrendingUp:fM1,Triangle:vM1,TriangleRight:pM1,Trophy:wM1,Truck:mM1,Turtle:MM1,Tv:BM1,Tv2:yM1,Twitch:_M1,Twitter:bM1,Type:TM1,Umbrella:HM1,UmbrellaOff:PM1,Underline:UM1,Undo:VM1,Undo2:WM1,UndoDot:OM1,UnfoldHorizontal:YM1,UnfoldVertical:JM1,Ungroup:KM1,Unlink:nE1,Unlink2:eE1,Unlock:oE1,UnlockKeyhole:rE1,Unplug:lE1,Upload:dE1,UploadCloud:cE1,Usb:fE1,User:WE1,UserCheck:pE1,UserCog:vE1,UserMinus:wE1,UserPlus:mE1,UserRound:PE1,UserRoundCheck:ME1,UserRoundCog:yE1,UserRoundMinus:BE1,UserRoundPlus:_E1,UserRoundSearch:bE1,UserRoundX:TE1,UserSearch:HE1,UserX:UE1,Users:VE1,UsersRound:OE1,Utensils:JE1,UtensilsCrossed:YE1,UtilityPole:KE1,Variable:ey1,Vault:ny1,Vegan:ry1,VenetianMask:oy1,Vibrate:cy1,VibrateOff:ly1,Video:fy1,VideoOff:dy1,Videotape:py1,View:vy1,Voicemail:wy1,Volume:By1,Volume1:my1,Volume2:My1,VolumeX:yy1,Vote:_y1,Wallet:Py1,Wallet2:by1,WalletCards:Ty1,Wallpaper:Hy1,Wand:Wy1,Wand2:Uy1,Warehouse:Oy1,WashingMachine:Vy1,Watch:Yy1,Waves:Jy1,Waypoints:Ky1,Webcam:eI1,Webhook:rI1,WebhookOff:nI1,Weight:oI1,Wheat:cI1,WheatOff:lI1,WholeWord:dI1,Wifi:pI1,WifiOff:fI1,Wind:vI1,Wine:mI1,WineOff:wI1,Workflow:MI1,WrapText:yI1,Wrench:BI1,X:PI1,XCircle:_I1,XOctagon:bI1,XSquare:TI1,Youtube:HI1,Zap:WI1,ZapOff:UI1,ZoomIn:OI1,ZoomOut:VI1},Symbol.toStringTag,{value:"Module"}));function YI1(){return h.jsxs(MP,{style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:[h.jsx("color",{attach:"background",args:["black"]}),h.jsx("ambientLight",{intensity:.5}),h.jsx("directionalLight",{intensity:0,position:[5,1,10]}),h.jsx(KH,{scrollbarColor:"black",backgroundColor:"white",flexDirection:"row",flexWrap:"wrap",overflow:"scroll",gap:10,padding:10,children:Object.values($I1).map((t,e)=>h.jsx(t,{},e))})]})}ex(document.getElementById("root")).render(h.jsx(u.StrictMode,{children:h.jsx(YI1,{})})); diff --git a/examples/lucide/assets/index-khRC_ACW.js b/examples/lucide/assets/index-khRC_ACW.js deleted file mode 100644 index 8b19f944..00000000 --- a/examples/lucide/assets/index-khRC_ACW.js +++ /dev/null @@ -1,4056 +0,0 @@ -var eE=Object.defineProperty;var tE=(t,e,n)=>e in t?eE(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var V1=(t,e,n)=>(tE(t,typeof e!="symbol"?e+"":e,n),n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))C(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&C(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function C(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function yv(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Iv={exports:{}},so={},Bv={exports:{}},U0={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var xn=Symbol.for("react.element"),nE=Symbol.for("react.portal"),CE=Symbol.for("react.fragment"),rE=Symbol.for("react.strict_mode"),iE=Symbol.for("react.profiler"),oE=Symbol.for("react.provider"),sE=Symbol.for("react.context"),lE=Symbol.for("react.forward_ref"),aE=Symbol.for("react.suspense"),cE=Symbol.for("react.memo"),uE=Symbol.for("react.lazy"),Cg=Symbol.iterator;function dE(t){return t===null||typeof t!="object"?null:(t=Cg&&t[Cg]||t["@@iterator"],typeof t=="function"?t:null)}var Sv={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_v=Object.assign,Rv={};function ce(t,e,n){this.props=t,this.context=e,this.refs=Rv,this.updater=n||Sv}ce.prototype.isReactComponent={};ce.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};ce.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function bv(){}bv.prototype=ce.prototype;function bu(t,e,n){this.props=t,this.context=e,this.refs=Rv,this.updater=n||Sv}var Qu=bu.prototype=new bv;Qu.constructor=bu;_v(Qu,ce.prototype);Qu.isPureReactComponent=!0;var rg=Array.isArray,Qv=Object.prototype.hasOwnProperty,Tu={current:null},Tv={key:!0,ref:!0,__self:!0,__source:!0};function Dv(t,e,n){var C,r={},i=null,o=null;if(e!=null)for(C in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(i=""+e.key),e)Qv.call(e,C)&&!Tv.hasOwnProperty(C)&&(r[C]=e[C]);var s=arguments.length-2;if(s===1)r.children=n;else if(1>>1,x1=U[u1];if(0>>1;u1r(O,n1))Wr(F,O)?(U[u1]=F,U[W]=n1,u1=W):(U[u1]=O,U[$]=n1,u1=$);else if(Wr(F,n1))U[u1]=F,U[W]=n1,u1=W;else break e}}return t1}function r(U,t1){var n1=U.sortIndex-t1.sortIndex;return n1!==0?n1:U.id-t1.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;t.unstable_now=function(){return i.now()}}else{var o=Date,s=o.now();t.unstable_now=function(){return o.now()-s}}var a=[],d=[],g=1,p=null,A=3,w=!1,x=!1,y=!1,m=typeof setTimeout=="function"?setTimeout:null,L=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function k(U){for(var t1=n(d);t1!==null;){if(t1.callback===null)C(d);else if(t1.startTime<=U)C(d),t1.sortIndex=t1.expirationTime,e(a,t1);else break;t1=n(d)}}function I(U){if(y=!1,k(U),!x)if(n(a)!==null)x=!0,o1(Q);else{var t1=n(d);t1!==null&&f1(I,t1.startTime-U)}}function Q(U,t1){x=!1,y&&(y=!1,L(j),j=-1),w=!0;var n1=A;try{for(k(t1),p=n(a);p!==null&&(!(p.expirationTime>t1)||U&&!N());){var u1=p.callback;if(typeof u1=="function"){p.callback=null,A=p.priorityLevel;var x1=u1(p.expirationTime<=t1);t1=t.unstable_now(),typeof x1=="function"?p.callback=x1:p===n(a)&&C(a),k(t1)}else C(a);p=n(a)}if(p!==null)var U1=!0;else{var $=n(d);$!==null&&f1(I,$.startTime-t1),U1=!1}return U1}finally{p=null,A=n1,w=!1}}var _=!1,T=null,j=-1,q=5,R=-1;function N(){return!(t.unstable_now()-RU||125u1?(U.sortIndex=n1,e(d,U),n(a)===null&&U===n(d)&&(y?(L(j),j=-1):y=!0,f1(I,n1-u1))):(U.sortIndex=x1,e(a,U),x||w||(x=!0,o1(Q))),U},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(U){var t1=A;return function(){var n1=A;A=t1;try{return U.apply(this,arguments)}finally{A=n1}}}})(jv);Hv.exports=jv;var kE=Hv.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Uv=u,v8=kE;function j1(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Qa=Object.prototype.hasOwnProperty,ME=/^[: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]*$/,og={},sg={};function EE(t){return Qa.call(sg,t)?!0:Qa.call(og,t)?!1:ME.test(t)?sg[t]=!0:(og[t]=!0,!1)}function yE(t,e,n,C){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return C?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function IE(t,e,n,C){if(e===null||typeof e>"u"||yE(t,e,n,C))return!0;if(C)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function W9(t,e,n,C,r,i,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=C,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=i,this.removeEmptyString=o}var h9={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){h9[t]=new W9(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];h9[e]=new W9(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){h9[t]=new W9(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){h9[t]=new W9(t,2,!1,t,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(t){h9[t]=new W9(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){h9[t]=new W9(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){h9[t]=new W9(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){h9[t]=new W9(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){h9[t]=new W9(t,5,!1,t.toLowerCase(),null,!1,!1)});var Nu=/[\-:]([a-z])/g;function Pu(t){return t[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(t){var e=t.replace(Nu,Pu);h9[e]=new W9(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(Nu,Pu);h9[e]=new W9(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(Nu,Pu);h9[e]=new W9(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){h9[t]=new W9(t,1,!1,t.toLowerCase(),null,!1,!1)});h9.xlinkHref=new W9("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){h9[t]=new W9(t,1,!1,t.toLowerCase(),null,!0,!0)});function Hu(t,e,n,C){var r=h9.hasOwnProperty(e)?h9[e]:null;(r!==null?r.type!==0:C||!(2s||r[o]!==i[s]){var a=` -`+r[o].replace(" at new "," at ");return t.displayName&&a.includes("")&&(a=a.replace("",t.displayName)),a}while(1<=o&&0<=s);break}}}finally{sl=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?ct(t):""}function BE(t){switch(t.tag){case 5:return ct(t.type);case 16:return ct("Lazy");case 13:return ct("Suspense");case 19:return ct("SuspenseList");case 0:case 2:case 15:return t=ll(t.type,!1),t;case 11:return t=ll(t.type.render,!1),t;case 1:return t=ll(t.type,!0),t;default:return""}}function Pa(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case _7:return"Fragment";case S7:return"Portal";case Ta:return"Profiler";case ju:return"StrictMode";case Da:return"Suspense";case Na:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case Gv:return(t.displayName||"Context")+".Consumer";case Wv:return(t._context.displayName||"Context")+".Provider";case Uu:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case Fu:return e=t.displayName||null,e!==null?e:Pa(t.type)||"Memo";case b6:e=t._payload,t=t._init;try{return Pa(t(e))}catch{}}return null}function SE(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Pa(e);case 8:return e===ju?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function t5(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function zv(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function _E(t){var e=zv(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),C=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var r=n.get,i=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){C=""+o,i.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return C},setValue:function(o){C=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function PC(t){t._valueTracker||(t._valueTracker=_E(t))}function Vv(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),C="";return t&&(C=zv(t)?t.checked?"true":"false":t.value),t=C,t!==n?(e.setValue(t),!0):!1}function Ii(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Ha(t,e){var n=e.checked;return I2({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function ag(t,e){var n=e.defaultValue==null?"":e.defaultValue,C=e.checked!=null?e.checked:e.defaultChecked;n=t5(e.value!=null?e.value:n),t._wrapperState={initialChecked:C,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function $v(t,e){e=e.checked,e!=null&&Hu(t,"checked",e,!1)}function ja(t,e){$v(t,e);var n=t5(e.value),C=e.type;if(n!=null)C==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(C==="submit"||C==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?Ua(t,e.type,n):e.hasOwnProperty("defaultValue")&&Ua(t,e.type,t5(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function cg(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var C=e.type;if(!(C!=="submit"&&C!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function Ua(t,e,n){(e!=="number"||Ii(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var ut=Array.isArray;function V7(t,e,n,C){if(t=t.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=HC.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function Dt(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var Lt={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},RE=["Webkit","ms","Moz","O"];Object.keys(Lt).forEach(function(t){RE.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),Lt[e]=Lt[t]})});function qv(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||Lt.hasOwnProperty(t)&&Lt[t]?(""+e).trim():e+"px"}function Kv(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var C=n.indexOf("--")===0,r=qv(n,e[n],C);n==="float"&&(n="cssFloat"),C?t.setProperty(n,r):t[n]=r}}var bE=I2({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ga(t,e){if(e){if(bE[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(j1(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(j1(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(j1(61))}if(e.style!=null&&typeof e.style!="object")throw Error(j1(62))}}function Oa(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){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!1;default:return!0}}var za=null;function Wu(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Va=null,$7=null,Y7=null;function hg(t){if(t=Mn(t)){if(typeof Va!="function")throw Error(j1(280));var e=t.stateNode;e&&(e=ho(e),Va(t.stateNode,t.type,e))}}function Zv(t){$7?Y7?Y7.push(t):Y7=[t]:$7=t}function eL(){if($7){var t=$7,e=Y7;if(Y7=$7=null,hg(t),e)for(t=0;t>>=0,t===0?32:31-(GE(t)/OE|0)|0}var jC=64,UC=4194304;function dt(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Ri(t,e){var n=t.pendingLanes;if(n===0)return 0;var C=0,r=t.suspendedLanes,i=t.pingedLanes,o=n&268435455;if(o!==0){var s=o&~r;s!==0?C=dt(s):(i&=o,i!==0&&(C=dt(i)))}else o=n&~r,o!==0?C=dt(o):i!==0&&(C=dt(i));if(C===0)return 0;if(e!==0&&e!==C&&!(e&r)&&(r=C&-C,i=e&-e,r>=i||r===16&&(i&4194240)!==0))return e;if(C&4&&(C|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=C;0n;n++)e.push(t);return e}function mn(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-K8(e),t[e]=n}function YE(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var C=t.eventTimes;for(t=t.expirationTimes;0=xt),mg=" ",kg=!1;function wL(t,e){switch(t){case"keyup":return my.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xL(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var R7=!1;function My(t,e){switch(t){case"compositionend":return xL(e);case"keypress":return e.which!==32?null:(kg=!0,mg);case"textInput":return t=e.data,t===mg&&kg?null:t;default:return null}}function Ey(t,e){if(R7)return t==="compositionend"||!Ju&&wL(t,e)?(t=vL(),ni=$u=H6=null,R7=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=C}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ig(n)}}function EL(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?EL(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function yL(){for(var t=window,e=Ii();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=Ii(t.document)}return e}function qu(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function Ty(t){var e=yL(),n=t.focusedElem,C=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&EL(n.ownerDocument.documentElement,n)){if(C!==null&&qu(n)){if(e=C.start,t=C.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var r=n.textContent.length,i=Math.min(C.start,r);C=C.end===void 0?i:Math.min(C.end,r),!t.extend&&i>C&&(r=C,C=i,i=r),r=Bg(n,i);var o=Bg(n,C);r&&o&&(t.rangeCount!==1||t.anchorNode!==r.node||t.anchorOffset!==r.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),t.removeAllRanges(),i>C?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,b7=null,Ka=null,kt=null,Za=!1;function Sg(t,e,n){var C=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Za||b7==null||b7!==Ii(C)||(C=b7,"selectionStart"in C&&qu(C)?C={start:C.selectionStart,end:C.selectionEnd}:(C=(C.ownerDocument&&C.ownerDocument.defaultView||window).getSelection(),C={anchorNode:C.anchorNode,anchorOffset:C.anchorOffset,focusNode:C.focusNode,focusOffset:C.focusOffset}),kt&&Ft(kt,C)||(kt=C,C=Ti(Ka,"onSelect"),0D7||(t.current=ic[D7],ic[D7]=null,D7--)}function h2(t,e){D7++,ic[D7]=t.current,t.current=e}var n5={},I9=o5(n5),K9=o5(!1),L3=n5;function te(t,e){var n=t.type.contextTypes;if(!n)return n5;var C=t.stateNode;if(C&&C.__reactInternalMemoizedUnmaskedChildContext===e)return C.__reactInternalMemoizedMaskedChildContext;var r={},i;for(i in n)r[i]=e[i];return C&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=r),r}function Z9(t){return t=t.childContextTypes,t!=null}function Ni(){v2(K9),v2(I9)}function Ng(t,e,n){if(I9.current!==n5)throw Error(j1(168));h2(I9,e),h2(K9,n)}function DL(t,e,n){var C=t.stateNode;if(e=e.childContextTypes,typeof C.getChildContext!="function")return n;C=C.getChildContext();for(var r in C)if(!(r in e))throw Error(j1(108,SE(t)||"Unknown",r));return I2({},n,C)}function Pi(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||n5,L3=I9.current,h2(I9,t),h2(K9,K9.current),!0}function Pg(t,e,n){var C=t.stateNode;if(!C)throw Error(j1(169));n?(t=DL(t,e,L3),C.__reactInternalMemoizedMergedChildContext=t,v2(K9),v2(I9),h2(I9,t)):v2(K9),h2(K9,n)}var Y4=null,fo=!1,ml=!1;function NL(t){Y4===null?Y4=[t]:Y4.push(t)}function Vy(t){fo=!0,NL(t)}function s5(){if(!ml&&Y4!==null){ml=!0;var t=0,e=i2;try{var n=Y4;for(i2=1;t>=o,r-=o,J4=1<<32-K8(e)+r|n<j?(q=T,T=null):q=T.sibling;var R=A(L,T,k[j],I);if(R===null){T===null&&(T=q);break}t&&T&&R.alternate===null&&e(L,T),E=i(R,E,j),_===null?Q=R:_.sibling=R,_=R,T=q}if(j===k.length)return n(L,T),x2&&J5(L,j),Q;if(T===null){for(;jj?(q=T,T=null):q=T.sibling;var N=A(L,T,R.value,I);if(N===null){T===null&&(T=q);break}t&&T&&N.alternate===null&&e(L,T),E=i(N,E,j),_===null?Q=N:_.sibling=N,_=N,T=q}if(R.done)return n(L,T),x2&&J5(L,j),Q;if(T===null){for(;!R.done;j++,R=k.next())R=p(L,R.value,I),R!==null&&(E=i(R,E,j),_===null?Q=R:_.sibling=R,_=R);return x2&&J5(L,j),Q}for(T=C(L,T);!R.done;j++,R=k.next())R=w(T,L,j,R.value,I),R!==null&&(t&&R.alternate!==null&&T.delete(R.key===null?j:R.key),E=i(R,E,j),_===null?Q=R:_.sibling=R,_=R);return t&&T.forEach(function(K){return e(L,K)}),x2&&J5(L,j),Q}function m(L,E,k,I){if(typeof k=="object"&&k!==null&&k.type===_7&&k.key===null&&(k=k.props.children),typeof k=="object"&&k!==null){switch(k.$$typeof){case NC:e:{for(var Q=k.key,_=E;_!==null;){if(_.key===Q){if(Q=k.type,Q===_7){if(_.tag===7){n(L,_.sibling),E=r(_,k.props.children),E.return=L,L=E;break e}}else if(_.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===b6&&Og(Q)===_.type){n(L,_.sibling),E=r(_,k.props),E.ref=$e(L,_,k),E.return=L,L=E;break e}n(L,_);break}else e(L,_);_=_.sibling}k.type===_7?(E=h3(k.props.children,L.mode,I,k.key),E.return=L,L=E):(I=ci(k.type,k.key,k.props,null,L.mode,I),I.ref=$e(L,E,k),I.return=L,L=I)}return o(L);case S7:e:{for(_=k.key;E!==null;){if(E.key===_)if(E.tag===4&&E.stateNode.containerInfo===k.containerInfo&&E.stateNode.implementation===k.implementation){n(L,E.sibling),E=r(E,k.children||[]),E.return=L,L=E;break e}else{n(L,E);break}else e(L,E);E=E.sibling}E=_l(k,L.mode,I),E.return=L,L=E}return o(L);case b6:return _=k._init,m(L,E,_(k._payload),I)}if(ut(k))return x(L,E,k,I);if(We(k))return y(L,E,k,I);$C(L,k)}return typeof k=="string"&&k!==""||typeof k=="number"?(k=""+k,E!==null&&E.tag===6?(n(L,E.sibling),E=r(E,k),E.return=L,L=E):(n(L,E),E=Sl(k,L.mode,I),E.return=L,L=E),o(L)):n(L,E)}return m}var Ce=OL(!0),zL=OL(!1),En={},k4=o5(En),zt=o5(En),Vt=o5(En);function o3(t){if(t===En)throw Error(j1(174));return t}function od(t,e){switch(h2(Vt,e),h2(zt,t),h2(k4,En),t=e.nodeType,t){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:Wa(null,"");break;default:t=t===8?e.parentNode:e,e=t.namespaceURI||null,t=t.tagName,e=Wa(e,t)}v2(k4),h2(k4,e)}function re(){v2(k4),v2(zt),v2(Vt)}function VL(t){o3(Vt.current);var e=o3(k4.current),n=Wa(e,t.type);e!==n&&(h2(zt,t),h2(k4,n))}function sd(t){zt.current===t&&(v2(k4),v2(zt))}var M2=o5(0);function Gi(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var kl=[];function ld(){for(var t=0;tn?n:4,t(!0);var C=Ml.transition;Ml.transition={};try{t(!1),e()}finally{i2=n,Ml.transition=C}}function lw(){return H8().memoizedState}function Jy(t,e,n){var C=$6(t);if(n={lane:C,action:n,hasEagerState:!1,eagerState:null,next:null},aw(t))cw(e,n);else if(n=UL(t,e,n,C),n!==null){var r=P9();Z8(n,t,C,r),uw(n,e,C)}}function qy(t,e,n){var C=$6(t),r={lane:C,action:n,hasEagerState:!1,eagerState:null,next:null};if(aw(t))cw(e,r);else{var i=t.alternate;if(t.lanes===0&&(i===null||i.lanes===0)&&(i=e.lastRenderedReducer,i!==null))try{var o=e.lastRenderedState,s=i(o,n);if(r.hasEagerState=!0,r.eagerState=s,t4(s,o)){var a=e.interleaved;a===null?(r.next=r,rd(e)):(r.next=a.next,a.next=r),e.interleaved=r;return}}catch{}finally{}n=UL(t,e,r,C),n!==null&&(r=P9(),Z8(n,t,C,r),uw(n,e,C))}}function aw(t){var e=t.alternate;return t===y2||e!==null&&e===y2}function cw(t,e){Mt=Oi=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function uw(t,e,n){if(n&4194240){var C=e.lanes;C&=t.pendingLanes,n|=C,e.lanes=n,Ou(t,n)}}var zi={readContext:P8,useCallback:L9,useContext:L9,useEffect:L9,useImperativeHandle:L9,useInsertionEffect:L9,useLayoutEffect:L9,useMemo:L9,useReducer:L9,useRef:L9,useState:L9,useDebugValue:L9,useDeferredValue:L9,useTransition:L9,useMutableSource:L9,useSyncExternalStore:L9,useId:L9,unstable_isNewReconciler:!1},Ky={readContext:P8,useCallback:function(t,e){return p4().memoizedState=[t,e===void 0?null:e],t},useContext:P8,useEffect:Vg,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,oi(4194308,4,Cw.bind(null,e,t),n)},useLayoutEffect:function(t,e){return oi(4194308,4,t,e)},useInsertionEffect:function(t,e){return oi(4,2,t,e)},useMemo:function(t,e){var n=p4();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var C=p4();return e=n!==void 0?n(e):e,C.memoizedState=C.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},C.queue=t,t=t.dispatch=Jy.bind(null,y2,t),[C.memoizedState,t]},useRef:function(t){var e=p4();return t={current:t},e.memoizedState=t},useState:zg,useDebugValue:hd,useDeferredValue:function(t){return p4().memoizedState=t},useTransition:function(){var t=zg(!1),e=t[0];return t=Xy.bind(null,t[1]),p4().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var C=y2,r=p4();if(x2){if(n===void 0)throw Error(j1(407));n=n()}else{if(n=e(),r9===null)throw Error(j1(349));x3&30||XL(C,e,n)}r.memoizedState=n;var i={value:n,getSnapshot:e};return r.queue=i,Vg(qL.bind(null,C,i,t),[t]),C.flags|=2048,Xt(9,JL.bind(null,C,i,n,e),void 0,null),n},useId:function(){var t=p4(),e=r9.identifierPrefix;if(x2){var n=q4,C=J4;n=(C&~(1<<32-K8(C)-1)).toString(32)+n,e=":"+e+"R"+n,n=$t++,0<\/script>",t=t.removeChild(t.firstChild)):typeof C.is=="string"?t=o.createElement(n,{is:C.is}):(t=o.createElement(n),n==="select"&&(o=t,C.multiple?o.multiple=!0:C.size&&(o.size=C.size))):t=o.createElementNS(t,n),t[v4]=e,t[Ot]=C,ww(t,e,!1,!1),e.stateNode=t;e:{switch(o=Oa(n,C),n){case"dialog":p2("cancel",t),p2("close",t),r=C;break;case"iframe":case"object":case"embed":p2("load",t),r=C;break;case"video":case"audio":for(r=0;roe&&(e.flags|=128,C=!0,Ye(i,!1),e.lanes=4194304)}else{if(!C)if(t=Gi(o),t!==null){if(e.flags|=128,C=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),Ye(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!x2)return w9(e),null}else 2*H2()-i.renderingStartTime>oe&&n!==1073741824&&(e.flags|=128,C=!0,Ye(i,!1),e.lanes=4194304);i.isBackwards?(o.sibling=e.child,e.child=o):(n=i.last,n!==null?n.sibling=o:e.child=o,i.last=o)}return i.tail!==null?(e=i.tail,i.rendering=e,i.tail=e.sibling,i.renderingStartTime=H2(),e.sibling=null,n=M2.current,h2(M2,C?n&1|2:n&1),e):(w9(e),null);case 22:case 23:return Ld(),C=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==C&&(e.flags|=8192),C&&e.mode&1?d8&1073741824&&(w9(e),e.subtreeFlags&6&&(e.flags|=8192)):w9(e),null;case 24:return null;case 25:return null}throw Error(j1(156,e.tag))}function oI(t,e){switch(Zu(e),e.tag){case 1:return Z9(e.type)&&Ni(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return re(),v2(K9),v2(I9),ld(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return sd(e),null;case 13:if(v2(M2),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(j1(340));ne()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return v2(M2),null;case 4:return re(),null;case 10:return Cd(e.type._context),null;case 22:case 23:return Ld(),null;case 24:return null;default:return null}}var XC=!1,M9=!1,sI=typeof WeakSet=="function"?WeakSet:Set,C0=null;function j7(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(C){b2(t,e,C)}else n.current=null}function Ac(t,e,n){try{n()}catch(C){b2(t,e,C)}}var tp=!1;function lI(t,e){if(ec=bi,t=yL(),qu(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var C=n.getSelection&&n.getSelection();if(C&&C.rangeCount!==0){n=C.anchorNode;var r=C.anchorOffset,i=C.focusNode;C=C.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,s=-1,a=-1,d=0,g=0,p=t,A=null;t:for(;;){for(var w;p!==n||r!==0&&p.nodeType!==3||(s=o+r),p!==i||C!==0&&p.nodeType!==3||(a=o+C),p.nodeType===3&&(o+=p.nodeValue.length),(w=p.firstChild)!==null;)A=p,p=w;for(;;){if(p===t)break t;if(A===n&&++d===r&&(s=o),A===i&&++g===C&&(a=o),(w=p.nextSibling)!==null)break;p=A,A=p.parentNode}p=w}n=s===-1||a===-1?null:{start:s,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(tc={focusedElem:t,selectionRange:n},bi=!1,C0=e;C0!==null;)if(e=C0,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,C0=t;else for(;C0!==null;){e=C0;try{var x=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var y=x.memoizedProps,m=x.memoizedState,L=e.stateNode,E=L.getSnapshotBeforeUpdate(e.elementType===e.type?y:$8(e.type,y),m);L.__reactInternalSnapshotBeforeUpdate=E}break;case 3:var k=e.stateNode.containerInfo;k.nodeType===1?k.textContent="":k.nodeType===9&&k.documentElement&&k.removeChild(k.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(j1(163))}}catch(I){b2(e,e.return,I)}if(t=e.sibling,t!==null){t.return=e.return,C0=t;break}C0=e.return}return x=tp,tp=!1,x}function Et(t,e,n){var C=e.updateQueue;if(C=C!==null?C.lastEffect:null,C!==null){var r=C=C.next;do{if((r.tag&t)===t){var i=r.destroy;r.destroy=void 0,i!==void 0&&Ac(e,n,i)}r=r.next}while(r!==C)}}function Ao(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var C=n.create;n.destroy=C()}n=n.next}while(n!==e)}}function vc(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function kw(t){var e=t.alternate;e!==null&&(t.alternate=null,kw(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[v4],delete e[Ot],delete e[rc],delete e[Oy],delete e[zy])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function Mw(t){return t.tag===5||t.tag===3||t.tag===4}function np(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Mw(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Lc(t,e,n){var C=t.tag;if(C===5||C===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=Di));else if(C!==4&&(t=t.child,t!==null))for(Lc(t,e,n),t=t.sibling;t!==null;)Lc(t,e,n),t=t.sibling}function wc(t,e,n){var C=t.tag;if(C===5||C===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(C!==4&&(t=t.child,t!==null))for(wc(t,e,n),t=t.sibling;t!==null;)wc(t,e,n),t=t.sibling}var u9=null,X8=!1;function x6(t,e,n){for(n=n.child;n!==null;)Ew(t,e,n),n=n.sibling}function Ew(t,e,n){if(m4&&typeof m4.onCommitFiberUnmount=="function")try{m4.onCommitFiberUnmount(lo,n)}catch{}switch(n.tag){case 5:M9||j7(n,e);case 6:var C=u9,r=X8;u9=null,x6(t,e,n),u9=C,X8=r,u9!==null&&(X8?(t=u9,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):u9.removeChild(n.stateNode));break;case 18:u9!==null&&(X8?(t=u9,n=n.stateNode,t.nodeType===8?xl(t.parentNode,n):t.nodeType===1&&xl(t,n),jt(t)):xl(u9,n.stateNode));break;case 4:C=u9,r=X8,u9=n.stateNode.containerInfo,X8=!0,x6(t,e,n),u9=C,X8=r;break;case 0:case 11:case 14:case 15:if(!M9&&(C=n.updateQueue,C!==null&&(C=C.lastEffect,C!==null))){r=C=C.next;do{var i=r,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&Ac(n,e,o),r=r.next}while(r!==C)}x6(t,e,n);break;case 1:if(!M9&&(j7(n,e),C=n.stateNode,typeof C.componentWillUnmount=="function"))try{C.props=n.memoizedProps,C.state=n.memoizedState,C.componentWillUnmount()}catch(s){b2(n,e,s)}x6(t,e,n);break;case 21:x6(t,e,n);break;case 22:n.mode&1?(M9=(C=M9)||n.memoizedState!==null,x6(t,e,n),M9=C):x6(t,e,n);break;default:x6(t,e,n)}}function Cp(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new sI),e.forEach(function(C){var r=AI.bind(null,t,C);n.has(C)||(n.add(C),C.then(r,r))})}}function G8(t,e){var n=e.deletions;if(n!==null)for(var C=0;Cr&&(r=o),C&=~i}if(C=r,C=H2()-C,C=(120>C?120:480>C?480:1080>C?1080:1920>C?1920:3e3>C?3e3:4320>C?4320:1960*cI(C/1960))-C,10t?16:t,j6===null)var C=!1;else{if(t=j6,j6=null,Yi=0,V0&6)throw Error(j1(331));var r=V0;for(V0|=4,C0=t.current;C0!==null;){var i=C0,o=i.child;if(C0.flags&16){var s=i.deletions;if(s!==null){for(var a=0;aH2()-Ad?d3(t,0):pd|=n),e8(t,e)}function Qw(t,e){e===0&&(t.mode&1?(e=UC,UC<<=1,!(UC&130023424)&&(UC=4194304)):e=1);var n=P9();t=r6(t,e),t!==null&&(mn(t,e,n),e8(t,n))}function pI(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),Qw(t,n)}function AI(t,e){var n=0;switch(t.tag){case 13:var C=t.stateNode,r=t.memoizedState;r!==null&&(n=r.retryLane);break;case 19:C=t.stateNode;break;default:throw Error(j1(314))}C!==null&&C.delete(e),Qw(t,n)}var Tw;Tw=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||K9.current)q9=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return q9=!1,rI(t,e,n);q9=!!(t.flags&131072)}else q9=!1,x2&&e.flags&1048576&&PL(e,ji,e.index);switch(e.lanes=0,e.tag){case 2:var C=e.type;si(t,e),t=e.pendingProps;var r=te(e,I9.current);J7(e,n),r=cd(null,e,C,t,r,n);var i=ud();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Z9(C)?(i=!0,Pi(e)):i=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,id(e),r.updater=go,e.stateNode=r,r._reactInternals=e,cc(e,C,t,n),e=hc(null,e,C,!0,i,n)):(e.tag=0,x2&&i&&Ku(e),T9(null,e,r,n),e=e.child),e;case 16:C=e.elementType;e:{switch(si(t,e),t=e.pendingProps,r=C._init,C=r(C._payload),e.type=C,r=e.tag=LI(C),t=$8(C,t),r){case 0:e=dc(null,e,C,t,n);break e;case 1:e=Kg(null,e,C,t,n);break e;case 11:e=Jg(null,e,C,t,n);break e;case 14:e=qg(null,e,C,$8(C.type,t),n);break e}throw Error(j1(306,C,""))}return e;case 0:return C=e.type,r=e.pendingProps,r=e.elementType===C?r:$8(C,r),dc(t,e,C,r,n);case 1:return C=e.type,r=e.pendingProps,r=e.elementType===C?r:$8(C,r),Kg(t,e,C,r,n);case 3:e:{if(Aw(e),t===null)throw Error(j1(387));C=e.pendingProps,i=e.memoizedState,r=i.element,FL(t,e),Wi(e,C,null,n);var o=e.memoizedState;if(C=o.element,i.isDehydrated)if(i={element:C,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=i,e.memoizedState=i,e.flags&256){r=ie(Error(j1(423)),e),e=Zg(t,e,C,n,r);break e}else if(C!==r){r=ie(Error(j1(424)),e),e=Zg(t,e,C,n,r);break e}else for(f8=O6(e.stateNode.containerInfo.firstChild),p8=e,x2=!0,J8=null,n=zL(e,null,C,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ne(),C===r){e=i6(t,e,n);break e}T9(t,e,C,n)}e=e.child}return e;case 5:return VL(e),t===null&&sc(e),C=e.type,r=e.pendingProps,i=t!==null?t.memoizedProps:null,o=r.children,nc(C,r)?o=null:i!==null&&nc(C,i)&&(e.flags|=32),pw(t,e),T9(t,e,o,n),e.child;case 6:return t===null&&sc(e),null;case 13:return vw(t,e,n);case 4:return od(e,e.stateNode.containerInfo),C=e.pendingProps,t===null?e.child=Ce(e,null,C,n):T9(t,e,C,n),e.child;case 11:return C=e.type,r=e.pendingProps,r=e.elementType===C?r:$8(C,r),Jg(t,e,C,r,n);case 7:return T9(t,e,e.pendingProps,n),e.child;case 8:return T9(t,e,e.pendingProps.children,n),e.child;case 12:return T9(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(C=e.type._context,r=e.pendingProps,i=e.memoizedProps,o=r.value,h2(Ui,C._currentValue),C._currentValue=o,i!==null)if(t4(i.value,o)){if(i.children===r.children&&!K9.current){e=i6(t,e,n);break e}}else for(i=e.child,i!==null&&(i.return=e);i!==null;){var s=i.dependencies;if(s!==null){o=i.child;for(var a=s.firstContext;a!==null;){if(a.context===C){if(i.tag===1){a=e6(-1,n&-n),a.tag=2;var d=i.updateQueue;if(d!==null){d=d.shared;var g=d.pending;g===null?a.next=a:(a.next=g.next,g.next=a),d.pending=a}}i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),lc(i.return,n,e),s.lanes|=n;break}a=a.next}}else if(i.tag===10)o=i.type===e.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(j1(341));o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),lc(o,n,e),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===e){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}T9(t,e,r.children,n),e=e.child}return e;case 9:return r=e.type,C=e.pendingProps.children,J7(e,n),r=P8(r),C=C(r),e.flags|=1,T9(t,e,C,n),e.child;case 14:return C=e.type,r=$8(C,e.pendingProps),r=$8(C.type,r),qg(t,e,C,r,n);case 15:return fw(t,e,e.type,e.pendingProps,n);case 17:return C=e.type,r=e.pendingProps,r=e.elementType===C?r:$8(C,r),si(t,e),e.tag=1,Z9(C)?(t=!0,Pi(e)):t=!1,J7(e,n),GL(e,C,r),cc(e,C,r,n),hc(null,e,C,!0,t,n);case 19:return Lw(t,e,n);case 22:return gw(t,e,n)}throw Error(j1(156,e.tag))};function Dw(t,e){return sL(t,e)}function vI(t,e,n,C){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=C,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function T8(t,e,n,C){return new vI(t,e,n,C)}function xd(t){return t=t.prototype,!(!t||!t.isReactComponent)}function LI(t){if(typeof t=="function")return xd(t)?1:0;if(t!=null){if(t=t.$$typeof,t===Uu)return 11;if(t===Fu)return 14}return 2}function Y6(t,e){var n=t.alternate;return n===null?(n=T8(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function ci(t,e,n,C,r,i){var o=2;if(C=t,typeof t=="function")xd(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case _7:return h3(n.children,r,i,e);case ju:o=8,r|=8;break;case Ta:return t=T8(12,n,e,r|2),t.elementType=Ta,t.lanes=i,t;case Da:return t=T8(13,n,e,r),t.elementType=Da,t.lanes=i,t;case Na:return t=T8(19,n,e,r),t.elementType=Na,t.lanes=i,t;case Ov:return Lo(n,r,i,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case Wv:o=10;break e;case Gv:o=9;break e;case Uu:o=11;break e;case Fu:o=14;break e;case b6:o=16,C=null;break e}throw Error(j1(130,t==null?t:typeof t,""))}return e=T8(o,n,e,r),e.elementType=t,e.type=C,e.lanes=i,e}function h3(t,e,n,C){return t=T8(7,t,C,e),t.lanes=n,t}function Lo(t,e,n,C){return t=T8(22,t,C,e),t.elementType=Ov,t.lanes=n,t.stateNode={isHidden:!1},t}function Sl(t,e,n){return t=T8(6,t,null,e),t.lanes=n,t}function _l(t,e,n){return e=T8(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function wI(t,e,n,C,r){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=cl(0),this.expirationTimes=cl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=cl(0),this.identifierPrefix=C,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function md(t,e,n,C,r,i,o,s,a){return t=new wI(t,e,n,s,a),e===1?(e=1,i===!0&&(e|=8)):e=0,i=T8(3,null,null,e),t.current=i,i.stateNode=t,i.memoizedState={element:C,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},id(i),t}function xI(t,e,n){var C=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(jw)}catch(t){console.error(t)}}jw(),Pv.exports=w8;var yI=Pv.exports,Uw,up=yI;Uw=up.createRoot,up.hydrateRoot;/** - * @license - * Copyright 2010-2023 Three.js Authors - * SPDX-License-Identifier: MIT - */const Mo="161",II={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},BI={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Fw=0,Ec=1,Ww=2,SI=3,Gw=0,Eo=1,Bt=2,Y8=3,j8=0,H9=1,L4=2,t6=0,f3=1,yc=2,Ic=3,Bc=4,Ow=5,N6=100,zw=101,Vw=102,Sc=103,_c=104,$w=200,Yw=201,Xw=202,Jw=203,qi=204,Ki=205,qw=206,Kw=207,Zw=208,ex=209,tx=210,nx=211,Cx=212,rx=213,ix=214,ox=0,sx=1,lx=2,qt=3,ax=4,cx=5,ux=6,dx=7,yn=0,hx=1,fx=2,M4=0,gx=1,px=2,Ax=3,yd=4,vx=5,Lx=6,Rc="attached",wx="detached",yo=300,o6=301,C5=302,Kt=303,Zt=304,he=306,en=1e3,E9=1001,tn=1002,N2=1003,Zi=1004,_I=1004,n3=1005,RI=1005,A2=1006,St=1007,bI=1007,w4=1008,QI=1008,E4=1009,xx=1010,mx=1011,Io=1012,Id=1013,K4=1014,Q8=1015,M3=1016,Bd=1017,Sd=1018,X6=1020,kx=1021,D9=1023,Mx=1024,Ex=1025,J6=1026,E3=1027,yx=1028,_d=1029,Ix=1030,Rd=1031,bd=1033,ui=33776,di=33777,hi=33778,fi=33779,bc=35840,Qc=35841,Tc=35842,Dc=35843,Qd=36196,Nc=37492,Pc=37496,Hc=37808,jc=37809,Uc=37810,Fc=37811,Wc=37812,Gc=37813,Oc=37814,zc=37815,Vc=37816,$c=37817,Yc=37818,Xc=37819,Jc=37820,qc=37821,gi=36492,Kc=36494,Zc=36495,Bx=36283,eu=36284,tu=36285,nu=36286,Sx=2200,_x=2201,Rx=2202,nn=2300,Cn=2301,pi=2302,s3=2400,l3=2401,rn=2402,Bo=2500,Td=2501,TI=0,DI=1,NI=2,Dd=3e3,q6=3001,bx=3200,Nd=3201,l5=0,Qx=1,h8="",P2="srgb",I4="srgb-linear",So="display-p3",In="display-p3-linear",on="linear",d2="srgb",sn="rec709",ln="p3",PI=0,K5=7680,HI=7681,jI=7682,UI=7683,FI=34055,WI=34056,GI=5386,OI=512,zI=513,VI=514,$I=515,YI=516,XI=517,JI=518,Cu=519,Tx=512,Dx=513,Nx=514,Pd=515,Px=516,Hx=517,jx=518,Ux=519,an=35044,U6=35048,qI=35040,KI=35045,ZI=35049,eB=35041,tB=35046,nB=35050,CB=35042,rB="100",ru="300 es",eo=1035,x4=2e3,cn=2001;class l6{addEventListener(e,n){this._listeners===void 0&&(this._listeners={});const C=this._listeners;C[e]===void 0&&(C[e]=[]),C[e].indexOf(n)===-1&&C[e].push(n)}hasEventListener(e,n){if(this._listeners===void 0)return!1;const C=this._listeners;return C[e]!==void 0&&C[e].indexOf(n)!==-1}removeEventListener(e,n){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const i=r.indexOf(n);i!==-1&&r.splice(i,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const C=this._listeners[e.type];if(C!==void 0){e.target=this;const r=C.slice(0);for(let i=0,o=r.length;i>8&255]+x9[t>>16&255]+x9[t>>24&255]+"-"+x9[e&255]+x9[e>>8&255]+"-"+x9[e>>16&15|64]+x9[e>>24&255]+"-"+x9[n&63|128]+x9[n>>8&255]+"-"+x9[n>>16&255]+x9[n>>24&255]+x9[C&255]+x9[C>>8&255]+x9[C>>16&255]+x9[C>>24&255]).toLowerCase()}function Q2(t,e,n){return Math.max(e,Math.min(n,t))}function Hd(t,e){return(t%e+e)%e}function iB(t,e,n,C,r){return C+(t-e)*(r-C)/(n-e)}function oB(t,e,n){return t!==e?(n-t)/(e-t):0}function _t(t,e,n){return(1-n)*t+n*e}function sB(t,e,n,C){return _t(t,e,1-Math.exp(-n*C))}function lB(t,e=1){return e-Math.abs(Hd(t,e*2)-e)}function aB(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e),t*t*(3-2*t))}function cB(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e),t*t*t*(t*(t*6-15)+10))}function uB(t,e){return t+Math.floor(Math.random()*(e-t+1))}function dB(t,e){return t+Math.random()*(e-t)}function hB(t){return t*(.5-Math.random())}function fB(t){t!==void 0&&(dp=t);let e=dp+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function gB(t){return t*g3}function pB(t){return t*se}function iu(t){return(t&t-1)===0&&t!==0}function AB(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function to(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function vB(t,e,n,C,r){const i=Math.cos,o=Math.sin,s=i(n/2),a=o(n/2),d=i((e+C)/2),g=o((e+C)/2),p=i((e-C)/2),A=o((e-C)/2),w=i((C-e)/2),x=o((C-e)/2);switch(r){case"XYX":t.set(s*g,a*p,a*A,s*d);break;case"YZY":t.set(a*A,s*g,a*p,s*d);break;case"ZXZ":t.set(a*p,a*A,s*g,s*d);break;case"XZX":t.set(s*g,a*x,a*w,s*d);break;case"YXY":t.set(a*w,s*g,a*x,s*d);break;case"ZYZ":t.set(a*x,a*w,s*g,s*d);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function N9(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function R0(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(t*4294967295);case Uint16Array:return Math.round(t*65535);case Uint8Array:return Math.round(t*255);case Int32Array:return Math.round(t*2147483647);case Int16Array:return Math.round(t*32767);case Int8Array:return Math.round(t*127);default:throw new Error("Invalid component type.")}}const LB={DEG2RAD:g3,RAD2DEG:se,generateUUID:A8,clamp:Q2,euclideanModulo:Hd,mapLinear:iB,inverseLerp:oB,lerp:_t,damp:sB,pingpong:lB,smoothstep:aB,smootherstep:cB,randInt:uB,randFloat:dB,randFloatSpread:hB,seededRandom:fB,degToRad:gB,radToDeg:pB,isPowerOfTwo:iu,ceilPowerOfTwo:AB,floorPowerOfTwo:to,setQuaternionFromProperEuler:vB,normalize:R0,denormalize:N9};class y1{constructor(e=0,n=0){y1.prototype.isVector2=!0,this.x=e,this.y=n}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,n){return this.x=e,this.y=n,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const n=this.x,C=this.y,r=e.elements;return this.x=r[0]*n+r[3]*C+r[6],this.y=r[1]*n+r[4]*C+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,n){return this.x=Math.max(e.x,Math.min(n.x,this.x)),this.y=Math.max(e.y,Math.min(n.y,this.y)),this}clampScalar(e,n){return this.x=Math.max(e,Math.min(n,this.x)),this.y=Math.max(e,Math.min(n,this.y)),this}clampLength(e,n){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(e,Math.min(n,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const n=Math.sqrt(this.lengthSq()*e.lengthSq());if(n===0)return Math.PI/2;const C=this.dot(e)/n;return Math.acos(Q2(C,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const n=this.x-e.x,C=this.y-e.y;return n*n+C*C}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this}lerpVectors(e,n,C){return this.x=e.x+(n.x-e.x)*C,this.y=e.y+(n.y-e.y)*C,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this}rotateAround(e,n){const C=Math.cos(n),r=Math.sin(n),i=this.x-e.x,o=this.y-e.y;return this.x=i*C-o*r+e.x,this.y=i*r+o*C+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class B0{constructor(e,n,C,r,i,o,s,a,d){B0.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,n,C,r,i,o,s,a,d)}set(e,n,C,r,i,o,s,a,d){const g=this.elements;return g[0]=e,g[1]=r,g[2]=s,g[3]=n,g[4]=i,g[5]=a,g[6]=C,g[7]=o,g[8]=d,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const n=this.elements,C=e.elements;return n[0]=C[0],n[1]=C[1],n[2]=C[2],n[3]=C[3],n[4]=C[4],n[5]=C[5],n[6]=C[6],n[7]=C[7],n[8]=C[8],this}extractBasis(e,n,C){return e.setFromMatrix3Column(this,0),n.setFromMatrix3Column(this,1),C.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const n=e.elements;return this.set(n[0],n[4],n[8],n[1],n[5],n[9],n[2],n[6],n[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,n){const C=e.elements,r=n.elements,i=this.elements,o=C[0],s=C[3],a=C[6],d=C[1],g=C[4],p=C[7],A=C[2],w=C[5],x=C[8],y=r[0],m=r[3],L=r[6],E=r[1],k=r[4],I=r[7],Q=r[2],_=r[5],T=r[8];return i[0]=o*y+s*E+a*Q,i[3]=o*m+s*k+a*_,i[6]=o*L+s*I+a*T,i[1]=d*y+g*E+p*Q,i[4]=d*m+g*k+p*_,i[7]=d*L+g*I+p*T,i[2]=A*y+w*E+x*Q,i[5]=A*m+w*k+x*_,i[8]=A*L+w*I+x*T,this}multiplyScalar(e){const n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=e,n[4]*=e,n[7]*=e,n[2]*=e,n[5]*=e,n[8]*=e,this}determinant(){const e=this.elements,n=e[0],C=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=e[6],d=e[7],g=e[8];return n*o*g-n*s*d-C*i*g+C*s*a+r*i*d-r*o*a}invert(){const e=this.elements,n=e[0],C=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=e[6],d=e[7],g=e[8],p=g*o-s*d,A=s*a-g*i,w=d*i-o*a,x=n*p+C*A+r*w;if(x===0)return this.set(0,0,0,0,0,0,0,0,0);const y=1/x;return e[0]=p*y,e[1]=(r*d-g*C)*y,e[2]=(s*C-r*o)*y,e[3]=A*y,e[4]=(g*n-r*a)*y,e[5]=(r*i-s*n)*y,e[6]=w*y,e[7]=(C*a-d*n)*y,e[8]=(o*n-C*i)*y,this}transpose(){let e;const n=this.elements;return e=n[1],n[1]=n[3],n[3]=e,e=n[2],n[2]=n[6],n[6]=e,e=n[5],n[5]=n[7],n[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const n=this.elements;return e[0]=n[0],e[1]=n[3],e[2]=n[6],e[3]=n[1],e[4]=n[4],e[5]=n[7],e[6]=n[2],e[7]=n[5],e[8]=n[8],this}setUvTransform(e,n,C,r,i,o,s){const a=Math.cos(i),d=Math.sin(i);return this.set(C*a,C*d,-C*(a*o+d*s)+o+e,-r*d,r*a,-r*(-d*o+a*s)+s+n,0,0,1),this}scale(e,n){return this.premultiply(Rl.makeScale(e,n)),this}rotate(e){return this.premultiply(Rl.makeRotation(-e)),this}translate(e,n){return this.premultiply(Rl.makeTranslation(e,n)),this}makeTranslation(e,n){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,n,0,0,1),this}makeRotation(e){const n=Math.cos(e),C=Math.sin(e);return this.set(n,-C,0,C,n,0,0,0,1),this}makeScale(e,n){return this.set(e,0,0,0,n,0,0,0,1),this}equals(e){const n=this.elements,C=e.elements;for(let r=0;r<9;r++)if(n[r]!==C[r])return!1;return!0}fromArray(e,n=0){for(let C=0;C<9;C++)this.elements[C]=e[C+n];return this}toArray(e=[],n=0){const C=this.elements;return e[n]=C[0],e[n+1]=C[1],e[n+2]=C[2],e[n+3]=C[3],e[n+4]=C[4],e[n+5]=C[5],e[n+6]=C[6],e[n+7]=C[7],e[n+8]=C[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const Rl=new B0;function Fx(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const wB={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function F7(t,e){return new wB[t](e)}function un(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function Wx(){const t=un("canvas");return t.style.display="block",t}const hp={};function p3(t){t in hp||(hp[t]=!0,console.warn(t))}const fp=new B0().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),gp=new B0().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),KC={[I4]:{transfer:on,primaries:sn,toReference:t=>t,fromReference:t=>t},[P2]:{transfer:d2,primaries:sn,toReference:t=>t.convertSRGBToLinear(),fromReference:t=>t.convertLinearToSRGB()},[In]:{transfer:on,primaries:ln,toReference:t=>t.applyMatrix3(gp),fromReference:t=>t.applyMatrix3(fp)},[So]:{transfer:d2,primaries:ln,toReference:t=>t.convertSRGBToLinear().applyMatrix3(gp),fromReference:t=>t.applyMatrix3(fp).convertLinearToSRGB()}},xB=new Set([I4,In]),n2={enabled:!0,_workingColorSpace:I4,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(t){if(!xB.has(t))throw new Error(`Unsupported working color space, "${t}".`);this._workingColorSpace=t},convert:function(t,e,n){if(this.enabled===!1||e===n||!e||!n)return t;const C=KC[e].toReference,r=KC[n].fromReference;return r(C(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this._workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this._workingColorSpace)},getPrimaries:function(t){return KC[t].primaries},getTransfer:function(t){return t===h8?on:KC[t].transfer}};function K7(t){return t<.04045?t*.0773993808:Math.pow(t*.9478672986+.0521327014,2.4)}function bl(t){return t<.0031308?t*12.92:1.055*Math.pow(t,.41666)-.055}let t7;class jd{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let n;if(e instanceof HTMLCanvasElement)n=e;else{t7===void 0&&(t7=un("canvas")),t7.width=e.width,t7.height=e.height;const C=t7.getContext("2d");e instanceof ImageData?C.putImageData(e,0,0):C.drawImage(e,0,0,e.width,e.height),n=t7}return n.width>2048||n.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),n.toDataURL("image/jpeg",.6)):n.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const n=un("canvas");n.width=e.width,n.height=e.height;const C=n.getContext("2d");C.drawImage(e,0,0,e.width,e.height);const r=C.getImageData(0,0,e.width,e.height),i=r.data;for(let o=0;o0&&(C.userData=this.userData),n||(e.textures[this.uuid]=C),C}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==yo)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case en:e.x=e.x-Math.floor(e.x);break;case E9:e.x=e.x<0?0:1;break;case tn:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case en:e.y=e.y-Math.floor(e.y);break;case E9:e.y=e.y<0?0:1;break;case tn:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return p3("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===P2?q6:Dd}set encoding(e){p3("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===q6?P2:h8}}m2.DEFAULT_IMAGE=null;m2.DEFAULT_MAPPING=yo;m2.DEFAULT_ANISOTROPY=1;class C2{constructor(e=0,n=0,C=0,r=1){C2.prototype.isVector4=!0,this.x=e,this.y=n,this.z=C,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,n,C,r){return this.x=e,this.y=n,this.z=C,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;case 3:this.w=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this.z=e.z+n.z,this.w=e.w+n.w,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this.z+=e.z*n,this.w+=e.w*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this.z=e.z-n.z,this.w=e.w-n.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const n=this.x,C=this.y,r=this.z,i=this.w,o=e.elements;return this.x=o[0]*n+o[4]*C+o[8]*r+o[12]*i,this.y=o[1]*n+o[5]*C+o[9]*r+o[13]*i,this.z=o[2]*n+o[6]*C+o[10]*r+o[14]*i,this.w=o[3]*n+o[7]*C+o[11]*r+o[15]*i,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const n=Math.sqrt(1-e.w*e.w);return n<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/n,this.y=e.y/n,this.z=e.z/n),this}setAxisAngleFromRotationMatrix(e){let n,C,r,i;const a=e.elements,d=a[0],g=a[4],p=a[8],A=a[1],w=a[5],x=a[9],y=a[2],m=a[6],L=a[10];if(Math.abs(g-A)<.01&&Math.abs(p-y)<.01&&Math.abs(x-m)<.01){if(Math.abs(g+A)<.1&&Math.abs(p+y)<.1&&Math.abs(x+m)<.1&&Math.abs(d+w+L-3)<.1)return this.set(1,0,0,0),this;n=Math.PI;const k=(d+1)/2,I=(w+1)/2,Q=(L+1)/2,_=(g+A)/4,T=(p+y)/4,j=(x+m)/4;return k>I&&k>Q?k<.01?(C=0,r=.707106781,i=.707106781):(C=Math.sqrt(k),r=_/C,i=T/C):I>Q?I<.01?(C=.707106781,r=0,i=.707106781):(r=Math.sqrt(I),C=_/r,i=j/r):Q<.01?(C=.707106781,r=.707106781,i=0):(i=Math.sqrt(Q),C=T/i,r=j/i),this.set(C,r,i,n),this}let E=Math.sqrt((m-x)*(m-x)+(p-y)*(p-y)+(A-g)*(A-g));return Math.abs(E)<.001&&(E=1),this.x=(m-x)/E,this.y=(p-y)/E,this.z=(A-g)/E,this.w=Math.acos((d+w+L-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,n){return this.x=Math.max(e.x,Math.min(n.x,this.x)),this.y=Math.max(e.y,Math.min(n.y,this.y)),this.z=Math.max(e.z,Math.min(n.z,this.z)),this.w=Math.max(e.w,Math.min(n.w,this.w)),this}clampScalar(e,n){return this.x=Math.max(e,Math.min(n,this.x)),this.y=Math.max(e,Math.min(n,this.y)),this.z=Math.max(e,Math.min(n,this.z)),this.w=Math.max(e,Math.min(n,this.w)),this}clampLength(e,n){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(e,Math.min(n,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this.z+=(e.z-this.z)*n,this.w+=(e.w-this.w)*n,this}lerpVectors(e,n,C){return this.x=e.x+(n.x-e.x)*C,this.y=e.y+(n.y-e.y)*C,this.z=e.z+(n.z-e.z)*C,this.w=e.w+(n.w-e.w)*C,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this.z=e[n+2],this.w=e[n+3],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e[n+2]=this.z,e[n+3]=this.w,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this.z=e.getZ(n),this.w=e.getW(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class Gx extends l6{constructor(e=1,n=1,C={}){super(),this.isRenderTarget=!0,this.width=e,this.height=n,this.depth=1,this.scissor=new C2(0,0,e,n),this.scissorTest=!1,this.viewport=new C2(0,0,e,n);const r={width:e,height:n,depth:1};C.encoding!==void 0&&(p3("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),C.colorSpace=C.encoding===q6?P2:h8),C=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:A2,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},C),this.texture=new m2(r,C.mapping,C.wrapS,C.wrapT,C.magFilter,C.minFilter,C.format,C.type,C.anisotropy,C.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=C.generateMipmaps,this.texture.internalFormat=C.internalFormat,this.depthBuffer=C.depthBuffer,this.stencilBuffer=C.stencilBuffer,this.depthTexture=C.depthTexture,this.samples=C.samples}setSize(e,n,C=1){(this.width!==e||this.height!==n||this.depth!==C)&&(this.width=e,this.height=n,this.depth=C,this.texture.image.width=e,this.texture.image.height=n,this.texture.image.depth=C,this.dispose()),this.viewport.set(0,0,e,n),this.scissor.set(0,0,e,n)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const n=Object.assign({},e.texture.image);return this.texture.source=new a3(n),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class U8 extends Gx{constructor(e=1,n=1,C={}){super(e,n,C),this.isWebGLRenderTarget=!0}}class _o extends m2{constructor(e=null,n=1,C=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:n,height:C,depth:r},this.magFilter=N2,this.minFilter=N2,this.wrapR=E9,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class MB extends U8{constructor(e=1,n=1,C=1,r={}){super(e,n,r),this.isWebGLArrayRenderTarget=!0,this.depth=C,this.texture=new _o(null,e,n,C),this.texture.isRenderTargetTexture=!0}}class Ud extends m2{constructor(e=null,n=1,C=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:n,height:C,depth:r},this.magFilter=N2,this.minFilter=N2,this.wrapR=E9,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class EB extends U8{constructor(e=1,n=1,C=1,r={}){super(e,n,r),this.isWebGL3DRenderTarget=!0,this.depth=C,this.texture=new Ud(null,e,n,C),this.texture.isRenderTargetTexture=!0}}class yB extends U8{constructor(e=1,n=1,C=1,r={}){super(e,n,r),this.isWebGLMultipleRenderTargets=!0;const i=this.texture;this.texture=[];for(let o=0;o=0?1:-1,k=1-L*L;if(k>Number.EPSILON){const Q=Math.sqrt(k),_=Math.atan2(Q,L*E);m=Math.sin(m*_)/Q,s=Math.sin(s*_)/Q}const I=s*E;if(a=a*m+A*I,d=d*m+w*I,g=g*m+x*I,p=p*m+y*I,m===1-s){const Q=1/Math.sqrt(a*a+d*d+g*g+p*p);a*=Q,d*=Q,g*=Q,p*=Q}}e[n]=a,e[n+1]=d,e[n+2]=g,e[n+3]=p}static multiplyQuaternionsFlat(e,n,C,r,i,o){const s=C[r],a=C[r+1],d=C[r+2],g=C[r+3],p=i[o],A=i[o+1],w=i[o+2],x=i[o+3];return e[n]=s*x+g*p+a*w-d*A,e[n+1]=a*x+g*A+d*p-s*w,e[n+2]=d*x+g*w+s*A-a*p,e[n+3]=g*x-s*p-a*A-d*w,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,n,C,r){return this._x=e,this._y=n,this._z=C,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,n=!0){const C=e._x,r=e._y,i=e._z,o=e._order,s=Math.cos,a=Math.sin,d=s(C/2),g=s(r/2),p=s(i/2),A=a(C/2),w=a(r/2),x=a(i/2);switch(o){case"XYZ":this._x=A*g*p+d*w*x,this._y=d*w*p-A*g*x,this._z=d*g*x+A*w*p,this._w=d*g*p-A*w*x;break;case"YXZ":this._x=A*g*p+d*w*x,this._y=d*w*p-A*g*x,this._z=d*g*x-A*w*p,this._w=d*g*p+A*w*x;break;case"ZXY":this._x=A*g*p-d*w*x,this._y=d*w*p+A*g*x,this._z=d*g*x+A*w*p,this._w=d*g*p-A*w*x;break;case"ZYX":this._x=A*g*p-d*w*x,this._y=d*w*p+A*g*x,this._z=d*g*x-A*w*p,this._w=d*g*p+A*w*x;break;case"YZX":this._x=A*g*p+d*w*x,this._y=d*w*p+A*g*x,this._z=d*g*x-A*w*p,this._w=d*g*p-A*w*x;break;case"XZY":this._x=A*g*p-d*w*x,this._y=d*w*p-A*g*x,this._z=d*g*x+A*w*p,this._w=d*g*p+A*w*x;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return n===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,n){const C=n/2,r=Math.sin(C);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(C),this._onChangeCallback(),this}setFromRotationMatrix(e){const n=e.elements,C=n[0],r=n[4],i=n[8],o=n[1],s=n[5],a=n[9],d=n[2],g=n[6],p=n[10],A=C+s+p;if(A>0){const w=.5/Math.sqrt(A+1);this._w=.25/w,this._x=(g-a)*w,this._y=(i-d)*w,this._z=(o-r)*w}else if(C>s&&C>p){const w=2*Math.sqrt(1+C-s-p);this._w=(g-a)/w,this._x=.25*w,this._y=(r+o)/w,this._z=(i+d)/w}else if(s>p){const w=2*Math.sqrt(1+s-C-p);this._w=(i-d)/w,this._x=(r+o)/w,this._y=.25*w,this._z=(a+g)/w}else{const w=2*Math.sqrt(1+p-C-s);this._w=(o-r)/w,this._x=(i+d)/w,this._y=(a+g)/w,this._z=.25*w}return this._onChangeCallback(),this}setFromUnitVectors(e,n){let C=e.dot(n)+1;return CMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=C):(this._x=0,this._y=-e.z,this._z=e.y,this._w=C)):(this._x=e.y*n.z-e.z*n.y,this._y=e.z*n.x-e.x*n.z,this._z=e.x*n.y-e.y*n.x,this._w=C),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Q2(this.dot(e),-1,1)))}rotateTowards(e,n){const C=this.angleTo(e);if(C===0)return this;const r=Math.min(1,n/C);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,n){const C=e._x,r=e._y,i=e._z,o=e._w,s=n._x,a=n._y,d=n._z,g=n._w;return this._x=C*g+o*s+r*d-i*a,this._y=r*g+o*a+i*s-C*d,this._z=i*g+o*d+C*a-r*s,this._w=o*g-C*s-r*a-i*d,this._onChangeCallback(),this}slerp(e,n){if(n===0)return this;if(n===1)return this.copy(e);const C=this._x,r=this._y,i=this._z,o=this._w;let s=o*e._w+C*e._x+r*e._y+i*e._z;if(s<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,s=-s):this.copy(e),s>=1)return this._w=o,this._x=C,this._y=r,this._z=i,this;const a=1-s*s;if(a<=Number.EPSILON){const w=1-n;return this._w=w*o+n*this._w,this._x=w*C+n*this._x,this._y=w*r+n*this._y,this._z=w*i+n*this._z,this.normalize(),this}const d=Math.sqrt(a),g=Math.atan2(d,s),p=Math.sin((1-n)*g)/d,A=Math.sin(n*g)/d;return this._w=o*p+this._w*A,this._x=C*p+this._x*A,this._y=r*p+this._y*A,this._z=i*p+this._z*A,this._onChangeCallback(),this}slerpQuaternions(e,n,C){return this.copy(e).slerp(n,C)}random(){const e=Math.random(),n=Math.sqrt(1-e),C=Math.sqrt(e),r=2*Math.PI*Math.random(),i=2*Math.PI*Math.random();return this.set(n*Math.cos(r),C*Math.sin(i),C*Math.cos(i),n*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,n=0){return this._x=e[n],this._y=e[n+1],this._z=e[n+2],this._w=e[n+3],this._onChangeCallback(),this}toArray(e=[],n=0){return e[n]=this._x,e[n+1]=this._y,e[n+2]=this._z,e[n+3]=this._w,e}fromBufferAttribute(e,n){return this._x=e.getX(n),this._y=e.getY(n),this._z=e.getZ(n),this._w=e.getW(n),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class G{constructor(e=0,n=0,C=0){G.prototype.isVector3=!0,this.x=e,this.y=n,this.z=C}set(e,n,C){return C===void 0&&(C=this.z),this.x=e,this.y=n,this.z=C,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this.z=e.z+n.z,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this.z+=e.z*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this.z=e.z-n.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,n){return this.x=e.x*n.x,this.y=e.y*n.y,this.z=e.z*n.z,this}applyEuler(e){return this.applyQuaternion(pp.setFromEuler(e))}applyAxisAngle(e,n){return this.applyQuaternion(pp.setFromAxisAngle(e,n))}applyMatrix3(e){const n=this.x,C=this.y,r=this.z,i=e.elements;return this.x=i[0]*n+i[3]*C+i[6]*r,this.y=i[1]*n+i[4]*C+i[7]*r,this.z=i[2]*n+i[5]*C+i[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const n=this.x,C=this.y,r=this.z,i=e.elements,o=1/(i[3]*n+i[7]*C+i[11]*r+i[15]);return this.x=(i[0]*n+i[4]*C+i[8]*r+i[12])*o,this.y=(i[1]*n+i[5]*C+i[9]*r+i[13])*o,this.z=(i[2]*n+i[6]*C+i[10]*r+i[14])*o,this}applyQuaternion(e){const n=this.x,C=this.y,r=this.z,i=e.x,o=e.y,s=e.z,a=e.w,d=2*(o*r-s*C),g=2*(s*n-i*r),p=2*(i*C-o*n);return this.x=n+a*d+o*p-s*g,this.y=C+a*g+s*d-i*p,this.z=r+a*p+i*g-o*d,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const n=this.x,C=this.y,r=this.z,i=e.elements;return this.x=i[0]*n+i[4]*C+i[8]*r,this.y=i[1]*n+i[5]*C+i[9]*r,this.z=i[2]*n+i[6]*C+i[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,n){return this.x=Math.max(e.x,Math.min(n.x,this.x)),this.y=Math.max(e.y,Math.min(n.y,this.y)),this.z=Math.max(e.z,Math.min(n.z,this.z)),this}clampScalar(e,n){return this.x=Math.max(e,Math.min(n,this.x)),this.y=Math.max(e,Math.min(n,this.y)),this.z=Math.max(e,Math.min(n,this.z)),this}clampLength(e,n){const C=this.length();return this.divideScalar(C||1).multiplyScalar(Math.max(e,Math.min(n,C)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this.z+=(e.z-this.z)*n,this}lerpVectors(e,n,C){return this.x=e.x+(n.x-e.x)*C,this.y=e.y+(n.y-e.y)*C,this.z=e.z+(n.z-e.z)*C,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,n){const C=e.x,r=e.y,i=e.z,o=n.x,s=n.y,a=n.z;return this.x=r*a-i*s,this.y=i*o-C*a,this.z=C*s-r*o,this}projectOnVector(e){const n=e.lengthSq();if(n===0)return this.set(0,0,0);const C=e.dot(this)/n;return this.copy(e).multiplyScalar(C)}projectOnPlane(e){return Tl.copy(this).projectOnVector(e),this.sub(Tl)}reflect(e){return this.sub(Tl.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const n=Math.sqrt(this.lengthSq()*e.lengthSq());if(n===0)return Math.PI/2;const C=this.dot(e)/n;return Math.acos(Q2(C,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const n=this.x-e.x,C=this.y-e.y,r=this.z-e.z;return n*n+C*C+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,n,C){const r=Math.sin(n)*e;return this.x=r*Math.sin(C),this.y=Math.cos(n)*e,this.z=r*Math.cos(C),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,n,C){return this.x=e*Math.sin(n),this.y=C,this.z=e*Math.cos(n),this}setFromMatrixPosition(e){const n=e.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this}setFromMatrixScale(e){const n=this.setFromMatrixColumn(e,0).length(),C=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=n,this.y=C,this.z=r,this}setFromMatrixColumn(e,n){return this.fromArray(e.elements,n*4)}setFromMatrix3Column(e,n){return this.fromArray(e.elements,n*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this.z=e[n+2],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e[n+2]=this.z,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this.z=e.getZ(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,n=Math.random()*Math.PI*2,C=Math.sqrt(1-e**2);return this.x=C*Math.cos(n),this.y=C*Math.sin(n),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Tl=new G,pp=new j9;class J2{constructor(e=new G(1/0,1/0,1/0),n=new G(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=n}set(e,n){return this.min.copy(e),this.max.copy(n),this}setFromArray(e){this.makeEmpty();for(let n=0,C=e.length;nthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,n){return n.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,O8),O8.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let n,C;return e.normal.x>0?(n=e.normal.x*this.min.x,C=e.normal.x*this.max.x):(n=e.normal.x*this.max.x,C=e.normal.x*this.min.x),e.normal.y>0?(n+=e.normal.y*this.min.y,C+=e.normal.y*this.max.y):(n+=e.normal.y*this.max.y,C+=e.normal.y*this.min.y),e.normal.z>0?(n+=e.normal.z*this.min.z,C+=e.normal.z*this.max.z):(n+=e.normal.z*this.max.z,C+=e.normal.z*this.min.z),n<=-e.constant&&C>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Je),er.subVectors(this.max,Je),n7.subVectors(e.a,Je),C7.subVectors(e.b,Je),r7.subVectors(e.c,Je),m6.subVectors(C7,n7),k6.subVectors(r7,C7),H5.subVectors(n7,r7);let n=[0,-m6.z,m6.y,0,-k6.z,k6.y,0,-H5.z,H5.y,m6.z,0,-m6.x,k6.z,0,-k6.x,H5.z,0,-H5.x,-m6.y,m6.x,0,-k6.y,k6.x,0,-H5.y,H5.x,0];return!Dl(n,n7,C7,r7,er)||(n=[1,0,0,0,1,0,0,0,1],!Dl(n,n7,C7,r7,er))?!1:(tr.crossVectors(m6,k6),n=[tr.x,tr.y,tr.z],Dl(n,n7,C7,r7,er))}clampPoint(e,n){return n.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,O8).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(O8).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(j4[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),j4[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),j4[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),j4[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),j4[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),j4[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),j4[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),j4[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(j4),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const j4=[new G,new G,new G,new G,new G,new G,new G,new G],O8=new G,ZC=new J2,n7=new G,C7=new G,r7=new G,m6=new G,k6=new G,H5=new G,Je=new G,er=new G,tr=new G,j5=new G;function Dl(t,e,n,C,r){for(let i=0,o=t.length-3;i<=o;i+=3){j5.fromArray(t,i);const s=r.x*Math.abs(j5.x)+r.y*Math.abs(j5.y)+r.z*Math.abs(j5.z),a=e.dot(j5),d=n.dot(j5),g=C.dot(j5);if(Math.max(-Math.max(a,d,g),Math.min(a,d,g))>s)return!1}return!0}const IB=new J2,qe=new G,Nl=new G;class i9{constructor(e=new G,n=-1){this.isSphere=!0,this.center=e,this.radius=n}set(e,n){return this.center.copy(e),this.radius=n,this}setFromPoints(e,n){const C=this.center;n!==void 0?C.copy(n):IB.setFromPoints(e).getCenter(C);let r=0;for(let i=0,o=e.length;ithis.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;qe.subVectors(e,this.center);const n=qe.lengthSq();if(n>this.radius*this.radius){const C=Math.sqrt(n),r=(C-this.radius)*.5;this.center.addScaledVector(qe,r/C),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(Nl.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(qe.copy(e.center).add(Nl)),this.expandByPoint(qe.copy(e.center).sub(Nl))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const U4=new G,Pl=new G,nr=new G,M6=new G,Hl=new G,Cr=new G,jl=new G;class fe{constructor(e=new G,n=new G(0,0,-1)){this.origin=e,this.direction=n}set(e,n){return this.origin.copy(e),this.direction.copy(n),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,n){return n.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,U4)),this}closestPointToPoint(e,n){n.subVectors(e,this.origin);const C=n.dot(this.direction);return C<0?n.copy(this.origin):n.copy(this.origin).addScaledVector(this.direction,C)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const n=U4.subVectors(e,this.origin).dot(this.direction);return n<0?this.origin.distanceToSquared(e):(U4.copy(this.origin).addScaledVector(this.direction,n),U4.distanceToSquared(e))}distanceSqToSegment(e,n,C,r){Pl.copy(e).add(n).multiplyScalar(.5),nr.copy(n).sub(e).normalize(),M6.copy(this.origin).sub(Pl);const i=e.distanceTo(n)*.5,o=-this.direction.dot(nr),s=M6.dot(this.direction),a=-M6.dot(nr),d=M6.lengthSq(),g=Math.abs(1-o*o);let p,A,w,x;if(g>0)if(p=o*a-s,A=o*s-a,x=i*g,p>=0)if(A>=-x)if(A<=x){const y=1/g;p*=y,A*=y,w=p*(p+o*A+2*s)+A*(o*p+A+2*a)+d}else A=i,p=Math.max(0,-(o*A+s)),w=-p*p+A*(A+2*a)+d;else A=-i,p=Math.max(0,-(o*A+s)),w=-p*p+A*(A+2*a)+d;else A<=-x?(p=Math.max(0,-(-o*i+s)),A=p>0?-i:Math.min(Math.max(-i,-a),i),w=-p*p+A*(A+2*a)+d):A<=x?(p=0,A=Math.min(Math.max(-i,-a),i),w=A*(A+2*a)+d):(p=Math.max(0,-(o*i+s)),A=p>0?i:Math.min(Math.max(-i,-a),i),w=-p*p+A*(A+2*a)+d);else A=o>0?-i:i,p=Math.max(0,-(o*A+s)),w=-p*p+A*(A+2*a)+d;return C&&C.copy(this.origin).addScaledVector(this.direction,p),r&&r.copy(Pl).addScaledVector(nr,A),w}intersectSphere(e,n){U4.subVectors(e.center,this.origin);const C=U4.dot(this.direction),r=U4.dot(U4)-C*C,i=e.radius*e.radius;if(r>i)return null;const o=Math.sqrt(i-r),s=C-o,a=C+o;return a<0?null:s<0?this.at(a,n):this.at(s,n)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const n=e.normal.dot(this.direction);if(n===0)return e.distanceToPoint(this.origin)===0?0:null;const C=-(this.origin.dot(e.normal)+e.constant)/n;return C>=0?C:null}intersectPlane(e,n){const C=this.distanceToPlane(e);return C===null?null:this.at(C,n)}intersectsPlane(e){const n=e.distanceToPoint(this.origin);return n===0||e.normal.dot(this.direction)*n<0}intersectBox(e,n){let C,r,i,o,s,a;const d=1/this.direction.x,g=1/this.direction.y,p=1/this.direction.z,A=this.origin;return d>=0?(C=(e.min.x-A.x)*d,r=(e.max.x-A.x)*d):(C=(e.max.x-A.x)*d,r=(e.min.x-A.x)*d),g>=0?(i=(e.min.y-A.y)*g,o=(e.max.y-A.y)*g):(i=(e.max.y-A.y)*g,o=(e.min.y-A.y)*g),C>o||i>r||((i>C||isNaN(C))&&(C=i),(o=0?(s=(e.min.z-A.z)*p,a=(e.max.z-A.z)*p):(s=(e.max.z-A.z)*p,a=(e.min.z-A.z)*p),C>a||s>r)||((s>C||C!==C)&&(C=s),(a=0?C:r,n)}intersectsBox(e){return this.intersectBox(e,U4)!==null}intersectTriangle(e,n,C,r,i){Hl.subVectors(n,e),Cr.subVectors(C,e),jl.crossVectors(Hl,Cr);let o=this.direction.dot(jl),s;if(o>0){if(r)return null;s=1}else if(o<0)s=-1,o=-o;else return null;M6.subVectors(this.origin,e);const a=s*this.direction.dot(Cr.crossVectors(M6,Cr));if(a<0)return null;const d=s*this.direction.dot(Hl.cross(M6));if(d<0||a+d>o)return null;const g=-s*M6.dot(jl);return g<0?null:this.at(g/o,i)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class f0{constructor(e,n,C,r,i,o,s,a,d,g,p,A,w,x,y,m){f0.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,n,C,r,i,o,s,a,d,g,p,A,w,x,y,m)}set(e,n,C,r,i,o,s,a,d,g,p,A,w,x,y,m){const L=this.elements;return L[0]=e,L[4]=n,L[8]=C,L[12]=r,L[1]=i,L[5]=o,L[9]=s,L[13]=a,L[2]=d,L[6]=g,L[10]=p,L[14]=A,L[3]=w,L[7]=x,L[11]=y,L[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new f0().fromArray(this.elements)}copy(e){const n=this.elements,C=e.elements;return n[0]=C[0],n[1]=C[1],n[2]=C[2],n[3]=C[3],n[4]=C[4],n[5]=C[5],n[6]=C[6],n[7]=C[7],n[8]=C[8],n[9]=C[9],n[10]=C[10],n[11]=C[11],n[12]=C[12],n[13]=C[13],n[14]=C[14],n[15]=C[15],this}copyPosition(e){const n=this.elements,C=e.elements;return n[12]=C[12],n[13]=C[13],n[14]=C[14],this}setFromMatrix3(e){const n=e.elements;return this.set(n[0],n[3],n[6],0,n[1],n[4],n[7],0,n[2],n[5],n[8],0,0,0,0,1),this}extractBasis(e,n,C){return e.setFromMatrixColumn(this,0),n.setFromMatrixColumn(this,1),C.setFromMatrixColumn(this,2),this}makeBasis(e,n,C){return this.set(e.x,n.x,C.x,0,e.y,n.y,C.y,0,e.z,n.z,C.z,0,0,0,0,1),this}extractRotation(e){const n=this.elements,C=e.elements,r=1/i7.setFromMatrixColumn(e,0).length(),i=1/i7.setFromMatrixColumn(e,1).length(),o=1/i7.setFromMatrixColumn(e,2).length();return n[0]=C[0]*r,n[1]=C[1]*r,n[2]=C[2]*r,n[3]=0,n[4]=C[4]*i,n[5]=C[5]*i,n[6]=C[6]*i,n[7]=0,n[8]=C[8]*o,n[9]=C[9]*o,n[10]=C[10]*o,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromEuler(e){const n=this.elements,C=e.x,r=e.y,i=e.z,o=Math.cos(C),s=Math.sin(C),a=Math.cos(r),d=Math.sin(r),g=Math.cos(i),p=Math.sin(i);if(e.order==="XYZ"){const A=o*g,w=o*p,x=s*g,y=s*p;n[0]=a*g,n[4]=-a*p,n[8]=d,n[1]=w+x*d,n[5]=A-y*d,n[9]=-s*a,n[2]=y-A*d,n[6]=x+w*d,n[10]=o*a}else if(e.order==="YXZ"){const A=a*g,w=a*p,x=d*g,y=d*p;n[0]=A+y*s,n[4]=x*s-w,n[8]=o*d,n[1]=o*p,n[5]=o*g,n[9]=-s,n[2]=w*s-x,n[6]=y+A*s,n[10]=o*a}else if(e.order==="ZXY"){const A=a*g,w=a*p,x=d*g,y=d*p;n[0]=A-y*s,n[4]=-o*p,n[8]=x+w*s,n[1]=w+x*s,n[5]=o*g,n[9]=y-A*s,n[2]=-o*d,n[6]=s,n[10]=o*a}else if(e.order==="ZYX"){const A=o*g,w=o*p,x=s*g,y=s*p;n[0]=a*g,n[4]=x*d-w,n[8]=A*d+y,n[1]=a*p,n[5]=y*d+A,n[9]=w*d-x,n[2]=-d,n[6]=s*a,n[10]=o*a}else if(e.order==="YZX"){const A=o*a,w=o*d,x=s*a,y=s*d;n[0]=a*g,n[4]=y-A*p,n[8]=x*p+w,n[1]=p,n[5]=o*g,n[9]=-s*g,n[2]=-d*g,n[6]=w*p+x,n[10]=A-y*p}else if(e.order==="XZY"){const A=o*a,w=o*d,x=s*a,y=s*d;n[0]=a*g,n[4]=-p,n[8]=d*g,n[1]=A*p+y,n[5]=o*g,n[9]=w*p-x,n[2]=x*p-w,n[6]=s*g,n[10]=y*p+A}return n[3]=0,n[7]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromQuaternion(e){return this.compose(BB,e,SB)}lookAt(e,n,C){const r=this.elements;return c8.subVectors(e,n),c8.lengthSq()===0&&(c8.z=1),c8.normalize(),E6.crossVectors(C,c8),E6.lengthSq()===0&&(Math.abs(C.z)===1?c8.x+=1e-4:c8.z+=1e-4,c8.normalize(),E6.crossVectors(C,c8)),E6.normalize(),rr.crossVectors(c8,E6),r[0]=E6.x,r[4]=rr.x,r[8]=c8.x,r[1]=E6.y,r[5]=rr.y,r[9]=c8.y,r[2]=E6.z,r[6]=rr.z,r[10]=c8.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,n){const C=e.elements,r=n.elements,i=this.elements,o=C[0],s=C[4],a=C[8],d=C[12],g=C[1],p=C[5],A=C[9],w=C[13],x=C[2],y=C[6],m=C[10],L=C[14],E=C[3],k=C[7],I=C[11],Q=C[15],_=r[0],T=r[4],j=r[8],q=r[12],R=r[1],N=r[5],K=r[9],A1=r[13],X=r[2],c1=r[6],o1=r[10],f1=r[14],U=r[3],t1=r[7],n1=r[11],u1=r[15];return i[0]=o*_+s*R+a*X+d*U,i[4]=o*T+s*N+a*c1+d*t1,i[8]=o*j+s*K+a*o1+d*n1,i[12]=o*q+s*A1+a*f1+d*u1,i[1]=g*_+p*R+A*X+w*U,i[5]=g*T+p*N+A*c1+w*t1,i[9]=g*j+p*K+A*o1+w*n1,i[13]=g*q+p*A1+A*f1+w*u1,i[2]=x*_+y*R+m*X+L*U,i[6]=x*T+y*N+m*c1+L*t1,i[10]=x*j+y*K+m*o1+L*n1,i[14]=x*q+y*A1+m*f1+L*u1,i[3]=E*_+k*R+I*X+Q*U,i[7]=E*T+k*N+I*c1+Q*t1,i[11]=E*j+k*K+I*o1+Q*n1,i[15]=E*q+k*A1+I*f1+Q*u1,this}multiplyScalar(e){const n=this.elements;return n[0]*=e,n[4]*=e,n[8]*=e,n[12]*=e,n[1]*=e,n[5]*=e,n[9]*=e,n[13]*=e,n[2]*=e,n[6]*=e,n[10]*=e,n[14]*=e,n[3]*=e,n[7]*=e,n[11]*=e,n[15]*=e,this}determinant(){const e=this.elements,n=e[0],C=e[4],r=e[8],i=e[12],o=e[1],s=e[5],a=e[9],d=e[13],g=e[2],p=e[6],A=e[10],w=e[14],x=e[3],y=e[7],m=e[11],L=e[15];return x*(+i*a*p-r*d*p-i*s*A+C*d*A+r*s*w-C*a*w)+y*(+n*a*w-n*d*A+i*o*A-r*o*w+r*d*g-i*a*g)+m*(+n*d*p-n*s*w-i*o*p+C*o*w+i*s*g-C*d*g)+L*(-r*s*g-n*a*p+n*s*A+r*o*p-C*o*A+C*a*g)}transpose(){const e=this.elements;let n;return n=e[1],e[1]=e[4],e[4]=n,n=e[2],e[2]=e[8],e[8]=n,n=e[6],e[6]=e[9],e[9]=n,n=e[3],e[3]=e[12],e[12]=n,n=e[7],e[7]=e[13],e[13]=n,n=e[11],e[11]=e[14],e[14]=n,this}setPosition(e,n,C){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=n,r[14]=C),this}invert(){const e=this.elements,n=e[0],C=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=e[6],d=e[7],g=e[8],p=e[9],A=e[10],w=e[11],x=e[12],y=e[13],m=e[14],L=e[15],E=p*m*d-y*A*d+y*a*w-s*m*w-p*a*L+s*A*L,k=x*A*d-g*m*d-x*a*w+o*m*w+g*a*L-o*A*L,I=g*y*d-x*p*d+x*s*w-o*y*w-g*s*L+o*p*L,Q=x*p*a-g*y*a-x*s*A+o*y*A+g*s*m-o*p*m,_=n*E+C*k+r*I+i*Q;if(_===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/_;return e[0]=E*T,e[1]=(y*A*i-p*m*i-y*r*w+C*m*w+p*r*L-C*A*L)*T,e[2]=(s*m*i-y*a*i+y*r*d-C*m*d-s*r*L+C*a*L)*T,e[3]=(p*a*i-s*A*i-p*r*d+C*A*d+s*r*w-C*a*w)*T,e[4]=k*T,e[5]=(g*m*i-x*A*i+x*r*w-n*m*w-g*r*L+n*A*L)*T,e[6]=(x*a*i-o*m*i-x*r*d+n*m*d+o*r*L-n*a*L)*T,e[7]=(o*A*i-g*a*i+g*r*d-n*A*d-o*r*w+n*a*w)*T,e[8]=I*T,e[9]=(x*p*i-g*y*i-x*C*w+n*y*w+g*C*L-n*p*L)*T,e[10]=(o*y*i-x*s*i+x*C*d-n*y*d-o*C*L+n*s*L)*T,e[11]=(g*s*i-o*p*i-g*C*d+n*p*d+o*C*w-n*s*w)*T,e[12]=Q*T,e[13]=(g*y*r-x*p*r+x*C*A-n*y*A-g*C*m+n*p*m)*T,e[14]=(x*s*r-o*y*r-x*C*a+n*y*a+o*C*m-n*s*m)*T,e[15]=(o*p*r-g*s*r+g*C*a-n*p*a-o*C*A+n*s*A)*T,this}scale(e){const n=this.elements,C=e.x,r=e.y,i=e.z;return n[0]*=C,n[4]*=r,n[8]*=i,n[1]*=C,n[5]*=r,n[9]*=i,n[2]*=C,n[6]*=r,n[10]*=i,n[3]*=C,n[7]*=r,n[11]*=i,this}getMaxScaleOnAxis(){const e=this.elements,n=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],C=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(n,C,r))}makeTranslation(e,n,C){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,n,0,0,1,C,0,0,0,1),this}makeRotationX(e){const n=Math.cos(e),C=Math.sin(e);return this.set(1,0,0,0,0,n,-C,0,0,C,n,0,0,0,0,1),this}makeRotationY(e){const n=Math.cos(e),C=Math.sin(e);return this.set(n,0,C,0,0,1,0,0,-C,0,n,0,0,0,0,1),this}makeRotationZ(e){const n=Math.cos(e),C=Math.sin(e);return this.set(n,-C,0,0,C,n,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,n){const C=Math.cos(n),r=Math.sin(n),i=1-C,o=e.x,s=e.y,a=e.z,d=i*o,g=i*s;return this.set(d*o+C,d*s-r*a,d*a+r*s,0,d*s+r*a,g*s+C,g*a-r*o,0,d*a-r*s,g*a+r*o,i*a*a+C,0,0,0,0,1),this}makeScale(e,n,C){return this.set(e,0,0,0,0,n,0,0,0,0,C,0,0,0,0,1),this}makeShear(e,n,C,r,i,o){return this.set(1,C,i,0,e,1,o,0,n,r,1,0,0,0,0,1),this}compose(e,n,C){const r=this.elements,i=n._x,o=n._y,s=n._z,a=n._w,d=i+i,g=o+o,p=s+s,A=i*d,w=i*g,x=i*p,y=o*g,m=o*p,L=s*p,E=a*d,k=a*g,I=a*p,Q=C.x,_=C.y,T=C.z;return r[0]=(1-(y+L))*Q,r[1]=(w+I)*Q,r[2]=(x-k)*Q,r[3]=0,r[4]=(w-I)*_,r[5]=(1-(A+L))*_,r[6]=(m+E)*_,r[7]=0,r[8]=(x+k)*T,r[9]=(m-E)*T,r[10]=(1-(A+y))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,n,C){const r=this.elements;let i=i7.set(r[0],r[1],r[2]).length();const o=i7.set(r[4],r[5],r[6]).length(),s=i7.set(r[8],r[9],r[10]).length();this.determinant()<0&&(i=-i),e.x=r[12],e.y=r[13],e.z=r[14],z8.copy(this);const d=1/i,g=1/o,p=1/s;return z8.elements[0]*=d,z8.elements[1]*=d,z8.elements[2]*=d,z8.elements[4]*=g,z8.elements[5]*=g,z8.elements[6]*=g,z8.elements[8]*=p,z8.elements[9]*=p,z8.elements[10]*=p,n.setFromRotationMatrix(z8),C.x=i,C.y=o,C.z=s,this}makePerspective(e,n,C,r,i,o,s=x4){const a=this.elements,d=2*i/(n-e),g=2*i/(C-r),p=(n+e)/(n-e),A=(C+r)/(C-r);let w,x;if(s===x4)w=-(o+i)/(o-i),x=-2*o*i/(o-i);else if(s===cn)w=-o/(o-i),x=-o*i/(o-i);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+s);return a[0]=d,a[4]=0,a[8]=p,a[12]=0,a[1]=0,a[5]=g,a[9]=A,a[13]=0,a[2]=0,a[6]=0,a[10]=w,a[14]=x,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(e,n,C,r,i,o,s=x4){const a=this.elements,d=1/(n-e),g=1/(C-r),p=1/(o-i),A=(n+e)*d,w=(C+r)*g;let x,y;if(s===x4)x=(o+i)*p,y=-2*p;else if(s===cn)x=i*p,y=-1*p;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+s);return a[0]=2*d,a[4]=0,a[8]=0,a[12]=-A,a[1]=0,a[5]=2*g,a[9]=0,a[13]=-w,a[2]=0,a[6]=0,a[10]=y,a[14]=-x,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){const n=this.elements,C=e.elements;for(let r=0;r<16;r++)if(n[r]!==C[r])return!1;return!0}fromArray(e,n=0){for(let C=0;C<16;C++)this.elements[C]=e[C+n];return this}toArray(e=[],n=0){const C=this.elements;return e[n]=C[0],e[n+1]=C[1],e[n+2]=C[2],e[n+3]=C[3],e[n+4]=C[4],e[n+5]=C[5],e[n+6]=C[6],e[n+7]=C[7],e[n+8]=C[8],e[n+9]=C[9],e[n+10]=C[10],e[n+11]=C[11],e[n+12]=C[12],e[n+13]=C[13],e[n+14]=C[14],e[n+15]=C[15],e}}const i7=new G,z8=new f0,BB=new G(0,0,0),SB=new G(1,1,1),E6=new G,rr=new G,c8=new G,Ap=new f0,vp=new j9;class ge{constructor(e=0,n=0,C=0,r=ge.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=n,this._z=C,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,n,C,r=this._order){return this._x=e,this._y=n,this._z=C,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,n=this._order,C=!0){const r=e.elements,i=r[0],o=r[4],s=r[8],a=r[1],d=r[5],g=r[9],p=r[2],A=r[6],w=r[10];switch(n){case"XYZ":this._y=Math.asin(Q2(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-g,w),this._z=Math.atan2(-o,i)):(this._x=Math.atan2(A,d),this._z=0);break;case"YXZ":this._x=Math.asin(-Q2(g,-1,1)),Math.abs(g)<.9999999?(this._y=Math.atan2(s,w),this._z=Math.atan2(a,d)):(this._y=Math.atan2(-p,i),this._z=0);break;case"ZXY":this._x=Math.asin(Q2(A,-1,1)),Math.abs(A)<.9999999?(this._y=Math.atan2(-p,w),this._z=Math.atan2(-o,d)):(this._y=0,this._z=Math.atan2(a,i));break;case"ZYX":this._y=Math.asin(-Q2(p,-1,1)),Math.abs(p)<.9999999?(this._x=Math.atan2(A,w),this._z=Math.atan2(a,i)):(this._x=0,this._z=Math.atan2(-o,d));break;case"YZX":this._z=Math.asin(Q2(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-g,d),this._y=Math.atan2(-p,i)):(this._x=0,this._y=Math.atan2(s,w));break;case"XZY":this._z=Math.asin(-Q2(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(A,d),this._y=Math.atan2(s,i)):(this._x=Math.atan2(-g,w),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+n)}return this._order=n,C===!0&&this._onChangeCallback(),this}setFromQuaternion(e,n,C){return Ap.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Ap,n,C)}setFromVector3(e,n=this._order){return this.set(e.x,e.y,e.z,n)}reorder(e){return vp.setFromEuler(this),this.setFromQuaternion(vp,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],n=0){return e[n]=this._x,e[n+1]=this._y,e[n+2]=this._z,e[n+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}ge.DEFAULT_ORDER="XYZ";let A3=class{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let n=0;n1){for(let C=0;C0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(s=>({boxInitialized:s.boxInitialized,boxMin:s.box.min.toArray(),boxMax:s.box.max.toArray(),sphereInitialized:s.sphereInitialized,sphereRadius:s.sphere.radius,sphereCenter:s.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function i(s,a){return s[a.uuid]===void 0&&(s[a.uuid]=a.toJSON(e)),a.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=i(e.geometries,this.geometry);const s=this.geometry.parameters;if(s!==void 0&&s.shapes!==void 0){const a=s.shapes;if(Array.isArray(a))for(let d=0,g=a.length;d0){r.children=[];for(let s=0;s0){r.animations=[];for(let s=0;s0&&(C.geometries=s),a.length>0&&(C.materials=a),d.length>0&&(C.textures=d),g.length>0&&(C.images=g),p.length>0&&(C.shapes=p),A.length>0&&(C.skeletons=A),w.length>0&&(C.animations=w),x.length>0&&(C.nodes=x)}return C.object=r,C;function o(s){const a=[];for(const d in s){const g=s[d];delete g.metadata,a.push(g)}return a}}clone(e){return new this.constructor().copy(this,e)}copy(e,n=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),n===!0)for(let C=0;C0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)}static getBarycoord(e,n,C,r,i){V8.subVectors(r,n),W4.subVectors(C,n),Ul.subVectors(e,n);const o=V8.dot(V8),s=V8.dot(W4),a=V8.dot(Ul),d=W4.dot(W4),g=W4.dot(Ul),p=o*d-s*s;if(p===0)return i.set(0,0,0),null;const A=1/p,w=(d*a-s*g)*A,x=(o*g-s*a)*A;return i.set(1-w-x,x,w)}static containsPoint(e,n,C,r){return this.getBarycoord(e,n,C,r,G4)===null?!1:G4.x>=0&&G4.y>=0&&G4.x+G4.y<=1}static getInterpolation(e,n,C,r,i,o,s,a){return this.getBarycoord(e,n,C,r,G4)===null?(a.x=0,a.y=0,"z"in a&&(a.z=0),"w"in a&&(a.w=0),null):(a.setScalar(0),a.addScaledVector(i,G4.x),a.addScaledVector(o,G4.y),a.addScaledVector(s,G4.z),a)}static isFrontFacing(e,n,C,r){return V8.subVectors(C,n),W4.subVectors(e,n),V8.cross(W4).dot(r)<0}set(e,n,C){return this.a.copy(e),this.b.copy(n),this.c.copy(C),this}setFromPointsAndIndices(e,n,C,r){return this.a.copy(e[n]),this.b.copy(e[C]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,n,C,r){return this.a.fromBufferAttribute(e,n),this.b.fromBufferAttribute(e,C),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return V8.subVectors(this.c,this.b),W4.subVectors(this.a,this.b),V8.cross(W4).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return E7.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,n){return E7.getBarycoord(e,this.a,this.b,this.c,n)}getInterpolation(e,n,C,r,i){return E7.getInterpolation(e,this.a,this.b,this.c,n,C,r,i)}containsPoint(e){return E7.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return E7.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,n){const C=this.a,r=this.b,i=this.c;let o,s;s7.subVectors(r,C),l7.subVectors(i,C),Fl.subVectors(e,C);const a=s7.dot(Fl),d=l7.dot(Fl);if(a<=0&&d<=0)return n.copy(C);Wl.subVectors(e,r);const g=s7.dot(Wl),p=l7.dot(Wl);if(g>=0&&p<=g)return n.copy(r);const A=a*p-g*d;if(A<=0&&a>=0&&g<=0)return o=a/(a-g),n.copy(C).addScaledVector(s7,o);Gl.subVectors(e,i);const w=s7.dot(Gl),x=l7.dot(Gl);if(x>=0&&w<=x)return n.copy(i);const y=w*d-a*x;if(y<=0&&d>=0&&x<=0)return s=d/(d-x),n.copy(C).addScaledVector(l7,s);const m=g*x-w*p;if(m<=0&&p-g>=0&&w-x>=0)return kp.subVectors(i,r),s=(p-g)/(p-g+(w-x)),n.copy(r).addScaledVector(kp,s);const L=1/(m+y+A);return o=y*L,s=A*L,n.copy(C).addScaledVector(s7,o).addScaledVector(l7,s)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}};const Ox={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},y6={h:0,s:0,l:0},or={h:0,s:0,l:0};function Ol(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*6*(2/3-n):t}class J1{constructor(e,n,C){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,n,C)}set(e,n,C){if(n===void 0&&C===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,n,C);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,n=P2){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,n2.toWorkingColorSpace(this,n),this}setRGB(e,n,C,r=n2.workingColorSpace){return this.r=e,this.g=n,this.b=C,n2.toWorkingColorSpace(this,r),this}setHSL(e,n,C,r=n2.workingColorSpace){if(e=Hd(e,1),n=Q2(n,0,1),C=Q2(C,0,1),n===0)this.r=this.g=this.b=C;else{const i=C<=.5?C*(1+n):C+n-C*n,o=2*C-i;this.r=Ol(o,i,e+1/3),this.g=Ol(o,i,e),this.b=Ol(o,i,e-1/3)}return n2.toWorkingColorSpace(this,r),this}setStyle(e,n=P2){function C(i){i!==void 0&&parseFloat(i)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let i;const o=r[1],s=r[2];switch(o){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return C(i[4]),this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,n);if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return C(i[4]),this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,n);break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return C(i[4]),this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,n);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const i=r[1],o=i.length;if(o===3)return this.setRGB(parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,n);if(o===6)return this.setHex(parseInt(i,16),n);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,n);return this}setColorName(e,n=P2){const C=Ox[e.toLowerCase()];return C!==void 0?this.setHex(C,n):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=K7(e.r),this.g=K7(e.g),this.b=K7(e.b),this}copyLinearToSRGB(e){return this.r=bl(e.r),this.g=bl(e.g),this.b=bl(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=P2){return n2.fromWorkingColorSpace(m9.copy(this),e),Math.round(Q2(m9.r*255,0,255))*65536+Math.round(Q2(m9.g*255,0,255))*256+Math.round(Q2(m9.b*255,0,255))}getHexString(e=P2){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,n=n2.workingColorSpace){n2.fromWorkingColorSpace(m9.copy(this),n);const C=m9.r,r=m9.g,i=m9.b,o=Math.max(C,r,i),s=Math.min(C,r,i);let a,d;const g=(s+o)/2;if(s===o)a=0,d=0;else{const p=o-s;switch(d=g<=.5?p/(o+s):p/(2-o-s),o){case C:a=(r-i)/p+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const n in e){const C=e[n];if(C===void 0){console.warn(`THREE.Material: parameter '${n}' has value of undefined.`);continue}const r=this[n];if(r===void 0){console.warn(`THREE.Material: '${n}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(C):r&&r.isVector3&&C&&C.isVector3?r.copy(C):this[n]=C}}toJSON(e){const n=e===void 0||typeof e=="string";n&&(e={textures:{},images:{}});const C={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};C.uuid=this.uuid,C.type=this.type,this.name!==""&&(C.name=this.name),this.color&&this.color.isColor&&(C.color=this.color.getHex()),this.roughness!==void 0&&(C.roughness=this.roughness),this.metalness!==void 0&&(C.metalness=this.metalness),this.sheen!==void 0&&(C.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(C.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(C.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(C.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(C.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(C.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(C.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(C.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(C.shininess=this.shininess),this.clearcoat!==void 0&&(C.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(C.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(C.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(C.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(C.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,C.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(C.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(C.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(C.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(C.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(C.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(C.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(C.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(C.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(C.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(C.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(C.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(C.lightMap=this.lightMap.toJSON(e).uuid,C.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(C.aoMap=this.aoMap.toJSON(e).uuid,C.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(C.bumpMap=this.bumpMap.toJSON(e).uuid,C.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(C.normalMap=this.normalMap.toJSON(e).uuid,C.normalMapType=this.normalMapType,C.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(C.displacementMap=this.displacementMap.toJSON(e).uuid,C.displacementScale=this.displacementScale,C.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(C.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(C.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(C.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(C.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(C.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(C.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(C.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(C.combine=this.combine)),this.envMapIntensity!==void 0&&(C.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(C.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(C.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(C.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(C.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(C.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(C.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(C.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(C.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(C.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(C.size=this.size),this.shadowSide!==null&&(C.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(C.sizeAttenuation=this.sizeAttenuation),this.blending!==f3&&(C.blending=this.blending),this.side!==j8&&(C.side=this.side),this.vertexColors===!0&&(C.vertexColors=!0),this.opacity<1&&(C.opacity=this.opacity),this.transparent===!0&&(C.transparent=!0),this.blendSrc!==qi&&(C.blendSrc=this.blendSrc),this.blendDst!==Ki&&(C.blendDst=this.blendDst),this.blendEquation!==N6&&(C.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(C.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(C.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(C.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(C.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(C.blendAlpha=this.blendAlpha),this.depthFunc!==qt&&(C.depthFunc=this.depthFunc),this.depthTest===!1&&(C.depthTest=this.depthTest),this.depthWrite===!1&&(C.depthWrite=this.depthWrite),this.colorWrite===!1&&(C.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(C.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==Cu&&(C.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(C.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(C.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==K5&&(C.stencilFail=this.stencilFail),this.stencilZFail!==K5&&(C.stencilZFail=this.stencilZFail),this.stencilZPass!==K5&&(C.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(C.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(C.rotation=this.rotation),this.polygonOffset===!0&&(C.polygonOffset=!0),this.polygonOffsetFactor!==0&&(C.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(C.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(C.linewidth=this.linewidth),this.dashSize!==void 0&&(C.dashSize=this.dashSize),this.gapSize!==void 0&&(C.gapSize=this.gapSize),this.scale!==void 0&&(C.scale=this.scale),this.dithering===!0&&(C.dithering=!0),this.alphaTest>0&&(C.alphaTest=this.alphaTest),this.alphaHash===!0&&(C.alphaHash=!0),this.alphaToCoverage===!0&&(C.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(C.premultipliedAlpha=!0),this.forceSinglePass===!0&&(C.forceSinglePass=!0),this.wireframe===!0&&(C.wireframe=!0),this.wireframeLinewidth>1&&(C.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(C.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(C.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(C.flatShading=!0),this.visible===!1&&(C.visible=!1),this.toneMapped===!1&&(C.toneMapped=!1),this.fog===!1&&(C.fog=!1),Object.keys(this.userData).length>0&&(C.userData=this.userData);function r(i){const o=[];for(const s in i){const a=i[s];delete a.metadata,o.push(a)}return o}if(n){const i=r(e.textures),o=r(e.images);i.length>0&&(C.textures=i),o.length>0&&(C.images=o)}return C}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const n=e.clippingPlanes;let C=null;if(n!==null){const r=n.length;C=new Array(r);for(let i=0;i!==r;++i)C[i]=n[i].clone()}return this.clippingPlanes=C,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class t8 extends s9{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new J1(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=yn,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const X4=NB();function NB(){const t=new ArrayBuffer(4),e=new Float32Array(t),n=new Uint32Array(t),C=new Uint32Array(512),r=new Uint32Array(512);for(let a=0;a<256;++a){const d=a-127;d<-27?(C[a]=0,C[a|256]=32768,r[a]=24,r[a|256]=24):d<-14?(C[a]=1024>>-d-14,C[a|256]=1024>>-d-14|32768,r[a]=-d-1,r[a|256]=-d-1):d<=15?(C[a]=d+15<<10,C[a|256]=d+15<<10|32768,r[a]=13,r[a|256]=13):d<128?(C[a]=31744,C[a|256]=64512,r[a]=24,r[a|256]=24):(C[a]=31744,C[a|256]=64512,r[a]=13,r[a|256]=13)}const i=new Uint32Array(2048),o=new Uint32Array(64),s=new Uint32Array(64);for(let a=1;a<1024;++a){let d=a<<13,g=0;for(;!(d&8388608);)d<<=1,g-=8388608;d&=-8388609,g+=947912704,i[a]=d|g}for(let a=1024;a<2048;++a)i[a]=939524096+(a-1024<<13);for(let a=1;a<31;++a)o[a]=a<<23;o[31]=1199570944,o[32]=2147483648;for(let a=33;a<63;++a)o[a]=2147483648+(a-32<<23);o[63]=3347054592;for(let a=1;a<64;++a)a!==32&&(s[a]=1024);return{floatView:e,uint32View:n,baseTable:C,shiftTable:r,mantissaTable:i,exponentTable:o,offsetTable:s}}function X9(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=Q2(t,-65504,65504),X4.floatView[0]=t;const e=X4.uint32View[0],n=e>>23&511;return X4.baseTable[n]+((e&8388607)>>X4.shiftTable[n])}function ft(t){const e=t>>10;return X4.uint32View[0]=X4.mantissaTable[X4.offsetTable[e]+(t&1023)]+X4.exponentTable[e],X4.floatView[0]}const PB={toHalfFloat:X9,fromHalfFloat:ft},O2=new G,sr=new y1;class t2{constructor(e,n,C=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=n,this.count=e!==void 0?e.length/n:0,this.normalized=C,this.usage=an,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Q8,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return p3("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,n,C){e*=this.itemSize,C*=n.itemSize;for(let r=0,i=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const a=this.parameters;for(const d in a)a[d]!==void 0&&(e[d]=a[d]);return e}e.data={attributes:{}};const n=this.index;n!==null&&(e.data.index={type:n.array.constructor.name,array:Array.prototype.slice.call(n.array)});const C=this.attributes;for(const a in C){const d=C[a];e.data.attributes[a]=d.toJSON(e.data)}const r={};let i=!1;for(const a in this.morphAttributes){const d=this.morphAttributes[a],g=[];for(let p=0,A=d.length;p0&&(r[a]=g,i=!0)}i&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const s=this.boundingSphere;return s!==null&&(e.data.boundingSphere={center:s.center.toArray(),radius:s.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const n={};this.name=e.name;const C=e.index;C!==null&&this.setIndex(C.clone(n));const r=e.attributes;for(const d in r){const g=r[d];this.setAttribute(d,g.clone(n))}const i=e.morphAttributes;for(const d in i){const g=[],p=i[d];for(let A=0,w=p.length;A0){const r=n[C[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,o=r.length;i(e.far-e.near)**2))&&(Mp.copy(i).invert(),U5.copy(e.ray).applyMatrix4(Mp),!(C.boundingBox!==null&&U5.intersectsBox(C.boundingBox)===!1)&&this._computeIntersections(e,n,U5)))}_computeIntersections(e,n,C){let r;const i=this.geometry,o=this.material,s=i.index,a=i.attributes.position,d=i.attributes.uv,g=i.attributes.uv1,p=i.attributes.normal,A=i.groups,w=i.drawRange;if(s!==null)if(Array.isArray(o))for(let x=0,y=A.length;xn.far?null:{distance:d,point:fr.clone(),object:t}}function gr(t,e,n,C,r,i,o,s,a,d){t.getVertexPosition(s,c7),t.getVertexPosition(a,u7),t.getVertexPosition(d,d7);const g=VB(t,e,n,C,c7,u7,d7,hr);if(g){r&&(cr.fromBufferAttribute(r,s),ur.fromBufferAttribute(r,a),dr.fromBufferAttribute(r,d),g.uv=c3.getInterpolation(hr,c7,u7,d7,cr,ur,dr,new y1)),i&&(cr.fromBufferAttribute(i,s),ur.fromBufferAttribute(i,a),dr.fromBufferAttribute(i,d),g.uv1=c3.getInterpolation(hr,c7,u7,d7,cr,ur,dr,new y1),g.uv2=g.uv1),o&&(yp.fromBufferAttribute(o,s),Ip.fromBufferAttribute(o,a),Bp.fromBufferAttribute(o,d),g.normal=c3.getInterpolation(hr,c7,u7,d7,yp,Ip,Bp,new G),g.normal.dot(C.direction)>0&&g.normal.multiplyScalar(-1));const p={a:s,b:a,c:d,normal:new G,materialIndex:0};c3.getNormal(c7,u7,d7,p.normal),g.face=p}return g}class _3 extends b0{constructor(e=1,n=1,C=1,r=1,i=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:n,depth:C,widthSegments:r,heightSegments:i,depthSegments:o};const s=this;r=Math.floor(r),i=Math.floor(i),o=Math.floor(o);const a=[],d=[],g=[],p=[];let A=0,w=0;x("z","y","x",-1,-1,C,n,e,o,i,0),x("z","y","x",1,-1,C,n,-e,o,i,1),x("x","z","y",1,1,e,C,n,r,o,2),x("x","z","y",1,-1,e,C,-n,r,o,3),x("x","y","z",1,-1,e,n,C,r,i,4),x("x","y","z",-1,-1,e,n,-C,r,i,5),this.setIndex(a),this.setAttribute("position",new o0(d,3)),this.setAttribute("normal",new o0(g,3)),this.setAttribute("uv",new o0(p,2));function x(y,m,L,E,k,I,Q,_,T,j,q){const R=I/T,N=Q/j,K=I/2,A1=Q/2,X=_/2,c1=T+1,o1=j+1;let f1=0,U=0;const t1=new G;for(let n1=0;n10?1:-1,g.push(t1.x,t1.y,t1.z),p.push(x1/T),p.push(1-n1/j),f1+=1}}for(let n1=0;n10&&(n.defines=this.defines),n.vertexShader=this.vertexShader,n.fragmentShader=this.fragmentShader,n.lights=this.lights,n.clipping=this.clipping;const C={};for(const r in this.extensions)this.extensions[r]===!0&&(C[r]=!0);return Object.keys(C).length>0&&(n.extensions=C),n}}let Bn=class extends q0{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new f0,this.projectionMatrix=new f0,this.projectionMatrixInverse=new f0,this.coordinateSystem=x4}copy(e,n){return super.copy(e,n),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}};const I6=new G,Sp=new y1,_p=new y1;class Y2 extends Bn{constructor(e=50,n=1,C=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=C,this.far=r,this.focus=10,this.aspect=n,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,n){return super.copy(e,n),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const n=.5*this.getFilmHeight()/e;this.fov=se*2*Math.atan(n),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(g3*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return se*2*Math.atan(Math.tan(g3*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,n,C){I6.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(I6.x,I6.y).multiplyScalar(-e/I6.z),I6.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),C.set(I6.x,I6.y).multiplyScalar(-e/I6.z)}getViewSize(e,n){return this.getViewBounds(e,Sp,_p),n.subVectors(_p,Sp)}setViewOffset(e,n,C,r,i,o){this.aspect=e/n,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=n,this.view.offsetX=C,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let n=e*Math.tan(g3*.5*this.fov)/this.zoom,C=2*n,r=this.aspect*C,i=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const a=o.fullWidth,d=o.fullHeight;i+=o.offsetX*r/a,n-=o.offsetY*C/d,r*=o.width/a,C*=o.height/d}const s=this.filmOffset;s!==0&&(i+=e*s/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+r,n,n-C,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const n=super.toJSON(e);return n.object.fov=this.fov,n.object.zoom=this.zoom,n.object.near=this.near,n.object.far=this.far,n.object.focus=this.focus,n.object.aspect=this.aspect,this.view!==null&&(n.object.view=Object.assign({},this.view)),n.object.filmGauge=this.filmGauge,n.object.filmOffset=this.filmOffset,n}}const h7=-90,f7=1;class $x extends q0{constructor(e,n,C){super(),this.type="CubeCamera",this.renderTarget=C,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Y2(h7,f7,e,n);r.layers=this.layers,this.add(r);const i=new Y2(h7,f7,e,n);i.layers=this.layers,this.add(i);const o=new Y2(h7,f7,e,n);o.layers=this.layers,this.add(o);const s=new Y2(h7,f7,e,n);s.layers=this.layers,this.add(s);const a=new Y2(h7,f7,e,n);a.layers=this.layers,this.add(a);const d=new Y2(h7,f7,e,n);d.layers=this.layers,this.add(d)}updateCoordinateSystem(){const e=this.coordinateSystem,n=this.children.concat(),[C,r,i,o,s,a]=n;for(const d of n)this.remove(d);if(e===x4)C.up.set(0,1,0),C.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),i.up.set(0,0,-1),i.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),s.up.set(0,1,0),s.lookAt(0,0,1),a.up.set(0,1,0),a.lookAt(0,0,-1);else if(e===cn)C.up.set(0,-1,0),C.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),i.up.set(0,0,1),i.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),s.up.set(0,-1,0),s.lookAt(0,0,1),a.up.set(0,-1,0),a.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const d of n)this.add(d),d.updateMatrixWorld()}update(e,n){this.parent===null&&this.updateMatrixWorld();const{renderTarget:C,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[i,o,s,a,d,g]=this.children,p=e.getRenderTarget(),A=e.getActiveCubeFace(),w=e.getActiveMipmapLevel(),x=e.xr.enabled;e.xr.enabled=!1;const y=C.texture.generateMipmaps;C.texture.generateMipmaps=!1,e.setRenderTarget(C,0,r),e.render(n,i),e.setRenderTarget(C,1,r),e.render(n,o),e.setRenderTarget(C,2,r),e.render(n,s),e.setRenderTarget(C,3,r),e.render(n,a),e.setRenderTarget(C,4,r),e.render(n,d),C.texture.generateMipmaps=y,e.setRenderTarget(C,5,r),e.render(n,g),e.setRenderTarget(p,A,w),e.xr.enabled=x,C.texture.needsPMREMUpdate=!0}}class Sn extends m2{constructor(e,n,C,r,i,o,s,a,d,g){e=e!==void 0?e:[],n=n!==void 0?n:o6,super(e,n,C,r,i,o,s,a,d,g),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class Yx extends U8{constructor(e=1,n={}){super(e,e,n),this.isWebGLCubeRenderTarget=!0;const C={width:e,height:e,depth:1},r=[C,C,C,C,C,C];n.encoding!==void 0&&(p3("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),n.colorSpace=n.encoding===q6?P2:h8),this.texture=new Sn(r,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:A2}fromEquirectangularTexture(e,n){this.texture.type=n.type,this.texture.colorSpace=n.colorSpace,this.texture.generateMipmaps=n.generateMipmaps,this.texture.minFilter=n.minFilter,this.texture.magFilter=n.magFilter;const C={uniforms:{tEquirect:{value:null}},vertexShader:` - - varying vec3 vWorldDirection; - - vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); - - } - - void main() { - - vWorldDirection = transformDirection( position, modelMatrix ); - - #include - #include - - } - `,fragmentShader:` - - uniform sampler2D tEquirect; - - varying vec3 vWorldDirection; - - #include - - void main() { - - vec3 direction = normalize( vWorldDirection ); - - vec2 sampleUV = equirectUv( direction ); - - gl_FragColor = texture2D( tEquirect, sampleUV ); - - } - `},r=new _3(5,5,5),i=new n4({name:"CubemapFromEquirect",uniforms:le(C.uniforms),vertexShader:C.vertexShader,fragmentShader:C.fragmentShader,side:H9,blending:t6});i.uniforms.tEquirect.value=n;const o=new e2(r,i),s=n.minFilter;return n.minFilter===w4&&(n.minFilter=A2),new $x(1,10,this).update(e,o),n.minFilter=s,o.geometry.dispose(),o.material.dispose(),this}clear(e,n,C,r){const i=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(n,C,r);e.setRenderTarget(i)}}const $l=new G,JB=new G,qB=new B0;let o2=class{constructor(e=new G(1,0,0),n=0){this.isPlane=!0,this.normal=e,this.constant=n}set(e,n){return this.normal.copy(e),this.constant=n,this}setComponents(e,n,C,r){return this.normal.set(e,n,C),this.constant=r,this}setFromNormalAndCoplanarPoint(e,n){return this.normal.copy(e),this.constant=-n.dot(this.normal),this}setFromCoplanarPoints(e,n,C){const r=$l.subVectors(C,n).cross(JB.subVectors(e,n)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,n){return n.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,n){const C=e.delta($l),r=this.normal.dot(C);if(r===0)return this.distanceToPoint(e.start)===0?n.copy(e.start):null;const i=-(e.start.dot(this.normal)+this.constant)/r;return i<0||i>1?null:n.copy(e.start).addScaledVector(C,i)}intersectsLine(e){const n=this.distanceToPoint(e.start),C=this.distanceToPoint(e.end);return n<0&&C>0||C<0&&n>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,n){const C=n||qB.getNormalMatrix(e),r=this.coplanarPoint($l).applyMatrix4(e),i=this.normal.applyMatrix3(C).normalize();return this.constant=-r.dot(i),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}};const F5=new i9,pr=new G;class _n{constructor(e=new o2,n=new o2,C=new o2,r=new o2,i=new o2,o=new o2){this.planes=[e,n,C,r,i,o]}set(e,n,C,r,i,o){const s=this.planes;return s[0].copy(e),s[1].copy(n),s[2].copy(C),s[3].copy(r),s[4].copy(i),s[5].copy(o),this}copy(e){const n=this.planes;for(let C=0;C<6;C++)n[C].copy(e.planes[C]);return this}setFromProjectionMatrix(e,n=x4){const C=this.planes,r=e.elements,i=r[0],o=r[1],s=r[2],a=r[3],d=r[4],g=r[5],p=r[6],A=r[7],w=r[8],x=r[9],y=r[10],m=r[11],L=r[12],E=r[13],k=r[14],I=r[15];if(C[0].setComponents(a-i,A-d,m-w,I-L).normalize(),C[1].setComponents(a+i,A+d,m+w,I+L).normalize(),C[2].setComponents(a+o,A+g,m+x,I+E).normalize(),C[3].setComponents(a-o,A-g,m-x,I-E).normalize(),C[4].setComponents(a-s,A-p,m-y,I-k).normalize(),n===x4)C[5].setComponents(a+s,A+p,m+y,I+k).normalize();else if(n===cn)C[5].setComponents(s,p,y,k).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+n);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),F5.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const n=e.geometry;n.boundingSphere===null&&n.computeBoundingSphere(),F5.copy(n.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(F5)}intersectsSprite(e){return F5.center.set(0,0,0),F5.radius=.7071067811865476,F5.applyMatrix4(e.matrixWorld),this.intersectsSphere(F5)}intersectsSphere(e){const n=this.planes,C=e.center,r=-e.radius;for(let i=0;i<6;i++)if(n[i].distanceToPoint(C)0?e.max.x:e.min.x,pr.y=r.normal.y>0?e.max.y:e.min.y,pr.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(pr)<0)return!1}return!0}containsPoint(e){const n=this.planes;for(let C=0;C<6;C++)if(n[C].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function Xx(){let t=null,e=!1,n=null,C=null;function r(i,o){n(i,o),C=t.requestAnimationFrame(r)}return{start:function(){e!==!0&&n!==null&&(C=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(C),e=!1},setAnimationLoop:function(i){n=i},setContext:function(i){t=i}}}function KB(t,e){const n=e.isWebGL2,C=new WeakMap;function r(d,g){const p=d.array,A=d.usage,w=p.byteLength,x=t.createBuffer();t.bindBuffer(g,x),t.bufferData(g,p,A),d.onUploadCallback();let y;if(p instanceof Float32Array)y=t.FLOAT;else if(p instanceof Uint16Array)if(d.isFloat16BufferAttribute)if(n)y=t.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else y=t.UNSIGNED_SHORT;else if(p instanceof Int16Array)y=t.SHORT;else if(p instanceof Uint32Array)y=t.UNSIGNED_INT;else if(p instanceof Int32Array)y=t.INT;else if(p instanceof Int8Array)y=t.BYTE;else if(p instanceof Uint8Array)y=t.UNSIGNED_BYTE;else if(p instanceof Uint8ClampedArray)y=t.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+p);return{buffer:x,type:y,bytesPerElement:p.BYTES_PER_ELEMENT,version:d.version,size:w}}function i(d,g,p){const A=g.array,w=g._updateRange,x=g.updateRanges;if(t.bindBuffer(p,d),w.count===-1&&x.length===0&&t.bufferSubData(p,0,A),x.length!==0){for(let y=0,m=x.length;y 0 - vec4 plane; - #ifdef ALPHA_TO_COVERAGE - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - if ( clipOpacity == 0.0 ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - float unionClipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - } - #pragma unroll_loop_end - clipOpacity *= 1.0 - unionClipOpacity; - #endif - diffuseColor.a *= clipOpacity; - if ( diffuseColor.a == 0.0 ) discard; - #else - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - bool clipped = true; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; - } - #pragma unroll_loop_end - if ( clipped ) discard; - #endif - #endif -#endif`,gS=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; - uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,pS=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; -#endif`,AS=`#if NUM_CLIPPING_PLANES > 0 - vClipPosition = - mvPosition.xyz; -#endif`,vS=`#if defined( USE_COLOR_ALPHA ) - diffuseColor *= vColor; -#elif defined( USE_COLOR ) - diffuseColor.rgb *= vColor; -#endif`,LS=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) - varying vec3 vColor; -#endif`,wS=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) - varying vec3 vColor; -#endif`,xS=`#if defined( USE_COLOR_ALPHA ) - vColor = vec4( 1.0 ); -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) - vColor = vec3( 1.0 ); -#endif -#ifdef USE_COLOR - vColor *= color; -#endif -#ifdef USE_INSTANCING_COLOR - vColor.xyz *= instanceColor.xyz; -#endif`,mS=`#define PI 3.141592653589793 -#define PI2 6.283185307179586 -#define PI_HALF 1.5707963267948966 -#define RECIPROCAL_PI 0.3183098861837907 -#define RECIPROCAL_PI2 0.15915494309189535 -#define EPSILON 1e-6 -#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -#define whiteComplement( a ) ( 1.0 - saturate( a ) ) -float pow2( const in float x ) { return x*x; } -vec3 pow2( const in vec3 x ) { return x*x; } -float pow3( const in float x ) { return x*x*x; } -float pow4( const in float x ) { float x2 = x*x; return x2*x2; } -float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } -float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } -highp float rand( const in vec2 uv ) { - const highp float a = 12.9898, b = 78.233, c = 43758.5453; - highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); - return fract( sin( sn ) * c ); -} -#ifdef HIGH_PRECISION - float precisionSafeLength( vec3 v ) { return length( v ); } -#else - float precisionSafeLength( vec3 v ) { - float maxComponent = max3( abs( v ) ); - return length( v / maxComponent ) * maxComponent; - } -#endif -struct IncidentLight { - vec3 color; - vec3 direction; - bool visible; -}; -struct ReflectedLight { - vec3 directDiffuse; - vec3 directSpecular; - vec3 indirectDiffuse; - vec3 indirectSpecular; -}; -#ifdef USE_ALPHAHASH - varying vec3 vPosition; -#endif -vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); -} -vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); -} -mat3 transposeMat3( const in mat3 m ) { - mat3 tmp; - tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); - tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); - tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); - return tmp; -} -float luminance( const in vec3 rgb ) { - const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); - return dot( weights, rgb ); -} -bool isPerspectiveMatrix( mat4 m ) { - return m[ 2 ][ 3 ] == - 1.0; -} -vec2 equirectUv( in vec3 dir ) { - float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; - float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; - return vec2( u, v ); -} -vec3 BRDF_Lambert( const in vec3 diffuseColor ) { - return RECIPROCAL_PI * diffuseColor; -} -vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} -float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} // validated`,kS=`#ifdef ENVMAP_TYPE_CUBE_UV - #define cubeUV_minMipLevel 4.0 - #define cubeUV_minTileSize 16.0 - float getFace( vec3 direction ) { - vec3 absDirection = abs( direction ); - float face = - 1.0; - if ( absDirection.x > absDirection.z ) { - if ( absDirection.x > absDirection.y ) - face = direction.x > 0.0 ? 0.0 : 3.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } else { - if ( absDirection.z > absDirection.y ) - face = direction.z > 0.0 ? 2.0 : 5.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } - return face; - } - vec2 getUV( vec3 direction, float face ) { - vec2 uv; - if ( face == 0.0 ) { - uv = vec2( direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 1.0 ) { - uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); - } else if ( face == 2.0 ) { - uv = vec2( - direction.x, direction.y ) / abs( direction.z ); - } else if ( face == 3.0 ) { - uv = vec2( - direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 4.0 ) { - uv = vec2( - direction.x, direction.z ) / abs( direction.y ); - } else { - uv = vec2( direction.x, direction.y ) / abs( direction.z ); - } - return 0.5 * ( uv + 1.0 ); - } - vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { - float face = getFace( direction ); - float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); - mipInt = max( mipInt, cubeUV_minMipLevel ); - float faceSize = exp2( mipInt ); - highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; - if ( face > 2.0 ) { - uv.y += faceSize; - face -= 3.0; - } - uv.x += face * faceSize; - uv.x += filterInt * 3.0 * cubeUV_minTileSize; - uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); - uv.x *= CUBEUV_TEXEL_WIDTH; - uv.y *= CUBEUV_TEXEL_HEIGHT; - #ifdef texture2DGradEXT - return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; - #else - return texture2D( envMap, uv ).rgb; - #endif - } - #define cubeUV_r0 1.0 - #define cubeUV_m0 - 2.0 - #define cubeUV_r1 0.8 - #define cubeUV_m1 - 1.0 - #define cubeUV_r4 0.4 - #define cubeUV_m4 2.0 - #define cubeUV_r5 0.305 - #define cubeUV_m5 3.0 - #define cubeUV_r6 0.21 - #define cubeUV_m6 4.0 - float roughnessToMip( float roughness ) { - float mip = 0.0; - if ( roughness >= cubeUV_r1 ) { - mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; - } else if ( roughness >= cubeUV_r4 ) { - mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; - } else if ( roughness >= cubeUV_r5 ) { - mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; - } else if ( roughness >= cubeUV_r6 ) { - mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; - } else { - mip = - 2.0 * log2( 1.16 * roughness ); } - return mip; - } - vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { - float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); - float mipF = fract( mip ); - float mipInt = floor( mip ); - vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); - if ( mipF == 0.0 ) { - return vec4( color0, 1.0 ); - } else { - vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); - return vec4( mix( color0, color1, mipF ), 1.0 ); - } - } -#endif`,MS=`vec3 transformedNormal = objectNormal; -#ifdef USE_TANGENT - vec3 transformedTangent = objectTangent; -#endif -#ifdef USE_BATCHING - mat3 bm = mat3( batchingMatrix ); - transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); - transformedNormal = bm * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = bm * transformedTangent; - #endif -#endif -#ifdef USE_INSTANCING - mat3 im = mat3( instanceMatrix ); - transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); - transformedNormal = im * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = im * transformedTangent; - #endif -#endif -transformedNormal = normalMatrix * transformedNormal; -#ifdef FLIP_SIDED - transformedNormal = - transformedNormal; -#endif -#ifdef USE_TANGENT - transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; - #ifdef FLIP_SIDED - transformedTangent = - transformedTangent; - #endif -#endif`,ES=`#ifdef USE_DISPLACEMENTMAP - uniform sampler2D displacementMap; - uniform float displacementScale; - uniform float displacementBias; -#endif`,yS=`#ifdef USE_DISPLACEMENTMAP - transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,IS=`#ifdef USE_EMISSIVEMAP - vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); - totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,BS=`#ifdef USE_EMISSIVEMAP - uniform sampler2D emissiveMap; -#endif`,SS="gl_FragColor = linearToOutputTexel( gl_FragColor );",_S=` -const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( - vec3( 0.8224621, 0.177538, 0.0 ), - vec3( 0.0331941, 0.9668058, 0.0 ), - vec3( 0.0170827, 0.0723974, 0.9105199 ) -); -const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( - vec3( 1.2249401, - 0.2249404, 0.0 ), - vec3( - 0.0420569, 1.0420571, 0.0 ), - vec3( - 0.0196376, - 0.0786361, 1.0982735 ) -); -vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { - return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); -} -vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { - return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); -} -vec4 LinearTransferOETF( in vec4 value ) { - return value; -} -vec4 sRGBTransferOETF( in vec4 value ) { - return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); -} -vec4 LinearToLinear( in vec4 value ) { - return value; -} -vec4 LinearTosRGB( in vec4 value ) { - return sRGBTransferOETF( value ); -}`,RS=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vec3 cameraToFrag; - if ( isOrthographic ) { - cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToFrag = normalize( vWorldPosition - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vec3 reflectVec = reflect( cameraToFrag, worldNormal ); - #else - vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); - #endif - #else - vec3 reflectVec = vReflect; - #endif - #ifdef ENVMAP_TYPE_CUBE - vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); - #else - vec4 envColor = vec4( 0.0 ); - #endif - #ifdef ENVMAP_BLENDING_MULTIPLY - outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_MIX ) - outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_ADD ) - outgoingLight += envColor.xyz * specularStrength * reflectivity; - #endif -#endif`,bS=`#ifdef USE_ENVMAP - uniform float envMapIntensity; - uniform float flipEnvMap; - #ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; - #else - uniform sampler2D envMap; - #endif - -#endif`,QS=`#ifdef USE_ENVMAP - uniform float reflectivity; - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - varying vec3 vWorldPosition; - uniform float refractionRatio; - #else - varying vec3 vReflect; - #endif -#endif`,TS=`#ifdef USE_ENVMAP - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - - varying vec3 vWorldPosition; - #else - varying vec3 vReflect; - uniform float refractionRatio; - #endif -#endif`,DS=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vWorldPosition = worldPosition.xyz; - #else - vec3 cameraToVertex; - if ( isOrthographic ) { - cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vReflect = reflect( cameraToVertex, worldNormal ); - #else - vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); - #endif - #endif -#endif`,NS=`#ifdef USE_FOG - vFogDepth = - mvPosition.z; -#endif`,PS=`#ifdef USE_FOG - varying float vFogDepth; -#endif`,HS=`#ifdef USE_FOG - #ifdef FOG_EXP2 - float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); - #else - float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); - #endif - gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); -#endif`,jS=`#ifdef USE_FOG - uniform vec3 fogColor; - varying float vFogDepth; - #ifdef FOG_EXP2 - uniform float fogDensity; - #else - uniform float fogNear; - uniform float fogFar; - #endif -#endif`,US=`#ifdef USE_GRADIENTMAP - uniform sampler2D gradientMap; -#endif -vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { - float dotNL = dot( normal, lightDirection ); - vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); - #ifdef USE_GRADIENTMAP - return vec3( texture2D( gradientMap, coord ).r ); - #else - vec2 fw = fwidth( coord ) * 0.5; - return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); - #endif -}`,FS=`#ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - reflectedLight.indirectDiffuse += lightMapIrradiance; -#endif`,WS=`#ifdef USE_LIGHTMAP - uniform sampler2D lightMap; - uniform float lightMapIntensity; -#endif`,GS=`LambertMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,OS=`varying vec3 vViewPosition; -struct LambertMaterial { - vec3 diffuseColor; - float specularStrength; -}; -void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Lambert -#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,zS=`uniform bool receiveShadow; -uniform vec3 ambientLightColor; -#if defined( USE_LIGHT_PROBES ) - uniform vec3 lightProbe[ 9 ]; -#endif -vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { - float x = normal.x, y = normal.y, z = normal.z; - vec3 result = shCoefficients[ 0 ] * 0.886227; - result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; - result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; - result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; - result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; - result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; - result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); - result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; - result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); - return result; -} -vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); - return irradiance; -} -vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { - vec3 irradiance = ambientLightColor; - return irradiance; -} -float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { - #if defined ( LEGACY_LIGHTS ) - if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { - return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); - } - return 1.0; - #else - float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); - if ( cutoffDistance > 0.0 ) { - distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); - } - return distanceFalloff; - #endif -} -float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { - return smoothstep( coneCosine, penumbraCosine, angleCosine ); -} -#if NUM_DIR_LIGHTS > 0 - struct DirectionalLight { - vec3 direction; - vec3 color; - }; - uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; - void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { - light.color = directionalLight.color; - light.direction = directionalLight.direction; - light.visible = true; - } -#endif -#if NUM_POINT_LIGHTS > 0 - struct PointLight { - vec3 position; - vec3 color; - float distance; - float decay; - }; - uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; - void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = pointLight.position - geometryPosition; - light.direction = normalize( lVector ); - float lightDistance = length( lVector ); - light.color = pointLight.color; - light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } -#endif -#if NUM_SPOT_LIGHTS > 0 - struct SpotLight { - vec3 position; - vec3 direction; - vec3 color; - float distance; - float decay; - float coneCos; - float penumbraCos; - }; - uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; - void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = spotLight.position - geometryPosition; - light.direction = normalize( lVector ); - float angleCos = dot( light.direction, spotLight.direction ); - float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); - if ( spotAttenuation > 0.0 ) { - float lightDistance = length( lVector ); - light.color = spotLight.color * spotAttenuation; - light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } else { - light.color = vec3( 0.0 ); - light.visible = false; - } - } -#endif -#if NUM_RECT_AREA_LIGHTS > 0 - struct RectAreaLight { - vec3 color; - vec3 position; - vec3 halfWidth; - vec3 halfHeight; - }; - uniform sampler2D ltc_1; uniform sampler2D ltc_2; - uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; -#endif -#if NUM_HEMI_LIGHTS > 0 - struct HemisphereLight { - vec3 direction; - vec3 skyColor; - vec3 groundColor; - }; - uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; - vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { - float dotNL = dot( normal, hemiLight.direction ); - float hemiDiffuseWeight = 0.5 * dotNL + 0.5; - vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); - return irradiance; - } -#endif`,VS=`#ifdef USE_ENVMAP - vec3 getIBLIrradiance( const in vec3 normal ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); - return PI * envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 reflectVec = reflect( - viewDir, normal ); - reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); - reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); - return envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = normalize( cross( bentNormal, bitangent ) ); - bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); - return getIBLRadiance( viewDir, bentNormal, roughness ); - #else - return vec3( 0.0 ); - #endif - } - #endif -#endif`,$S=`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,YS=`varying vec3 vViewPosition; -struct ToonMaterial { - vec3 diffuseColor; -}; -void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Toon -#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,XS=`BlinnPhongMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularColor = specular; -material.specularShininess = shininess; -material.specularStrength = specularStrength;`,JS=`varying vec3 vViewPosition; -struct BlinnPhongMaterial { - vec3 diffuseColor; - vec3 specularColor; - float specularShininess; - float specularStrength; -}; -void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); - reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; -} -void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_BlinnPhong -#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,qS=`PhysicalMaterial material; -material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); -vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); -float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); -material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; -material.roughness = min( material.roughness, 1.0 ); -#ifdef IOR - material.ior = ior; - #ifdef USE_SPECULAR - float specularIntensityFactor = specularIntensity; - vec3 specularColorFactor = specularColor; - #ifdef USE_SPECULAR_COLORMAP - specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; - #endif - material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); - #else - float specularIntensityFactor = 1.0; - vec3 specularColorFactor = vec3( 1.0 ); - material.specularF90 = 1.0; - #endif - material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); -#else - material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); - material.specularF90 = 1.0; -#endif -#ifdef USE_CLEARCOAT - material.clearcoat = clearcoat; - material.clearcoatRoughness = clearcoatRoughness; - material.clearcoatF0 = vec3( 0.04 ); - material.clearcoatF90 = 1.0; - #ifdef USE_CLEARCOATMAP - material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; - #endif - #ifdef USE_CLEARCOAT_ROUGHNESSMAP - material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; - #endif - material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); - material.clearcoatRoughness += geometryRoughness; - material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); -#endif -#ifdef USE_IRIDESCENCE - material.iridescence = iridescence; - material.iridescenceIOR = iridescenceIOR; - #ifdef USE_IRIDESCENCEMAP - material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; - #endif - #ifdef USE_IRIDESCENCE_THICKNESSMAP - material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; - #else - material.iridescenceThickness = iridescenceThicknessMaximum; - #endif -#endif -#ifdef USE_SHEEN - material.sheenColor = sheenColor; - #ifdef USE_SHEEN_COLORMAP - material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; - #endif - material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); - #ifdef USE_SHEEN_ROUGHNESSMAP - material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; - #endif -#endif -#ifdef USE_ANISOTROPY - #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; - vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; - #else - vec2 anisotropyV = anisotropyVector; - #endif - material.anisotropy = length( anisotropyV ); - if( material.anisotropy == 0.0 ) { - anisotropyV = vec2( 1.0, 0.0 ); - } else { - anisotropyV /= material.anisotropy; - material.anisotropy = saturate( material.anisotropy ); - } - material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); - material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; - material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; -#endif`,KS=`struct PhysicalMaterial { - vec3 diffuseColor; - float roughness; - vec3 specularColor; - float specularF90; - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - #endif - #ifdef USE_SHEEN - vec3 sheenColor; - float sheenRoughness; - #endif - #ifdef IOR - float ior; - #endif - #ifdef USE_TRANSMISSION - float transmission; - float transmissionAlpha; - float thickness; - float attenuationDistance; - vec3 attenuationColor; - #endif - #ifdef USE_ANISOTROPY - float anisotropy; - float alphaT; - vec3 anisotropyT; - vec3 anisotropyB; - #endif -}; -vec3 clearcoatSpecularDirect = vec3( 0.0 ); -vec3 clearcoatSpecularIndirect = vec3( 0.0 ); -vec3 sheenSpecularDirect = vec3( 0.0 ); -vec3 sheenSpecularIndirect = vec3(0.0 ); -vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { - float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); - float x2 = x * x; - float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); - return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); -} -float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { - float a2 = pow2( alpha ); - float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); - float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); - return 0.5 / max( gv + gl, EPSILON ); -} -float D_GGX( const in float alpha, const in float dotNH ) { - float a2 = pow2( alpha ); - float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; - return RECIPROCAL_PI * a2 / pow2( denom ); -} -#ifdef USE_ANISOTROPY - float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { - float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); - float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); - float v = 0.5 / ( gv + gl ); - return saturate(v); - } - float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { - float a2 = alphaT * alphaB; - highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); - highp float v2 = dot( v, v ); - float w2 = a2 / v2; - return RECIPROCAL_PI * a2 * pow2 ( w2 ); - } -#endif -#ifdef USE_CLEARCOAT - vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { - vec3 f0 = material.clearcoatF0; - float f90 = material.clearcoatF90; - float roughness = material.clearcoatRoughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - return F * ( V * D ); - } -#endif -vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 f0 = material.specularColor; - float f90 = material.specularF90; - float roughness = material.roughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - #ifdef USE_IRIDESCENCE - F = mix( F, material.iridescenceFresnel, material.iridescence ); - #endif - #ifdef USE_ANISOTROPY - float dotTL = dot( material.anisotropyT, lightDir ); - float dotTV = dot( material.anisotropyT, viewDir ); - float dotTH = dot( material.anisotropyT, halfDir ); - float dotBL = dot( material.anisotropyB, lightDir ); - float dotBV = dot( material.anisotropyB, viewDir ); - float dotBH = dot( material.anisotropyB, halfDir ); - float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); - float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); - #else - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - #endif - return F * ( V * D ); -} -vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { - const float LUT_SIZE = 64.0; - const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; - const float LUT_BIAS = 0.5 / LUT_SIZE; - float dotNV = saturate( dot( N, V ) ); - vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); - uv = uv * LUT_SCALE + LUT_BIAS; - return uv; -} -float LTC_ClippedSphereFormFactor( const in vec3 f ) { - float l = length( f ); - return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); -} -vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { - float x = dot( v1, v2 ); - float y = abs( x ); - float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; - float b = 3.4175940 + ( 4.1616724 + y ) * y; - float v = a / b; - float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; - return cross( v1, v2 ) * theta_sintheta; -} -vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { - vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; - vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; - vec3 lightNormal = cross( v1, v2 ); - if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); - vec3 T1, T2; - T1 = normalize( V - N * dot( V, N ) ); - T2 = - cross( N, T1 ); - mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); - vec3 coords[ 4 ]; - coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); - coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); - coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); - coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); - coords[ 0 ] = normalize( coords[ 0 ] ); - coords[ 1 ] = normalize( coords[ 1 ] ); - coords[ 2 ] = normalize( coords[ 2 ] ); - coords[ 3 ] = normalize( coords[ 3 ] ); - vec3 vectorFormFactor = vec3( 0.0 ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); - float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); - return vec3( result ); -} -#if defined( USE_SHEEN ) -float D_Charlie( float roughness, float dotNH ) { - float alpha = pow2( roughness ); - float invAlpha = 1.0 / alpha; - float cos2h = dotNH * dotNH; - float sin2h = max( 1.0 - cos2h, 0.0078125 ); - return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); -} -float V_Neubelt( float dotNV, float dotNL ) { - return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); -} -vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float D = D_Charlie( sheenRoughness, dotNH ); - float V = V_Neubelt( dotNV, dotNL ); - return sheenColor * ( D * V ); -} -#endif -float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - float r2 = roughness * roughness; - float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; - float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; - float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); - return saturate( DG * RECIPROCAL_PI ); -} -vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); - const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); - vec4 r = roughness * c0 + c1; - float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; - vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; - return fab; -} -vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { - vec2 fab = DFGApprox( normal, viewDir, roughness ); - return specularColor * fab.x + specularF90 * fab.y; -} -#ifdef USE_IRIDESCENCE -void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#else -void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#endif - vec2 fab = DFGApprox( normal, viewDir, roughness ); - #ifdef USE_IRIDESCENCE - vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); - #else - vec3 Fr = specularColor; - #endif - vec3 FssEss = Fr * fab.x + specularF90 * fab.y; - float Ess = fab.x + fab.y; - float Ems = 1.0 - Ess; - vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); - singleScatter += FssEss; - multiScatter += Fms * Ems; -} -#if NUM_RECT_AREA_LIGHTS > 0 - void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - vec3 normal = geometryNormal; - vec3 viewDir = geometryViewDir; - vec3 position = geometryPosition; - vec3 lightPos = rectAreaLight.position; - vec3 halfWidth = rectAreaLight.halfWidth; - vec3 halfHeight = rectAreaLight.halfHeight; - vec3 lightColor = rectAreaLight.color; - float roughness = material.roughness; - vec3 rectCoords[ 4 ]; - rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; - rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; - rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; - vec2 uv = LTC_Uv( normal, viewDir, roughness ); - vec4 t1 = texture2D( ltc_1, uv ); - vec4 t2 = texture2D( ltc_2, uv ); - mat3 mInv = mat3( - vec3( t1.x, 0, t1.y ), - vec3( 0, 1, 0 ), - vec3( t1.z, 0, t1.w ) - ); - vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); - reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); - reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); - } -#endif -void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - #ifdef USE_CLEARCOAT - float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); - vec3 ccIrradiance = dotNLcc * directLight.color; - clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); - #endif - #ifdef USE_SHEEN - sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); - #endif - reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { - #ifdef USE_CLEARCOAT - clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); - #endif - #ifdef USE_SHEEN - sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - #endif - vec3 singleScattering = vec3( 0.0 ); - vec3 multiScattering = vec3( 0.0 ); - vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; - #ifdef USE_IRIDESCENCE - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); - #else - computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); - #endif - vec3 totalScattering = singleScattering + multiScattering; - vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); - reflectedLight.indirectSpecular += radiance * singleScattering; - reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; - reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; -} -#define RE_Direct RE_Direct_Physical -#define RE_Direct_RectArea RE_Direct_RectArea_Physical -#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical -#define RE_IndirectSpecular RE_IndirectSpecular_Physical -float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { - return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); -}`,ZS=` -vec3 geometryPosition = - vViewPosition; -vec3 geometryNormal = normal; -vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); -vec3 geometryClearcoatNormal = vec3( 0.0 ); -#ifdef USE_CLEARCOAT - geometryClearcoatNormal = clearcoatNormal; -#endif -#ifdef USE_IRIDESCENCE - float dotNVi = saturate( dot( normal, geometryViewDir ) ); - if ( material.iridescenceThickness == 0.0 ) { - material.iridescence = 0.0; - } else { - material.iridescence = saturate( material.iridescence ); - } - if ( material.iridescence > 0.0 ) { - material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); - material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); - } -#endif -IncidentLight directLight; -#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) - PointLight pointLight; - #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { - pointLight = pointLights[ i ]; - getPointLightInfo( pointLight, geometryPosition, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) - pointLightShadow = pointLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) - SpotLight spotLight; - vec4 spotColor; - vec3 spotLightCoord; - bool inSpotLightMap; - #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { - spotLight = spotLights[ i ]; - getSpotLightInfo( spotLight, geometryPosition, directLight ); - #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX - #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS - #else - #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #endif - #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) - spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; - inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); - spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); - directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; - #endif - #undef SPOT_LIGHT_MAP_INDEX - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - spotLightShadow = spotLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) - DirectionalLight directionalLight; - #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { - directionalLight = directionalLights[ i ]; - getDirectionalLightInfo( directionalLight, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) - directionalLightShadow = directionalLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) - RectAreaLight rectAreaLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { - rectAreaLight = rectAreaLights[ i ]; - RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if defined( RE_IndirectDiffuse ) - vec3 iblIrradiance = vec3( 0.0 ); - vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); - #if defined( USE_LIGHT_PROBES ) - irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); - #endif - #if ( NUM_HEMI_LIGHTS > 0 ) - #pragma unroll_loop_start - for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { - irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); - } - #pragma unroll_loop_end - #endif -#endif -#if defined( RE_IndirectSpecular ) - vec3 radiance = vec3( 0.0 ); - vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,e_=`#if defined( RE_IndirectDiffuse ) - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - irradiance += lightMapIrradiance; - #endif - #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) - iblIrradiance += getIBLIrradiance( geometryNormal ); - #endif -#endif -#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); - #else - radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); - #endif - #ifdef USE_CLEARCOAT - clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); - #endif -#endif`,t_=`#if defined( RE_IndirectDiffuse ) - RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif -#if defined( RE_IndirectSpecular ) - RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif`,n_=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) - gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,C_=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) - uniform float logDepthBufFC; - varying float vFragDepth; - varying float vIsPerspective; -#endif`,r_=`#ifdef USE_LOGDEPTHBUF - #ifdef USE_LOGDEPTHBUF_EXT - varying float vFragDepth; - varying float vIsPerspective; - #else - uniform float logDepthBufFC; - #endif -#endif`,i_=`#ifdef USE_LOGDEPTHBUF - #ifdef USE_LOGDEPTHBUF_EXT - vFragDepth = 1.0 + gl_Position.w; - vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); - #else - if ( isPerspectiveMatrix( projectionMatrix ) ) { - gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; - gl_Position.z *= gl_Position.w; - } - #endif -#endif`,o_=`#ifdef USE_MAP - vec4 sampledDiffuseColor = texture2D( map, vMapUv ); - #ifdef DECODE_VIDEO_TEXTURE - sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); - - #endif - diffuseColor *= sampledDiffuseColor; -#endif`,s_=`#ifdef USE_MAP - uniform sampler2D map; -#endif`,l_=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - #if defined( USE_POINTS_UV ) - vec2 uv = vUv; - #else - vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; - #endif -#endif -#ifdef USE_MAP - diffuseColor *= texture2D( map, uv ); -#endif -#ifdef USE_ALPHAMAP - diffuseColor.a *= texture2D( alphaMap, uv ).g; -#endif`,a_=`#if defined( USE_POINTS_UV ) - varying vec2 vUv; -#else - #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - uniform mat3 uvTransform; - #endif -#endif -#ifdef USE_MAP - uniform sampler2D map; -#endif -#ifdef USE_ALPHAMAP - uniform sampler2D alphaMap; -#endif`,c_=`float metalnessFactor = metalness; -#ifdef USE_METALNESSMAP - vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); - metalnessFactor *= texelMetalness.b; -#endif`,u_=`#ifdef USE_METALNESSMAP - uniform sampler2D metalnessMap; -#endif`,d_=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) - vColor *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - #if defined( USE_COLOR_ALPHA ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; - #elif defined( USE_COLOR ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; - #endif - } -#endif`,h_=`#ifdef USE_MORPHNORMALS - objectNormal *= morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; - } - #else - objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; - objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; - objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; - objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; - #endif -#endif`,f_=`#ifdef USE_MORPHTARGETS - uniform float morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - uniform sampler2DArray morphTargetsTexture; - uniform ivec2 morphTargetsTextureSize; - vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { - int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; - int y = texelIndex / morphTargetsTextureSize.x; - int x = texelIndex - y * morphTargetsTextureSize.x; - ivec3 morphUV = ivec3( x, y, morphTargetIndex ); - return texelFetch( morphTargetsTexture, morphUV, 0 ); - } - #else - #ifndef USE_MORPHNORMALS - uniform float morphTargetInfluences[ 8 ]; - #else - uniform float morphTargetInfluences[ 4 ]; - #endif - #endif -#endif`,g_=`#ifdef USE_MORPHTARGETS - transformed *= morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; - } - #else - transformed += morphTarget0 * morphTargetInfluences[ 0 ]; - transformed += morphTarget1 * morphTargetInfluences[ 1 ]; - transformed += morphTarget2 * morphTargetInfluences[ 2 ]; - transformed += morphTarget3 * morphTargetInfluences[ 3 ]; - #ifndef USE_MORPHNORMALS - transformed += morphTarget4 * morphTargetInfluences[ 4 ]; - transformed += morphTarget5 * morphTargetInfluences[ 5 ]; - transformed += morphTarget6 * morphTargetInfluences[ 6 ]; - transformed += morphTarget7 * morphTargetInfluences[ 7 ]; - #endif - #endif -#endif`,p_=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; -#ifdef FLAT_SHADED - vec3 fdx = dFdx( vViewPosition ); - vec3 fdy = dFdy( vViewPosition ); - vec3 normal = normalize( cross( fdx, fdy ) ); -#else - vec3 normal = normalize( vNormal ); - #ifdef DOUBLE_SIDED - normal *= faceDirection; - #endif -#endif -#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) - #ifdef USE_TANGENT - mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn = getTangentFrame( - vViewPosition, normal, - #if defined( USE_NORMALMAP ) - vNormalMapUv - #elif defined( USE_CLEARCOAT_NORMALMAP ) - vClearcoatNormalMapUv - #else - vUv - #endif - ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn[0] *= faceDirection; - tbn[1] *= faceDirection; - #endif -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - #ifdef USE_TANGENT - mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn2[0] *= faceDirection; - tbn2[1] *= faceDirection; - #endif -#endif -vec3 nonPerturbedNormal = normal;`,A_=`#ifdef USE_NORMALMAP_OBJECTSPACE - normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - #ifdef FLIP_SIDED - normal = - normal; - #endif - #ifdef DOUBLE_SIDED - normal = normal * faceDirection; - #endif - normal = normalize( normalMatrix * normal ); -#elif defined( USE_NORMALMAP_TANGENTSPACE ) - vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - mapN.xy *= normalScale; - normal = normalize( tbn * mapN ); -#elif defined( USE_BUMPMAP ) - normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,v_=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,L_=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,w_=`#ifndef FLAT_SHADED - vNormal = normalize( transformedNormal ); - #ifdef USE_TANGENT - vTangent = normalize( transformedTangent ); - vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); - #endif -#endif`,x_=`#ifdef USE_NORMALMAP - uniform sampler2D normalMap; - uniform vec2 normalScale; -#endif -#ifdef USE_NORMALMAP_OBJECTSPACE - uniform mat3 normalMatrix; -#endif -#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) - mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { - vec3 q0 = dFdx( eye_pos.xyz ); - vec3 q1 = dFdy( eye_pos.xyz ); - vec2 st0 = dFdx( uv.st ); - vec2 st1 = dFdy( uv.st ); - vec3 N = surf_norm; - vec3 q1perp = cross( q1, N ); - vec3 q0perp = cross( N, q0 ); - vec3 T = q1perp * st0.x + q0perp * st1.x; - vec3 B = q1perp * st0.y + q0perp * st1.y; - float det = max( dot( T, T ), dot( B, B ) ); - float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); - return mat3( T * scale, B * scale, N ); - } -#endif`,m_=`#ifdef USE_CLEARCOAT - vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,k_=`#ifdef USE_CLEARCOAT_NORMALMAP - vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; - clearcoatMapN.xy *= clearcoatNormalScale; - clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,M_=`#ifdef USE_CLEARCOATMAP - uniform sampler2D clearcoatMap; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform sampler2D clearcoatNormalMap; - uniform vec2 clearcoatNormalScale; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform sampler2D clearcoatRoughnessMap; -#endif`,E_=`#ifdef USE_IRIDESCENCEMAP - uniform sampler2D iridescenceMap; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform sampler2D iridescenceThicknessMap; -#endif`,y_=`#ifdef OPAQUE -diffuseColor.a = 1.0; -#endif -#ifdef USE_TRANSMISSION -diffuseColor.a *= material.transmissionAlpha; -#endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,I_=`vec3 packNormalToRGB( const in vec3 normal ) { - return normalize( normal ) * 0.5 + 0.5; -} -vec3 unpackRGBToNormal( const in vec3 rgb ) { - return 2.0 * rgb.xyz - 1.0; -} -const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; -const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); -const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); -const float ShiftRight8 = 1. / 256.; -vec4 packDepthToRGBA( const in float v ) { - vec4 r = vec4( fract( v * PackFactors ), v ); - r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; -} -float unpackRGBAToDepth( const in vec4 v ) { - return dot( v, UnpackFactors ); -} -vec2 packDepthToRG( in highp float v ) { - return packDepthToRGBA( v ).yx; -} -float unpackRGToDepth( const in highp vec2 v ) { - return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); -} -vec4 pack2HalfToRGBA( vec2 v ) { - vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); - return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); -} -vec2 unpackRGBATo2Half( vec4 v ) { - return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); -} -float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { - return ( viewZ + near ) / ( near - far ); -} -float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { - return depth * ( near - far ) - near; -} -float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { - return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); -} -float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { - return ( near * far ) / ( ( far - near ) * depth - far ); -}`,B_=`#ifdef PREMULTIPLIED_ALPHA - gl_FragColor.rgb *= gl_FragColor.a; -#endif`,S_=`vec4 mvPosition = vec4( transformed, 1.0 ); -#ifdef USE_BATCHING - mvPosition = batchingMatrix * mvPosition; -#endif -#ifdef USE_INSTANCING - mvPosition = instanceMatrix * mvPosition; -#endif -mvPosition = modelViewMatrix * mvPosition; -gl_Position = projectionMatrix * mvPosition;`,__=`#ifdef DITHERING - gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,R_=`#ifdef DITHERING - vec3 dithering( vec3 color ) { - float grid_position = rand( gl_FragCoord.xy ); - vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); - dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); - return color + dither_shift_RGB; - } -#endif`,b_=`float roughnessFactor = roughness; -#ifdef USE_ROUGHNESSMAP - vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); - roughnessFactor *= texelRoughness.g; -#endif`,Q_=`#ifdef USE_ROUGHNESSMAP - uniform sampler2D roughnessMap; -#endif`,T_=`#if NUM_SPOT_LIGHT_COORDS > 0 - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#if NUM_SPOT_LIGHT_MAPS > 0 - uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - struct SpotLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif - float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { - return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); - } - vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { - return unpackRGBATo2Half( texture2D( shadow, uv ) ); - } - float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ - float occlusion = 1.0; - vec2 distribution = texture2DDistribution( shadow, uv ); - float hard_shadow = step( compare , distribution.x ); - if (hard_shadow != 1.0 ) { - float distance = compare - distribution.x ; - float variance = max( 0.00000, distribution.y * distribution.y ); - float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); - } - return occlusion; - } - float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - shadowCoord.z += shadowBias; - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - #if defined( SHADOWMAP_TYPE_PCF ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx0 = - texelSize.x * shadowRadius; - float dy0 = - texelSize.y * shadowRadius; - float dx1 = + texelSize.x * shadowRadius; - float dy1 = + texelSize.y * shadowRadius; - float dx2 = dx0 / 2.0; - float dy2 = dy0 / 2.0; - float dx3 = dx1 / 2.0; - float dy3 = dy1 / 2.0; - shadow = ( - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) - ) * ( 1.0 / 17.0 ); - #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx = texelSize.x; - float dy = texelSize.y; - vec2 uv = shadowCoord.xy; - vec2 f = fract( uv * shadowMapSize + 0.5 ); - uv -= f * texelSize; - shadow = ( - texture2DCompare( shadowMap, uv, shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), - f.x ), - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), - f.x ), - f.y ) - ) * ( 1.0 / 9.0 ); - #elif defined( SHADOWMAP_TYPE_VSM ) - shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); - #else - shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); - #endif - } - return shadow; - } - vec2 cubeToUV( vec3 v, float texelSizeY ) { - vec3 absV = abs( v ); - float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); - absV *= scaleToCube; - v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); - vec2 planar = v.xy; - float almostATexel = 1.5 * texelSizeY; - float almostOne = 1.0 - almostATexel; - if ( absV.z >= almostOne ) { - if ( v.z > 0.0 ) - planar.x = 4.0 - v.x; - } else if ( absV.x >= almostOne ) { - float signX = sign( v.x ); - planar.x = v.z * signX + 2.0 * signX; - } else if ( absV.y >= almostOne ) { - float signY = sign( v.y ); - planar.x = v.x + 2.0 * signY + 2.0; - planar.y = v.z * signY - 2.0; - } - return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); - } - float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); - vec3 lightToPosition = shadowCoord.xyz; - float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; - vec3 bd3D = normalize( lightToPosition ); - #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) - vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; - return ( - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) - ) * ( 1.0 / 9.0 ); - #else - return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); - #endif - } -#endif`,D_=`#if NUM_SPOT_LIGHT_COORDS > 0 - uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - struct SpotLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif -#endif`,N_=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) - vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - vec4 shadowWorldPosition; -#endif -#if defined( USE_SHADOWMAP ) - #if NUM_DIR_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); - vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); - vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif -#endif -#if NUM_SPOT_LIGHT_COORDS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { - shadowWorldPosition = worldPosition; - #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; - #endif - vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end -#endif`,P_=`float getShadowMask() { - float shadow = 1.0; - #ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - directionalLight = directionalLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { - spotLight = spotLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - pointLight = pointLightShadows[ i ]; - shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; - } - #pragma unroll_loop_end - #endif - #endif - return shadow; -}`,H_=`#ifdef USE_SKINNING - mat4 boneMatX = getBoneMatrix( skinIndex.x ); - mat4 boneMatY = getBoneMatrix( skinIndex.y ); - mat4 boneMatZ = getBoneMatrix( skinIndex.z ); - mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,j_=`#ifdef USE_SKINNING - uniform mat4 bindMatrix; - uniform mat4 bindMatrixInverse; - uniform highp sampler2D boneTexture; - mat4 getBoneMatrix( const in float i ) { - int size = textureSize( boneTexture, 0 ).x; - int j = int( i ) * 4; - int x = j % size; - int y = j / size; - vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); - vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); - vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); - vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); - return mat4( v1, v2, v3, v4 ); - } -#endif`,U_=`#ifdef USE_SKINNING - vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); - vec4 skinned = vec4( 0.0 ); - skinned += boneMatX * skinVertex * skinWeight.x; - skinned += boneMatY * skinVertex * skinWeight.y; - skinned += boneMatZ * skinVertex * skinWeight.z; - skinned += boneMatW * skinVertex * skinWeight.w; - transformed = ( bindMatrixInverse * skinned ).xyz; -#endif`,F_=`#ifdef USE_SKINNING - mat4 skinMatrix = mat4( 0.0 ); - skinMatrix += skinWeight.x * boneMatX; - skinMatrix += skinWeight.y * boneMatY; - skinMatrix += skinWeight.z * boneMatZ; - skinMatrix += skinWeight.w * boneMatW; - skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; - objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; - #ifdef USE_TANGENT - objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; - #endif -#endif`,W_=`float specularStrength; -#ifdef USE_SPECULARMAP - vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); - specularStrength = texelSpecular.r; -#else - specularStrength = 1.0; -#endif`,G_=`#ifdef USE_SPECULARMAP - uniform sampler2D specularMap; -#endif`,O_=`#if defined( TONE_MAPPING ) - gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,z_=`#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -uniform float toneMappingExposure; -vec3 LinearToneMapping( vec3 color ) { - return saturate( toneMappingExposure * color ); -} -vec3 ReinhardToneMapping( vec3 color ) { - color *= toneMappingExposure; - return saturate( color / ( vec3( 1.0 ) + color ) ); -} -vec3 OptimizedCineonToneMapping( vec3 color ) { - color *= toneMappingExposure; - color = max( vec3( 0.0 ), color - 0.004 ); - return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); -} -vec3 RRTAndODTFit( vec3 v ) { - vec3 a = v * ( v + 0.0245786 ) - 0.000090537; - vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; - return a / b; -} -vec3 ACESFilmicToneMapping( vec3 color ) { - const mat3 ACESInputMat = mat3( - vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), - vec3( 0.04823, 0.01566, 0.83777 ) - ); - const mat3 ACESOutputMat = mat3( - vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), - vec3( -0.07367, -0.00605, 1.07602 ) - ); - color *= toneMappingExposure / 0.6; - color = ACESInputMat * color; - color = RRTAndODTFit( color ); - color = ACESOutputMat * color; - return saturate( color ); -} -const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( - vec3( 1.6605, - 0.1246, - 0.0182 ), - vec3( - 0.5876, 1.1329, - 0.1006 ), - vec3( - 0.0728, - 0.0083, 1.1187 ) -); -const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( - vec3( 0.6274, 0.0691, 0.0164 ), - vec3( 0.3293, 0.9195, 0.0880 ), - vec3( 0.0433, 0.0113, 0.8956 ) -); -vec3 agxDefaultContrastApprox( vec3 x ) { - vec3 x2 = x * x; - vec3 x4 = x2 * x2; - return + 15.5 * x4 * x2 - - 40.14 * x4 * x - + 31.96 * x4 - - 6.868 * x2 * x - + 0.4298 * x2 - + 0.1191 * x - - 0.00232; -} -vec3 AgXToneMapping( vec3 color ) { - const mat3 AgXInsetMatrix = mat3( - vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), - vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), - vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) - ); - const mat3 AgXOutsetMatrix = mat3( - vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), - vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), - vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) - ); - const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; - color *= toneMappingExposure; - color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; - color = AgXInsetMatrix * color; - color = max( color, 1e-10 ); color = log2( color ); - color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); - color = clamp( color, 0.0, 1.0 ); - color = agxDefaultContrastApprox( color ); - color = AgXOutsetMatrix * color; - color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); - color = LINEAR_REC2020_TO_LINEAR_SRGB * color; - color = clamp( color, 0.0, 1.0 ); - return color; -} -vec3 CustomToneMapping( vec3 color ) { return color; }`,V_=`#ifdef USE_TRANSMISSION - material.transmission = transmission; - material.transmissionAlpha = 1.0; - material.thickness = thickness; - material.attenuationDistance = attenuationDistance; - material.attenuationColor = attenuationColor; - #ifdef USE_TRANSMISSIONMAP - material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; - #endif - #ifdef USE_THICKNESSMAP - material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; - #endif - vec3 pos = vWorldPosition; - vec3 v = normalize( cameraPosition - pos ); - vec3 n = inverseTransformDirection( normal, viewMatrix ); - vec4 transmitted = getIBLVolumeRefraction( - n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, - pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, - material.attenuationColor, material.attenuationDistance ); - material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); - totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); -#endif`,$_=`#ifdef USE_TRANSMISSION - uniform float transmission; - uniform float thickness; - uniform float attenuationDistance; - uniform vec3 attenuationColor; - #ifdef USE_TRANSMISSIONMAP - uniform sampler2D transmissionMap; - #endif - #ifdef USE_THICKNESSMAP - uniform sampler2D thicknessMap; - #endif - uniform vec2 transmissionSamplerSize; - uniform sampler2D transmissionSamplerMap; - uniform mat4 modelMatrix; - uniform mat4 projectionMatrix; - varying vec3 vWorldPosition; - float w0( float a ) { - return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); - } - float w1( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); - } - float w2( float a ){ - return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); - } - float w3( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * a ); - } - float g0( float a ) { - return w0( a ) + w1( a ); - } - float g1( float a ) { - return w2( a ) + w3( a ); - } - float h0( float a ) { - return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); - } - float h1( float a ) { - return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); - } - vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { - uv = uv * texelSize.zw + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - float g0x = g0( fuv.x ); - float g1x = g1( fuv.x ); - float h0x = h0( fuv.x ); - float h1x = h1( fuv.x ); - float h0y = h0( fuv.y ); - float h1y = h1( fuv.y ); - vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + - g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); - } - vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { - vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); - vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); - vec2 fLodSizeInv = 1.0 / fLodSize; - vec2 cLodSizeInv = 1.0 / cLodSize; - vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); - vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); - return mix( fSample, cSample, fract( lod ) ); - } - vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { - vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); - vec3 modelScale; - modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); - modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); - modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); - return normalize( refractionVector ) * thickness * modelScale; - } - float applyIorToRoughness( const in float roughness, const in float ior ) { - return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); - } - vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { - float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); - return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); - } - vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { - if ( isinf( attenuationDistance ) ) { - return vec3( 1.0 ); - } else { - vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; - vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; - } - } - vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, - const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, - const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, - const in vec3 attenuationColor, const in float attenuationDistance ) { - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); - vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); - vec3 attenuatedColor = transmittance * transmittedLight.rgb; - vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); - float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; - return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); - } -#endif`,Y_=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - varying vec2 vNormalMapUv; -#endif -#ifdef USE_EMISSIVEMAP - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_SPECULARMAP - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,X_=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - uniform mat3 mapTransform; - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - uniform mat3 alphaMapTransform; - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - uniform mat3 lightMapTransform; - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - uniform mat3 aoMapTransform; - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - uniform mat3 bumpMapTransform; - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - uniform mat3 normalMapTransform; - varying vec2 vNormalMapUv; -#endif -#ifdef USE_DISPLACEMENTMAP - uniform mat3 displacementMapTransform; - varying vec2 vDisplacementMapUv; -#endif -#ifdef USE_EMISSIVEMAP - uniform mat3 emissiveMapTransform; - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - uniform mat3 metalnessMapTransform; - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - uniform mat3 roughnessMapTransform; - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - uniform mat3 anisotropyMapTransform; - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - uniform mat3 clearcoatMapTransform; - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform mat3 clearcoatNormalMapTransform; - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform mat3 clearcoatRoughnessMapTransform; - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - uniform mat3 sheenColorMapTransform; - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - uniform mat3 sheenRoughnessMapTransform; - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - uniform mat3 iridescenceMapTransform; - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform mat3 iridescenceThicknessMapTransform; - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SPECULARMAP - uniform mat3 specularMapTransform; - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - uniform mat3 specularColorMapTransform; - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - uniform mat3 specularIntensityMapTransform; - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,J_=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - vUv = vec3( uv, 1 ).xy; -#endif -#ifdef USE_MAP - vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ALPHAMAP - vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_LIGHTMAP - vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_AOMAP - vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_BUMPMAP - vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_NORMALMAP - vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_DISPLACEMENTMAP - vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_EMISSIVEMAP - vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_METALNESSMAP - vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ROUGHNESSMAP - vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ANISOTROPYMAP - vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOATMAP - vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCEMAP - vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_COLORMAP - vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULARMAP - vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_COLORMAP - vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_TRANSMISSIONMAP - vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_THICKNESSMAP - vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; -#endif`,q_=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 - vec4 worldPosition = vec4( transformed, 1.0 ); - #ifdef USE_BATCHING - worldPosition = batchingMatrix * worldPosition; - #endif - #ifdef USE_INSTANCING - worldPosition = instanceMatrix * worldPosition; - #endif - worldPosition = modelMatrix * worldPosition; -#endif`;const K_=`varying vec2 vUv; -uniform mat3 uvTransform; -void main() { - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,Z_=`uniform sampler2D t2D; -uniform float backgroundIntensity; -varying vec2 vUv; -void main() { - vec4 texColor = texture2D( t2D, vUv ); - #ifdef DECODE_VIDEO_TEXTURE - texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,eR=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,tR=`#ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; -#elif defined( ENVMAP_TYPE_CUBE_UV ) - uniform sampler2D envMap; -#endif -uniform float flipEnvMap; -uniform float backgroundBlurriness; -uniform float backgroundIntensity; -varying vec3 vWorldDirection; -#include -void main() { - #ifdef ENVMAP_TYPE_CUBE - vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); - #elif defined( ENVMAP_TYPE_CUBE_UV ) - vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); - #else - vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,nR=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,CR=`uniform samplerCube tCube; -uniform float tFlip; -uniform float opacity; -varying vec3 vWorldDirection; -void main() { - vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); - gl_FragColor = texColor; - gl_FragColor.a *= opacity; - #include - #include -}`,rR=`#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vHighPrecisionZW = gl_Position.zw; -}`,iR=`#if DEPTH_PACKING == 3200 - uniform float opacity; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - vec4 diffuseColor = vec4( 1.0 ); - #include - #if DEPTH_PACKING == 3200 - diffuseColor.a = opacity; - #endif - #include - #include - #include - #include - #include - float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; - #if DEPTH_PACKING == 3200 - gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); - #elif DEPTH_PACKING == 3201 - gl_FragColor = packDepthToRGBA( fragCoordZ ); - #endif -}`,oR=`#define DISTANCE -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vWorldPosition = worldPosition.xyz; -}`,sR=`#define DISTANCE -uniform vec3 referencePosition; -uniform float nearDistance; -uniform float farDistance; -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -#include -void main () { - vec4 diffuseColor = vec4( 1.0 ); - #include - #include - #include - #include - #include - float dist = length( vWorldPosition - referencePosition ); - dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); - dist = saturate( dist ); - gl_FragColor = packDepthToRGBA( dist ); -}`,lR=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include -}`,aR=`uniform sampler2D tEquirect; -varying vec3 vWorldDirection; -#include -void main() { - vec3 direction = normalize( vWorldDirection ); - vec2 sampleUV = equirectUv( direction ); - gl_FragColor = texture2D( tEquirect, sampleUV ); - #include - #include -}`,cR=`uniform float scale; -attribute float lineDistance; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vLineDistance = scale * lineDistance; - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,uR=`uniform vec3 diffuse; -uniform float opacity; -uniform float dashSize; -uniform float totalSize; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - if ( mod( vLineDistance, totalSize ) > dashSize ) { - discard; - } - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,dR=`#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) - #include - #include - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,hR=`uniform vec3 diffuse; -uniform float opacity; -#ifndef FLAT_SHADED - varying vec3 vNormal; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; - #else - reflectedLight.indirectDiffuse += vec3( 1.0 ); - #endif - #include - reflectedLight.indirectDiffuse *= diffuseColor.rgb; - vec3 outgoingLight = reflectedLight.indirectDiffuse; - #include - #include - #include - #include - #include - #include - #include -}`,fR=`#define LAMBERT -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,gR=`#define LAMBERT -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,pR=`#define MATCAP -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; -}`,AR=`#define MATCAP -uniform vec3 diffuse; -uniform float opacity; -uniform sampler2D matcap; -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 viewDir = normalize( vViewPosition ); - vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); - vec3 y = cross( viewDir, x ); - vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; - #ifdef USE_MATCAP - vec4 matcapColor = texture2D( matcap, uv ); - #else - vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); - #endif - vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; - #include - #include - #include - #include - #include - #include -}`,vR=`#define NORMAL -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - vViewPosition = - mvPosition.xyz; -#endif -}`,LR=`#define NORMAL -uniform float opacity; -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); - #include - #include - #include - #include - gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); - #ifdef OPAQUE - gl_FragColor.a = 1.0; - #endif -}`,wR=`#define PHONG -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,xR=`#define PHONG -uniform vec3 diffuse; -uniform vec3 emissive; -uniform vec3 specular; -uniform float shininess; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,mR=`#define STANDARD -varying vec3 vViewPosition; -#ifdef USE_TRANSMISSION - varying vec3 vWorldPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -#ifdef USE_TRANSMISSION - vWorldPosition = worldPosition.xyz; -#endif -}`,kR=`#define STANDARD -#ifdef PHYSICAL - #define IOR - #define USE_SPECULAR -#endif -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float roughness; -uniform float metalness; -uniform float opacity; -#ifdef IOR - uniform float ior; -#endif -#ifdef USE_SPECULAR - uniform float specularIntensity; - uniform vec3 specularColor; - #ifdef USE_SPECULAR_COLORMAP - uniform sampler2D specularColorMap; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - uniform sampler2D specularIntensityMap; - #endif -#endif -#ifdef USE_CLEARCOAT - uniform float clearcoat; - uniform float clearcoatRoughness; -#endif -#ifdef USE_IRIDESCENCE - uniform float iridescence; - uniform float iridescenceIOR; - uniform float iridescenceThicknessMinimum; - uniform float iridescenceThicknessMaximum; -#endif -#ifdef USE_SHEEN - uniform vec3 sheenColor; - uniform float sheenRoughness; - #ifdef USE_SHEEN_COLORMAP - uniform sampler2D sheenColorMap; - #endif - #ifdef USE_SHEEN_ROUGHNESSMAP - uniform sampler2D sheenRoughnessMap; - #endif -#endif -#ifdef USE_ANISOTROPY - uniform vec2 anisotropyVector; - #ifdef USE_ANISOTROPYMAP - uniform sampler2D anisotropyMap; - #endif -#endif -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; - vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; - #include - vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; - #ifdef USE_SHEEN - float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); - outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; - #endif - #ifdef USE_CLEARCOAT - float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); - vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); - outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; - #endif - #include - #include - #include - #include - #include - #include -}`,MR=`#define TOON -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -}`,ER=`#define TOON -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include -}`,yR=`uniform float size; -uniform float scale; -#include -#include -#include -#include -#include -#include -#ifdef USE_POINTS_UV - varying vec2 vUv; - uniform mat3 uvTransform; -#endif -void main() { - #ifdef USE_POINTS_UV - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - #endif - #include - #include - #include - #include - #include - gl_PointSize = size; - #ifdef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); - #endif - #include - #include - #include - #include -}`,IR=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,BR=`#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,SR=`uniform vec3 color; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); - #include - #include - #include -}`,_R=`uniform float rotation; -uniform vec2 center; -#include -#include -#include -#include -#include -void main() { - #include - vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); - vec2 scale; - scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); - scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); - #ifndef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) scale *= - mvPosition.z; - #endif - vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; - vec2 rotatedPosition; - rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; - rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; - mvPosition.xy += rotatedPosition; - gl_Position = projectionMatrix * mvPosition; - #include - #include - #include -}`,RR=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include -}`,T0={alphahash_fragment:ZB,alphahash_pars_fragment:eS,alphamap_fragment:tS,alphamap_pars_fragment:nS,alphatest_fragment:CS,alphatest_pars_fragment:rS,aomap_fragment:iS,aomap_pars_fragment:oS,batching_pars_vertex:sS,batching_vertex:lS,begin_vertex:aS,beginnormal_vertex:cS,bsdfs:uS,iridescence_fragment:dS,bumpmap_pars_fragment:hS,clipping_planes_fragment:fS,clipping_planes_pars_fragment:gS,clipping_planes_pars_vertex:pS,clipping_planes_vertex:AS,color_fragment:vS,color_pars_fragment:LS,color_pars_vertex:wS,color_vertex:xS,common:mS,cube_uv_reflection_fragment:kS,defaultnormal_vertex:MS,displacementmap_pars_vertex:ES,displacementmap_vertex:yS,emissivemap_fragment:IS,emissivemap_pars_fragment:BS,colorspace_fragment:SS,colorspace_pars_fragment:_S,envmap_fragment:RS,envmap_common_pars_fragment:bS,envmap_pars_fragment:QS,envmap_pars_vertex:TS,envmap_physical_pars_fragment:VS,envmap_vertex:DS,fog_vertex:NS,fog_pars_vertex:PS,fog_fragment:HS,fog_pars_fragment:jS,gradientmap_pars_fragment:US,lightmap_fragment:FS,lightmap_pars_fragment:WS,lights_lambert_fragment:GS,lights_lambert_pars_fragment:OS,lights_pars_begin:zS,lights_toon_fragment:$S,lights_toon_pars_fragment:YS,lights_phong_fragment:XS,lights_phong_pars_fragment:JS,lights_physical_fragment:qS,lights_physical_pars_fragment:KS,lights_fragment_begin:ZS,lights_fragment_maps:e_,lights_fragment_end:t_,logdepthbuf_fragment:n_,logdepthbuf_pars_fragment:C_,logdepthbuf_pars_vertex:r_,logdepthbuf_vertex:i_,map_fragment:o_,map_pars_fragment:s_,map_particle_fragment:l_,map_particle_pars_fragment:a_,metalnessmap_fragment:c_,metalnessmap_pars_fragment:u_,morphcolor_vertex:d_,morphnormal_vertex:h_,morphtarget_pars_vertex:f_,morphtarget_vertex:g_,normal_fragment_begin:p_,normal_fragment_maps:A_,normal_pars_fragment:v_,normal_pars_vertex:L_,normal_vertex:w_,normalmap_pars_fragment:x_,clearcoat_normal_fragment_begin:m_,clearcoat_normal_fragment_maps:k_,clearcoat_pars_fragment:M_,iridescence_pars_fragment:E_,opaque_fragment:y_,packing:I_,premultiplied_alpha_fragment:B_,project_vertex:S_,dithering_fragment:__,dithering_pars_fragment:R_,roughnessmap_fragment:b_,roughnessmap_pars_fragment:Q_,shadowmap_pars_fragment:T_,shadowmap_pars_vertex:D_,shadowmap_vertex:N_,shadowmask_pars_fragment:P_,skinbase_vertex:H_,skinning_pars_vertex:j_,skinning_vertex:U_,skinnormal_vertex:F_,specularmap_fragment:W_,specularmap_pars_fragment:G_,tonemapping_fragment:O_,tonemapping_pars_fragment:z_,transmission_fragment:V_,transmission_pars_fragment:$_,uv_pars_fragment:Y_,uv_pars_vertex:X_,uv_vertex:J_,worldpos_vertex:q_,background_vert:K_,background_frag:Z_,backgroundCube_vert:eR,backgroundCube_frag:tR,cube_vert:nR,cube_frag:CR,depth_vert:rR,depth_frag:iR,distanceRGBA_vert:oR,distanceRGBA_frag:sR,equirect_vert:lR,equirect_frag:aR,linedashed_vert:cR,linedashed_frag:uR,meshbasic_vert:dR,meshbasic_frag:hR,meshlambert_vert:fR,meshlambert_frag:gR,meshmatcap_vert:pR,meshmatcap_frag:AR,meshnormal_vert:vR,meshnormal_frag:LR,meshphong_vert:wR,meshphong_frag:xR,meshphysical_vert:mR,meshphysical_frag:kR,meshtoon_vert:MR,meshtoon_frag:ER,points_vert:yR,points_frag:IR,shadow_vert:BR,shadow_frag:SR,sprite_vert:_R,sprite_frag:RR},$1={common:{diffuse:{value:new J1(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new B0},alphaMap:{value:null},alphaMapTransform:{value:new B0},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new B0}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new B0}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new B0}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new B0},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new B0},normalScale:{value:new y1(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new B0},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new B0}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new B0}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new B0}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new J1(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new J1(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new B0},alphaTest:{value:0},uvTransform:{value:new B0}},sprite:{diffuse:{value:new J1(16777215)},opacity:{value:1},center:{value:new y1(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new B0},alphaMap:{value:null},alphaMapTransform:{value:new B0},alphaTest:{value:0}}},q8={basic:{uniforms:b9([$1.common,$1.specularmap,$1.envmap,$1.aomap,$1.lightmap,$1.fog]),vertexShader:T0.meshbasic_vert,fragmentShader:T0.meshbasic_frag},lambert:{uniforms:b9([$1.common,$1.specularmap,$1.envmap,$1.aomap,$1.lightmap,$1.emissivemap,$1.bumpmap,$1.normalmap,$1.displacementmap,$1.fog,$1.lights,{emissive:{value:new J1(0)}}]),vertexShader:T0.meshlambert_vert,fragmentShader:T0.meshlambert_frag},phong:{uniforms:b9([$1.common,$1.specularmap,$1.envmap,$1.aomap,$1.lightmap,$1.emissivemap,$1.bumpmap,$1.normalmap,$1.displacementmap,$1.fog,$1.lights,{emissive:{value:new J1(0)},specular:{value:new J1(1118481)},shininess:{value:30}}]),vertexShader:T0.meshphong_vert,fragmentShader:T0.meshphong_frag},standard:{uniforms:b9([$1.common,$1.envmap,$1.aomap,$1.lightmap,$1.emissivemap,$1.bumpmap,$1.normalmap,$1.displacementmap,$1.roughnessmap,$1.metalnessmap,$1.fog,$1.lights,{emissive:{value:new J1(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:T0.meshphysical_vert,fragmentShader:T0.meshphysical_frag},toon:{uniforms:b9([$1.common,$1.aomap,$1.lightmap,$1.emissivemap,$1.bumpmap,$1.normalmap,$1.displacementmap,$1.gradientmap,$1.fog,$1.lights,{emissive:{value:new J1(0)}}]),vertexShader:T0.meshtoon_vert,fragmentShader:T0.meshtoon_frag},matcap:{uniforms:b9([$1.common,$1.bumpmap,$1.normalmap,$1.displacementmap,$1.fog,{matcap:{value:null}}]),vertexShader:T0.meshmatcap_vert,fragmentShader:T0.meshmatcap_frag},points:{uniforms:b9([$1.points,$1.fog]),vertexShader:T0.points_vert,fragmentShader:T0.points_frag},dashed:{uniforms:b9([$1.common,$1.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:T0.linedashed_vert,fragmentShader:T0.linedashed_frag},depth:{uniforms:b9([$1.common,$1.displacementmap]),vertexShader:T0.depth_vert,fragmentShader:T0.depth_frag},normal:{uniforms:b9([$1.common,$1.bumpmap,$1.normalmap,$1.displacementmap,{opacity:{value:1}}]),vertexShader:T0.meshnormal_vert,fragmentShader:T0.meshnormal_frag},sprite:{uniforms:b9([$1.sprite,$1.fog]),vertexShader:T0.sprite_vert,fragmentShader:T0.sprite_frag},background:{uniforms:{uvTransform:{value:new B0},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:T0.background_vert,fragmentShader:T0.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:T0.backgroundCube_vert,fragmentShader:T0.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:T0.cube_vert,fragmentShader:T0.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:T0.equirect_vert,fragmentShader:T0.equirect_frag},distanceRGBA:{uniforms:b9([$1.common,$1.displacementmap,{referencePosition:{value:new G},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:T0.distanceRGBA_vert,fragmentShader:T0.distanceRGBA_frag},shadow:{uniforms:b9([$1.lights,$1.fog,{color:{value:new J1(0)},opacity:{value:1}}]),vertexShader:T0.shadow_vert,fragmentShader:T0.shadow_frag}};q8.physical={uniforms:b9([q8.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new B0},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new B0},clearcoatNormalScale:{value:new y1(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new B0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new B0},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new B0},sheen:{value:0},sheenColor:{value:new J1(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new B0},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new B0},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new B0},transmissionSamplerSize:{value:new y1},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new B0},attenuationDistance:{value:0},attenuationColor:{value:new J1(0)},specularColor:{value:new J1(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new B0},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new B0},anisotropyVector:{value:new y1},anisotropyMap:{value:null},anisotropyMapTransform:{value:new B0}}]),vertexShader:T0.meshphysical_vert,fragmentShader:T0.meshphysical_frag};const Ar={r:0,b:0,g:0};function bR(t,e,n,C,r,i,o){const s=new J1(0);let a=i===!0?0:1,d,g,p=null,A=0,w=null;function x(m,L){let E=!1,k=L.isScene===!0?L.background:null;k&&k.isTexture&&(k=(L.backgroundBlurriness>0?n:e).get(k)),k===null?y(s,a):k&&k.isColor&&(y(k,1),E=!0);const I=t.xr.getEnvironmentBlendMode();I==="additive"?C.buffers.color.setClear(0,0,0,1,o):I==="alpha-blend"&&C.buffers.color.setClear(0,0,0,0,o),(t.autoClear||E)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),k&&(k.isCubeTexture||k.mapping===he)?(g===void 0&&(g=new e2(new _3(1,1,1),new n4({name:"BackgroundCubeMaterial",uniforms:le(q8.backgroundCube.uniforms),vertexShader:q8.backgroundCube.vertexShader,fragmentShader:q8.backgroundCube.fragmentShader,side:H9,depthTest:!1,depthWrite:!1,fog:!1})),g.geometry.deleteAttribute("normal"),g.geometry.deleteAttribute("uv"),g.onBeforeRender=function(Q,_,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(g.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(g)),g.material.uniforms.envMap.value=k,g.material.uniforms.flipEnvMap.value=k.isCubeTexture&&k.isRenderTargetTexture===!1?-1:1,g.material.uniforms.backgroundBlurriness.value=L.backgroundBlurriness,g.material.uniforms.backgroundIntensity.value=L.backgroundIntensity,g.material.toneMapped=n2.getTransfer(k.colorSpace)!==d2,(p!==k||A!==k.version||w!==t.toneMapping)&&(g.material.needsUpdate=!0,p=k,A=k.version,w=t.toneMapping),g.layers.enableAll(),m.unshift(g,g.geometry,g.material,0,0,null)):k&&k.isTexture&&(d===void 0&&(d=new e2(new a5(2,2),new n4({name:"BackgroundMaterial",uniforms:le(q8.background.uniforms),vertexShader:q8.background.vertexShader,fragmentShader:q8.background.fragmentShader,side:j8,depthTest:!1,depthWrite:!1,fog:!1})),d.geometry.deleteAttribute("normal"),Object.defineProperty(d.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(d)),d.material.uniforms.t2D.value=k,d.material.uniforms.backgroundIntensity.value=L.backgroundIntensity,d.material.toneMapped=n2.getTransfer(k.colorSpace)!==d2,k.matrixAutoUpdate===!0&&k.updateMatrix(),d.material.uniforms.uvTransform.value.copy(k.matrix),(p!==k||A!==k.version||w!==t.toneMapping)&&(d.material.needsUpdate=!0,p=k,A=k.version,w=t.toneMapping),d.layers.enableAll(),m.unshift(d,d.geometry,d.material,0,0,null))}function y(m,L){m.getRGB(Ar,zx(t)),C.buffers.color.setClear(Ar.r,Ar.g,Ar.b,L,o)}return{getClearColor:function(){return s},setClearColor:function(m,L=1){s.set(m),a=L,y(s,a)},getClearAlpha:function(){return a},setClearAlpha:function(m){a=m,y(s,a)},render:x}}function QR(t,e,n,C){const r=t.getParameter(t.MAX_VERTEX_ATTRIBS),i=C.isWebGL2?null:e.get("OES_vertex_array_object"),o=C.isWebGL2||i!==null,s={},a=m(null);let d=a,g=!1;function p(X,c1,o1,f1,U){let t1=!1;if(o){const n1=y(f1,o1,c1);d!==n1&&(d=n1,w(d.object)),t1=L(X,f1,o1,U),t1&&E(X,f1,o1,U)}else{const n1=c1.wireframe===!0;(d.geometry!==f1.id||d.program!==o1.id||d.wireframe!==n1)&&(d.geometry=f1.id,d.program=o1.id,d.wireframe=n1,t1=!0)}U!==null&&n.update(U,t.ELEMENT_ARRAY_BUFFER),(t1||g)&&(g=!1,j(X,c1,o1,f1),U!==null&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,n.get(U).buffer))}function A(){return C.isWebGL2?t.createVertexArray():i.createVertexArrayOES()}function w(X){return C.isWebGL2?t.bindVertexArray(X):i.bindVertexArrayOES(X)}function x(X){return C.isWebGL2?t.deleteVertexArray(X):i.deleteVertexArrayOES(X)}function y(X,c1,o1){const f1=o1.wireframe===!0;let U=s[X.id];U===void 0&&(U={},s[X.id]=U);let t1=U[c1.id];t1===void 0&&(t1={},U[c1.id]=t1);let n1=t1[f1];return n1===void 0&&(n1=m(A()),t1[f1]=n1),n1}function m(X){const c1=[],o1=[],f1=[];for(let U=0;U=0){const $=U[x1];let O=t1[x1];if(O===void 0&&(x1==="instanceMatrix"&&X.instanceMatrix&&(O=X.instanceMatrix),x1==="instanceColor"&&X.instanceColor&&(O=X.instanceColor)),$===void 0||$.attribute!==O||O&&$.data!==O.data)return!0;n1++}return d.attributesNum!==n1||d.index!==f1}function E(X,c1,o1,f1){const U={},t1=c1.attributes;let n1=0;const u1=o1.getAttributes();for(const x1 in u1)if(u1[x1].location>=0){let $=t1[x1];$===void 0&&(x1==="instanceMatrix"&&X.instanceMatrix&&($=X.instanceMatrix),x1==="instanceColor"&&X.instanceColor&&($=X.instanceColor));const O={};O.attribute=$,$&&$.data&&(O.data=$.data),U[x1]=O,n1++}d.attributes=U,d.attributesNum=n1,d.index=f1}function k(){const X=d.newAttributes;for(let c1=0,o1=X.length;c1=0){let U1=U[u1];if(U1===void 0&&(u1==="instanceMatrix"&&X.instanceMatrix&&(U1=X.instanceMatrix),u1==="instanceColor"&&X.instanceColor&&(U1=X.instanceColor)),U1!==void 0){const $=U1.normalized,O=U1.itemSize,W=n.get(U1);if(W===void 0)continue;const F=W.buffer,v1=W.type,k1=W.bytesPerElement,i1=C.isWebGL2===!0&&(v1===t.INT||v1===t.UNSIGNED_INT||U1.gpuType===Id);if(U1.isInterleavedBufferAttribute){const E1=U1.data,z=E1.stride,L1=U1.offset;if(E1.isInstancedInterleavedBuffer){for(let C1=0;C10&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&t.constructor.name==="WebGL2RenderingContext";let s=n.precision!==void 0?n.precision:"highp";const a=i(s);a!==s&&(console.warn("THREE.WebGLRenderer:",s,"not supported, using",a,"instead."),s=a);const d=o||e.has("WEBGL_draw_buffers"),g=n.logarithmicDepthBuffer===!0,p=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),A=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),w=t.getParameter(t.MAX_TEXTURE_SIZE),x=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),y=t.getParameter(t.MAX_VERTEX_ATTRIBS),m=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),L=t.getParameter(t.MAX_VARYING_VECTORS),E=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),k=A>0,I=o||e.has("OES_texture_float"),Q=k&&I,_=o?t.getParameter(t.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:d,getMaxAnisotropy:r,getMaxPrecision:i,precision:s,logarithmicDepthBuffer:g,maxTextures:p,maxVertexTextures:A,maxTextureSize:w,maxCubemapSize:x,maxAttributes:y,maxVertexUniforms:m,maxVaryings:L,maxFragmentUniforms:E,vertexTextures:k,floatFragmentTextures:I,floatVertexTextures:Q,maxSamples:_}}function NR(t){const e=this;let n=null,C=0,r=!1,i=!1;const o=new o2,s=new B0,a={value:null,needsUpdate:!1};this.uniform=a,this.numPlanes=0,this.numIntersection=0,this.init=function(p,A){const w=p.length!==0||A||C!==0||r;return r=A,C=p.length,w},this.beginShadows=function(){i=!0,g(null)},this.endShadows=function(){i=!1},this.setGlobalState=function(p,A){n=g(p,A,0)},this.setState=function(p,A,w){const x=p.clippingPlanes,y=p.clipIntersection,m=p.clipShadows,L=t.get(p);if(!r||x===null||x.length===0||i&&!m)i?g(null):d();else{const E=i?0:C,k=E*4;let I=L.clippingState||null;a.value=I,I=g(x,A,k,w);for(let Q=0;Q!==k;++Q)I[Q]=n[Q];L.clippingState=I,this.numIntersection=y?this.numPlanes:0,this.numPlanes+=E}};function d(){a.value!==n&&(a.value=n,a.needsUpdate=C>0),e.numPlanes=C,e.numIntersection=0}function g(p,A,w,x){const y=p!==null?p.length:0;let m=null;if(y!==0){if(m=a.value,x!==!0||m===null){const L=w+y*4,E=A.matrixWorldInverse;s.getNormalMatrix(E),(m===null||m.length0){const d=new Yx(a.height);return d.fromEquirectangularTexture(t,o),e.set(o,d),o.addEventListener("dispose",r),n(d.texture,o.mapping)}else return null}}return o}function r(o){const s=o.target;s.removeEventListener("dispose",r);const a=e.get(s);a!==void 0&&(e.delete(s),a.dispose())}function i(){e=new WeakMap}return{get:C,dispose:i}}class Rn extends Bn{constructor(e=-1,n=1,C=1,r=-1,i=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=n,this.top=C,this.bottom=r,this.near=i,this.far=o,this.updateProjectionMatrix()}copy(e,n){return super.copy(e,n),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,n,C,r,i,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=n,this.view.offsetX=C,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),n=(this.top-this.bottom)/(2*this.zoom),C=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let i=C-e,o=C+e,s=r+n,a=r-n;if(this.view!==null&&this.view.enabled){const d=(this.right-this.left)/this.view.fullWidth/this.zoom,g=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=d*this.view.offsetX,o=i+d*this.view.width,s-=g*this.view.offsetY,a=s-g*this.view.height}this.projectionMatrix.makeOrthographic(i,o,s,a,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const n=super.toJSON(e);return n.object.zoom=this.zoom,n.object.left=this.left,n.object.right=this.right,n.object.top=this.top,n.object.bottom=this.bottom,n.object.near=this.near,n.object.far=this.far,this.view!==null&&(n.object.view=Object.assign({},this.view)),n}}const W7=4,Rp=[.125,.215,.35,.446,.526,.582],C3=20,Yl=new Rn,bp=new J1;let Xl=null,Jl=0,ql=0;const Z5=(1+Math.sqrt(5))/2,g7=1/Z5,Qp=[new G(1,1,1),new G(-1,1,1),new G(1,1,-1),new G(-1,1,-1),new G(0,Z5,g7),new G(0,Z5,-g7),new G(g7,0,Z5),new G(-g7,0,Z5),new G(Z5,g7,0),new G(-Z5,g7,0)];class ou{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,n=0,C=.1,r=100){Xl=this._renderer.getRenderTarget(),Jl=this._renderer.getActiveCubeFace(),ql=this._renderer.getActiveMipmapLevel(),this._setSize(256);const i=this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(e,C,r,i),n>0&&this._blur(i,0,0,n),this._applyPMREM(i),this._cleanup(i),i}fromEquirectangular(e,n=null){return this._fromTexture(e,n)}fromCubemap(e,n=null){return this._fromTexture(e,n)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Np(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Dp(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?k:0,k,k),g.setRenderTarget(r),y&&g.render(x,s),g.render(e,s)}x.geometry.dispose(),x.material.dispose(),g.toneMapping=A,g.autoClear=p,e.background=m}_textureToCubeUV(e,n){const C=this._renderer,r=e.mapping===o6||e.mapping===C5;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=Np()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Dp());const i=r?this._cubemapMaterial:this._equirectMaterial,o=new e2(this._lodPlanes[0],i),s=i.uniforms;s.envMap.value=e;const a=this._cubeSize;vr(n,0,0,3*a,2*a),C.setRenderTarget(n),C.render(o,Yl)}_applyPMREM(e){const n=this._renderer,C=n.autoClear;n.autoClear=!1;for(let r=1;rC3&&console.warn(`sigmaRadians, ${i}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${C3}`);const L=[];let E=0;for(let T=0;Tk-W7?r-k+W7:0),_=4*(this._cubeSize-I);vr(n,Q,_,3*I,2*I),a.setRenderTarget(n),a.render(p,Yl)}}function HR(t){const e=[],n=[],C=[];let r=t;const i=t-W7+1+Rp.length;for(let o=0;ot-W7?a=Rp[o-t+W7-1]:o===0&&(a=0),C.push(a);const d=1/(s-2),g=-d,p=1+d,A=[g,g,p,g,p,p,g,g,p,p,g,p],w=6,x=6,y=3,m=2,L=1,E=new Float32Array(y*x*w),k=new Float32Array(m*x*w),I=new Float32Array(L*x*w);for(let _=0;_2?0:-1,q=[T,j,0,T+2/3,j,0,T+2/3,j+1,0,T,j,0,T+2/3,j+1,0,T,j+1,0];E.set(q,y*x*_),k.set(A,m*x*_);const R=[_,_,_,_,_,_];I.set(R,L*x*_)}const Q=new b0;Q.setAttribute("position",new t2(E,y)),Q.setAttribute("uv",new t2(k,m)),Q.setAttribute("faceIndex",new t2(I,L)),e.push(Q),r>W7&&r--}return{lodPlanes:e,sizeLods:n,sigmas:C}}function Tp(t,e,n){const C=new U8(t,e,n);return C.texture.mapping=he,C.texture.name="PMREM.cubeUv",C.scissorTest=!0,C}function vr(t,e,n,C,r){t.viewport.set(e,n,C,r),t.scissor.set(e,n,C,r)}function jR(t,e,n){const C=new Float32Array(C3),r=new G(0,1,0);return new n4({name:"SphericalGaussianBlur",defines:{n:C3,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:C},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:Gd(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform int samples; - uniform float weights[ n ]; - uniform bool latitudinal; - uniform float dTheta; - uniform float mipInt; - uniform vec3 poleAxis; - - #define ENVMAP_TYPE_CUBE_UV - #include - - vec3 getSample( float theta, vec3 axis ) { - - float cosTheta = cos( theta ); - // Rodrigues' axis-angle rotation - vec3 sampleDirection = vOutputDirection * cosTheta - + cross( axis, vOutputDirection ) * sin( theta ) - + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); - - return bilinearCubeUV( envMap, sampleDirection, mipInt ); - - } - - void main() { - - vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); - - if ( all( equal( axis, vec3( 0.0 ) ) ) ) { - - axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); - - } - - axis = normalize( axis ); - - gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); - - for ( int i = 1; i < n; i++ ) { - - if ( i >= samples ) { - - break; - - } - - float theta = dTheta * float( i ); - gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); - gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); - - } - - } - `,blending:t6,depthTest:!1,depthWrite:!1})}function Dp(){return new n4({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Gd(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - - #include - - void main() { - - vec3 outputDirection = normalize( vOutputDirection ); - vec2 uv = equirectUv( outputDirection ); - - gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); - - } - `,blending:t6,depthTest:!1,depthWrite:!1})}function Np(){return new n4({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Gd(),fragmentShader:` - - precision mediump float; - precision mediump int; - - uniform float flipEnvMap; - - varying vec3 vOutputDirection; - - uniform samplerCube envMap; - - void main() { - - gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); - - } - `,blending:t6,depthTest:!1,depthWrite:!1})}function Gd(){return` - - precision mediump float; - precision mediump int; - - attribute float faceIndex; - - varying vec3 vOutputDirection; - - // RH coordinate system; PMREM face-indexing convention - vec3 getDirection( vec2 uv, float face ) { - - uv = 2.0 * uv - 1.0; - - vec3 direction = vec3( uv, 1.0 ); - - if ( face == 0.0 ) { - - direction = direction.zyx; // ( 1, v, u ) pos x - - } else if ( face == 1.0 ) { - - direction = direction.xzy; - direction.xz *= -1.0; // ( -u, 1, -v ) pos y - - } else if ( face == 2.0 ) { - - direction.x *= -1.0; // ( -u, v, 1 ) pos z - - } else if ( face == 3.0 ) { - - direction = direction.zyx; - direction.xz *= -1.0; // ( -1, v, -u ) neg x - - } else if ( face == 4.0 ) { - - direction = direction.xzy; - direction.xy *= -1.0; // ( -u, -1, v ) neg y - - } else if ( face == 5.0 ) { - - direction.z *= -1.0; // ( u, v, -1 ) neg z - - } - - return direction; - - } - - void main() { - - vOutputDirection = getDirection( uv, faceIndex ); - gl_Position = vec4( position, 1.0 ); - - } - `}function UR(t){let e=new WeakMap,n=null;function C(s){if(s&&s.isTexture){const a=s.mapping,d=a===Kt||a===Zt,g=a===o6||a===C5;if(d||g)if(s.isRenderTargetTexture&&s.needsPMREMUpdate===!0){s.needsPMREMUpdate=!1;let p=e.get(s);return n===null&&(n=new ou(t)),p=d?n.fromEquirectangular(s,p):n.fromCubemap(s,p),e.set(s,p),p.texture}else{if(e.has(s))return e.get(s).texture;{const p=s.image;if(d&&p&&p.height>0||g&&p&&r(p)){n===null&&(n=new ou(t));const A=d?n.fromEquirectangular(s):n.fromCubemap(s);return e.set(s,A),s.addEventListener("dispose",i),A.texture}else return null}}}return s}function r(s){let a=0;const d=6;for(let g=0;ge.maxTextureSize&&(N=Math.ceil(R/e.maxTextureSize),R=e.maxTextureSize);const K=new Float32Array(R*N*4*y),A1=new _o(K,R,N,y);A1.type=Q8,A1.needsUpdate=!0;const X=q*4;for(let o1=0;o10)return t;const r=e*n;let i=Pp[r];if(i===void 0&&(i=new Float32Array(r),Pp[r]=i),e!==0){C.toArray(i,0);for(let o=1,s=0;o!==e;++o)s+=n,t[o].toArray(i,s)}return i}function q2(t,e){if(t.length!==e.length)return!1;for(let n=0,C=t.length;n":" "} ${s}: ${n[o]}`)}return C.join(` -`)}function Wb(t){const e=n2.getPrimaries(n2.workingColorSpace),n=n2.getPrimaries(t);let C;switch(e===n?C="":e===ln&&n===sn?C="LinearDisplayP3ToLinearSRGB":e===sn&&n===ln&&(C="LinearSRGBToLinearDisplayP3"),t){case I4:case In:return[C,"LinearTransferOETF"];case P2:case So:return[C,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),[C,"LinearTransferOETF"]}}function Op(t,e,n){const C=t.getShaderParameter(e,t.COMPILE_STATUS),r=t.getShaderInfoLog(e).trim();if(C&&r==="")return"";const i=/ERROR: 0:(\d+)/.exec(r);if(i){const o=parseInt(i[1]);return n.toUpperCase()+` - -`+r+` - -`+Fb(t.getShaderSource(e),o)}else return r}function Gb(t,e){const n=Wb(e);return`vec4 ${t}( vec4 value ) { return ${n[0]}( ${n[1]}( value ) ); }`}function Ob(t,e){let n;switch(e){case gx:n="Linear";break;case px:n="Reinhard";break;case Ax:n="OptimizedCineon";break;case yd:n="ACESFilmic";break;case Lx:n="AgX";break;case vx:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function zb(t){return[t.extensionDerivatives||t.envMapCubeUVHeight||t.bumpMap||t.normalMapTangentSpace||t.clearcoatNormalMap||t.flatShading||t.alphaToCoverage||t.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap||t.transmission)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(G7).join(` -`)}function Vb(t){return[t.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",t.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(G7).join(` -`)}function $b(t){const e=[];for(const n in t){const C=t[n];C!==!1&&e.push("#define "+n+" "+C)}return e.join(` -`)}function Yb(t,e){const n={},C=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function su(t){return t.replace(Xb,qb)}const Jb=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function qb(t,e){let n=T0[e];if(n===void 0){const C=Jb.get(e);if(C!==void 0)n=T0[C],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,C);else throw new Error("Can not resolve #include <"+e+">")}return su(n)}const Kb=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function $p(t){return t.replace(Kb,Zb)}function Zb(t,e,n,C){let r="";for(let i=parseInt(e);i0&&(L+=` -`),E=[w,"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y].filter(G7).join(` -`),E.length>0&&(E+=` -`)):(L=[Yp(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+g:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&n.flatShading===!1?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+a:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` -`].filter(G7).join(` -`),E=[w,Yp(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+g:"",n.envMap?"#define "+p:"",A?"#define CUBEUV_TEXEL_WIDTH "+A.texelWidth:"",A?"#define CUBEUV_TEXEL_HEIGHT "+A.texelHeight:"",A?"#define CUBEUV_MAX_MIP "+A.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+a:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==M4?"#define TONE_MAPPING":"",n.toneMapping!==M4?T0.tonemapping_pars_fragment:"",n.toneMapping!==M4?Ob("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",T0.colorspace_pars_fragment,Gb("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"",` -`].filter(G7).join(` -`)),o=su(o),o=zp(o,n),o=Vp(o,n),s=su(s),s=zp(s,n),s=Vp(s,n),o=$p(o),s=$p(s),n.isWebGL2&&n.isRawShaderMaterial!==!0&&(k=`#version 300 es -`,L=[x,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` -`)+` -`+L,E=["precision mediump sampler2DArray;","#define varying in",n.glslVersion===ru?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===ru?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` -`)+` -`+E);const I=k+L+o,Q=k+E+s,_=Gp(r,r.VERTEX_SHADER,I),T=Gp(r,r.FRAGMENT_SHADER,Q);r.attachShader(m,_),r.attachShader(m,T),n.index0AttributeName!==void 0?r.bindAttribLocation(m,0,n.index0AttributeName):n.morphTargets===!0&&r.bindAttribLocation(m,0,"position"),r.linkProgram(m);function j(K){if(t.debug.checkShaderErrors){const A1=r.getProgramInfoLog(m).trim(),X=r.getShaderInfoLog(_).trim(),c1=r.getShaderInfoLog(T).trim();let o1=!0,f1=!0;if(r.getProgramParameter(m,r.LINK_STATUS)===!1)if(o1=!1,typeof t.debug.onShaderError=="function")t.debug.onShaderError(r,m,_,T);else{const U=Op(r,_,"vertex"),t1=Op(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(m,r.VALIDATE_STATUS)+` - -Material Name: `+K.name+` -Material Type: `+K.type+` - -Program Info Log: `+A1+` -`+U+` -`+t1)}else A1!==""?console.warn("THREE.WebGLProgram: Program Info Log:",A1):(X===""||c1==="")&&(f1=!1);f1&&(K.diagnostics={runnable:o1,programLog:A1,vertexShader:{log:X,prefix:L},fragmentShader:{log:c1,prefix:E}})}r.deleteShader(_),r.deleteShader(T),q=new Ai(r,m),R=Yb(r,m)}let q;this.getUniforms=function(){return q===void 0&&j(this),q};let R;this.getAttributes=function(){return R===void 0&&j(this),R};let N=n.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return N===!1&&(N=r.getProgramParameter(m,jb)),N},this.destroy=function(){C.releaseStatesOfProgram(this),r.deleteProgram(m),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=Ub++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=_,this.fragmentShader=T,this}let oQ=0;class sQ{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const n=e.vertexShader,C=e.fragmentShader,r=this._getShaderStage(n),i=this._getShaderStage(C),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(i)===!1&&(o.add(i),i.usedTimes++),this}remove(e){const n=this.materialCache.get(e);for(const C of n)C.usedTimes--,C.usedTimes===0&&this.shaderCache.delete(C.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const n=this.materialCache;let C=n.get(e);return C===void 0&&(C=new Set,n.set(e,C)),C}_getShaderStage(e){const n=this.shaderCache;let C=n.get(e);return C===void 0&&(C=new lQ(e),n.set(e,C)),C}}class lQ{constructor(e){this.id=oQ++,this.code=e,this.usedTimes=0}}function aQ(t,e,n,C,r,i,o){const s=new A3,a=new sQ,d=new Set,g=[],p=r.isWebGL2,A=r.logarithmicDepthBuffer,w=r.vertexTextures;let x=r.precision;const y={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function m(R){return d.add(R),R===0?"uv":`uv${R}`}function L(R,N,K,A1,X){const c1=A1.fog,o1=X.geometry,f1=R.isMeshStandardMaterial?A1.environment:null,U=(R.isMeshStandardMaterial?n:e).get(R.envMap||f1),t1=U&&U.mapping===he?U.image.height:null,n1=y[R.type];R.precision!==null&&(x=r.getMaxPrecision(R.precision),x!==R.precision&&console.warn("THREE.WebGLProgram.getParameters:",R.precision,"not supported, using",x,"instead."));const u1=o1.morphAttributes.position||o1.morphAttributes.normal||o1.morphAttributes.color,x1=u1!==void 0?u1.length:0;let U1=0;o1.morphAttributes.position!==void 0&&(U1=1),o1.morphAttributes.normal!==void 0&&(U1=2),o1.morphAttributes.color!==void 0&&(U1=3);let $,O,W,F;if(n1){const O0=q8[n1];$=O0.vertexShader,O=O0.fragmentShader}else $=R.vertexShader,O=R.fragmentShader,a.update(R),W=a.getVertexShaderID(R),F=a.getFragmentShaderID(R);const v1=t.getRenderTarget(),k1=X.isInstancedMesh===!0,i1=X.isBatchedMesh===!0,E1=!!R.map,z=!!R.matcap,L1=!!U,C1=!!R.aoMap,l1=!!R.lightMap,h1=!!R.bumpMap,b1=!!R.normalMap,e1=!!R.displacementMap,S=!!R.emissiveMap,D=!!R.metalnessMap,r1=!!R.roughnessMap,T1=R.anisotropy>0,Q1=R.clearcoat>0,_1=R.iridescence>0,Y1=R.sheen>0,O1=R.transmission>0,q1=T1&&!!R.anisotropyMap,l0=Q1&&!!R.clearcoatMap,w0=Q1&&!!R.clearcoatNormalMap,N1=Q1&&!!R.clearcoatRoughnessMap,Q0=_1&&!!R.iridescenceMap,E0=_1&&!!R.iridescenceThicknessMap,g0=Y1&&!!R.sheenColorMap,s0=Y1&&!!R.sheenRoughnessMap,n0=!!R.specularMap,m0=!!R.specularColorMap,P0=!!R.specularIntensityMap,$0=O1&&!!R.transmissionMap,y0=O1&&!!R.thicknessMap,W0=!!R.gradientMap,J=!!R.alphaMap,F1=R.alphaTest>0,H1=!!R.alphaHash,r0=!!R.extensions;let d0=M4;R.toneMapped&&(v1===null||v1.isXRRenderTarget===!0)&&(d0=t.toneMapping);const G0={isWebGL2:p,shaderID:n1,shaderType:R.type,shaderName:R.name,vertexShader:$,fragmentShader:O,defines:R.defines,customVertexShaderID:W,customFragmentShaderID:F,isRawShaderMaterial:R.isRawShaderMaterial===!0,glslVersion:R.glslVersion,precision:x,batching:i1,instancing:k1,instancingColor:k1&&X.instanceColor!==null,supportsVertexTextures:w,outputColorSpace:v1===null?t.outputColorSpace:v1.isXRRenderTarget===!0?v1.texture.colorSpace:I4,alphaToCoverage:!!R.alphaToCoverage,map:E1,matcap:z,envMap:L1,envMapMode:L1&&U.mapping,envMapCubeUVHeight:t1,aoMap:C1,lightMap:l1,bumpMap:h1,normalMap:b1,displacementMap:w&&e1,emissiveMap:S,normalMapObjectSpace:b1&&R.normalMapType===Qx,normalMapTangentSpace:b1&&R.normalMapType===l5,metalnessMap:D,roughnessMap:r1,anisotropy:T1,anisotropyMap:q1,clearcoat:Q1,clearcoatMap:l0,clearcoatNormalMap:w0,clearcoatRoughnessMap:N1,iridescence:_1,iridescenceMap:Q0,iridescenceThicknessMap:E0,sheen:Y1,sheenColorMap:g0,sheenRoughnessMap:s0,specularMap:n0,specularColorMap:m0,specularIntensityMap:P0,transmission:O1,transmissionMap:$0,thicknessMap:y0,gradientMap:W0,opaque:R.transparent===!1&&R.blending===f3&&R.alphaToCoverage===!1,alphaMap:J,alphaTest:F1,alphaHash:H1,combine:R.combine,mapUv:E1&&m(R.map.channel),aoMapUv:C1&&m(R.aoMap.channel),lightMapUv:l1&&m(R.lightMap.channel),bumpMapUv:h1&&m(R.bumpMap.channel),normalMapUv:b1&&m(R.normalMap.channel),displacementMapUv:e1&&m(R.displacementMap.channel),emissiveMapUv:S&&m(R.emissiveMap.channel),metalnessMapUv:D&&m(R.metalnessMap.channel),roughnessMapUv:r1&&m(R.roughnessMap.channel),anisotropyMapUv:q1&&m(R.anisotropyMap.channel),clearcoatMapUv:l0&&m(R.clearcoatMap.channel),clearcoatNormalMapUv:w0&&m(R.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:N1&&m(R.clearcoatRoughnessMap.channel),iridescenceMapUv:Q0&&m(R.iridescenceMap.channel),iridescenceThicknessMapUv:E0&&m(R.iridescenceThicknessMap.channel),sheenColorMapUv:g0&&m(R.sheenColorMap.channel),sheenRoughnessMapUv:s0&&m(R.sheenRoughnessMap.channel),specularMapUv:n0&&m(R.specularMap.channel),specularColorMapUv:m0&&m(R.specularColorMap.channel),specularIntensityMapUv:P0&&m(R.specularIntensityMap.channel),transmissionMapUv:$0&&m(R.transmissionMap.channel),thicknessMapUv:y0&&m(R.thicknessMap.channel),alphaMapUv:J&&m(R.alphaMap.channel),vertexTangents:!!o1.attributes.tangent&&(b1||T1),vertexColors:R.vertexColors,vertexAlphas:R.vertexColors===!0&&!!o1.attributes.color&&o1.attributes.color.itemSize===4,pointsUvs:X.isPoints===!0&&!!o1.attributes.uv&&(E1||J),fog:!!c1,useFog:R.fog===!0,fogExp2:!!c1&&c1.isFogExp2,flatShading:R.flatShading===!0,sizeAttenuation:R.sizeAttenuation===!0,logarithmicDepthBuffer:A,skinning:X.isSkinnedMesh===!0,morphTargets:o1.morphAttributes.position!==void 0,morphNormals:o1.morphAttributes.normal!==void 0,morphColors:o1.morphAttributes.color!==void 0,morphTargetsCount:x1,morphTextureStride:U1,numDirLights:N.directional.length,numPointLights:N.point.length,numSpotLights:N.spot.length,numSpotLightMaps:N.spotLightMap.length,numRectAreaLights:N.rectArea.length,numHemiLights:N.hemi.length,numDirLightShadows:N.directionalShadowMap.length,numPointLightShadows:N.pointShadowMap.length,numSpotLightShadows:N.spotShadowMap.length,numSpotLightShadowsWithMaps:N.numSpotLightShadowsWithMaps,numLightProbes:N.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:R.dithering,shadowMapEnabled:t.shadowMap.enabled&&K.length>0,shadowMapType:t.shadowMap.type,toneMapping:d0,useLegacyLights:t._useLegacyLights,decodeVideoTexture:E1&&R.map.isVideoTexture===!0&&n2.getTransfer(R.map.colorSpace)===d2,premultipliedAlpha:R.premultipliedAlpha,doubleSided:R.side===L4,flipSided:R.side===H9,useDepthPacking:R.depthPacking>=0,depthPacking:R.depthPacking||0,index0AttributeName:R.index0AttributeName,extensionDerivatives:r0&&R.extensions.derivatives===!0,extensionFragDepth:r0&&R.extensions.fragDepth===!0,extensionDrawBuffers:r0&&R.extensions.drawBuffers===!0,extensionShaderTextureLOD:r0&&R.extensions.shaderTextureLOD===!0,extensionClipCullDistance:r0&&R.extensions.clipCullDistance===!0&&C.has("WEBGL_clip_cull_distance"),extensionMultiDraw:r0&&R.extensions.multiDraw===!0&&C.has("WEBGL_multi_draw"),rendererExtensionFragDepth:p||C.has("EXT_frag_depth"),rendererExtensionDrawBuffers:p||C.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:p||C.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:C.has("KHR_parallel_shader_compile"),customProgramCacheKey:R.customProgramCacheKey()};return G0.vertexUv1s=d.has(1),G0.vertexUv2s=d.has(2),G0.vertexUv3s=d.has(3),d.clear(),G0}function E(R){const N=[];if(R.shaderID?N.push(R.shaderID):(N.push(R.customVertexShaderID),N.push(R.customFragmentShaderID)),R.defines!==void 0)for(const K in R.defines)N.push(K),N.push(R.defines[K]);return R.isRawShaderMaterial===!1&&(k(N,R),I(N,R),N.push(t.outputColorSpace)),N.push(R.customProgramCacheKey),N.join()}function k(R,N){R.push(N.precision),R.push(N.outputColorSpace),R.push(N.envMapMode),R.push(N.envMapCubeUVHeight),R.push(N.mapUv),R.push(N.alphaMapUv),R.push(N.lightMapUv),R.push(N.aoMapUv),R.push(N.bumpMapUv),R.push(N.normalMapUv),R.push(N.displacementMapUv),R.push(N.emissiveMapUv),R.push(N.metalnessMapUv),R.push(N.roughnessMapUv),R.push(N.anisotropyMapUv),R.push(N.clearcoatMapUv),R.push(N.clearcoatNormalMapUv),R.push(N.clearcoatRoughnessMapUv),R.push(N.iridescenceMapUv),R.push(N.iridescenceThicknessMapUv),R.push(N.sheenColorMapUv),R.push(N.sheenRoughnessMapUv),R.push(N.specularMapUv),R.push(N.specularColorMapUv),R.push(N.specularIntensityMapUv),R.push(N.transmissionMapUv),R.push(N.thicknessMapUv),R.push(N.combine),R.push(N.fogExp2),R.push(N.sizeAttenuation),R.push(N.morphTargetsCount),R.push(N.morphAttributeCount),R.push(N.numDirLights),R.push(N.numPointLights),R.push(N.numSpotLights),R.push(N.numSpotLightMaps),R.push(N.numHemiLights),R.push(N.numRectAreaLights),R.push(N.numDirLightShadows),R.push(N.numPointLightShadows),R.push(N.numSpotLightShadows),R.push(N.numSpotLightShadowsWithMaps),R.push(N.numLightProbes),R.push(N.shadowMapType),R.push(N.toneMapping),R.push(N.numClippingPlanes),R.push(N.numClipIntersection),R.push(N.depthPacking)}function I(R,N){s.disableAll(),N.isWebGL2&&s.enable(0),N.supportsVertexTextures&&s.enable(1),N.instancing&&s.enable(2),N.instancingColor&&s.enable(3),N.matcap&&s.enable(4),N.envMap&&s.enable(5),N.normalMapObjectSpace&&s.enable(6),N.normalMapTangentSpace&&s.enable(7),N.clearcoat&&s.enable(8),N.iridescence&&s.enable(9),N.alphaTest&&s.enable(10),N.vertexColors&&s.enable(11),N.vertexAlphas&&s.enable(12),N.vertexUv1s&&s.enable(13),N.vertexUv2s&&s.enable(14),N.vertexUv3s&&s.enable(15),N.vertexTangents&&s.enable(16),N.anisotropy&&s.enable(17),N.alphaHash&&s.enable(18),N.batching&&s.enable(19),R.push(s.mask),s.disableAll(),N.fog&&s.enable(0),N.useFog&&s.enable(1),N.flatShading&&s.enable(2),N.logarithmicDepthBuffer&&s.enable(3),N.skinning&&s.enable(4),N.morphTargets&&s.enable(5),N.morphNormals&&s.enable(6),N.morphColors&&s.enable(7),N.premultipliedAlpha&&s.enable(8),N.shadowMapEnabled&&s.enable(9),N.useLegacyLights&&s.enable(10),N.doubleSided&&s.enable(11),N.flipSided&&s.enable(12),N.useDepthPacking&&s.enable(13),N.dithering&&s.enable(14),N.transmission&&s.enable(15),N.sheen&&s.enable(16),N.opaque&&s.enable(17),N.pointsUvs&&s.enable(18),N.decodeVideoTexture&&s.enable(19),N.alphaToCoverage&&s.enable(20),R.push(s.mask)}function Q(R){const N=y[R.type];let K;if(N){const A1=q8[N];K=Vx.clone(A1.uniforms)}else K=R.uniforms;return K}function _(R,N){let K;for(let A1=0,X=g.length;A10?C.push(L):w.transparent===!0?r.push(L):n.push(L)}function a(p,A,w,x,y,m){const L=o(p,A,w,x,y,m);w.transmission>0?C.unshift(L):w.transparent===!0?r.unshift(L):n.unshift(L)}function d(p,A){n.length>1&&n.sort(p||uQ),C.length>1&&C.sort(A||Xp),r.length>1&&r.sort(A||Xp)}function g(){for(let p=e,A=t.length;p=i.length?(o=new Jp,i.push(o)):o=i[r],o}function n(){t=new WeakMap}return{get:e,dispose:n}}function hQ(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new G,color:new J1};break;case"SpotLight":n={position:new G,direction:new G,color:new J1,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new G,color:new J1,distance:0,decay:0};break;case"HemisphereLight":n={direction:new G,skyColor:new J1,groundColor:new J1};break;case"RectAreaLight":n={color:new J1,position:new G,halfWidth:new G,halfHeight:new G};break}return t[e.id]=n,n}}}function fQ(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new y1};break;case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new y1};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new y1,shadowCameraNear:1,shadowCameraFar:1e3};break}return t[e.id]=n,n}}}let gQ=0;function pQ(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function AQ(t,e){const n=new hQ,C=fQ(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let g=0;g<9;g++)r.probe.push(new G);const i=new G,o=new f0,s=new f0;function a(g,p){let A=0,w=0,x=0;for(let K=0;K<9;K++)r.probe[K].set(0,0,0);let y=0,m=0,L=0,E=0,k=0,I=0,Q=0,_=0,T=0,j=0,q=0;g.sort(pQ);const R=p===!0?Math.PI:1;for(let K=0,A1=g.length;K0&&(e.isWebGL2?t.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=$1.LTC_FLOAT_1,r.rectAreaLTC2=$1.LTC_FLOAT_2):(r.rectAreaLTC1=$1.LTC_HALF_1,r.rectAreaLTC2=$1.LTC_HALF_2):t.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=$1.LTC_FLOAT_1,r.rectAreaLTC2=$1.LTC_FLOAT_2):t.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=$1.LTC_HALF_1,r.rectAreaLTC2=$1.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=A,r.ambient[1]=w,r.ambient[2]=x;const N=r.hash;(N.directionalLength!==y||N.pointLength!==m||N.spotLength!==L||N.rectAreaLength!==E||N.hemiLength!==k||N.numDirectionalShadows!==I||N.numPointShadows!==Q||N.numSpotShadows!==_||N.numSpotMaps!==T||N.numLightProbes!==q)&&(r.directional.length=y,r.spot.length=L,r.rectArea.length=E,r.point.length=m,r.hemi.length=k,r.directionalShadow.length=I,r.directionalShadowMap.length=I,r.pointShadow.length=Q,r.pointShadowMap.length=Q,r.spotShadow.length=_,r.spotShadowMap.length=_,r.directionalShadowMatrix.length=I,r.pointShadowMatrix.length=Q,r.spotLightMatrix.length=_+T-j,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=j,r.numLightProbes=q,N.directionalLength=y,N.pointLength=m,N.spotLength=L,N.rectAreaLength=E,N.hemiLength=k,N.numDirectionalShadows=I,N.numPointShadows=Q,N.numSpotShadows=_,N.numSpotMaps=T,N.numLightProbes=q,r.version=gQ++)}function d(g,p){let A=0,w=0,x=0,y=0,m=0;const L=p.matrixWorldInverse;for(let E=0,k=g.length;E=s.length?(a=new qp(t,e),s.push(a)):a=s[o],a}function r(){n=new WeakMap}return{get:C,dispose:r}}class bo extends s9{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=bx,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class Qo extends s9{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const LQ=`void main() { - gl_Position = vec4( position, 1.0 ); -}`,wQ=`uniform sampler2D shadow_pass; -uniform vec2 resolution; -uniform float radius; -#include -void main() { - const float samples = float( VSM_SAMPLES ); - float mean = 0.0; - float squared_mean = 0.0; - float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); - float uvStart = samples <= 1.0 ? 0.0 : - 1.0; - for ( float i = 0.0; i < samples; i ++ ) { - float uvOffset = uvStart + i * uvStride; - #ifdef HORIZONTAL_PASS - vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); - mean += distribution.x; - squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; - #else - float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); - mean += depth; - squared_mean += depth * depth; - #endif - } - mean = mean / samples; - squared_mean = squared_mean / samples; - float std_dev = sqrt( squared_mean - mean * mean ); - gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function xQ(t,e,n){let C=new _n;const r=new y1,i=new y1,o=new C2,s=new bo({depthPacking:Nd}),a=new Qo,d={},g=n.maxTextureSize,p={[j8]:H9,[H9]:j8,[L4]:L4},A=new n4({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new y1},radius:{value:4}},vertexShader:LQ,fragmentShader:wQ}),w=A.clone();w.defines.HORIZONTAL_PASS=1;const x=new b0;x.setAttribute("position",new t2(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const y=new e2(x,A),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Eo;let L=this.type;this.render=function(_,T,j){if(m.enabled===!1||m.autoUpdate===!1&&m.needsUpdate===!1||_.length===0)return;const q=t.getRenderTarget(),R=t.getActiveCubeFace(),N=t.getActiveMipmapLevel(),K=t.state;K.setBlending(t6),K.buffers.color.setClear(1,1,1,1),K.buffers.depth.setTest(!0),K.setScissorTest(!1);const A1=L!==Y8&&this.type===Y8,X=L===Y8&&this.type!==Y8;for(let c1=0,o1=_.length;c1g||r.y>g)&&(r.x>g&&(i.x=Math.floor(g/t1.x),r.x=i.x*t1.x,U.mapSize.x=i.x),r.y>g&&(i.y=Math.floor(g/t1.y),r.y=i.y*t1.y,U.mapSize.y=i.y)),U.map===null||A1===!0||X===!0){const u1=this.type!==Y8?{minFilter:N2,magFilter:N2}:{};U.map!==null&&U.map.dispose(),U.map=new U8(r.x,r.y,u1),U.map.texture.name=f1.name+".shadowMap",U.camera.updateProjectionMatrix()}t.setRenderTarget(U.map),t.clear();const n1=U.getViewportCount();for(let u1=0;u10||T.map&&T.alphaTest>0){const K=R.uuid,A1=T.uuid;let X=d[K];X===void 0&&(X={},d[K]=X);let c1=X[A1];c1===void 0&&(c1=R.clone(),X[A1]=c1,T.addEventListener("dispose",Q)),R=c1}if(R.visible=T.visible,R.wireframe=T.wireframe,q===Y8?R.side=T.shadowSide!==null?T.shadowSide:T.side:R.side=T.shadowSide!==null?T.shadowSide:p[T.side],R.alphaMap=T.alphaMap,R.alphaTest=T.alphaTest,R.map=T.map,R.clipShadows=T.clipShadows,R.clippingPlanes=T.clippingPlanes,R.clipIntersection=T.clipIntersection,R.displacementMap=T.displacementMap,R.displacementScale=T.displacementScale,R.displacementBias=T.displacementBias,R.wireframeLinewidth=T.wireframeLinewidth,R.linewidth=T.linewidth,j.isPointLight===!0&&R.isMeshDistanceMaterial===!0){const K=t.properties.get(R);K.light=j}return R}function I(_,T,j,q,R){if(_.visible===!1)return;if(_.layers.test(T.layers)&&(_.isMesh||_.isLine||_.isPoints)&&(_.castShadow||_.receiveShadow&&R===Y8)&&(!_.frustumCulled||C.intersectsObject(_))){_.modelViewMatrix.multiplyMatrices(j.matrixWorldInverse,_.matrixWorld);const A1=e.update(_),X=_.material;if(Array.isArray(X)){const c1=A1.groups;for(let o1=0,f1=c1.length;o1=1):n1.indexOf("OpenGL ES")!==-1&&(t1=parseFloat(/^OpenGL ES (\d)/.exec(n1)[1]),U=t1>=2);let u1=null,x1={};const U1=t.getParameter(t.SCISSOR_BOX),$=t.getParameter(t.VIEWPORT),O=new C2().fromArray(U1),W=new C2().fromArray($);function F(J,F1,H1,r0){const d0=new Uint8Array(4),G0=t.createTexture();t.bindTexture(J,G0),t.texParameteri(J,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(J,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let O0=0;O0"u"?!1:/OculusBrowser/g.test(navigator.userAgent),g=new WeakMap;let p;const A=new WeakMap;let w=!1;try{w=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function x(S,D){return w?new OffscreenCanvas(S,D):un("canvas")}function y(S,D,r1,T1){let Q1=1;if((S.width>T1||S.height>T1)&&(Q1=T1/Math.max(S.width,S.height)),Q1<1||D===!0)if(typeof HTMLImageElement<"u"&&S instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&S instanceof ImageBitmap){const _1=D?to:Math.floor,Y1=_1(Q1*S.width),O1=_1(Q1*S.height);p===void 0&&(p=x(Y1,O1));const q1=r1?x(Y1,O1):p;return q1.width=Y1,q1.height=O1,q1.getContext("2d").drawImage(S,0,0,Y1,O1),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+S.width+"x"+S.height+") to ("+Y1+"x"+O1+")."),q1}else return"data"in S&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+S.width+"x"+S.height+")."),S;return S}function m(S){return iu(S.width)&&iu(S.height)}function L(S){return s?!1:S.wrapS!==E9||S.wrapT!==E9||S.minFilter!==N2&&S.minFilter!==A2}function E(S,D){return S.generateMipmaps&&D&&S.minFilter!==N2&&S.minFilter!==A2}function k(S){t.generateMipmap(S)}function I(S,D,r1,T1,Q1=!1){if(s===!1)return D;if(S!==null){if(t[S]!==void 0)return t[S];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+S+"'")}let _1=D;if(D===t.RED&&(r1===t.FLOAT&&(_1=t.R32F),r1===t.HALF_FLOAT&&(_1=t.R16F),r1===t.UNSIGNED_BYTE&&(_1=t.R8)),D===t.RED_INTEGER&&(r1===t.UNSIGNED_BYTE&&(_1=t.R8UI),r1===t.UNSIGNED_SHORT&&(_1=t.R16UI),r1===t.UNSIGNED_INT&&(_1=t.R32UI),r1===t.BYTE&&(_1=t.R8I),r1===t.SHORT&&(_1=t.R16I),r1===t.INT&&(_1=t.R32I)),D===t.RG&&(r1===t.FLOAT&&(_1=t.RG32F),r1===t.HALF_FLOAT&&(_1=t.RG16F),r1===t.UNSIGNED_BYTE&&(_1=t.RG8)),D===t.RGBA){const Y1=Q1?on:n2.getTransfer(T1);r1===t.FLOAT&&(_1=t.RGBA32F),r1===t.HALF_FLOAT&&(_1=t.RGBA16F),r1===t.UNSIGNED_BYTE&&(_1=Y1===d2?t.SRGB8_ALPHA8:t.RGBA8),r1===t.UNSIGNED_SHORT_4_4_4_4&&(_1=t.RGBA4),r1===t.UNSIGNED_SHORT_5_5_5_1&&(_1=t.RGB5_A1)}return(_1===t.R16F||_1===t.R32F||_1===t.RG16F||_1===t.RG32F||_1===t.RGBA16F||_1===t.RGBA32F)&&e.get("EXT_color_buffer_float"),_1}function Q(S,D,r1){return E(S,r1)===!0||S.isFramebufferTexture&&S.minFilter!==N2&&S.minFilter!==A2?Math.log2(Math.max(D.width,D.height))+1:S.mipmaps!==void 0&&S.mipmaps.length>0?S.mipmaps.length:S.isCompressedTexture&&Array.isArray(S.image)?D.mipmaps.length:1}function _(S){return S===N2||S===Zi||S===n3?t.NEAREST:t.LINEAR}function T(S){const D=S.target;D.removeEventListener("dispose",T),q(D),D.isVideoTexture&&g.delete(D)}function j(S){const D=S.target;D.removeEventListener("dispose",j),N(D)}function q(S){const D=C.get(S);if(D.__webglInit===void 0)return;const r1=S.source,T1=A.get(r1);if(T1){const Q1=T1[D.__cacheKey];Q1.usedTimes--,Q1.usedTimes===0&&R(S),Object.keys(T1).length===0&&A.delete(r1)}C.remove(S)}function R(S){const D=C.get(S);t.deleteTexture(D.__webglTexture);const r1=S.source,T1=A.get(r1);delete T1[D.__cacheKey],o.memory.textures--}function N(S){const D=S.texture,r1=C.get(S),T1=C.get(D);if(T1.__webglTexture!==void 0&&(t.deleteTexture(T1.__webglTexture),o.memory.textures--),S.depthTexture&&S.depthTexture.dispose(),S.isWebGLCubeRenderTarget)for(let Q1=0;Q1<6;Q1++){if(Array.isArray(r1.__webglFramebuffer[Q1]))for(let _1=0;_1=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+S+" texture units while this GPU supports only "+r.maxTextures),K+=1,S}function c1(S){const D=[];return D.push(S.wrapS),D.push(S.wrapT),D.push(S.wrapR||0),D.push(S.magFilter),D.push(S.minFilter),D.push(S.anisotropy),D.push(S.internalFormat),D.push(S.format),D.push(S.type),D.push(S.generateMipmaps),D.push(S.premultiplyAlpha),D.push(S.flipY),D.push(S.unpackAlignment),D.push(S.colorSpace),D.join()}function o1(S,D){const r1=C.get(S);if(S.isVideoTexture&&b1(S),S.isRenderTargetTexture===!1&&S.version>0&&r1.__version!==S.version){const T1=S.image;if(T1===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(T1.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{O(r1,S,D);return}}n.bindTexture(t.TEXTURE_2D,r1.__webglTexture,t.TEXTURE0+D)}function f1(S,D){const r1=C.get(S);if(S.version>0&&r1.__version!==S.version){O(r1,S,D);return}n.bindTexture(t.TEXTURE_2D_ARRAY,r1.__webglTexture,t.TEXTURE0+D)}function U(S,D){const r1=C.get(S);if(S.version>0&&r1.__version!==S.version){O(r1,S,D);return}n.bindTexture(t.TEXTURE_3D,r1.__webglTexture,t.TEXTURE0+D)}function t1(S,D){const r1=C.get(S);if(S.version>0&&r1.__version!==S.version){W(r1,S,D);return}n.bindTexture(t.TEXTURE_CUBE_MAP,r1.__webglTexture,t.TEXTURE0+D)}const n1={[en]:t.REPEAT,[E9]:t.CLAMP_TO_EDGE,[tn]:t.MIRRORED_REPEAT},u1={[N2]:t.NEAREST,[Zi]:t.NEAREST_MIPMAP_NEAREST,[n3]:t.NEAREST_MIPMAP_LINEAR,[A2]:t.LINEAR,[St]:t.LINEAR_MIPMAP_NEAREST,[w4]:t.LINEAR_MIPMAP_LINEAR},x1={[Tx]:t.NEVER,[Ux]:t.ALWAYS,[Dx]:t.LESS,[Pd]:t.LEQUAL,[Nx]:t.EQUAL,[jx]:t.GEQUAL,[Px]:t.GREATER,[Hx]:t.NOTEQUAL};function U1(S,D,r1){if(D.type===Q8&&e.has("OES_texture_float_linear")===!1&&(D.magFilter===A2||D.magFilter===St||D.magFilter===n3||D.magFilter===w4||D.minFilter===A2||D.minFilter===St||D.minFilter===n3||D.minFilter===w4)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),r1?(t.texParameteri(S,t.TEXTURE_WRAP_S,n1[D.wrapS]),t.texParameteri(S,t.TEXTURE_WRAP_T,n1[D.wrapT]),(S===t.TEXTURE_3D||S===t.TEXTURE_2D_ARRAY)&&t.texParameteri(S,t.TEXTURE_WRAP_R,n1[D.wrapR]),t.texParameteri(S,t.TEXTURE_MAG_FILTER,u1[D.magFilter]),t.texParameteri(S,t.TEXTURE_MIN_FILTER,u1[D.minFilter])):(t.texParameteri(S,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(S,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),(S===t.TEXTURE_3D||S===t.TEXTURE_2D_ARRAY)&&t.texParameteri(S,t.TEXTURE_WRAP_R,t.CLAMP_TO_EDGE),(D.wrapS!==E9||D.wrapT!==E9)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(S,t.TEXTURE_MAG_FILTER,_(D.magFilter)),t.texParameteri(S,t.TEXTURE_MIN_FILTER,_(D.minFilter)),D.minFilter!==N2&&D.minFilter!==A2&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),D.compareFunction&&(t.texParameteri(S,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(S,t.TEXTURE_COMPARE_FUNC,x1[D.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const T1=e.get("EXT_texture_filter_anisotropic");if(D.magFilter===N2||D.minFilter!==n3&&D.minFilter!==w4||D.type===Q8&&e.has("OES_texture_float_linear")===!1||s===!1&&D.type===M3&&e.has("OES_texture_half_float_linear")===!1)return;(D.anisotropy>1||C.get(D).__currentAnisotropy)&&(t.texParameterf(S,T1.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,r.getMaxAnisotropy())),C.get(D).__currentAnisotropy=D.anisotropy)}}function $(S,D){let r1=!1;S.__webglInit===void 0&&(S.__webglInit=!0,D.addEventListener("dispose",T));const T1=D.source;let Q1=A.get(T1);Q1===void 0&&(Q1={},A.set(T1,Q1));const _1=c1(D);if(_1!==S.__cacheKey){Q1[_1]===void 0&&(Q1[_1]={texture:t.createTexture(),usedTimes:0},o.memory.textures++,r1=!0),Q1[_1].usedTimes++;const Y1=Q1[S.__cacheKey];Y1!==void 0&&(Q1[S.__cacheKey].usedTimes--,Y1.usedTimes===0&&R(D)),S.__cacheKey=_1,S.__webglTexture=Q1[_1].texture}return r1}function O(S,D,r1){let T1=t.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&&(T1=t.TEXTURE_2D_ARRAY),D.isData3DTexture&&(T1=t.TEXTURE_3D);const Q1=$(S,D),_1=D.source;n.bindTexture(T1,S.__webglTexture,t.TEXTURE0+r1);const Y1=C.get(_1);if(_1.version!==Y1.__version||Q1===!0){n.activeTexture(t.TEXTURE0+r1);const O1=n2.getPrimaries(n2.workingColorSpace),q1=D.colorSpace===h8?null:n2.getPrimaries(D.colorSpace),l0=D.colorSpace===h8||O1===q1?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,D.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,D.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,l0);const w0=L(D)&&m(D.image)===!1;let N1=y(D.image,w0,!1,r.maxTextureSize);N1=e1(D,N1);const Q0=m(N1)||s,E0=i.convert(D.format,D.colorSpace);let g0=i.convert(D.type),s0=I(D.internalFormat,E0,g0,D.colorSpace,D.isVideoTexture);U1(T1,D,Q0);let n0;const m0=D.mipmaps,P0=s&&D.isVideoTexture!==!0&&s0!==Qd,$0=Y1.__version===void 0||Q1===!0,y0=_1.dataReady,W0=Q(D,N1,Q0);if(D.isDepthTexture)s0=t.DEPTH_COMPONENT,s?D.type===Q8?s0=t.DEPTH_COMPONENT32F:D.type===K4?s0=t.DEPTH_COMPONENT24:D.type===X6?s0=t.DEPTH24_STENCIL8:s0=t.DEPTH_COMPONENT16:D.type===Q8&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),D.format===J6&&s0===t.DEPTH_COMPONENT&&D.type!==Io&&D.type!==K4&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),D.type=K4,g0=i.convert(D.type)),D.format===E3&&s0===t.DEPTH_COMPONENT&&(s0=t.DEPTH_STENCIL,D.type!==X6&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),D.type=X6,g0=i.convert(D.type))),$0&&(P0?n.texStorage2D(t.TEXTURE_2D,1,s0,N1.width,N1.height):n.texImage2D(t.TEXTURE_2D,0,s0,N1.width,N1.height,0,E0,g0,null));else if(D.isDataTexture)if(m0.length>0&&Q0){P0&&$0&&n.texStorage2D(t.TEXTURE_2D,W0,s0,m0[0].width,m0[0].height);for(let J=0,F1=m0.length;J>=1,F1>>=1}}else if(m0.length>0&&Q0){P0&&$0&&n.texStorage2D(t.TEXTURE_2D,W0,s0,m0[0].width,m0[0].height);for(let J=0,F1=m0.length;J0&&y0++,n.texStorage2D(t.TEXTURE_CUBE_MAP,y0,n0,N1[0].width,N1[0].height));for(let J=0;J<6;J++)if(w0){m0?$0&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,0,0,N1[J].width,N1[J].height,g0,s0,N1[J].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,n0,N1[J].width,N1[J].height,0,g0,s0,N1[J].data);for(let F1=0;F1>_1),N1=Math.max(1,D.height>>_1);Q1===t.TEXTURE_3D||Q1===t.TEXTURE_2D_ARRAY?n.texImage3D(Q1,_1,q1,w0,N1,D.depth,0,Y1,O1,null):n.texImage2D(Q1,_1,q1,w0,N1,0,Y1,O1,null)}n.bindFramebuffer(t.FRAMEBUFFER,S),h1(D)?a.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,T1,Q1,C.get(r1).__webglTexture,0,l1(D)):(Q1===t.TEXTURE_2D||Q1>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&Q1<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,T1,Q1,C.get(r1).__webglTexture,_1),n.bindFramebuffer(t.FRAMEBUFFER,null)}function v1(S,D,r1){if(t.bindRenderbuffer(t.RENDERBUFFER,S),D.depthBuffer&&!D.stencilBuffer){let T1=s===!0?t.DEPTH_COMPONENT24:t.DEPTH_COMPONENT16;if(r1||h1(D)){const Q1=D.depthTexture;Q1&&Q1.isDepthTexture&&(Q1.type===Q8?T1=t.DEPTH_COMPONENT32F:Q1.type===K4&&(T1=t.DEPTH_COMPONENT24));const _1=l1(D);h1(D)?a.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,_1,T1,D.width,D.height):t.renderbufferStorageMultisample(t.RENDERBUFFER,_1,T1,D.width,D.height)}else t.renderbufferStorage(t.RENDERBUFFER,T1,D.width,D.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,S)}else if(D.depthBuffer&&D.stencilBuffer){const T1=l1(D);r1&&h1(D)===!1?t.renderbufferStorageMultisample(t.RENDERBUFFER,T1,t.DEPTH24_STENCIL8,D.width,D.height):h1(D)?a.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,T1,t.DEPTH24_STENCIL8,D.width,D.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,D.width,D.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,S)}else{const T1=D.isWebGLMultipleRenderTargets===!0?D.texture:[D.texture];for(let Q1=0;Q10){r1.__webglFramebuffer[O1]=[];for(let q1=0;q10){r1.__webglFramebuffer=[];for(let O1=0;O10&&h1(S)===!1){const O1=_1?D:[D];r1.__webglMultisampledFramebuffer=t.createFramebuffer(),r1.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,r1.__webglMultisampledFramebuffer);for(let q1=0;q10)for(let q1=0;q10)for(let q1=0;q10&&h1(S)===!1){const D=S.isWebGLMultipleRenderTargets?S.texture:[S.texture],r1=S.width,T1=S.height;let Q1=t.COLOR_BUFFER_BIT;const _1=[],Y1=S.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,O1=C.get(S),q1=S.isWebGLMultipleRenderTargets===!0;if(q1)for(let l0=0;l00&&e.has("WEBGL_multisampled_render_to_texture")===!0&&D.__useRenderToTexture!==!1}function b1(S){const D=o.render.frame;g.get(S)!==D&&(g.set(S,D),S.update())}function e1(S,D){const r1=S.colorSpace,T1=S.format,Q1=S.type;return S.isCompressedTexture===!0||S.isVideoTexture===!0||S.format===eo||r1!==I4&&r1!==h8&&(n2.getTransfer(r1)===d2?s===!1?e.has("EXT_sRGB")===!0&&T1===D9?(S.format=eo,S.minFilter=A2,S.generateMipmaps=!1):D=jd.sRGBToLinear(D):(T1!==D9||Q1!==E4)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",r1)),D}this.allocateTextureUnit=X,this.resetTextureUnits=A1,this.setTexture2D=o1,this.setTexture2DArray=f1,this.setTexture3D=U,this.setTextureCube=t1,this.rebindTextures=E1,this.setupRenderTarget=z,this.updateRenderTargetMipmap=L1,this.updateMultisampleRenderTarget=C1,this.setupDepthRenderbuffer=i1,this.setupFrameBufferTexture=F,this.useMultisampledRTT=h1}function tm(t,e,n){const C=n.isWebGL2;function r(i,o=h8){let s;const a=n2.getTransfer(o);if(i===E4)return t.UNSIGNED_BYTE;if(i===Bd)return t.UNSIGNED_SHORT_4_4_4_4;if(i===Sd)return t.UNSIGNED_SHORT_5_5_5_1;if(i===xx)return t.BYTE;if(i===mx)return t.SHORT;if(i===Io)return t.UNSIGNED_SHORT;if(i===Id)return t.INT;if(i===K4)return t.UNSIGNED_INT;if(i===Q8)return t.FLOAT;if(i===M3)return C?t.HALF_FLOAT:(s=e.get("OES_texture_half_float"),s!==null?s.HALF_FLOAT_OES:null);if(i===kx)return t.ALPHA;if(i===D9)return t.RGBA;if(i===Mx)return t.LUMINANCE;if(i===Ex)return t.LUMINANCE_ALPHA;if(i===J6)return t.DEPTH_COMPONENT;if(i===E3)return t.DEPTH_STENCIL;if(i===eo)return s=e.get("EXT_sRGB"),s!==null?s.SRGB_ALPHA_EXT:null;if(i===yx)return t.RED;if(i===_d)return t.RED_INTEGER;if(i===Ix)return t.RG;if(i===Rd)return t.RG_INTEGER;if(i===bd)return t.RGBA_INTEGER;if(i===ui||i===di||i===hi||i===fi)if(a===d2)if(s=e.get("WEBGL_compressed_texture_s3tc_srgb"),s!==null){if(i===ui)return s.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===di)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===hi)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===fi)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(s=e.get("WEBGL_compressed_texture_s3tc"),s!==null){if(i===ui)return s.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===di)return s.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===hi)return s.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===fi)return s.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===bc||i===Qc||i===Tc||i===Dc)if(s=e.get("WEBGL_compressed_texture_pvrtc"),s!==null){if(i===bc)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===Qc)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===Tc)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===Dc)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===Qd)return s=e.get("WEBGL_compressed_texture_etc1"),s!==null?s.COMPRESSED_RGB_ETC1_WEBGL:null;if(i===Nc||i===Pc)if(s=e.get("WEBGL_compressed_texture_etc"),s!==null){if(i===Nc)return a===d2?s.COMPRESSED_SRGB8_ETC2:s.COMPRESSED_RGB8_ETC2;if(i===Pc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:s.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===Hc||i===jc||i===Uc||i===Fc||i===Wc||i===Gc||i===Oc||i===zc||i===Vc||i===$c||i===Yc||i===Xc||i===Jc||i===qc)if(s=e.get("WEBGL_compressed_texture_astc"),s!==null){if(i===Hc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:s.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===jc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:s.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===Uc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:s.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===Fc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:s.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===Wc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:s.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===Gc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:s.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===Oc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:s.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===zc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:s.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===Vc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:s.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===$c)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:s.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===Yc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:s.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===Xc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:s.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===Jc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:s.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===qc)return a===d2?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:s.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===gi||i===Kc||i===Zc)if(s=e.get("EXT_texture_compression_bptc"),s!==null){if(i===gi)return a===d2?s.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:s.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(i===Kc)return s.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(i===Zc)return s.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(i===Bx||i===eu||i===tu||i===nu)if(s=e.get("EXT_texture_compression_rgtc"),s!==null){if(i===gi)return s.COMPRESSED_RED_RGTC1_EXT;if(i===eu)return s.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(i===tu)return s.COMPRESSED_RED_GREEN_RGTC2_EXT;if(i===nu)return s.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return i===X6?C?t.UNSIGNED_INT_24_8:(s=e.get("WEBGL_depth_texture"),s!==null?s.UNSIGNED_INT_24_8_WEBGL:null):t[i]!==void 0?t[i]:null}return{convert:r}}class nm extends Y2{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}let D8=class extends q0{constructor(){super(),this.isGroup=!0,this.type="Group"}};const MQ={type:"move"};class Zl{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new D8,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new D8,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new G,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new G),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new D8,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new G,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new G),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const n=this._hand;if(n)for(const C of e.hand.values())this._getHandJoint(n,C)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,n,C){let r=null,i=null,o=null;const s=this._targetRay,a=this._grip,d=this._hand;if(e&&n.session.visibilityState!=="visible-blurred"){if(d&&e.hand){o=!0;for(const y of e.hand.values()){const m=n.getJointPose(y,C),L=this._getHandJoint(d,y);m!==null&&(L.matrix.fromArray(m.transform.matrix),L.matrix.decompose(L.position,L.rotation,L.scale),L.matrixWorldNeedsUpdate=!0,L.jointRadius=m.radius),L.visible=m!==null}const g=d.joints["index-finger-tip"],p=d.joints["thumb-tip"],A=g.position.distanceTo(p.position),w=.02,x=.005;d.inputState.pinching&&A>w+x?(d.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!d.inputState.pinching&&A<=w-x&&(d.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else a!==null&&e.gripSpace&&(i=n.getPose(e.gripSpace,C),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1));s!==null&&(r=n.getPose(e.targetRaySpace,C),r===null&&i!==null&&(r=i),r!==null&&(s.matrix.fromArray(r.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.matrixWorldNeedsUpdate=!0,r.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(r.linearVelocity)):s.hasLinearVelocity=!1,r.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(r.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(MQ)))}return s!==null&&(s.visible=r!==null),a!==null&&(a.visible=i!==null),d!==null&&(d.visible=o!==null),this}_getHandJoint(e,n){if(e.joints[n.jointName]===void 0){const C=new D8;C.matrixAutoUpdate=!1,C.visible=!1,e.joints[n.jointName]=C,e.add(C)}return e.joints[n.jointName]}}const EQ=` -void main() { - - gl_Position = vec4( position, 1.0 ); - -}`,yQ=` -uniform sampler2DArray depthColor; -uniform float depthWidth; -uniform float depthHeight; - -void main() { - - vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); - - if ( coord.x >= 1.0 ) { - - gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; - - } else { - - gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; - - } - -}`;class IQ{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,n,C){if(this.texture===null){const r=new m2,i=e.properties.get(r);i.__webglTexture=n.texture,(n.depthNear!=C.depthNear||n.depthFar!=C.depthFar)&&(this.depthNear=n.depthNear,this.depthFar=n.depthFar),this.texture=r}}render(e,n){if(this.texture!==null){if(this.mesh===null){const C=n.cameras[0].viewport,r=new n4({extensions:{fragDepth:!0},vertexShader:EQ,fragmentShader:yQ,uniforms:{depthColor:{value:this.texture},depthWidth:{value:C.z},depthHeight:{value:C.w}}});this.mesh=new e2(new a5(20,20),r)}e.render(this.mesh,n)}}reset(){this.texture=null,this.mesh=null}}class BQ extends l6{constructor(e,n){super();const C=this;let r=null,i=1,o=null,s="local-floor",a=1,d=null,g=null,p=null,A=null,w=null,x=null;const y=new IQ,m=n.getContextAttributes();let L=null,E=null;const k=[],I=[],Q=new y1;let _=null;const T=new Y2;T.layers.enable(1),T.viewport=new C2;const j=new Y2;j.layers.enable(2),j.viewport=new C2;const q=[T,j],R=new nm;R.layers.enable(1),R.layers.enable(2);let N=null,K=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function($){let O=k[$];return O===void 0&&(O=new Zl,k[$]=O),O.getTargetRaySpace()},this.getControllerGrip=function($){let O=k[$];return O===void 0&&(O=new Zl,k[$]=O),O.getGripSpace()},this.getHand=function($){let O=k[$];return O===void 0&&(O=new Zl,k[$]=O),O.getHandSpace()};function A1($){const O=I.indexOf($.inputSource);if(O===-1)return;const W=k[O];W!==void 0&&(W.update($.inputSource,$.frame,d||o),W.dispatchEvent({type:$.type,data:$.inputSource}))}function X(){r.removeEventListener("select",A1),r.removeEventListener("selectstart",A1),r.removeEventListener("selectend",A1),r.removeEventListener("squeeze",A1),r.removeEventListener("squeezestart",A1),r.removeEventListener("squeezeend",A1),r.removeEventListener("end",X),r.removeEventListener("inputsourceschange",c1);for(let $=0;$=0&&(I[F]=null,k[F].disconnect(W))}for(let O=0;O<$.added.length;O++){const W=$.added[O];let F=I.indexOf(W);if(F===-1){for(let k1=0;k1=I.length){I.push(W),F=k1;break}else if(I[k1]===null){I[k1]=W,F=k1;break}if(F===-1)break}const v1=k[F];v1&&v1.connect(W)}}const o1=new G,f1=new G;function U($,O,W){o1.setFromMatrixPosition(O.matrixWorld),f1.setFromMatrixPosition(W.matrixWorld);const F=o1.distanceTo(f1),v1=O.projectionMatrix.elements,k1=W.projectionMatrix.elements,i1=v1[14]/(v1[10]-1),E1=v1[14]/(v1[10]+1),z=(v1[9]+1)/v1[5],L1=(v1[9]-1)/v1[5],C1=(v1[8]-1)/v1[0],l1=(k1[8]+1)/k1[0],h1=i1*C1,b1=i1*l1,e1=F/(-C1+l1),S=e1*-C1;O.matrixWorld.decompose($.position,$.quaternion,$.scale),$.translateX(S),$.translateZ(e1),$.matrixWorld.compose($.position,$.quaternion,$.scale),$.matrixWorldInverse.copy($.matrixWorld).invert();const D=i1+e1,r1=E1+e1,T1=h1-S,Q1=b1+(F-S),_1=z*E1/r1*D,Y1=L1*E1/r1*D;$.projectionMatrix.makePerspective(T1,Q1,_1,Y1,D,r1),$.projectionMatrixInverse.copy($.projectionMatrix).invert()}function t1($,O){O===null?$.matrixWorld.copy($.matrix):$.matrixWorld.multiplyMatrices(O.matrixWorld,$.matrix),$.matrixWorldInverse.copy($.matrixWorld).invert()}this.updateCamera=function($){if(r===null)return;y.texture!==null&&($.near=y.depthNear,$.far=y.depthFar),R.near=j.near=T.near=$.near,R.far=j.far=T.far=$.far,(N!==R.near||K!==R.far)&&(r.updateRenderState({depthNear:R.near,depthFar:R.far}),N=R.near,K=R.far,T.near=N,T.far=K,j.near=N,j.far=K,T.updateProjectionMatrix(),j.updateProjectionMatrix(),$.updateProjectionMatrix());const O=$.parent,W=R.cameras;t1(R,O);for(let F=0;F0&&(m.alphaTest.value=L.alphaTest);const E=e.get(L).envMap;if(E&&(m.envMap.value=E,m.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=L.reflectivity,m.ior.value=L.ior,m.refractionRatio.value=L.refractionRatio),L.lightMap){m.lightMap.value=L.lightMap;const k=t._useLegacyLights===!0?Math.PI:1;m.lightMapIntensity.value=L.lightMapIntensity*k,n(L.lightMap,m.lightMapTransform)}L.aoMap&&(m.aoMap.value=L.aoMap,m.aoMapIntensity.value=L.aoMapIntensity,n(L.aoMap,m.aoMapTransform))}function o(m,L){m.diffuse.value.copy(L.color),m.opacity.value=L.opacity,L.map&&(m.map.value=L.map,n(L.map,m.mapTransform))}function s(m,L){m.dashSize.value=L.dashSize,m.totalSize.value=L.dashSize+L.gapSize,m.scale.value=L.scale}function a(m,L,E,k){m.diffuse.value.copy(L.color),m.opacity.value=L.opacity,m.size.value=L.size*E,m.scale.value=k*.5,L.map&&(m.map.value=L.map,n(L.map,m.uvTransform)),L.alphaMap&&(m.alphaMap.value=L.alphaMap,n(L.alphaMap,m.alphaMapTransform)),L.alphaTest>0&&(m.alphaTest.value=L.alphaTest)}function d(m,L){m.diffuse.value.copy(L.color),m.opacity.value=L.opacity,m.rotation.value=L.rotation,L.map&&(m.map.value=L.map,n(L.map,m.mapTransform)),L.alphaMap&&(m.alphaMap.value=L.alphaMap,n(L.alphaMap,m.alphaMapTransform)),L.alphaTest>0&&(m.alphaTest.value=L.alphaTest)}function g(m,L){m.specular.value.copy(L.specular),m.shininess.value=Math.max(L.shininess,1e-4)}function p(m,L){L.gradientMap&&(m.gradientMap.value=L.gradientMap)}function A(m,L){m.metalness.value=L.metalness,L.metalnessMap&&(m.metalnessMap.value=L.metalnessMap,n(L.metalnessMap,m.metalnessMapTransform)),m.roughness.value=L.roughness,L.roughnessMap&&(m.roughnessMap.value=L.roughnessMap,n(L.roughnessMap,m.roughnessMapTransform)),e.get(L).envMap&&(m.envMapIntensity.value=L.envMapIntensity)}function w(m,L,E){m.ior.value=L.ior,L.sheen>0&&(m.sheenColor.value.copy(L.sheenColor).multiplyScalar(L.sheen),m.sheenRoughness.value=L.sheenRoughness,L.sheenColorMap&&(m.sheenColorMap.value=L.sheenColorMap,n(L.sheenColorMap,m.sheenColorMapTransform)),L.sheenRoughnessMap&&(m.sheenRoughnessMap.value=L.sheenRoughnessMap,n(L.sheenRoughnessMap,m.sheenRoughnessMapTransform))),L.clearcoat>0&&(m.clearcoat.value=L.clearcoat,m.clearcoatRoughness.value=L.clearcoatRoughness,L.clearcoatMap&&(m.clearcoatMap.value=L.clearcoatMap,n(L.clearcoatMap,m.clearcoatMapTransform)),L.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=L.clearcoatRoughnessMap,n(L.clearcoatRoughnessMap,m.clearcoatRoughnessMapTransform)),L.clearcoatNormalMap&&(m.clearcoatNormalMap.value=L.clearcoatNormalMap,n(L.clearcoatNormalMap,m.clearcoatNormalMapTransform),m.clearcoatNormalScale.value.copy(L.clearcoatNormalScale),L.side===H9&&m.clearcoatNormalScale.value.negate())),L.iridescence>0&&(m.iridescence.value=L.iridescence,m.iridescenceIOR.value=L.iridescenceIOR,m.iridescenceThicknessMinimum.value=L.iridescenceThicknessRange[0],m.iridescenceThicknessMaximum.value=L.iridescenceThicknessRange[1],L.iridescenceMap&&(m.iridescenceMap.value=L.iridescenceMap,n(L.iridescenceMap,m.iridescenceMapTransform)),L.iridescenceThicknessMap&&(m.iridescenceThicknessMap.value=L.iridescenceThicknessMap,n(L.iridescenceThicknessMap,m.iridescenceThicknessMapTransform))),L.transmission>0&&(m.transmission.value=L.transmission,m.transmissionSamplerMap.value=E.texture,m.transmissionSamplerSize.value.set(E.width,E.height),L.transmissionMap&&(m.transmissionMap.value=L.transmissionMap,n(L.transmissionMap,m.transmissionMapTransform)),m.thickness.value=L.thickness,L.thicknessMap&&(m.thicknessMap.value=L.thicknessMap,n(L.thicknessMap,m.thicknessMapTransform)),m.attenuationDistance.value=L.attenuationDistance,m.attenuationColor.value.copy(L.attenuationColor)),L.anisotropy>0&&(m.anisotropyVector.value.set(L.anisotropy*Math.cos(L.anisotropyRotation),L.anisotropy*Math.sin(L.anisotropyRotation)),L.anisotropyMap&&(m.anisotropyMap.value=L.anisotropyMap,n(L.anisotropyMap,m.anisotropyMapTransform))),m.specularIntensity.value=L.specularIntensity,m.specularColor.value.copy(L.specularColor),L.specularColorMap&&(m.specularColorMap.value=L.specularColorMap,n(L.specularColorMap,m.specularColorMapTransform)),L.specularIntensityMap&&(m.specularIntensityMap.value=L.specularIntensityMap,n(L.specularIntensityMap,m.specularIntensityMapTransform))}function x(m,L){L.matcap&&(m.matcap.value=L.matcap)}function y(m,L){const E=e.get(L).light;m.referencePosition.value.setFromMatrixPosition(E.matrixWorld),m.nearDistance.value=E.shadow.camera.near,m.farDistance.value=E.shadow.camera.far}return{refreshFogUniforms:C,refreshMaterialUniforms:r}}function _Q(t,e,n,C){let r={},i={},o=[];const s=n.isWebGL2?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0;function a(E,k){const I=k.program;C.uniformBlockBinding(E,I)}function d(E,k){let I=r[E.id];I===void 0&&(x(E),I=g(E),r[E.id]=I,E.addEventListener("dispose",m));const Q=k.program;C.updateUBOMapping(E,Q);const _=e.render.frame;i[E.id]!==_&&(A(E),i[E.id]=_)}function g(E){const k=p();E.__bindingPointIndex=k;const I=t.createBuffer(),Q=E.__size,_=E.usage;return t.bindBuffer(t.UNIFORM_BUFFER,I),t.bufferData(t.UNIFORM_BUFFER,Q,_),t.bindBuffer(t.UNIFORM_BUFFER,null),t.bindBufferBase(t.UNIFORM_BUFFER,k,I),I}function p(){for(let E=0;E0&&(I+=Q-_),E.__size=I,E.__cache={},this}function y(E){const k={boundary:0,storage:0};return typeof E=="number"||typeof E=="boolean"?(k.boundary=4,k.storage=4):E.isVector2?(k.boundary=8,k.storage=8):E.isVector3||E.isColor?(k.boundary=16,k.storage=12):E.isVector4?(k.boundary=16,k.storage=16):E.isMatrix3?(k.boundary=48,k.storage=48):E.isMatrix4?(k.boundary=64,k.storage=64):E.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",E),k}function m(E){const k=E.target;k.removeEventListener("dispose",m);const I=o.indexOf(k.__bindingPointIndex);o.splice(I,1),t.deleteBuffer(r[k.id]),delete r[k.id],delete i[k.id]}function L(){for(const E in r)t.deleteBuffer(r[E]);o=[],r={},i={}}return{bind:a,update:d,dispose:L}}class zd{constructor(e={}){const{canvas:n=Wx(),context:C=null,depth:r=!0,stencil:i=!0,alpha:o=!1,antialias:s=!1,premultipliedAlpha:a=!0,preserveDrawingBuffer:d=!1,powerPreference:g="default",failIfMajorPerformanceCaveat:p=!1}=e;this.isWebGLRenderer=!0;let A;C!==null?A=C.getContextAttributes().alpha:A=o;const w=new Uint32Array(4),x=new Int32Array(4);let y=null,m=null;const L=[],E=[];this.domElement=n,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=P2,this._useLegacyLights=!1,this.toneMapping=M4,this.toneMappingExposure=1;const k=this;let I=!1,Q=0,_=0,T=null,j=-1,q=null;const R=new C2,N=new C2;let K=null;const A1=new J1(0);let X=0,c1=n.width,o1=n.height,f1=1,U=null,t1=null;const n1=new C2(0,0,c1,o1),u1=new C2(0,0,c1,o1);let x1=!1;const U1=new _n;let $=!1,O=!1,W=null;const F=new f0,v1=new y1,k1=new G,i1={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function E1(){return T===null?f1:1}let z=C;function L1(V,g1){for(let M1=0;M1{function Z1(){if(I1.forEach(function(a0){e1.get(a0).currentProgram.isReady()&&I1.delete(a0)}),I1.size===0){m1(V);return}setTimeout(Z1,10)}C1.get("KHR_parallel_shader_compile")!==null?Z1():setTimeout(Z1,10)})};let O0=null;function B2(V){O0&&O0(V)}function l9(){s2.stop()}function K0(){s2.start()}const s2=new Xx;s2.setAnimationLoop(B2),typeof self<"u"&&s2.setContext(self),this.setAnimationLoop=function(V){O0=V,y0.setAnimationLoop(V),V===null?s2.stop():s2.start()},y0.addEventListener("sessionstart",l9),y0.addEventListener("sessionend",K0),this.render=function(V,g1){if(g1!==void 0&&g1.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(I===!0)return;V.matrixWorldAutoUpdate===!0&&V.updateMatrixWorld(),g1.parent===null&&g1.matrixWorldAutoUpdate===!0&&g1.updateMatrixWorld(),y0.enabled===!0&&y0.isPresenting===!0&&(y0.cameraAutoUpdate===!0&&y0.updateCamera(g1),g1=y0.getCamera()),V.isScene===!0&&V.onBeforeRender(k,V,g1,T),m=l0.get(V,E.length),m.init(),E.push(m),F.multiplyMatrices(g1.projectionMatrix,g1.matrixWorldInverse),U1.setFromProjectionMatrix(F),O=this.localClippingEnabled,$=w0.init(this.clippingPlanes,O),y=q1.get(V,L.length),y.init(),L.push(y),z9(V,g1,0,k.sortObjects),y.finish(),k.sortObjects===!0&&y.sort(U,t1),this.info.render.frame++,$===!0&&w0.beginShadows();const M1=m.state.shadowsArray;if(N1.render(M1,V,g1),$===!0&&w0.endShadows(),this.info.autoReset===!0&&this.info.reset(),(y0.enabled===!1||y0.isPresenting===!1||y0.hasDepthSensing()===!1)&&Q0.render(y,V),m.setupLights(k._useLegacyLights),g1.isArrayCamera){const I1=g1.cameras;for(let m1=0,Z1=I1.length;m10?m=E[E.length-1]:m=null,L.pop(),L.length>0?y=L[L.length-1]:y=null};function z9(V,g1,M1,I1){if(V.visible===!1)return;if(V.layers.test(g1.layers)){if(V.isGroup)M1=V.renderOrder;else if(V.isLOD)V.autoUpdate===!0&&V.update(g1);else if(V.isLight)m.pushLight(V),V.castShadow&&m.pushShadow(V);else if(V.isSprite){if(!V.frustumCulled||U1.intersectsSprite(V)){I1&&k1.setFromMatrixPosition(V.matrixWorld).applyMatrix4(F);const a0=_1.update(V),A0=V.material;A0.visible&&y.push(V,a0,A0,M1,k1.z,null)}}else if((V.isMesh||V.isLine||V.isPoints)&&(!V.frustumCulled||U1.intersectsObject(V))){const a0=_1.update(V),A0=V.material;if(I1&&(V.boundingSphere!==void 0?(V.boundingSphere===null&&V.computeBoundingSphere(),k1.copy(V.boundingSphere.center)):(a0.boundingSphere===null&&a0.computeBoundingSphere(),k1.copy(a0.boundingSphere.center)),k1.applyMatrix4(V.matrixWorld).applyMatrix4(F)),Array.isArray(A0)){const p0=a0.groups;for(let I0=0,k0=p0.length;I00&&a9(m1,Z1,g1,M1),I1&&h1.viewport(R.copy(I1)),m1.length>0&&R4(m1,g1,M1),Z1.length>0&&R4(Z1,g1,M1),a0.length>0&&R4(a0,g1,M1),h1.buffers.depth.setTest(!0),h1.buffers.depth.setMask(!0),h1.buffers.color.setMask(!0),h1.setPolygonOffset(!1)}function a9(V,g1,M1,I1){if((M1.isScene===!0?M1.overrideMaterial:null)!==null)return;const Z1=l1.isWebGL2;W===null&&(W=new U8(1,1,{generateMipmaps:!0,type:C1.has("EXT_color_buffer_half_float")?M3:E4,minFilter:w4,samples:Z1?4:0})),k.getDrawingBufferSize(v1),Z1?W.setSize(v1.x,v1.y):W.setSize(to(v1.x),to(v1.y));const a0=k.getRenderTarget();k.setRenderTarget(W),k.getClearColor(A1),X=k.getClearAlpha(),X<1&&k.setClearColor(16777215,.5),k.clear();const A0=k.toneMapping;k.toneMapping=M4,R4(V,M1,I1),S.updateMultisampleRenderTarget(W),S.updateRenderTargetMipmap(W);let p0=!1;for(let I0=0,k0=g1.length;I00),M0=!!M1.morphAttributes.position,f2=!!M1.morphAttributes.normal,U2=!!M1.morphAttributes.color;let Z0=M4;I1.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&(Z0=k.toneMapping);const F2=M1.morphAttributes.position||M1.morphAttributes.normal||M1.morphAttributes.color,L0=F2!==void 0?F2.length:0,t0=e1.get(I1),f9=m.state.lights;if($===!0&&(O===!0||V!==q)){const B1=V===q&&I1.id===j;w0.setState(I1,V,B1)}let x0=!1;I1.version===t0.__version?(t0.needsLights&&t0.lightsStateVersion!==f9.state.version||t0.outputColorSpace!==A0||m1.isBatchedMesh&&t0.batching===!1||!m1.isBatchedMesh&&t0.batching===!0||m1.isInstancedMesh&&t0.instancing===!1||!m1.isInstancedMesh&&t0.instancing===!0||m1.isSkinnedMesh&&t0.skinning===!1||!m1.isSkinnedMesh&&t0.skinning===!0||m1.isInstancedMesh&&t0.instancingColor===!0&&m1.instanceColor===null||m1.isInstancedMesh&&t0.instancingColor===!1&&m1.instanceColor!==null||t0.envMap!==p0||I1.fog===!0&&t0.fog!==Z1||t0.numClippingPlanes!==void 0&&(t0.numClippingPlanes!==w0.numPlanes||t0.numIntersection!==w0.numIntersection)||t0.vertexAlphas!==I0||t0.vertexTangents!==k0||t0.morphTargets!==M0||t0.morphNormals!==f2||t0.morphColors!==U2||t0.toneMapping!==Z0||l1.isWebGL2===!0&&t0.morphTargetsCount!==L0)&&(x0=!0):(x0=!0,t0.__version=I1.version);let l2=t0.currentProgram;x0===!0&&(l2=o4(I1,g1,m1));let C8=!1,P=!1,H=!1;const Z=l2.getUniforms(),s1=t0.uniforms;if(h1.useProgram(l2.program)&&(C8=!0,P=!0,H=!0),I1.id!==j&&(j=I1.id,P=!0),C8||q!==V){Z.setValue(z,"projectionMatrix",V.projectionMatrix),Z.setValue(z,"viewMatrix",V.matrixWorldInverse);const B1=Z.map.cameraPosition;B1!==void 0&&B1.setValue(z,k1.setFromMatrixPosition(V.matrixWorld)),l1.logarithmicDepthBuffer&&Z.setValue(z,"logDepthBufFC",2/(Math.log(V.far+1)/Math.LN2)),(I1.isMeshPhongMaterial||I1.isMeshToonMaterial||I1.isMeshLambertMaterial||I1.isMeshBasicMaterial||I1.isMeshStandardMaterial||I1.isShaderMaterial)&&Z.setValue(z,"isOrthographic",V.isOrthographicCamera===!0),q!==V&&(q=V,P=!0,H=!0)}if(m1.isSkinnedMesh){Z.setOptional(z,m1,"bindMatrix"),Z.setOptional(z,m1,"bindMatrixInverse");const B1=m1.skeleton;B1&&(l1.floatVertexTextures?(B1.boneTexture===null&&B1.computeBoneTexture(),Z.setValue(z,"boneTexture",B1.boneTexture,S)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}m1.isBatchedMesh&&(Z.setOptional(z,m1,"batchingTexture"),Z.setValue(z,"batchingTexture",m1._matricesTexture,S));const p1=M1.morphAttributes;if((p1.position!==void 0||p1.normal!==void 0||p1.color!==void 0&&l1.isWebGL2===!0)&&E0.update(m1,M1,l2),(P||t0.receiveShadow!==m1.receiveShadow)&&(t0.receiveShadow=m1.receiveShadow,Z.setValue(z,"receiveShadow",m1.receiveShadow)),I1.isMeshGouraudMaterial&&I1.envMap!==null&&(s1.envMap.value=p0,s1.flipEnvMap.value=p0.isCubeTexture&&p0.isRenderTargetTexture===!1?-1:1),P&&(Z.setValue(z,"toneMappingExposure",k.toneMappingExposure),t0.needsLights&&ke(s1,H),Z1&&I1.fog===!0&&O1.refreshFogUniforms(s1,Z1),O1.refreshMaterialUniforms(s1,I1,f1,o1,W),Ai.upload(z,c6(t0),s1,S)),I1.isShaderMaterial&&I1.uniformsNeedUpdate===!0&&(Ai.upload(z,c6(t0),s1,S),I1.uniformsNeedUpdate=!1),I1.isSpriteMaterial&&Z.setValue(z,"center",m1.center),Z.setValue(z,"modelViewMatrix",m1.modelViewMatrix),Z.setValue(z,"normalMatrix",m1.normalMatrix),Z.setValue(z,"modelMatrix",m1.matrixWorld),I1.isShaderMaterial||I1.isRawShaderMaterial){const B1=I1.uniformsGroups;for(let P1=0,D1=B1.length;P10&&S.useMultisampledRTT(V)===!1?m1=e1.get(V).__webglMultisampledFramebuffer:Array.isArray(k0)?m1=k0[M1]:m1=k0,R.copy(V.viewport),N.copy(V.scissor),K=V.scissorTest}else R.copy(n1).multiplyScalar(f1).floor(),N.copy(u1).multiplyScalar(f1).floor(),K=x1;if(h1.bindFramebuffer(z.FRAMEBUFFER,m1)&&l1.drawBuffers&&I1&&h1.drawBuffers(V,m1),h1.viewport(R),h1.scissor(N),h1.setScissorTest(K),Z1){const p0=e1.get(V.texture);z.framebufferTexture2D(z.FRAMEBUFFER,z.COLOR_ATTACHMENT0,z.TEXTURE_CUBE_MAP_POSITIVE_X+g1,p0.__webglTexture,M1)}else if(a0){const p0=e1.get(V.texture),I0=g1||0;z.framebufferTextureLayer(z.FRAMEBUFFER,z.COLOR_ATTACHMENT0,p0.__webglTexture,M1||0,I0)}j=-1},this.readRenderTargetPixels=function(V,g1,M1,I1,m1,Z1,a0){if(!(V&&V.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let A0=e1.get(V).__webglFramebuffer;if(V.isWebGLCubeRenderTarget&&a0!==void 0&&(A0=A0[a0]),A0){h1.bindFramebuffer(z.FRAMEBUFFER,A0);try{const p0=V.texture,I0=p0.format,k0=p0.type;if(I0!==D9&&n0.convert(I0)!==z.getParameter(z.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const M0=k0===M3&&(C1.has("EXT_color_buffer_half_float")||l1.isWebGL2&&C1.has("EXT_color_buffer_float"));if(k0!==E4&&n0.convert(k0)!==z.getParameter(z.IMPLEMENTATION_COLOR_READ_TYPE)&&!(k0===Q8&&(l1.isWebGL2||C1.has("OES_texture_float")||C1.has("WEBGL_color_buffer_float")))&&!M0){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}g1>=0&&g1<=V.width-I1&&M1>=0&&M1<=V.height-m1&&z.readPixels(g1,M1,I1,m1,n0.convert(I0),n0.convert(k0),Z1)}finally{const p0=T!==null?e1.get(T).__webglFramebuffer:null;h1.bindFramebuffer(z.FRAMEBUFFER,p0)}}},this.copyFramebufferToTexture=function(V,g1,M1=0){const I1=Math.pow(2,-M1),m1=Math.floor(g1.image.width*I1),Z1=Math.floor(g1.image.height*I1);S.setTexture2D(g1,0),z.copyTexSubImage2D(z.TEXTURE_2D,M1,0,0,V.x,V.y,m1,Z1),h1.unbindTexture()},this.copyTextureToTexture=function(V,g1,M1,I1=0){const m1=g1.image.width,Z1=g1.image.height,a0=n0.convert(M1.format),A0=n0.convert(M1.type);S.setTexture2D(M1,0),z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,M1.flipY),z.pixelStorei(z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,M1.premultiplyAlpha),z.pixelStorei(z.UNPACK_ALIGNMENT,M1.unpackAlignment),g1.isDataTexture?z.texSubImage2D(z.TEXTURE_2D,I1,V.x,V.y,m1,Z1,a0,A0,g1.image.data):g1.isCompressedTexture?z.compressedTexSubImage2D(z.TEXTURE_2D,I1,V.x,V.y,g1.mipmaps[0].width,g1.mipmaps[0].height,a0,g1.mipmaps[0].data):z.texSubImage2D(z.TEXTURE_2D,I1,V.x,V.y,a0,A0,g1.image),I1===0&&M1.generateMipmaps&&z.generateMipmap(z.TEXTURE_2D),h1.unbindTexture()},this.copyTextureToTexture3D=function(V,g1,M1,I1,m1=0){if(k.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Z1=V.max.x-V.min.x+1,a0=V.max.y-V.min.y+1,A0=V.max.z-V.min.z+1,p0=n0.convert(I1.format),I0=n0.convert(I1.type);let k0;if(I1.isData3DTexture)S.setTexture3D(I1,0),k0=z.TEXTURE_3D;else if(I1.isDataArrayTexture||I1.isCompressedArrayTexture)S.setTexture2DArray(I1,0),k0=z.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,I1.flipY),z.pixelStorei(z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,I1.premultiplyAlpha),z.pixelStorei(z.UNPACK_ALIGNMENT,I1.unpackAlignment);const M0=z.getParameter(z.UNPACK_ROW_LENGTH),f2=z.getParameter(z.UNPACK_IMAGE_HEIGHT),U2=z.getParameter(z.UNPACK_SKIP_PIXELS),Z0=z.getParameter(z.UNPACK_SKIP_ROWS),F2=z.getParameter(z.UNPACK_SKIP_IMAGES),L0=M1.isCompressedTexture?M1.mipmaps[m1]:M1.image;z.pixelStorei(z.UNPACK_ROW_LENGTH,L0.width),z.pixelStorei(z.UNPACK_IMAGE_HEIGHT,L0.height),z.pixelStorei(z.UNPACK_SKIP_PIXELS,V.min.x),z.pixelStorei(z.UNPACK_SKIP_ROWS,V.min.y),z.pixelStorei(z.UNPACK_SKIP_IMAGES,V.min.z),M1.isDataTexture||M1.isData3DTexture?z.texSubImage3D(k0,m1,g1.x,g1.y,g1.z,Z1,a0,A0,p0,I0,L0.data):M1.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),z.compressedTexSubImage3D(k0,m1,g1.x,g1.y,g1.z,Z1,a0,A0,p0,L0.data)):z.texSubImage3D(k0,m1,g1.x,g1.y,g1.z,Z1,a0,A0,p0,I0,L0),z.pixelStorei(z.UNPACK_ROW_LENGTH,M0),z.pixelStorei(z.UNPACK_IMAGE_HEIGHT,f2),z.pixelStorei(z.UNPACK_SKIP_PIXELS,U2),z.pixelStorei(z.UNPACK_SKIP_ROWS,Z0),z.pixelStorei(z.UNPACK_SKIP_IMAGES,F2),m1===0&&I1.generateMipmaps&&z.generateMipmap(k0),h1.unbindTexture()},this.initTexture=function(V){V.isCubeTexture?S.setTextureCube(V,0):V.isData3DTexture?S.setTexture3D(V,0):V.isDataArrayTexture||V.isCompressedArrayTexture?S.setTexture2DArray(V,0):S.setTexture2D(V,0),h1.unbindTexture()},this.resetState=function(){Q=0,_=0,T=null,h1.reset(),m0.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return x4}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const n=this.getContext();n.drawingBufferColorSpace=e===So?"display-p3":"srgb",n.unpackColorSpace=n2.workingColorSpace===In?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===P2?q6:Dd}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===q6?P2:I4}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class Cm extends zd{}Cm.prototype.isWebGL1Renderer=!0;class To{constructor(e,n=25e-5){this.isFogExp2=!0,this.name="",this.color=new J1(e),this.density=n}clone(){return new To(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Do{constructor(e,n=1,C=1e3){this.isFog=!0,this.name="",this.color=new J1(e),this.near=n,this.far=C}clone(){return new Do(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class dn extends q0{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,n){return super.copy(e,n),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const n=super.toJSON(e);return this.fog!==null&&(n.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(n.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(n.object.backgroundIntensity=this.backgroundIntensity),n}}class No{constructor(e,n){this.isInterleavedBuffer=!0,this.array=e,this.stride=n,this.count=e!==void 0?e.length/n:0,this.usage=an,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=A8()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return p3("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,n,C){e*=this.stride,C*=n.stride;for(let r=0,i=this.stride;re.far||n.push({distance:a,point:et.clone(),uv:c3.getInterpolation(et,Lr,nt,wr,Kp,ea,Zp,new y1),face:null,object:this})}copy(e,n){return super.copy(e,n),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function xr(t,e,n,C,r,i){L7.subVectors(t,n).addScalar(.5).multiply(C),r!==void 0?(tt.x=i*L7.x-r*L7.y,tt.y=r*L7.x+i*L7.y):tt.copy(L7),t.copy(e),t.x+=tt.x,t.y+=tt.y,t.applyMatrix4(rm)}const mr=new G,eA=new G;class om extends q0{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const n=e.levels;for(let C=0,r=n.length;C0){let C,r;for(C=1,r=n.length;C0){mr.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(mr);this.getObjectForDistance(r).raycast(e,n)}}update(e){const n=this.levels;if(n.length>1){mr.setFromMatrixPosition(e.matrixWorld),eA.setFromMatrixPosition(this.matrixWorld);const C=mr.distanceTo(eA)/e.zoom;n[0].object.visible=!0;let r,i;for(r=1,i=n.length;r=o)n[r-1].object.visible=!1,n[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=C.length&&C.push({start:-1,count:-1,z:-1});const i=C[this.index];r.push(i),this.index++,i.start=e.start,i.count=e.count,i.z=n}reset(){this.list.length=0,this.index=0}}const x7="batchId",B6=new f0,aA=new f0,PQ=new f0,cA=new f0,Ca=new _n,Er=new J2,W5=new i9,it=new G,ra=new NQ,k9=new e2,yr=[];function HQ(t,e,n=0){const C=e.itemSize;if(t.isInterleavedBufferAttribute||t.array.constructor!==e.array.constructor){const r=t.count;for(let i=0;i65536?new Uint32Array(i):new Uint16Array(i);n.setIndex(new t2(s,1))}const o=r>65536?new Uint32Array(C):new Uint16Array(C);n.setAttribute(x7,new t2(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(x7))throw new Error(`BatchedMesh: Geometry cannot use attribute "${x7}"`);const n=this.geometry;if(!!e.getIndex()!=!!n.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const C in n.attributes){if(C===x7)continue;if(!e.hasAttribute(C))throw new Error(`BatchedMesh: Added geometry missing "${C}". All geometries must have consistent attributes.`);const r=e.getAttribute(C),i=n.getAttribute(C);if(r.itemSize!==i.itemSize||r.normalized!==i.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new J2);const e=this._geometryCount,n=this.boundingBox,C=this._active;n.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let i=null;const o=this._reservedRanges,s=this._drawRanges,a=this._bounds;this._geometryCount!==0&&(i=o[o.length-1]),n===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=n,i===null?r.vertexStart=0:r.vertexStart=i.vertexStart+i.vertexCount;const d=e.getIndex(),g=d!==null;if(g&&(C===-1?r.indexCount=d.count:r.indexCount=C,i===null?r.indexStart=0:r.indexStart=i.indexStart+i.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const p=this._visibility,A=this._active,w=this._matricesTexture,x=this._matricesTexture.image.data;p.push(!0),A.push(!0);const y=this._geometryCount;this._geometryCount++,PQ.toArray(x,y*16),w.needsUpdate=!0,o.push(r),s.push({start:g?r.indexStart:r.vertexStart,count:-1}),a.push({boxInitialized:!1,box:new J2,sphereInitialized:!1,sphere:new i9});const m=this.geometry.getAttribute(x7);for(let L=0;L=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(n);const C=this.geometry,r=C.getIndex()!==null,i=C.getIndex(),o=n.getIndex(),s=this._reservedRanges[e];if(r&&o.count>s.indexCount||n.attributes.position.count>s.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const a=s.vertexStart,d=s.vertexCount;for(const w in C.attributes){if(w===x7)continue;const x=n.getAttribute(w),y=C.getAttribute(w);HQ(x,y,a);const m=x.itemSize;for(let L=x.count,E=d;L=n.length||n[e]===!1?this:(n[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,n){if(this._active[e]===!1)return null;const r=this._bounds[e],i=r.box,o=this.geometry;if(r.boxInitialized===!1){i.makeEmpty();const s=o.index,a=o.attributes.position,d=this._drawRanges[e];for(let g=d.start,p=d.start+d.count;g=o||C[e]===!1?this:(n.toArray(i,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,n){const C=this._active,r=this._matricesTexture.image.data,i=this._geometryCount;return e>=i||C[e]===!1?null:n.fromArray(r,e*16)}setVisibleAt(e,n){const C=this._visibility,r=this._active,i=this._geometryCount;return e>=i||r[e]===!1||C[e]===n?this:(C[e]=n,this._visibilityChanged=!0,this)}getVisibleAt(e){const n=this._visibility,C=this._active,r=this._geometryCount;return e>=r||C[e]===!1?!1:n[e]}raycast(e,n){const C=this._visibility,r=this._active,i=this._drawRanges,o=this._geometryCount,s=this.matrixWorld,a=this.geometry;k9.material=this.material,k9.geometry.index=a.index,k9.geometry.attributes=a.attributes,k9.geometry.boundingBox===null&&(k9.geometry.boundingBox=new J2),k9.geometry.boundingSphere===null&&(k9.geometry.boundingSphere=new i9);for(let d=0;d({...n})),this._reservedRanges=e._reservedRanges.map(n=>({...n})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(n=>({boxInitialized:n.boxInitialized,box:n.box.clone(),sphereInitialized:n.sphereInitialized,sphere:n.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,n,C,r,i){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),s=o===null?1:o.array.BYTES_PER_ELEMENT,a=this._active,d=this._visibility,g=this._multiDrawStarts,p=this._multiDrawCounts,A=this._drawRanges,w=this.perObjectFrustumCulled;w&&(cA.multiplyMatrices(C.projectionMatrix,C.matrixWorldInverse).multiply(this.matrixWorld),Ca.setFromProjectionMatrix(cA,e.coordinateSystem));let x=0;if(this.sortObjects){aA.copy(this.matrixWorld).invert(),it.setFromMatrixPosition(C.matrixWorld).applyMatrix4(aA);for(let L=0,E=d.length;La)continue;A.applyMatrix4(this.matrixWorld);const j=e.ray.origin.distanceTo(A);je.far||n.push({distance:j,point:p.clone().applyMatrix4(this.matrixWorld),index:k,face:null,faceIndex:null,object:this})}}else{const L=Math.max(0,o.start),E=Math.min(m.count,o.start+o.count);for(let k=L,I=E-1;ka)continue;A.applyMatrix4(this.matrixWorld);const _=e.ray.origin.distanceTo(A);_e.far||n.push({distance:_,point:p.clone().applyMatrix4(this.matrixWorld),index:k,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const n=this.geometry.morphAttributes,C=Object.keys(n);if(C.length>0){const r=n[C[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,o=r.length;i0){const r=n[C[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,o=r.length;ir.far)return;i.push({distance:d,distanceToRay:Math.sqrt(s),point:a,index:e,face:null,object:o})}}class jQ extends m2{constructor(e,n,C,r,i,o,s,a,d){super(e,n,C,r,i,o,s,a,d),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:A2,this.magFilter=i!==void 0?i:A2,this.generateMipmaps=!1;const g=this;function p(){g.needsUpdate=!0,e.requestVideoFrameCallback(p)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(p)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class UQ extends m2{constructor(e,n){super({width:e,height:n}),this.isFramebufferTexture=!0,this.magFilter=N2,this.minFilter=N2,this.generateMipmaps=!1,this.needsUpdate=!0}}class Ho extends m2{constructor(e,n,C,r,i,o,s,a,d,g,p,A){super(null,o,s,a,d,g,r,i,p,A),this.isCompressedTexture=!0,this.image={width:n,height:C},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class FQ extends Ho{constructor(e,n,C,r,i,o){super(e,n,C,i,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=E9}}class WQ extends Ho{constructor(e,n,C){super(void 0,e[0].width,e[0].height,n,C,o6),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class GQ extends m2{constructor(e,n,C,r,i,o,s,a,d){super(e,n,C,r,i,o,s,a,d),this.isCanvasTexture=!0,this.needsUpdate=!0}}class r4{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,n){const C=this.getUtoTmapping(e);return this.getPoint(C,n)}getPoints(e=5){const n=[];for(let C=0;C<=e;C++)n.push(this.getPoint(C/e));return n}getSpacedPoints(e=5){const n=[];for(let C=0;C<=e;C++)n.push(this.getPointAt(C/e));return n}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const n=[];let C,r=this.getPoint(0),i=0;n.push(0);for(let o=1;o<=e;o++)C=this.getPoint(o/e),i+=C.distanceTo(r),n.push(i),r=C;return this.cacheArcLengths=n,n}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,n){const C=this.getLengths();let r=0;const i=C.length;let o;n?o=n:o=e*C[i-1];let s=0,a=i-1,d;for(;s<=a;)if(r=Math.floor(s+(a-s)/2),d=C[r]-o,d<0)s=r+1;else if(d>0)a=r-1;else{a=r;break}if(r=a,C[r]===o)return r/(i-1);const g=C[r],A=C[r+1]-g,w=(o-g)/A;return(r+w)/(i-1)}getTangent(e,n){let r=e-1e-4,i=e+1e-4;r<0&&(r=0),i>1&&(i=1);const o=this.getPoint(r),s=this.getPoint(i),a=n||(o.isVector2?new y1:new G);return a.copy(s).sub(o).normalize(),a}getTangentAt(e,n){const C=this.getUtoTmapping(e);return this.getTangent(C,n)}computeFrenetFrames(e,n){const C=new G,r=[],i=[],o=[],s=new G,a=new f0;for(let w=0;w<=e;w++){const x=w/e;r[w]=this.getTangentAt(x,new G)}i[0]=new G,o[0]=new G;let d=Number.MAX_VALUE;const g=Math.abs(r[0].x),p=Math.abs(r[0].y),A=Math.abs(r[0].z);g<=d&&(d=g,C.set(1,0,0)),p<=d&&(d=p,C.set(0,1,0)),A<=d&&C.set(0,0,1),s.crossVectors(r[0],C).normalize(),i[0].crossVectors(r[0],s),o[0].crossVectors(r[0],i[0]);for(let w=1;w<=e;w++){if(i[w]=i[w-1].clone(),o[w]=o[w-1].clone(),s.crossVectors(r[w-1],r[w]),s.length()>Number.EPSILON){s.normalize();const x=Math.acos(Q2(r[w-1].dot(r[w]),-1,1));i[w].applyMatrix4(a.makeRotationAxis(s,x))}o[w].crossVectors(r[w],i[w])}if(n===!0){let w=Math.acos(Q2(i[0].dot(i[e]),-1,1));w/=e,r[0].dot(s.crossVectors(i[0],i[e]))>0&&(w=-w);for(let x=1;x<=e;x++)i[x].applyMatrix4(a.makeRotationAxis(r[x],w*x)),o[x].crossVectors(r[x],i[x])}return{tangents:r,normals:i,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class jo extends r4{constructor(e=0,n=0,C=1,r=1,i=0,o=Math.PI*2,s=!1,a=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=n,this.xRadius=C,this.yRadius=r,this.aStartAngle=i,this.aEndAngle=o,this.aClockwise=s,this.aRotation=a}getPoint(e,n){const C=n||new y1,r=Math.PI*2;let i=this.aEndAngle-this.aStartAngle;const o=Math.abs(i)r;)i-=r;i0?0:(Math.floor(Math.abs(s)/i)+1)*i:a===0&&s===i-1&&(s=i-2,a=1);let d,g;this.closed||s>0?d=r[(s-1)%i]:(_r.subVectors(r[0],r[1]).add(r[0]),d=_r);const p=r[s%i],A=r[(s+1)%i];if(this.closed||s+2r.length-2?r.length-1:o+1],p=r[o>r.length-3?r.length-1:o+2];return C.set(vA(s,a.x,d.x,g.x,p.x),vA(s,a.y,d.y,g.y,p.y)),C}copy(e){super.copy(e),this.points=[];for(let n=0,C=e.points.length;n=C){const o=r[i]-C,s=this.curves[i],a=s.getLength(),d=a===0?0:1-o/a;return s.getPointAt(d,n)}i++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let n=0;for(let C=0,r=this.curves.length;C1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n}copy(e){super.copy(e),this.curves=[];for(let n=0,C=e.curves.length;n0){const p=d.getPoint(0);p.equals(this.currentPoint)||this.lineTo(p.x,p.y)}this.curves.push(d);const g=d.getPoint(1);return this.currentPoint.copy(g),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class bn extends b0{constructor(e=[new y1(0,-.5),new y1(.5,0),new y1(0,.5)],n=12,C=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:n,phiStart:C,phiLength:r},n=Math.floor(n),r=Q2(r,0,Math.PI*2);const i=[],o=[],s=[],a=[],d=[],g=1/n,p=new G,A=new y1,w=new G,x=new G,y=new G;let m=0,L=0;for(let E=0;E<=e.length-1;E++)switch(E){case 0:m=e[E+1].x-e[E].x,L=e[E+1].y-e[E].y,w.x=L*1,w.y=-m,w.z=L*0,y.copy(w),w.normalize(),a.push(w.x,w.y,w.z);break;case e.length-1:a.push(y.x,y.y,y.z);break;default:m=e[E+1].x-e[E].x,L=e[E+1].y-e[E].y,w.x=L*1,w.y=-m,w.z=L*0,x.copy(w),w.x+=y.x,w.y+=y.y,w.z+=y.z,w.normalize(),a.push(w.x,w.y,w.z),y.copy(x)}for(let E=0;E<=n;E++){const k=C+E*g*r,I=Math.sin(k),Q=Math.cos(k);for(let _=0;_<=e.length-1;_++){p.x=e[_].x*I,p.y=e[_].y,p.z=e[_].x*Q,o.push(p.x,p.y,p.z),A.x=E/n,A.y=_/(e.length-1),s.push(A.x,A.y);const T=a[3*_+0]*I,j=a[3*_+1],q=a[3*_+0]*Q;d.push(T,j,q)}}for(let E=0;E0&&k(!0),n>0&&k(!1)),this.setIndex(g),this.setAttribute("position",new o0(p,3)),this.setAttribute("normal",new o0(A,3)),this.setAttribute("uv",new o0(w,2));function E(){const I=new G,Q=new G;let _=0;const T=(n-e)/C;for(let j=0;j<=i;j++){const q=[],R=j/i,N=R*(n-e)+e;for(let K=0;K<=r;K++){const A1=K/r,X=A1*a+s,c1=Math.sin(X),o1=Math.cos(X);Q.x=N*c1,Q.y=-R*C+m,Q.z=N*o1,p.push(Q.x,Q.y,Q.z),I.set(c1,T,o1).normalize(),A.push(I.x,I.y,I.z),w.push(A1,1-R),q.push(x++)}y.push(q)}for(let j=0;j.9&&T<.1&&(k<.2&&(o[E+0]+=1),I<.2&&(o[E+2]+=1),Q<.2&&(o[E+4]+=1))}}function A(E){i.push(E.x,E.y,E.z)}function w(E,k){const I=E*3;k.x=e[I+0],k.y=e[I+1],k.z=e[I+2]}function x(){const E=new G,k=new G,I=new G,Q=new G,_=new y1,T=new y1,j=new y1;for(let q=0,R=0;q80*n){s=d=t[0],a=g=t[1];for(let x=n;xd&&(d=p),A>g&&(g=A);w=Math.max(d-s,g-a),w=w!==0?32767/w:0}return hn(i,o,n,s,a,w,0),o}};function vm(t,e,n,C,r){let i,o;if(r===hT(t,e,n,C)>0)for(i=e;i=e;i-=C)o=LA(i,t[i],t[i+1],o);return o&&Oo(o,o.next)&&(gn(o),o=o.next),o}function I3(t,e){if(!t)return t;e||(e=t);let n=t,C;do if(C=!1,!n.steiner&&(Oo(n,n.next)||E2(n.prev,n,n.next)===0)){if(gn(n),n=e=n.prev,n===n.next)break;C=!0}else n=n.next;while(C||n!==e);return e}function hn(t,e,n,C,r,i,o){if(!t)return;!o&&i&&sT(t,C,r,i);let s=t,a,d;for(;t.prev!==t.next;){if(a=t.prev,d=t.next,i?ZQ(t,C,r,i):KQ(t)){e.push(a.i/n|0),e.push(t.i/n|0),e.push(d.i/n|0),gn(t),t=d.next,s=d.next;continue}if(t=d,t===s){o?o===1?(t=eT(I3(t),e,n),hn(t,e,n,C,r,i,2)):o===2&&tT(t,e,n,C,r,i):hn(I3(t),e,n,C,r,i,1);break}}}function KQ(t){const e=t.prev,n=t,C=t.next;if(E2(e,n,C)>=0)return!1;const r=e.x,i=n.x,o=C.x,s=e.y,a=n.y,d=C.y,g=ri?r>o?r:o:i>o?i:o,w=s>a?s>d?s:d:a>d?a:d;let x=C.next;for(;x!==e;){if(x.x>=g&&x.x<=A&&x.y>=p&&x.y<=w&&O7(r,s,i,a,o,d,x.x,x.y)&&E2(x.prev,x,x.next)>=0)return!1;x=x.next}return!0}function ZQ(t,e,n,C){const r=t.prev,i=t,o=t.next;if(E2(r,i,o)>=0)return!1;const s=r.x,a=i.x,d=o.x,g=r.y,p=i.y,A=o.y,w=sa?s>d?s:d:a>d?a:d,m=g>p?g>A?g:A:p>A?p:A,L=au(w,x,e,n,C),E=au(y,m,e,n,C);let k=t.prevZ,I=t.nextZ;for(;k&&k.z>=L&&I&&I.z<=E;){if(k.x>=w&&k.x<=y&&k.y>=x&&k.y<=m&&k!==r&&k!==o&&O7(s,g,a,p,d,A,k.x,k.y)&&E2(k.prev,k,k.next)>=0||(k=k.prevZ,I.x>=w&&I.x<=y&&I.y>=x&&I.y<=m&&I!==r&&I!==o&&O7(s,g,a,p,d,A,I.x,I.y)&&E2(I.prev,I,I.next)>=0))return!1;I=I.nextZ}for(;k&&k.z>=L;){if(k.x>=w&&k.x<=y&&k.y>=x&&k.y<=m&&k!==r&&k!==o&&O7(s,g,a,p,d,A,k.x,k.y)&&E2(k.prev,k,k.next)>=0)return!1;k=k.prevZ}for(;I&&I.z<=E;){if(I.x>=w&&I.x<=y&&I.y>=x&&I.y<=m&&I!==r&&I!==o&&O7(s,g,a,p,d,A,I.x,I.y)&&E2(I.prev,I,I.next)>=0)return!1;I=I.nextZ}return!0}function eT(t,e,n){let C=t;do{const r=C.prev,i=C.next.next;!Oo(r,i)&&Lm(r,C,C.next,i)&&fn(r,i)&&fn(i,r)&&(e.push(r.i/n|0),e.push(C.i/n|0),e.push(i.i/n|0),gn(C),gn(C.next),C=t=i),C=C.next}while(C!==t);return I3(C)}function tT(t,e,n,C,r,i){let o=t;do{let s=o.next.next;for(;s!==o.prev;){if(o.i!==s.i&&cT(o,s)){let a=wm(o,s);o=I3(o,o.next),a=I3(a,a.next),hn(o,e,n,C,r,i,0),hn(a,e,n,C,r,i,0);return}s=s.next}o=o.next}while(o!==t)}function nT(t,e,n,C){const r=[];let i,o,s,a,d;for(i=0,o=e.length;i=n.next.y&&n.next.y!==n.y){const A=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(A<=i&&A>C&&(C=A,r=n.x=n.x&&n.x>=a&&i!==n.x&&O7(or.x||n.x===r.x&&oT(r,n)))&&(r=n,g=p)),n=n.next;while(n!==s);return r}function oT(t,e){return E2(t.prev,t,e.prev)<0&&E2(e.next,t,t.next)<0}function sT(t,e,n,C){let r=t;do r.z===0&&(r.z=au(r.x,r.y,e,n,C)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,lT(r)}function lT(t){let e,n,C,r,i,o,s,a,d=1;do{for(n=t,t=null,i=null,o=0;n;){for(o++,C=n,s=0,e=0;e0||a>0&&C;)s!==0&&(a===0||!C||n.z<=C.z)?(r=n,n=n.nextZ,s--):(r=C,C=C.nextZ,a--),i?i.nextZ=r:t=r,r.prevZ=i,i=r;n=C}i.nextZ=null,d*=2}while(o>1);return t}function au(t,e,n,C,r){return t=(t-n)*r|0,e=(e-C)*r|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function aT(t){let e=t,n=t;do(e.x=(t-o)*(i-s)&&(t-o)*(C-s)>=(n-o)*(e-s)&&(n-o)*(i-s)>=(r-o)*(C-s)}function cT(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!uT(t,e)&&(fn(t,e)&&fn(e,t)&&dT(t,e)&&(E2(t.prev,t,e.prev)||E2(t,e.prev,e))||Oo(t,e)&&E2(t.prev,t,t.next)>0&&E2(e.prev,e,e.next)>0)}function E2(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Oo(t,e){return t.x===e.x&&t.y===e.y}function Lm(t,e,n,C){const r=Dr(E2(t,e,n)),i=Dr(E2(t,e,C)),o=Dr(E2(n,C,t)),s=Dr(E2(n,C,e));return!!(r!==i&&o!==s||r===0&&Tr(t,n,e)||i===0&&Tr(t,C,e)||o===0&&Tr(n,t,C)||s===0&&Tr(n,e,C))}function Tr(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Dr(t){return t>0?1:t<0?-1:0}function uT(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Lm(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}function fn(t,e){return E2(t.prev,t,t.next)<0?E2(t,e,t.next)>=0&&E2(t,t.prev,e)>=0:E2(t,e,t.prev)<0||E2(t,t.next,e)<0}function dT(t,e){let n=t,C=!1;const r=(t.x+e.x)/2,i=(t.y+e.y)/2;do n.y>i!=n.next.y>i&&n.next.y!==n.y&&r<(n.next.x-n.x)*(i-n.y)/(n.next.y-n.y)+n.x&&(C=!C),n=n.next;while(n!==t);return C}function wm(t,e){const n=new cu(t.i,t.x,t.y),C=new cu(e.i,e.x,e.y),r=t.next,i=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,C.next=n,n.prev=C,i.next=C,C.prev=i,C}function LA(t,e,n,C){const r=new cu(t,e,n);return C?(r.next=C.next,r.prev=C,C.next.prev=r,C.next=r):(r.prev=r,r.next=r),r}function gn(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function cu(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function hT(t,e,n,C){let r=0;for(let i=e,o=n-C;i2&&t[e-1].equals(t[0])&&t.pop()}function xA(t,e){for(let n=0;nNumber.EPSILON){const _1=Math.sqrt(T1),Y1=Math.sqrt(D*D+r1*r1),O1=L1.x-S/_1,q1=L1.y+e1/_1,l0=C1.x-r1/Y1,w0=C1.y+D/Y1,N1=((l0-O1)*r1-(w0-q1)*D)/(e1*r1-S*D);l1=O1+e1*N1-z.x,h1=q1+S*N1-z.y;const Q0=l1*l1+h1*h1;if(Q0<=2)return new y1(l1,h1);b1=Math.sqrt(Q0/2)}else{let _1=!1;e1>Number.EPSILON?D>Number.EPSILON&&(_1=!0):e1<-Number.EPSILON?D<-Number.EPSILON&&(_1=!0):Math.sign(S)===Math.sign(r1)&&(_1=!0),_1?(l1=-S,h1=e1,b1=Math.sqrt(T1)):(l1=e1,h1=S,b1=Math.sqrt(T1/2))}return new y1(l1/b1,h1/b1)}const t1=[];for(let z=0,L1=X.length,C1=L1-1,l1=z+1;z=0;z--){const L1=z/m,C1=w*Math.cos(L1*Math.PI/2),l1=x*Math.sin(L1*Math.PI/2)+y;for(let h1=0,b1=X.length;h1=0;){const l1=C1;let h1=C1-1;h1<0&&(h1=z.length-1);for(let b1=0,e1=g+m*2;b10)&&w.push(k,I,_),(L!==C-1||a0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class Em extends s9{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new J1(16777215),this.specular=new J1(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new J1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=l5,this.normalScale=new y1(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=yn,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class ym extends s9{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new J1(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new J1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=l5,this.normalScale=new y1(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class Im extends s9{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=l5,this.normalScale=new y1(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class Bm extends s9{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new J1(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new J1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=l5,this.normalScale=new y1(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=yn,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class Sm extends s9{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new J1(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=l5,this.normalScale=new y1(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class _m extends G9{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function u3(t,e,n){return!t||!n&&t.constructor===e?t:typeof e.BYTES_PER_ELEMENT=="number"?new e(t):Array.prototype.slice.call(t)}function Rm(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function bm(t){function e(r,i){return t[r]-t[i]}const n=t.length,C=new Array(n);for(let r=0;r!==n;++r)C[r]=r;return C.sort(e),C}function uu(t,e,n){const C=t.length,r=new t.constructor(C);for(let i=0,o=0;o!==C;++i){const s=n[i]*e;for(let a=0;a!==e;++a)r[o++]=t[s+a]}return r}function nh(t,e,n,C){let r=1,i=t[0];for(;i!==void 0&&i[C]===void 0;)i=t[r++];if(i===void 0)return;let o=i[C];if(o!==void 0)if(Array.isArray(o))do o=i[C],o!==void 0&&(e.push(i.time),n.push.apply(n,o)),i=t[r++];while(i!==void 0);else if(o.toArray!==void 0)do o=i[C],o!==void 0&&(e.push(i.time),o.toArray(n,n.length)),i=t[r++];while(i!==void 0);else do o=i[C],o!==void 0&&(e.push(i.time),n.push(o)),i=t[r++];while(i!==void 0)}function AT(t,e,n,C,r=30){const i=t.clone();i.name=e;const o=[];for(let a=0;a=C)){p.push(d.times[w]);for(let y=0;yi.tracks[a].times[0]&&(s=i.tracks[a].times[0]);for(let a=0;a=s.times[x]){const L=x*p+g,E=L+p-g;y=s.values.slice(L,E)}else{const L=s.createInterpolant(),E=g,k=p-g;L.evaluate(i),y=L.resultBuffer.slice(E,k)}a==="quaternion"&&new j9().fromArray(y).normalize().conjugate().toArray(y);const m=d.times.length;for(let L=0;L=i)){const s=n[1];e=i)break t}o=C,C=0;break n}break e}for(;C>>1;en;)--o;if(++o,i!==0||o!==r){i>=o&&(o=Math.max(o,1),i=o-1);const s=this.getValueSize();this.times=C.slice(i,o),this.values=this.values.slice(i*s,o*s)}return this}validate(){let e=!0;const n=this.getValueSize();n-Math.floor(n)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const C=this.times,r=this.values,i=C.length;i===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let s=0;s!==i;s++){const a=C[s];if(typeof a=="number"&&isNaN(a)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,s,a),e=!1;break}if(o!==null&&o>a){console.error("THREE.KeyframeTrack: Out of order keys.",this,s,a,o),e=!1;break}o=a}if(r!==void 0&&Rm(r))for(let s=0,a=r.length;s!==a;++s){const d=r[s];if(isNaN(d)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,s,d),e=!1;break}}return e}optimize(){const e=this.times.slice(),n=this.values.slice(),C=this.getValueSize(),r=this.getInterpolation()===pi,i=e.length-1;let o=1;for(let s=1;s0){e[o]=e[i];for(let s=i*C,a=o*C,d=0;d!==C;++d)n[a+d]=n[s+d];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=n.slice(0,o*C)):(this.times=e,this.values=n),this}clone(){const e=this.times.slice(),n=this.values.slice(),C=this.constructor,r=new C(this.name,e,n);return r.createInterpolant=this.createInterpolant,r}}i4.prototype.TimeBufferType=Float32Array;i4.prototype.ValueBufferType=Float32Array;i4.prototype.DefaultInterpolation=Cn;class R3 extends i4{}R3.prototype.ValueTypeName="bool";R3.prototype.ValueBufferType=Array;R3.prototype.DefaultInterpolation=nn;R3.prototype.InterpolantFactoryMethodLinear=void 0;R3.prototype.InterpolantFactoryMethodSmooth=void 0;class rh extends i4{}rh.prototype.ValueTypeName="color";class pn extends i4{}pn.prototype.ValueTypeName="number";class Dm extends Dn{constructor(e,n,C,r){super(e,n,C,r)}interpolate_(e,n,C,r){const i=this.resultBuffer,o=this.sampleValues,s=this.valueSize,a=(C-n)/(r-n);let d=e*s;for(let g=d+s;d!==g;d+=4)j9.slerpFlat(i,0,o,d-s,o,d,a);return i}}class Le extends i4{InterpolantFactoryMethodLinear(e){return new Dm(this.times,this.values,this.getValueSize(),e)}}Le.prototype.ValueTypeName="quaternion";Le.prototype.DefaultInterpolation=Cn;Le.prototype.InterpolantFactoryMethodSmooth=void 0;class b3 extends i4{}b3.prototype.ValueTypeName="string";b3.prototype.ValueBufferType=Array;b3.prototype.DefaultInterpolation=nn;b3.prototype.InterpolantFactoryMethodLinear=void 0;b3.prototype.InterpolantFactoryMethodSmooth=void 0;class An extends i4{}An.prototype.ValueTypeName="vector";class vn{constructor(e,n=-1,C,r=Bo){this.name=e,this.tracks=C,this.duration=n,this.blendMode=r,this.uuid=A8(),this.duration<0&&this.resetDuration()}static parse(e){const n=[],C=e.tracks,r=1/(e.fps||1);for(let o=0,s=C.length;o!==s;++o)n.push(xT(C[o]).scale(r));const i=new this(e.name,e.duration,n,e.blendMode);return i.uuid=e.uuid,i}static toJSON(e){const n=[],C=e.tracks,r={name:e.name,duration:e.duration,tracks:n,uuid:e.uuid,blendMode:e.blendMode};for(let i=0,o=C.length;i!==o;++i)n.push(i4.toJSON(C[i]));return r}static CreateFromMorphTargetSequence(e,n,C,r){const i=n.length,o=[];for(let s=0;s1){const p=g[1];let A=r[p];A||(r[p]=A=[]),A.push(d)}}const o=[];for(const s in r)o.push(this.CreateFromMorphTargetSequence(s,r[s],n,C));return o}static parseAnimation(e,n){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const C=function(p,A,w,x,y){if(w.length!==0){const m=[],L=[];nh(w,m,L,x),m.length!==0&&y.push(new p(A,m,L))}},r=[],i=e.name||"default",o=e.fps||30,s=e.blendMode;let a=e.length||-1;const d=e.hierarchy||[];for(let p=0;p{n&&n(i),this.manager.itemEnd(e)},0),i;if(O4[e]!==void 0){O4[e].push({onLoad:n,onProgress:C,onError:r});return}O4[e]=[],O4[e].push({onLoad:n,onProgress:C,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),s=this.mimeType,a=this.responseType;fetch(o).then(d=>{if(d.status===200||d.status===0){if(d.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||d.body===void 0||d.body.getReader===void 0)return d;const g=O4[e],p=d.body.getReader(),A=d.headers.get("Content-Length")||d.headers.get("X-File-Size"),w=A?parseInt(A):0,x=w!==0;let y=0;const m=new ReadableStream({start(L){E();function E(){p.read().then(({done:k,value:I})=>{if(k)L.close();else{y+=I.byteLength;const Q=new ProgressEvent("progress",{lengthComputable:x,loaded:y,total:w});for(let _=0,T=g.length;_{switch(a){case"arraybuffer":return d.arrayBuffer();case"blob":return d.blob();case"document":return d.text().then(g=>new DOMParser().parseFromString(g,s));case"json":return d.json();default:if(s===void 0)return d.text();{const p=/charset="?([^;"\s]*)"?/i.exec(s),A=p&&p[1]?p[1].toLowerCase():void 0,w=new TextDecoder(A);return d.arrayBuffer().then(x=>w.decode(x))}}}).then(d=>{Z4.add(e,d);const g=O4[e];delete O4[e];for(let p=0,A=g.length;p{const g=O4[e];if(g===void 0)throw this.manager.itemError(e),d;delete O4[e];for(let p=0,A=g.length;p{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class kT extends O9{constructor(e){super(e)}load(e,n,C,r){const i=this,o=new B4(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(s){try{n(i.parse(JSON.parse(s)))}catch(a){r?r(a):console.error(a),i.manager.itemError(e)}},C,r)}parse(e){const n=[];for(let C=0;C0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const i in e.uniforms){const o=e.uniforms[i];switch(r.uniforms[i]={},o.type){case"t":r.uniforms[i].value=C(o.value);break;case"c":r.uniforms[i].value=new J1().setHex(o.value);break;case"v2":r.uniforms[i].value=new y1().fromArray(o.value);break;case"v3":r.uniforms[i].value=new G().fromArray(o.value);break;case"v4":r.uniforms[i].value=new C2().fromArray(o.value);break;case"m3":r.uniforms[i].value=new B0().fromArray(o.value);break;case"m4":r.uniforms[i].value=new f0().fromArray(o.value);break;default:r.uniforms[i].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const i in e.extensions)r.extensions[i]=e.extensions[i];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=C(e.map)),e.matcap!==void 0&&(r.matcap=C(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=C(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=C(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=C(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let i=e.normalScale;Array.isArray(i)===!1&&(i=[i,i]),r.normalScale=new y1().fromArray(i)}return e.displacementMap!==void 0&&(r.displacementMap=C(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=C(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=C(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=C(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=C(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=C(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=C(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=C(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=C(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=C(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=C(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=C(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=C(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=C(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new y1().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=C(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=C(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=C(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=C(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=C(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=C(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=C(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const n={ShadowMaterial:mm,SpriteMaterial:Vd,RawShaderMaterial:km,ShaderMaterial:n4,PointsMaterial:Yd,MeshPhysicalMaterial:Mm,MeshStandardMaterial:th,MeshPhongMaterial:Em,MeshToonMaterial:ym,MeshNormalMaterial:Im,MeshLambertMaterial:Bm,MeshDepthMaterial:bo,MeshDistanceMaterial:Qo,MeshBasicMaterial:t8,MeshMatcapMaterial:Sm,LineDashedMaterial:_m,LineBasicMaterial:G9,Material:s9};return new n[e]}}class du{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let n="";for(let C=0,r=e.length;C0){const a=new ih(n);i=new Ln(a),i.setCrossOrigin(this.crossOrigin);for(let d=0,g=e.length;d0){r=new Ln(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,s=e.length;o{const m=new J2;m.min.fromArray(y.boxMin),m.max.fromArray(y.boxMax);const L=new i9;return L.radius=y.sphereRadius,L.center.fromArray(y.sphereCenter),{boxInitialized:y.boxInitialized,box:m,sphereInitialized:y.sphereInitialized,sphere:L}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=d(e.matricesTexture.uuid);break;case"LOD":o=new om;break;case"Line":o=new r5(s(e.geometry),a(e.material));break;case"LineLoop":o=new cm(s(e.geometry),a(e.material));break;case"LineSegments":o=new S4(s(e.geometry),a(e.material));break;case"PointCloud":case"Points":o=new um(s(e.geometry),a(e.material));break;case"Sprite":o=new im(a(e.material));break;case"Group":o=new D8;break;case"Bone":o=new $d;break;default:o=new q0}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const A=e.children;for(let w=0;w"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,n,C,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const i=this,o=Z4.get(e);if(o!==void 0){if(i.manager.itemStart(e),o.then){o.then(d=>{n&&n(d),i.manager.itemEnd(e)}).catch(d=>{r&&r(d)});return}return setTimeout(function(){n&&n(o),i.manager.itemEnd(e)},0),o}const s={};s.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",s.headers=this.requestHeader;const a=fetch(e,s).then(function(d){return d.blob()}).then(function(d){return createImageBitmap(d,Object.assign(i.options,{colorSpaceConversion:"none"}))}).then(function(d){return Z4.add(e,d),n&&n(d),i.manager.itemEnd(e),d}).catch(function(d){r&&r(d),Z4.remove(e),i.manager.itemError(e),i.manager.itemEnd(e)});Z4.add(e,a),i.manager.itemStart(e)}}let Nr;class lh{static getContext(){return Nr===void 0&&(Nr=new(window.AudioContext||window.webkitAudioContext)),Nr}static setContext(e){Nr=e}}class QT extends O9{constructor(e){super(e)}load(e,n,C,r){const i=this,o=new B4(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{const d=a.slice(0);lh.getContext().decodeAudioData(d,function(p){n(p)}).catch(s)}catch(d){s(d)}},C,r);function s(a){r?r(a):console.error(a),i.manager.itemError(e)}}}const SA=new f0,_A=new f0,G5=new f0;class TT{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Y2,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Y2,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const n=this._cache;if(n.focus!==e.focus||n.fov!==e.fov||n.aspect!==e.aspect*this.aspect||n.near!==e.near||n.far!==e.far||n.zoom!==e.zoom||n.eyeSep!==this.eyeSep){n.focus=e.focus,n.fov=e.fov,n.aspect=e.aspect*this.aspect,n.near=e.near,n.far=e.far,n.zoom=e.zoom,n.eyeSep=this.eyeSep,G5.copy(e.projectionMatrix);const r=n.eyeSep/2,i=r*n.near/n.focus,o=n.near*Math.tan(g3*n.fov*.5)/n.zoom;let s,a;_A.elements[12]=-r,SA.elements[12]=r,s=-o*n.aspect+i,a=o*n.aspect+i,G5.elements[0]=2*n.near/(a-s),G5.elements[8]=(a+s)/(a-s),this.cameraL.projectionMatrix.copy(G5),s=-o*n.aspect-i,a=o*n.aspect-i,G5.elements[0]=2*n.near/(a-s),G5.elements[8]=(a+s)/(a-s),this.cameraR.projectionMatrix.copy(G5)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(_A),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(SA)}}let ah=class{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=RA(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const n=RA();e=(n-this.oldTime)/1e3,this.oldTime=n,this.elapsedTime+=e}return e}};function RA(){return(typeof performance>"u"?Date:performance).now()}const O5=new G,bA=new j9,DT=new G,z5=new G;class NT extends q0{constructor(){super(),this.type="AudioListener",this.context=lh.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new ah}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const n=this.context.listener,C=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(O5,bA,DT),z5.set(0,0,-1).applyQuaternion(bA),n.positionX){const r=this.context.currentTime+this.timeDelta;n.positionX.linearRampToValueAtTime(O5.x,r),n.positionY.linearRampToValueAtTime(O5.y,r),n.positionZ.linearRampToValueAtTime(O5.z,r),n.forwardX.linearRampToValueAtTime(z5.x,r),n.forwardY.linearRampToValueAtTime(z5.y,r),n.forwardZ.linearRampToValueAtTime(z5.z,r),n.upX.linearRampToValueAtTime(C.x,r),n.upY.linearRampToValueAtTime(C.y,r),n.upZ.linearRampToValueAtTime(C.z,r)}else n.setPosition(O5.x,O5.y,O5.z),n.setOrientation(z5.x,z5.y,z5.z,C.x,C.y,C.z)}}class $m extends q0{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const n=this.context.createBufferSource();return n.buffer=this.buffer,n.loop=this.loop,n.loopStart=this.loopStart,n.loopEnd=this.loopEnd,n.onended=this.onEnded.bind(this),n.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=n,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,n=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,n=this.filters.length;e0&&this._mixBufferRegionAdditive(C,r,this._addIndex*n,1,n);for(let a=n,d=n+n;a!==d;++a)if(C[a]!==C[a+n]){s.setValue(C,r);break}}saveOriginalState(){const e=this.binding,n=this.buffer,C=this.valueSize,r=C*this._origIndex;e.getValue(n,r);for(let i=C,o=r;i!==o;++i)n[i]=n[r+i%C];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,n=e+this.valueSize;for(let C=e;C=.5)for(let o=0;o!==i;++o)e[n+o]=e[C+o]}_slerp(e,n,C,r){j9.slerpFlat(e,n,e,n,e,C,r)}_slerpAdditive(e,n,C,r,i){const o=this._workIndex*i;j9.multiplyQuaternionsFlat(e,o,e,n,e,C),j9.slerpFlat(e,n,e,n,e,o,r)}_lerp(e,n,C,r,i){const o=1-r;for(let s=0;s!==i;++s){const a=n+s;e[a]=e[a]*o+e[C+s]*r}}_lerpAdditive(e,n,C,r,i){for(let o=0;o!==i;++o){const s=n+o;e[s]=e[s]+e[C+o]*r}}}const ch="\\[\\]\\.:\\/",UT=new RegExp("["+ch+"]","g"),uh="[^"+ch+"]",FT="[^"+ch.replace("\\.","")+"]",WT=/((?:WC+[\/:])*)/.source.replace("WC",uh),GT=/(WCOD+)?/.source.replace("WCOD",FT),OT=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",uh),zT=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",uh),VT=new RegExp("^"+WT+GT+OT+zT+"$"),$T=["material","materials","bones","map"];class YT{constructor(e,n,C){const r=C||z0.parseTrackName(n);this._targetGroup=e,this._bindings=e.subscribe_(n,r)}getValue(e,n){this.bind();const C=this._targetGroup.nCachedObjects_,r=this._bindings[C];r!==void 0&&r.getValue(e,n)}setValue(e,n){const C=this._bindings;for(let r=this._targetGroup.nCachedObjects_,i=C.length;r!==i;++r)C[r].setValue(e,n)}bind(){const e=this._bindings;for(let n=this._targetGroup.nCachedObjects_,C=e.length;n!==C;++n)e[n].bind()}unbind(){const e=this._bindings;for(let n=this._targetGroup.nCachedObjects_,C=e.length;n!==C;++n)e[n].unbind()}}class z0{constructor(e,n,C){this.path=n,this.parsedPath=C||z0.parseTrackName(n),this.node=z0.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,n,C){return e&&e.isAnimationObjectGroup?new z0.Composite(e,n,C):new z0(e,n,C)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(UT,"")}static parseTrackName(e){const n=VT.exec(e);if(n===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const C={nodeName:n[2],objectName:n[3],objectIndex:n[4],propertyName:n[5],propertyIndex:n[6]},r=C.nodeName&&C.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const i=C.nodeName.substring(r+1);$T.indexOf(i)!==-1&&(C.nodeName=C.nodeName.substring(0,r),C.objectName=i)}if(C.propertyName===null||C.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return C}static findNode(e,n){if(n===void 0||n===""||n==="."||n===-1||n===e.name||n===e.uuid)return e;if(e.skeleton){const C=e.skeleton.getBoneByName(n);if(C!==void 0)return C}if(e.children){const C=function(i){for(let o=0;o=i){const p=i++,A=e[p];n[A.uuid]=g,e[g]=A,n[d]=p,e[p]=a;for(let w=0,x=r;w!==x;++w){const y=C[w],m=y[p],L=y[g];y[g]=m,y[p]=L}}}this.nCachedObjects_=i}uncache(){const e=this._objects,n=this._indicesByUUID,C=this._bindings,r=C.length;let i=this.nCachedObjects_,o=e.length;for(let s=0,a=arguments.length;s!==a;++s){const d=arguments[s],g=d.uuid,p=n[g];if(p!==void 0)if(delete n[g],p0&&(n[w.uuid]=p),e[p]=w,e.pop();for(let x=0,y=r;x!==y;++x){const m=C[x];m[p]=m[A],m.pop()}}}this.nCachedObjects_=i}subscribe_(e,n){const C=this._bindingsIndicesByPath;let r=C[e];const i=this._bindings;if(r!==void 0)return i[r];const o=this._paths,s=this._parsedPaths,a=this._objects,d=a.length,g=this.nCachedObjects_,p=new Array(d);r=i.length,C[e]=r,o.push(e),s.push(n),i.push(p);for(let A=g,w=a.length;A!==w;++A){const x=a[A];p[A]=new z0(x,e,n)}return p}unsubscribe_(e){const n=this._bindingsIndicesByPath,C=n[e];if(C!==void 0){const r=this._paths,i=this._parsedPaths,o=this._bindings,s=o.length-1,a=o[s],d=e[s];n[d]=C,o[C]=a,o.pop(),i[C]=i[s],i.pop(),r[C]=r[s],r.pop()}}}class Xm{constructor(e,n,C=null,r=n.blendMode){this._mixer=e,this._clip=n,this._localRoot=C,this.blendMode=r;const i=n.tracks,o=i.length,s=new Array(o),a={endingStart:s3,endingEnd:s3};for(let d=0;d!==o;++d){const g=i[d].createInterpolant(null);s[d]=g,g.settings=a}this._interpolantSettings=a,this._interpolants=s,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=_x,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,n){return this.loop=e,this.repetitions=n,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,n,C){if(e.fadeOut(n),this.fadeIn(n),C){const r=this._clip.duration,i=e._clip.duration,o=i/r,s=r/i;e.warp(1,o,n),this.warp(s,1,n)}return this}crossFadeTo(e,n,C){return e.crossFadeFrom(this,n,C)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,n,C){const r=this._mixer,i=r.time,o=this.timeScale;let s=this._timeScaleInterpolant;s===null&&(s=r._lendControlInterpolant(),this._timeScaleInterpolant=s);const a=s.parameterPositions,d=s.sampleValues;return a[0]=i,a[1]=i+C,d[0]=e/o,d[1]=n/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,n,C,r){if(!this.enabled){this._updateWeight(e);return}const i=this._startTime;if(i!==null){const a=(e-i)*C;a<0||C===0?n=0:(this._startTime=null,n=C*a)}n*=this._updateTimeScale(e);const o=this._updateTime(n),s=this._updateWeight(e);if(s>0){const a=this._interpolants,d=this._propertyBindings;switch(this.blendMode){case Td:for(let g=0,p=a.length;g!==p;++g)a[g].evaluate(o),d[g].accumulateAdditive(s);break;case Bo:default:for(let g=0,p=a.length;g!==p;++g)a[g].evaluate(o),d[g].accumulate(r,s)}}}_updateWeight(e){let n=0;if(this.enabled){n=this.weight;const C=this._weightInterpolant;if(C!==null){const r=C.evaluate(e)[0];n*=r,e>C.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=n,n}_updateTimeScale(e){let n=0;if(!this.paused){n=this.timeScale;const C=this._timeScaleInterpolant;if(C!==null){const r=C.evaluate(e)[0];n*=r,e>C.parameterPositions[1]&&(this.stopWarping(),n===0?this.paused=!0:this.timeScale=n)}}return this._effectiveTimeScale=n,n}_updateTime(e){const n=this._clip.duration,C=this.loop;let r=this.time+e,i=this._loopCount;const o=C===Rx;if(e===0)return i===-1?r:o&&(i&1)===1?n-r:r;if(C===Sx){i===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=n)r=n;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(i===-1&&(e>=0?(i=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=n||r<0){const s=Math.floor(r/n);r-=n*s,i+=Math.abs(s);const a=this.repetitions-i;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?n:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(a===1){const d=e<0;this._setEndings(d,!d,o)}else this._setEndings(!1,!1,o);this._loopCount=i,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:s})}}else this.time=r;if(o&&(i&1)===1)return n-r}return r}_setEndings(e,n,C){const r=this._interpolantSettings;C?(r.endingStart=l3,r.endingEnd=l3):(e?r.endingStart=this.zeroSlopeAtStart?l3:s3:r.endingStart=rn,n?r.endingEnd=this.zeroSlopeAtEnd?l3:s3:r.endingEnd=rn)}_scheduleFading(e,n,C){const r=this._mixer,i=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const s=o.parameterPositions,a=o.sampleValues;return s[0]=i,a[0]=n,s[1]=i+e,a[1]=C,this}}const JT=new Float32Array(1);class qT extends l6{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,n){const C=e._localRoot||this._root,r=e._clip.tracks,i=r.length,o=e._propertyBindings,s=e._interpolants,a=C.uuid,d=this._bindingsByRootAndName;let g=d[a];g===void 0&&(g={},d[a]=g);for(let p=0;p!==i;++p){const A=r[p],w=A.name;let x=g[w];if(x!==void 0)++x.referenceCount,o[p]=x;else{if(x=o[p],x!==void 0){x._cacheIndex===null&&(++x.referenceCount,this._addInactiveBinding(x,a,w));continue}const y=n&&n._propertyBindings[p].binding.parsedPath;x=new Ym(z0.create(C,w,y),A.ValueTypeName,A.getValueSize()),++x.referenceCount,this._addInactiveBinding(x,a,w),o[p]=x}s[p].resultBuffer=x.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const C=(e._localRoot||this._root).uuid,r=e._clip.uuid,i=this._actionsByClip[r];this._bindAction(e,i&&i.knownActions[0]),this._addInactiveAction(e,r,C)}const n=e._propertyBindings;for(let C=0,r=n.length;C!==r;++C){const i=n[C];i.useCount++===0&&(this._lendBinding(i),i.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const n=e._propertyBindings;for(let C=0,r=n.length;C!==r;++C){const i=n[C];--i.useCount===0&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const n=e._cacheIndex;return n!==null&&n=0;--C)e[C].stop();return this}update(e){e*=this.timeScale;const n=this._actions,C=this._nActiveActions,r=this.time+=e,i=Math.sign(e),o=this._accuIndex^=1;for(let d=0;d!==C;++d)n[d]._update(r,e,i,o);const s=this._bindings,a=this._nActiveBindings;for(let d=0;d!==a;++d)s[d].apply(o);return this}setTime(e){this.time=0;for(let n=0;nthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,n){return n.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,n){return n.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,DA).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const NA=new G,Pr=new G;class rD{constructor(e=new G,n=new G){this.start=e,this.end=n}set(e,n){return this.start.copy(e),this.end.copy(n),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,n){return this.delta(n).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,n){NA.subVectors(e,this.start),Pr.subVectors(this.end,this.start);const C=Pr.dot(Pr);let i=Pr.dot(NA)/C;return n&&(i=Q2(i,0,1)),i}closestPointToPoint(e,n,C){const r=this.closestPointToPointParameter(e,n);return this.delta(C).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const PA=new G;class iD extends q0{constructor(e,n){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,this.type="SpotLightHelper";const C=new b0,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,s=1,a=32;o1)for(let p=0;p.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{WA.set(e.z,0,-e.x).normalize();const n=Math.acos(e.y);this.quaternion.setFromAxisAngle(WA,n)}}setLength(e,n=e*.2,C=n*.2){this.line.scale.set(1,Math.max(1e-4,e-n),1),this.line.updateMatrix(),this.cone.scale.set(C,n,C),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class vD extends S4{constructor(e=1){const n=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],C=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new b0;r.setAttribute("position",new o0(n,3)),r.setAttribute("color",new o0(C,3));const i=new G9({vertexColors:!0,toneMapped:!1});super(r,i),this.type="AxesHelper"}setColors(e,n,C){const r=new J1,i=this.geometry.attributes.color.array;return r.set(e),r.toArray(i,0),r.toArray(i,3),r.set(n),r.toArray(i,6),r.toArray(i,9),r.set(C),r.toArray(i,12),r.toArray(i,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class R6{constructor(){this.type="ShapePath",this.color=new J1,this.subPaths=[],this.currentPath=null}moveTo(e,n){return this.currentPath=new K6,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,n),this}lineTo(e,n){return this.currentPath.lineTo(e,n),this}quadraticCurveTo(e,n,C,r){return this.currentPath.quadraticCurveTo(e,n,C,r),this}bezierCurveTo(e,n,C,r,i,o){return this.currentPath.bezierCurveTo(e,n,C,r,i,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function n(L){const E=[];for(let k=0,I=L.length;kNumber.EPSILON){if(R<0&&(T=E[_],q=-q,j=E[Q],R=-R),L.yj.y)continue;if(L.y===T.y){if(L.x===T.x)return!0}else{const N=R*(L.x-T.x)-q*(L.y-T.y);if(N===0)return!0;if(N<0)continue;I=!I}}else{if(L.y!==T.y)continue;if(j.x<=L.x&&L.x<=T.x||T.x<=L.x&&L.x<=j.x)return!0}}return I}const r=e4.isClockWise,i=this.subPaths;if(i.length===0)return[];let o,s,a;const d=[];if(i.length===1)return s=i[0],a=new Z6,a.curves=s.curves,d.push(a),d;let g=!r(i[0].getPoints());g=e?!g:g;const p=[],A=[];let w=[],x=0,y;A[x]=void 0,w[x]=[];for(let L=0,E=i.length;L1){let L=!1,E=0;for(let k=0,I=A.length;k0&&L===!1&&(w=p)}let m;for(let L=0,E=A.length;L{const p=typeof d=="function"?d(e):d;if(p!==e){const A=e;e=g?p:Object.assign({},e,p),n.forEach(w=>w(e,A))}},r=()=>e,i=(d,g=r,p=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let A=g(e);function w(){const x=g(e);if(!p(A,x)){const y=A;d(A=x,y)}}return n.add(w),()=>n.delete(w)},a={setState:C,getState:r,subscribe:(d,g,p)=>g||p?i(d,g,p):(n.add(d),()=>n.delete(d)),destroy:()=>n.clear()};return e=t(C,r,a),a}const xD=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),GA=xD?u.useEffect:u.useLayoutEffect;function Zm(t){const e=typeof t=="function"?wD(t):t,n=(C=e.getState,r=Object.is)=>{const[,i]=u.useReducer(m=>m+1,0),o=e.getState(),s=u.useRef(o),a=u.useRef(C),d=u.useRef(r),g=u.useRef(!1),p=u.useRef();p.current===void 0&&(p.current=C(o));let A,w=!1;(s.current!==o||a.current!==C||d.current!==r||g.current)&&(A=C(o),w=!r(p.current,A)),GA(()=>{w&&(p.current=A),s.current=o,a.current=C,d.current=r,g.current=!1});const x=u.useRef(o);GA(()=>{const m=()=>{try{const E=e.getState(),k=a.current(E);d.current(p.current,k)||(s.current=E,p.current=k,i())}catch{g.current=!0,i()}},L=e.subscribe(m);return e.getState()!==x.current&&m(),L},[]);const y=w?A:p.current;return u.useDebugValue(y),y};return Object.assign(n,e),n[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const C=[n,e];return{next(){const r=C.length<=0;return{value:C.shift(),done:r}}}},n}var ek={exports:{}},tk={exports:{}},nk={};/** - * @license React - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */(function(t){function e(U,t1){var n1=U.length;U.push(t1);e:for(;0>>1,x1=U[u1];if(0>>1;u1r(O,n1))Wr(F,O)?(U[u1]=F,U[W]=n1,u1=W):(U[u1]=O,U[$]=n1,u1=$);else if(Wr(F,n1))U[u1]=F,U[W]=n1,u1=W;else break e}}return t1}function r(U,t1){var n1=U.sortIndex-t1.sortIndex;return n1!==0?n1:U.id-t1.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;t.unstable_now=function(){return i.now()}}else{var o=Date,s=o.now();t.unstable_now=function(){return o.now()-s}}var a=[],d=[],g=1,p=null,A=3,w=!1,x=!1,y=!1,m=typeof setTimeout=="function"?setTimeout:null,L=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function k(U){for(var t1=n(d);t1!==null;){if(t1.callback===null)C(d);else if(t1.startTime<=U)C(d),t1.sortIndex=t1.expirationTime,e(a,t1);else break;t1=n(d)}}function I(U){if(y=!1,k(U),!x)if(n(a)!==null)x=!0,o1(Q);else{var t1=n(d);t1!==null&&f1(I,t1.startTime-U)}}function Q(U,t1){x=!1,y&&(y=!1,L(j),j=-1),w=!0;var n1=A;try{for(k(t1),p=n(a);p!==null&&(!(p.expirationTime>t1)||U&&!N());){var u1=p.callback;if(typeof u1=="function"){p.callback=null,A=p.priorityLevel;var x1=u1(p.expirationTime<=t1);t1=t.unstable_now(),typeof x1=="function"?p.callback=x1:p===n(a)&&C(a),k(t1)}else C(a);p=n(a)}if(p!==null)var U1=!0;else{var $=n(d);$!==null&&f1(I,$.startTime-t1),U1=!1}return U1}finally{p=null,A=n1,w=!1}}var _=!1,T=null,j=-1,q=5,R=-1;function N(){return!(t.unstable_now()-RU||125u1?(U.sortIndex=n1,e(d,U),n(a)===null&&U===n(d)&&(y?(L(j),j=-1):y=!0,f1(I,n1-u1))):(U.sortIndex=x1,e(a,U),x||w||(x=!0,o1(Q))),U},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(U){var t1=A;return function(){var n1=A;A=t1;try{return U.apply(this,arguments)}finally{A=n1}}}})(nk);tk.exports=nk;var fu=tk.exports;/** - * @license React - * react-reconciler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var mD=function(e){var n={},C=u,r=fu,i=Object.assign;function o(l){for(var c="https://reactjs.org/docs/error-decoder.html?invariant="+l,v=1;va1||B[Y]!==b[a1]){var R1=` -`+B[Y].replace(" at new "," at ");return l.displayName&&R1.includes("")&&(R1=R1.replace("",l.displayName)),R1}while(1<=Y&&0<=a1);break}}}finally{k0=!1,Error.prepareStackTrace=v}return(l=l?l.displayName||l.name:"")?I0(l):""}var f2=Object.prototype.hasOwnProperty,U2=[],Z0=-1;function F2(l){return{current:l}}function L0(l){0>Z0||(l.current=U2[Z0],U2[Z0]=null,Z0--)}function t0(l,c){Z0++,U2[Z0]=l.current,l.current=c}var f9={},x0=F2(f9),l2=F2(!1),C8=f9;function P(l,c){var v=l.type.contextTypes;if(!v)return f9;var M=l.stateNode;if(M&&M.__reactInternalMemoizedUnmaskedChildContext===c)return M.__reactInternalMemoizedMaskedChildContext;var B={},b;for(b in v)B[b]=c[b];return M&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=c,l.__reactInternalMemoizedMaskedChildContext=B),B}function H(l){return l=l.childContextTypes,l!=null}function Z(){L0(l2),L0(x0)}function s1(l,c,v){if(x0.current!==f9)throw Error(o(168));t0(x0,c),t0(l2,v)}function p1(l,c,v){var M=l.stateNode;if(c=c.childContextTypes,typeof M.getChildContext!="function")return v;M=M.getChildContext();for(var B in M)if(!(B in c))throw Error(o(108,j(l)||"Unknown",B));return i({},v,M)}function B1(l){return l=(l=l.stateNode)&&l.__reactInternalMemoizedMergedChildContext||f9,C8=x0.current,t0(x0,l),t0(l2,l2.current),!0}function P1(l,c,v){var M=l.stateNode;if(!M)throw Error(o(169));v?(l=p1(l,c,C8),M.__reactInternalMemoizedMergedChildContext=l,L0(l2),L0(x0),t0(x0,l)):L0(l2),t0(l2,v)}var D1=Math.clz32?Math.clz32:e0,z1=Math.log,W1=Math.LN2;function e0(l){return l>>>=0,l===0?32:31-(z1(l)/W1|0)|0}var h0=64,j0=4194304;function u2(l){switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return l&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return l}}function F0(l,c){var v=l.pendingLanes;if(v===0)return 0;var M=0,B=l.suspendedLanes,b=l.pingedLanes,Y=v&268435455;if(Y!==0){var a1=Y&~B;a1!==0?M=u2(a1):(b&=Y,b!==0&&(M=u2(b)))}else Y=v&~B,Y!==0?M=u2(Y):b!==0&&(M=u2(b));if(M===0)return 0;if(c!==0&&c!==M&&!(c&B)&&(B=M&-M,b=c&-c,B>=b||B===16&&(b&4194240)!==0))return c;if(M&4&&(M|=v&16),c=l.entangledLanes,c!==0)for(l=l.entanglements,c&=M;0v;v++)c.push(l);return c}function d6(l,c,v){l.pendingLanes|=c,c!==536870912&&(l.suspendedLanes=0,l.pingedLanes=0),l=l.eventTimes,c=31-D1(c),l[c]=v}function zn(l,c){var v=l.pendingLanes&~c;l.pendingLanes=c,l.suspendedLanes=0,l.pingedLanes=0,l.expiredLanes&=c,l.mutableReadLanes&=c,l.entangledLanes&=c,c=l.entanglements;var M=l.eventTimes;for(l=l.expirationTimes;0>=Y,B-=Y,D4=1<<32-D1(c)+B|v<X0?(t9=_0,_0=null):t9=_0.sibling;var J0=v0(w1,_0,S1[X0],K1);if(J0===null){_0===null&&(_0=t9);break}l&&_0&&J0.alternate===null&&c(w1,_0),d1=b(J0,d1,X0),N0===null?c0=J0:N0.sibling=J0,N0=J0,_0=t9}if(X0===S1.length)return v(w1,_0),L2&&_5(w1,X0),c0;if(_0===null){for(;X0X0?(t9=_0,_0=null):t9=_0.sibling;var w6=v0(w1,_0,J0.value,K1);if(w6===null){_0===null&&(_0=t9);break}l&&_0&&w6.alternate===null&&c(w1,_0),d1=b(w6,d1,X0),N0===null?c0=w6:N0.sibling=w6,N0=w6,_0=t9}if(J0.done)return v(w1,_0),L2&&_5(w1,X0),c0;if(_0===null){for(;!J0.done;X0++,J0=S1.next())J0=S0(w1,J0.value,K1),J0!==null&&(d1=b(J0,d1,X0),N0===null?c0=J0:N0.sibling=J0,N0=J0);return L2&&_5(w1,X0),c0}for(_0=M(w1,_0);!J0.done;X0++,J0=S1.next())J0=a2(_0,w1,X0,J0.value,K1),J0!==null&&(l&&J0.alternate!==null&&_0.delete(J0.key===null?X0:J0.key),d1=b(J0,d1,X0),N0===null?c0=J0:N0.sibling=J0,N0=J0);return l&&_0.forEach(function(ZM){return c(w1,ZM)}),L2&&_5(w1,X0),c0}function S8(w1,d1,S1,K1){if(typeof S1=="object"&&S1!==null&&S1.type===g&&S1.key===null&&(S1=S1.props.children),typeof S1=="object"&&S1!==null){switch(S1.$$typeof){case a:e:{for(var c0=S1.key,N0=d1;N0!==null;){if(N0.key===c0){if(c0=S1.type,c0===g){if(N0.tag===7){v(w1,N0.sibling),d1=B(N0,S1.props.children),d1.return=w1,w1=d1;break e}}else if(N0.elementType===c0||typeof c0=="object"&&c0!==null&&c0.$$typeof===k&&Uh(c0)===N0.type){v(w1,N0.sibling),d1=B(N0,S1.props),d1.ref=Ie(w1,N0,S1),d1.return=w1,w1=d1;break e}v(w1,N0);break}else c(w1,N0);N0=N0.sibling}S1.type===g?(d1=P5(S1.props.children,w1.mode,K1,S1.key),d1.return=w1,w1=d1):(K1=QC(S1.type,S1.key,S1.props,null,w1.mode,K1),K1.ref=Ie(w1,d1,S1),K1.return=w1,w1=K1)}return Y(w1);case d:e:{for(N0=S1.key;d1!==null;){if(d1.key===N0)if(d1.tag===4&&d1.stateNode.containerInfo===S1.containerInfo&&d1.stateNode.implementation===S1.implementation){v(w1,d1.sibling),d1=B(d1,S1.children||[]),d1.return=w1,w1=d1;break e}else{v(w1,d1);break}else c(w1,d1);d1=d1.sibling}d1=Cl(S1,w1.mode,K1),d1.return=w1,w1=d1}return Y(w1);case k:return N0=S1._init,S8(w1,d1,N0(S1._payload),K1)}if(c1(S1))return u0(w1,d1,S1,K1);if(_(S1))return v9(w1,d1,S1,K1);nC(w1,S1)}return typeof S1=="string"&&S1!==""||typeof S1=="number"?(S1=""+S1,d1!==null&&d1.tag===6?(v(w1,d1.sibling),d1=B(d1,S1),d1.return=w1,w1=d1):(v(w1,d1),d1=nl(S1,w1.mode,K1),d1.return=w1,w1=d1),Y(w1)):v(w1,d1)}return S8}var $3=Fh(!0),Wh=Fh(!1),Be={},E8=F2(Be),Se=F2(Be),Y3=F2(Be);function u4(l){if(l===Be)throw Error(o(174));return l}function ws(l,c){t0(Y3,c),t0(Se,l),t0(E8,Be),l=f1(c),L0(E8),t0(E8,l)}function X3(){L0(E8),L0(Se),L0(Y3)}function Gh(l){var c=u4(Y3.current),v=u4(E8.current);c=U(v,l.type,c),v!==c&&(t0(Se,l),t0(E8,c))}function xs(l){Se.current===l&&(L0(E8),L0(Se))}var k2=F2(0);function CC(l){for(var c=l;c!==null;){if(c.tag===13){var v=c.memoizedState;if(v!==null&&(v=v.dehydrated,v===null||I5(v)||a9(v)))return c}else if(c.tag===19&&c.memoizedProps.revealOrder!==void 0){if(c.flags&128)return c}else if(c.child!==null){c.child.return=c,c=c.child;continue}if(c===l)break;for(;c.sibling===null;){if(c.return===null||c.return===l)return null;c=c.return}c.sibling.return=c.return,c=c.sibling}return null}var ms=[];function ks(){for(var l=0;lv?v:4,l(!0);var M=y8.transition;y8.transition={};try{l(!1),c()}finally{Y0=v,y8.transition=M}}function Cf(){return d4().memoizedState}function yM(l,c,v){var M=A6(l);v={lane:M,action:v,hasEagerState:!1,eagerState:null,next:null},rf(l)?of(c,v):(sf(l,c,v),v=_9(),l=I8(l,M,v),l!==null&&lf(l,c,M))}function IM(l,c,v){var M=A6(l),B={lane:M,action:v,hasEagerState:!1,eagerState:null,next:null};if(rf(l))of(c,B);else{sf(l,c,B);var b=l.alternate;if(l.lanes===0&&(b===null||b.lanes===0)&&(b=c.lastRenderedReducer,b!==null))try{var Y=c.lastRenderedState,a1=b(Y,v);if(B.hasEagerState=!0,B.eagerState=a1,l4(a1,Y))return}catch{}finally{}v=_9(),l=I8(l,M,v),l!==null&&lf(l,c,M)}}function rf(l){var c=l.alternate;return l===S2||c!==null&&c===S2}function of(l,c){_e=iC=!0;var v=l.pending;v===null?c.next=c:(c.next=v.next,v.next=c),l.pending=c}function sf(l,c,v){W2!==null&&l.mode&1&&!(H0&2)?(l=c.interleaved,l===null?(v.next=v,c4===null?c4=[c]:c4.push(c)):(v.next=l.next,l.next=v),c.interleaved=v):(l=c.pending,l===null?v.next=v:(v.next=l.next,l.next=v),c.pending=v)}function lf(l,c,v){if(v&4194240){var M=c.lanes;M&=l.pendingLanes,v|=M,c.lanes=v,Cs(l,v)}}var cC={readContext:m8,useCallback:p9,useContext:p9,useEffect:p9,useImperativeHandle:p9,useInsertionEffect:p9,useLayoutEffect:p9,useMemo:p9,useReducer:p9,useRef:p9,useState:p9,useDebugValue:p9,useDeferredValue:p9,useTransition:p9,useMutableSource:p9,useSyncExternalStore:p9,useId:p9,unstable_isNewReconciler:!1},BM={readContext:m8,useCallback:function(l,c){return P4().memoizedState=[l,c===void 0?null:c],l},useContext:m8,useEffect:Bs,useImperativeHandle:function(l,c,v){return v=v!=null?v.concat([l]):null,lC(4194308,4,Zh.bind(null,c,l),v)},useLayoutEffect:function(l,c){return lC(4194308,4,l,c)},useInsertionEffect:function(l,c){return lC(4,2,l,c)},useMemo:function(l,c){var v=P4();return c=c===void 0?null:c,l=l(),v.memoizedState=[l,c],l},useReducer:function(l,c,v){var M=P4();return c=v!==void 0?v(c):c,M.memoizedState=M.baseState=c,l={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:c},M.queue=l,l=l.dispatch=yM.bind(null,S2,l),[M.memoizedState,l]},useRef:function(l){var c=P4();return l={current:l},c.memoizedState=l},useState:Is,useDebugValue:Ss,useDeferredValue:function(l){var c=Is(l),v=c[0],M=c[1];return Bs(function(){var B=y8.transition;y8.transition={};try{M(l)}finally{y8.transition=B}},[l]),v},useTransition:function(){var l=Is(!1),c=l[0];return l=EM.bind(null,l[1]),P4().memoizedState=l,[c,l]},useMutableSource:function(){},useSyncExternalStore:function(l,c,v){var M=S2,B=P4();if(L2){if(v===void 0)throw Error(o(407));v=v()}else{if(v=c(),W2===null)throw Error(o(349));J3&30||Vh(M,c,v)}B.memoizedState=v;var b={value:v,getSnapshot:c};return B.queue=b,Bs(Yh.bind(null,M,b,l),[l]),M.flags|=2048,be(9,$h.bind(null,M,b,v,c),void 0,null),v},useId:function(){var l=P4(),c=W2.identifierPrefix;if(L2){var v=N4,M=D4;v=(M&~(1<<32-D1(M)-1)).toString(32)+v,c=":"+c+"R"+v,v=Re++,0Ys&&(c.flags|=128,M=!0,Ne(B,!1),c.lanes=4194304)}else{if(!M)if(l=CC(b),l!==null){if(c.flags|=128,M=!0,l=l.updateQueue,l!==null&&(c.updateQueue=l,c.flags|=4),Ne(B,!0),B.tail===null&&B.tailMode==="hidden"&&!b.alternate&&!L2)return A9(c),null}else 2*Z2()-B.renderingStartTime>Ys&&v!==1073741824&&(c.flags|=128,M=!0,Ne(B,!1),c.lanes=4194304);B.isBackwards?(b.sibling=c.child,c.child=b):(l=B.last,l!==null?l.sibling=b:c.child=b,B.last=b)}return B.tail!==null?(c=B.tail,B.rendering=c,B.tail=c.sibling,B.renderingStartTime=Z2(),c.sibling=null,l=k2.current,t0(k2,M?l&1|2:l&1),c):(A9(c),null);case 22:case 23:return Zs(),M=c.memoizedState!==null,l!==null&&l.memoizedState!==null!==M&&(c.flags|=8192),M&&c.mode&1?a8&1073741824&&(A9(c),E1&&c.subtreeFlags&6&&(c.flags|=8192)):A9(c),null;case 24:return null;case 25:return null}throw Error(o(156,c.tag))}var QM=s.ReactCurrentOwner,l8=!1;function S9(l,c,v,M){c.child=l===null?Wh(c,null,v,M):$3(c,l.child,v,M)}function pf(l,c,v,M,B){v=v.render;var b=c.ref;return G3(c,B),M=Es(l,c,v,M,b,B),v=ys(),l!==null&&!l8?(c.updateQueue=l.updateQueue,c.flags&=-2053,l.lanes&=~B,H4(l,c,B)):(L2&&v&&gs(c),c.flags|=1,S9(l,c,M,B),c.child)}function Af(l,c,v,M,B){if(l===null){var b=v.type;return typeof b=="function"&&!tl(b)&&b.defaultProps===void 0&&v.compare===null&&v.defaultProps===void 0?(c.tag=15,c.type=b,vf(l,c,b,M,B)):(l=QC(v.type,null,M,c,c.mode,B),l.ref=c.ref,l.return=c,c.child=l)}if(b=l.child,!(l.lanes&B)){var Y=b.memoizedProps;if(v=v.compare,v=v!==null?v:Yn,v(Y,M)&&l.ref===c.ref)return H4(l,c,B)}return c.flags|=1,l=L6(b,M),l.ref=c.ref,l.return=c,c.child=l}function vf(l,c,v,M,B){if(l!==null&&Yn(l.memoizedProps,M)&&l.ref===c.ref)if(l8=!1,(l.lanes&B)!==0)l.flags&131072&&(l8=!0);else return c.lanes=l.lanes,H4(l,c,B);return bs(l,c,v,M,B)}function Lf(l,c,v){var M=c.pendingProps,B=M.children,b=l!==null?l.memoizedState:null;if(M.mode==="hidden")if(!(c.mode&1))c.memoizedState={baseLanes:0,cachePool:null},t0(q3,a8),a8|=v;else if(v&1073741824)c.memoizedState={baseLanes:0,cachePool:null},M=b!==null?b.baseLanes:v,t0(q3,a8),a8|=M;else return l=b!==null?b.baseLanes|v:v,c.lanes=c.childLanes=1073741824,c.memoizedState={baseLanes:l,cachePool:null},c.updateQueue=null,t0(q3,a8),a8|=l,null;else b!==null?(M=b.baseLanes|v,c.memoizedState=null):M=v,t0(q3,a8),a8|=M;return S9(l,c,B,v),c.child}function wf(l,c){var v=c.ref;(l===null&&v!==null||l!==null&&l.ref!==v)&&(c.flags|=512,c.flags|=2097152)}function bs(l,c,v,M,B){var b=H(v)?C8:x0.current;return b=P(c,b),G3(c,B),v=Es(l,c,v,M,b,B),M=ys(),l!==null&&!l8?(c.updateQueue=l.updateQueue,c.flags&=-2053,l.lanes&=~B,H4(l,c,B)):(L2&&M&&gs(c),c.flags|=1,S9(l,c,v,B),c.child)}function xf(l,c,v,M,B){if(H(v)){var b=!0;B1(c)}else b=!1;if(G3(c,B),c.stateNode===null)l!==null&&(l.alternate=null,c.alternate=null,c.flags|=2),Th(c,v,M),fs(c,v,M,B),M=!0;else if(l===null){var Y=c.stateNode,a1=c.memoizedProps;Y.props=a1;var R1=Y.context,G1=v.contextType;typeof G1=="object"&&G1!==null?G1=m8(G1):(G1=H(v)?C8:x0.current,G1=P(c,G1));var i0=v.getDerivedStateFromProps,S0=typeof i0=="function"||typeof Y.getSnapshotBeforeUpdate=="function";S0||typeof Y.UNSAFE_componentWillReceiveProps!="function"&&typeof Y.componentWillReceiveProps!="function"||(a1!==M||R1!==G1)&&Dh(c,Y,M,G1),h6=!1;var v0=c.memoizedState;Y.state=v0,Kn(c,M,Y,B),R1=c.memoizedState,a1!==M||v0!==R1||l2.current||h6?(typeof i0=="function"&&(hs(c,v,i0,M),R1=c.memoizedState),(a1=h6||Qh(c,v,a1,M,v0,R1,G1))?(S0||typeof Y.UNSAFE_componentWillMount!="function"&&typeof Y.componentWillMount!="function"||(typeof Y.componentWillMount=="function"&&Y.componentWillMount(),typeof Y.UNSAFE_componentWillMount=="function"&&Y.UNSAFE_componentWillMount()),typeof Y.componentDidMount=="function"&&(c.flags|=4194308)):(typeof Y.componentDidMount=="function"&&(c.flags|=4194308),c.memoizedProps=M,c.memoizedState=R1),Y.props=M,Y.state=R1,Y.context=G1,M=a1):(typeof Y.componentDidMount=="function"&&(c.flags|=4194308),M=!1)}else{Y=c.stateNode,Sh(l,c),a1=c.memoizedProps,G1=c.type===c.elementType?a1:F8(c.type,a1),Y.props=G1,S0=c.pendingProps,v0=Y.context,R1=v.contextType,typeof R1=="object"&&R1!==null?R1=m8(R1):(R1=H(v)?C8:x0.current,R1=P(c,R1));var a2=v.getDerivedStateFromProps;(i0=typeof a2=="function"||typeof Y.getSnapshotBeforeUpdate=="function")||typeof Y.UNSAFE_componentWillReceiveProps!="function"&&typeof Y.componentWillReceiveProps!="function"||(a1!==S0||v0!==R1)&&Dh(c,Y,M,R1),h6=!1,v0=c.memoizedState,Y.state=v0,Kn(c,M,Y,B);var u0=c.memoizedState;a1!==S0||v0!==u0||l2.current||h6?(typeof a2=="function"&&(hs(c,v,a2,M),u0=c.memoizedState),(G1=h6||Qh(c,v,G1,M,v0,u0,R1)||!1)?(i0||typeof Y.UNSAFE_componentWillUpdate!="function"&&typeof Y.componentWillUpdate!="function"||(typeof Y.componentWillUpdate=="function"&&Y.componentWillUpdate(M,u0,R1),typeof Y.UNSAFE_componentWillUpdate=="function"&&Y.UNSAFE_componentWillUpdate(M,u0,R1)),typeof Y.componentDidUpdate=="function"&&(c.flags|=4),typeof Y.getSnapshotBeforeUpdate=="function"&&(c.flags|=1024)):(typeof Y.componentDidUpdate!="function"||a1===l.memoizedProps&&v0===l.memoizedState||(c.flags|=4),typeof Y.getSnapshotBeforeUpdate!="function"||a1===l.memoizedProps&&v0===l.memoizedState||(c.flags|=1024),c.memoizedProps=M,c.memoizedState=u0),Y.props=M,Y.state=u0,Y.context=R1,M=G1):(typeof Y.componentDidUpdate!="function"||a1===l.memoizedProps&&v0===l.memoizedState||(c.flags|=4),typeof Y.getSnapshotBeforeUpdate!="function"||a1===l.memoizedProps&&v0===l.memoizedState||(c.flags|=1024),M=!1)}return Qs(l,c,v,M,b,B)}function Qs(l,c,v,M,B,b){wf(l,c);var Y=(c.flags&128)!==0;if(!M&&!Y)return B&&P1(c,v,!1),H4(l,c,b);M=c.stateNode,QM.current=c;var a1=Y&&typeof v.getDerivedStateFromError!="function"?null:M.render();return c.flags|=1,l!==null&&Y?(c.child=$3(c,l.child,null,b),c.child=$3(c,null,a1,b)):S9(l,c,a1,b),c.memoizedState=M.state,B&&P1(c,v,!0),c.child}function mf(l){var c=l.stateNode;c.pendingContext?s1(l,c.pendingContext,c.pendingContext!==c.context):c.context&&s1(l,c.context,!1),ws(l,c.containerInfo)}function kf(l,c,v,M,B){return V3(),Ls(B),c.flags|=256,S9(l,c,v,M),c.child}var hC={dehydrated:null,treeContext:null,retryLane:0};function fC(l){return{baseLanes:l,cachePool:null}}function Mf(l,c,v){var M=c.pendingProps,B=k2.current,b=!1,Y=(c.flags&128)!==0,a1;if((a1=Y)||(a1=l!==null&&l.memoizedState===null?!1:(B&2)!==0),a1?(b=!0,c.flags&=-129):(l===null||l.memoizedState!==null)&&(B|=1),t0(k2,B&1),l===null)return vs(c),l=c.memoizedState,l!==null&&(l=l.dehydrated,l!==null)?(c.mode&1?a9(l)?c.lanes=8:c.lanes=1073741824:c.lanes=1,null):(B=M.children,l=M.fallback,b?(M=c.mode,b=c.child,B={mode:"hidden",children:B},!(M&1)&&b!==null?(b.childLanes=0,b.pendingProps=B):b=TC(B,M,0,null),l=P5(l,M,v,null),b.return=c,l.return=c,b.sibling=l,c.child=b,c.child.memoizedState=fC(v),c.memoizedState=hC,l):Ts(c,B));if(B=l.memoizedState,B!==null){if(a1=B.dehydrated,a1!==null){if(Y)return c.flags&256?(c.flags&=-257,gC(l,c,v,Error(o(422)))):c.memoizedState!==null?(c.child=l.child,c.flags|=128,null):(b=M.fallback,B=c.mode,M=TC({mode:"visible",children:M.children},B,0,null),b=P5(b,B,v,null),b.flags|=2,M.return=c,b.return=c,M.sibling=b,c.child=M,c.mode&1&&$3(c,l.child,null,v),c.child.memoizedState=fC(v),c.memoizedState=hC,b);if(!(c.mode&1))c=gC(l,c,v,null);else if(a9(a1))c=gC(l,c,v,Error(o(419)));else if(M=(v&l.childLanes)!==0,l8||M){if(M=W2,M!==null){switch(v&-v){case 4:b=2;break;case 16:b=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:b=32;break;case 536870912:b=268435456;break;default:b=0}M=b&(M.suspendedLanes|v)?0:b,M!==0&&M!==B.retryLane&&(B.retryLane=M,I8(l,M,-1))}el(),c=gC(l,c,v,Error(o(421)))}else I5(a1)?(c.flags|=128,c.child=l.child,c=VM.bind(null,l),R4(a1,c),c=null):(v=B.treeContext,L1&&(s8=u6(a1),o8=c,L2=!0,W8=null,Ee=!1,v!==null&&(k8[M8++]=D4,k8[M8++]=N4,k8[M8++]=S5,D4=v.id,N4=v.overflow,S5=c)),c=Ts(c,c.pendingProps.children),c.flags|=4096);return c}return b?(M=yf(l,c,M.children,M.fallback,v),b=c.child,B=l.child.memoizedState,b.memoizedState=B===null?fC(v):{baseLanes:B.baseLanes|v,cachePool:null},b.childLanes=l.childLanes&~v,c.memoizedState=hC,M):(v=Ef(l,c,M.children,v),c.memoizedState=null,v)}return b?(M=yf(l,c,M.children,M.fallback,v),b=c.child,B=l.child.memoizedState,b.memoizedState=B===null?fC(v):{baseLanes:B.baseLanes|v,cachePool:null},b.childLanes=l.childLanes&~v,c.memoizedState=hC,M):(v=Ef(l,c,M.children,v),c.memoizedState=null,v)}function Ts(l,c){return c=TC({mode:"visible",children:c},l.mode,0,null),c.return=l,l.child=c}function Ef(l,c,v,M){var B=l.child;return l=B.sibling,v=L6(B,{mode:"visible",children:v}),!(c.mode&1)&&(v.lanes=M),v.return=c,v.sibling=null,l!==null&&(M=c.deletions,M===null?(c.deletions=[l],c.flags|=16):M.push(l)),c.child=v}function yf(l,c,v,M,B){var b=c.mode;l=l.child;var Y=l.sibling,a1={mode:"hidden",children:v};return!(b&1)&&c.child!==l?(v=c.child,v.childLanes=0,v.pendingProps=a1,c.deletions=null):(v=L6(l,a1),v.subtreeFlags=l.subtreeFlags&14680064),Y!==null?M=L6(Y,M):(M=P5(M,b,B,null),M.flags|=2),M.return=c,v.return=c,v.sibling=M,c.child=v,M}function gC(l,c,v,M){return M!==null&&Ls(M),$3(c,l.child,null,v),l=Ts(c,c.pendingProps.children),l.flags|=2,c.memoizedState=null,l}function If(l,c,v){l.lanes|=c;var M=l.alternate;M!==null&&(M.lanes|=c),us(l.return,c,v)}function Ds(l,c,v,M,B){var b=l.memoizedState;b===null?l.memoizedState={isBackwards:c,rendering:null,renderingStartTime:0,last:M,tail:v,tailMode:B}:(b.isBackwards=c,b.rendering=null,b.renderingStartTime=0,b.last=M,b.tail=v,b.tailMode=B)}function Bf(l,c,v){var M=c.pendingProps,B=M.revealOrder,b=M.tail;if(S9(l,c,M.children,v),M=k2.current,M&2)M=M&1|2,c.flags|=128;else{if(l!==null&&l.flags&128)e:for(l=c.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&If(l,v,c);else if(l.tag===19)If(l,v,c);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===c)break e;for(;l.sibling===null;){if(l.return===null||l.return===c)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}M&=1}if(t0(k2,M),!(c.mode&1))c.memoizedState=null;else switch(B){case"forwards":for(v=c.child,B=null;v!==null;)l=v.alternate,l!==null&&CC(l)===null&&(B=v),v=v.sibling;v=B,v===null?(B=c.child,c.child=null):(B=v.sibling,v.sibling=null),Ds(c,!1,B,v,b);break;case"backwards":for(v=null,B=c.child,c.child=null;B!==null;){if(l=B.alternate,l!==null&&CC(l)===null){c.child=B;break}l=B.sibling,B.sibling=v,v=B,B=l}Ds(c,!0,v,null,b);break;case"together":Ds(c,!1,null,null,void 0);break;default:c.memoizedState=null}return c.child}function H4(l,c,v){if(l!==null&&(c.dependencies=l.dependencies),K3|=c.lanes,!(v&c.childLanes))return null;if(l!==null&&c.child!==l.child)throw Error(o(153));if(c.child!==null){for(l=c.child,v=L6(l,l.pendingProps),c.child=v,v.return=c;l.sibling!==null;)l=l.sibling,v=v.sibling=L6(l,l.pendingProps),v.return=c;v.sibling=null}return c.child}function TM(l,c,v){switch(c.tag){case 3:mf(c),V3();break;case 5:Gh(c);break;case 1:H(c.type)&&B1(c);break;case 4:ws(c,c.stateNode.containerInfo);break;case 10:Bh(c,c.type._context,c.memoizedProps.value);break;case 13:var M=c.memoizedState;if(M!==null)return M.dehydrated!==null?(t0(k2,k2.current&1),c.flags|=128,null):v&c.child.childLanes?Mf(l,c,v):(t0(k2,k2.current&1),l=H4(l,c,v),l!==null?l.sibling:null);t0(k2,k2.current&1);break;case 19:if(M=(v&c.childLanes)!==0,l.flags&128){if(M)return Bf(l,c,v);c.flags|=128}var B=c.memoizedState;if(B!==null&&(B.rendering=null,B.tail=null,B.lastEffect=null),t0(k2,k2.current),M)break;return null;case 22:case 23:return c.lanes=0,Lf(l,c,v)}return H4(l,c,v)}function DM(l,c){switch(ps(c),c.tag){case 1:return H(c.type)&&Z(),l=c.flags,l&65536?(c.flags=l&-65537|128,c):null;case 3:return X3(),L0(l2),L0(x0),ks(),l=c.flags,l&65536&&!(l&128)?(c.flags=l&-65537|128,c):null;case 5:return xs(c),null;case 13:if(L0(k2),l=c.memoizedState,l!==null&&l.dehydrated!==null){if(c.alternate===null)throw Error(o(340));V3()}return l=c.flags,l&65536?(c.flags=l&-65537|128,c):null;case 19:return L0(k2),null;case 4:return X3(),null;case 10:return cs(c.type._context),null;case 22:case 23:return Zs(),null;case 24:return null;default:return null}}var pC=!1,b5=!1,NM=typeof WeakSet=="function"?WeakSet:Set,X1=null;function AC(l,c){var v=l.ref;if(v!==null)if(typeof v=="function")try{v(null)}catch(M){Y9(l,c,M)}else v.current=null}function Ns(l,c,v){try{v()}catch(M){Y9(l,c,M)}}var Sf=!1;function PM(l,c){for(t1(l.containerInfo),X1=c;X1!==null;)if(l=X1,c=l.child,(l.subtreeFlags&1028)!==0&&c!==null)c.return=l,X1=c;else for(;X1!==null;){l=X1;try{var v=l.alternate;if(l.flags&1024)switch(l.tag){case 0:case 11:case 15:break;case 1:if(v!==null){var M=v.memoizedProps,B=v.memoizedState,b=l.stateNode,Y=b.getSnapshotBeforeUpdate(l.elementType===l.type?M:F8(l.type,M),B);b.__reactInternalSnapshotBeforeUpdate=Y}break;case 3:E1&&F1(l.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(a1){Y9(l,l.return,a1)}if(c=l.sibling,c!==null){c.return=l.return,X1=c;break}X1=l.return}return v=Sf,Sf=!1,v}function Q5(l,c,v){var M=c.updateQueue;if(M=M!==null?M.lastEffect:null,M!==null){var B=M=M.next;do{if((B.tag&l)===l){var b=B.destroy;B.destroy=void 0,b!==void 0&&Ns(c,v,b)}B=B.next}while(B!==M)}}function Pe(l,c){if(c=c.updateQueue,c=c!==null?c.lastEffect:null,c!==null){var v=c=c.next;do{if((v.tag&l)===l){var M=v.create;v.destroy=M()}v=v.next}while(v!==c)}}function Ps(l){var c=l.ref;if(c!==null){var v=l.stateNode;switch(l.tag){case 5:l=o1(v);break;default:l=v}typeof c=="function"?c(l):c.current=l}}function _f(l,c,v){if(s4&&typeof s4.onCommitFiberUnmount=="function")try{s4.onCommitFiberUnmount(Vn,c)}catch{}switch(c.tag){case 0:case 11:case 14:case 15:if(l=c.updateQueue,l!==null&&(l=l.lastEffect,l!==null)){var M=l=l.next;do{var B=M,b=B.destroy;B=B.tag,b!==void 0&&(B&2||B&4)&&Ns(c,v,b),M=M.next}while(M!==l)}break;case 1:if(AC(c,v),l=c.stateNode,typeof l.componentWillUnmount=="function")try{l.props=c.memoizedProps,l.state=c.memoizedState,l.componentWillUnmount()}catch(Y){Y9(c,v,Y)}break;case 5:AC(c,v);break;case 4:E1?Nf(l,c,v):z&&z&&(c=c.stateNode.containerInfo,v=r0(c),O0(c,v))}}function Rf(l,c,v){for(var M=c;;)if(_f(l,M,v),M.child===null||E1&&M.tag===4){if(M===c)break;for(;M.sibling===null;){if(M.return===null||M.return===c)return;M=M.return}M.sibling.return=M.return,M=M.sibling}else M.child.return=M,M=M.child}function bf(l){var c=l.alternate;c!==null&&(l.alternate=null,bf(c)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(c=l.stateNode,c!==null&&b1(c)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}function Qf(l){return l.tag===5||l.tag===3||l.tag===4}function Tf(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||Qf(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function Df(l){if(E1){e:{for(var c=l.return;c!==null;){if(Qf(c))break e;c=c.return}throw Error(o(160))}var v=c;switch(v.tag){case 5:c=v.stateNode,v.flags&32&&(P0(c),v.flags&=-33),v=Tf(l),js(l,v,c);break;case 3:case 4:c=v.stateNode.containerInfo,v=Tf(l),Hs(l,v,c);break;default:throw Error(o(161))}}}function Hs(l,c,v){var M=l.tag;if(M===5||M===6)l=l.stateNode,c?s0(v,l,c):w0(v,l);else if(M!==4&&(l=l.child,l!==null))for(Hs(l,c,v),l=l.sibling;l!==null;)Hs(l,c,v),l=l.sibling}function js(l,c,v){var M=l.tag;if(M===5||M===6)l=l.stateNode,c?g0(v,l,c):l0(v,l);else if(M!==4&&(l=l.child,l!==null))for(js(l,c,v),l=l.sibling;l!==null;)js(l,c,v),l=l.sibling}function Nf(l,c,v){for(var M=c,B=!1,b,Y;;){if(!B){B=M.return;e:for(;;){if(B===null)throw Error(o(160));switch(b=B.stateNode,B.tag){case 5:Y=!1;break e;case 3:b=b.containerInfo,Y=!0;break e;case 4:b=b.containerInfo,Y=!0;break e}B=B.return}B=!0}if(M.tag===5||M.tag===6)Rf(l,M,v),Y?m0(b,M.stateNode):n0(b,M.stateNode);else if(M.tag===18)Y?m1(b,M.stateNode):I1(b,M.stateNode);else if(M.tag===4){if(M.child!==null){b=M.stateNode.containerInfo,Y=!0,M.child.return=M,M=M.child;continue}}else if(_f(l,M,v),M.child!==null){M.child.return=M,M=M.child;continue}if(M===c)break;for(;M.sibling===null;){if(M.return===null||M.return===c)return;M=M.return,M.tag===4&&(B=!1)}M.sibling.return=M.return,M=M.sibling}}function Us(l,c){if(E1){switch(c.tag){case 0:case 11:case 14:case 15:Q5(3,c,c.return),Pe(3,c),Q5(5,c,c.return);return;case 1:return;case 5:var v=c.stateNode;if(v!=null){var M=c.memoizedProps;l=l!==null?l.memoizedProps:M;var B=c.type,b=c.updateQueue;c.updateQueue=null,b!==null&&E0(v,b,B,l,M,c)}return;case 6:if(c.stateNode===null)throw Error(o(162));v=c.memoizedProps,N1(c.stateNode,l!==null?l.memoizedProps:v,v);return;case 3:L1&&l!==null&&l.memoizedState.isDehydrated&&g1(c.stateNode.containerInfo);return;case 12:return;case 13:vC(c);return;case 19:vC(c);return;case 17:return}throw Error(o(163))}switch(c.tag){case 0:case 11:case 14:case 15:Q5(3,c,c.return),Pe(3,c),Q5(5,c,c.return);return;case 12:return;case 13:vC(c);return;case 19:vC(c);return;case 3:L1&&l!==null&&l.memoizedState.isDehydrated&&g1(c.stateNode.containerInfo);break;case 22:case 23:return}e:if(z){switch(c.tag){case 1:case 5:case 6:break e;case 3:case 4:c=c.stateNode,O0(c.containerInfo,c.pendingChildren);break e}throw Error(o(163))}}function vC(l){var c=l.updateQueue;if(c!==null){l.updateQueue=null;var v=l.stateNode;v===null&&(v=l.stateNode=new NM),c.forEach(function(M){var B=$M.bind(null,l,M);v.has(M)||(v.add(M),M.then(B,B))})}}function HM(l,c){for(X1=c;X1!==null;){c=X1;var v=c.deletions;if(v!==null)for(var M=0;M";case wC:return":has("+(Gs(l)||"")+")";case xC:return'[role="'+l.value+'"]';case kC:return'"'+l.value+'"';case mC:return'[data-testname="'+l.value+'"]';default:throw Error(o(365))}}function Ff(l,c){var v=[];l=[l,0];for(var M=0;MB&&(B=Y),M&=~b}if(M=B,M=Z2()-M,M=(120>M?120:480>M?480:1080>M?1080:1920>M?1920:3e3>M?3e3:4320>M?4320:1960*UM(M/1960))-M,10l?16:l,p6===null)var M=!1;else{if(l=p6,p6=null,BC=0,H0&6)throw Error(o(331));var B=H0;for(H0|=4,X1=l.current;X1!==null;){var b=X1,Y=b.child;if(X1.flags&16){var a1=b.deletions;if(a1!==null){for(var R1=0;R1Z2()-$s?T5(l,0):Vs|=v),$9(l,c)}function Jf(l,c){c===0&&(l.mode&1?(c=j0,j0<<=1,!(j0&130023424)&&(j0=4194304)):c=1);var v=_9();l=RC(l,c),l!==null&&(d6(l,c,v),$9(l,v))}function VM(l){var c=l.memoizedState,v=0;c!==null&&(v=c.retryLane),Jf(l,v)}function $M(l,c){var v=0;switch(l.tag){case 13:var M=l.stateNode,B=l.memoizedState;B!==null&&(v=B.retryLane);break;case 19:M=l.stateNode;break;default:throw Error(o(314))}M!==null&&M.delete(c),Jf(l,v)}var qf;qf=function(l,c,v){if(l!==null)if(l.memoizedProps!==c.pendingProps||l2.current)l8=!0;else{if(!(l.lanes&v)&&!(c.flags&128))return l8=!1,TM(l,c,v);l8=!!(l.flags&131072)}else l8=!1,L2&&c.flags&1048576&&Nh(c,tC,c.index);switch(c.lanes=0,c.tag){case 2:var M=c.type;l!==null&&(l.alternate=null,c.alternate=null,c.flags|=2),l=c.pendingProps;var B=P(c,x0.current);G3(c,v),B=Es(null,c,M,l,B,v);var b=ys();return c.flags|=1,typeof B=="object"&&B!==null&&typeof B.render=="function"&&B.$$typeof===void 0?(c.tag=1,c.memoizedState=null,c.updateQueue=null,H(M)?(b=!0,B1(c)):b=!1,c.memoizedState=B.state!==null&&B.state!==void 0?B.state:null,ds(c),B.updater=Zn,c.stateNode=B,B._reactInternals=c,fs(c,M,l,v),c=Qs(null,c,M,!0,b,v)):(c.tag=0,L2&&b&&gs(c),S9(null,c,B,v),c=c.child),c;case 16:M=c.elementType;e:{switch(l!==null&&(l.alternate=null,c.alternate=null,c.flags|=2),l=c.pendingProps,B=M._init,M=B(M._payload),c.type=M,B=c.tag=XM(M),l=F8(M,l),B){case 0:c=bs(null,c,M,l,v);break e;case 1:c=xf(null,c,M,l,v);break e;case 11:c=pf(null,c,M,l,v);break e;case 14:c=Af(null,c,M,F8(M.type,l),v);break e}throw Error(o(306,M,""))}return c;case 0:return M=c.type,B=c.pendingProps,B=c.elementType===M?B:F8(M,B),bs(l,c,M,B,v);case 1:return M=c.type,B=c.pendingProps,B=c.elementType===M?B:F8(M,B),xf(l,c,M,B,v);case 3:e:{if(mf(c),l===null)throw Error(o(387));M=c.pendingProps,b=c.memoizedState,B=b.element,Sh(l,c),Kn(c,M,null,v);var Y=c.memoizedState;if(M=Y.element,L1&&b.isDehydrated)if(b={element:M,isDehydrated:!1,cache:Y.cache,transitions:Y.transitions},c.updateQueue.baseState=b,c.memoizedState=b,c.flags&256){B=Error(o(423)),c=kf(l,c,M,v,B);break e}else if(M!==B){B=Error(o(424)),c=kf(l,c,M,v,B);break e}else for(L1&&(s8=c6(c.stateNode.containerInfo),o8=c,L2=!0,W8=null,Ee=!1),v=Wh(c,null,M,v),c.child=v;v;)v.flags=v.flags&-3|4096,v=v.sibling;else{if(V3(),M===B){c=H4(l,c,v);break e}S9(l,c,M,v)}c=c.child}return c;case 5:return Gh(c),l===null&&vs(c),M=c.type,B=c.pendingProps,b=l!==null?l.memoizedProps:null,Y=B.children,O(M,B)?Y=null:b!==null&&O(M,b)&&(c.flags|=32),wf(l,c),S9(l,c,Y,v),c.child;case 6:return l===null&&vs(c),null;case 13:return Mf(l,c,v);case 4:return ws(c,c.stateNode.containerInfo),M=c.pendingProps,l===null?c.child=$3(c,null,M,v):S9(l,c,M,v),c.child;case 11:return M=c.type,B=c.pendingProps,B=c.elementType===M?B:F8(M,B),pf(l,c,M,B,v);case 7:return S9(l,c,c.pendingProps,v),c.child;case 8:return S9(l,c,c.pendingProps.children,v),c.child;case 12:return S9(l,c,c.pendingProps.children,v),c.child;case 10:e:{if(M=c.type._context,B=c.pendingProps,b=c.memoizedProps,Y=B.value,Bh(c,M,Y),b!==null)if(l4(b.value,Y)){if(b.children===B.children&&!l2.current){c=H4(l,c,v);break e}}else for(b=c.child,b!==null&&(b.return=c);b!==null;){var a1=b.dependencies;if(a1!==null){Y=b.child;for(var R1=a1.firstContext;R1!==null;){if(R1.context===M){if(b.tag===1){R1=T4(-1,v&-v),R1.tag=2;var G1=b.updateQueue;if(G1!==null){G1=G1.shared;var i0=G1.pending;i0===null?R1.next=R1:(R1.next=i0.next,i0.next=R1),G1.pending=R1}}b.lanes|=v,R1=b.alternate,R1!==null&&(R1.lanes|=v),us(b.return,v,c),a1.lanes|=v;break}R1=R1.next}}else if(b.tag===10)Y=b.type===c.type?null:b.child;else if(b.tag===18){if(Y=b.return,Y===null)throw Error(o(341));Y.lanes|=v,a1=Y.alternate,a1!==null&&(a1.lanes|=v),us(Y,v,c),Y=b.sibling}else Y=b.child;if(Y!==null)Y.return=b;else for(Y=b;Y!==null;){if(Y===c){Y=null;break}if(b=Y.sibling,b!==null){b.return=Y.return,Y=b;break}Y=Y.return}b=Y}S9(l,c,B.children,v),c=c.child}return c;case 9:return B=c.type,M=c.pendingProps.children,G3(c,v),B=m8(B),M=M(B),c.flags|=1,S9(l,c,M,v),c.child;case 14:return M=c.type,B=F8(M,c.pendingProps),B=F8(M.type,B),Af(l,c,M,B,v);case 15:return vf(l,c,c.type,c.pendingProps,v);case 17:return M=c.type,B=c.pendingProps,B=c.elementType===M?B:F8(M,B),l!==null&&(l.alternate=null,c.alternate=null,c.flags|=2),c.tag=1,H(M)?(l=!0,B1(c)):l=!1,G3(c,v),Th(c,M,B),fs(c,M,B,v),Qs(null,c,M,!0,l,v);case 19:return Bf(l,c,v);case 22:return Lf(l,c,v)}throw Error(o(156,c.tag))};function Kf(l,c){return rs(l,c)}function YM(l,c,v,M){this.tag=l,this.key=v,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=c,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=M,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function B8(l,c,v,M){return new YM(l,c,v,M)}function tl(l){return l=l.prototype,!(!l||!l.isReactComponent)}function XM(l){if(typeof l=="function")return tl(l)?1:0;if(l!=null){if(l=l.$$typeof,l===y)return 11;if(l===E)return 14}return 2}function L6(l,c){var v=l.alternate;return v===null?(v=B8(l.tag,c,l.key,l.mode),v.elementType=l.elementType,v.type=l.type,v.stateNode=l.stateNode,v.alternate=l,l.alternate=v):(v.pendingProps=c,v.type=l.type,v.flags=0,v.subtreeFlags=0,v.deletions=null),v.flags=l.flags&14680064,v.childLanes=l.childLanes,v.lanes=l.lanes,v.child=l.child,v.memoizedProps=l.memoizedProps,v.memoizedState=l.memoizedState,v.updateQueue=l.updateQueue,c=l.dependencies,v.dependencies=c===null?null:{lanes:c.lanes,firstContext:c.firstContext},v.sibling=l.sibling,v.index=l.index,v.ref=l.ref,v}function QC(l,c,v,M,B,b){var Y=2;if(M=l,typeof l=="function")tl(l)&&(Y=1);else if(typeof l=="string")Y=5;else e:switch(l){case g:return P5(v.children,B,b,c);case p:Y=8,B|=8;break;case A:return l=B8(12,v,c,B|2),l.elementType=A,l.lanes=b,l;case m:return l=B8(13,v,c,B),l.elementType=m,l.lanes=b,l;case L:return l=B8(19,v,c,B),l.elementType=L,l.lanes=b,l;case I:return TC(v,B,b,c);default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case w:Y=10;break e;case x:Y=9;break e;case y:Y=11;break e;case E:Y=14;break e;case k:Y=16,M=null;break e}throw Error(o(130,l==null?l:typeof l,""))}return c=B8(Y,v,c,B),c.elementType=l,c.type=M,c.lanes=b,c}function P5(l,c,v,M){return l=B8(7,l,M,c),l.lanes=v,l}function TC(l,c,v,M){return l=B8(22,l,M,c),l.elementType=I,l.lanes=v,l.stateNode={},l}function nl(l,c,v){return l=B8(6,l,null,c),l.lanes=v,l}function Cl(l,c,v){return c=B8(4,l.children!==null?l.children:[],l.key,c),c.lanes=v,c.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},c}function JM(l,c,v,M,B){this.tag=c,this.containerInfo=l,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=k1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=i8(0),this.expirationTimes=i8(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=i8(0),this.identifierPrefix=M,this.onRecoverableError=B,L1&&(this.mutableSourceEagerHydrationData=null)}function Zf(l,c,v,M,B,b,Y,a1,R1){return l=new JM(l,c,v,a1,R1),c===1?(c=1,b===!0&&(c|=8)):c=0,b=B8(3,null,null,c),l.current=b,b.stateNode=l,b.memoizedState={element:M,isDehydrated:v,cache:null,transitions:null},ds(b),l}function eg(l){if(!l)return f9;l=l._reactInternals;e:{if(q(l)!==l||l.tag!==1)throw Error(o(170));var c=l;do{switch(c.tag){case 3:c=c.stateNode.context;break e;case 1:if(H(c.type)){c=c.stateNode.__reactInternalMemoizedMergedChildContext;break e}}c=c.return}while(c!==null);throw Error(o(171))}if(l.tag===1){var v=l.type;if(H(v))return p1(l,v,c)}return c}function tg(l){var c=l._reactInternals;if(c===void 0)throw typeof l.render=="function"?Error(o(188)):(l=Object.keys(l).join(","),Error(o(268,l)));return l=K(c),l===null?null:l.stateNode}function ng(l,c){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var v=l.retryLane;l.retryLane=v!==0&&v=G1&&b>=S0&&B<=i0&&Y<=v0){l.splice(c,1);break}else if(M!==G1||v.width!==R1.width||v0Y){if(!(b!==S0||v.height!==R1.height||i0B)){G1>M&&(R1.width+=G1-M,R1.x=M),i0b&&(R1.height+=S0-b,R1.y=b),v0v&&(v=Y)),Y ")+` - -No matching component was found for: - `)+l.join(" > ")}return null},n.getPublicRootInstance=function(l){if(l=l.current,!l.child)return null;switch(l.child.tag){case 5:return o1(l.child.stateNode);default:return l.child.stateNode}},n.injectIntoDevTools=function(l){if(l={bundleType:l.bundleType,version:l.version,rendererPackageName:l.rendererPackageName,rendererConfig:l.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:s.ReactCurrentDispatcher,findHostInstanceByFiber:qM,findFiberByHostInstance:l.findFiberByHostInstance||KM,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")l=!1;else{var c=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(c.isDisabled||!c.supportsFiber)l=!0;else{try{Vn=c.inject(l),s4=c}catch{}l=!!c.checkDCE}}return l},n.isAlreadyRendering=function(){return!1},n.observeVisibleRects=function(l,c,v,M){if(!D)throw Error(o(363));l=Os(l,c);var B=q1(l,v,M).disconnect;return{disconnect:function(){B()}}},n.registerMutableSourceForHydration=function(l,c){var v=c._getVersion;v=v(c._source),l.mutableSourceEagerHydrationData==null?l.mutableSourceEagerHydrationData=[c,v]:l.mutableSourceEagerHydrationData.push(c,v)},n.runWithPriority=function(l,c){var v=Y0;try{return Y0=l,c()}finally{Y0=v}},n.shouldError=function(){return null},n.shouldSuspend=function(){return!1},n.updateContainer=function(l,c,v,M){var B=c.current,b=_9(),Y=A6(B);return v=eg(v),c.context===null?c.context=v:c.pendingContext=v,c=T4(b,Y),c.payload={element:l},M=M===void 0?null:M,M!==null&&(c.callback=M),f6(B,c),l=I8(B,Y,b),l!==null&&qn(l,B,Y),Y},n};ek.exports=mD;var kD=ek.exports;const MD=yv(kD),fh={},ED=t=>void Object.assign(fh,t);function yD(t,e){function n(g,{args:p=[],attach:A,...w},x){let y=`${g[0].toUpperCase()}${g.slice(1)}`,m;if(g==="primitive"){if(w.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const L=w.object;m=y7(L,{type:g,root:x,attach:A,primitive:!0})}else{const L=fh[y];if(!L)throw new Error(`R3F: ${y} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(p))throw new Error("R3F: The args prop must be an array!");m=y7(new L(...p),{type:g,root:x,attach:A,memoizedProps:{args:p}})}return m.__r3f.attach===void 0&&(m instanceof b0?m.__r3f.attach="geometry":m instanceof s9&&(m.__r3f.attach="material")),y!=="inject"&&pa(m,w),m}function C(g,p){let A=!1;if(p){var w,x;(w=p.__r3f)!=null&&w.attach?ga(g,p,p.__r3f.attach):p.isObject3D&&g.isObject3D&&(g.add(p),A=!0),A||(x=g.__r3f)==null||x.objects.push(p),p.__r3f||y7(p,{}),p.__r3f.parent=g,pu(p),I7(p)}}function r(g,p,A){let w=!1;if(p){var x,y;if((x=p.__r3f)!=null&&x.attach)ga(g,p,p.__r3f.attach);else if(p.isObject3D&&g.isObject3D){p.parent=g,p.dispatchEvent({type:"added"});const m=g.children.filter(E=>E!==p),L=m.indexOf(A);g.children=[...m.slice(0,L),p,...m.slice(L)],w=!0}w||(y=g.__r3f)==null||y.objects.push(p),p.__r3f||y7(p,{}),p.__r3f.parent=g,pu(p),I7(p)}}function i(g,p,A=!1){g&&[...g].forEach(w=>o(p,w,A))}function o(g,p,A){if(p){var w,x,y;if(p.__r3f&&(p.__r3f.parent=null),(w=g.__r3f)!=null&&w.objects&&(g.__r3f.objects=g.__r3f.objects.filter(I=>I!==p)),(x=p.__r3f)!=null&&x.attach)YA(g,p,p.__r3f.attach);else if(p.isObject3D&&g.isObject3D){var m;g.remove(p),(m=p.__r3f)!=null&&m.root&&QD(p.__r3f.root,p)}const E=(y=p.__r3f)==null?void 0:y.primitive,k=!E&&(A===void 0?p.dispose!==null:A);if(!E){var L;i((L=p.__r3f)==null?void 0:L.objects,p,k),i(p.children,p,k)}if(delete p.__r3f,k&&p.dispose&&p.type!=="Scene"){const I=()=>{try{p.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?fu.unstable_scheduleCallback(fu.unstable_IdlePriority,I):I()}I7(g)}}function s(g,p,A,w){var x;const y=(x=g.__r3f)==null?void 0:x.parent;if(!y)return;const m=n(p,A,g.__r3f.root);if(g.children){for(const L of g.children)L.__r3f&&C(m,L);g.children=g.children.filter(L=>!L.__r3f)}g.__r3f.objects.forEach(L=>C(m,L)),g.__r3f.objects=[],g.__r3f.autoRemovedBeforeAppend||o(y,g),m.parent&&(m.__r3f.autoRemovedBeforeAppend=!0),C(y,m),m.raycast&&m.__r3f.eventCount&&m.__r3f.root.getState().internal.interaction.push(m),[w,w.alternate].forEach(L=>{L!==null&&(L.stateNode=m,L.ref&&(typeof L.ref=="function"?L.ref(m):L.ref.current=m))})}const a=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:MD({createInstance:n,removeChild:o,appendChild:C,appendInitialChild:C,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(g,p)=>{if(!p)return;const A=g.getState().scene;A.__r3f&&(A.__r3f.root=g,C(A,p))},removeChildFromContainer:(g,p)=>{p&&o(g.getState().scene,p)},insertInContainerBefore:(g,p,A)=>{if(!p||!A)return;const w=g.getState().scene;w.__r3f&&r(w,p,A)},getRootHostContext:()=>null,getChildHostContext:g=>g,finalizeInitialChildren(g){var p;return!!((p=g==null?void 0:g.__r3f)!=null?p:{}).handlers},prepareUpdate(g,p,A,w){var x;if(((x=g==null?void 0:g.__r3f)!=null?x:{}).primitive&&w.object&&w.object!==g)return[!0];{const{args:m=[],children:L,...E}=w,{args:k=[],children:I,...Q}=A;if(!Array.isArray(m))throw new Error("R3F: the args prop must be an array!");if(m.some((T,j)=>T!==k[j]))return[!0];const _=ak(g,E,Q,!0);return _.changes.length?[!1,_]:null}},commitUpdate(g,[p,A],w,x,y,m){p?s(g,w,y,m):pa(g,A)},commitMount(g,p,A,w){var x;const y=(x=g.__r3f)!=null?x:{};g.raycast&&y.handlers&&y.eventCount&&g.__r3f.root.getState().internal.interaction.push(g)},getPublicInstance:g=>g,prepareForCommit:()=>null,preparePortalMount:g=>y7(g.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(g){var p;const{attach:A,parent:w}=(p=g.__r3f)!=null?p:{};A&&w&&YA(w,g,A),g.isObject3D&&(g.visible=!1),I7(g)},unhideInstance(g,p){var A;const{attach:w,parent:x}=(A=g.__r3f)!=null?A:{};w&&x&&ga(x,g,w),(g.isObject3D&&p.visible==null||p.visible)&&(g.visible=!0),I7(g)},createTextInstance:a,hideTextInstance:a,unhideTextInstance:a,getCurrentEventPriority:()=>e?e():z7.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&w2.fun(performance.now)?performance.now:w2.fun(Date.now)?Date.now:()=>0,scheduleTimeout:w2.fun(setTimeout)?setTimeout:void 0,cancelTimeout:w2.fun(clearTimeout)?clearTimeout:void 0}),applyProps:pa}}var OA,zA;const fa=t=>"colorSpace"in t||"outputColorSpace"in t,Ck=()=>{var t;return(t=fh.ColorManagement)!=null?t:null},rk=t=>t&&t.isOrthographicCamera,ID=t=>t&&t.hasOwnProperty("current"),Nn=typeof window<"u"&&((OA=window.document)!=null&&OA.createElement||((zA=window.navigator)==null?void 0:zA.product)==="ReactNative")?u.useLayoutEffect:u.useEffect;function ik(t){const e=u.useRef(t);return Nn(()=>void(e.current=t),[t]),e}function BD({set:t}){return Nn(()=>(t(new Promise(()=>null)),()=>t(!1)),[t]),null}class ok extends u.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}ok.getDerivedStateFromError=()=>({error:!0});const sk="__default",VA=new Map,SD=t=>t&&!!t.memoized&&!!t.changes;function lk(t){var e;const n=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(t)?Math.min(Math.max(t[0],n),t[1]):t}const st=t=>{var e;return(e=t.__r3f)==null?void 0:e.root.getState()},w2={obj:t=>t===Object(t)&&!w2.arr(t)&&typeof t!="function",fun:t=>typeof t=="function",str:t=>typeof t=="string",num:t=>typeof t=="number",boo:t=>typeof t=="boolean",und:t=>t===void 0,arr:t=>Array.isArray(t),equ(t,e,{arrays:n="shallow",objects:C="reference",strict:r=!0}={}){if(typeof t!=typeof e||!!t!=!!e)return!1;if(w2.str(t)||w2.num(t))return t===e;const i=w2.obj(t);if(i&&C==="reference")return t===e;const o=w2.arr(t);if(o&&n==="reference")return t===e;if((o||i)&&t===e)return!0;let s;for(s in t)if(!(s in e))return!1;if(i&&n==="shallow"&&C==="shallow"){for(s in r?e:t)if(!w2.equ(t[s],e[s],{strict:r,objects:"reference"}))return!1}else for(s in r?e:t)if(t[s]!==e[s])return!1;if(w2.und(s)){if(o&&t.length===0&&e.length===0||i&&Object.keys(t).length===0&&Object.keys(e).length===0)return!0;if(t!==e)return!1}return!0}};function _D(t){t.dispose&&t.type!=="Scene"&&t.dispose();for(const e in t)e.dispose==null||e.dispose(),delete t[e]}function y7(t,e){const n=t;return n.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},t}function gu(t,e){let n=t;if(e.includes("-")){const C=e.split("-"),r=C.pop();return n=C.reduce((i,o)=>i[o],t),{target:n,key:r}}else return{target:n,key:e}}const $A=/-\d+$/;function ga(t,e,n){if(w2.str(n)){if($A.test(n)){const i=n.replace($A,""),{target:o,key:s}=gu(t,i);Array.isArray(o[s])||(o[s]=[])}const{target:C,key:r}=gu(t,n);e.__r3f.previousAttach=C[r],C[r]=e}else e.__r3f.previousAttach=n(t,e)}function YA(t,e,n){var C,r;if(w2.str(n)){const{target:i,key:o}=gu(t,n),s=e.__r3f.previousAttach;s===void 0?delete i[o]:i[o]=s}else(C=e.__r3f)==null||C.previousAttach==null||C.previousAttach(t,e);(r=e.__r3f)==null||delete r.previousAttach}function ak(t,{children:e,key:n,ref:C,...r},{children:i,key:o,ref:s,...a}={},d=!1){var g;const p=(g=t==null?void 0:t.__r3f)!=null?g:{},A=Object.entries(r),w=[];if(d){const y=Object.keys(a);for(let m=0;m{var L;if((L=t.__r3f)!=null&&L.primitive&&y==="object"||w2.equ(m,a[y]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(y))return w.push([y,m,!0,[]]);let E=[];y.includes("-")&&(E=y.split("-")),w.push([y,m,!1,E]);for(const k in r){const I=r[k];k.startsWith(`${y}-`)&&w.push([k,I,!1,k.split("-")])}});const x={...r};return p.memoizedProps&&p.memoizedProps.args&&(x.args=p.memoizedProps.args),p.memoizedProps&&p.memoizedProps.attach&&(x.attach=p.memoizedProps.attach),{memoized:x,changes:w}}const RD=typeof process<"u"&&!1;function pa(t,e){var n,C,r;const i=(n=t.__r3f)!=null?n:{},o=i.root,s=(C=o==null||o.getState==null?void 0:o.getState())!=null?C:{},{memoized:a,changes:d}=SD(e)?e:ak(t,e),g=i.eventCount;t.__r3f&&(t.__r3f.memoizedProps=a);for(let A=0;Ak[I],t),!(E&&E.set))){const[k,...I]=m.reverse();L=I.reverse().reduce((Q,_)=>Q[_],t),w=k}if(x===sk+"remove")if(L.constructor){let k=VA.get(L.constructor);k||(k=new L.constructor,VA.set(L.constructor,k)),x=k[w]}else x=0;if(y)x?i.handlers[w]=x:delete i.handlers[w],i.eventCount=Object.keys(i.handlers).length;else if(E&&E.set&&(E.copy||E instanceof A3)){if(Array.isArray(x))E.fromArray?E.fromArray(x):E.set(...x);else if(E.copy&&x&&x.constructor&&(RD?E.constructor.name===x.constructor.name:E.constructor===x.constructor))E.copy(x);else if(x!==void 0){const k=E instanceof J1;!k&&E.setScalar?E.setScalar(x):E instanceof A3&&x instanceof A3?E.mask=x.mask:E.set(x),!Ck()&&!s.linear&&k&&E.convertSRGBToLinear()}}else if(L[w]=x,L[w]instanceof m2&&L[w].format===D9&&L[w].type===E4){const k=L[w];fa(k)&&fa(s.gl)?k.colorSpace=s.gl.outputColorSpace:k.encoding=s.gl.outputEncoding}I7(t)}if(i.parent&&s.internal&&t.raycast&&g!==i.eventCount){const A=s.internal.interaction.indexOf(t);A>-1&&s.internal.interaction.splice(A,1),i.eventCount&&s.internal.interaction.push(t)}return!(d.length===1&&d[0][0]==="onUpdate")&&d.length&&(r=t.__r3f)!=null&&r.parent&&pu(t),t}function I7(t){var e,n;const C=(e=t.__r3f)==null||(n=e.root)==null||n.getState==null?void 0:n.getState();C&&C.internal.frames===0&&C.invalidate()}function pu(t){t.onUpdate==null||t.onUpdate(t)}function ck(t,e){t.manual||(rk(t)?(t.left=e.width/-2,t.right=e.width/2,t.top=e.height/2,t.bottom=e.height/-2):t.aspect=e.width/e.height,t.updateProjectionMatrix(),t.updateMatrixWorld())}function Gr(t){return(t.eventObject||t.object).uuid+"/"+t.index+t.instanceId}function bD(){var t;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return z7.DefaultEventPriority;switch((t=e.event)==null?void 0:t.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return z7.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return z7.ContinuousEventPriority;default:return z7.DefaultEventPriority}}function uk(t,e,n,C){const r=n.get(e);r&&(n.delete(e),n.size===0&&(t.delete(C),r.target.releasePointerCapture(C)))}function QD(t,e){const{internal:n}=t.getState();n.interaction=n.interaction.filter(C=>C!==e),n.initialHits=n.initialHits.filter(C=>C!==e),n.hovered.forEach((C,r)=>{(C.eventObject===e||C.object===e)&&n.hovered.delete(r)}),n.capturedMap.forEach((C,r)=>{uk(n.capturedMap,e,C,r)})}function TD(t){function e(a){const{internal:d}=t.getState(),g=a.offsetX-d.initialClick[0],p=a.offsetY-d.initialClick[1];return Math.round(Math.sqrt(g*g+p*p))}function n(a){return a.filter(d=>["Move","Over","Enter","Out","Leave"].some(g=>{var p;return(p=d.__r3f)==null?void 0:p.handlers["onPointer"+g]}))}function C(a,d){const g=t.getState(),p=new Set,A=[],w=d?d(g.internal.interaction):g.internal.interaction;for(let L=0;L{const k=st(L.object),I=st(E.object);return!k||!I?L.distance-E.distance:I.events.priority-k.events.priority||L.distance-E.distance}).filter(L=>{const E=Gr(L);return p.has(E)?!1:(p.add(E),!0)});g.events.filter&&(y=g.events.filter(y,g));for(const L of y){let E=L.object;for(;E;){var m;(m=E.__r3f)!=null&&m.eventCount&&A.push({...L,eventObject:E}),E=E.parent}}if("pointerId"in a&&g.internal.capturedMap.has(a.pointerId))for(let L of g.internal.capturedMap.get(a.pointerId).values())p.has(Gr(L.intersection))||A.push(L.intersection);return A}function r(a,d,g,p){const A=t.getState();if(a.length){const w={stopped:!1};for(const x of a){const y=st(x.object)||A,{raycaster:m,pointer:L,camera:E,internal:k}=y,I=new G(L.x,L.y,0).unproject(E),Q=R=>{var N,K;return(N=(K=k.capturedMap.get(R))==null?void 0:K.has(x.eventObject))!=null?N:!1},_=R=>{const N={intersection:x,target:d.target};k.capturedMap.has(R)?k.capturedMap.get(R).set(x.eventObject,N):k.capturedMap.set(R,new Map([[x.eventObject,N]])),d.target.setPointerCapture(R)},T=R=>{const N=k.capturedMap.get(R);N&&uk(k.capturedMap,x.eventObject,N,R)};let j={};for(let R in d){let N=d[R];typeof N!="function"&&(j[R]=N)}let q={...x,...j,pointer:L,intersections:a,stopped:w.stopped,delta:g,unprojectedPoint:I,ray:m.ray,camera:E,stopPropagation(){const R="pointerId"in d&&k.capturedMap.get(d.pointerId);if((!R||R.has(x.eventObject))&&(q.stopped=w.stopped=!0,k.hovered.size&&Array.from(k.hovered.values()).find(N=>N.eventObject===x.eventObject))){const N=a.slice(0,a.indexOf(x));i([...N,x])}},target:{hasPointerCapture:Q,setPointerCapture:_,releasePointerCapture:T},currentTarget:{hasPointerCapture:Q,setPointerCapture:_,releasePointerCapture:T},nativeEvent:d};if(p(q),w.stopped===!0)break}}return a}function i(a){const{internal:d}=t.getState();for(const g of d.hovered.values())if(!a.length||!a.find(p=>p.object===g.object&&p.index===g.index&&p.instanceId===g.instanceId)){const A=g.eventObject.__r3f,w=A==null?void 0:A.handlers;if(d.hovered.delete(Gr(g)),A!=null&&A.eventCount){const x={...g,intersections:a};w.onPointerOut==null||w.onPointerOut(x),w.onPointerLeave==null||w.onPointerLeave(x)}}}function o(a,d){for(let g=0;gi([]);case"onLostPointerCapture":return d=>{const{internal:g}=t.getState();"pointerId"in d&&g.capturedMap.has(d.pointerId)&&requestAnimationFrame(()=>{g.capturedMap.has(d.pointerId)&&(g.capturedMap.delete(d.pointerId),i([]))})}}return function(g){const{onPointerMissed:p,internal:A}=t.getState();A.lastEvent.current=g;const w=a==="onPointerMove",x=a==="onClick"||a==="onContextMenu"||a==="onDoubleClick",m=C(g,w?n:void 0),L=x?e(g):0;a==="onPointerDown"&&(A.initialClick=[g.offsetX,g.offsetY],A.initialHits=m.map(k=>k.eventObject)),x&&!m.length&&L<=2&&(o(g,A.interaction),p&&p(g)),w&&i(m);function E(k){const I=k.eventObject,Q=I.__r3f,_=Q==null?void 0:Q.handlers;if(Q!=null&&Q.eventCount)if(w){if(_.onPointerOver||_.onPointerEnter||_.onPointerOut||_.onPointerLeave){const T=Gr(k),j=A.hovered.get(T);j?j.stopped&&k.stopPropagation():(A.hovered.set(T,k),_.onPointerOver==null||_.onPointerOver(k),_.onPointerEnter==null||_.onPointerEnter(k))}_.onPointerMove==null||_.onPointerMove(k)}else{const T=_[a];T?(!x||A.initialHits.includes(I))&&(o(g,A.interaction.filter(j=>!A.initialHits.includes(j))),T(k)):x&&A.initialHits.includes(I)&&o(g,A.interaction.filter(j=>!A.initialHits.includes(j)))}}r(m,g,L,E)}}return{handlePointer:s}}const DD=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],dk=t=>!!(t!=null&&t.render),gh=u.createContext(null),ND=(t,e)=>{const n=Zm((s,a)=>{const d=new G,g=new G,p=new G;function A(L=a().camera,E=g,k=a().size){const{width:I,height:Q,top:_,left:T}=k,j=I/Q;E instanceof G?p.copy(E):p.set(...E);const q=L.getWorldPosition(d).distanceTo(p);if(rk(L))return{width:I/L.zoom,height:Q/L.zoom,top:_,left:T,factor:1,distance:q,aspect:j};{const R=L.fov*Math.PI/180,N=2*Math.tan(R/2)*q,K=N*(I/Q);return{width:K,height:N,top:_,left:T,factor:I/K,distance:q,aspect:j}}}let w;const x=L=>s(E=>({performance:{...E.performance,current:L}})),y=new y1;return{set:s,get:a,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(L=1)=>t(a(),L),advance:(L,E)=>e(L,E,a()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new ah,pointer:y,mouse:y,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const L=a();w&&clearTimeout(w),L.performance.current!==L.performance.min&&x(L.performance.min),w=setTimeout(()=>x(a().performance.max),L.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:A},setEvents:L=>s(E=>({...E,events:{...E.events,...L}})),setSize:(L,E,k,I,Q)=>{const _=a().camera,T={width:L,height:E,top:I||0,left:Q||0,updateStyle:k};s(j=>({size:T,viewport:{...j.viewport,...A(_,g,T)}}))},setDpr:L=>s(E=>{const k=lk(L);return{viewport:{...E.viewport,dpr:k,initialDpr:E.viewport.initialDpr||k}}}),setFrameloop:(L="always")=>{const E=a().clock;E.stop(),E.elapsedTime=0,L!=="never"&&(E.start(),E.elapsedTime=0),s(()=>({frameloop:L}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:u.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(L,E,k)=>{const I=a().internal;return I.priority=I.priority+(E>0?1:0),I.subscribers.push({ref:L,priority:E,store:k}),I.subscribers=I.subscribers.sort((Q,_)=>Q.priority-_.priority),()=>{const Q=a().internal;Q!=null&&Q.subscribers&&(Q.priority=Q.priority-(E>0?1:0),Q.subscribers=Q.subscribers.filter(_=>_.ref!==L))}}}}}),C=n.getState();let r=C.size,i=C.viewport.dpr,o=C.camera;return n.subscribe(()=>{const{camera:s,size:a,viewport:d,gl:g,set:p}=n.getState();if(a.width!==r.width||a.height!==r.height||d.dpr!==i){var A;r=a,i=d.dpr,ck(s,a),g.setPixelRatio(d.dpr);const w=(A=a.updateStyle)!=null?A:typeof HTMLCanvasElement<"u"&&g.domElement instanceof HTMLCanvasElement;g.setSize(a.width,a.height,w)}s!==o&&(o=s,p(w=>({viewport:{...w.viewport,...w.viewport.getCurrentViewport(s)}})))}),n.subscribe(s=>t(s)),n};let Or,PD=new Set,HD=new Set,jD=new Set;function Aa(t,e){if(t.size)for(const{callback:n}of t.values())n(e)}function lt(t,e){switch(t){case"before":return Aa(PD,e);case"after":return Aa(HD,e);case"tail":return Aa(jD,e)}}let va,La;function wa(t,e,n){let C=e.clock.getDelta();for(e.frameloop==="never"&&typeof t=="number"&&(C=t-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=t),va=e.internal.subscribers,Or=0;Or0)&&!((d=r.gl.xr)!=null&&d.isPresenting)&&(n+=wa(a,r))}if(lt("after",a),n===0)return lt("tail",a),e=!1,cancelAnimationFrame(C)}function o(a,d=1){var g;if(!a)return t.forEach(p=>o(p.store.getState()),d);(g=a.gl.xr)!=null&&g.isPresenting||!a.internal.active||a.frameloop==="never"||(a.internal.frames=Math.min(60,a.internal.frames+d),e||(e=!0,requestAnimationFrame(i)))}function s(a,d=!0,g,p){if(d&<("before",a),g)wa(a,g,p);else for(const A of t.values())wa(a,A.store.getState());d&<("after",a)}return{loop:i,invalidate:o,advance:s}}function Pn(){const t=u.useContext(gh);if(!t)throw new Error("R3F: Hooks can only be used within the Canvas component!");return t}function ph(t=n=>n,e){return Pn()(t,e)}function d5(t,e=0){const n=Pn(),C=n.getState().internal.subscribe,r=ik(t);return Nn(()=>C(r,e,n),[e,C,n]),null}const ae=new Map,{invalidate:XA,advance:JA}=UD(ae),{reconciler:wn,applyProps:m7}=yD(ae,bD),k7={objects:"shallow",strict:!1},FD=(t,e)=>{const n=typeof t=="function"?t(e):t;return dk(n)?n:new zd({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...t})};function WD(t,e){const n=typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement;if(e){const{width:C,height:r,top:i,left:o,updateStyle:s=n}=e;return{width:C,height:r,top:i,left:o,updateStyle:s}}else if(typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement&&t.parentElement){const{width:C,height:r,top:i,left:o}=t.parentElement.getBoundingClientRect();return{width:C,height:r,top:i,left:o,updateStyle:n}}else if(typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas)return{width:t.width,height:t.height,top:0,left:0,updateStyle:n};return{width:0,height:0,top:0,left:0}}function GD(t){const e=ae.get(t),n=e==null?void 0:e.fiber,C=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,i=C||ND(XA,JA),o=n||wn.createContainer(i,z7.ConcurrentRoot,null,!1,null,"",r,null);e||ae.set(t,{fiber:o,store:i});let s,a=!1,d;return{configure(g={}){let{gl:p,size:A,scene:w,events:x,onCreated:y,shadows:m=!1,linear:L=!1,flat:E=!1,legacy:k=!1,orthographic:I=!1,frameloop:Q="always",dpr:_=[1,2],performance:T,raycaster:j,camera:q,onPointerMissed:R}=g,N=i.getState(),K=N.gl;N.gl||N.set({gl:K=FD(p,t)});let A1=N.raycaster;A1||N.set({raycaster:A1=new hh});const{params:X,...c1}=j||{};if(w2.equ(c1,A1,k7)||m7(A1,{...c1}),w2.equ(X,A1.params,k7)||m7(A1,{params:{...A1.params,...X}}),!N.camera||N.camera===d&&!w2.equ(d,q,k7)){d=q;const x1=q instanceof Bn,U1=x1?q:I?new Rn(0,0,0,0,.1,1e3):new Y2(75,0,.1,1e3);x1||(U1.position.z=5,q&&m7(U1,q),!N.camera&&!(q!=null&&q.rotation)&&U1.lookAt(0,0,0)),N.set({camera:U1}),A1.camera=U1}if(!N.scene){let x1;w instanceof dn?x1=w:(x1=new dn,w&&m7(x1,w)),N.set({scene:y7(x1)})}if(!N.xr){var o1;const x1=(O,W)=>{const F=i.getState();F.frameloop!=="never"&&JA(O,!0,F,W)},U1=()=>{const O=i.getState();O.gl.xr.enabled=O.gl.xr.isPresenting,O.gl.xr.setAnimationLoop(O.gl.xr.isPresenting?x1:null),O.gl.xr.isPresenting||XA(O)},$={connect(){const O=i.getState().gl;O.xr.addEventListener("sessionstart",U1),O.xr.addEventListener("sessionend",U1)},disconnect(){const O=i.getState().gl;O.xr.removeEventListener("sessionstart",U1),O.xr.removeEventListener("sessionend",U1)}};typeof((o1=K.xr)==null?void 0:o1.addEventListener)=="function"&&$.connect(),N.set({xr:$})}if(K.shadowMap){const x1=K.shadowMap.enabled,U1=K.shadowMap.type;if(K.shadowMap.enabled=!!m,w2.boo(m))K.shadowMap.type=Bt;else if(w2.str(m)){var f1;const $={basic:Gw,percentage:Eo,soft:Bt,variance:Y8};K.shadowMap.type=(f1=$[m])!=null?f1:Bt}else w2.obj(m)&&Object.assign(K.shadowMap,m);(x1!==K.shadowMap.enabled||U1!==K.shadowMap.type)&&(K.shadowMap.needsUpdate=!0)}const U=Ck();U&&("enabled"in U?U.enabled=!k:"legacyMode"in U&&(U.legacyMode=k)),m7(K,{outputEncoding:L?3e3:3001,toneMapping:E?M4:yd}),N.legacy!==k&&N.set(()=>({legacy:k})),N.linear!==L&&N.set(()=>({linear:L})),N.flat!==E&&N.set(()=>({flat:E})),p&&!w2.fun(p)&&!dk(p)&&!w2.equ(p,K,k7)&&m7(K,p),x&&!N.events.handlers&&N.set({events:x(i)});const u1=WD(t,A);return w2.equ(u1,N.size,k7)||N.setSize(u1.width,u1.height,u1.updateStyle,u1.top,u1.left),_&&N.viewport.dpr!==lk(_)&&N.setDpr(_),N.frameloop!==Q&&N.setFrameloop(Q),N.onPointerMissed||N.set({onPointerMissed:R}),T&&!w2.equ(T,N.performance,k7)&&N.set(x1=>({performance:{...x1.performance,...T}})),s=y,a=!0,this},render(g){return a||this.configure(),wn.updateContainer(u.createElement(OD,{store:i,children:g,onCreated:s,rootElement:t}),o,null,()=>{}),i},unmount(){hk(t)}}}function OD({store:t,children:e,onCreated:n,rootElement:C}){return Nn(()=>{const r=t.getState();r.set(i=>({internal:{...i.internal,active:!0}})),n&&n(r),t.getState().events.connected||r.events.connect==null||r.events.connect(C)},[]),u.createElement(gh.Provider,{value:t},e)}function hk(t,e){const n=ae.get(t),C=n==null?void 0:n.fiber;if(C){const r=n==null?void 0:n.store.getState();r&&(r.internal.active=!1),wn.updateContainer(null,C,null,()=>{r&&setTimeout(()=>{try{var i,o,s,a;r.events.disconnect==null||r.events.disconnect(),(i=r.gl)==null||(o=i.renderLists)==null||o.dispose==null||o.dispose(),(s=r.gl)==null||s.forceContextLoss==null||s.forceContextLoss(),(a=r.gl)!=null&&a.xr&&r.xr.disconnect(),_D(r),ae.delete(t),e&&e(t)}catch{}},500)})}}function fk(t,e,n){return u.createElement(zD,{key:e.uuid,children:t,container:e,state:n})}function zD({state:t={},children:e,container:n}){const{events:C,size:r,...i}=t,o=Pn(),[s]=u.useState(()=>new hh),[a]=u.useState(()=>new y1),d=u.useCallback((p,A)=>{const w={...p};Object.keys(p).forEach(y=>{(DD.includes(y)||p[y]!==A[y]&&A[y])&&delete w[y]});let x;if(A&&r){const y=A.camera;x=p.viewport.getCurrentViewport(y,new G,r),y!==p.camera&&ck(y,r)}return{...w,scene:n,raycaster:s,pointer:a,mouse:a,previousRoot:o,events:{...p.events,...A==null?void 0:A.events,...C},size:{...p.size,...r},viewport:{...p.viewport,...x},...i}},[t]),[g]=u.useState(()=>{const p=o.getState();return Zm((w,x)=>({...p,scene:n,raycaster:s,pointer:a,mouse:a,previousRoot:o,events:{...p.events,...C},size:{...p.size,...r},...i,set:w,get:x,setEvents:y=>w(m=>({...m,events:{...m.events,...y}}))}))});return u.useEffect(()=>{const p=o.subscribe(A=>g.setState(w=>d(A,w)));return()=>{p(),g.destroy()}},[]),u.useEffect(()=>{g.setState(p=>d(o.getState(),p))},[d]),u.createElement(u.Fragment,null,wn.createPortal(u.createElement(gh.Provider,{value:g},e),g,null))}wn.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:u.version});function Co(){return Co=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0?C=setTimeout(a,e-g):(C=null,n||(s=t.apply(i,r),i=r=null))}var d=function(){i=this,r=arguments,o=Date.now();var g=n&&!C;return C||(C=setTimeout(a,e)),g&&(s=t.apply(i,r),i=r=null),s};return d.clear=function(){C&&(clearTimeout(C),C=null)},d.flush=function(){C&&(s=t.apply(i,r),i=r=null,clearTimeout(C),C=null)},d}Au.debounce=Au;var VD=Au;const qA=yv(VD);function $D(t){let{debounce:e,scroll:n,polyfill:C,offsetSize:r}=t===void 0?{debounce:0,scroll:!1,offsetSize:!1}:t;const i=C||(typeof window>"u"?class{}:window.ResizeObserver);if(!i)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,s]=u.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),a=u.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),d=e?typeof e=="number"?e:e.scroll:null,g=e?typeof e=="number"?e:e.resize:null,p=u.useRef(!1);u.useEffect(()=>(p.current=!0,()=>void(p.current=!1)));const[A,w,x]=u.useMemo(()=>{const E=()=>{if(!a.current.element)return;const{left:k,top:I,width:Q,height:_,bottom:T,right:j,x:q,y:R}=a.current.element.getBoundingClientRect(),N={left:k,top:I,width:Q,height:_,bottom:T,right:j,x:q,y:R};a.current.element instanceof HTMLElement&&r&&(N.height=a.current.element.offsetHeight,N.width=a.current.element.offsetWidth),Object.freeze(N),p.current&&!qD(a.current.lastBounds,N)&&s(a.current.lastBounds=N)};return[E,g?qA(E,g):E,d?qA(E,d):E]},[s,r,d,g]);function y(){a.current.scrollContainers&&(a.current.scrollContainers.forEach(E=>E.removeEventListener("scroll",x,!0)),a.current.scrollContainers=null),a.current.resizeObserver&&(a.current.resizeObserver.disconnect(),a.current.resizeObserver=null)}function m(){a.current.element&&(a.current.resizeObserver=new i(x),a.current.resizeObserver.observe(a.current.element),n&&a.current.scrollContainers&&a.current.scrollContainers.forEach(E=>E.addEventListener("scroll",x,{capture:!0,passive:!0})))}const L=E=>{!E||E===a.current.element||(y(),a.current.element=E,a.current.scrollContainers=gk(E),m())};return XD(x,!!n),YD(w),u.useEffect(()=>{y(),m()},[n,x,w]),u.useEffect(()=>y,[]),[L,o,A]}function YD(t){u.useEffect(()=>{const e=t;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[t])}function XD(t,e){u.useEffect(()=>{if(e){const n=t;return window.addEventListener("scroll",n,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",n,!0)}},[t,e])}function gk(t){const e=[];if(!t||t===document.body)return e;const{overflow:n,overflowX:C,overflowY:r}=window.getComputedStyle(t);return[n,C,r].some(i=>i==="auto"||i==="scroll")&&e.push(t),[...e,...gk(t.parentElement)]}const JD=["x","y","top","bottom","left","right","width","height"],qD=(t,e)=>JD.every(n=>t[n]===e[n]);var KD=Object.defineProperty,ZD=Object.defineProperties,eN=Object.getOwnPropertyDescriptors,KA=Object.getOwnPropertySymbols,tN=Object.prototype.hasOwnProperty,nN=Object.prototype.propertyIsEnumerable,ZA=(t,e,n)=>e in t?KD(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ev=(t,e)=>{for(var n in e||(e={}))tN.call(e,n)&&ZA(t,n,e[n]);if(KA)for(var n of KA(e))nN.call(e,n)&&ZA(t,n,e[n]);return t},CN=(t,e)=>ZD(t,eN(e));function pk(t,e,n){if(!t)return;if(n(t)===!0)return t;let C=e?t.return:t.child;for(;C;){const r=pk(C,e,n);if(r)return r;C=e?null:C.sibling}}function Ak(t){try{return Object.defineProperties(t,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return t}}const Ah=Ak(u.createContext(null));class vk extends u.Component{render(){return u.createElement(Ah.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:tv,ReactCurrentDispatcher:nv}=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function rN(){const t=u.useContext(Ah);if(t===null)throw new Error("its-fine: useFiber must be called within a !");const e=u.useId();return u.useMemo(()=>{for(const C of[tv==null?void 0:tv.current,t,t==null?void 0:t.alternate]){if(!C)continue;const r=pk(C,!1,i=>{let o=i.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[t,e])}function iN(){var t,e;const n=rN(),[C]=u.useState(()=>new Map);C.clear();let r=n;for(;r;){const i=(t=r.type)==null?void 0:t._context;i&&i!==Ah&&!C.has(i)&&C.set(i,(e=nv==null?void 0:nv.current)==null?void 0:e.readContext(Ak(i))),r=r.return}return C}function oN(){const t=iN();return u.useMemo(()=>Array.from(t.keys()).reduce((e,n)=>C=>u.createElement(e,null,u.createElement(n.Provider,CN(ev({},C),{value:t.get(n)}))),e=>u.createElement(vk,ev({},e))),[t])}const xa={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function sN(t){const{handlePointer:e}=TD(t);return{priority:1,enabled:!0,compute(n,C,r){C.pointer.set(n.offsetX/C.size.width*2-1,-(n.offsetY/C.size.height)*2+1),C.raycaster.setFromCamera(C.pointer,C.camera)},connected:void 0,handlers:Object.keys(xa).reduce((n,C)=>({...n,[C]:e(C)}),{}),update:()=>{var n;const{events:C,internal:r}=t.getState();(n=r.lastEvent)!=null&&n.current&&C.handlers&&C.handlers.onPointerMove(r.lastEvent.current)},connect:n=>{var C;const{set:r,events:i}=t.getState();i.disconnect==null||i.disconnect(),r(o=>({events:{...o.events,connected:n}})),Object.entries((C=i.handlers)!=null?C:[]).forEach(([o,s])=>{const[a,d]=xa[o];n.addEventListener(a,s,{passive:d})})},disconnect:()=>{const{set:n,events:C}=t.getState();if(C.connected){var r;Object.entries((r=C.handlers)!=null?r:[]).forEach(([i,o])=>{if(C&&C.connected instanceof HTMLElement){const[s]=xa[i];C.connected.removeEventListener(s,o)}}),n(i=>({events:{...i.events,connected:void 0}}))}}}}const lN=u.forwardRef(function({children:e,fallback:n,resize:C,style:r,gl:i,events:o=sN,eventSource:s,eventPrefix:a,shadows:d,linear:g,flat:p,legacy:A,orthographic:w,frameloop:x,dpr:y,performance:m,raycaster:L,camera:E,scene:k,onPointerMissed:I,onCreated:Q,..._},T){u.useMemo(()=>ED(LD),[]);const j=oN(),[q,R]=$D({scroll:!0,debounce:{scroll:50,resize:0},...C}),N=u.useRef(null),K=u.useRef(null);u.useImperativeHandle(T,()=>N.current);const A1=ik(I),[X,c1]=u.useState(!1),[o1,f1]=u.useState(!1);if(X)throw X;if(o1)throw o1;const U=u.useRef(null);Nn(()=>{const n1=N.current;R.width>0&&R.height>0&&n1&&(U.current||(U.current=GD(n1)),U.current.configure({gl:i,events:o,shadows:d,linear:g,flat:p,legacy:A,orthographic:w,frameloop:x,dpr:y,performance:m,raycaster:L,camera:E,scene:k,size:R,onPointerMissed:(...u1)=>A1.current==null?void 0:A1.current(...u1),onCreated:u1=>{u1.events.connect==null||u1.events.connect(s?ID(s)?s.current:s:K.current),a&&u1.setEvents({compute:(x1,U1)=>{const $=x1[a+"X"],O=x1[a+"Y"];U1.pointer.set($/U1.size.width*2-1,-(O/U1.size.height)*2+1),U1.raycaster.setFromCamera(U1.pointer,U1.camera)}}),Q==null||Q(u1)}}),U.current.render(u.createElement(j,null,u.createElement(ok,{set:f1},u.createElement(u.Suspense,{fallback:u.createElement(BD,{set:c1})},e)))))}),u.useEffect(()=>{const n1=N.current;if(n1)return()=>hk(n1)},[]);const t1=s?"none":"auto";return u.createElement("div",Co({ref:K,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:t1,...r}},_),u.createElement("div",{ref:q,style:{width:"100%",height:"100%"}},u.createElement("canvas",{ref:N,style:{display:"block"}},n)))}),aN=u.forwardRef(function(e,n){return u.createElement(vk,null,u.createElement(lN,Co({},e,{ref:n})))});function Zo(){throw new Error("Cycle detected")}var cN=Symbol.for("preact-signals");function es(){if(e5>1)e5--;else{for(var t,e=!1;Qt!==void 0;){var n=Qt;for(Qt=void 0,vu++;n!==void 0;){var C=n.o;if(n.o=void 0,n.f&=-3,!(8&n.f)&&xk(n))try{n.c()}catch(r){e||(t=r,e=!0)}n=C}}if(vu=0,e5--,e)throw t}}function Lk(t){if(e5>0)return t();e5++;try{return t()}finally{es()}}var R2=void 0,Qt=void 0,e5=0,vu=0,ro=0;function wk(t){if(R2!==void 0){var e=t.n;if(e===void 0||e.t!==R2)return e={i:0,S:t,p:R2.s,n:void 0,t:R2,e:void 0,x:void 0,r:e},R2.s!==void 0&&(R2.s.n=e),R2.s=e,t.n=e,32&R2.f&&t.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=R2.s,e.n=void 0,R2.s.n=e,R2.s=e),e}}function j2(t){this.v=t,this.i=0,this.n=void 0,this.t=void 0}j2.prototype.brand=cN;j2.prototype.h=function(){return!0};j2.prototype.S=function(t){this.t!==t&&t.e===void 0&&(t.x=this.t,this.t!==void 0&&(this.t.e=t),this.t=t)};j2.prototype.U=function(t){if(this.t!==void 0){var e=t.e,n=t.x;e!==void 0&&(e.x=n,t.e=void 0),n!==void 0&&(n.e=e,t.x=void 0),t===this.t&&(this.t=n)}};j2.prototype.subscribe=function(t){var e=this;return r2(function(){var n=e.value,C=32&this.f;this.f&=-33;try{t(n)}finally{this.f|=C}})};j2.prototype.valueOf=function(){return this.value};j2.prototype.toString=function(){return this.value+""};j2.prototype.toJSON=function(){return this.value};j2.prototype.peek=function(){return this.v};Object.defineProperty(j2.prototype,"value",{get:function(){var t=wk(this);return t!==void 0&&(t.i=this.i),this.v},set:function(t){if(R2 instanceof h5&&function(){throw new Error("Computed cannot have side-effects")}(),t!==this.v){vu>100&&Zo(),this.v=t,this.i++,ro++,e5++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{es()}}}});function c2(t){return new j2(t)}function xk(t){for(var e=t.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function mk(t){for(var e=t.s;e!==void 0;e=e.n){var n=e.S.n;if(n!==void 0&&(e.r=n),e.S.n=e,e.i=-1,e.n===void 0){t.s=e;break}}}function kk(t){for(var e=t.s,n=void 0;e!==void 0;){var C=e.p;e.i===-1?(e.S.U(e),C!==void 0&&(C.n=e.n),e.n!==void 0&&(e.n.p=C)):n=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=C}t.s=n}function h5(t){j2.call(this,void 0),this.x=t,this.s=void 0,this.g=ro-1,this.f=4}(h5.prototype=new j2).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===ro))return!0;if(this.g=ro,this.f|=1,this.i>0&&!xk(this))return this.f&=-2,!0;var t=R2;try{mk(this),R2=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(n){this.v=n,this.f|=16,this.i++}return R2=t,kk(this),this.f&=-2,!0};h5.prototype.S=function(t){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}j2.prototype.S.call(this,t)};h5.prototype.U=function(t){if(this.t!==void 0&&(j2.prototype.U.call(this,t),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};h5.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var t=this.t;t!==void 0;t=t.x)t.t.N()}};h5.prototype.peek=function(){if(this.h()||Zo(),16&this.f)throw this.v;return this.v};Object.defineProperty(h5.prototype,"value",{get:function(){1&this.f&&Zo();var t=wk(this);if(this.h(),t!==void 0&&(t.i=this.i),16&this.f)throw this.v;return this.v}});function o9(t){return new h5(t)}function Mk(t){var e=t.u;if(t.u=void 0,typeof e=="function"){e5++;var n=R2;R2=void 0;try{e()}catch(C){throw t.f&=-2,t.f|=8,vh(t),C}finally{R2=n,es()}}}function vh(t){for(var e=t.s;e!==void 0;e=e.n)e.S.U(e);t.x=void 0,t.s=void 0,Mk(t)}function uN(t){if(R2!==this)throw new Error("Out-of-order effect");kk(this),R2=t,this.f&=-2,8&this.f&&vh(this),es()}function Hn(t){this.x=t,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}Hn.prototype.c=function(){var t=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{t()}};Hn.prototype.S=function(){1&this.f&&Zo(),this.f|=1,this.f&=-9,Mk(this),mk(this),e5++;var t=R2;return R2=this,uN.bind(this,t)};Hn.prototype.N=function(){2&this.f||(this.f|=2,this.o=Qt,Qt=this)};Hn.prototype.d=function(){this.f|=8,1&this.f||vh(this)};function r2(t){var e=new Hn(t);try{e.c()}catch(n){throw e.d(),n}return e.d.bind(e)}function Lh(t,e,n){const C=u.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=u.useMemo(()=>{let i={};return(o,s)=>{let a=0,d=!1;for(const g in i){if(!yk(i[g],o[g])){d=!0;break}++a}d||(d=a!=s),i=o,!(!d&&e.getProperty.peek()!=null)&&(e.getProperty.value=g=>Lu(o[g]))}},[e]);Ek(t,C,r,n)}function dN(t,e){const n=t.length;for(const C in e)for(let r=0;r{let r={},i=0;const o=(a,d)=>{if(d===void 0)return;const g=r[a];if(g===void 0&&++i,g==null||!(d instanceof j2)){r[a]=d;return}if(Array.isArray(g)){g.push(d);return}r[a]=[g,d]};return{add:(a,d)=>{if(d!==void 0){if(C!=null){C(a,d,e,o);return}e(a)&&o(a,d)}},finish:()=>{n(r,i),i=0,r={}}}},[e,n,C]))}function yk(t,e){if(!Array.isArray(t))return t===e;if(!Array.isArray(e))return!1;const n=t.length;if(n!=e.length)return!1;for(let C=0;Cc2(void 0),[]),r=u.useMemo(()=>({hasBatchedProperty:i=>e.includes(i),getProperty:C}),[e]);return Lh(t,r,n),C}const hN=u.createContext(null);function jn(t,e){const n=u.useContext(hN);n!=null&&e(n);const{classes:C}=t;if(Array.isArray(C)){const r=C.length;for(let i=0;idN(t,n))}var Q9={},wh={},D0={};Object.defineProperty(D0,"__esModule",{value:!0});D0.default=D0.Wrap=D0.Unit=D0.PrintOptions=D0.PositionType=D0.Overflow=D0.NodeType=D0.MeasureMode=D0.LogLevel=D0.Justify=D0.Gutter=D0.FlexDirection=D0.ExperimentalFeature=D0.Errata=D0.Edge=D0.Display=D0.Direction=D0.Dimension=D0.Align=void 0;let V4=function(t){return t[t.Auto=0]="Auto",t[t.FlexStart=1]="FlexStart",t[t.Center=2]="Center",t[t.FlexEnd=3]="FlexEnd",t[t.Stretch=4]="Stretch",t[t.Baseline=5]="Baseline",t[t.SpaceBetween=6]="SpaceBetween",t[t.SpaceAround=7]="SpaceAround",t}({});D0.Align=V4;let wu=function(t){return t[t.Width=0]="Width",t[t.Height=1]="Height",t}({});D0.Dimension=wu;let vi=function(t){return t[t.Inherit=0]="Inherit",t[t.LTR=1]="LTR",t[t.RTL=2]="RTL",t}({});D0.Direction=vi;let xu=function(t){return t[t.Flex=0]="Flex",t[t.None=1]="None",t}({});D0.Display=xu;let g4=function(t){return t[t.Left=0]="Left",t[t.Top=1]="Top",t[t.Right=2]="Right",t[t.Bottom=3]="Bottom",t[t.Start=4]="Start",t[t.End=5]="End",t[t.Horizontal=6]="Horizontal",t[t.Vertical=7]="Vertical",t[t.All=8]="All",t}({});D0.Edge=g4;let gt=function(t){return t[t.None=0]="None",t[t.StretchFlexBasis=1]="StretchFlexBasis",t[t.All=2147483647]="All",t[t.Classic=2147483646]="Classic",t}({});D0.Errata=gt;let Li=function(t){return t[t.WebFlexBasis=0]="WebFlexBasis",t[t.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",t[t.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",t}({});D0.ExperimentalFeature=Li;let pt=function(t){return t[t.Column=0]="Column",t[t.ColumnReverse=1]="ColumnReverse",t[t.Row=2]="Row",t[t.RowReverse=3]="RowReverse",t}({});D0.FlexDirection=pt;let wi=function(t){return t[t.Column=0]="Column",t[t.Row=1]="Row",t[t.All=2]="All",t}({});D0.Gutter=wi;let e3=function(t){return t[t.FlexStart=0]="FlexStart",t[t.Center=1]="Center",t[t.FlexEnd=2]="FlexEnd",t[t.SpaceBetween=3]="SpaceBetween",t[t.SpaceAround=4]="SpaceAround",t[t.SpaceEvenly=5]="SpaceEvenly",t}({});D0.Justify=e3;let t3=function(t){return t[t.Error=0]="Error",t[t.Warn=1]="Warn",t[t.Info=2]="Info",t[t.Debug=3]="Debug",t[t.Verbose=4]="Verbose",t[t.Fatal=5]="Fatal",t}({});D0.LogLevel=t3;let xi=function(t){return t[t.Undefined=0]="Undefined",t[t.Exactly=1]="Exactly",t[t.AtMost=2]="AtMost",t}({});D0.MeasureMode=xi;let mu=function(t){return t[t.Default=0]="Default",t[t.Text=1]="Text",t}({});D0.NodeType=mu;let mi=function(t){return t[t.Visible=0]="Visible",t[t.Hidden=1]="Hidden",t[t.Scroll=2]="Scroll",t}({});D0.Overflow=mi;let ki=function(t){return t[t.Static=0]="Static",t[t.Relative=1]="Relative",t[t.Absolute=2]="Absolute",t}({});D0.PositionType=ki;let Mi=function(t){return t[t.Layout=1]="Layout",t[t.Style=2]="Style",t[t.Children=4]="Children",t}({});D0.PrintOptions=Mi;let At=function(t){return t[t.Undefined=0]="Undefined",t[t.Point=1]="Point",t[t.Percent=2]="Percent",t[t.Auto=3]="Auto",t}({});D0.Unit=At;let Ei=function(t){return t[t.NoWrap=0]="NoWrap",t[t.Wrap=1]="Wrap",t[t.WrapReverse=2]="WrapReverse",t}({});D0.Wrap=Ei;const fN={ALIGN_AUTO:V4.Auto,ALIGN_FLEX_START:V4.FlexStart,ALIGN_CENTER:V4.Center,ALIGN_FLEX_END:V4.FlexEnd,ALIGN_STRETCH:V4.Stretch,ALIGN_BASELINE:V4.Baseline,ALIGN_SPACE_BETWEEN:V4.SpaceBetween,ALIGN_SPACE_AROUND:V4.SpaceAround,DIMENSION_WIDTH:wu.Width,DIMENSION_HEIGHT:wu.Height,DIRECTION_INHERIT:vi.Inherit,DIRECTION_LTR:vi.LTR,DIRECTION_RTL:vi.RTL,DISPLAY_FLEX:xu.Flex,DISPLAY_NONE:xu.None,EDGE_LEFT:g4.Left,EDGE_TOP:g4.Top,EDGE_RIGHT:g4.Right,EDGE_BOTTOM:g4.Bottom,EDGE_START:g4.Start,EDGE_END:g4.End,EDGE_HORIZONTAL:g4.Horizontal,EDGE_VERTICAL:g4.Vertical,EDGE_ALL:g4.All,ERRATA_NONE:gt.None,ERRATA_STRETCH_FLEX_BASIS:gt.StretchFlexBasis,ERRATA_ALL:gt.All,ERRATA_CLASSIC:gt.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Li.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:Li.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:Li.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:pt.Column,FLEX_DIRECTION_COLUMN_REVERSE:pt.ColumnReverse,FLEX_DIRECTION_ROW:pt.Row,FLEX_DIRECTION_ROW_REVERSE:pt.RowReverse,GUTTER_COLUMN:wi.Column,GUTTER_ROW:wi.Row,GUTTER_ALL:wi.All,JUSTIFY_FLEX_START:e3.FlexStart,JUSTIFY_CENTER:e3.Center,JUSTIFY_FLEX_END:e3.FlexEnd,JUSTIFY_SPACE_BETWEEN:e3.SpaceBetween,JUSTIFY_SPACE_AROUND:e3.SpaceAround,JUSTIFY_SPACE_EVENLY:e3.SpaceEvenly,LOG_LEVEL_ERROR:t3.Error,LOG_LEVEL_WARN:t3.Warn,LOG_LEVEL_INFO:t3.Info,LOG_LEVEL_DEBUG:t3.Debug,LOG_LEVEL_VERBOSE:t3.Verbose,LOG_LEVEL_FATAL:t3.Fatal,MEASURE_MODE_UNDEFINED:xi.Undefined,MEASURE_MODE_EXACTLY:xi.Exactly,MEASURE_MODE_AT_MOST:xi.AtMost,NODE_TYPE_DEFAULT:mu.Default,NODE_TYPE_TEXT:mu.Text,OVERFLOW_VISIBLE:mi.Visible,OVERFLOW_HIDDEN:mi.Hidden,OVERFLOW_SCROLL:mi.Scroll,POSITION_TYPE_STATIC:ki.Static,POSITION_TYPE_RELATIVE:ki.Relative,POSITION_TYPE_ABSOLUTE:ki.Absolute,PRINT_OPTIONS_LAYOUT:Mi.Layout,PRINT_OPTIONS_STYLE:Mi.Style,PRINT_OPTIONS_CHILDREN:Mi.Children,UNIT_UNDEFINED:At.Undefined,UNIT_POINT:At.Point,UNIT_PERCENT:At.Percent,UNIT_AUTO:At.Auto,WRAP_NO_WRAP:Ei.NoWrap,WRAP_WRAP:Ei.Wrap,WRAP_WRAP_REVERSE:Ei.WrapReverse};var gN=fN;D0.default=gN;Object.defineProperty(wh,"__esModule",{value:!0});wh.default=AN;var _6=pN(D0);function Ik(t){if(typeof WeakMap!="function")return null;var e=new WeakMap,n=new WeakMap;return(Ik=function(C){return C?n:e})(t)}function pN(t,e){if(!e&&t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var n=Ik(e);if(n&&n.has(t))return n.get(t);var C={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(i!=="default"&&Object.prototype.hasOwnProperty.call(t,i)){var o=r?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(C,i,o):C[i]=t[i]}return C.default=t,n&&n.set(t,C),C}function AN(t){function e(r,i,o){const s=r[i];r[i]=function(){for(var a=arguments.length,d=new Array(a),g=0;g1?s-1:0),d=1;di?t.Node.createWithConfig(i):t.Node.createDefault()),e(t.Node.prototype,"free",function(){t.Node.destroy(this)}),e(t.Node.prototype,"freeRecursive",function(){for(let r=0,i=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:_6.Direction.LTR;return r.call(this,i,o,s)}),{Config:t.Config,Node:t.Node,..._6.default}}var Bk={exports:{}};(function(t,e){var n=(()=>{var C=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var i;i||(i=typeof r<"u"?r:{});var o,s;i.ready=new Promise(function(P,H){o=P,s=H});var a=Object.assign({},i),d="";typeof document<"u"&&document.currentScript&&(d=document.currentScript.src),C&&(d=C),d.indexOf("blob:")!==0?d=d.substr(0,d.replace(/[?#].*/,"").lastIndexOf("/")+1):d="";var g=i.print||console.log.bind(console),p=i.printErr||console.warn.bind(console);Object.assign(i,a),a=null;var A;i.wasmBinary&&(A=i.wasmBinary),i.noExitRuntime,typeof WebAssembly!="object"&&f1("no native wasm support detected");var w,x=!1;function y(P,H,Z){Z=H+Z;for(var s1="";!(H>=Z);){var p1=P[H++];if(!p1)break;if(p1&128){var B1=P[H++]&63;if((p1&224)==192)s1+=String.fromCharCode((p1&31)<<6|B1);else{var P1=P[H++]&63;p1=(p1&240)==224?(p1&15)<<12|B1<<6|P1:(p1&7)<<18|B1<<12|P1<<6|P[H++]&63,65536>p1?s1+=String.fromCharCode(p1):(p1-=65536,s1+=String.fromCharCode(55296|p1>>10,56320|p1&1023))}}else s1+=String.fromCharCode(p1)}return s1}var m,L,E,k,I,Q,_,T,j;function q(){var P=w.buffer;m=P,i.HEAP8=L=new Int8Array(P),i.HEAP16=k=new Int16Array(P),i.HEAP32=Q=new Int32Array(P),i.HEAPU8=E=new Uint8Array(P),i.HEAPU16=I=new Uint16Array(P),i.HEAPU32=_=new Uint32Array(P),i.HEAPF32=T=new Float32Array(P),i.HEAPF64=j=new Float64Array(P)}var R,N=[],K=[],A1=[];function X(){var P=i.preRun.shift();N.unshift(P)}var c1=0,o1=null;function f1(P){throw i.onAbort&&i.onAbort(P),P="Aborted("+P+")",p(P),x=!0,P=new WebAssembly.RuntimeError(P+". Build with -sASSERTIONS for more info."),s(P),P}function U(P){return P.startsWith("data:application/octet-stream;base64,")}var t1;if(t1="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwCagwCCyAAQYwCaiAALQCsAkEDcUECRg0BGiAAQZQCagwBCyAAIAFBAnRqQYwCagsqAgAhAyACQRBqJAAgA7sPCyACQdAONgIAIAAgAhAtECwAC5sBAgF/AX0jAEEQayICJAAgACgCACEAIAFBBkgEQAJ/AkACQAJAIAFBBGsOAgABAgsgAEGEAmogAC0ArAJBA3FBAkYNAhogAEH8AWoMAgsgAEH8AWogAC0ArAJBA3FBAkYNARogAEGEAmoMAQsgACABQQJ0akH8AWoLKgIAIQMgAkEQaiQAIAO7DwsgAkHQDjYCACAAIAIQLRAsAAtPACAAIAEoAgAiASoC5AG7OQMAIAAgASoC7AG7OQMIIAAgASoC6AG7OQMQIAAgASoC8AG7OQMYIAAgASoC9AG7OQMgIAAgASoC+AG7OQMoCwwAIAAoAgAqAvgBuwsMACAAKAIAKgL0AbsLDAAgACgCACoC8AG7CwwAIAAoAgAqAugBuwsMACAAKAIAKgLsAbsLDAAgACgCACoC5AG7C48JAwV9BH8BfiMAQUBqIgwkACAAKAIAIQkgDEEIakEAQTgQKhpB7DZB7DYoAgBBAWo2AgAgCRBnIAG2IQUCQAJAAkAgCSkCvAQiDUIgiKciAA4EAQAAAQALIA2nviEGAkAgAEEBRyAJKgK8BCIEIARcckUEQCAGIgRDAAAAAF1FDQEMAgsCQCAAQQJHIAQgBFxyRQRAIAUgBVwgBkMAAAAAXXINAwwBC0MAAMB/IQQCQCAAQQFrDgIAAQILIAYhBAwBCyAGIAWUQwrXIzyUIQQLIAQgCUECIAUQHyAJQQIgBRAikpIhCEEBIQsMAQtDAAAAACEEAkACQAJAAkAgCSgC2AEiAEHw4YP8B0YNACAAQY+evPwHRg0DQfAhIQsCQCAAQarVqv0HRwRAIAC+IgQgBFsNAUH4ISELCyALKgIAIQQgCygCBEEBaw4CAgEDCyAAQf////97cUGAgICAAmq+IQQgAEGAgICABHFFDQELIAQgBZRDCtcjPJQhBAsgBCAEXA0AQwAAAAAhBAJAIABB8OGD/AdGDQAgAEGPnrz8B0YNAkHwISEKAkAgAEGq1ar9B0cEQCAAviIEIARbDQFB+CEhCgsgCioCACEEQwAAwH8hCEECIQsgCigCBEEBaw4CAwEECyAAQf////97cUGAgICAAmq+IQQgAEGAgICABHFFDQILIAQgBZRDCtcjPJQhCEECIQsMAgsgBSAFWyELIAUhCAwBC0ECIQsgBCEICyACtiEHAkACQAJAIAkpAsQEIg1CIIinIgAOBAEAAAEACyANp74hBgJAIABBAUcgCSoCxAQiBCAEXHJFBEAgBiIEQwAAAABdRQ0BDAILAkAgAEECRyAEIARcckUEQCAHIAdcIAZDAAAAAF1yDQMMAQtDAADAfyEEAkAgAEEBaw4CAAECCyAGIQQMAQsgBiAHlEMK1yM8lCEECyAEIAlBACAFEB8gCUEAIAUQIpKSIQZBASEADAELQwAAAAAhBAJAAkACQAJAIAkoAtwBIgBB8OGD/AdGDQAgAEGPnrz8B0YNA0HwISEKAkAgAEGq1ar9B0cEQCAAviIEIARbDQFB+CEhCgsgCioCACEEIAooAgRBAWsOAgIBAwsgAEH/////e3FBgICAgAJqviEEIABBgICAgARxRQ0BCyAEIAeUQwrXIzyUIQQLIAQgBFwNAEMAAAAAIQQCQCAAQfDhg/wHRg0AIABBj568/AdGDQJB8CEhCgJAIABBqtWq/QdHBEAgAL4iBCAEWw0BQfghIQoLIAoqAgAhBEMAAMB/IQZBAiEAIAooAgRBAWsOAgMBBAsgAEH/////e3FBgICAgAJqviEEIABBgICAgARxRQ0CCyAEIAeUQwrXIzyUIQZBAiEADAILIAcgB1shACAHIQYMAQtBAiEAIAQhBgsgCSAIIAYgAyALIAAgBSAHQQFBACAJKAK4BCAMQQhqQQBB7DYoAgAQNwRAIAkgCS0ArAJBA3EgBSAHIAUQaSAJIAkoArgEKgIUu0QAAAAAAAAAAEQAAAAAAAAAABBbCyAMQUBrJAALEAAgACgCAC0ABEEEcUECdgt1AQJ/IwBBEGsiASQAIAAoAgAiACgCCARAA0AgAC0ABCICQQRxRQRAIAAgAkEEcjoABCAAKAIUIgIEQCAAIAIRAAALIABBgICA/gc2ArQCIAAoAqgEIgANAQsLIAFBEGokAA8LIAFBgAg2AgAgACABEC0QLAALLgEBfyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgBBADYCFAsXACAAKAIAKAIIIgAgACgCACgCCBEAAAsuAQF/IAAoAgghAiAAIAE2AgggAgRAIAIgAigCACgCBBEAAAsgACgCAEEPNgIUCy0BAX8gACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIAQQAQZQtJAQF/IwBBEGsiBiQAIAYgASgCACgCBCIBIAIgAyAEIAUgASgCACgCCBEOACAAIAYrAwC2OAIAIAAgBisDCLY4AgQgBkEQaiQACy0BAX8gACgCBCECIAAgATYCBCACBEAgAiACKAIAKAIEEQAACyAAKAIAQQ4QZQs8AQF/AkAgACgCACIAKAKwBCAAKAKsBCIAa0ECdSABTQ0AIAAgAUECdGooAgAiAEUNACAAKAIAIQILIAILGQAgACgCACgCqAQiAEUEQEEADwsgACgCAAsXACAAKAIAIgAoArAEIAAoAqwEa0ECdQvSAgEEfyMAQcACayIEJAACQCAAKAIAIgAoArAEIAAoAqwERg0AIAEoAgAiAygCqAQhASAAIAMQa0UNACAAIAFGBEAgBEEAQaACECoiAkKAgID+h4CA4P8ANwMQIAJBGGpBAEExECoaIAJBgICA/gc2AlAgAkGgAmohBSACQeAAaiEBA0AgAUKAgID8i4CAwL9/NwIQIAFCADcCCCABQoCAgPyLgIDAv383AgAgAUEYaiIBIAVHDQALIAJCgICA/IuAgMC/fzcDuAIgAkIANwOwAiACQoCAgPyLgIDAv383A6gCIAJCgICA/oeAgOD/ADcDoAIgA0HkAWogAkHAAhArGiADQQA2AqgECwNAIAAtAAQiAUEEcQ0BIAAgAUEEcjoABCAAKAIUIgEEQCAAIAERAAALIABBgICA/gc2ArQCIAAoAqgEIgANAAsLIARBwAJqJAALsgcBCH8jAEHQAGsiByQAIAAoAgAhAAJAAkAgASgCACIIKAKoBEUEQCAAKAIIDQEgACgCrAQiASACQQJ0aiEGAkAgACgCsAQiBCAAQbQEaiIDKAIAIgVJBEAgBCAGRgRAIAYgCDYCACAAIAZBBGo2ArAEDAILIAQgBCICQQRrIgFLBEADQCACIAEoAgA2AgAgAkEEaiECIAFBBGoiASAESQ0ACwsgACACNgKwBCAGQQRqIgEgBEcEQCAEIAQgAWsiAUF8cWsgBiABEDYaCyAGIAg2AgAMAQsgBCABa0ECdUEBaiIEQYCAgIAETw0DAkAgB0EgakH/////AyAFIAFrIgFBAXUiBSAEIAQgBUkbIAFB/P///wdPGyACIAMQQCIDKAIIIgIgAygCDEcNACADKAIEIgEgAygCACIESwRAIAMgASABIARrQQJ1QQFqQX5tQQJ0IgRqIAEgAiABayIBEDYgAWoiAjYCCCADIAMoAgQgBGo2AgQMAQsgB0E4akEBIAIgBGtBAXUgAiAERhsiASABQQJ2IAMoAhAQQCIFKAIIIQQCfyADKAIIIgIgAygCBCIBRgRAIAQhAiABDAELIAQgAiABa2ohAgNAIAQgASgCADYCACABQQRqIQEgBEEEaiIEIAJHDQALIAMoAgghASADKAIECyEEIAMoAgAhCSADIAUoAgA2AgAgBSAJNgIAIAMgBSgCBDYCBCAFIAQ2AgQgAyACNgIIIAUgATYCCCADKAIMIQogAyAFKAIMNgIMIAUgCjYCDCABIARHBEAgBSABIAQgAWtBA2pBfHFqNgIICyAJRQ0AIAkQKSADKAIIIQILIAIgCDYCACADIAMoAghBBGo2AgggAyADKAIEIAYgACgCrAQiAWsiAmsgASACEDY2AgQgAygCCCAGIAAoArAEIAZrIgQQNiEGIAAoAqwEIQEgACADKAIENgKsBCADIAE2AgQgACgCsAQhAiAAIAQgBmo2ArAEIAMgAjYCCCAAKAK0BCEEIAAgAygCDDYCtAQgAyABNgIAIAMgBDYCDCABIAJHBEAgAyACIAEgAmtBA2pBfHFqNgIICyABRQ0AIAEQKQsgCCAANgKoBANAIAAtAAQiAUEEcUUEQCAAIAFBBHI6AAQgACgCFCIBBEAgACABEQAACyAAQYCAgP4HNgK0AiAAKAKoBCIADQELCyAHQdAAaiQADwsgB0HrHzYCECAAIAdBEGoQLRAsAAsgB0HwIDYCACAAIAcQLRAsAAsQBAALEAAgACgCAC0ABEECcUEBdgt1AQJ9AkACQCAAKAIAIAFBAnRqKAK8ASIAQfDhg/wHRiAAQY+evPwHRnINAEMAAMB/IQIgAEGq1ar9B0YiASABcg0BIAC+IgMgA1wNASAAQfDhg/wHRg0AIABB/////3txQYCAgIACar4PC0MAAAAAIQILIAILqgEDAX8BfAF9QQIhAwJAAkAgASgCACACQQJ0aigCdCIBQfDhg/wHRwRARAAAAAAAAPh/IQQgAUGq1ar9B0YEQEEDIQMMAwsgAUGPnrz8B0cNAUQAAAAAAAAAACEEQQEhAwwCCwwBCyABviIFIAVcBEBBACEDDAELQQJBASABQYCAgIAEcRshAyABQf////97cUGAgICAAmq+uyEECyAAIAQ5AwggACADNgIAC4ABAgF8AX0CQAJAIAAoAgAgAUECdGooApgBIgBB8OGD/AdGIABBj568/AdGcg0ARAAAAAAAAPh/IQIgAEGq1ar9B0YiASABcg0BIAC+IgMgA1wNASAAQfDhg/wHRg0AIABB/////3txQYCAgIACar67DwtEAAAAAAAAAAAhAgsgAgsbAQF9QwAAwH8gACgCACoC4AEiASABIAFcG7sLlwECAXwBfQJ/AkAgASgCACgC3AEiAUHw4YP8B0cEQEQAAAAAAAD4fyECQQMgAUGq1ar9B0YNAhogAUGPnrz8B0cNAUQAAAAAAAAAACECQQEMAgtBAgwBC0EAIAG+IgMgA1wNABogAUH/////e3FBgICAgAJqvrshAkECQQEgAUGAgICABHEbCyEBIAAgAjkDCCAAIAE2AgALlwECAXwBfQJ/AkAgASgCACgC2AEiAUHw4YP8B0cEQEQAAAAAAAD4fyECQQMgAUGq1ar9B0YNAhogAUGPnrz8B0cNAUQAAAAAAAAAACECQQEMAgtBAgwBC0EAIAG+IgMgA1wNABogAUH/////e3FBgICAgAJqvrshAkECQQEgAUGAgICABHEbCyEBIAAgAjkDCCAAIAE2AgALlwECAXwBfQJ/AkAgASgCACgC1AEiAUHw4YP8B0cEQEQAAAAAAAD4fyECQQMgAUGq1ar9B0YNAhogAUGPnrz8B0cNAUQAAAAAAAAAACECQQEMAgtBAgwBC0EAIAG+IgMgA1wNABogAUH/////e3FBgICAgAJqvrshAkECQQEgAUGAgICABHEbCyEBIAAgAjkDCCAAIAE2AgALlwECAXwBfQJ/AkAgASgCACgC0AEiAUHw4YP8B0cEQEQAAAAAAAD4fyECQQMgAUGq1ar9B0YNAhogAUGPnrz8B0cNAUQAAAAAAAAAACECQQEMAgtBAgwBC0EAIAG+IgMgA1wNABogAUH/////e3FBgICAgAJqvrshAkECQQEgAUGAgICABHEbCyEBIAAgAjkDCCAAIAE2AgALlwECAXwBfQJ/AkAgASgCACgCzAEiAUHw4YP8B0cEQEQAAAAAAAD4fyECQQMgAUGq1ar9B0YNAhogAUGPnrz8B0cNAUQAAAAAAAAAACECQQEMAgtBAgwBC0EAIAG+IgMgA1wNABogAUH/////e3FBgICAgAJqvrshAkECQQEgAUGAgICABHEbCyEBIAAgAjkDCCAAIAE2AgALlwECAXwBfQJ/AkAgASgCACgCyAEiAUHw4YP8B0cEQEQAAAAAAAD4fyECQQMgAUGq1ar9B0YNAhogAUGPnrz8B0cNAUQAAAAAAAAAACECQQEMAgtBAgwBC0EAIAG+IgMgA1wNABogAUH/////e3FBgICAgAJqvrshAkECQQEgAUGAgICABHEbCyEBIAAgAjkDCCAAIAE2AgALMQEBfSAAKAIAIgAqAiQiASABXAR9QwAAgD9DAAAAACAAKAK4BC0ACEEBcRsFIAELuwsaAQF9IAAoAgAqAiAiAUMAAAAAIAEgAVsbuwuNAQECfUMAAMB/IQIgAAJ/QQMgASgCACgCKCIBQarVqv0HRg0AGiABQY+evPwHRgRAQwAAAAAhAkEBDAELIAFB8OGD/AdGBEBDAAAAACECQQIMAQtBACABviIDIANcDQAaIAFB/////3txQYCAgIACar4hAkECQQEgAUGAgICABHEbCzYCACAAIAK7OQMICxAAIAAoAgAoAhhBFnZBAXELEAAgACgCACgCGEEUdkEDcQuqAQMBfwF8AX1BAiEDAkACQCABKAIAIAJBAnRqKAIsIgFB8OGD/AdHBEBEAAAAAAAA+H8hBCABQarVqv0HRgRAQQMhAwwDCyABQY+evPwHRw0BRAAAAAAAAAAAIQRBASEDDAILDAELIAG+IgUgBVwEQEEAIQMMAQtBAkEBIAFBgICAgARxGyEDIAFB/////3txQYCAgIACar67IQQLIAAgBDkDCCAAIAM2AgALEAAgACgCACgCGEEEdkEHcQsQACAAKAIAKAIYQRJ2QQNxCxAAIAAoAgAoAhhBAnZBA3ELEAAgACgCACgCGEENdkEHcQsQACAAKAIAKAIYQQp2QQdxCxAAIAAoAgAoAhhBB3ZBB3ELqgEDAX8BfAF9QQIhAwJAAkAgASgCACACQQJ0aigCUCIBQfDhg/wHRwRARAAAAAAAAPh/IQQgAUGq1ar9B0YEQEEDIQMMAwsgAUGPnrz8B0cNAUQAAAAAAAAAACEEQQEhAwwCCwwBCyABviIFIAVcBEBBACEDDAELQQJBASABQYCAgIAEcRshAyABQf////97cUGAgICAAmq+uyEECyAAIAQ5AwggACADNgIACw0AIAAoAgAvARpBA3ELbwEBfwJAIAAoAgAiACABQQJ0aiIBQbwBaigCACACthAvIgNGDQAgASADNgK8AQNAIAAtAAQiAUEEcQ0BIAAgAUEEcjoABCAAKAIUIgEEQCAAIAERAAALIABBgICA/gc2ArQCIAAoAqgEIgANAAsLC3EBAX8CQCAAKAIAIgAtAAQiAkECcUEBdiABRg0AIAAgAkH9AXFBAkEAIAEbcjoABANAIAAtAAQiAUEEcQ0BIAAgAUEEcjoABCAAKAIUIgEEQCAAIAERAAALIABBgICA/gc2ArQCIAAoAqgEIgANAAsLCxAAIAAoAgAgASACthAxEGELEAAgACgCACABIAK2EC8QYQtvAQF/AkAgACgCACIAIAFBAnRqIgFBmAFqKAIAIAK2EC8iA0YNACABIAM2ApgBA0AgAC0ABCIBQQRxDQEgACABQQRyOgAEIAAoAhQiAQRAIAAgAREAAAsgAEGAgID+BzYCtAIgACgCqAQiAA0ACwsLcgICfQF/AkAgACgCACIAKgLgASIDIAG2IgJbIAIgAlwgAyADXHFyDQAgACACOALgAQNAIAAtAAQiBEEEcQ0BIAAgBEEEcjoABCAAKAIUIgQEQCAAIAQRAAALIABBgICA/gc2ArQCIAAoAqgEIgANAAsLCxAAIAAoAgBBASABthAxEEMLEAAgACgCAEEBIAG2EC8QQwsQACAAKAIAQQAgAbYQMRBDCxAAIAAoAgBBACABthAvEEMLEAAgACgCAEEBIAG2EDEQRAsQACAAKAIAQQEgAbYQLxBECxAAIAAoAgBBACABthAxEEQLEAAgACgCAEEAIAG2EC8QRAsRACAAKAIAQQFBqtWq/QcQPAsQACAAKAIAQQEgAbYQMRA8CxAAIAAoAgBBASABthAvEDwLEQAgACgCAEEAQarVqv0HEDwLEAAgACgCAEEAIAG2EDEQPAsQACAAKAIAQQAgAbYQLxA8C3ACAn0BfwJAIAAoAgAiACoCJCIDIAG2IgJbIAIgAlwgAyADXHFyDQAgACACOAIkA0AgAC0ABCIEQQRxDQEgACAEQQRyOgAEIAAoAhQiBARAIAAgBBEAAAsgAEGAgID+BzYCtAIgACgCqAQiAA0ACwsLcAICfQF/AkAgACgCACIAKgIgIgMgAbYiAlsgAiACXCADIANccXINACAAIAI4AiADQCAALQAEIgRBBHENASAAIARBBHI6AAQgACgCFCIEBEAgACAEEQAACyAAQYCAgP4HNgK0AiAAKAKoBCIADQALCwsPACAAKAIAQarVqv0HEEwLDgAgACgCACABthAxEEwLDgAgACgCACABthAvEEwLcAICfQF/AkAgACgCACIAKgIcIgMgAbYiAlsgAiACXCADIANccXINACAAIAI4AhwDQCAALQAEIgRBBHENASAAIARBBHI6AAQgACgCFCIEBEAgACAEEQAACyAAQYCAgP4HNgK0AiAAKAKoBCIADQALCwt3AQF/AkAgACgCACIAKAIYIgJBFnZBAXEgAUYNACAAIAJB////fXEgAUEWdEGAgIACcXI2AhgDQCAALQAEIgFBBHENASAAIAFBBHI6AAQgACgCFCIBBEAgACABEQAACyAAQYCAgP4HNgK0AiAAKAKoBCIADQALCwt3AQF/AkAgACgCACIAKAIYIgJBFHZBA3EgAUYNACAAIAJB//+/fnEgAUEUdEGAgMABcXI2AhgDQCAALQAEIgFBBHENASAAIAFBBHI6AAQgACgCFCIBBEAgACABEQAACyAAQYCAgP4HNgK0AiAAKAKoBCIADQALCwsRACAAKAIAIAFBqtWq/QcQSwsQACAAKAIAIAEgArYQMRBLCxAAIAAoAgAgASACthAvEEsLcwEBfwJAIAAoAgAiACgCGCICQQR2QQdxIAFGDQAgACACQY9/cSABQQR0QfAAcXI2AhgDQCAALQAEIgFBBHENASAAIAFBBHI6AAQgACgCFCIBBEAgACABEQAACyAAQYCAgP4HNgK0AiAAKAKoBCIADQALCwt1AQF/AkAgACgCACIAKAIYIgJBEnZBA3EgAUYNACAAIAJB//9PcSABQRJ0QYCAMHFyNgIYA0AgAC0ABCIBQQRxDQEgACABQQRyOgAEIAAoAhQiAQRAIAAgAREAAAsgAEGAgID+BzYCtAIgACgCqAQiAA0ACwsLC9IiIwBBgAgL5RlPbmx5IGxlYWYgbm9kZXMgd2l0aCBjdXN0b20gbWVhc3VyZSBmdW5jdGlvbnMgc2hvdWxkIG1hbnVhbGx5IG1hcmsgdGhlbXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVp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",!U(t1)){var n1=t1;t1=i.locateFile?i.locateFile(n1,d):d+n1}function u1(){var P=t1;try{if(P==t1&&A)return new Uint8Array(A);if(U(P))try{var H=F2(P.slice(37)),Z=new Uint8Array(H.length);for(P=0;P=H?"_"+P:P}function O(P,H){return P=$(P),function(){return H.apply(this,arguments)}}var W=[{},{value:void 0},{value:null},{value:!0},{value:!1}],F=[];function v1(P){var H=Error,Z=O(P,function(s1){this.name=P,this.message=s1,s1=Error(s1).stack,s1!==void 0&&(this.stack=this.toString()+` -`+s1.replace(/^Error(:[^\n]*)?\n/,""))});return Z.prototype=Object.create(H.prototype),Z.prototype.constructor=Z,Z.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Z}var k1=void 0;function i1(P){throw new k1(P)}var E1=P=>(P||i1("Cannot use deleted val. handle = "+P),W[P].value),z=P=>{switch(P){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var H=F.length?F.pop():W.length;return W[H]={fa:1,value:P},H}},L1=void 0,C1=void 0;function l1(P){for(var H="";E[P];)H+=C1[E[P++]];return H}var h1=[];function b1(){for(;h1.length;){var P=h1.pop();P.L.Z=!1,P.delete()}}var e1=void 0,S={};function D(P,H){for(H===void 0&&i1("ptr should not be undefined");P.P;)H=P.aa(H),P=P.P;return H}var r1={};function T1(P){P=t0(P);var H=l1(P);return x0(P),H}function Q1(P,H){var Z=r1[P];return Z===void 0&&i1(H+" has unknown type "+T1(P)),Z}function _1(){}var Y1=!1;function O1(P){--P.count.value,P.count.value===0&&(P.S?P.T.V(P.S):P.O.M.V(P.N))}function q1(P,H,Z){return H===Z?P:Z.P===void 0?null:(P=q1(P,H,Z.P),P===null?null:Z.ma(P))}var l0={};function w0(P,H){return H=D(P,H),S[H]}var N1=void 0;function Q0(P){throw new N1(P)}function E0(P,H){return H.O&&H.N||Q0("makeClassHandle requires ptr and ptrType"),!!H.T!=!!H.S&&Q0("Both smartPtrType and smartPtr must be specified"),H.count={value:1},g0(Object.create(P,{L:{value:H}}))}function g0(P){return typeof FinalizationRegistry>"u"?(g0=H=>H,P):(Y1=new FinalizationRegistry(H=>{O1(H.L)}),g0=H=>{var Z=H.L;return Z.S&&Y1.register(H,{L:Z},H),H},_1=H=>{Y1.unregister(H)},g0(P))}var s0={};function n0(P){for(;P.length;){var H=P.pop();P.pop()(H)}}function m0(P){return this.fromWireType(Q[P>>2])}var P0={},$0={};function y0(P,H,Z){function s1(D1){D1=Z(D1),D1.length!==P.length&&Q0("Mismatched type converter count");for(var z1=0;z1{r1.hasOwnProperty(D1)?p1[z1]=r1[D1]:(B1.push(D1),P0.hasOwnProperty(D1)||(P0[D1]=[]),P0[D1].push(()=>{p1[z1]=r1[D1],++P1,P1===B1.length&&s1(p1)}))}),B1.length===0&&s1(p1)}function W0(P){switch(P){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+P)}}function J(P,H,Z={}){if(!("argPackAdvance"in H))throw new TypeError("registerType registeredInstance requires argPackAdvance");var s1=H.name;if(P||i1('type "'+s1+'" must have a positive integer typeid pointer'),r1.hasOwnProperty(P)){if(Z.ta)return;i1("Cannot register type '"+s1+"' twice")}r1[P]=H,delete $0[P],P0.hasOwnProperty(P)&&(H=P0[P],delete P0[P],H.forEach(p1=>p1()))}function F1(P){i1(P.L.O.M.name+" instance already deleted")}function H1(){}function r0(P,H,Z){if(P[H].R===void 0){var s1=P[H];P[H]=function(){return P[H].R.hasOwnProperty(arguments.length)||i1("Function '"+Z+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+P[H].R+")!"),P[H].R[arguments.length].apply(this,arguments)},P[H].R=[],P[H].R[s1.Y]=s1}}function d0(P,H){i.hasOwnProperty(P)?(i1("Cannot register public name '"+P+"' twice"),r0(i,P,P),i.hasOwnProperty(void 0)&&i1("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),i[P].R[void 0]=H):i[P]=H}function G0(P,H,Z,s1,p1,B1,P1,D1){this.name=P,this.constructor=H,this.W=Z,this.V=s1,this.P=p1,this.oa=B1,this.aa=P1,this.ma=D1,this.ia=[]}function O0(P,H,Z){for(;H!==Z;)H.aa||i1("Expected null or instance of "+Z.name+", got an instance of "+H.name),P=H.aa(P),H=H.P;return P}function B2(P,H){return H===null?(this.da&&i1("null is not a valid "+this.name),0):(H.L||i1('Cannot pass "'+B5(H)+'" as a '+this.name),H.L.N||i1("Cannot pass deleted object as a pointer of type "+this.name),O0(H.L.N,H.L.O.M,this.M))}function l9(P,H){if(H===null){if(this.da&&i1("null is not a valid "+this.name),this.ca){var Z=this.ea();return P!==null&&P.push(this.V,Z),Z}return 0}if(H.L||i1('Cannot pass "'+B5(H)+'" as a '+this.name),H.L.N||i1("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&H.L.O.ba&&i1("Cannot convert argument of type "+(H.L.T?H.L.T.name:H.L.O.name)+" to parameter type "+this.name),Z=O0(H.L.N,H.L.O.M,this.M),this.ca)switch(H.L.S===void 0&&i1("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:H.L.T===this?Z=H.L.S:i1("Cannot convert argument of type "+(H.L.T?H.L.T.name:H.L.O.name)+" to parameter type "+this.name);break;case 1:Z=H.L.S;break;case 2:if(H.L.T===this)Z=H.L.S;else{var s1=H.clone();Z=this.wa(Z,z(function(){s1.delete()})),P!==null&&P.push(this.V,Z)}break;default:i1("Unsupporting sharing policy")}return Z}function K0(P,H){return H===null?(this.da&&i1("null is not a valid "+this.name),0):(H.L||i1('Cannot pass "'+B5(H)+'" as a '+this.name),H.L.N||i1("Cannot pass deleted object as a pointer of type "+this.name),H.L.O.ba&&i1("Cannot convert argument of type "+H.L.O.name+" to parameter type "+this.name),O0(H.L.N,H.L.O.M,this.M))}function s2(P,H,Z,s1){this.name=P,this.M=H,this.da=Z,this.ba=s1,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,H.P!==void 0?this.toWireType=l9:(this.toWireType=s1?B2:K0,this.U=null)}function z9(P,H){i.hasOwnProperty(P)||Q0("Replacing nonexistant public symbol"),i[P]=H,i[P].Y=void 0}function I5(P,H){var Z=[];return function(){if(Z.length=0,Object.assign(Z,arguments),P.includes("j")){var s1=i["dynCall_"+P];s1=Z&&Z.length?s1.apply(null,[H].concat(Z)):s1.call(null,H)}else s1=R.get(H).apply(null,Z);return s1}}function a9(P,H){P=l1(P);var Z=P.includes("j")?I5(P,H):R.get(H);return typeof Z!="function"&&i1("unknown function pointer with signature "+P+": "+H),Z}var R4=void 0;function n8(P,H){function Z(B1){p1[B1]||r1[B1]||($0[B1]?$0[B1].forEach(Z):(s1.push(B1),p1[B1]=!0))}var s1=[],p1={};throw H.forEach(Z),new R4(P+": "+s1.map(T1).join([", "]))}function o4(P,H,Z,s1,p1){var B1=H.length;2>B1&&i1("argTypes array size mismatch! Must at least get return value and 'this' types!");var P1=H[1]!==null&&Z!==null,D1=!1;for(Z=1;Z>2]);return Z}function u6(P){4>2])};case 3:return function(Z){return this.fromWireType(j[Z>>3])};default:throw new TypeError("Unknown float type: "+P)}}function Me(P,H,Z){switch(H){case 0:return Z?function(s1){return L[s1]}:function(s1){return E[s1]};case 1:return Z?function(s1){return k[s1>>1]}:function(s1){return I[s1>>1]};case 2:return Z?function(s1){return Q[s1>>2]}:function(s1){return _[s1>>2]};default:throw new TypeError("Unknown integer type: "+P)}}function V(P,H){for(var Z="",s1=0;!(s1>=H/2);++s1){var p1=k[P+2*s1>>1];if(p1==0)break;Z+=String.fromCharCode(p1)}return Z}function g1(P,H,Z){if(Z===void 0&&(Z=2147483647),2>Z)return 0;Z-=2;var s1=H;Z=Z<2*P.length?Z/2:P.length;for(var p1=0;p1>1]=P.charCodeAt(p1),H+=2;return k[H>>1]=0,H-s1}function M1(P){return 2*P.length}function I1(P,H){for(var Z=0,s1="";!(Z>=H/4);){var p1=Q[P+4*Z>>2];if(p1==0)break;++Z,65536<=p1?(p1-=65536,s1+=String.fromCharCode(55296|p1>>10,56320|p1&1023)):s1+=String.fromCharCode(p1)}return s1}function m1(P,H,Z){if(Z===void 0&&(Z=2147483647),4>Z)return 0;var s1=H;Z=s1+Z-4;for(var p1=0;p1=B1){var P1=P.charCodeAt(++p1);B1=65536+((B1&1023)<<10)|P1&1023}if(Q[H>>2]=B1,H+=4,H+4>Z)break}return Q[H>>2]=0,H-s1}function Z1(P){for(var H=0,Z=0;Z=s1&&++Z,H+=4}return H}var a0={};function A0(P){var H=a0[P];return H===void 0?l1(P):H}var p0=[];function I0(P){var H=p0.length;return p0.push(P),H}function k0(P,H){for(var Z=Array(P),s1=0;s1>2],"parameter "+s1);return Z}var M0=[],f2=[null,[],[]];k1=i.BindingError=v1("BindingError"),i.count_emval_handles=function(){for(var P=0,H=5;HZ0;++Z0)U2[Z0]=String.fromCharCode(Z0);C1=U2,i.getInheritedInstanceCount=function(){return Object.keys(S).length},i.getLiveInheritedInstances=function(){var P=[],H;for(H in S)S.hasOwnProperty(H)&&P.push(S[H]);return P},i.flushPendingDeletes=b1,i.setDelayFunction=function(P){e1=P,h1.length&&e1&&e1(b1)},N1=i.InternalError=v1("InternalError"),H1.prototype.isAliasOf=function(P){if(!(this instanceof H1&&P instanceof H1))return!1;var H=this.L.O.M,Z=this.L.N,s1=P.L.O.M;for(P=P.L.N;H.P;)Z=H.aa(Z),H=H.P;for(;s1.P;)P=s1.aa(P),s1=s1.P;return H===s1&&Z===P},H1.prototype.clone=function(){if(this.L.N||F1(this),this.L.$)return this.L.count.value+=1,this;var P=g0,H=Object,Z=H.create,s1=Object.getPrototypeOf(this),p1=this.L;return P=P(Z.call(H,s1,{L:{value:{count:p1.count,Z:p1.Z,$:p1.$,N:p1.N,O:p1.O,S:p1.S,T:p1.T}}})),P.L.count.value+=1,P.L.Z=!1,P},H1.prototype.delete=function(){this.L.N||F1(this),this.L.Z&&!this.L.$&&i1("Object already scheduled for deletion"),_1(this),O1(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},H1.prototype.isDeleted=function(){return!this.L.N},H1.prototype.deleteLater=function(){return this.L.N||F1(this),this.L.Z&&!this.L.$&&i1("Object already scheduled for deletion"),h1.push(this),h1.length===1&&e1&&e1(b1),this.L.Z=!0,this},s2.prototype.pa=function(P){return this.ja&&(P=this.ja(P)),P},s2.prototype.ga=function(P){this.V&&this.V(P)},s2.prototype.argPackAdvance=8,s2.prototype.readValueFromPointer=m0,s2.prototype.deleteObject=function(P){P!==null&&P.delete()},s2.prototype.fromWireType=function(P){function H(){return this.ca?E0(this.M.W,{O:this.va,N:Z,T:this,S:P}):E0(this.M.W,{O:this,N:P})}var Z=this.pa(P);if(!Z)return this.ga(P),null;var s1=w0(this.M,Z);if(s1!==void 0)return s1.L.count.value===0?(s1.L.N=Z,s1.L.S=P,s1.clone()):(s1=s1.clone(),this.ga(P),s1);if(s1=this.M.oa(Z),s1=l0[s1],!s1)return H.call(this);s1=this.ba?s1.ka:s1.pointerType;var p1=q1(Z,this.M,s1.M);return p1===null?H.call(this):this.ca?E0(s1.M.W,{O:s1,N:p1,T:this,S:P}):E0(s1.M.W,{O:s1,N:p1})},R4=i.UnboundTypeError=v1("UnboundTypeError");var F2=typeof atob=="function"?atob:function(P){var H="",Z=0;P=P.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var s1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(P.charAt(Z++)),p1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(P.charAt(Z++)),B1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(P.charAt(Z++)),P1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(P.charAt(Z++));s1=s1<<2|p1>>4,p1=(p1&15)<<4|B1>>2;var D1=(B1&3)<<6|P1;H+=String.fromCharCode(s1),B1!==64&&(H+=String.fromCharCode(p1)),P1!==64&&(H+=String.fromCharCode(D1))}while(ZP1.sa).concat(p1.map(P1=>P1.ya));y0([P],B1,P1=>{var D1={};return p1.forEach((z1,W1)=>{var e0=P1[W1],h0=z1.qa,j0=z1.ra,u2=P1[W1+p1.length],F0=z1.xa,B9=z1.za;D1[z1.na]={read:r8=>e0.fromWireType(h0(j0,r8)),write:(r8,b4)=>{var i8=[];F0(B9,r8,u2.toWireType(i8,b4)),n0(i8)}}}),[{name:H.name,fromWireType:function(z1){var W1={},e0;for(e0 in D1)W1[e0]=D1[e0].read(z1);return s1(z1),W1},toWireType:function(z1,W1){for(var e0 in D1)if(!(e0 in W1))throw new TypeError('Missing field: "'+e0+'"');var h0=Z();for(e0 in D1)D1[e0].write(h0,W1[e0]);return z1!==null&&z1.push(s1,h0),h0},argPackAdvance:8,readValueFromPointer:m0,U:s1}]})},v:function(){},B:function(P,H,Z,s1,p1){var B1=W0(Z);H=l1(H),J(P,{name:H,fromWireType:function(P1){return!!P1},toWireType:function(P1,D1){return D1?s1:p1},argPackAdvance:8,readValueFromPointer:function(P1){if(Z===1)var D1=L;else if(Z===2)D1=k;else if(Z===4)D1=Q;else throw new TypeError("Unknown boolean type size: "+H);return this.fromWireType(D1[P1>>B1])},U:null})},f:function(P,H,Z,s1,p1,B1,P1,D1,z1,W1,e0,h0,j0){e0=l1(e0),B1=a9(p1,B1),D1&&(D1=a9(P1,D1)),W1&&(W1=a9(z1,W1)),j0=a9(h0,j0);var u2=$(e0);d0(u2,function(){n8("Cannot construct "+e0+" due to unbound types",[s1])}),y0([P,H,Z],s1?[s1]:[],function(F0){if(F0=F0[0],s1)var B9=F0.M,r8=B9.W;else r8=H1.prototype;F0=O(u2,function(){if(Object.getPrototypeOf(this)!==b4)throw new k1("Use 'new' to construct "+e0);if(i8.X===void 0)throw new k1(e0+" has no accessible constructor");var zn=i8.X[arguments.length];if(zn===void 0)throw new k1("Tried to invoke ctor of "+e0+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(i8.X).toString()+") parameters instead!");return zn.apply(this,arguments)});var b4=Object.create(r8,{constructor:{value:F0}});F0.prototype=b4;var i8=new G0(e0,F0,b4,j0,B9,B1,D1,W1);B9=new s2(e0,i8,!0,!1),r8=new s2(e0+"*",i8,!1,!1);var d6=new s2(e0+" const*",i8,!1,!0);return l0[P]={pointerType:r8,ka:d6},z9(u2,F0),[B9,r8,d6]})},c:function(P,H,Z,s1,p1,B1,P1){var D1=c6(Z,s1);H=l1(H),B1=a9(p1,B1),y0([],[P],function(z1){function W1(){n8("Cannot call "+e0+" due to unbound types",D1)}z1=z1[0];var e0=z1.name+"."+H;H.startsWith("@@")&&(H=Symbol[H.substring(2)]);var h0=z1.M.constructor;return h0[H]===void 0?(W1.Y=Z-1,h0[H]=W1):(r0(h0,H,e0),h0[H].R[Z-1]=W1),y0([],D1,function(j0){return j0=o4(e0,[j0[0],null].concat(j0.slice(1)),null,B1,P1),h0[H].R===void 0?(j0.Y=Z-1,h0[H]=j0):h0[H].R[Z-1]=j0,[]}),[]})},o:function(P,H,Z,s1,p1,B1){0{n8("Cannot construct "+D1.name+" due to unbound types",P1)},y0([],P1,function(W1){return W1.splice(1,0,null),D1.M.X[H-1]=o4(z1,W1,null,p1,B1),[]}),[]})},a:function(P,H,Z,s1,p1,B1,P1,D1){var z1=c6(Z,s1);H=l1(H),B1=a9(p1,B1),y0([],[P],function(W1){function e0(){n8("Cannot call "+h0+" due to unbound types",z1)}W1=W1[0];var h0=W1.name+"."+H;H.startsWith("@@")&&(H=Symbol[H.substring(2)]),D1&&W1.M.ia.push(H);var j0=W1.M.W,u2=j0[H];return u2===void 0||u2.R===void 0&&u2.className!==W1.name&&u2.Y===Z-2?(e0.Y=Z-2,e0.className=W1.name,j0[H]=e0):(r0(j0,H,h0),j0[H].R[Z-2]=e0),y0([],z1,function(F0){return F0=o4(h0,F0,W1,B1,P1),j0[H].R===void 0?(F0.Y=Z-2,j0[H]=F0):j0[H].R[Z-2]=F0,[]}),[]})},A:function(P,H){H=l1(H),J(P,{name:H,fromWireType:function(Z){var s1=E1(Z);return u6(Z),s1},toWireType:function(Z,s1){return z(s1)},argPackAdvance:8,readValueFromPointer:m0,U:null})},m:function(P,H,Z){Z=W0(Z),H=l1(H),J(P,{name:H,fromWireType:function(s1){return s1},toWireType:function(s1,p1){return p1},argPackAdvance:8,readValueFromPointer:ke(H,Z),U:null})},d:function(P,H,Z,s1,p1){H=l1(H),p1===-1&&(p1=4294967295),p1=W0(Z);var B1=D1=>D1;if(s1===0){var P1=32-8*Z;B1=D1=>D1<>>P1}Z=H.includes("unsigned")?function(D1,z1){return z1>>>0}:function(D1,z1){return z1},J(P,{name:H,fromWireType:B1,toWireType:Z,argPackAdvance:8,readValueFromPointer:Me(H,p1,s1!==0),U:null})},b:function(P,H,Z){function s1(B1){B1>>=2;var P1=_;return new p1(m,P1[B1+1],P1[B1])}var p1=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][H];Z=l1(Z),J(P,{name:Z,fromWireType:s1,argPackAdvance:8,readValueFromPointer:s1},{ta:!0})},n:function(P,H){H=l1(H);var Z=H==="std::string";J(P,{name:H,fromWireType:function(s1){var p1=_[s1>>2],B1=s1+4;if(Z)for(var P1=B1,D1=0;D1<=p1;++D1){var z1=B1+D1;if(D1==p1||E[z1]==0){if(P1=P1?y(E,P1,z1-P1):"",W1===void 0)var W1=P1;else W1+="\0",W1+=P1;P1=z1+1}}else{for(W1=Array(p1),D1=0;D1=z1?D1++:2047>=z1?D1+=2:55296<=z1&&57343>=z1?(D1+=4,++B1):D1+=3}B1=D1}else B1=p1.length;if(D1=f9(4+B1+1),z1=D1+4,_[D1>>2]=B1,Z&&P1){if(P1=z1,z1=B1+1,B1=E,0=e0){var h0=p1.charCodeAt(++W1);e0=65536+((e0&1023)<<10)|h0&1023}if(127>=e0){if(P1>=z1)break;B1[P1++]=e0}else{if(2047>=e0){if(P1+1>=z1)break;B1[P1++]=192|e0>>6}else{if(65535>=e0){if(P1+2>=z1)break;B1[P1++]=224|e0>>12}else{if(P1+3>=z1)break;B1[P1++]=240|e0>>18,B1[P1++]=128|e0>>12&63}B1[P1++]=128|e0>>6&63}B1[P1++]=128|e0&63}}B1[P1]=0}}else if(P1)for(P1=0;P1I,D1=1;else H===4&&(s1=I1,p1=m1,B1=Z1,P1=()=>_,D1=2);J(P,{name:Z,fromWireType:function(z1){for(var W1=_[z1>>2],e0=P1(),h0,j0=z1+4,u2=0;u2<=W1;++u2){var F0=z1+4+u2*H;(u2==W1||e0[F0>>D1]==0)&&(j0=s1(j0,F0-j0),h0===void 0?h0=j0:(h0+="\0",h0+=j0),j0=F0+H)}return x0(z1),h0},toWireType:function(z1,W1){typeof W1!="string"&&i1("Cannot pass non-string to C++ string type "+Z);var e0=B1(W1),h0=f9(4+e0+H);return _[h0>>2]=e0>>D1,p1(W1,h0+4,e0+H),z1!==null&&z1.push(x0,h0),h0},argPackAdvance:8,readValueFromPointer:m0,U:function(z1){x0(z1)}})},k:function(P,H,Z,s1,p1,B1){s0[P]={name:l1(H),ea:a9(Z,s1),V:a9(p1,B1),ha:[]}},h:function(P,H,Z,s1,p1,B1,P1,D1,z1,W1){s0[P].ha.push({na:l1(H),sa:Z,qa:a9(s1,p1),ra:B1,ya:P1,xa:a9(D1,z1),za:W1})},C:function(P,H){H=l1(H),J(P,{ua:!0,name:H,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(P,H,Z,s1,p1){P=p0[P],H=E1(H),Z=A0(Z);var B1=[];return _[s1>>2]=z(B1),P(H,Z,B1,p1)},t:function(P,H,Z,s1){P=p0[P],H=E1(H),Z=A0(Z),P(H,Z,null,s1)},g:u6,l:function(P,H){var Z=k0(P,H),s1=Z[0];H=s1.name+"_$"+Z.slice(1).map(function(P1){return P1.name}).join("_")+"$";var p1=M0[H];if(p1!==void 0)return p1;var B1=Array(P-1);return p1=I0((P1,D1,z1,W1)=>{for(var e0=0,h0=0;h0>>=0,2147483648=Z;Z*=2){var s1=H*(1+.2/Z);s1=Math.min(s1,P+100663296);var p1=Math;s1=Math.max(P,s1),p1=p1.min.call(p1,2147483648,s1+(65536-s1%65536)%65536);e:{try{w.grow(p1-m.byteLength+65535>>>16),q();var B1=1;break e}catch{}B1=void 0}if(B1)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(P,H,Z,s1){for(var p1=0,B1=0;B1>2],D1=_[H+4>>2];H+=8;for(var z1=0;z1>2]=p1,0}};(function(){function P(p1){i.asm=p1.exports,w=i.asm.D,q(),R=i.asm.I,K.unshift(i.asm.E),c1--,i.monitorRunDependencies&&i.monitorRunDependencies(c1),c1==0&&o1&&(p1=o1,o1=null,p1())}function H(p1){P(p1.instance)}function Z(p1){return x1().then(function(B1){return WebAssembly.instantiate(B1,s1)}).then(function(B1){return B1}).then(p1,function(B1){p("failed to asynchronously prepare wasm: "+B1),f1(B1)})}var s1={a:L0};if(c1++,i.monitorRunDependencies&&i.monitorRunDependencies(c1),i.instantiateWasm)try{return i.instantiateWasm(s1,P)}catch(p1){p("Module.instantiateWasm callback failed with error: "+p1),s(p1)}return function(){return A||typeof WebAssembly.instantiateStreaming!="function"||U(t1)||typeof fetch!="function"?Z(H):fetch(t1,{credentials:"same-origin"}).then(function(p1){return WebAssembly.instantiateStreaming(p1,s1).then(H,function(B1){return p("wasm streaming compile failed: "+B1),p("falling back to ArrayBuffer instantiation"),Z(H)})})}().catch(s),{}})(),i.___wasm_call_ctors=function(){return(i.___wasm_call_ctors=i.asm.E).apply(null,arguments)};var t0=i.___getTypeName=function(){return(t0=i.___getTypeName=i.asm.F).apply(null,arguments)};i.__embind_initialize_bindings=function(){return(i.__embind_initialize_bindings=i.asm.G).apply(null,arguments)};var f9=i._malloc=function(){return(f9=i._malloc=i.asm.H).apply(null,arguments)},x0=i._free=function(){return(x0=i._free=i.asm.J).apply(null,arguments)};i.dynCall_jiji=function(){return(i.dynCall_jiji=i.asm.K).apply(null,arguments)};var l2;o1=function P(){l2||C8(),l2||(o1=P)};function C8(){function P(){if(!l2&&(l2=!0,i.calledRun=!0,!x)){if(U1(K),o(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),i.postRun)for(typeof i.postRun=="function"&&(i.postRun=[i.postRun]);i.postRun.length;){var H=i.postRun.shift();A1.unshift(H)}U1(A1)}}if(!(0r2(t),e);u.useEffect(()=>n,[n])}let ma;function wN(){if(ma==null){const t=ma=c2(void 0);Q9.loadYoga().then(e=>t.value=e)}return ma}function Rk(t,e,...n){const C=u.useMemo(()=>c2(void 0),[]);return u.useEffect(()=>{if(!(e instanceof j2)){let r=!1;return t(e,...n).then(i=>r?void 0:C.value=i),()=>r=!0}return r2(()=>{let r=!1;return t(e.value,...n).then(i=>r?void 0:C.value=i).catch(console.error),()=>r=!0})},[e,...n]),C}function bk(t,e,n,C,r){const[i,o]=t.value,[s,a,d,g]=e.value,[p,A,w,x]=n.value,y=s+p,m=a+A,L=d+w,E=g+x,k=i-E-m,I=o-y-L,Q=k/I;let _=1;return Q>r?_=I*C:_=k*C/r,[(E-m)*.5*C,(L-y)*.5*C,_]}const Cv=new J1;function ku(t,e,n,C=0){const r=e*t.itemSize+C;t.addUpdateRange(r,3),Array.isArray(n)?t.set(n,r):(Cv.set(n),Cv.toArray(t.array,r)),t.needsUpdate=!0}function Mu(t){return t instanceof j2?t.value:t}const Qk=u.createContext(null);function T3(){return u.useContext(Qk)}const xN=Qk.Provider;function P6(t){const e=new Map;return(n,C)=>{const r=n.length;for(const i in C){const o=C[i];if(o===void 0)return;let s=e.get(o);s==null&&e.set(o,s=o9(()=>t()?Mu(o):void 0));for(let a=0;a"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),Tk=c2((Z7==null?void 0:Z7.matches)??!1);Z7==null||Z7.addEventListener("change",t=>Tk.value=t.matches);const mN=c2("system"),kN=o9(()=>{switch(mN.value){case"system":return Tk.value;case"dark":return!0;case"light":return!1}}),MN=P6(()=>kN.value);function A5(t,e){jn(e,n=>{const C=n.dark;C!=null&&MN(t,C)})}const EN=Math.cos(45/180*Math.PI),ka=[new o2,new o2,new o2,new o2],rv=new G;class yN{constructor(e,n,C,r,i){V1(this,"planes");V1(this,"facePlane");V1(this,"originalCenter");this.originalCenter=new G(n,C,0).applyMatrix4(e),this.facePlane=new o2(new G(0,0,1),0).applyMatrix4(e);const o=r/2,s=i/2,a=C+s,d=n+o,g=-C+s,p=-n+o;this.planes=[new o2(new G(0,-1,0),g).applyMatrix4(e),new o2(new G(-1,0,0),p).applyMatrix4(e),new o2(new G(0,1,0),a).applyMatrix4(e),new o2(new G(1,0,0),d).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const i=this.facePlane,o=e[r],s=i.normal.dot(o.normal);if(Math.abs(s)>.99)return this;const a=ka[r];if(Math.abs(s)<.01){a.copy(o);continue}a.normal.crossVectors(i.normal,o.normal).normalize().cross(i.normal).negate();const d=1-s*s,g=(i.constant-o.constant*s)/d,p=(o.constant-i.constant*s)/d;rv.copy(i.normal).multiplyScalar(g).addScaledVector(o.normal,p),a.constant=-rv.dot(a.normal)}let n=0;const C=this.planes[0].normal;for(;ka[n].normal.dot(C)>EN;)break;for(let r=0;r<4;r++){const i=this.planes[r],o=(r+n)%4;ka[o].distanceToPoint(this.originalCenter)o9(()=>{const r=e.value,i=t==null?void 0:t.value;if(i==null||r==null)return!1;const[o,s]=n.value;for(let g=0;g<4;g++){const[p,A]=SN[g];iv[g].set(p*C.pixelSize*o,A*C.pixelSize*s,0).applyMatrix4(r)}const{planes:a}=i;let d;for(let g=0;g<4;g++){const p=a[g];d=!0;for(let A=0;A<4;A++){const w=iv[A];p.distanceToPoint(w)>=0&&(d=!1)}if(d)return!0}return!1}),[e,t,C,n])}function _N(t,e,n,C,r,i){return u.useMemo(()=>o9(()=>{const o=t.value;if(o==null||C.value===Q9.Overflow.Visible)return i==null?void 0:i.value;const[s,a]=e.value,[d,g,p,A]=n.value,w=new yN(o,(g-A)*r.pixelSize/2,(d-p)*r.pixelSize/2,(s-A-g)*r.pixelSize,(a-d-p)*r.pixelSize);return(i==null?void 0:i.value)!=null&&w.min(i.value),w}),[t,e,n,r,C,i])}const Eu=new o2(new G(-1,0,0),Number.MAX_SAFE_INTEGER),io=new Float32Array(16);for(let t=0;t<4;t++)Eu.normal.toArray(io,t*4),io[t*4+3]=Eu.constant;function Un(t,e){const n=u.useMemo(()=>[new o2,new o2,new o2,new o2],[]);return d5(()=>{var i;const C=e.current;if(C==null)return;const r=(i=t==null?void 0:t.value)==null?void 0:i.planes;if(r==null){for(let o=0;o<4;o++)n[o].copy(Eu);return}for(let o=0;o<4;o++)n[o].copy(r[o]).applyMatrix4(C.matrixWorld)}),n}class RN{constructor(e,n){V1(this,"glyphInfoMap",new Map);V1(this,"kerningMap",new Map);V1(this,"questionmarkGlyphInfo");V1(this,"pageWidth");V1(this,"pageHeight");V1(this,"distanceRange");this.page=n;const{scaleW:C,scaleH:r,lineHeight:i}=e.common;this.pageWidth=C,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const a of e.chars)a.uvX=a.x/C,a.uvY=a.y/r,a.uvWidth=a.width/C,a.uvHeight=a.height/r,a.width/=o,a.height/=o,a.xadvance/=o,a.xoffset/=o,a.yoffset-=i-o,a.yoffset/=o,this.glyphInfoMap.set(a.char,a);for(const{first:a,second:d,amount:g}of e.kernings)this.kerningMap.set(`${a}/${d}`,g/o);const s=this.glyphInfoMap.get("?");if(s==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=s}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` -`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,n){return this.kerningMap.get(`${e}/${n}`)??0}}function bN(t,e,n){e[n+0]=t.uvX,e[n+1]=t.uvY+t.uvHeight,e[n+2]=t.uvWidth,e[n+3]=-t.uvHeight}const ov=new f0,QN=new f0;class TN{constructor(e,n,C,r,i){V1(this,"index");V1(this,"hidden",!0);V1(this,"glyphInfo");V1(this,"x",0);V1(this,"y",0);V1(this,"fontSize",0);this.group=e,this.baseMatrix=n,this.color=C,this.opacity=r,this.clippingRect=i}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const n=this.index*16,{instanceClipping:C}=this.group;this.clippingRect==null?C.set(io,n):this.clippingRect.toArray(C.array,n),C.addUpdateRange(n,16),C.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&ku(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:n}=this.group,C=this.index*4+3;n.array[C]=e,n.addUpdateRange(C,1),n.needsUpdate=!0}updateGlyphAndTransformation(e,n,C,r){this.glyphInfo===e&&this.x===n&&this.y===C&&this.fontSize===r||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=n,this.y=C,this.fontSize=r,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:n}=this.group;bN(this.glyphInfo,n.array,e),n.addUpdateRange(e,4),n.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:n}=this.group;n.addUpdateRange(e,16),ov.makeTranslation(this.x,this.y,0).multiply(QN.makeScale(this.fontSize*this.glyphInfo.width,this.fontSize*this.glyphInfo.height,1)).premultiply(this.baseMatrix),ov.toArray(n.array,e),n.needsUpdate=!0}}function DN(t,e,n,C){return((C==null?0:t.getKerning(C,n.id))+n.xoffset)*e}function NN(t,e,n){return(n.yoffset+(e-1)/2)*t}function ts(t,e,n){return e.xadvance*t+n}function PN(t,e){return t*e}function yu(t,{lineHeight:e,fontSize:n}){return Math.max(t,1)*n*e}class HN{constructor(e,n,C,r,i,o,s){V1(this,"glyphLines",[]);V1(this,"unsubscribe");V1(this,"unsubscribeList",[]);V1(this,"opacity",1);V1(this,"color",16777215);this.group=e,this.getAlignmentProperties=n,this.getAppearanceProperties=C,this.layout=r,this.matrix=i,this.parentClippingRect=s,this.unsubscribe=r2(()=>{const a=C.value;if(a==null||(o==null?void 0:o.value)===!0||(a("opacity")??1)<.01){this.hide();return}this.show()})}show(){this.unsubscribeList.length>0||(Y5(this.glyphLines,e=>e.show()),this.unsubscribeList.push(r2(()=>{const e=this.matrix.value;e!=null&&Y5(this.glyphLines,n=>n.updateBaseMatrix(e))}),r2(()=>{var n;const e=(n=this.parentClippingRect)==null?void 0:n.value;Y5(this.glyphLines,C=>C.updateClippingRect(e))}),r2(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const n=this.color=e("color")??16777215;Y5(this.glyphLines,C=>C.updateColor(n))}),r2(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const n=this.opacity=e("opacity")??1;Y5(this.glyphLines,C=>C.updateOpacity(n))}),r2(()=>{var y;const e=this.layout.value,n=this.getAlignmentProperties.value;if(e==null||n==null)return;const{text:C,font:r,lines:i,letterSpacing:o=0,fontSize:s=16,lineHeight:a=1.2,availableHeight:d,availableWidth:g}=e;let p=-d/2;switch(n("verticalAlign")){case"center":p+=(d-yu(e.lines.length,e))/2;break;case"bottom":p+=d-yu(e.lines.length,e);break}const A=n("horizontalAlign")??"left",w=i.length,x=this.group.pixelSize;for(let m=0;mm.hide(),w),this.glyphLines.length=w})))}hide(){const e=this.unsubscribeList.length;if(e!==0){for(let n=0;nn.hide())}}destroy(){this.hide(),this.glyphLines.length=0,this.unsubscribe()}}function Y5(t,e,n=0){const C=t.length;for(let r=n;r{n.uniforms.fontPage={value:e.page},n.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},n.uniforms.distanceRange={value:e.distanceRange},n.uniforms.v_weight={value:.3},n.vertexShader=`attribute vec4 instanceUVOffset; - varying vec2 fontUv; - attribute vec4 instanceRGBA; - varying vec4 rgba; - attribute mat4 instanceClipping; - varying mat4 clipping; - varying vec3 localPosition; - `+n.vertexShader,n.vertexShader=n.vertexShader.replace("#include ",`#include - fontUv = instanceUVOffset.xy + uv * instanceUVOffset.zw; - rgba = instanceRGBA; - clipping = instanceClipping; - localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`),n.fragmentShader=`uniform sampler2D fontPage; - uniform vec2 pageSize; - uniform int distanceRange; - uniform float v_weight; - varying vec2 fontUv; - varying vec4 rgba; - varying mat4 clipping; - varying vec3 localPosition; - float median(float r, float g, float b) { - return max(min(r, g), min(max(r, g), b)); - } - float getDistance() { - vec3 msdf = texture(fontPage, fontUv).rgb; - return median(msdf.r, msdf.g, msdf.b); - } - `+n.fragmentShader,n.fragmentShader=n.fragmentShader.replace("#include ",` #include - vec4 plane; - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - for(int i = 0; i < 4; i++) { - plane = clipping[ i ]; - distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - - if ( clipOpacity == 0.0 ) discard; - } - vec2 dxdy = fwidth(fontUv) * pageSize; - float dist = getDistance() + min(float(v_weight), 0.5 - 1.0 / float(distanceRange)) - 0.5; - float multiplier = clamp(dist * float(distanceRange) / length(dxdy) + 0.5, 0.0, 1.0); - if(multiplier <= 0.5) { - discard; - } - diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); - diffuseColor *= rgba; - `)}}}const Iu=Symbol("camera-distance-key"),Bu=Symbol("order-info-key");function FN(t,e){if(t.groupOrder!==e.groupOrder)return t.groupOrder-e.groupOrder;if(t.renderOrder!==e.renderOrder)return t.renderOrder-e.renderOrder;const n=t.object[Iu],C=e.object[Iu];return n==null||C==null?t.z!==e.z?e.z-t.z:t.id-e.id:n===C?GN(t.object[Bu],e.object[Bu]):C.current-n.current}function WN(t){t.setTransparentSort(FN)}const U9={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function GN(t,e){let n=t.majorIndex-e.majorIndex;return n!=0||(n=t.elementType-e.elementType,n!=0)?n:t.minorIndex-e.minorIndex}const Nk=u.createContext(null),ON=Nk.Provider;function L8(t,e,n,C){const r=C??u.useContext(Nk),i=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return u.useMemo(()=>{let s,a;return r==null?(s=0,a=0):t>r.elementType?(s=r.majorIndex,a=0):t!=r.elementType||!zN(n,r.instancedGroupDependencies)?(s=r.majorIndex+1,a=0):(s=r.majorIndex,a=r.minorIndex+1),i>0&&(s+=i,a=0),a+=o,{instancedGroupDependencies:n,elementType:t,majorIndex:s,minorIndex:a}},[i,o,r,t,n])}function zN(t,e){if(t===e)return!0;if(t==null||e==null)return!1;let n=0;for(const C in t){if(t[C]!=e[C])return!1;++n}return n===Object.keys(e).length}function N3(t,e,n){return t[Iu]=e,t[Bu]=n,t}class VN extends D8{constructor(n,C,r,i){super();V1(this,"instanceMatrix");V1(this,"instanceUV");V1(this,"instanceRGBA");V1(this,"instanceClipping");V1(this,"glyphs",[]);V1(this,"requestedGlyphs",[]);V1(this,"holeIndicies",[]);V1(this,"mesh");V1(this,"material");V1(this,"timeTillDecimate");this.pixelSize=C,this.cameraDistance=r,this.orderInfo=i,this.material=new UN(n)}requestActivate(n){const C=this.holeIndicies.shift();if(C!=null){this.glyphs[C]=n,n.activate(C);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(n);return}const r=this.mesh.count;this.glyphs[r]=n,n.activate(r),this.mesh.count+=1}delete(n){if(n.index==null){const i=this.requestedGlyphs.indexOf(n);if(i===-1)return;this.requestedGlyphs.splice(i,1);return}const C=this.requestedGlyphs.shift();if(C!=null){C.activate(n.index),this.glyphs[n.index]=C,n.index=void 0;return}if(n.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,n.index=void 0;return}const r=n.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(n.index),this.glyphs[n.index]=void 0,n.index=void 0}onFrame(n){var s;const C=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(C===0){this.visible=!1;return}this.visible=!0;const r=((s=this.instanceMatrix)==null?void 0:s.count)??0;if(C0)&&C<=r)return;this.timeTillDecimate=void 0,this.resize(C);const i=this.mesh.count,o=this.requestedGlyphs.length;for(let a=0;aA-w);const d=this.holeIndicies.length;let g=0,p=0;for(;p0)for(let A=this.holeIndicies[0];A{for(const o of r)o(i);Ma.set(t,i)}).catch(console.error)}async function XN(t,e){const n=await(await fetch(t)).json();if(n.pages.length!==1)throw new Error("only supporting exactly 1 page");const C=await $N.loadAsync(new URL(n.pages[0],t).href);return C.anisotropy=e.capabilities.getMaxAnisotropy(),C.flipY=!1,new RN(n,C)}const JN=({text:t,fontSize:e,font:n,letterSpacing:C},r,i)=>{let o={start:i,end:i,whitespaces:0,width:0},s=i,a=0,d=0;for(;sr)break;a+=p,++s,g===" "?d+=1:(o.width=a,o.end=s,o.whitespaces=d)}return o},qN=({text:t,fontSize:e,font:n,letterSpacing:C},r,i)=>{let o={start:i,end:i,whitespaces:0,width:0},s=0,a=0,d=i;for(;d{let o={start:i,end:i,whitespaces:0,width:0},s=0,a=0,d=i;for(;d0&&s+p>r)break;if(++d,s+=p,g===" "){a+=1;continue}const A=t[d];A!=" "&&A!=` -`&&dnew Map,[]),r=u.useCallback((i,o)=>{let s=C.get(o);s==null&&C.set(o,s=new Map);let a=s==null?void 0:s.get(i);return a==null&&(s.set(i,a=new VN(o,t,e,{majorIndex:i,elementType:U9.Text,minorIndex:0})),n.add(a)),a},[t,e,n]);return d5((i,o)=>{for(const s of C.values())for(const a of s.values())a.onFrame(o)}),r}const CP=u.createContext(null),rP={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},Su={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},iP=["horizontalAlign","verticalAlign"],oP=["color","opacity"],sP=["fontSize","letterSpacing","lineHeight","wordBreak"];function lP(t,e,n,C,r,i,o){const s=u.useContext(Hk),a=cP(t),d=u.useMemo(()=>c2(e),[]);d.value=e;const g=u.useRef(void 0),p=hP(t,a,d,g),A=C4(t,iP),w=C4(t,oP),x=u.useMemo(()=>c2(void 0),[]);return u.useEffect(()=>C.addLayoutChangeListener(()=>{const y=g.current;if(y==null)return;const{size:m,paddingInset:L,borderInset:E}=C,[k,I]=m.value,[Q,_,T,j]=L.value,[q,R,N,K]=E.value,A1=k-_-j-R-K,X=I-Q-T-q-N;x.value=eP(y,A1,X)}),[C]),y9(()=>{const y=a.value;if(y==null)return;const m=new HN(s(o.majorIndex,y),A,w,x,n,r,i);return()=>m.destroy()},[s,n,C,r,i,o.majorIndex]),p}const aP=["fontFamily","fontWeight"];function cP(t){const e=u.useMemo(()=>c2(void 0),[]),n=u.useContext(CP)??rP,C=C4(t,aP),r=ph(({gl:i})=>i);return y9(()=>{const i=C.value;if(i==null)return;let o=i("fontWeight")??"normal";typeof o=="string"&&(o=Su[o]);let s=i("fontFamily");s==null&&(s=Object.keys(n)[0]);const a=uP(n[s],o);let d=!1;return YN(a,r,g=>d?void 0:e.value=g),()=>d=!0},[n,r]),e}function uP(t,e){let n=1/0,C;for(const r in t){const i=Math.abs(e-dP(r));if(i===0)return t[r];io9(()=>{const o=e.value,s=r.value;if(o==null||s==null)return;const a=n.value,d=Array.isArray(a)?a.map(x=>Mu(x)).join(""):Mu(a),g=s("letterSpacing")??0,p=s("lineHeight")??1.2,A=s("fontSize")??16,w=s("wordBreak")??"break-word";return(x,y)=>{const m=y===Q9.MeasureMode.Undefined?void 0:x;return ZN(C.current={font:o,fontSize:A,letterSpacing:g,lineHeight:p,text:d,wordBreak:w},m)}}),[e,r,C,n])}const B7={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},jk=Object.keys(B7),fP=jk.length,Uk=u.createContext(null),gP=Uk.Provider;function v5(t,e,n){const C=n??u.useContext(Uk),r=u.useMemo(()=>({sm:P6(()=>C.value[0]>B7.sm),md:P6(()=>C.value[0]>B7.md),lg:P6(()=>C.value[0]>B7.lg),xl:P6(()=>C.value[0]>B7.xl),"2xl":P6(()=>C.value[0]>B7["2xl"])}),[C]);jn(e,i=>{for(let o=0;oe.createChild(t),[t,e]);return u.useEffect(()=>(e.addChild(n),()=>{e.removeChild(n),n.destroy()}),[e,n]),n}function AP(){let t=u.useRef(void 0);return d5(()=>{if(t.current==null)return;const e=t.current;t.current=void 0,e.calculateLayout()}),u.useCallback(e=>{t.current!=null||e.yogaNode==null||(t.current=e)},[])}const xh=Fk.Provider,A4=new o2,Vr=new G,vP=[new o2().setFromNormalAndCoplanarPoint(new G(1,0,0),new G(-.5,0,0)),new o2().setFromNormalAndCoplanarPoint(new G(-1,0,0),new G(.5,0,0)),new o2().setFromNormalAndCoplanarPoint(new G(0,1,0),new G(0,-.5,0)),new o2().setFromNormalAndCoplanarPoint(new G(0,-1,0),new G(0,.5,0))];function Wk(t){return(e,n)=>{const C=t.matrixWorld;if(A4.constant=0,A4.normal.set(0,0,1),A4.applyMatrix4(C),A4.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(A4,Vr)==null)return;const r=A4.normal.clone();for(let i=0;i<4;i++){const o=vP[i];if(A4.copy(o).applyMatrix4(C),A4.distanceToPoint(Vr)<0)return}n.push({distance:Vr.distanceTo(e.ray.origin),object:t,point:Vr.clone(),normal:r})}}function we(t,e,n,C,r){return(i,o)=>{var p;const s=n.current;if(s==null)return;const a=o.length;e.call(t,i,o);const d=(p=C==null?void 0:C.value)==null?void 0:p.planes,g=s.matrixWorld;e:for(let A=o.length-1;A>=a;A--){const w=o[A];if(w.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,d!=null){for(let x=0;x<4;x++)if(A4.copy(d[x]).applyMatrix4(g),A4.distanceToPoint(w.point)<0){o.splice(A,1);continue e}}}}}function Gk(t,e){for(;e>=t.length;){let n=0,C=0;if(t.length>0){const r=t[t.length-1];n+=r.offset+r.elements.length,C=Math.min(0,r.missingSpace),r.missingSpace-=C}t.push({add:[],missingSpace:C,offset:n,elements:[]})}}function LP(t,e,n){Gk(t,0);const C=t[t.length-1];C.missingSpace+=e-n}function wP(t,e,n,C){Gk(t,e);const r=t[e];return r.missingSpace+=1,r.missingSpace<=0?(C(n,r,r.elements.length),r.elements.push(n),!1):(r.add.push(n),!0)}function xP(t,e,n,C,r,i,o,s){if(e>=t.length)throw new Error(`no bucket at index ${e}`);const a=t[e];a.missingSpace-=1;const d=a.add.indexOf(n);if(d!=-1)return a.add.splice(d,1),!1;if(C==null||C>=a.elements.length)throw new Error(`no element at index ${C}`);if(a.add.length>0){const w=a.add.shift();return a.elements[C]=w,r(w,a,C),!1}const g=a.offset,p=a.elements.length-1;if(p!=C){const w=g+p,x=g+C;s(x,w,w+1);const y=a.elements[p];a.elements[C]=y,o(y,C)}if(i(g+p),a.elements.length-=1,e0;){const w=t[e-1];w.missingSpace+=A.missingSpace,A=t[--e]}return t.length=e+1,!1}function mP(t,e,n){let C=t.length,r=-1;for(let o=0;o0&&(r=o);const a=o===C-1;if(!a&&s.missingSpace===0)continue;const d=s.missingSpace<0;for(let g=o-1;g>=0;g--){const p=t[g];if(p.missingSpace===0)continue;const A=p.missingSpace<0;if(A&&(a||d)){lv(t,n,g,o,Math.abs(p.missingSpace));continue}if(!d&&!A)continue;const w=Math.min(Math.abs(p.missingSpace),Math.abs(s.missingSpace));d?kP(t,n,g,o,w):lv(t,n,g,o,w)}}const i=t[r];for(let o=r+1;og>0)&&(C==null||C>0),[s,a]=e.value;return!(s>0&&a>0&&(r==null||r>0)&&i!=null)&&!o?!1:n==null?!0:!n.value}function vt(t,e,n,C,r){t[e]=MP(t[e],n,mh(Math.ceil((C??0)/r*100),0,49))}const $r=new J1,Vk=new J1(-1,-1,-1),av={backgroundColor:(t,e)=>(Array.isArray(e)?$r.setRGB(...e):$r.set(e??Vk)).toArray(t,4),borderBottomLeftRadius:(t,e,n)=>vt(t,7,0,e,n.value[1]),borderBottomRightRadius:(t,e,n)=>vt(t,7,1,e,n.value[1]),borderTopRightRadius:(t,e,n)=>vt(t,7,2,e,n.value[1]),borderTopLeftRadius:(t,e,n)=>vt(t,7,3,e,n.value[1]),borderColor:(t,e)=>(Array.isArray(e)?$r.setRGB(...e):$r.set(e??16777215)).toArray(t,8),borderBend:(t,e)=>t[11]=e??0,borderOpacity:(t,e)=>t[12]=e??1,backgroundOpacity:(t,e)=>t[15]=e??-1},$k=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],EP=["borderOpacity","backgroundColor","backgroundOpacity"];class yP{constructor(e,n,C){V1(this,"data",new Float32Array(16));V1(this,"unsubscribeList",[]);V1(this,"unsubscribe");V1(this,"visible",!1);V1(this,"materials",[]);V1(this,"active",c2(!1));V1(this,"getProperty",c2(void 0));this.size=e,this.size=e,this.unsubscribe=r2(()=>{const r=this.getProperty.value,i=r!=null&&zk(n,e,C,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=i,!i){this.deactivate();return}this.activate(e,n)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return EP.includes(e)}hasImmediateProperty(e){return e in av}setProperty(e,n){const C=av[e];C(this.data,n,this.size)}activate(e,n){this.visible||(this.visible=!0,this.syncVisible(),this.data.set($k),this.unsubscribeList.push(r2(()=>this.data.set(e.value,13)),r2(()=>this.data.set(n.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let n=0;n{C.call(n,r,i),e.type==="normal"&&(r.uniforms.data={value:e.data}),SP(r,e.type==="instanced")},n}class Xk extends Qo{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,n){super.onBeforeCompile(e,n),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),qk(e,this.info.type==="instanced")}}class Jk extends bo{constructor(e){super({depthPacking:Nd}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,n){super.onBeforeCompile(e,n),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),qk(e,this.info.type==="instanced")}}const IP=new Jk({type:"instanced"}),BP=new Xk({type:"instanced"});function qk(t,e){Kk(t,e),t.fragmentShader=t.fragmentShader.replace("#include ",`#include - ${Zk(e,void 0)} - `)}function Kk(t,e){t.vertexShader=t.vertexShader.replace("#include ",` #include - out vec4 borderRadius; - ${e?"":"uniform highp mat4 data;"}`),t.vertexShader=t.vertexShader.replace("#include ",` #include - highp int packedBorderRadius = int(data[1].w); - borderRadius = vec4( - packedBorderRadius / 125000 % 50, - packedBorderRadius / 2500 % 50, - packedBorderRadius / 50 % 50, - packedBorderRadius % 50 - ) * vec4(0.5 / 50.0);`),e&&(t.vertexShader=t.vertexShader.replace("#include ",` #include - attribute highp mat4 aData; - attribute mat4 aClipping; - out mat4 data; - out mat4 clipping; - out vec3 localPosition;`),t.vertexShader=t.vertexShader.replace("#include ",` #include - data = aData; - clipping = aClipping; - localPosition = (instanceMatrix * vec4(position, 1.0)).xyz;`)),t.fragmentShader=`${e?"in":"uniform"} highp mat4 data; - in vec4 borderRadius; - ${e?` - in vec3 localPosition; - in mat4 clipping; - `:""} - - float min4 (vec4 v) { - return min(min(min(v.x,v.y),v.z),v.w); - } - float max4 (vec4 v) { - return max(max(max(v.x,v.y),v.z),v.w); - } - vec2 radiusDistance(float radius, vec2 outside, vec2 border, vec2 borderSize) { - vec2 outerRadiusXX = vec2(radius, radius); - vec2 innerRadiusXX = outerRadiusXX - borderSize; - vec2 radiusWeightUnnormalized = abs(innerRadiusXX - border); - vec2 radiusWeight = radiusWeightUnnormalized / vec2(radiusWeightUnnormalized.x + radiusWeightUnnormalized.y); - return vec2( - radius - distance(outside, outerRadiusXX), - dot(radiusWeight, innerRadiusXX) - distance(border, innerRadiusXX) - ); - } - `+t.fragmentShader,t.fragmentShader=t.fragmentShader.replace("#include ",` ${e?` - vec4 plane; - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - - for(int i = 0; i < 4; i++) { - plane = clipping[ i ]; - distanceToPlane = - dot( -localPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - - if ( clipOpacity < 0.01 ) discard; - } - `:""} - vec4 absoluteBorderSize = data[0]; - vec3 backgroundColor = data[1].xyz; - vec3 borderColor = data[2].xyz; - float borderBend = data[2].w; - float borderOpacity = data[3].x; - float width = data[3].y; - float height = data[3].z; - float backgroundOpacity = data[3].w; - float ratio = width / height; - vec4 relative = vec4(height, height, height, height); - vec4 borderSize = absoluteBorderSize / relative; - vec4 v_outsideDistance = vec4(1.0 - vUv.y, (1.0 - vUv.x) * ratio, vUv.y, vUv.x * ratio); - vec4 v_borderDistance = v_outsideDistance - borderSize; - - vec2 distance = vec2(min4(v_outsideDistance), min4(v_borderDistance)); - vec4 negateBorderDistance = vec4(1.0) - v_borderDistance; - float maxWeight = max4(negateBorderDistance); - vec4 borderWeight = step(maxWeight, negateBorderDistance); - - vec4 insideBorder; - - if(all(lessThan(v_outsideDistance.xw, borderRadius.xx))) { - distance = radiusDistance(borderRadius.x, v_outsideDistance.xw, v_borderDistance.xw, borderSize.xw); - - float tmp = borderRadius.x - borderSize.w; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.x - borderSize.x; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.yz = vec2(0.0); - insideBorder.xw = max(vec2(0.0), lineIntersection - v_borderDistance.xw); - - } else if(all(lessThan(v_outsideDistance.xy, borderRadius.yy))) { - distance = radiusDistance(borderRadius.y, v_outsideDistance.xy, v_borderDistance.xy, borderSize.xy); - - float tmp = borderRadius.y - borderSize.y; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.y - borderSize.x; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.zw = vec2(0.0); - insideBorder.xy = max(vec2(0.0), lineIntersection - v_borderDistance.xy); - - } else if(all(lessThan(v_outsideDistance.zy, borderRadius.zz))) { - distance = radiusDistance(borderRadius.z, v_outsideDistance.zy, v_borderDistance.zy, borderSize.zy); - - float tmp = borderRadius.z - borderSize.y; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.z - borderSize.z; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.xw = vec2(0.0); - insideBorder.zy =max(vec2(0.0), lineIntersection - v_borderDistance.zy); - - } else if(all(lessThan(v_outsideDistance.zw, borderRadius.ww))) { - distance = radiusDistance(borderRadius.w, v_outsideDistance.zw, v_borderDistance.zw, borderSize.zw); - - float tmp = borderRadius.w - borderSize.w; - vec2 xIntersection = vec2(tmp, tmp / ratio); - tmp = borderRadius.w - borderSize.z; - vec2 yIntersection = vec2(tmp * ratio, tmp); - vec2 lineIntersection = min(xIntersection, yIntersection); - - insideBorder.xy = vec2(0.0); - insideBorder.zw = max(vec2(0.0), lineIntersection - v_borderDistance.zw); - - } - - if(insideBorder.x + insideBorder.y + insideBorder.z + insideBorder.w > 0.0) { - borderWeight = normalize(insideBorder); - } - - #include `)}function Zk(t,e){return`float ddx = fwidth(distance.x); - float outer = smoothstep(-ddx, ddx, distance.x); - - float ddy = fwidth(distance.y); - float inner = smoothstep(-ddy, ddy, distance.y); - - float transition = 1.0 - step(0.1, outer - inner) * (1.0 - inner); - - if(backgroundColor.r < 0.0 && backgroundOpacity >= 0.0) { - backgroundColor = vec3(1.0); - } - if(backgroundOpacity < 0.0) { - backgroundOpacity = backgroundColor.r >= 0.0 ? 1.0 : 0.0; - } - - if(backgroundOpacity < 0.0) { - backgroundOpacity = 0.0; - } - - float outOpacity = ${t?"clipOpacity * ":""} outer * mix(borderOpacity, ${e==null?"":`${e} *`} backgroundOpacity, transition); - - if(outOpacity < 0.01) { - discard; - }`}function SP(t,e){Kk(t,e),t.fragmentShader=t.fragmentShader.replace("#include ",` #include - ${Zk(e,"diffuseColor.a")} - diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); - diffuseColor.a = outOpacity; - `),t.fragmentShader=t.fragmentShader.replace("#include ",` #include - vec3 b = normalize(vBitangent); - vec3 t = normalize(vTangent); - mat4 directions = mat4(vec4(b, 1.0), vec4(t, 1.0), vec4(-b, 1.0), vec4(-t, 1.0)); - float currentBorderSize = distance.x - distance.y; - float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; - vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; - normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); - `)}class _P extends e2{constructor(n,C,r){const i=Ok();super(i);V1(this,"count",0);V1(this,"isInstancedMesh",!0);V1(this,"instanceColor",null);V1(this,"morphTexture",null);V1(this,"boundingBox",new J2);V1(this,"boundingSphere",new i9);this.instanceMatrix=n,this.frustumCulled=!1,i.attributes.aData=C,i.attributes.aClipping=r,this.customDepthMaterial=IP,this.customDistanceMaterial=BP}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class RP extends D8{constructor(n,C,r,i,o,s){super();V1(this,"mesh");V1(this,"instanceMatrix");V1(this,"instanceData");V1(this,"instanceClipping");V1(this,"buckets",[]);V1(this,"elementCount",0);V1(this,"bufferElementSize",0);V1(this,"timeToNextUpdate");V1(this,"activateElement",(n,C,r)=>{const i=C.offset+r;this.instanceData.set($k,16*i),this.instanceData.addUpdateRange(16*i,16),this.instanceData.needsUpdate=!0,n.activate(C,r)});V1(this,"setElementIndex",(n,C)=>{n.setIndexInBucket(C)});V1(this,"bufferCopyWithin",(n,C,r)=>{Ea(this.instanceMatrix,n,C,r),Ea(this.instanceData,n,C,r),Ea(this.instanceClipping,n,C,r)});V1(this,"clearBufferAt",n=>{const C=n*16;this.instanceMatrix.array.fill(0,C,C+16),this.instanceMatrix.addUpdateRange(C,16),this.instanceMatrix.needsUpdate=!0});this.material=n,this.pixelSize=C,this.cameraDistance=r,this.orderInfo=i,this.meshReceiveShadow=o,this.meshCastShadow=s}updateCount(){const n=this.buckets[this.buckets.length-1],C=n.offset+n.elements.length;this.mesh!=null&&(this.mesh.count=C),this.visible=C>0}insert(n,C){if(this.elementCount+=1,!wP(this.buckets,n,C,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(n,C,r){if(this.elementCount-=1,!xP(this.buckets,n,r,C,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(n){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=n,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(n){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,n)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),mP(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const n=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),LP(this.buckets,n,this.bufferElementSize);const C=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&C.set(this.instanceMatrix.array.subarray(0,C.length)),this.instanceMatrix=new g8(C,16,!1),this.instanceMatrix.setUsage(U6);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new g8(r,16,!1),this.instanceData.setUsage(U6);const i=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&i.set(this.instanceClipping.array.subarray(0,i.length)),this.instanceClipping=new g8(i,16,!1),this.instanceClipping.setUsage(U6),this.mesh=new _P(this.instanceMatrix,this.instanceData,this.instanceClipping),N3(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function Ea(t,e,n,C){const r=t.itemSize,i=n*r,o=C*r,s=e*r;t.array.copyWithin(s,i,o);const a=o-i;t.addUpdateRange(i,a),t.addUpdateRange(s,a),t.needsUpdate=!0}const cv={backgroundColor:(t,e,n)=>ku(t.instanceData,e,n??Vk,4),borderBottomLeftRadius:(t,e,n,{value:C})=>Xr(t.instanceData,e,7,0,n,C[1]),borderBottomRightRadius:(t,e,n,{value:C})=>Xr(t.instanceData,e,7,1,n,C[1]),borderTopRightRadius:(t,e,n,{value:C})=>Xr(t.instanceData,e,7,2,n,C[1]),borderTopLeftRadius:(t,e,n,{value:C})=>Xr(t.instanceData,e,7,3,n,C[1]),borderColor:(t,e,n)=>ku(t.instanceData,e,n??16777215,8),borderBend:(t,e,n)=>ya(t.instanceData,e,11,n??0),borderOpacity:(t,e,n)=>ya(t.instanceData,e,12,n??1),backgroundOpacity:(t,e,n)=>ya(t.instanceData,e,15,n??-1)},bP=["borderOpacity","backgroundColor","backgroundOpacity"],Yr=new f0,QP=new f0;class TP{constructor(e,n,C,r,i,o,s,a){V1(this,"indexInBucket");V1(this,"bucket");V1(this,"unsubscribeList",[]);V1(this,"unsubscribeVisible");V1(this,"destroyed",!1);V1(this,"insertedIntoGroup",!1);V1(this,"active",c2(!1));V1(this,"getProperty",c2(void 0));this.group=e,this.matrix=n,this.size=C,this.offset=r,this.borderInset=i,this.clippingRect=o,this.minorIndex=a,this.unsubscribeVisible=r2(()=>{const d=this.getProperty.value;if(d!=null&&zk(i,C,s,d("borderOpacity"),d("backgroundOpacity"),d("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return bP.includes(e)}hasImmediateProperty(e){return e in cv}setProperty(e,n){const C=this.getIndexInBuffer();C!=null&&cv[e](this.group,C,n,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,n){this.bucket=e,this.indexInBucket=n,this.active.value=!0,this.unsubscribeList.push(r2(()=>{const C=this.matrix.value;if(C==null)return;const{instanceMatrix:r,pixelSize:i}=this.group,o=this.getIndexInBuffer();if(o==null)return;const s=o*16,[a,d]=this.size.value;if(Yr.makeScale(a*i,d*i,1),this.offset!=null){const[g,p]=this.offset.value;Yr.premultiply(QP.makeTranslation(g*i,p*i,0))}Yr.premultiply(C),Yr.toArray(r.array,s),r.addUpdateRange(s,16),r.needsUpdate=!0}),r2(()=>{const[C,r]=this.size.value,{instanceData:i}=this.group,{array:o}=i,s=this.getIndexInBuffer();if(s==null)return;const a=s*16+13;o[a]=C,o[a+1]=r,i.addUpdateRange(a,2),i.needsUpdate=!0}),r2(()=>{const{instanceData:C}=this.group,r=this.getIndexInBuffer();if(r==null)return;const i=r*16+0;C.array.set(this.borderInset.value,i),C.addUpdateRange(i,4),C.needsUpdate=!0}),r2(()=>{var s;const{instanceClipping:C}=this.group,r=this.getIndexInBuffer();if(r==null)return;const i=r*16,o=(s=this.clippingRect)==null?void 0:s.value;o!=null?o.toArray(C.array,i):C.array.set(io,i),C.addUpdateRange(i,16),C.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let n=0;ne.hasImmediateProperty.bind(e),[e]),s=u.useCallback(a=>{if(!C.current){r.current=a;return}uv(a,r.current,i.current,e),r.current=a},[e]);y9(()=>{if(C.current=e.active.value,!C.current){dv(i.current),i.current={};return}return uv(r.current,DP,i.current,e),()=>{dv(i.current),i.current={}}},[e]),Ek(t,o,s,n)}function uv(t,e,n,C){var r,i;for(const o in t){const s=t[o];if(o in e){const a=e[o];if(delete e[o],yk(s,a))continue;(r=n[o])==null||r.call(n)}n[o]=r2(()=>{const a=Lu(s);C.setProperty(o,a)})}for(const o in e)(i=n[o])==null||i.call(n),delete n[o],Lu(e[o])!==void 0&&C.setProperty(o,void 0)}function dv(t){for(const e in t)t[e]()}function L5({handlers:t,hoverHandlers:e,activeHandlers:n,matrix:C,children:r,groupRef:i}){return u.useEffect(()=>{const o=i.current;if(o!=null)return r2(()=>C.value!=null&&o.matrix.copy(C.value))},[i,C]),h.jsx("group",{ref:i,onPointerOut:at(t.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:at(t.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:at(t.onPointerUp,n==null?void 0:n.onPointerUp),onPointerDown:at(t.onPointerDown,n==null?void 0:n.onPointerDown),onPointerLeave:at(t.onPointerLeave,n==null?void 0:n.onPointerLeave),onPointerMove:t.onPointerMove,onWheel:t.onWheel,onClick:t.onClick,onContextMenu:t.onContextMenu,onDoubleClick:t.onDoubleClick,onPointerCancel:t.onPointerCancel,onPointerEnter:t.onPointerEnter,onPointerMissed:t.onPointerMissed,matrixAutoUpdate:!1,children:r})}function at(t,e){return t==null?e:e==null?t:n=>{e(n),!n.stopped&&t(n)}}function xe(t,e,n,C){const r=a6(),i=u.useMemo(()=>{const o=new e2(kh);return o.matrixAutoUpdate=!1,o.raycast=we(o,Wk(o),C,r,n),o.visible=!1,o},[r,n,C]);return y9(()=>{const[o,s]=t.value;i.scale.set(o*e.pixelSize,s*e.pixelSize,1),i.updateMatrix()},[t,e]),i}const eM=u.createContext(null);function NP(t,e,n,C,r,i,o){const{materials:s,setter:a}=u.useMemo(()=>{const d=new yP(e,n,C),g={data:d.data,type:"normal"},p=Yk(r??t8,g),A=new Jk(g),w=new Xk(g);return p.clippingPlanes=i,A.clippingPlanes=i,w.clippingPlanes=i,{materials:[p,A,w],setter:d}},[e,n,C,r,i]);return _4(t,a,o),Lh(t,a,o),u.useEffect(()=>()=>a.destroy(),[a]),s}function H3(t=t8,{castShadow:e=!1,receiveShadow:n=!1}){return u.useMemo(()=>({materialClass:t,castShadow:e,receiveShadow:n}),[t,e,n])}function j3(t,e,n,C,r,i,o,s,a,d,g){const p=g??u.useContext(eM),A=u.useMemo(()=>new TP(p(o.majorIndex,a),e,n,C,r,s,i,o.minorIndex),[p,e,n,r,s,i,o,C,a]);u.useEffect(()=>()=>A.destroy(),[A]),_4(t,A,d),Lh(t,A,d)}function PP(t,e,n){const C=u.useMemo(()=>new Map,[]),r=u.useCallback((i,{materialClass:o,receiveShadow:s,castShadow:a})=>{let d=C.get(o);d==null&&C.set(o,d=new Map);const g=(i<<2)+((s?1:0)<<1)+(a?1:0);let p=d.get(g);if(p==null){const A=Yk(o,{type:"instanced"});d.set(g,p=new RP(A,t,e,{elementType:U9.Panel,majorIndex:i,minorIndex:0},s,a)),n.add(p)}return p},[t,C,e,n]);return d5((i,o)=>{for(const s of C.values())for(const a of s.values())a.onFrame(o)}),r}const HP=eM.Provider,_u=[],yi=[];function jP(t,e){_u.push(t),yi.push(e),document.body.style.cursor=e}function hv(t){const e=_u.indexOf(t);e!=-1&&(_u.splice(e,1),yi.splice(e,1),document.body.style.cursor=yi[yi.length-1]??"default")}function w5(t,e){const n=u.useMemo(()=>c2([]),[]),C=u.useMemo(()=>P6(()=>n.value.length>0),[]);let r=!1;if(jn(e,i=>{i.hover!=null&&(r=!0,C(t,i.hover))}),u.useEffect(()=>()=>hv(n),[]),!r&&e.onHoverChange==null&&e.cursor==null){n.value.length=0;return}return{onPointerOver:i=>{n.value=[i.pointerId,...n.value],e.onHoverChange!=null&&n.value.length===1&&e.onHoverChange(!0),e.cursor!=null&&jP(n,e.cursor)},onPointerOut:i=>{n.value=n.value.filter(o=>o!=i.pointerId),e.onHoverChange!=null&&n.value.length===0&&e.onHoverChange(!1),hv(n)}}}function ns(t){return(e,n,C,r)=>{if(C(e)){r(e,n);return}const i=t[e];if(i==null)return;const o=i.length;if(C(i[0]))for(let s=0;sc2([0,0]),[])}function zP(t,e,n){return u.useMemo(()=>o9(()=>{const C=n.value;if(C==null)return;const[r,i]=t.value,{pixelSize:o}=e;return new f0().makeTranslation(-r*o,i*o,0).premultiply(C)}),[t,e,n])}function VP({node:t,scrollPosition:e,children:n}){const C=u.useRef(null);return u.useEffect(()=>r2(()=>{var s,a;const[r,i]=e.value,{pixelSize:o}=t;(s=C.current)==null||s.position.set(-r*o,i*o,0),(a=C.current)==null||a.updateMatrix()}),[t,e]),h.jsx("group",{ref:C,children:n})}function Wn({listeners:t,node:e,scrollPosition:n,children:C}){const[r,i]=u.useState(()=>e.scrollable.value.some(p=>p));y9(()=>i(e.scrollable.value.some(p=>p)),[e]);const o=u.useRef(t.onScroll);o.current=t.onScroll;const s=u.useMemo(()=>new Map,[]),a=u.useMemo(()=>new y1,[]),d=u.useCallback((p,A,w,x,y)=>{var N,K;const[m,L]=p==null?[!1,!1]:$P(p.nativeEvent);m&&(A=0),L&&(w=0);const[E,k]=n.value,[I,Q]=e.maxScrollPosition.value;let[_,T]=n.value;const[j,q]=((N=e.anyAncestorScrollable)==null?void 0:N.value)??[!1,!1];_=fv(E,I,A,y&&!j),T=fv(k,Q,w,y&&!q),x!=null&&x>0&&a.set(A,w).divideScalar(x),p!=null&&YP(p.nativeEvent,m||Math.min(E,(I??0)-E)>5,L||Math.min(k,(Q??0)-k)>5),!(((K=o.current)==null?void 0:K.call(o,_,T,n,p))===!1||E===_&&k===T)&&(n.value=[_,T])},[e,n,a]);d5((p,A)=>{if(s.size>0)return;let w=0,x=0;const[y,m]=n.value,[L,E]=e.maxScrollPosition.value;w+=Ru(y,0,L??0)*-.3,x+=Ru(m,0,E??0)*-.3,w+=a.x*A,x+=a.y*A,a.multiplyScalar(.9),Math.abs(a.x)<.01&&(a.x=0),Math.abs(a.y)<.01&&(a.y=0),!(w===0&&x===0)&&d(void 0,w,x,void 0,!0)});const g=u.useRef(null);return r?h.jsx("group",{ref:g,matrixAutoUpdate:!1,onPointerDown:p=>{let A=s.get(p.pointerId);A==null&&s.set(p.pointerId,A={timestamp:0,point:new G}),A.timestamp=performance.now()/1e3,g.current.worldToLocal(A.point.copy(p.point))},onPointerUp:p=>{s.delete(p.pointerId)},onPointerLeave:p=>{s.delete(p.pointerId)},onPointerCancel:p=>{s.delete(p.pointerId)},onContextMenu:p=>p.nativeEvent.preventDefault(),onPointerMove:p=>{const A=s.get(p.pointerId);if(A==null)return;g.current.worldToLocal(Ba.copy(p.point)),Ia.copy(Ba).sub(A.point).divideScalar(e.pixelSize);const w=performance.now()/1e3,x=w-A.timestamp;A.point.copy(Ba),A.timestamp=w,!p.defaultPrevented&&d(p,-Ia.x,Ia.y,x,!0)},onWheel:p=>{p.defaultPrevented||d(p,p.deltaX,p.deltaY,void 0,!1)},children:C}):h.jsx("group",{matrixAutoUpdate:!1,children:C})}const nM=Symbol("was-scrolled");function $P(t){return t[nM]??[!1,!1]}function YP(t,e,n){t[nM]=[e,n]}function fv(t,e,n,C){if(n===0)return t;const r=Ru(t,0,e??0);gv(n)===gv(r)&&(n*=Math.max(0,1-Math.abs(r)/100));let i=t+n;return C&&e!=null?i:mh(i,0,e??0)}function gv(t){return t>=0}function Ru(t,e,n){return tn?t-n:0}const pv=9;function CM(t){return t[pv].toLowerCase()+t.slice(pv+1)}const XP=(t,e,n,C)=>{if(t.startsWith("scrollbarBorder")){if(t=CM(t),n(t)){C(t,e);return}UP(t,e,n,C)}},JP=(t,e,n,C)=>{if(t.startsWith("scrollbar")){if(t==="scrollbarOpacity"){C("backgroundOpacity",e);return}if(t==="scrollbarColor"){C("backgroundColor",e);return}if(t=CM(t),n(t)){C(t,e);return}m5(t,e,n,C)}};function Gn(t,e,n,C,r,i,o,s,a){const d=H3(i,{castShadow:!1,receiveShadow:!1}),g=L8(U9.Panel,void 0,d,s),p=C4(t,qP),A=C4(t,KP,XP),w=u.useMemo(()=>o9(()=>{const m=A.value;return[(m==null?void 0:m("scrollbarBorderTop"))??0,(m==null?void 0:m("scrollbarBorderRight"))??0,(m==null?void 0:m("scrollbarBorderBottom"))??0,(m==null?void 0:m("scrollbarBorderLeft"))??0]}),[A]),x=t.length;Av(t,0,e,n,C,r,i,o,g,a,p,w),Av(t,1,e,n,C,r,i,o,g,a,p,w);const y=t.length;for(let m=x;m{const y=o9(()=>{const m=g.value;if(m!=null)return ZP(e,m("scrollbarWidth")??10,C.size.value,C.maxScrollPosition.value,C.borderInset.value,n.value)});return[o9(()=>{var m;return((m=y.value)==null?void 0:m.slice(0,2))??[0,0]}),o9(()=>{var m;return((m=y.value)==null?void 0:m.slice(2,4))??[0,0]})]},[e,C,n,g]),x=u.useMemo(()=>({materialClass:o??t8,receiveShadow:!1,castShadow:!1}),[o]);j3(t,r,w,A,p,i,a,s,x,JP,d)}function ZP(t,e,n,C,r,i){const o=[0,0,0,0],s=C[t];if(s==null)return o;const a=1-t,d=n[t]-r[a]-r[a+2],g=Math.max(e,d*d/(s+d)),p=d-g,A=i[t];return o[t]=n[t]*.5-g*.5-r[(t+3)%4]-p*mh(A/s,0,1),o[a]=n[a]*.5-e*.5-r[a+1],t===0&&(o[0]*=-1,o[1]*=-1),o[t+2]=g,o[a+2]=e,o}function k5(t,e,n,C){u.useImperativeHandle(t,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:n instanceof e2?n:n.current,scrollPosition:C}),[n,e,C])}function M5({onSizeChange:t},e){const n=u.useMemo(()=>{if(t==null)return;let C=!0;return r2(()=>{const r=e.value;if(C){C=!1;return}t(...r)})},[t,e]);u.useEffect(()=>n,[n])}function U3({onIsInViewportChange:t},e){const n=u.useMemo(()=>{if(t==null)return;let C=!0;return r2(()=>{const r=!e.value;if(C){C=!1;return}t(r)})},[e,t]);u.useEffect(()=>n,[n])}function F3(t){const e=u.useContext(rM);return u.useMemo(()=>o9(()=>{const n=t.value,C=e.value;if(!(n==null||C==null))return C.clone().multiply(n)}),[t,e])}const rM=u.createContext(null),eH=rM.Provider;function On({globalMatrix:t,node:e,scrollPosition:n,children:C,orderInfo:r}){const i=a6(),o=_N(t,e.size,e.borderInset,e.overflow,e,i),s=zP(n,e,t);return h.jsx(VP,{node:e,scrollPosition:n,children:h.jsx(eH,{value:s,children:h.jsx(xh,{value:e,children:h.jsx(BN,{value:o,children:h.jsx(ON,{value:r,children:C})})})})})}const iM="transformTranslateX",oM="transformTranslateY",sM="transformTranslateZ",lM="transformRotateX",aM="transformRotateY",cM="transformRotateZ",uM="transformScaleX",dM="transformScaleY",hM="transformScaleZ",tH=[iM,oM,sM,lM,aM,cM,uM,dM,hM],nH=new G,CH=new G,Jr=new G,Sa=new f0,rH=new ge,iH=new j9,_a=Math.PI/180;function oH([t,e,n]){return iH.setFromEuler(rH.set(t*_a,e*_a,n*_a))}function E5(t,e){const n=C4(t,tH,OP);return u.useMemo(()=>o9(()=>{const C=n.value;if(C==null)return;const{pixelSize:r,relativeCenter:i}=e,[o,s]=i.value,a=new f0().makeTranslation(o*r,s*r,0),d=C("transformOriginX")??"center",g=C("transformOriginY")??"center";let p=!0;if(d!="center"||g!="center"){const[y,m]=e.size.value;p=!1,Jr.set(-Sk[d]*y*r,-_k[g]*m*r,0),a.multiply(Sa.makeTranslation(Jr)),Jr.negate()}const A=[C(lM)??0,C(aM)??0,C(cM)??0],w=[C(iM)??0,-(C(oM)??0),C(sM)??0],x=[C(uM)??1,C(dM)??1,C(hM)??1];return(w.some(y=>y!=0)||A.some(y=>y!=0)||x.some(y=>y!=1))&&a.multiply(Sa.compose(nH.fromArray(w).multiplyScalar(r),oH(A),CH.fromArray(x))),p||a.multiply(Sa.makeTranslation(Jr)),a}),[n,e])}function y5(t,e){const n=u.useMemo(()=>c2([]),[]),C=u.useMemo(()=>P6(()=>n.value.length>0),[]);let r=!1;if(jn(e,o=>{o.active!=null&&(r=!0,C(t,o.active))}),!r&&e.onActiveChange==null){n.value.length=0;return}const i=o=>{n.value=n.value.filter(s=>s!=o.pointerId),!(e.onActiveChange==null||n.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{n.value=[o.pointerId,...n.value],!(e.onActiveChange==null||n.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:i,onPointerLeave:i}}u.forwardRef((t,e)=>{const n=f5(),C=u.useRef(null),r=P3(C);_4(n,r,x5);const i=E5(n,r),o=F3(i),s=a6(),a=D3(s,o,r.size,r);M5(t,r.size),U3(t,a);const d=H3(t.panelMaterialClass,t),g=L8(U9.Panel,t.zIndexOffset,d);j3(n,o,r.size,void 0,r.borderInset,a,g,s,d,m5);const p=u.useRef(null),A=T3(),w=L8(U9.Object,void 0,void 0,g),x=aH(n,p,A,r.cameraDistance,s,w);p5(n,t),A5(n,t),v5(n,t);const y=w5(n,t),m=y5(n,t),L=u.useMemo(()=>o9(()=>{const[I,Q]=x.value;return I/Q}),[x]);(t.keepAspectRatio??!0)&&y4(n,"aspectRatio",L),g5(n);const E=u.useRef(null);u.useEffect(()=>r2(()=>{const[I,Q]=r.size.value,[_,T,j,q]=r.paddingInset.value,[R,N,K,A1]=r.borderInset.value,X=_+R,c1=T+N,o1=j+K,f1=q+A1,U=I-f1-c1,t1=Q-X-o1,{pixelSize:n1}=r,{current:u1}=E;u1==null||u1.position.set((f1-c1)*.5*n1,(o1-X)*.5*n1,0);const[,x1,U1]=x.value;u1==null||u1.scale.set(U*n1,t1*n1,t.keepAspectRatio?t1*n1*U1/x1:U1),u1==null||u1.updateMatrix()}),[r,t.keepAspectRatio,x]);const k=xe(r.size,r,g,A);return k5(e,r,k),h.jsxs(L5,{groupRef:C,matrix:i,handlers:t,hoverHandlers:y,activeHandlers:m,children:[h.jsx("primitive",{object:k}),h.jsx("group",{matrixAutoUpdate:!1,ref:E,children:h.jsx("group",{ref:p,matrixAutoUpdate:!1,children:h.jsx(xh,{value:void 0,children:t.children})})})]})});const Ra=new J2,sH=new G().setScalar(.001),lH=["depthAlign"];function aH(t,e,n,C,r,i){const o=u.useMemo(()=>c2(new G(1,1,1)),[]),s=Un(r,n),a=C4(t,lH);return u.useEffect(()=>{const d=e.current;if(d==null)return;d.traverse(w=>{w instanceof e2&&(N3(w,C,i),w.material.clippingPlanes=s,w.material.needsUpdate=!0,w.raycast=we(w,w.raycast,n,r,i))});const g=d.parent;g==null||g.remove(d),Ra.setFromObject(d);const p=new G,A=new G;return Ra.getSize(p).max(sH),o.value=p,d.scale.set(1,1,1).divide(p),g!=null&&g.add(d),Ra.getCenter(A),r2(()=>{const w=a.value;w!=null&&(d.position.copy(A).negate(),d.position.z-=LN[w("depthAlign")??"back"]*p.z,d.position.divide(p),d.updateMatrix())})},[a,C,s,n]),o}u.forwardRef((t,e)=>{const n=f5(),C=u.useRef(null),r=P3(C);_4(n,r,x5);const i=E5(n,r),o=a6(),s=F3(i),a=D3(o,s,r.size,r),d=H3(t.panelMaterialClass,t),g=L8(U9.Panel,t.zIndexOffset,d);j3(n,s,r.size,void 0,r.borderInset,a,g,o,d,m5);const p=Fn();Gn(n,p,r,s,a,t.scrollbarPanelMaterialClass,o,g),p5(n,t),A5(n,t),v5(n,t);const A=w5(n,t),w=y5(n,t);g5(n),M5(t,r.size),U3(t,a);const x=T3(),y=xe(r.size,r,g,x);return k5(e,r,y,p),h.jsxs(L5,{groupRef:C,matrix:i,handlers:t,hoverHandlers:A,activeHandlers:w,children:[h.jsx(Wn,{listeners:t,node:r,scrollPosition:p,children:h.jsx("primitive",{object:y})}),h.jsx(On,{globalMatrix:s,node:r,orderInfo:g,scrollPosition:p,children:t.children})]})});u.forwardRef((t,e)=>{const n=f5(),C=u.useRef(null),r=P3(C);_4(n,r,x5);const i=E5(n,r),o=a6(),s=T3(),a=Un(o,s),d=L8(U9.Custom,t.zIndexOffset,void 0),g=u.useRef(null),p=F3(i),A=D3(o,p,r.size,r);u.useEffect(()=>{const y=g.current;if(y==null)return;y.raycast=we(y,y.raycast,s,o,d),N3(y,r.cameraDistance,d),y.material instanceof s9&&(y.material.clippingPlanes=a,y.material.needsUpdate=!0,y.material.shadowSide=j8);const m=r2(()=>{const[E,k]=r.size.value;y.scale.set(E*r.pixelSize,k*r.pixelSize,1),y.updateMatrix()}),L=r2(()=>void(y.visible=!A.value));return()=>{m(),L()}},[a,r,A,o,d,s]),p5(n,t),A5(n,t),v5(n,t);const w=w5(n,t),x=y5(n,t);return g5(n),M5(t,r.size),U3(t,A),k5(e,r,g),h.jsx(L5,{groupRef:C,matrix:i,handlers:t,hoverHandlers:w,activeHandlers:x,children:h.jsx("mesh",{receiveShadow:t.receiveShadow,castShadow:t.castShadow,customDepthMaterial:t.customDepthMaterial,customDistanceMaterial:t.customDistanceMaterial,ref:g,matrixAutoUpdate:!1,geometry:kh,children:h.jsx(xh,{value:void 0,children:t.children})})})});const cH="fill",uH=(t,e,n,C)=>{if(t==="opacity"){C("backgroundOpacity",e);return}m5(t,e,n,C)},dH=u.forwardRef((t,e)=>{const n=f5(),C=Rk(pH,t.src),r=u.useMemo(()=>o9(()=>{const k=C.value;if(k==null)return;const I=k.source.data;return I.width/I.height}),[C]),i=u.useRef(null),o=P3(i);_4(n,o,x5),fH(n,C,o.borderInset,o.size);const s=E5(n,o),a=a6(),d=T3(),g=Un(a,d),p=F3(s),A=D3(a,p,o.size,o),w=NP(n,o.size,o.borderInset,A,t.materialClass,g,uH),x=L8(U9.Image,t.zIndexOffset,void 0),y=u.useMemo(()=>{const[k,I,Q]=w,_=new e2(kh,k);return _.matrixAutoUpdate=!1,_.castShadow=t.castShadow??!1,_.receiveShadow=t.receiveShadow??!1,_.customDepthMaterial=I,_.customDistanceMaterial=Q,_.raycast=we(_,Wk(_),d,a,x),N3(_,o.cameraDistance,x),_},[o,w,d,a,x,t.receiveShadow,t.castShadow]),m=Fn();Gn(n,m,o,p,A,t.scrollbarPanelMaterialClass,a,x),p5(n,t),A5(n,t),v5(n,t);const L=w5(n,t),E=y5(n,t);return y4(n,"backgroundColor",16777215),(t.keepAspectRatio??!0)&&y4(n,"aspectRatio",r),g5(n),M5(t,o.size),U3(t,A),y9(()=>{const k=C.value??null;y.material.map!==k&&(y.material.map=k,y.material.needsUpdate=!0)},[y,C]),y9(()=>{const[k,I]=o.size.value;y.scale.set(k*o.pixelSize,I*o.pixelSize,1),y.updateMatrix()},[y]),y9(()=>void(y.visible=!A.value),[y,A]),k5(e,o,y,m),h.jsxs(L5,{groupRef:i,hoverHandlers:L,handlers:t,matrix:s,activeHandlers:E,children:[h.jsx(Wn,{listeners:t,node:o,scrollPosition:m,children:h.jsx("primitive",{object:y})}),h.jsx(On,{globalMatrix:p,node:o,orderInfo:x,scrollPosition:m,children:t.children})]})}),hH=["fit"];function fH(t,e,n,C){const r=C4(t,hH);y9(()=>{const i=r.value,o=e.value;if(o==null||i==null)return;const s=i("fit")??cH;if(o.matrix.identity(),s==="fill"||o==null){vv(n,C,o);return}const{width:a,height:d}=o.source.data,g=a/d,[p,A]=C.value,[w,x,y,m]=n.value,L=(p-m-x)/(A-w-y);g>L?o.matrix.translate(-(.5*(L-g))/L,0).scale(L/g,1):o.matrix.translate(0,-(.5*(g-L))/g).scale(1,g/L),vv(n,C,o)},[e,n,C])}function vv(t,e,n){const[C,r]=e.value,[i,o,s,a]=t.value,d=C-a-o,g=r-i-s;n.matrix.translate(-1+(a+d)/C,-1+(i+g)/r).scale(C/d,r/g)}const gH=new oh;async function pH(t){if(t==null)return Promise.resolve(void 0);if(t instanceof m2)return Promise.resolve(t);try{const e=await gH.loadAsync(t);return e.colorSpace=P2,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function z4(t,e,n){if(e==null)return n;const C=t[e];if(C==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(t).join(", ")}`);return C}function g2(t,e,n){return typeof t=="number"?Math.round(t/e):t??n}const AH={static:0,relative:1,absolute:2},ba={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},vH={column:0,"column-reverse":1,row:2,"row-reverse":3},LH={"no-wrap":0,wrap:1,"wrap-reverse":2},wH={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},xH={visible:0,hidden:1,scroll:2},mH={flex:0,none:1},Lv={positionType:(t,e,n)=>t.setPositionType(z4(AH,n,0)),positionTop:(t,e,n)=>t.setPosition(1,g2(n,e,NaN)),positionLeft:(t,e,n)=>t.setPosition(0,g2(n,e,NaN)),positionRight:(t,e,n)=>t.setPosition(2,g2(n,e,NaN)),positionBottom:(t,e,n)=>t.setPosition(3,g2(n,e,NaN)),alignContent:(t,e,n)=>t.setAlignContent(z4(ba,n,1)),alignItems:(t,e,n)=>t.setAlignItems(z4(ba,n,4)),alignSelf:(t,e,n)=>t.setAlignSelf(z4(ba,n,0)),flexDirection:(t,e,n)=>t.setFlexDirection(z4(vH,n,0)),flexWrap:(t,e,n)=>t.setFlexWrap(z4(LH,n,0)),justifyContent:(t,e,n)=>t.setJustifyContent(z4(wH,n,0)),marginTop:(t,e,n)=>t.setMargin(1,g2(n,e,NaN)),marginLeft:(t,e,n)=>t.setMargin(0,g2(n,e,NaN)),marginRight:(t,e,n)=>t.setMargin(2,g2(n,e,NaN)),marginBottom:(t,e,n)=>t.setMargin(3,g2(n,e,NaN)),flexBasis:(t,e,n)=>t.setFlexBasis(g2(n,e,NaN)),flexGrow:(t,e,n)=>t.setFlexGrow(n??0),flexShrink:(t,e,n)=>t.setFlexShrink(n??0),width:(t,e,n)=>t.setWidth(g2(n,e,NaN)),height:(t,e,n)=>t.setHeight(g2(n,e,NaN)),minWidth:(t,e,n)=>t.setMinWidth(g2(n,e,NaN)),minHeight:(t,e,n)=>t.setMinHeight(g2(n,e,NaN)),maxWidth:(t,e,n)=>t.setMaxWidth(g2(n,e,NaN)),maxHeight:(t,e,n)=>t.setMaxHeight(g2(n,e,NaN)),aspectRatio:(t,e,n)=>t.setAspectRatio(n??NaN),borderTop:(t,e,n)=>t.setBorder(1,g2(n,e,NaN)),borderLeft:(t,e,n)=>t.setBorder(0,g2(n,e,NaN)),borderRight:(t,e,n)=>t.setBorder(2,g2(n,e,NaN)),borderBottom:(t,e,n)=>t.setBorder(3,g2(n,e,NaN)),overflow:(t,e,n)=>t.setOverflow(z4(xH,n,0)),display:(t,e,n)=>t.setDisplay(z4(mH,n,0)),paddingTop:(t,e,n)=>t.setPadding(1,g2(n,e,NaN)),paddingLeft:(t,e,n)=>t.setPadding(0,g2(n,e,NaN)),paddingRight:(t,e,n)=>t.setPadding(2,g2(n,e,NaN)),paddingBottom:(t,e,n)=>t.setPadding(3,g2(n,e,NaN)),gapRow:(t,e,n)=>t.setGap(1,g2(n,e,NaN)),gapColumn:(t,e,n)=>t.setGap(0,g2(n,e,NaN))};function kH(t,e){return t.L===e.L}function MH(t,e,n){if(n==null){t.setMeasureFunc(null);return}t.setMeasureFunc((C,r,i,o)=>{const s=n(C*e,r,i*e,o);return{width:Math.ceil(Math.ceil(s.width)/e),height:Math.ceil(Math.ceil(s.height)/e)}}),t.markDirty()}class Mh{constructor(e,n,C,r,i,o,s){V1(this,"size",c2([0,0]));V1(this,"relativeCenter",c2([0,0]));V1(this,"borderInset",c2([0,0,0,0]));V1(this,"paddingInset",c2([0,0,0,0]));V1(this,"overflow",c2(Q9.Overflow.Visible));V1(this,"maxScrollPosition",c2([void 0,void 0]));V1(this,"scrollable",c2([!1,!1]));V1(this,"children",[]);V1(this,"yogaNode");V1(this,"unsubscribeYoga");V1(this,"layoutChangeListeners",new Set);V1(this,"requestCalculateLayout");V1(this,"active",c2(!1));this.groupRef=e,this.cameraDistance=n,this.yoga=C,this.precision=r,this.pixelSize=i,this.anyAncestorScrollable=s,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=r2(()=>{var a;C.value!=null&&((a=this.unsubscribeYoga)==null||a.call(this),this.unsubscribeYoga=void 0,this.yogaNode=C.value.Node.create(),this.active.value=!0)})}setProperty(e,n){e==="measureFunc"?MH(this.yogaNode,this.precision,n):Lv[e](this.yogaNode,this.precision,n),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in Lv}destroy(){var e,n;(e=this.unsubscribeYoga)==null||e.call(this),(n=this.yogaNode)==null||n.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),Lk(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new Mh(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,o9(()=>{var s;const[C,r]=((s=this.anyAncestorScrollable)==null?void 0:s.value)??[!1,!1],[i,o]=this.scrollable.value;return[C||i,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const n=this.children.indexOf(e);n!==-1&&(this.children.splice(n,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((s,a)=>{var w,x;if(e??(e=(x=(w=s.groupRef.current)==null?void 0:w.parent)==null?void 0:x.children),e==null)return 0;const d=s.groupRef.current,g=a.groupRef.current;if(d==null||g==null)return 0;const p=e.indexOf(d);if(p===-1)throw new Error("parent mismatch");const A=e.indexOf(g);if(A===-1)throw new Error("parent mismatch");return p-A});let n=0,C=this.yogaNode.getChild(n),r=this.children[n];for(;r!=null||C!=null;){if(r!=null&&C!=null&&kH(C,xv(r.yogaNode))){r=this.children[++n],C=this.yogaNode.getChild(n);continue}if(C!=null&&this.yogaNode.removeChild(C),r!=null){const s=xv(r.yogaNode);(o=s.getParent())==null||o.removeChild(s),this.yogaNode.insertChild(s,n),r=this.children[++n]}C=this.yogaNode.getChild(n)}const i=this.children.length;for(let s=0;s0,j>0)}else M7(this.maxScrollPosition,void 0,void 0),M7(this.scrollable,!1,!1);const I=this.overflow.value===Q9.Overflow.Visible;return[i+Math.max(C,I?E:0),o+Math.max(r,I?k:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function M7(t,e,n){const[C,r]=t.value;C===e&&r===n||(t.value=[e,n])}function wv(t,e,n,C,r){const[i,o,s,a]=t.value;i==e&&o==n&&s==C&&a==r||(t.value=[e,n,C,r])}function xv(t){if(t==null)throw new Error("commit cannot be called with a children that miss a yoga node");return t}const EH=.1,fM=.002,qr=new o2,mv=new G,yH=u.forwardRef((t,e)=>{const n=f5(),C=ph(j=>j.gl);u.useEffect(()=>WN(C),[C]);const{sizeX:r,sizeY:i}=t,[o,s]=u.useMemo(()=>[t.precision??EH,t.pixelSize??fM],[]),a=wN(),d=u.useMemo(()=>({current:0}),[]),g=u.useRef(null),p=AP(),A=u.useMemo(()=>new Mh(g,d,a,o,s,p,void 0),[p,g,a]);_4(n,A,x5),u.useEffect(()=>()=>A.destroy(),[A]);const w=E5(n,A),x=u.useMemo(()=>{const j=new D8;return j.matrixAutoUpdate=!1,j},[]),y=PP(s,A.cameraDistance,x),m=nP(s,A.cameraDistance,x),L=H3(t.panelMaterialClass,t),E=L8(U9.Panel,void 0,L),k=BH(w,A.size,s,t),I=Fn();Gn(n,I,A,k,void 0,t.scrollbarPanelMaterialClass,void 0,E,y),j3(n,k,A.size,void 0,A.borderInset,void 0,E,void 0,L,m5,y),p5(n,t),A5(n,t),v5(n,t,A.size);const Q=w5(n,t),_=y5(n,t);y4(n,"width",kv(r,s)),y4(n,"height",kv(i,s)),g5(n),M5(t,A.size);const T=xe(A.size,A,E,g);return k5(e,A,T,I),d5(({camera:j})=>{qr.normal.set(0,0,1),qr.constant=0,qr.applyMatrix4(T.matrixWorld),mv.setFromMatrixPosition(j.matrixWorld),d.current=qr.distanceToPoint(mv)}),h.jsxs(h.Fragment,{children:[h.jsx("primitive",{object:x}),h.jsx(L5,{groupRef:g,matrix:k,handlers:t,hoverHandlers:Q,activeHandlers:_,children:h.jsx(xN,{value:g,children:h.jsx(tP,{value:m,children:h.jsxs(HP,{value:y,children:[h.jsx(Wn,{node:A,scrollPosition:I,listeners:t,children:h.jsx("primitive",{object:T})}),h.jsx(gP,{value:A.size,children:h.jsx(On,{globalMatrix:k,node:A,orderInfo:E,scrollPosition:I,children:t.children})})]})})})})]})});function kv(t,e){return u.useMemo(()=>t===void 0?void 0:t instanceof j2?o9(()=>{const n=t.value;if(n!=null)return n/e}):t/e,[t,e])}const IH=new f0;function BH(t,e,n,{anchorX:C="center",anchorY:r="center"}){return u.useMemo(()=>o9(()=>{var s;const[i,o]=e.value;return(s=t.value)==null?void 0:s.clone().premultiply(IH.makeTranslation(Sk[C]*i*n,_k[r]*o*n,0))}),[t,e,C,r,n])}const SH=P2;class me extends O9{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,n,C,r){const i=this,o=new B4(i.manager);o.setPath(i.path),o.setRequestHeader(i.requestHeader),o.setWithCredentials(i.withCredentials),o.load(e,function(s){try{n(i.parse(s))}catch(a){r?r(a):console.error(a),i.manager.itemError(e)}},C,r)}parse(e){const n=this;function C($,O){if($.nodeType!==1)return;const W=I($);let F=!1,v1=null;switch($.nodeName){case"svg":O=x($,O);break;case"style":i($);break;case"g":O=x($,O);break;case"path":O=x($,O),$.hasAttribute("d")&&(v1=r($));break;case"rect":O=x($,O),v1=a($);break;case"polygon":O=x($,O),v1=d($);break;case"polyline":O=x($,O),v1=g($);break;case"circle":O=x($,O),v1=p($);break;case"ellipse":O=x($,O),v1=A($);break;case"line":O=x($,O),v1=w($);break;case"defs":F=!0;break;case"use":O=x($,O);const E1=($.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),z=$.viewportElement.getElementById(E1);z?C(z,O):console.warn("SVGLoader: 'use node' references non-existent node id: "+E1);break}v1&&(O.fill!==void 0&&O.fill!=="none"&&v1.color.setStyle(O.fill,SH),_(v1,u1),K.push(v1),v1.userData={node:$,style:O});const k1=$.childNodes;for(let i1=0;i10?u1.copy(X[X.length-1]):u1.identity())}function r($){const O=new R6,W=new y1,F=new y1,v1=new y1;let k1=!0,i1=!1;const E1=$.getAttribute("d");if(E1===""||E1==="none")return null;const z=E1.match(/[a-df-z][^a-df-z]*/ig);for(let L1=0,C1=z.length;L10&&(W.copy(v1),O.currentPath.currentPoint.copy(W),k1=!0);break;default:console.warn(l1)}i1=!1}return O}function i($){if(!(!$.sheet||!$.sheet.cssRules||!$.sheet.cssRules.length))for(let O=0;O<$.sheet.cssRules.length;O++){const W=$.sheet.cssRules[O];if(W.type!==1)continue;const F=W.selectorText.split(/,/gm).filter(Boolean).map(v1=>v1.trim());for(let v1=0;v1i1!==""));A1[F[v1]]=Object.assign(A1[F[v1]]||{},k1)}}}function o($,O,W,F,v1,k1,i1,E1){if(O==0||W==0){$.lineTo(E1.x,E1.y);return}F=F*Math.PI/180,O=Math.abs(O),W=Math.abs(W);const z=(i1.x-E1.x)/2,L1=(i1.y-E1.y)/2,C1=Math.cos(F)*z+Math.sin(F)*L1,l1=-Math.sin(F)*z+Math.cos(F)*L1;let h1=O*O,b1=W*W;const e1=C1*C1,S=l1*l1,D=e1/h1+S/b1;if(D>1){const N1=Math.sqrt(D);O=N1*O,W=N1*W,h1=O*O,b1=W*W}const r1=h1*S+b1*e1,T1=(h1*b1-r1)/r1;let Q1=Math.sqrt(Math.max(0,T1));v1===k1&&(Q1=-Q1);const _1=Q1*O*l1/W,Y1=-Q1*W*C1/O,O1=Math.cos(F)*_1-Math.sin(F)*Y1+(i1.x+E1.x)/2,q1=Math.sin(F)*_1+Math.cos(F)*Y1+(i1.y+E1.y)/2,l0=s(1,0,(C1-_1)/O,(l1-Y1)/W),w0=s((C1-_1)/O,(l1-Y1)/W,(-C1-_1)/O,(-l1-Y1)/W)%(Math.PI*2);$.currentPath.absellipse(O1,q1,O,W,l0,l0+w0,k1===0,F)}function s($,O,W,F){const v1=$*W+O*F,k1=Math.sqrt($*$+O*O)*Math.sqrt(W*W+F*F);let i1=Math.acos(Math.max(-1,Math.min(1,v1/k1)));return $*F-O*W<0&&(i1=-i1),i1}function a($){const O=k($.getAttribute("x")||0),W=k($.getAttribute("y")||0),F=k($.getAttribute("rx")||$.getAttribute("ry")||0),v1=k($.getAttribute("ry")||$.getAttribute("rx")||0),k1=k($.getAttribute("width")),i1=k($.getAttribute("height")),E1=1-.551915024494,z=new R6;return z.moveTo(O+F,W),z.lineTo(O+k1-F,W),(F!==0||v1!==0)&&z.bezierCurveTo(O+k1-F*E1,W,O+k1,W+v1*E1,O+k1,W+v1),z.lineTo(O+k1,W+i1-v1),(F!==0||v1!==0)&&z.bezierCurveTo(O+k1,W+i1-v1*E1,O+k1-F*E1,W+i1,O+k1-F,W+i1),z.lineTo(O+F,W+i1),(F!==0||v1!==0)&&z.bezierCurveTo(O+F*E1,W+i1,O,W+i1-v1*E1,O,W+i1-v1),z.lineTo(O,W+v1),(F!==0||v1!==0)&&z.bezierCurveTo(O,W+v1*E1,O+F*E1,W,O+F,W),z}function d($){function O(k1,i1,E1){const z=k(i1),L1=k(E1);v1===0?F.moveTo(z,L1):F.lineTo(z,L1),v1++}const W=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new R6;let v1=0;return $.getAttribute("points").replace(W,O),F.currentPath.autoClose=!0,F}function g($){function O(k1,i1,E1){const z=k(i1),L1=k(E1);v1===0?F.moveTo(z,L1):F.lineTo(z,L1),v1++}const W=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new R6;let v1=0;return $.getAttribute("points").replace(W,O),F.currentPath.autoClose=!1,F}function p($){const O=k($.getAttribute("cx")||0),W=k($.getAttribute("cy")||0),F=k($.getAttribute("r")||0),v1=new K6;v1.absarc(O,W,F,0,Math.PI*2);const k1=new R6;return k1.subPaths.push(v1),k1}function A($){const O=k($.getAttribute("cx")||0),W=k($.getAttribute("cy")||0),F=k($.getAttribute("rx")||0),v1=k($.getAttribute("ry")||0),k1=new K6;k1.absellipse(O,W,F,v1,0,Math.PI*2);const i1=new R6;return i1.subPaths.push(k1),i1}function w($){const O=k($.getAttribute("x1")||0),W=k($.getAttribute("y1")||0),F=k($.getAttribute("x2")||0),v1=k($.getAttribute("y2")||0),k1=new R6;return k1.moveTo(O,W),k1.lineTo(F,v1),k1.currentPath.autoClose=!1,k1}function x($,O){O=Object.assign({},O);let W={};if($.hasAttribute("class")){const i1=$.getAttribute("class").split(/\s/).filter(Boolean).map(E1=>E1.trim());for(let E1=0;E10&&O.premultiply(X[X.length-1]),u1.copy(O),X.push(O),O}function Q($){const O=new B0,W=c1;if($.nodeName==="use"&&($.hasAttribute("x")||$.hasAttribute("y"))){const F=k($.getAttribute("x")),v1=k($.getAttribute("y"));O.translate(F,v1)}if($.hasAttribute("transform")){const F=$.getAttribute("transform").split(")");for(let v1=F.length-1;v1>=0;v1--){const k1=F[v1].trim();if(k1==="")continue;const i1=k1.indexOf("("),E1=k1.length;if(i1>0&&i1=1){const C1=L1[0];let l1=0;L1.length>=2&&(l1=L1[1]),W.translate(C1,l1)}break;case"rotate":if(L1.length>=1){let C1=0,l1=0,h1=0;C1=L1[0]*Math.PI/180,L1.length>=3&&(l1=L1[1],h1=L1[2]),o1.makeTranslation(-l1,-h1),f1.makeRotation(C1),U.multiplyMatrices(f1,o1),o1.makeTranslation(l1,h1),W.multiplyMatrices(o1,U)}break;case"scale":if(L1.length>=1){const C1=L1[0];let l1=C1;L1.length>=2&&(l1=L1[1]),W.scale(C1,l1)}break;case"skewX":L1.length===1&&W.set(1,Math.tan(L1[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":L1.length===1&&W.set(1,0,0,Math.tan(L1[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":L1.length===6&&W.set(L1[0],L1[2],L1[4],L1[1],L1[3],L1[5],0,0,1);break}}O.premultiply(W)}}return O}function _($,O){function W(i1){n1.set(i1.x,i1.y,1).applyMatrix3(O),i1.set(n1.x,n1.y)}function F(i1){const E1=i1.xRadius,z=i1.yRadius,L1=Math.cos(i1.aRotation),C1=Math.sin(i1.aRotation),l1=new G(E1*L1,E1*C1,0),h1=new G(-z*C1,z*L1,0),b1=l1.applyMatrix3(O),e1=h1.applyMatrix3(O),S=c1.set(b1.x,e1.x,0,b1.y,e1.y,0,0,0,1),D=o1.copy(S).invert(),Q1=f1.copy(D).transpose().multiply(D).elements,_1=N(Q1[0],Q1[1],Q1[4]),Y1=Math.sqrt(_1.rt1),O1=Math.sqrt(_1.rt2);if(i1.xRadius=1/Y1,i1.yRadius=1/O1,i1.aRotation=Math.atan2(_1.sn,_1.cs),!((i1.aEndAngle-i1.aStartAngle)%(2*Math.PI){const{x:g0,y:s0}=new G(Math.cos(E0),Math.sin(E0),0).applyMatrix3(N1);return Math.atan2(s0,g0)};i1.aStartAngle=Q0(i1.aStartAngle),i1.aEndAngle=Q0(i1.aEndAngle),T(O)&&(i1.aClockwise=!i1.aClockwise)}}function v1(i1){const E1=q(O),z=R(O);i1.xRadius*=E1,i1.yRadius*=z;const L1=E1>Number.EPSILON?Math.atan2(O.elements[1],O.elements[0]):Math.atan2(-O.elements[3],O.elements[4]);i1.aRotation+=L1,T(O)&&(i1.aStartAngle*=-1,i1.aEndAngle*=-1,i1.aClockwise=!i1.aClockwise)}const k1=$.subPaths;for(let i1=0,E1=k1.length;i1Number.EPSILON}function q($){const O=$.elements;return Math.sqrt(O[0]*O[0]+O[1]*O[1])}function R($){const O=$.elements;return Math.sqrt(O[3]*O[3]+O[4]*O[4])}function N($,O,W){let F,v1,k1,i1,E1;const z=$+W,L1=$-W,C1=Math.sqrt(L1*L1+4*O*O);return z>0?(F=.5*(z+C1),E1=1/F,v1=$*E1*W-O*E1*O):z<0?v1=.5*(z-C1):(F=.5*C1,v1=-.5*C1),L1>0?k1=L1+C1:k1=L1-C1,Math.abs(k1)>2*Math.abs(O)?(E1=-2*O/k1,i1=1/Math.sqrt(1+E1*E1),k1=E1*i1):Math.abs(O)===0?(k1=1,i1=0):(E1=-.5*k1/O,k1=1/Math.sqrt(1+E1*E1),i1=E1*k1),L1>0&&(E1=k1,k1=-i1,i1=E1),{rt1:F,rt2:v1,cs:k1,sn:i1}}const K=[],A1={},X=[],c1=new B0,o1=new B0,f1=new B0,U=new B0,t1=new y1,n1=new G,u1=new B0,x1=new DOMParser().parseFromString(e,"image/svg+xml");return C(x1.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:K,xml:x1.documentElement}}static createShapes(e){const C={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:C.ORIGIN,t:0};function i(y,m,L,E){const k=y.x,I=m.x,Q=L.x,_=E.x,T=y.y,j=m.y,q=L.y,R=E.y,N=(_-Q)*(T-q)-(R-q)*(k-Q),K=(I-k)*(T-q)-(j-T)*(k-Q),A1=(R-q)*(I-k)-(_-Q)*(j-T),X=N/A1,c1=K/A1;if(A1===0&&N!==0||X<=0||X>=1||c1<0||c1>1)return null;if(N===0&&A1===0){for(let o1=0;o1<2;o1++)if(o(o1===0?L:E,y,m),r.loc==C.ORIGIN){const f1=o1===0?L:E;return{x:f1.x,y:f1.y,t:r.t}}else if(r.loc==C.BETWEEN){const f1=+(k+r.t*(I-k)).toPrecision(10),U=+(T+r.t*(j-T)).toPrecision(10);return{x:f1,y:U,t:r.t}}return null}else{for(let U=0;U<2;U++)if(o(U===0?L:E,y,m),r.loc==C.ORIGIN){const t1=U===0?L:E;return{x:t1.x,y:t1.y,t:r.t}}const o1=+(k+X*(I-k)).toPrecision(10),f1=+(T+X*(j-T)).toPrecision(10);return{x:o1,y:f1,t:X}}}function o(y,m,L){const E=L.x-m.x,k=L.y-m.y,I=y.x-m.x,Q=y.y-m.y,_=E*Q-I*k;if(y.x===m.x&&y.y===m.y){r.loc=C.ORIGIN,r.t=0;return}if(y.x===L.x&&y.y===L.y){r.loc=C.DESTINATION,r.t=1;return}if(_<-Number.EPSILON){r.loc=C.LEFT;return}if(_>Number.EPSILON){r.loc=C.RIGHT;return}if(E*I<0||k*Q<0){r.loc=C.BEHIND;return}if(Math.sqrt(E*E+k*k)R.t<=q.t+Number.EPSILON&&R.t>=q.t-Number.EPSILON)===void 0&&(L.push(q),E.push(new y1(q.x,q.y)))}}return E}function a(y,m,L){const E=new y1;m.getCenter(E);const k=[];return L.forEach(I=>{I.boundingBox.containsPoint(E)&&s(y,I.points).forEach(_=>{k.push({identifier:I.identifier,isCW:I.isCW,point:_})})}),k.sort((I,Q)=>I.point.x-Q.point.x),k}function d(y,m,L,E,k){(k==null||k==="")&&(k="nonzero");const I=new y1;y.boundingBox.getCenter(I);const Q=[new y1(L,I.y),new y1(E,I.y)],_=a(Q,y.boundingBox,m);_.sort((K,A1)=>K.point.x-A1.point.x);const T=[],j=[];_.forEach(K=>{K.identifier===y.identifier?T.push(K):j.push(K)});const q=T[0].point.x,R=[];let N=0;for(;N0&&R[R.length-1]===j[N].identifier?R.pop():R.push(j[N].identifier),N++;if(R.push(y.identifier),k==="evenodd"){const K=R.length%2===0,A1=R[R.length-2];return{identifier:y.identifier,isHole:K,for:A1}}else if(k==="nonzero"){let K=!0,A1=null,X=null;for(let c1=0;c1{const m=y.getPoints();let L=-999999999,E=999999999,k=-999999999,I=999999999;for(let Q=0;QL&&(L=_.y),_.yk&&(k=_.x),_.x=I&&(g=I-1),{curves:y.curves,points:m,isCW:e4.isClockWise(m),identifier:-1,boundingBox:new Jm(new y1(I,E),new y1(k,L))}});A=A.filter(y=>y.points.length>1);for(let y=0;yd(y,A,g,p,e.userData?e.userData.style.fillRule:void 0)),x=[];return A.forEach(y=>{if(!w[y.identifier].isHole){const L=new Z6;L.curves=y.curves,w.filter(k=>k.isHole&&k.for===y.identifier).forEach(k=>{const I=A[k.identifier],Q=new K6;Q.curves=I.curves,L.holes.push(Q)}),x.push(L)}}),x}static getStrokeStyle(e,n,C,r,i){return e=e!==void 0?e:1,n=n!==void 0?n:"#000",C=C!==void 0?C:"miter",r=r!==void 0?r:"butt",i=i!==void 0?i:4,{strokeColor:n,strokeWidth:e,strokeLineJoin:C,strokeLineCap:r,strokeMiterLimit:i}}static pointsToStroke(e,n,C,r){const i=[],o=[],s=[];if(me.pointsToStrokeWithBuffers(e,n,C,r,i,o,s)===0)return null;const a=new b0;return a.setAttribute("position",new o0(i,3)),a.setAttribute("normal",new o0(o,3)),a.setAttribute("uv",new o0(s,2)),a}static pointsToStrokeWithBuffers(e,n,C,r,i,o,s,a){const d=new y1,g=new y1,p=new y1,A=new y1,w=new y1,x=new y1,y=new y1,m=new y1,L=new y1,E=new y1,k=new y1,I=new y1,Q=new y1,_=new y1,T=new y1,j=new y1,q=new y1;C=C!==void 0?C:12,r=r!==void 0?r:.001,a=a!==void 0?a:0,e=L1(e);const R=e.length;if(R<2)return 0;const N=e[0].equals(e[R-1]);let K,A1=e[0],X;const c1=n.strokeWidth/2,o1=1/(R-1);let f1=0,U,t1,n1,u1,x1=!1,U1=0,$=a*3,O=a*2;W(e[0],e[1],d).multiplyScalar(c1),m.copy(e[0]).sub(d),L.copy(e[0]).add(d),E.copy(m),k.copy(L);for(let C1=1;C1Number.EPSILON){const b1=c1/h1;p.multiplyScalar(-b1),A.subVectors(K,A1),w.copy(A).setLength(b1).add(p),j.copy(w).negate();const e1=w.length(),S=A.length();A.divideScalar(S),x.subVectors(X,K);const D=x.length();switch(x.divideScalar(D),A.dot(j)=r&&h1.push(C1[b1]);return h1.push(C1[C1.length-1]),h1}}}const _H=new me,Kr=new J2,X5=new G;async function RH(t,e,n=t8,C,r,i,o){const s=new D8;s.matrixAutoUpdate=!1;const a=await _H.loadAsync(t);Kr.makeEmpty();for(const p of a.paths){const A=me.createShapes(p),w=new n;w.transparent=!0,w.depthWrite=!1,w.toneMapped=!1,w.clippingPlanes=C;for(const x of A){const y=new ve(x);y.computeBoundingBox(),Kr.union(y.boundingBox);const m=new e2(y,w);m.matrixAutoUpdate=!1,m.raycast=we(m,m.raycast,i,r,o),N3(m,e,o),m.userData.color=p.color,m.scale.y=-1,m.updateMatrix(),s.add(m)}}Kr.getSize(X5);const d=X5.x/X5.y,g=1/X5.y;return s.scale.set(1,1,1).multiplyScalar(g),Kr.getCenter(X5),X5.y*=-1,s.position.copy(X5).negate().multiplyScalar(g),s.updateMatrix(),Object.assign(s,{aspectRatio:d})}const Mv=new J1,bH=["color","opacity"];u.forwardRef((t,e)=>{const n=f5(),C=u.useRef(null),r=P3(C);_4(n,r,x5);const i=E5(n,r),o=F3(i),s=a6(),a=D3(s,o,r.size,r),d=H3(t.panelMaterialClass,t),g=L8(U9.Panel,t.zIndexOffset,d);j3(n,o,r.size,void 0,r.borderInset,a,g,s,d,m5);const p=T3(),A=Un(s,p),w=L8(U9.Svg,void 0,void 0,g),x=Rk(RH,t.src,r.cameraDistance,t.materialClass,A,s,p,w),y=C4(n,bH);y9(()=>{var R;const _=y.value;if(_==null)return;const T=_("color"),j=_("opacity");let q;Array.isArray(T)?q=Mv.setRGB(...T):T!=null&&(q=Mv.set(T)),(R=x.value)==null||R.traverse(N=>{if(!(N instanceof e2))return;N.receiveShadow=t.receiveShadow??!1,N.castShadow=t.castShadow??!1;const K=N.material;K.color.copy(q??N.userData.color),K.opacity=j??1})},[x,t.color,t.receiveShadow,t.castShadow]);const m=u.useMemo(()=>o9(()=>{var _;return(_=x.value)==null?void 0:_.aspectRatio}),[x]),L=Fn();Gn(n,L,r,o,a,t.scrollbarPanelMaterialClass,s,w),p5(n,t),A5(n,t),v5(n,t);const E=w5(n,t),k=y5(n,t);y4(n,"aspectRatio",m),g5(n),M5(t,r.size),U3(t,a);const I=u.useMemo(()=>{const _=new D8;return _.matrixAutoUpdate=!1,_},[]);y9(()=>{var q;const[_,T,j]=bk(r.size,r.paddingInset,r.borderInset,r.pixelSize,((q=x.value)==null?void 0:q.aspectRatio)??1);I.position.set(_,T,0),I.scale.setScalar(j),I.updateMatrix()},[r,x]),y9(()=>{const _=x.value;if(_!=null)return I.add(_),()=>I.remove(_)},[x,I]),y9(()=>void(I.visible=!a.value),[]);const Q=xe(r.size,r,g,p);return k5(e,r,Q,L),h.jsxs(L5,{groupRef:C,matrix:i,handlers:t,hoverHandlers:E,activeHandlers:k,children:[h.jsxs(Wn,{listeners:t,node:r,scrollPosition:L,children:[h.jsx("primitive",{object:Q}),h.jsx("primitive",{object:I})]}),h.jsx(On,{globalMatrix:o,node:r,orderInfo:w,scrollPosition:L,children:t.children})]})});u.forwardRef((t,e)=>{const n=f5(),C=u.useRef(null),r=P3(C);_4(n,r,x5);const i=E5(n,r),o=T3(),s=F3(i),a=a6(),d=D3(a,s,r.size,r);M5(t,r.size),U3(t,d);const g=H3(t.panelMaterialClass,t),p=L8(U9.Panel,t.zIndexOffset,g);j3(n,s,r.size,void 0,r.borderInset,d,p,a,g,m5);const A=L8(U9.Text,void 0,void 0,p),w=lP(n,t.children,s,r,d,a,A);p5(n,t),A5(n,t),v5(n,t);const x=w5(n,t),y=y5(n,t);y4(n,"measureFunc",w),g5(n);const m=xe(r.size,r,p,o);return k5(e,r,m),h.jsx(L5,{groupRef:C,matrix:i,handlers:t,hoverHandlers:x,activeHandlers:y,children:h.jsx("primitive",{object:m})})});const QH=u.forwardRef((t,e)=>{const n=Pn(),C=t.pixelSize??fM,[r,i]=u.useMemo(()=>{const{width:d,height:g}=n.getState().size;return[c2(d*C),c2(g*C)]},[C,n]);u.useEffect(()=>{const d=g=>{Lk(()=>{r.value=g.size.width*C,i.value=g.size.height*C})};return d(n.getState()),n.subscribe(d)},[C,r,i,n]);const o=ph(d=>d.camera),s=u.useRef(null);d5(()=>{if(s.current==null)return;let d=1;o instanceof Y2&&(d=i.peek()/(2*Math.tan(o.fov/360*Math.PI))),s.current.position.z=-d,s.current.updateMatrix()});const a=t.attachCamera??!0;return h.jsxs(h.Fragment,{children:[a&&h.jsx("primitive",{object:o}),fk(h.jsx("group",{ref:s,matrixAutoUpdate:!1,children:h.jsx(yH,{ref:e,...t,sizeX:r,sizeY:i,children:t.children})}),o)]})}),Ev=new J1,TH=["color","opacity"],DH=new me,f=u.forwardRef((t,e)=>{const n=f5(),C=u.useRef(null),r=P3(C);_4(n,r,x5);const i=E5(n,r),o=F3(i),s=a6(),a=D3(s,o,r.size,r),d=H3(t.panelMaterialClass,t),g=L8(U9.Panel,t.zIndexOffset,d);j3(n,o,r.size,void 0,r.borderInset,a,g,s,d,m5);const p=T3(),A=Un(s,p),w=L8(U9.Svg,void 0,void 0,g),x=u.useMemo(()=>{const I=new D8;I.matrixAutoUpdate=!1;const Q=DH.parse(t.text);for(const _ of Q.paths){const T=me.createShapes(_),j=new(t.materialClass??t8);j.transparent=!0,j.depthWrite=!1,j.toneMapped=!1,j.clippingPlanes=A;for(const q of T){const R=new ve(q);R.computeBoundingBox();const N=new e2(R,j);N.matrixAutoUpdate=!1,N.raycast=we(N,N.raycast,p,s,w),N3(N,r.cameraDistance,w),N.userData.color=_.color,N.scale.y=-1,N.updateMatrix(),I.add(N)}}return I},[t.text,t.materialClass,A,p,s,r,w]),y=C4(n,TH);y9(()=>{const I=y.value;if(I==null)return;const Q=I("color"),_=I("opacity");let T;Array.isArray(Q)?T=Ev.setRGB(...Q):Q!=null&&(T=Ev.set(Q)),x.traverse(j=>{if(!(j instanceof e2))return;j.receiveShadow=t.receiveShadow??!1,j.castShadow=t.castShadow??!1;const q=j.material;q.color.copy(T??j.userData.color),q.opacity=_??1})},[x,t.color,t.receiveShadow,t.castShadow]);const m=Fn();Gn(n,m,r,o,a,t.scrollbarPanelMaterialClass,s,w),y4(n,"width",t.svgWidth),y4(n,"height",t.svgHeight),p5(n,t),A5(n,t),v5(n,t);const L=w5(n,t),E=y5(n,t);y4(n,"aspectRatio",t.svgWidth/t.svgHeight),g5(n),M5(t,r.size),U3(t,a),y9(()=>{const I=t.svgWidth/t.svgHeight,[Q,_,T]=bk(r.size,r.paddingInset,r.borderInset,r.pixelSize,t.svgWidth/t.svgHeight);x.position.set(Q-T*I/2,_+T/2,0),x.scale.setScalar(T/t.svgHeight),x.updateMatrix()},[r,x,t.svgWidth,t.svgHeight]),y9(()=>void(x.visible=!a.value),[]);const k=xe(r.size,r,g,p);return k5(e,r,k,m),h.jsxs(L5,{groupRef:C,matrix:i,handlers:t,hoverHandlers:L,activeHandlers:E,children:[h.jsxs(Wn,{listeners:t,node:r,scrollPosition:m,children:[h.jsx("primitive",{object:k}),h.jsx("primitive",{object:x})]}),h.jsx(On,{globalMatrix:o,node:r,orderInfo:w,scrollPosition:m,children:t.children})]})});u.forwardRef(({children:t,resolution:e=1,frames:n=1/0,renderPriority:C=0,eventPriority:r=0,...i},o)=>{const s=u.useMemo(()=>new U8(1,1,{minFilter:A2,magFilter:A2,type:M3}),[]),a=u.useRef(null),d=u.useMemo(()=>({events:{compute:NH.bind(null,a),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);u.useEffect(()=>{if(a.current==null)return;const{size:p}=a.current,A=r2(()=>{const[w,x]=p.value;s.setSize(w,x),d.size.width=w,d.size.height=x});return()=>{A(),s.dispose()}},[s,d]),u.useImperativeHandle(o,()=>a.current,[]);const g=u.useMemo(()=>new dn,[]);return h.jsxs(h.Fragment,{children:[fk(h.jsxs(PH,{imageRef:a,renderPriority:C,frames:n,fbo:s,children:[t,h.jsx("group",{onPointerOver:()=>null})]}),g,d),h.jsx(dH,{...i,src:s.texture,fit:"fill",keepAspectRatio:!1,ref:a})]})});function NH({current:t},e,n,C){var o,s,a;if(t==null||C==null)return!1;C.raycaster.camera||(a=(s=C.events).compute)==null||a.call(s,e,C,(o=C.previousRoot)==null?void 0:o.getState());const[r]=C.raycaster.intersectObject(t.interactionPanel);if(!r)return!1;const i=r.uv;if(!i)return!1;n.raycaster.setFromCamera(n.pointer.set(i.x*2-1,i.y*2-1),n.camera)}function PH({frames:t,renderPriority:e,children:n,fbo:C,imageRef:r}){const i=Pn();u.useEffect(()=>{if(r.current==null)return;const{size:d}=r.current;return r2(()=>{const[g,p]=d.value;i.setState({size:{width:g,height:p,top:0,left:0}})})});let o=0,s,a;return d5(d=>{(t===1/0||oh.jsx(f,{...t,ref:e,text:HH,svgWidth:24,svgHeight:24})),UH='',FH=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UH,svgWidth:24,svgHeight:24})),WH='',GH=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WH,svgWidth:24,svgHeight:24})),OH='',zH=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OH,svgWidth:24,svgHeight:24})),VH='',$H=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VH,svgWidth:24,svgHeight:24})),YH='',XH=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YH,svgWidth:24,svgHeight:24})),JH='',qH=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JH,svgWidth:24,svgHeight:24})),KH='',ZH=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KH,svgWidth:24,svgHeight:24})),ej='',tj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ej,svgWidth:24,svgHeight:24})),nj='',Cj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nj,svgWidth:24,svgHeight:24})),rj='',ij=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rj,svgWidth:24,svgHeight:24})),oj='',sj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oj,svgWidth:24,svgHeight:24})),lj='',aj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lj,svgWidth:24,svgHeight:24})),cj='',uj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cj,svgWidth:24,svgHeight:24})),dj='',hj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dj,svgWidth:24,svgHeight:24})),fj='',gj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fj,svgWidth:24,svgHeight:24})),pj='',Aj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pj,svgWidth:24,svgHeight:24})),vj='',Lj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vj,svgWidth:24,svgHeight:24})),wj='',xj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wj,svgWidth:24,svgHeight:24})),mj='',kj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mj,svgWidth:24,svgHeight:24})),Mj='',Ej=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mj,svgWidth:24,svgHeight:24})),yj='',Ij=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yj,svgWidth:24,svgHeight:24})),Bj='',Sj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bj,svgWidth:24,svgHeight:24})),_j='',Rj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_j,svgWidth:24,svgHeight:24})),bj='',Qj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bj,svgWidth:24,svgHeight:24})),Tj='',Dj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tj,svgWidth:24,svgHeight:24})),Nj='',Pj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nj,svgWidth:24,svgHeight:24})),Hj='',jj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hj,svgWidth:24,svgHeight:24})),Uj='',Fj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uj,svgWidth:24,svgHeight:24})),Wj='',Gj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wj,svgWidth:24,svgHeight:24})),Oj='',zj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Oj,svgWidth:24,svgHeight:24})),Vj='',$j=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vj,svgWidth:24,svgHeight:24})),Yj='',Xj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yj,svgWidth:24,svgHeight:24})),Jj='',qj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jj,svgWidth:24,svgHeight:24})),Kj='',Zj=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kj,svgWidth:24,svgHeight:24})),eU='',tU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eU,svgWidth:24,svgHeight:24})),nU='',CU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nU,svgWidth:24,svgHeight:24})),rU='',iU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rU,svgWidth:24,svgHeight:24})),oU='',sU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oU,svgWidth:24,svgHeight:24})),lU='',aU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lU,svgWidth:24,svgHeight:24})),cU='',uU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cU,svgWidth:24,svgHeight:24})),dU='',hU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dU,svgWidth:24,svgHeight:24})),fU='',gU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fU,svgWidth:24,svgHeight:24})),pU='',AU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pU,svgWidth:24,svgHeight:24})),vU='',LU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vU,svgWidth:24,svgHeight:24})),wU='',xU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wU,svgWidth:24,svgHeight:24})),mU='',kU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mU,svgWidth:24,svgHeight:24})),MU='',EU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MU,svgWidth:24,svgHeight:24})),yU='',IU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yU,svgWidth:24,svgHeight:24})),BU='',SU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BU,svgWidth:24,svgHeight:24})),_U='',RU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_U,svgWidth:24,svgHeight:24})),bU='',QU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bU,svgWidth:24,svgHeight:24})),TU='',DU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TU,svgWidth:24,svgHeight:24})),NU='',PU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NU,svgWidth:24,svgHeight:24})),HU='',jU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HU,svgWidth:24,svgHeight:24})),UU='',FU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UU,svgWidth:24,svgHeight:24})),WU='',GU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WU,svgWidth:24,svgHeight:24})),OU='',zU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OU,svgWidth:24,svgHeight:24})),VU='',$U=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VU,svgWidth:24,svgHeight:24})),YU='',XU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YU,svgWidth:24,svgHeight:24})),JU='',qU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JU,svgWidth:24,svgHeight:24})),KU='',ZU=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KU,svgWidth:24,svgHeight:24})),eF='',tF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eF,svgWidth:24,svgHeight:24})),nF='',CF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nF,svgWidth:24,svgHeight:24})),rF='',iF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rF,svgWidth:24,svgHeight:24})),oF='',sF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oF,svgWidth:24,svgHeight:24})),lF='',aF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lF,svgWidth:24,svgHeight:24})),cF='',uF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cF,svgWidth:24,svgHeight:24})),dF='',hF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dF,svgWidth:24,svgHeight:24})),fF='',gF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fF,svgWidth:24,svgHeight:24})),pF='',AF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pF,svgWidth:24,svgHeight:24})),vF='',LF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vF,svgWidth:24,svgHeight:24})),wF='',xF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wF,svgWidth:24,svgHeight:24})),mF='',kF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mF,svgWidth:24,svgHeight:24})),MF='',EF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MF,svgWidth:24,svgHeight:24})),yF='',IF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yF,svgWidth:24,svgHeight:24})),BF='',SF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BF,svgWidth:24,svgHeight:24})),_F='',RF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_F,svgWidth:24,svgHeight:24})),bF='',QF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bF,svgWidth:24,svgHeight:24})),TF='',DF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TF,svgWidth:24,svgHeight:24})),NF='',PF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NF,svgWidth:24,svgHeight:24})),HF='',jF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HF,svgWidth:24,svgHeight:24})),UF='',FF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UF,svgWidth:24,svgHeight:24})),WF='',GF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WF,svgWidth:24,svgHeight:24})),OF='',zF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OF,svgWidth:24,svgHeight:24})),VF='',$F=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VF,svgWidth:24,svgHeight:24})),YF='',XF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YF,svgWidth:24,svgHeight:24})),JF='',qF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JF,svgWidth:24,svgHeight:24})),KF='',ZF=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KF,svgWidth:24,svgHeight:24})),eW='',tW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eW,svgWidth:24,svgHeight:24})),nW='',CW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nW,svgWidth:24,svgHeight:24})),rW='',iW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rW,svgWidth:24,svgHeight:24})),oW='',sW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oW,svgWidth:24,svgHeight:24})),lW='',aW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lW,svgWidth:24,svgHeight:24})),cW='',uW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cW,svgWidth:24,svgHeight:24})),dW='',hW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dW,svgWidth:24,svgHeight:24})),fW='',gW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fW,svgWidth:24,svgHeight:24})),pW='',AW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pW,svgWidth:24,svgHeight:24})),vW='',LW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vW,svgWidth:24,svgHeight:24})),wW='',xW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wW,svgWidth:24,svgHeight:24})),mW='',kW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mW,svgWidth:24,svgHeight:24})),MW='',EW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MW,svgWidth:24,svgHeight:24})),yW='',IW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yW,svgWidth:24,svgHeight:24})),BW='',SW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BW,svgWidth:24,svgHeight:24})),_W='',RW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_W,svgWidth:24,svgHeight:24})),bW='',QW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bW,svgWidth:24,svgHeight:24})),TW='',DW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TW,svgWidth:24,svgHeight:24})),NW='',PW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NW,svgWidth:24,svgHeight:24})),HW='',jW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HW,svgWidth:24,svgHeight:24})),UW='',FW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UW,svgWidth:24,svgHeight:24})),WW='',GW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WW,svgWidth:24,svgHeight:24})),OW='',zW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OW,svgWidth:24,svgHeight:24})),VW='',$W=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VW,svgWidth:24,svgHeight:24})),YW='',XW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YW,svgWidth:24,svgHeight:24})),JW='',qW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JW,svgWidth:24,svgHeight:24})),KW='',ZW=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KW,svgWidth:24,svgHeight:24})),eG='',tG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eG,svgWidth:24,svgHeight:24})),nG='',CG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nG,svgWidth:24,svgHeight:24})),rG='',iG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rG,svgWidth:24,svgHeight:24})),oG='',sG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oG,svgWidth:24,svgHeight:24})),lG='',aG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lG,svgWidth:24,svgHeight:24})),cG='',uG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cG,svgWidth:24,svgHeight:24})),dG='',hG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dG,svgWidth:24,svgHeight:24})),fG='',gG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fG,svgWidth:24,svgHeight:24})),pG='',AG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pG,svgWidth:24,svgHeight:24})),vG='',LG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vG,svgWidth:24,svgHeight:24})),wG='',xG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wG,svgWidth:24,svgHeight:24})),mG='',kG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mG,svgWidth:24,svgHeight:24})),MG='',EG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MG,svgWidth:24,svgHeight:24})),yG='',IG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yG,svgWidth:24,svgHeight:24})),BG='',SG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BG,svgWidth:24,svgHeight:24})),_G='',RG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_G,svgWidth:24,svgHeight:24})),bG='',QG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bG,svgWidth:24,svgHeight:24})),TG='',DG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TG,svgWidth:24,svgHeight:24})),NG='',PG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NG,svgWidth:24,svgHeight:24})),HG='',jG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HG,svgWidth:24,svgHeight:24})),UG='',FG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UG,svgWidth:24,svgHeight:24})),WG='',GG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WG,svgWidth:24,svgHeight:24})),OG='',zG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OG,svgWidth:24,svgHeight:24})),VG='',$G=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VG,svgWidth:24,svgHeight:24})),YG='',XG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YG,svgWidth:24,svgHeight:24})),JG='',qG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JG,svgWidth:24,svgHeight:24})),KG='',ZG=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KG,svgWidth:24,svgHeight:24})),eO='',tO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eO,svgWidth:24,svgHeight:24})),nO='',CO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nO,svgWidth:24,svgHeight:24})),rO='',iO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rO,svgWidth:24,svgHeight:24})),oO='',sO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oO,svgWidth:24,svgHeight:24})),lO='',aO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lO,svgWidth:24,svgHeight:24})),cO='',uO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cO,svgWidth:24,svgHeight:24})),dO='',hO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dO,svgWidth:24,svgHeight:24})),fO='',gO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fO,svgWidth:24,svgHeight:24})),pO='',AO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pO,svgWidth:24,svgHeight:24})),vO='',LO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vO,svgWidth:24,svgHeight:24})),wO='',xO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wO,svgWidth:24,svgHeight:24})),mO='',kO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mO,svgWidth:24,svgHeight:24})),MO='',EO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MO,svgWidth:24,svgHeight:24})),yO='',IO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yO,svgWidth:24,svgHeight:24})),BO='',SO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BO,svgWidth:24,svgHeight:24})),_O='',RO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_O,svgWidth:24,svgHeight:24})),bO='',QO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bO,svgWidth:24,svgHeight:24})),TO='',DO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TO,svgWidth:24,svgHeight:24})),NO='',PO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NO,svgWidth:24,svgHeight:24})),HO='',jO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HO,svgWidth:24,svgHeight:24})),UO='',FO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UO,svgWidth:24,svgHeight:24})),WO='',GO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WO,svgWidth:24,svgHeight:24})),OO='',zO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OO,svgWidth:24,svgHeight:24})),VO='',$O=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VO,svgWidth:24,svgHeight:24})),YO='',XO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YO,svgWidth:24,svgHeight:24})),JO='',qO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JO,svgWidth:24,svgHeight:24})),KO='',ZO=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KO,svgWidth:24,svgHeight:24})),ez='',tz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ez,svgWidth:24,svgHeight:24})),nz='',Cz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nz,svgWidth:24,svgHeight:24})),rz='',iz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rz,svgWidth:24,svgHeight:24})),oz='',sz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oz,svgWidth:24,svgHeight:24})),lz='',az=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lz,svgWidth:24,svgHeight:24})),cz='',uz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cz,svgWidth:24,svgHeight:24})),dz='',hz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dz,svgWidth:24,svgHeight:24})),fz='',gz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fz,svgWidth:24,svgHeight:24})),pz='',Az=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pz,svgWidth:24,svgHeight:24})),vz='',Lz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vz,svgWidth:24,svgHeight:24})),wz='',xz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wz,svgWidth:24,svgHeight:24})),mz='',kz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mz,svgWidth:24,svgHeight:24})),Mz='',Ez=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mz,svgWidth:24,svgHeight:24})),yz='',Iz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yz,svgWidth:24,svgHeight:24})),Bz='',Sz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bz,svgWidth:24,svgHeight:24})),_z='',Rz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_z,svgWidth:24,svgHeight:24})),bz='',Qz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bz,svgWidth:24,svgHeight:24})),Tz='',Dz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tz,svgWidth:24,svgHeight:24})),Nz='',Pz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nz,svgWidth:24,svgHeight:24})),Hz='',jz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hz,svgWidth:24,svgHeight:24})),Uz='',Fz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uz,svgWidth:24,svgHeight:24})),Wz='',Gz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wz,svgWidth:24,svgHeight:24})),Oz='',zz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Oz,svgWidth:24,svgHeight:24})),Vz='',$z=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vz,svgWidth:24,svgHeight:24})),Yz='',Xz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yz,svgWidth:24,svgHeight:24})),Jz='',qz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jz,svgWidth:24,svgHeight:24})),Kz='',Zz=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kz,svgWidth:24,svgHeight:24})),eV='',tV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eV,svgWidth:24,svgHeight:24})),nV='',CV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nV,svgWidth:24,svgHeight:24})),rV='',iV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rV,svgWidth:24,svgHeight:24})),oV='',sV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oV,svgWidth:24,svgHeight:24})),lV='',aV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lV,svgWidth:24,svgHeight:24})),cV='',uV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cV,svgWidth:24,svgHeight:24})),dV='',hV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dV,svgWidth:24,svgHeight:24})),fV='',gV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fV,svgWidth:24,svgHeight:24})),pV='',AV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pV,svgWidth:24,svgHeight:24})),vV='',LV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vV,svgWidth:24,svgHeight:24})),wV='',xV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wV,svgWidth:24,svgHeight:24})),mV='',kV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mV,svgWidth:24,svgHeight:24})),MV='',EV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MV,svgWidth:24,svgHeight:24})),yV='',IV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yV,svgWidth:24,svgHeight:24})),BV='',SV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BV,svgWidth:24,svgHeight:24})),_V='',RV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_V,svgWidth:24,svgHeight:24})),bV='',QV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bV,svgWidth:24,svgHeight:24})),TV='',DV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TV,svgWidth:24,svgHeight:24})),NV='',PV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NV,svgWidth:24,svgHeight:24})),HV='',jV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HV,svgWidth:24,svgHeight:24})),UV='',FV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UV,svgWidth:24,svgHeight:24})),WV='',GV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WV,svgWidth:24,svgHeight:24})),OV='',zV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OV,svgWidth:24,svgHeight:24})),VV='',$V=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VV,svgWidth:24,svgHeight:24})),YV='',XV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YV,svgWidth:24,svgHeight:24})),JV='',qV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JV,svgWidth:24,svgHeight:24})),KV='',ZV=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KV,svgWidth:24,svgHeight:24})),e$='',t$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e$,svgWidth:24,svgHeight:24})),n$='',C$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n$,svgWidth:24,svgHeight:24})),r$='',i$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r$,svgWidth:24,svgHeight:24})),o$='',s$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o$,svgWidth:24,svgHeight:24})),l$='',a$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l$,svgWidth:24,svgHeight:24})),c$='',u$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c$,svgWidth:24,svgHeight:24})),d$='',h$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d$,svgWidth:24,svgHeight:24})),f$='',g$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f$,svgWidth:24,svgHeight:24})),p$='',A$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p$,svgWidth:24,svgHeight:24})),v$='',L$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v$,svgWidth:24,svgHeight:24})),w$='',x$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w$,svgWidth:24,svgHeight:24})),m$='',k$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m$,svgWidth:24,svgHeight:24})),M$='',E$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M$,svgWidth:24,svgHeight:24})),y$='',I$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y$,svgWidth:24,svgHeight:24})),B$='',S$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B$,svgWidth:24,svgHeight:24})),_$='',R$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_$,svgWidth:24,svgHeight:24})),b$='',Q$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b$,svgWidth:24,svgHeight:24})),T$='',D$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T$,svgWidth:24,svgHeight:24})),N$='',P$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N$,svgWidth:24,svgHeight:24})),H$='',j$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H$,svgWidth:24,svgHeight:24})),U$='',F$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U$,svgWidth:24,svgHeight:24})),W$='',G$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W$,svgWidth:24,svgHeight:24})),O$='',z$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O$,svgWidth:24,svgHeight:24})),V$='',$$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V$,svgWidth:24,svgHeight:24})),Y$='',X$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y$,svgWidth:24,svgHeight:24})),J$='',q$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J$,svgWidth:24,svgHeight:24})),K$='',Z$=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K$,svgWidth:24,svgHeight:24})),eY='',tY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eY,svgWidth:24,svgHeight:24})),nY='',CY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nY,svgWidth:24,svgHeight:24})),rY='',iY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rY,svgWidth:24,svgHeight:24})),oY='',sY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oY,svgWidth:24,svgHeight:24})),lY='',aY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lY,svgWidth:24,svgHeight:24})),cY='',uY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cY,svgWidth:24,svgHeight:24})),dY='',hY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dY,svgWidth:24,svgHeight:24})),fY='',gY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fY,svgWidth:24,svgHeight:24})),pY='',AY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pY,svgWidth:24,svgHeight:24})),vY='',LY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vY,svgWidth:24,svgHeight:24})),wY='',xY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wY,svgWidth:24,svgHeight:24})),mY='',kY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mY,svgWidth:24,svgHeight:24})),MY='',EY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MY,svgWidth:24,svgHeight:24})),yY='',IY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yY,svgWidth:24,svgHeight:24})),BY='',SY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BY,svgWidth:24,svgHeight:24})),_Y='',RY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_Y,svgWidth:24,svgHeight:24})),bY='',QY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bY,svgWidth:24,svgHeight:24})),TY='',DY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TY,svgWidth:24,svgHeight:24})),NY='',PY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NY,svgWidth:24,svgHeight:24})),HY='',jY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HY,svgWidth:24,svgHeight:24})),UY='',FY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UY,svgWidth:24,svgHeight:24})),WY='',GY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WY,svgWidth:24,svgHeight:24})),OY='',zY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OY,svgWidth:24,svgHeight:24})),VY='',$Y=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VY,svgWidth:24,svgHeight:24})),YY='',XY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YY,svgWidth:24,svgHeight:24})),JY='',qY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JY,svgWidth:24,svgHeight:24})),KY='',ZY=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KY,svgWidth:24,svgHeight:24})),eX='',tX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eX,svgWidth:24,svgHeight:24})),nX='',CX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nX,svgWidth:24,svgHeight:24})),rX='',iX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rX,svgWidth:24,svgHeight:24})),oX='',sX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oX,svgWidth:24,svgHeight:24})),lX='',aX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lX,svgWidth:24,svgHeight:24})),cX='',uX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cX,svgWidth:24,svgHeight:24})),dX='',hX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dX,svgWidth:24,svgHeight:24})),fX='',gX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fX,svgWidth:24,svgHeight:24})),pX='',AX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pX,svgWidth:24,svgHeight:24})),vX='',LX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vX,svgWidth:24,svgHeight:24})),wX='',xX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wX,svgWidth:24,svgHeight:24})),mX='',kX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mX,svgWidth:24,svgHeight:24})),MX='',EX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MX,svgWidth:24,svgHeight:24})),yX='',IX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yX,svgWidth:24,svgHeight:24})),BX='',SX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BX,svgWidth:24,svgHeight:24})),_X='',RX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_X,svgWidth:24,svgHeight:24})),bX='',QX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bX,svgWidth:24,svgHeight:24})),TX='',DX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TX,svgWidth:24,svgHeight:24})),NX='',PX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NX,svgWidth:24,svgHeight:24})),HX='',jX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HX,svgWidth:24,svgHeight:24})),UX='',FX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UX,svgWidth:24,svgHeight:24})),WX='',GX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WX,svgWidth:24,svgHeight:24})),OX='',zX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OX,svgWidth:24,svgHeight:24})),VX='',$X=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VX,svgWidth:24,svgHeight:24})),YX='',XX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YX,svgWidth:24,svgHeight:24})),JX='',qX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JX,svgWidth:24,svgHeight:24})),KX='',ZX=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KX,svgWidth:24,svgHeight:24})),eJ='',tJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eJ,svgWidth:24,svgHeight:24})),nJ='',CJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nJ,svgWidth:24,svgHeight:24})),rJ='',iJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rJ,svgWidth:24,svgHeight:24})),oJ='',sJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oJ,svgWidth:24,svgHeight:24})),lJ='',aJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lJ,svgWidth:24,svgHeight:24})),cJ='',uJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cJ,svgWidth:24,svgHeight:24})),dJ='',hJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dJ,svgWidth:24,svgHeight:24})),fJ='',gJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fJ,svgWidth:24,svgHeight:24})),pJ='',AJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pJ,svgWidth:24,svgHeight:24})),vJ='',LJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vJ,svgWidth:24,svgHeight:24})),wJ='',xJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wJ,svgWidth:24,svgHeight:24})),mJ='',kJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mJ,svgWidth:24,svgHeight:24})),MJ='',EJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MJ,svgWidth:24,svgHeight:24})),yJ='',IJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yJ,svgWidth:24,svgHeight:24})),BJ='',SJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BJ,svgWidth:24,svgHeight:24})),_J='',RJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_J,svgWidth:24,svgHeight:24})),bJ='',QJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bJ,svgWidth:24,svgHeight:24})),TJ='',DJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TJ,svgWidth:24,svgHeight:24})),NJ='',PJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NJ,svgWidth:24,svgHeight:24})),HJ='',jJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HJ,svgWidth:24,svgHeight:24})),UJ='',FJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UJ,svgWidth:24,svgHeight:24})),WJ='',GJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WJ,svgWidth:24,svgHeight:24})),OJ='',zJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OJ,svgWidth:24,svgHeight:24})),VJ='',$J=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VJ,svgWidth:24,svgHeight:24})),YJ='',XJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YJ,svgWidth:24,svgHeight:24})),JJ='',qJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JJ,svgWidth:24,svgHeight:24})),KJ='',ZJ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KJ,svgWidth:24,svgHeight:24})),eq='',tq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eq,svgWidth:24,svgHeight:24})),nq='',Cq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nq,svgWidth:24,svgHeight:24})),rq='',iq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rq,svgWidth:24,svgHeight:24})),oq='',sq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oq,svgWidth:24,svgHeight:24})),lq='',aq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lq,svgWidth:24,svgHeight:24})),cq='',uq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cq,svgWidth:24,svgHeight:24})),dq='',hq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dq,svgWidth:24,svgHeight:24})),fq='',gq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fq,svgWidth:24,svgHeight:24})),pq='',Aq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pq,svgWidth:24,svgHeight:24})),vq='',Lq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vq,svgWidth:24,svgHeight:24})),wq='',xq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wq,svgWidth:24,svgHeight:24})),mq='',kq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mq,svgWidth:24,svgHeight:24})),Mq='',Eq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mq,svgWidth:24,svgHeight:24})),yq='',Iq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yq,svgWidth:24,svgHeight:24})),Bq='',Sq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bq,svgWidth:24,svgHeight:24})),_q='',Rq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_q,svgWidth:24,svgHeight:24})),bq='',Qq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bq,svgWidth:24,svgHeight:24})),Tq='',Dq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tq,svgWidth:24,svgHeight:24})),Nq='',Pq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nq,svgWidth:24,svgHeight:24})),Hq='',jq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hq,svgWidth:24,svgHeight:24})),Uq='',Fq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uq,svgWidth:24,svgHeight:24})),Wq='',Gq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wq,svgWidth:24,svgHeight:24})),Oq='',zq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Oq,svgWidth:24,svgHeight:24})),Vq='',$q=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vq,svgWidth:24,svgHeight:24})),Yq='',Xq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yq,svgWidth:24,svgHeight:24})),Jq='',qq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jq,svgWidth:24,svgHeight:24})),Kq='',Zq=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kq,svgWidth:24,svgHeight:24})),eK='',tK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eK,svgWidth:24,svgHeight:24})),nK='',CK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nK,svgWidth:24,svgHeight:24})),rK='',iK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rK,svgWidth:24,svgHeight:24})),oK='',sK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oK,svgWidth:24,svgHeight:24})),lK='',aK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lK,svgWidth:24,svgHeight:24})),cK='',uK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cK,svgWidth:24,svgHeight:24})),dK='',hK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dK,svgWidth:24,svgHeight:24})),fK='',gK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fK,svgWidth:24,svgHeight:24})),pK='',AK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pK,svgWidth:24,svgHeight:24})),vK='',LK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vK,svgWidth:24,svgHeight:24})),wK='',xK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wK,svgWidth:24,svgHeight:24})),mK='',kK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mK,svgWidth:24,svgHeight:24})),MK='',EK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MK,svgWidth:24,svgHeight:24})),yK='',IK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yK,svgWidth:24,svgHeight:24})),BK='',SK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BK,svgWidth:24,svgHeight:24})),_K='',RK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_K,svgWidth:24,svgHeight:24})),bK='',QK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bK,svgWidth:24,svgHeight:24})),TK='',DK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TK,svgWidth:24,svgHeight:24})),NK='',PK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NK,svgWidth:24,svgHeight:24})),HK='',jK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HK,svgWidth:24,svgHeight:24})),UK='',FK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UK,svgWidth:24,svgHeight:24})),WK='',GK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WK,svgWidth:24,svgHeight:24})),OK='',zK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OK,svgWidth:24,svgHeight:24})),VK='',$K=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VK,svgWidth:24,svgHeight:24})),YK='',XK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YK,svgWidth:24,svgHeight:24})),JK='',qK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JK,svgWidth:24,svgHeight:24})),KK='',ZK=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KK,svgWidth:24,svgHeight:24})),eZ='',tZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eZ,svgWidth:24,svgHeight:24})),nZ='',CZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nZ,svgWidth:24,svgHeight:24})),rZ='',iZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rZ,svgWidth:24,svgHeight:24})),oZ='',sZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oZ,svgWidth:24,svgHeight:24})),lZ='',aZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lZ,svgWidth:24,svgHeight:24})),cZ='',uZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cZ,svgWidth:24,svgHeight:24})),dZ='',hZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dZ,svgWidth:24,svgHeight:24})),fZ='',gZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fZ,svgWidth:24,svgHeight:24})),pZ='',AZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pZ,svgWidth:24,svgHeight:24})),vZ='',LZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vZ,svgWidth:24,svgHeight:24})),wZ='',xZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wZ,svgWidth:24,svgHeight:24})),mZ='',kZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mZ,svgWidth:24,svgHeight:24})),MZ='',EZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MZ,svgWidth:24,svgHeight:24})),yZ='',IZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yZ,svgWidth:24,svgHeight:24})),BZ='',SZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BZ,svgWidth:24,svgHeight:24})),_Z='',RZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_Z,svgWidth:24,svgHeight:24})),bZ='',QZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bZ,svgWidth:24,svgHeight:24})),TZ='',DZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TZ,svgWidth:24,svgHeight:24})),NZ='',PZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NZ,svgWidth:24,svgHeight:24})),HZ='',jZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HZ,svgWidth:24,svgHeight:24})),UZ='',FZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UZ,svgWidth:24,svgHeight:24})),WZ='',GZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WZ,svgWidth:24,svgHeight:24})),OZ='',zZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OZ,svgWidth:24,svgHeight:24})),VZ='',$Z=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VZ,svgWidth:24,svgHeight:24})),YZ='',XZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YZ,svgWidth:24,svgHeight:24})),JZ='',qZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JZ,svgWidth:24,svgHeight:24})),KZ='',ZZ=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KZ,svgWidth:24,svgHeight:24})),e11='',t11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e11,svgWidth:24,svgHeight:24})),n11='',C11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n11,svgWidth:24,svgHeight:24})),r11='',i11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r11,svgWidth:24,svgHeight:24})),o11='',s11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o11,svgWidth:24,svgHeight:24})),l11='',a11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l11,svgWidth:24,svgHeight:24})),c11='',u11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c11,svgWidth:24,svgHeight:24})),d11='',h11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d11,svgWidth:24,svgHeight:24})),f11='',g11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f11,svgWidth:24,svgHeight:24})),p11='',A11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p11,svgWidth:24,svgHeight:24})),v11='',L11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v11,svgWidth:24,svgHeight:24})),w11='',x11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w11,svgWidth:24,svgHeight:24})),m11='',k11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m11,svgWidth:24,svgHeight:24})),M11='',E11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M11,svgWidth:24,svgHeight:24})),y11='',I11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y11,svgWidth:24,svgHeight:24})),B11='',S11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B11,svgWidth:24,svgHeight:24})),_11='',R11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_11,svgWidth:24,svgHeight:24})),b11='',Q11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b11,svgWidth:24,svgHeight:24})),T11='',D11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T11,svgWidth:24,svgHeight:24})),N11='',P11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N11,svgWidth:24,svgHeight:24})),H11='',j11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H11,svgWidth:24,svgHeight:24})),U11='',F11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U11,svgWidth:24,svgHeight:24})),W11='',G11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W11,svgWidth:24,svgHeight:24})),O11='',z11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O11,svgWidth:24,svgHeight:24})),V11='',$11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V11,svgWidth:24,svgHeight:24})),Y11='',X11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y11,svgWidth:24,svgHeight:24})),J11='',q11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J11,svgWidth:24,svgHeight:24})),K11='',Z11=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K11,svgWidth:24,svgHeight:24})),e01='',t01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e01,svgWidth:24,svgHeight:24})),n01='',C01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n01,svgWidth:24,svgHeight:24})),r01='',i01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r01,svgWidth:24,svgHeight:24})),o01='',s01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o01,svgWidth:24,svgHeight:24})),l01='',a01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l01,svgWidth:24,svgHeight:24})),c01='',u01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c01,svgWidth:24,svgHeight:24})),d01='',h01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d01,svgWidth:24,svgHeight:24})),f01='',g01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f01,svgWidth:24,svgHeight:24})),p01='',A01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p01,svgWidth:24,svgHeight:24})),v01='',L01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v01,svgWidth:24,svgHeight:24})),w01='',x01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w01,svgWidth:24,svgHeight:24})),m01='',k01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m01,svgWidth:24,svgHeight:24})),M01='',E01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M01,svgWidth:24,svgHeight:24})),y01='',I01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y01,svgWidth:24,svgHeight:24})),B01='',S01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B01,svgWidth:24,svgHeight:24})),_01='',R01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_01,svgWidth:24,svgHeight:24})),b01='',Q01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b01,svgWidth:24,svgHeight:24})),T01='',D01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T01,svgWidth:24,svgHeight:24})),N01='',P01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N01,svgWidth:24,svgHeight:24})),H01='',j01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H01,svgWidth:24,svgHeight:24})),U01='',F01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U01,svgWidth:24,svgHeight:24})),W01='',G01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W01,svgWidth:24,svgHeight:24})),O01='',z01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O01,svgWidth:24,svgHeight:24})),V01='',$01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V01,svgWidth:24,svgHeight:24})),Y01='',X01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y01,svgWidth:24,svgHeight:24})),J01='',q01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J01,svgWidth:24,svgHeight:24})),K01='',Z01=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K01,svgWidth:24,svgHeight:24})),e21='',t21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e21,svgWidth:24,svgHeight:24})),n21='',C21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n21,svgWidth:24,svgHeight:24})),r21='',i21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r21,svgWidth:24,svgHeight:24})),o21='',s21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o21,svgWidth:24,svgHeight:24})),l21='',a21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l21,svgWidth:24,svgHeight:24})),c21='',u21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c21,svgWidth:24,svgHeight:24})),d21='',h21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d21,svgWidth:24,svgHeight:24})),f21='',g21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f21,svgWidth:24,svgHeight:24})),p21='',A21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p21,svgWidth:24,svgHeight:24})),v21='',L21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v21,svgWidth:24,svgHeight:24})),w21='',x21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w21,svgWidth:24,svgHeight:24})),m21='',k21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m21,svgWidth:24,svgHeight:24})),M21='',E21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M21,svgWidth:24,svgHeight:24})),y21='',I21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y21,svgWidth:24,svgHeight:24})),B21='',S21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B21,svgWidth:24,svgHeight:24})),_21='',R21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_21,svgWidth:24,svgHeight:24})),b21='',Q21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b21,svgWidth:24,svgHeight:24})),T21='',D21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T21,svgWidth:24,svgHeight:24})),N21='',P21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N21,svgWidth:24,svgHeight:24})),H21='',j21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H21,svgWidth:24,svgHeight:24})),U21='',F21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U21,svgWidth:24,svgHeight:24})),W21='',G21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W21,svgWidth:24,svgHeight:24})),O21='',z21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O21,svgWidth:24,svgHeight:24})),V21='',$21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V21,svgWidth:24,svgHeight:24})),Y21='',X21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y21,svgWidth:24,svgHeight:24})),J21='',q21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J21,svgWidth:24,svgHeight:24})),K21='',Z21=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K21,svgWidth:24,svgHeight:24})),e91='',t91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e91,svgWidth:24,svgHeight:24})),n91='',C91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n91,svgWidth:24,svgHeight:24})),r91='',i91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r91,svgWidth:24,svgHeight:24})),o91='',s91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o91,svgWidth:24,svgHeight:24})),l91='',a91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l91,svgWidth:24,svgHeight:24})),c91='',u91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c91,svgWidth:24,svgHeight:24})),d91='',h91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d91,svgWidth:24,svgHeight:24})),f91='',g91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f91,svgWidth:24,svgHeight:24})),p91='',A91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p91,svgWidth:24,svgHeight:24})),v91='',L91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v91,svgWidth:24,svgHeight:24})),w91='',x91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w91,svgWidth:24,svgHeight:24})),m91='',k91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m91,svgWidth:24,svgHeight:24})),M91='',E91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M91,svgWidth:24,svgHeight:24})),y91='',I91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y91,svgWidth:24,svgHeight:24})),B91='',S91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B91,svgWidth:24,svgHeight:24})),_91='',R91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_91,svgWidth:24,svgHeight:24})),b91='',Q91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b91,svgWidth:24,svgHeight:24})),T91='',D91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T91,svgWidth:24,svgHeight:24})),N91='',P91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N91,svgWidth:24,svgHeight:24})),H91='',j91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H91,svgWidth:24,svgHeight:24})),U91='',F91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U91,svgWidth:24,svgHeight:24})),W91='',G91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W91,svgWidth:24,svgHeight:24})),O91='',z91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O91,svgWidth:24,svgHeight:24})),V91='',$91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V91,svgWidth:24,svgHeight:24})),Y91='',X91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y91,svgWidth:24,svgHeight:24})),J91='',q91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J91,svgWidth:24,svgHeight:24})),K91='',Z91=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K91,svgWidth:24,svgHeight:24})),e81='',t81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e81,svgWidth:24,svgHeight:24})),n81='',C81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n81,svgWidth:24,svgHeight:24})),r81='',i81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r81,svgWidth:24,svgHeight:24})),o81='',s81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o81,svgWidth:24,svgHeight:24})),l81='',a81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l81,svgWidth:24,svgHeight:24})),c81='',u81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c81,svgWidth:24,svgHeight:24})),d81='',h81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d81,svgWidth:24,svgHeight:24})),f81='',g81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f81,svgWidth:24,svgHeight:24})),p81='',A81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p81,svgWidth:24,svgHeight:24})),v81='',L81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v81,svgWidth:24,svgHeight:24})),w81='',x81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w81,svgWidth:24,svgHeight:24})),m81='',k81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m81,svgWidth:24,svgHeight:24})),M81='',E81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M81,svgWidth:24,svgHeight:24})),y81='',I81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y81,svgWidth:24,svgHeight:24})),B81='',S81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B81,svgWidth:24,svgHeight:24})),_81='',R81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_81,svgWidth:24,svgHeight:24})),b81='',Q81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b81,svgWidth:24,svgHeight:24})),T81='',D81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T81,svgWidth:24,svgHeight:24})),N81='',P81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N81,svgWidth:24,svgHeight:24})),H81='',j81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H81,svgWidth:24,svgHeight:24})),U81='',F81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U81,svgWidth:24,svgHeight:24})),W81='',G81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W81,svgWidth:24,svgHeight:24})),O81='',z81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O81,svgWidth:24,svgHeight:24})),V81='',$81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V81,svgWidth:24,svgHeight:24})),Y81='',X81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y81,svgWidth:24,svgHeight:24})),J81='',q81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J81,svgWidth:24,svgHeight:24})),K81='',Z81=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K81,svgWidth:24,svgHeight:24})),e41='',t41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e41,svgWidth:24,svgHeight:24})),n41='',C41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n41,svgWidth:24,svgHeight:24})),r41='',i41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r41,svgWidth:24,svgHeight:24})),o41='',s41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o41,svgWidth:24,svgHeight:24})),l41='',a41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l41,svgWidth:24,svgHeight:24})),c41='',u41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c41,svgWidth:24,svgHeight:24})),d41='',h41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d41,svgWidth:24,svgHeight:24})),f41='',g41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f41,svgWidth:24,svgHeight:24})),p41='',A41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p41,svgWidth:24,svgHeight:24})),v41='',L41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v41,svgWidth:24,svgHeight:24})),w41='',x41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w41,svgWidth:24,svgHeight:24})),m41='',k41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m41,svgWidth:24,svgHeight:24})),M41='',E41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M41,svgWidth:24,svgHeight:24})),y41='',I41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y41,svgWidth:24,svgHeight:24})),B41='',S41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B41,svgWidth:24,svgHeight:24})),_41='',R41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_41,svgWidth:24,svgHeight:24})),b41='',Q41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b41,svgWidth:24,svgHeight:24})),T41='',D41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T41,svgWidth:24,svgHeight:24})),N41='',P41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N41,svgWidth:24,svgHeight:24})),H41='',j41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H41,svgWidth:24,svgHeight:24})),U41='',F41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U41,svgWidth:24,svgHeight:24})),W41='',G41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W41,svgWidth:24,svgHeight:24})),O41='',z41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O41,svgWidth:24,svgHeight:24})),V41='',$41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V41,svgWidth:24,svgHeight:24})),Y41='',X41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y41,svgWidth:24,svgHeight:24})),J41='',q41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J41,svgWidth:24,svgHeight:24})),K41='',Z41=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K41,svgWidth:24,svgHeight:24})),e61='',t61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e61,svgWidth:24,svgHeight:24})),n61='',C61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n61,svgWidth:24,svgHeight:24})),r61='',i61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r61,svgWidth:24,svgHeight:24})),o61='',s61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o61,svgWidth:24,svgHeight:24})),l61='',a61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l61,svgWidth:24,svgHeight:24})),c61='',u61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c61,svgWidth:24,svgHeight:24})),d61='',h61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d61,svgWidth:24,svgHeight:24})),f61='',g61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f61,svgWidth:24,svgHeight:24})),p61='',A61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p61,svgWidth:24,svgHeight:24})),v61='',L61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v61,svgWidth:24,svgHeight:24})),w61='',x61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w61,svgWidth:24,svgHeight:24})),m61='',k61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m61,svgWidth:24,svgHeight:24})),M61='',E61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M61,svgWidth:24,svgHeight:24})),y61='',I61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y61,svgWidth:24,svgHeight:24})),B61='',S61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B61,svgWidth:24,svgHeight:24})),_61='',R61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_61,svgWidth:24,svgHeight:24})),b61='',Q61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b61,svgWidth:24,svgHeight:24})),T61='',D61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T61,svgWidth:24,svgHeight:24})),N61='',P61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N61,svgWidth:24,svgHeight:24})),H61='',j61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H61,svgWidth:24,svgHeight:24})),U61='',F61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U61,svgWidth:24,svgHeight:24})),W61='',G61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W61,svgWidth:24,svgHeight:24})),O61='',z61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O61,svgWidth:24,svgHeight:24})),V61='',$61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V61,svgWidth:24,svgHeight:24})),Y61='',X61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y61,svgWidth:24,svgHeight:24})),J61='',q61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J61,svgWidth:24,svgHeight:24})),K61='',Z61=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K61,svgWidth:24,svgHeight:24})),e51='',t51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e51,svgWidth:24,svgHeight:24})),n51='',C51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n51,svgWidth:24,svgHeight:24})),r51='',i51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r51,svgWidth:24,svgHeight:24})),o51='',s51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o51,svgWidth:24,svgHeight:24})),l51='',a51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l51,svgWidth:24,svgHeight:24})),c51='',u51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c51,svgWidth:24,svgHeight:24})),d51='',h51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d51,svgWidth:24,svgHeight:24})),f51='',g51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f51,svgWidth:24,svgHeight:24})),p51='',A51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p51,svgWidth:24,svgHeight:24})),v51='',L51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v51,svgWidth:24,svgHeight:24})),w51='',x51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w51,svgWidth:24,svgHeight:24})),m51='',k51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m51,svgWidth:24,svgHeight:24})),M51='',E51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M51,svgWidth:24,svgHeight:24})),y51='',I51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y51,svgWidth:24,svgHeight:24})),B51='',S51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B51,svgWidth:24,svgHeight:24})),_51='',R51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_51,svgWidth:24,svgHeight:24})),b51='',Q51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b51,svgWidth:24,svgHeight:24})),T51='',D51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T51,svgWidth:24,svgHeight:24})),N51='',P51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N51,svgWidth:24,svgHeight:24})),H51='',j51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H51,svgWidth:24,svgHeight:24})),U51='',F51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U51,svgWidth:24,svgHeight:24})),W51='',G51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W51,svgWidth:24,svgHeight:24})),O51='',z51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O51,svgWidth:24,svgHeight:24})),V51='',$51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V51,svgWidth:24,svgHeight:24})),Y51='',X51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y51,svgWidth:24,svgHeight:24})),J51='',q51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J51,svgWidth:24,svgHeight:24})),K51='',Z51=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K51,svgWidth:24,svgHeight:24})),e31='',t31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e31,svgWidth:24,svgHeight:24})),n31='',C31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n31,svgWidth:24,svgHeight:24})),r31='',i31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r31,svgWidth:24,svgHeight:24})),o31='',s31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o31,svgWidth:24,svgHeight:24})),l31='',a31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l31,svgWidth:24,svgHeight:24})),c31='',u31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c31,svgWidth:24,svgHeight:24})),d31='',h31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d31,svgWidth:24,svgHeight:24})),f31='',g31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f31,svgWidth:24,svgHeight:24})),p31='',A31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p31,svgWidth:24,svgHeight:24})),v31='',L31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v31,svgWidth:24,svgHeight:24})),w31='',x31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w31,svgWidth:24,svgHeight:24})),m31='',k31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m31,svgWidth:24,svgHeight:24})),M31='',E31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M31,svgWidth:24,svgHeight:24})),y31='',I31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y31,svgWidth:24,svgHeight:24})),B31='',S31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B31,svgWidth:24,svgHeight:24})),_31='',R31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_31,svgWidth:24,svgHeight:24})),b31='',Q31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b31,svgWidth:24,svgHeight:24})),T31='',D31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T31,svgWidth:24,svgHeight:24})),N31='',P31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N31,svgWidth:24,svgHeight:24})),H31='',j31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H31,svgWidth:24,svgHeight:24})),U31='',F31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U31,svgWidth:24,svgHeight:24})),W31='',G31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W31,svgWidth:24,svgHeight:24})),O31='',z31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O31,svgWidth:24,svgHeight:24})),V31='',$31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V31,svgWidth:24,svgHeight:24})),Y31='',X31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y31,svgWidth:24,svgHeight:24})),J31='',q31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J31,svgWidth:24,svgHeight:24})),K31='',Z31=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K31,svgWidth:24,svgHeight:24})),e71='',t71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:e71,svgWidth:24,svgHeight:24})),n71='',C71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:n71,svgWidth:24,svgHeight:24})),r71='',i71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:r71,svgWidth:24,svgHeight:24})),o71='',s71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:o71,svgWidth:24,svgHeight:24})),l71='',a71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:l71,svgWidth:24,svgHeight:24})),c71='',u71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:c71,svgWidth:24,svgHeight:24})),d71='',h71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:d71,svgWidth:24,svgHeight:24})),f71='',g71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:f71,svgWidth:24,svgHeight:24})),p71='',A71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:p71,svgWidth:24,svgHeight:24})),v71='',L71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:v71,svgWidth:24,svgHeight:24})),w71='',x71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:w71,svgWidth:24,svgHeight:24})),m71='',k71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:m71,svgWidth:24,svgHeight:24})),M71='',E71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:M71,svgWidth:24,svgHeight:24})),y71='',I71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:y71,svgWidth:24,svgHeight:24})),B71='',S71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:B71,svgWidth:24,svgHeight:24})),_71='',R71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_71,svgWidth:24,svgHeight:24})),b71='',Q71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:b71,svgWidth:24,svgHeight:24})),T71='',D71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:T71,svgWidth:24,svgHeight:24})),N71='',P71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:N71,svgWidth:24,svgHeight:24})),H71='',j71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:H71,svgWidth:24,svgHeight:24})),U71='',F71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:U71,svgWidth:24,svgHeight:24})),W71='',G71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:W71,svgWidth:24,svgHeight:24})),O71='',z71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:O71,svgWidth:24,svgHeight:24})),V71='',$71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:V71,svgWidth:24,svgHeight:24})),Y71='',X71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Y71,svgWidth:24,svgHeight:24})),J71='',q71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:J71,svgWidth:24,svgHeight:24})),K71='',Z71=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:K71,svgWidth:24,svgHeight:24})),ee1='',te1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ee1,svgWidth:24,svgHeight:24})),ne1='',Ce1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ne1,svgWidth:24,svgHeight:24})),re1='',ie1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:re1,svgWidth:24,svgHeight:24})),oe1='',se1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oe1,svgWidth:24,svgHeight:24})),le1='',ae1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:le1,svgWidth:24,svgHeight:24})),ce1='',ue1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ce1,svgWidth:24,svgHeight:24})),de1='',he1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:de1,svgWidth:24,svgHeight:24})),fe1='',ge1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fe1,svgWidth:24,svgHeight:24})),pe1='',Ae1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pe1,svgWidth:24,svgHeight:24})),ve1='',Le1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ve1,svgWidth:24,svgHeight:24})),we1='',xe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:we1,svgWidth:24,svgHeight:24})),me1='',ke1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:me1,svgWidth:24,svgHeight:24})),Me1='',Ee1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Me1,svgWidth:24,svgHeight:24})),ye1='',Ie1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ye1,svgWidth:24,svgHeight:24})),Be1='',Se1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Be1,svgWidth:24,svgHeight:24})),_e1='',Re1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_e1,svgWidth:24,svgHeight:24})),be1='',Qe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:be1,svgWidth:24,svgHeight:24})),Te1='',De1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Te1,svgWidth:24,svgHeight:24})),Ne1='',Pe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ne1,svgWidth:24,svgHeight:24})),He1='',je1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:He1,svgWidth:24,svgHeight:24})),Ue1='',Fe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ue1,svgWidth:24,svgHeight:24})),We1='',Ge1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:We1,svgWidth:24,svgHeight:24})),Oe1='',ze1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Oe1,svgWidth:24,svgHeight:24})),Ve1='',$e1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ve1,svgWidth:24,svgHeight:24})),Ye1='',Xe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ye1,svgWidth:24,svgHeight:24})),Je1='',qe1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Je1,svgWidth:24,svgHeight:24})),Ke1='',Ze1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ke1,svgWidth:24,svgHeight:24})),et1='',tt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:et1,svgWidth:24,svgHeight:24})),nt1='',Ct1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nt1,svgWidth:24,svgHeight:24})),rt1='',it1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rt1,svgWidth:24,svgHeight:24})),ot1='',st1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ot1,svgWidth:24,svgHeight:24})),lt1='',at1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lt1,svgWidth:24,svgHeight:24})),ct1='',ut1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ct1,svgWidth:24,svgHeight:24})),dt1='',ht1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dt1,svgWidth:24,svgHeight:24})),ft1='',gt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ft1,svgWidth:24,svgHeight:24})),pt1='',At1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pt1,svgWidth:24,svgHeight:24})),vt1='',Lt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vt1,svgWidth:24,svgHeight:24})),wt1='',xt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wt1,svgWidth:24,svgHeight:24})),mt1='',kt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mt1,svgWidth:24,svgHeight:24})),Mt1='',Et1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mt1,svgWidth:24,svgHeight:24})),yt1='',It1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yt1,svgWidth:24,svgHeight:24})),Bt1='',St1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bt1,svgWidth:24,svgHeight:24})),_t1='',Rt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_t1,svgWidth:24,svgHeight:24})),bt1='',Qt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bt1,svgWidth:24,svgHeight:24})),Tt1='',Dt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tt1,svgWidth:24,svgHeight:24})),Nt1='',Pt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nt1,svgWidth:24,svgHeight:24})),Ht1='',jt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ht1,svgWidth:24,svgHeight:24})),Ut1='',Ft1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ut1,svgWidth:24,svgHeight:24})),Wt1='',Gt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wt1,svgWidth:24,svgHeight:24})),Ot1='',zt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ot1,svgWidth:24,svgHeight:24})),Vt1='',$t1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vt1,svgWidth:24,svgHeight:24})),Yt1='',Xt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yt1,svgWidth:24,svgHeight:24})),Jt1='',qt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jt1,svgWidth:24,svgHeight:24})),Kt1='',Zt1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kt1,svgWidth:24,svgHeight:24})),en1='',tn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:en1,svgWidth:24,svgHeight:24})),nn1='',Cn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nn1,svgWidth:24,svgHeight:24})),rn1='',in1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rn1,svgWidth:24,svgHeight:24})),on1='',sn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:on1,svgWidth:24,svgHeight:24})),ln1='',an1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ln1,svgWidth:24,svgHeight:24})),cn1='',un1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cn1,svgWidth:24,svgHeight:24})),dn1='',hn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dn1,svgWidth:24,svgHeight:24})),fn1='',gn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fn1,svgWidth:24,svgHeight:24})),pn1='',An1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pn1,svgWidth:24,svgHeight:24})),vn1='',Ln1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vn1,svgWidth:24,svgHeight:24})),wn1='',xn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wn1,svgWidth:24,svgHeight:24})),mn1='',kn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mn1,svgWidth:24,svgHeight:24})),Mn1='',En1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mn1,svgWidth:24,svgHeight:24})),yn1='',In1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yn1,svgWidth:24,svgHeight:24})),Bn1='',Sn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bn1,svgWidth:24,svgHeight:24})),_n1='',Rn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_n1,svgWidth:24,svgHeight:24})),bn1='',Qn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bn1,svgWidth:24,svgHeight:24})),Tn1='',Dn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tn1,svgWidth:24,svgHeight:24})),Nn1='',Pn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nn1,svgWidth:24,svgHeight:24})),Hn1='',jn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hn1,svgWidth:24,svgHeight:24})),Un1='',Fn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Un1,svgWidth:24,svgHeight:24})),Wn1='',Gn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wn1,svgWidth:24,svgHeight:24})),On1='',zn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:On1,svgWidth:24,svgHeight:24})),Vn1='',$n1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vn1,svgWidth:24,svgHeight:24})),Yn1='',Xn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yn1,svgWidth:24,svgHeight:24})),Jn1='',qn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jn1,svgWidth:24,svgHeight:24})),Kn1='',Zn1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kn1,svgWidth:24,svgHeight:24})),eC1='',tC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eC1,svgWidth:24,svgHeight:24})),nC1='',CC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nC1,svgWidth:24,svgHeight:24})),rC1='',iC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rC1,svgWidth:24,svgHeight:24})),oC1='',sC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oC1,svgWidth:24,svgHeight:24})),lC1='',aC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lC1,svgWidth:24,svgHeight:24})),cC1='',uC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cC1,svgWidth:24,svgHeight:24})),dC1='',hC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dC1,svgWidth:24,svgHeight:24})),fC1='',gC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fC1,svgWidth:24,svgHeight:24})),pC1='',AC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pC1,svgWidth:24,svgHeight:24})),vC1='',LC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vC1,svgWidth:24,svgHeight:24})),wC1='',xC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wC1,svgWidth:24,svgHeight:24})),mC1='',kC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mC1,svgWidth:24,svgHeight:24})),MC1='',EC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MC1,svgWidth:24,svgHeight:24})),yC1='',IC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yC1,svgWidth:24,svgHeight:24})),BC1='',SC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BC1,svgWidth:24,svgHeight:24})),_C1='',RC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_C1,svgWidth:24,svgHeight:24})),bC1='',QC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bC1,svgWidth:24,svgHeight:24})),TC1='',DC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TC1,svgWidth:24,svgHeight:24})),NC1='',PC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NC1,svgWidth:24,svgHeight:24})),HC1='',jC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HC1,svgWidth:24,svgHeight:24})),UC1='',FC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UC1,svgWidth:24,svgHeight:24})),WC1='',GC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WC1,svgWidth:24,svgHeight:24})),OC1='',zC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OC1,svgWidth:24,svgHeight:24})),VC1='',$C1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VC1,svgWidth:24,svgHeight:24})),YC1='',XC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YC1,svgWidth:24,svgHeight:24})),JC1='',qC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JC1,svgWidth:24,svgHeight:24})),KC1='',ZC1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KC1,svgWidth:24,svgHeight:24})),er1='',tr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:er1,svgWidth:24,svgHeight:24})),nr1='',Cr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nr1,svgWidth:24,svgHeight:24})),rr1='',ir1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rr1,svgWidth:24,svgHeight:24})),or1='',sr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:or1,svgWidth:24,svgHeight:24})),lr1='',ar1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lr1,svgWidth:24,svgHeight:24})),cr1='',ur1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cr1,svgWidth:24,svgHeight:24})),dr1='',hr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dr1,svgWidth:24,svgHeight:24})),fr1='',gr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fr1,svgWidth:24,svgHeight:24})),pr1='',Ar1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pr1,svgWidth:24,svgHeight:24})),vr1='',Lr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vr1,svgWidth:24,svgHeight:24})),wr1='',xr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wr1,svgWidth:24,svgHeight:24})),mr1='',kr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mr1,svgWidth:24,svgHeight:24})),Mr1='',Er1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mr1,svgWidth:24,svgHeight:24})),yr1='',Ir1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yr1,svgWidth:24,svgHeight:24})),Br1='',Sr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Br1,svgWidth:24,svgHeight:24})),_r1='',Rr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_r1,svgWidth:24,svgHeight:24})),br1='',Qr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:br1,svgWidth:24,svgHeight:24})),Tr1='',Dr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tr1,svgWidth:24,svgHeight:24})),Nr1='',Pr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nr1,svgWidth:24,svgHeight:24})),Hr1='',jr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hr1,svgWidth:24,svgHeight:24})),Ur1='',Fr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ur1,svgWidth:24,svgHeight:24})),Wr1='',Gr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wr1,svgWidth:24,svgHeight:24})),Or1='',zr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Or1,svgWidth:24,svgHeight:24})),Vr1='',$r1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vr1,svgWidth:24,svgHeight:24})),Yr1='',Xr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yr1,svgWidth:24,svgHeight:24})),Jr1='',qr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jr1,svgWidth:24,svgHeight:24})),Kr1='',Zr1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kr1,svgWidth:24,svgHeight:24})),ei1='',ti1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ei1,svgWidth:24,svgHeight:24})),ni1='',Ci1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ni1,svgWidth:24,svgHeight:24})),ri1='',ii1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ri1,svgWidth:24,svgHeight:24})),oi1='',si1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oi1,svgWidth:24,svgHeight:24})),li1='',ai1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:li1,svgWidth:24,svgHeight:24})),ci1='',ui1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ci1,svgWidth:24,svgHeight:24})),di1='',hi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:di1,svgWidth:24,svgHeight:24})),fi1='',gi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fi1,svgWidth:24,svgHeight:24})),pi1='',Ai1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pi1,svgWidth:24,svgHeight:24})),vi1='',Li1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vi1,svgWidth:24,svgHeight:24})),wi1='',xi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wi1,svgWidth:24,svgHeight:24})),mi1='',ki1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mi1,svgWidth:24,svgHeight:24})),Mi1='',Ei1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mi1,svgWidth:24,svgHeight:24})),yi1='',Ii1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yi1,svgWidth:24,svgHeight:24})),Bi1='',Si1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bi1,svgWidth:24,svgHeight:24})),_i1='',Ri1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_i1,svgWidth:24,svgHeight:24})),bi1='',Qi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bi1,svgWidth:24,svgHeight:24})),Ti1='',Di1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ti1,svgWidth:24,svgHeight:24})),Ni1='',Pi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ni1,svgWidth:24,svgHeight:24})),Hi1='',ji1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hi1,svgWidth:24,svgHeight:24})),Ui1='',Fi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ui1,svgWidth:24,svgHeight:24})),Wi1='',Gi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wi1,svgWidth:24,svgHeight:24})),Oi1='',zi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Oi1,svgWidth:24,svgHeight:24})),Vi1='',$i1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vi1,svgWidth:24,svgHeight:24})),Yi1='',Xi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yi1,svgWidth:24,svgHeight:24})),Ji1='',qi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ji1,svgWidth:24,svgHeight:24})),Ki1='',Zi1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ki1,svgWidth:24,svgHeight:24})),eo1='',to1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eo1,svgWidth:24,svgHeight:24})),no1='',Co1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:no1,svgWidth:24,svgHeight:24})),ro1='',io1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ro1,svgWidth:24,svgHeight:24})),oo1='',so1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oo1,svgWidth:24,svgHeight:24})),lo1='',ao1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lo1,svgWidth:24,svgHeight:24})),co1='',uo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:co1,svgWidth:24,svgHeight:24})),do1='',ho1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:do1,svgWidth:24,svgHeight:24})),fo1='',go1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fo1,svgWidth:24,svgHeight:24})),po1='',Ao1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:po1,svgWidth:24,svgHeight:24})),vo1='',Lo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vo1,svgWidth:24,svgHeight:24})),wo1='',xo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wo1,svgWidth:24,svgHeight:24})),mo1='',ko1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mo1,svgWidth:24,svgHeight:24})),Mo1='',Eo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mo1,svgWidth:24,svgHeight:24})),yo1='',Io1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yo1,svgWidth:24,svgHeight:24})),Bo1='',So1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bo1,svgWidth:24,svgHeight:24})),_o1='',Ro1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_o1,svgWidth:24,svgHeight:24})),bo1='',Qo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bo1,svgWidth:24,svgHeight:24})),To1='',Do1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:To1,svgWidth:24,svgHeight:24})),No1='',Po1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:No1,svgWidth:24,svgHeight:24})),Ho1='',jo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ho1,svgWidth:24,svgHeight:24})),Uo1='',Fo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uo1,svgWidth:24,svgHeight:24})),Wo1='',Go1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wo1,svgWidth:24,svgHeight:24})),Oo1='',zo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Oo1,svgWidth:24,svgHeight:24})),Vo1='',$o1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vo1,svgWidth:24,svgHeight:24})),Yo1='',Xo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yo1,svgWidth:24,svgHeight:24})),Jo1='',qo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jo1,svgWidth:24,svgHeight:24})),Ko1='',Zo1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ko1,svgWidth:24,svgHeight:24})),es1='',ts1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:es1,svgWidth:24,svgHeight:24})),ns1='',Cs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ns1,svgWidth:24,svgHeight:24})),rs1='',is1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rs1,svgWidth:24,svgHeight:24})),os1='',ss1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:os1,svgWidth:24,svgHeight:24})),ls1='',as1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ls1,svgWidth:24,svgHeight:24})),cs1='',us1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cs1,svgWidth:24,svgHeight:24})),ds1='',hs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ds1,svgWidth:24,svgHeight:24})),fs1='',gs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fs1,svgWidth:24,svgHeight:24})),ps1='',As1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ps1,svgWidth:24,svgHeight:24})),vs1='',Ls1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vs1,svgWidth:24,svgHeight:24})),ws1='',xs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ws1,svgWidth:24,svgHeight:24})),ms1='',ks1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ms1,svgWidth:24,svgHeight:24})),Ms1='',Es1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ms1,svgWidth:24,svgHeight:24})),ys1='',Is1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ys1,svgWidth:24,svgHeight:24})),Bs1='',Ss1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bs1,svgWidth:24,svgHeight:24})),_s1='',Rs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_s1,svgWidth:24,svgHeight:24})),bs1='',Qs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bs1,svgWidth:24,svgHeight:24})),Ts1='',Ds1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ts1,svgWidth:24,svgHeight:24})),Ns1='',Ps1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ns1,svgWidth:24,svgHeight:24})),Hs1='',js1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hs1,svgWidth:24,svgHeight:24})),Us1='',Fs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Us1,svgWidth:24,svgHeight:24})),Ws1='',Gs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ws1,svgWidth:24,svgHeight:24})),Os1='',zs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Os1,svgWidth:24,svgHeight:24})),Vs1='',$s1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vs1,svgWidth:24,svgHeight:24})),Ys1='',Xs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ys1,svgWidth:24,svgHeight:24})),Js1='',qs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Js1,svgWidth:24,svgHeight:24})),Ks1='',Zs1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ks1,svgWidth:24,svgHeight:24})),el1='',tl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:el1,svgWidth:24,svgHeight:24})),nl1='',Cl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nl1,svgWidth:24,svgHeight:24})),rl1='',il1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rl1,svgWidth:24,svgHeight:24})),ol1='',sl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ol1,svgWidth:24,svgHeight:24})),ll1='',al1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ll1,svgWidth:24,svgHeight:24})),cl1='',ul1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cl1,svgWidth:24,svgHeight:24})),dl1='',hl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dl1,svgWidth:24,svgHeight:24})),fl1='',gl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fl1,svgWidth:24,svgHeight:24})),pl1='',Al1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pl1,svgWidth:24,svgHeight:24})),vl1='',Ll1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vl1,svgWidth:24,svgHeight:24})),wl1='',xl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wl1,svgWidth:24,svgHeight:24})),ml1='',kl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ml1,svgWidth:24,svgHeight:24})),Ml1='',El1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ml1,svgWidth:24,svgHeight:24})),yl1='',Il1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yl1,svgWidth:24,svgHeight:24})),Bl1='',Sl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bl1,svgWidth:24,svgHeight:24})),_l1='',Rl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_l1,svgWidth:24,svgHeight:24})),bl1='',Ql1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bl1,svgWidth:24,svgHeight:24})),Tl1='',Dl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tl1,svgWidth:24,svgHeight:24})),Nl1='',Pl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nl1,svgWidth:24,svgHeight:24})),Hl1='',jl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hl1,svgWidth:24,svgHeight:24})),Ul1='',Fl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ul1,svgWidth:24,svgHeight:24})),Wl1='',Gl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wl1,svgWidth:24,svgHeight:24})),Ol1='',zl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ol1,svgWidth:24,svgHeight:24})),Vl1='',$l1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vl1,svgWidth:24,svgHeight:24})),Yl1='',Xl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yl1,svgWidth:24,svgHeight:24})),Jl1='',ql1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jl1,svgWidth:24,svgHeight:24})),Kl1='',Zl1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kl1,svgWidth:24,svgHeight:24})),ea1='',ta1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ea1,svgWidth:24,svgHeight:24})),na1='',Ca1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:na1,svgWidth:24,svgHeight:24})),ra1='',ia1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ra1,svgWidth:24,svgHeight:24})),oa1='',sa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oa1,svgWidth:24,svgHeight:24})),la1='',aa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:la1,svgWidth:24,svgHeight:24})),ca1='',ua1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ca1,svgWidth:24,svgHeight:24})),da1='',ha1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:da1,svgWidth:24,svgHeight:24})),fa1='',ga1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fa1,svgWidth:24,svgHeight:24})),pa1='',Aa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pa1,svgWidth:24,svgHeight:24})),va1='',La1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:va1,svgWidth:24,svgHeight:24})),wa1='',xa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wa1,svgWidth:24,svgHeight:24})),ma1='',ka1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ma1,svgWidth:24,svgHeight:24})),Ma1='',Ea1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ma1,svgWidth:24,svgHeight:24})),ya1='',Ia1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ya1,svgWidth:24,svgHeight:24})),Ba1='',Sa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ba1,svgWidth:24,svgHeight:24})),_a1='',Ra1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_a1,svgWidth:24,svgHeight:24})),ba1='',Qa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ba1,svgWidth:24,svgHeight:24})),Ta1='',Da1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ta1,svgWidth:24,svgHeight:24})),Na1='',Pa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Na1,svgWidth:24,svgHeight:24})),Ha1='',ja1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ha1,svgWidth:24,svgHeight:24})),Ua1='',Fa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ua1,svgWidth:24,svgHeight:24})),Wa1='',Ga1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wa1,svgWidth:24,svgHeight:24})),Oa1='',za1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Oa1,svgWidth:24,svgHeight:24})),Va1='',$a1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Va1,svgWidth:24,svgHeight:24})),Ya1='',Xa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ya1,svgWidth:24,svgHeight:24})),Ja1='',qa1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ja1,svgWidth:24,svgHeight:24})),Ka1='',Za1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ka1,svgWidth:24,svgHeight:24})),ec1='',tc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ec1,svgWidth:24,svgHeight:24})),nc1='',Cc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nc1,svgWidth:24,svgHeight:24})),rc1='',ic1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rc1,svgWidth:24,svgHeight:24})),oc1='',sc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oc1,svgWidth:24,svgHeight:24})),lc1='',ac1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lc1,svgWidth:24,svgHeight:24})),cc1='',uc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cc1,svgWidth:24,svgHeight:24})),dc1='',hc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dc1,svgWidth:24,svgHeight:24})),fc1='',gc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fc1,svgWidth:24,svgHeight:24})),pc1='',Ac1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pc1,svgWidth:24,svgHeight:24})),vc1='',Lc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vc1,svgWidth:24,svgHeight:24})),wc1='',xc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wc1,svgWidth:24,svgHeight:24})),mc1='',kc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mc1,svgWidth:24,svgHeight:24})),Mc1='',Ec1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mc1,svgWidth:24,svgHeight:24})),yc1='',Ic1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yc1,svgWidth:24,svgHeight:24})),Bc1='',Sc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bc1,svgWidth:24,svgHeight:24})),_c1='',Rc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_c1,svgWidth:24,svgHeight:24})),bc1='',Qc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bc1,svgWidth:24,svgHeight:24})),Tc1='',Dc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tc1,svgWidth:24,svgHeight:24})),Nc1='',Pc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nc1,svgWidth:24,svgHeight:24})),Hc1='',jc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hc1,svgWidth:24,svgHeight:24})),Uc1='',Fc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uc1,svgWidth:24,svgHeight:24})),Wc1='',Gc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wc1,svgWidth:24,svgHeight:24})),Oc1='',zc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Oc1,svgWidth:24,svgHeight:24})),Vc1='',$c1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vc1,svgWidth:24,svgHeight:24})),Yc1='',Xc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yc1,svgWidth:24,svgHeight:24})),Jc1='',qc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jc1,svgWidth:24,svgHeight:24})),Kc1='',Zc1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kc1,svgWidth:24,svgHeight:24})),eu1='',tu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eu1,svgWidth:24,svgHeight:24})),nu1='',Cu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nu1,svgWidth:24,svgHeight:24})),ru1='',iu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ru1,svgWidth:24,svgHeight:24})),ou1='',su1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ou1,svgWidth:24,svgHeight:24})),lu1='',au1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lu1,svgWidth:24,svgHeight:24})),cu1='',uu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cu1,svgWidth:24,svgHeight:24})),du1='',hu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:du1,svgWidth:24,svgHeight:24})),fu1='',gu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fu1,svgWidth:24,svgHeight:24})),pu1='',Au1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pu1,svgWidth:24,svgHeight:24})),vu1='',Lu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vu1,svgWidth:24,svgHeight:24})),wu1='',xu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wu1,svgWidth:24,svgHeight:24})),mu1='',ku1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mu1,svgWidth:24,svgHeight:24})),Mu1='',Eu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mu1,svgWidth:24,svgHeight:24})),yu1='',Iu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yu1,svgWidth:24,svgHeight:24})),Bu1='',Su1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bu1,svgWidth:24,svgHeight:24})),_u1='',Ru1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_u1,svgWidth:24,svgHeight:24})),bu1='',Qu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bu1,svgWidth:24,svgHeight:24})),Tu1='',Du1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tu1,svgWidth:24,svgHeight:24})),Nu1='',Pu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nu1,svgWidth:24,svgHeight:24})),Hu1='',ju1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hu1,svgWidth:24,svgHeight:24})),Uu1='',Fu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uu1,svgWidth:24,svgHeight:24})),Wu1='',Gu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wu1,svgWidth:24,svgHeight:24})),Ou1='',zu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ou1,svgWidth:24,svgHeight:24})),Vu1='',$u1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vu1,svgWidth:24,svgHeight:24})),Yu1='',Xu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yu1,svgWidth:24,svgHeight:24})),Ju1='',qu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ju1,svgWidth:24,svgHeight:24})),Ku1='',Zu1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ku1,svgWidth:24,svgHeight:24})),ed1='',td1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ed1,svgWidth:24,svgHeight:24})),nd1='',Cd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nd1,svgWidth:24,svgHeight:24})),rd1='',id1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rd1,svgWidth:24,svgHeight:24})),od1='',sd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:od1,svgWidth:24,svgHeight:24})),ld1='',ad1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ld1,svgWidth:24,svgHeight:24})),cd1='',ud1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cd1,svgWidth:24,svgHeight:24})),dd1='',hd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dd1,svgWidth:24,svgHeight:24})),fd1='',gd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fd1,svgWidth:24,svgHeight:24})),pd1='',Ad1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pd1,svgWidth:24,svgHeight:24})),vd1='',Ld1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vd1,svgWidth:24,svgHeight:24})),wd1='',xd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wd1,svgWidth:24,svgHeight:24})),md1='',kd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:md1,svgWidth:24,svgHeight:24})),Md1='',Ed1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Md1,svgWidth:24,svgHeight:24})),yd1='',Id1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yd1,svgWidth:24,svgHeight:24})),Bd1='',Sd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bd1,svgWidth:24,svgHeight:24})),_d1='',Rd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_d1,svgWidth:24,svgHeight:24})),bd1='',Qd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bd1,svgWidth:24,svgHeight:24})),Td1='',Dd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Td1,svgWidth:24,svgHeight:24})),Nd1='',Pd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nd1,svgWidth:24,svgHeight:24})),Hd1='',jd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hd1,svgWidth:24,svgHeight:24})),Ud1='',Fd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ud1,svgWidth:24,svgHeight:24})),Wd1='',Gd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wd1,svgWidth:24,svgHeight:24})),Od1='',zd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Od1,svgWidth:24,svgHeight:24})),Vd1='',$d1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vd1,svgWidth:24,svgHeight:24})),Yd1='',Xd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yd1,svgWidth:24,svgHeight:24})),Jd1='',qd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jd1,svgWidth:24,svgHeight:24})),Kd1='',Zd1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kd1,svgWidth:24,svgHeight:24})),eh1='',th1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eh1,svgWidth:24,svgHeight:24})),nh1='',Ch1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nh1,svgWidth:24,svgHeight:24})),rh1='',ih1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rh1,svgWidth:24,svgHeight:24})),oh1='',sh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oh1,svgWidth:24,svgHeight:24})),lh1='',ah1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lh1,svgWidth:24,svgHeight:24})),ch1='',uh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ch1,svgWidth:24,svgHeight:24})),dh1='',hh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dh1,svgWidth:24,svgHeight:24})),fh1='',gh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fh1,svgWidth:24,svgHeight:24})),ph1='',Ah1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ph1,svgWidth:24,svgHeight:24})),vh1='',Lh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vh1,svgWidth:24,svgHeight:24})),wh1='',xh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wh1,svgWidth:24,svgHeight:24})),mh1='',kh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mh1,svgWidth:24,svgHeight:24})),Mh1='',Eh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mh1,svgWidth:24,svgHeight:24})),yh1='',Ih1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yh1,svgWidth:24,svgHeight:24})),Bh1='',Sh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bh1,svgWidth:24,svgHeight:24})),_h1='',Rh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_h1,svgWidth:24,svgHeight:24})),bh1='',Qh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bh1,svgWidth:24,svgHeight:24})),Th1='',Dh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Th1,svgWidth:24,svgHeight:24})),Nh1='',Ph1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nh1,svgWidth:24,svgHeight:24})),Hh1='',jh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hh1,svgWidth:24,svgHeight:24})),Uh1='',Fh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uh1,svgWidth:24,svgHeight:24})),Wh1='',Gh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wh1,svgWidth:24,svgHeight:24})),Oh1='',zh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Oh1,svgWidth:24,svgHeight:24})),Vh1='',$h1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vh1,svgWidth:24,svgHeight:24})),Yh1='',Xh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yh1,svgWidth:24,svgHeight:24})),Jh1='',qh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jh1,svgWidth:24,svgHeight:24})),Kh1='',Zh1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kh1,svgWidth:24,svgHeight:24})),ef1='',tf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ef1,svgWidth:24,svgHeight:24})),nf1='',Cf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nf1,svgWidth:24,svgHeight:24})),rf1='',if1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rf1,svgWidth:24,svgHeight:24})),of1='',sf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:of1,svgWidth:24,svgHeight:24})),lf1='',af1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lf1,svgWidth:24,svgHeight:24})),cf1='',uf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cf1,svgWidth:24,svgHeight:24})),df1='',hf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:df1,svgWidth:24,svgHeight:24})),ff1='',gf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ff1,svgWidth:24,svgHeight:24})),pf1='',Af1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pf1,svgWidth:24,svgHeight:24})),vf1='',Lf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vf1,svgWidth:24,svgHeight:24})),wf1='',xf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wf1,svgWidth:24,svgHeight:24})),mf1='',kf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mf1,svgWidth:24,svgHeight:24})),Mf1='',Ef1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mf1,svgWidth:24,svgHeight:24})),yf1='',If1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yf1,svgWidth:24,svgHeight:24})),Bf1='',Sf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bf1,svgWidth:24,svgHeight:24})),_f1='',Rf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_f1,svgWidth:24,svgHeight:24})),bf1='',Qf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bf1,svgWidth:24,svgHeight:24})),Tf1='',Df1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tf1,svgWidth:24,svgHeight:24})),Nf1='',Pf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nf1,svgWidth:24,svgHeight:24})),Hf1='',jf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hf1,svgWidth:24,svgHeight:24})),Uf1='',Ff1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uf1,svgWidth:24,svgHeight:24})),Wf1='',Gf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wf1,svgWidth:24,svgHeight:24})),Of1='',zf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Of1,svgWidth:24,svgHeight:24})),Vf1='',$f1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vf1,svgWidth:24,svgHeight:24})),Yf1='',Xf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yf1,svgWidth:24,svgHeight:24})),Jf1='',qf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jf1,svgWidth:24,svgHeight:24})),Kf1='',Zf1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kf1,svgWidth:24,svgHeight:24})),eg1='',tg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eg1,svgWidth:24,svgHeight:24})),ng1='',Cg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ng1,svgWidth:24,svgHeight:24})),rg1='',ig1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rg1,svgWidth:24,svgHeight:24})),og1='',sg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:og1,svgWidth:24,svgHeight:24})),lg1='',ag1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lg1,svgWidth:24,svgHeight:24})),cg1='',ug1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cg1,svgWidth:24,svgHeight:24})),dg1='',hg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dg1,svgWidth:24,svgHeight:24})),fg1='',gg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fg1,svgWidth:24,svgHeight:24})),pg1='',Ag1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pg1,svgWidth:24,svgHeight:24})),vg1='',Lg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vg1,svgWidth:24,svgHeight:24})),wg1='',xg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wg1,svgWidth:24,svgHeight:24})),mg1='',kg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mg1,svgWidth:24,svgHeight:24})),Mg1='',Eg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mg1,svgWidth:24,svgHeight:24})),yg1='',Ig1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yg1,svgWidth:24,svgHeight:24})),Bg1='',Sg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bg1,svgWidth:24,svgHeight:24})),_g1='',Rg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_g1,svgWidth:24,svgHeight:24})),bg1='',Qg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bg1,svgWidth:24,svgHeight:24})),Tg1='',Dg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tg1,svgWidth:24,svgHeight:24})),Ng1='',Pg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ng1,svgWidth:24,svgHeight:24})),Hg1='',jg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hg1,svgWidth:24,svgHeight:24})),Ug1='',Fg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ug1,svgWidth:24,svgHeight:24})),Wg1='',Gg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wg1,svgWidth:24,svgHeight:24})),Og1='',zg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Og1,svgWidth:24,svgHeight:24})),Vg1='',$g1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vg1,svgWidth:24,svgHeight:24})),Yg1='',Xg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yg1,svgWidth:24,svgHeight:24})),Jg1='',qg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jg1,svgWidth:24,svgHeight:24})),Kg1='',Zg1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kg1,svgWidth:24,svgHeight:24})),ep1='',tp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ep1,svgWidth:24,svgHeight:24})),np1='',Cp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:np1,svgWidth:24,svgHeight:24})),rp1='',ip1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rp1,svgWidth:24,svgHeight:24})),op1='',sp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:op1,svgWidth:24,svgHeight:24})),lp1='',ap1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lp1,svgWidth:24,svgHeight:24})),cp1='',up1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cp1,svgWidth:24,svgHeight:24})),dp1='',hp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dp1,svgWidth:24,svgHeight:24})),fp1='',gp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fp1,svgWidth:24,svgHeight:24})),pp1='',Ap1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pp1,svgWidth:24,svgHeight:24})),vp1='',Lp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vp1,svgWidth:24,svgHeight:24})),wp1='',xp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wp1,svgWidth:24,svgHeight:24})),mp1='',kp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mp1,svgWidth:24,svgHeight:24})),Mp1='',Ep1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mp1,svgWidth:24,svgHeight:24})),yp1='',Ip1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yp1,svgWidth:24,svgHeight:24})),Bp1='',Sp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bp1,svgWidth:24,svgHeight:24})),_p1='',Rp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_p1,svgWidth:24,svgHeight:24})),bp1='',Qp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bp1,svgWidth:24,svgHeight:24})),Tp1='',Dp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tp1,svgWidth:24,svgHeight:24})),Np1='',Pp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Np1,svgWidth:24,svgHeight:24})),Hp1='',jp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hp1,svgWidth:24,svgHeight:24})),Up1='',Fp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Up1,svgWidth:24,svgHeight:24})),Wp1='',Gp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wp1,svgWidth:24,svgHeight:24})),Op1='',zp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Op1,svgWidth:24,svgHeight:24})),Vp1='',$p1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vp1,svgWidth:24,svgHeight:24})),Yp1='',Xp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yp1,svgWidth:24,svgHeight:24})),Jp1='',qp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jp1,svgWidth:24,svgHeight:24})),Kp1='',Zp1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kp1,svgWidth:24,svgHeight:24})),eA1='',tA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eA1,svgWidth:24,svgHeight:24})),nA1='',CA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nA1,svgWidth:24,svgHeight:24})),rA1='',iA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rA1,svgWidth:24,svgHeight:24})),oA1='',sA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oA1,svgWidth:24,svgHeight:24})),lA1='',aA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lA1,svgWidth:24,svgHeight:24})),cA1='',uA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cA1,svgWidth:24,svgHeight:24})),dA1='',hA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dA1,svgWidth:24,svgHeight:24})),fA1='',gA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fA1,svgWidth:24,svgHeight:24})),pA1='',AA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pA1,svgWidth:24,svgHeight:24})),vA1='',LA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vA1,svgWidth:24,svgHeight:24})),wA1='',xA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wA1,svgWidth:24,svgHeight:24})),mA1='',kA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mA1,svgWidth:24,svgHeight:24})),MA1='',EA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MA1,svgWidth:24,svgHeight:24})),yA1='',IA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yA1,svgWidth:24,svgHeight:24})),BA1='',SA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BA1,svgWidth:24,svgHeight:24})),_A1='',RA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_A1,svgWidth:24,svgHeight:24})),bA1='',QA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bA1,svgWidth:24,svgHeight:24})),TA1='',DA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TA1,svgWidth:24,svgHeight:24})),NA1='',PA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NA1,svgWidth:24,svgHeight:24})),HA1='',jA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HA1,svgWidth:24,svgHeight:24})),UA1='',FA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UA1,svgWidth:24,svgHeight:24})),WA1='',GA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WA1,svgWidth:24,svgHeight:24})),OA1='',zA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OA1,svgWidth:24,svgHeight:24})),VA1='',$A1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VA1,svgWidth:24,svgHeight:24})),YA1='',XA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YA1,svgWidth:24,svgHeight:24})),JA1='',qA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JA1,svgWidth:24,svgHeight:24})),KA1='',ZA1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KA1,svgWidth:24,svgHeight:24})),ev1='',tv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ev1,svgWidth:24,svgHeight:24})),nv1='',Cv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nv1,svgWidth:24,svgHeight:24})),rv1='',iv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rv1,svgWidth:24,svgHeight:24})),ov1='',sv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ov1,svgWidth:24,svgHeight:24})),lv1='',av1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lv1,svgWidth:24,svgHeight:24})),cv1='',uv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cv1,svgWidth:24,svgHeight:24})),dv1='',hv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dv1,svgWidth:24,svgHeight:24})),fv1='',gv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fv1,svgWidth:24,svgHeight:24})),pv1='',Av1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pv1,svgWidth:24,svgHeight:24})),vv1='',Lv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vv1,svgWidth:24,svgHeight:24})),wv1='',xv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wv1,svgWidth:24,svgHeight:24})),mv1='',kv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mv1,svgWidth:24,svgHeight:24})),Mv1='',Ev1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mv1,svgWidth:24,svgHeight:24})),yv1='',Iv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yv1,svgWidth:24,svgHeight:24})),Bv1='',Sv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bv1,svgWidth:24,svgHeight:24})),_v1='',Rv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_v1,svgWidth:24,svgHeight:24})),bv1='',Qv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bv1,svgWidth:24,svgHeight:24})),Tv1='',Dv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tv1,svgWidth:24,svgHeight:24})),Nv1='',Pv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nv1,svgWidth:24,svgHeight:24})),Hv1='',jv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hv1,svgWidth:24,svgHeight:24})),Uv1='',Fv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uv1,svgWidth:24,svgHeight:24})),Wv1='',Gv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wv1,svgWidth:24,svgHeight:24})),Ov1='',zv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ov1,svgWidth:24,svgHeight:24})),Vv1='',$v1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vv1,svgWidth:24,svgHeight:24})),Yv1='',Xv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yv1,svgWidth:24,svgHeight:24})),Jv1='',qv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jv1,svgWidth:24,svgHeight:24})),Kv1='',Zv1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kv1,svgWidth:24,svgHeight:24})),eL1='',tL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eL1,svgWidth:24,svgHeight:24})),nL1='',CL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nL1,svgWidth:24,svgHeight:24})),rL1='',iL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rL1,svgWidth:24,svgHeight:24})),oL1='',sL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oL1,svgWidth:24,svgHeight:24})),lL1='',aL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lL1,svgWidth:24,svgHeight:24})),cL1='',uL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cL1,svgWidth:24,svgHeight:24})),dL1='',hL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dL1,svgWidth:24,svgHeight:24})),fL1='',gL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fL1,svgWidth:24,svgHeight:24})),pL1='',AL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pL1,svgWidth:24,svgHeight:24})),vL1='',LL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vL1,svgWidth:24,svgHeight:24})),wL1='',xL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wL1,svgWidth:24,svgHeight:24})),mL1='',kL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mL1,svgWidth:24,svgHeight:24})),ML1='',EL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ML1,svgWidth:24,svgHeight:24})),yL1='',IL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yL1,svgWidth:24,svgHeight:24})),BL1='',SL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BL1,svgWidth:24,svgHeight:24})),_L1='',RL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_L1,svgWidth:24,svgHeight:24})),bL1='',QL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bL1,svgWidth:24,svgHeight:24})),TL1='',DL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TL1,svgWidth:24,svgHeight:24})),NL1='',PL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NL1,svgWidth:24,svgHeight:24})),HL1='',jL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HL1,svgWidth:24,svgHeight:24})),UL1='',FL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UL1,svgWidth:24,svgHeight:24})),WL1='',GL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WL1,svgWidth:24,svgHeight:24})),OL1='',zL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OL1,svgWidth:24,svgHeight:24})),VL1='',$L1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VL1,svgWidth:24,svgHeight:24})),YL1='',XL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YL1,svgWidth:24,svgHeight:24})),JL1='',qL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JL1,svgWidth:24,svgHeight:24})),KL1='',ZL1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KL1,svgWidth:24,svgHeight:24})),ew1='',tw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ew1,svgWidth:24,svgHeight:24})),nw1='',Cw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nw1,svgWidth:24,svgHeight:24})),rw1='',iw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rw1,svgWidth:24,svgHeight:24})),ow1='',sw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ow1,svgWidth:24,svgHeight:24})),lw1='',aw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lw1,svgWidth:24,svgHeight:24})),cw1='',uw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cw1,svgWidth:24,svgHeight:24})),dw1='',hw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dw1,svgWidth:24,svgHeight:24})),fw1='',gw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fw1,svgWidth:24,svgHeight:24})),pw1='',Aw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pw1,svgWidth:24,svgHeight:24})),vw1='',Lw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vw1,svgWidth:24,svgHeight:24})),ww1='',xw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ww1,svgWidth:24,svgHeight:24})),mw1='',kw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mw1,svgWidth:24,svgHeight:24})),Mw1='',Ew1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mw1,svgWidth:24,svgHeight:24})),yw1='',Iw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yw1,svgWidth:24,svgHeight:24})),Bw1='',Sw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bw1,svgWidth:24,svgHeight:24})),_w1='',Rw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_w1,svgWidth:24,svgHeight:24})),bw1='',Qw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bw1,svgWidth:24,svgHeight:24})),Tw1='',Dw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tw1,svgWidth:24,svgHeight:24})),Nw1='',Pw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nw1,svgWidth:24,svgHeight:24})),Hw1='',jw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hw1,svgWidth:24,svgHeight:24})),Uw1='',Fw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uw1,svgWidth:24,svgHeight:24})),Ww1='',Gw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ww1,svgWidth:24,svgHeight:24})),Ow1='',zw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ow1,svgWidth:24,svgHeight:24})),Vw1='',$w1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vw1,svgWidth:24,svgHeight:24})),Yw1='',Xw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yw1,svgWidth:24,svgHeight:24})),Jw1='',qw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jw1,svgWidth:24,svgHeight:24})),Kw1='',Zw1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kw1,svgWidth:24,svgHeight:24})),ex1='',tx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ex1,svgWidth:24,svgHeight:24})),nx1='',Cx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nx1,svgWidth:24,svgHeight:24})),rx1='',ix1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rx1,svgWidth:24,svgHeight:24})),ox1='',sx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ox1,svgWidth:24,svgHeight:24})),lx1='',ax1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lx1,svgWidth:24,svgHeight:24})),cx1='',ux1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cx1,svgWidth:24,svgHeight:24})),dx1='',hx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dx1,svgWidth:24,svgHeight:24})),fx1='',gx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fx1,svgWidth:24,svgHeight:24})),px1='',Ax1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:px1,svgWidth:24,svgHeight:24})),vx1='',Lx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vx1,svgWidth:24,svgHeight:24})),wx1='',xx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wx1,svgWidth:24,svgHeight:24})),mx1='',kx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mx1,svgWidth:24,svgHeight:24})),Mx1='',Ex1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mx1,svgWidth:24,svgHeight:24})),yx1='',Ix1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yx1,svgWidth:24,svgHeight:24})),Bx1='',Sx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bx1,svgWidth:24,svgHeight:24})),_x1='',Rx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_x1,svgWidth:24,svgHeight:24})),bx1='',Qx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bx1,svgWidth:24,svgHeight:24})),Tx1='',Dx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tx1,svgWidth:24,svgHeight:24})),Nx1='',Px1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nx1,svgWidth:24,svgHeight:24})),Hx1='',jx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hx1,svgWidth:24,svgHeight:24})),Ux1='',Fx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ux1,svgWidth:24,svgHeight:24})),Wx1='',Gx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wx1,svgWidth:24,svgHeight:24})),Ox1='',zx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ox1,svgWidth:24,svgHeight:24})),Vx1='',$x1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vx1,svgWidth:24,svgHeight:24})),Yx1='',Xx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yx1,svgWidth:24,svgHeight:24})),Jx1='',qx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jx1,svgWidth:24,svgHeight:24})),Kx1='',Zx1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kx1,svgWidth:24,svgHeight:24})),em1='',tm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:em1,svgWidth:24,svgHeight:24})),nm1='',Cm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nm1,svgWidth:24,svgHeight:24})),rm1='',im1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rm1,svgWidth:24,svgHeight:24})),om1='',sm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:om1,svgWidth:24,svgHeight:24})),lm1='',am1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lm1,svgWidth:24,svgHeight:24})),cm1='',um1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cm1,svgWidth:24,svgHeight:24})),dm1='',hm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dm1,svgWidth:24,svgHeight:24})),fm1='',gm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fm1,svgWidth:24,svgHeight:24})),pm1='',Am1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pm1,svgWidth:24,svgHeight:24})),vm1='',Lm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vm1,svgWidth:24,svgHeight:24})),wm1='',xm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wm1,svgWidth:24,svgHeight:24})),mm1='',km1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mm1,svgWidth:24,svgHeight:24})),Mm1='',Em1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mm1,svgWidth:24,svgHeight:24})),ym1='',Im1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ym1,svgWidth:24,svgHeight:24})),Bm1='',Sm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bm1,svgWidth:24,svgHeight:24})),_m1='',Rm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_m1,svgWidth:24,svgHeight:24})),bm1='',Qm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bm1,svgWidth:24,svgHeight:24})),Tm1='',Dm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tm1,svgWidth:24,svgHeight:24})),Nm1='',Pm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nm1,svgWidth:24,svgHeight:24})),Hm1='',jm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hm1,svgWidth:24,svgHeight:24})),Um1='',Fm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Um1,svgWidth:24,svgHeight:24})),Wm1='',Gm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wm1,svgWidth:24,svgHeight:24})),Om1='',zm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Om1,svgWidth:24,svgHeight:24})),Vm1='',$m1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vm1,svgWidth:24,svgHeight:24})),Ym1='',Xm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ym1,svgWidth:24,svgHeight:24})),Jm1='',qm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jm1,svgWidth:24,svgHeight:24})),Km1='',Zm1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Km1,svgWidth:24,svgHeight:24})),ek1='',tk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ek1,svgWidth:24,svgHeight:24})),nk1='',Ck1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nk1,svgWidth:24,svgHeight:24})),rk1='',ik1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rk1,svgWidth:24,svgHeight:24})),ok1='',sk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ok1,svgWidth:24,svgHeight:24})),lk1='',ak1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lk1,svgWidth:24,svgHeight:24})),ck1='',uk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ck1,svgWidth:24,svgHeight:24})),dk1='',hk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dk1,svgWidth:24,svgHeight:24})),fk1='',gk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fk1,svgWidth:24,svgHeight:24})),pk1='',Ak1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pk1,svgWidth:24,svgHeight:24})),vk1='',Lk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vk1,svgWidth:24,svgHeight:24})),wk1='',xk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wk1,svgWidth:24,svgHeight:24})),mk1='',kk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mk1,svgWidth:24,svgHeight:24})),Mk1='',Ek1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Mk1,svgWidth:24,svgHeight:24})),yk1='',Ik1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yk1,svgWidth:24,svgHeight:24})),Bk1='',Sk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Bk1,svgWidth:24,svgHeight:24})),_k1='',Rk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_k1,svgWidth:24,svgHeight:24})),bk1='',Qk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bk1,svgWidth:24,svgHeight:24})),Tk1='',Dk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Tk1,svgWidth:24,svgHeight:24})),Nk1='',Pk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Nk1,svgWidth:24,svgHeight:24})),Hk1='',jk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hk1,svgWidth:24,svgHeight:24})),Uk1='',Fk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uk1,svgWidth:24,svgHeight:24})),Wk1='',Gk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wk1,svgWidth:24,svgHeight:24})),Ok1='',zk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ok1,svgWidth:24,svgHeight:24})),Vk1='',$k1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vk1,svgWidth:24,svgHeight:24})),Yk1='',Xk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yk1,svgWidth:24,svgHeight:24})),Jk1='',qk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jk1,svgWidth:24,svgHeight:24})),Kk1='',Zk1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Kk1,svgWidth:24,svgHeight:24})),eM1='',tM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eM1,svgWidth:24,svgHeight:24})),nM1='',CM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nM1,svgWidth:24,svgHeight:24})),rM1='',iM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rM1,svgWidth:24,svgHeight:24})),oM1='',sM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oM1,svgWidth:24,svgHeight:24})),lM1='',aM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lM1,svgWidth:24,svgHeight:24})),cM1='',uM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cM1,svgWidth:24,svgHeight:24})),dM1='',hM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dM1,svgWidth:24,svgHeight:24})),fM1='',gM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fM1,svgWidth:24,svgHeight:24})),pM1='',AM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pM1,svgWidth:24,svgHeight:24})),vM1='',LM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vM1,svgWidth:24,svgHeight:24})),wM1='',xM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wM1,svgWidth:24,svgHeight:24})),mM1='',kM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mM1,svgWidth:24,svgHeight:24})),MM1='',EM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MM1,svgWidth:24,svgHeight:24})),yM1='',IM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yM1,svgWidth:24,svgHeight:24})),BM1='',SM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BM1,svgWidth:24,svgHeight:24})),_M1='',RM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_M1,svgWidth:24,svgHeight:24})),bM1='',QM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bM1,svgWidth:24,svgHeight:24})),TM1='',DM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TM1,svgWidth:24,svgHeight:24})),NM1='',PM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NM1,svgWidth:24,svgHeight:24})),HM1='',jM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HM1,svgWidth:24,svgHeight:24})),UM1='',FM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UM1,svgWidth:24,svgHeight:24})),WM1='',GM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WM1,svgWidth:24,svgHeight:24})),OM1='',zM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OM1,svgWidth:24,svgHeight:24})),VM1='',$M1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VM1,svgWidth:24,svgHeight:24})),YM1='',XM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YM1,svgWidth:24,svgHeight:24})),JM1='',qM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JM1,svgWidth:24,svgHeight:24})),KM1='',ZM1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KM1,svgWidth:24,svgHeight:24})),eE1='',tE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eE1,svgWidth:24,svgHeight:24})),nE1='',CE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nE1,svgWidth:24,svgHeight:24})),rE1='',iE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rE1,svgWidth:24,svgHeight:24})),oE1='',sE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oE1,svgWidth:24,svgHeight:24})),lE1='',aE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lE1,svgWidth:24,svgHeight:24})),cE1='',uE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cE1,svgWidth:24,svgHeight:24})),dE1='',hE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dE1,svgWidth:24,svgHeight:24})),fE1='',gE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fE1,svgWidth:24,svgHeight:24})),pE1='',AE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pE1,svgWidth:24,svgHeight:24})),vE1='',LE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vE1,svgWidth:24,svgHeight:24})),wE1='',xE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wE1,svgWidth:24,svgHeight:24})),mE1='',kE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mE1,svgWidth:24,svgHeight:24})),ME1='',EE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ME1,svgWidth:24,svgHeight:24})),yE1='',IE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yE1,svgWidth:24,svgHeight:24})),BE1='',SE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:BE1,svgWidth:24,svgHeight:24})),_E1='',RE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_E1,svgWidth:24,svgHeight:24})),bE1='',QE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:bE1,svgWidth:24,svgHeight:24})),TE1='',DE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:TE1,svgWidth:24,svgHeight:24})),NE1='',PE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:NE1,svgWidth:24,svgHeight:24})),HE1='',jE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:HE1,svgWidth:24,svgHeight:24})),UE1='',FE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:UE1,svgWidth:24,svgHeight:24})),WE1='',GE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:WE1,svgWidth:24,svgHeight:24})),OE1='',zE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:OE1,svgWidth:24,svgHeight:24})),VE1='',$E1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:VE1,svgWidth:24,svgHeight:24})),YE1='',XE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:YE1,svgWidth:24,svgHeight:24})),JE1='',qE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:JE1,svgWidth:24,svgHeight:24})),KE1='',ZE1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:KE1,svgWidth:24,svgHeight:24})),ey1='',ty1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ey1,svgWidth:24,svgHeight:24})),ny1='',Cy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ny1,svgWidth:24,svgHeight:24})),ry1='',iy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ry1,svgWidth:24,svgHeight:24})),oy1='',sy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oy1,svgWidth:24,svgHeight:24})),ly1='',ay1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:ly1,svgWidth:24,svgHeight:24})),cy1='',uy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cy1,svgWidth:24,svgHeight:24})),dy1='',hy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dy1,svgWidth:24,svgHeight:24})),fy1='',gy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fy1,svgWidth:24,svgHeight:24})),py1='',Ay1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:py1,svgWidth:24,svgHeight:24})),vy1='',Ly1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vy1,svgWidth:24,svgHeight:24})),wy1='',xy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wy1,svgWidth:24,svgHeight:24})),my1='',ky1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:my1,svgWidth:24,svgHeight:24})),My1='',Ey1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:My1,svgWidth:24,svgHeight:24})),yy1='',Iy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yy1,svgWidth:24,svgHeight:24})),By1='',Sy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:By1,svgWidth:24,svgHeight:24})),_y1='',Ry1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:_y1,svgWidth:24,svgHeight:24})),by1='',Qy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:by1,svgWidth:24,svgHeight:24})),Ty1='',Dy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ty1,svgWidth:24,svgHeight:24})),Ny1='',Py1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ny1,svgWidth:24,svgHeight:24})),Hy1='',jy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Hy1,svgWidth:24,svgHeight:24})),Uy1='',Fy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Uy1,svgWidth:24,svgHeight:24})),Wy1='',Gy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Wy1,svgWidth:24,svgHeight:24})),Oy1='',zy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Oy1,svgWidth:24,svgHeight:24})),Vy1='',$y1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Vy1,svgWidth:24,svgHeight:24})),Yy1='',Xy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Yy1,svgWidth:24,svgHeight:24})),Jy1='',qy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Jy1,svgWidth:24,svgHeight:24})),Ky1='',Zy1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:Ky1,svgWidth:24,svgHeight:24})),eI1='',tI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:eI1,svgWidth:24,svgHeight:24})),nI1='',CI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:nI1,svgWidth:24,svgHeight:24})),rI1='',iI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:rI1,svgWidth:24,svgHeight:24})),oI1='',sI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:oI1,svgWidth:24,svgHeight:24})),lI1='',aI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:lI1,svgWidth:24,svgHeight:24})),cI1='',uI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:cI1,svgWidth:24,svgHeight:24})),dI1='',hI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:dI1,svgWidth:24,svgHeight:24})),fI1='',gI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:fI1,svgWidth:24,svgHeight:24})),pI1='',AI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:pI1,svgWidth:24,svgHeight:24})),vI1='',LI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:vI1,svgWidth:24,svgHeight:24})),wI1='',xI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:wI1,svgWidth:24,svgHeight:24})),mI1='',kI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:mI1,svgWidth:24,svgHeight:24})),MI1='',EI1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:MI1,svgWidth:24,svgHeight:24})),yI1='',II1=u.forwardRef((t,e)=>h.jsx(f,{...t,ref:e,text:yI1,svgWidth:24,svgHeight:24})),BI1=Object.freeze(Object.defineProperty({__proto__:null,AArrowDown:jH,AArrowUp:FH,ALargeSmall:GH,Accessibility:zH,Activity:XH,ActivitySquare:$H,AirVent:qH,Airplay:ZH,AlarmClock:aj,AlarmClockCheck:tj,AlarmClockMinus:Cj,AlarmClockOff:ij,AlarmClockPlus:sj,AlarmSmoke:uj,Album:hj,AlertCircle:gj,AlertOctagon:Aj,AlertTriangle:Lj,AlignCenter:Ej,AlignCenterHorizontal:xj,AlignCenterVertical:kj,AlignEndHorizontal:Ij,AlignEndVertical:Sj,AlignHorizontalDistributeCenter:Rj,AlignHorizontalDistributeEnd:Qj,AlignHorizontalDistributeStart:Dj,AlignHorizontalJustifyCenter:Pj,AlignHorizontalJustifyEnd:jj,AlignHorizontalJustifyStart:Fj,AlignHorizontalSpaceAround:Gj,AlignHorizontalSpaceBetween:zj,AlignJustify:$j,AlignLeft:Xj,AlignRight:qj,AlignStartHorizontal:Zj,AlignStartVertical:tU,AlignVerticalDistributeCenter:CU,AlignVerticalDistributeEnd:iU,AlignVerticalDistributeStart:sU,AlignVerticalJustifyCenter:aU,AlignVerticalJustifyEnd:uU,AlignVerticalJustifyStart:hU,AlignVerticalSpaceAround:gU,AlignVerticalSpaceBetween:AU,Ambulance:LU,Ampersand:xU,Ampersands:kU,Anchor:EU,Angry:IU,Annoyed:SU,Antenna:RU,Anvil:QU,Aperture:DU,AppWindow:PU,Apple:jU,Archive:zU,ArchiveRestore:FU,ArchiveX:GU,AreaChart:$U,Armchair:XU,ArrowBigDown:ZU,ArrowBigDownDash:qU,ArrowBigLeft:CF,ArrowBigLeftDash:tF,ArrowBigRight:sF,ArrowBigRightDash:iF,ArrowBigUp:uF,ArrowBigUpDash:aF,ArrowDown:ZF,ArrowDown01:hF,ArrowDown10:gF,ArrowDownAZ:AF,ArrowDownCircle:LF,ArrowDownFromLine:xF,ArrowDownLeft:SF,ArrowDownLeftFromCircle:kF,ArrowDownLeftFromSquare:EF,ArrowDownLeftSquare:IF,ArrowDownNarrowWide:RF,ArrowDownRight:jF,ArrowDownRightFromCircle:QF,ArrowDownRightFromSquare:DF,ArrowDownRightSquare:PF,ArrowDownSquare:FF,ArrowDownToDot:GF,ArrowDownToLine:zF,ArrowDownUp:$F,ArrowDownWideNarrow:XF,ArrowDownZA:qF,ArrowLeft:uW,ArrowLeftCircle:tW,ArrowLeftFromLine:CW,ArrowLeftRight:iW,ArrowLeftSquare:sW,ArrowLeftToLine:aW,ArrowRight:kW,ArrowRightCircle:hW,ArrowRightFromLine:gW,ArrowRightLeft:AW,ArrowRightSquare:LW,ArrowRightToLine:xW,ArrowUp:uG,ArrowUp01:EW,ArrowUp10:IW,ArrowUpAZ:SW,ArrowUpCircle:RW,ArrowUpDown:QW,ArrowUpFromDot:DW,ArrowUpFromLine:PW,ArrowUpLeft:zW,ArrowUpLeftFromCircle:jW,ArrowUpLeftFromSquare:FW,ArrowUpLeftSquare:GW,ArrowUpNarrowWide:$W,ArrowUpRight:tG,ArrowUpRightFromCircle:XW,ArrowUpRightFromSquare:qW,ArrowUpRightSquare:ZW,ArrowUpSquare:CG,ArrowUpToLine:iG,ArrowUpWideNarrow:sG,ArrowUpZA:aG,ArrowsUpFromLine:hG,Asterisk:AG,AsteriskSquare:gG,AtSign:LG,Atom:xG,AudioLines:kG,AudioWaveform:EG,Award:IG,Axe:SG,Axis3d:RG,Baby:QG,Backpack:DG,Badge:gO,BadgeAlert:PG,BadgeCent:jG,BadgeCheck:FG,BadgeDollarSign:GG,BadgeEuro:zG,BadgeHelp:$G,BadgeIndianRupee:XG,BadgeInfo:qG,BadgeJapaneseYen:ZG,BadgeMinus:tO,BadgePercent:CO,BadgePlus:iO,BadgePoundSterling:sO,BadgeRussianRuble:aO,BadgeSwissFranc:uO,BadgeX:hO,BaggageClaim:AO,Ban:LO,Banana:xO,Banknote:kO,BarChart:PO,BarChart2:EO,BarChart3:IO,BarChart4:SO,BarChartBig:RO,BarChartHorizontal:DO,BarChartHorizontalBig:QO,Barcode:jO,Baseline:FO,Bath:GO,Battery:tz,BatteryCharging:zO,BatteryFull:$O,BatteryLow:XO,BatteryMedium:qO,BatteryWarning:ZO,Beaker:Cz,Bean:sz,BeanOff:iz,Bed:hz,BedDouble:az,BedSingle:uz,Beef:gz,Beer:Az,Bell:Rz,BellDot:Lz,BellElectric:xz,BellMinus:kz,BellOff:Ez,BellPlus:Iz,BellRing:Sz,BetweenHorizontalEnd:Qz,BetweenHorizontalStart:Dz,BetweenVerticalEnd:Pz,BetweenVerticalStart:jz,Bike:Fz,Binary:Gz,Biohazard:zz,Bird:$z,Bitcoin:Xz,Blend:qz,Blinds:Zz,Blocks:tV,Bluetooth:aV,BluetoothConnected:CV,BluetoothOff:iV,BluetoothSearching:sV,Bold:uV,Bolt:hV,Bomb:gV,Bone:AV,Book:u$,BookA:LV,BookAudio:xV,BookCheck:kV,BookCopy:EV,BookDashed:IV,BookDown:SV,BookHeadphones:RV,BookHeart:QV,BookImage:DV,BookKey:PV,BookLock:jV,BookMarked:FV,BookMinus:GV,BookOpen:XV,BookOpenCheck:zV,BookOpenText:$V,BookPlus:qV,BookText:ZV,BookType:t$,BookUp:i$,BookUp2:C$,BookUser:s$,BookX:a$,Bookmark:x$,BookmarkCheck:h$,BookmarkMinus:g$,BookmarkPlus:A$,BookmarkX:L$,BoomBox:k$,Bot:E$,Box:S$,BoxSelect:I$,Boxes:R$,Braces:Q$,Brackets:D$,Brain:F$,BrainCircuit:P$,BrainCog:j$,BrickWall:G$,Briefcase:z$,BringToFront:$$,Brush:X$,Bug:tY,BugOff:q$,BugPlay:Z$,Building:iY,Building2:CY,Bus:aY,BusFront:sY,Cable:hY,CableCar:uY,Cake:AY,CakeSlice:gY,Calculator:LY,Calendar:qY,CalendarCheck:kY,CalendarCheck2:xY,CalendarClock:EY,CalendarDays:IY,CalendarFold:SY,CalendarHeart:RY,CalendarMinus:DY,CalendarMinus2:QY,CalendarOff:PY,CalendarPlus:FY,CalendarPlus2:jY,CalendarRange:GY,CalendarSearch:zY,CalendarX:XY,CalendarX2:$Y,Camera:tX,CameraOff:ZY,CandlestickChart:CX,Candy:aX,CandyCane:iX,CandyOff:sX,Captions:hX,CaptionsOff:uX,Car:LX,CarFront:gX,CarTaxiFront:AX,Caravan:xX,Carrot:kX,CaseLower:EX,CaseSensitive:IX,CaseUpper:SX,CassetteTape:RX,Cast:QX,Castle:DX,Cat:PX,Cctv:jX,Check:qX,CheckCheck:FX,CheckCircle:zX,CheckCircle2:GX,CheckSquare:XX,CheckSquare2:$X,ChefHat:ZX,Cherry:tJ,ChevronDown:sJ,ChevronDownCircle:CJ,ChevronDownSquare:iJ,ChevronFirst:aJ,ChevronLast:uJ,ChevronLeft:AJ,ChevronLeftCircle:hJ,ChevronLeftSquare:gJ,ChevronRight:kJ,ChevronRightCircle:LJ,ChevronRightSquare:xJ,ChevronUp:SJ,ChevronUpCircle:EJ,ChevronUpSquare:IJ,ChevronsDown:QJ,ChevronsDownUp:RJ,ChevronsLeft:PJ,ChevronsLeftRight:DJ,ChevronsRight:FJ,ChevronsRightLeft:jJ,ChevronsUp:zJ,ChevronsUpDown:GJ,Chrome:$J,Church:XJ,Cigarette:ZJ,CigaretteOff:qJ,Circle:Eq,CircleDashed:tq,CircleDollarSign:Cq,CircleDot:sq,CircleDotDashed:iq,CircleEllipsis:aq,CircleEqual:uq,CircleFadingPlus:hq,CircleOff:gq,CircleSlash:Lq,CircleSlash2:Aq,CircleUser:kq,CircleUserRound:xq,CircuitBoard:Iq,Citrus:Sq,Clapperboard:Rq,Clipboard:Zq,ClipboardCheck:Qq,ClipboardCopy:Dq,ClipboardList:Pq,ClipboardMinus:jq,ClipboardPaste:Fq,ClipboardPen:zq,ClipboardPenLine:Gq,ClipboardPlus:$q,ClipboardType:Xq,ClipboardX:qq,Clock:EK,Clock1:tK,Clock10:CK,Clock11:iK,Clock12:sK,Clock2:aK,Clock3:uK,Clock4:hK,Clock5:gK,Clock6:AK,Clock7:LK,Clock8:xK,Clock9:kK,Cloud:ZK,CloudCog:IK,CloudDrizzle:SK,CloudFog:RK,CloudHail:QK,CloudLightning:DK,CloudMoon:jK,CloudMoonRain:PK,CloudOff:FK,CloudRain:zK,CloudRainWind:GK,CloudSnow:$K,CloudSun:qK,CloudSunRain:XK,Cloudy:tZ,Clover:CZ,Club:iZ,Code:uZ,Code2:sZ,CodeSquare:aZ,Codepen:hZ,Codesandbox:gZ,Coffee:AZ,Cog:LZ,Coins:xZ,Columns2:kZ,Columns3:EZ,Columns4:IZ,Combine:SZ,Command:RZ,Compass:QZ,Component:DZ,Computer:PZ,ConciergeBell:jZ,Cone:FZ,Construction:GZ,Contact:$Z,Contact2:zZ,Container:XZ,Contrast:qZ,Cookie:ZZ,CookingPot:t11,Copy:h11,CopyCheck:C11,CopyMinus:i11,CopyPlus:s11,CopySlash:a11,CopyX:u11,Copyleft:g11,Copyright:A11,CornerDownLeft:L11,CornerDownRight:x11,CornerLeftDown:k11,CornerLeftUp:E11,CornerRightDown:I11,CornerRightUp:S11,CornerUpLeft:R11,CornerUpRight:Q11,Cpu:D11,CreativeCommons:P11,CreditCard:j11,Croissant:F11,Crop:G11,Cross:z11,Crosshair:$11,Crown:X11,Cuboid:q11,CupSoda:Z11,Currency:t01,Cylinder:C01,Database:a01,DatabaseBackup:i01,DatabaseZap:s01,Delete:u01,Dessert:h01,Diameter:g01,Diamond:A01,Dice1:L01,Dice2:x01,Dice3:k01,Dice4:E01,Dice5:I01,Dice6:S01,Dices:R01,Diff:Q01,Disc:F01,Disc2:D01,Disc3:P01,DiscAlbum:j01,Divide:$01,DivideCircle:G01,DivideSquare:z01,Dna:q01,DnaOff:X01,Dog:Z01,DollarSign:t21,Donut:C21,DoorClosed:i21,DoorOpen:s21,Dot:u21,DotSquare:a21,Download:g21,DownloadCloud:h21,DraftingCompass:A21,Drama:L21,Dribbble:x21,Drill:k21,Droplet:E21,Droplets:I21,Drum:S21,Drumstick:R21,Dumbbell:Q21,Ear:P21,EarOff:D21,Eclipse:j21,Egg:z21,EggFried:F21,EggOff:G21,Equal:q21,EqualNot:$21,EqualSquare:X21,Eraser:Z21,Euro:t91,Expand:C91,ExternalLink:i91,Eye:a91,EyeOff:s91,Facebook:u91,Factory:h91,Fan:g91,FastForward:A91,Feather:L91,Fence:x91,FerrisWheel:k91,Figma:E91,File:Q41,FileArchive:I91,FileAudio:R91,FileAudio2:S91,FileAxis3d:Q91,FileBadge:P91,FileBadge2:D91,FileBarChart:F91,FileBarChart2:j91,FileBox:G91,FileCheck:$91,FileCheck2:z91,FileClock:X91,FileCode:Z91,FileCode2:q91,FileCog:t81,FileDiff:C81,FileDigit:i81,FileDown:s81,FileHeart:a81,FileImage:u81,FileInput:h81,FileJson:A81,FileJson2:g81,FileKey:x81,FileKey2:L81,FileLineChart:k81,FileLock:I81,FileLock2:E81,FileMinus:R81,FileMinus2:S81,FileMusic:Q81,FileOutput:D81,FilePen:j81,FilePenLine:P81,FilePieChart:F81,FilePlus:z81,FilePlus2:G81,FileQuestion:$81,FileScan:X81,FileSearch:Z81,FileSearch2:q81,FileSliders:t41,FileSpreadsheet:C41,FileStack:i41,FileSymlink:s41,FileTerminal:a41,FileText:u41,FileType:g41,FileType2:h41,FileUp:A41,FileVideo:x41,FileVideo2:L41,FileVolume:E41,FileVolume2:k41,FileWarning:I41,FileX:R41,FileX2:S41,Files:D41,Film:P41,Filter:F41,FilterX:j41,Fingerprint:G41,FireExtinguisher:z41,Fish:q41,FishOff:$41,FishSymbol:X41,Flag:i61,FlagOff:Z41,FlagTriangleLeft:t61,FlagTriangleRight:C61,Flame:a61,FlameKindling:s61,Flashlight:h61,FlashlightOff:u61,FlaskConical:A61,FlaskConicalOff:g61,FlaskRound:L61,FlipHorizontal:k61,FlipHorizontal2:x61,FlipVertical:I61,FlipVertical2:E61,Flower:R61,Flower2:S61,Focus:Q61,FoldHorizontal:D61,FoldVertical:P61,Folder:F51,FolderArchive:j61,FolderCheck:F61,FolderClock:G61,FolderClosed:z61,FolderCog:$61,FolderDot:X61,FolderDown:q61,FolderGit:t51,FolderGit2:Z61,FolderHeart:C51,FolderInput:i51,FolderKanban:s51,FolderKey:a51,FolderLock:u51,FolderMinus:h51,FolderOpen:A51,FolderOpenDot:g51,FolderOutput:L51,FolderPen:x51,FolderPlus:k51,FolderRoot:E51,FolderSearch:S51,FolderSearch2:I51,FolderSymlink:R51,FolderSync:Q51,FolderTree:D51,FolderUp:P51,FolderX:j51,Folders:G51,Footprints:z51,Forklift:$51,FormInput:X51,Forward:q51,Frame:Z51,Framer:t31,Frown:C31,Fuel:i31,Fullscreen:s31,FunctionSquare:a31,GalleryHorizontal:h31,GalleryHorizontalEnd:u31,GalleryThumbnails:g31,GalleryVertical:L31,GalleryVerticalEnd:A31,Gamepad:k31,Gamepad2:x31,GanttChart:I31,GanttChartSquare:E31,Gauge:R31,GaugeCircle:S31,Gavel:Q31,Gem:D31,Ghost:P31,Gift:j31,GitBranch:G31,GitBranchPlus:F31,GitCommitHorizontal:z31,GitCommitVertical:$31,GitCompare:q31,GitCompareArrows:X31,GitFork:Z31,GitGraph:t71,GitMerge:C71,GitPullRequest:g71,GitPullRequestArrow:i71,GitPullRequestClosed:s71,GitPullRequestCreate:u71,GitPullRequestCreateArrow:a71,GitPullRequestDraft:h71,Github:A71,Gitlab:L71,GlassWater:x71,Glasses:k71,Globe:I71,Globe2:E71,Goal:S71,Grab:R71,GraduationCap:Q71,Grape:D71,Grid2x2:P71,Grid3x3:j71,Grip:z71,GripHorizontal:F71,GripVertical:G71,Group:$71,Guitar:X71,Hammer:q71,Hand:ae1,HandCoins:Z71,HandHeart:te1,HandHelping:Ce1,HandMetal:ie1,HandPlatter:se1,Handshake:ue1,HardDrive:Ae1,HardDriveDownload:he1,HardDriveUpload:ge1,HardHat:Le1,Hash:xe1,Haze:ke1,HdmiPort:Ee1,Heading:je1,Heading1:Ie1,Heading2:Se1,Heading3:Re1,Heading4:Qe1,Heading5:De1,Heading6:Pe1,Headphones:Fe1,Headset:Ge1,Heart:Ze1,HeartCrack:ze1,HeartHandshake:$e1,HeartOff:Xe1,HeartPulse:qe1,Heater:tt1,HelpCircle:Ct1,Hexagon:it1,Highlighter:st1,History:at1,Home:ut1,Hop:gt1,HopOff:ht1,Hotel:At1,Hourglass:Lt1,IceCream:kt1,IceCream2:xt1,Image:Qt1,ImageDown:Et1,ImageMinus:It1,ImageOff:St1,ImagePlus:Rt1,Images:Dt1,Import:Pt1,Inbox:jt1,Indent:Ft1,IndianRupee:Gt1,Infinity:zt1,Info:$t1,InspectionPanel:Xt1,Instagram:qt1,Italic:Zt1,IterationCcw:tn1,IterationCw:Cn1,JapaneseYen:in1,Joystick:sn1,Kanban:hn1,KanbanSquare:un1,KanbanSquareDashed:an1,Key:Ln1,KeyRound:gn1,KeySquare:An1,Keyboard:kn1,KeyboardMusic:xn1,Lamp:Dn1,LampCeiling:En1,LampDesk:In1,LampFloor:Sn1,LampWallDown:Rn1,LampWallUp:Qn1,LandPlot:Pn1,Landmark:jn1,Languages:Fn1,Laptop:zn1,Laptop2:Gn1,Lasso:Xn1,LassoSelect:$n1,Laugh:qn1,Layers:CC1,Layers2:Zn1,Layers3:tC1,LayoutDashboard:iC1,LayoutGrid:sC1,LayoutList:aC1,LayoutPanelLeft:uC1,LayoutPanelTop:hC1,LayoutTemplate:gC1,Leaf:AC1,LeafyGreen:LC1,Library:EC1,LibraryBig:xC1,LibrarySquare:kC1,LifeBuoy:IC1,Ligature:SC1,Lightbulb:QC1,LightbulbOff:RC1,LineChart:DC1,Link:FC1,Link2:jC1,Link2Off:PC1,Linkedin:GC1,List:Lr1,ListChecks:zC1,ListCollapse:$C1,ListEnd:XC1,ListFilter:qC1,ListMinus:ZC1,ListMusic:tr1,ListOrdered:Cr1,ListPlus:ir1,ListRestart:sr1,ListStart:ar1,ListTodo:ur1,ListTree:hr1,ListVideo:gr1,ListX:Ar1,Loader:kr1,Loader2:xr1,Locate:Sr1,LocateFixed:Er1,LocateOff:Ir1,Lock:Qr1,LockKeyhole:Rr1,LogIn:Dr1,LogOut:Pr1,Lollipop:jr1,Luggage:Fr1,MSquare:Gr1,Magnet:zr1,Mail:ai1,MailCheck:$r1,MailMinus:Xr1,MailOpen:qr1,MailPlus:Zr1,MailQuestion:ti1,MailSearch:Ci1,MailWarning:ii1,MailX:si1,Mailbox:ui1,Mails:hi1,Map:xi1,MapPin:Ai1,MapPinOff:gi1,MapPinned:Li1,Martini:ki1,Maximize:Ii1,Maximize2:Ei1,Medal:Si1,Megaphone:Qi1,MegaphoneOff:Ri1,Meh:Di1,MemoryStick:Pi1,Menu:Fi1,MenuSquare:ji1,Merge:Gi1,MessageCircle:uo1,MessageCircleCode:zi1,MessageCircleDashed:$i1,MessageCircleHeart:Xi1,MessageCircleMore:qi1,MessageCircleOff:Zi1,MessageCirclePlus:to1,MessageCircleQuestion:Co1,MessageCircleReply:io1,MessageCircleWarning:so1,MessageCircleX:ao1,MessageSquare:Fo1,MessageSquareCode:ho1,MessageSquareDashed:go1,MessageSquareDiff:Ao1,MessageSquareDot:Lo1,MessageSquareHeart:xo1,MessageSquareMore:ko1,MessageSquareOff:Eo1,MessageSquarePlus:Io1,MessageSquareQuote:So1,MessageSquareReply:Ro1,MessageSquareShare:Qo1,MessageSquareText:Do1,MessageSquareWarning:Po1,MessageSquareX:jo1,MessagesSquare:Go1,Mic:Xo1,Mic2:zo1,MicOff:$o1,Microscope:qo1,Microwave:Zo1,Milestone:ts1,Milk:is1,MilkOff:Cs1,Minimize:as1,Minimize2:ss1,Minus:gs1,MinusCircle:us1,MinusSquare:hs1,Monitor:js1,MonitorCheck:As1,MonitorDot:Ls1,MonitorDown:xs1,MonitorOff:ks1,MonitorPause:Es1,MonitorPlay:Is1,MonitorSmartphone:Ss1,MonitorSpeaker:Rs1,MonitorStop:Qs1,MonitorUp:Ds1,MonitorX:Ps1,Moon:Gs1,MoonStar:Fs1,MoreHorizontal:zs1,MoreVertical:$s1,Mountain:qs1,MountainSnow:Xs1,Mouse:al1,MousePointer:sl1,MousePointer2:Zs1,MousePointerClick:tl1,MousePointerSquare:il1,MousePointerSquareDashed:Cl1,Move:Pl1,Move3d:ul1,MoveDiagonal:gl1,MoveDiagonal2:hl1,MoveDown:xl1,MoveDownLeft:Al1,MoveDownRight:Ll1,MoveHorizontal:kl1,MoveLeft:El1,MoveRight:Il1,MoveUp:Ql1,MoveUpLeft:Sl1,MoveUpRight:Rl1,MoveVertical:Dl1,Music:zl1,Music2:jl1,Music3:Fl1,Music4:Gl1,Navigation:Zl1,Navigation2:Xl1,Navigation2Off:$l1,NavigationOff:ql1,Network:ta1,Newspaper:Ca1,Nfc:ia1,Notebook:ha1,NotebookPen:sa1,NotebookTabs:aa1,NotebookText:ua1,NotepadText:Aa1,NotepadTextDashed:ga1,Nut:xa1,NutOff:La1,Octagon:ka1,Option:Ea1,Orbit:Ia1,Outdent:Sa1,Package:za1,Package2:Ra1,PackageCheck:Qa1,PackageMinus:Da1,PackageOpen:Pa1,PackagePlus:ja1,PackageSearch:Fa1,PackageX:Ga1,PaintBucket:$a1,PaintRoller:Xa1,Paintbrush:Za1,Paintbrush2:qa1,Palette:tc1,Palmtree:Cc1,PanelBottom:uc1,PanelBottomClose:ic1,PanelBottomDashed:sc1,PanelBottomOpen:ac1,PanelLeft:Lc1,PanelLeftClose:hc1,PanelLeftDashed:gc1,PanelLeftOpen:Ac1,PanelRight:Ic1,PanelRightClose:xc1,PanelRightDashed:kc1,PanelRightOpen:Ec1,PanelTop:Dc1,PanelTopClose:Sc1,PanelTopDashed:Rc1,PanelTopOpen:Qc1,PanelsLeftBottom:Pc1,PanelsRightBottom:jc1,PanelsTopLeft:Fc1,Paperclip:Gc1,Parentheses:zc1,ParkingCircle:Xc1,ParkingCircleOff:$c1,ParkingMeter:qc1,ParkingSquare:tu1,ParkingSquareOff:Zc1,PartyPopper:Cu1,Pause:au1,PauseCircle:iu1,PauseOctagon:su1,PawPrint:uu1,PcCase:hu1,Pen:Lu1,PenLine:gu1,PenTool:Au1,Pencil:Eu1,PencilLine:xu1,PencilRuler:ku1,Pentagon:Iu1,Percent:Du1,PercentCircle:Su1,PercentDiamond:Ru1,PercentSquare:Qu1,PersonStanding:Pu1,Phone:qu1,PhoneCall:ju1,PhoneForwarded:Fu1,PhoneIncoming:Gu1,PhoneMissed:zu1,PhoneOff:$u1,PhoneOutgoing:Xu1,Pi:td1,PiSquare:Zu1,Piano:Cd1,PictureInPicture:sd1,PictureInPicture2:id1,PieChart:ad1,PiggyBank:ud1,Pilcrow:gd1,PilcrowSquare:hd1,Pill:Ad1,Pin:xd1,PinOff:Ld1,Pipette:kd1,Pizza:Ed1,Plane:Rd1,PlaneLanding:Id1,PlaneTakeoff:Sd1,Play:Pd1,PlayCircle:Qd1,PlaySquare:Dd1,Plug:zd1,Plug2:jd1,PlugZap:Gd1,PlugZap2:Fd1,Plus:qd1,PlusCircle:$d1,PlusSquare:Xd1,Pocket:th1,PocketKnife:Zd1,Podcast:Ch1,Pointer:sh1,PointerOff:ih1,Popcorn:ah1,Popsicle:uh1,PoundSterling:hh1,Power:xh1,PowerCircle:gh1,PowerOff:Ah1,PowerSquare:Lh1,Presentation:kh1,Printer:Eh1,Projector:Ih1,Puzzle:Sh1,Pyramid:Rh1,QrCode:Qh1,Quote:Dh1,Rabbit:Ph1,Radar:jh1,Radiation:Fh1,Radical:Gh1,Radio:Xh1,RadioReceiver:zh1,RadioTower:$h1,Radius:qh1,RailSymbol:Zh1,Rainbow:tf1,Rat:Cf1,Ratio:if1,Receipt:kf1,ReceiptCent:sf1,ReceiptEuro:af1,ReceiptIndianRupee:uf1,ReceiptJapaneseYen:hf1,ReceiptPoundSterling:gf1,ReceiptRussianRuble:Af1,ReceiptSwissFranc:Lf1,ReceiptText:xf1,RectangleHorizontal:Ef1,RectangleVertical:If1,Recycle:Sf1,Redo:Df1,Redo2:Rf1,RedoDot:Qf1,RefreshCcw:jf1,RefreshCcwDot:Pf1,RefreshCw:Gf1,RefreshCwOff:Ff1,Refrigerator:zf1,Regex:$f1,RemoveFormatting:Xf1,Repeat:tg1,Repeat1:qf1,Repeat2:Zf1,Replace:ig1,ReplaceAll:Cg1,Reply:ag1,ReplyAll:sg1,Rewind:ug1,Ribbon:hg1,Rocket:gg1,RockingChair:Ag1,RollerCoaster:Lg1,Rotate3d:xg1,RotateCcw:kg1,RotateCw:Eg1,Route:Sg1,RouteOff:Ig1,Router:Rg1,Rows2:Qg1,Rows3:Dg1,Rows4:Pg1,Rss:jg1,Ruler:Fg1,RussianRuble:Gg1,Sailboat:zg1,Salad:$g1,Sandwich:Xg1,Satellite:Zg1,SatelliteDish:qg1,Save:Cp1,SaveAll:tp1,Scale:sp1,Scale3d:ip1,Scaling:ap1,Scan:kp1,ScanBarcode:up1,ScanEye:hp1,ScanFace:gp1,ScanLine:Ap1,ScanSearch:Lp1,ScanText:xp1,ScatterChart:Ep1,School:Sp1,School2:Ip1,Scissors:Pp1,ScissorsLineDashed:Rp1,ScissorsSquare:Dp1,ScissorsSquareDashedBottom:Qp1,ScreenShare:Fp1,ScreenShareOff:jp1,Scroll:zp1,ScrollText:Gp1,Search:tA1,SearchCheck:$p1,SearchCode:Xp1,SearchSlash:qp1,SearchX:Zp1,Send:sA1,SendHorizontal:CA1,SendToBack:iA1,SeparatorHorizontal:aA1,SeparatorVertical:uA1,Server:LA1,ServerCog:hA1,ServerCrash:gA1,ServerOff:AA1,Settings:kA1,Settings2:xA1,Shapes:EA1,Share:SA1,Share2:IA1,Sheet:RA1,Shell:QA1,Shield:tv1,ShieldAlert:DA1,ShieldBan:PA1,ShieldCheck:jA1,ShieldEllipsis:FA1,ShieldHalf:GA1,ShieldMinus:zA1,ShieldOff:$A1,ShieldPlus:XA1,ShieldQuestion:qA1,ShieldX:ZA1,Ship:iv1,ShipWheel:Cv1,Shirt:sv1,ShoppingBag:av1,ShoppingBasket:uv1,ShoppingCart:hv1,Shovel:gv1,ShowerHead:Av1,Shrink:Lv1,Shrub:xv1,Shuffle:kv1,Sigma:Iv1,SigmaSquare:Ev1,Signal:Pv1,SignalHigh:Sv1,SignalLow:Rv1,SignalMedium:Qv1,SignalZero:Dv1,Signpost:Fv1,SignpostBig:jv1,Siren:Gv1,SkipBack:zv1,SkipForward:$v1,Skull:Xv1,Slack:qv1,Slash:tL1,SlashSquare:Zv1,Slice:CL1,Sliders:sL1,SlidersHorizontal:iL1,Smartphone:hL1,SmartphoneCharging:aL1,SmartphoneNfc:uL1,Smile:AL1,SmilePlus:gL1,Snail:LL1,Snowflake:xL1,Sofa:kL1,Soup:EL1,Space:IL1,Spade:SL1,Sparkle:RL1,Sparkles:QL1,Speaker:DL1,Speech:PL1,SpellCheck:FL1,SpellCheck2:jL1,Spline:GL1,Split:XL1,SplitSquareHorizontal:zL1,SplitSquareVertical:$L1,SprayCan:qL1,Sprout:ZL1,Square:gw1,SquareDashedBottom:Cw1,SquareDashedBottomCode:tw1,SquarePen:iw1,SquareRadical:sw1,SquareStack:aw1,SquareUser:hw1,SquareUserRound:uw1,Squircle:Aw1,Squirrel:Lw1,Stamp:xw1,Star:Iw1,StarHalf:kw1,StarOff:Ew1,StepBack:Sw1,StepForward:Rw1,Stethoscope:Qw1,Sticker:Dw1,StickyNote:Pw1,StopCircle:jw1,Store:Fw1,StretchHorizontal:Gw1,StretchVertical:zw1,Strikethrough:$w1,Subscript:Xw1,Sun:ix1,SunDim:qw1,SunMedium:Zw1,SunMoon:tx1,SunSnow:Cx1,Sunrise:sx1,Sunset:ax1,Superscript:ux1,SwatchBook:hx1,SwissFranc:gx1,SwitchCamera:Ax1,Sword:Lx1,Swords:xx1,Syringe:kx1,Table:Sx1,Table2:Ex1,TableProperties:Ix1,Tablet:Qx1,TabletSmartphone:Rx1,Tablets:Dx1,Tag:Px1,Tags:jx1,Tally1:Fx1,Tally2:Gx1,Tally3:zx1,Tally4:$x1,Tally5:Xx1,Tangent:qx1,Target:Zx1,Telescope:tm1,Tent:im1,TentTree:Cm1,Terminal:am1,TerminalSquare:sm1,TestTube:hm1,TestTube2:um1,TestTubes:gm1,Text:Im1,TextCursor:Lm1,TextCursorInput:Am1,TextQuote:xm1,TextSearch:km1,TextSelect:Em1,Theater:Sm1,Thermometer:Dm1,ThermometerSnowflake:Rm1,ThermometerSun:Qm1,ThumbsDown:Pm1,ThumbsUp:jm1,Ticket:Zm1,TicketCheck:Fm1,TicketMinus:Gm1,TicketPercent:zm1,TicketPlus:$m1,TicketSlash:Xm1,TicketX:qm1,Timer:ik1,TimerOff:tk1,TimerReset:Ck1,ToggleLeft:sk1,ToggleRight:ak1,Tornado:uk1,Torus:hk1,Touchpad:Ak1,TouchpadOff:gk1,TowerControl:Lk1,ToyBrick:xk1,Tractor:kk1,TrafficCone:Ek1,TrainFront:Sk1,TrainFrontTunnel:Ik1,TrainTrack:Rk1,TramFront:Qk1,Trash:Pk1,Trash2:Dk1,TreeDeciduous:jk1,TreePine:Fk1,Trees:Gk1,Trello:zk1,TrendingDown:$k1,TrendingUp:Xk1,Triangle:Zk1,TriangleRight:qk1,Trophy:tM1,Truck:CM1,Turtle:iM1,Tv:aM1,Tv2:sM1,Twitch:uM1,Twitter:hM1,Type:gM1,Umbrella:LM1,UmbrellaOff:AM1,Underline:xM1,Undo:IM1,Undo2:kM1,UndoDot:EM1,UnfoldHorizontal:SM1,UnfoldVertical:RM1,Ungroup:QM1,Unlink:PM1,Unlink2:DM1,Unlock:FM1,UnlockKeyhole:jM1,Unplug:GM1,Upload:$M1,UploadCloud:zM1,Usb:XM1,User:kE1,UserCheck:qM1,UserCog:ZM1,UserMinus:tE1,UserPlus:CE1,UserRound:AE1,UserRoundCheck:iE1,UserRoundCog:sE1,UserRoundMinus:aE1,UserRoundPlus:uE1,UserRoundSearch:hE1,UserRoundX:gE1,UserSearch:LE1,UserX:xE1,Users:IE1,UsersRound:EE1,Utensils:RE1,UtensilsCrossed:SE1,UtilityPole:QE1,Variable:DE1,Vault:PE1,Vegan:jE1,VenetianMask:FE1,Vibrate:zE1,VibrateOff:GE1,Video:XE1,VideoOff:$E1,Videotape:qE1,View:ZE1,Voicemail:ty1,Volume:ay1,Volume1:Cy1,Volume2:iy1,VolumeX:sy1,Vote:uy1,Wallet:Ay1,Wallet2:hy1,WalletCards:gy1,Wallpaper:Ly1,Wand:ky1,Wand2:xy1,Warehouse:Ey1,WashingMachine:Iy1,Watch:Sy1,Waves:Ry1,Waypoints:Qy1,Webcam:Dy1,Webhook:jy1,WebhookOff:Py1,Weight:Fy1,Wheat:zy1,WheatOff:Gy1,WholeWord:$y1,Wifi:qy1,WifiOff:Xy1,Wind:Zy1,Wine:CI1,WineOff:tI1,Workflow:iI1,WrapText:sI1,Wrench:aI1,X:AI1,XCircle:uI1,XOctagon:hI1,XSquare:gI1,Youtube:LI1,Zap:kI1,ZapOff:xI1,ZoomIn:EI1,ZoomOut:II1},Symbol.toStringTag,{value:"Module"}));function SI1(){return h.jsxs(aN,{style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:[h.jsx("color",{attach:"background",args:["black"]}),h.jsx("ambientLight",{intensity:.5}),h.jsx("directionalLight",{intensity:0,position:[5,1,10]}),h.jsx(QH,{scrollbarColor:"black",backgroundColor:"white",flexDirection:"row",flexWrap:"wrap",overflow:"scroll",gap:10,padding:10,children:Object.values(BI1).map((t,e)=>h.jsx(t,{},e))})]})}Uw(document.getElementById("root")).render(h.jsx(u.StrictMode,{children:h.jsx(SI1,{})})); diff --git a/examples/lucide/index.html b/examples/lucide/index.html index 12160d66..df0168e2 100644 --- a/examples/lucide/index.html +++ b/examples/lucide/index.html @@ -5,7 +5,7 @@ Document - +
diff --git a/examples/market/assets/index--64PkLbb.js b/examples/market/assets/index-xD8RT3sx.js similarity index 50% rename from examples/market/assets/index--64PkLbb.js rename to examples/market/assets/index-xD8RT3sx.js index 5858ac30..159f3ccb 100644 --- a/examples/market/assets/index--64PkLbb.js +++ b/examples/market/assets/index-xD8RT3sx.js @@ -1,4 +1,4 @@ -var y3=Object.defineProperty;var v3=(n,e,t)=>e in n?y3(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var We=(n,e,t)=>(v3(n,typeof e!="symbol"?e+"":e,t),t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function VS(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var WS={exports:{}},gg={},YS={exports:{}},Gt={};/** +var L3=Object.defineProperty;var P3=(n,e,t)=>e in n?L3(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var We=(n,e,t)=>(P3(n,typeof e!="symbol"?e+"":e,t),t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function rw(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var sw={exports:{}},vg={},ow={exports:{}},Ot={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var y3=Object.defineProperty;var v3=(n,e,t)=>e in n?y3(n,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Qh=Symbol.for("react.element"),I3=Symbol.for("react.portal"),x3=Symbol.for("react.fragment"),B3=Symbol.for("react.strict_mode"),_3=Symbol.for("react.profiler"),S3=Symbol.for("react.provider"),w3=Symbol.for("react.context"),M3=Symbol.for("react.forward_ref"),Q3=Symbol.for("react.suspense"),R3=Symbol.for("react.memo"),T3=Symbol.for("react.lazy"),px=Symbol.iterator;function D3(n){return n===null||typeof n!="object"?null:(n=px&&n[px]||n["@@iterator"],typeof n=="function"?n:null)}var XS={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},JS=Object.assign,KS={};function Eu(n,e,t){this.props=n,this.context=e,this.refs=KS,this.updater=t||XS}Eu.prototype.isReactComponent={};Eu.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Eu.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function qS(){}qS.prototype=Eu.prototype;function zy(n,e,t){this.props=n,this.context=e,this.refs=KS,this.updater=t||XS}var Vy=zy.prototype=new qS;Vy.constructor=zy;JS(Vy,Eu.prototype);Vy.isPureReactComponent=!0;var gx=Array.isArray,jS=Object.prototype.hasOwnProperty,Wy={current:null},ZS={key:!0,ref:!0,__self:!0,__source:!0};function $S(n,e,t){var i,r={},s=null,o=null;if(e!=null)for(i in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)jS.call(e,i)&&!ZS.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(a===1)r.children=t;else if(1e in n?y3(n,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var U3=$,F3=Symbol.for("react.element"),k3=Symbol.for("react.fragment"),G3=Object.prototype.hasOwnProperty,O3=U3.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,H3={key:!0,ref:!0,__self:!0,__source:!0};function ew(n,e,t){var i,r={},s=null,o=null;t!==void 0&&(s=""+t),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(i in e)G3.call(e,i)&&!H3.hasOwnProperty(i)&&(r[i]=e[i]);if(n&&n.defaultProps)for(i in e=n.defaultProps,e)r[i]===void 0&&(r[i]=e[i]);return{$$typeof:F3,type:n,key:s,ref:o,props:r,_owner:O3.current}}gg.Fragment=k3;gg.jsx=ew;gg.jsxs=ew;WS.exports=gg;var se=WS.exports,tw={exports:{}},_r={},nw={exports:{}},iw={};/** + */var Z3=J,$3=Symbol.for("react.element"),eD=Symbol.for("react.fragment"),tD=Object.prototype.hasOwnProperty,nD=Z3.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,iD={key:!0,ref:!0,__self:!0,__source:!0};function dw(n,e,t){var i,r={},s=null,o=null;t!==void 0&&(s=""+t),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(i in e)tD.call(e,i)&&!iD.hasOwnProperty(i)&&(r[i]=e[i]);if(n&&n.defaultProps)for(i in e=n.defaultProps,e)r[i]===void 0&&(r[i]=e[i]);return{$$typeof:$3,type:n,key:s,ref:o,props:r,_owner:nD.current}}vg.Fragment=eD;vg.jsx=dw;vg.jsxs=dw;sw.exports=vg;var oe=sw.exports,pw={exports:{}},_r={},gw={exports:{}},mw={};/** * @license React * scheduler.production.min.js * @@ -22,7 +22,7 @@ var y3=Object.defineProperty;var v3=(n,e,t)=>e in n?y3(n,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(n){function e(U,Z){var ee=U.length;U.push(Z);e:for(;0>>1,ye=U[ue];if(0>>1;uer(O,ee))kr(F,O)?(U[ue]=F,U[k]=ee,ue=k):(U[ue]=O,U[V]=ee,ue=V);else if(kr(F,ee))U[ue]=F,U[k]=ee,ue=k;else break e}}return Z}function r(U,Z){var ee=U.sortIndex-Z.sortIndex;return ee!==0?ee:U.id-Z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var c=[],A=[],h=1,f=null,d=3,m=!1,E=!1,x=!1,C=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(U){for(var Z=t(A);Z!==null;){if(Z.callback===null)i(A);else if(Z.startTime<=U)i(A),Z.sortIndex=Z.expirationTime,e(c,Z);else break;Z=t(A)}}function B(U){if(x=!1,y(U),!E)if(t(c)!==null)E=!0,re(R);else{var Z=t(A);Z!==null&&fe(B,Z.startTime-U)}}function R(U,Z){E=!1,x&&(x=!1,g(P),P=-1),m=!0;var ee=d;try{for(y(Z),f=t(c);f!==null&&(!(f.expirationTime>Z)||U&&!b());){var ue=f.callback;if(typeof ue=="function"){f.callback=null,d=f.priorityLevel;var ye=ue(f.expirationTime<=Z);Z=n.unstable_now(),typeof ye=="function"?f.callback=ye:f===t(c)&&i(c),y(Z)}else i(c);f=t(c)}if(f!==null)var ke=!0;else{var V=t(A);V!==null&&fe(B,V.startTime-Z),ke=!1}return ke}finally{f=null,d=ee,m=!1}}var w=!1,T=null,P=-1,J=5,M=-1;function b(){return!(n.unstable_now()-MU||125ue?(U.sortIndex=ee,e(A,U),t(c)===null&&U===t(A)&&(x?(g(P),P=-1):x=!0,fe(B,ee-ue))):(U.sortIndex=ye,e(c,U),E||m||(E=!0,re(R))),U},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(U){var Z=d;return function(){var ee=d;d=Z;try{return U.apply(this,arguments)}finally{d=ee}}}})(iw);nw.exports=iw;var z3=nw.exports;/** + */(function(n){function e(U,$){var ee=U.length;U.push($);e:for(;0>>1,ye=U[Ae];if(0>>1;Aer(O,ee))kr(F,O)?(U[Ae]=F,U[k]=ee,Ae=k):(U[Ae]=O,U[V]=ee,Ae=V);else if(kr(F,ee))U[Ae]=F,U[k]=ee,Ae=k;else break e}}return $}function r(U,$){var ee=U.sortIndex-$.sortIndex;return ee!==0?ee:U.id-$.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var c=[],A=[],h=1,f=null,d=3,m=!1,E=!1,x=!1,C=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(U){for(var $=t(A);$!==null;){if($.callback===null)i(A);else if($.startTime<=U)i(A),$.sortIndex=$.expirationTime,e(c,$);else break;$=t(A)}}function B(U){if(x=!1,y(U),!E)if(t(c)!==null)E=!0,te(R);else{var $=t(A);$!==null&&ue(B,$.startTime-U)}}function R(U,$){E=!1,x&&(x=!1,p(P),P=-1),m=!0;var ee=d;try{for(y($),f=t(c);f!==null&&(!(f.expirationTime>$)||U&&!b());){var Ae=f.callback;if(typeof Ae=="function"){f.callback=null,d=f.priorityLevel;var ye=Ae(f.expirationTime<=$);$=n.unstable_now(),typeof ye=="function"?f.callback=ye:f===t(c)&&i(c),y($)}else i(c);f=t(c)}if(f!==null)var ke=!0;else{var V=t(A);V!==null&&ue(B,V.startTime-$),ke=!1}return ke}finally{f=null,d=ee,m=!1}}var M=!1,T=null,P=-1,K=5,w=-1;function b(){return!(n.unstable_now()-wU||125Ae?(U.sortIndex=ee,e(A,U),t(c)===null&&U===t(A)&&(x?(p(P),P=-1):x=!0,ue(B,ee-Ae))):(U.sortIndex=ye,e(c,U),E||m||(E=!0,te(R))),U},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(U){var $=d;return function(){var ee=d;d=$;try{return U.apply(this,arguments)}finally{d=ee}}}})(mw);gw.exports=mw;var rD=gw.exports;/** * @license React * react-dom.production.min.js * @@ -30,22 +30,22 @@ var y3=Object.defineProperty;var v3=(n,e,t)=>e in n?y3(n,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var rw=$,xr=z3;function Fe(n){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+n,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),zE=Object.prototype.hasOwnProperty,V3=/^[: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]*$/,Ex={},Cx={};function W3(n){return zE.call(Cx,n)?!0:zE.call(Ex,n)?!1:V3.test(n)?Cx[n]=!0:(Ex[n]=!0,!1)}function Y3(n,e,t,i){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:t!==null?!t.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function X3(n,e,t,i){if(e===null||typeof e>"u"||Y3(n,e,t,i))return!0;if(i)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Yi(n,e,t,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=n,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var mi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){mi[n]=new Yi(n,0,!1,n,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var e=n[0];mi[e]=new Yi(e,1,!1,n[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(n){mi[n]=new Yi(n,2,!1,n.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){mi[n]=new Yi(n,2,!1,n,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(n){mi[n]=new Yi(n,3,!1,n.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(n){mi[n]=new Yi(n,3,!0,n,null,!1,!1)});["capture","download"].forEach(function(n){mi[n]=new Yi(n,4,!1,n,null,!1,!1)});["cols","rows","size","span"].forEach(function(n){mi[n]=new Yi(n,6,!1,n,null,!1,!1)});["rowSpan","start"].forEach(function(n){mi[n]=new Yi(n,5,!1,n.toLowerCase(),null,!1,!1)});var Xy=/[\-:]([a-z])/g;function Jy(n){return n[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(n){var e=n.replace(Xy,Jy);mi[e]=new Yi(e,1,!1,n,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var e=n.replace(Xy,Jy);mi[e]=new Yi(e,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(n){var e=n.replace(Xy,Jy);mi[e]=new Yi(e,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(n){mi[n]=new Yi(n,1,!1,n.toLowerCase(),null,!1,!1)});mi.xlinkHref=new Yi("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(n){mi[n]=new Yi(n,1,!1,n.toLowerCase(),null,!0,!0)});function Ky(n,e,t,i){var r=mi.hasOwnProperty(e)?mi[e]:null;(r!==null?r.type!==0:i||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),jE=Object.prototype.hasOwnProperty,sD=/^[: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]*$/,wx={},Mx={};function oD(n){return jE.call(Mx,n)?!0:jE.call(wx,n)?!1:sD.test(n)?Mx[n]=!0:(wx[n]=!0,!1)}function aD(n,e,t,i){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:t!==null?!t.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function lD(n,e,t,i){if(e===null||typeof e>"u"||aD(n,e,t,i))return!0;if(i)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Xi(n,e,t,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=n,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var Ci={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){Ci[n]=new Xi(n,0,!1,n,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var e=n[0];Ci[e]=new Xi(e,1,!1,n[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(n){Ci[n]=new Xi(n,2,!1,n.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){Ci[n]=new Xi(n,2,!1,n,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(n){Ci[n]=new Xi(n,3,!1,n.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(n){Ci[n]=new Xi(n,3,!0,n,null,!1,!1)});["capture","download"].forEach(function(n){Ci[n]=new Xi(n,4,!1,n,null,!1,!1)});["cols","rows","size","span"].forEach(function(n){Ci[n]=new Xi(n,6,!1,n,null,!1,!1)});["rowSpan","start"].forEach(function(n){Ci[n]=new Xi(n,5,!1,n.toLowerCase(),null,!1,!1)});var e1=/[\-:]([a-z])/g;function t1(n){return n[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(n){var e=n.replace(e1,t1);Ci[e]=new Xi(e,1,!1,n,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var e=n.replace(e1,t1);Ci[e]=new Xi(e,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(n){var e=n.replace(e1,t1);Ci[e]=new Xi(e,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(n){Ci[n]=new Xi(n,1,!1,n.toLowerCase(),null,!1,!1)});Ci.xlinkHref=new Xi("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(n){Ci[n]=new Xi(n,1,!1,n.toLowerCase(),null,!0,!0)});function n1(n,e,t,i){var r=Ci.hasOwnProperty(e)?Ci[e]:null;(r!==null?r.type!==0:i||!(2a||r[o]!==s[a]){var c=` -`+r[o].replace(" at new "," at ");return n.displayName&&c.includes("")&&(c=c.replace("",n.displayName)),c}while(1<=o&&0<=a);break}}}finally{p0=!1,Error.prepareStackTrace=t}return(n=n?n.displayName||n.name:"")?CA(n):""}function J3(n){switch(n.tag){case 5:return CA(n.type);case 16:return CA("Lazy");case 13:return CA("Suspense");case 19:return CA("SuspenseList");case 0:case 2:case 15:return n=g0(n.type,!1),n;case 11:return n=g0(n.type.render,!1),n;case 1:return n=g0(n.type,!0),n;default:return""}}function XE(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case Fc:return"Fragment";case Uc:return"Portal";case VE:return"Profiler";case qy:return"StrictMode";case WE:return"Suspense";case YE:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case aw:return(n.displayName||"Context")+".Consumer";case ow:return(n._context.displayName||"Context")+".Provider";case jy:var e=n.render;return n=n.displayName,n||(n=e.displayName||e.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case Zy:return e=n.displayName||null,e!==null?e:XE(n.type)||"Memo";case Go:e=n._payload,n=n._init;try{return XE(n(e))}catch{}}return null}function K3(n){var e=n.type;switch(n.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=e.render,n=n.displayName||n.name||"",e.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return XE(e);case 8:return e===qy?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function ca(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function cw(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function q3(n){var e=cw(n)?"checked":"value",t=Object.getOwnPropertyDescriptor(n.constructor.prototype,e),i=""+n[e];if(!n.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,s=t.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(n,e,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function Yf(n){n._valueTracker||(n._valueTracker=q3(n))}function uw(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=cw(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}function Pp(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function JE(n,e){var t=e.checked;return Tn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??n._wrapperState.initialChecked})}function vx(n,e){var t=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;t=ca(e.value!=null?e.value:t),n._wrapperState={initialChecked:i,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function Aw(n,e){e=e.checked,e!=null&&Ky(n,"checked",e,!1)}function KE(n,e){Aw(n,e);var t=ca(e.value),i=e.type;if(t!=null)i==="number"?(t===0&&n.value===""||n.value!=t)&&(n.value=""+t):n.value!==""+t&&(n.value=""+t);else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}e.hasOwnProperty("value")?qE(n,e.type,t):e.hasOwnProperty("defaultValue")&&qE(n,e.type,ca(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(n.defaultChecked=!!e.defaultChecked)}function Ix(n,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+n._wrapperState.initialValue,t||e===n.value||(n.value=e),n.defaultValue=e}t=n.name,t!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,t!==""&&(n.name=t)}function qE(n,e,t){(e!=="number"||Pp(n.ownerDocument)!==n)&&(t==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+t&&(n.defaultValue=""+t))}var yA=Array.isArray;function eu(n,e,t,i){if(n=n.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=Xf.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;e.firstChild;)n.appendChild(e.firstChild)}});function VA(n,e){if(e){var t=n.firstChild;if(t&&t===n.lastChild&&t.nodeType===3){t.nodeValue=e;return}}n.textContent=e}var MA={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},j3=["Webkit","ms","Moz","O"];Object.keys(MA).forEach(function(n){j3.forEach(function(e){e=e+n.charAt(0).toUpperCase()+n.substring(1),MA[e]=MA[n]})});function pw(n,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||MA.hasOwnProperty(n)&&MA[n]?(""+e).trim():e+"px"}function gw(n,e){n=n.style;for(var t in e)if(e.hasOwnProperty(t)){var i=t.indexOf("--")===0,r=pw(t,e[t],i);t==="float"&&(t="cssFloat"),i?n.setProperty(t,r):n[t]=r}}var Z3=Tn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function $E(n,e){if(e){if(Z3[n]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Fe(137,n));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Fe(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Fe(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Fe(62))}}function eC(n,e){if(n.indexOf("-")===-1)return typeof e.is=="string";switch(n){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!1;default:return!0}}var tC=null;function $y(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var nC=null,tu=null,nu=null;function _x(n){if(n=Dh(n)){if(typeof nC!="function")throw Error(Fe(280));var e=n.stateNode;e&&(e=vg(e),nC(n.stateNode,n.type,e))}}function mw(n){tu?nu?nu.push(n):nu=[n]:tu=n}function Ew(){if(tu){var n=tu,e=nu;if(nu=tu=null,_x(n),e)for(n=0;n>>=0,n===0?32:31-(cD(n)/uD|0)|0}var Jf=64,Kf=4194304;function vA(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function Gp(n,e){var t=n.pendingLanes;if(t===0)return 0;var i=0,r=n.suspendedLanes,s=n.pingedLanes,o=t&268435455;if(o!==0){var a=o&~r;a!==0?i=vA(a):(s&=o,s!==0&&(i=vA(s)))}else o=t&~r,o!==0?i=vA(o):s!==0&&(i=vA(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=t&16),e=n.entangledLanes,e!==0)for(n=n.entanglements,e&=i;0t;t++)e.push(n);return e}function Rh(n,e,t){n.pendingLanes|=e,e!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,e=31-rs(e),n[e]=t}function dD(n,e){var t=n.pendingLanes&~e;n.pendingLanes=e,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=e,n.mutableReadLanes&=e,n.entangledLanes&=e,e=n.entanglements;var i=n.eventTimes;for(n=n.expirationTimes;0=RA),Nx=" ",Lx=!1;function Fw(n,e){switch(n){case"keyup":return HD.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function kw(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var kc=!1;function VD(n,e){switch(n){case"compositionend":return kw(e);case"keypress":return e.which!==32?null:(Lx=!0,Nx);case"textInput":return n=e.data,n===Nx&&Lx?null:n;default:return null}}function WD(n,e){if(kc)return n==="compositionend"||!a1&&Fw(n,e)?(n=Pw(),Ap=r1=Yo=null,kc=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=kx(t)}}function zw(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?zw(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function Vw(){for(var n=window,e=Pp();e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=Pp(n.document)}return e}function l1(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}function eb(n){var e=Vw(),t=n.focusedElem,i=n.selectionRange;if(e!==t&&t&&t.ownerDocument&&zw(t.ownerDocument.documentElement,t)){if(i!==null&&l1(t)){if(e=i.start,n=i.end,n===void 0&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if(n=(e=t.ownerDocument||document)&&e.defaultView||window,n.getSelection){n=n.getSelection();var r=t.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!n.extend&&s>i&&(r=i,i=s,s=r),r=Gx(t,s);var o=Gx(t,i);r&&o&&(n.rangeCount!==1||n.anchorNode!==r.node||n.anchorOffset!==r.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),n.removeAllRanges(),s>i?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}}for(e=[],n=t;n=n.parentNode;)n.nodeType===1&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,Gc=null,lC=null,DA=null,cC=!1;function Ox(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;cC||Gc==null||Gc!==Pp(i)||(i=Gc,"selectionStart"in i&&l1(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),DA&&qA(DA,i)||(DA=i,i=zp(lC,"onSelect"),0zc||(n.current=pC[zc],pC[zc]=null,zc--)}function gn(n,e){zc++,pC[zc]=n.current,n.current=e}var ua={},Ti=da(ua),nr=da(!1),wl=ua;function cu(n,e){var t=n.type.contextTypes;if(!t)return ua;var i=n.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in t)r[s]=e[s];return i&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=e,n.__reactInternalMemoizedMaskedChildContext=r),r}function ir(n){return n=n.childContextTypes,n!=null}function Wp(){In(nr),In(Ti)}function Jx(n,e,t){if(Ti.current!==ua)throw Error(Fe(168));gn(Ti,e),gn(nr,t)}function $w(n,e,t){var i=n.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(Fe(108,K3(n)||"Unknown",r));return Tn({},t,i)}function Yp(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||ua,wl=Ti.current,gn(Ti,n),gn(nr,nr.current),!0}function Kx(n,e,t){var i=n.stateNode;if(!i)throw Error(Fe(169));t?(n=$w(n,e,wl),i.__reactInternalMemoizedMergedChildContext=n,In(nr),In(Ti),gn(Ti,n)):In(nr),gn(nr,t)}var to=null,Ig=!1,R0=!1;function eM(n){to===null?to=[n]:to.push(n)}function hb(n){Ig=!0,eM(n)}function pa(){if(!R0&&to!==null){R0=!0;var n=0,e=an;try{var t=to;for(an=1;n>=o,r-=o,io=1<<32-rs(e)+r|t<P?(J=T,T=null):J=T.sibling;var M=d(g,T,y[P],B);if(M===null){T===null&&(T=J);break}n&&T&&M.alternate===null&&e(g,T),I=s(M,I,P),w===null?R=M:w.sibling=M,w=M,T=J}if(P===y.length)return t(g,T),_n&&sl(g,P),R;if(T===null){for(;PP?(J=T,T=null):J=T.sibling;var b=d(g,T,M.value,B);if(b===null){T===null&&(T=J);break}n&&T&&b.alternate===null&&e(g,T),I=s(b,I,P),w===null?R=b:w.sibling=b,w=b,T=J}if(M.done)return t(g,T),_n&&sl(g,P),R;if(T===null){for(;!M.done;P++,M=y.next())M=f(g,M.value,B),M!==null&&(I=s(M,I,P),w===null?R=M:w.sibling=M,w=M);return _n&&sl(g,P),R}for(T=i(g,T);!M.done;P++,M=y.next())M=m(T,g,P,M.value,B),M!==null&&(n&&M.alternate!==null&&T.delete(M.key===null?P:M.key),I=s(M,I,P),w===null?R=M:w.sibling=M,w=M);return n&&T.forEach(function(K){return e(g,K)}),_n&&sl(g,P),R}function C(g,I,y,B){if(typeof y=="object"&&y!==null&&y.type===Fc&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case Wf:e:{for(var R=y.key,w=I;w!==null;){if(w.key===R){if(R=y.type,R===Fc){if(w.tag===7){t(g,w.sibling),I=r(w,y.props.children),I.return=g,g=I;break e}}else if(w.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Go&&nB(R)===w.type){t(g,w.sibling),I=r(w,y.props),I.ref=nA(g,w,y),I.return=g,g=I;break e}t(g,w);break}else e(g,w);w=w.sibling}y.type===Fc?(I=vl(y.props.children,g.mode,B,y.key),I.return=g,g=I):(B=Cp(y.type,y.key,y.props,null,g.mode,B),B.ref=nA(g,I,y),B.return=g,g=B)}return o(g);case Uc:e:{for(w=y.key;I!==null;){if(I.key===w)if(I.tag===4&&I.stateNode.containerInfo===y.containerInfo&&I.stateNode.implementation===y.implementation){t(g,I.sibling),I=r(I,y.children||[]),I.return=g,g=I;break e}else{t(g,I);break}else e(g,I);I=I.sibling}I=F0(y,g.mode,B),I.return=g,g=I}return o(g);case Go:return w=y._init,C(g,I,w(y._payload),B)}if(yA(y))return E(g,I,y,B);if(ju(y))return x(g,I,y,B);nd(g,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,I!==null&&I.tag===6?(t(g,I.sibling),I=r(I,y),I.return=g,g=I):(t(g,I),I=U0(y,g.mode,B),I.return=g,g=I),o(g)):t(g,I)}return C}var Au=lM(!0),cM=lM(!1),bh={},Qs=da(bh),eh=da(bh),th=da(bh);function pl(n){if(n===bh)throw Error(Fe(174));return n}function m1(n,e){switch(gn(th,e),gn(eh,n),gn(Qs,bh),n=e.nodeType,n){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:ZE(null,"");break;default:n=n===8?e.parentNode:e,e=n.namespaceURI||null,n=n.tagName,e=ZE(e,n)}In(Qs),gn(Qs,e)}function hu(){In(Qs),In(eh),In(th)}function uM(n){pl(th.current);var e=pl(Qs.current),t=ZE(e,n.type);e!==t&&(gn(eh,n),gn(Qs,t))}function E1(n){eh.current===n&&(In(Qs),In(eh))}var Mn=da(0);function Zp(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var T0=[];function C1(){for(var n=0;nt?t:4,n(!0);var i=D0.transition;D0.transition={};try{n(!1),e()}finally{an=t,D0.transition=i}}function SM(){return zr().memoizedState}function gb(n,e,t){var i=ta(n);if(t={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null},wM(n))MM(e,t);else if(t=rM(n,e,t,i),t!==null){var r=Oi();ss(t,n,i,r),QM(t,e,i)}}function mb(n,e,t){var i=ta(n),r={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null};if(wM(n))MM(e,r);else{var s=n.alternate;if(n.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,t);if(r.hasEagerState=!0,r.eagerState=a,as(a,o)){var c=e.interleaved;c===null?(r.next=r,p1(e)):(r.next=c.next,c.next=r),e.interleaved=r;return}}catch{}finally{}t=rM(n,e,r,i),t!==null&&(r=Oi(),ss(t,n,i,r),QM(t,e,i))}}function wM(n){var e=n.alternate;return n===Rn||e!==null&&e===Rn}function MM(n,e){bA=$p=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function QM(n,e,t){if(t&4194240){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,t1(n,t)}}var eg={readContext:Hr,useCallback:xi,useContext:xi,useEffect:xi,useImperativeHandle:xi,useInsertionEffect:xi,useLayoutEffect:xi,useMemo:xi,useReducer:xi,useRef:xi,useState:xi,useDebugValue:xi,useDeferredValue:xi,useTransition:xi,useMutableSource:xi,useSyncExternalStore:xi,useId:xi,unstable_isNewReconciler:!1},Eb={readContext:Hr,useCallback:function(n,e){return Is().memoizedState=[n,e===void 0?null:e],n},useContext:Hr,useEffect:rB,useImperativeHandle:function(n,e,t){return t=t!=null?t.concat([n]):null,pp(4194308,4,vM.bind(null,e,n),t)},useLayoutEffect:function(n,e){return pp(4194308,4,n,e)},useInsertionEffect:function(n,e){return pp(4,2,n,e)},useMemo:function(n,e){var t=Is();return e=e===void 0?null:e,n=n(),t.memoizedState=[n,e],n},useReducer:function(n,e,t){var i=Is();return e=t!==void 0?t(e):e,i.memoizedState=i.baseState=e,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:e},i.queue=n,n=n.dispatch=gb.bind(null,Rn,n),[i.memoizedState,n]},useRef:function(n){var e=Is();return n={current:n},e.memoizedState=n},useState:iB,useDebugValue:B1,useDeferredValue:function(n){return Is().memoizedState=n},useTransition:function(){var n=iB(!1),e=n[0];return n=pb.bind(null,n[1]),Is().memoizedState=n,[e,n]},useMutableSource:function(){},useSyncExternalStore:function(n,e,t){var i=Rn,r=Is();if(_n){if(t===void 0)throw Error(Fe(407));t=t()}else{if(t=e(),ci===null)throw Error(Fe(349));Ql&30||fM(i,e,t)}r.memoizedState=t;var s={value:t,getSnapshot:e};return r.queue=s,rB(pM.bind(null,i,s,n),[n]),i.flags|=2048,rh(9,dM.bind(null,i,s,t,e),void 0,null),t},useId:function(){var n=Is(),e=ci.identifierPrefix;if(_n){var t=ro,i=io;t=(i&~(1<<32-rs(i)-1)).toString(32)+t,e=":"+e+"R"+t,t=nh++,0")&&(c=c.replace("",n.displayName)),c}while(1<=o&&0<=a);break}}}finally{y0=!1,Error.prepareStackTrace=t}return(n=n?n.displayName||n.name:"")?vA(n):""}function cD(n){switch(n.tag){case 5:return vA(n.type);case 16:return vA("Lazy");case 13:return vA("Suspense");case 19:return vA("SuspenseList");case 0:case 2:case 15:return n=v0(n.type,!1),n;case 11:return n=v0(n.type.render,!1),n;case 1:return n=v0(n.type,!0),n;default:return""}}function tC(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case Oc:return"Fragment";case Gc:return"Portal";case ZE:return"Profiler";case i1:return"StrictMode";case $E:return"Suspense";case eC:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case vw:return(n.displayName||"Context")+".Consumer";case yw:return(n._context.displayName||"Context")+".Provider";case r1:var e=n.render;return n=n.displayName,n||(n=e.displayName||e.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case s1:return e=n.displayName||null,e!==null?e:tC(n.type)||"Memo";case ta:e=n._payload,n=n._init;try{return tC(n(e))}catch{}}return null}function uD(n){var e=n.type;switch(n.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=e.render,n=n.displayName||n.name||"",e.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return tC(e);case 8:return e===i1?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function xa(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function xw(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function AD(n){var e=xw(n)?"checked":"value",t=Object.getOwnPropertyDescriptor(n.constructor.prototype,e),i=""+n[e];if(!n.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,s=t.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(n,e,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function Jf(n){n._valueTracker||(n._valueTracker=AD(n))}function Bw(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=xw(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}function Op(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function nC(n,e){var t=e.checked;return Dn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??n._wrapperState.initialChecked})}function Rx(n,e){var t=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;t=xa(e.value!=null?e.value:t),n._wrapperState={initialChecked:i,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function _w(n,e){e=e.checked,e!=null&&n1(n,"checked",e,!1)}function iC(n,e){_w(n,e);var t=xa(e.value),i=e.type;if(t!=null)i==="number"?(t===0&&n.value===""||n.value!=t)&&(n.value=""+t):n.value!==""+t&&(n.value=""+t);else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}e.hasOwnProperty("value")?rC(n,e.type,t):e.hasOwnProperty("defaultValue")&&rC(n,e.type,xa(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(n.defaultChecked=!!e.defaultChecked)}function Tx(n,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+n._wrapperState.initialValue,t||e===n.value||(n.value=e),n.defaultValue=e}t=n.name,t!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,t!==""&&(n.name=t)}function rC(n,e,t){(e!=="number"||Op(n.ownerDocument)!==n)&&(t==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+t&&(n.defaultValue=""+t))}var IA=Array.isArray;function iu(n,e,t,i){if(n=n.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=Kf.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;e.firstChild;)n.appendChild(e.firstChild)}});function YA(n,e){if(e){var t=n.firstChild;if(t&&t===n.lastChild&&t.nodeType===3){t.nodeValue=e;return}}n.textContent=e}var RA={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},hD=["Webkit","ms","Moz","O"];Object.keys(RA).forEach(function(n){hD.forEach(function(e){e=e+n.charAt(0).toUpperCase()+n.substring(1),RA[e]=RA[n]})});function Qw(n,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||RA.hasOwnProperty(n)&&RA[n]?(""+e).trim():e+"px"}function Rw(n,e){n=n.style;for(var t in e)if(e.hasOwnProperty(t)){var i=t.indexOf("--")===0,r=Qw(t,e[t],i);t==="float"&&(t="cssFloat"),i?n.setProperty(t,r):n[t]=r}}var fD=Dn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function aC(n,e){if(e){if(fD[n]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Fe(137,n));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Fe(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Fe(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Fe(62))}}function lC(n,e){if(n.indexOf("-")===-1)return typeof e.is=="string";switch(n){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!1;default:return!0}}var cC=null;function o1(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var uC=null,ru=null,su=null;function Nx(n){if(n=Lh(n)){if(typeof uC!="function")throw Error(Fe(280));var e=n.stateNode;e&&(e=Sg(e),uC(n.stateNode,n.type,e))}}function Tw(n){ru?su?su.push(n):su=[n]:ru=n}function Dw(){if(ru){var n=ru,e=su;if(su=ru=null,Nx(n),e)for(n=0;n>>=0,n===0?32:31-(BD(n)/_D|0)|0}var qf=64,jf=4194304;function xA(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function Wp(n,e){var t=n.pendingLanes;if(t===0)return 0;var i=0,r=n.suspendedLanes,s=n.pingedLanes,o=t&268435455;if(o!==0){var a=o&~r;a!==0?i=xA(a):(s&=o,s!==0&&(i=xA(s)))}else o=t&~r,o!==0?i=xA(o):s!==0&&(i=xA(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=t&16),e=n.entangledLanes,e!==0)for(n=n.entanglements,e&=i;0t;t++)e.push(n);return e}function bh(n,e,t){n.pendingLanes|=e,e!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,e=31-ss(e),n[e]=t}function QD(n,e){var t=n.pendingLanes&~e;n.pendingLanes=e,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=e,n.mutableReadLanes&=e,n.entangledLanes&=e,e=n.entanglements;var i=n.eventTimes;for(n=n.expirationTimes;0=DA),zx=" ",Vx=!1;function Zw(n,e){switch(n){case"keyup":return ib.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $w(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Hc=!1;function sb(n,e){switch(n){case"compositionend":return $w(e);case"keypress":return e.which!==32?null:(Vx=!0,zx);case"textInput":return n=e.data,n===zx&&Vx?null:n;default:return null}}function ob(n,e){if(Hc)return n==="compositionend"||!d1&&Zw(n,e)?(n=qw(),gp=A1=oa=null,Hc=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=Jx(t)}}function iM(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?iM(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function rM(){for(var n=window,e=Op();e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=Op(n.document)}return e}function p1(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}function pb(n){var e=rM(),t=n.focusedElem,i=n.selectionRange;if(e!==t&&t&&t.ownerDocument&&iM(t.ownerDocument.documentElement,t)){if(i!==null&&p1(t)){if(e=i.start,n=i.end,n===void 0&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if(n=(e=t.ownerDocument||document)&&e.defaultView||window,n.getSelection){n=n.getSelection();var r=t.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!n.extend&&s>i&&(r=i,i=s,s=r),r=Kx(t,s);var o=Kx(t,i);r&&o&&(n.rangeCount!==1||n.anchorNode!==r.node||n.anchorOffset!==r.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),n.removeAllRanges(),s>i?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}}for(e=[],n=t;n=n.parentNode;)n.nodeType===1&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,zc=null,gC=null,NA=null,mC=!1;function qx(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;mC||zc==null||zc!==Op(i)||(i=zc,"selectionStart"in i&&p1(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),NA&&ZA(NA,i)||(NA=i,i=Jp(gC,"onSelect"),0Yc||(n.current=xC[Yc],xC[Yc]=null,Yc--)}function gn(n,e){Yc++,xC[Yc]=n.current,n.current=e}var Ba={},Di=Ma(Ba),ir=Ma(!1),Pl=Ba;function hu(n,e){var t=n.type.contextTypes;if(!t)return Ba;var i=n.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in t)r[s]=e[s];return i&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=e,n.__reactInternalMemoizedMaskedChildContext=r),r}function rr(n){return n=n.childContextTypes,n!=null}function qp(){xn(ir),xn(Di)}function iB(n,e,t){if(Di.current!==Ba)throw Error(Fe(168));gn(Di,e),gn(ir,t)}function fM(n,e,t){var i=n.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(Fe(108,uD(n)||"Unknown",r));return Dn({},t,i)}function jp(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||Ba,Pl=Di.current,gn(Di,n),gn(ir,ir.current),!0}function rB(n,e,t){var i=n.stateNode;if(!i)throw Error(Fe(169));t?(n=fM(n,e,Pl),i.__reactInternalMemoizedMergedChildContext=n,xn(ir),xn(Di),gn(Di,n)):xn(ir),gn(ir,t)}var io=null,wg=!1,L0=!1;function dM(n){io===null?io=[n]:io.push(n)}function wb(n){wg=!0,dM(n)}function Qa(){if(!L0&&io!==null){L0=!0;var n=0,e=ln;try{var t=io;for(ln=1;n>=o,r-=o,oo=1<<32-ss(e)+r|t<P?(K=T,T=null):K=T.sibling;var w=d(p,T,y[P],B);if(w===null){T===null&&(T=K);break}n&&T&&w.alternate===null&&e(p,T),I=s(w,I,P),M===null?R=w:M.sibling=w,M=w,T=K}if(P===y.length)return t(p,T),Sn&&dl(p,P),R;if(T===null){for(;PP?(K=T,T=null):K=T.sibling;var b=d(p,T,w.value,B);if(b===null){T===null&&(T=K);break}n&&T&&b.alternate===null&&e(p,T),I=s(b,I,P),M===null?R=b:M.sibling=b,M=b,T=K}if(w.done)return t(p,T),Sn&&dl(p,P),R;if(T===null){for(;!w.done;P++,w=y.next())w=f(p,w.value,B),w!==null&&(I=s(w,I,P),M===null?R=w:M.sibling=w,M=w);return Sn&&dl(p,P),R}for(T=i(p,T);!w.done;P++,w=y.next())w=m(T,p,P,w.value,B),w!==null&&(n&&w.alternate!==null&&T.delete(w.key===null?P:w.key),I=s(w,I,P),M===null?R=w:M.sibling=w,M=w);return n&&T.forEach(function(q){return e(p,q)}),Sn&&dl(p,P),R}function C(p,I,y,B){if(typeof y=="object"&&y!==null&&y.type===Oc&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case Xf:e:{for(var R=y.key,M=I;M!==null;){if(M.key===R){if(R=y.type,R===Oc){if(M.tag===7){t(p,M.sibling),I=r(M,y.props.children),I.return=p,p=I;break e}}else if(M.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===ta&&AB(R)===M.type){t(p,M.sibling),I=r(M,y.props),I.ref=sA(p,M,y),I.return=p,p=I;break e}t(p,M);break}else e(p,M);M=M.sibling}y.type===Oc?(I=Rl(y.props.children,p.mode,B,y.key),I.return=p,p=I):(B=Bp(y.type,y.key,y.props,null,p.mode,B),B.ref=sA(p,I,y),B.return=p,p=B)}return o(p);case Gc:e:{for(M=y.key;I!==null;){if(I.key===M)if(I.tag===4&&I.stateNode.containerInfo===y.containerInfo&&I.stateNode.implementation===y.implementation){t(p,I.sibling),I=r(I,y.children||[]),I.return=p,p=I;break e}else{t(p,I);break}else e(p,I);I=I.sibling}I=z0(y,p.mode,B),I.return=p,p=I}return o(p);case ta:return M=y._init,C(p,I,M(y._payload),B)}if(IA(y))return E(p,I,y,B);if(eA(y))return x(p,I,y,B);rd(p,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,I!==null&&I.tag===6?(t(p,I.sibling),I=r(I,y),I.return=p,p=I):(t(p,I),I=H0(y,p.mode,B),I.return=p,p=I),o(p)):t(p,I)}return C}var du=IM(!0),xM=IM(!1),Ph={},Ts=Ma(Ph),nh=Ma(Ph),ih=Ma(Ph);function Bl(n){if(n===Ph)throw Error(Fe(174));return n}function B1(n,e){switch(gn(ih,e),gn(nh,n),gn(Ts,Ph),n=e.nodeType,n){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:oC(null,"");break;default:n=n===8?e.parentNode:e,e=n.namespaceURI||null,n=n.tagName,e=oC(e,n)}xn(Ts),gn(Ts,e)}function pu(){xn(Ts),xn(nh),xn(ih)}function BM(n){Bl(ih.current);var e=Bl(Ts.current),t=oC(e,n.type);e!==t&&(gn(nh,n),gn(Ts,t))}function _1(n){nh.current===n&&(xn(Ts),xn(nh))}var Qn=Ma(0);function ig(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var P0=[];function S1(){for(var n=0;nt?t:4,n(!0);var i=U0.transition;U0.transition={};try{n(!1),e()}finally{ln=t,U0.transition=i}}function GM(){return zr().memoizedState}function Tb(n,e,t){var i=pa(n);if(t={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null},OM(n))HM(e,t);else if(t=EM(n,e,t,i),t!==null){var r=zi();os(t,n,i,r),zM(t,e,i)}}function Db(n,e,t){var i=pa(n),r={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null};if(OM(n))HM(e,r);else{var s=n.alternate;if(n.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,t);if(r.hasEagerState=!0,r.eagerState=a,cs(a,o)){var c=e.interleaved;c===null?(r.next=r,I1(e)):(r.next=c.next,c.next=r),e.interleaved=r;return}}catch{}finally{}t=EM(n,e,r,i),t!==null&&(r=zi(),os(t,n,i,r),zM(t,e,i))}}function OM(n){var e=n.alternate;return n===Tn||e!==null&&e===Tn}function HM(n,e){LA=rg=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function zM(n,e,t){if(t&4194240){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,l1(n,t)}}var sg={readContext:Hr,useCallback:_i,useContext:_i,useEffect:_i,useImperativeHandle:_i,useInsertionEffect:_i,useLayoutEffect:_i,useMemo:_i,useReducer:_i,useRef:_i,useState:_i,useDebugValue:_i,useDeferredValue:_i,useTransition:_i,useMutableSource:_i,useSyncExternalStore:_i,useId:_i,unstable_isNewReconciler:!1},bb={readContext:Hr,useCallback:function(n,e){return Bs().memoizedState=[n,e===void 0?null:e],n},useContext:Hr,useEffect:fB,useImperativeHandle:function(n,e,t){return t=t!=null?t.concat([n]):null,yp(4194308,4,LM.bind(null,e,n),t)},useLayoutEffect:function(n,e){return yp(4194308,4,n,e)},useInsertionEffect:function(n,e){return yp(4,2,n,e)},useMemo:function(n,e){var t=Bs();return e=e===void 0?null:e,n=n(),t.memoizedState=[n,e],n},useReducer:function(n,e,t){var i=Bs();return e=t!==void 0?t(e):e,i.memoizedState=i.baseState=e,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:e},i.queue=n,n=n.dispatch=Tb.bind(null,Tn,n),[i.memoizedState,n]},useRef:function(n){var e=Bs();return n={current:n},e.memoizedState=n},useState:hB,useDebugValue:T1,useDeferredValue:function(n){return Bs().memoizedState=n},useTransition:function(){var n=hB(!1),e=n[0];return n=Rb.bind(null,n[1]),Bs().memoizedState=n,[e,n]},useMutableSource:function(){},useSyncExternalStore:function(n,e,t){var i=Tn,r=Bs();if(Sn){if(t===void 0)throw Error(Fe(407));t=t()}else{if(t=e(),ci===null)throw Error(Fe(349));Fl&30||wM(i,e,t)}r.memoizedState=t;var s={value:t,getSnapshot:e};return r.queue=s,fB(QM.bind(null,i,s,n),[n]),i.flags|=2048,oh(9,MM.bind(null,i,s,t,e),void 0,null),t},useId:function(){var n=Bs(),e=ci.identifierPrefix;if(Sn){var t=ao,i=oo;t=(i&~(1<<32-ss(i)-1)).toString(32)+t,e=":"+e+"R"+t,t=rh++,0<\/script>",n=n.removeChild(n.firstChild)):typeof i.is=="string"?n=o.createElement(t,{is:i.is}):(n=o.createElement(t),t==="select"&&(o=n,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):n=o.createElementNS(n,t),n[Bs]=e,n[$A]=i,FM(n,e,!1,!1),e.stateNode=n;e:{switch(o=eC(t,i),t){case"dialog":Cn("cancel",n),Cn("close",n),r=i;break;case"iframe":case"object":case"embed":Cn("load",n),r=i;break;case"video":case"audio":for(r=0;rdu&&(e.flags|=128,i=!0,iA(s,!1),e.lanes=4194304)}else{if(!i)if(n=Zp(o),n!==null){if(e.flags|=128,i=!0,t=n.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),iA(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!_n)return Bi(e),null}else 2*Hn()-s.renderingStartTime>du&&t!==1073741824&&(e.flags|=128,i=!0,iA(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(t=s.last,t!==null?t.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Hn(),e.sibling=null,t=Mn.current,gn(Mn,i?t&1|2:t&1),e):(Bi(e),null);case 22:case 23:return R1(),i=e.memoizedState!==null,n!==null&&n.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?gr&1073741824&&(Bi(e),e.subtreeFlags&6&&(e.flags|=8192)):Bi(e),null;case 24:return null;case 25:return null}throw Error(Fe(156,e.tag))}function Sb(n,e){switch(u1(e),e.tag){case 1:return ir(e.type)&&Wp(),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return hu(),In(nr),In(Ti),C1(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 5:return E1(e),null;case 13:if(In(Mn),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(Fe(340));uu()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return In(Mn),null;case 4:return hu(),null;case 10:return d1(e.type._context),null;case 22:case 23:return R1(),null;case 24:return null;default:return null}}var rd=!1,Mi=!1,wb=typeof WeakSet=="function"?WeakSet:Set,nt=null;function Xc(n,e){var t=n.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(i){Pn(n,e,i)}else t.current=null}function wC(n,e,t){try{t()}catch(i){Pn(n,e,i)}}var fB=!1;function Mb(n,e){if(uC=Op,n=Vw(),l1(n)){if("selectionStart"in n)var t={start:n.selectionStart,end:n.selectionEnd};else e:{t=(t=n.ownerDocument)&&t.defaultView||window;var i=t.getSelection&&t.getSelection();if(i&&i.rangeCount!==0){t=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{t.nodeType,s.nodeType}catch{t=null;break e}var o=0,a=-1,c=-1,A=0,h=0,f=n,d=null;t:for(;;){for(var m;f!==t||r!==0&&f.nodeType!==3||(a=o+r),f!==s||i!==0&&f.nodeType!==3||(c=o+i),f.nodeType===3&&(o+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===n)break t;if(d===t&&++A===r&&(a=o),d===s&&++h===i&&(c=o),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}t=a===-1||c===-1?null:{start:a,end:c}}else t=null}t=t||{start:0,end:0}}else t=null;for(AC={focusedElem:n,selectionRange:t},Op=!1,nt=e;nt!==null;)if(e=nt,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,nt=n;else for(;nt!==null;){e=nt;try{var E=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var x=E.memoizedProps,C=E.memoizedState,g=e.stateNode,I=g.getSnapshotBeforeUpdate(e.elementType===e.type?x:$r(e.type,x),C);g.__reactInternalSnapshotBeforeUpdate=I}break;case 3:var y=e.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Fe(163))}}catch(B){Pn(e,e.return,B)}if(n=e.sibling,n!==null){n.return=e.return,nt=n;break}nt=e.return}return E=fB,fB=!1,E}function NA(n,e,t){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&n)===n){var s=r.destroy;r.destroy=void 0,s!==void 0&&wC(e,t,s)}r=r.next}while(r!==i)}}function _g(n,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&n)===n){var i=t.create;t.destroy=i()}t=t.next}while(t!==e)}}function MC(n){var e=n.ref;if(e!==null){var t=n.stateNode;switch(n.tag){case 5:n=t;break;default:n=t}typeof e=="function"?e(n):e.current=n}}function OM(n){var e=n.alternate;e!==null&&(n.alternate=null,OM(e)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(e=n.stateNode,e!==null&&(delete e[Bs],delete e[$A],delete e[dC],delete e[ub],delete e[Ab])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function HM(n){return n.tag===5||n.tag===3||n.tag===4}function dB(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||HM(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function QC(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(n,e):t.insertBefore(n,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(n,t)):(e=t,e.appendChild(n)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=Vp));else if(i!==4&&(n=n.child,n!==null))for(QC(n,e,t),n=n.sibling;n!==null;)QC(n,e,t),n=n.sibling}function RC(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.insertBefore(n,e):t.appendChild(n);else if(i!==4&&(n=n.child,n!==null))for(RC(n,e,t),n=n.sibling;n!==null;)RC(n,e,t),n=n.sibling}var pi=null,ts=!1;function Qo(n,e,t){for(t=t.child;t!==null;)zM(n,e,t),t=t.sibling}function zM(n,e,t){if(Ms&&typeof Ms.onCommitFiberUnmount=="function")try{Ms.onCommitFiberUnmount(mg,t)}catch{}switch(t.tag){case 5:Mi||Xc(t,e);case 6:var i=pi,r=ts;pi=null,Qo(n,e,t),pi=i,ts=r,pi!==null&&(ts?(n=pi,t=t.stateNode,n.nodeType===8?n.parentNode.removeChild(t):n.removeChild(t)):pi.removeChild(t.stateNode));break;case 18:pi!==null&&(ts?(n=pi,t=t.stateNode,n.nodeType===8?Q0(n.parentNode,t):n.nodeType===1&&Q0(n,t),JA(n)):Q0(pi,t.stateNode));break;case 4:i=pi,r=ts,pi=t.stateNode.containerInfo,ts=!0,Qo(n,e,t),pi=i,ts=r;break;case 0:case 11:case 14:case 15:if(!Mi&&(i=t.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&wC(t,e,o),r=r.next}while(r!==i)}Qo(n,e,t);break;case 1:if(!Mi&&(Xc(t,e),i=t.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=t.memoizedProps,i.state=t.memoizedState,i.componentWillUnmount()}catch(a){Pn(t,e,a)}Qo(n,e,t);break;case 21:Qo(n,e,t);break;case 22:t.mode&1?(Mi=(i=Mi)||t.memoizedState!==null,Qo(n,e,t),Mi=i):Qo(n,e,t);break;default:Qo(n,e,t)}}function pB(n){var e=n.updateQueue;if(e!==null){n.updateQueue=null;var t=n.stateNode;t===null&&(t=n.stateNode=new wb),e.forEach(function(i){var r=Ub.bind(null,n,i);t.has(i)||(t.add(i),i.then(r,r))})}}function Jr(n,e){var t=e.deletions;if(t!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=Hn()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Rb(i/1960))-i,10n?16:n,Xo===null)var i=!1;else{if(n=Xo,Xo=null,ig=0,Yt&6)throw Error(Fe(331));var r=Yt;for(Yt|=4,nt=n.current;nt!==null;){var s=nt,o=s.child;if(nt.flags&16){var a=s.deletions;if(a!==null){for(var c=0;cHn()-M1?yl(n,0):w1|=t),rr(n,e)}function jM(n,e){e===0&&(n.mode&1?(e=Kf,Kf<<=1,!(Kf&130023424)&&(Kf=4194304)):e=1);var t=Oi();n=Ao(n,e),n!==null&&(Rh(n,e,t),rr(n,t))}function Pb(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),jM(n,t)}function Ub(n,e){var t=0;switch(n.tag){case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;default:throw Error(Fe(314))}i!==null&&i.delete(e),jM(n,t)}var ZM;ZM=function(n,e,t){if(n!==null)if(n.memoizedProps!==e.pendingProps||nr.current)tr=!0;else{if(!(n.lanes&t)&&!(e.flags&128))return tr=!1,Bb(n,e,t);tr=!!(n.flags&131072)}else tr=!1,_n&&e.flags&1048576&&tM(e,Jp,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;gp(n,e),n=e.pendingProps;var r=cu(e,Ti.current);ru(e,t),r=v1(null,e,i,n,r,t);var s=I1();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,ir(i)?(s=!0,Yp(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,g1(e),r.updater=xg,e.stateNode=r,r._reactInternals=e,yC(e,i,n,t),e=xC(null,e,i,!0,s,t)):(e.tag=0,_n&&s&&c1(e),Fi(null,e,r,t),e=e.child),e;case 16:i=e.elementType;e:{switch(gp(n,e),n=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=kb(i),n=$r(i,n),r){case 0:e=IC(null,e,i,n,t);break e;case 1:e=uB(null,e,i,n,t);break e;case 11:e=lB(null,e,i,n,t);break e;case 14:e=cB(null,e,i,$r(i.type,n),t);break e}throw Error(Fe(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:$r(i,r),IC(n,e,i,r,t);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:$r(i,r),uB(n,e,i,r,t);case 3:e:{if(LM(e),n===null)throw Error(Fe(387));i=e.pendingProps,s=e.memoizedState,r=s.element,sM(n,e),jp(e,i,null,t);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=fu(Error(Fe(423)),e),e=AB(n,e,i,t,r);break e}else if(i!==r){r=fu(Error(Fe(424)),e),e=AB(n,e,i,t,r);break e}else for(Cr=Zo(e.stateNode.containerInfo.firstChild),vr=e,_n=!0,ns=null,t=cM(e,null,i,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(uu(),i===r){e=ho(n,e,t);break e}Fi(n,e,i,t)}e=e.child}return e;case 5:return uM(e),n===null&&mC(e),i=e.type,r=e.pendingProps,s=n!==null?n.memoizedProps:null,o=r.children,hC(i,r)?o=null:s!==null&&hC(i,s)&&(e.flags|=32),NM(n,e),Fi(n,e,o,t),e.child;case 6:return n===null&&mC(e),null;case 13:return PM(n,e,t);case 4:return m1(e,e.stateNode.containerInfo),i=e.pendingProps,n===null?e.child=Au(e,null,i,t):Fi(n,e,i,t),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:$r(i,r),lB(n,e,i,r,t);case 7:return Fi(n,e,e.pendingProps,t),e.child;case 8:return Fi(n,e,e.pendingProps.children,t),e.child;case 12:return Fi(n,e,e.pendingProps.children,t),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,gn(Kp,i._currentValue),i._currentValue=o,s!==null)if(as(s.value,o)){if(s.children===r.children&&!nr.current){e=ho(n,e,t);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var c=a.firstContext;c!==null;){if(c.context===i){if(s.tag===1){c=ao(-1,t&-t),c.tag=2;var A=s.updateQueue;if(A!==null){A=A.shared;var h=A.pending;h===null?c.next=c:(c.next=h.next,h.next=c),A.pending=c}}s.lanes|=t,c=s.alternate,c!==null&&(c.lanes|=t),EC(s.return,t,e),a.lanes|=t;break}c=c.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(Fe(341));o.lanes|=t,a=o.alternate,a!==null&&(a.lanes|=t),EC(o,t,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Fi(n,e,r.children,t),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,ru(e,t),r=Hr(r),i=i(r),e.flags|=1,Fi(n,e,i,t),e.child;case 14:return i=e.type,r=$r(i,e.pendingProps),r=$r(i.type,r),cB(n,e,i,r,t);case 15:return DM(n,e,e.type,e.pendingProps,t);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:$r(i,r),gp(n,e),e.tag=1,ir(i)?(n=!0,Yp(e)):n=!1,ru(e,t),aM(e,i,r),yC(e,i,r,t),xC(null,e,i,!0,n,t);case 19:return UM(n,e,t);case 22:return bM(n,e,t)}throw Error(Fe(156,e.tag))};function $M(n,e){return _w(n,e)}function Fb(n,e,t,i){this.tag=n,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function kr(n,e,t,i){return new Fb(n,e,t,i)}function D1(n){return n=n.prototype,!(!n||!n.isReactComponent)}function kb(n){if(typeof n=="function")return D1(n)?1:0;if(n!=null){if(n=n.$$typeof,n===jy)return 11;if(n===Zy)return 14}return 2}function na(n,e){var t=n.alternate;return t===null?(t=kr(n.tag,e,n.key,n.mode),t.elementType=n.elementType,t.type=n.type,t.stateNode=n.stateNode,t.alternate=n,n.alternate=t):(t.pendingProps=e,t.type=n.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=n.flags&14680064,t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=n.sibling,t.index=n.index,t.ref=n.ref,t}function Cp(n,e,t,i,r,s){var o=2;if(i=n,typeof n=="function")D1(n)&&(o=1);else if(typeof n=="string")o=5;else e:switch(n){case Fc:return vl(t.children,r,s,e);case qy:o=8,r|=8;break;case VE:return n=kr(12,t,e,r|2),n.elementType=VE,n.lanes=s,n;case WE:return n=kr(13,t,e,r),n.elementType=WE,n.lanes=s,n;case YE:return n=kr(19,t,e,r),n.elementType=YE,n.lanes=s,n;case lw:return wg(t,r,s,e);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case ow:o=10;break e;case aw:o=9;break e;case jy:o=11;break e;case Zy:o=14;break e;case Go:o=16,i=null;break e}throw Error(Fe(130,n==null?n:typeof n,""))}return e=kr(o,t,e,r),e.elementType=n,e.type=i,e.lanes=s,e}function vl(n,e,t,i){return n=kr(7,n,i,e),n.lanes=t,n}function wg(n,e,t,i){return n=kr(22,n,i,e),n.elementType=lw,n.lanes=t,n.stateNode={isHidden:!1},n}function U0(n,e,t){return n=kr(6,n,null,e),n.lanes=t,n}function F0(n,e,t){return e=kr(4,n.children!==null?n.children:[],n.key,e),e.lanes=t,e.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},e}function Gb(n,e,t,i,r){this.tag=e,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=E0(0),this.expirationTimes=E0(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=E0(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function b1(n,e,t,i,r,s,o,a,c){return n=new Gb(n,e,t,a,c),e===1?(e=1,s===!0&&(e|=8)):e=0,s=kr(3,null,null,e),n.current=s,s.stateNode=n,s.memoizedState={element:i,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},g1(s),n}function Ob(n,e,t){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i2)}catch(n){console.error(n)}}i2(),tw.exports=_r;var Yb=tw.exports,r2,xB=Yb;r2=xB.createRoot,xB.hydrateRoot;/** +`+s.stack}return{value:n,source:e,stack:r,digest:null}}function G0(n,e,t){return{value:n,source:null,stack:t??null,digest:e??null}}function QC(n,e){try{console.error(e.value)}catch(t){setTimeout(function(){throw t})}}var Pb=typeof WeakMap=="function"?WeakMap:Map;function VM(n,e,t){t=uo(-1,t),t.tag=3,t.payload={element:null};var i=e.value;return t.callback=function(){ag||(ag=!0,kC=i),QC(n,e)},t}function WM(n,e,t){t=uo(-1,t),t.tag=3;var i=n.type.getDerivedStateFromError;if(typeof i=="function"){var r=e.value;t.payload=function(){return i(r)},t.callback=function(){QC(n,e)}}var s=n.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(t.callback=function(){QC(n,e),typeof i!="function"&&(da===null?da=new Set([this]):da.add(this));var o=e.stack;this.componentDidCatch(e.value,{componentStack:o!==null?o:""})}),t}function dB(n,e,t){var i=n.pingCache;if(i===null){i=n.pingCache=new Pb;var r=new Set;i.set(e,r)}else r=i.get(e),r===void 0&&(r=new Set,i.set(e,r));r.has(t)||(r.add(t),n=qb.bind(null,n,e,t),e.then(n,n))}function pB(n){do{var e;if((e=n.tag===13)&&(e=n.memoizedState,e=e!==null?e.dehydrated!==null:!0),e)return n;n=n.return}while(n!==null);return null}function gB(n,e,t,i,r){return n.mode&1?(n.flags|=65536,n.lanes=r,n):(n===e?n.flags|=65536:(n.flags|=128,t.flags|=131072,t.flags&=-52805,t.tag===1&&(t.alternate===null?t.tag=17:(e=uo(-1,1),e.tag=2,fa(t,e,1))),t.lanes|=1),n)}var Ub=Eo.ReactCurrentOwner,nr=!1;function Gi(n,e,t,i){e.child=n===null?xM(e,null,t,i):du(e,n.child,t,i)}function mB(n,e,t,i,r){t=t.render;var s=e.ref;return au(e,r),i=M1(n,e,t,i,s,r),t=Q1(),n!==null&&!nr?(e.updateQueue=n.updateQueue,e.flags&=-2053,n.lanes&=~r,go(n,e,r)):(Sn&&t&&g1(e),e.flags|=1,Gi(n,e,i,r),e.child)}function EB(n,e,t,i,r){if(n===null){var s=t.type;return typeof s=="function"&&!k1(s)&&s.defaultProps===void 0&&t.compare===null&&t.defaultProps===void 0?(e.tag=15,e.type=s,YM(n,e,s,i,r)):(n=Bp(t.type,null,i,e,e.mode,r),n.ref=e.ref,n.return=e,e.child=n)}if(s=n.child,!(n.lanes&r)){var o=s.memoizedProps;if(t=t.compare,t=t!==null?t:ZA,t(o,i)&&n.ref===e.ref)return go(n,e,r)}return e.flags|=1,n=ga(s,i),n.ref=e.ref,n.return=e,e.child=n}function YM(n,e,t,i,r){if(n!==null){var s=n.memoizedProps;if(ZA(s,i)&&n.ref===e.ref)if(nr=!1,e.pendingProps=i=s,(n.lanes&r)!==0)n.flags&131072&&(nr=!0);else return e.lanes=n.lanes,go(n,e,r)}return RC(n,e,t,i,r)}function XM(n,e,t){var i=e.pendingProps,r=i.children,s=n!==null?n.memoizedState:null;if(i.mode==="hidden")if(!(e.mode&1))e.memoizedState={baseLanes:0,cachePool:null,transitions:null},gn(jc,mr),mr|=t;else{if(!(t&1073741824))return n=s!==null?s.baseLanes|t:t,e.lanes=e.childLanes=1073741824,e.memoizedState={baseLanes:n,cachePool:null,transitions:null},e.updateQueue=null,gn(jc,mr),mr|=n,null;e.memoizedState={baseLanes:0,cachePool:null,transitions:null},i=s!==null?s.baseLanes:t,gn(jc,mr),mr|=i}else s!==null?(i=s.baseLanes|t,e.memoizedState=null):i=t,gn(jc,mr),mr|=i;return Gi(n,e,r,t),e.child}function JM(n,e){var t=e.ref;(n===null&&t!==null||n!==null&&n.ref!==t)&&(e.flags|=512,e.flags|=2097152)}function RC(n,e,t,i,r){var s=rr(t)?Pl:Di.current;return s=hu(e,s),au(e,r),t=M1(n,e,t,i,s,r),i=Q1(),n!==null&&!nr?(e.updateQueue=n.updateQueue,e.flags&=-2053,n.lanes&=~r,go(n,e,r)):(Sn&&i&&g1(e),e.flags|=1,Gi(n,e,t,r),e.child)}function CB(n,e,t,i,r){if(rr(t)){var s=!0;jp(e)}else s=!1;if(au(e,r),e.stateNode===null)vp(n,e),vM(e,t,i),MC(e,t,i,r),i=!0;else if(n===null){var o=e.stateNode,a=e.memoizedProps;o.props=a;var c=o.context,A=t.contextType;typeof A=="object"&&A!==null?A=Hr(A):(A=rr(t)?Pl:Di.current,A=hu(e,A));var h=t.getDerivedStateFromProps,f=typeof h=="function"||typeof o.getSnapshotBeforeUpdate=="function";f||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==i||c!==A)&&uB(e,o,i,A),na=!1;var d=e.memoizedState;o.state=d,ng(e,i,o,r),c=e.memoizedState,a!==i||d!==c||ir.current||na?(typeof h=="function"&&(wC(e,t,h,i),c=e.memoizedState),(a=na||cB(e,t,a,i,d,c,A))?(f||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(e.flags|=4194308)):(typeof o.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=i,e.memoizedState=c),o.props=i,o.state=c,o.context=A,i=a):(typeof o.componentDidMount=="function"&&(e.flags|=4194308),i=!1)}else{o=e.stateNode,CM(n,e),a=e.memoizedProps,A=e.type===e.elementType?a:es(e.type,a),o.props=A,f=e.pendingProps,d=o.context,c=t.contextType,typeof c=="object"&&c!==null?c=Hr(c):(c=rr(t)?Pl:Di.current,c=hu(e,c));var m=t.getDerivedStateFromProps;(h=typeof m=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==f||d!==c)&&uB(e,o,i,c),na=!1,d=e.memoizedState,o.state=d,ng(e,i,o,r);var E=e.memoizedState;a!==f||d!==E||ir.current||na?(typeof m=="function"&&(wC(e,t,m,i),E=e.memoizedState),(A=na||cB(e,t,A,i,d,E,c)||!1)?(h||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(i,E,c),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(i,E,c)),typeof o.componentDidUpdate=="function"&&(e.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof o.componentDidUpdate!="function"||a===n.memoizedProps&&d===n.memoizedState||(e.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===n.memoizedProps&&d===n.memoizedState||(e.flags|=1024),e.memoizedProps=i,e.memoizedState=E),o.props=i,o.state=E,o.context=c,i=A):(typeof o.componentDidUpdate!="function"||a===n.memoizedProps&&d===n.memoizedState||(e.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===n.memoizedProps&&d===n.memoizedState||(e.flags|=1024),i=!1)}return TC(n,e,t,i,s,r)}function TC(n,e,t,i,r,s){JM(n,e);var o=(e.flags&128)!==0;if(!i&&!o)return r&&rB(e,t,!1),go(n,e,s);i=e.stateNode,Ub.current=e;var a=o&&typeof t.getDerivedStateFromError!="function"?null:i.render();return e.flags|=1,n!==null&&o?(e.child=du(e,n.child,null,s),e.child=du(e,null,a,s)):Gi(n,e,a,s),e.memoizedState=i.state,r&&rB(e,t,!0),e.child}function KM(n){var e=n.stateNode;e.pendingContext?iB(n,e.pendingContext,e.pendingContext!==e.context):e.context&&iB(n,e.context,!1),B1(n,e.containerInfo)}function yB(n,e,t,i,r){return fu(),E1(r),e.flags|=256,Gi(n,e,t,i),e.child}var DC={dehydrated:null,treeContext:null,retryLane:0};function bC(n){return{baseLanes:n,cachePool:null,transitions:null}}function qM(n,e,t){var i=e.pendingProps,r=Qn.current,s=!1,o=(e.flags&128)!==0,a;if((a=o)||(a=n!==null&&n.memoizedState===null?!1:(r&2)!==0),a?(s=!0,e.flags&=-129):(n===null||n.memoizedState!==null)&&(r|=1),gn(Qn,r&1),n===null)return _C(e),n=e.memoizedState,n!==null&&(n=n.dehydrated,n!==null)?(e.mode&1?n.data==="$!"?e.lanes=8:e.lanes=1073741824:e.lanes=1,null):(o=i.children,n=i.fallback,s?(i=e.mode,s=e.child,o={mode:"hidden",children:o},!(i&1)&&s!==null?(s.childLanes=0,s.pendingProps=o):s=Dg(o,i,0,null),n=Rl(n,i,t,null),s.return=e,n.return=e,s.sibling=n,e.child=s,e.child.memoizedState=bC(t),e.memoizedState=DC,n):D1(e,o));if(r=n.memoizedState,r!==null&&(a=r.dehydrated,a!==null))return Fb(n,e,o,i,a,r,t);if(s){s=i.fallback,o=e.mode,r=n.child,a=r.sibling;var c={mode:"hidden",children:i.children};return!(o&1)&&e.child!==r?(i=e.child,i.childLanes=0,i.pendingProps=c,e.deletions=null):(i=ga(r,c),i.subtreeFlags=r.subtreeFlags&14680064),a!==null?s=ga(a,s):(s=Rl(s,o,t,null),s.flags|=2),s.return=e,i.return=e,i.sibling=s,e.child=i,i=s,s=e.child,o=n.child.memoizedState,o=o===null?bC(t):{baseLanes:o.baseLanes|t,cachePool:null,transitions:o.transitions},s.memoizedState=o,s.childLanes=n.childLanes&~t,e.memoizedState=DC,i}return s=n.child,n=s.sibling,i=ga(s,{mode:"visible",children:i.children}),!(e.mode&1)&&(i.lanes=t),i.return=e,i.sibling=null,n!==null&&(t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)),e.child=i,e.memoizedState=null,i}function D1(n,e){return e=Dg({mode:"visible",children:e},n.mode,0,null),e.return=n,n.child=e}function sd(n,e,t,i){return i!==null&&E1(i),du(e,n.child,null,t),n=D1(e,e.pendingProps.children),n.flags|=2,e.memoizedState=null,n}function Fb(n,e,t,i,r,s,o){if(t)return e.flags&256?(e.flags&=-257,i=G0(Error(Fe(422))),sd(n,e,o,i)):e.memoizedState!==null?(e.child=n.child,e.flags|=128,null):(s=i.fallback,r=e.mode,i=Dg({mode:"visible",children:i.children},r,0,null),s=Rl(s,r,o,null),s.flags|=2,i.return=e,s.return=e,i.sibling=s,e.child=i,e.mode&1&&du(e,n.child,null,o),e.child.memoizedState=bC(o),e.memoizedState=DC,s);if(!(e.mode&1))return sd(n,e,o,null);if(r.data==="$!"){if(i=r.nextSibling&&r.nextSibling.dataset,i)var a=i.dgst;return i=a,s=Error(Fe(419)),i=G0(s,i,void 0),sd(n,e,o,i)}if(a=(o&n.childLanes)!==0,nr||a){if(i=ci,i!==null){switch(o&-o){case 4:r=2;break;case 16:r=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:r=32;break;case 536870912:r=268435456;break;default:r=0}r=r&(i.suspendedLanes|o)?0:r,r!==0&&r!==s.retryLane&&(s.retryLane=r,po(n,r),os(i,n,r,-1))}return F1(),i=G0(Error(Fe(421))),sd(n,e,o,i)}return r.data==="$?"?(e.flags|=128,e.child=n.child,e=jb.bind(null,n),r._reactRetry=e,null):(n=s.treeContext,yr=ha(r.nextSibling),Ir=e,Sn=!0,is=null,n!==null&&(Pr[Ur++]=oo,Pr[Ur++]=ao,Pr[Ur++]=Ul,oo=n.id,ao=n.overflow,Ul=e),e=D1(e,i.children),e.flags|=4096,e)}function vB(n,e,t){n.lanes|=e;var i=n.alternate;i!==null&&(i.lanes|=e),SC(n.return,e,t)}function O0(n,e,t,i,r){var s=n.memoizedState;s===null?n.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:i,tail:t,tailMode:r}:(s.isBackwards=e,s.rendering=null,s.renderingStartTime=0,s.last=i,s.tail=t,s.tailMode=r)}function jM(n,e,t){var i=e.pendingProps,r=i.revealOrder,s=i.tail;if(Gi(n,e,i.children,t),i=Qn.current,i&2)i=i&1|2,e.flags|=128;else{if(n!==null&&n.flags&128)e:for(n=e.child;n!==null;){if(n.tag===13)n.memoizedState!==null&&vB(n,t,e);else if(n.tag===19)vB(n,t,e);else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break e;for(;n.sibling===null;){if(n.return===null||n.return===e)break e;n=n.return}n.sibling.return=n.return,n=n.sibling}i&=1}if(gn(Qn,i),!(e.mode&1))e.memoizedState=null;else switch(r){case"forwards":for(t=e.child,r=null;t!==null;)n=t.alternate,n!==null&&ig(n)===null&&(r=t),t=t.sibling;t=r,t===null?(r=e.child,e.child=null):(r=t.sibling,t.sibling=null),O0(e,!1,r,t,s);break;case"backwards":for(t=null,r=e.child,e.child=null;r!==null;){if(n=r.alternate,n!==null&&ig(n)===null){e.child=r;break}n=r.sibling,r.sibling=t,t=r,r=n}O0(e,!0,t,null,s);break;case"together":O0(e,!1,null,null,void 0);break;default:e.memoizedState=null}return e.child}function vp(n,e){!(e.mode&1)&&n!==null&&(n.alternate=null,e.alternate=null,e.flags|=2)}function go(n,e,t){if(n!==null&&(e.dependencies=n.dependencies),kl|=e.lanes,!(t&e.childLanes))return null;if(n!==null&&e.child!==n.child)throw Error(Fe(153));if(e.child!==null){for(n=e.child,t=ga(n,n.pendingProps),e.child=t,t.return=e;n.sibling!==null;)n=n.sibling,t=t.sibling=ga(n,n.pendingProps),t.return=e;t.sibling=null}return e.child}function kb(n,e,t){switch(e.tag){case 3:KM(e),fu();break;case 5:BM(e);break;case 1:rr(e.type)&&jp(e);break;case 4:B1(e,e.stateNode.containerInfo);break;case 10:var i=e.type._context,r=e.memoizedProps.value;gn(eg,i._currentValue),i._currentValue=r;break;case 13:if(i=e.memoizedState,i!==null)return i.dehydrated!==null?(gn(Qn,Qn.current&1),e.flags|=128,null):t&e.child.childLanes?qM(n,e,t):(gn(Qn,Qn.current&1),n=go(n,e,t),n!==null?n.sibling:null);gn(Qn,Qn.current&1);break;case 19:if(i=(t&e.childLanes)!==0,n.flags&128){if(i)return jM(n,e,t);e.flags|=128}if(r=e.memoizedState,r!==null&&(r.rendering=null,r.tail=null,r.lastEffect=null),gn(Qn,Qn.current),i)break;return null;case 22:case 23:return e.lanes=0,XM(n,e,t)}return go(n,e,t)}var ZM,NC,$M,e2;ZM=function(n,e){for(var t=e.child;t!==null;){if(t.tag===5||t.tag===6)n.appendChild(t.stateNode);else if(t.tag!==4&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return;t=t.return}t.sibling.return=t.return,t=t.sibling}};NC=function(){};$M=function(n,e,t,i){var r=n.memoizedProps;if(r!==i){n=e.stateNode,Bl(Ts.current);var s=null;switch(t){case"input":r=nC(n,r),i=nC(n,i),s=[];break;case"select":r=Dn({},r,{value:void 0}),i=Dn({},i,{value:void 0}),s=[];break;case"textarea":r=sC(n,r),i=sC(n,i),s=[];break;default:typeof r.onClick!="function"&&typeof i.onClick=="function"&&(n.onclick=Kp)}aC(t,i);var o;t=null;for(A in r)if(!i.hasOwnProperty(A)&&r.hasOwnProperty(A)&&r[A]!=null)if(A==="style"){var a=r[A];for(o in a)a.hasOwnProperty(o)&&(t||(t={}),t[o]="")}else A!=="dangerouslySetInnerHTML"&&A!=="children"&&A!=="suppressContentEditableWarning"&&A!=="suppressHydrationWarning"&&A!=="autoFocus"&&(WA.hasOwnProperty(A)?s||(s=[]):(s=s||[]).push(A,null));for(A in i){var c=i[A];if(a=r!=null?r[A]:void 0,i.hasOwnProperty(A)&&c!==a&&(c!=null||a!=null))if(A==="style")if(a){for(o in a)!a.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(t||(t={}),t[o]="");for(o in c)c.hasOwnProperty(o)&&a[o]!==c[o]&&(t||(t={}),t[o]=c[o])}else t||(s||(s=[]),s.push(A,t)),t=c;else A==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,a=a?a.__html:void 0,c!=null&&a!==c&&(s=s||[]).push(A,c)):A==="children"?typeof c!="string"&&typeof c!="number"||(s=s||[]).push(A,""+c):A!=="suppressContentEditableWarning"&&A!=="suppressHydrationWarning"&&(WA.hasOwnProperty(A)?(c!=null&&A==="onScroll"&&Cn("scroll",n),s||a===c||(s=[])):(s=s||[]).push(A,c))}t&&(s=s||[]).push("style",t);var A=s;(e.updateQueue=A)&&(e.flags|=4)}};e2=function(n,e,t,i){t!==i&&(e.flags|=4)};function oA(n,e){if(!Sn)switch(n.tailMode){case"hidden":e=n.tail;for(var t=null;e!==null;)e.alternate!==null&&(t=e),e=e.sibling;t===null?n.tail=null:t.sibling=null;break;case"collapsed":t=n.tail;for(var i=null;t!==null;)t.alternate!==null&&(i=t),t=t.sibling;i===null?e||n.tail===null?n.tail=null:n.tail.sibling=null:i.sibling=null}}function Si(n){var e=n.alternate!==null&&n.alternate.child===n.child,t=0,i=0;if(e)for(var r=n.child;r!==null;)t|=r.lanes|r.childLanes,i|=r.subtreeFlags&14680064,i|=r.flags&14680064,r.return=n,r=r.sibling;else for(r=n.child;r!==null;)t|=r.lanes|r.childLanes,i|=r.subtreeFlags,i|=r.flags,r.return=n,r=r.sibling;return n.subtreeFlags|=i,n.childLanes=t,e}function Gb(n,e,t){var i=e.pendingProps;switch(m1(e),e.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Si(e),null;case 1:return rr(e.type)&&qp(),Si(e),null;case 3:return i=e.stateNode,pu(),xn(ir),xn(Di),S1(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(n===null||n.child===null)&&(id(e)?e.flags|=4:n===null||n.memoizedState.isDehydrated&&!(e.flags&256)||(e.flags|=1024,is!==null&&(HC(is),is=null))),NC(n,e),Si(e),null;case 5:_1(e);var r=Bl(ih.current);if(t=e.type,n!==null&&e.stateNode!=null)$M(n,e,t,i,r),n.ref!==e.ref&&(e.flags|=512,e.flags|=2097152);else{if(!i){if(e.stateNode===null)throw Error(Fe(166));return Si(e),null}if(n=Bl(Ts.current),id(e)){i=e.stateNode,t=e.type;var s=e.memoizedProps;switch(i[Ss]=e,i[th]=s,n=(e.mode&1)!==0,t){case"dialog":Cn("cancel",i),Cn("close",i);break;case"iframe":case"object":case"embed":Cn("load",i);break;case"video":case"audio":for(r=0;r<\/script>",n=n.removeChild(n.firstChild)):typeof i.is=="string"?n=o.createElement(t,{is:i.is}):(n=o.createElement(t),t==="select"&&(o=n,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):n=o.createElementNS(n,t),n[Ss]=e,n[th]=i,ZM(n,e,!1,!1),e.stateNode=n;e:{switch(o=lC(t,i),t){case"dialog":Cn("cancel",n),Cn("close",n),r=i;break;case"iframe":case"object":case"embed":Cn("load",n),r=i;break;case"video":case"audio":for(r=0;rmu&&(e.flags|=128,i=!0,oA(s,!1),e.lanes=4194304)}else{if(!i)if(n=ig(o),n!==null){if(e.flags|=128,i=!0,t=n.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),oA(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Sn)return Si(e),null}else 2*Hn()-s.renderingStartTime>mu&&t!==1073741824&&(e.flags|=128,i=!0,oA(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(t=s.last,t!==null?t.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Hn(),e.sibling=null,t=Qn.current,gn(Qn,i?t&1|2:t&1),e):(Si(e),null);case 22:case 23:return U1(),i=e.memoizedState!==null,n!==null&&n.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?mr&1073741824&&(Si(e),e.subtreeFlags&6&&(e.flags|=8192)):Si(e),null;case 24:return null;case 25:return null}throw Error(Fe(156,e.tag))}function Ob(n,e){switch(m1(e),e.tag){case 1:return rr(e.type)&&qp(),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return pu(),xn(ir),xn(Di),S1(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 5:return _1(e),null;case 13:if(xn(Qn),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(Fe(340));fu()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return xn(Qn),null;case 4:return pu(),null;case 10:return v1(e.type._context),null;case 22:case 23:return U1(),null;case 24:return null;default:return null}}var od=!1,Ri=!1,Hb=typeof WeakSet=="function"?WeakSet:Set,nt=null;function qc(n,e){var t=n.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(i){Pn(n,e,i)}else t.current=null}function LC(n,e,t){try{t()}catch(i){Pn(n,e,i)}}var IB=!1;function zb(n,e){if(EC=Yp,n=rM(),p1(n)){if("selectionStart"in n)var t={start:n.selectionStart,end:n.selectionEnd};else e:{t=(t=n.ownerDocument)&&t.defaultView||window;var i=t.getSelection&&t.getSelection();if(i&&i.rangeCount!==0){t=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{t.nodeType,s.nodeType}catch{t=null;break e}var o=0,a=-1,c=-1,A=0,h=0,f=n,d=null;t:for(;;){for(var m;f!==t||r!==0&&f.nodeType!==3||(a=o+r),f!==s||i!==0&&f.nodeType!==3||(c=o+i),f.nodeType===3&&(o+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===n)break t;if(d===t&&++A===r&&(a=o),d===s&&++h===i&&(c=o),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}t=a===-1||c===-1?null:{start:a,end:c}}else t=null}t=t||{start:0,end:0}}else t=null;for(CC={focusedElem:n,selectionRange:t},Yp=!1,nt=e;nt!==null;)if(e=nt,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,nt=n;else for(;nt!==null;){e=nt;try{var E=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var x=E.memoizedProps,C=E.memoizedState,p=e.stateNode,I=p.getSnapshotBeforeUpdate(e.elementType===e.type?x:es(e.type,x),C);p.__reactInternalSnapshotBeforeUpdate=I}break;case 3:var y=e.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Fe(163))}}catch(B){Pn(e,e.return,B)}if(n=e.sibling,n!==null){n.return=e.return,nt=n;break}nt=e.return}return E=IB,IB=!1,E}function PA(n,e,t){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&n)===n){var s=r.destroy;r.destroy=void 0,s!==void 0&&LC(e,t,s)}r=r.next}while(r!==i)}}function Rg(n,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&n)===n){var i=t.create;t.destroy=i()}t=t.next}while(t!==e)}}function PC(n){var e=n.ref;if(e!==null){var t=n.stateNode;switch(n.tag){case 5:n=t;break;default:n=t}typeof e=="function"?e(n):e.current=n}}function t2(n){var e=n.alternate;e!==null&&(n.alternate=null,t2(e)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(e=n.stateNode,e!==null&&(delete e[Ss],delete e[th],delete e[IC],delete e[_b],delete e[Sb])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function n2(n){return n.tag===5||n.tag===3||n.tag===4}function xB(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||n2(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function UC(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(n,e):t.insertBefore(n,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(n,t)):(e=t,e.appendChild(n)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=Kp));else if(i!==4&&(n=n.child,n!==null))for(UC(n,e,t),n=n.sibling;n!==null;)UC(n,e,t),n=n.sibling}function FC(n,e,t){var i=n.tag;if(i===5||i===6)n=n.stateNode,e?t.insertBefore(n,e):t.appendChild(n);else if(i!==4&&(n=n.child,n!==null))for(FC(n,e,t),n=n.sibling;n!==null;)FC(n,e,t),n=n.sibling}var gi=null,ns=!1;function zo(n,e,t){for(t=t.child;t!==null;)i2(n,e,t),t=t.sibling}function i2(n,e,t){if(Rs&&typeof Rs.onCommitFiberUnmount=="function")try{Rs.onCommitFiberUnmount(Ig,t)}catch{}switch(t.tag){case 5:Ri||qc(t,e);case 6:var i=gi,r=ns;gi=null,zo(n,e,t),gi=i,ns=r,gi!==null&&(ns?(n=gi,t=t.stateNode,n.nodeType===8?n.parentNode.removeChild(t):n.removeChild(t)):gi.removeChild(t.stateNode));break;case 18:gi!==null&&(ns?(n=gi,t=t.stateNode,n.nodeType===8?N0(n.parentNode,t):n.nodeType===1&&N0(n,t),qA(n)):N0(gi,t.stateNode));break;case 4:i=gi,r=ns,gi=t.stateNode.containerInfo,ns=!0,zo(n,e,t),gi=i,ns=r;break;case 0:case 11:case 14:case 15:if(!Ri&&(i=t.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&LC(t,e,o),r=r.next}while(r!==i)}zo(n,e,t);break;case 1:if(!Ri&&(qc(t,e),i=t.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=t.memoizedProps,i.state=t.memoizedState,i.componentWillUnmount()}catch(a){Pn(t,e,a)}zo(n,e,t);break;case 21:zo(n,e,t);break;case 22:t.mode&1?(Ri=(i=Ri)||t.memoizedState!==null,zo(n,e,t),Ri=i):zo(n,e,t);break;default:zo(n,e,t)}}function BB(n){var e=n.updateQueue;if(e!==null){n.updateQueue=null;var t=n.stateNode;t===null&&(t=n.stateNode=new Hb),e.forEach(function(i){var r=Zb.bind(null,n,i);t.has(i)||(t.add(i),i.then(r,r))})}}function Kr(n,e){var t=e.deletions;if(t!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=Hn()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Wb(i/1960))-i,10n?16:n,aa===null)var i=!1;else{if(n=aa,aa=null,lg=0,Jt&6)throw Error(Fe(331));var r=Jt;for(Jt|=4,nt=n.current;nt!==null;){var s=nt,o=s.child;if(nt.flags&16){var a=s.deletions;if(a!==null){for(var c=0;cHn()-L1?Ql(n,0):N1|=t),sr(n,e)}function A2(n,e){e===0&&(n.mode&1?(e=jf,jf<<=1,!(jf&130023424)&&(jf=4194304)):e=1);var t=zi();n=po(n,e),n!==null&&(bh(n,e,t),sr(n,t))}function jb(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),A2(n,t)}function Zb(n,e){var t=0;switch(n.tag){case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;default:throw Error(Fe(314))}i!==null&&i.delete(e),A2(n,t)}var h2;h2=function(n,e,t){if(n!==null)if(n.memoizedProps!==e.pendingProps||ir.current)nr=!0;else{if(!(n.lanes&t)&&!(e.flags&128))return nr=!1,kb(n,e,t);nr=!!(n.flags&131072)}else nr=!1,Sn&&e.flags&1048576&&pM(e,$p,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;vp(n,e),n=e.pendingProps;var r=hu(e,Di.current);au(e,t),r=M1(null,e,i,n,r,t);var s=Q1();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,rr(i)?(s=!0,jp(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,x1(e),r.updater=Mg,e.stateNode=r,r._reactInternals=e,MC(e,i,n,t),e=TC(null,e,i,!0,s,t)):(e.tag=0,Sn&&s&&g1(e),Gi(null,e,r,t),e=e.child),e;case 16:i=e.elementType;e:{switch(vp(n,e),n=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=eN(i),n=es(i,n),r){case 0:e=RC(null,e,i,n,t);break e;case 1:e=CB(null,e,i,n,t);break e;case 11:e=mB(null,e,i,n,t);break e;case 14:e=EB(null,e,i,es(i.type,n),t);break e}throw Error(Fe(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:es(i,r),RC(n,e,i,r,t);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:es(i,r),CB(n,e,i,r,t);case 3:e:{if(KM(e),n===null)throw Error(Fe(387));i=e.pendingProps,s=e.memoizedState,r=s.element,CM(n,e),ng(e,i,null,t);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=gu(Error(Fe(423)),e),e=yB(n,e,i,t,r);break e}else if(i!==r){r=gu(Error(Fe(424)),e),e=yB(n,e,i,t,r);break e}else for(yr=ha(e.stateNode.containerInfo.firstChild),Ir=e,Sn=!0,is=null,t=xM(e,null,i,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(fu(),i===r){e=go(n,e,t);break e}Gi(n,e,i,t)}e=e.child}return e;case 5:return BM(e),n===null&&_C(e),i=e.type,r=e.pendingProps,s=n!==null?n.memoizedProps:null,o=r.children,yC(i,r)?o=null:s!==null&&yC(i,s)&&(e.flags|=32),JM(n,e),Gi(n,e,o,t),e.child;case 6:return n===null&&_C(e),null;case 13:return qM(n,e,t);case 4:return B1(e,e.stateNode.containerInfo),i=e.pendingProps,n===null?e.child=du(e,null,i,t):Gi(n,e,i,t),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:es(i,r),mB(n,e,i,r,t);case 7:return Gi(n,e,e.pendingProps,t),e.child;case 8:return Gi(n,e,e.pendingProps.children,t),e.child;case 12:return Gi(n,e,e.pendingProps.children,t),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,gn(eg,i._currentValue),i._currentValue=o,s!==null)if(cs(s.value,o)){if(s.children===r.children&&!ir.current){e=go(n,e,t);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var c=a.firstContext;c!==null;){if(c.context===i){if(s.tag===1){c=uo(-1,t&-t),c.tag=2;var A=s.updateQueue;if(A!==null){A=A.shared;var h=A.pending;h===null?c.next=c:(c.next=h.next,h.next=c),A.pending=c}}s.lanes|=t,c=s.alternate,c!==null&&(c.lanes|=t),SC(s.return,t,e),a.lanes|=t;break}c=c.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(Fe(341));o.lanes|=t,a=o.alternate,a!==null&&(a.lanes|=t),SC(o,t,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Gi(n,e,r.children,t),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,au(e,t),r=Hr(r),i=i(r),e.flags|=1,Gi(n,e,i,t),e.child;case 14:return i=e.type,r=es(i,e.pendingProps),r=es(i.type,r),EB(n,e,i,r,t);case 15:return YM(n,e,e.type,e.pendingProps,t);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:es(i,r),vp(n,e),e.tag=1,rr(i)?(n=!0,jp(e)):n=!1,au(e,t),vM(e,i,r),MC(e,i,r,t),TC(null,e,i,!0,n,t);case 19:return jM(n,e,t);case 22:return XM(n,e,t)}throw Error(Fe(156,e.tag))};function f2(n,e){return kw(n,e)}function $b(n,e,t,i){this.tag=n,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function kr(n,e,t,i){return new $b(n,e,t,i)}function k1(n){return n=n.prototype,!(!n||!n.isReactComponent)}function eN(n){if(typeof n=="function")return k1(n)?1:0;if(n!=null){if(n=n.$$typeof,n===r1)return 11;if(n===s1)return 14}return 2}function ga(n,e){var t=n.alternate;return t===null?(t=kr(n.tag,e,n.key,n.mode),t.elementType=n.elementType,t.type=n.type,t.stateNode=n.stateNode,t.alternate=n,n.alternate=t):(t.pendingProps=e,t.type=n.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=n.flags&14680064,t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=n.sibling,t.index=n.index,t.ref=n.ref,t}function Bp(n,e,t,i,r,s){var o=2;if(i=n,typeof n=="function")k1(n)&&(o=1);else if(typeof n=="string")o=5;else e:switch(n){case Oc:return Rl(t.children,r,s,e);case i1:o=8,r|=8;break;case ZE:return n=kr(12,t,e,r|2),n.elementType=ZE,n.lanes=s,n;case $E:return n=kr(13,t,e,r),n.elementType=$E,n.lanes=s,n;case eC:return n=kr(19,t,e,r),n.elementType=eC,n.lanes=s,n;case Iw:return Dg(t,r,s,e);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case yw:o=10;break e;case vw:o=9;break e;case r1:o=11;break e;case s1:o=14;break e;case ta:o=16,i=null;break e}throw Error(Fe(130,n==null?n:typeof n,""))}return e=kr(o,t,e,r),e.elementType=n,e.type=i,e.lanes=s,e}function Rl(n,e,t,i){return n=kr(7,n,i,e),n.lanes=t,n}function Dg(n,e,t,i){return n=kr(22,n,i,e),n.elementType=Iw,n.lanes=t,n.stateNode={isHidden:!1},n}function H0(n,e,t){return n=kr(6,n,null,e),n.lanes=t,n}function z0(n,e,t){return e=kr(4,n.children!==null?n.children:[],n.key,e),e.lanes=t,e.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},e}function tN(n,e,t,i,r){this.tag=e,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=x0(0),this.expirationTimes=x0(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=x0(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function G1(n,e,t,i,r,s,o,a,c){return n=new tN(n,e,t,a,c),e===1?(e=1,s===!0&&(e|=8)):e=0,s=kr(3,null,null,e),n.current=s,s.stateNode=n,s.memoizedState={element:i,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},x1(s),n}function nN(n,e,t){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(m2)}catch(n){console.error(n)}}m2(),pw.exports=_r;var aN=pw.exports,E2,DB=aN;E2=DB.createRoot,DB.hydrateRoot;/** * @license * Copyright 2010-2023 Three.js Authors * SPDX-License-Identifier: MIT - */const Dg="161",Xb={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},Jb={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},s2=0,LC=1,o2=2,Kb=3,a2=0,bg=1,UA=2,es=3,Vr=0,Hi=1,_s=2,lo=0,Il=1,PC=2,UC=3,FC=4,l2=5,Vo=100,c2=101,u2=102,kC=103,GC=104,A2=200,h2=201,f2=202,d2=203,og=204,ag=205,p2=206,g2=207,m2=208,E2=209,C2=210,y2=211,v2=212,I2=213,x2=214,B2=0,_2=1,S2=2,oh=3,w2=4,M2=5,Q2=6,R2=7,Nh=0,T2=1,D2=2,Rs=0,b2=1,N2=2,L2=3,U1=4,P2=5,U2=6,OC="attached",F2="detached",Ng=300,fo=301,Aa=302,ah=303,lh=304,vu=306,ch=1e3,Qi=1001,uh=1002,Gn=1003,lg=1004,qb=1004,Al=1005,jb=1005,vn=1006,FA=1007,Zb=1007,Ss=1008,$b=1008,Ts=1009,k2=1010,G2=1011,Lg=1012,F1=1013,so=1014,Fr=1015,Dl=1016,k1=1017,G1=1018,ia=1020,O2=1021,ki=1023,H2=1024,z2=1025,ra=1026,bl=1027,V2=1028,O1=1029,W2=1030,H1=1031,z1=1033,yp=33776,vp=33777,Ip=33778,xp=33779,HC=35840,zC=35841,VC=35842,WC=35843,V1=36196,YC=37492,XC=37496,JC=37808,KC=37809,qC=37810,jC=37811,ZC=37812,$C=37813,ey=37814,ty=37815,ny=37816,iy=37817,ry=37818,sy=37819,oy=37820,ay=37821,Bp=36492,ly=36494,cy=36495,Y2=36283,uy=36284,Ay=36285,hy=36286,X2=2200,J2=2201,K2=2202,Ah=2300,hh=2301,_p=2302,gl=2400,ml=2401,fh=2402,Pg=2500,W1=2501,eN=0,tN=1,nN=2,Y1=3e3,sa=3001,q2=3200,X1=3201,ga=0,j2=1,mr="",On="srgb",bs="srgb-linear",Ug="display-p3",Lh="display-p3-linear",dh="linear",pn="srgb",ph="rec709",gh="p3",iN=0,al=7680,rN=7681,sN=7682,oN=7683,aN=34055,lN=34056,cN=5386,uN=512,AN=513,hN=514,fN=515,dN=516,pN=517,gN=518,fy=519,Z2=512,$2=513,eQ=514,J1=515,tQ=516,nQ=517,iQ=518,rQ=519,mh=35044,Jo=35048,mN=35040,EN=35045,CN=35049,yN=35041,vN=35046,IN=35050,xN=35042,BN="100",dy="300 es",cg=1035,ws=2e3,Eh=2001;class go{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const i=this._listeners[e.type];if(i!==void 0){e.target=this;const r=i.slice(0);for(let s=0,o=r.length;s>8&255]+_i[n>>16&255]+_i[n>>24&255]+"-"+_i[e&255]+_i[e>>8&255]+"-"+_i[e>>16&15|64]+_i[e>>24&255]+"-"+_i[t&63|128]+_i[t>>8&255]+"-"+_i[t>>16&255]+_i[t>>24&255]+_i[i&255]+_i[i>>8&255]+_i[i>>16&255]+_i[i>>24&255]).toLowerCase()}function Un(n,e,t){return Math.max(e,Math.min(t,n))}function K1(n,e){return(n%e+e)%e}function _N(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function SN(n,e,t){return n!==e?(t-n)/(e-n):0}function kA(n,e,t){return(1-t)*n+t*e}function wN(n,e,t,i){return kA(n,e,1-Math.exp(-t*i))}function MN(n,e=1){return e-Math.abs(K1(n,e*2)-e)}function QN(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function RN(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function TN(n,e){return n+Math.floor(Math.random()*(e-n+1))}function DN(n,e){return n+Math.random()*(e-n)}function bN(n){return n*(.5-Math.random())}function NN(n){n!==void 0&&(BB=n);let e=BB+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function LN(n){return n*xl}function PN(n){return n*pu}function py(n){return(n&n-1)===0&&n!==0}function UN(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function ug(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function FN(n,e,t,i,r){const s=Math.cos,o=Math.sin,a=s(t/2),c=o(t/2),A=s((e+i)/2),h=o((e+i)/2),f=s((e-i)/2),d=o((e-i)/2),m=s((i-e)/2),E=o((i-e)/2);switch(r){case"XYX":n.set(a*h,c*f,c*d,a*A);break;case"YZY":n.set(c*d,a*h,c*f,a*A);break;case"ZXZ":n.set(c*f,c*d,a*h,a*A);break;case"XZX":n.set(a*h,c*E,c*m,a*A);break;case"YXY":n.set(c*m,a*h,c*E,a*A);break;case"ZYZ":n.set(c*E,c*m,a*h,a*A);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Gi(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Rt(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}const kN={DEG2RAD:xl,RAD2DEG:pu,generateUUID:Ir,clamp:Un,euclideanModulo:K1,mapLinear:_N,inverseLerp:SN,lerp:kA,damp:wN,pingpong:MN,smoothstep:QN,smootherstep:RN,randInt:TN,randFloat:DN,randFloatSpread:bN,seededRandom:NN,degToRad:LN,radToDeg:PN,isPowerOfTwo:py,ceilPowerOfTwo:UN,floorPowerOfTwo:ug,setQuaternionFromProperEuler:FN,normalize:Rt,denormalize:Gi};class _e{constructor(e=0,t=0){_e.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Un(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class wt{constructor(e,t,i,r,s,o,a,c,A){wt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,c,A)}set(e,t,i,r,s,o,a,c,A){const h=this.elements;return h[0]=e,h[1]=r,h[2]=a,h[3]=t,h[4]=s,h[5]=c,h[6]=i,h[7]=o,h[8]=A,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[3],c=i[6],A=i[1],h=i[4],f=i[7],d=i[2],m=i[5],E=i[8],x=r[0],C=r[3],g=r[6],I=r[1],y=r[4],B=r[7],R=r[2],w=r[5],T=r[8];return s[0]=o*x+a*I+c*R,s[3]=o*C+a*y+c*w,s[6]=o*g+a*B+c*T,s[1]=A*x+h*I+f*R,s[4]=A*C+h*y+f*w,s[7]=A*g+h*B+f*T,s[2]=d*x+m*I+E*R,s[5]=d*C+m*y+E*w,s[8]=d*g+m*B+E*T,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8];return t*o*h-t*a*A-i*s*h+i*a*c+r*s*A-r*o*c}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8],f=h*o-a*A,d=a*c-h*s,m=A*s-o*c,E=t*f+i*d+r*m;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);const x=1/E;return e[0]=f*x,e[1]=(r*A-h*i)*x,e[2]=(a*i-r*o)*x,e[3]=d*x,e[4]=(h*t-r*c)*x,e[5]=(r*s-a*t)*x,e[6]=m*x,e[7]=(i*c-A*t)*x,e[8]=(o*t-i*s)*x,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,a){const c=Math.cos(s),A=Math.sin(s);return this.set(i*c,i*A,-i*(c*o+A*a)+o+e,-r*A,r*c,-r*(-A*o+c*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(k0.makeScale(e,t)),this}rotate(e){return this.premultiply(k0.makeRotation(-e)),this}translate(e,t){return this.premultiply(k0.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const k0=new wt;function sQ(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const GN={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function Kc(n,e){return new GN[n](e)}function Ch(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function oQ(){const n=Ch("canvas");return n.style.display="block",n}const _B={};function Bl(n){n in _B||(_B[n]=!0,console.warn(n))}const SB=new wt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),wB=new wt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),ad={[bs]:{transfer:dh,primaries:ph,toReference:n=>n,fromReference:n=>n},[On]:{transfer:pn,primaries:ph,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[Lh]:{transfer:dh,primaries:gh,toReference:n=>n.applyMatrix3(wB),fromReference:n=>n.applyMatrix3(SB)},[Ug]:{transfer:pn,primaries:gh,toReference:n=>n.convertSRGBToLinear().applyMatrix3(wB),fromReference:n=>n.applyMatrix3(SB).convertLinearToSRGB()}},ON=new Set([bs,Lh]),nn={enabled:!0,_workingColorSpace:bs,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!ON.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;const i=ad[e].toReference,r=ad[t].fromReference;return r(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return ad[n].primaries},getTransfer:function(n){return n===mr?dh:ad[n].transfer}};function ou(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function G0(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let cc;class q1{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{cc===void 0&&(cc=Ch("canvas")),cc.width=e.width,cc.height=e.height;const i=cc.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=cc}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=Ch("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==Ng)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case ch:e.x=e.x-Math.floor(e.x);break;case Qi:e.x=e.x<0?0:1;break;case uh:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case ch:e.y=e.y-Math.floor(e.y);break;case Qi:e.y=e.y<0?0:1;break;case uh:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Bl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===On?sa:Y1}set encoding(e){Bl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===sa?On:mr}}Sn.DEFAULT_IMAGE=null;Sn.DEFAULT_MAPPING=Ng;Sn.DEFAULT_ANISOTROPY=1;class sn{constructor(e=0,t=0,i=0,r=1){sn.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const c=e.elements,A=c[0],h=c[4],f=c[8],d=c[1],m=c[5],E=c[9],x=c[2],C=c[6],g=c[10];if(Math.abs(h-d)<.01&&Math.abs(f-x)<.01&&Math.abs(E-C)<.01){if(Math.abs(h+d)<.1&&Math.abs(f+x)<.1&&Math.abs(E+C)<.1&&Math.abs(A+m+g-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const y=(A+1)/2,B=(m+1)/2,R=(g+1)/2,w=(h+d)/4,T=(f+x)/4,P=(E+C)/4;return y>B&&y>R?y<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(y),r=w/i,s=T/i):B>R?B<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(B),i=w/r,s=P/r):R<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(R),i=T/s,r=P/s),this.set(i,r,s,t),this}let I=Math.sqrt((C-E)*(C-E)+(f-x)*(f-x)+(d-h)*(d-h));return Math.abs(I)<.001&&(I=1),this.x=(C-E)/I,this.y=(f-x)/I,this.z=(d-h)/I,this.w=Math.acos((A+m+g-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class aQ extends go{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new sn(0,0,e,t),this.scissorTest=!1,this.viewport=new sn(0,0,e,t);const r={width:e,height:t,depth:1};i.encoding!==void 0&&(Bl("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===sa?On:mr),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:vn,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},i),this.texture=new Sn(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps,this.texture.internalFormat=i.internalFormat,this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.depthTexture=i.depthTexture,this.samples=i.samples}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new El(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Wr extends aQ{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}}class Fg extends Sn{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Qi,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class VN extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new Fg(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class j1 extends Sn{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Qi,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class WN extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new j1(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class YN extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const s=this.texture;this.texture=[];for(let o=0;o=0?1:-1,y=1-g*g;if(y>Number.EPSILON){const R=Math.sqrt(y),w=Math.atan2(R,g*I);C=Math.sin(C*w)/R,a=Math.sin(a*w)/R}const B=a*I;if(c=c*C+d*B,A=A*C+m*B,h=h*C+E*B,f=f*C+x*B,C===1-a){const R=1/Math.sqrt(c*c+A*A+h*h+f*f);c*=R,A*=R,h*=R,f*=R}}e[t]=c,e[t+1]=A,e[t+2]=h,e[t+3]=f}static multiplyQuaternionsFlat(e,t,i,r,s,o){const a=i[r],c=i[r+1],A=i[r+2],h=i[r+3],f=s[o],d=s[o+1],m=s[o+2],E=s[o+3];return e[t]=a*E+h*f+c*m-A*d,e[t+1]=c*E+h*d+A*f-a*m,e[t+2]=A*E+h*m+a*d-c*f,e[t+3]=h*E-a*f-c*d-A*m,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,a=Math.cos,c=Math.sin,A=a(i/2),h=a(r/2),f=a(s/2),d=c(i/2),m=c(r/2),E=c(s/2);switch(o){case"XYZ":this._x=d*h*f+A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f-d*m*E;break;case"YXZ":this._x=d*h*f+A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f+d*m*E;break;case"ZXY":this._x=d*h*f-A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f-d*m*E;break;case"ZYX":this._x=d*h*f-A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f+d*m*E;break;case"YZX":this._x=d*h*f+A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f-d*m*E;break;case"XZY":this._x=d*h*f-A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f+d*m*E;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],a=t[5],c=t[9],A=t[2],h=t[6],f=t[10],d=i+a+f;if(d>0){const m=.5/Math.sqrt(d+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-A)*m,this._z=(o-r)*m}else if(i>a&&i>f){const m=2*Math.sqrt(1+i-a-f);this._w=(h-c)/m,this._x=.25*m,this._y=(r+o)/m,this._z=(s+A)/m}else if(a>f){const m=2*Math.sqrt(1+a-i-f);this._w=(s-A)/m,this._x=(r+o)/m,this._y=.25*m,this._z=(c+h)/m}else{const m=2*Math.sqrt(1+f-i-a);this._w=(o-r)/m,this._x=(s+A)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Un(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,a=t._x,c=t._y,A=t._z,h=t._w;return this._x=i*h+o*a+r*A-s*c,this._y=r*h+o*c+s*a-i*A,this._z=s*h+o*A+i*c-r*a,this._w=o*h-i*a-r*c-s*A,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let a=o*e._w+i*e._x+r*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const c=1-a*a;if(c<=Number.EPSILON){const m=1-t;return this._w=m*o+t*this._w,this._x=m*i+t*this._x,this._y=m*r+t*this._y,this._z=m*s+t*this._z,this.normalize(),this}const A=Math.sqrt(c),h=Math.atan2(A,a),f=Math.sin((1-t)*h)/A,d=Math.sin(t*h)/A;return this._w=o*f+this._w*d,this._x=i*f+this._x*d,this._y=r*f+this._y*d,this._z=s*f+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(s),i*Math.cos(s),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class G{constructor(e=0,t=0,i=0){G.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(MB.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(MB.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,a=e.z,c=e.w,A=2*(o*r-a*i),h=2*(a*t-s*r),f=2*(s*i-o*t);return this.x=t+c*A+o*f-a*h,this.y=i+c*h+a*A-s*f,this.z=r+c*f+s*h-o*A,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,a=t.y,c=t.z;return this.x=r*c-s*a,this.y=s*o-i*c,this.z=i*a-r*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return H0.copy(this).projectOnVector(e),this.sub(H0)}reflect(e){return this.sub(H0.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Un(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const H0=new G,MB=new zi;class ei{constructor(e=new G(1/0,1/0,1/0),t=new G(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,Kr),Kr.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(sA),cd.subVectors(this.max,sA),uc.subVectors(e.a,sA),Ac.subVectors(e.b,sA),hc.subVectors(e.c,sA),Ro.subVectors(Ac,uc),To.subVectors(hc,Ac),Ya.subVectors(uc,hc);let t=[0,-Ro.z,Ro.y,0,-To.z,To.y,0,-Ya.z,Ya.y,Ro.z,0,-Ro.x,To.z,0,-To.x,Ya.z,0,-Ya.x,-Ro.y,Ro.x,0,-To.y,To.x,0,-Ya.y,Ya.x,0];return!z0(t,uc,Ac,hc,cd)||(t=[1,0,0,0,1,0,0,0,1],!z0(t,uc,Ac,hc,cd))?!1:(ud.crossVectors(Ro,To),t=[ud.x,ud.y,ud.z],z0(t,uc,Ac,hc,cd))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Kr).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(Kr).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Ys[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Ys[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Ys[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Ys[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Ys[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Ys[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Ys[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Ys[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Ys),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const Ys=[new G,new G,new G,new G,new G,new G,new G,new G],Kr=new G,ld=new ei,uc=new G,Ac=new G,hc=new G,Ro=new G,To=new G,Ya=new G,sA=new G,cd=new G,ud=new G,Xa=new G;function z0(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){Xa.fromArray(n,s);const a=r.x*Math.abs(Xa.x)+r.y*Math.abs(Xa.y)+r.z*Math.abs(Xa.z),c=e.dot(Xa),A=t.dot(Xa),h=i.dot(Xa);if(Math.max(-Math.max(c,A,h),Math.min(c,A,h))>a)return!1}return!0}const XN=new ei,oA=new G,V0=new G;class ui{constructor(e=new G,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):XN.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;oA.subVectors(e,this.center);const t=oA.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(oA,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(V0.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(oA.copy(e.center).add(V0)),this.expandByPoint(oA.copy(e.center).sub(V0))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Xs=new G,W0=new G,Ad=new G,Do=new G,Y0=new G,hd=new G,X0=new G;class Iu{constructor(e=new G,t=new G(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Xs)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Xs.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Xs.copy(this.origin).addScaledVector(this.direction,t),Xs.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){W0.copy(e).add(t).multiplyScalar(.5),Ad.copy(t).sub(e).normalize(),Do.copy(this.origin).sub(W0);const s=e.distanceTo(t)*.5,o=-this.direction.dot(Ad),a=Do.dot(this.direction),c=-Do.dot(Ad),A=Do.lengthSq(),h=Math.abs(1-o*o);let f,d,m,E;if(h>0)if(f=o*c-a,d=o*a-c,E=s*h,f>=0)if(d>=-E)if(d<=E){const x=1/h;f*=x,d*=x,m=f*(f+o*d+2*a)+d*(o*f+d+2*c)+A}else d=s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;else d=-s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;else d<=-E?(f=Math.max(0,-(-o*s+a)),d=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+A):d<=E?(f=0,d=Math.min(Math.max(-s,-c),s),m=d*(d+2*c)+A):(f=Math.max(0,-(o*s+a)),d=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+A);else d=o>0?-s:s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;return i&&i.copy(this.origin).addScaledVector(this.direction,f),r&&r.copy(W0).addScaledVector(Ad,d),m}intersectSphere(e,t){Xs.subVectors(e.center,this.origin);const i=Xs.dot(this.direction),r=Xs.dot(Xs)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=i-o,c=i+o;return c<0?null:a<0?this.at(c,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,a,c;const A=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,d=this.origin;return A>=0?(i=(e.min.x-d.x)*A,r=(e.max.x-d.x)*A):(i=(e.max.x-d.x)*A,r=(e.min.x-d.x)*A),h>=0?(s=(e.min.y-d.y)*h,o=(e.max.y-d.y)*h):(s=(e.max.y-d.y)*h,o=(e.min.y-d.y)*h),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(a=(e.min.z-d.z)*f,c=(e.max.z-d.z)*f):(a=(e.max.z-d.z)*f,c=(e.min.z-d.z)*f),i>c||a>r)||((a>i||i!==i)&&(i=a),(c=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,Xs)!==null}intersectTriangle(e,t,i,r,s){Y0.subVectors(t,e),hd.subVectors(i,e),X0.crossVectors(Y0,hd);let o=this.direction.dot(X0),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;Do.subVectors(this.origin,e);const c=a*this.direction.dot(hd.crossVectors(Do,hd));if(c<0)return null;const A=a*this.direction.dot(Y0.cross(Do));if(A<0||c+A>o)return null;const h=-a*Do.dot(X0);return h<0?null:this.at(h/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ft{constructor(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,C){ft.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,C)}set(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,C){const g=this.elements;return g[0]=e,g[4]=t,g[8]=i,g[12]=r,g[1]=s,g[5]=o,g[9]=a,g[13]=c,g[2]=A,g[6]=h,g[10]=f,g[14]=d,g[3]=m,g[7]=E,g[11]=x,g[15]=C,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ft().fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/fc.setFromMatrixColumn(e,0).length(),s=1/fc.setFromMatrixColumn(e,1).length(),o=1/fc.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),a=Math.sin(i),c=Math.cos(r),A=Math.sin(r),h=Math.cos(s),f=Math.sin(s);if(e.order==="XYZ"){const d=o*h,m=o*f,E=a*h,x=a*f;t[0]=c*h,t[4]=-c*f,t[8]=A,t[1]=m+E*A,t[5]=d-x*A,t[9]=-a*c,t[2]=x-d*A,t[6]=E+m*A,t[10]=o*c}else if(e.order==="YXZ"){const d=c*h,m=c*f,E=A*h,x=A*f;t[0]=d+x*a,t[4]=E*a-m,t[8]=o*A,t[1]=o*f,t[5]=o*h,t[9]=-a,t[2]=m*a-E,t[6]=x+d*a,t[10]=o*c}else if(e.order==="ZXY"){const d=c*h,m=c*f,E=A*h,x=A*f;t[0]=d-x*a,t[4]=-o*f,t[8]=E+m*a,t[1]=m+E*a,t[5]=o*h,t[9]=x-d*a,t[2]=-o*A,t[6]=a,t[10]=o*c}else if(e.order==="ZYX"){const d=o*h,m=o*f,E=a*h,x=a*f;t[0]=c*h,t[4]=E*A-m,t[8]=d*A+x,t[1]=c*f,t[5]=x*A+d,t[9]=m*A-E,t[2]=-A,t[6]=a*c,t[10]=o*c}else if(e.order==="YZX"){const d=o*c,m=o*A,E=a*c,x=a*A;t[0]=c*h,t[4]=x-d*f,t[8]=E*f+m,t[1]=f,t[5]=o*h,t[9]=-a*h,t[2]=-A*h,t[6]=m*f+E,t[10]=d-x*f}else if(e.order==="XZY"){const d=o*c,m=o*A,E=a*c,x=a*A;t[0]=c*h,t[4]=-f,t[8]=A*h,t[1]=d*f+x,t[5]=o*h,t[9]=m*f-E,t[2]=E*f-m,t[6]=a*h,t[10]=x*f+d}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(JN,e,KN)}lookAt(e,t,i){const r=this.elements;return dr.subVectors(e,t),dr.lengthSq()===0&&(dr.z=1),dr.normalize(),bo.crossVectors(i,dr),bo.lengthSq()===0&&(Math.abs(i.z)===1?dr.x+=1e-4:dr.z+=1e-4,dr.normalize(),bo.crossVectors(i,dr)),bo.normalize(),fd.crossVectors(dr,bo),r[0]=bo.x,r[4]=fd.x,r[8]=dr.x,r[1]=bo.y,r[5]=fd.y,r[9]=dr.y,r[2]=bo.z,r[6]=fd.z,r[10]=dr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[4],c=i[8],A=i[12],h=i[1],f=i[5],d=i[9],m=i[13],E=i[2],x=i[6],C=i[10],g=i[14],I=i[3],y=i[7],B=i[11],R=i[15],w=r[0],T=r[4],P=r[8],J=r[12],M=r[1],b=r[5],K=r[9],ge=r[13],Y=r[2],ce=r[6],re=r[10],fe=r[14],U=r[3],Z=r[7],ee=r[11],ue=r[15];return s[0]=o*w+a*M+c*Y+A*U,s[4]=o*T+a*b+c*ce+A*Z,s[8]=o*P+a*K+c*re+A*ee,s[12]=o*J+a*ge+c*fe+A*ue,s[1]=h*w+f*M+d*Y+m*U,s[5]=h*T+f*b+d*ce+m*Z,s[9]=h*P+f*K+d*re+m*ee,s[13]=h*J+f*ge+d*fe+m*ue,s[2]=E*w+x*M+C*Y+g*U,s[6]=E*T+x*b+C*ce+g*Z,s[10]=E*P+x*K+C*re+g*ee,s[14]=E*J+x*ge+C*fe+g*ue,s[3]=I*w+y*M+B*Y+R*U,s[7]=I*T+y*b+B*ce+R*Z,s[11]=I*P+y*K+B*re+R*ee,s[15]=I*J+y*ge+B*fe+R*ue,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],a=e[5],c=e[9],A=e[13],h=e[2],f=e[6],d=e[10],m=e[14],E=e[3],x=e[7],C=e[11],g=e[15];return E*(+s*c*f-r*A*f-s*a*d+i*A*d+r*a*m-i*c*m)+x*(+t*c*m-t*A*d+s*o*d-r*o*m+r*A*h-s*c*h)+C*(+t*A*f-t*a*m-s*o*f+i*o*m+s*a*h-i*A*h)+g*(-r*a*h-t*c*f+t*a*d+r*o*f-i*o*d+i*c*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8],f=e[9],d=e[10],m=e[11],E=e[12],x=e[13],C=e[14],g=e[15],I=f*C*A-x*d*A+x*c*m-a*C*m-f*c*g+a*d*g,y=E*d*A-h*C*A-E*c*m+o*C*m+h*c*g-o*d*g,B=h*x*A-E*f*A+E*a*m-o*x*m-h*a*g+o*f*g,R=E*f*c-h*x*c-E*a*d+o*x*d+h*a*C-o*f*C,w=t*I+i*y+r*B+s*R;if(w===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/w;return e[0]=I*T,e[1]=(x*d*s-f*C*s-x*r*m+i*C*m+f*r*g-i*d*g)*T,e[2]=(a*C*s-x*c*s+x*r*A-i*C*A-a*r*g+i*c*g)*T,e[3]=(f*c*s-a*d*s-f*r*A+i*d*A+a*r*m-i*c*m)*T,e[4]=y*T,e[5]=(h*C*s-E*d*s+E*r*m-t*C*m-h*r*g+t*d*g)*T,e[6]=(E*c*s-o*C*s-E*r*A+t*C*A+o*r*g-t*c*g)*T,e[7]=(o*d*s-h*c*s+h*r*A-t*d*A-o*r*m+t*c*m)*T,e[8]=B*T,e[9]=(E*f*s-h*x*s-E*i*m+t*x*m+h*i*g-t*f*g)*T,e[10]=(o*x*s-E*a*s+E*i*A-t*x*A-o*i*g+t*a*g)*T,e[11]=(h*a*s-o*f*s-h*i*A+t*f*A+o*i*m-t*a*m)*T,e[12]=R*T,e[13]=(h*x*r-E*f*r+E*i*d-t*x*d-h*i*C+t*f*C)*T,e[14]=(E*a*r-o*x*r-E*i*c+t*x*c+o*i*C-t*a*C)*T,e[15]=(o*f*r-h*a*r+h*i*c-t*f*c-o*i*d+t*a*d)*T,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,a=e.y,c=e.z,A=s*o,h=s*a;return this.set(A*o+i,A*a-r*c,A*c+r*a,0,A*a+r*c,h*a+i,h*c-r*o,0,A*c-r*a,h*c+r*o,s*c*c+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,a=t._z,c=t._w,A=s+s,h=o+o,f=a+a,d=s*A,m=s*h,E=s*f,x=o*h,C=o*f,g=a*f,I=c*A,y=c*h,B=c*f,R=i.x,w=i.y,T=i.z;return r[0]=(1-(x+g))*R,r[1]=(m+B)*R,r[2]=(E-y)*R,r[3]=0,r[4]=(m-B)*w,r[5]=(1-(d+g))*w,r[6]=(C+I)*w,r[7]=0,r[8]=(E+y)*T,r[9]=(C-I)*T,r[10]=(1-(d+x))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=fc.set(r[0],r[1],r[2]).length();const o=fc.set(r[4],r[5],r[6]).length(),a=fc.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],qr.copy(this);const A=1/s,h=1/o,f=1/a;return qr.elements[0]*=A,qr.elements[1]*=A,qr.elements[2]*=A,qr.elements[4]*=h,qr.elements[5]*=h,qr.elements[6]*=h,qr.elements[8]*=f,qr.elements[9]*=f,qr.elements[10]*=f,t.setFromRotationMatrix(qr),i.x=s,i.y=o,i.z=a,this}makePerspective(e,t,i,r,s,o,a=ws){const c=this.elements,A=2*s/(t-e),h=2*s/(i-r),f=(t+e)/(t-e),d=(i+r)/(i-r);let m,E;if(a===ws)m=-(o+s)/(o-s),E=-2*o*s/(o-s);else if(a===Eh)m=-o/(o-s),E=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return c[0]=A,c[4]=0,c[8]=f,c[12]=0,c[1]=0,c[5]=h,c[9]=d,c[13]=0,c[2]=0,c[6]=0,c[10]=m,c[14]=E,c[3]=0,c[7]=0,c[11]=-1,c[15]=0,this}makeOrthographic(e,t,i,r,s,o,a=ws){const c=this.elements,A=1/(t-e),h=1/(i-r),f=1/(o-s),d=(t+e)*A,m=(i+r)*h;let E,x;if(a===ws)E=(o+s)*f,x=-2*f;else if(a===Eh)E=s*f,x=-1*f;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return c[0]=2*A,c[4]=0,c[8]=0,c[12]=-d,c[1]=0,c[5]=2*h,c[9]=0,c[13]=-m,c[2]=0,c[6]=0,c[10]=x,c[14]=-E,c[3]=0,c[7]=0,c[11]=0,c[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const fc=new G,qr=new ft,JN=new G(0,0,0),KN=new G(1,1,1),bo=new G,fd=new G,dr=new G,QB=new ft,RB=new zi;class xu{constructor(e=0,t=0,i=0,r=xu.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const r=e.elements,s=r[0],o=r[4],a=r[8],c=r[1],A=r[5],h=r[9],f=r[2],d=r[6],m=r[10];switch(t){case"XYZ":this._y=Math.asin(Un(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(d,A),this._z=0);break;case"YXZ":this._x=Math.asin(-Un(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,m),this._z=Math.atan2(c,A)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(Un(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-o,A)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-Un(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(d,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-o,A));break;case"YZX":this._z=Math.asin(Un(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,A),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(a,m));break;case"XZY":this._z=Math.asin(-Un(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,A),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return QB.makeRotationFromQuaternion(e),this.setFromRotationMatrix(QB,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return RB.setFromEuler(this),this.setFromQuaternion(RB,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}xu.DEFAULT_ORDER="XYZ";class _l{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,c){return a[c.uuid]===void 0&&(a[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(e.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const c=a.shapes;if(Array.isArray(c))for(let A=0,h=c.length;A0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(i.geometries=a),c.length>0&&(i.materials=c),A.length>0&&(i.textures=A),h.length>0&&(i.images=h),f.length>0&&(i.shapes=f),d.length>0&&(i.skeletons=d),m.length>0&&(i.animations=m),E.length>0&&(i.nodes=E)}return i.object=r,i;function o(a){const c=[];for(const A in a){const h=a[A];delete h.metadata,c.push(h)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){jr.subVectors(r,t),Ks.subVectors(i,t),J0.subVectors(e,t);const o=jr.dot(jr),a=jr.dot(Ks),c=jr.dot(J0),A=Ks.dot(Ks),h=Ks.dot(J0),f=o*A-a*a;if(f===0)return s.set(0,0,0),null;const d=1/f,m=(A*c-a*h)*d,E=(o*h-a*c)*d;return s.set(1-m-E,E,m)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,qs)===null?!1:qs.x>=0&&qs.y>=0&&qs.x+qs.y<=1}static getInterpolation(e,t,i,r,s,o,a,c){return this.getBarycoord(e,t,i,r,qs)===null?(c.x=0,c.y=0,"z"in c&&(c.z=0),"w"in c&&(c.w=0),null):(c.setScalar(0),c.addScaledVector(s,qs.x),c.addScaledVector(o,qs.y),c.addScaledVector(a,qs.z),c)}static isFrontFacing(e,t,i,r){return jr.subVectors(i,t),Ks.subVectors(e,t),jr.cross(Ks).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return jr.subVectors(this.c,this.b),Ks.subVectors(this.a,this.b),jr.cross(Ks).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Er.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Er.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return Er.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return Er.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Er.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,a;pc.subVectors(r,i),gc.subVectors(s,i),K0.subVectors(e,i);const c=pc.dot(K0),A=gc.dot(K0);if(c<=0&&A<=0)return t.copy(i);q0.subVectors(e,r);const h=pc.dot(q0),f=gc.dot(q0);if(h>=0&&f<=h)return t.copy(r);const d=c*f-h*A;if(d<=0&&c>=0&&h<=0)return o=c/(c-h),t.copy(i).addScaledVector(pc,o);j0.subVectors(e,s);const m=pc.dot(j0),E=gc.dot(j0);if(E>=0&&m<=E)return t.copy(s);const x=m*A-c*E;if(x<=0&&A>=0&&E<=0)return a=A/(A-E),t.copy(i).addScaledVector(gc,a);const C=h*E-m*f;if(C<=0&&f-h>=0&&m-E>=0)return LB.subVectors(s,r),a=(f-h)/(f-h+(m-E)),t.copy(r).addScaledVector(LB,a);const g=1/(C+x+d);return o=x*g,a=d*g,t.copy(i).addScaledVector(pc,o).addScaledVector(gc,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const lQ={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},No={h:0,s:0,l:0},pd={h:0,s:0,l:0};function Z0(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class Je{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=On){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,nn.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=nn.workingColorSpace){return this.r=e,this.g=t,this.b=i,nn.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=nn.workingColorSpace){if(e=K1(e,1),t=Un(t,0,1),i=Un(i,0,1),t===0)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=Z0(o,s,e+1/3),this.g=Z0(o,s,e),this.b=Z0(o,s,e-1/3)}return nn.toWorkingColorSpace(this,r),this}setStyle(e,t=On){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=On){const i=lQ[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=ou(e.r),this.g=ou(e.g),this.b=ou(e.b),this}copyLinearToSRGB(e){return this.r=G0(e.r),this.g=G0(e.g),this.b=G0(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=On){return nn.fromWorkingColorSpace(Si.copy(this),e),Math.round(Un(Si.r*255,0,255))*65536+Math.round(Un(Si.g*255,0,255))*256+Math.round(Un(Si.b*255,0,255))}getHexString(e=On){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=nn.workingColorSpace){nn.fromWorkingColorSpace(Si.copy(this),t);const i=Si.r,r=Si.g,s=Si.b,o=Math.max(i,r,s),a=Math.min(i,r,s);let c,A;const h=(a+o)/2;if(a===o)c=0,A=0;else{const f=o-a;switch(A=h<=.5?f/(o+a):f/(2-o-a),o){case i:c=(r-s)/f+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Il&&(i.blending=this.blending),this.side!==Vr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==og&&(i.blendSrc=this.blendSrc),this.blendDst!==ag&&(i.blendDst=this.blendDst),this.blendEquation!==Vo&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==oh&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==fy&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==al&&(i.stencilFail=this.stencilFail),this.stencilZFail!==al&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==al&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(s){const o=[];for(const a in s){const c=s[a];delete c.metadata,o.push(c)}return o}if(t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(t!==null){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class sr extends Ai{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Nh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const no=nL();function nL(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let c=0;c<256;++c){const A=c-127;A<-27?(i[c]=0,i[c|256]=32768,r[c]=24,r[c|256]=24):A<-14?(i[c]=1024>>-A-14,i[c|256]=1024>>-A-14|32768,r[c]=-A-1,r[c|256]=-A-1):A<=15?(i[c]=A+15<<10,i[c|256]=A+15<<10|32768,r[c]=13,r[c|256]=13):A<128?(i[c]=31744,i[c|256]=64512,r[c]=24,r[c|256]=24):(i[c]=31744,i[c|256]=64512,r[c]=13,r[c|256]=13)}const s=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let c=1;c<1024;++c){let A=c<<13,h=0;for(;!(A&8388608);)A<<=1,h-=8388608;A&=-8388609,h+=947912704,s[c]=A|h}for(let c=1024;c<2048;++c)s[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)o[c]=c<<23;o[31]=1199570944,o[32]=2147483648;for(let c=33;c<63;++c)o[c]=2147483648+(c-32<<23);o[63]=3347054592;for(let c=1;c<64;++c)c!==32&&(a[c]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:o,offsetTable:a}}function $i(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Un(n,-65504,65504),no.floatView[0]=n;const e=no.uint32View[0],t=e>>23&511;return no.baseTable[t]+((e&8388607)>>no.shiftTable[t])}function xA(n){const e=n>>10;return no.uint32View[0]=no.mantissaTable[no.offsetTable[e]+(n&1023)]+no.exponentTable[e],no.floatView[0]}const iL={toHalfFloat:$i,fromHalfFloat:xA},Jn=new G,gd=new _e;class tn{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=mh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Fr,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Bl("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const c=this.parameters;for(const A in c)c[A]!==void 0&&(e[A]=c[A]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const c in i){const A=i[c];e.data.attributes[c]=A.toJSON(e.data)}const r={};let s=!1;for(const c in this.morphAttributes){const A=this.morphAttributes[c],h=[];for(let f=0,d=A.length;f0&&(r[c]=h,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(t));const r=e.attributes;for(const A in r){const h=r[A];this.setAttribute(A,h.clone(t))}const s=e.morphAttributes;for(const A in s){const h=[],f=s[A];for(let d=0,m=f.length;d0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(PB.copy(s).invert(),Ja.copy(e.ray).applyMatrix4(PB),!(i.boundingBox!==null&&Ja.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,Ja)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,a=s.index,c=s.attributes.position,A=s.attributes.uv,h=s.attributes.uv1,f=s.attributes.normal,d=s.groups,m=s.drawRange;if(a!==null)if(Array.isArray(o))for(let E=0,x=d.length;Et.far?null:{distance:A,point:xd.clone(),object:n}}function Bd(n,e,t,i,r,s,o,a,c,A){n.getVertexPosition(a,Ec),n.getVertexPosition(c,Cc),n.getVertexPosition(A,yc);const h=hL(n,e,t,i,Ec,Cc,yc,Id);if(h){r&&(Cd.fromBufferAttribute(r,a),yd.fromBufferAttribute(r,c),vd.fromBufferAttribute(r,A),h.uv=Er.getInterpolation(Id,Ec,Cc,yc,Cd,yd,vd,new _e)),s&&(Cd.fromBufferAttribute(s,a),yd.fromBufferAttribute(s,c),vd.fromBufferAttribute(s,A),h.uv1=Er.getInterpolation(Id,Ec,Cc,yc,Cd,yd,vd,new _e),h.uv2=h.uv1),o&&(FB.fromBufferAttribute(o,a),kB.fromBufferAttribute(o,c),GB.fromBufferAttribute(o,A),h.normal=Er.getInterpolation(Id,Ec,Cc,yc,FB,kB,GB,new G),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const f={a,b:c,c:A,normal:new G,materialIndex:0};Er.getNormal(Ec,Cc,yc,f.normal),h.face=f}return h}class Fl extends Tt{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const c=[],A=[],h=[],f=[];let d=0,m=0;E("z","y","x",-1,-1,i,t,e,o,s,0),E("z","y","x",1,-1,i,t,-e,o,s,1),E("x","z","y",1,1,e,i,t,r,o,2),E("x","z","y",1,-1,e,i,-t,r,o,3),E("x","y","z",1,-1,e,t,i,r,s,4),E("x","y","z",-1,-1,e,t,-i,r,s,5),this.setIndex(c),this.setAttribute("position",new st(A,3)),this.setAttribute("normal",new st(h,3)),this.setAttribute("uv",new st(f,2));function E(x,C,g,I,y,B,R,w,T,P,J){const M=B/T,b=R/P,K=B/2,ge=R/2,Y=w/2,ce=T+1,re=P+1;let fe=0,U=0;const Z=new G;for(let ee=0;ee0?1:-1,h.push(Z.x,Z.y,Z.z),f.push(ye/T),f.push(1-ee/P),fe+=1}}for(let ee=0;ee>8&255]+wi[n>>16&255]+wi[n>>24&255]+"-"+wi[e&255]+wi[e>>8&255]+"-"+wi[e>>16&15|64]+wi[e>>24&255]+"-"+wi[t&63|128]+wi[t>>8&255]+"-"+wi[t>>16&255]+wi[t>>24&255]+wi[i&255]+wi[i>>8&255]+wi[i>>16&255]+wi[i>>24&255]).toLowerCase()}function Un(n,e,t){return Math.max(e,Math.min(t,n))}function nv(n,e){return(n%e+e)%e}function GN(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function ON(n,e,t){return n!==e?(t-n)/(e-n):0}function OA(n,e,t){return(1-t)*n+t*e}function HN(n,e,t,i){return OA(n,e,1-Math.exp(-t*i))}function zN(n,e=1){return e-Math.abs(nv(n,e*2)-e)}function VN(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function WN(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function YN(n,e){return n+Math.floor(Math.random()*(e-n+1))}function XN(n,e){return n+Math.random()*(e-n)}function JN(n){return n*(.5-Math.random())}function KN(n){n!==void 0&&(bB=n);let e=bB+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function qN(n){return n*Dl}function jN(n){return n*Eu}function xy(n){return(n&n-1)===0&&n!==0}function ZN(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function pg(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function $N(n,e,t,i,r){const s=Math.cos,o=Math.sin,a=s(t/2),c=o(t/2),A=s((e+i)/2),h=o((e+i)/2),f=s((e-i)/2),d=o((e-i)/2),m=s((i-e)/2),E=o((i-e)/2);switch(r){case"XYX":n.set(a*h,c*f,c*d,a*A);break;case"YZY":n.set(c*d,a*h,c*f,a*A);break;case"ZXZ":n.set(c*f,c*d,a*h,a*A);break;case"XZX":n.set(a*h,c*E,c*m,a*A);break;case"YXY":n.set(c*m,a*h,c*E,a*A);break;case"ZYZ":n.set(c*E,c*m,a*h,a*A);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Hi(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Rt(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}const eL={DEG2RAD:Dl,RAD2DEG:Eu,generateUUID:xr,clamp:Un,euclideanModulo:nv,mapLinear:GN,inverseLerp:ON,lerp:OA,damp:HN,pingpong:zN,smoothstep:VN,smootherstep:WN,randInt:YN,randFloat:XN,randFloatSpread:JN,seededRandom:KN,degToRad:qN,radToDeg:jN,isPowerOfTwo:xy,ceilPowerOfTwo:ZN,floorPowerOfTwo:pg,setQuaternionFromProperEuler:$N,normalize:Rt,denormalize:Hi};class _e{constructor(e=0,t=0){_e.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Un(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class wt{constructor(e,t,i,r,s,o,a,c,A){wt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,c,A)}set(e,t,i,r,s,o,a,c,A){const h=this.elements;return h[0]=e,h[1]=r,h[2]=a,h[3]=t,h[4]=s,h[5]=c,h[6]=i,h[7]=o,h[8]=A,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[3],c=i[6],A=i[1],h=i[4],f=i[7],d=i[2],m=i[5],E=i[8],x=r[0],C=r[3],p=r[6],I=r[1],y=r[4],B=r[7],R=r[2],M=r[5],T=r[8];return s[0]=o*x+a*I+c*R,s[3]=o*C+a*y+c*M,s[6]=o*p+a*B+c*T,s[1]=A*x+h*I+f*R,s[4]=A*C+h*y+f*M,s[7]=A*p+h*B+f*T,s[2]=d*x+m*I+E*R,s[5]=d*C+m*y+E*M,s[8]=d*p+m*B+E*T,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8];return t*o*h-t*a*A-i*s*h+i*a*c+r*s*A-r*o*c}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8],f=h*o-a*A,d=a*c-h*s,m=A*s-o*c,E=t*f+i*d+r*m;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);const x=1/E;return e[0]=f*x,e[1]=(r*A-h*i)*x,e[2]=(a*i-r*o)*x,e[3]=d*x,e[4]=(h*t-r*c)*x,e[5]=(r*s-a*t)*x,e[6]=m*x,e[7]=(i*c-A*t)*x,e[8]=(o*t-i*s)*x,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,a){const c=Math.cos(s),A=Math.sin(s);return this.set(i*c,i*A,-i*(c*o+A*a)+o+e,-r*A,r*c,-r*(-A*o+c*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(V0.makeScale(e,t)),this}rotate(e){return this.premultiply(V0.makeRotation(-e)),this}translate(e,t){return this.premultiply(V0.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const V0=new wt;function CQ(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const tL={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function Zc(n,e){return new tL[n](e)}function vh(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function yQ(){const n=vh("canvas");return n.style.display="block",n}const NB={};function bl(n){n in NB||(NB[n]=!0,console.warn(n))}const LB=new wt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),PB=new wt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),cd={[Ns]:{transfer:gh,primaries:mh,toReference:n=>n,fromReference:n=>n},[On]:{transfer:pn,primaries:mh,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[Fh]:{transfer:gh,primaries:Eh,toReference:n=>n.applyMatrix3(PB),fromReference:n=>n.applyMatrix3(LB)},[Hg]:{transfer:pn,primaries:Eh,toReference:n=>n.convertSRGBToLinear().applyMatrix3(PB),fromReference:n=>n.applyMatrix3(LB).convertLinearToSRGB()}},nL=new Set([Ns,Fh]),sn={enabled:!0,_workingColorSpace:Ns,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!nL.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;const i=cd[e].toReference,r=cd[t].fromReference;return r(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return cd[n].primaries},getTransfer:function(n){return n===Er?gh:cd[n].transfer}};function cu(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function W0(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let hc;class iv{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{hc===void 0&&(hc=vh("canvas")),hc.width=e.width,hc.height=e.height;const i=hc.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=hc}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=vh("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==kg)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case Ah:e.x=e.x-Math.floor(e.x);break;case Ti:e.x=e.x<0?0:1;break;case hh:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case Ah:e.y=e.y-Math.floor(e.y);break;case Ti:e.y=e.y<0?0:1;break;case hh:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return bl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===On?Ca:$1}set encoding(e){bl("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===Ca?On:Er}}wn.DEFAULT_IMAGE=null;wn.DEFAULT_MAPPING=kg;wn.DEFAULT_ANISOTROPY=1;class an{constructor(e=0,t=0,i=0,r=1){an.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const c=e.elements,A=c[0],h=c[4],f=c[8],d=c[1],m=c[5],E=c[9],x=c[2],C=c[6],p=c[10];if(Math.abs(h-d)<.01&&Math.abs(f-x)<.01&&Math.abs(E-C)<.01){if(Math.abs(h+d)<.1&&Math.abs(f+x)<.1&&Math.abs(E+C)<.1&&Math.abs(A+m+p-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const y=(A+1)/2,B=(m+1)/2,R=(p+1)/2,M=(h+d)/4,T=(f+x)/4,P=(E+C)/4;return y>B&&y>R?y<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(y),r=M/i,s=T/i):B>R?B<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(B),i=M/r,s=P/r):R<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(R),i=T/s,r=P/s),this.set(i,r,s,t),this}let I=Math.sqrt((C-E)*(C-E)+(f-x)*(f-x)+(d-h)*(d-h));return Math.abs(I)<.001&&(I=1),this.x=(C-E)/I,this.y=(f-x)/I,this.z=(d-h)/I,this.w=Math.acos((A+m+p-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class vQ extends Co{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new an(0,0,e,t),this.scissorTest=!1,this.viewport=new an(0,0,e,t);const r={width:e,height:t,depth:1};i.encoding!==void 0&&(bl("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===Ca?On:Er),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:In,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},i),this.texture=new wn(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps,this.texture.internalFormat=i.internalFormat,this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.depthTexture=i.depthTexture,this.samples=i.samples}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new wl(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Wr extends vQ{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}}class zg extends wn{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Ti,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class sL extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new zg(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class rv extends wn{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=Gn,this.minFilter=Gn,this.wrapR=Ti,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class oL extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new rv(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class aL extends Wr{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const s=this.texture;this.texture=[];for(let o=0;o=0?1:-1,y=1-p*p;if(y>Number.EPSILON){const R=Math.sqrt(y),M=Math.atan2(R,p*I);C=Math.sin(C*M)/R,a=Math.sin(a*M)/R}const B=a*I;if(c=c*C+d*B,A=A*C+m*B,h=h*C+E*B,f=f*C+x*B,C===1-a){const R=1/Math.sqrt(c*c+A*A+h*h+f*f);c*=R,A*=R,h*=R,f*=R}}e[t]=c,e[t+1]=A,e[t+2]=h,e[t+3]=f}static multiplyQuaternionsFlat(e,t,i,r,s,o){const a=i[r],c=i[r+1],A=i[r+2],h=i[r+3],f=s[o],d=s[o+1],m=s[o+2],E=s[o+3];return e[t]=a*E+h*f+c*m-A*d,e[t+1]=c*E+h*d+A*f-a*m,e[t+2]=A*E+h*m+a*d-c*f,e[t+3]=h*E-a*f-c*d-A*m,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,a=Math.cos,c=Math.sin,A=a(i/2),h=a(r/2),f=a(s/2),d=c(i/2),m=c(r/2),E=c(s/2);switch(o){case"XYZ":this._x=d*h*f+A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f-d*m*E;break;case"YXZ":this._x=d*h*f+A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f+d*m*E;break;case"ZXY":this._x=d*h*f-A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f-d*m*E;break;case"ZYX":this._x=d*h*f-A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f+d*m*E;break;case"YZX":this._x=d*h*f+A*m*E,this._y=A*m*f+d*h*E,this._z=A*h*E-d*m*f,this._w=A*h*f-d*m*E;break;case"XZY":this._x=d*h*f-A*m*E,this._y=A*m*f-d*h*E,this._z=A*h*E+d*m*f,this._w=A*h*f+d*m*E;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],a=t[5],c=t[9],A=t[2],h=t[6],f=t[10],d=i+a+f;if(d>0){const m=.5/Math.sqrt(d+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-A)*m,this._z=(o-r)*m}else if(i>a&&i>f){const m=2*Math.sqrt(1+i-a-f);this._w=(h-c)/m,this._x=.25*m,this._y=(r+o)/m,this._z=(s+A)/m}else if(a>f){const m=2*Math.sqrt(1+a-i-f);this._w=(s-A)/m,this._x=(r+o)/m,this._y=.25*m,this._z=(c+h)/m}else{const m=2*Math.sqrt(1+f-i-a);this._w=(o-r)/m,this._x=(s+A)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Un(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,a=t._x,c=t._y,A=t._z,h=t._w;return this._x=i*h+o*a+r*A-s*c,this._y=r*h+o*c+s*a-i*A,this._z=s*h+o*A+i*c-r*a,this._w=o*h-i*a-r*c-s*A,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let a=o*e._w+i*e._x+r*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const c=1-a*a;if(c<=Number.EPSILON){const m=1-t;return this._w=m*o+t*this._w,this._x=m*i+t*this._x,this._y=m*r+t*this._y,this._z=m*s+t*this._z,this.normalize(),this}const A=Math.sqrt(c),h=Math.atan2(A,a),f=Math.sin((1-t)*h)/A,d=Math.sin(t*h)/A;return this._w=o*f+this._w*d,this._x=i*f+this._x*d,this._y=r*f+this._y*d,this._z=s*f+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(s),i*Math.cos(s),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class G{constructor(e=0,t=0,i=0){G.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(UB.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(UB.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,a=e.z,c=e.w,A=2*(o*r-a*i),h=2*(a*t-s*r),f=2*(s*i-o*t);return this.x=t+c*A+o*f-a*h,this.y=i+c*h+a*A-s*f,this.z=r+c*f+s*h-o*A,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,a=t.y,c=t.z;return this.x=r*c-s*a,this.y=s*o-i*c,this.z=i*a-r*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return X0.copy(this).projectOnVector(e),this.sub(X0)}reflect(e){return this.sub(X0.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Un(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const X0=new G,UB=new Wi;class ti{constructor(e=new G(1/0,1/0,1/0),t=new G(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,qr),qr.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(lA),Ad.subVectors(this.max,lA),fc.subVectors(e.a,lA),dc.subVectors(e.b,lA),pc.subVectors(e.c,lA),Vo.subVectors(dc,fc),Wo.subVectors(pc,dc),el.subVectors(fc,pc);let t=[0,-Vo.z,Vo.y,0,-Wo.z,Wo.y,0,-el.z,el.y,Vo.z,0,-Vo.x,Wo.z,0,-Wo.x,el.z,0,-el.x,-Vo.y,Vo.x,0,-Wo.y,Wo.x,0,-el.y,el.x,0];return!J0(t,fc,dc,pc,Ad)||(t=[1,0,0,0,1,0,0,0,1],!J0(t,fc,dc,pc,Ad))?!1:(hd.crossVectors(Vo,Wo),t=[hd.x,hd.y,hd.z],J0(t,fc,dc,pc,Ad))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,qr).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(qr).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Js[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Js[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Js[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Js[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Js[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Js[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Js[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Js[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Js),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const Js=[new G,new G,new G,new G,new G,new G,new G,new G],qr=new G,ud=new ti,fc=new G,dc=new G,pc=new G,Vo=new G,Wo=new G,el=new G,lA=new G,Ad=new G,hd=new G,tl=new G;function J0(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){tl.fromArray(n,s);const a=r.x*Math.abs(tl.x)+r.y*Math.abs(tl.y)+r.z*Math.abs(tl.z),c=e.dot(tl),A=t.dot(tl),h=i.dot(tl);if(Math.max(-Math.max(c,A,h),Math.min(c,A,h))>a)return!1}return!0}const lL=new ti,cA=new G,K0=new G;class ui{constructor(e=new G,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):lL.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;cA.subVectors(e,this.center);const t=cA.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(cA,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(K0.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(cA.copy(e.center).add(K0)),this.expandByPoint(cA.copy(e.center).sub(K0))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Ks=new G,q0=new G,fd=new G,Yo=new G,j0=new G,dd=new G,Z0=new G;class _u{constructor(e=new G,t=new G(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Ks)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Ks.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Ks.copy(this.origin).addScaledVector(this.direction,t),Ks.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){q0.copy(e).add(t).multiplyScalar(.5),fd.copy(t).sub(e).normalize(),Yo.copy(this.origin).sub(q0);const s=e.distanceTo(t)*.5,o=-this.direction.dot(fd),a=Yo.dot(this.direction),c=-Yo.dot(fd),A=Yo.lengthSq(),h=Math.abs(1-o*o);let f,d,m,E;if(h>0)if(f=o*c-a,d=o*a-c,E=s*h,f>=0)if(d>=-E)if(d<=E){const x=1/h;f*=x,d*=x,m=f*(f+o*d+2*a)+d*(o*f+d+2*c)+A}else d=s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;else d=-s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;else d<=-E?(f=Math.max(0,-(-o*s+a)),d=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+A):d<=E?(f=0,d=Math.min(Math.max(-s,-c),s),m=d*(d+2*c)+A):(f=Math.max(0,-(o*s+a)),d=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+A);else d=o>0?-s:s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+A;return i&&i.copy(this.origin).addScaledVector(this.direction,f),r&&r.copy(q0).addScaledVector(fd,d),m}intersectSphere(e,t){Ks.subVectors(e.center,this.origin);const i=Ks.dot(this.direction),r=Ks.dot(Ks)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=i-o,c=i+o;return c<0?null:a<0?this.at(c,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,a,c;const A=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,d=this.origin;return A>=0?(i=(e.min.x-d.x)*A,r=(e.max.x-d.x)*A):(i=(e.max.x-d.x)*A,r=(e.min.x-d.x)*A),h>=0?(s=(e.min.y-d.y)*h,o=(e.max.y-d.y)*h):(s=(e.max.y-d.y)*h,o=(e.min.y-d.y)*h),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(a=(e.min.z-d.z)*f,c=(e.max.z-d.z)*f):(a=(e.max.z-d.z)*f,c=(e.min.z-d.z)*f),i>c||a>r)||((a>i||i!==i)&&(i=a),(c=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,Ks)!==null}intersectTriangle(e,t,i,r,s){j0.subVectors(t,e),dd.subVectors(i,e),Z0.crossVectors(j0,dd);let o=this.direction.dot(Z0),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;Yo.subVectors(this.origin,e);const c=a*this.direction.dot(dd.crossVectors(Yo,dd));if(c<0)return null;const A=a*this.direction.dot(j0.cross(Yo));if(A<0||c+A>o)return null;const h=-a*Yo.dot(Z0);return h<0?null:this.at(h/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ft{constructor(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,C){ft.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,C)}set(e,t,i,r,s,o,a,c,A,h,f,d,m,E,x,C){const p=this.elements;return p[0]=e,p[4]=t,p[8]=i,p[12]=r,p[1]=s,p[5]=o,p[9]=a,p[13]=c,p[2]=A,p[6]=h,p[10]=f,p[14]=d,p[3]=m,p[7]=E,p[11]=x,p[15]=C,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ft().fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/gc.setFromMatrixColumn(e,0).length(),s=1/gc.setFromMatrixColumn(e,1).length(),o=1/gc.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),a=Math.sin(i),c=Math.cos(r),A=Math.sin(r),h=Math.cos(s),f=Math.sin(s);if(e.order==="XYZ"){const d=o*h,m=o*f,E=a*h,x=a*f;t[0]=c*h,t[4]=-c*f,t[8]=A,t[1]=m+E*A,t[5]=d-x*A,t[9]=-a*c,t[2]=x-d*A,t[6]=E+m*A,t[10]=o*c}else if(e.order==="YXZ"){const d=c*h,m=c*f,E=A*h,x=A*f;t[0]=d+x*a,t[4]=E*a-m,t[8]=o*A,t[1]=o*f,t[5]=o*h,t[9]=-a,t[2]=m*a-E,t[6]=x+d*a,t[10]=o*c}else if(e.order==="ZXY"){const d=c*h,m=c*f,E=A*h,x=A*f;t[0]=d-x*a,t[4]=-o*f,t[8]=E+m*a,t[1]=m+E*a,t[5]=o*h,t[9]=x-d*a,t[2]=-o*A,t[6]=a,t[10]=o*c}else if(e.order==="ZYX"){const d=o*h,m=o*f,E=a*h,x=a*f;t[0]=c*h,t[4]=E*A-m,t[8]=d*A+x,t[1]=c*f,t[5]=x*A+d,t[9]=m*A-E,t[2]=-A,t[6]=a*c,t[10]=o*c}else if(e.order==="YZX"){const d=o*c,m=o*A,E=a*c,x=a*A;t[0]=c*h,t[4]=x-d*f,t[8]=E*f+m,t[1]=f,t[5]=o*h,t[9]=-a*h,t[2]=-A*h,t[6]=m*f+E,t[10]=d-x*f}else if(e.order==="XZY"){const d=o*c,m=o*A,E=a*c,x=a*A;t[0]=c*h,t[4]=-f,t[8]=A*h,t[1]=d*f+x,t[5]=o*h,t[9]=m*f-E,t[2]=E*f-m,t[6]=a*h,t[10]=x*f+d}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(cL,e,uL)}lookAt(e,t,i){const r=this.elements;return pr.subVectors(e,t),pr.lengthSq()===0&&(pr.z=1),pr.normalize(),Xo.crossVectors(i,pr),Xo.lengthSq()===0&&(Math.abs(i.z)===1?pr.x+=1e-4:pr.z+=1e-4,pr.normalize(),Xo.crossVectors(i,pr)),Xo.normalize(),pd.crossVectors(pr,Xo),r[0]=Xo.x,r[4]=pd.x,r[8]=pr.x,r[1]=Xo.y,r[5]=pd.y,r[9]=pr.y,r[2]=Xo.z,r[6]=pd.z,r[10]=pr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[4],c=i[8],A=i[12],h=i[1],f=i[5],d=i[9],m=i[13],E=i[2],x=i[6],C=i[10],p=i[14],I=i[3],y=i[7],B=i[11],R=i[15],M=r[0],T=r[4],P=r[8],K=r[12],w=r[1],b=r[5],q=r[9],de=r[13],Y=r[2],ie=r[6],te=r[10],ue=r[14],U=r[3],$=r[7],ee=r[11],Ae=r[15];return s[0]=o*M+a*w+c*Y+A*U,s[4]=o*T+a*b+c*ie+A*$,s[8]=o*P+a*q+c*te+A*ee,s[12]=o*K+a*de+c*ue+A*Ae,s[1]=h*M+f*w+d*Y+m*U,s[5]=h*T+f*b+d*ie+m*$,s[9]=h*P+f*q+d*te+m*ee,s[13]=h*K+f*de+d*ue+m*Ae,s[2]=E*M+x*w+C*Y+p*U,s[6]=E*T+x*b+C*ie+p*$,s[10]=E*P+x*q+C*te+p*ee,s[14]=E*K+x*de+C*ue+p*Ae,s[3]=I*M+y*w+B*Y+R*U,s[7]=I*T+y*b+B*ie+R*$,s[11]=I*P+y*q+B*te+R*ee,s[15]=I*K+y*de+B*ue+R*Ae,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],a=e[5],c=e[9],A=e[13],h=e[2],f=e[6],d=e[10],m=e[14],E=e[3],x=e[7],C=e[11],p=e[15];return E*(+s*c*f-r*A*f-s*a*d+i*A*d+r*a*m-i*c*m)+x*(+t*c*m-t*A*d+s*o*d-r*o*m+r*A*h-s*c*h)+C*(+t*A*f-t*a*m-s*o*f+i*o*m+s*a*h-i*A*h)+p*(-r*a*h-t*c*f+t*a*d+r*o*f-i*o*d+i*c*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],c=e[6],A=e[7],h=e[8],f=e[9],d=e[10],m=e[11],E=e[12],x=e[13],C=e[14],p=e[15],I=f*C*A-x*d*A+x*c*m-a*C*m-f*c*p+a*d*p,y=E*d*A-h*C*A-E*c*m+o*C*m+h*c*p-o*d*p,B=h*x*A-E*f*A+E*a*m-o*x*m-h*a*p+o*f*p,R=E*f*c-h*x*c-E*a*d+o*x*d+h*a*C-o*f*C,M=t*I+i*y+r*B+s*R;if(M===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const T=1/M;return e[0]=I*T,e[1]=(x*d*s-f*C*s-x*r*m+i*C*m+f*r*p-i*d*p)*T,e[2]=(a*C*s-x*c*s+x*r*A-i*C*A-a*r*p+i*c*p)*T,e[3]=(f*c*s-a*d*s-f*r*A+i*d*A+a*r*m-i*c*m)*T,e[4]=y*T,e[5]=(h*C*s-E*d*s+E*r*m-t*C*m-h*r*p+t*d*p)*T,e[6]=(E*c*s-o*C*s-E*r*A+t*C*A+o*r*p-t*c*p)*T,e[7]=(o*d*s-h*c*s+h*r*A-t*d*A-o*r*m+t*c*m)*T,e[8]=B*T,e[9]=(E*f*s-h*x*s-E*i*m+t*x*m+h*i*p-t*f*p)*T,e[10]=(o*x*s-E*a*s+E*i*A-t*x*A-o*i*p+t*a*p)*T,e[11]=(h*a*s-o*f*s-h*i*A+t*f*A+o*i*m-t*a*m)*T,e[12]=R*T,e[13]=(h*x*r-E*f*r+E*i*d-t*x*d-h*i*C+t*f*C)*T,e[14]=(E*a*r-o*x*r-E*i*c+t*x*c+o*i*C-t*a*C)*T,e[15]=(o*f*r-h*a*r+h*i*c-t*f*c-o*i*d+t*a*d)*T,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,a=e.y,c=e.z,A=s*o,h=s*a;return this.set(A*o+i,A*a-r*c,A*c+r*a,0,A*a+r*c,h*a+i,h*c-r*o,0,A*c-r*a,h*c+r*o,s*c*c+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,a=t._z,c=t._w,A=s+s,h=o+o,f=a+a,d=s*A,m=s*h,E=s*f,x=o*h,C=o*f,p=a*f,I=c*A,y=c*h,B=c*f,R=i.x,M=i.y,T=i.z;return r[0]=(1-(x+p))*R,r[1]=(m+B)*R,r[2]=(E-y)*R,r[3]=0,r[4]=(m-B)*M,r[5]=(1-(d+p))*M,r[6]=(C+I)*M,r[7]=0,r[8]=(E+y)*T,r[9]=(C-I)*T,r[10]=(1-(d+x))*T,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=gc.set(r[0],r[1],r[2]).length();const o=gc.set(r[4],r[5],r[6]).length(),a=gc.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],jr.copy(this);const A=1/s,h=1/o,f=1/a;return jr.elements[0]*=A,jr.elements[1]*=A,jr.elements[2]*=A,jr.elements[4]*=h,jr.elements[5]*=h,jr.elements[6]*=h,jr.elements[8]*=f,jr.elements[9]*=f,jr.elements[10]*=f,t.setFromRotationMatrix(jr),i.x=s,i.y=o,i.z=a,this}makePerspective(e,t,i,r,s,o,a=Qs){const c=this.elements,A=2*s/(t-e),h=2*s/(i-r),f=(t+e)/(t-e),d=(i+r)/(i-r);let m,E;if(a===Qs)m=-(o+s)/(o-s),E=-2*o*s/(o-s);else if(a===yh)m=-o/(o-s),E=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return c[0]=A,c[4]=0,c[8]=f,c[12]=0,c[1]=0,c[5]=h,c[9]=d,c[13]=0,c[2]=0,c[6]=0,c[10]=m,c[14]=E,c[3]=0,c[7]=0,c[11]=-1,c[15]=0,this}makeOrthographic(e,t,i,r,s,o,a=Qs){const c=this.elements,A=1/(t-e),h=1/(i-r),f=1/(o-s),d=(t+e)*A,m=(i+r)*h;let E,x;if(a===Qs)E=(o+s)*f,x=-2*f;else if(a===yh)E=s*f,x=-1*f;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return c[0]=2*A,c[4]=0,c[8]=0,c[12]=-d,c[1]=0,c[5]=2*h,c[9]=0,c[13]=-m,c[2]=0,c[6]=0,c[10]=x,c[14]=-E,c[3]=0,c[7]=0,c[11]=0,c[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const gc=new G,jr=new ft,cL=new G(0,0,0),uL=new G(1,1,1),Xo=new G,pd=new G,pr=new G,FB=new ft,kB=new Wi;class Su{constructor(e=0,t=0,i=0,r=Su.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const r=e.elements,s=r[0],o=r[4],a=r[8],c=r[1],A=r[5],h=r[9],f=r[2],d=r[6],m=r[10];switch(t){case"XYZ":this._y=Math.asin(Un(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(d,A),this._z=0);break;case"YXZ":this._x=Math.asin(-Un(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,m),this._z=Math.atan2(c,A)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(Un(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-o,A)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-Un(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(d,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-o,A));break;case"YZX":this._z=Math.asin(Un(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,A),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(a,m));break;case"XZY":this._z=Math.asin(-Un(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,A),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return FB.makeRotationFromQuaternion(e),this.setFromRotationMatrix(FB,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return kB.setFromEuler(this),this.setFromQuaternion(kB,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Su.DEFAULT_ORDER="XYZ";class Nl{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,c){return a[c.uuid]===void 0&&(a[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(e.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const c=a.shapes;if(Array.isArray(c))for(let A=0,h=c.length;A0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(i.geometries=a),c.length>0&&(i.materials=c),A.length>0&&(i.textures=A),h.length>0&&(i.images=h),f.length>0&&(i.shapes=f),d.length>0&&(i.skeletons=d),m.length>0&&(i.animations=m),E.length>0&&(i.nodes=E)}return i.object=r,i;function o(a){const c=[];for(const A in a){const h=a[A];delete h.metadata,c.push(h)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){Zr.subVectors(r,t),js.subVectors(i,t),$0.subVectors(e,t);const o=Zr.dot(Zr),a=Zr.dot(js),c=Zr.dot($0),A=js.dot(js),h=js.dot($0),f=o*A-a*a;if(f===0)return s.set(0,0,0),null;const d=1/f,m=(A*c-a*h)*d,E=(o*h-a*c)*d;return s.set(1-m-E,E,m)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,Zs)===null?!1:Zs.x>=0&&Zs.y>=0&&Zs.x+Zs.y<=1}static getInterpolation(e,t,i,r,s,o,a,c){return this.getBarycoord(e,t,i,r,Zs)===null?(c.x=0,c.y=0,"z"in c&&(c.z=0),"w"in c&&(c.w=0),null):(c.setScalar(0),c.addScaledVector(s,Zs.x),c.addScaledVector(o,Zs.y),c.addScaledVector(a,Zs.z),c)}static isFrontFacing(e,t,i,r){return Zr.subVectors(i,t),js.subVectors(e,t),Zr.cross(js).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Zr.subVectors(this.c,this.b),js.subVectors(this.a,this.b),Zr.cross(js).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Cr.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Cr.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return Cr.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return Cr.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Cr.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,a;Ec.subVectors(r,i),Cc.subVectors(s,i),eE.subVectors(e,i);const c=Ec.dot(eE),A=Cc.dot(eE);if(c<=0&&A<=0)return t.copy(i);tE.subVectors(e,r);const h=Ec.dot(tE),f=Cc.dot(tE);if(h>=0&&f<=h)return t.copy(r);const d=c*f-h*A;if(d<=0&&c>=0&&h<=0)return o=c/(c-h),t.copy(i).addScaledVector(Ec,o);nE.subVectors(e,s);const m=Ec.dot(nE),E=Cc.dot(nE);if(E>=0&&m<=E)return t.copy(s);const x=m*A-c*E;if(x<=0&&A>=0&&E<=0)return a=A/(A-E),t.copy(i).addScaledVector(Cc,a);const C=h*E-m*f;if(C<=0&&f-h>=0&&m-E>=0)return VB.subVectors(s,r),a=(f-h)/(f-h+(m-E)),t.copy(r).addScaledVector(VB,a);const p=1/(C+x+d);return o=x*p,a=d*p,t.copy(i).addScaledVector(Ec,o).addScaledVector(Cc,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const IQ={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Jo={h:0,s:0,l:0},md={h:0,s:0,l:0};function iE(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class Je{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=On){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,sn.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=sn.workingColorSpace){return this.r=e,this.g=t,this.b=i,sn.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=sn.workingColorSpace){if(e=nv(e,1),t=Un(t,0,1),i=Un(i,0,1),t===0)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=iE(o,s,e+1/3),this.g=iE(o,s,e),this.b=iE(o,s,e-1/3)}return sn.toWorkingColorSpace(this,r),this}setStyle(e,t=On){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=On){const i=IQ[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=cu(e.r),this.g=cu(e.g),this.b=cu(e.b),this}copyLinearToSRGB(e){return this.r=W0(e.r),this.g=W0(e.g),this.b=W0(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=On){return sn.fromWorkingColorSpace(Mi.copy(this),e),Math.round(Un(Mi.r*255,0,255))*65536+Math.round(Un(Mi.g*255,0,255))*256+Math.round(Un(Mi.b*255,0,255))}getHexString(e=On){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=sn.workingColorSpace){sn.fromWorkingColorSpace(Mi.copy(this),t);const i=Mi.r,r=Mi.g,s=Mi.b,o=Math.max(i,r,s),a=Math.min(i,r,s);let c,A;const h=(a+o)/2;if(a===o)c=0,A=0;else{const f=o-a;switch(A=h<=.5?f/(o+a):f/(2-o-a),o){case i:c=(r-s)/f+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Tl&&(i.blending=this.blending),this.side!==Vr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==Ag&&(i.blendSrc=this.blendSrc),this.blendDst!==hg&&(i.blendDst=this.blendDst),this.blendEquation!==sa&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==lh&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==vy&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==gl&&(i.stencilFail=this.stencilFail),this.stencilZFail!==gl&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==gl&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(s){const o=[];for(const a in s){const c=s[a];delete c.metadata,o.push(c)}return o}if(t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(t!==null){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class or extends hi{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Uh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const ro=mL();function mL(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let c=0;c<256;++c){const A=c-127;A<-27?(i[c]=0,i[c|256]=32768,r[c]=24,r[c|256]=24):A<-14?(i[c]=1024>>-A-14,i[c|256]=1024>>-A-14|32768,r[c]=-A-1,r[c|256]=-A-1):A<=15?(i[c]=A+15<<10,i[c|256]=A+15<<10|32768,r[c]=13,r[c|256]=13):A<128?(i[c]=31744,i[c|256]=64512,r[c]=24,r[c|256]=24):(i[c]=31744,i[c|256]=64512,r[c]=13,r[c|256]=13)}const s=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let c=1;c<1024;++c){let A=c<<13,h=0;for(;!(A&8388608);)A<<=1,h-=8388608;A&=-8388609,h+=947912704,s[c]=A|h}for(let c=1024;c<2048;++c)s[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)o[c]=c<<23;o[31]=1199570944,o[32]=2147483648;for(let c=33;c<63;++c)o[c]=2147483648+(c-32<<23);o[63]=3347054592;for(let c=1;c<64;++c)c!==32&&(a[c]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:o,offsetTable:a}}function er(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Un(n,-65504,65504),ro.floatView[0]=n;const e=ro.uint32View[0],t=e>>23&511;return ro.baseTable[t]+((e&8388607)>>ro.shiftTable[t])}function _A(n){const e=n>>10;return ro.uint32View[0]=ro.mantissaTable[ro.offsetTable[e]+(n&1023)]+ro.exponentTable[e],ro.floatView[0]}const EL={toHalfFloat:er,fromHalfFloat:_A},Kn=new G,Ed=new _e;class rn{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=Ch,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Fr,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return bl("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const c=this.parameters;for(const A in c)c[A]!==void 0&&(e[A]=c[A]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const c in i){const A=i[c];e.data.attributes[c]=A.toJSON(e.data)}const r={};let s=!1;for(const c in this.morphAttributes){const A=this.morphAttributes[c],h=[];for(let f=0,d=A.length;f0&&(r[c]=h,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(t));const r=e.attributes;for(const A in r){const h=r[A];this.setAttribute(A,h.clone(t))}const s=e.morphAttributes;for(const A in s){const h=[],f=s[A];for(let d=0,m=f.length;d0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(WB.copy(s).invert(),nl.copy(e.ray).applyMatrix4(WB),!(i.boundingBox!==null&&nl.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,nl)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,a=s.index,c=s.attributes.position,A=s.attributes.uv,h=s.attributes.uv1,f=s.attributes.normal,d=s.groups,m=s.drawRange;if(a!==null)if(Array.isArray(o))for(let E=0,x=d.length;Et.far?null:{distance:A,point:_d.clone(),object:n}}function Sd(n,e,t,i,r,s,o,a,c,A){n.getVertexPosition(a,vc),n.getVertexPosition(c,Ic),n.getVertexPosition(A,xc);const h=wL(n,e,t,i,vc,Ic,xc,Bd);if(h){r&&(vd.fromBufferAttribute(r,a),Id.fromBufferAttribute(r,c),xd.fromBufferAttribute(r,A),h.uv=Cr.getInterpolation(Bd,vc,Ic,xc,vd,Id,xd,new _e)),s&&(vd.fromBufferAttribute(s,a),Id.fromBufferAttribute(s,c),xd.fromBufferAttribute(s,A),h.uv1=Cr.getInterpolation(Bd,vc,Ic,xc,vd,Id,xd,new _e),h.uv2=h.uv1),o&&(XB.fromBufferAttribute(o,a),JB.fromBufferAttribute(o,c),KB.fromBufferAttribute(o,A),h.normal=Cr.getInterpolation(Bd,vc,Ic,xc,XB,JB,KB,new G),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const f={a,b:c,c:A,normal:new G,materialIndex:0};Cr.getNormal(vc,Ic,xc,f.normal),h.face=f}return h}class Xl extends Tt{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const c=[],A=[],h=[],f=[];let d=0,m=0;E("z","y","x",-1,-1,i,t,e,o,s,0),E("z","y","x",1,-1,i,t,-e,o,s,1),E("x","z","y",1,1,e,i,t,r,o,2),E("x","z","y",1,-1,e,i,-t,r,o,3),E("x","y","z",1,-1,e,t,i,r,s,4),E("x","y","z",-1,-1,e,t,-i,r,s,5),this.setIndex(c),this.setAttribute("position",new st(A,3)),this.setAttribute("normal",new st(h,3)),this.setAttribute("uv",new st(f,2));function E(x,C,p,I,y,B,R,M,T,P,K){const w=B/T,b=R/P,q=B/2,de=R/2,Y=M/2,ie=T+1,te=P+1;let ue=0,U=0;const $=new G;for(let ee=0;ee0?1:-1,h.push($.x,$.y,$.z),f.push(ye/T),f.push(1-ee/P),ue+=1}}for(let ee=0;ee0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class Ph extends jt{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ft,this.projectionMatrix=new ft,this.projectionMatrixInverse=new ft,this.coordinateSystem=ws}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Lo=new G,OB=new _e,HB=new _e;class Zn extends Ph{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=pu*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(xl*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return pu*2*Math.atan(Math.tan(xl*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){Lo.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Lo.x,Lo.y).multiplyScalar(-e/Lo.z),Lo.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Lo.x,Lo.y).multiplyScalar(-e/Lo.z)}getViewSize(e,t){return this.getViewBounds(e,OB,HB),t.subVectors(HB,OB)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(xl*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const c=o.fullWidth,A=o.fullHeight;s+=o.offsetX*r/c,t-=o.offsetY*i/A,r*=o.width/c,i*=o.height/A}const a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const vc=-90,Ic=1;class AQ extends jt{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Zn(vc,Ic,e,t);r.layers=this.layers,this.add(r);const s=new Zn(vc,Ic,e,t);s.layers=this.layers,this.add(s);const o=new Zn(vc,Ic,e,t);o.layers=this.layers,this.add(o);const a=new Zn(vc,Ic,e,t);a.layers=this.layers,this.add(a);const c=new Zn(vc,Ic,e,t);c.layers=this.layers,this.add(c);const A=new Zn(vc,Ic,e,t);A.layers=this.layers,this.add(A)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,a,c]=t;for(const A of t)this.remove(A);if(e===ws)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(e===Eh)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const A of t)this.add(A),A.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,c,A,h]=this.children,f=e.getRenderTarget(),d=e.getActiveCubeFace(),m=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;const x=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,a),e.setRenderTarget(i,3,r),e.render(t,c),e.setRenderTarget(i,4,r),e.render(t,A),i.texture.generateMipmaps=x,e.setRenderTarget(i,5,r),e.render(t,h),e.setRenderTarget(f,d,m),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}}class Uh extends Sn{constructor(e,t,i,r,s,o,a,c,A,h){e=e!==void 0?e:[],t=t!==void 0?t:fo,super(e,t,i,r,s,o,a,c,A,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class hQ extends Wr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];t.encoding!==void 0&&(Bl("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===sa?On:mr),this.texture=new Uh(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:vn}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:` +}`;class us extends hi{constructor(e){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=QL,this.fragmentShader=RL,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1,clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&this.setValues(e)}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=Cu(e.uniforms),this.uniformsGroups=ML(e.uniformsGroups),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.fog=e.fog,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this}toJSON(e){const t=super.toJSON(e);t.glslVersion=this.glslVersion,t.uniforms={};for(const r in this.uniforms){const o=this.uniforms[r].value;o&&o.isTexture?t.uniforms[r]={type:"t",value:o.toJSON(e).uuid}:o&&o.isColor?t.uniforms[r]={type:"c",value:o.getHex()}:o&&o.isVector2?t.uniforms[r]={type:"v2",value:o.toArray()}:o&&o.isVector3?t.uniforms[r]={type:"v3",value:o.toArray()}:o&&o.isVector4?t.uniforms[r]={type:"v4",value:o.toArray()}:o&&o.isMatrix3?t.uniforms[r]={type:"m3",value:o.toArray()}:o&&o.isMatrix4?t.uniforms[r]={type:"m4",value:o.toArray()}:t.uniforms[r]={value:o}}Object.keys(this.defines).length>0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class kh extends $t{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ft,this.projectionMatrix=new ft,this.projectionMatrixInverse=new ft,this.coordinateSystem=Qs}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Ko=new G,qB=new _e,jB=new _e;class $n extends kh{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=Eu*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(Dl*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Eu*2*Math.atan(Math.tan(Dl*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){Ko.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Ko.x,Ko.y).multiplyScalar(-e/Ko.z),Ko.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Ko.x,Ko.y).multiplyScalar(-e/Ko.z)}getViewSize(e,t){return this.getViewBounds(e,qB,jB),t.subVectors(jB,qB)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(Dl*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const c=o.fullWidth,A=o.fullHeight;s+=o.offsetX*r/c,t-=o.offsetY*i/A,r*=o.width/c,i*=o.height/A}const a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Bc=-90,_c=1;class _Q extends $t{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new $n(Bc,_c,e,t);r.layers=this.layers,this.add(r);const s=new $n(Bc,_c,e,t);s.layers=this.layers,this.add(s);const o=new $n(Bc,_c,e,t);o.layers=this.layers,this.add(o);const a=new $n(Bc,_c,e,t);a.layers=this.layers,this.add(a);const c=new $n(Bc,_c,e,t);c.layers=this.layers,this.add(c);const A=new $n(Bc,_c,e,t);A.layers=this.layers,this.add(A)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,a,c]=t;for(const A of t)this.remove(A);if(e===Qs)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(e===yh)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const A of t)this.add(A),A.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,c,A,h]=this.children,f=e.getRenderTarget(),d=e.getActiveCubeFace(),m=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;const x=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,a),e.setRenderTarget(i,3,r),e.render(t,c),e.setRenderTarget(i,4,r),e.render(t,A),i.texture.generateMipmaps=x,e.setRenderTarget(i,5,r),e.render(t,h),e.setRenderTarget(f,d,m),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}}class Gh extends wn{constructor(e,t,i,r,s,o,a,c,A,h){e=e!==void 0?e:[],t=t!==void 0?t:mo,super(e,t,i,r,s,o,a,c,A,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class SQ extends Wr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];t.encoding!==void 0&&(bl("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===Ca?On:Er),this.texture=new Gh(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:In}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:` varying vec3 vWorldDirection; @@ -80,9 +80,9 @@ Error generating stack: `+s.message+` gl_FragColor = texture2D( tEquirect, sampleUV ); } - `},r=new Fl(5,5,5),s=new ls({name:"CubemapFromEquirect",uniforms:gu(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Hi,blending:lo});s.uniforms.tEquirect.value=t;const o=new en(r,s),a=t.minFilter;return t.minFilter===Ss&&(t.minFilter=vn),new AQ(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,r){const s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,i,r);e.setRenderTarget(s)}}const tE=new G,gL=new G,mL=new wt;class ln{constructor(e=new G(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){const r=tE.subVectors(i,t).cross(gL.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const i=e.delta(tE),r=this.normal.dot(i);if(r===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const s=-(e.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||mL.getNormalMatrix(e),r=this.coplanarPoint(tE).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const Ka=new ui,_d=new G;class Fh{constructor(e=new ln,t=new ln,i=new ln,r=new ln,s=new ln,o=new ln){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=ws){const i=this.planes,r=e.elements,s=r[0],o=r[1],a=r[2],c=r[3],A=r[4],h=r[5],f=r[6],d=r[7],m=r[8],E=r[9],x=r[10],C=r[11],g=r[12],I=r[13],y=r[14],B=r[15];if(i[0].setComponents(c-s,d-A,C-m,B-g).normalize(),i[1].setComponents(c+s,d+A,C+m,B+g).normalize(),i[2].setComponents(c+o,d+h,C+E,B+I).normalize(),i[3].setComponents(c-o,d-h,C-E,B-I).normalize(),i[4].setComponents(c-a,d-f,C-x,B-y).normalize(),t===ws)i[5].setComponents(c+a,d+f,C+x,B+y).normalize();else if(t===Eh)i[5].setComponents(a,f,x,y).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),Ka.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),Ka.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Ka)}intersectsSprite(e){return Ka.center.set(0,0,0),Ka.radius=.7071067811865476,Ka.applyMatrix4(e.matrixWorld),this.intersectsSphere(Ka)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,_d.y=r.normal.y>0?e.max.y:e.min.y,_d.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(_d)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function fQ(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function EL(n,e){const t=e.isWebGL2,i=new WeakMap;function r(A,h){const f=A.array,d=A.usage,m=f.byteLength,E=n.createBuffer();n.bindBuffer(h,E),n.bufferData(h,f,d),A.onUploadCallback();let x;if(f instanceof Float32Array)x=n.FLOAT;else if(f instanceof Uint16Array)if(A.isFloat16BufferAttribute)if(t)x=n.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else x=n.UNSIGNED_SHORT;else if(f instanceof Int16Array)x=n.SHORT;else if(f instanceof Uint32Array)x=n.UNSIGNED_INT;else if(f instanceof Int32Array)x=n.INT;else if(f instanceof Int8Array)x=n.BYTE;else if(f instanceof Uint8Array)x=n.UNSIGNED_BYTE;else if(f instanceof Uint8ClampedArray)x=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:E,type:x,bytesPerElement:f.BYTES_PER_ELEMENT,version:A.version,size:m}}function s(A,h,f){const d=h.array,m=h._updateRange,E=h.updateRanges;if(n.bindBuffer(f,A),m.count===-1&&E.length===0&&n.bufferSubData(f,0,d),E.length!==0){for(let x=0,C=E.length;x1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||DL.getNormalMatrix(e),r=this.coplanarPoint(oE).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const il=new ui,wd=new G;class Oh{constructor(e=new cn,t=new cn,i=new cn,r=new cn,s=new cn,o=new cn){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=Qs){const i=this.planes,r=e.elements,s=r[0],o=r[1],a=r[2],c=r[3],A=r[4],h=r[5],f=r[6],d=r[7],m=r[8],E=r[9],x=r[10],C=r[11],p=r[12],I=r[13],y=r[14],B=r[15];if(i[0].setComponents(c-s,d-A,C-m,B-p).normalize(),i[1].setComponents(c+s,d+A,C+m,B+p).normalize(),i[2].setComponents(c+o,d+h,C+E,B+I).normalize(),i[3].setComponents(c-o,d-h,C-E,B-I).normalize(),i[4].setComponents(c-a,d-f,C-x,B-y).normalize(),t===Qs)i[5].setComponents(c+a,d+f,C+x,B+y).normalize();else if(t===yh)i[5].setComponents(a,f,x,y).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),il.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),il.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(il)}intersectsSprite(e){return il.center.set(0,0,0),il.radius=.7071067811865476,il.applyMatrix4(e.matrixWorld),this.intersectsSphere(il)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,wd.y=r.normal.y>0?e.max.y:e.min.y,wd.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(wd)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function wQ(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function bL(n,e){const t=e.isWebGL2,i=new WeakMap;function r(A,h){const f=A.array,d=A.usage,m=f.byteLength,E=n.createBuffer();n.bindBuffer(h,E),n.bufferData(h,f,d),A.onUploadCallback();let x;if(f instanceof Float32Array)x=n.FLOAT;else if(f instanceof Uint16Array)if(A.isFloat16BufferAttribute)if(t)x=n.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else x=n.UNSIGNED_SHORT;else if(f instanceof Int16Array)x=n.SHORT;else if(f instanceof Uint32Array)x=n.UNSIGNED_INT;else if(f instanceof Int32Array)x=n.INT;else if(f instanceof Int8Array)x=n.BYTE;else if(f instanceof Uint8Array)x=n.UNSIGNED_BYTE;else if(f instanceof Uint8ClampedArray)x=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:E,type:x,bytesPerElement:f.BYTES_PER_ELEMENT,version:A.version,size:m}}function s(A,h,f){const d=h.array,m=h._updateRange,E=h.updateRanges;if(n.bindBuffer(f,A),m.count===-1&&E.length===0&&n.bufferSubData(f,0,d),E.length!==0){for(let x=0,C=E.length;x 0 +#endif`,KL=`#if NUM_CLIPPING_PLANES > 0 vec4 plane; #ifdef ALPHA_TO_COVERAGE float distanceToPlane, distanceGradient; @@ -312,26 +312,26 @@ vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in ve if ( clipped ) discard; #endif #endif -#endif`,LL=`#if NUM_CLIPPING_PLANES > 0 +#endif`,qL=`#if NUM_CLIPPING_PLANES > 0 varying vec3 vClipPosition; uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,PL=`#if NUM_CLIPPING_PLANES > 0 +#endif`,jL=`#if NUM_CLIPPING_PLANES > 0 varying vec3 vClipPosition; -#endif`,UL=`#if NUM_CLIPPING_PLANES > 0 +#endif`,ZL=`#if NUM_CLIPPING_PLANES > 0 vClipPosition = - mvPosition.xyz; -#endif`,FL=`#if defined( USE_COLOR_ALPHA ) +#endif`,$L=`#if defined( USE_COLOR_ALPHA ) diffuseColor *= vColor; #elif defined( USE_COLOR ) diffuseColor.rgb *= vColor; -#endif`,kL=`#if defined( USE_COLOR_ALPHA ) +#endif`,eP=`#if defined( USE_COLOR_ALPHA ) varying vec4 vColor; #elif defined( USE_COLOR ) varying vec3 vColor; -#endif`,GL=`#if defined( USE_COLOR_ALPHA ) +#endif`,tP=`#if defined( USE_COLOR_ALPHA ) varying vec4 vColor; #elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) varying vec3 vColor; -#endif`,OL=`#if defined( USE_COLOR_ALPHA ) +#endif`,nP=`#if defined( USE_COLOR_ALPHA ) vColor = vec4( 1.0 ); #elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) vColor = vec3( 1.0 ); @@ -341,7 +341,7 @@ vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in ve #endif #ifdef USE_INSTANCING_COLOR vColor.xyz *= instanceColor.xyz; -#endif`,HL=`#define PI 3.141592653589793 +#endif`,iP=`#define PI 3.141592653589793 #define PI2 6.283185307179586 #define PI_HALF 1.5707963267948966 #define RECIPROCAL_PI 0.3183098861837907 @@ -419,7 +419,7 @@ vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} // validated`,zL=`#ifdef ENVMAP_TYPE_CUBE_UV +} // validated`,rP=`#ifdef ENVMAP_TYPE_CUBE_UV #define cubeUV_minMipLevel 4.0 #define cubeUV_minTileSize 16.0 float getFace( vec3 direction ) { @@ -512,7 +512,7 @@ float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { return vec4( mix( color0, color1, mipF ), 1.0 ); } } -#endif`,VL=`vec3 transformedNormal = objectNormal; +#endif`,sP=`vec3 transformedNormal = objectNormal; #ifdef USE_TANGENT vec3 transformedTangent = objectTangent; #endif @@ -541,18 +541,18 @@ transformedNormal = normalMatrix * transformedNormal; #ifdef FLIP_SIDED transformedTangent = - transformedTangent; #endif -#endif`,WL=`#ifdef USE_DISPLACEMENTMAP +#endif`,oP=`#ifdef USE_DISPLACEMENTMAP uniform sampler2D displacementMap; uniform float displacementScale; uniform float displacementBias; -#endif`,YL=`#ifdef USE_DISPLACEMENTMAP +#endif`,aP=`#ifdef USE_DISPLACEMENTMAP transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,XL=`#ifdef USE_EMISSIVEMAP +#endif`,lP=`#ifdef USE_EMISSIVEMAP vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,JL=`#ifdef USE_EMISSIVEMAP +#endif`,cP=`#ifdef USE_EMISSIVEMAP uniform sampler2D emissiveMap; -#endif`,KL="gl_FragColor = linearToOutputTexel( gl_FragColor );",qL=` +#endif`,uP="gl_FragColor = linearToOutputTexel( gl_FragColor );",AP=` const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( vec3( 0.8224621, 0.177538, 0.0 ), vec3( 0.0331941, 0.9668058, 0.0 ), @@ -580,7 +580,7 @@ vec4 LinearToLinear( in vec4 value ) { } vec4 LinearTosRGB( in vec4 value ) { return sRGBTransferOETF( value ); -}`,jL=`#ifdef USE_ENVMAP +}`,hP=`#ifdef USE_ENVMAP #ifdef ENV_WORLDPOS vec3 cameraToFrag; if ( isOrthographic ) { @@ -609,7 +609,7 @@ vec4 LinearTosRGB( in vec4 value ) { #elif defined( ENVMAP_BLENDING_ADD ) outgoingLight += envColor.xyz * specularStrength * reflectivity; #endif -#endif`,ZL=`#ifdef USE_ENVMAP +#endif`,fP=`#ifdef USE_ENVMAP uniform float envMapIntensity; uniform float flipEnvMap; #ifdef ENVMAP_TYPE_CUBE @@ -618,7 +618,7 @@ vec4 LinearTosRGB( in vec4 value ) { uniform sampler2D envMap; #endif -#endif`,$L=`#ifdef USE_ENVMAP +#endif`,dP=`#ifdef USE_ENVMAP uniform float reflectivity; #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) #define ENV_WORLDPOS @@ -629,7 +629,7 @@ vec4 LinearTosRGB( in vec4 value ) { #else varying vec3 vReflect; #endif -#endif`,eP=`#ifdef USE_ENVMAP +#endif`,pP=`#ifdef USE_ENVMAP #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) #define ENV_WORLDPOS #endif @@ -640,7 +640,7 @@ vec4 LinearTosRGB( in vec4 value ) { varying vec3 vReflect; uniform float refractionRatio; #endif -#endif`,tP=`#ifdef USE_ENVMAP +#endif`,gP=`#ifdef USE_ENVMAP #ifdef ENV_WORLDPOS vWorldPosition = worldPosition.xyz; #else @@ -657,18 +657,18 @@ vec4 LinearTosRGB( in vec4 value ) { vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); #endif #endif -#endif`,nP=`#ifdef USE_FOG +#endif`,mP=`#ifdef USE_FOG vFogDepth = - mvPosition.z; -#endif`,iP=`#ifdef USE_FOG +#endif`,EP=`#ifdef USE_FOG varying float vFogDepth; -#endif`,rP=`#ifdef USE_FOG +#endif`,CP=`#ifdef USE_FOG #ifdef FOG_EXP2 float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); #else float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); #endif gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); -#endif`,sP=`#ifdef USE_FOG +#endif`,yP=`#ifdef USE_FOG uniform vec3 fogColor; varying float vFogDepth; #ifdef FOG_EXP2 @@ -677,7 +677,7 @@ vec4 LinearTosRGB( in vec4 value ) { uniform float fogNear; uniform float fogFar; #endif -#endif`,oP=`#ifdef USE_GRADIENTMAP +#endif`,vP=`#ifdef USE_GRADIENTMAP uniform sampler2D gradientMap; #endif vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { @@ -689,16 +689,16 @@ vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { vec2 fw = fwidth( coord ) * 0.5; return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); #endif -}`,aP=`#ifdef USE_LIGHTMAP +}`,IP=`#ifdef USE_LIGHTMAP vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; reflectedLight.indirectDiffuse += lightMapIrradiance; -#endif`,lP=`#ifdef USE_LIGHTMAP +#endif`,xP=`#ifdef USE_LIGHTMAP uniform sampler2D lightMap; uniform float lightMapIntensity; -#endif`,cP=`LambertMaterial material; +#endif`,BP=`LambertMaterial material; material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,uP=`varying vec3 vViewPosition; +material.specularStrength = specularStrength;`,_P=`varying vec3 vViewPosition; struct LambertMaterial { vec3 diffuseColor; float specularStrength; @@ -712,7 +712,7 @@ void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometr reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_Lambert -#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,AP=`uniform bool receiveShadow; +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,SP=`uniform bool receiveShadow; uniform vec3 ambientLightColor; #if defined( USE_LIGHT_PROBES ) uniform vec3 lightProbe[ 9 ]; @@ -835,7 +835,7 @@ float getSpotAttenuation( const in float coneCosine, const in float penumbraCosi vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); return irradiance; } -#endif`,hP=`#ifdef USE_ENVMAP +#endif`,wP=`#ifdef USE_ENVMAP vec3 getIBLIrradiance( const in vec3 normal ) { #ifdef ENVMAP_TYPE_CUBE_UV vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); @@ -868,8 +868,8 @@ float getSpotAttenuation( const in float coneCosine, const in float penumbraCosi #endif } #endif -#endif`,fP=`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,dP=`varying vec3 vViewPosition; +#endif`,MP=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,QP=`varying vec3 vViewPosition; struct ToonMaterial { vec3 diffuseColor; }; @@ -881,11 +881,11 @@ void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPo reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_Toon -#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,pP=`BlinnPhongMaterial material; +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,RP=`BlinnPhongMaterial material; material.diffuseColor = diffuseColor.rgb; material.specularColor = specular; material.specularShininess = shininess; -material.specularStrength = specularStrength;`,gP=`varying vec3 vViewPosition; +material.specularStrength = specularStrength;`,TP=`varying vec3 vViewPosition; struct BlinnPhongMaterial { vec3 diffuseColor; vec3 specularColor; @@ -902,7 +902,7 @@ void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geom reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_BlinnPhong -#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,mP=`PhysicalMaterial material; +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,DP=`PhysicalMaterial material; material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); @@ -985,7 +985,7 @@ material.roughness = min( material.roughness, 1.0 ); material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; -#endif`,EP=`struct PhysicalMaterial { +#endif`,bP=`struct PhysicalMaterial { vec3 diffuseColor; float roughness; vec3 specularColor; @@ -1285,7 +1285,7 @@ void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradia #define RE_IndirectSpecular RE_IndirectSpecular_Physical float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); -}`,CP=` +}`,NP=` vec3 geometryPosition = - vViewPosition; vec3 geometryNormal = normal; vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); @@ -1400,7 +1400,7 @@ IncidentLight directLight; #if defined( RE_IndirectSpecular ) vec3 radiance = vec3( 0.0 ); vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,yP=`#if defined( RE_IndirectDiffuse ) +#endif`,LP=`#if defined( RE_IndirectDiffuse ) #ifdef USE_LIGHTMAP vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; @@ -1419,25 +1419,25 @@ IncidentLight directLight; #ifdef USE_CLEARCOAT clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); #endif -#endif`,vP=`#if defined( RE_IndirectDiffuse ) +#endif`,PP=`#if defined( RE_IndirectDiffuse ) RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); #endif #if defined( RE_IndirectSpecular ) RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif`,IP=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) +#endif`,UP=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,xP=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) +#endif`,FP=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) uniform float logDepthBufFC; varying float vFragDepth; varying float vIsPerspective; -#endif`,BP=`#ifdef USE_LOGDEPTHBUF +#endif`,kP=`#ifdef USE_LOGDEPTHBUF #ifdef USE_LOGDEPTHBUF_EXT varying float vFragDepth; varying float vIsPerspective; #else uniform float logDepthBufFC; #endif -#endif`,_P=`#ifdef USE_LOGDEPTHBUF +#endif`,GP=`#ifdef USE_LOGDEPTHBUF #ifdef USE_LOGDEPTHBUF_EXT vFragDepth = 1.0 + gl_Position.w; vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); @@ -1447,16 +1447,16 @@ IncidentLight directLight; gl_Position.z *= gl_Position.w; } #endif -#endif`,SP=`#ifdef USE_MAP +#endif`,OP=`#ifdef USE_MAP vec4 sampledDiffuseColor = texture2D( map, vMapUv ); #ifdef DECODE_VIDEO_TEXTURE sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); #endif diffuseColor *= sampledDiffuseColor; -#endif`,wP=`#ifdef USE_MAP +#endif`,HP=`#ifdef USE_MAP uniform sampler2D map; -#endif`,MP=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) +#endif`,zP=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) #if defined( USE_POINTS_UV ) vec2 uv = vUv; #else @@ -1468,7 +1468,7 @@ IncidentLight directLight; #endif #ifdef USE_ALPHAMAP diffuseColor.a *= texture2D( alphaMap, uv ).g; -#endif`,QP=`#if defined( USE_POINTS_UV ) +#endif`,VP=`#if defined( USE_POINTS_UV ) varying vec2 vUv; #else #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) @@ -1480,13 +1480,13 @@ IncidentLight directLight; #endif #ifdef USE_ALPHAMAP uniform sampler2D alphaMap; -#endif`,RP=`float metalnessFactor = metalness; +#endif`,WP=`float metalnessFactor = metalness; #ifdef USE_METALNESSMAP vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); metalnessFactor *= texelMetalness.b; -#endif`,TP=`#ifdef USE_METALNESSMAP +#endif`,YP=`#ifdef USE_METALNESSMAP uniform sampler2D metalnessMap; -#endif`,DP=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) +#endif`,XP=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) vColor *= morphTargetBaseInfluence; for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { #if defined( USE_COLOR_ALPHA ) @@ -1495,7 +1495,7 @@ IncidentLight directLight; if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; #endif } -#endif`,bP=`#ifdef USE_MORPHNORMALS +#endif`,JP=`#ifdef USE_MORPHNORMALS objectNormal *= morphTargetBaseInfluence; #ifdef MORPHTARGETS_TEXTURE for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { @@ -1507,7 +1507,7 @@ IncidentLight directLight; objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; #endif -#endif`,NP=`#ifdef USE_MORPHTARGETS +#endif`,KP=`#ifdef USE_MORPHTARGETS uniform float morphTargetBaseInfluence; #ifdef MORPHTARGETS_TEXTURE uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; @@ -1527,7 +1527,7 @@ IncidentLight directLight; uniform float morphTargetInfluences[ 4 ]; #endif #endif -#endif`,LP=`#ifdef USE_MORPHTARGETS +#endif`,qP=`#ifdef USE_MORPHTARGETS transformed *= morphTargetBaseInfluence; #ifdef MORPHTARGETS_TEXTURE for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { @@ -1545,7 +1545,7 @@ IncidentLight directLight; transformed += morphTarget7 * morphTargetInfluences[ 7 ]; #endif #endif -#endif`,PP=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#endif`,jP=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; #ifdef FLAT_SHADED vec3 fdx = dFdx( vViewPosition ); vec3 fdy = dFdy( vViewPosition ); @@ -1586,7 +1586,7 @@ IncidentLight directLight; tbn2[1] *= faceDirection; #endif #endif -vec3 nonPerturbedNormal = normal;`,UP=`#ifdef USE_NORMALMAP_OBJECTSPACE +vec3 nonPerturbedNormal = normal;`,ZP=`#ifdef USE_NORMALMAP_OBJECTSPACE normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; #ifdef FLIP_SIDED normal = - normal; @@ -1601,25 +1601,25 @@ vec3 nonPerturbedNormal = normal;`,UP=`#ifdef USE_NORMALMAP_OBJECTSPACE normal = normalize( tbn * mapN ); #elif defined( USE_BUMPMAP ) normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,FP=`#ifndef FLAT_SHADED +#endif`,$P=`#ifndef FLAT_SHADED varying vec3 vNormal; #ifdef USE_TANGENT varying vec3 vTangent; varying vec3 vBitangent; #endif -#endif`,kP=`#ifndef FLAT_SHADED +#endif`,e4=`#ifndef FLAT_SHADED varying vec3 vNormal; #ifdef USE_TANGENT varying vec3 vTangent; varying vec3 vBitangent; #endif -#endif`,GP=`#ifndef FLAT_SHADED +#endif`,t4=`#ifndef FLAT_SHADED vNormal = normalize( transformedNormal ); #ifdef USE_TANGENT vTangent = normalize( transformedTangent ); vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); #endif -#endif`,OP=`#ifdef USE_NORMALMAP +#endif`,n4=`#ifdef USE_NORMALMAP uniform sampler2D normalMap; uniform vec2 normalScale; #endif @@ -1641,13 +1641,13 @@ vec3 nonPerturbedNormal = normal;`,UP=`#ifdef USE_NORMALMAP_OBJECTSPACE float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); return mat3( T * scale, B * scale, N ); } -#endif`,HP=`#ifdef USE_CLEARCOAT +#endif`,i4=`#ifdef USE_CLEARCOAT vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,zP=`#ifdef USE_CLEARCOAT_NORMALMAP +#endif`,r4=`#ifdef USE_CLEARCOAT_NORMALMAP vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; clearcoatMapN.xy *= clearcoatNormalScale; clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,VP=`#ifdef USE_CLEARCOATMAP +#endif`,s4=`#ifdef USE_CLEARCOATMAP uniform sampler2D clearcoatMap; #endif #ifdef USE_CLEARCOAT_NORMALMAP @@ -1656,18 +1656,18 @@ vec3 nonPerturbedNormal = normal;`,UP=`#ifdef USE_NORMALMAP_OBJECTSPACE #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP uniform sampler2D clearcoatRoughnessMap; -#endif`,WP=`#ifdef USE_IRIDESCENCEMAP +#endif`,o4=`#ifdef USE_IRIDESCENCEMAP uniform sampler2D iridescenceMap; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP uniform sampler2D iridescenceThicknessMap; -#endif`,YP=`#ifdef OPAQUE +#endif`,a4=`#ifdef OPAQUE diffuseColor.a = 1.0; #endif #ifdef USE_TRANSMISSION diffuseColor.a *= material.transmissionAlpha; #endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,XP=`vec3 packNormalToRGB( const in vec3 normal ) { +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,l4=`vec3 packNormalToRGB( const in vec3 normal ) { return normalize( normal ) * 0.5 + 0.5; } vec3 unpackRGBToNormal( const in vec3 rgb ) { @@ -1708,9 +1708,9 @@ float viewZToPerspectiveDepth( const in float viewZ, const in float near, const } float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { return ( near * far ) / ( ( far - near ) * depth - far ); -}`,JP=`#ifdef PREMULTIPLIED_ALPHA +}`,c4=`#ifdef PREMULTIPLIED_ALPHA gl_FragColor.rgb *= gl_FragColor.a; -#endif`,KP=`vec4 mvPosition = vec4( transformed, 1.0 ); +#endif`,u4=`vec4 mvPosition = vec4( transformed, 1.0 ); #ifdef USE_BATCHING mvPosition = batchingMatrix * mvPosition; #endif @@ -1718,22 +1718,22 @@ float perspectiveDepthToViewZ( const in float depth, const in float near, const mvPosition = instanceMatrix * mvPosition; #endif mvPosition = modelViewMatrix * mvPosition; -gl_Position = projectionMatrix * mvPosition;`,qP=`#ifdef DITHERING +gl_Position = projectionMatrix * mvPosition;`,A4=`#ifdef DITHERING gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,jP=`#ifdef DITHERING +#endif`,h4=`#ifdef DITHERING vec3 dithering( vec3 color ) { float grid_position = rand( gl_FragCoord.xy ); vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); return color + dither_shift_RGB; } -#endif`,ZP=`float roughnessFactor = roughness; +#endif`,f4=`float roughnessFactor = roughness; #ifdef USE_ROUGHNESSMAP vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); roughnessFactor *= texelRoughness.g; -#endif`,$P=`#ifdef USE_ROUGHNESSMAP +#endif`,d4=`#ifdef USE_ROUGHNESSMAP uniform sampler2D roughnessMap; -#endif`,e4=`#if NUM_SPOT_LIGHT_COORDS > 0 +#endif`,p4=`#if NUM_SPOT_LIGHT_COORDS > 0 varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; #endif #if NUM_SPOT_LIGHT_MAPS > 0 @@ -1910,7 +1910,7 @@ gl_Position = projectionMatrix * mvPosition;`,qP=`#ifdef DITHERING return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); #endif } -#endif`,t4=`#if NUM_SPOT_LIGHT_COORDS > 0 +#endif`,g4=`#if NUM_SPOT_LIGHT_COORDS > 0 uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; #endif @@ -1948,7 +1948,7 @@ gl_Position = projectionMatrix * mvPosition;`,qP=`#ifdef DITHERING }; uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; #endif -#endif`,n4=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) +#endif`,m4=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); vec4 shadowWorldPosition; #endif @@ -1980,7 +1980,7 @@ gl_Position = projectionMatrix * mvPosition;`,qP=`#ifdef DITHERING vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; } #pragma unroll_loop_end -#endif`,i4=`float getShadowMask() { +#endif`,E4=`float getShadowMask() { float shadow = 1.0; #ifdef USE_SHADOWMAP #if NUM_DIR_LIGHT_SHADOWS > 0 @@ -2012,12 +2012,12 @@ gl_Position = projectionMatrix * mvPosition;`,qP=`#ifdef DITHERING #endif #endif return shadow; -}`,r4=`#ifdef USE_SKINNING +}`,C4=`#ifdef USE_SKINNING mat4 boneMatX = getBoneMatrix( skinIndex.x ); mat4 boneMatY = getBoneMatrix( skinIndex.y ); mat4 boneMatZ = getBoneMatrix( skinIndex.z ); mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,s4=`#ifdef USE_SKINNING +#endif`,y4=`#ifdef USE_SKINNING uniform mat4 bindMatrix; uniform mat4 bindMatrixInverse; uniform highp sampler2D boneTexture; @@ -2032,7 +2032,7 @@ gl_Position = projectionMatrix * mvPosition;`,qP=`#ifdef DITHERING vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); return mat4( v1, v2, v3, v4 ); } -#endif`,o4=`#ifdef USE_SKINNING +#endif`,v4=`#ifdef USE_SKINNING vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); vec4 skinned = vec4( 0.0 ); skinned += boneMatX * skinVertex * skinWeight.x; @@ -2040,7 +2040,7 @@ gl_Position = projectionMatrix * mvPosition;`,qP=`#ifdef DITHERING skinned += boneMatZ * skinVertex * skinWeight.z; skinned += boneMatW * skinVertex * skinWeight.w; transformed = ( bindMatrixInverse * skinned ).xyz; -#endif`,a4=`#ifdef USE_SKINNING +#endif`,I4=`#ifdef USE_SKINNING mat4 skinMatrix = mat4( 0.0 ); skinMatrix += skinWeight.x * boneMatX; skinMatrix += skinWeight.y * boneMatY; @@ -2051,17 +2051,17 @@ gl_Position = projectionMatrix * mvPosition;`,qP=`#ifdef DITHERING #ifdef USE_TANGENT objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; #endif -#endif`,l4=`float specularStrength; +#endif`,x4=`float specularStrength; #ifdef USE_SPECULARMAP vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); specularStrength = texelSpecular.r; #else specularStrength = 1.0; -#endif`,c4=`#ifdef USE_SPECULARMAP +#endif`,B4=`#ifdef USE_SPECULARMAP uniform sampler2D specularMap; -#endif`,u4=`#if defined( TONE_MAPPING ) +#endif`,_4=`#if defined( TONE_MAPPING ) gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,A4=`#ifndef saturate +#endif`,S4=`#ifndef saturate #define saturate( a ) clamp( a, 0.0, 1.0 ) #endif uniform float toneMappingExposure; @@ -2143,7 +2143,7 @@ vec3 AgXToneMapping( vec3 color ) { color = clamp( color, 0.0, 1.0 ); return color; } -vec3 CustomToneMapping( vec3 color ) { return color; }`,h4=`#ifdef USE_TRANSMISSION +vec3 CustomToneMapping( vec3 color ) { return color; }`,w4=`#ifdef USE_TRANSMISSION material.transmission = transmission; material.transmissionAlpha = 1.0; material.thickness = thickness; @@ -2164,7 +2164,7 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,h4=`#ifdef USE_TRANSMISS material.attenuationColor, material.attenuationDistance ); material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); -#endif`,f4=`#ifdef USE_TRANSMISSION +#endif`,M4=`#ifdef USE_TRANSMISSION uniform float transmission; uniform float thickness; uniform float attenuationDistance; @@ -2270,7 +2270,7 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,h4=`#ifdef USE_TRANSMISS float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); } -#endif`,d4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) +#endif`,Q4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) varying vec2 vUv; #endif #ifdef USE_MAP @@ -2340,7 +2340,7 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,h4=`#ifdef USE_TRANSMISS #ifdef USE_THICKNESSMAP uniform mat3 thicknessMapTransform; varying vec2 vThicknessMapUv; -#endif`,p4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) +#endif`,R4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) varying vec2 vUv; #endif #ifdef USE_MAP @@ -2434,7 +2434,7 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,h4=`#ifdef USE_TRANSMISS #ifdef USE_THICKNESSMAP uniform mat3 thicknessMapTransform; varying vec2 vThicknessMapUv; -#endif`,g4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) +#endif`,T4=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) vUv = vec3( uv, 1 ).xy; #endif #ifdef USE_MAP @@ -2505,7 +2505,7 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,h4=`#ifdef USE_TRANSMISS #endif #ifdef USE_THICKNESSMAP vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; -#endif`,m4=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 +#endif`,D4=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 vec4 worldPosition = vec4( transformed, 1.0 ); #ifdef USE_BATCHING worldPosition = batchingMatrix * worldPosition; @@ -2514,12 +2514,12 @@ vec3 CustomToneMapping( vec3 color ) { return color; }`,h4=`#ifdef USE_TRANSMISS worldPosition = instanceMatrix * worldPosition; #endif worldPosition = modelMatrix * worldPosition; -#endif`;const E4=`varying vec2 vUv; +#endif`;const b4=`varying vec2 vUv; uniform mat3 uvTransform; void main() { vUv = ( uvTransform * vec3( uv, 1 ) ).xy; gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,C4=`uniform sampler2D t2D; +}`,N4=`uniform sampler2D t2D; uniform float backgroundIntensity; varying vec2 vUv; void main() { @@ -2531,14 +2531,14 @@ void main() { gl_FragColor = texColor; #include #include -}`,y4=`varying vec3 vWorldDirection; +}`,L4=`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include gl_Position.z = gl_Position.w; -}`,v4=`#ifdef ENVMAP_TYPE_CUBE +}`,P4=`#ifdef ENVMAP_TYPE_CUBE uniform samplerCube envMap; #elif defined( ENVMAP_TYPE_CUBE_UV ) uniform sampler2D envMap; @@ -2560,14 +2560,14 @@ void main() { gl_FragColor = texColor; #include #include -}`,I4=`varying vec3 vWorldDirection; +}`,U4=`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include gl_Position.z = gl_Position.w; -}`,x4=`uniform samplerCube tCube; +}`,F4=`uniform samplerCube tCube; uniform float tFlip; uniform float opacity; varying vec3 vWorldDirection; @@ -2577,7 +2577,7 @@ void main() { gl_FragColor.a *= opacity; #include #include -}`,B4=`#include +}`,k4=`#include #include #include #include @@ -2603,7 +2603,7 @@ void main() { #include #include vHighPrecisionZW = gl_Position.zw; -}`,_4=`#if DEPTH_PACKING == 3200 +}`,G4=`#if DEPTH_PACKING == 3200 uniform float opacity; #endif #include @@ -2633,7 +2633,7 @@ void main() { #elif DEPTH_PACKING == 3201 gl_FragColor = packDepthToRGBA( fragCoordZ ); #endif -}`,S4=`#define DISTANCE +}`,O4=`#define DISTANCE varying vec3 vWorldPosition; #include #include @@ -2659,7 +2659,7 @@ void main() { #include #include vWorldPosition = worldPosition.xyz; -}`,w4=`#define DISTANCE +}`,H4=`#define DISTANCE uniform vec3 referencePosition; uniform float nearDistance; uniform float farDistance; @@ -2683,13 +2683,13 @@ void main () { dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); dist = saturate( dist ); gl_FragColor = packDepthToRGBA( dist ); -}`,M4=`varying vec3 vWorldDirection; +}`,z4=`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include -}`,Q4=`uniform sampler2D tEquirect; +}`,V4=`uniform sampler2D tEquirect; varying vec3 vWorldDirection; #include void main() { @@ -2698,7 +2698,7 @@ void main() { gl_FragColor = texture2D( tEquirect, sampleUV ); #include #include -}`,R4=`uniform float scale; +}`,W4=`uniform float scale; attribute float lineDistance; varying float vLineDistance; #include @@ -2719,7 +2719,7 @@ void main() { #include #include #include -}`,T4=`uniform vec3 diffuse; +}`,Y4=`uniform vec3 diffuse; uniform float opacity; uniform float dashSize; uniform float totalSize; @@ -2747,7 +2747,7 @@ void main() { #include #include #include -}`,D4=`#include +}`,X4=`#include #include #include #include @@ -2778,7 +2778,7 @@ void main() { #include #include #include -}`,b4=`uniform vec3 diffuse; +}`,J4=`uniform vec3 diffuse; uniform float opacity; #ifndef FLAT_SHADED varying vec3 vNormal; @@ -2826,7 +2826,7 @@ void main() { #include #include #include -}`,N4=`#define LAMBERT +}`,K4=`#define LAMBERT varying vec3 vViewPosition; #include #include @@ -2864,7 +2864,7 @@ void main() { #include #include #include -}`,L4=`#define LAMBERT +}`,q4=`#define LAMBERT uniform vec3 diffuse; uniform vec3 emissive; uniform float opacity; @@ -2921,7 +2921,7 @@ void main() { #include #include #include -}`,P4=`#define MATCAP +}`,j4=`#define MATCAP varying vec3 vViewPosition; #include #include @@ -2954,7 +2954,7 @@ void main() { #include #include vViewPosition = - mvPosition.xyz; -}`,U4=`#define MATCAP +}`,Z4=`#define MATCAP uniform vec3 diffuse; uniform float opacity; uniform sampler2D matcap; @@ -3000,7 +3000,7 @@ void main() { #include #include #include -}`,F4=`#define NORMAL +}`,$4=`#define NORMAL #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) varying vec3 vViewPosition; #endif @@ -3032,7 +3032,7 @@ void main() { #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) vViewPosition = - mvPosition.xyz; #endif -}`,k4=`#define NORMAL +}`,eU=`#define NORMAL uniform float opacity; #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) varying vec3 vViewPosition; @@ -3054,7 +3054,7 @@ void main() { #ifdef OPAQUE gl_FragColor.a = 1.0; #endif -}`,G4=`#define PHONG +}`,tU=`#define PHONG varying vec3 vViewPosition; #include #include @@ -3092,7 +3092,7 @@ void main() { #include #include #include -}`,O4=`#define PHONG +}`,nU=`#define PHONG uniform vec3 diffuse; uniform vec3 emissive; uniform vec3 specular; @@ -3151,7 +3151,7 @@ void main() { #include #include #include -}`,H4=`#define STANDARD +}`,iU=`#define STANDARD varying vec3 vViewPosition; #ifdef USE_TRANSMISSION varying vec3 vWorldPosition; @@ -3193,7 +3193,7 @@ void main() { #ifdef USE_TRANSMISSION vWorldPosition = worldPosition.xyz; #endif -}`,z4=`#define STANDARD +}`,rU=`#define STANDARD #ifdef PHYSICAL #define IOR #define USE_SPECULAR @@ -3315,7 +3315,7 @@ void main() { #include #include #include -}`,V4=`#define TOON +}`,sU=`#define TOON varying vec3 vViewPosition; #include #include @@ -3351,7 +3351,7 @@ void main() { #include #include #include -}`,W4=`#define TOON +}`,oU=`#define TOON uniform vec3 diffuse; uniform vec3 emissive; uniform float opacity; @@ -3404,7 +3404,7 @@ void main() { #include #include #include -}`,Y4=`uniform float size; +}`,aU=`uniform float size; uniform float scale; #include #include @@ -3434,7 +3434,7 @@ void main() { #include #include #include -}`,X4=`uniform vec3 diffuse; +}`,lU=`uniform vec3 diffuse; uniform float opacity; #include #include @@ -3459,7 +3459,7 @@ void main() { #include #include #include -}`,J4=`#include +}`,cU=`#include #include #include #include @@ -3481,7 +3481,7 @@ void main() { #include #include #include -}`,K4=`uniform vec3 color; +}`,uU=`uniform vec3 color; uniform float opacity; #include #include @@ -3497,7 +3497,7 @@ void main() { #include #include #include -}`,q4=`uniform float rotation; +}`,AU=`uniform float rotation; uniform vec2 center; #include #include @@ -3523,7 +3523,7 @@ void main() { #include #include #include -}`,j4=`uniform vec3 diffuse; +}`,hU=`uniform vec3 diffuse; uniform float opacity; #include #include @@ -3548,7 +3548,7 @@ void main() { #include #include #include -}`,bt={alphahash_fragment:CL,alphahash_pars_fragment:yL,alphamap_fragment:vL,alphamap_pars_fragment:IL,alphatest_fragment:xL,alphatest_pars_fragment:BL,aomap_fragment:_L,aomap_pars_fragment:SL,batching_pars_vertex:wL,batching_vertex:ML,begin_vertex:QL,beginnormal_vertex:RL,bsdfs:TL,iridescence_fragment:DL,bumpmap_pars_fragment:bL,clipping_planes_fragment:NL,clipping_planes_pars_fragment:LL,clipping_planes_pars_vertex:PL,clipping_planes_vertex:UL,color_fragment:FL,color_pars_fragment:kL,color_pars_vertex:GL,color_vertex:OL,common:HL,cube_uv_reflection_fragment:zL,defaultnormal_vertex:VL,displacementmap_pars_vertex:WL,displacementmap_vertex:YL,emissivemap_fragment:XL,emissivemap_pars_fragment:JL,colorspace_fragment:KL,colorspace_pars_fragment:qL,envmap_fragment:jL,envmap_common_pars_fragment:ZL,envmap_pars_fragment:$L,envmap_pars_vertex:eP,envmap_physical_pars_fragment:hP,envmap_vertex:tP,fog_vertex:nP,fog_pars_vertex:iP,fog_fragment:rP,fog_pars_fragment:sP,gradientmap_pars_fragment:oP,lightmap_fragment:aP,lightmap_pars_fragment:lP,lights_lambert_fragment:cP,lights_lambert_pars_fragment:uP,lights_pars_begin:AP,lights_toon_fragment:fP,lights_toon_pars_fragment:dP,lights_phong_fragment:pP,lights_phong_pars_fragment:gP,lights_physical_fragment:mP,lights_physical_pars_fragment:EP,lights_fragment_begin:CP,lights_fragment_maps:yP,lights_fragment_end:vP,logdepthbuf_fragment:IP,logdepthbuf_pars_fragment:xP,logdepthbuf_pars_vertex:BP,logdepthbuf_vertex:_P,map_fragment:SP,map_pars_fragment:wP,map_particle_fragment:MP,map_particle_pars_fragment:QP,metalnessmap_fragment:RP,metalnessmap_pars_fragment:TP,morphcolor_vertex:DP,morphnormal_vertex:bP,morphtarget_pars_vertex:NP,morphtarget_vertex:LP,normal_fragment_begin:PP,normal_fragment_maps:UP,normal_pars_fragment:FP,normal_pars_vertex:kP,normal_vertex:GP,normalmap_pars_fragment:OP,clearcoat_normal_fragment_begin:HP,clearcoat_normal_fragment_maps:zP,clearcoat_pars_fragment:VP,iridescence_pars_fragment:WP,opaque_fragment:YP,packing:XP,premultiplied_alpha_fragment:JP,project_vertex:KP,dithering_fragment:qP,dithering_pars_fragment:jP,roughnessmap_fragment:ZP,roughnessmap_pars_fragment:$P,shadowmap_pars_fragment:e4,shadowmap_pars_vertex:t4,shadowmap_vertex:n4,shadowmask_pars_fragment:i4,skinbase_vertex:r4,skinning_pars_vertex:s4,skinning_vertex:o4,skinnormal_vertex:a4,specularmap_fragment:l4,specularmap_pars_fragment:c4,tonemapping_fragment:u4,tonemapping_pars_fragment:A4,transmission_fragment:h4,transmission_pars_fragment:f4,uv_pars_fragment:d4,uv_pars_vertex:p4,uv_vertex:g4,worldpos_vertex:m4,background_vert:E4,background_frag:C4,backgroundCube_vert:y4,backgroundCube_frag:v4,cube_vert:I4,cube_frag:x4,depth_vert:B4,depth_frag:_4,distanceRGBA_vert:S4,distanceRGBA_frag:w4,equirect_vert:M4,equirect_frag:Q4,linedashed_vert:R4,linedashed_frag:T4,meshbasic_vert:D4,meshbasic_frag:b4,meshlambert_vert:N4,meshlambert_frag:L4,meshmatcap_vert:P4,meshmatcap_frag:U4,meshnormal_vert:F4,meshnormal_frag:k4,meshphong_vert:G4,meshphong_frag:O4,meshphysical_vert:H4,meshphysical_frag:z4,meshtoon_vert:V4,meshtoon_frag:W4,points_vert:Y4,points_frag:X4,shadow_vert:J4,shadow_frag:K4,sprite_vert:q4,sprite_frag:j4},Ye={common:{diffuse:{value:new Je(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new wt},alphaMap:{value:null},alphaMapTransform:{value:new wt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new wt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new wt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new wt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new wt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new wt},normalScale:{value:new _e(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new wt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new wt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new wt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new wt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Je(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Je(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new wt},alphaTest:{value:0},uvTransform:{value:new wt}},sprite:{diffuse:{value:new Je(16777215)},opacity:{value:1},center:{value:new _e(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new wt},alphaMap:{value:null},alphaMapTransform:{value:new wt},alphaTest:{value:0}}},is={basic:{uniforms:Pi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.fog]),vertexShader:bt.meshbasic_vert,fragmentShader:bt.meshbasic_frag},lambert:{uniforms:Pi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:bt.meshlambert_vert,fragmentShader:bt.meshlambert_frag},phong:{uniforms:Pi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},specular:{value:new Je(1118481)},shininess:{value:30}}]),vertexShader:bt.meshphong_vert,fragmentShader:bt.meshphong_frag},standard:{uniforms:Pi([Ye.common,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.roughnessmap,Ye.metalnessmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:bt.meshphysical_vert,fragmentShader:bt.meshphysical_frag},toon:{uniforms:Pi([Ye.common,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.gradientmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:bt.meshtoon_vert,fragmentShader:bt.meshtoon_frag},matcap:{uniforms:Pi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,{matcap:{value:null}}]),vertexShader:bt.meshmatcap_vert,fragmentShader:bt.meshmatcap_frag},points:{uniforms:Pi([Ye.points,Ye.fog]),vertexShader:bt.points_vert,fragmentShader:bt.points_frag},dashed:{uniforms:Pi([Ye.common,Ye.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:bt.linedashed_vert,fragmentShader:bt.linedashed_frag},depth:{uniforms:Pi([Ye.common,Ye.displacementmap]),vertexShader:bt.depth_vert,fragmentShader:bt.depth_frag},normal:{uniforms:Pi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,{opacity:{value:1}}]),vertexShader:bt.meshnormal_vert,fragmentShader:bt.meshnormal_frag},sprite:{uniforms:Pi([Ye.sprite,Ye.fog]),vertexShader:bt.sprite_vert,fragmentShader:bt.sprite_frag},background:{uniforms:{uvTransform:{value:new wt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:bt.background_vert,fragmentShader:bt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:bt.backgroundCube_vert,fragmentShader:bt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:bt.cube_vert,fragmentShader:bt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:bt.equirect_vert,fragmentShader:bt.equirect_frag},distanceRGBA:{uniforms:Pi([Ye.common,Ye.displacementmap,{referencePosition:{value:new G},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:bt.distanceRGBA_vert,fragmentShader:bt.distanceRGBA_frag},shadow:{uniforms:Pi([Ye.lights,Ye.fog,{color:{value:new Je(0)},opacity:{value:1}}]),vertexShader:bt.shadow_vert,fragmentShader:bt.shadow_frag}};is.physical={uniforms:Pi([is.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new wt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new wt},clearcoatNormalScale:{value:new _e(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new wt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new wt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new wt},sheen:{value:0},sheenColor:{value:new Je(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new wt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new wt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new wt},transmissionSamplerSize:{value:new _e},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new wt},attenuationDistance:{value:0},attenuationColor:{value:new Je(0)},specularColor:{value:new Je(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new wt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new wt},anisotropyVector:{value:new _e},anisotropyMap:{value:null},anisotropyMapTransform:{value:new wt}}]),vertexShader:bt.meshphysical_vert,fragmentShader:bt.meshphysical_frag};const Sd={r:0,b:0,g:0};function Z4(n,e,t,i,r,s,o){const a=new Je(0);let c=s===!0?0:1,A,h,f=null,d=0,m=null;function E(C,g){let I=!1,y=g.isScene===!0?g.background:null;y&&y.isTexture&&(y=(g.backgroundBlurriness>0?t:e).get(y)),y===null?x(a,c):y&&y.isColor&&(x(y,1),I=!0);const B=n.xr.getEnvironmentBlendMode();B==="additive"?i.buffers.color.setClear(0,0,0,1,o):B==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||I)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),y&&(y.isCubeTexture||y.mapping===vu)?(h===void 0&&(h=new en(new Fl(1,1,1),new ls({name:"BackgroundCubeMaterial",uniforms:gu(is.backgroundCube.uniforms),vertexShader:is.backgroundCube.vertexShader,fragmentShader:is.backgroundCube.fragmentShader,side:Hi,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,w,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=y,h.material.uniforms.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=g.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=g.backgroundIntensity,h.material.toneMapped=nn.getTransfer(y.colorSpace)!==pn,(f!==y||d!==y.version||m!==n.toneMapping)&&(h.material.needsUpdate=!0,f=y,d=y.version,m=n.toneMapping),h.layers.enableAll(),C.unshift(h,h.geometry,h.material,0,0,null)):y&&y.isTexture&&(A===void 0&&(A=new en(new ma(2,2),new ls({name:"BackgroundMaterial",uniforms:gu(is.background.uniforms),vertexShader:is.background.vertexShader,fragmentShader:is.background.fragmentShader,side:Vr,depthTest:!1,depthWrite:!1,fog:!1})),A.geometry.deleteAttribute("normal"),Object.defineProperty(A.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(A)),A.material.uniforms.t2D.value=y,A.material.uniforms.backgroundIntensity.value=g.backgroundIntensity,A.material.toneMapped=nn.getTransfer(y.colorSpace)!==pn,y.matrixAutoUpdate===!0&&y.updateMatrix(),A.material.uniforms.uvTransform.value.copy(y.matrix),(f!==y||d!==y.version||m!==n.toneMapping)&&(A.material.needsUpdate=!0,f=y,d=y.version,m=n.toneMapping),A.layers.enableAll(),C.unshift(A,A.geometry,A.material,0,0,null))}function x(C,g){C.getRGB(Sd,cQ(n)),i.buffers.color.setClear(Sd.r,Sd.g,Sd.b,g,o)}return{getClearColor:function(){return a},setClearColor:function(C,g=1){a.set(C),c=g,x(a,c)},getClearAlpha:function(){return c},setClearAlpha:function(C){c=C,x(a,c)},render:E}}function $4(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||s!==null,a={},c=C(null);let A=c,h=!1;function f(Y,ce,re,fe,U){let Z=!1;if(o){const ee=x(fe,re,ce);A!==ee&&(A=ee,m(A.object)),Z=g(Y,fe,re,U),Z&&I(Y,fe,re,U)}else{const ee=ce.wireframe===!0;(A.geometry!==fe.id||A.program!==re.id||A.wireframe!==ee)&&(A.geometry=fe.id,A.program=re.id,A.wireframe=ee,Z=!0)}U!==null&&t.update(U,n.ELEMENT_ARRAY_BUFFER),(Z||h)&&(h=!1,P(Y,ce,re,fe),U!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(U).buffer))}function d(){return i.isWebGL2?n.createVertexArray():s.createVertexArrayOES()}function m(Y){return i.isWebGL2?n.bindVertexArray(Y):s.bindVertexArrayOES(Y)}function E(Y){return i.isWebGL2?n.deleteVertexArray(Y):s.deleteVertexArrayOES(Y)}function x(Y,ce,re){const fe=re.wireframe===!0;let U=a[Y.id];U===void 0&&(U={},a[Y.id]=U);let Z=U[ce.id];Z===void 0&&(Z={},U[ce.id]=Z);let ee=Z[fe];return ee===void 0&&(ee=C(d()),Z[fe]=ee),ee}function C(Y){const ce=[],re=[],fe=[];for(let U=0;U=0){const V=U[ye];let O=Z[ye];if(O===void 0&&(ye==="instanceMatrix"&&Y.instanceMatrix&&(O=Y.instanceMatrix),ye==="instanceColor"&&Y.instanceColor&&(O=Y.instanceColor)),V===void 0||V.attribute!==O||O&&V.data!==O.data)return!0;ee++}return A.attributesNum!==ee||A.index!==fe}function I(Y,ce,re,fe){const U={},Z=ce.attributes;let ee=0;const ue=re.getAttributes();for(const ye in ue)if(ue[ye].location>=0){let V=Z[ye];V===void 0&&(ye==="instanceMatrix"&&Y.instanceMatrix&&(V=Y.instanceMatrix),ye==="instanceColor"&&Y.instanceColor&&(V=Y.instanceColor));const O={};O.attribute=V,V&&V.data&&(O.data=V.data),U[ye]=O,ee++}A.attributes=U,A.attributesNum=ee,A.index=fe}function y(){const Y=A.newAttributes;for(let ce=0,re=Y.length;ce=0){let ke=U[ue];if(ke===void 0&&(ue==="instanceMatrix"&&Y.instanceMatrix&&(ke=Y.instanceMatrix),ue==="instanceColor"&&Y.instanceColor&&(ke=Y.instanceColor)),ke!==void 0){const V=ke.normalized,O=ke.itemSize,k=t.get(ke);if(k===void 0)continue;const F=k.buffer,me=k.type,Ie=k.bytesPerElement,ie=i.isWebGL2===!0&&(me===n.INT||me===n.UNSIGNED_INT||ke.gpuType===F1);if(ke.isInterleavedBufferAttribute){const Be=ke.data,H=Be.stride,Ee=ke.offset;if(Be.isInstancedInterleavedBuffer){for(let te=0;te0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext";let a=t.precision!==void 0?t.precision:"highp";const c=s(a);c!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",c,"instead."),a=c);const A=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,f=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),d=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),m=n.getParameter(n.MAX_TEXTURE_SIZE),E=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),x=n.getParameter(n.MAX_VERTEX_ATTRIBS),C=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),g=n.getParameter(n.MAX_VARYING_VECTORS),I=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),y=d>0,B=o||e.has("OES_texture_float"),R=y&&B,w=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:A,getMaxAnisotropy:r,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:d,maxTextureSize:m,maxCubemapSize:E,maxAttributes:x,maxVertexUniforms:C,maxVaryings:g,maxFragmentUniforms:I,vertexTextures:y,floatFragmentTextures:B,floatVertexTextures:R,maxSamples:w}}function nU(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new ln,a=new wt,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,d){const m=f.length!==0||d||i!==0||r;return r=d,i=f.length,m},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(f,d){t=h(f,d,0)},this.setState=function(f,d,m){const E=f.clippingPlanes,x=f.clipIntersection,C=f.clipShadows,g=n.get(f);if(!r||E===null||E.length===0||s&&!C)s?h(null):A();else{const I=s?0:i,y=I*4;let B=g.clippingState||null;c.value=B,B=h(E,d,y,m);for(let R=0;R!==y;++R)B[R]=t[R];g.clippingState=B,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=I}};function A(){c.value!==t&&(c.value=t,c.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(f,d,m,E){const x=f!==null?f.length:0;let C=null;if(x!==0){if(C=c.value,E!==!0||C===null){const g=m+x*4,I=d.matrixWorldInverse;a.getNormalMatrix(I),(C===null||C.length0){const A=new hQ(c.height);return A.fromEquirectangularTexture(n,o),e.set(o,A),o.addEventListener("dispose",r),t(A.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const c=e.get(a);c!==void 0&&(e.delete(a),c.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}class kh extends Ph{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,a=r+t,c=r-t;if(this.view!==null&&this.view.enabled){const A=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=A*this.view.offsetX,o=s+A*this.view.width,a-=h*this.view.offsetY,c=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,c,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}const qc=4,zB=[.125,.215,.35,.446,.526,.582],hl=20,nE=new kh,VB=new Je;let iE=null,rE=0,sE=0;const ll=(1+Math.sqrt(5))/2,xc=1/ll,WB=[new G(1,1,1),new G(-1,1,1),new G(1,1,-1),new G(-1,1,-1),new G(0,ll,xc),new G(0,ll,-xc),new G(xc,0,ll),new G(-xc,0,ll),new G(ll,xc,0),new G(-ll,xc,0)];class gy{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){iE=this._renderer.getRenderTarget(),rE=this._renderer.getActiveCubeFace(),sE=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=JB(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=XB(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?y:0,y,y),h.setRenderTarget(r),x&&h.render(E,a),h.render(e,a)}E.geometry.dispose(),E.material.dispose(),h.toneMapping=d,h.autoClear=f,e.background=C}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===fo||e.mapping===Aa;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=JB()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=XB());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new en(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;const c=this._cubeSize;wd(t,0,0,3*c,2*c),i.setRenderTarget(t),i.render(o,nE)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;rhl&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${C} samples when the maximum is set to ${hl}`);const g=[];let I=0;for(let T=0;Ty-qc?r-y+qc:0),w=4*(this._cubeSize-B);wd(t,R,w,3*B,2*B),c.setRenderTarget(t),c.render(f,nE)}}function rU(n){const e=[],t=[],i=[];let r=n;const s=n-qc+1+zB.length;for(let o=0;on-qc?c=zB[o-n+qc-1]:o===0&&(c=0),i.push(c);const A=1/(a-2),h=-A,f=1+A,d=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,E=6,x=3,C=2,g=1,I=new Float32Array(x*E*m),y=new Float32Array(C*E*m),B=new Float32Array(g*E*m);for(let w=0;w2?0:-1,J=[T,P,0,T+2/3,P,0,T+2/3,P+1,0,T,P,0,T+2/3,P+1,0,T,P+1,0];I.set(J,x*E*w),y.set(d,C*E*w);const M=[w,w,w,w,w,w];B.set(M,g*E*w)}const R=new Tt;R.setAttribute("position",new tn(I,x)),R.setAttribute("uv",new tn(y,C)),R.setAttribute("faceIndex",new tn(B,g)),e.push(R),r>qc&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function YB(n,e,t){const i=new Wr(n,e,t);return i.texture.mapping=vu,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function wd(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function sU(n,e,t){const i=new Float32Array(hl),r=new G(0,1,0);return new ls({name:"SphericalGaussianBlur",defines:{n:hl,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:ev(),fragmentShader:` +}`,bt={alphahash_fragment:NL,alphahash_pars_fragment:LL,alphamap_fragment:PL,alphamap_pars_fragment:UL,alphatest_fragment:FL,alphatest_pars_fragment:kL,aomap_fragment:GL,aomap_pars_fragment:OL,batching_pars_vertex:HL,batching_vertex:zL,begin_vertex:VL,beginnormal_vertex:WL,bsdfs:YL,iridescence_fragment:XL,bumpmap_pars_fragment:JL,clipping_planes_fragment:KL,clipping_planes_pars_fragment:qL,clipping_planes_pars_vertex:jL,clipping_planes_vertex:ZL,color_fragment:$L,color_pars_fragment:eP,color_pars_vertex:tP,color_vertex:nP,common:iP,cube_uv_reflection_fragment:rP,defaultnormal_vertex:sP,displacementmap_pars_vertex:oP,displacementmap_vertex:aP,emissivemap_fragment:lP,emissivemap_pars_fragment:cP,colorspace_fragment:uP,colorspace_pars_fragment:AP,envmap_fragment:hP,envmap_common_pars_fragment:fP,envmap_pars_fragment:dP,envmap_pars_vertex:pP,envmap_physical_pars_fragment:wP,envmap_vertex:gP,fog_vertex:mP,fog_pars_vertex:EP,fog_fragment:CP,fog_pars_fragment:yP,gradientmap_pars_fragment:vP,lightmap_fragment:IP,lightmap_pars_fragment:xP,lights_lambert_fragment:BP,lights_lambert_pars_fragment:_P,lights_pars_begin:SP,lights_toon_fragment:MP,lights_toon_pars_fragment:QP,lights_phong_fragment:RP,lights_phong_pars_fragment:TP,lights_physical_fragment:DP,lights_physical_pars_fragment:bP,lights_fragment_begin:NP,lights_fragment_maps:LP,lights_fragment_end:PP,logdepthbuf_fragment:UP,logdepthbuf_pars_fragment:FP,logdepthbuf_pars_vertex:kP,logdepthbuf_vertex:GP,map_fragment:OP,map_pars_fragment:HP,map_particle_fragment:zP,map_particle_pars_fragment:VP,metalnessmap_fragment:WP,metalnessmap_pars_fragment:YP,morphcolor_vertex:XP,morphnormal_vertex:JP,morphtarget_pars_vertex:KP,morphtarget_vertex:qP,normal_fragment_begin:jP,normal_fragment_maps:ZP,normal_pars_fragment:$P,normal_pars_vertex:e4,normal_vertex:t4,normalmap_pars_fragment:n4,clearcoat_normal_fragment_begin:i4,clearcoat_normal_fragment_maps:r4,clearcoat_pars_fragment:s4,iridescence_pars_fragment:o4,opaque_fragment:a4,packing:l4,premultiplied_alpha_fragment:c4,project_vertex:u4,dithering_fragment:A4,dithering_pars_fragment:h4,roughnessmap_fragment:f4,roughnessmap_pars_fragment:d4,shadowmap_pars_fragment:p4,shadowmap_pars_vertex:g4,shadowmap_vertex:m4,shadowmask_pars_fragment:E4,skinbase_vertex:C4,skinning_pars_vertex:y4,skinning_vertex:v4,skinnormal_vertex:I4,specularmap_fragment:x4,specularmap_pars_fragment:B4,tonemapping_fragment:_4,tonemapping_pars_fragment:S4,transmission_fragment:w4,transmission_pars_fragment:M4,uv_pars_fragment:Q4,uv_pars_vertex:R4,uv_vertex:T4,worldpos_vertex:D4,background_vert:b4,background_frag:N4,backgroundCube_vert:L4,backgroundCube_frag:P4,cube_vert:U4,cube_frag:F4,depth_vert:k4,depth_frag:G4,distanceRGBA_vert:O4,distanceRGBA_frag:H4,equirect_vert:z4,equirect_frag:V4,linedashed_vert:W4,linedashed_frag:Y4,meshbasic_vert:X4,meshbasic_frag:J4,meshlambert_vert:K4,meshlambert_frag:q4,meshmatcap_vert:j4,meshmatcap_frag:Z4,meshnormal_vert:$4,meshnormal_frag:eU,meshphong_vert:tU,meshphong_frag:nU,meshphysical_vert:iU,meshphysical_frag:rU,meshtoon_vert:sU,meshtoon_frag:oU,points_vert:aU,points_frag:lU,shadow_vert:cU,shadow_frag:uU,sprite_vert:AU,sprite_frag:hU},Ye={common:{diffuse:{value:new Je(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new wt},alphaMap:{value:null},alphaMapTransform:{value:new wt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new wt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new wt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new wt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new wt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new wt},normalScale:{value:new _e(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new wt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new wt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new wt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new wt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Je(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Je(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new wt},alphaTest:{value:0},uvTransform:{value:new wt}},sprite:{diffuse:{value:new Je(16777215)},opacity:{value:1},center:{value:new _e(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new wt},alphaMap:{value:null},alphaMapTransform:{value:new wt},alphaTest:{value:0}}},rs={basic:{uniforms:Fi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.fog]),vertexShader:bt.meshbasic_vert,fragmentShader:bt.meshbasic_frag},lambert:{uniforms:Fi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:bt.meshlambert_vert,fragmentShader:bt.meshlambert_frag},phong:{uniforms:Fi([Ye.common,Ye.specularmap,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},specular:{value:new Je(1118481)},shininess:{value:30}}]),vertexShader:bt.meshphong_vert,fragmentShader:bt.meshphong_frag},standard:{uniforms:Fi([Ye.common,Ye.envmap,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.roughnessmap,Ye.metalnessmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:bt.meshphysical_vert,fragmentShader:bt.meshphysical_frag},toon:{uniforms:Fi([Ye.common,Ye.aomap,Ye.lightmap,Ye.emissivemap,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.gradientmap,Ye.fog,Ye.lights,{emissive:{value:new Je(0)}}]),vertexShader:bt.meshtoon_vert,fragmentShader:bt.meshtoon_frag},matcap:{uniforms:Fi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,Ye.fog,{matcap:{value:null}}]),vertexShader:bt.meshmatcap_vert,fragmentShader:bt.meshmatcap_frag},points:{uniforms:Fi([Ye.points,Ye.fog]),vertexShader:bt.points_vert,fragmentShader:bt.points_frag},dashed:{uniforms:Fi([Ye.common,Ye.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:bt.linedashed_vert,fragmentShader:bt.linedashed_frag},depth:{uniforms:Fi([Ye.common,Ye.displacementmap]),vertexShader:bt.depth_vert,fragmentShader:bt.depth_frag},normal:{uniforms:Fi([Ye.common,Ye.bumpmap,Ye.normalmap,Ye.displacementmap,{opacity:{value:1}}]),vertexShader:bt.meshnormal_vert,fragmentShader:bt.meshnormal_frag},sprite:{uniforms:Fi([Ye.sprite,Ye.fog]),vertexShader:bt.sprite_vert,fragmentShader:bt.sprite_frag},background:{uniforms:{uvTransform:{value:new wt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:bt.background_vert,fragmentShader:bt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:bt.backgroundCube_vert,fragmentShader:bt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:bt.cube_vert,fragmentShader:bt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:bt.equirect_vert,fragmentShader:bt.equirect_frag},distanceRGBA:{uniforms:Fi([Ye.common,Ye.displacementmap,{referencePosition:{value:new G},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:bt.distanceRGBA_vert,fragmentShader:bt.distanceRGBA_frag},shadow:{uniforms:Fi([Ye.lights,Ye.fog,{color:{value:new Je(0)},opacity:{value:1}}]),vertexShader:bt.shadow_vert,fragmentShader:bt.shadow_frag}};rs.physical={uniforms:Fi([rs.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new wt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new wt},clearcoatNormalScale:{value:new _e(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new wt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new wt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new wt},sheen:{value:0},sheenColor:{value:new Je(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new wt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new wt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new wt},transmissionSamplerSize:{value:new _e},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new wt},attenuationDistance:{value:0},attenuationColor:{value:new Je(0)},specularColor:{value:new Je(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new wt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new wt},anisotropyVector:{value:new _e},anisotropyMap:{value:null},anisotropyMapTransform:{value:new wt}}]),vertexShader:bt.meshphysical_vert,fragmentShader:bt.meshphysical_frag};const Md={r:0,b:0,g:0};function fU(n,e,t,i,r,s,o){const a=new Je(0);let c=s===!0?0:1,A,h,f=null,d=0,m=null;function E(C,p){let I=!1,y=p.isScene===!0?p.background:null;y&&y.isTexture&&(y=(p.backgroundBlurriness>0?t:e).get(y)),y===null?x(a,c):y&&y.isColor&&(x(y,1),I=!0);const B=n.xr.getEnvironmentBlendMode();B==="additive"?i.buffers.color.setClear(0,0,0,1,o):B==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||I)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),y&&(y.isCubeTexture||y.mapping===Bu)?(h===void 0&&(h=new nn(new Xl(1,1,1),new us({name:"BackgroundCubeMaterial",uniforms:Cu(rs.backgroundCube.uniforms),vertexShader:rs.backgroundCube.vertexShader,fragmentShader:rs.backgroundCube.fragmentShader,side:Vi,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,M,T){this.matrixWorld.copyPosition(T.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=y,h.material.uniforms.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=p.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,h.material.toneMapped=sn.getTransfer(y.colorSpace)!==pn,(f!==y||d!==y.version||m!==n.toneMapping)&&(h.material.needsUpdate=!0,f=y,d=y.version,m=n.toneMapping),h.layers.enableAll(),C.unshift(h,h.geometry,h.material,0,0,null)):y&&y.isTexture&&(A===void 0&&(A=new nn(new Ta(2,2),new us({name:"BackgroundMaterial",uniforms:Cu(rs.background.uniforms),vertexShader:rs.background.vertexShader,fragmentShader:rs.background.fragmentShader,side:Vr,depthTest:!1,depthWrite:!1,fog:!1})),A.geometry.deleteAttribute("normal"),Object.defineProperty(A.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(A)),A.material.uniforms.t2D.value=y,A.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,A.material.toneMapped=sn.getTransfer(y.colorSpace)!==pn,y.matrixAutoUpdate===!0&&y.updateMatrix(),A.material.uniforms.uvTransform.value.copy(y.matrix),(f!==y||d!==y.version||m!==n.toneMapping)&&(A.material.needsUpdate=!0,f=y,d=y.version,m=n.toneMapping),A.layers.enableAll(),C.unshift(A,A.geometry,A.material,0,0,null))}function x(C,p){C.getRGB(Md,xQ(n)),i.buffers.color.setClear(Md.r,Md.g,Md.b,p,o)}return{getClearColor:function(){return a},setClearColor:function(C,p=1){a.set(C),c=p,x(a,c)},getClearAlpha:function(){return c},setClearAlpha:function(C){c=C,x(a,c)},render:E}}function dU(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||s!==null,a={},c=C(null);let A=c,h=!1;function f(Y,ie,te,ue,U){let $=!1;if(o){const ee=x(ue,te,ie);A!==ee&&(A=ee,m(A.object)),$=p(Y,ue,te,U),$&&I(Y,ue,te,U)}else{const ee=ie.wireframe===!0;(A.geometry!==ue.id||A.program!==te.id||A.wireframe!==ee)&&(A.geometry=ue.id,A.program=te.id,A.wireframe=ee,$=!0)}U!==null&&t.update(U,n.ELEMENT_ARRAY_BUFFER),($||h)&&(h=!1,P(Y,ie,te,ue),U!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(U).buffer))}function d(){return i.isWebGL2?n.createVertexArray():s.createVertexArrayOES()}function m(Y){return i.isWebGL2?n.bindVertexArray(Y):s.bindVertexArrayOES(Y)}function E(Y){return i.isWebGL2?n.deleteVertexArray(Y):s.deleteVertexArrayOES(Y)}function x(Y,ie,te){const ue=te.wireframe===!0;let U=a[Y.id];U===void 0&&(U={},a[Y.id]=U);let $=U[ie.id];$===void 0&&($={},U[ie.id]=$);let ee=$[ue];return ee===void 0&&(ee=C(d()),$[ue]=ee),ee}function C(Y){const ie=[],te=[],ue=[];for(let U=0;U=0){const V=U[ye];let O=$[ye];if(O===void 0&&(ye==="instanceMatrix"&&Y.instanceMatrix&&(O=Y.instanceMatrix),ye==="instanceColor"&&Y.instanceColor&&(O=Y.instanceColor)),V===void 0||V.attribute!==O||O&&V.data!==O.data)return!0;ee++}return A.attributesNum!==ee||A.index!==ue}function I(Y,ie,te,ue){const U={},$=ie.attributes;let ee=0;const Ae=te.getAttributes();for(const ye in Ae)if(Ae[ye].location>=0){let V=$[ye];V===void 0&&(ye==="instanceMatrix"&&Y.instanceMatrix&&(V=Y.instanceMatrix),ye==="instanceColor"&&Y.instanceColor&&(V=Y.instanceColor));const O={};O.attribute=V,V&&V.data&&(O.data=V.data),U[ye]=O,ee++}A.attributes=U,A.attributesNum=ee,A.index=ue}function y(){const Y=A.newAttributes;for(let ie=0,te=Y.length;ie=0){let ke=U[Ae];if(ke===void 0&&(Ae==="instanceMatrix"&&Y.instanceMatrix&&(ke=Y.instanceMatrix),Ae==="instanceColor"&&Y.instanceColor&&(ke=Y.instanceColor)),ke!==void 0){const V=ke.normalized,O=ke.itemSize,k=t.get(ke);if(k===void 0)continue;const F=k.buffer,me=k.type,Ie=k.bytesPerElement,se=i.isWebGL2===!0&&(me===n.INT||me===n.UNSIGNED_INT||ke.gpuType===W1);if(ke.isInterleavedBufferAttribute){const Be=ke.data,H=Be.stride,Ee=ke.offset;if(Be.isInstancedInterleavedBuffer){for(let ne=0;ne0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";T="mediump"}return T==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext";let a=t.precision!==void 0?t.precision:"highp";const c=s(a);c!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",c,"instead."),a=c);const A=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,f=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),d=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),m=n.getParameter(n.MAX_TEXTURE_SIZE),E=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),x=n.getParameter(n.MAX_VERTEX_ATTRIBS),C=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),p=n.getParameter(n.MAX_VARYING_VECTORS),I=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),y=d>0,B=o||e.has("OES_texture_float"),R=y&&B,M=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:A,getMaxAnisotropy:r,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:d,maxTextureSize:m,maxCubemapSize:E,maxAttributes:x,maxVertexUniforms:C,maxVaryings:p,maxFragmentUniforms:I,vertexTextures:y,floatFragmentTextures:B,floatVertexTextures:R,maxSamples:M}}function mU(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new cn,a=new wt,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,d){const m=f.length!==0||d||i!==0||r;return r=d,i=f.length,m},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(f,d){t=h(f,d,0)},this.setState=function(f,d,m){const E=f.clippingPlanes,x=f.clipIntersection,C=f.clipShadows,p=n.get(f);if(!r||E===null||E.length===0||s&&!C)s?h(null):A();else{const I=s?0:i,y=I*4;let B=p.clippingState||null;c.value=B,B=h(E,d,y,m);for(let R=0;R!==y;++R)B[R]=t[R];p.clippingState=B,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=I}};function A(){c.value!==t&&(c.value=t,c.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(f,d,m,E){const x=f!==null?f.length:0;let C=null;if(x!==0){if(C=c.value,E!==!0||C===null){const p=m+x*4,I=d.matrixWorldInverse;a.getNormalMatrix(I),(C===null||C.length0){const A=new SQ(c.height);return A.fromEquirectangularTexture(n,o),e.set(o,A),o.addEventListener("dispose",r),t(A.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const c=e.get(a);c!==void 0&&(e.delete(a),c.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}class Hh extends kh{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,a=r+t,c=r-t;if(this.view!==null&&this.view.enabled){const A=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=A*this.view.offsetX,o=s+A*this.view.width,a-=h*this.view.offsetY,c=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,c,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}const $c=4,ZB=[.125,.215,.35,.446,.526,.582],vl=20,aE=new Hh,$B=new Je;let lE=null,cE=0,uE=0;const ml=(1+Math.sqrt(5))/2,Sc=1/ml,e_=[new G(1,1,1),new G(-1,1,1),new G(1,1,-1),new G(-1,1,-1),new G(0,ml,Sc),new G(0,ml,-Sc),new G(Sc,0,ml),new G(-Sc,0,ml),new G(ml,Sc,0),new G(-ml,Sc,0)];class By{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){lE=this._renderer.getRenderTarget(),cE=this._renderer.getActiveCubeFace(),uE=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=i_(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=n_(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?y:0,y,y),h.setRenderTarget(r),x&&h.render(E,a),h.render(e,a)}E.geometry.dispose(),E.material.dispose(),h.toneMapping=d,h.autoClear=f,e.background=C}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===mo||e.mapping===_a;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=i_()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=n_());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new nn(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;const c=this._cubeSize;Qd(t,0,0,3*c,2*c),i.setRenderTarget(t),i.render(o,aE)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;rvl&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${C} samples when the maximum is set to ${vl}`);const p=[];let I=0;for(let T=0;Ty-$c?r-y+$c:0),M=4*(this._cubeSize-B);Qd(t,R,M,3*B,2*B),c.setRenderTarget(t),c.render(f,aE)}}function CU(n){const e=[],t=[],i=[];let r=n;const s=n-$c+1+ZB.length;for(let o=0;on-$c?c=ZB[o-n+$c-1]:o===0&&(c=0),i.push(c);const A=1/(a-2),h=-A,f=1+A,d=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,E=6,x=3,C=2,p=1,I=new Float32Array(x*E*m),y=new Float32Array(C*E*m),B=new Float32Array(p*E*m);for(let M=0;M2?0:-1,K=[T,P,0,T+2/3,P,0,T+2/3,P+1,0,T,P,0,T+2/3,P+1,0,T,P+1,0];I.set(K,x*E*M),y.set(d,C*E*M);const w=[M,M,M,M,M,M];B.set(w,p*E*M)}const R=new Tt;R.setAttribute("position",new rn(I,x)),R.setAttribute("uv",new rn(y,C)),R.setAttribute("faceIndex",new rn(B,p)),e.push(R),r>$c&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function t_(n,e,t){const i=new Wr(n,e,t);return i.texture.mapping=Bu,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function Qd(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function yU(n,e,t){const i=new Float32Array(vl),r=new G(0,1,0);return new us({name:"SphericalGaussianBlur",defines:{n:vl,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:av(),fragmentShader:` precision mediump float; precision mediump int; @@ -3608,7 +3608,7 @@ void main() { } } - `,blending:lo,depthTest:!1,depthWrite:!1})}function XB(){return new ls({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:ev(),fragmentShader:` + `,blending:Ao,depthTest:!1,depthWrite:!1})}function n_(){return new us({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:av(),fragmentShader:` precision mediump float; precision mediump int; @@ -3627,7 +3627,7 @@ void main() { gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); } - `,blending:lo,depthTest:!1,depthWrite:!1})}function JB(){return new ls({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:ev(),fragmentShader:` + `,blending:Ao,depthTest:!1,depthWrite:!1})}function i_(){return new us({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:av(),fragmentShader:` precision mediump float; precision mediump int; @@ -3643,7 +3643,7 @@ void main() { gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); } - `,blending:lo,depthTest:!1,depthWrite:!1})}function ev(){return` + `,blending:Ao,depthTest:!1,depthWrite:!1})}function av(){return` precision mediump float; precision mediump int; @@ -3698,16 +3698,16 @@ void main() { gl_Position = vec4( position, 1.0 ); } - `}function oU(n){let e=new WeakMap,t=null;function i(a){if(a&&a.isTexture){const c=a.mapping,A=c===ah||c===lh,h=c===fo||c===Aa;if(A||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let f=e.get(a);return t===null&&(t=new gy(n)),f=A?t.fromEquirectangular(a,f):t.fromCubemap(a,f),e.set(a,f),f.texture}else{if(e.has(a))return e.get(a).texture;{const f=a.image;if(A&&f&&f.height>0||h&&f&&r(f)){t===null&&(t=new gy(n));const d=A?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,d),a.addEventListener("dispose",s),d.texture}else return null}}}return a}function r(a){let c=0;const A=6;for(let h=0;he.maxTextureSize&&(b=Math.ceil(M/e.maxTextureSize),M=e.maxTextureSize);const K=new Float32Array(M*b*4*x),ge=new Fg(K,M,b,x);ge.type=Fr,ge.needsUpdate=!0;const Y=J*4;for(let re=0;re0)return n;const r=e*t;let s=KB[r];if(s===void 0&&(s=new Float32Array(r),KB[r]=s),e!==0){i.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(s,a)}return s}function ni(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t0||h&&f&&r(f)){t===null&&(t=new By(n));const d=A?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,d),a.addEventListener("dispose",s),d.texture}else return null}}}return a}function r(a){let c=0;const A=6;for(let h=0;he.maxTextureSize&&(b=Math.ceil(w/e.maxTextureSize),w=e.maxTextureSize);const q=new Float32Array(w*b*4*x),de=new zg(q,w,b,x);de.type=Fr,de.needsUpdate=!0;const Y=K*4;for(let te=0;te0)return n;const r=e*t;let s=r_[r];if(s===void 0&&(s=new Float32Array(r),r_[r]=s),e!==0){i.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(s,a)}return s}function ni(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${a}: ${t[o]}`)}return i.join(` -`)}function lF(n){const e=nn.getPrimaries(nn.workingColorSpace),t=nn.getPrimaries(n);let i;switch(e===t?i="":e===gh&&t===ph?i="LinearDisplayP3ToLinearSRGB":e===ph&&t===gh&&(i="LinearSRGBToLinearDisplayP3"),n){case bs:case Lh:return[i,"LinearTransferOETF"];case On:case Ug:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}function n_(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=n.getShaderInfoLog(e).trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` +`)}function xF(n){const e=sn.getPrimaries(sn.workingColorSpace),t=sn.getPrimaries(n);let i;switch(e===t?i="":e===Eh&&t===mh?i="LinearDisplayP3ToLinearSRGB":e===mh&&t===Eh&&(i="LinearSRGBToLinearDisplayP3"),n){case Ns:case Fh:return[i,"LinearTransferOETF"];case On:case Hg:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}function A_(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=n.getShaderInfoLog(e).trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` `+r+` -`+aF(n.getShaderSource(e),o)}else return r}function cF(n,e){const t=lF(e);return`vec4 ${n}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function uF(n,e){let t;switch(e){case b2:t="Linear";break;case N2:t="Reinhard";break;case L2:t="OptimizedCineon";break;case U1:t="ACESFilmic";break;case U2:t="AgX";break;case P2:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function AF(n){return[n.extensionDerivatives||n.envMapCubeUVHeight||n.bumpMap||n.normalMapTangentSpace||n.clearcoatNormalMap||n.flatShading||n.alphaToCoverage||n.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(n.extensionFragDepth||n.logarithmicDepthBuffer)&&n.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",n.extensionDrawBuffers&&n.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(n.extensionShaderTextureLOD||n.envMap||n.transmission)&&n.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(jc).join(` -`)}function hF(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(jc).join(` -`)}function fF(n){const e=[];for(const t in n){const i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(` -`)}function dF(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function my(n){return n.replace(pF,mF)}const gF=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function mF(n,e){let t=bt[e];if(t===void 0){const i=gF.get(e);if(i!==void 0)t=bt[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return my(t)}const EF=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function s_(n){return n.replace(EF,CF)}function CF(n,e,t,i){let r="";for(let s=parseInt(e);s/gm;function _y(n){return n.replace(RF,DF)}const TF=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function DF(n,e){let t=bt[e];if(t===void 0){const i=TF.get(e);if(i!==void 0)t=bt[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return _y(t)}const bF=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function d_(n){return n.replace(bF,NF)}function NF(n,e,t,i){let r="";for(let s=parseInt(e);s0&&(g+=` -`),I=[m,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x].filter(jc).join(` +#define LOW_PRECISION`),e}function LF(n){let e="SHADOWMAP_TYPE_BASIC";return n.shadowMapType===Fg?e="SHADOWMAP_TYPE_PCF":n.shadowMapType===kA?e="SHADOWMAP_TYPE_PCF_SOFT":n.shadowMapType===ts&&(e="SHADOWMAP_TYPE_VSM"),e}function PF(n){let e="ENVMAP_TYPE_CUBE";if(n.envMap)switch(n.envMapMode){case mo:case _a:e="ENVMAP_TYPE_CUBE";break;case Bu:e="ENVMAP_TYPE_CUBE_UV";break}return e}function UF(n){let e="ENVMAP_MODE_REFLECTION";if(n.envMap)switch(n.envMapMode){case _a:e="ENVMAP_MODE_REFRACTION";break}return e}function FF(n){let e="ENVMAP_BLENDING_NONE";if(n.envMap)switch(n.combine){case Uh:e="ENVMAP_BLENDING_MULTIPLY";break;case W2:e="ENVMAP_BLENDING_MIX";break;case Y2:e="ENVMAP_BLENDING_ADD";break}return e}function kF(n){const e=n.envMapCubeUVHeight;if(e===null)return null;const t=Math.log2(e)-2,i=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,t),7*16)),texelHeight:i,maxMip:t}}function GF(n,e,t,i){const r=n.getContext(),s=t.defines;let o=t.vertexShader,a=t.fragmentShader;const c=LF(t),A=PF(t),h=UF(t),f=FF(t),d=kF(t),m=t.isWebGL2?"":SF(t),E=wF(t),x=MF(s),C=r.createProgram();let p,I,y=t.glslVersion?"#version "+t.glslVersion+` +`:"";t.isRawShaderMaterial?(p=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x].filter(eu).join(` +`),p.length>0&&(p+=` +`),I=[m,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x].filter(eu).join(` `),I.length>0&&(I+=` -`)):(g=[o_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` -`].filter(jc).join(` -`),I=[m,o_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+A:"",t.envMap?"#define "+h:"",t.envMap?"#define "+f:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Rs?"#define TONE_MAPPING":"",t.toneMapping!==Rs?bt.tonemapping_pars_fragment:"",t.toneMapping!==Rs?uF("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",bt.colorspace_pars_fragment,cF("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` -`].filter(jc).join(` -`)),o=my(o),o=i_(o,t),o=r_(o,t),a=my(a),a=i_(a,t),a=r_(a,t),o=s_(o),a=s_(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(y=`#version 300 es -`,g=[E,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)):(p=[p_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(eu).join(` +`),I=[m,p_(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+A:"",t.envMap?"#define "+h:"",t.envMap?"#define "+f:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Ds?"#define TONE_MAPPING":"",t.toneMapping!==Ds?bt.tonemapping_pars_fragment:"",t.toneMapping!==Ds?_F("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",bt.colorspace_pars_fragment,BF("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(eu).join(` +`)),o=_y(o),o=h_(o,t),o=f_(o,t),a=_y(a),a=h_(a,t),a=f_(a,t),o=d_(o),a=d_(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(y=`#version 300 es +`,p=[E,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` `)+` -`+g,I=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===dy?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===dy?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`+p,I=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===Iy?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===Iy?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` `)+` -`+I);const B=y+g+o,R=y+I+a,w=t_(r,r.VERTEX_SHADER,B),T=t_(r,r.FRAGMENT_SHADER,R);r.attachShader(C,w),r.attachShader(C,T),t.index0AttributeName!==void 0?r.bindAttribLocation(C,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(C,0,"position"),r.linkProgram(C);function P(K){if(n.debug.checkShaderErrors){const ge=r.getProgramInfoLog(C).trim(),Y=r.getShaderInfoLog(w).trim(),ce=r.getShaderInfoLog(T).trim();let re=!0,fe=!0;if(r.getProgramParameter(C,r.LINK_STATUS)===!1)if(re=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,C,w,T);else{const U=n_(r,w,"vertex"),Z=n_(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(C,r.VALIDATE_STATUS)+` +`+I);const B=y+p+o,R=y+I+a,M=u_(r,r.VERTEX_SHADER,B),T=u_(r,r.FRAGMENT_SHADER,R);r.attachShader(C,M),r.attachShader(C,T),t.index0AttributeName!==void 0?r.bindAttribLocation(C,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(C,0,"position"),r.linkProgram(C);function P(q){if(n.debug.checkShaderErrors){const de=r.getProgramInfoLog(C).trim(),Y=r.getShaderInfoLog(M).trim(),ie=r.getShaderInfoLog(T).trim();let te=!0,ue=!0;if(r.getProgramParameter(C,r.LINK_STATUS)===!1)if(te=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,C,M,T);else{const U=A_(r,M,"vertex"),$=A_(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(C,r.VALIDATE_STATUS)+` -Material Name: `+K.name+` -Material Type: `+K.type+` +Material Name: `+q.name+` +Material Type: `+q.type+` -Program Info Log: `+ge+` +Program Info Log: `+de+` `+U+` -`+Z)}else ge!==""?console.warn("THREE.WebGLProgram: Program Info Log:",ge):(Y===""||ce==="")&&(fe=!1);fe&&(K.diagnostics={runnable:re,programLog:ge,vertexShader:{log:Y,prefix:g},fragmentShader:{log:ce,prefix:I}})}r.deleteShader(w),r.deleteShader(T),J=new Sp(r,C),M=dF(r,C)}let J;this.getUniforms=function(){return J===void 0&&P(this),J};let M;this.getAttributes=function(){return M===void 0&&P(this),M};let b=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return b===!1&&(b=r.getProgramParameter(C,sF)),b},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(C),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=oF++,this.cacheKey=e,this.usedTimes=1,this.program=C,this.vertexShader=w,this.fragmentShader=T,this}let SF=0;class wF{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new MF(e),t.set(e,i)),i}}class MF{constructor(e){this.id=SF++,this.code=e,this.usedTimes=0}}function QF(n,e,t,i,r,s,o){const a=new _l,c=new wF,A=new Set,h=[],f=r.isWebGL2,d=r.logarithmicDepthBuffer,m=r.vertexTextures;let E=r.precision;const x={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function C(M){return A.add(M),M===0?"uv":`uv${M}`}function g(M,b,K,ge,Y){const ce=ge.fog,re=Y.geometry,fe=M.isMeshStandardMaterial?ge.environment:null,U=(M.isMeshStandardMaterial?t:e).get(M.envMap||fe),Z=U&&U.mapping===vu?U.image.height:null,ee=x[M.type];M.precision!==null&&(E=r.getMaxPrecision(M.precision),E!==M.precision&&console.warn("THREE.WebGLProgram.getParameters:",M.precision,"not supported, using",E,"instead."));const ue=re.morphAttributes.position||re.morphAttributes.normal||re.morphAttributes.color,ye=ue!==void 0?ue.length:0;let ke=0;re.morphAttributes.position!==void 0&&(ke=1),re.morphAttributes.normal!==void 0&&(ke=2),re.morphAttributes.color!==void 0&&(ke=3);let V,O,k,F;if(ee){const Vt=is[ee];V=Vt.vertexShader,O=Vt.fragmentShader}else V=M.vertexShader,O=M.fragmentShader,c.update(M),k=c.getVertexShaderID(M),F=c.getFragmentShaderID(M);const me=n.getRenderTarget(),Ie=Y.isInstancedMesh===!0,ie=Y.isBatchedMesh===!0,Be=!!M.map,H=!!M.matcap,Ee=!!U,te=!!M.aoMap,ae=!!M.lightMap,he=!!M.bumpMap,Te=!!M.normalMap,j=!!M.displacementMap,S=!!M.emissiveMap,D=!!M.metalnessMap,ne=!!M.roughnessMap,be=M.anisotropy>0,De=M.clearcoat>0,Qe=M.iridescence>0,Xe=M.sheen>0,ze=M.transmission>0,qe=be&&!!M.anisotropyMap,at=De&&!!M.clearcoatMap,Ct=De&&!!M.clearcoatNormalMap,Le=De&&!!M.clearcoatRoughnessMap,Dt=Qe&&!!M.iridescenceMap,Bt=Qe&&!!M.iridescenceThicknessMap,dt=Xe&&!!M.sheenColorMap,ot=Xe&&!!M.sheenRoughnessMap,tt=!!M.specularMap,vt=!!M.specularColorMap,Pt=!!M.specularIntensityMap,Xt=ze&&!!M.transmissionMap,_t=ze&&!!M.thicknessMap,Ht=!!M.gradientMap,X=!!M.alphaMap,Ge=M.alphaTest>0,Ue=!!M.alphaHash,it=!!M.extensions;let At=Rs;M.toneMapped&&(me===null||me.isXRRenderTarget===!0)&&(At=n.toneMapping);const zt={isWebGL2:f,shaderID:ee,shaderType:M.type,shaderName:M.name,vertexShader:V,fragmentShader:O,defines:M.defines,customVertexShaderID:k,customFragmentShaderID:F,isRawShaderMaterial:M.isRawShaderMaterial===!0,glslVersion:M.glslVersion,precision:E,batching:ie,instancing:Ie,instancingColor:Ie&&Y.instanceColor!==null,supportsVertexTextures:m,outputColorSpace:me===null?n.outputColorSpace:me.isXRRenderTarget===!0?me.texture.colorSpace:bs,alphaToCoverage:!!M.alphaToCoverage,map:Be,matcap:H,envMap:Ee,envMapMode:Ee&&U.mapping,envMapCubeUVHeight:Z,aoMap:te,lightMap:ae,bumpMap:he,normalMap:Te,displacementMap:m&&j,emissiveMap:S,normalMapObjectSpace:Te&&M.normalMapType===j2,normalMapTangentSpace:Te&&M.normalMapType===ga,metalnessMap:D,roughnessMap:ne,anisotropy:be,anisotropyMap:qe,clearcoat:De,clearcoatMap:at,clearcoatNormalMap:Ct,clearcoatRoughnessMap:Le,iridescence:Qe,iridescenceMap:Dt,iridescenceThicknessMap:Bt,sheen:Xe,sheenColorMap:dt,sheenRoughnessMap:ot,specularMap:tt,specularColorMap:vt,specularIntensityMap:Pt,transmission:ze,transmissionMap:Xt,thicknessMap:_t,gradientMap:Ht,opaque:M.transparent===!1&&M.blending===Il&&M.alphaToCoverage===!1,alphaMap:X,alphaTest:Ge,alphaHash:Ue,combine:M.combine,mapUv:Be&&C(M.map.channel),aoMapUv:te&&C(M.aoMap.channel),lightMapUv:ae&&C(M.lightMap.channel),bumpMapUv:he&&C(M.bumpMap.channel),normalMapUv:Te&&C(M.normalMap.channel),displacementMapUv:j&&C(M.displacementMap.channel),emissiveMapUv:S&&C(M.emissiveMap.channel),metalnessMapUv:D&&C(M.metalnessMap.channel),roughnessMapUv:ne&&C(M.roughnessMap.channel),anisotropyMapUv:qe&&C(M.anisotropyMap.channel),clearcoatMapUv:at&&C(M.clearcoatMap.channel),clearcoatNormalMapUv:Ct&&C(M.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Le&&C(M.clearcoatRoughnessMap.channel),iridescenceMapUv:Dt&&C(M.iridescenceMap.channel),iridescenceThicknessMapUv:Bt&&C(M.iridescenceThicknessMap.channel),sheenColorMapUv:dt&&C(M.sheenColorMap.channel),sheenRoughnessMapUv:ot&&C(M.sheenRoughnessMap.channel),specularMapUv:tt&&C(M.specularMap.channel),specularColorMapUv:vt&&C(M.specularColorMap.channel),specularIntensityMapUv:Pt&&C(M.specularIntensityMap.channel),transmissionMapUv:Xt&&C(M.transmissionMap.channel),thicknessMapUv:_t&&C(M.thicknessMap.channel),alphaMapUv:X&&C(M.alphaMap.channel),vertexTangents:!!re.attributes.tangent&&(Te||be),vertexColors:M.vertexColors,vertexAlphas:M.vertexColors===!0&&!!re.attributes.color&&re.attributes.color.itemSize===4,pointsUvs:Y.isPoints===!0&&!!re.attributes.uv&&(Be||X),fog:!!ce,useFog:M.fog===!0,fogExp2:!!ce&&ce.isFogExp2,flatShading:M.flatShading===!0,sizeAttenuation:M.sizeAttenuation===!0,logarithmicDepthBuffer:d,skinning:Y.isSkinnedMesh===!0,morphTargets:re.morphAttributes.position!==void 0,morphNormals:re.morphAttributes.normal!==void 0,morphColors:re.morphAttributes.color!==void 0,morphTargetsCount:ye,morphTextureStride:ke,numDirLights:b.directional.length,numPointLights:b.point.length,numSpotLights:b.spot.length,numSpotLightMaps:b.spotLightMap.length,numRectAreaLights:b.rectArea.length,numHemiLights:b.hemi.length,numDirLightShadows:b.directionalShadowMap.length,numPointLightShadows:b.pointShadowMap.length,numSpotLightShadows:b.spotShadowMap.length,numSpotLightShadowsWithMaps:b.numSpotLightShadowsWithMaps,numLightProbes:b.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:M.dithering,shadowMapEnabled:n.shadowMap.enabled&&K.length>0,shadowMapType:n.shadowMap.type,toneMapping:At,useLegacyLights:n._useLegacyLights,decodeVideoTexture:Be&&M.map.isVideoTexture===!0&&nn.getTransfer(M.map.colorSpace)===pn,premultipliedAlpha:M.premultipliedAlpha,doubleSided:M.side===_s,flipSided:M.side===Hi,useDepthPacking:M.depthPacking>=0,depthPacking:M.depthPacking||0,index0AttributeName:M.index0AttributeName,extensionDerivatives:it&&M.extensions.derivatives===!0,extensionFragDepth:it&&M.extensions.fragDepth===!0,extensionDrawBuffers:it&&M.extensions.drawBuffers===!0,extensionShaderTextureLOD:it&&M.extensions.shaderTextureLOD===!0,extensionClipCullDistance:it&&M.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:it&&M.extensions.multiDraw===!0&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:f||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:f||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:f||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:M.customProgramCacheKey()};return zt.vertexUv1s=A.has(1),zt.vertexUv2s=A.has(2),zt.vertexUv3s=A.has(3),A.clear(),zt}function I(M){const b=[];if(M.shaderID?b.push(M.shaderID):(b.push(M.customVertexShaderID),b.push(M.customFragmentShaderID)),M.defines!==void 0)for(const K in M.defines)b.push(K),b.push(M.defines[K]);return M.isRawShaderMaterial===!1&&(y(b,M),B(b,M),b.push(n.outputColorSpace)),b.push(M.customProgramCacheKey),b.join()}function y(M,b){M.push(b.precision),M.push(b.outputColorSpace),M.push(b.envMapMode),M.push(b.envMapCubeUVHeight),M.push(b.mapUv),M.push(b.alphaMapUv),M.push(b.lightMapUv),M.push(b.aoMapUv),M.push(b.bumpMapUv),M.push(b.normalMapUv),M.push(b.displacementMapUv),M.push(b.emissiveMapUv),M.push(b.metalnessMapUv),M.push(b.roughnessMapUv),M.push(b.anisotropyMapUv),M.push(b.clearcoatMapUv),M.push(b.clearcoatNormalMapUv),M.push(b.clearcoatRoughnessMapUv),M.push(b.iridescenceMapUv),M.push(b.iridescenceThicknessMapUv),M.push(b.sheenColorMapUv),M.push(b.sheenRoughnessMapUv),M.push(b.specularMapUv),M.push(b.specularColorMapUv),M.push(b.specularIntensityMapUv),M.push(b.transmissionMapUv),M.push(b.thicknessMapUv),M.push(b.combine),M.push(b.fogExp2),M.push(b.sizeAttenuation),M.push(b.morphTargetsCount),M.push(b.morphAttributeCount),M.push(b.numDirLights),M.push(b.numPointLights),M.push(b.numSpotLights),M.push(b.numSpotLightMaps),M.push(b.numHemiLights),M.push(b.numRectAreaLights),M.push(b.numDirLightShadows),M.push(b.numPointLightShadows),M.push(b.numSpotLightShadows),M.push(b.numSpotLightShadowsWithMaps),M.push(b.numLightProbes),M.push(b.shadowMapType),M.push(b.toneMapping),M.push(b.numClippingPlanes),M.push(b.numClipIntersection),M.push(b.depthPacking)}function B(M,b){a.disableAll(),b.isWebGL2&&a.enable(0),b.supportsVertexTextures&&a.enable(1),b.instancing&&a.enable(2),b.instancingColor&&a.enable(3),b.matcap&&a.enable(4),b.envMap&&a.enable(5),b.normalMapObjectSpace&&a.enable(6),b.normalMapTangentSpace&&a.enable(7),b.clearcoat&&a.enable(8),b.iridescence&&a.enable(9),b.alphaTest&&a.enable(10),b.vertexColors&&a.enable(11),b.vertexAlphas&&a.enable(12),b.vertexUv1s&&a.enable(13),b.vertexUv2s&&a.enable(14),b.vertexUv3s&&a.enable(15),b.vertexTangents&&a.enable(16),b.anisotropy&&a.enable(17),b.alphaHash&&a.enable(18),b.batching&&a.enable(19),M.push(a.mask),a.disableAll(),b.fog&&a.enable(0),b.useFog&&a.enable(1),b.flatShading&&a.enable(2),b.logarithmicDepthBuffer&&a.enable(3),b.skinning&&a.enable(4),b.morphTargets&&a.enable(5),b.morphNormals&&a.enable(6),b.morphColors&&a.enable(7),b.premultipliedAlpha&&a.enable(8),b.shadowMapEnabled&&a.enable(9),b.useLegacyLights&&a.enable(10),b.doubleSided&&a.enable(11),b.flipSided&&a.enable(12),b.useDepthPacking&&a.enable(13),b.dithering&&a.enable(14),b.transmission&&a.enable(15),b.sheen&&a.enable(16),b.opaque&&a.enable(17),b.pointsUvs&&a.enable(18),b.decodeVideoTexture&&a.enable(19),b.alphaToCoverage&&a.enable(20),M.push(a.mask)}function R(M){const b=x[M.type];let K;if(b){const ge=is[b];K=uQ.clone(ge.uniforms)}else K=M.uniforms;return K}function w(M,b){let K;for(let ge=0,Y=h.length;ge0?i.push(g):m.transparent===!0?r.push(g):t.push(g)}function c(f,d,m,E,x,C){const g=o(f,d,m,E,x,C);m.transmission>0?i.unshift(g):m.transparent===!0?r.unshift(g):t.unshift(g)}function A(f,d){t.length>1&&t.sort(f||TF),i.length>1&&i.sort(d||a_),r.length>1&&r.sort(d||a_)}function h(){for(let f=e,d=n.length;f=s.length?(o=new l_,s.push(o)):o=s[r],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function bF(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new G,color:new Je};break;case"SpotLight":t={position:new G,direction:new G,color:new Je,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new G,color:new Je,distance:0,decay:0};break;case"HemisphereLight":t={direction:new G,skyColor:new Je,groundColor:new Je};break;case"RectAreaLight":t={color:new Je,position:new G,halfWidth:new G,halfHeight:new G};break}return n[e.id]=t,t}}}function NF(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let LF=0;function PF(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function UF(n,e){const t=new bF,i=NF(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)r.probe.push(new G);const s=new G,o=new ft,a=new ft;function c(h,f){let d=0,m=0,E=0;for(let K=0;K<9;K++)r.probe[K].set(0,0,0);let x=0,C=0,g=0,I=0,y=0,B=0,R=0,w=0,T=0,P=0,J=0;h.sort(PF);const M=f===!0?Math.PI:1;for(let K=0,ge=h.length;K0&&(e.isWebGL2?n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=d,r.ambient[1]=m,r.ambient[2]=E;const b=r.hash;(b.directionalLength!==x||b.pointLength!==C||b.spotLength!==g||b.rectAreaLength!==I||b.hemiLength!==y||b.numDirectionalShadows!==B||b.numPointShadows!==R||b.numSpotShadows!==w||b.numSpotMaps!==T||b.numLightProbes!==J)&&(r.directional.length=x,r.spot.length=g,r.rectArea.length=I,r.point.length=C,r.hemi.length=y,r.directionalShadow.length=B,r.directionalShadowMap.length=B,r.pointShadow.length=R,r.pointShadowMap.length=R,r.spotShadow.length=w,r.spotShadowMap.length=w,r.directionalShadowMatrix.length=B,r.pointShadowMatrix.length=R,r.spotLightMatrix.length=w+T-P,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=P,r.numLightProbes=J,b.directionalLength=x,b.pointLength=C,b.spotLength=g,b.rectAreaLength=I,b.hemiLength=y,b.numDirectionalShadows=B,b.numPointShadows=R,b.numSpotShadows=w,b.numSpotMaps=T,b.numLightProbes=J,r.version=LF++)}function A(h,f){let d=0,m=0,E=0,x=0,C=0;const g=f.matrixWorldInverse;for(let I=0,y=h.length;I=a.length?(c=new c_(n,e),a.push(c)):c=a[o],c}function r(){t=new WeakMap}return{get:i,dispose:r}}class Gg extends Ai{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=q2,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class Og extends Ai{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const kF=`void main() { +`+$)}else de!==""?console.warn("THREE.WebGLProgram: Program Info Log:",de):(Y===""||ie==="")&&(ue=!1);ue&&(q.diagnostics={runnable:te,programLog:de,vertexShader:{log:Y,prefix:p},fragmentShader:{log:ie,prefix:I}})}r.deleteShader(M),r.deleteShader(T),K=new Tp(r,C),w=QF(r,C)}let K;this.getUniforms=function(){return K===void 0&&P(this),K};let w;this.getAttributes=function(){return w===void 0&&P(this),w};let b=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return b===!1&&(b=r.getProgramParameter(C,yF)),b},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(C),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=vF++,this.cacheKey=e,this.usedTimes=1,this.program=C,this.vertexShader=M,this.fragmentShader=T,this}let OF=0;class HF{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new zF(e),t.set(e,i)),i}}class zF{constructor(e){this.id=OF++,this.code=e,this.usedTimes=0}}function VF(n,e,t,i,r,s,o){const a=new Nl,c=new HF,A=new Set,h=[],f=r.isWebGL2,d=r.logarithmicDepthBuffer,m=r.vertexTextures;let E=r.precision;const x={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function C(w){return A.add(w),w===0?"uv":`uv${w}`}function p(w,b,q,de,Y){const ie=de.fog,te=Y.geometry,ue=w.isMeshStandardMaterial?de.environment:null,U=(w.isMeshStandardMaterial?t:e).get(w.envMap||ue),$=U&&U.mapping===Bu?U.image.height:null,ee=x[w.type];w.precision!==null&&(E=r.getMaxPrecision(w.precision),E!==w.precision&&console.warn("THREE.WebGLProgram.getParameters:",w.precision,"not supported, using",E,"instead."));const Ae=te.morphAttributes.position||te.morphAttributes.normal||te.morphAttributes.color,ye=Ae!==void 0?Ae.length:0;let ke=0;te.morphAttributes.position!==void 0&&(ke=1),te.morphAttributes.normal!==void 0&&(ke=2),te.morphAttributes.color!==void 0&&(ke=3);let V,O,k,F;if(ee){const Wt=rs[ee];V=Wt.vertexShader,O=Wt.fragmentShader}else V=w.vertexShader,O=w.fragmentShader,c.update(w),k=c.getVertexShaderID(w),F=c.getFragmentShaderID(w);const me=n.getRenderTarget(),Ie=Y.isInstancedMesh===!0,se=Y.isBatchedMesh===!0,Be=!!w.map,H=!!w.matcap,Ee=!!U,ne=!!w.aoMap,le=!!w.lightMap,fe=!!w.bumpMap,Te=!!w.normalMap,Z=!!w.displacementMap,S=!!w.emissiveMap,D=!!w.metalnessMap,re=!!w.roughnessMap,be=w.anisotropy>0,De=w.clearcoat>0,Qe=w.iridescence>0,Xe=w.sheen>0,ze=w.transmission>0,qe=be&&!!w.anisotropyMap,at=De&&!!w.clearcoatMap,Ct=De&&!!w.clearcoatNormalMap,Le=De&&!!w.clearcoatRoughnessMap,Dt=Qe&&!!w.iridescenceMap,Bt=Qe&&!!w.iridescenceThicknessMap,dt=Xe&&!!w.sheenColorMap,ot=Xe&&!!w.sheenRoughnessMap,tt=!!w.specularMap,vt=!!w.specularColorMap,Pt=!!w.specularIntensityMap,Kt=ze&&!!w.transmissionMap,_t=ze&&!!w.thicknessMap,zt=!!w.gradientMap,X=!!w.alphaMap,Ge=w.alphaTest>0,Ue=!!w.alphaHash,it=!!w.extensions;let At=Ds;w.toneMapped&&(me===null||me.isXRRenderTarget===!0)&&(At=n.toneMapping);const Vt={isWebGL2:f,shaderID:ee,shaderType:w.type,shaderName:w.name,vertexShader:V,fragmentShader:O,defines:w.defines,customVertexShaderID:k,customFragmentShaderID:F,isRawShaderMaterial:w.isRawShaderMaterial===!0,glslVersion:w.glslVersion,precision:E,batching:se,instancing:Ie,instancingColor:Ie&&Y.instanceColor!==null,supportsVertexTextures:m,outputColorSpace:me===null?n.outputColorSpace:me.isXRRenderTarget===!0?me.texture.colorSpace:Ns,alphaToCoverage:!!w.alphaToCoverage,map:Be,matcap:H,envMap:Ee,envMapMode:Ee&&U.mapping,envMapCubeUVHeight:$,aoMap:ne,lightMap:le,bumpMap:fe,normalMap:Te,displacementMap:m&&Z,emissiveMap:S,normalMapObjectSpace:Te&&w.normalMapType===AQ,normalMapTangentSpace:Te&&w.normalMapType===Ra,metalnessMap:D,roughnessMap:re,anisotropy:be,anisotropyMap:qe,clearcoat:De,clearcoatMap:at,clearcoatNormalMap:Ct,clearcoatRoughnessMap:Le,iridescence:Qe,iridescenceMap:Dt,iridescenceThicknessMap:Bt,sheen:Xe,sheenColorMap:dt,sheenRoughnessMap:ot,specularMap:tt,specularColorMap:vt,specularIntensityMap:Pt,transmission:ze,transmissionMap:Kt,thicknessMap:_t,gradientMap:zt,opaque:w.transparent===!1&&w.blending===Tl&&w.alphaToCoverage===!1,alphaMap:X,alphaTest:Ge,alphaHash:Ue,combine:w.combine,mapUv:Be&&C(w.map.channel),aoMapUv:ne&&C(w.aoMap.channel),lightMapUv:le&&C(w.lightMap.channel),bumpMapUv:fe&&C(w.bumpMap.channel),normalMapUv:Te&&C(w.normalMap.channel),displacementMapUv:Z&&C(w.displacementMap.channel),emissiveMapUv:S&&C(w.emissiveMap.channel),metalnessMapUv:D&&C(w.metalnessMap.channel),roughnessMapUv:re&&C(w.roughnessMap.channel),anisotropyMapUv:qe&&C(w.anisotropyMap.channel),clearcoatMapUv:at&&C(w.clearcoatMap.channel),clearcoatNormalMapUv:Ct&&C(w.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Le&&C(w.clearcoatRoughnessMap.channel),iridescenceMapUv:Dt&&C(w.iridescenceMap.channel),iridescenceThicknessMapUv:Bt&&C(w.iridescenceThicknessMap.channel),sheenColorMapUv:dt&&C(w.sheenColorMap.channel),sheenRoughnessMapUv:ot&&C(w.sheenRoughnessMap.channel),specularMapUv:tt&&C(w.specularMap.channel),specularColorMapUv:vt&&C(w.specularColorMap.channel),specularIntensityMapUv:Pt&&C(w.specularIntensityMap.channel),transmissionMapUv:Kt&&C(w.transmissionMap.channel),thicknessMapUv:_t&&C(w.thicknessMap.channel),alphaMapUv:X&&C(w.alphaMap.channel),vertexTangents:!!te.attributes.tangent&&(Te||be),vertexColors:w.vertexColors,vertexAlphas:w.vertexColors===!0&&!!te.attributes.color&&te.attributes.color.itemSize===4,pointsUvs:Y.isPoints===!0&&!!te.attributes.uv&&(Be||X),fog:!!ie,useFog:w.fog===!0,fogExp2:!!ie&&ie.isFogExp2,flatShading:w.flatShading===!0,sizeAttenuation:w.sizeAttenuation===!0,logarithmicDepthBuffer:d,skinning:Y.isSkinnedMesh===!0,morphTargets:te.morphAttributes.position!==void 0,morphNormals:te.morphAttributes.normal!==void 0,morphColors:te.morphAttributes.color!==void 0,morphTargetsCount:ye,morphTextureStride:ke,numDirLights:b.directional.length,numPointLights:b.point.length,numSpotLights:b.spot.length,numSpotLightMaps:b.spotLightMap.length,numRectAreaLights:b.rectArea.length,numHemiLights:b.hemi.length,numDirLightShadows:b.directionalShadowMap.length,numPointLightShadows:b.pointShadowMap.length,numSpotLightShadows:b.spotShadowMap.length,numSpotLightShadowsWithMaps:b.numSpotLightShadowsWithMaps,numLightProbes:b.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:w.dithering,shadowMapEnabled:n.shadowMap.enabled&&q.length>0,shadowMapType:n.shadowMap.type,toneMapping:At,useLegacyLights:n._useLegacyLights,decodeVideoTexture:Be&&w.map.isVideoTexture===!0&&sn.getTransfer(w.map.colorSpace)===pn,premultipliedAlpha:w.premultipliedAlpha,doubleSided:w.side===ws,flipSided:w.side===Vi,useDepthPacking:w.depthPacking>=0,depthPacking:w.depthPacking||0,index0AttributeName:w.index0AttributeName,extensionDerivatives:it&&w.extensions.derivatives===!0,extensionFragDepth:it&&w.extensions.fragDepth===!0,extensionDrawBuffers:it&&w.extensions.drawBuffers===!0,extensionShaderTextureLOD:it&&w.extensions.shaderTextureLOD===!0,extensionClipCullDistance:it&&w.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:it&&w.extensions.multiDraw===!0&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:f||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:f||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:f||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:w.customProgramCacheKey()};return Vt.vertexUv1s=A.has(1),Vt.vertexUv2s=A.has(2),Vt.vertexUv3s=A.has(3),A.clear(),Vt}function I(w){const b=[];if(w.shaderID?b.push(w.shaderID):(b.push(w.customVertexShaderID),b.push(w.customFragmentShaderID)),w.defines!==void 0)for(const q in w.defines)b.push(q),b.push(w.defines[q]);return w.isRawShaderMaterial===!1&&(y(b,w),B(b,w),b.push(n.outputColorSpace)),b.push(w.customProgramCacheKey),b.join()}function y(w,b){w.push(b.precision),w.push(b.outputColorSpace),w.push(b.envMapMode),w.push(b.envMapCubeUVHeight),w.push(b.mapUv),w.push(b.alphaMapUv),w.push(b.lightMapUv),w.push(b.aoMapUv),w.push(b.bumpMapUv),w.push(b.normalMapUv),w.push(b.displacementMapUv),w.push(b.emissiveMapUv),w.push(b.metalnessMapUv),w.push(b.roughnessMapUv),w.push(b.anisotropyMapUv),w.push(b.clearcoatMapUv),w.push(b.clearcoatNormalMapUv),w.push(b.clearcoatRoughnessMapUv),w.push(b.iridescenceMapUv),w.push(b.iridescenceThicknessMapUv),w.push(b.sheenColorMapUv),w.push(b.sheenRoughnessMapUv),w.push(b.specularMapUv),w.push(b.specularColorMapUv),w.push(b.specularIntensityMapUv),w.push(b.transmissionMapUv),w.push(b.thicknessMapUv),w.push(b.combine),w.push(b.fogExp2),w.push(b.sizeAttenuation),w.push(b.morphTargetsCount),w.push(b.morphAttributeCount),w.push(b.numDirLights),w.push(b.numPointLights),w.push(b.numSpotLights),w.push(b.numSpotLightMaps),w.push(b.numHemiLights),w.push(b.numRectAreaLights),w.push(b.numDirLightShadows),w.push(b.numPointLightShadows),w.push(b.numSpotLightShadows),w.push(b.numSpotLightShadowsWithMaps),w.push(b.numLightProbes),w.push(b.shadowMapType),w.push(b.toneMapping),w.push(b.numClippingPlanes),w.push(b.numClipIntersection),w.push(b.depthPacking)}function B(w,b){a.disableAll(),b.isWebGL2&&a.enable(0),b.supportsVertexTextures&&a.enable(1),b.instancing&&a.enable(2),b.instancingColor&&a.enable(3),b.matcap&&a.enable(4),b.envMap&&a.enable(5),b.normalMapObjectSpace&&a.enable(6),b.normalMapTangentSpace&&a.enable(7),b.clearcoat&&a.enable(8),b.iridescence&&a.enable(9),b.alphaTest&&a.enable(10),b.vertexColors&&a.enable(11),b.vertexAlphas&&a.enable(12),b.vertexUv1s&&a.enable(13),b.vertexUv2s&&a.enable(14),b.vertexUv3s&&a.enable(15),b.vertexTangents&&a.enable(16),b.anisotropy&&a.enable(17),b.alphaHash&&a.enable(18),b.batching&&a.enable(19),w.push(a.mask),a.disableAll(),b.fog&&a.enable(0),b.useFog&&a.enable(1),b.flatShading&&a.enable(2),b.logarithmicDepthBuffer&&a.enable(3),b.skinning&&a.enable(4),b.morphTargets&&a.enable(5),b.morphNormals&&a.enable(6),b.morphColors&&a.enable(7),b.premultipliedAlpha&&a.enable(8),b.shadowMapEnabled&&a.enable(9),b.useLegacyLights&&a.enable(10),b.doubleSided&&a.enable(11),b.flipSided&&a.enable(12),b.useDepthPacking&&a.enable(13),b.dithering&&a.enable(14),b.transmission&&a.enable(15),b.sheen&&a.enable(16),b.opaque&&a.enable(17),b.pointsUvs&&a.enable(18),b.decodeVideoTexture&&a.enable(19),b.alphaToCoverage&&a.enable(20),w.push(a.mask)}function R(w){const b=x[w.type];let q;if(b){const de=rs[b];q=BQ.clone(de.uniforms)}else q=w.uniforms;return q}function M(w,b){let q;for(let de=0,Y=h.length;de0?i.push(p):m.transparent===!0?r.push(p):t.push(p)}function c(f,d,m,E,x,C){const p=o(f,d,m,E,x,C);m.transmission>0?i.unshift(p):m.transparent===!0?r.unshift(p):t.unshift(p)}function A(f,d){t.length>1&&t.sort(f||YF),i.length>1&&i.sort(d||g_),r.length>1&&r.sort(d||g_)}function h(){for(let f=e,d=n.length;f=s.length?(o=new m_,s.push(o)):o=s[r],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function JF(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new G,color:new Je};break;case"SpotLight":t={position:new G,direction:new G,color:new Je,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new G,color:new Je,distance:0,decay:0};break;case"HemisphereLight":t={direction:new G,skyColor:new Je,groundColor:new Je};break;case"RectAreaLight":t={color:new Je,position:new G,halfWidth:new G,halfHeight:new G};break}return n[e.id]=t,t}}}function KF(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _e,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let qF=0;function jF(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function ZF(n,e){const t=new JF,i=KF(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)r.probe.push(new G);const s=new G,o=new ft,a=new ft;function c(h,f){let d=0,m=0,E=0;for(let q=0;q<9;q++)r.probe[q].set(0,0,0);let x=0,C=0,p=0,I=0,y=0,B=0,R=0,M=0,T=0,P=0,K=0;h.sort(jF);const w=f===!0?Math.PI:1;for(let q=0,de=h.length;q0&&(e.isWebGL2?n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):n.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_FLOAT_1,r.rectAreaLTC2=Ye.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=Ye.LTC_HALF_1,r.rectAreaLTC2=Ye.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=d,r.ambient[1]=m,r.ambient[2]=E;const b=r.hash;(b.directionalLength!==x||b.pointLength!==C||b.spotLength!==p||b.rectAreaLength!==I||b.hemiLength!==y||b.numDirectionalShadows!==B||b.numPointShadows!==R||b.numSpotShadows!==M||b.numSpotMaps!==T||b.numLightProbes!==K)&&(r.directional.length=x,r.spot.length=p,r.rectArea.length=I,r.point.length=C,r.hemi.length=y,r.directionalShadow.length=B,r.directionalShadowMap.length=B,r.pointShadow.length=R,r.pointShadowMap.length=R,r.spotShadow.length=M,r.spotShadowMap.length=M,r.directionalShadowMatrix.length=B,r.pointShadowMatrix.length=R,r.spotLightMatrix.length=M+T-P,r.spotLightMap.length=T,r.numSpotLightShadowsWithMaps=P,r.numLightProbes=K,b.directionalLength=x,b.pointLength=C,b.spotLength=p,b.rectAreaLength=I,b.hemiLength=y,b.numDirectionalShadows=B,b.numPointShadows=R,b.numSpotShadows=M,b.numSpotMaps=T,b.numLightProbes=K,r.version=qF++)}function A(h,f){let d=0,m=0,E=0,x=0,C=0;const p=f.matrixWorldInverse;for(let I=0,y=h.length;I=a.length?(c=new E_(n,e),a.push(c)):c=a[o],c}function r(){t=new WeakMap}return{get:i,dispose:r}}class Wg extends hi{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=uQ,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class Yg extends hi{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const ek=`void main() { gl_Position = vec4( position, 1.0 ); -}`,GF=`uniform sampler2D shadow_pass; +}`,tk=`uniform sampler2D shadow_pass; uniform vec2 resolution; uniform float radius; #include @@ -3776,12 +3776,12 @@ void main() { squared_mean = squared_mean / samples; float std_dev = sqrt( squared_mean - mean * mean ); gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function OF(n,e,t){let i=new Fh;const r=new _e,s=new _e,o=new sn,a=new Gg({depthPacking:X1}),c=new Og,A={},h=t.maxTextureSize,f={[Vr]:Hi,[Hi]:Vr,[_s]:_s},d=new ls({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new _e},radius:{value:4}},vertexShader:kF,fragmentShader:GF}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const E=new Tt;E.setAttribute("position",new tn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const x=new en(E,d),C=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=bg;let g=this.type;this.render=function(w,T,P){if(C.enabled===!1||C.autoUpdate===!1&&C.needsUpdate===!1||w.length===0)return;const J=n.getRenderTarget(),M=n.getActiveCubeFace(),b=n.getActiveMipmapLevel(),K=n.state;K.setBlending(lo),K.buffers.color.setClear(1,1,1,1),K.buffers.depth.setTest(!0),K.setScissorTest(!1);const ge=g!==es&&this.type===es,Y=g===es&&this.type!==es;for(let ce=0,re=w.length;ceh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/Z.x),r.x=s.x*Z.x,U.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/Z.y),r.y=s.y*Z.y,U.mapSize.y=s.y)),U.map===null||ge===!0||Y===!0){const ue=this.type!==es?{minFilter:Gn,magFilter:Gn}:{};U.map!==null&&U.map.dispose(),U.map=new Wr(r.x,r.y,ue),U.map.texture.name=fe.name+".shadowMap",U.camera.updateProjectionMatrix()}n.setRenderTarget(U.map),n.clear();const ee=U.getViewportCount();for(let ue=0;ue0||T.map&&T.alphaTest>0){const K=M.uuid,ge=T.uuid;let Y=A[K];Y===void 0&&(Y={},A[K]=Y);let ce=Y[ge];ce===void 0&&(ce=M.clone(),Y[ge]=ce,T.addEventListener("dispose",R)),M=ce}if(M.visible=T.visible,M.wireframe=T.wireframe,J===es?M.side=T.shadowSide!==null?T.shadowSide:T.side:M.side=T.shadowSide!==null?T.shadowSide:f[T.side],M.alphaMap=T.alphaMap,M.alphaTest=T.alphaTest,M.map=T.map,M.clipShadows=T.clipShadows,M.clippingPlanes=T.clippingPlanes,M.clipIntersection=T.clipIntersection,M.displacementMap=T.displacementMap,M.displacementScale=T.displacementScale,M.displacementBias=T.displacementBias,M.wireframeLinewidth=T.wireframeLinewidth,M.linewidth=T.linewidth,P.isPointLight===!0&&M.isMeshDistanceMaterial===!0){const K=n.properties.get(M);K.light=P}return M}function B(w,T,P,J,M){if(w.visible===!1)return;if(w.layers.test(T.layers)&&(w.isMesh||w.isLine||w.isPoints)&&(w.castShadow||w.receiveShadow&&M===es)&&(!w.frustumCulled||i.intersectsObject(w))){w.modelViewMatrix.multiplyMatrices(P.matrixWorldInverse,w.matrixWorld);const ge=e.update(w),Y=w.material;if(Array.isArray(Y)){const ce=ge.groups;for(let re=0,fe=ce.length;re=1):ee.indexOf("OpenGL ES")!==-1&&(Z=parseFloat(/^OpenGL ES (\d)/.exec(ee)[1]),U=Z>=2);let ue=null,ye={};const ke=n.getParameter(n.SCISSOR_BOX),V=n.getParameter(n.VIEWPORT),O=new sn().fromArray(ke),k=new sn().fromArray(V);function F(X,Ge,Ue,it){const At=new Uint8Array(4),zt=n.createTexture();n.bindTexture(X,zt),n.texParameteri(X,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(X,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Vt=0;Vt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new WeakMap;let f;const d=new WeakMap;let m=!1;try{m=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function E(S,D){return m?new OffscreenCanvas(S,D):Ch("canvas")}function x(S,D,ne,be){let De=1;if((S.width>be||S.height>be)&&(De=be/Math.max(S.width,S.height)),De<1||D===!0)if(typeof HTMLImageElement<"u"&&S instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&S instanceof ImageBitmap){const Qe=D?ug:Math.floor,Xe=Qe(De*S.width),ze=Qe(De*S.height);f===void 0&&(f=E(Xe,ze));const qe=ne?E(Xe,ze):f;return qe.width=Xe,qe.height=ze,qe.getContext("2d").drawImage(S,0,0,Xe,ze),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+S.width+"x"+S.height+") to ("+Xe+"x"+ze+")."),qe}else return"data"in S&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+S.width+"x"+S.height+")."),S;return S}function C(S){return py(S.width)&&py(S.height)}function g(S){return a?!1:S.wrapS!==Qi||S.wrapT!==Qi||S.minFilter!==Gn&&S.minFilter!==vn}function I(S,D){return S.generateMipmaps&&D&&S.minFilter!==Gn&&S.minFilter!==vn}function y(S){n.generateMipmap(S)}function B(S,D,ne,be,De=!1){if(a===!1)return D;if(S!==null){if(n[S]!==void 0)return n[S];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+S+"'")}let Qe=D;if(D===n.RED&&(ne===n.FLOAT&&(Qe=n.R32F),ne===n.HALF_FLOAT&&(Qe=n.R16F),ne===n.UNSIGNED_BYTE&&(Qe=n.R8)),D===n.RED_INTEGER&&(ne===n.UNSIGNED_BYTE&&(Qe=n.R8UI),ne===n.UNSIGNED_SHORT&&(Qe=n.R16UI),ne===n.UNSIGNED_INT&&(Qe=n.R32UI),ne===n.BYTE&&(Qe=n.R8I),ne===n.SHORT&&(Qe=n.R16I),ne===n.INT&&(Qe=n.R32I)),D===n.RG&&(ne===n.FLOAT&&(Qe=n.RG32F),ne===n.HALF_FLOAT&&(Qe=n.RG16F),ne===n.UNSIGNED_BYTE&&(Qe=n.RG8)),D===n.RGBA){const Xe=De?dh:nn.getTransfer(be);ne===n.FLOAT&&(Qe=n.RGBA32F),ne===n.HALF_FLOAT&&(Qe=n.RGBA16F),ne===n.UNSIGNED_BYTE&&(Qe=Xe===pn?n.SRGB8_ALPHA8:n.RGBA8),ne===n.UNSIGNED_SHORT_4_4_4_4&&(Qe=n.RGBA4),ne===n.UNSIGNED_SHORT_5_5_5_1&&(Qe=n.RGB5_A1)}return(Qe===n.R16F||Qe===n.R32F||Qe===n.RG16F||Qe===n.RG32F||Qe===n.RGBA16F||Qe===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Qe}function R(S,D,ne){return I(S,ne)===!0||S.isFramebufferTexture&&S.minFilter!==Gn&&S.minFilter!==vn?Math.log2(Math.max(D.width,D.height))+1:S.mipmaps!==void 0&&S.mipmaps.length>0?S.mipmaps.length:S.isCompressedTexture&&Array.isArray(S.image)?D.mipmaps.length:1}function w(S){return S===Gn||S===lg||S===Al?n.NEAREST:n.LINEAR}function T(S){const D=S.target;D.removeEventListener("dispose",T),J(D),D.isVideoTexture&&h.delete(D)}function P(S){const D=S.target;D.removeEventListener("dispose",P),b(D)}function J(S){const D=i.get(S);if(D.__webglInit===void 0)return;const ne=S.source,be=d.get(ne);if(be){const De=be[D.__cacheKey];De.usedTimes--,De.usedTimes===0&&M(S),Object.keys(be).length===0&&d.delete(ne)}i.remove(S)}function M(S){const D=i.get(S);n.deleteTexture(D.__webglTexture);const ne=S.source,be=d.get(ne);delete be[D.__cacheKey],o.memory.textures--}function b(S){const D=S.texture,ne=i.get(S),be=i.get(D);if(be.__webglTexture!==void 0&&(n.deleteTexture(be.__webglTexture),o.memory.textures--),S.depthTexture&&S.depthTexture.dispose(),S.isWebGLCubeRenderTarget)for(let De=0;De<6;De++){if(Array.isArray(ne.__webglFramebuffer[De]))for(let Qe=0;Qe=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+S+" texture units while this GPU supports only "+r.maxTextures),K+=1,S}function ce(S){const D=[];return D.push(S.wrapS),D.push(S.wrapT),D.push(S.wrapR||0),D.push(S.magFilter),D.push(S.minFilter),D.push(S.anisotropy),D.push(S.internalFormat),D.push(S.format),D.push(S.type),D.push(S.generateMipmaps),D.push(S.premultiplyAlpha),D.push(S.flipY),D.push(S.unpackAlignment),D.push(S.colorSpace),D.join()}function re(S,D){const ne=i.get(S);if(S.isVideoTexture&&Te(S),S.isRenderTargetTexture===!1&&S.version>0&&ne.__version!==S.version){const be=S.image;if(be===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(be.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{O(ne,S,D);return}}t.bindTexture(n.TEXTURE_2D,ne.__webglTexture,n.TEXTURE0+D)}function fe(S,D){const ne=i.get(S);if(S.version>0&&ne.__version!==S.version){O(ne,S,D);return}t.bindTexture(n.TEXTURE_2D_ARRAY,ne.__webglTexture,n.TEXTURE0+D)}function U(S,D){const ne=i.get(S);if(S.version>0&&ne.__version!==S.version){O(ne,S,D);return}t.bindTexture(n.TEXTURE_3D,ne.__webglTexture,n.TEXTURE0+D)}function Z(S,D){const ne=i.get(S);if(S.version>0&&ne.__version!==S.version){k(ne,S,D);return}t.bindTexture(n.TEXTURE_CUBE_MAP,ne.__webglTexture,n.TEXTURE0+D)}const ee={[ch]:n.REPEAT,[Qi]:n.CLAMP_TO_EDGE,[uh]:n.MIRRORED_REPEAT},ue={[Gn]:n.NEAREST,[lg]:n.NEAREST_MIPMAP_NEAREST,[Al]:n.NEAREST_MIPMAP_LINEAR,[vn]:n.LINEAR,[FA]:n.LINEAR_MIPMAP_NEAREST,[Ss]:n.LINEAR_MIPMAP_LINEAR},ye={[Z2]:n.NEVER,[rQ]:n.ALWAYS,[$2]:n.LESS,[J1]:n.LEQUAL,[eQ]:n.EQUAL,[iQ]:n.GEQUAL,[tQ]:n.GREATER,[nQ]:n.NOTEQUAL};function ke(S,D,ne){if(D.type===Fr&&e.has("OES_texture_float_linear")===!1&&(D.magFilter===vn||D.magFilter===FA||D.magFilter===Al||D.magFilter===Ss||D.minFilter===vn||D.minFilter===FA||D.minFilter===Al||D.minFilter===Ss)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),ne?(n.texParameteri(S,n.TEXTURE_WRAP_S,ee[D.wrapS]),n.texParameteri(S,n.TEXTURE_WRAP_T,ee[D.wrapT]),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,ee[D.wrapR]),n.texParameteri(S,n.TEXTURE_MAG_FILTER,ue[D.magFilter]),n.texParameteri(S,n.TEXTURE_MIN_FILTER,ue[D.minFilter])):(n.texParameteri(S,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(S,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(D.wrapS!==Qi||D.wrapT!==Qi)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(S,n.TEXTURE_MAG_FILTER,w(D.magFilter)),n.texParameteri(S,n.TEXTURE_MIN_FILTER,w(D.minFilter)),D.minFilter!==Gn&&D.minFilter!==vn&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),D.compareFunction&&(n.texParameteri(S,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(S,n.TEXTURE_COMPARE_FUNC,ye[D.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const be=e.get("EXT_texture_filter_anisotropic");if(D.magFilter===Gn||D.minFilter!==Al&&D.minFilter!==Ss||D.type===Fr&&e.has("OES_texture_float_linear")===!1||a===!1&&D.type===Dl&&e.has("OES_texture_half_float_linear")===!1)return;(D.anisotropy>1||i.get(D).__currentAnisotropy)&&(n.texParameterf(S,be.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,r.getMaxAnisotropy())),i.get(D).__currentAnisotropy=D.anisotropy)}}function V(S,D){let ne=!1;S.__webglInit===void 0&&(S.__webglInit=!0,D.addEventListener("dispose",T));const be=D.source;let De=d.get(be);De===void 0&&(De={},d.set(be,De));const Qe=ce(D);if(Qe!==S.__cacheKey){De[Qe]===void 0&&(De[Qe]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,ne=!0),De[Qe].usedTimes++;const Xe=De[S.__cacheKey];Xe!==void 0&&(De[S.__cacheKey].usedTimes--,Xe.usedTimes===0&&M(D)),S.__cacheKey=Qe,S.__webglTexture=De[Qe].texture}return ne}function O(S,D,ne){let be=n.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&&(be=n.TEXTURE_2D_ARRAY),D.isData3DTexture&&(be=n.TEXTURE_3D);const De=V(S,D),Qe=D.source;t.bindTexture(be,S.__webglTexture,n.TEXTURE0+ne);const Xe=i.get(Qe);if(Qe.version!==Xe.__version||De===!0){t.activeTexture(n.TEXTURE0+ne);const ze=nn.getPrimaries(nn.workingColorSpace),qe=D.colorSpace===mr?null:nn.getPrimaries(D.colorSpace),at=D.colorSpace===mr||ze===qe?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,D.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,D.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,at);const Ct=g(D)&&C(D.image)===!1;let Le=x(D.image,Ct,!1,r.maxTextureSize);Le=j(D,Le);const Dt=C(Le)||a,Bt=s.convert(D.format,D.colorSpace);let dt=s.convert(D.type),ot=B(D.internalFormat,Bt,dt,D.colorSpace,D.isVideoTexture);ke(be,D,Dt);let tt;const vt=D.mipmaps,Pt=a&&D.isVideoTexture!==!0&&ot!==V1,Xt=Xe.__version===void 0||De===!0,_t=Qe.dataReady,Ht=R(D,Le,Dt);if(D.isDepthTexture)ot=n.DEPTH_COMPONENT,a?D.type===Fr?ot=n.DEPTH_COMPONENT32F:D.type===so?ot=n.DEPTH_COMPONENT24:D.type===ia?ot=n.DEPTH24_STENCIL8:ot=n.DEPTH_COMPONENT16:D.type===Fr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),D.format===ra&&ot===n.DEPTH_COMPONENT&&D.type!==Lg&&D.type!==so&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),D.type=so,dt=s.convert(D.type)),D.format===bl&&ot===n.DEPTH_COMPONENT&&(ot=n.DEPTH_STENCIL,D.type!==ia&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),D.type=ia,dt=s.convert(D.type))),Xt&&(Pt?t.texStorage2D(n.TEXTURE_2D,1,ot,Le.width,Le.height):t.texImage2D(n.TEXTURE_2D,0,ot,Le.width,Le.height,0,Bt,dt,null));else if(D.isDataTexture)if(vt.length>0&&Dt){Pt&&Xt&&t.texStorage2D(n.TEXTURE_2D,Ht,ot,vt[0].width,vt[0].height);for(let X=0,Ge=vt.length;X>=1,Ge>>=1}}else if(vt.length>0&&Dt){Pt&&Xt&&t.texStorage2D(n.TEXTURE_2D,Ht,ot,vt[0].width,vt[0].height);for(let X=0,Ge=vt.length;X0&&_t++,t.texStorage2D(n.TEXTURE_CUBE_MAP,_t,tt,Le[0].width,Le[0].height));for(let X=0;X<6;X++)if(Ct){vt?Xt&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+X,0,0,0,Le[X].width,Le[X].height,dt,ot,Le[X].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+X,0,tt,Le[X].width,Le[X].height,0,dt,ot,Le[X].data);for(let Ge=0;Ge>Qe),Le=Math.max(1,D.height>>Qe);De===n.TEXTURE_3D||De===n.TEXTURE_2D_ARRAY?t.texImage3D(De,Qe,qe,Ct,Le,D.depth,0,Xe,ze,null):t.texImage2D(De,Qe,qe,Ct,Le,0,Xe,ze,null)}t.bindFramebuffer(n.FRAMEBUFFER,S),he(D)?c.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,be,De,i.get(ne).__webglTexture,0,ae(D)):(De===n.TEXTURE_2D||De>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&De<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,be,De,i.get(ne).__webglTexture,Qe),t.bindFramebuffer(n.FRAMEBUFFER,null)}function me(S,D,ne){if(n.bindRenderbuffer(n.RENDERBUFFER,S),D.depthBuffer&&!D.stencilBuffer){let be=a===!0?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(ne||he(D)){const De=D.depthTexture;De&&De.isDepthTexture&&(De.type===Fr?be=n.DEPTH_COMPONENT32F:De.type===so&&(be=n.DEPTH_COMPONENT24));const Qe=ae(D);he(D)?c.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Qe,be,D.width,D.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Qe,be,D.width,D.height)}else n.renderbufferStorage(n.RENDERBUFFER,be,D.width,D.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,S)}else if(D.depthBuffer&&D.stencilBuffer){const be=ae(D);ne&&he(D)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):he(D)?c.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,D.width,D.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,S)}else{const be=D.isWebGLMultipleRenderTargets===!0?D.texture:[D.texture];for(let De=0;De0){ne.__webglFramebuffer[ze]=[];for(let qe=0;qe0){ne.__webglFramebuffer=[];for(let ze=0;ze0&&he(S)===!1){const ze=Qe?D:[D];ne.__webglMultisampledFramebuffer=n.createFramebuffer(),ne.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,ne.__webglMultisampledFramebuffer);for(let qe=0;qe0)for(let qe=0;qe0)for(let qe=0;qe0&&he(S)===!1){const D=S.isWebGLMultipleRenderTargets?S.texture:[S.texture],ne=S.width,be=S.height;let De=n.COLOR_BUFFER_BIT;const Qe=[],Xe=S.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ze=i.get(S),qe=S.isWebGLMultipleRenderTargets===!0;if(qe)for(let at=0;at0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&D.__useRenderToTexture!==!1}function Te(S){const D=o.render.frame;h.get(S)!==D&&(h.set(S,D),S.update())}function j(S,D){const ne=S.colorSpace,be=S.format,De=S.type;return S.isCompressedTexture===!0||S.isVideoTexture===!0||S.format===cg||ne!==bs&&ne!==mr&&(nn.getTransfer(ne)===pn?a===!1?e.has("EXT_sRGB")===!0&&be===ki?(S.format=cg,S.minFilter=vn,S.generateMipmaps=!1):D=q1.sRGBToLinear(D):(be!==ki||De!==Ts)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ne)),D}this.allocateTextureUnit=Y,this.resetTextureUnits=ge,this.setTexture2D=re,this.setTexture2DArray=fe,this.setTexture3D=U,this.setTextureCube=Z,this.rebindTextures=Be,this.setupRenderTarget=H,this.updateRenderTargetMipmap=Ee,this.updateMultisampleRenderTarget=te,this.setupDepthRenderbuffer=ie,this.setupFrameBufferTexture=F,this.useMultisampledRTT=he}function CQ(n,e,t){const i=t.isWebGL2;function r(s,o=mr){let a;const c=nn.getTransfer(o);if(s===Ts)return n.UNSIGNED_BYTE;if(s===k1)return n.UNSIGNED_SHORT_4_4_4_4;if(s===G1)return n.UNSIGNED_SHORT_5_5_5_1;if(s===k2)return n.BYTE;if(s===G2)return n.SHORT;if(s===Lg)return n.UNSIGNED_SHORT;if(s===F1)return n.INT;if(s===so)return n.UNSIGNED_INT;if(s===Fr)return n.FLOAT;if(s===Dl)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===O2)return n.ALPHA;if(s===ki)return n.RGBA;if(s===H2)return n.LUMINANCE;if(s===z2)return n.LUMINANCE_ALPHA;if(s===ra)return n.DEPTH_COMPONENT;if(s===bl)return n.DEPTH_STENCIL;if(s===cg)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===V2)return n.RED;if(s===O1)return n.RED_INTEGER;if(s===W2)return n.RG;if(s===H1)return n.RG_INTEGER;if(s===z1)return n.RGBA_INTEGER;if(s===yp||s===vp||s===Ip||s===xp)if(c===pn)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===yp)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===vp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===Ip)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===xp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===yp)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===vp)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===Ip)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===xp)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===HC||s===zC||s===VC||s===WC)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===HC)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===zC)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===VC)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===WC)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===V1)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===YC||s===XC)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(s===YC)return c===pn?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===XC)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===JC||s===KC||s===qC||s===jC||s===ZC||s===$C||s===ey||s===ty||s===ny||s===iy||s===ry||s===sy||s===oy||s===ay)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(s===JC)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===KC)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===qC)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===jC)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===ZC)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===$C)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===ey)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===ty)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===ny)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===iy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===ry)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===sy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===oy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===ay)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===Bp||s===ly||s===cy)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(s===Bp)return c===pn?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===ly)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===cy)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===Y2||s===uy||s===Ay||s===hy)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(s===Bp)return a.COMPRESSED_RED_RGTC1_EXT;if(s===uy)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===Ay)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===hy)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===ia?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[s]!==void 0?n[s]:null}return{convert:r}}class yQ extends Zn{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class Gr extends jt{constructor(){super(),this.isGroup=!0,this.type="Group"}}const VF={type:"move"};class aE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Gr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Gr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new G,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new G),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Gr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new G,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new G),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,s=null,o=null;const a=this._targetRay,c=this._grip,A=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(A&&e.hand){o=!0;for(const x of e.hand.values()){const C=t.getJointPose(x,i),g=this._getHandJoint(A,x);C!==null&&(g.matrix.fromArray(C.transform.matrix),g.matrix.decompose(g.position,g.rotation,g.scale),g.matrixWorldNeedsUpdate=!0,g.jointRadius=C.radius),g.visible=C!==null}const h=A.joints["index-finger-tip"],f=A.joints["thumb-tip"],d=h.position.distanceTo(f.position),m=.02,E=.005;A.inputState.pinching&&d>m+E?(A.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!A.inputState.pinching&&d<=m-E&&(A.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));a!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(VF)))}return a!==null&&(a.visible=r!==null),c!==null&&(c.visible=s!==null),A!==null&&(A.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new Gr;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}const WF=` +}`;function nk(n,e,t){let i=new Oh;const r=new _e,s=new _e,o=new an,a=new Wg({depthPacking:ev}),c=new Yg,A={},h=t.maxTextureSize,f={[Vr]:Vi,[Vi]:Vr,[ws]:ws},d=new us({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new _e},radius:{value:4}},vertexShader:ek,fragmentShader:tk}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const E=new Tt;E.setAttribute("position",new rn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const x=new nn(E,d),C=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Fg;let p=this.type;this.render=function(M,T,P){if(C.enabled===!1||C.autoUpdate===!1&&C.needsUpdate===!1||M.length===0)return;const K=n.getRenderTarget(),w=n.getActiveCubeFace(),b=n.getActiveMipmapLevel(),q=n.state;q.setBlending(Ao),q.buffers.color.setClear(1,1,1,1),q.buffers.depth.setTest(!0),q.setScissorTest(!1);const de=p!==ts&&this.type===ts,Y=p===ts&&this.type!==ts;for(let ie=0,te=M.length;ieh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/$.x),r.x=s.x*$.x,U.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/$.y),r.y=s.y*$.y,U.mapSize.y=s.y)),U.map===null||de===!0||Y===!0){const Ae=this.type!==ts?{minFilter:Gn,magFilter:Gn}:{};U.map!==null&&U.map.dispose(),U.map=new Wr(r.x,r.y,Ae),U.map.texture.name=ue.name+".shadowMap",U.camera.updateProjectionMatrix()}n.setRenderTarget(U.map),n.clear();const ee=U.getViewportCount();for(let Ae=0;Ae0||T.map&&T.alphaTest>0){const q=w.uuid,de=T.uuid;let Y=A[q];Y===void 0&&(Y={},A[q]=Y);let ie=Y[de];ie===void 0&&(ie=w.clone(),Y[de]=ie,T.addEventListener("dispose",R)),w=ie}if(w.visible=T.visible,w.wireframe=T.wireframe,K===ts?w.side=T.shadowSide!==null?T.shadowSide:T.side:w.side=T.shadowSide!==null?T.shadowSide:f[T.side],w.alphaMap=T.alphaMap,w.alphaTest=T.alphaTest,w.map=T.map,w.clipShadows=T.clipShadows,w.clippingPlanes=T.clippingPlanes,w.clipIntersection=T.clipIntersection,w.displacementMap=T.displacementMap,w.displacementScale=T.displacementScale,w.displacementBias=T.displacementBias,w.wireframeLinewidth=T.wireframeLinewidth,w.linewidth=T.linewidth,P.isPointLight===!0&&w.isMeshDistanceMaterial===!0){const q=n.properties.get(w);q.light=P}return w}function B(M,T,P,K,w){if(M.visible===!1)return;if(M.layers.test(T.layers)&&(M.isMesh||M.isLine||M.isPoints)&&(M.castShadow||M.receiveShadow&&w===ts)&&(!M.frustumCulled||i.intersectsObject(M))){M.modelViewMatrix.multiplyMatrices(P.matrixWorldInverse,M.matrixWorld);const de=e.update(M),Y=M.material;if(Array.isArray(Y)){const ie=de.groups;for(let te=0,ue=ie.length;te=1):ee.indexOf("OpenGL ES")!==-1&&($=parseFloat(/^OpenGL ES (\d)/.exec(ee)[1]),U=$>=2);let Ae=null,ye={};const ke=n.getParameter(n.SCISSOR_BOX),V=n.getParameter(n.VIEWPORT),O=new an().fromArray(ke),k=new an().fromArray(V);function F(X,Ge,Ue,it){const At=new Uint8Array(4),Vt=n.createTexture();n.bindTexture(X,Vt),n.texParameteri(X,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(X,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Wt=0;Wt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new WeakMap;let f;const d=new WeakMap;let m=!1;try{m=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function E(S,D){return m?new OffscreenCanvas(S,D):vh("canvas")}function x(S,D,re,be){let De=1;if((S.width>be||S.height>be)&&(De=be/Math.max(S.width,S.height)),De<1||D===!0)if(typeof HTMLImageElement<"u"&&S instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&S instanceof ImageBitmap){const Qe=D?pg:Math.floor,Xe=Qe(De*S.width),ze=Qe(De*S.height);f===void 0&&(f=E(Xe,ze));const qe=re?E(Xe,ze):f;return qe.width=Xe,qe.height=ze,qe.getContext("2d").drawImage(S,0,0,Xe,ze),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+S.width+"x"+S.height+") to ("+Xe+"x"+ze+")."),qe}else return"data"in S&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+S.width+"x"+S.height+")."),S;return S}function C(S){return xy(S.width)&&xy(S.height)}function p(S){return a?!1:S.wrapS!==Ti||S.wrapT!==Ti||S.minFilter!==Gn&&S.minFilter!==In}function I(S,D){return S.generateMipmaps&&D&&S.minFilter!==Gn&&S.minFilter!==In}function y(S){n.generateMipmap(S)}function B(S,D,re,be,De=!1){if(a===!1)return D;if(S!==null){if(n[S]!==void 0)return n[S];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+S+"'")}let Qe=D;if(D===n.RED&&(re===n.FLOAT&&(Qe=n.R32F),re===n.HALF_FLOAT&&(Qe=n.R16F),re===n.UNSIGNED_BYTE&&(Qe=n.R8)),D===n.RED_INTEGER&&(re===n.UNSIGNED_BYTE&&(Qe=n.R8UI),re===n.UNSIGNED_SHORT&&(Qe=n.R16UI),re===n.UNSIGNED_INT&&(Qe=n.R32UI),re===n.BYTE&&(Qe=n.R8I),re===n.SHORT&&(Qe=n.R16I),re===n.INT&&(Qe=n.R32I)),D===n.RG&&(re===n.FLOAT&&(Qe=n.RG32F),re===n.HALF_FLOAT&&(Qe=n.RG16F),re===n.UNSIGNED_BYTE&&(Qe=n.RG8)),D===n.RGBA){const Xe=De?gh:sn.getTransfer(be);re===n.FLOAT&&(Qe=n.RGBA32F),re===n.HALF_FLOAT&&(Qe=n.RGBA16F),re===n.UNSIGNED_BYTE&&(Qe=Xe===pn?n.SRGB8_ALPHA8:n.RGBA8),re===n.UNSIGNED_SHORT_4_4_4_4&&(Qe=n.RGBA4),re===n.UNSIGNED_SHORT_5_5_5_1&&(Qe=n.RGB5_A1)}return(Qe===n.R16F||Qe===n.R32F||Qe===n.RG16F||Qe===n.RG32F||Qe===n.RGBA16F||Qe===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Qe}function R(S,D,re){return I(S,re)===!0||S.isFramebufferTexture&&S.minFilter!==Gn&&S.minFilter!==In?Math.log2(Math.max(D.width,D.height))+1:S.mipmaps!==void 0&&S.mipmaps.length>0?S.mipmaps.length:S.isCompressedTexture&&Array.isArray(S.image)?D.mipmaps.length:1}function M(S){return S===Gn||S===fg||S===yl?n.NEAREST:n.LINEAR}function T(S){const D=S.target;D.removeEventListener("dispose",T),K(D),D.isVideoTexture&&h.delete(D)}function P(S){const D=S.target;D.removeEventListener("dispose",P),b(D)}function K(S){const D=i.get(S);if(D.__webglInit===void 0)return;const re=S.source,be=d.get(re);if(be){const De=be[D.__cacheKey];De.usedTimes--,De.usedTimes===0&&w(S),Object.keys(be).length===0&&d.delete(re)}i.remove(S)}function w(S){const D=i.get(S);n.deleteTexture(D.__webglTexture);const re=S.source,be=d.get(re);delete be[D.__cacheKey],o.memory.textures--}function b(S){const D=S.texture,re=i.get(S),be=i.get(D);if(be.__webglTexture!==void 0&&(n.deleteTexture(be.__webglTexture),o.memory.textures--),S.depthTexture&&S.depthTexture.dispose(),S.isWebGLCubeRenderTarget)for(let De=0;De<6;De++){if(Array.isArray(re.__webglFramebuffer[De]))for(let Qe=0;Qe=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+S+" texture units while this GPU supports only "+r.maxTextures),q+=1,S}function ie(S){const D=[];return D.push(S.wrapS),D.push(S.wrapT),D.push(S.wrapR||0),D.push(S.magFilter),D.push(S.minFilter),D.push(S.anisotropy),D.push(S.internalFormat),D.push(S.format),D.push(S.type),D.push(S.generateMipmaps),D.push(S.premultiplyAlpha),D.push(S.flipY),D.push(S.unpackAlignment),D.push(S.colorSpace),D.join()}function te(S,D){const re=i.get(S);if(S.isVideoTexture&&Te(S),S.isRenderTargetTexture===!1&&S.version>0&&re.__version!==S.version){const be=S.image;if(be===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(be.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{O(re,S,D);return}}t.bindTexture(n.TEXTURE_2D,re.__webglTexture,n.TEXTURE0+D)}function ue(S,D){const re=i.get(S);if(S.version>0&&re.__version!==S.version){O(re,S,D);return}t.bindTexture(n.TEXTURE_2D_ARRAY,re.__webglTexture,n.TEXTURE0+D)}function U(S,D){const re=i.get(S);if(S.version>0&&re.__version!==S.version){O(re,S,D);return}t.bindTexture(n.TEXTURE_3D,re.__webglTexture,n.TEXTURE0+D)}function $(S,D){const re=i.get(S);if(S.version>0&&re.__version!==S.version){k(re,S,D);return}t.bindTexture(n.TEXTURE_CUBE_MAP,re.__webglTexture,n.TEXTURE0+D)}const ee={[Ah]:n.REPEAT,[Ti]:n.CLAMP_TO_EDGE,[hh]:n.MIRRORED_REPEAT},Ae={[Gn]:n.NEAREST,[fg]:n.NEAREST_MIPMAP_NEAREST,[yl]:n.NEAREST_MIPMAP_LINEAR,[In]:n.LINEAR,[GA]:n.LINEAR_MIPMAP_NEAREST,[Ms]:n.LINEAR_MIPMAP_LINEAR},ye={[hQ]:n.NEVER,[EQ]:n.ALWAYS,[fQ]:n.LESS,[tv]:n.LEQUAL,[dQ]:n.EQUAL,[mQ]:n.GEQUAL,[pQ]:n.GREATER,[gQ]:n.NOTEQUAL};function ke(S,D,re){if(D.type===Fr&&e.has("OES_texture_float_linear")===!1&&(D.magFilter===In||D.magFilter===GA||D.magFilter===yl||D.magFilter===Ms||D.minFilter===In||D.minFilter===GA||D.minFilter===yl||D.minFilter===Ms)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),re?(n.texParameteri(S,n.TEXTURE_WRAP_S,ee[D.wrapS]),n.texParameteri(S,n.TEXTURE_WRAP_T,ee[D.wrapT]),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,ee[D.wrapR]),n.texParameteri(S,n.TEXTURE_MAG_FILTER,Ae[D.magFilter]),n.texParameteri(S,n.TEXTURE_MIN_FILTER,Ae[D.minFilter])):(n.texParameteri(S,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(S,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(S===n.TEXTURE_3D||S===n.TEXTURE_2D_ARRAY)&&n.texParameteri(S,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(D.wrapS!==Ti||D.wrapT!==Ti)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(S,n.TEXTURE_MAG_FILTER,M(D.magFilter)),n.texParameteri(S,n.TEXTURE_MIN_FILTER,M(D.minFilter)),D.minFilter!==Gn&&D.minFilter!==In&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),D.compareFunction&&(n.texParameteri(S,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(S,n.TEXTURE_COMPARE_FUNC,ye[D.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const be=e.get("EXT_texture_filter_anisotropic");if(D.magFilter===Gn||D.minFilter!==yl&&D.minFilter!==Ms||D.type===Fr&&e.has("OES_texture_float_linear")===!1||a===!1&&D.type===Ol&&e.has("OES_texture_half_float_linear")===!1)return;(D.anisotropy>1||i.get(D).__currentAnisotropy)&&(n.texParameterf(S,be.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,r.getMaxAnisotropy())),i.get(D).__currentAnisotropy=D.anisotropy)}}function V(S,D){let re=!1;S.__webglInit===void 0&&(S.__webglInit=!0,D.addEventListener("dispose",T));const be=D.source;let De=d.get(be);De===void 0&&(De={},d.set(be,De));const Qe=ie(D);if(Qe!==S.__cacheKey){De[Qe]===void 0&&(De[Qe]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,re=!0),De[Qe].usedTimes++;const Xe=De[S.__cacheKey];Xe!==void 0&&(De[S.__cacheKey].usedTimes--,Xe.usedTimes===0&&w(D)),S.__cacheKey=Qe,S.__webglTexture=De[Qe].texture}return re}function O(S,D,re){let be=n.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&&(be=n.TEXTURE_2D_ARRAY),D.isData3DTexture&&(be=n.TEXTURE_3D);const De=V(S,D),Qe=D.source;t.bindTexture(be,S.__webglTexture,n.TEXTURE0+re);const Xe=i.get(Qe);if(Qe.version!==Xe.__version||De===!0){t.activeTexture(n.TEXTURE0+re);const ze=sn.getPrimaries(sn.workingColorSpace),qe=D.colorSpace===Er?null:sn.getPrimaries(D.colorSpace),at=D.colorSpace===Er||ze===qe?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,D.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,D.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,at);const Ct=p(D)&&C(D.image)===!1;let Le=x(D.image,Ct,!1,r.maxTextureSize);Le=Z(D,Le);const Dt=C(Le)||a,Bt=s.convert(D.format,D.colorSpace);let dt=s.convert(D.type),ot=B(D.internalFormat,Bt,dt,D.colorSpace,D.isVideoTexture);ke(be,D,Dt);let tt;const vt=D.mipmaps,Pt=a&&D.isVideoTexture!==!0&&ot!==j1,Kt=Xe.__version===void 0||De===!0,_t=Qe.dataReady,zt=R(D,Le,Dt);if(D.isDepthTexture)ot=n.DEPTH_COMPONENT,a?D.type===Fr?ot=n.DEPTH_COMPONENT32F:D.type===lo?ot=n.DEPTH_COMPONENT24:D.type===ma?ot=n.DEPTH24_STENCIL8:ot=n.DEPTH_COMPONENT16:D.type===Fr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),D.format===Ea&&ot===n.DEPTH_COMPONENT&&D.type!==Gg&&D.type!==lo&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),D.type=lo,dt=s.convert(D.type)),D.format===Hl&&ot===n.DEPTH_COMPONENT&&(ot=n.DEPTH_STENCIL,D.type!==ma&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),D.type=ma,dt=s.convert(D.type))),Kt&&(Pt?t.texStorage2D(n.TEXTURE_2D,1,ot,Le.width,Le.height):t.texImage2D(n.TEXTURE_2D,0,ot,Le.width,Le.height,0,Bt,dt,null));else if(D.isDataTexture)if(vt.length>0&&Dt){Pt&&Kt&&t.texStorage2D(n.TEXTURE_2D,zt,ot,vt[0].width,vt[0].height);for(let X=0,Ge=vt.length;X>=1,Ge>>=1}}else if(vt.length>0&&Dt){Pt&&Kt&&t.texStorage2D(n.TEXTURE_2D,zt,ot,vt[0].width,vt[0].height);for(let X=0,Ge=vt.length;X0&&_t++,t.texStorage2D(n.TEXTURE_CUBE_MAP,_t,tt,Le[0].width,Le[0].height));for(let X=0;X<6;X++)if(Ct){vt?Kt&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+X,0,0,0,Le[X].width,Le[X].height,dt,ot,Le[X].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+X,0,tt,Le[X].width,Le[X].height,0,dt,ot,Le[X].data);for(let Ge=0;Ge>Qe),Le=Math.max(1,D.height>>Qe);De===n.TEXTURE_3D||De===n.TEXTURE_2D_ARRAY?t.texImage3D(De,Qe,qe,Ct,Le,D.depth,0,Xe,ze,null):t.texImage2D(De,Qe,qe,Ct,Le,0,Xe,ze,null)}t.bindFramebuffer(n.FRAMEBUFFER,S),fe(D)?c.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,be,De,i.get(re).__webglTexture,0,le(D)):(De===n.TEXTURE_2D||De>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&De<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,be,De,i.get(re).__webglTexture,Qe),t.bindFramebuffer(n.FRAMEBUFFER,null)}function me(S,D,re){if(n.bindRenderbuffer(n.RENDERBUFFER,S),D.depthBuffer&&!D.stencilBuffer){let be=a===!0?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(re||fe(D)){const De=D.depthTexture;De&&De.isDepthTexture&&(De.type===Fr?be=n.DEPTH_COMPONENT32F:De.type===lo&&(be=n.DEPTH_COMPONENT24));const Qe=le(D);fe(D)?c.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Qe,be,D.width,D.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Qe,be,D.width,D.height)}else n.renderbufferStorage(n.RENDERBUFFER,be,D.width,D.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,S)}else if(D.depthBuffer&&D.stencilBuffer){const be=le(D);re&&fe(D)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):fe(D)?c.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,be,n.DEPTH24_STENCIL8,D.width,D.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,D.width,D.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,S)}else{const be=D.isWebGLMultipleRenderTargets===!0?D.texture:[D.texture];for(let De=0;De0){re.__webglFramebuffer[ze]=[];for(let qe=0;qe0){re.__webglFramebuffer=[];for(let ze=0;ze0&&fe(S)===!1){const ze=Qe?D:[D];re.__webglMultisampledFramebuffer=n.createFramebuffer(),re.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,re.__webglMultisampledFramebuffer);for(let qe=0;qe0)for(let qe=0;qe0)for(let qe=0;qe0&&fe(S)===!1){const D=S.isWebGLMultipleRenderTargets?S.texture:[S.texture],re=S.width,be=S.height;let De=n.COLOR_BUFFER_BIT;const Qe=[],Xe=S.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ze=i.get(S),qe=S.isWebGLMultipleRenderTargets===!0;if(qe)for(let at=0;at0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&D.__useRenderToTexture!==!1}function Te(S){const D=o.render.frame;h.get(S)!==D&&(h.set(S,D),S.update())}function Z(S,D){const re=S.colorSpace,be=S.format,De=S.type;return S.isCompressedTexture===!0||S.isVideoTexture===!0||S.format===dg||re!==Ns&&re!==Er&&(sn.getTransfer(re)===pn?a===!1?e.has("EXT_sRGB")===!0&&be===Oi?(S.format=dg,S.minFilter=In,S.generateMipmaps=!1):D=iv.sRGBToLinear(D):(be!==Oi||De!==bs)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",re)),D}this.allocateTextureUnit=Y,this.resetTextureUnits=de,this.setTexture2D=te,this.setTexture2DArray=ue,this.setTexture3D=U,this.setTextureCube=$,this.rebindTextures=Be,this.setupRenderTarget=H,this.updateRenderTargetMipmap=Ee,this.updateMultisampleRenderTarget=ne,this.setupDepthRenderbuffer=se,this.setupFrameBufferTexture=F,this.useMultisampledRTT=fe}function bQ(n,e,t){const i=t.isWebGL2;function r(s,o=Er){let a;const c=sn.getTransfer(o);if(s===bs)return n.UNSIGNED_BYTE;if(s===Y1)return n.UNSIGNED_SHORT_4_4_4_4;if(s===X1)return n.UNSIGNED_SHORT_5_5_5_1;if(s===$2)return n.BYTE;if(s===eQ)return n.SHORT;if(s===Gg)return n.UNSIGNED_SHORT;if(s===W1)return n.INT;if(s===lo)return n.UNSIGNED_INT;if(s===Fr)return n.FLOAT;if(s===Ol)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===tQ)return n.ALPHA;if(s===Oi)return n.RGBA;if(s===nQ)return n.LUMINANCE;if(s===iQ)return n.LUMINANCE_ALPHA;if(s===Ea)return n.DEPTH_COMPONENT;if(s===Hl)return n.DEPTH_STENCIL;if(s===dg)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===rQ)return n.RED;if(s===J1)return n.RED_INTEGER;if(s===sQ)return n.RG;if(s===K1)return n.RG_INTEGER;if(s===q1)return n.RGBA_INTEGER;if(s===_p||s===Sp||s===wp||s===Mp)if(c===pn)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===_p)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===Sp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===wp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===Mp)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===_p)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===Sp)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===wp)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===Mp)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===qC||s===jC||s===ZC||s===$C)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===qC)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===jC)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===ZC)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===$C)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===j1)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===ey||s===ty)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(s===ey)return c===pn?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===ty)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===ny||s===iy||s===ry||s===sy||s===oy||s===ay||s===ly||s===cy||s===uy||s===Ay||s===hy||s===fy||s===dy||s===py)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(s===ny)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===iy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===ry)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===sy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===oy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===ay)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===ly)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===cy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===uy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===Ay)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===hy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===fy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===dy)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===py)return c===pn?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===Qp||s===gy||s===my)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(s===Qp)return c===pn?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===gy)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===my)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===oQ||s===Ey||s===Cy||s===yy)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(s===Qp)return a.COMPRESSED_RED_RGTC1_EXT;if(s===Ey)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===Cy)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===yy)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===ma?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[s]!==void 0?n[s]:null}return{convert:r}}class NQ extends $n{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class Gr extends $t{constructor(){super(),this.isGroup=!0,this.type="Group"}}const sk={type:"move"};class hE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Gr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Gr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new G,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new G),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Gr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new G,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new G),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,s=null,o=null;const a=this._targetRay,c=this._grip,A=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(A&&e.hand){o=!0;for(const x of e.hand.values()){const C=t.getJointPose(x,i),p=this._getHandJoint(A,x);C!==null&&(p.matrix.fromArray(C.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.matrixWorldNeedsUpdate=!0,p.jointRadius=C.radius),p.visible=C!==null}const h=A.joints["index-finger-tip"],f=A.joints["thumb-tip"],d=h.position.distanceTo(f.position),m=.02,E=.005;A.inputState.pinching&&d>m+E?(A.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!A.inputState.pinching&&d<=m-E&&(A.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));a!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(sk)))}return a!==null&&(a.visible=r!==null),c!==null&&(c.visible=s!==null),A!==null&&(A.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new Gr;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}const ok=` void main() { gl_Position = vec4( position, 1.0 ); -}`,YF=` +}`,ak=` uniform sampler2DArray depthColor; uniform float depthWidth; uniform float depthHeight; @@ -3800,7 +3800,7 @@ void main() { } -}`;class XF{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,i){if(this.texture===null){const r=new Sn,s=e.properties.get(r);s.__webglTexture=t.texture,(t.depthNear!=i.depthNear||t.depthFar!=i.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}render(e,t){if(this.texture!==null){if(this.mesh===null){const i=t.cameras[0].viewport,r=new ls({extensions:{fragDepth:!0},vertexShader:WF,fragmentShader:YF,uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new en(new ma(20,20),r)}e.render(this.mesh,t)}}reset(){this.texture=null,this.mesh=null}}class JF extends go{constructor(e,t){super();const i=this;let r=null,s=1,o=null,a="local-floor",c=1,A=null,h=null,f=null,d=null,m=null,E=null;const x=new XF,C=t.getContextAttributes();let g=null,I=null;const y=[],B=[],R=new _e;let w=null;const T=new Zn;T.layers.enable(1),T.viewport=new sn;const P=new Zn;P.layers.enable(2),P.viewport=new sn;const J=[T,P],M=new yQ;M.layers.enable(1),M.layers.enable(2);let b=null,K=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(V){let O=y[V];return O===void 0&&(O=new aE,y[V]=O),O.getTargetRaySpace()},this.getControllerGrip=function(V){let O=y[V];return O===void 0&&(O=new aE,y[V]=O),O.getGripSpace()},this.getHand=function(V){let O=y[V];return O===void 0&&(O=new aE,y[V]=O),O.getHandSpace()};function ge(V){const O=B.indexOf(V.inputSource);if(O===-1)return;const k=y[O];k!==void 0&&(k.update(V.inputSource,V.frame,A||o),k.dispatchEvent({type:V.type,data:V.inputSource}))}function Y(){r.removeEventListener("select",ge),r.removeEventListener("selectstart",ge),r.removeEventListener("selectend",ge),r.removeEventListener("squeeze",ge),r.removeEventListener("squeezestart",ge),r.removeEventListener("squeezeend",ge),r.removeEventListener("end",Y),r.removeEventListener("inputsourceschange",ce);for(let V=0;V=0&&(B[F]=null,y[F].disconnect(k))}for(let O=0;O=B.length){B.push(k),F=Ie;break}else if(B[Ie]===null){B[Ie]=k,F=Ie;break}if(F===-1)break}const me=y[F];me&&me.connect(k)}}const re=new G,fe=new G;function U(V,O,k){re.setFromMatrixPosition(O.matrixWorld),fe.setFromMatrixPosition(k.matrixWorld);const F=re.distanceTo(fe),me=O.projectionMatrix.elements,Ie=k.projectionMatrix.elements,ie=me[14]/(me[10]-1),Be=me[14]/(me[10]+1),H=(me[9]+1)/me[5],Ee=(me[9]-1)/me[5],te=(me[8]-1)/me[0],ae=(Ie[8]+1)/Ie[0],he=ie*te,Te=ie*ae,j=F/(-te+ae),S=j*-te;O.matrixWorld.decompose(V.position,V.quaternion,V.scale),V.translateX(S),V.translateZ(j),V.matrixWorld.compose(V.position,V.quaternion,V.scale),V.matrixWorldInverse.copy(V.matrixWorld).invert();const D=ie+j,ne=Be+j,be=he-S,De=Te+(F-S),Qe=H*Be/ne*D,Xe=Ee*Be/ne*D;V.projectionMatrix.makePerspective(be,De,Qe,Xe,D,ne),V.projectionMatrixInverse.copy(V.projectionMatrix).invert()}function Z(V,O){O===null?V.matrixWorld.copy(V.matrix):V.matrixWorld.multiplyMatrices(O.matrixWorld,V.matrix),V.matrixWorldInverse.copy(V.matrixWorld).invert()}this.updateCamera=function(V){if(r===null)return;x.texture!==null&&(V.near=x.depthNear,V.far=x.depthFar),M.near=P.near=T.near=V.near,M.far=P.far=T.far=V.far,(b!==M.near||K!==M.far)&&(r.updateRenderState({depthNear:M.near,depthFar:M.far}),b=M.near,K=M.far,T.near=b,T.far=K,P.near=b,P.far=K,T.updateProjectionMatrix(),P.updateProjectionMatrix(),V.updateProjectionMatrix());const O=V.parent,k=M.cameras;Z(M,O);for(let F=0;F0&&(C.alphaTest.value=g.alphaTest);const I=e.get(g).envMap;if(I&&(C.envMap.value=I,C.flipEnvMap.value=I.isCubeTexture&&I.isRenderTargetTexture===!1?-1:1,C.reflectivity.value=g.reflectivity,C.ior.value=g.ior,C.refractionRatio.value=g.refractionRatio),g.lightMap){C.lightMap.value=g.lightMap;const y=n._useLegacyLights===!0?Math.PI:1;C.lightMapIntensity.value=g.lightMapIntensity*y,t(g.lightMap,C.lightMapTransform)}g.aoMap&&(C.aoMap.value=g.aoMap,C.aoMapIntensity.value=g.aoMapIntensity,t(g.aoMap,C.aoMapTransform))}function o(C,g){C.diffuse.value.copy(g.color),C.opacity.value=g.opacity,g.map&&(C.map.value=g.map,t(g.map,C.mapTransform))}function a(C,g){C.dashSize.value=g.dashSize,C.totalSize.value=g.dashSize+g.gapSize,C.scale.value=g.scale}function c(C,g,I,y){C.diffuse.value.copy(g.color),C.opacity.value=g.opacity,C.size.value=g.size*I,C.scale.value=y*.5,g.map&&(C.map.value=g.map,t(g.map,C.uvTransform)),g.alphaMap&&(C.alphaMap.value=g.alphaMap,t(g.alphaMap,C.alphaMapTransform)),g.alphaTest>0&&(C.alphaTest.value=g.alphaTest)}function A(C,g){C.diffuse.value.copy(g.color),C.opacity.value=g.opacity,C.rotation.value=g.rotation,g.map&&(C.map.value=g.map,t(g.map,C.mapTransform)),g.alphaMap&&(C.alphaMap.value=g.alphaMap,t(g.alphaMap,C.alphaMapTransform)),g.alphaTest>0&&(C.alphaTest.value=g.alphaTest)}function h(C,g){C.specular.value.copy(g.specular),C.shininess.value=Math.max(g.shininess,1e-4)}function f(C,g){g.gradientMap&&(C.gradientMap.value=g.gradientMap)}function d(C,g){C.metalness.value=g.metalness,g.metalnessMap&&(C.metalnessMap.value=g.metalnessMap,t(g.metalnessMap,C.metalnessMapTransform)),C.roughness.value=g.roughness,g.roughnessMap&&(C.roughnessMap.value=g.roughnessMap,t(g.roughnessMap,C.roughnessMapTransform)),e.get(g).envMap&&(C.envMapIntensity.value=g.envMapIntensity)}function m(C,g,I){C.ior.value=g.ior,g.sheen>0&&(C.sheenColor.value.copy(g.sheenColor).multiplyScalar(g.sheen),C.sheenRoughness.value=g.sheenRoughness,g.sheenColorMap&&(C.sheenColorMap.value=g.sheenColorMap,t(g.sheenColorMap,C.sheenColorMapTransform)),g.sheenRoughnessMap&&(C.sheenRoughnessMap.value=g.sheenRoughnessMap,t(g.sheenRoughnessMap,C.sheenRoughnessMapTransform))),g.clearcoat>0&&(C.clearcoat.value=g.clearcoat,C.clearcoatRoughness.value=g.clearcoatRoughness,g.clearcoatMap&&(C.clearcoatMap.value=g.clearcoatMap,t(g.clearcoatMap,C.clearcoatMapTransform)),g.clearcoatRoughnessMap&&(C.clearcoatRoughnessMap.value=g.clearcoatRoughnessMap,t(g.clearcoatRoughnessMap,C.clearcoatRoughnessMapTransform)),g.clearcoatNormalMap&&(C.clearcoatNormalMap.value=g.clearcoatNormalMap,t(g.clearcoatNormalMap,C.clearcoatNormalMapTransform),C.clearcoatNormalScale.value.copy(g.clearcoatNormalScale),g.side===Hi&&C.clearcoatNormalScale.value.negate())),g.iridescence>0&&(C.iridescence.value=g.iridescence,C.iridescenceIOR.value=g.iridescenceIOR,C.iridescenceThicknessMinimum.value=g.iridescenceThicknessRange[0],C.iridescenceThicknessMaximum.value=g.iridescenceThicknessRange[1],g.iridescenceMap&&(C.iridescenceMap.value=g.iridescenceMap,t(g.iridescenceMap,C.iridescenceMapTransform)),g.iridescenceThicknessMap&&(C.iridescenceThicknessMap.value=g.iridescenceThicknessMap,t(g.iridescenceThicknessMap,C.iridescenceThicknessMapTransform))),g.transmission>0&&(C.transmission.value=g.transmission,C.transmissionSamplerMap.value=I.texture,C.transmissionSamplerSize.value.set(I.width,I.height),g.transmissionMap&&(C.transmissionMap.value=g.transmissionMap,t(g.transmissionMap,C.transmissionMapTransform)),C.thickness.value=g.thickness,g.thicknessMap&&(C.thicknessMap.value=g.thicknessMap,t(g.thicknessMap,C.thicknessMapTransform)),C.attenuationDistance.value=g.attenuationDistance,C.attenuationColor.value.copy(g.attenuationColor)),g.anisotropy>0&&(C.anisotropyVector.value.set(g.anisotropy*Math.cos(g.anisotropyRotation),g.anisotropy*Math.sin(g.anisotropyRotation)),g.anisotropyMap&&(C.anisotropyMap.value=g.anisotropyMap,t(g.anisotropyMap,C.anisotropyMapTransform))),C.specularIntensity.value=g.specularIntensity,C.specularColor.value.copy(g.specularColor),g.specularColorMap&&(C.specularColorMap.value=g.specularColorMap,t(g.specularColorMap,C.specularColorMapTransform)),g.specularIntensityMap&&(C.specularIntensityMap.value=g.specularIntensityMap,t(g.specularIntensityMap,C.specularIntensityMapTransform))}function E(C,g){g.matcap&&(C.matcap.value=g.matcap)}function x(C,g){const I=e.get(g).light;C.referencePosition.value.setFromMatrixPosition(I.matrixWorld),C.nearDistance.value=I.shadow.camera.near,C.farDistance.value=I.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function qF(n,e,t,i){let r={},s={},o=[];const a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function c(I,y){const B=y.program;i.uniformBlockBinding(I,B)}function A(I,y){let B=r[I.id];B===void 0&&(E(I),B=h(I),r[I.id]=B,I.addEventListener("dispose",C));const R=y.program;i.updateUBOMapping(I,R);const w=e.render.frame;s[I.id]!==w&&(d(I),s[I.id]=w)}function h(I){const y=f();I.__bindingPointIndex=y;const B=n.createBuffer(),R=I.__size,w=I.usage;return n.bindBuffer(n.UNIFORM_BUFFER,B),n.bufferData(n.UNIFORM_BUFFER,R,w),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,y,B),B}function f(){for(let I=0;I0&&(B+=R-w),I.__size=B,I.__cache={},this}function x(I){const y={boundary:0,storage:0};return typeof I=="number"||typeof I=="boolean"?(y.boundary=4,y.storage=4):I.isVector2?(y.boundary=8,y.storage=8):I.isVector3||I.isColor?(y.boundary=16,y.storage=12):I.isVector4?(y.boundary=16,y.storage=16):I.isMatrix3?(y.boundary=48,y.storage=48):I.isMatrix4?(y.boundary=64,y.storage=64):I.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",I),y}function C(I){const y=I.target;y.removeEventListener("dispose",C);const B=o.indexOf(y.__bindingPointIndex);o.splice(B,1),n.deleteBuffer(r[y.id]),delete r[y.id],delete s[y.id]}function g(){for(const I in r)n.deleteBuffer(r[I]);o=[],r={},s={}}return{bind:c,update:A,dispose:g}}class nv{constructor(e={}){const{canvas:t=oQ(),context:i=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:A=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:f=!1}=e;this.isWebGLRenderer=!0;let d;i!==null?d=i.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),E=new Int32Array(4);let x=null,C=null;const g=[],I=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=On,this._useLegacyLights=!1,this.toneMapping=Rs,this.toneMappingExposure=1;const y=this;let B=!1,R=0,w=0,T=null,P=-1,J=null;const M=new sn,b=new sn;let K=null;const ge=new Je(0);let Y=0,ce=t.width,re=t.height,fe=1,U=null,Z=null;const ee=new sn(0,0,ce,re),ue=new sn(0,0,ce,re);let ye=!1;const ke=new Fh;let V=!1,O=!1,k=null;const F=new ft,me=new _e,Ie=new G,ie={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Be(){return T===null?fe:1}let H=i;function Ee(z,de){for(let xe=0;xe{function Ze(){if(Se.forEach(function(lt){j.get(lt).currentProgram.isReady()&&Se.delete(lt)}),Se.size===0){ve(z);return}setTimeout(Ze,10)}te.get("KHR_parallel_shader_compile")!==null?Ze():setTimeout(Ze,10)})};let Vt=null;function Dn(z){Vt&&Vt(z)}function hi(){cn.stop()}function Zt(){cn.start()}const cn=new fQ;cn.setAnimationLoop(Dn),typeof self<"u"&&cn.setContext(self),this.setAnimationLoop=function(z){Vt=z,_t.setAnimationLoop(z),z===null?cn.stop():cn.start()},_t.addEventListener("sessionstart",hi),_t.addEventListener("sessionend",Zt),this.render=function(z,de){if(de!==void 0&&de.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(B===!0)return;z.matrixWorldAutoUpdate===!0&&z.updateMatrixWorld(),de.parent===null&&de.matrixWorldAutoUpdate===!0&&de.updateMatrixWorld(),_t.enabled===!0&&_t.isPresenting===!0&&(_t.cameraAutoUpdate===!0&&_t.updateCamera(de),de=_t.getCamera()),z.isScene===!0&&z.onBeforeRender(y,z,de,T),C=at.get(z,I.length),C.init(),I.push(C),F.multiplyMatrices(de.projectionMatrix,de.matrixWorldInverse),ke.setFromProjectionMatrix(F),O=this.localClippingEnabled,V=Ct.init(this.clippingPlanes,O),x=qe.get(z,g.length),x.init(),g.push(x),Ki(z,de,0,y.sortObjects),x.finish(),y.sortObjects===!0&&x.sort(U,Z),this.info.render.frame++,V===!0&&Ct.beginShadows();const xe=C.state.shadowsArray;if(Le.render(xe,z,de),V===!0&&Ct.endShadows(),this.info.autoReset===!0&&this.info.reset(),(_t.enabled===!1||_t.isPresenting===!1||_t.hasDepthSensing()===!1)&&Dt.render(x,z),C.setupLights(y._useLegacyLights),de.isArrayCamera){const Se=de.cameras;for(let ve=0,Ze=Se.length;ve0?C=I[I.length-1]:C=null,g.pop(),g.length>0?x=g[g.length-1]:x=null};function Ki(z,de,xe,Se){if(z.visible===!1)return;if(z.layers.test(de.layers)){if(z.isGroup)xe=z.renderOrder;else if(z.isLOD)z.autoUpdate===!0&&z.update(de);else if(z.isLight)C.pushLight(z),z.castShadow&&C.pushShadow(z);else if(z.isSprite){if(!z.frustumCulled||ke.intersectsSprite(z)){Se&&Ie.setFromMatrixPosition(z.matrixWorld).applyMatrix4(F);const lt=Qe.update(z),gt=z.material;gt.visible&&x.push(z,lt,gt,xe,Ie.z,null)}}else if((z.isMesh||z.isLine||z.isPoints)&&(!z.frustumCulled||ke.intersectsObject(z))){const lt=Qe.update(z),gt=z.material;if(Se&&(z.boundingSphere!==void 0?(z.boundingSphere===null&&z.computeBoundingSphere(),Ie.copy(z.boundingSphere.center)):(lt.boundingSphere===null&<.computeBoundingSphere(),Ie.copy(lt.boundingSphere.center)),Ie.applyMatrix4(z.matrixWorld).applyMatrix4(F)),Array.isArray(gt)){const pt=lt.groups;for(let St=0,It=pt.length;St0&&fi(ve,Ze,de,xe),Se&&he.viewport(M.copy(Se)),ve.length>0&&Fs(ve,de,xe),Ze.length>0&&Fs(Ze,de,xe),lt.length>0&&Fs(lt,de,xe),he.buffers.depth.setTest(!0),he.buffers.depth.setMask(!0),he.buffers.color.setMask(!0),he.setPolygonOffset(!1)}function fi(z,de,xe,Se){if((xe.isScene===!0?xe.overrideMaterial:null)!==null)return;const Ze=ae.isWebGL2;k===null&&(k=new Wr(1,1,{generateMipmaps:!0,type:te.has("EXT_color_buffer_half_float")?Dl:Ts,minFilter:Ss,samples:Ze?4:0})),y.getDrawingBufferSize(me),Ze?k.setSize(me.x,me.y):k.setSize(ug(me.x),ug(me.y));const lt=y.getRenderTarget();y.setRenderTarget(k),y.getClearColor(ge),Y=y.getClearAlpha(),Y<1&&y.setClearColor(16777215,.5),y.clear();const gt=y.toneMapping;y.toneMapping=Rs,Fs(z,xe,Se),S.updateMultisampleRenderTarget(k),S.updateRenderTargetMipmap(k);let pt=!1;for(let St=0,It=de.length;St0),xt=!!xe.morphAttributes.position,mn=!!xe.morphAttributes.normal,Vn=!!xe.morphAttributes.color;let $t=Rs;Se.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&($t=y.toneMapping);const Wn=xe.morphAttributes.position||xe.morphAttributes.normal||xe.morphAttributes.color,Et=Wn!==void 0?Wn.length:0,et=j.get(Se),Ei=C.state.lights;if(V===!0&&(O===!0||z!==J)){const we=z===J&&Se.id===P;Ct.setState(Se,z,we)}let yt=!1;Se.version===et.__version?(et.needsLights&&et.lightsStateVersion!==Ei.state.version||et.outputColorSpace!==gt||ve.isBatchedMesh&&et.batching===!1||!ve.isBatchedMesh&&et.batching===!0||ve.isInstancedMesh&&et.instancing===!1||!ve.isInstancedMesh&&et.instancing===!0||ve.isSkinnedMesh&&et.skinning===!1||!ve.isSkinnedMesh&&et.skinning===!0||ve.isInstancedMesh&&et.instancingColor===!0&&ve.instanceColor===null||ve.isInstancedMesh&&et.instancingColor===!1&&ve.instanceColor!==null||et.envMap!==pt||Se.fog===!0&&et.fog!==Ze||et.numClippingPlanes!==void 0&&(et.numClippingPlanes!==Ct.numPlanes||et.numIntersection!==Ct.numIntersection)||et.vertexAlphas!==St||et.vertexTangents!==It||et.morphTargets!==xt||et.morphNormals!==mn||et.morphColors!==Vn||et.toneMapping!==$t||ae.isWebGL2===!0&&et.morphTargetsCount!==Et)&&(yt=!0):(yt=!0,et.__version=Se.version);let un=et.currentProgram;yt===!0&&(un=hs(Se,de,ve));let ar=!1,N=!1,L=!1;const q=un.getUniforms(),oe=et.uniforms;if(he.useProgram(un.program)&&(ar=!0,N=!0,L=!0),Se.id!==P&&(P=Se.id,N=!0),ar||J!==z){q.setValue(H,"projectionMatrix",z.projectionMatrix),q.setValue(H,"viewMatrix",z.matrixWorldInverse);const we=q.map.cameraPosition;we!==void 0&&we.setValue(H,Ie.setFromMatrixPosition(z.matrixWorld)),ae.logarithmicDepthBuffer&&q.setValue(H,"logDepthBufFC",2/(Math.log(z.far+1)/Math.LN2)),(Se.isMeshPhongMaterial||Se.isMeshToonMaterial||Se.isMeshLambertMaterial||Se.isMeshBasicMaterial||Se.isMeshStandardMaterial||Se.isShaderMaterial)&&q.setValue(H,"isOrthographic",z.isOrthographicCamera===!0),J!==z&&(J=z,N=!0,L=!0)}if(ve.isSkinnedMesh){q.setOptional(H,ve,"bindMatrix"),q.setOptional(H,ve,"bindMatrixInverse");const we=ve.skeleton;we&&(ae.floatVertexTextures?(we.boneTexture===null&&we.computeBoneTexture(),q.setValue(H,"boneTexture",we.boneTexture,S)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}ve.isBatchedMesh&&(q.setOptional(H,ve,"batchingTexture"),q.setValue(H,"batchingTexture",ve._matricesTexture,S));const pe=xe.morphAttributes;if((pe.position!==void 0||pe.normal!==void 0||pe.color!==void 0&&ae.isWebGL2===!0)&&Bt.update(ve,xe,un),(N||et.receiveShadow!==ve.receiveShadow)&&(et.receiveShadow=ve.receiveShadow,q.setValue(H,"receiveShadow",ve.receiveShadow)),Se.isMeshGouraudMaterial&&Se.envMap!==null&&(oe.envMap.value=pt,oe.flipEnvMap.value=pt.isCubeTexture&&pt.isRenderTargetTexture===!1?-1:1),N&&(q.setValue(H,"toneMappingExposure",y.toneMappingExposure),et.needsLights&&Du(oe,L),Ze&&Se.fog===!0&&ze.refreshFogUniforms(oe,Ze),ze.refreshMaterialUniforms(oe,Se,fe,re,k),Sp.upload(H,Eo(et),oe,S)),Se.isShaderMaterial&&Se.uniformsNeedUpdate===!0&&(Sp.upload(H,Eo(et),oe,S),Se.uniformsNeedUpdate=!1),Se.isSpriteMaterial&&q.setValue(H,"center",ve.center),q.setValue(H,"modelViewMatrix",ve.modelViewMatrix),q.setValue(H,"normalMatrix",ve.normalMatrix),q.setValue(H,"modelMatrix",ve.matrixWorld),Se.isShaderMaterial||Se.isRawShaderMaterial){const we=Se.uniformsGroups;for(let Pe=0,Ne=we.length;Pe0&&S.useMultisampledRTT(z)===!1?ve=j.get(z).__webglMultisampledFramebuffer:Array.isArray(It)?ve=It[xe]:ve=It,M.copy(z.viewport),b.copy(z.scissor),K=z.scissorTest}else M.copy(ee).multiplyScalar(fe).floor(),b.copy(ue).multiplyScalar(fe).floor(),K=ye;if(he.bindFramebuffer(H.FRAMEBUFFER,ve)&&ae.drawBuffers&&Se&&he.drawBuffers(z,ve),he.viewport(M),he.scissor(b),he.setScissorTest(K),Ze){const pt=j.get(z.texture);H.framebufferTexture2D(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_CUBE_MAP_POSITIVE_X+de,pt.__webglTexture,xe)}else if(lt){const pt=j.get(z.texture),St=de||0;H.framebufferTextureLayer(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,pt.__webglTexture,xe||0,St)}P=-1},this.readRenderTargetPixels=function(z,de,xe,Se,ve,Ze,lt){if(!(z&&z.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let gt=j.get(z).__webglFramebuffer;if(z.isWebGLCubeRenderTarget&<!==void 0&&(gt=gt[lt]),gt){he.bindFramebuffer(H.FRAMEBUFFER,gt);try{const pt=z.texture,St=pt.format,It=pt.type;if(St!==ki&&tt.convert(St)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const xt=It===Dl&&(te.has("EXT_color_buffer_half_float")||ae.isWebGL2&&te.has("EXT_color_buffer_float"));if(It!==Ts&&tt.convert(It)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_TYPE)&&!(It===Fr&&(ae.isWebGL2||te.has("OES_texture_float")||te.has("WEBGL_color_buffer_float")))&&!xt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}de>=0&&de<=z.width-Se&&xe>=0&&xe<=z.height-ve&&H.readPixels(de,xe,Se,ve,tt.convert(St),tt.convert(It),Ze)}finally{const pt=T!==null?j.get(T).__webglFramebuffer:null;he.bindFramebuffer(H.FRAMEBUFFER,pt)}}},this.copyFramebufferToTexture=function(z,de,xe=0){const Se=Math.pow(2,-xe),ve=Math.floor(de.image.width*Se),Ze=Math.floor(de.image.height*Se);S.setTexture2D(de,0),H.copyTexSubImage2D(H.TEXTURE_2D,xe,0,0,z.x,z.y,ve,Ze),he.unbindTexture()},this.copyTextureToTexture=function(z,de,xe,Se=0){const ve=de.image.width,Ze=de.image.height,lt=tt.convert(xe.format),gt=tt.convert(xe.type);S.setTexture2D(xe,0),H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,xe.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,xe.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,xe.unpackAlignment),de.isDataTexture?H.texSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,ve,Ze,lt,gt,de.image.data):de.isCompressedTexture?H.compressedTexSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,de.mipmaps[0].width,de.mipmaps[0].height,lt,de.mipmaps[0].data):H.texSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,lt,gt,de.image),Se===0&&xe.generateMipmaps&&H.generateMipmap(H.TEXTURE_2D),he.unbindTexture()},this.copyTextureToTexture3D=function(z,de,xe,Se,ve=0){if(y.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Ze=z.max.x-z.min.x+1,lt=z.max.y-z.min.y+1,gt=z.max.z-z.min.z+1,pt=tt.convert(Se.format),St=tt.convert(Se.type);let It;if(Se.isData3DTexture)S.setTexture3D(Se,0),It=H.TEXTURE_3D;else if(Se.isDataArrayTexture||Se.isCompressedArrayTexture)S.setTexture2DArray(Se,0),It=H.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,Se.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Se.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,Se.unpackAlignment);const xt=H.getParameter(H.UNPACK_ROW_LENGTH),mn=H.getParameter(H.UNPACK_IMAGE_HEIGHT),Vn=H.getParameter(H.UNPACK_SKIP_PIXELS),$t=H.getParameter(H.UNPACK_SKIP_ROWS),Wn=H.getParameter(H.UNPACK_SKIP_IMAGES),Et=xe.isCompressedTexture?xe.mipmaps[ve]:xe.image;H.pixelStorei(H.UNPACK_ROW_LENGTH,Et.width),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,Et.height),H.pixelStorei(H.UNPACK_SKIP_PIXELS,z.min.x),H.pixelStorei(H.UNPACK_SKIP_ROWS,z.min.y),H.pixelStorei(H.UNPACK_SKIP_IMAGES,z.min.z),xe.isDataTexture||xe.isData3DTexture?H.texSubImage3D(It,ve,de.x,de.y,de.z,Ze,lt,gt,pt,St,Et.data):xe.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),H.compressedTexSubImage3D(It,ve,de.x,de.y,de.z,Ze,lt,gt,pt,Et.data)):H.texSubImage3D(It,ve,de.x,de.y,de.z,Ze,lt,gt,pt,St,Et),H.pixelStorei(H.UNPACK_ROW_LENGTH,xt),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,mn),H.pixelStorei(H.UNPACK_SKIP_PIXELS,Vn),H.pixelStorei(H.UNPACK_SKIP_ROWS,$t),H.pixelStorei(H.UNPACK_SKIP_IMAGES,Wn),ve===0&&Se.generateMipmaps&&H.generateMipmap(It),he.unbindTexture()},this.initTexture=function(z){z.isCubeTexture?S.setTextureCube(z,0):z.isData3DTexture?S.setTexture3D(z,0):z.isDataArrayTexture||z.isCompressedArrayTexture?S.setTexture2DArray(z,0):S.setTexture2D(z,0),he.unbindTexture()},this.resetState=function(){R=0,w=0,T=null,he.reset(),vt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return ws}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===Ug?"display-p3":"srgb",t.unpackColorSpace=nn.workingColorSpace===Lh?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===On?sa:Y1}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===sa?On:bs}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class vQ extends nv{}vQ.prototype.isWebGL1Renderer=!0;class Hg{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Je(e),this.density=t}clone(){return new Hg(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class zg{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Je(e),this.near=t,this.far=i}clone(){return new zg(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class yh extends jt{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}}class Vg{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=mh,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Ir()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return Bl("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:c,point:cA.clone(),uv:Er.getInterpolation(cA,Md,AA,Qd,u_,lE,A_,new _e),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function Rd(n,e,t,i,r,s){wc.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(uA.x=s*wc.x-r*wc.y,uA.y=r*wc.x+s*wc.y):uA.copy(wc),n.copy(e),n.x+=uA.x,n.y+=uA.y,n.applyMatrix4(IQ)}const Td=new G,h_=new G;class BQ extends jt{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){Td.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(Td);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Td.setFromMatrixPosition(e.matrixWorld),h_.setFromMatrixPosition(this.matrixWorld);const i=Td.distanceTo(h_)/e.zoom;t[0].object.visible=!0;let r,s;for(r=1,s=t.length;r=o)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const Qc="batchId",Po=new ft,v_=new ft,ik=new ft,I_=new ft,AE=new Fh,Nd=new ei,qa=new ui,dA=new G,hE=new nk,wi=new en,Ld=[];function rk(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new tn(a,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(Qc,new tn(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(Qc))throw new Error(`BatchedMesh: Geometry cannot use attribute "${Qc}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===Qc)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ei);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,a=this._drawRanges,c=this._bounds;this._geometryCount!==0&&(s=o[o.length-1]),t===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=t,s===null?r.vertexStart=0:r.vertexStart=s.vertexStart+s.vertexCount;const A=e.getIndex(),h=A!==null;if(h&&(i===-1?r.indexCount=A.count:r.indexCount=i,s===null?r.indexStart=0:r.indexStart=s.indexStart+s.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const f=this._visibility,d=this._active,m=this._matricesTexture,E=this._matricesTexture.image.data;f.push(!0),d.push(!0);const x=this._geometryCount;this._geometryCount++,ik.toArray(E,x*16),m.needsUpdate=!0,o.push(r),a.push({start:h?r.indexStart:r.vertexStart,count:-1}),c.push({boxInitialized:!1,box:new ei,sphereInitialized:!1,sphere:new ui});const C=this.geometry.getAttribute(Qc);for(let g=0;g=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=i.getIndex()!==null,s=i.getIndex(),o=t.getIndex(),a=this._reservedRanges[e];if(r&&o.count>a.indexCount||t.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const c=a.vertexStart,A=a.vertexCount;for(const m in i.attributes){if(m===Qc)continue;const E=t.getAttribute(m),x=i.getAttribute(m);rk(E,x,c);const C=E.itemSize;for(let g=E.count,I=A;g=t.length||t[e]===!1?this:(t[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,t){if(this._active[e]===!1)return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(r.boxInitialized===!1){s.makeEmpty();const a=o.index,c=o.attributes.position,A=this._drawRanges[e];for(let h=A.start,f=A.start+A.count;h=o||i[e]===!1?this:(t.toArray(s,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,t){const i=this._active,r=this._matricesTexture.image.data,s=this._geometryCount;return e>=s||i[e]===!1?null:t.fromArray(r,e*16)}setVisibleAt(e,t){const i=this._visibility,r=this._active,s=this._geometryCount;return e>=s||r[e]===!1||i[e]===t?this:(i[e]=t,this._visibilityChanged=!0,this)}getVisibleAt(e){const t=this._visibility,i=this._active,r=this._geometryCount;return e>=r||i[e]===!1?!1:t[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,a=this.matrixWorld,c=this.geometry;wi.material=this.material,wi.geometry.index=c.index,wi.geometry.attributes=c.attributes,wi.geometry.boundingBox===null&&(wi.geometry.boundingBox=new ei),wi.geometry.boundingSphere===null&&(wi.geometry.boundingSphere=new ui);for(let A=0;A({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),a=o===null?1:o.array.BYTES_PER_ELEMENT,c=this._active,A=this._visibility,h=this._multiDrawStarts,f=this._multiDrawCounts,d=this._drawRanges,m=this.perObjectFrustumCulled;m&&(I_.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),AE.setFromProjectionMatrix(I_,e.coordinateSystem));let E=0;if(this.sortObjects){v_.copy(this.matrixWorld).invert(),dA.setFromMatrixPosition(i.matrixWorld).applyMatrix4(v_);for(let g=0,I=A.length;gc)continue;d.applyMatrix4(this.matrixWorld);const P=e.ray.origin.distanceTo(d);Pe.far||t.push({distance:P,point:f.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}else{const g=Math.max(0,o.start),I=Math.min(C.count,o.start+o.count);for(let y=g,B=I-1;yc)continue;d.applyMatrix4(this.matrixWorld);const w=e.ray.origin.distanceTo(d);we.far||t.push({distance:w,point:f.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:A,distanceToRay:Math.sqrt(a),point:c,index:e,face:null,object:o})}}class sk extends Sn{constructor(e,t,i,r,s,o,a,c,A){super(e,t,i,r,s,o,a,c,A),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:vn,this.magFilter=s!==void 0?s:vn,this.generateMipmaps=!1;const h=this;function f(){h.needsUpdate=!0,e.requestVideoFrameCallback(f)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(f)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class ok extends Sn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=Gn,this.minFilter=Gn,this.generateMipmaps=!1,this.needsUpdate=!0}}class Yg extends Sn{constructor(e,t,i,r,s,o,a,c,A,h,f,d){super(null,o,a,c,A,h,r,s,f,d),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class ak extends Yg{constructor(e,t,i,r,s,o){super(e,t,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=Qi}}class lk extends Yg{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,fo),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class ck extends Sn{constructor(e,t,i,r,s,o,a,c,A){super(e,t,i,r,s,o,a,c,A),this.isCanvasTexture=!0,this.needsUpdate=!0}}class us{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;t?o=t:o=e*i[s-1];let a=0,c=s-1,A;for(;a<=c;)if(r=Math.floor(a+(c-a)/2),A=i[r]-o,A<0)a=r+1;else if(A>0)c=r-1;else{c=r;break}if(r=c,i[r]===o)return r/(s-1);const h=i[r],d=i[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),c=t||(o.isVector2?new _e:new G);return c.copy(a).sub(o).normalize(),c}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new G,r=[],s=[],o=[],a=new G,c=new ft;for(let m=0;m<=e;m++){const E=m/e;r[m]=this.getTangentAt(E,new G)}s[0]=new G,o[0]=new G;let A=Number.MAX_VALUE;const h=Math.abs(r[0].x),f=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=A&&(A=h,i.set(1,0,0)),f<=A&&(A=f,i.set(0,1,0)),d<=A&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=e;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const E=Math.acos(Un(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(c.makeRotationAxis(a,E))}o[m].crossVectors(r[m],s[m])}if(t===!0){let m=Math.acos(Un(s[0].dot(s[e]),-1,1));m/=e,r[0].dot(a.crossVectors(s[0],s[e]))>0&&(m=-m);for(let E=1;E<=e;E++)s[E].applyMatrix4(c.makeRotationAxis(r[E],m*E)),o[E].crossVectors(r[E],s[E])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class Xg extends us{constructor(e=0,t=0,i=1,r=1,s=0,o=Math.PI*2,a=!1,c=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=c}getPoint(e,t){const i=t||new _e,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:c===0&&a===s-1&&(a=s-2,c=1);let A,h;this.closed||a>0?A=r[(a-1)%s]:(kd.subVectors(r[0],r[1]).add(r[0]),A=kd);const f=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],f=r[o>r.length-3?r.length-1:o+2];return i.set(R_(a,c.x,A.x,h.x,f.x),R_(a,c.y,A.y,h.y,f.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,a=this.curves[s],c=a.getLength(),A=c===0?0:1-o/c;return a.getPointAt(A,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const f=A.getPoint(0);f.equals(this.currentPoint)||this.lineTo(f.x,f.y)}this.curves.push(A);const h=A.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class Gh extends Tt{constructor(e=[new _e(0,-.5),new _e(.5,0),new _e(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Un(r,0,Math.PI*2);const s=[],o=[],a=[],c=[],A=[],h=1/t,f=new G,d=new _e,m=new G,E=new G,x=new G;let C=0,g=0;for(let I=0;I<=e.length-1;I++)switch(I){case 0:C=e[I+1].x-e[I].x,g=e[I+1].y-e[I].y,m.x=g*1,m.y=-C,m.z=g*0,x.copy(m),m.normalize(),c.push(m.x,m.y,m.z);break;case e.length-1:c.push(x.x,x.y,x.z);break;default:C=e[I+1].x-e[I].x,g=e[I+1].y-e[I].y,m.x=g*1,m.y=-C,m.z=g*0,E.copy(m),m.x+=x.x,m.y+=x.y,m.z+=x.z,m.normalize(),c.push(m.x,m.y,m.z),x.copy(E)}for(let I=0;I<=t;I++){const y=i+I*h*r,B=Math.sin(y),R=Math.cos(y);for(let w=0;w<=e.length-1;w++){f.x=e[w].x*B,f.y=e[w].y,f.z=e[w].x*R,o.push(f.x,f.y,f.z),d.x=I/t,d.y=w/(e.length-1),a.push(d.x,d.y);const T=c[3*w+0]*B,P=c[3*w+1],J=c[3*w+0]*R;A.push(T,P,J)}}for(let I=0;I0&&y(!0),t>0&&y(!1)),this.setIndex(h),this.setAttribute("position",new st(f,3)),this.setAttribute("normal",new st(d,3)),this.setAttribute("uv",new st(m,2));function I(){const B=new G,R=new G;let w=0;const T=(t-e)/i;for(let P=0;P<=s;P++){const J=[],M=P/s,b=M*(t-e)+e;for(let K=0;K<=r;K++){const ge=K/r,Y=ge*c+a,ce=Math.sin(Y),re=Math.cos(Y);R.x=b*ce,R.y=-M*i+C,R.z=b*re,f.push(R.x,R.y,R.z),B.set(ce,T,re).normalize(),d.push(B.x,B.y,B.z),m.push(ge,1-M),J.push(E++)}x.push(J)}for(let P=0;P.9&&T<.1&&(y<.2&&(o[I+0]+=1),B<.2&&(o[I+2]+=1),R<.2&&(o[I+4]+=1))}}function d(I){s.push(I.x,I.y,I.z)}function m(I,y){const B=I*3;y.x=e[B+0],y.y=e[B+1],y.z=e[B+2]}function E(){const I=new G,y=new G,B=new G,R=new G,w=new _e,T=new _e,P=new _e;for(let J=0,M=0;J80*t){a=A=n[0],c=h=n[1];for(let E=t;EA&&(A=f),d>h&&(h=d);m=Math.max(A-a,h-c),m=m!==0?32767/m:0}return vh(s,o,t,a,c,m,0),o}};function PQ(n,e,t,i,r){let s,o;if(r===bk(n,e,t,i)>0)for(s=e;s=e;s-=i)o=T_(s,n[s],n[s+1],o);return o&&Zg(o,o.next)&&(xh(o),o=o.next),o}function Ll(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(Zg(t,t.next)||Qn(t.prev,t,t.next)===0)){if(xh(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function vh(n,e,t,i,r,s,o){if(!n)return;!o&&s&&wk(n,i,r,s);let a=n,c,A;for(;n.prev!==n.next;){if(c=n.prev,A=n.next,s?Ck(n,i,r,s):Ek(n)){e.push(c.i/t|0),e.push(n.i/t|0),e.push(A.i/t|0),xh(n),n=A.next,a=A.next;continue}if(n=A,n===a){o?o===1?(n=yk(Ll(n),e,t),vh(n,e,t,i,r,s,2)):o===2&&vk(n,e,t,i,r,s):vh(Ll(n),e,t,i,r,s,1);break}}}function Ek(n){const e=n.prev,t=n,i=n.next;if(Qn(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,a=e.y,c=t.y,A=i.y,h=rs?r>o?r:o:s>o?s:o,m=a>c?a>A?a:A:c>A?c:A;let E=i.next;for(;E!==e;){if(E.x>=h&&E.x<=d&&E.y>=f&&E.y<=m&&Zc(r,a,s,c,o,A,E.x,E.y)&&Qn(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function Ck(n,e,t,i){const r=n.prev,s=n,o=n.next;if(Qn(r,s,o)>=0)return!1;const a=r.x,c=s.x,A=o.x,h=r.y,f=s.y,d=o.y,m=ac?a>A?a:A:c>A?c:A,C=h>f?h>d?h:d:f>d?f:d,g=Cy(m,E,e,t,i),I=Cy(x,C,e,t,i);let y=n.prevZ,B=n.nextZ;for(;y&&y.z>=g&&B&&B.z<=I;){if(y.x>=m&&y.x<=x&&y.y>=E&&y.y<=C&&y!==r&&y!==o&&Zc(a,h,c,f,A,d,y.x,y.y)&&Qn(y.prev,y,y.next)>=0||(y=y.prevZ,B.x>=m&&B.x<=x&&B.y>=E&&B.y<=C&&B!==r&&B!==o&&Zc(a,h,c,f,A,d,B.x,B.y)&&Qn(B.prev,B,B.next)>=0))return!1;B=B.nextZ}for(;y&&y.z>=g;){if(y.x>=m&&y.x<=x&&y.y>=E&&y.y<=C&&y!==r&&y!==o&&Zc(a,h,c,f,A,d,y.x,y.y)&&Qn(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;B&&B.z<=I;){if(B.x>=m&&B.x<=x&&B.y>=E&&B.y<=C&&B!==r&&B!==o&&Zc(a,h,c,f,A,d,B.x,B.y)&&Qn(B.prev,B,B.next)>=0)return!1;B=B.nextZ}return!0}function yk(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!Zg(r,s)&&UQ(r,i,i.next,s)&&Ih(r,s)&&Ih(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),xh(i),xh(i.next),i=n=s),i=i.next}while(i!==n);return Ll(i)}function vk(n,e,t,i,r,s){let o=n;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&Rk(o,a)){let c=FQ(o,a);o=Ll(o,o.next),c=Ll(c,c.next),vh(o,e,t,i,r,s,0),vh(c,e,t,i,r,s,0);return}a=a.next}o=o.next}while(o!==n)}function Ik(n,e,t,i){const r=[];let s,o,a,c,A;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){const d=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=s&&d>i&&(i=d,r=t.x=t.x&&t.x>=c&&s!==t.x&&Zc(or.x||t.x===r.x&&Sk(r,t)))&&(r=t,h=f)),t=t.next;while(t!==a);return r}function Sk(n,e){return Qn(n.prev,n,e.prev)<0&&Qn(e.next,n,n.next)<0}function wk(n,e,t,i){let r=n;do r.z===0&&(r.z=Cy(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,Mk(r)}function Mk(n){let e,t,i,r,s,o,a,c,A=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||c>0&&i;)a!==0&&(c===0||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,c--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,A*=2}while(o>1);return n}function Cy(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function Qk(n){let e=n,t=n;do(e.x=(n-o)*(s-a)&&(n-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(r-o)*(i-a)}function Rk(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!Tk(n,e)&&(Ih(n,e)&&Ih(e,n)&&Dk(n,e)&&(Qn(n.prev,n,e.prev)||Qn(n,e.prev,e))||Zg(n,e)&&Qn(n.prev,n,n.next)>0&&Qn(e.prev,e,e.next)>0)}function Qn(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function Zg(n,e){return n.x===e.x&&n.y===e.y}function UQ(n,e,t,i){const r=Vd(Qn(n,e,t)),s=Vd(Qn(n,e,i)),o=Vd(Qn(t,i,n)),a=Vd(Qn(t,i,e));return!!(r!==s&&o!==a||r===0&&zd(n,t,e)||s===0&&zd(n,i,e)||o===0&&zd(t,n,i)||a===0&&zd(t,e,i))}function zd(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function Vd(n){return n>0?1:n<0?-1:0}function Tk(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&UQ(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function Ih(n,e){return Qn(n.prev,n,n.next)<0?Qn(n,e,n.next)>=0&&Qn(n,n.prev,e)>=0:Qn(n,e,n.prev)<0||Qn(n,n.next,e)<0}function Dk(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function FQ(n,e){const t=new yy(n.i,n.x,n.y),i=new yy(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function T_(n,e,t,i){const r=new yy(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function xh(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function yy(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function bk(n,e,t,i){let r=0;for(let s=e,o=t-i;s2&&n[e-1].equals(n[0])&&n.pop()}function b_(n,e){for(let t=0;tNumber.EPSILON){const Qe=Math.sqrt(be),Xe=Math.sqrt(D*D+ne*ne),ze=Ee.x-S/Qe,qe=Ee.y+j/Qe,at=te.x-ne/Xe,Ct=te.y+D/Xe,Le=((at-ze)*ne-(Ct-qe)*D)/(j*ne-S*D);ae=ze+j*Le-H.x,he=qe+S*Le-H.y;const Dt=ae*ae+he*he;if(Dt<=2)return new _e(ae,he);Te=Math.sqrt(Dt/2)}else{let Qe=!1;j>Number.EPSILON?D>Number.EPSILON&&(Qe=!0):j<-Number.EPSILON?D<-Number.EPSILON&&(Qe=!0):Math.sign(S)===Math.sign(ne)&&(Qe=!0),Qe?(ae=-S,he=j,Te=Math.sqrt(be)):(ae=j,he=S,Te=Math.sqrt(be/2))}return new _e(ae/Te,he/Te)}const Z=[];for(let H=0,Ee=Y.length,te=Ee-1,ae=H+1;H=0;H--){const Ee=H/C,te=m*Math.cos(Ee*Math.PI/2),ae=E*Math.sin(Ee*Math.PI/2)+x;for(let he=0,Te=Y.length;he=0;){const ae=te;let he=te-1;he<0&&(he=H.length-1);for(let Te=0,j=h+C*2;Te0)&&m.push(y,B,w),(g!==i-1||c0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class zQ extends Ai{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Je(16777215),this.specular=new Je(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ga,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Nh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class VQ extends Ai{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Je(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ga,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class WQ extends Ai{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ga,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class YQ extends Ai{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ga,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Nh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class XQ extends Ai{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Je(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ga,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class JQ extends Xi{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function Cl(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function KQ(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function qQ(n){function e(r,s){return n[r]-n[s]}const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function vy(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const a=t[s]*e;for(let c=0;c!==e;++c)r[o++]=n[a+c]}return r}function fv(n,e,t,i){let r=1,s=n[0];for(;s!==void 0&&s[i]===void 0;)s=n[r++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&&(e.push(s.time),t.push.apply(t,o)),s=n[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++];while(s!==void 0);else do o=s[i],o!==void 0&&(e.push(s.time),t.push(o)),s=n[r++];while(s!==void 0)}function Uk(n,e,t,i,r=30){const s=n.clone();s.name=e;const o=[];for(let c=0;c=i)){f.push(A.times[m]);for(let x=0;xs.tracks[c].times[0]&&(a=s.tracks[c].times[0]);for(let c=0;c=a.times[E]){const g=E*f+h,I=g+f-h;x=a.values.slice(g,I)}else{const g=a.createInterpolant(),I=h,y=f-h;g.evaluate(s),x=g.resultBuffer.slice(I,y)}c==="quaternion"&&new zi().fromArray(x).normalize().conjugate().toArray(x);const C=A.times.length;for(let g=0;g=s)){const a=t[1];e=s)break t}o=i,i=0;break n}break e}for(;i>>1;et;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){const c=i[a];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,c),e=!1;break}if(o!==null&&o>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,c,o),e=!1;break}o=c}if(r!==void 0&&KQ(r))for(let a=0,c=r.length;a!==c;++a){const A=r[a];if(isNaN(A)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,A),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===_p,s=e.length-1;let o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*i,c=o*i,A=0;A!==i;++A)t[c+A]=t[a+A];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}As.prototype.TimeBufferType=Float32Array;As.prototype.ValueBufferType=Float32Array;As.prototype.DefaultInterpolation=hh;class kl extends As{}kl.prototype.ValueTypeName="bool";kl.prototype.ValueBufferType=Array;kl.prototype.DefaultInterpolation=Ah;kl.prototype.InterpolantFactoryMethodLinear=void 0;kl.prototype.InterpolantFactoryMethodSmooth=void 0;class pv extends As{}pv.prototype.ValueTypeName="color";class Bh extends As{}Bh.prototype.ValueTypeName="number";class $Q extends zh{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=(i-t)/(r-t);let A=e*a;for(let h=A+a;A!==h;A+=4)zi.slerpFlat(s,0,o,A-a,o,A,c);return s}}class wu extends As{InterpolantFactoryMethodLinear(e){return new $Q(this.times,this.values,this.getValueSize(),e)}}wu.prototype.ValueTypeName="quaternion";wu.prototype.DefaultInterpolation=hh;wu.prototype.InterpolantFactoryMethodSmooth=void 0;class Gl extends As{}Gl.prototype.ValueTypeName="string";Gl.prototype.ValueBufferType=Array;Gl.prototype.DefaultInterpolation=Ah;Gl.prototype.InterpolantFactoryMethodLinear=void 0;Gl.prototype.InterpolantFactoryMethodSmooth=void 0;class _h extends As{}_h.prototype.ValueTypeName="vector";class Sh{constructor(e,t=-1,i,r=Pg){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=Ir(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(Ok(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(As.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let a=0;a1){const f=h[1];let d=r[f];d||(r[f]=d=[]),d.push(A)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(f,d,m,E,x){if(m.length!==0){const C=[],g=[];fv(m,C,g,E),C.length!==0&&x.push(new f(d,C,g))}},r=[],s=e.name||"default",o=e.fps||30,a=e.blendMode;let c=e.length||-1;const A=e.hierarchy||[];for(let f=0;f{t&&t(s),this.manager.itemEnd(e)},0),s;if(js[e]!==void 0){js[e].push({onLoad:t,onProgress:i,onError:r});return}js[e]=[],js[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,c=this.responseType;fetch(o).then(A=>{if(A.status===200||A.status===0){if(A.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||A.body===void 0||A.body.getReader===void 0)return A;const h=js[e],f=A.body.getReader(),d=A.headers.get("Content-Length")||A.headers.get("X-File-Size"),m=d?parseInt(d):0,E=m!==0;let x=0;const C=new ReadableStream({start(g){I();function I(){f.read().then(({done:y,value:B})=>{if(y)g.close();else{x+=B.byteLength;const R=new ProgressEvent("progress",{lengthComputable:E,loaded:x,total:m});for(let w=0,T=h.length;w{switch(c){case"arraybuffer":return A.arrayBuffer();case"blob":return A.blob();case"document":return A.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return A.json();default:if(a===void 0)return A.text();{const f=/charset="?([^;"\s]*)"?/i.exec(a),d=f&&f[1]?f[1].toLowerCase():void 0,m=new TextDecoder(d);return A.arrayBuffer().then(E=>m.decode(E))}}}).then(A=>{oo.add(e,A);const h=js[e];delete js[e];for(let f=0,d=h.length;f{const h=js[e];if(h===void 0)throw this.manager.itemError(e),A;delete js[e];for(let f=0,d=h.length;f{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class zk extends Ji{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Ns(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{t(s.parse(JSON.parse(a)))}catch(c){r?r(c):console.error(c),s.manager.itemError(e)}},i,r)}parse(e){const t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=new Je().setHex(o.value);break;case"v2":r.uniforms[s].value=new _e().fromArray(o.value);break;case"v3":r.uniforms[s].value=new G().fromArray(o.value);break;case"v4":r.uniforms[s].value=new sn().fromArray(o.value);break;case"m3":r.uniforms[s].value=new wt().fromArray(o.value);break;case"m4":r.uniforms[s].value=new ft().fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=i(e.map)),e.matcap!==void 0&&(r.matcap=i(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),r.normalScale=new _e().fromArray(s)}return e.displacementMap!==void 0&&(r.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=i(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new _e().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const t={ShadowMaterial:GQ,SpriteMaterial:iv,RawShaderMaterial:OQ,ShaderMaterial:ls,PointsMaterial:sv,MeshPhysicalMaterial:HQ,MeshStandardMaterial:hv,MeshPhongMaterial:zQ,MeshToonMaterial:VQ,MeshNormalMaterial:WQ,MeshLambertMaterial:YQ,MeshDepthMaterial:Gg,MeshDistanceMaterial:Og,MeshBasicMaterial:sr,MeshMatcapMaterial:XQ,LineDashedMaterial:JQ,LineBasicMaterial:Xi,Material:Ai};return new t[e]}}class Iy{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,r=e.length;i0){const c=new gv(t);s=new wh(c),s.setCrossOrigin(this.crossOrigin);for(let A=0,h=e.length;A0){r=new wh(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;o{const C=new ei;C.min.fromArray(x.boxMin),C.max.fromArray(x.boxMax);const g=new ui;return g.radius=x.sphereRadius,g.center.fromArray(x.sphereCenter),{boxInitialized:x.boxInitialized,box:C,sphereInitialized:x.sphereInitialized,sphere:g}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=A(e.matricesTexture.uuid);break;case"LOD":o=new BQ;break;case"Line":o=new ha(a(e.geometry),c(e.material));break;case"LineLoop":o=new MQ(a(e.geometry),c(e.material));break;case"LineSegments":o=new Ls(a(e.geometry),c(e.material));break;case"PointCloud":case"Points":o=new QQ(a(e.geometry),c(e.material));break;case"Sprite":o=new xQ(c(e.material));break;case"Group":o=new Gr;break;case"Bone":o=new rv;break;default:o=new jt}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const d=e.children;for(let m=0;m"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=oo.get(e);if(o!==void 0){if(s.manager.itemStart(e),o.then){o.then(A=>{t&&t(A),s.manager.itemEnd(e)}).catch(A=>{r&&r(A)});return}return setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const c=fetch(e,a).then(function(A){return A.blob()}).then(function(A){return createImageBitmap(A,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(A){return oo.add(e,A),t&&t(A),s.manager.itemEnd(e),A}).catch(function(A){r&&r(A),oo.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});oo.add(e,c),s.manager.itemStart(e)}}let Wd;class Cv{static getContext(){return Wd===void 0&&(Wd=new(window.AudioContext||window.webkitAudioContext)),Wd}static setContext(e){Wd=e}}class $k extends Ji{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Ns(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(c){try{const A=c.slice(0);Cv.getContext().decodeAudioData(A,function(f){t(f)}).catch(a)}catch(A){a(A)}},i,r);function a(c){r?r(c):console.error(c),s.manager.itemError(e)}}}const O_=new ft,H_=new ft,ja=new ft;class e8{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Zn,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Zn,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,ja.copy(e.projectionMatrix);const r=t.eyeSep/2,s=r*t.near/t.focus,o=t.near*Math.tan(xl*t.fov*.5)/t.zoom;let a,c;H_.elements[12]=-r,O_.elements[12]=r,a=-o*t.aspect+s,c=o*t.aspect+s,ja.elements[0]=2*t.near/(c-a),ja.elements[8]=(c+a)/(c-a),this.cameraL.projectionMatrix.copy(ja),a=-o*t.aspect-s,c=o*t.aspect-s,ja.elements[0]=2*t.near/(c-a),ja.elements[8]=(c+a)/(c-a),this.cameraR.projectionMatrix.copy(ja)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(H_),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(O_)}}class yv{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=z_(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=z_();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function z_(){return(typeof performance>"u"?Date:performance).now()}const Za=new G,V_=new zi,t8=new G,$a=new G;class n8 extends jt{constructor(){super(),this.type="AudioListener",this.context=Cv.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new yv}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Za,V_,t8),$a.set(0,0,-1).applyQuaternion(V_),t.positionX){const r=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(Za.x,r),t.positionY.linearRampToValueAtTime(Za.y,r),t.positionZ.linearRampToValueAtTime(Za.z,r),t.forwardX.linearRampToValueAtTime($a.x,r),t.forwardY.linearRampToValueAtTime($a.y,r),t.forwardZ.linearRampToValueAtTime($a.z,r),t.upX.linearRampToValueAtTime(i.x,r),t.upY.linearRampToValueAtTime(i.y,r),t.upZ.linearRampToValueAtTime(i.z,r)}else t.setPosition(Za.x,Za.y,Za.z),t.setOrientation($a.x,$a.y,$a.z,i.x,i.y,i.z)}}class AR extends jt{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let c=t,A=t+t;c!==A;++c)if(i[c]!==i[c+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let s=i,o=r;s!==o;++s)t[s]=t[r+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let o=0;o!==s;++o)e[t+o]=e[i+o]}_slerp(e,t,i,r){zi.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,s){const o=this._workIndex*s;zi.multiplyQuaternionsFlat(e,o,e,t,e,i),zi.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,i,r,s){const o=1-r;for(let a=0;a!==s;++a){const c=t+a;e[c]=e[c]*o+e[i+a]*r}}_lerpAdditive(e,t,i,r,s){for(let o=0;o!==s;++o){const a=t+o;e[a]=e[a]+e[i+o]*r}}}const vv="\\[\\]\\.:\\/",o8=new RegExp("["+vv+"]","g"),Iv="[^"+vv+"]",a8="[^"+vv.replace("\\.","")+"]",l8=/((?:WC+[\/:])*)/.source.replace("WC",Iv),c8=/(WCOD+)?/.source.replace("WCOD",a8),u8=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Iv),A8=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Iv),h8=new RegExp("^"+l8+c8+u8+A8+"$"),f8=["material","materials","bones","map"];class d8{constructor(e,t,i){const r=i||Wt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class Wt{constructor(e,t,i){this.path=t,this.parsedPath=i||Wt.parseTrackName(t),this.node=Wt.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new Wt.Composite(e,t,i):new Wt(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(o8,"")}static parseTrackName(e){const t=h8.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=i.nodeName.substring(r+1);f8.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(s){for(let o=0;o=s){const f=s++,d=e[f];t[d.uuid]=h,e[h]=d,t[A]=f,e[f]=c;for(let m=0,E=r;m!==E;++m){const x=i[m],C=x[f],g=x[h];x[h]=C,x[f]=g}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let s=this.nCachedObjects_,o=e.length;for(let a=0,c=arguments.length;a!==c;++a){const A=arguments[a],h=A.uuid,f=t[h];if(f!==void 0)if(delete t[h],f0&&(t[m.uuid]=f),e[f]=m,e.pop();for(let E=0,x=r;E!==x;++E){const C=i[E];C[f]=C[d],C.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const s=this._bindings;if(r!==void 0)return s[r];const o=this._paths,a=this._parsedPaths,c=this._objects,A=c.length,h=this.nCachedObjects_,f=new Array(A);r=s.length,i[e]=r,o.push(e),a.push(t),s.push(f);for(let d=h,m=c.length;d!==m;++d){const E=c[d];f[d]=new Wt(E,e,t)}return f}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,c=o[a],A=e[a];t[A]=i,o[i]=c,o.pop(),s[i]=s[a],s.pop(),r[i]=r[a],r.pop()}}}class fR{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const s=t.tracks,o=s.length,a=new Array(o),c={endingStart:gl,endingEnd:gl};for(let A=0;A!==o;++A){const h=s[A].createInterpolant(null);a[A]=h,h.settings=c}this._interpolantSettings=c,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=J2,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const r=this._clip.duration,s=e._clip.duration,o=s/r,a=r/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,s=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const c=a.parameterPositions,A=a.sampleValues;return c[0]=s,c[1]=s+i,A[0]=e/o,A[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const c=(e-s)*i;c<0||i===0?t=0:(this._startTime=null,t=i*c)}t*=this._updateTimeScale(e);const o=this._updateTime(t),a=this._updateWeight(e);if(a>0){const c=this._interpolants,A=this._propertyBindings;switch(this.blendMode){case W1:for(let h=0,f=c.length;h!==f;++h)c[h].evaluate(o),A[h].accumulateAdditive(a);break;case Pg:default:for(let h=0,f=c.length;h!==f;++h)c[h].evaluate(o),A[h].accumulate(r,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,s=this._loopCount;const o=i===K2;if(e===0)return s===-1?r:o&&(s&1)===1?t-r:r;if(i===X2){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=t||r<0){const a=Math.floor(r/t);r-=t*a,s+=Math.abs(a);const c=this.repetitions-s;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){const A=e<0;this._setEndings(A,!A,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&(s&1)===1)return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=ml,r.endingEnd=ml):(e?r.endingStart=this.zeroSlopeAtStart?ml:gl:r.endingStart=fh,t?r.endingEnd=this.zeroSlopeAtEnd?ml:gl:r.endingEnd=fh)}_scheduleFading(e,t,i){const r=this._mixer,s=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,c=o.sampleValues;return a[0]=s,c[0]=t,a[1]=s+e,c[1]=i,this}}const g8=new Float32Array(1);class m8 extends go{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,s=r.length,o=e._propertyBindings,a=e._interpolants,c=i.uuid,A=this._bindingsByRootAndName;let h=A[c];h===void 0&&(h={},A[c]=h);for(let f=0;f!==s;++f){const d=r[f],m=d.name;let E=h[m];if(E!==void 0)++E.referenceCount,o[f]=E;else{if(E=o[f],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,c,m));continue}const x=t&&t._propertyBindings[f].binding.parsedPath;E=new hR(Wt.create(i,m,x),d.ValueTypeName,d.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,c,m),o[f]=E}a[f].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,r=e._clip.uuid,s=this._actionsByClip[r];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,r,i)}const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let A=0;A!==i;++A)t[A]._update(r,e,s,o);const a=this._bindings,c=this._nActiveBindings;for(let A=0;A!==c;++A)a[A].apply(o);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,X_).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const J_=new G,Yd=new G;class B8{constructor(e=new G,t=new G){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){J_.subVectors(e,this.start),Yd.subVectors(this.end,this.start);const i=Yd.dot(Yd);let s=Yd.dot(J_)/i;return t&&(s=Un(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const K_=new G;class _8 extends jt{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new Tt,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,a=1,c=32;o1)for(let f=0;f.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{eS.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(eS,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class F8 extends Ls{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Tt;r.setAttribute("position",new st(t,3)),r.setAttribute("color",new st(i,3));const s=new Xi({vertexColors:!0,toneMapped:!1});super(r,s),this.type="AxesHelper"}setColors(e,t,i){const r=new Je,s=this.geometry.attributes.color.array;return r.set(e),r.toArray(s,0),r.toArray(s,3),r.set(t),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ko{constructor(){this.type="ShapePath",this.color=new Je,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new oa,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,s,o){return this.currentPath.bezierCurveTo(e,t,i,r,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(g){const I=[];for(let y=0,B=g.length;yNumber.EPSILON){if(M<0&&(T=I[w],J=-J,P=I[R],M=-M),g.yP.y)continue;if(g.y===T.y){if(g.x===T.x)return!0}else{const b=M*(g.x-T.x)-J*(g.y-T.y);if(b===0)return!0;if(b<0)continue;B=!B}}else{if(g.y!==T.y)continue;if(P.x<=g.x&&g.x<=T.x||T.x<=g.x&&g.x<=P.x)return!0}}return B}const r=os.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,c;const A=[];if(s.length===1)return a=s[0],c=new aa,c.curves=a.curves,A.push(c),A;let h=!r(s[0].getPoints());h=e?!h:h;const f=[],d=[];let m=[],E=0,x;d[E]=void 0,m[E]=[];for(let g=0,I=s.length;g1){let g=!1,I=0;for(let y=0,B=d.length;y0&&g===!1&&(m=f)}let C;for(let g=0,I=d.length;g=0&&(B[F]=null,y[F].disconnect(k))}for(let O=0;O=B.length){B.push(k),F=Ie;break}else if(B[Ie]===null){B[Ie]=k,F=Ie;break}if(F===-1)break}const me=y[F];me&&me.connect(k)}}const te=new G,ue=new G;function U(V,O,k){te.setFromMatrixPosition(O.matrixWorld),ue.setFromMatrixPosition(k.matrixWorld);const F=te.distanceTo(ue),me=O.projectionMatrix.elements,Ie=k.projectionMatrix.elements,se=me[14]/(me[10]-1),Be=me[14]/(me[10]+1),H=(me[9]+1)/me[5],Ee=(me[9]-1)/me[5],ne=(me[8]-1)/me[0],le=(Ie[8]+1)/Ie[0],fe=se*ne,Te=se*le,Z=F/(-ne+le),S=Z*-ne;O.matrixWorld.decompose(V.position,V.quaternion,V.scale),V.translateX(S),V.translateZ(Z),V.matrixWorld.compose(V.position,V.quaternion,V.scale),V.matrixWorldInverse.copy(V.matrixWorld).invert();const D=se+Z,re=Be+Z,be=fe-S,De=Te+(F-S),Qe=H*Be/re*D,Xe=Ee*Be/re*D;V.projectionMatrix.makePerspective(be,De,Qe,Xe,D,re),V.projectionMatrixInverse.copy(V.projectionMatrix).invert()}function $(V,O){O===null?V.matrixWorld.copy(V.matrix):V.matrixWorld.multiplyMatrices(O.matrixWorld,V.matrix),V.matrixWorldInverse.copy(V.matrixWorld).invert()}this.updateCamera=function(V){if(r===null)return;x.texture!==null&&(V.near=x.depthNear,V.far=x.depthFar),w.near=P.near=T.near=V.near,w.far=P.far=T.far=V.far,(b!==w.near||q!==w.far)&&(r.updateRenderState({depthNear:w.near,depthFar:w.far}),b=w.near,q=w.far,T.near=b,T.far=q,P.near=b,P.far=q,T.updateProjectionMatrix(),P.updateProjectionMatrix(),V.updateProjectionMatrix());const O=V.parent,k=w.cameras;$(w,O);for(let F=0;F0&&(C.alphaTest.value=p.alphaTest);const I=e.get(p).envMap;if(I&&(C.envMap.value=I,C.flipEnvMap.value=I.isCubeTexture&&I.isRenderTargetTexture===!1?-1:1,C.reflectivity.value=p.reflectivity,C.ior.value=p.ior,C.refractionRatio.value=p.refractionRatio),p.lightMap){C.lightMap.value=p.lightMap;const y=n._useLegacyLights===!0?Math.PI:1;C.lightMapIntensity.value=p.lightMapIntensity*y,t(p.lightMap,C.lightMapTransform)}p.aoMap&&(C.aoMap.value=p.aoMap,C.aoMapIntensity.value=p.aoMapIntensity,t(p.aoMap,C.aoMapTransform))}function o(C,p){C.diffuse.value.copy(p.color),C.opacity.value=p.opacity,p.map&&(C.map.value=p.map,t(p.map,C.mapTransform))}function a(C,p){C.dashSize.value=p.dashSize,C.totalSize.value=p.dashSize+p.gapSize,C.scale.value=p.scale}function c(C,p,I,y){C.diffuse.value.copy(p.color),C.opacity.value=p.opacity,C.size.value=p.size*I,C.scale.value=y*.5,p.map&&(C.map.value=p.map,t(p.map,C.uvTransform)),p.alphaMap&&(C.alphaMap.value=p.alphaMap,t(p.alphaMap,C.alphaMapTransform)),p.alphaTest>0&&(C.alphaTest.value=p.alphaTest)}function A(C,p){C.diffuse.value.copy(p.color),C.opacity.value=p.opacity,C.rotation.value=p.rotation,p.map&&(C.map.value=p.map,t(p.map,C.mapTransform)),p.alphaMap&&(C.alphaMap.value=p.alphaMap,t(p.alphaMap,C.alphaMapTransform)),p.alphaTest>0&&(C.alphaTest.value=p.alphaTest)}function h(C,p){C.specular.value.copy(p.specular),C.shininess.value=Math.max(p.shininess,1e-4)}function f(C,p){p.gradientMap&&(C.gradientMap.value=p.gradientMap)}function d(C,p){C.metalness.value=p.metalness,p.metalnessMap&&(C.metalnessMap.value=p.metalnessMap,t(p.metalnessMap,C.metalnessMapTransform)),C.roughness.value=p.roughness,p.roughnessMap&&(C.roughnessMap.value=p.roughnessMap,t(p.roughnessMap,C.roughnessMapTransform)),e.get(p).envMap&&(C.envMapIntensity.value=p.envMapIntensity)}function m(C,p,I){C.ior.value=p.ior,p.sheen>0&&(C.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),C.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(C.sheenColorMap.value=p.sheenColorMap,t(p.sheenColorMap,C.sheenColorMapTransform)),p.sheenRoughnessMap&&(C.sheenRoughnessMap.value=p.sheenRoughnessMap,t(p.sheenRoughnessMap,C.sheenRoughnessMapTransform))),p.clearcoat>0&&(C.clearcoat.value=p.clearcoat,C.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(C.clearcoatMap.value=p.clearcoatMap,t(p.clearcoatMap,C.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(C.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,t(p.clearcoatRoughnessMap,C.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(C.clearcoatNormalMap.value=p.clearcoatNormalMap,t(p.clearcoatNormalMap,C.clearcoatNormalMapTransform),C.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Vi&&C.clearcoatNormalScale.value.negate())),p.iridescence>0&&(C.iridescence.value=p.iridescence,C.iridescenceIOR.value=p.iridescenceIOR,C.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],C.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(C.iridescenceMap.value=p.iridescenceMap,t(p.iridescenceMap,C.iridescenceMapTransform)),p.iridescenceThicknessMap&&(C.iridescenceThicknessMap.value=p.iridescenceThicknessMap,t(p.iridescenceThicknessMap,C.iridescenceThicknessMapTransform))),p.transmission>0&&(C.transmission.value=p.transmission,C.transmissionSamplerMap.value=I.texture,C.transmissionSamplerSize.value.set(I.width,I.height),p.transmissionMap&&(C.transmissionMap.value=p.transmissionMap,t(p.transmissionMap,C.transmissionMapTransform)),C.thickness.value=p.thickness,p.thicknessMap&&(C.thicknessMap.value=p.thicknessMap,t(p.thicknessMap,C.thicknessMapTransform)),C.attenuationDistance.value=p.attenuationDistance,C.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(C.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(C.anisotropyMap.value=p.anisotropyMap,t(p.anisotropyMap,C.anisotropyMapTransform))),C.specularIntensity.value=p.specularIntensity,C.specularColor.value.copy(p.specularColor),p.specularColorMap&&(C.specularColorMap.value=p.specularColorMap,t(p.specularColorMap,C.specularColorMapTransform)),p.specularIntensityMap&&(C.specularIntensityMap.value=p.specularIntensityMap,t(p.specularIntensityMap,C.specularIntensityMapTransform))}function E(C,p){p.matcap&&(C.matcap.value=p.matcap)}function x(C,p){const I=e.get(p).light;C.referencePosition.value.setFromMatrixPosition(I.matrixWorld),C.nearDistance.value=I.shadow.camera.near,C.farDistance.value=I.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function Ak(n,e,t,i){let r={},s={},o=[];const a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function c(I,y){const B=y.program;i.uniformBlockBinding(I,B)}function A(I,y){let B=r[I.id];B===void 0&&(E(I),B=h(I),r[I.id]=B,I.addEventListener("dispose",C));const R=y.program;i.updateUBOMapping(I,R);const M=e.render.frame;s[I.id]!==M&&(d(I),s[I.id]=M)}function h(I){const y=f();I.__bindingPointIndex=y;const B=n.createBuffer(),R=I.__size,M=I.usage;return n.bindBuffer(n.UNIFORM_BUFFER,B),n.bufferData(n.UNIFORM_BUFFER,R,M),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,y,B),B}function f(){for(let I=0;I0&&(B+=R-M),I.__size=B,I.__cache={},this}function x(I){const y={boundary:0,storage:0};return typeof I=="number"||typeof I=="boolean"?(y.boundary=4,y.storage=4):I.isVector2?(y.boundary=8,y.storage=8):I.isVector3||I.isColor?(y.boundary=16,y.storage=12):I.isVector4?(y.boundary=16,y.storage=16):I.isMatrix3?(y.boundary=48,y.storage=48):I.isMatrix4?(y.boundary=64,y.storage=64):I.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",I),y}function C(I){const y=I.target;y.removeEventListener("dispose",C);const B=o.indexOf(y.__bindingPointIndex);o.splice(B,1),n.deleteBuffer(r[y.id]),delete r[y.id],delete s[y.id]}function p(){for(const I in r)n.deleteBuffer(r[I]);o=[],r={},s={}}return{bind:c,update:A,dispose:p}}class cv{constructor(e={}){const{canvas:t=yQ(),context:i=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:A=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:f=!1}=e;this.isWebGLRenderer=!0;let d;i!==null?d=i.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),E=new Int32Array(4);let x=null,C=null;const p=[],I=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=On,this._useLegacyLights=!1,this.toneMapping=Ds,this.toneMappingExposure=1;const y=this;let B=!1,R=0,M=0,T=null,P=-1,K=null;const w=new an,b=new an;let q=null;const de=new Je(0);let Y=0,ie=t.width,te=t.height,ue=1,U=null,$=null;const ee=new an(0,0,ie,te),Ae=new an(0,0,ie,te);let ye=!1;const ke=new Oh;let V=!1,O=!1,k=null;const F=new ft,me=new _e,Ie=new G,se={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Be(){return T===null?ue:1}let H=i;function Ee(z,pe){for(let xe=0;xe{function Ze(){if(Se.forEach(function(lt){Z.get(lt).currentProgram.isReady()&&Se.delete(lt)}),Se.size===0){ve(z);return}setTimeout(Ze,10)}ne.get("KHR_parallel_shader_compile")!==null?Ze():setTimeout(Ze,10)})};let Wt=null;function bn(z){Wt&&Wt(z)}function fi(){un.stop()}function en(){un.start()}const un=new wQ;un.setAnimationLoop(bn),typeof self<"u"&&un.setContext(self),this.setAnimationLoop=function(z){Wt=z,_t.setAnimationLoop(z),z===null?un.stop():un.start()},_t.addEventListener("sessionstart",fi),_t.addEventListener("sessionend",en),this.render=function(z,pe){if(pe!==void 0&&pe.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(B===!0)return;z.matrixWorldAutoUpdate===!0&&z.updateMatrixWorld(),pe.parent===null&&pe.matrixWorldAutoUpdate===!0&&pe.updateMatrixWorld(),_t.enabled===!0&&_t.isPresenting===!0&&(_t.cameraAutoUpdate===!0&&_t.updateCamera(pe),pe=_t.getCamera()),z.isScene===!0&&z.onBeforeRender(y,z,pe,T),C=at.get(z,I.length),C.init(),I.push(C),F.multiplyMatrices(pe.projectionMatrix,pe.matrixWorldInverse),ke.setFromProjectionMatrix(F),O=this.localClippingEnabled,V=Ct.init(this.clippingPlanes,O),x=qe.get(z,p.length),x.init(),p.push(x),qi(z,pe,0,y.sortObjects),x.finish(),y.sortObjects===!0&&x.sort(U,$),this.info.render.frame++,V===!0&&Ct.beginShadows();const xe=C.state.shadowsArray;if(Le.render(xe,z,pe),V===!0&&Ct.endShadows(),this.info.autoReset===!0&&this.info.reset(),(_t.enabled===!1||_t.isPresenting===!1||_t.hasDepthSensing()===!1)&&Dt.render(x,z),C.setupLights(y._useLegacyLights),pe.isArrayCamera){const Se=pe.cameras;for(let ve=0,Ze=Se.length;ve0?C=I[I.length-1]:C=null,p.pop(),p.length>0?x=p[p.length-1]:x=null};function qi(z,pe,xe,Se){if(z.visible===!1)return;if(z.layers.test(pe.layers)){if(z.isGroup)xe=z.renderOrder;else if(z.isLOD)z.autoUpdate===!0&&z.update(pe);else if(z.isLight)C.pushLight(z),z.castShadow&&C.pushShadow(z);else if(z.isSprite){if(!z.frustumCulled||ke.intersectsSprite(z)){Se&&Ie.setFromMatrixPosition(z.matrixWorld).applyMatrix4(F);const lt=Qe.update(z),gt=z.material;gt.visible&&x.push(z,lt,gt,xe,Ie.z,null)}}else if((z.isMesh||z.isLine||z.isPoints)&&(!z.frustumCulled||ke.intersectsObject(z))){const lt=Qe.update(z),gt=z.material;if(Se&&(z.boundingSphere!==void 0?(z.boundingSphere===null&&z.computeBoundingSphere(),Ie.copy(z.boundingSphere.center)):(lt.boundingSphere===null&<.computeBoundingSphere(),Ie.copy(lt.boundingSphere.center)),Ie.applyMatrix4(z.matrixWorld).applyMatrix4(F)),Array.isArray(gt)){const pt=lt.groups;for(let St=0,It=pt.length;St0&&di(ve,Ze,pe,xe),Se&&fe.viewport(w.copy(Se)),ve.length>0&&Gs(ve,pe,xe),Ze.length>0&&Gs(Ze,pe,xe),lt.length>0&&Gs(lt,pe,xe),fe.buffers.depth.setTest(!0),fe.buffers.depth.setMask(!0),fe.buffers.color.setMask(!0),fe.setPolygonOffset(!1)}function di(z,pe,xe,Se){if((xe.isScene===!0?xe.overrideMaterial:null)!==null)return;const Ze=le.isWebGL2;k===null&&(k=new Wr(1,1,{generateMipmaps:!0,type:ne.has("EXT_color_buffer_half_float")?Ol:bs,minFilter:Ms,samples:Ze?4:0})),y.getDrawingBufferSize(me),Ze?k.setSize(me.x,me.y):k.setSize(pg(me.x),pg(me.y));const lt=y.getRenderTarget();y.setRenderTarget(k),y.getClearColor(de),Y=y.getClearAlpha(),Y<1&&y.setClearColor(16777215,.5),y.clear();const gt=y.toneMapping;y.toneMapping=Ds,Gs(z,xe,Se),S.updateMultisampleRenderTarget(k),S.updateRenderTargetMipmap(k);let pt=!1;for(let St=0,It=pe.length;St0),xt=!!xe.morphAttributes.position,mn=!!xe.morphAttributes.normal,Wn=!!xe.morphAttributes.color;let tn=Ds;Se.toneMapped&&(T===null||T.isXRRenderTarget===!0)&&(tn=y.toneMapping);const Yn=xe.morphAttributes.position||xe.morphAttributes.normal||xe.morphAttributes.color,Et=Yn!==void 0?Yn.length:0,et=Z.get(Se),yi=C.state.lights;if(V===!0&&(O===!0||z!==K)){const we=z===K&&Se.id===P;Ct.setState(Se,z,we)}let yt=!1;Se.version===et.__version?(et.needsLights&&et.lightsStateVersion!==yi.state.version||et.outputColorSpace!==gt||ve.isBatchedMesh&&et.batching===!1||!ve.isBatchedMesh&&et.batching===!0||ve.isInstancedMesh&&et.instancing===!1||!ve.isInstancedMesh&&et.instancing===!0||ve.isSkinnedMesh&&et.skinning===!1||!ve.isSkinnedMesh&&et.skinning===!0||ve.isInstancedMesh&&et.instancingColor===!0&&ve.instanceColor===null||ve.isInstancedMesh&&et.instancingColor===!1&&ve.instanceColor!==null||et.envMap!==pt||Se.fog===!0&&et.fog!==Ze||et.numClippingPlanes!==void 0&&(et.numClippingPlanes!==Ct.numPlanes||et.numIntersection!==Ct.numIntersection)||et.vertexAlphas!==St||et.vertexTangents!==It||et.morphTargets!==xt||et.morphNormals!==mn||et.morphColors!==Wn||et.toneMapping!==tn||le.isWebGL2===!0&&et.morphTargetsCount!==Et)&&(yt=!0):(yt=!0,et.__version=Se.version);let An=et.currentProgram;yt===!0&&(An=ds(Se,pe,ve));let lr=!1,N=!1,L=!1;const j=An.getUniforms(),ae=et.uniforms;if(fe.useProgram(An.program)&&(lr=!0,N=!0,L=!0),Se.id!==P&&(P=Se.id,N=!0),lr||K!==z){j.setValue(H,"projectionMatrix",z.projectionMatrix),j.setValue(H,"viewMatrix",z.matrixWorldInverse);const we=j.map.cameraPosition;we!==void 0&&we.setValue(H,Ie.setFromMatrixPosition(z.matrixWorld)),le.logarithmicDepthBuffer&&j.setValue(H,"logDepthBufFC",2/(Math.log(z.far+1)/Math.LN2)),(Se.isMeshPhongMaterial||Se.isMeshToonMaterial||Se.isMeshLambertMaterial||Se.isMeshBasicMaterial||Se.isMeshStandardMaterial||Se.isShaderMaterial)&&j.setValue(H,"isOrthographic",z.isOrthographicCamera===!0),K!==z&&(K=z,N=!0,L=!0)}if(ve.isSkinnedMesh){j.setOptional(H,ve,"bindMatrix"),j.setOptional(H,ve,"bindMatrixInverse");const we=ve.skeleton;we&&(le.floatVertexTextures?(we.boneTexture===null&&we.computeBoneTexture(),j.setValue(H,"boneTexture",we.boneTexture,S)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}ve.isBatchedMesh&&(j.setOptional(H,ve,"batchingTexture"),j.setValue(H,"batchingTexture",ve._matricesTexture,S));const ge=xe.morphAttributes;if((ge.position!==void 0||ge.normal!==void 0||ge.color!==void 0&&le.isWebGL2===!0)&&Bt.update(ve,xe,An),(N||et.receiveShadow!==ve.receiveShadow)&&(et.receiveShadow=ve.receiveShadow,j.setValue(H,"receiveShadow",ve.receiveShadow)),Se.isMeshGouraudMaterial&&Se.envMap!==null&&(ae.envMap.value=pt,ae.flipEnvMap.value=pt.isCubeTexture&&pt.isRenderTargetTexture===!1?-1:1),N&&(j.setValue(H,"toneMappingExposure",y.toneMappingExposure),et.needsLights&&Lu(ae,L),Ze&&Se.fog===!0&&ze.refreshFogUniforms(ae,Ze),ze.refreshMaterialUniforms(ae,Se,ue,te,k),Tp.upload(H,Do(et),ae,S)),Se.isShaderMaterial&&Se.uniformsNeedUpdate===!0&&(Tp.upload(H,Do(et),ae,S),Se.uniformsNeedUpdate=!1),Se.isSpriteMaterial&&j.setValue(H,"center",ve.center),j.setValue(H,"modelViewMatrix",ve.modelViewMatrix),j.setValue(H,"normalMatrix",ve.normalMatrix),j.setValue(H,"modelMatrix",ve.matrixWorld),Se.isShaderMaterial||Se.isRawShaderMaterial){const we=Se.uniformsGroups;for(let Pe=0,Ne=we.length;Pe0&&S.useMultisampledRTT(z)===!1?ve=Z.get(z).__webglMultisampledFramebuffer:Array.isArray(It)?ve=It[xe]:ve=It,w.copy(z.viewport),b.copy(z.scissor),q=z.scissorTest}else w.copy(ee).multiplyScalar(ue).floor(),b.copy(Ae).multiplyScalar(ue).floor(),q=ye;if(fe.bindFramebuffer(H.FRAMEBUFFER,ve)&&le.drawBuffers&&Se&&fe.drawBuffers(z,ve),fe.viewport(w),fe.scissor(b),fe.setScissorTest(q),Ze){const pt=Z.get(z.texture);H.framebufferTexture2D(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_CUBE_MAP_POSITIVE_X+pe,pt.__webglTexture,xe)}else if(lt){const pt=Z.get(z.texture),St=pe||0;H.framebufferTextureLayer(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,pt.__webglTexture,xe||0,St)}P=-1},this.readRenderTargetPixels=function(z,pe,xe,Se,ve,Ze,lt){if(!(z&&z.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let gt=Z.get(z).__webglFramebuffer;if(z.isWebGLCubeRenderTarget&<!==void 0&&(gt=gt[lt]),gt){fe.bindFramebuffer(H.FRAMEBUFFER,gt);try{const pt=z.texture,St=pt.format,It=pt.type;if(St!==Oi&&tt.convert(St)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const xt=It===Ol&&(ne.has("EXT_color_buffer_half_float")||le.isWebGL2&&ne.has("EXT_color_buffer_float"));if(It!==bs&&tt.convert(It)!==H.getParameter(H.IMPLEMENTATION_COLOR_READ_TYPE)&&!(It===Fr&&(le.isWebGL2||ne.has("OES_texture_float")||ne.has("WEBGL_color_buffer_float")))&&!xt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}pe>=0&&pe<=z.width-Se&&xe>=0&&xe<=z.height-ve&&H.readPixels(pe,xe,Se,ve,tt.convert(St),tt.convert(It),Ze)}finally{const pt=T!==null?Z.get(T).__webglFramebuffer:null;fe.bindFramebuffer(H.FRAMEBUFFER,pt)}}},this.copyFramebufferToTexture=function(z,pe,xe=0){const Se=Math.pow(2,-xe),ve=Math.floor(pe.image.width*Se),Ze=Math.floor(pe.image.height*Se);S.setTexture2D(pe,0),H.copyTexSubImage2D(H.TEXTURE_2D,xe,0,0,z.x,z.y,ve,Ze),fe.unbindTexture()},this.copyTextureToTexture=function(z,pe,xe,Se=0){const ve=pe.image.width,Ze=pe.image.height,lt=tt.convert(xe.format),gt=tt.convert(xe.type);S.setTexture2D(xe,0),H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,xe.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,xe.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,xe.unpackAlignment),pe.isDataTexture?H.texSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,ve,Ze,lt,gt,pe.image.data):pe.isCompressedTexture?H.compressedTexSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,pe.mipmaps[0].width,pe.mipmaps[0].height,lt,pe.mipmaps[0].data):H.texSubImage2D(H.TEXTURE_2D,Se,z.x,z.y,lt,gt,pe.image),Se===0&&xe.generateMipmaps&&H.generateMipmap(H.TEXTURE_2D),fe.unbindTexture()},this.copyTextureToTexture3D=function(z,pe,xe,Se,ve=0){if(y.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Ze=z.max.x-z.min.x+1,lt=z.max.y-z.min.y+1,gt=z.max.z-z.min.z+1,pt=tt.convert(Se.format),St=tt.convert(Se.type);let It;if(Se.isData3DTexture)S.setTexture3D(Se,0),It=H.TEXTURE_3D;else if(Se.isDataArrayTexture||Se.isCompressedArrayTexture)S.setTexture2DArray(Se,0),It=H.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,Se.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Se.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,Se.unpackAlignment);const xt=H.getParameter(H.UNPACK_ROW_LENGTH),mn=H.getParameter(H.UNPACK_IMAGE_HEIGHT),Wn=H.getParameter(H.UNPACK_SKIP_PIXELS),tn=H.getParameter(H.UNPACK_SKIP_ROWS),Yn=H.getParameter(H.UNPACK_SKIP_IMAGES),Et=xe.isCompressedTexture?xe.mipmaps[ve]:xe.image;H.pixelStorei(H.UNPACK_ROW_LENGTH,Et.width),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,Et.height),H.pixelStorei(H.UNPACK_SKIP_PIXELS,z.min.x),H.pixelStorei(H.UNPACK_SKIP_ROWS,z.min.y),H.pixelStorei(H.UNPACK_SKIP_IMAGES,z.min.z),xe.isDataTexture||xe.isData3DTexture?H.texSubImage3D(It,ve,pe.x,pe.y,pe.z,Ze,lt,gt,pt,St,Et.data):xe.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),H.compressedTexSubImage3D(It,ve,pe.x,pe.y,pe.z,Ze,lt,gt,pt,Et.data)):H.texSubImage3D(It,ve,pe.x,pe.y,pe.z,Ze,lt,gt,pt,St,Et),H.pixelStorei(H.UNPACK_ROW_LENGTH,xt),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,mn),H.pixelStorei(H.UNPACK_SKIP_PIXELS,Wn),H.pixelStorei(H.UNPACK_SKIP_ROWS,tn),H.pixelStorei(H.UNPACK_SKIP_IMAGES,Yn),ve===0&&Se.generateMipmaps&&H.generateMipmap(It),fe.unbindTexture()},this.initTexture=function(z){z.isCubeTexture?S.setTextureCube(z,0):z.isData3DTexture?S.setTexture3D(z,0):z.isDataArrayTexture||z.isCompressedArrayTexture?S.setTexture2DArray(z,0):S.setTexture2D(z,0),fe.unbindTexture()},this.resetState=function(){R=0,M=0,T=null,fe.reset(),vt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Qs}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===Hg?"display-p3":"srgb",t.unpackColorSpace=sn.workingColorSpace===Fh?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===On?Ca:$1}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===Ca?On:Ns}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class LQ extends cv{}LQ.prototype.isWebGL1Renderer=!0;class Xg{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Je(e),this.density=t}clone(){return new Xg(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Jg{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Je(e),this.near=t,this.far=i}clone(){return new Jg(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Ih extends $t{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}}class Kg{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=Ch,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=xr()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return bl("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:c,point:hA.clone(),uv:Cr.getInterpolation(hA,Rd,dA,Td,C_,fE,y_,new _e),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function Dd(n,e,t,i,r,s){Rc.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(fA.x=s*Rc.x-r*Rc.y,fA.y=r*Rc.x+s*Rc.y):fA.copy(Rc),n.copy(e),n.x+=fA.x,n.y+=fA.y,n.applyMatrix4(PQ)}const bd=new G,v_=new G;class FQ extends $t{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){bd.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(bd);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){bd.setFromMatrixPosition(e.matrixWorld),v_.setFromMatrixPosition(this.matrixWorld);const i=bd.distanceTo(v_)/e.zoom;t[0].object.visible=!0;let r,s;for(r=1,s=t.length;r=o)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const Dc="batchId",qo=new ft,R_=new ft,Ek=new ft,T_=new ft,gE=new Oh,Pd=new ti,rl=new ui,mA=new G,mE=new mk,Qi=new nn,Ud=[];function Ck(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new rn(a,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(Dc,new rn(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(Dc))throw new Error(`BatchedMesh: Geometry cannot use attribute "${Dc}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===Dc)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ti);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,a=this._drawRanges,c=this._bounds;this._geometryCount!==0&&(s=o[o.length-1]),t===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=t,s===null?r.vertexStart=0:r.vertexStart=s.vertexStart+s.vertexCount;const A=e.getIndex(),h=A!==null;if(h&&(i===-1?r.indexCount=A.count:r.indexCount=i,s===null?r.indexStart=0:r.indexStart=s.indexStart+s.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const f=this._visibility,d=this._active,m=this._matricesTexture,E=this._matricesTexture.image.data;f.push(!0),d.push(!0);const x=this._geometryCount;this._geometryCount++,Ek.toArray(E,x*16),m.needsUpdate=!0,o.push(r),a.push({start:h?r.indexStart:r.vertexStart,count:-1}),c.push({boxInitialized:!1,box:new ti,sphereInitialized:!1,sphere:new ui});const C=this.geometry.getAttribute(Dc);for(let p=0;p=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=i.getIndex()!==null,s=i.getIndex(),o=t.getIndex(),a=this._reservedRanges[e];if(r&&o.count>a.indexCount||t.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const c=a.vertexStart,A=a.vertexCount;for(const m in i.attributes){if(m===Dc)continue;const E=t.getAttribute(m),x=i.getAttribute(m);Ck(E,x,c);const C=E.itemSize;for(let p=E.count,I=A;p=t.length||t[e]===!1?this:(t[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,t){if(this._active[e]===!1)return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(r.boxInitialized===!1){s.makeEmpty();const a=o.index,c=o.attributes.position,A=this._drawRanges[e];for(let h=A.start,f=A.start+A.count;h=o||i[e]===!1?this:(t.toArray(s,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,t){const i=this._active,r=this._matricesTexture.image.data,s=this._geometryCount;return e>=s||i[e]===!1?null:t.fromArray(r,e*16)}setVisibleAt(e,t){const i=this._visibility,r=this._active,s=this._geometryCount;return e>=s||r[e]===!1||i[e]===t?this:(i[e]=t,this._visibilityChanged=!0,this)}getVisibleAt(e){const t=this._visibility,i=this._active,r=this._geometryCount;return e>=r||i[e]===!1?!1:t[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,a=this.matrixWorld,c=this.geometry;Qi.material=this.material,Qi.geometry.index=c.index,Qi.geometry.attributes=c.attributes,Qi.geometry.boundingBox===null&&(Qi.geometry.boundingBox=new ti),Qi.geometry.boundingSphere===null&&(Qi.geometry.boundingSphere=new ui);for(let A=0;A({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),a=o===null?1:o.array.BYTES_PER_ELEMENT,c=this._active,A=this._visibility,h=this._multiDrawStarts,f=this._multiDrawCounts,d=this._drawRanges,m=this.perObjectFrustumCulled;m&&(T_.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),gE.setFromProjectionMatrix(T_,e.coordinateSystem));let E=0;if(this.sortObjects){R_.copy(this.matrixWorld).invert(),mA.setFromMatrixPosition(i.matrixWorld).applyMatrix4(R_);for(let p=0,I=A.length;pc)continue;d.applyMatrix4(this.matrixWorld);const P=e.ray.origin.distanceTo(d);Pe.far||t.push({distance:P,point:f.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),I=Math.min(C.count,o.start+o.count);for(let y=p,B=I-1;yc)continue;d.applyMatrix4(this.matrixWorld);const M=e.ray.origin.distanceTo(d);Me.far||t.push({distance:M,point:f.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:A,distanceToRay:Math.sqrt(a),point:c,index:e,face:null,object:o})}}class yk extends wn{constructor(e,t,i,r,s,o,a,c,A){super(e,t,i,r,s,o,a,c,A),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:In,this.magFilter=s!==void 0?s:In,this.generateMipmaps=!1;const h=this;function f(){h.needsUpdate=!0,e.requestVideoFrameCallback(f)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(f)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class vk extends wn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=Gn,this.minFilter=Gn,this.generateMipmaps=!1,this.needsUpdate=!0}}class jg extends wn{constructor(e,t,i,r,s,o,a,c,A,h,f,d){super(null,o,a,c,A,h,r,s,f,d),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class Ik extends jg{constructor(e,t,i,r,s,o){super(e,t,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=Ti}}class xk extends jg{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,mo),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class Bk extends wn{constructor(e,t,i,r,s,o,a,c,A){super(e,t,i,r,s,o,a,c,A),this.isCanvasTexture=!0,this.needsUpdate=!0}}class hs{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;t?o=t:o=e*i[s-1];let a=0,c=s-1,A;for(;a<=c;)if(r=Math.floor(a+(c-a)/2),A=i[r]-o,A<0)a=r+1;else if(A>0)c=r-1;else{c=r;break}if(r=c,i[r]===o)return r/(s-1);const h=i[r],d=i[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),c=t||(o.isVector2?new _e:new G);return c.copy(a).sub(o).normalize(),c}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new G,r=[],s=[],o=[],a=new G,c=new ft;for(let m=0;m<=e;m++){const E=m/e;r[m]=this.getTangentAt(E,new G)}s[0]=new G,o[0]=new G;let A=Number.MAX_VALUE;const h=Math.abs(r[0].x),f=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=A&&(A=h,i.set(1,0,0)),f<=A&&(A=f,i.set(0,1,0)),d<=A&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=e;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const E=Math.acos(Un(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(c.makeRotationAxis(a,E))}o[m].crossVectors(r[m],s[m])}if(t===!0){let m=Math.acos(Un(s[0].dot(s[e]),-1,1));m/=e,r[0].dot(a.crossVectors(s[0],s[e]))>0&&(m=-m);for(let E=1;E<=e;E++)s[E].applyMatrix4(c.makeRotationAxis(r[E],m*E)),o[E].crossVectors(r[E],s[E])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class Zg extends hs{constructor(e=0,t=0,i=1,r=1,s=0,o=Math.PI*2,a=!1,c=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=c}getPoint(e,t){const i=t||new _e,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:c===0&&a===s-1&&(a=s-2,c=1);let A,h;this.closed||a>0?A=r[(a-1)%s]:(Od.subVectors(r[0],r[1]).add(r[0]),A=Od);const f=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],f=r[o>r.length-3?r.length-1:o+2];return i.set(k_(a,c.x,A.x,h.x,f.x),k_(a,c.y,A.y,h.y,f.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,a=this.curves[s],c=a.getLength(),A=c===0?0:1-o/c;return a.getPointAt(A,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const f=A.getPoint(0);f.equals(this.currentPoint)||this.lineTo(f.x,f.y)}this.curves.push(A);const h=A.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class zh extends Tt{constructor(e=[new _e(0,-.5),new _e(.5,0),new _e(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Un(r,0,Math.PI*2);const s=[],o=[],a=[],c=[],A=[],h=1/t,f=new G,d=new _e,m=new G,E=new G,x=new G;let C=0,p=0;for(let I=0;I<=e.length-1;I++)switch(I){case 0:C=e[I+1].x-e[I].x,p=e[I+1].y-e[I].y,m.x=p*1,m.y=-C,m.z=p*0,x.copy(m),m.normalize(),c.push(m.x,m.y,m.z);break;case e.length-1:c.push(x.x,x.y,x.z);break;default:C=e[I+1].x-e[I].x,p=e[I+1].y-e[I].y,m.x=p*1,m.y=-C,m.z=p*0,E.copy(m),m.x+=x.x,m.y+=x.y,m.z+=x.z,m.normalize(),c.push(m.x,m.y,m.z),x.copy(E)}for(let I=0;I<=t;I++){const y=i+I*h*r,B=Math.sin(y),R=Math.cos(y);for(let M=0;M<=e.length-1;M++){f.x=e[M].x*B,f.y=e[M].y,f.z=e[M].x*R,o.push(f.x,f.y,f.z),d.x=I/t,d.y=M/(e.length-1),a.push(d.x,d.y);const T=c[3*M+0]*B,P=c[3*M+1],K=c[3*M+0]*R;A.push(T,P,K)}}for(let I=0;I0&&y(!0),t>0&&y(!1)),this.setIndex(h),this.setAttribute("position",new st(f,3)),this.setAttribute("normal",new st(d,3)),this.setAttribute("uv",new st(m,2));function I(){const B=new G,R=new G;let M=0;const T=(t-e)/i;for(let P=0;P<=s;P++){const K=[],w=P/s,b=w*(t-e)+e;for(let q=0;q<=r;q++){const de=q/r,Y=de*c+a,ie=Math.sin(Y),te=Math.cos(Y);R.x=b*ie,R.y=-w*i+C,R.z=b*te,f.push(R.x,R.y,R.z),B.set(ie,T,te).normalize(),d.push(B.x,B.y,B.z),m.push(de,1-w),K.push(E++)}x.push(K)}for(let P=0;P.9&&T<.1&&(y<.2&&(o[I+0]+=1),B<.2&&(o[I+2]+=1),R<.2&&(o[I+4]+=1))}}function d(I){s.push(I.x,I.y,I.z)}function m(I,y){const B=I*3;y.x=e[B+0],y.y=e[B+1],y.z=e[B+2]}function E(){const I=new G,y=new G,B=new G,R=new G,M=new _e,T=new _e,P=new _e;for(let K=0,w=0;K80*t){a=A=n[0],c=h=n[1];for(let E=t;EA&&(A=f),d>h&&(h=d);m=Math.max(A-a,h-c),m=m!==0?32767/m:0}return xh(s,o,t,a,c,m,0),o}};function qQ(n,e,t,i,r){let s,o;if(r===Jk(n,e,t,i)>0)for(s=e;s=e;s-=i)o=G_(s,n[s],n[s+1],o);return o&&im(o,o.next)&&(_h(o),o=o.next),o}function Vl(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(im(t,t.next)||Rn(t.prev,t,t.next)===0)){if(_h(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function xh(n,e,t,i,r,s,o){if(!n)return;!o&&s&&Hk(n,i,r,s);let a=n,c,A;for(;n.prev!==n.next;){if(c=n.prev,A=n.next,s?Nk(n,i,r,s):bk(n)){e.push(c.i/t|0),e.push(n.i/t|0),e.push(A.i/t|0),_h(n),n=A.next,a=A.next;continue}if(n=A,n===a){o?o===1?(n=Lk(Vl(n),e,t),xh(n,e,t,i,r,s,2)):o===2&&Pk(n,e,t,i,r,s):xh(Vl(n),e,t,i,r,s,1);break}}}function bk(n){const e=n.prev,t=n,i=n.next;if(Rn(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,a=e.y,c=t.y,A=i.y,h=rs?r>o?r:o:s>o?s:o,m=a>c?a>A?a:A:c>A?c:A;let E=i.next;for(;E!==e;){if(E.x>=h&&E.x<=d&&E.y>=f&&E.y<=m&&tu(r,a,s,c,o,A,E.x,E.y)&&Rn(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function Nk(n,e,t,i){const r=n.prev,s=n,o=n.next;if(Rn(r,s,o)>=0)return!1;const a=r.x,c=s.x,A=o.x,h=r.y,f=s.y,d=o.y,m=ac?a>A?a:A:c>A?c:A,C=h>f?h>d?h:d:f>d?f:d,p=wy(m,E,e,t,i),I=wy(x,C,e,t,i);let y=n.prevZ,B=n.nextZ;for(;y&&y.z>=p&&B&&B.z<=I;){if(y.x>=m&&y.x<=x&&y.y>=E&&y.y<=C&&y!==r&&y!==o&&tu(a,h,c,f,A,d,y.x,y.y)&&Rn(y.prev,y,y.next)>=0||(y=y.prevZ,B.x>=m&&B.x<=x&&B.y>=E&&B.y<=C&&B!==r&&B!==o&&tu(a,h,c,f,A,d,B.x,B.y)&&Rn(B.prev,B,B.next)>=0))return!1;B=B.nextZ}for(;y&&y.z>=p;){if(y.x>=m&&y.x<=x&&y.y>=E&&y.y<=C&&y!==r&&y!==o&&tu(a,h,c,f,A,d,y.x,y.y)&&Rn(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;B&&B.z<=I;){if(B.x>=m&&B.x<=x&&B.y>=E&&B.y<=C&&B!==r&&B!==o&&tu(a,h,c,f,A,d,B.x,B.y)&&Rn(B.prev,B,B.next)>=0)return!1;B=B.nextZ}return!0}function Lk(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!im(r,s)&&jQ(r,i,i.next,s)&&Bh(r,s)&&Bh(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),_h(i),_h(i.next),i=n=s),i=i.next}while(i!==n);return Vl(i)}function Pk(n,e,t,i,r,s){let o=n;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&Wk(o,a)){let c=ZQ(o,a);o=Vl(o,o.next),c=Vl(c,c.next),xh(o,e,t,i,r,s,0),xh(c,e,t,i,r,s,0);return}a=a.next}o=o.next}while(o!==n)}function Uk(n,e,t,i){const r=[];let s,o,a,c,A;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){const d=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=s&&d>i&&(i=d,r=t.x=t.x&&t.x>=c&&s!==t.x&&tu(or.x||t.x===r.x&&Ok(r,t)))&&(r=t,h=f)),t=t.next;while(t!==a);return r}function Ok(n,e){return Rn(n.prev,n,e.prev)<0&&Rn(e.next,n,n.next)<0}function Hk(n,e,t,i){let r=n;do r.z===0&&(r.z=wy(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,zk(r)}function zk(n){let e,t,i,r,s,o,a,c,A=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||c>0&&i;)a!==0&&(c===0||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,c--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,A*=2}while(o>1);return n}function wy(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function Vk(n){let e=n,t=n;do(e.x=(n-o)*(s-a)&&(n-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(r-o)*(i-a)}function Wk(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!Yk(n,e)&&(Bh(n,e)&&Bh(e,n)&&Xk(n,e)&&(Rn(n.prev,n,e.prev)||Rn(n,e.prev,e))||im(n,e)&&Rn(n.prev,n,n.next)>0&&Rn(e.prev,e,e.next)>0)}function Rn(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function im(n,e){return n.x===e.x&&n.y===e.y}function jQ(n,e,t,i){const r=Yd(Rn(n,e,t)),s=Yd(Rn(n,e,i)),o=Yd(Rn(t,i,n)),a=Yd(Rn(t,i,e));return!!(r!==s&&o!==a||r===0&&Wd(n,t,e)||s===0&&Wd(n,i,e)||o===0&&Wd(t,n,i)||a===0&&Wd(t,e,i))}function Wd(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function Yd(n){return n>0?1:n<0?-1:0}function Yk(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&jQ(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function Bh(n,e){return Rn(n.prev,n,n.next)<0?Rn(n,e,n.next)>=0&&Rn(n,n.prev,e)>=0:Rn(n,e,n.prev)<0||Rn(n,n.next,e)<0}function Xk(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function ZQ(n,e){const t=new My(n.i,n.x,n.y),i=new My(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function G_(n,e,t,i){const r=new My(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function _h(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function My(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Jk(n,e,t,i){let r=0;for(let s=e,o=t-i;s2&&n[e-1].equals(n[0])&&n.pop()}function H_(n,e){for(let t=0;tNumber.EPSILON){const Qe=Math.sqrt(be),Xe=Math.sqrt(D*D+re*re),ze=Ee.x-S/Qe,qe=Ee.y+Z/Qe,at=ne.x-re/Xe,Ct=ne.y+D/Xe,Le=((at-ze)*re-(Ct-qe)*D)/(Z*re-S*D);le=ze+Z*Le-H.x,fe=qe+S*Le-H.y;const Dt=le*le+fe*fe;if(Dt<=2)return new _e(le,fe);Te=Math.sqrt(Dt/2)}else{let Qe=!1;Z>Number.EPSILON?D>Number.EPSILON&&(Qe=!0):Z<-Number.EPSILON?D<-Number.EPSILON&&(Qe=!0):Math.sign(S)===Math.sign(re)&&(Qe=!0),Qe?(le=-S,fe=Z,Te=Math.sqrt(be)):(le=Z,fe=S,Te=Math.sqrt(be/2))}return new _e(le/Te,fe/Te)}const $=[];for(let H=0,Ee=Y.length,ne=Ee-1,le=H+1;H=0;H--){const Ee=H/C,ne=m*Math.cos(Ee*Math.PI/2),le=E*Math.sin(Ee*Math.PI/2)+x;for(let fe=0,Te=Y.length;fe=0;){const le=ne;let fe=ne-1;fe<0&&(fe=H.length-1);for(let Te=0,Z=h+C*2;Te0)&&m.push(y,B,M),(p!==i-1||c0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class iR extends hi{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Je(16777215),this.specular=new Je(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ra,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Uh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class rR extends hi{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Je(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ra,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class sR extends hi{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ra,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class oR extends hi{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Je(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Je(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ra,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Uh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class aR extends hi{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Je(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ra,this.normalScale=new _e(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class lR extends Ji{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function Ml(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function cR(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function uR(n){function e(r,s){return n[r]-n[s]}const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function Qy(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const a=t[s]*e;for(let c=0;c!==e;++c)r[o++]=n[a+c]}return r}function yv(n,e,t,i){let r=1,s=n[0];for(;s!==void 0&&s[i]===void 0;)s=n[r++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&&(e.push(s.time),t.push.apply(t,o)),s=n[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++];while(s!==void 0);else do o=s[i],o!==void 0&&(e.push(s.time),t.push(o)),s=n[r++];while(s!==void 0)}function Zk(n,e,t,i,r=30){const s=n.clone();s.name=e;const o=[];for(let c=0;c=i)){f.push(A.times[m]);for(let x=0;xs.tracks[c].times[0]&&(a=s.tracks[c].times[0]);for(let c=0;c=a.times[E]){const p=E*f+h,I=p+f-h;x=a.values.slice(p,I)}else{const p=a.createInterpolant(),I=h,y=f-h;p.evaluate(s),x=p.resultBuffer.slice(I,y)}c==="quaternion"&&new Wi().fromArray(x).normalize().conjugate().toArray(x);const C=A.times.length;for(let p=0;p=s)){const a=t[1];e=s)break t}o=i,i=0;break n}break e}for(;i>>1;et;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){const c=i[a];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,c),e=!1;break}if(o!==null&&o>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,c,o),e=!1;break}o=c}if(r!==void 0&&cR(r))for(let a=0,c=r.length;a!==c;++a){const A=r[a];if(isNaN(A)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,A),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===Rp,s=e.length-1;let o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*i,c=o*i,A=0;A!==i;++A)t[c+A]=t[a+A];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}fs.prototype.TimeBufferType=Float32Array;fs.prototype.ValueBufferType=Float32Array;fs.prototype.DefaultInterpolation=dh;class Jl extends fs{}Jl.prototype.ValueTypeName="bool";Jl.prototype.ValueBufferType=Array;Jl.prototype.DefaultInterpolation=fh;Jl.prototype.InterpolantFactoryMethodLinear=void 0;Jl.prototype.InterpolantFactoryMethodSmooth=void 0;class Iv extends fs{}Iv.prototype.ValueTypeName="color";class Sh extends fs{}Sh.prototype.ValueTypeName="number";class fR extends Yh{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=(i-t)/(r-t);let A=e*a;for(let h=A+a;A!==h;A+=4)Wi.slerpFlat(s,0,o,A-a,o,A,c);return s}}class Ru extends fs{InterpolantFactoryMethodLinear(e){return new fR(this.times,this.values,this.getValueSize(),e)}}Ru.prototype.ValueTypeName="quaternion";Ru.prototype.DefaultInterpolation=dh;Ru.prototype.InterpolantFactoryMethodSmooth=void 0;class Kl extends fs{}Kl.prototype.ValueTypeName="string";Kl.prototype.ValueBufferType=Array;Kl.prototype.DefaultInterpolation=fh;Kl.prototype.InterpolantFactoryMethodLinear=void 0;Kl.prototype.InterpolantFactoryMethodSmooth=void 0;class wh extends fs{}wh.prototype.ValueTypeName="vector";class Mh{constructor(e,t=-1,i,r=Og){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=xr(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(n8(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(fs.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let a=0;a1){const f=h[1];let d=r[f];d||(r[f]=d=[]),d.push(A)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(f,d,m,E,x){if(m.length!==0){const C=[],p=[];yv(m,C,p,E),C.length!==0&&x.push(new f(d,C,p))}},r=[],s=e.name||"default",o=e.fps||30,a=e.blendMode;let c=e.length||-1;const A=e.hierarchy||[];for(let f=0;f{t&&t(s),this.manager.itemEnd(e)},0),s;if($s[e]!==void 0){$s[e].push({onLoad:t,onProgress:i,onError:r});return}$s[e]=[],$s[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,c=this.responseType;fetch(o).then(A=>{if(A.status===200||A.status===0){if(A.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||A.body===void 0||A.body.getReader===void 0)return A;const h=$s[e],f=A.body.getReader(),d=A.headers.get("Content-Length")||A.headers.get("X-File-Size"),m=d?parseInt(d):0,E=m!==0;let x=0;const C=new ReadableStream({start(p){I();function I(){f.read().then(({done:y,value:B})=>{if(y)p.close();else{x+=B.byteLength;const R=new ProgressEvent("progress",{lengthComputable:E,loaded:x,total:m});for(let M=0,T=h.length;M{switch(c){case"arraybuffer":return A.arrayBuffer();case"blob":return A.blob();case"document":return A.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return A.json();default:if(a===void 0)return A.text();{const f=/charset="?([^;"\s]*)"?/i.exec(a),d=f&&f[1]?f[1].toLowerCase():void 0,m=new TextDecoder(d);return A.arrayBuffer().then(E=>m.decode(E))}}}).then(A=>{co.add(e,A);const h=$s[e];delete $s[e];for(let f=0,d=h.length;f{const h=$s[e];if(h===void 0)throw this.manager.itemError(e),A;delete $s[e];for(let f=0,d=h.length;f{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class r8 extends Ki{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Ls(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{t(s.parse(JSON.parse(a)))}catch(c){r?r(c):console.error(c),s.manager.itemError(e)}},i,r)}parse(e){const t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=new Je().setHex(o.value);break;case"v2":r.uniforms[s].value=new _e().fromArray(o.value);break;case"v3":r.uniforms[s].value=new G().fromArray(o.value);break;case"v4":r.uniforms[s].value=new an().fromArray(o.value);break;case"m3":r.uniforms[s].value=new wt().fromArray(o.value);break;case"m4":r.uniforms[s].value=new ft().fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=i(e.map)),e.matcap!==void 0&&(r.matcap=i(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),r.normalScale=new _e().fromArray(s)}return e.displacementMap!==void 0&&(r.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=i(e.envMap)),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new _e().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){const t={ShadowMaterial:eR,SpriteMaterial:uv,RawShaderMaterial:tR,ShaderMaterial:us,PointsMaterial:hv,MeshPhysicalMaterial:nR,MeshStandardMaterial:Cv,MeshPhongMaterial:iR,MeshToonMaterial:rR,MeshNormalMaterial:sR,MeshLambertMaterial:oR,MeshDepthMaterial:Wg,MeshDistanceMaterial:Yg,MeshBasicMaterial:or,MeshMatcapMaterial:aR,LineDashedMaterial:lR,LineBasicMaterial:Ji,Material:hi};return new t[e]}}class Ry{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,r=e.length;i0){const c=new xv(t);s=new Qh(c),s.setCrossOrigin(this.crossOrigin);for(let A=0,h=e.length;A0){r=new Qh(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;o{const C=new ti;C.min.fromArray(x.boxMin),C.max.fromArray(x.boxMax);const p=new ui;return p.radius=x.sphereRadius,p.center.fromArray(x.sphereCenter),{boxInitialized:x.boxInitialized,box:C,sphereInitialized:x.sphereInitialized,sphere:p}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=A(e.matricesTexture.uuid);break;case"LOD":o=new FQ;break;case"Line":o=new Sa(a(e.geometry),c(e.material));break;case"LineLoop":o=new HQ(a(e.geometry),c(e.material));break;case"LineSegments":o=new Ps(a(e.geometry),c(e.material));break;case"PointCloud":case"Points":o=new zQ(a(e.geometry),c(e.material));break;case"Sprite":o=new UQ(c(e.material));break;case"Group":o=new Gr;break;case"Bone":o=new Av;break;default:o=new $t}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const d=e.children;for(let m=0;m"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=co.get(e);if(o!==void 0){if(s.manager.itemStart(e),o.then){o.then(A=>{t&&t(A),s.manager.itemEnd(e)}).catch(A=>{r&&r(A)});return}return setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const c=fetch(e,a).then(function(A){return A.blob()}).then(function(A){return createImageBitmap(A,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(A){return co.add(e,A),t&&t(A),s.manager.itemEnd(e),A}).catch(function(A){r&&r(A),co.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});co.add(e,c),s.manager.itemStart(e)}}let Xd;class Sv{static getContext(){return Xd===void 0&&(Xd=new(window.AudioContext||window.webkitAudioContext)),Xd}static setContext(e){Xd=e}}class d8 extends Ki{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Ls(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(c){try{const A=c.slice(0);Sv.getContext().decodeAudioData(A,function(f){t(f)}).catch(a)}catch(A){a(A)}},i,r);function a(c){r?r(c):console.error(c),s.manager.itemError(e)}}}const q_=new ft,j_=new ft,sl=new ft;class p8{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new $n,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new $n,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,sl.copy(e.projectionMatrix);const r=t.eyeSep/2,s=r*t.near/t.focus,o=t.near*Math.tan(Dl*t.fov*.5)/t.zoom;let a,c;j_.elements[12]=-r,q_.elements[12]=r,a=-o*t.aspect+s,c=o*t.aspect+s,sl.elements[0]=2*t.near/(c-a),sl.elements[8]=(c+a)/(c-a),this.cameraL.projectionMatrix.copy(sl),a=-o*t.aspect-s,c=o*t.aspect-s,sl.elements[0]=2*t.near/(c-a),sl.elements[8]=(c+a)/(c-a),this.cameraR.projectionMatrix.copy(sl)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(j_),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(q_)}}class wv{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Z_(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=Z_();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function Z_(){return(typeof performance>"u"?Date:performance).now()}const ol=new G,$_=new Wi,g8=new G,al=new G;class m8 extends $t{constructor(){super(),this.type="AudioListener",this.context=Sv.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new wv}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(ol,$_,g8),al.set(0,0,-1).applyQuaternion($_),t.positionX){const r=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(ol.x,r),t.positionY.linearRampToValueAtTime(ol.y,r),t.positionZ.linearRampToValueAtTime(ol.z,r),t.forwardX.linearRampToValueAtTime(al.x,r),t.forwardY.linearRampToValueAtTime(al.y,r),t.forwardZ.linearRampToValueAtTime(al.z,r),t.upX.linearRampToValueAtTime(i.x,r),t.upY.linearRampToValueAtTime(i.y,r),t.upZ.linearRampToValueAtTime(i.z,r)}else t.setPosition(ol.x,ol.y,ol.z),t.setOrientation(al.x,al.y,al.z,i.x,i.y,i.z)}}class _R extends $t{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let c=t,A=t+t;c!==A;++c)if(i[c]!==i[c+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let s=i,o=r;s!==o;++s)t[s]=t[r+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let o=0;o!==s;++o)e[t+o]=e[i+o]}_slerp(e,t,i,r){Wi.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,s){const o=this._workIndex*s;Wi.multiplyQuaternionsFlat(e,o,e,t,e,i),Wi.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,i,r,s){const o=1-r;for(let a=0;a!==s;++a){const c=t+a;e[c]=e[c]*o+e[i+a]*r}}_lerpAdditive(e,t,i,r,s){for(let o=0;o!==s;++o){const a=t+o;e[a]=e[a]+e[i+o]*r}}}const Mv="\\[\\]\\.:\\/",v8=new RegExp("["+Mv+"]","g"),Qv="[^"+Mv+"]",I8="[^"+Mv.replace("\\.","")+"]",x8=/((?:WC+[\/:])*)/.source.replace("WC",Qv),B8=/(WCOD+)?/.source.replace("WCOD",I8),_8=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Qv),S8=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Qv),w8=new RegExp("^"+x8+B8+_8+S8+"$"),M8=["material","materials","bones","map"];class Q8{constructor(e,t,i){const r=i||Yt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class Yt{constructor(e,t,i){this.path=t,this.parsedPath=i||Yt.parseTrackName(t),this.node=Yt.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new Yt.Composite(e,t,i):new Yt(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(v8,"")}static parseTrackName(e){const t=w8.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=i.nodeName.substring(r+1);M8.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(s){for(let o=0;o=s){const f=s++,d=e[f];t[d.uuid]=h,e[h]=d,t[A]=f,e[f]=c;for(let m=0,E=r;m!==E;++m){const x=i[m],C=x[f],p=x[h];x[h]=C,x[f]=p}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let s=this.nCachedObjects_,o=e.length;for(let a=0,c=arguments.length;a!==c;++a){const A=arguments[a],h=A.uuid,f=t[h];if(f!==void 0)if(delete t[h],f0&&(t[m.uuid]=f),e[f]=m,e.pop();for(let E=0,x=r;E!==x;++E){const C=i[E];C[f]=C[d],C.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const s=this._bindings;if(r!==void 0)return s[r];const o=this._paths,a=this._parsedPaths,c=this._objects,A=c.length,h=this.nCachedObjects_,f=new Array(A);r=s.length,i[e]=r,o.push(e),a.push(t),s.push(f);for(let d=h,m=c.length;d!==m;++d){const E=c[d];f[d]=new Yt(E,e,t)}return f}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,c=o[a],A=e[a];t[A]=i,o[i]=c,o.pop(),s[i]=s[a],s.pop(),r[i]=r[a],r.pop()}}}class wR{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const s=t.tracks,o=s.length,a=new Array(o),c={endingStart:_l,endingEnd:_l};for(let A=0;A!==o;++A){const h=s[A].createInterpolant(null);a[A]=h,h.settings=c}this._interpolantSettings=c,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=lQ,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const r=this._clip.duration,s=e._clip.duration,o=s/r,a=r/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,s=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const c=a.parameterPositions,A=a.sampleValues;return c[0]=s,c[1]=s+i,A[0]=e/o,A[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const c=(e-s)*i;c<0||i===0?t=0:(this._startTime=null,t=i*c)}t*=this._updateTimeScale(e);const o=this._updateTime(t),a=this._updateWeight(e);if(a>0){const c=this._interpolants,A=this._propertyBindings;switch(this.blendMode){case Z1:for(let h=0,f=c.length;h!==f;++h)c[h].evaluate(o),A[h].accumulateAdditive(a);break;case Og:default:for(let h=0,f=c.length;h!==f;++h)c[h].evaluate(o),A[h].accumulate(r,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,s=this._loopCount;const o=i===cQ;if(e===0)return s===-1?r:o&&(s&1)===1?t-r:r;if(i===aQ){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=t||r<0){const a=Math.floor(r/t);r-=t*a,s+=Math.abs(a);const c=this.repetitions-s;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){const A=e<0;this._setEndings(A,!A,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&(s&1)===1)return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=Sl,r.endingEnd=Sl):(e?r.endingStart=this.zeroSlopeAtStart?Sl:_l:r.endingStart=ph,t?r.endingEnd=this.zeroSlopeAtEnd?Sl:_l:r.endingEnd=ph)}_scheduleFading(e,t,i){const r=this._mixer,s=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,c=o.sampleValues;return a[0]=s,c[0]=t,a[1]=s+e,c[1]=i,this}}const T8=new Float32Array(1);class D8 extends Co{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,s=r.length,o=e._propertyBindings,a=e._interpolants,c=i.uuid,A=this._bindingsByRootAndName;let h=A[c];h===void 0&&(h={},A[c]=h);for(let f=0;f!==s;++f){const d=r[f],m=d.name;let E=h[m];if(E!==void 0)++E.referenceCount,o[f]=E;else{if(E=o[f],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,c,m));continue}const x=t&&t._propertyBindings[f].binding.parsedPath;E=new SR(Yt.create(i,m,x),d.ValueTypeName,d.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,c,m),o[f]=E}a[f].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,r=e._clip.uuid,s=this._actionsByClip[r];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,r,i)}const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let A=0;A!==i;++A)t[A]._update(r,e,s,o);const a=this._bindings,c=this._nActiveBindings;for(let A=0;A!==c;++A)a[A].apply(o);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,nS).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const iS=new G,Jd=new G;class k8{constructor(e=new G,t=new G){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){iS.subVectors(e,this.start),Jd.subVectors(this.end,this.start);const i=Jd.dot(Jd);let s=Jd.dot(iS)/i;return t&&(s=Un(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const rS=new G;class G8 extends $t{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new Tt,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,a=1,c=32;o1)for(let f=0;f.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{cS.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(cS,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class $8 extends Ps{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Tt;r.setAttribute("position",new st(t,3)),r.setAttribute("color",new st(i,3));const s=new Ji({vertexColors:!0,toneMapped:!1});super(r,s),this.type="AxesHelper"}setColors(e,t,i){const r=new Je,s=this.geometry.attributes.color.array;return r.set(e),r.toArray(s,0),r.toArray(s,3),r.set(t),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ea{constructor(){this.type="ShapePath",this.color=new Je,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new ya,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,s,o){return this.currentPath.bezierCurveTo(e,t,i,r,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(p){const I=[];for(let y=0,B=p.length;yNumber.EPSILON){if(w<0&&(T=I[M],K=-K,P=I[R],w=-w),p.yP.y)continue;if(p.y===T.y){if(p.x===T.x)return!0}else{const b=w*(p.x-T.x)-K*(p.y-T.y);if(b===0)return!0;if(b<0)continue;B=!B}}else{if(p.y!==T.y)continue;if(P.x<=p.x&&p.x<=T.x||T.x<=p.x&&p.x<=P.x)return!0}}return B}const r=as.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,c;const A=[];if(s.length===1)return a=s[0],c=new va,c.curves=a.curves,A.push(c),A;let h=!r(s[0].getPoints());h=e?!h:h;const f=[],d=[];let m=[],E=0,x;d[E]=void 0,m[E]=[];for(let p=0,I=s.length;p1){let p=!1,I=0;for(let y=0,B=d.length;y0&&p===!1&&(m=f)}let C;for(let p=0,I=d.length;p{const f=typeof A=="function"?A(e):A;if(f!==e){const d=e;e=h?f:Object.assign({},e,f),t.forEach(m=>m(e,d))}},r=()=>e,s=(A,h=r,f=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let d=h(e);function m(){const E=h(e);if(!f(d,E)){const x=d;A(d=E,x)}}return t.add(m),()=>t.delete(m)},c={setState:i,getState:r,subscribe:(A,h,f)=>h||f?s(A,h,f):(t.add(A),()=>t.delete(A)),destroy:()=>t.clear()};return e=n(i,r,c),c}const O8=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),tS=O8?$.useEffect:$.useLayoutEffect;function mR(n){const e=typeof n=="function"?G8(n):n,t=(i=e.getState,r=Object.is)=>{const[,s]=$.useReducer(C=>C+1,0),o=e.getState(),a=$.useRef(o),c=$.useRef(i),A=$.useRef(r),h=$.useRef(!1),f=$.useRef();f.current===void 0&&(f.current=i(o));let d,m=!1;(a.current!==o||c.current!==i||A.current!==r||h.current)&&(d=i(o),m=!r(f.current,d)),tS(()=>{m&&(f.current=d),a.current=o,c.current=i,A.current=r,h.current=!1});const E=$.useRef(o);tS(()=>{const C=()=>{try{const I=e.getState(),y=c.current(I);A.current(f.current,y)||(a.current=I,f.current=y,s())}catch{h.current=!0,s()}},g=e.subscribe(C);return e.getState()!==E.current&&C(),g},[]);const x=m?d:f.current;return $.useDebugValue(x),x};return Object.assign(t,e),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,e];return{next(){const r=i.length<=0;return{value:i.shift(),done:r}}}},t}var ER={exports:{}},CR={exports:{}},yR={};/** + */ql.ConcurrentRoot=1;ql.ContinuousEventPriority=4;ql.DefaultEventPriority=16;ql.DiscreteEventPriority=1;ql.IdleEventPriority=536870912;ql.LegacyRoot=0;RR.exports=ql;var nu=RR.exports;function t5(n){let e;const t=new Set,i=(A,h)=>{const f=typeof A=="function"?A(e):A;if(f!==e){const d=e;e=h?f:Object.assign({},e,f),t.forEach(m=>m(e,d))}},r=()=>e,s=(A,h=r,f=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let d=h(e);function m(){const E=h(e);if(!f(d,E)){const x=d;A(d=E,x)}}return t.add(m),()=>t.delete(m)},c={setState:i,getState:r,subscribe:(A,h,f)=>h||f?s(A,h,f):(t.add(A),()=>t.delete(A)),destroy:()=>t.clear()};return e=n(i,r,c),c}const n5=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),uS=n5?J.useEffect:J.useLayoutEffect;function TR(n){const e=typeof n=="function"?t5(n):n,t=(i=e.getState,r=Object.is)=>{const[,s]=J.useReducer(C=>C+1,0),o=e.getState(),a=J.useRef(o),c=J.useRef(i),A=J.useRef(r),h=J.useRef(!1),f=J.useRef();f.current===void 0&&(f.current=i(o));let d,m=!1;(a.current!==o||c.current!==i||A.current!==r||h.current)&&(d=i(o),m=!r(f.current,d)),uS(()=>{m&&(f.current=d),a.current=o,c.current=i,A.current=r,h.current=!1});const E=J.useRef(o);uS(()=>{const C=()=>{try{const I=e.getState(),y=c.current(I);A.current(f.current,y)||(a.current=I,f.current=y,s())}catch{h.current=!0,s()}},p=e.subscribe(C);return e.getState()!==E.current&&C(),p},[]);const x=m?d:f.current;return J.useDebugValue(x),x};return Object.assign(t,e),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,e];return{next(){const r=i.length<=0;return{value:i.shift(),done:r}}}},t}var DR={exports:{}},bR={exports:{}},NR={};/** * @license React * scheduler.production.min.js * @@ -3816,7 +3816,7 @@ void main() { * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(n){function e(U,Z){var ee=U.length;U.push(Z);e:for(;0>>1,ye=U[ue];if(0>>1;uer(O,ee))kr(F,O)?(U[ue]=F,U[k]=ee,ue=k):(U[ue]=O,U[V]=ee,ue=V);else if(kr(F,ee))U[ue]=F,U[k]=ee,ue=k;else break e}}return Z}function r(U,Z){var ee=U.sortIndex-Z.sortIndex;return ee!==0?ee:U.id-Z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var c=[],A=[],h=1,f=null,d=3,m=!1,E=!1,x=!1,C=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(U){for(var Z=t(A);Z!==null;){if(Z.callback===null)i(A);else if(Z.startTime<=U)i(A),Z.sortIndex=Z.expirationTime,e(c,Z);else break;Z=t(A)}}function B(U){if(x=!1,y(U),!E)if(t(c)!==null)E=!0,re(R);else{var Z=t(A);Z!==null&&fe(B,Z.startTime-U)}}function R(U,Z){E=!1,x&&(x=!1,g(P),P=-1),m=!0;var ee=d;try{for(y(Z),f=t(c);f!==null&&(!(f.expirationTime>Z)||U&&!b());){var ue=f.callback;if(typeof ue=="function"){f.callback=null,d=f.priorityLevel;var ye=ue(f.expirationTime<=Z);Z=n.unstable_now(),typeof ye=="function"?f.callback=ye:f===t(c)&&i(c),y(Z)}else i(c);f=t(c)}if(f!==null)var ke=!0;else{var V=t(A);V!==null&&fe(B,V.startTime-Z),ke=!1}return ke}finally{f=null,d=ee,m=!1}}var w=!1,T=null,P=-1,J=5,M=-1;function b(){return!(n.unstable_now()-MU||125ue?(U.sortIndex=ee,e(A,U),t(c)===null&&U===t(A)&&(x?(g(P),P=-1):x=!0,fe(B,ee-ue))):(U.sortIndex=ye,e(c,U),E||m||(E=!0,re(R))),U},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(U){var Z=d;return function(){var ee=d;d=Z;try{return U.apply(this,arguments)}finally{d=ee}}}})(yR);CR.exports=yR;var By=CR.exports;/** + */(function(n){function e(U,$){var ee=U.length;U.push($);e:for(;0>>1,ye=U[Ae];if(0>>1;Aer(O,ee))kr(F,O)?(U[Ae]=F,U[k]=ee,Ae=k):(U[Ae]=O,U[V]=ee,Ae=V);else if(kr(F,ee))U[Ae]=F,U[k]=ee,Ae=k;else break e}}return $}function r(U,$){var ee=U.sortIndex-$.sortIndex;return ee!==0?ee:U.id-$.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;n.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();n.unstable_now=function(){return o.now()-a}}var c=[],A=[],h=1,f=null,d=3,m=!1,E=!1,x=!1,C=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(U){for(var $=t(A);$!==null;){if($.callback===null)i(A);else if($.startTime<=U)i(A),$.sortIndex=$.expirationTime,e(c,$);else break;$=t(A)}}function B(U){if(x=!1,y(U),!E)if(t(c)!==null)E=!0,te(R);else{var $=t(A);$!==null&&ue(B,$.startTime-U)}}function R(U,$){E=!1,x&&(x=!1,p(P),P=-1),m=!0;var ee=d;try{for(y($),f=t(c);f!==null&&(!(f.expirationTime>$)||U&&!b());){var Ae=f.callback;if(typeof Ae=="function"){f.callback=null,d=f.priorityLevel;var ye=Ae(f.expirationTime<=$);$=n.unstable_now(),typeof ye=="function"?f.callback=ye:f===t(c)&&i(c),y($)}else i(c);f=t(c)}if(f!==null)var ke=!0;else{var V=t(A);V!==null&&ue(B,V.startTime-$),ke=!1}return ke}finally{f=null,d=ee,m=!1}}var M=!1,T=null,P=-1,K=5,w=-1;function b(){return!(n.unstable_now()-wU||125Ae?(U.sortIndex=ee,e(A,U),t(c)===null&&U===t(A)&&(x?(p(P),P=-1):x=!0,ue(B,ee-Ae))):(U.sortIndex=ye,e(c,U),E||m||(E=!0,te(R))),U},n.unstable_shouldYield=b,n.unstable_wrapCallback=function(U){var $=d;return function(){var ee=d;d=$;try{return U.apply(this,arguments)}finally{d=ee}}}})(NR);bR.exports=NR;var Dy=bR.exports;/** * @license React * react-reconciler.production.min.js * @@ -3824,19 +3824,19 @@ void main() { * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var H8=function(e){var t={},i=$,r=By,s=Object.assign;function o(l){for(var u="https://reactjs.org/docs/error-decoder.html?invariant="+l,p=1;ple||_[W]!==Q[le]){var Re=` -`+_[W].replace(" at new "," at ");return l.displayName&&Re.includes("")&&(Re=Re.replace("",l.displayName)),Re}while(1<=W&&0<=le);break}}}finally{It=!1,Error.prepareStackTrace=p}return(l=l?l.displayName||l.name:"")?St(l):""}var mn=Object.prototype.hasOwnProperty,Vn=[],$t=-1;function Wn(l){return{current:l}}function Et(l){0>$t||(l.current=Vn[$t],Vn[$t]=null,$t--)}function et(l,u){$t++,Vn[$t]=l.current,l.current=u}var Ei={},yt=Wn(Ei),un=Wn(!1),ar=Ei;function N(l,u){var p=l.type.contextTypes;if(!p)return Ei;var v=l.stateNode;if(v&&v.__reactInternalMemoizedUnmaskedChildContext===u)return v.__reactInternalMemoizedMaskedChildContext;var _={},Q;for(Q in p)_[Q]=u[Q];return v&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=u,l.__reactInternalMemoizedMaskedChildContext=_),_}function L(l){return l=l.childContextTypes,l!=null}function q(){Et(un),Et(yt)}function oe(l,u,p){if(yt.current!==Ei)throw Error(o(168));et(yt,u),et(un,p)}function pe(l,u,p){var v=l.stateNode;if(u=u.childContextTypes,typeof v.getChildContext!="function")return p;v=v.getChildContext();for(var _ in v)if(!(_ in u))throw Error(o(108,P(l)||"Unknown",_));return s({},p,v)}function we(l){return l=(l=l.stateNode)&&l.__reactInternalMemoizedMergedChildContext||Ei,ar=yt.current,et(yt,l),et(un,un.current),!0}function Pe(l,u,p){var v=l.stateNode;if(!v)throw Error(o(169));p?(l=pe(l,u,ar),v.__reactInternalMemoizedMergedChildContext=l,Et(un),Et(yt),et(yt,l)):Et(un),et(un,p)}var Ne=Math.clz32?Math.clz32:$e,Ve=Math.log,Oe=Math.LN2;function $e(l){return l>>>=0,l===0?32:31-(Ve(l)/Oe|0)|0}var ht=64,kt=4194304;function dn(l){switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return l&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return l}}function Ot(l,u){var p=l.pendingLanes;if(p===0)return 0;var v=0,_=l.suspendedLanes,Q=l.pingedLanes,W=p&268435455;if(W!==0){var le=W&~_;le!==0?v=dn(le):(Q&=W,Q!==0&&(v=dn(Q)))}else W=p&~_,W!==0?v=dn(W):Q!==0&&(v=dn(Q));if(v===0)return 0;if(u!==0&&u!==v&&!(u&_)&&(_=v&-v,Q=u&-u,_>=Q||_===16&&(Q&4194240)!==0))return u;if(v&4&&(v|=p&16),u=l.entangledLanes,u!==0)for(l=l.entanglements,u&=v;0p;p++)u.push(l);return u}function yo(l,u,p){l.pendingLanes|=u,u!==536870912&&(l.suspendedLanes=0,l.pingedLanes=0),l=l.eventTimes,u=31-Ne(u),l[u]=p}function $h(l,u){var p=l.pendingLanes&~u;l.pendingLanes=u,l.suspendedLanes=0,l.pingedLanes=0,l.expiredLanes&=u,l.mutableReadLanes&=u,l.entangledLanes&=u,u=l.entanglements;var v=l.eventTimes;for(l=l.expirationTimes;0>=W,_-=W,Hs=1<<32-Ne(u)+_|p<<_|v,zs=Q+l}else Hs=1<Kt?(oi=Qt,Qt=null):oi=Qt.sibling;var qt=mt(Ce,Qt,Me[Kt],je);if(qt===null){Qt===null&&(Qt=oi);break}l&&Qt&&qt.alternate===null&&u(Ce,Qt),Ae=Q(qt,Ae,Kt),Lt===null?ct=qt:Lt.sibling=qt,Lt=qt,Qt=oi}if(Kt===Me.length)return p(Ce,Qt),xn&&Fa(Ce,Kt),ct;if(Qt===null){for(;KtKt?(oi=Qt,Qt=null):oi=Qt.sibling;var Mo=mt(Ce,Qt,qt.value,je);if(Mo===null){Qt===null&&(Qt=oi);break}l&&Qt&&Mo.alternate===null&&u(Ce,Qt),Ae=Q(Mo,Ae,Kt),Lt===null?ct=Mo:Lt.sibling=Mo,Lt=Mo,Qt=oi}if(qt.done)return p(Ce,Qt),xn&&Fa(Ce,Kt),ct;if(Qt===null){for(;!qt.done;Kt++,qt=Me.next())qt=Mt(Ce,qt.value,je),qt!==null&&(Ae=Q(qt,Ae,Kt),Lt===null?ct=qt:Lt.sibling=qt,Lt=qt);return xn&&Fa(Ce,Kt),ct}for(Qt=v(Ce,Qt);!qt.done;Kt++,qt=Me.next())qt=An(Qt,Ce,Kt,qt.value,je),qt!==null&&(l&&qt.alternate!==null&&Qt.delete(qt.key===null?Kt:qt.key),Ae=Q(qt,Ae,Kt),Lt===null?ct=qt:Lt.sibling=qt,Lt=qt);return l&&Qt.forEach(function(C3){return u(Ce,C3)}),xn&&Fa(Ce,Kt),ct}function Nr(Ce,Ae,Me,je){if(typeof Me=="object"&&Me!==null&&Me.type===h&&Me.key===null&&(Me=Me.props.children),typeof Me=="object"&&Me!==null){switch(Me.$$typeof){case c:e:{for(var ct=Me.key,Lt=Ae;Lt!==null;){if(Lt.key===ct){if(ct=Me.type,ct===h){if(Lt.tag===7){p(Ce,Lt.sibling),Ae=_(Lt,Me.props.children),Ae.return=Ce,Ce=Ae;break e}}else if(Lt.elementType===ct||typeof ct=="object"&&ct!==null&&ct.$$typeof===y&&$v(ct)===Lt.type){p(Ce,Lt.sibling),Ae=_(Lt,Me.props),Ae.ref=Pu(Ce,Lt,Me),Ae.return=Ce,Ce=Ae;break e}p(Ce,Lt);break}else u(Ce,Lt);Lt=Lt.sibling}Me.type===h?(Ae=Wa(Me.props.children,Ce.mode,je,Me.key),Ae.return=Ce,Ce=Ae):(je=Hf(Me.type,Me.key,Me.props,null,Ce.mode,je),je.ref=Pu(Ce,Ae,Me),je.return=Ce,Ce=je)}return W(Ce);case A:e:{for(Lt=Me.key;Ae!==null;){if(Ae.key===Lt)if(Ae.tag===4&&Ae.stateNode.containerInfo===Me.containerInfo&&Ae.stateNode.implementation===Me.implementation){p(Ce,Ae.sibling),Ae=_(Ae,Me.children||[]),Ae.return=Ce,Ce=Ae;break e}else{p(Ce,Ae);break}else u(Ce,Ae);Ae=Ae.sibling}Ae=A0(Me,Ce.mode,je),Ae.return=Ce,Ce=Ae}return W(Ce);case y:return Lt=Me._init,Nr(Ce,Ae,Lt(Me._payload),je)}if(ce(Me))return ut(Ce,Ae,Me,je);if(w(Me))return Ii(Ce,Ae,Me,je);Af(Ce,Me)}return typeof Me=="string"&&Me!==""||typeof Me=="number"?(Me=""+Me,Ae!==null&&Ae.tag===6?(p(Ce,Ae.sibling),Ae=_(Ae,Me),Ae.return=Ce,Ce=Ae):(p(Ce,Ae),Ae=u0(Me,Ce.mode,je),Ae.return=Ce,Ce=Ae),W(Ce)):p(Ce,Ae)}return Nr}var tc=eI(!0),tI=eI(!1),Uu={},Rr=Wn(Uu),Fu=Wn(Uu),nc=Wn(Uu);function ms(l){if(l===Uu)throw Error(o(174));return l}function Mm(l,u){et(nc,u),et(Fu,l),et(Rr,Uu),l=fe(u),Et(Rr),et(Rr,l)}function ic(){Et(Rr),Et(Fu),Et(nc)}function nI(l){var u=ms(nc.current),p=ms(Rr.current);u=U(p,l.type,u),p!==u&&(et(Fu,l),et(Rr,u))}function Qm(l){Fu.current===l&&(Et(Rr),Et(Fu))}var wn=Wn(0);function hf(l){for(var u=l;u!==null;){if(u.tag===13){var p=u.memoizedState;if(p!==null&&(p=p.dehydrated,p===null||La(p)||fi(p)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!==void 0){if(u.flags&128)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break;for(;u.sibling===null;){if(u.return===null||u.return===l)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var Rm=[];function Tm(){for(var l=0;lp?p:4,l(!0);var v=Tr.transition;Tr.transition={};try{l(!1),u()}finally{Jt=p,Tr.transition=v}}function gI(){return Es().memoizedState}function YT(l,u,p){var v=_o(l);p={lane:v,action:p,hasEagerState:!1,eagerState:null,next:null},mI(l)?EI(u,p):(CI(l,u,p),p=Ni(),l=Dr(l,v,p),l!==null&&yI(l,u,v))}function XT(l,u,p){var v=_o(l),_={lane:v,action:p,hasEagerState:!1,eagerState:null,next:null};if(mI(l))EI(u,_);else{CI(l,u,_);var Q=l.alternate;if(l.lanes===0&&(Q===null||Q.lanes===0)&&(Q=u.lastRenderedReducer,Q!==null))try{var W=u.lastRenderedState,le=Q(W,p);if(_.hasEagerState=!0,_.eagerState=le,ds(le,W))return}catch{}finally{}p=Ni(),l=Dr(l,v,p),l!==null&&yI(l,u,v)}}function mI(l){var u=l.alternate;return l===bn||u!==null&&u===bn}function EI(l,u){ku=df=!0;var p=l.pending;p===null?u.next=u:(u.next=p.next,p.next=u),l.pending=u}function CI(l,u,p){Yn!==null&&l.mode&1&&!(Ut&2)?(l=u.interleaved,l===null?(p.next=p,gs===null?gs=[u]:gs.push(u)):(p.next=l.next,l.next=p),u.interleaved=p):(l=u.pending,l===null?p.next=p:(p.next=l.next,l.next=p),u.pending=p)}function yI(l,u,p){if(p&4194240){var v=u.lanes;v&=l.pendingLanes,p|=v,u.lanes=p,Am(l,p)}}var Cf={readContext:wr,useCallback:yi,useContext:yi,useEffect:yi,useImperativeHandle:yi,useInsertionEffect:yi,useLayoutEffect:yi,useMemo:yi,useReducer:yi,useRef:yi,useState:yi,useDebugValue:yi,useDeferredValue:yi,useTransition:yi,useMutableSource:yi,useSyncExternalStore:yi,useId:yi,unstable_isNewReconciler:!1},JT={readContext:wr,useCallback:function(l,u){return Vs().memoizedState=[l,u===void 0?null:u],l},useContext:wr,useEffect:Pm,useImperativeHandle:function(l,u,p){return p=p!=null?p.concat([l]):null,mf(4194308,4,hI.bind(null,u,l),p)},useLayoutEffect:function(l,u){return mf(4194308,4,l,u)},useInsertionEffect:function(l,u){return mf(4,2,l,u)},useMemo:function(l,u){var p=Vs();return u=u===void 0?null:u,l=l(),p.memoizedState=[l,u],l},useReducer:function(l,u,p){var v=Vs();return u=p!==void 0?p(u):u,v.memoizedState=v.baseState=u,l={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},v.queue=l,l=l.dispatch=YT.bind(null,bn,l),[v.memoizedState,l]},useRef:function(l){var u=Vs();return l={current:l},u.memoizedState=l},useState:Lm,useDebugValue:Um,useDeferredValue:function(l){var u=Lm(l),p=u[0],v=u[1];return Pm(function(){var _=Tr.transition;Tr.transition={};try{v(l)}finally{Tr.transition=_}},[l]),p},useTransition:function(){var l=Lm(!1),u=l[0];return l=WT.bind(null,l[1]),Vs().memoizedState=l,[u,l]},useMutableSource:function(){},useSyncExternalStore:function(l,u,p){var v=bn,_=Vs();if(xn){if(p===void 0)throw Error(o(407));p=p()}else{if(p=u(),Yn===null)throw Error(o(349));rc&30||sI(v,u,p)}_.memoizedState=p;var Q={value:p,getSnapshot:u};return _.queue=Q,Pm(aI.bind(null,v,Q,l),[l]),v.flags|=2048,Ou(9,oI.bind(null,v,Q,p,u),void 0,null),p},useId:function(){var l=Vs(),u=Yn.identifierPrefix;if(xn){var p=zs,v=Hs;p=(v&~(1<<32-Ne(v)-1)).toString(32)+p,u=":"+u+"R"+p,p=Gu++,0ce||_[W]!==Q[ce]){var Re=` +`+_[W].replace(" at new "," at ");return l.displayName&&Re.includes("")&&(Re=Re.replace("",l.displayName)),Re}while(1<=W&&0<=ce);break}}}finally{It=!1,Error.prepareStackTrace=g}return(l=l?l.displayName||l.name:"")?St(l):""}var mn=Object.prototype.hasOwnProperty,Wn=[],tn=-1;function Yn(l){return{current:l}}function Et(l){0>tn||(l.current=Wn[tn],Wn[tn]=null,tn--)}function et(l,u){tn++,Wn[tn]=l.current,l.current=u}var yi={},yt=Yn(yi),An=Yn(!1),lr=yi;function N(l,u){var g=l.type.contextTypes;if(!g)return yi;var v=l.stateNode;if(v&&v.__reactInternalMemoizedUnmaskedChildContext===u)return v.__reactInternalMemoizedMaskedChildContext;var _={},Q;for(Q in g)_[Q]=u[Q];return v&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=u,l.__reactInternalMemoizedMaskedChildContext=_),_}function L(l){return l=l.childContextTypes,l!=null}function j(){Et(An),Et(yt)}function ae(l,u,g){if(yt.current!==yi)throw Error(o(168));et(yt,u),et(An,g)}function ge(l,u,g){var v=l.stateNode;if(u=u.childContextTypes,typeof v.getChildContext!="function")return g;v=v.getChildContext();for(var _ in v)if(!(_ in u))throw Error(o(108,P(l)||"Unknown",_));return s({},g,v)}function we(l){return l=(l=l.stateNode)&&l.__reactInternalMemoizedMergedChildContext||yi,lr=yt.current,et(yt,l),et(An,An.current),!0}function Pe(l,u,g){var v=l.stateNode;if(!v)throw Error(o(169));g?(l=ge(l,u,lr),v.__reactInternalMemoizedMergedChildContext=l,Et(An),Et(yt),et(yt,l)):Et(An),et(An,g)}var Ne=Math.clz32?Math.clz32:$e,Ve=Math.log,Oe=Math.LN2;function $e(l){return l>>>=0,l===0?32:31-(Ve(l)/Oe|0)|0}var ht=64,kt=4194304;function dn(l){switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return l&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return l}}function Ht(l,u){var g=l.pendingLanes;if(g===0)return 0;var v=0,_=l.suspendedLanes,Q=l.pingedLanes,W=g&268435455;if(W!==0){var ce=W&~_;ce!==0?v=dn(ce):(Q&=W,Q!==0&&(v=dn(Q)))}else W=g&~_,W!==0?v=dn(W):Q!==0&&(v=dn(Q));if(v===0)return 0;if(u!==0&&u!==v&&!(u&_)&&(_=v&-v,Q=u&-u,_>=Q||_===16&&(Q&4194240)!==0))return u;if(v&4&&(v|=g&16),u=l.entangledLanes,u!==0)for(l=l.entanglements,u&=v;0g;g++)u.push(l);return u}function No(l,u,g){l.pendingLanes|=u,u!==536870912&&(l.suspendedLanes=0,l.pingedLanes=0),l=l.eventTimes,u=31-Ne(u),l[u]=g}function tf(l,u){var g=l.pendingLanes&~u;l.pendingLanes=u,l.suspendedLanes=0,l.pingedLanes=0,l.expiredLanes&=u,l.mutableReadLanes&=u,l.entangledLanes&=u,u=l.entanglements;var v=l.eventTimes;for(l=l.expirationTimes;0>=W,_-=W,Vs=1<<32-Ne(u)+_|g<<_|v,Ws=Q+l}else Vs=1<jt?(oi=Qt,Qt=null):oi=Qt.sibling;var Zt=mt(Ce,Qt,Me[jt],je);if(Zt===null){Qt===null&&(Qt=oi);break}l&&Qt&&Zt.alternate===null&&u(Ce,Qt),he=Q(Zt,he,jt),Lt===null?ct=Zt:Lt.sibling=Zt,Lt=Zt,Qt=oi}if(jt===Me.length)return g(Ce,Qt),Bn&&Ya(Ce,jt),ct;if(Qt===null){for(;jtjt?(oi=Qt,Qt=null):oi=Qt.sibling;var Ho=mt(Ce,Qt,Zt.value,je);if(Ho===null){Qt===null&&(Qt=oi);break}l&&Qt&&Ho.alternate===null&&u(Ce,Qt),he=Q(Ho,he,jt),Lt===null?ct=Ho:Lt.sibling=Ho,Lt=Ho,Qt=oi}if(Zt.done)return g(Ce,Qt),Bn&&Ya(Ce,jt),ct;if(Qt===null){for(;!Zt.done;jt++,Zt=Me.next())Zt=Mt(Ce,Zt.value,je),Zt!==null&&(he=Q(Zt,he,jt),Lt===null?ct=Zt:Lt.sibling=Zt,Lt=Zt);return Bn&&Ya(Ce,jt),ct}for(Qt=v(Ce,Qt);!Zt.done;jt++,Zt=Me.next())Zt=hn(Qt,Ce,jt,Zt.value,je),Zt!==null&&(l&&Zt.alternate!==null&&Qt.delete(Zt.key===null?jt:Zt.key),he=Q(Zt,he,jt),Lt===null?ct=Zt:Lt.sibling=Zt,Lt=Zt);return l&&Qt.forEach(function(N3){return u(Ce,N3)}),Bn&&Ya(Ce,jt),ct}function Nr(Ce,he,Me,je){if(typeof Me=="object"&&Me!==null&&Me.type===h&&Me.key===null&&(Me=Me.props.children),typeof Me=="object"&&Me!==null){switch(Me.$$typeof){case c:e:{for(var ct=Me.key,Lt=he;Lt!==null;){if(Lt.key===ct){if(ct=Me.type,ct===h){if(Lt.tag===7){g(Ce,Lt.sibling),he=_(Lt,Me.props.children),he.return=Ce,Ce=he;break e}}else if(Lt.elementType===ct||typeof ct=="object"&&ct!==null&&ct.$$typeof===y&&lI(ct)===Lt.type){g(Ce,Lt.sibling),he=_(Lt,Me.props),he.ref=ku(Ce,Lt,Me),he.return=Ce,Ce=he;break e}g(Ce,Lt);break}else u(Ce,Lt);Lt=Lt.sibling}Me.type===h?(he=$a(Me.props.children,Ce.mode,je,Me.key),he.return=Ce,Ce=he):(je=Vf(Me.type,Me.key,Me.props,null,Ce.mode,je),je.ref=ku(Ce,he,Me),je.return=Ce,Ce=je)}return W(Ce);case A:e:{for(Lt=Me.key;he!==null;){if(he.key===Lt)if(he.tag===4&&he.stateNode.containerInfo===Me.containerInfo&&he.stateNode.implementation===Me.implementation){g(Ce,he.sibling),he=_(he,Me.children||[]),he.return=Ce,Ce=he;break e}else{g(Ce,he);break}else u(Ce,he);he=he.sibling}he=g0(Me,Ce.mode,je),he.return=Ce,Ce=he}return W(Ce);case y:return Lt=Me._init,Nr(Ce,he,Lt(Me._payload),je)}if(ie(Me))return ut(Ce,he,Me,je);if(M(Me))return Bi(Ce,he,Me,je);ff(Ce,Me)}return typeof Me=="string"&&Me!==""||typeof Me=="number"?(Me=""+Me,he!==null&&he.tag===6?(g(Ce,he.sibling),he=_(he,Me),he.return=Ce,Ce=he):(g(Ce,he),he=p0(Me,Ce.mode,je),he.return=Ce,Ce=he),W(Ce)):g(Ce,he)}return Nr}var rc=cI(!0),uI=cI(!1),Gu={},Rr=Yn(Gu),Ou=Yn(Gu),sc=Yn(Gu);function Cs(l){if(l===Gu)throw Error(o(174));return l}function bm(l,u){et(sc,u),et(Ou,l),et(Rr,Gu),l=ue(u),Et(Rr),et(Rr,l)}function oc(){Et(Rr),Et(Ou),Et(sc)}function AI(l){var u=Cs(sc.current),g=Cs(Rr.current);u=U(g,l.type,u),g!==u&&(et(Ou,l),et(Rr,u))}function Nm(l){Ou.current===l&&(Et(Rr),Et(Ou))}var Mn=Yn(0);function df(l){for(var u=l;u!==null;){if(u.tag===13){var g=u.memoizedState;if(g!==null&&(g=g.dehydrated,g===null||za(g)||di(g)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!==void 0){if(u.flags&128)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break;for(;u.sibling===null;){if(u.return===null||u.return===l)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var Lm=[];function Pm(){for(var l=0;lg?g:4,l(!0);var v=Tr.transition;Tr.transition={};try{l(!1),u()}finally{qt=g,Tr.transition=v}}function _I(){return ys().memoizedState}function a3(l,u,g){var v=ko(l);g={lane:v,action:g,hasEagerState:!1,eagerState:null,next:null},SI(l)?wI(u,g):(MI(l,u,g),g=Pi(),l=Dr(l,v,g),l!==null&&QI(l,u,v))}function l3(l,u,g){var v=ko(l),_={lane:v,action:g,hasEagerState:!1,eagerState:null,next:null};if(SI(l))wI(u,_);else{MI(l,u,_);var Q=l.alternate;if(l.lanes===0&&(Q===null||Q.lanes===0)&&(Q=u.lastRenderedReducer,Q!==null))try{var W=u.lastRenderedState,ce=Q(W,g);if(_.hasEagerState=!0,_.eagerState=ce,gs(ce,W))return}catch{}finally{}g=Pi(),l=Dr(l,v,g),l!==null&&QI(l,u,v)}}function SI(l){var u=l.alternate;return l===Nn||u!==null&&u===Nn}function wI(l,u){Hu=gf=!0;var g=l.pending;g===null?u.next=u:(u.next=g.next,g.next=u),l.pending=u}function MI(l,u,g){Xn!==null&&l.mode&1&&!(Ut&2)?(l=u.interleaved,l===null?(g.next=g,Es===null?Es=[u]:Es.push(u)):(g.next=l.next,l.next=g),u.interleaved=g):(l=u.pending,l===null?g.next=g:(g.next=l.next,l.next=g),u.pending=g)}function QI(l,u,g){if(g&4194240){var v=u.lanes;v&=l.pendingLanes,g|=v,u.lanes=g,gm(l,g)}}var vf={readContext:wr,useCallback:Ii,useContext:Ii,useEffect:Ii,useImperativeHandle:Ii,useInsertionEffect:Ii,useLayoutEffect:Ii,useMemo:Ii,useReducer:Ii,useRef:Ii,useState:Ii,useDebugValue:Ii,useDeferredValue:Ii,useTransition:Ii,useMutableSource:Ii,useSyncExternalStore:Ii,useId:Ii,unstable_isNewReconciler:!1},c3={readContext:wr,useCallback:function(l,u){return Ys().memoizedState=[l,u===void 0?null:u],l},useContext:wr,useEffect:Om,useImperativeHandle:function(l,u,g){return g=g!=null?g.concat([l]):null,Cf(4194308,4,vI.bind(null,u,l),g)},useLayoutEffect:function(l,u){return Cf(4194308,4,l,u)},useInsertionEffect:function(l,u){return Cf(4,2,l,u)},useMemo:function(l,u){var g=Ys();return u=u===void 0?null:u,l=l(),g.memoizedState=[l,u],l},useReducer:function(l,u,g){var v=Ys();return u=g!==void 0?g(u):u,v.memoizedState=v.baseState=u,l={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},v.queue=l,l=l.dispatch=a3.bind(null,Nn,l),[v.memoizedState,l]},useRef:function(l){var u=Ys();return l={current:l},u.memoizedState=l},useState:Gm,useDebugValue:Hm,useDeferredValue:function(l){var u=Gm(l),g=u[0],v=u[1];return Om(function(){var _=Tr.transition;Tr.transition={};try{v(l)}finally{Tr.transition=_}},[l]),g},useTransition:function(){var l=Gm(!1),u=l[0];return l=o3.bind(null,l[1]),Ys().memoizedState=l,[u,l]},useMutableSource:function(){},useSyncExternalStore:function(l,u,g){var v=Nn,_=Ys();if(Bn){if(g===void 0)throw Error(o(407));g=g()}else{if(g=u(),Xn===null)throw Error(o(349));ac&30||dI(v,u,g)}_.memoizedState=g;var Q={value:g,getSnapshot:u};return _.queue=Q,Om(gI.bind(null,v,Q,l),[l]),v.flags|=2048,Vu(9,pI.bind(null,v,Q,g,u),void 0,null),g},useId:function(){var l=Ys(),u=Xn.identifierPrefix;if(Bn){var g=Ws,v=Vs;g=(v&~(1<<32-Ne(v)-1)).toString(32)+g,u=":"+u+"R"+g,g=zu++,0n0&&(u.flags|=128,v=!0,Wu(_,!1),u.lanes=4194304)}else{if(!v)if(l=hf(Q),l!==null){if(u.flags|=128,v=!0,l=l.updateQueue,l!==null&&(u.updateQueue=l,u.flags|=4),Wu(_,!0),_.tail===null&&_.tailMode==="hidden"&&!Q.alternate&&!xn)return vi(u),null}else 2*ri()-_.renderingStartTime>n0&&p!==1073741824&&(u.flags|=128,v=!0,Wu(_,!1),u.lanes=4194304);_.isBackwards?(Q.sibling=u.child,u.child=Q):(l=_.last,l!==null?l.sibling=Q:u.child=Q,_.last=Q)}return _.tail!==null?(u=_.tail,_.rendering=u,_.tail=u.sibling,_.renderingStartTime=ri(),u.sibling=null,l=wn.current,et(wn,v?l&1|2:l&1),u):(vi(u),null);case 22:case 23:return a0(),v=u.memoizedState!==null,l!==null&&l.memoizedState!==null!==v&&(u.flags|=8192),v&&u.mode&1?fr&1073741824&&(vi(u),Be&&u.subtreeFlags&6&&(u.flags|=8192)):vi(u),null;case 24:return null;case 25:return null}throw Error(o(156,u.tag))}var $T=a.ReactCurrentOwner,hr=!1;function bi(l,u,p,v){u.child=l===null?tI(u,null,p,v):tc(u,l.child,p,v)}function MI(l,u,p,v,_){p=p.render;var Q=u.ref;return jl(u,_),v=bm(l,u,p,v,Q,_),p=Nm(),l!==null&&!hr?(u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~_,Ws(l,u,_)):(xn&&p&&xm(u),u.flags|=1,bi(l,u,v,_),u.child)}function QI(l,u,p,v,_){if(l===null){var Q=p.type;return typeof Q=="function"&&!c0(Q)&&Q.defaultProps===void 0&&p.compare===null&&p.defaultProps===void 0?(u.tag=15,u.type=Q,RI(l,u,Q,v,_)):(l=Hf(p.type,null,v,u,u.mode,_),l.ref=u.ref,l.return=u,u.child=l)}if(Q=l.child,!(l.lanes&_)){var W=Q.memoizedProps;if(p=p.compare,p=p!==null?p:nf,p(W,v)&&l.ref===u.ref)return Ws(l,u,_)}return u.flags|=1,l=wo(Q,v),l.ref=u.ref,l.return=u,u.child=l}function RI(l,u,p,v,_){if(l!==null&&nf(l.memoizedProps,v)&&l.ref===u.ref)if(hr=!1,(l.lanes&_)!==0)l.flags&131072&&(hr=!0);else return u.lanes=l.lanes,Ws(l,u,_);return Gm(l,u,p,v,_)}function TI(l,u,p){var v=u.pendingProps,_=v.children,Q=l!==null?l.memoizedState:null;if(v.mode==="hidden")if(!(u.mode&1))u.memoizedState={baseLanes:0,cachePool:null},et(sc,fr),fr|=p;else if(p&1073741824)u.memoizedState={baseLanes:0,cachePool:null},v=Q!==null?Q.baseLanes:p,et(sc,fr),fr|=v;else return l=Q!==null?Q.baseLanes|p:p,u.lanes=u.childLanes=1073741824,u.memoizedState={baseLanes:l,cachePool:null},u.updateQueue=null,et(sc,fr),fr|=l,null;else Q!==null?(v=Q.baseLanes|p,u.memoizedState=null):v=p,et(sc,fr),fr|=v;return bi(l,u,_,p),u.child}function DI(l,u){var p=u.ref;(l===null&&p!==null||l!==null&&l.ref!==p)&&(u.flags|=512,u.flags|=2097152)}function Gm(l,u,p,v,_){var Q=L(p)?ar:yt.current;return Q=N(u,Q),jl(u,_),p=bm(l,u,p,v,Q,_),v=Nm(),l!==null&&!hr?(u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~_,Ws(l,u,_)):(xn&&v&&xm(u),u.flags|=1,bi(l,u,p,_),u.child)}function bI(l,u,p,v,_){if(L(p)){var Q=!0;we(u)}else Q=!1;if(jl(u,_),u.stateNode===null)l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),Xv(u,p,v),Im(u,p,v,_),v=!0;else if(l===null){var W=u.stateNode,le=u.memoizedProps;W.props=le;var Re=W.context,He=p.contextType;typeof He=="object"&&He!==null?He=wr(He):(He=L(p)?ar:yt.current,He=N(u,He));var rt=p.getDerivedStateFromProps,Mt=typeof rt=="function"||typeof W.getSnapshotBeforeUpdate=="function";Mt||typeof W.UNSAFE_componentWillReceiveProps!="function"&&typeof W.componentWillReceiveProps!="function"||(le!==v||Re!==He)&&Jv(u,W,v,He),vo=!1;var mt=u.memoizedState;W.state=mt,af(u,v,W,_),Re=u.memoizedState,le!==v||mt!==Re||un.current||vo?(typeof rt=="function"&&(vm(u,p,rt,v),Re=u.memoizedState),(le=vo||Yv(u,p,le,v,mt,Re,He))?(Mt||typeof W.UNSAFE_componentWillMount!="function"&&typeof W.componentWillMount!="function"||(typeof W.componentWillMount=="function"&&W.componentWillMount(),typeof W.UNSAFE_componentWillMount=="function"&&W.UNSAFE_componentWillMount()),typeof W.componentDidMount=="function"&&(u.flags|=4194308)):(typeof W.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=v,u.memoizedState=Re),W.props=v,W.state=Re,W.context=He,v=le):(typeof W.componentDidMount=="function"&&(u.flags|=4194308),v=!1)}else{W=u.stateNode,Hv(l,u),le=u.memoizedProps,He=u.type===u.elementType?le:Yr(u.type,le),W.props=He,Mt=u.pendingProps,mt=W.context,Re=p.contextType,typeof Re=="object"&&Re!==null?Re=wr(Re):(Re=L(p)?ar:yt.current,Re=N(u,Re));var An=p.getDerivedStateFromProps;(rt=typeof An=="function"||typeof W.getSnapshotBeforeUpdate=="function")||typeof W.UNSAFE_componentWillReceiveProps!="function"&&typeof W.componentWillReceiveProps!="function"||(le!==Mt||mt!==Re)&&Jv(u,W,v,Re),vo=!1,mt=u.memoizedState,W.state=mt,af(u,v,W,_);var ut=u.memoizedState;le!==Mt||mt!==ut||un.current||vo?(typeof An=="function"&&(vm(u,p,An,v),ut=u.memoizedState),(He=vo||Yv(u,p,He,v,mt,ut,Re)||!1)?(rt||typeof W.UNSAFE_componentWillUpdate!="function"&&typeof W.componentWillUpdate!="function"||(typeof W.componentWillUpdate=="function"&&W.componentWillUpdate(v,ut,Re),typeof W.UNSAFE_componentWillUpdate=="function"&&W.UNSAFE_componentWillUpdate(v,ut,Re)),typeof W.componentDidUpdate=="function"&&(u.flags|=4),typeof W.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof W.componentDidUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=4),typeof W.getSnapshotBeforeUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=1024),u.memoizedProps=v,u.memoizedState=ut),W.props=v,W.state=ut,W.context=Re,v=He):(typeof W.componentDidUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=4),typeof W.getSnapshotBeforeUpdate!="function"||le===l.memoizedProps&&mt===l.memoizedState||(u.flags|=1024),v=!1)}return Om(l,u,p,v,Q,_)}function Om(l,u,p,v,_,Q){DI(l,u);var W=(u.flags&128)!==0;if(!v&&!W)return _&&Pe(u,p,!1),Ws(l,u,Q);v=u.stateNode,$T.current=u;var le=W&&typeof p.getDerivedStateFromError!="function"?null:v.render();return u.flags|=1,l!==null&&W?(u.child=tc(u,l.child,null,Q),u.child=tc(u,null,le,Q)):bi(l,u,le,Q),u.memoizedState=v.state,_&&Pe(u,p,!0),u.child}function NI(l){var u=l.stateNode;u.pendingContext?oe(l,u.pendingContext,u.pendingContext!==u.context):u.context&&oe(l,u.context,!1),Mm(l,u.containerInfo)}function LI(l,u,p,v,_){return ec(),wm(_),u.flags|=256,bi(l,u,p,v),u.child}var If={dehydrated:null,treeContext:null,retryLane:0};function xf(l){return{baseLanes:l,cachePool:null}}function PI(l,u,p){var v=u.pendingProps,_=wn.current,Q=!1,W=(u.flags&128)!==0,le;if((le=W)||(le=l!==null&&l.memoizedState===null?!1:(_&2)!==0),le?(Q=!0,u.flags&=-129):(l===null||l.memoizedState!==null)&&(_|=1),et(wn,_&1),l===null)return Sm(u),l=u.memoizedState,l!==null&&(l=l.dehydrated,l!==null)?(u.mode&1?fi(l)?u.lanes=8:u.lanes=1073741824:u.lanes=1,null):(_=v.children,l=v.fallback,Q?(v=u.mode,Q=u.child,_={mode:"hidden",children:_},!(v&1)&&Q!==null?(Q.childLanes=0,Q.pendingProps=_):Q=zf(_,v,0,null),l=Wa(l,v,p,null),Q.return=u,l.return=u,Q.sibling=l,u.child=Q,u.child.memoizedState=xf(p),u.memoizedState=If,l):Hm(u,_));if(_=l.memoizedState,_!==null){if(le=_.dehydrated,le!==null){if(W)return u.flags&256?(u.flags&=-257,Bf(l,u,p,Error(o(422)))):u.memoizedState!==null?(u.child=l.child,u.flags|=128,null):(Q=v.fallback,_=u.mode,v=zf({mode:"visible",children:v.children},_,0,null),Q=Wa(Q,_,p,null),Q.flags|=2,v.return=u,Q.return=u,v.sibling=Q,u.child=v,u.mode&1&&tc(u,l.child,null,p),u.child.memoizedState=xf(p),u.memoizedState=If,Q);if(!(u.mode&1))u=Bf(l,u,p,null);else if(fi(le))u=Bf(l,u,p,Error(o(419)));else if(v=(p&l.childLanes)!==0,hr||v){if(v=Yn,v!==null){switch(p&-p){case 4:Q=2;break;case 16:Q=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:Q=32;break;case 536870912:Q=268435456;break;default:Q=0}v=Q&(v.suspendedLanes|p)?0:Q,v!==0&&v!==_.retryLane&&(_.retryLane=v,Dr(l,v,-1))}l0(),u=Bf(l,u,p,Error(o(421)))}else La(le)?(u.flags|=128,u.child=l.child,u=h3.bind(null,l),Fs(le,u),u=null):(p=_.treeContext,Ee&&(Ar=Co(le),ur=u,xn=!0,Xr=null,Nu=!1,p!==null&&(Mr[Qr++]=Hs,Mr[Qr++]=zs,Mr[Qr++]=Ua,Hs=p.id,zs=p.overflow,Ua=u)),u=Hm(u,u.pendingProps.children),u.flags|=4096);return u}return Q?(v=FI(l,u,v.children,v.fallback,p),Q=u.child,_=l.child.memoizedState,Q.memoizedState=_===null?xf(p):{baseLanes:_.baseLanes|p,cachePool:null},Q.childLanes=l.childLanes&~p,u.memoizedState=If,v):(p=UI(l,u,v.children,p),u.memoizedState=null,p)}return Q?(v=FI(l,u,v.children,v.fallback,p),Q=u.child,_=l.child.memoizedState,Q.memoizedState=_===null?xf(p):{baseLanes:_.baseLanes|p,cachePool:null},Q.childLanes=l.childLanes&~p,u.memoizedState=If,v):(p=UI(l,u,v.children,p),u.memoizedState=null,p)}function Hm(l,u){return u=zf({mode:"visible",children:u},l.mode,0,null),u.return=l,l.child=u}function UI(l,u,p,v){var _=l.child;return l=_.sibling,p=wo(_,{mode:"visible",children:p}),!(u.mode&1)&&(p.lanes=v),p.return=u,p.sibling=null,l!==null&&(v=u.deletions,v===null?(u.deletions=[l],u.flags|=16):v.push(l)),u.child=p}function FI(l,u,p,v,_){var Q=u.mode;l=l.child;var W=l.sibling,le={mode:"hidden",children:p};return!(Q&1)&&u.child!==l?(p=u.child,p.childLanes=0,p.pendingProps=le,u.deletions=null):(p=wo(l,le),p.subtreeFlags=l.subtreeFlags&14680064),W!==null?v=wo(W,v):(v=Wa(v,Q,_,null),v.flags|=2),v.return=u,p.return=u,p.sibling=v,u.child=p,v}function Bf(l,u,p,v){return v!==null&&wm(v),tc(u,l.child,null,p),l=Hm(u,u.pendingProps.children),l.flags|=2,u.memoizedState=null,l}function kI(l,u,p){l.lanes|=u;var v=l.alternate;v!==null&&(v.lanes|=u),Cm(l.return,u,p)}function zm(l,u,p,v,_){var Q=l.memoizedState;Q===null?l.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:v,tail:p,tailMode:_}:(Q.isBackwards=u,Q.rendering=null,Q.renderingStartTime=0,Q.last=v,Q.tail=p,Q.tailMode=_)}function GI(l,u,p){var v=u.pendingProps,_=v.revealOrder,Q=v.tail;if(bi(l,u,v.children,p),v=wn.current,v&2)v=v&1|2,u.flags|=128;else{if(l!==null&&l.flags&128)e:for(l=u.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&kI(l,p,u);else if(l.tag===19)kI(l,p,u);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===u)break e;for(;l.sibling===null;){if(l.return===null||l.return===u)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}v&=1}if(et(wn,v),!(u.mode&1))u.memoizedState=null;else switch(_){case"forwards":for(p=u.child,_=null;p!==null;)l=p.alternate,l!==null&&hf(l)===null&&(_=p),p=p.sibling;p=_,p===null?(_=u.child,u.child=null):(_=p.sibling,p.sibling=null),zm(u,!1,_,p,Q);break;case"backwards":for(p=null,_=u.child,u.child=null;_!==null;){if(l=_.alternate,l!==null&&hf(l)===null){u.child=_;break}l=_.sibling,_.sibling=p,p=_,_=l}zm(u,!0,p,null,Q);break;case"together":zm(u,!1,null,null,void 0);break;default:u.memoizedState=null}return u.child}function Ws(l,u,p){if(l!==null&&(u.dependencies=l.dependencies),oc|=u.lanes,!(p&u.childLanes))return null;if(l!==null&&u.child!==l.child)throw Error(o(153));if(u.child!==null){for(l=u.child,p=wo(l,l.pendingProps),u.child=p,p.return=u;l.sibling!==null;)l=l.sibling,p=p.sibling=wo(l,l.pendingProps),p.return=u;p.sibling=null}return u.child}function e3(l,u,p){switch(u.tag){case 3:NI(u),ec();break;case 5:nI(u);break;case 1:L(u.type)&&we(u);break;case 4:Mm(u,u.stateNode.containerInfo);break;case 10:Ov(u,u.type._context,u.memoizedProps.value);break;case 13:var v=u.memoizedState;if(v!==null)return v.dehydrated!==null?(et(wn,wn.current&1),u.flags|=128,null):p&u.child.childLanes?PI(l,u,p):(et(wn,wn.current&1),l=Ws(l,u,p),l!==null?l.sibling:null);et(wn,wn.current&1);break;case 19:if(v=(p&u.childLanes)!==0,l.flags&128){if(v)return GI(l,u,p);u.flags|=128}var _=u.memoizedState;if(_!==null&&(_.rendering=null,_.tail=null,_.lastEffect=null),et(wn,wn.current),v)break;return null;case 22:case 23:return u.lanes=0,TI(l,u,p)}return Ws(l,u,p)}function t3(l,u){switch(Bm(u),u.tag){case 1:return L(u.type)&&q(),l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 3:return ic(),Et(un),Et(yt),Tm(),l=u.flags,l&65536&&!(l&128)?(u.flags=l&-65537|128,u):null;case 5:return Qm(u),null;case 13:if(Et(wn),l=u.memoizedState,l!==null&&l.dehydrated!==null){if(u.alternate===null)throw Error(o(340));ec()}return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 19:return Et(wn),null;case 4:return ic(),null;case 10:return Em(u.type._context),null;case 22:case 23:return a0(),null;case 24:return null;default:return null}}var _f=!1,Ga=!1,n3=typeof WeakSet=="function"?WeakSet:Set,Ke=null;function Sf(l,u){var p=l.ref;if(p!==null)if(typeof p=="function")try{p(null)}catch(v){Zi(l,u,v)}else p.current=null}function Vm(l,u,p){try{p()}catch(v){Zi(l,u,v)}}var OI=!1;function i3(l,u){for(Z(l.containerInfo),Ke=u;Ke!==null;)if(l=Ke,u=l.child,(l.subtreeFlags&1028)!==0&&u!==null)u.return=l,Ke=u;else for(;Ke!==null;){l=Ke;try{var p=l.alternate;if(l.flags&1024)switch(l.tag){case 0:case 11:case 15:break;case 1:if(p!==null){var v=p.memoizedProps,_=p.memoizedState,Q=l.stateNode,W=Q.getSnapshotBeforeUpdate(l.elementType===l.type?v:Yr(l.type,v),_);Q.__reactInternalSnapshotBeforeUpdate=W}break;case 3:Be&&Ge(l.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(le){Zi(l,l.return,le)}if(u=l.sibling,u!==null){u.return=l.return,Ke=u;break}Ke=l.return}return p=OI,OI=!1,p}function Oa(l,u,p){var v=u.updateQueue;if(v=v!==null?v.lastEffect:null,v!==null){var _=v=v.next;do{if((_.tag&l)===l){var Q=_.destroy;_.destroy=void 0,Q!==void 0&&Vm(u,p,Q)}_=_.next}while(_!==v)}}function Yu(l,u){if(u=u.updateQueue,u=u!==null?u.lastEffect:null,u!==null){var p=u=u.next;do{if((p.tag&l)===l){var v=p.create;p.destroy=v()}p=p.next}while(p!==u)}}function Wm(l){var u=l.ref;if(u!==null){var p=l.stateNode;switch(l.tag){case 5:l=re(p);break;default:l=p}typeof u=="function"?u(l):u.current=l}}function HI(l,u,p){if(fs&&typeof fs.onCommitFiberUnmount=="function")try{fs.onCommitFiberUnmount(ef,u)}catch{}switch(u.tag){case 0:case 11:case 14:case 15:if(l=u.updateQueue,l!==null&&(l=l.lastEffect,l!==null)){var v=l=l.next;do{var _=v,Q=_.destroy;_=_.tag,Q!==void 0&&(_&2||_&4)&&Vm(u,p,Q),v=v.next}while(v!==l)}break;case 1:if(Sf(u,p),l=u.stateNode,typeof l.componentWillUnmount=="function")try{l.props=u.memoizedProps,l.state=u.memoizedState,l.componentWillUnmount()}catch(W){Zi(u,p,W)}break;case 5:Sf(u,p);break;case 4:Be?JI(l,u,p):H&&H&&(u=u.stateNode.containerInfo,p=it(u),Vt(u,p))}}function zI(l,u,p){for(var v=u;;)if(HI(l,v,p),v.child===null||Be&&v.tag===4){if(v===u)break;for(;v.sibling===null;){if(v.return===null||v.return===u)return;v=v.return}v.sibling.return=v.return,v=v.sibling}else v.child.return=v,v=v.child}function VI(l){var u=l.alternate;u!==null&&(l.alternate=null,VI(u)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(u=l.stateNode,u!==null&&Te(u)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}function WI(l){return l.tag===5||l.tag===3||l.tag===4}function YI(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||WI(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function XI(l){if(Be){e:{for(var u=l.return;u!==null;){if(WI(u))break e;u=u.return}throw Error(o(160))}var p=u;switch(p.tag){case 5:u=p.stateNode,p.flags&32&&(Pt(u),p.flags&=-33),p=YI(l),Xm(l,p,u);break;case 3:case 4:u=p.stateNode.containerInfo,p=YI(l),Ym(l,p,u);break;default:throw Error(o(161))}}}function Ym(l,u,p){var v=l.tag;if(v===5||v===6)l=l.stateNode,u?ot(p,l,u):Ct(p,l);else if(v!==4&&(l=l.child,l!==null))for(Ym(l,u,p),l=l.sibling;l!==null;)Ym(l,u,p),l=l.sibling}function Xm(l,u,p){var v=l.tag;if(v===5||v===6)l=l.stateNode,u?dt(p,l,u):at(p,l);else if(v!==4&&(l=l.child,l!==null))for(Xm(l,u,p),l=l.sibling;l!==null;)Xm(l,u,p),l=l.sibling}function JI(l,u,p){for(var v=u,_=!1,Q,W;;){if(!_){_=v.return;e:for(;;){if(_===null)throw Error(o(160));switch(Q=_.stateNode,_.tag){case 5:W=!1;break e;case 3:Q=Q.containerInfo,W=!0;break e;case 4:Q=Q.containerInfo,W=!0;break e}_=_.return}_=!0}if(v.tag===5||v.tag===6)zI(l,v,p),W?vt(Q,v.stateNode):tt(Q,v.stateNode);else if(v.tag===18)W?ve(Q,v.stateNode):Se(Q,v.stateNode);else if(v.tag===4){if(v.child!==null){Q=v.stateNode.containerInfo,W=!0,v.child.return=v,v=v.child;continue}}else if(HI(l,v,p),v.child!==null){v.child.return=v,v=v.child;continue}if(v===u)break;for(;v.sibling===null;){if(v.return===null||v.return===u)return;v=v.return,v.tag===4&&(_=!1)}v.sibling.return=v.return,v=v.sibling}}function Jm(l,u){if(Be){switch(u.tag){case 0:case 11:case 14:case 15:Oa(3,u,u.return),Yu(3,u),Oa(5,u,u.return);return;case 1:return;case 5:var p=u.stateNode;if(p!=null){var v=u.memoizedProps;l=l!==null?l.memoizedProps:v;var _=u.type,Q=u.updateQueue;u.updateQueue=null,Q!==null&&Bt(p,Q,_,l,v,u)}return;case 6:if(u.stateNode===null)throw Error(o(162));p=u.memoizedProps,Le(u.stateNode,l!==null?l.memoizedProps:p,p);return;case 3:Ee&&l!==null&&l.memoizedState.isDehydrated&&de(u.stateNode.containerInfo);return;case 12:return;case 13:wf(u);return;case 19:wf(u);return;case 17:return}throw Error(o(163))}switch(u.tag){case 0:case 11:case 14:case 15:Oa(3,u,u.return),Yu(3,u),Oa(5,u,u.return);return;case 12:return;case 13:wf(u);return;case 19:wf(u);return;case 3:Ee&&l!==null&&l.memoizedState.isDehydrated&&de(u.stateNode.containerInfo);break;case 22:case 23:return}e:if(H){switch(u.tag){case 1:case 5:case 6:break e;case 3:case 4:u=u.stateNode,Vt(u.containerInfo,u.pendingChildren);break e}throw Error(o(163))}}function wf(l){var u=l.updateQueue;if(u!==null){l.updateQueue=null;var p=l.stateNode;p===null&&(p=l.stateNode=new n3),u.forEach(function(v){var _=f3.bind(null,l,v);p.has(v)||(p.add(v),v.then(_,_))})}}function r3(l,u){for(Ke=u;Ke!==null;){u=Ke;var p=u.deletions;if(p!==null)for(var v=0;v";case Qf:return":has("+(jm(l)||"")+")";case Rf:return'[role="'+l.value+'"]';case Df:return'"'+l.value+'"';case Tf:return'[data-testname="'+l.value+'"]';default:throw Error(o(365))}}function $I(l,u){var p=[];l=[l,0];for(var v=0;v_&&(_=W),v&=~Q}if(v=_,v=ri()-v,v=(120>v?120:480>v?480:1080>v?1080:1920>v?1920:3e3>v?3e3:4320>v?4320:1960*o3(v/1960))-v,10l?16:l,Bo===null)var v=!1;else{if(l=Bo,Bo=null,Uf=0,Ut&6)throw Error(o(331));var _=Ut;for(Ut|=4,Ke=l.current;Ke!==null;){var Q=Ke,W=Q.child;if(Ke.flags&16){var le=Q.deletions;if(le!==null){for(var Re=0;Reri()-t0?Ha(l,0):e0|=p),ji(l,u)}function lx(l,u){u===0&&(l.mode&1?(u=kt,kt<<=1,!(kt&130023424)&&(kt=4194304)):u=1);var p=Ni();l=Gf(l,u),l!==null&&(yo(l,u,p),ji(l,p))}function h3(l){var u=l.memoizedState,p=0;u!==null&&(p=u.retryLane),lx(l,p)}function f3(l,u){var p=0;switch(l.tag){case 13:var v=l.stateNode,_=l.memoizedState;_!==null&&(p=_.retryLane);break;case 19:v=l.stateNode;break;default:throw Error(o(314))}v!==null&&v.delete(u),lx(l,p)}var cx;cx=function(l,u,p){if(l!==null)if(l.memoizedProps!==u.pendingProps||un.current)hr=!0;else{if(!(l.lanes&p)&&!(u.flags&128))return hr=!1,e3(l,u,p);hr=!!(l.flags&131072)}else hr=!1,xn&&u.flags&1048576&&Kv(u,uf,u.index);switch(u.lanes=0,u.tag){case 2:var v=u.type;l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),l=u.pendingProps;var _=N(u,yt.current);jl(u,p),_=bm(null,u,v,l,_,p);var Q=Nm();return u.flags|=1,typeof _=="object"&&_!==null&&typeof _.render=="function"&&_.$$typeof===void 0?(u.tag=1,u.memoizedState=null,u.updateQueue=null,L(v)?(Q=!0,we(u)):Q=!1,u.memoizedState=_.state!==null&&_.state!==void 0?_.state:null,ym(u),_.updater=lf,u.stateNode=_,_._reactInternals=u,Im(u,v,l,p),u=Om(null,u,v,!0,Q,p)):(u.tag=0,xn&&Q&&xm(u),bi(null,u,_,p),u=u.child),u;case 16:v=u.elementType;e:{switch(l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),l=u.pendingProps,_=v._init,v=_(v._payload),u.type=v,_=u.tag=p3(v),l=Yr(v,l),_){case 0:u=Gm(null,u,v,l,p);break e;case 1:u=bI(null,u,v,l,p);break e;case 11:u=MI(null,u,v,l,p);break e;case 14:u=QI(null,u,v,Yr(v.type,l),p);break e}throw Error(o(306,v,""))}return u;case 0:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Yr(v,_),Gm(l,u,v,_,p);case 1:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Yr(v,_),bI(l,u,v,_,p);case 3:e:{if(NI(u),l===null)throw Error(o(387));v=u.pendingProps,Q=u.memoizedState,_=Q.element,Hv(l,u),af(u,v,null,p);var W=u.memoizedState;if(v=W.element,Ee&&Q.isDehydrated)if(Q={element:v,isDehydrated:!1,cache:W.cache,transitions:W.transitions},u.updateQueue.baseState=Q,u.memoizedState=Q,u.flags&256){_=Error(o(423)),u=LI(l,u,v,p,_);break e}else if(v!==_){_=Error(o(424)),u=LI(l,u,v,p,_);break e}else for(Ee&&(Ar=Eo(u.stateNode.containerInfo),ur=u,xn=!0,Xr=null,Nu=!1),p=tI(u,null,v,p),u.child=p;p;)p.flags=p.flags&-3|4096,p=p.sibling;else{if(ec(),v===_){u=Ws(l,u,p);break e}bi(l,u,v,p)}u=u.child}return u;case 5:return nI(u),l===null&&Sm(u),v=u.type,_=u.pendingProps,Q=l!==null?l.memoizedProps:null,W=_.children,O(v,_)?W=null:Q!==null&&O(v,Q)&&(u.flags|=32),DI(l,u),bi(l,u,W,p),u.child;case 6:return l===null&&Sm(u),null;case 13:return PI(l,u,p);case 4:return Mm(u,u.stateNode.containerInfo),v=u.pendingProps,l===null?u.child=tc(u,null,v,p):bi(l,u,v,p),u.child;case 11:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Yr(v,_),MI(l,u,v,_,p);case 7:return bi(l,u,u.pendingProps,p),u.child;case 8:return bi(l,u,u.pendingProps.children,p),u.child;case 12:return bi(l,u,u.pendingProps.children,p),u.child;case 10:e:{if(v=u.type._context,_=u.pendingProps,Q=u.memoizedProps,W=_.value,Ov(u,v,W),Q!==null)if(ds(Q.value,W)){if(Q.children===_.children&&!un.current){u=Ws(l,u,p);break e}}else for(Q=u.child,Q!==null&&(Q.return=u);Q!==null;){var le=Q.dependencies;if(le!==null){W=Q.child;for(var Re=le.firstContext;Re!==null;){if(Re.context===v){if(Q.tag===1){Re=Os(-1,p&-p),Re.tag=2;var He=Q.updateQueue;if(He!==null){He=He.shared;var rt=He.pending;rt===null?Re.next=Re:(Re.next=rt.next,rt.next=Re),He.pending=Re}}Q.lanes|=p,Re=Q.alternate,Re!==null&&(Re.lanes|=p),Cm(Q.return,p,u),le.lanes|=p;break}Re=Re.next}}else if(Q.tag===10)W=Q.type===u.type?null:Q.child;else if(Q.tag===18){if(W=Q.return,W===null)throw Error(o(341));W.lanes|=p,le=W.alternate,le!==null&&(le.lanes|=p),Cm(W,p,u),W=Q.sibling}else W=Q.child;if(W!==null)W.return=Q;else for(W=Q;W!==null;){if(W===u){W=null;break}if(Q=W.sibling,Q!==null){Q.return=W.return,W=Q;break}W=W.return}Q=W}bi(l,u,_.children,p),u=u.child}return u;case 9:return _=u.type,v=u.pendingProps.children,jl(u,p),_=wr(_),v=v(_),u.flags|=1,bi(l,u,v,p),u.child;case 14:return v=u.type,_=Yr(v,u.pendingProps),_=Yr(v.type,_),QI(l,u,v,_,p);case 15:return RI(l,u,u.type,u.pendingProps,p);case 17:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Yr(v,_),l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),u.tag=1,L(v)?(l=!0,we(u)):l=!1,jl(u,p),Xv(u,v,_),Im(u,v,_,p),Om(null,u,v,!0,l,p);case 19:return GI(l,u,p);case 22:return TI(l,u,p)}throw Error(o(156,u.tag))};function ux(l,u){return hm(l,u)}function d3(l,u,p,v){this.tag=l,this.key=p,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=v,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function br(l,u,p,v){return new d3(l,u,p,v)}function c0(l){return l=l.prototype,!(!l||!l.isReactComponent)}function p3(l){if(typeof l=="function")return c0(l)?1:0;if(l!=null){if(l=l.$$typeof,l===x)return 11;if(l===I)return 14}return 2}function wo(l,u){var p=l.alternate;return p===null?(p=br(l.tag,u,l.key,l.mode),p.elementType=l.elementType,p.type=l.type,p.stateNode=l.stateNode,p.alternate=l,l.alternate=p):(p.pendingProps=u,p.type=l.type,p.flags=0,p.subtreeFlags=0,p.deletions=null),p.flags=l.flags&14680064,p.childLanes=l.childLanes,p.lanes=l.lanes,p.child=l.child,p.memoizedProps=l.memoizedProps,p.memoizedState=l.memoizedState,p.updateQueue=l.updateQueue,u=l.dependencies,p.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},p.sibling=l.sibling,p.index=l.index,p.ref=l.ref,p}function Hf(l,u,p,v,_,Q){var W=2;if(v=l,typeof l=="function")c0(l)&&(W=1);else if(typeof l=="string")W=5;else e:switch(l){case h:return Wa(p.children,_,Q,u);case f:W=8,_|=8;break;case d:return l=br(12,p,u,_|2),l.elementType=d,l.lanes=Q,l;case C:return l=br(13,p,u,_),l.elementType=C,l.lanes=Q,l;case g:return l=br(19,p,u,_),l.elementType=g,l.lanes=Q,l;case B:return zf(p,_,Q,u);default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case m:W=10;break e;case E:W=9;break e;case x:W=11;break e;case I:W=14;break e;case y:W=16,v=null;break e}throw Error(o(130,l==null?l:typeof l,""))}return u=br(W,p,u,_),u.elementType=l,u.type=v,u.lanes=Q,u}function Wa(l,u,p,v){return l=br(7,l,v,u),l.lanes=p,l}function zf(l,u,p,v){return l=br(22,l,v,u),l.elementType=B,l.lanes=p,l.stateNode={},l}function u0(l,u,p){return l=br(6,l,null,u),l.lanes=p,l}function A0(l,u,p){return u=br(4,l.children!==null?l.children:[],l.key,u),u.lanes=p,u.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},u}function g3(l,u,p,v,_){this.tag=u,this.containerInfo=l,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=Ie,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=cr(0),this.expirationTimes=cr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=cr(0),this.identifierPrefix=v,this.onRecoverableError=_,Ee&&(this.mutableSourceEagerHydrationData=null)}function Ax(l,u,p,v,_,Q,W,le,Re){return l=new g3(l,u,p,le,Re),u===1?(u=1,Q===!0&&(u|=8)):u=0,Q=br(3,null,null,u),l.current=Q,Q.stateNode=l,Q.memoizedState={element:v,isDehydrated:p,cache:null,transitions:null},ym(Q),l}function hx(l){if(!l)return Ei;l=l._reactInternals;e:{if(J(l)!==l||l.tag!==1)throw Error(o(170));var u=l;do{switch(u.tag){case 3:u=u.stateNode.context;break e;case 1:if(L(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break e}}u=u.return}while(u!==null);throw Error(o(171))}if(l.tag===1){var p=l.type;if(L(p))return pe(l,p,u)}return u}function fx(l){var u=l._reactInternals;if(u===void 0)throw typeof l.render=="function"?Error(o(188)):(l=Object.keys(l).join(","),Error(o(268,l)));return l=K(u),l===null?null:l.stateNode}function dx(l,u){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var p=l.retryLane;l.retryLane=p!==0&&p=He&&Q>=Mt&&_<=rt&&W<=mt){l.splice(u,1);break}else if(v!==He||p.width!==Re.width||mtW){if(!(Q!==Mt||p.height!==Re.height||rt_)){He>v&&(Re.width+=He-v,Re.x=v),rt<_&&(Re.width=_-He),l.splice(u,1);break}}else{Mt>Q&&(Re.height+=Mt-Q,Re.y=Q),mtp&&(p=W)),Wa0&&(u.flags|=128,v=!0,Ju(_,!1),u.lanes=4194304)}else{if(!v)if(l=df(Q),l!==null){if(u.flags|=128,v=!0,l=l.updateQueue,l!==null&&(u.updateQueue=l,u.flags|=4),Ju(_,!0),_.tail===null&&_.tailMode==="hidden"&&!Q.alternate&&!Bn)return xi(u),null}else 2*ri()-_.renderingStartTime>a0&&g!==1073741824&&(u.flags|=128,v=!0,Ju(_,!1),u.lanes=4194304);_.isBackwards?(Q.sibling=u.child,u.child=Q):(l=_.last,l!==null?l.sibling=Q:u.child=Q,_.last=Q)}return _.tail!==null?(u=_.tail,_.rendering=u,_.tail=u.sibling,_.renderingStartTime=ri(),u.sibling=null,l=Mn.current,et(Mn,v?l&1|2:l&1),u):(xi(u),null);case 22:case 23:return h0(),v=u.memoizedState!==null,l!==null&&l.memoizedState!==null!==v&&(u.flags|=8192),v&&u.mode&1?dr&1073741824&&(xi(u),Be&&u.subtreeFlags&6&&(u.flags|=8192)):xi(u),null;case 24:return null;case 25:return null}throw Error(o(156,u.tag))}var d3=a.ReactCurrentOwner,fr=!1;function Li(l,u,g,v){u.child=l===null?uI(u,null,g,v):rc(u,l.child,g,v)}function UI(l,u,g,v,_){g=g.render;var Q=u.ref;return ec(u,_),v=Fm(l,u,g,v,Q,_),g=km(),l!==null&&!fr?(u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~_,Xs(l,u,_)):(Bn&&g&&Mm(u),u.flags|=1,Li(l,u,v,_),u.child)}function FI(l,u,g,v,_){if(l===null){var Q=g.type;return typeof Q=="function"&&!d0(Q)&&Q.defaultProps===void 0&&g.compare===null&&g.defaultProps===void 0?(u.tag=15,u.type=Q,kI(l,u,Q,v,_)):(l=Vf(g.type,null,v,u,u.mode,_),l.ref=u.ref,l.return=u,u.child=l)}if(Q=l.child,!(l.lanes&_)){var W=Q.memoizedProps;if(g=g.compare,g=g!==null?g:sf,g(W,v)&&l.ref===u.ref)return Xs(l,u,_)}return u.flags|=1,l=Oo(Q,v),l.ref=u.ref,l.return=u,u.child=l}function kI(l,u,g,v,_){if(l!==null&&sf(l.memoizedProps,v)&&l.ref===u.ref)if(fr=!1,(l.lanes&_)!==0)l.flags&131072&&(fr=!0);else return u.lanes=l.lanes,Xs(l,u,_);return Wm(l,u,g,v,_)}function GI(l,u,g){var v=u.pendingProps,_=v.children,Q=l!==null?l.memoizedState:null;if(v.mode==="hidden")if(!(u.mode&1))u.memoizedState={baseLanes:0,cachePool:null},et(lc,dr),dr|=g;else if(g&1073741824)u.memoizedState={baseLanes:0,cachePool:null},v=Q!==null?Q.baseLanes:g,et(lc,dr),dr|=v;else return l=Q!==null?Q.baseLanes|g:g,u.lanes=u.childLanes=1073741824,u.memoizedState={baseLanes:l,cachePool:null},u.updateQueue=null,et(lc,dr),dr|=l,null;else Q!==null?(v=Q.baseLanes|g,u.memoizedState=null):v=g,et(lc,dr),dr|=v;return Li(l,u,_,g),u.child}function OI(l,u){var g=u.ref;(l===null&&g!==null||l!==null&&l.ref!==g)&&(u.flags|=512,u.flags|=2097152)}function Wm(l,u,g,v,_){var Q=L(g)?lr:yt.current;return Q=N(u,Q),ec(u,_),g=Fm(l,u,g,v,Q,_),v=km(),l!==null&&!fr?(u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~_,Xs(l,u,_)):(Bn&&v&&Mm(u),u.flags|=1,Li(l,u,g,_),u.child)}function HI(l,u,g,v,_){if(L(g)){var Q=!0;we(u)}else Q=!1;if(ec(u,_),u.stateNode===null)l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),nI(u,g,v),wm(u,g,v,_),v=!0;else if(l===null){var W=u.stateNode,ce=u.memoizedProps;W.props=ce;var Re=W.context,He=g.contextType;typeof He=="object"&&He!==null?He=wr(He):(He=L(g)?lr:yt.current,He=N(u,He));var rt=g.getDerivedStateFromProps,Mt=typeof rt=="function"||typeof W.getSnapshotBeforeUpdate=="function";Mt||typeof W.UNSAFE_componentWillReceiveProps!="function"&&typeof W.componentWillReceiveProps!="function"||(ce!==v||Re!==He)&&iI(u,W,v,He),Lo=!1;var mt=u.memoizedState;W.state=mt,cf(u,v,W,_),Re=u.memoizedState,ce!==v||mt!==Re||An.current||Lo?(typeof rt=="function"&&(Sm(u,g,rt,v),Re=u.memoizedState),(ce=Lo||tI(u,g,ce,v,mt,Re,He))?(Mt||typeof W.UNSAFE_componentWillMount!="function"&&typeof W.componentWillMount!="function"||(typeof W.componentWillMount=="function"&&W.componentWillMount(),typeof W.UNSAFE_componentWillMount=="function"&&W.UNSAFE_componentWillMount()),typeof W.componentDidMount=="function"&&(u.flags|=4194308)):(typeof W.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=v,u.memoizedState=Re),W.props=v,W.state=Re,W.context=He,v=ce):(typeof W.componentDidMount=="function"&&(u.flags|=4194308),v=!1)}else{W=u.stateNode,jv(l,u),ce=u.memoizedProps,He=u.type===u.elementType?ce:Xr(u.type,ce),W.props=He,Mt=u.pendingProps,mt=W.context,Re=g.contextType,typeof Re=="object"&&Re!==null?Re=wr(Re):(Re=L(g)?lr:yt.current,Re=N(u,Re));var hn=g.getDerivedStateFromProps;(rt=typeof hn=="function"||typeof W.getSnapshotBeforeUpdate=="function")||typeof W.UNSAFE_componentWillReceiveProps!="function"&&typeof W.componentWillReceiveProps!="function"||(ce!==Mt||mt!==Re)&&iI(u,W,v,Re),Lo=!1,mt=u.memoizedState,W.state=mt,cf(u,v,W,_);var ut=u.memoizedState;ce!==Mt||mt!==ut||An.current||Lo?(typeof hn=="function"&&(Sm(u,g,hn,v),ut=u.memoizedState),(He=Lo||tI(u,g,He,v,mt,ut,Re)||!1)?(rt||typeof W.UNSAFE_componentWillUpdate!="function"&&typeof W.componentWillUpdate!="function"||(typeof W.componentWillUpdate=="function"&&W.componentWillUpdate(v,ut,Re),typeof W.UNSAFE_componentWillUpdate=="function"&&W.UNSAFE_componentWillUpdate(v,ut,Re)),typeof W.componentDidUpdate=="function"&&(u.flags|=4),typeof W.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof W.componentDidUpdate!="function"||ce===l.memoizedProps&&mt===l.memoizedState||(u.flags|=4),typeof W.getSnapshotBeforeUpdate!="function"||ce===l.memoizedProps&&mt===l.memoizedState||(u.flags|=1024),u.memoizedProps=v,u.memoizedState=ut),W.props=v,W.state=ut,W.context=Re,v=He):(typeof W.componentDidUpdate!="function"||ce===l.memoizedProps&&mt===l.memoizedState||(u.flags|=4),typeof W.getSnapshotBeforeUpdate!="function"||ce===l.memoizedProps&&mt===l.memoizedState||(u.flags|=1024),v=!1)}return Ym(l,u,g,v,Q,_)}function Ym(l,u,g,v,_,Q){OI(l,u);var W=(u.flags&128)!==0;if(!v&&!W)return _&&Pe(u,g,!1),Xs(l,u,Q);v=u.stateNode,d3.current=u;var ce=W&&typeof g.getDerivedStateFromError!="function"?null:v.render();return u.flags|=1,l!==null&&W?(u.child=rc(u,l.child,null,Q),u.child=rc(u,null,ce,Q)):Li(l,u,ce,Q),u.memoizedState=v.state,_&&Pe(u,g,!0),u.child}function zI(l){var u=l.stateNode;u.pendingContext?ae(l,u.pendingContext,u.pendingContext!==u.context):u.context&&ae(l,u.context,!1),bm(l,u.containerInfo)}function VI(l,u,g,v,_){return ic(),Dm(_),u.flags|=256,Li(l,u,g,v),u.child}var Bf={dehydrated:null,treeContext:null,retryLane:0};function _f(l){return{baseLanes:l,cachePool:null}}function WI(l,u,g){var v=u.pendingProps,_=Mn.current,Q=!1,W=(u.flags&128)!==0,ce;if((ce=W)||(ce=l!==null&&l.memoizedState===null?!1:(_&2)!==0),ce?(Q=!0,u.flags&=-129):(l===null||l.memoizedState!==null)&&(_|=1),et(Mn,_&1),l===null)return Tm(u),l=u.memoizedState,l!==null&&(l=l.dehydrated,l!==null)?(u.mode&1?di(l)?u.lanes=8:u.lanes=1073741824:u.lanes=1,null):(_=v.children,l=v.fallback,Q?(v=u.mode,Q=u.child,_={mode:"hidden",children:_},!(v&1)&&Q!==null?(Q.childLanes=0,Q.pendingProps=_):Q=Wf(_,v,0,null),l=$a(l,v,g,null),Q.return=u,l.return=u,Q.sibling=l,u.child=Q,u.child.memoizedState=_f(g),u.memoizedState=Bf,l):Xm(u,_));if(_=l.memoizedState,_!==null){if(ce=_.dehydrated,ce!==null){if(W)return u.flags&256?(u.flags&=-257,Sf(l,u,g,Error(o(422)))):u.memoizedState!==null?(u.child=l.child,u.flags|=128,null):(Q=v.fallback,_=u.mode,v=Wf({mode:"visible",children:v.children},_,0,null),Q=$a(Q,_,g,null),Q.flags|=2,v.return=u,Q.return=u,v.sibling=Q,u.child=v,u.mode&1&&rc(u,l.child,null,g),u.child.memoizedState=_f(g),u.memoizedState=Bf,Q);if(!(u.mode&1))u=Sf(l,u,g,null);else if(di(ce))u=Sf(l,u,g,Error(o(419)));else if(v=(g&l.childLanes)!==0,fr||v){if(v=Xn,v!==null){switch(g&-g){case 4:Q=2;break;case 16:Q=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:Q=32;break;case 536870912:Q=268435456;break;default:Q=0}v=Q&(v.suspendedLanes|g)?0:Q,v!==0&&v!==_.retryLane&&(_.retryLane=v,Dr(l,v,-1))}f0(),u=Sf(l,u,g,Error(o(421)))}else za(ce)?(u.flags|=128,u.child=l.child,u=w3.bind(null,l),Gs(ce,u),u=null):(g=_.treeContext,Ee&&(hr=bo(ce),Ar=u,Bn=!0,Jr=null,Uu=!1,g!==null&&(Mr[Qr++]=Vs,Mr[Qr++]=Ws,Mr[Qr++]=Wa,Vs=g.id,Ws=g.overflow,Wa=u)),u=Xm(u,u.pendingProps.children),u.flags|=4096);return u}return Q?(v=XI(l,u,v.children,v.fallback,g),Q=u.child,_=l.child.memoizedState,Q.memoizedState=_===null?_f(g):{baseLanes:_.baseLanes|g,cachePool:null},Q.childLanes=l.childLanes&~g,u.memoizedState=Bf,v):(g=YI(l,u,v.children,g),u.memoizedState=null,g)}return Q?(v=XI(l,u,v.children,v.fallback,g),Q=u.child,_=l.child.memoizedState,Q.memoizedState=_===null?_f(g):{baseLanes:_.baseLanes|g,cachePool:null},Q.childLanes=l.childLanes&~g,u.memoizedState=Bf,v):(g=YI(l,u,v.children,g),u.memoizedState=null,g)}function Xm(l,u){return u=Wf({mode:"visible",children:u},l.mode,0,null),u.return=l,l.child=u}function YI(l,u,g,v){var _=l.child;return l=_.sibling,g=Oo(_,{mode:"visible",children:g}),!(u.mode&1)&&(g.lanes=v),g.return=u,g.sibling=null,l!==null&&(v=u.deletions,v===null?(u.deletions=[l],u.flags|=16):v.push(l)),u.child=g}function XI(l,u,g,v,_){var Q=u.mode;l=l.child;var W=l.sibling,ce={mode:"hidden",children:g};return!(Q&1)&&u.child!==l?(g=u.child,g.childLanes=0,g.pendingProps=ce,u.deletions=null):(g=Oo(l,ce),g.subtreeFlags=l.subtreeFlags&14680064),W!==null?v=Oo(W,v):(v=$a(v,Q,_,null),v.flags|=2),v.return=u,g.return=u,g.sibling=v,u.child=g,v}function Sf(l,u,g,v){return v!==null&&Dm(v),rc(u,l.child,null,g),l=Xm(u,u.pendingProps.children),l.flags|=2,u.memoizedState=null,l}function JI(l,u,g){l.lanes|=u;var v=l.alternate;v!==null&&(v.lanes|=u),Bm(l.return,u,g)}function Jm(l,u,g,v,_){var Q=l.memoizedState;Q===null?l.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:v,tail:g,tailMode:_}:(Q.isBackwards=u,Q.rendering=null,Q.renderingStartTime=0,Q.last=v,Q.tail=g,Q.tailMode=_)}function KI(l,u,g){var v=u.pendingProps,_=v.revealOrder,Q=v.tail;if(Li(l,u,v.children,g),v=Mn.current,v&2)v=v&1|2,u.flags|=128;else{if(l!==null&&l.flags&128)e:for(l=u.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&JI(l,g,u);else if(l.tag===19)JI(l,g,u);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===u)break e;for(;l.sibling===null;){if(l.return===null||l.return===u)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}v&=1}if(et(Mn,v),!(u.mode&1))u.memoizedState=null;else switch(_){case"forwards":for(g=u.child,_=null;g!==null;)l=g.alternate,l!==null&&df(l)===null&&(_=g),g=g.sibling;g=_,g===null?(_=u.child,u.child=null):(_=g.sibling,g.sibling=null),Jm(u,!1,_,g,Q);break;case"backwards":for(g=null,_=u.child,u.child=null;_!==null;){if(l=_.alternate,l!==null&&df(l)===null){u.child=_;break}l=_.sibling,_.sibling=g,g=_,_=l}Jm(u,!0,g,null,Q);break;case"together":Jm(u,!1,null,null,void 0);break;default:u.memoizedState=null}return u.child}function Xs(l,u,g){if(l!==null&&(u.dependencies=l.dependencies),cc|=u.lanes,!(g&u.childLanes))return null;if(l!==null&&u.child!==l.child)throw Error(o(153));if(u.child!==null){for(l=u.child,g=Oo(l,l.pendingProps),u.child=g,g.return=u;l.sibling!==null;)l=l.sibling,g=g.sibling=Oo(l,l.pendingProps),g.return=u;g.sibling=null}return u.child}function p3(l,u,g){switch(u.tag){case 3:zI(u),ic();break;case 5:AI(u);break;case 1:L(u.type)&&we(u);break;case 4:bm(u,u.stateNode.containerInfo);break;case 10:qv(u,u.type._context,u.memoizedProps.value);break;case 13:var v=u.memoizedState;if(v!==null)return v.dehydrated!==null?(et(Mn,Mn.current&1),u.flags|=128,null):g&u.child.childLanes?WI(l,u,g):(et(Mn,Mn.current&1),l=Xs(l,u,g),l!==null?l.sibling:null);et(Mn,Mn.current&1);break;case 19:if(v=(g&u.childLanes)!==0,l.flags&128){if(v)return KI(l,u,g);u.flags|=128}var _=u.memoizedState;if(_!==null&&(_.rendering=null,_.tail=null,_.lastEffect=null),et(Mn,Mn.current),v)break;return null;case 22:case 23:return u.lanes=0,GI(l,u,g)}return Xs(l,u,g)}function g3(l,u){switch(Qm(u),u.tag){case 1:return L(u.type)&&j(),l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 3:return oc(),Et(An),Et(yt),Pm(),l=u.flags,l&65536&&!(l&128)?(u.flags=l&-65537|128,u):null;case 5:return Nm(u),null;case 13:if(Et(Mn),l=u.memoizedState,l!==null&&l.dehydrated!==null){if(u.alternate===null)throw Error(o(340));ic()}return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 19:return Et(Mn),null;case 4:return oc(),null;case 10:return xm(u.type._context),null;case 22:case 23:return h0(),null;case 24:return null;default:return null}}var wf=!1,Ja=!1,m3=typeof WeakSet=="function"?WeakSet:Set,Ke=null;function Mf(l,u){var g=l.ref;if(g!==null)if(typeof g=="function")try{g(null)}catch(v){$i(l,u,v)}else g.current=null}function Km(l,u,g){try{g()}catch(v){$i(l,u,v)}}var qI=!1;function E3(l,u){for($(l.containerInfo),Ke=u;Ke!==null;)if(l=Ke,u=l.child,(l.subtreeFlags&1028)!==0&&u!==null)u.return=l,Ke=u;else for(;Ke!==null;){l=Ke;try{var g=l.alternate;if(l.flags&1024)switch(l.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var v=g.memoizedProps,_=g.memoizedState,Q=l.stateNode,W=Q.getSnapshotBeforeUpdate(l.elementType===l.type?v:Xr(l.type,v),_);Q.__reactInternalSnapshotBeforeUpdate=W}break;case 3:Be&&Ge(l.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(ce){$i(l,l.return,ce)}if(u=l.sibling,u!==null){u.return=l.return,Ke=u;break}Ke=l.return}return g=qI,qI=!1,g}function Ka(l,u,g){var v=u.updateQueue;if(v=v!==null?v.lastEffect:null,v!==null){var _=v=v.next;do{if((_.tag&l)===l){var Q=_.destroy;_.destroy=void 0,Q!==void 0&&Km(u,g,Q)}_=_.next}while(_!==v)}}function Ku(l,u){if(u=u.updateQueue,u=u!==null?u.lastEffect:null,u!==null){var g=u=u.next;do{if((g.tag&l)===l){var v=g.create;g.destroy=v()}g=g.next}while(g!==u)}}function qm(l){var u=l.ref;if(u!==null){var g=l.stateNode;switch(l.tag){case 5:l=te(g);break;default:l=g}typeof u=="function"?u(l):u.current=l}}function jI(l,u,g){if(ps&&typeof ps.onCommitFiberUnmount=="function")try{ps.onCommitFiberUnmount(nf,u)}catch{}switch(u.tag){case 0:case 11:case 14:case 15:if(l=u.updateQueue,l!==null&&(l=l.lastEffect,l!==null)){var v=l=l.next;do{var _=v,Q=_.destroy;_=_.tag,Q!==void 0&&(_&2||_&4)&&Km(u,g,Q),v=v.next}while(v!==l)}break;case 1:if(Mf(u,g),l=u.stateNode,typeof l.componentWillUnmount=="function")try{l.props=u.memoizedProps,l.state=u.memoizedState,l.componentWillUnmount()}catch(W){$i(u,g,W)}break;case 5:Mf(u,g);break;case 4:Be?ix(l,u,g):H&&H&&(u=u.stateNode.containerInfo,g=it(u),Wt(u,g))}}function ZI(l,u,g){for(var v=u;;)if(jI(l,v,g),v.child===null||Be&&v.tag===4){if(v===u)break;for(;v.sibling===null;){if(v.return===null||v.return===u)return;v=v.return}v.sibling.return=v.return,v=v.sibling}else v.child.return=v,v=v.child}function $I(l){var u=l.alternate;u!==null&&(l.alternate=null,$I(u)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(u=l.stateNode,u!==null&&Te(u)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}function ex(l){return l.tag===5||l.tag===3||l.tag===4}function tx(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||ex(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function nx(l){if(Be){e:{for(var u=l.return;u!==null;){if(ex(u))break e;u=u.return}throw Error(o(160))}var g=u;switch(g.tag){case 5:u=g.stateNode,g.flags&32&&(Pt(u),g.flags&=-33),g=tx(l),Zm(l,g,u);break;case 3:case 4:u=g.stateNode.containerInfo,g=tx(l),jm(l,g,u);break;default:throw Error(o(161))}}}function jm(l,u,g){var v=l.tag;if(v===5||v===6)l=l.stateNode,u?ot(g,l,u):Ct(g,l);else if(v!==4&&(l=l.child,l!==null))for(jm(l,u,g),l=l.sibling;l!==null;)jm(l,u,g),l=l.sibling}function Zm(l,u,g){var v=l.tag;if(v===5||v===6)l=l.stateNode,u?dt(g,l,u):at(g,l);else if(v!==4&&(l=l.child,l!==null))for(Zm(l,u,g),l=l.sibling;l!==null;)Zm(l,u,g),l=l.sibling}function ix(l,u,g){for(var v=u,_=!1,Q,W;;){if(!_){_=v.return;e:for(;;){if(_===null)throw Error(o(160));switch(Q=_.stateNode,_.tag){case 5:W=!1;break e;case 3:Q=Q.containerInfo,W=!0;break e;case 4:Q=Q.containerInfo,W=!0;break e}_=_.return}_=!0}if(v.tag===5||v.tag===6)ZI(l,v,g),W?vt(Q,v.stateNode):tt(Q,v.stateNode);else if(v.tag===18)W?ve(Q,v.stateNode):Se(Q,v.stateNode);else if(v.tag===4){if(v.child!==null){Q=v.stateNode.containerInfo,W=!0,v.child.return=v,v=v.child;continue}}else if(jI(l,v,g),v.child!==null){v.child.return=v,v=v.child;continue}if(v===u)break;for(;v.sibling===null;){if(v.return===null||v.return===u)return;v=v.return,v.tag===4&&(_=!1)}v.sibling.return=v.return,v=v.sibling}}function $m(l,u){if(Be){switch(u.tag){case 0:case 11:case 14:case 15:Ka(3,u,u.return),Ku(3,u),Ka(5,u,u.return);return;case 1:return;case 5:var g=u.stateNode;if(g!=null){var v=u.memoizedProps;l=l!==null?l.memoizedProps:v;var _=u.type,Q=u.updateQueue;u.updateQueue=null,Q!==null&&Bt(g,Q,_,l,v,u)}return;case 6:if(u.stateNode===null)throw Error(o(162));g=u.memoizedProps,Le(u.stateNode,l!==null?l.memoizedProps:g,g);return;case 3:Ee&&l!==null&&l.memoizedState.isDehydrated&&pe(u.stateNode.containerInfo);return;case 12:return;case 13:Qf(u);return;case 19:Qf(u);return;case 17:return}throw Error(o(163))}switch(u.tag){case 0:case 11:case 14:case 15:Ka(3,u,u.return),Ku(3,u),Ka(5,u,u.return);return;case 12:return;case 13:Qf(u);return;case 19:Qf(u);return;case 3:Ee&&l!==null&&l.memoizedState.isDehydrated&&pe(u.stateNode.containerInfo);break;case 22:case 23:return}e:if(H){switch(u.tag){case 1:case 5:case 6:break e;case 3:case 4:u=u.stateNode,Wt(u.containerInfo,u.pendingChildren);break e}throw Error(o(163))}}function Qf(l){var u=l.updateQueue;if(u!==null){l.updateQueue=null;var g=l.stateNode;g===null&&(g=l.stateNode=new m3),u.forEach(function(v){var _=M3.bind(null,l,v);g.has(v)||(g.add(v),v.then(_,_))})}}function C3(l,u){for(Ke=u;Ke!==null;){u=Ke;var g=u.deletions;if(g!==null)for(var v=0;v";case Tf:return":has("+(n0(l)||"")+")";case Df:return'[role="'+l.value+'"]';case Nf:return'"'+l.value+'"';case bf:return'[data-testname="'+l.value+'"]';default:throw Error(o(365))}}function lx(l,u){var g=[];l=[l,0];for(var v=0;v_&&(_=W),v&=~Q}if(v=_,v=ri()-v,v=(120>v?120:480>v?480:1080>v?1080:1920>v?1920:3e3>v?3e3:4320>v?4320:1960*v3(v/1960))-v,10l?16:l,Fo===null)var v=!1;else{if(l=Fo,Fo=null,kf=0,Ut&6)throw Error(o(331));var _=Ut;for(Ut|=4,Ke=l.current;Ke!==null;){var Q=Ke,W=Q.child;if(Ke.flags&16){var ce=Q.deletions;if(ce!==null){for(var Re=0;Reri()-o0?qa(l,0):s0|=g),Zi(l,u)}function mx(l,u){u===0&&(l.mode&1?(u=kt,kt<<=1,!(kt&130023424)&&(kt=4194304)):u=1);var g=Pi();l=Hf(l,u),l!==null&&(No(l,u,g),Zi(l,g))}function w3(l){var u=l.memoizedState,g=0;u!==null&&(g=u.retryLane),mx(l,g)}function M3(l,u){var g=0;switch(l.tag){case 13:var v=l.stateNode,_=l.memoizedState;_!==null&&(g=_.retryLane);break;case 19:v=l.stateNode;break;default:throw Error(o(314))}v!==null&&v.delete(u),mx(l,g)}var Ex;Ex=function(l,u,g){if(l!==null)if(l.memoizedProps!==u.pendingProps||An.current)fr=!0;else{if(!(l.lanes&g)&&!(u.flags&128))return fr=!1,p3(l,u,g);fr=!!(l.flags&131072)}else fr=!1,Bn&&u.flags&1048576&&rI(u,hf,u.index);switch(u.lanes=0,u.tag){case 2:var v=u.type;l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),l=u.pendingProps;var _=N(u,yt.current);ec(u,g),_=Fm(null,u,v,l,_,g);var Q=km();return u.flags|=1,typeof _=="object"&&_!==null&&typeof _.render=="function"&&_.$$typeof===void 0?(u.tag=1,u.memoizedState=null,u.updateQueue=null,L(v)?(Q=!0,we(u)):Q=!1,u.memoizedState=_.state!==null&&_.state!==void 0?_.state:null,_m(u),_.updater=uf,u.stateNode=_,_._reactInternals=u,wm(u,v,l,g),u=Ym(null,u,v,!0,Q,g)):(u.tag=0,Bn&&Q&&Mm(u),Li(null,u,_,g),u=u.child),u;case 16:v=u.elementType;e:{switch(l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),l=u.pendingProps,_=v._init,v=_(v._payload),u.type=v,_=u.tag=R3(v),l=Xr(v,l),_){case 0:u=Wm(null,u,v,l,g);break e;case 1:u=HI(null,u,v,l,g);break e;case 11:u=UI(null,u,v,l,g);break e;case 14:u=FI(null,u,v,Xr(v.type,l),g);break e}throw Error(o(306,v,""))}return u;case 0:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Xr(v,_),Wm(l,u,v,_,g);case 1:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Xr(v,_),HI(l,u,v,_,g);case 3:e:{if(zI(u),l===null)throw Error(o(387));v=u.pendingProps,Q=u.memoizedState,_=Q.element,jv(l,u),cf(u,v,null,g);var W=u.memoizedState;if(v=W.element,Ee&&Q.isDehydrated)if(Q={element:v,isDehydrated:!1,cache:W.cache,transitions:W.transitions},u.updateQueue.baseState=Q,u.memoizedState=Q,u.flags&256){_=Error(o(423)),u=VI(l,u,v,g,_);break e}else if(v!==_){_=Error(o(424)),u=VI(l,u,v,g,_);break e}else for(Ee&&(hr=Do(u.stateNode.containerInfo),Ar=u,Bn=!0,Jr=null,Uu=!1),g=uI(u,null,v,g),u.child=g;g;)g.flags=g.flags&-3|4096,g=g.sibling;else{if(ic(),v===_){u=Xs(l,u,g);break e}Li(l,u,v,g)}u=u.child}return u;case 5:return AI(u),l===null&&Tm(u),v=u.type,_=u.pendingProps,Q=l!==null?l.memoizedProps:null,W=_.children,O(v,_)?W=null:Q!==null&&O(v,Q)&&(u.flags|=32),OI(l,u),Li(l,u,W,g),u.child;case 6:return l===null&&Tm(u),null;case 13:return WI(l,u,g);case 4:return bm(u,u.stateNode.containerInfo),v=u.pendingProps,l===null?u.child=rc(u,null,v,g):Li(l,u,v,g),u.child;case 11:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Xr(v,_),UI(l,u,v,_,g);case 7:return Li(l,u,u.pendingProps,g),u.child;case 8:return Li(l,u,u.pendingProps.children,g),u.child;case 12:return Li(l,u,u.pendingProps.children,g),u.child;case 10:e:{if(v=u.type._context,_=u.pendingProps,Q=u.memoizedProps,W=_.value,qv(u,v,W),Q!==null)if(gs(Q.value,W)){if(Q.children===_.children&&!An.current){u=Xs(l,u,g);break e}}else for(Q=u.child,Q!==null&&(Q.return=u);Q!==null;){var ce=Q.dependencies;if(ce!==null){W=Q.child;for(var Re=ce.firstContext;Re!==null;){if(Re.context===v){if(Q.tag===1){Re=zs(-1,g&-g),Re.tag=2;var He=Q.updateQueue;if(He!==null){He=He.shared;var rt=He.pending;rt===null?Re.next=Re:(Re.next=rt.next,rt.next=Re),He.pending=Re}}Q.lanes|=g,Re=Q.alternate,Re!==null&&(Re.lanes|=g),Bm(Q.return,g,u),ce.lanes|=g;break}Re=Re.next}}else if(Q.tag===10)W=Q.type===u.type?null:Q.child;else if(Q.tag===18){if(W=Q.return,W===null)throw Error(o(341));W.lanes|=g,ce=W.alternate,ce!==null&&(ce.lanes|=g),Bm(W,g,u),W=Q.sibling}else W=Q.child;if(W!==null)W.return=Q;else for(W=Q;W!==null;){if(W===u){W=null;break}if(Q=W.sibling,Q!==null){Q.return=W.return,W=Q;break}W=W.return}Q=W}Li(l,u,_.children,g),u=u.child}return u;case 9:return _=u.type,v=u.pendingProps.children,ec(u,g),_=wr(_),v=v(_),u.flags|=1,Li(l,u,v,g),u.child;case 14:return v=u.type,_=Xr(v,u.pendingProps),_=Xr(v.type,_),FI(l,u,v,_,g);case 15:return kI(l,u,u.type,u.pendingProps,g);case 17:return v=u.type,_=u.pendingProps,_=u.elementType===v?_:Xr(v,_),l!==null&&(l.alternate=null,u.alternate=null,u.flags|=2),u.tag=1,L(v)?(l=!0,we(u)):l=!1,ec(u,g),nI(u,v,_),wm(u,v,_,g),Ym(null,u,v,!0,l,g);case 19:return KI(l,u,g);case 22:return GI(l,u,g)}throw Error(o(156,u.tag))};function Cx(l,u){return mm(l,u)}function Q3(l,u,g,v){this.tag=l,this.key=g,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=v,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function br(l,u,g,v){return new Q3(l,u,g,v)}function d0(l){return l=l.prototype,!(!l||!l.isReactComponent)}function R3(l){if(typeof l=="function")return d0(l)?1:0;if(l!=null){if(l=l.$$typeof,l===x)return 11;if(l===I)return 14}return 2}function Oo(l,u){var g=l.alternate;return g===null?(g=br(l.tag,u,l.key,l.mode),g.elementType=l.elementType,g.type=l.type,g.stateNode=l.stateNode,g.alternate=l,l.alternate=g):(g.pendingProps=u,g.type=l.type,g.flags=0,g.subtreeFlags=0,g.deletions=null),g.flags=l.flags&14680064,g.childLanes=l.childLanes,g.lanes=l.lanes,g.child=l.child,g.memoizedProps=l.memoizedProps,g.memoizedState=l.memoizedState,g.updateQueue=l.updateQueue,u=l.dependencies,g.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},g.sibling=l.sibling,g.index=l.index,g.ref=l.ref,g}function Vf(l,u,g,v,_,Q){var W=2;if(v=l,typeof l=="function")d0(l)&&(W=1);else if(typeof l=="string")W=5;else e:switch(l){case h:return $a(g.children,_,Q,u);case f:W=8,_|=8;break;case d:return l=br(12,g,u,_|2),l.elementType=d,l.lanes=Q,l;case C:return l=br(13,g,u,_),l.elementType=C,l.lanes=Q,l;case p:return l=br(19,g,u,_),l.elementType=p,l.lanes=Q,l;case B:return Wf(g,_,Q,u);default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case m:W=10;break e;case E:W=9;break e;case x:W=11;break e;case I:W=14;break e;case y:W=16,v=null;break e}throw Error(o(130,l==null?l:typeof l,""))}return u=br(W,g,u,_),u.elementType=l,u.type=v,u.lanes=Q,u}function $a(l,u,g,v){return l=br(7,l,v,u),l.lanes=g,l}function Wf(l,u,g,v){return l=br(22,l,v,u),l.elementType=B,l.lanes=g,l.stateNode={},l}function p0(l,u,g){return l=br(6,l,null,u),l.lanes=g,l}function g0(l,u,g){return u=br(4,l.children!==null?l.children:[],l.key,u),u.lanes=g,u.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},u}function T3(l,u,g,v,_){this.tag=u,this.containerInfo=l,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=Ie,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ur(0),this.expirationTimes=ur(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ur(0),this.identifierPrefix=v,this.onRecoverableError=_,Ee&&(this.mutableSourceEagerHydrationData=null)}function yx(l,u,g,v,_,Q,W,ce,Re){return l=new T3(l,u,g,ce,Re),u===1?(u=1,Q===!0&&(u|=8)):u=0,Q=br(3,null,null,u),l.current=Q,Q.stateNode=l,Q.memoizedState={element:v,isDehydrated:g,cache:null,transitions:null},_m(Q),l}function vx(l){if(!l)return yi;l=l._reactInternals;e:{if(K(l)!==l||l.tag!==1)throw Error(o(170));var u=l;do{switch(u.tag){case 3:u=u.stateNode.context;break e;case 1:if(L(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break e}}u=u.return}while(u!==null);throw Error(o(171))}if(l.tag===1){var g=l.type;if(L(g))return ge(l,g,u)}return u}function Ix(l){var u=l._reactInternals;if(u===void 0)throw typeof l.render=="function"?Error(o(188)):(l=Object.keys(l).join(","),Error(o(268,l)));return l=q(u),l===null?null:l.stateNode}function xx(l,u){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var g=l.retryLane;l.retryLane=g!==0&&g=He&&Q>=Mt&&_<=rt&&W<=mt){l.splice(u,1);break}else if(v!==He||g.width!==Re.width||mtW){if(!(Q!==Mt||g.height!==Re.height||rt_)){He>v&&(Re.width+=He-v,Re.x=v),rt<_&&(Re.width=_-He),l.splice(u,1);break}}else{Mt>Q&&(Re.height+=Mt-Q,Re.y=Q),mtg&&(g=W)),W ")+` No matching component was found for: - `)+l.join(" > ")}return null},t.getPublicRootInstance=function(l){if(l=l.current,!l.child)return null;switch(l.child.tag){case 5:return re(l.child.stateNode);default:return l.child.stateNode}},t.injectIntoDevTools=function(l){if(l={bundleType:l.bundleType,version:l.version,rendererPackageName:l.rendererPackageName,rendererConfig:l.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:a.ReactCurrentDispatcher,findHostInstanceByFiber:m3,findFiberByHostInstance:l.findFiberByHostInstance||E3,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")l=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)l=!0;else{try{ef=u.inject(l),fs=u}catch{}l=!!u.checkDCE}}return l},t.isAlreadyRendering=function(){return!1},t.observeVisibleRects=function(l,u,p,v){if(!D)throw Error(o(363));l=Zm(l,u);var _=qe(l,p,v).disconnect;return{disconnect:function(){_()}}},t.registerMutableSourceForHydration=function(l,u){var p=u._getVersion;p=p(u._source),l.mutableSourceEagerHydrationData==null?l.mutableSourceEagerHydrationData=[u,p]:l.mutableSourceEagerHydrationData.push(u,p)},t.runWithPriority=function(l,u){var p=Jt;try{return Jt=l,u()}finally{Jt=p}},t.shouldError=function(){return null},t.shouldSuspend=function(){return!1},t.updateContainer=function(l,u,p,v){var _=u.current,Q=Ni(),W=_o(_);return p=hx(p),u.context===null?u.context=p:u.pendingContext=p,u=Os(Q,W),u.payload={element:l},v=v===void 0?null:v,v!==null&&(u.callback=v),Io(_,u),l=Dr(_,W,Q),l!==null&&of(l,_,W),W},t};ER.exports=H8;var z8=ER.exports;const V8=VS(z8),_v={},W8=n=>void Object.assign(_v,n);function Y8(n,e){function t(h,{args:f=[],attach:d,...m},E){let x=`${h[0].toUpperCase()}${h.slice(1)}`,C;if(h==="primitive"){if(m.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const g=m.object;C=Nc(g,{type:h,root:E,attach:d,primitive:!0})}else{const g=_v[x];if(!g)throw new Error(`R3F: ${x} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(f))throw new Error("R3F: The args prop must be an array!");C=Nc(new g(...f),{type:h,root:E,attach:d,memoizedProps:{args:f}})}return C.__r3f.attach===void 0&&(C instanceof Tt?C.__r3f.attach="geometry":C instanceof Ai&&(C.__r3f.attach="material")),x!=="inject"&&BE(C,m),C}function i(h,f){let d=!1;if(f){var m,E;(m=f.__r3f)!=null&&m.attach?xE(h,f,f.__r3f.attach):f.isObject3D&&h.isObject3D&&(h.add(f),d=!0),d||(E=h.__r3f)==null||E.objects.push(f),f.__r3f||Nc(f,{}),f.__r3f.parent=h,Sy(f),Lc(f)}}function r(h,f,d){let m=!1;if(f){var E,x;if((E=f.__r3f)!=null&&E.attach)xE(h,f,f.__r3f.attach);else if(f.isObject3D&&h.isObject3D){f.parent=h,f.dispatchEvent({type:"added"});const C=h.children.filter(I=>I!==f),g=C.indexOf(d);h.children=[...C.slice(0,g),f,...C.slice(g)],m=!0}m||(x=h.__r3f)==null||x.objects.push(f),f.__r3f||Nc(f,{}),f.__r3f.parent=h,Sy(f),Lc(f)}}function s(h,f,d=!1){h&&[...h].forEach(m=>o(f,m,d))}function o(h,f,d){if(f){var m,E,x;if(f.__r3f&&(f.__r3f.parent=null),(m=h.__r3f)!=null&&m.objects&&(h.__r3f.objects=h.__r3f.objects.filter(B=>B!==f)),(E=f.__r3f)!=null&&E.attach)oS(h,f,f.__r3f.attach);else if(f.isObject3D&&h.isObject3D){var C;h.remove(f),(C=f.__r3f)!=null&&C.root&&$8(f.__r3f.root,f)}const I=(x=f.__r3f)==null?void 0:x.primitive,y=!I&&(d===void 0?f.dispose!==null:d);if(!I){var g;s((g=f.__r3f)==null?void 0:g.objects,f,y),s(f.children,f,y)}if(delete f.__r3f,y&&f.dispose&&f.type!=="Scene"){const B=()=>{try{f.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?By.unstable_scheduleCallback(By.unstable_IdlePriority,B):B()}Lc(h)}}function a(h,f,d,m){var E;const x=(E=h.__r3f)==null?void 0:E.parent;if(!x)return;const C=t(f,d,h.__r3f.root);if(h.children){for(const g of h.children)g.__r3f&&i(C,g);h.children=h.children.filter(g=>!g.__r3f)}h.__r3f.objects.forEach(g=>i(C,g)),h.__r3f.objects=[],h.__r3f.autoRemovedBeforeAppend||o(x,h),C.parent&&(C.__r3f.autoRemovedBeforeAppend=!0),i(x,C),C.raycast&&C.__r3f.eventCount&&C.__r3f.root.getState().internal.interaction.push(C),[m,m.alternate].forEach(g=>{g!==null&&(g.stateNode=C,g.ref&&(typeof g.ref=="function"?g.ref(C):g.ref.current=C))})}const c=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:V8({createInstance:t,removeChild:o,appendChild:i,appendInitialChild:i,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(h,f)=>{if(!f)return;const d=h.getState().scene;d.__r3f&&(d.__r3f.root=h,i(d,f))},removeChildFromContainer:(h,f)=>{f&&o(h.getState().scene,f)},insertInContainerBefore:(h,f,d)=>{if(!f||!d)return;const m=h.getState().scene;m.__r3f&&r(m,f,d)},getRootHostContext:()=>null,getChildHostContext:h=>h,finalizeInitialChildren(h){var f;return!!((f=h==null?void 0:h.__r3f)!=null?f:{}).handlers},prepareUpdate(h,f,d,m){var E;if(((E=h==null?void 0:h.__r3f)!=null?E:{}).primitive&&m.object&&m.object!==h)return[!0];{const{args:C=[],children:g,...I}=m,{args:y=[],children:B,...R}=d;if(!Array.isArray(C))throw new Error("R3F: the args prop must be an array!");if(C.some((T,P)=>T!==y[P]))return[!0];const w=wR(h,I,R,!0);return w.changes.length?[!1,w]:null}},commitUpdate(h,[f,d],m,E,x,C){f?a(h,m,x,C):BE(h,d)},commitMount(h,f,d,m){var E;const x=(E=h.__r3f)!=null?E:{};h.raycast&&x.handlers&&x.eventCount&&h.__r3f.root.getState().internal.interaction.push(h)},getPublicInstance:h=>h,prepareForCommit:()=>null,preparePortalMount:h=>Nc(h.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(h){var f;const{attach:d,parent:m}=(f=h.__r3f)!=null?f:{};d&&m&&oS(m,h,d),h.isObject3D&&(h.visible=!1),Lc(h)},unhideInstance(h,f){var d;const{attach:m,parent:E}=(d=h.__r3f)!=null?d:{};m&&E&&xE(E,h,m),(h.isObject3D&&f.visible==null||f.visible)&&(h.visible=!0),Lc(h)},createTextInstance:c,hideTextInstance:c,unhideTextInstance:c,getCurrentEventPriority:()=>e?e():$c.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&Bn.fun(performance.now)?performance.now:Bn.fun(Date.now)?Date.now:()=>0,scheduleTimeout:Bn.fun(setTimeout)?setTimeout:void 0,cancelTimeout:Bn.fun(clearTimeout)?clearTimeout:void 0}),applyProps:BE}}var nS,iS;const IE=n=>"colorSpace"in n||"outputColorSpace"in n,vR=()=>{var n;return(n=_v.ColorManagement)!=null?n:null},IR=n=>n&&n.isOrthographicCamera,X8=n=>n&&n.hasOwnProperty("current"),Vh=typeof window<"u"&&((nS=window.document)!=null&&nS.createElement||((iS=window.navigator)==null?void 0:iS.product)==="ReactNative")?$.useLayoutEffect:$.useEffect;function xR(n){const e=$.useRef(n);return Vh(()=>void(e.current=n),[n]),e}function J8({set:n}){return Vh(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}class BR extends $.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}BR.getDerivedStateFromError=()=>({error:!0});const _R="__default",rS=new Map,K8=n=>n&&!!n.memoized&&!!n.changes;function SR(n){var e;const t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}const gA=n=>{var e;return(e=n.__r3f)==null?void 0:e.root.getState()},Bn={obj:n=>n===Object(n)&&!Bn.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(Bn.str(n)||Bn.num(n))return n===e;const s=Bn.obj(n);if(s&&i==="reference")return n===e;const o=Bn.arr(n);if(o&&t==="reference")return n===e;if((o||s)&&n===e)return!0;let a;for(a in n)if(!(a in e))return!1;if(s&&t==="shallow"&&i==="shallow"){for(a in r?e:n)if(!Bn.equ(n[a],e[a],{strict:r,objects:"reference"}))return!1}else for(a in r?e:n)if(n[a]!==e[a])return!1;if(Bn.und(a)){if(o&&n.length===0&&e.length===0||s&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function q8(n){n.dispose&&n.type!=="Scene"&&n.dispose();for(const e in n)e.dispose==null||e.dispose(),delete n[e]}function Nc(n,e){const t=n;return t.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},n}function _y(n,e){let t=n;if(e.includes("-")){const i=e.split("-"),r=i.pop();return t=i.reduce((s,o)=>s[o],n),{target:t,key:r}}else return{target:t,key:e}}const sS=/-\d+$/;function xE(n,e,t){if(Bn.str(t)){if(sS.test(t)){const s=t.replace(sS,""),{target:o,key:a}=_y(n,s);Array.isArray(o[a])||(o[a]=[])}const{target:i,key:r}=_y(n,t);e.__r3f.previousAttach=i[r],i[r]=e}else e.__r3f.previousAttach=t(n,e)}function oS(n,e,t){var i,r;if(Bn.str(t)){const{target:s,key:o}=_y(n,t),a=e.__r3f.previousAttach;a===void 0?delete s[o]:s[o]=a}else(i=e.__r3f)==null||i.previousAttach==null||i.previousAttach(n,e);(r=e.__r3f)==null||delete r.previousAttach}function wR(n,{children:e,key:t,ref:i,...r},{children:s,key:o,ref:a,...c}={},A=!1){var h;const f=(h=n==null?void 0:n.__r3f)!=null?h:{},d=Object.entries(r),m=[];if(A){const x=Object.keys(c);for(let C=0;C{var g;if((g=n.__r3f)!=null&&g.primitive&&x==="object"||Bn.equ(C,c[x]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(x))return m.push([x,C,!0,[]]);let I=[];x.includes("-")&&(I=x.split("-")),m.push([x,C,!1,I]);for(const y in r){const B=r[y];y.startsWith(`${x}-`)&&m.push([y,B,!1,y.split("-")])}});const E={...r};return f.memoizedProps&&f.memoizedProps.args&&(E.args=f.memoizedProps.args),f.memoizedProps&&f.memoizedProps.attach&&(E.attach=f.memoizedProps.attach),{memoized:E,changes:m}}const j8=typeof process<"u"&&!1;function BE(n,e){var t,i,r;const s=(t=n.__r3f)!=null?t:{},o=s.root,a=(i=o==null||o.getState==null?void 0:o.getState())!=null?i:{},{memoized:c,changes:A}=K8(e)?e:wR(n,e),h=s.eventCount;n.__r3f&&(n.__r3f.memoizedProps=c);for(let d=0;dy[B],n),!(I&&I.set))){const[y,...B]=C.reverse();g=B.reverse().reduce((R,w)=>R[w],n),m=y}if(E===_R+"remove")if(g.constructor){let y=rS.get(g.constructor);y||(y=new g.constructor,rS.set(g.constructor,y)),E=y[m]}else E=0;if(x)E?s.handlers[m]=E:delete s.handlers[m],s.eventCount=Object.keys(s.handlers).length;else if(I&&I.set&&(I.copy||I instanceof _l)){if(Array.isArray(E))I.fromArray?I.fromArray(E):I.set(...E);else if(I.copy&&E&&E.constructor&&(j8?I.constructor.name===E.constructor.name:I.constructor===E.constructor))I.copy(E);else if(E!==void 0){const y=I instanceof Je;!y&&I.setScalar?I.setScalar(E):I instanceof _l&&E instanceof _l?I.mask=E.mask:I.set(E),!vR()&&!a.linear&&y&&I.convertSRGBToLinear()}}else if(g[m]=E,g[m]instanceof Sn&&g[m].format===ki&&g[m].type===Ts){const y=g[m];IE(y)&&IE(a.gl)?y.colorSpace=a.gl.outputColorSpace:y.encoding=a.gl.outputEncoding}Lc(n)}if(s.parent&&a.internal&&n.raycast&&h!==s.eventCount){const d=a.internal.interaction.indexOf(n);d>-1&&a.internal.interaction.splice(d,1),s.eventCount&&a.internal.interaction.push(n)}return!(A.length===1&&A[0][0]==="onUpdate")&&A.length&&(r=n.__r3f)!=null&&r.parent&&Sy(n),n}function Lc(n){var e,t;const i=(e=n.__r3f)==null||(t=e.root)==null||t.getState==null?void 0:t.getState();i&&i.internal.frames===0&&i.invalidate()}function Sy(n){n.onUpdate==null||n.onUpdate(n)}function MR(n,e){n.manual||(IR(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix(),n.updateMatrixWorld())}function Zd(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function Z8(){var n;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return $c.DefaultEventPriority;switch((n=e.event)==null?void 0:n.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return $c.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return $c.ContinuousEventPriority;default:return $c.DefaultEventPriority}}function QR(n,e,t,i){const r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function $8(n,e){const{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{QR(t.capturedMap,e,i,r)})}function e5(n){function e(c){const{internal:A}=n.getState(),h=c.offsetX-A.initialClick[0],f=c.offsetY-A.initialClick[1];return Math.round(Math.sqrt(h*h+f*f))}function t(c){return c.filter(A=>["Move","Over","Enter","Out","Leave"].some(h=>{var f;return(f=A.__r3f)==null?void 0:f.handlers["onPointer"+h]}))}function i(c,A){const h=n.getState(),f=new Set,d=[],m=A?A(h.internal.interaction):h.internal.interaction;for(let g=0;g{const y=gA(g.object),B=gA(I.object);return!y||!B?g.distance-I.distance:B.events.priority-y.events.priority||g.distance-I.distance}).filter(g=>{const I=Zd(g);return f.has(I)?!1:(f.add(I),!0)});h.events.filter&&(x=h.events.filter(x,h));for(const g of x){let I=g.object;for(;I;){var C;(C=I.__r3f)!=null&&C.eventCount&&d.push({...g,eventObject:I}),I=I.parent}}if("pointerId"in c&&h.internal.capturedMap.has(c.pointerId))for(let g of h.internal.capturedMap.get(c.pointerId).values())f.has(Zd(g.intersection))||d.push(g.intersection);return d}function r(c,A,h,f){const d=n.getState();if(c.length){const m={stopped:!1};for(const E of c){const x=gA(E.object)||d,{raycaster:C,pointer:g,camera:I,internal:y}=x,B=new G(g.x,g.y,0).unproject(I),R=M=>{var b,K;return(b=(K=y.capturedMap.get(M))==null?void 0:K.has(E.eventObject))!=null?b:!1},w=M=>{const b={intersection:E,target:A.target};y.capturedMap.has(M)?y.capturedMap.get(M).set(E.eventObject,b):y.capturedMap.set(M,new Map([[E.eventObject,b]])),A.target.setPointerCapture(M)},T=M=>{const b=y.capturedMap.get(M);b&&QR(y.capturedMap,E.eventObject,b,M)};let P={};for(let M in A){let b=A[M];typeof b!="function"&&(P[M]=b)}let J={...E,...P,pointer:g,intersections:c,stopped:m.stopped,delta:h,unprojectedPoint:B,ray:C.ray,camera:I,stopPropagation(){const M="pointerId"in A&&y.capturedMap.get(A.pointerId);if((!M||M.has(E.eventObject))&&(J.stopped=m.stopped=!0,y.hovered.size&&Array.from(y.hovered.values()).find(b=>b.eventObject===E.eventObject))){const b=c.slice(0,c.indexOf(E));s([...b,E])}},target:{hasPointerCapture:R,setPointerCapture:w,releasePointerCapture:T},currentTarget:{hasPointerCapture:R,setPointerCapture:w,releasePointerCapture:T},nativeEvent:A};if(f(J),m.stopped===!0)break}}return c}function s(c){const{internal:A}=n.getState();for(const h of A.hovered.values())if(!c.length||!c.find(f=>f.object===h.object&&f.index===h.index&&f.instanceId===h.instanceId)){const d=h.eventObject.__r3f,m=d==null?void 0:d.handlers;if(A.hovered.delete(Zd(h)),d!=null&&d.eventCount){const E={...h,intersections:c};m.onPointerOut==null||m.onPointerOut(E),m.onPointerLeave==null||m.onPointerLeave(E)}}}function o(c,A){for(let h=0;hs([]);case"onLostPointerCapture":return A=>{const{internal:h}=n.getState();"pointerId"in A&&h.capturedMap.has(A.pointerId)&&requestAnimationFrame(()=>{h.capturedMap.has(A.pointerId)&&(h.capturedMap.delete(A.pointerId),s([]))})}}return function(h){const{onPointerMissed:f,internal:d}=n.getState();d.lastEvent.current=h;const m=c==="onPointerMove",E=c==="onClick"||c==="onContextMenu"||c==="onDoubleClick",C=i(h,m?t:void 0),g=E?e(h):0;c==="onPointerDown"&&(d.initialClick=[h.offsetX,h.offsetY],d.initialHits=C.map(y=>y.eventObject)),E&&!C.length&&g<=2&&(o(h,d.interaction),f&&f(h)),m&&s(C);function I(y){const B=y.eventObject,R=B.__r3f,w=R==null?void 0:R.handlers;if(R!=null&&R.eventCount)if(m){if(w.onPointerOver||w.onPointerEnter||w.onPointerOut||w.onPointerLeave){const T=Zd(y),P=d.hovered.get(T);P?P.stopped&&y.stopPropagation():(d.hovered.set(T,y),w.onPointerOver==null||w.onPointerOver(y),w.onPointerEnter==null||w.onPointerEnter(y))}w.onPointerMove==null||w.onPointerMove(y)}else{const T=w[c];T?(!E||d.initialHits.includes(B))&&(o(h,d.interaction.filter(P=>!d.initialHits.includes(P))),T(y)):E&&d.initialHits.includes(B)&&o(h,d.interaction.filter(P=>!d.initialHits.includes(P)))}}r(C,h,g,I)}}return{handlePointer:a}}const t5=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],RR=n=>!!(n!=null&&n.render),Sv=$.createContext(null),n5=(n,e)=>{const t=mR((a,c)=>{const A=new G,h=new G,f=new G;function d(g=c().camera,I=h,y=c().size){const{width:B,height:R,top:w,left:T}=y,P=B/R;I instanceof G?f.copy(I):f.set(...I);const J=g.getWorldPosition(A).distanceTo(f);if(IR(g))return{width:B/g.zoom,height:R/g.zoom,top:w,left:T,factor:1,distance:J,aspect:P};{const M=g.fov*Math.PI/180,b=2*Math.tan(M/2)*J,K=b*(B/R);return{width:K,height:b,top:w,left:T,factor:B/K,distance:J,aspect:P}}}let m;const E=g=>a(I=>({performance:{...I.performance,current:g}})),x=new _e;return{set:a,get:c,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(g=1)=>n(c(),g),advance:(g,I)=>e(g,I,c()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new yv,pointer:x,mouse:x,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const g=c();m&&clearTimeout(m),g.performance.current!==g.performance.min&&E(g.performance.min),m=setTimeout(()=>E(c().performance.max),g.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:d},setEvents:g=>a(I=>({...I,events:{...I.events,...g}})),setSize:(g,I,y,B,R)=>{const w=c().camera,T={width:g,height:I,top:B||0,left:R||0,updateStyle:y};a(P=>({size:T,viewport:{...P.viewport,...d(w,h,T)}}))},setDpr:g=>a(I=>{const y=SR(g);return{viewport:{...I.viewport,dpr:y,initialDpr:I.viewport.initialDpr||y}}}),setFrameloop:(g="always")=>{const I=c().clock;I.stop(),I.elapsedTime=0,g!=="never"&&(I.start(),I.elapsedTime=0),a(()=>({frameloop:g}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:$.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(g,I,y)=>{const B=c().internal;return B.priority=B.priority+(I>0?1:0),B.subscribers.push({ref:g,priority:I,store:y}),B.subscribers=B.subscribers.sort((R,w)=>R.priority-w.priority),()=>{const R=c().internal;R!=null&&R.subscribers&&(R.priority=R.priority-(I>0?1:0),R.subscribers=R.subscribers.filter(w=>w.ref!==g))}}}}}),i=t.getState();let r=i.size,s=i.viewport.dpr,o=i.camera;return t.subscribe(()=>{const{camera:a,size:c,viewport:A,gl:h,set:f}=t.getState();if(c.width!==r.width||c.height!==r.height||A.dpr!==s){var d;r=c,s=A.dpr,MR(a,c),h.setPixelRatio(A.dpr);const m=(d=c.updateStyle)!=null?d:typeof HTMLCanvasElement<"u"&&h.domElement instanceof HTMLCanvasElement;h.setSize(c.width,c.height,m)}a!==o&&(o=a,f(m=>({viewport:{...m.viewport,...m.viewport.getCurrentViewport(a)}})))}),t.subscribe(a=>n(a)),t};let $d,i5=new Set,r5=new Set,s5=new Set;function _E(n,e){if(n.size)for(const{callback:t}of n.values())t(e)}function mA(n,e){switch(n){case"before":return _E(i5,e);case"after":return _E(r5,e);case"tail":return _E(s5,e)}}let SE,wE;function ME(n,e,t){let i=e.clock.getDelta();for(e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),SE=e.internal.subscribers,$d=0;$d0)&&!((A=r.gl.xr)!=null&&A.isPresenting)&&(t+=ME(c,r))}if(mA("after",c),t===0)return mA("tail",c),e=!1,cancelAnimationFrame(i)}function o(c,A=1){var h;if(!c)return n.forEach(f=>o(f.store.getState()),A);(h=c.gl.xr)!=null&&h.isPresenting||!c.internal.active||c.frameloop==="never"||(c.internal.frames=Math.min(60,c.internal.frames+A),e||(e=!0,requestAnimationFrame(s)))}function a(c,A=!0,h,f){if(A&&mA("before",c),h)ME(c,h,f);else for(const d of n.values())ME(c,d.store.getState());A&&mA("after",c)}return{loop:s,invalidate:o,advance:a}}function Wh(){const n=$.useContext(Sv);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function wv(n=t=>t,e){return Wh()(n,e)}function ya(n,e=0){const t=Wh(),i=t.getState().internal.subscribe,r=xR(n);return Vh(()=>i(r,e,t),[e,i,t]),null}const mu=new Map,{invalidate:aS,advance:lS}=o5(mu),{reconciler:Mh,applyProps:Rc}=Y8(mu,Z8),Tc={objects:"shallow",strict:!1},a5=(n,e)=>{const t=typeof n=="function"?n(e):n;return RR(t)?t:new nv({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...n})};function l5(n,e){const t=typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement;if(e){const{width:i,height:r,top:s,left:o,updateStyle:a=t}=e;return{width:i,height:r,top:s,left:o,updateStyle:a}}else if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){const{width:i,height:r,top:s,left:o}=n.parentElement.getBoundingClientRect();return{width:i,height:r,top:s,left:o,updateStyle:t}}else if(typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0,updateStyle:t};return{width:0,height:0,top:0,left:0}}function c5(n){const e=mu.get(n),t=e==null?void 0:e.fiber,i=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,s=i||n5(aS,lS),o=t||Mh.createContainer(s,$c.ConcurrentRoot,null,!1,null,"",r,null);e||mu.set(n,{fiber:o,store:s});let a,c=!1,A;return{configure(h={}){let{gl:f,size:d,scene:m,events:E,onCreated:x,shadows:C=!1,linear:g=!1,flat:I=!1,legacy:y=!1,orthographic:B=!1,frameloop:R="always",dpr:w=[1,2],performance:T,raycaster:P,camera:J,onPointerMissed:M}=h,b=s.getState(),K=b.gl;b.gl||b.set({gl:K=a5(f,n)});let ge=b.raycaster;ge||b.set({raycaster:ge=new Bv});const{params:Y,...ce}=P||{};if(Bn.equ(ce,ge,Tc)||Rc(ge,{...ce}),Bn.equ(Y,ge.params,Tc)||Rc(ge,{params:{...ge.params,...Y}}),!b.camera||b.camera===A&&!Bn.equ(A,J,Tc)){A=J;const ye=J instanceof Ph,ke=ye?J:B?new kh(0,0,0,0,.1,1e3):new Zn(75,0,.1,1e3);ye||(ke.position.z=5,J&&Rc(ke,J),!b.camera&&!(J!=null&&J.rotation)&&ke.lookAt(0,0,0)),b.set({camera:ke}),ge.camera=ke}if(!b.scene){let ye;m instanceof yh?ye=m:(ye=new yh,m&&Rc(ye,m)),b.set({scene:Nc(ye)})}if(!b.xr){var re;const ye=(O,k)=>{const F=s.getState();F.frameloop!=="never"&&lS(O,!0,F,k)},ke=()=>{const O=s.getState();O.gl.xr.enabled=O.gl.xr.isPresenting,O.gl.xr.setAnimationLoop(O.gl.xr.isPresenting?ye:null),O.gl.xr.isPresenting||aS(O)},V={connect(){const O=s.getState().gl;O.xr.addEventListener("sessionstart",ke),O.xr.addEventListener("sessionend",ke)},disconnect(){const O=s.getState().gl;O.xr.removeEventListener("sessionstart",ke),O.xr.removeEventListener("sessionend",ke)}};typeof((re=K.xr)==null?void 0:re.addEventListener)=="function"&&V.connect(),b.set({xr:V})}if(K.shadowMap){const ye=K.shadowMap.enabled,ke=K.shadowMap.type;if(K.shadowMap.enabled=!!C,Bn.boo(C))K.shadowMap.type=UA;else if(Bn.str(C)){var fe;const V={basic:a2,percentage:bg,soft:UA,variance:es};K.shadowMap.type=(fe=V[C])!=null?fe:UA}else Bn.obj(C)&&Object.assign(K.shadowMap,C);(ye!==K.shadowMap.enabled||ke!==K.shadowMap.type)&&(K.shadowMap.needsUpdate=!0)}const U=vR();U&&("enabled"in U?U.enabled=!y:"legacyMode"in U&&(U.legacyMode=y)),Rc(K,{outputEncoding:g?3e3:3001,toneMapping:I?Rs:U1}),b.legacy!==y&&b.set(()=>({legacy:y})),b.linear!==g&&b.set(()=>({linear:g})),b.flat!==I&&b.set(()=>({flat:I})),f&&!Bn.fun(f)&&!RR(f)&&!Bn.equ(f,K,Tc)&&Rc(K,f),E&&!b.events.handlers&&b.set({events:E(s)});const ue=l5(n,d);return Bn.equ(ue,b.size,Tc)||b.setSize(ue.width,ue.height,ue.updateStyle,ue.top,ue.left),w&&b.viewport.dpr!==SR(w)&&b.setDpr(w),b.frameloop!==R&&b.setFrameloop(R),b.onPointerMissed||b.set({onPointerMissed:M}),T&&!Bn.equ(T,b.performance,Tc)&&b.set(ye=>({performance:{...ye.performance,...T}})),a=x,c=!0,this},render(h){return c||this.configure(),Mh.updateContainer($.createElement(u5,{store:s,children:h,onCreated:a,rootElement:n}),o,null,()=>{}),s},unmount(){TR(n)}}}function u5({store:n,children:e,onCreated:t,rootElement:i}){return Vh(()=>{const r=n.getState();r.set(s=>({internal:{...s.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),$.createElement(Sv.Provider,{value:n},e)}function TR(n,e){const t=mu.get(n),i=t==null?void 0:t.fiber;if(i){const r=t==null?void 0:t.store.getState();r&&(r.internal.active=!1),Mh.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{var s,o,a,c;r.events.disconnect==null||r.events.disconnect(),(s=r.gl)==null||(o=s.renderLists)==null||o.dispose==null||o.dispose(),(a=r.gl)==null||a.forceContextLoss==null||a.forceContextLoss(),(c=r.gl)!=null&&c.xr&&r.xr.disconnect(),q8(r),mu.delete(n),e&&e(n)}catch{}},500)})}}function DR(n,e,t){return $.createElement(A5,{key:e.uuid,children:n,container:e,state:t})}function A5({state:n={},children:e,container:t}){const{events:i,size:r,...s}=n,o=Wh(),[a]=$.useState(()=>new Bv),[c]=$.useState(()=>new _e),A=$.useCallback((f,d)=>{const m={...f};Object.keys(f).forEach(x=>{(t5.includes(x)||f[x]!==d[x]&&d[x])&&delete m[x]});let E;if(d&&r){const x=d.camera;E=f.viewport.getCurrentViewport(x,new G,r),x!==f.camera&&MR(x,r)}return{...m,scene:t,raycaster:a,pointer:c,mouse:c,previousRoot:o,events:{...f.events,...d==null?void 0:d.events,...i},size:{...f.size,...r},viewport:{...f.viewport,...E},...s}},[n]),[h]=$.useState(()=>{const f=o.getState();return mR((m,E)=>({...f,scene:t,raycaster:a,pointer:c,mouse:c,previousRoot:o,events:{...f.events,...i},size:{...f.size,...r},...s,set:m,get:E,setEvents:x=>m(C=>({...C,events:{...C.events,...x}}))}))});return $.useEffect(()=>{const f=o.subscribe(d=>h.setState(m=>A(d,m)));return()=>{f(),h.destroy()}},[]),$.useEffect(()=>{h.setState(f=>A(o.getState(),f))},[A]),$.createElement($.Fragment,null,Mh.createPortal($.createElement(Sv.Provider,{value:h},e),h,null))}Mh.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:$.version});function hg(){return hg=Object.assign?Object.assign.bind():function(n){for(var e=1;e=0?i=setTimeout(c,e-h):(i=null,t||(a=n.apply(s,r),s=r=null))}var A=function(){s=this,r=arguments,o=Date.now();var h=t&&!i;return i||(i=setTimeout(c,e)),h&&(a=n.apply(s,r),s=r=null),a};return A.clear=function(){i&&(clearTimeout(i),i=null)},A.flush=function(){i&&(a=n.apply(s,r),s=r=null,clearTimeout(i),i=null)},A}wy.debounce=wy;var h5=wy;const cS=VS(h5);function f5(n){let{debounce:e,scroll:t,polyfill:i,offsetSize:r}=n===void 0?{debounce:0,scroll:!1,offsetSize:!1}:n;const s=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!s)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,a]=$.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),c=$.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),A=e?typeof e=="number"?e:e.scroll:null,h=e?typeof e=="number"?e:e.resize:null,f=$.useRef(!1);$.useEffect(()=>(f.current=!0,()=>void(f.current=!1)));const[d,m,E]=$.useMemo(()=>{const I=()=>{if(!c.current.element)return;const{left:y,top:B,width:R,height:w,bottom:T,right:P,x:J,y:M}=c.current.element.getBoundingClientRect(),b={left:y,top:B,width:R,height:w,bottom:T,right:P,x:J,y:M};c.current.element instanceof HTMLElement&&r&&(b.height=c.current.element.offsetHeight,b.width=c.current.element.offsetWidth),Object.freeze(b),f.current&&!m5(c.current.lastBounds,b)&&a(c.current.lastBounds=b)};return[I,h?cS(I,h):I,A?cS(I,A):I]},[a,r,A,h]);function x(){c.current.scrollContainers&&(c.current.scrollContainers.forEach(I=>I.removeEventListener("scroll",E,!0)),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null)}function C(){c.current.element&&(c.current.resizeObserver=new s(E),c.current.resizeObserver.observe(c.current.element),t&&c.current.scrollContainers&&c.current.scrollContainers.forEach(I=>I.addEventListener("scroll",E,{capture:!0,passive:!0})))}const g=I=>{!I||I===c.current.element||(x(),c.current.element=I,c.current.scrollContainers=bR(I),C())};return p5(E,!!t),d5(m),$.useEffect(()=>{x(),C()},[t,E,m]),$.useEffect(()=>x,[]),[g,o,d]}function d5(n){$.useEffect(()=>{const e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function p5(n,e){$.useEffect(()=>{if(e){const t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function bR(n){const e=[];if(!n||n===document.body)return e;const{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(s=>s==="auto"||s==="scroll")&&e.push(n),[...e,...bR(n.parentElement)]}const g5=["x","y","top","bottom","left","right","width","height"],m5=(n,e)=>g5.every(t=>n[t]===e[t]);var E5=Object.defineProperty,C5=Object.defineProperties,y5=Object.getOwnPropertyDescriptors,uS=Object.getOwnPropertySymbols,v5=Object.prototype.hasOwnProperty,I5=Object.prototype.propertyIsEnumerable,AS=(n,e,t)=>e in n?E5(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,hS=(n,e)=>{for(var t in e||(e={}))v5.call(e,t)&&AS(n,t,e[t]);if(uS)for(var t of uS(e))I5.call(e,t)&&AS(n,t,e[t]);return n},x5=(n,e)=>C5(n,y5(e));function NR(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){const r=NR(i,e,t);if(r)return r;i=e?null:i.sibling}}function LR(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}const Mv=LR($.createContext(null));class PR extends $.Component{render(){return $.createElement(Mv.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:fS,ReactCurrentDispatcher:dS}=$.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function B5(){const n=$.useContext(Mv);if(n===null)throw new Error("its-fine: useFiber must be called within a !");const e=$.useId();return $.useMemo(()=>{for(const i of[fS==null?void 0:fS.current,n,n==null?void 0:n.alternate]){if(!i)continue;const r=NR(i,!1,s=>{let o=s.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[n,e])}function _5(){var n,e;const t=B5(),[i]=$.useState(()=>new Map);i.clear();let r=t;for(;r;){const s=(n=r.type)==null?void 0:n._context;s&&s!==Mv&&!i.has(s)&&i.set(s,(e=dS==null?void 0:dS.current)==null?void 0:e.readContext(LR(s))),r=r.return}return i}function S5(){const n=_5();return $.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>$.createElement(e,null,$.createElement(t.Provider,x5(hS({},i),{value:n.get(t)}))),e=>$.createElement(PR,hS({},e))),[n])}const QE={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function w5(n){const{handlePointer:e}=e5(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(QE).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;const{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{var i;const{set:r,events:s}=n.getState();s.disconnect==null||s.disconnect(),r(o=>({events:{...o.events,connected:t}})),Object.entries((i=s.handlers)!=null?i:[]).forEach(([o,a])=>{const[c,A]=QE[o];t.addEventListener(c,a,{passive:A})})},disconnect:()=>{const{set:t,events:i}=n.getState();if(i.connected){var r;Object.entries((r=i.handlers)!=null?r:[]).forEach(([s,o])=>{if(i&&i.connected instanceof HTMLElement){const[a]=QE[s];i.connected.removeEventListener(a,o)}}),t(s=>({events:{...s.events,connected:void 0}}))}}}}const M5=$.forwardRef(function({children:e,fallback:t,resize:i,style:r,gl:s,events:o=w5,eventSource:a,eventPrefix:c,shadows:A,linear:h,flat:f,legacy:d,orthographic:m,frameloop:E,dpr:x,performance:C,raycaster:g,camera:I,scene:y,onPointerMissed:B,onCreated:R,...w},T){$.useMemo(()=>W8(k8),[]);const P=S5(),[J,M]=f5({scroll:!0,debounce:{scroll:50,resize:0},...i}),b=$.useRef(null),K=$.useRef(null);$.useImperativeHandle(T,()=>b.current);const ge=xR(B),[Y,ce]=$.useState(!1),[re,fe]=$.useState(!1);if(Y)throw Y;if(re)throw re;const U=$.useRef(null);Vh(()=>{const ee=b.current;M.width>0&&M.height>0&&ee&&(U.current||(U.current=c5(ee)),U.current.configure({gl:s,events:o,shadows:A,linear:h,flat:f,legacy:d,orthographic:m,frameloop:E,dpr:x,performance:C,raycaster:g,camera:I,scene:y,size:M,onPointerMissed:(...ue)=>ge.current==null?void 0:ge.current(...ue),onCreated:ue=>{ue.events.connect==null||ue.events.connect(a?X8(a)?a.current:a:K.current),c&&ue.setEvents({compute:(ye,ke)=>{const V=ye[c+"X"],O=ye[c+"Y"];ke.pointer.set(V/ke.size.width*2-1,-(O/ke.size.height)*2+1),ke.raycaster.setFromCamera(ke.pointer,ke.camera)}}),R==null||R(ue)}}),U.current.render($.createElement(P,null,$.createElement(BR,{set:fe},$.createElement($.Suspense,{fallback:$.createElement(J8,{set:ce})},e)))))}),$.useEffect(()=>{const ee=b.current;if(ee)return()=>TR(ee)},[]);const Z=a?"none":"auto";return $.createElement("div",hg({ref:K,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:Z,...r}},w),$.createElement("div",{ref:J,style:{width:"100%",height:"100%"}},$.createElement("canvas",{ref:b,style:{display:"block"}},t)))}),Q5=$.forwardRef(function(e,t){return $.createElement(PR,null,$.createElement(M5,hg({},e,{ref:t})))});function am(){throw new Error("Cycle detected")}var R5=Symbol.for("preact-signals");function lm(){if(la>1)la--;else{for(var n,e=!1;HA!==void 0;){var t=HA;for(HA=void 0,My++;t!==void 0;){var i=t.o;if(t.o=void 0,t.f&=-3,!(8&t.f)&&kR(t))try{t.c()}catch(r){e||(n=r,e=!0)}t=i}}if(My=0,la--,e)throw n}}function UR(n){if(la>0)return n();la++;try{return n()}finally{lm()}}var Ln=void 0,HA=void 0,la=0,My=0,fg=0;function FR(n){if(Ln!==void 0){var e=n.n;if(e===void 0||e.t!==Ln)return e={i:0,S:n,p:Ln.s,n:void 0,t:Ln,e:void 0,x:void 0,r:e},Ln.s!==void 0&&(Ln.s.n=e),Ln.s=e,n.n=e,32&Ln.f&&n.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=Ln.s,e.n=void 0,Ln.s.n=e,Ln.s=e),e}}function zn(n){this.v=n,this.i=0,this.n=void 0,this.t=void 0}zn.prototype.brand=R5;zn.prototype.h=function(){return!0};zn.prototype.S=function(n){this.t!==n&&n.e===void 0&&(n.x=this.t,this.t!==void 0&&(this.t.e=n),this.t=n)};zn.prototype.U=function(n){if(this.t!==void 0){var e=n.e,t=n.x;e!==void 0&&(e.x=t,n.e=void 0),t!==void 0&&(t.e=e,n.x=void 0),n===this.t&&(this.t=t)}};zn.prototype.subscribe=function(n){var e=this;return on(function(){var t=e.value,i=32&this.f;this.f&=-33;try{n(t)}finally{this.f|=i}})};zn.prototype.valueOf=function(){return this.value};zn.prototype.toString=function(){return this.value+""};zn.prototype.toJSON=function(){return this.value};zn.prototype.peek=function(){return this.v};Object.defineProperty(zn.prototype,"value",{get:function(){var n=FR(this);return n!==void 0&&(n.i=this.i),this.v},set:function(n){if(Ln instanceof va&&function(){throw new Error("Computed cannot have side-effects")}(),n!==this.v){My>100&&am(),this.v=n,this.i++,fg++,la++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{lm()}}}});function fn(n){return new zn(n)}function kR(n){for(var e=n.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function GR(n){for(var e=n.s;e!==void 0;e=e.n){var t=e.S.n;if(t!==void 0&&(e.r=t),e.S.n=e,e.i=-1,e.n===void 0){n.s=e;break}}}function OR(n){for(var e=n.s,t=void 0;e!==void 0;){var i=e.p;e.i===-1?(e.S.U(e),i!==void 0&&(i.n=e.n),e.n!==void 0&&(e.n.p=i)):t=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=i}n.s=t}function va(n){zn.call(this,void 0),this.x=n,this.s=void 0,this.g=fg-1,this.f=4}(va.prototype=new zn).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===fg))return!0;if(this.g=fg,this.f|=1,this.i>0&&!kR(this))return this.f&=-2,!0;var n=Ln;try{GR(this),Ln=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(t){this.v=t,this.f|=16,this.i++}return Ln=n,OR(this),this.f&=-2,!0};va.prototype.S=function(n){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}zn.prototype.S.call(this,n)};va.prototype.U=function(n){if(this.t!==void 0&&(zn.prototype.U.call(this,n),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};va.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var n=this.t;n!==void 0;n=n.x)n.t.N()}};va.prototype.peek=function(){if(this.h()||am(),16&this.f)throw this.v;return this.v};Object.defineProperty(va.prototype,"value",{get:function(){1&this.f&&am();var n=FR(this);if(this.h(),n!==void 0&&(n.i=this.i),16&this.f)throw this.v;return this.v}});function ti(n){return new va(n)}function HR(n){var e=n.u;if(n.u=void 0,typeof e=="function"){la++;var t=Ln;Ln=void 0;try{e()}catch(i){throw n.f&=-2,n.f|=8,Qv(n),i}finally{Ln=t,lm()}}}function Qv(n){for(var e=n.s;e!==void 0;e=e.n)e.S.U(e);n.x=void 0,n.s=void 0,HR(n)}function T5(n){if(Ln!==this)throw new Error("Out-of-order effect");OR(this),Ln=n,this.f&=-2,8&this.f&&Qv(this),lm()}function Yh(n){this.x=n,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}Yh.prototype.c=function(){var n=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{n()}};Yh.prototype.S=function(){1&this.f&&am(),this.f|=1,this.f&=-9,HR(this),GR(this),la++;var n=Ln;return Ln=this,T5.bind(this,n)};Yh.prototype.N=function(){2&this.f||(this.f|=2,this.o=HA,HA=this)};Yh.prototype.d=function(){this.f|=8,1&this.f||Qv(this)};function on(n){var e=new Yh(n);try{e.c()}catch(t){throw e.d(),t}return e.d.bind(e)}function Rv(n,e,t){const i=$.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=$.useMemo(()=>{let s={};return(o,a)=>{let c=0,A=!1;for(const h in s){if(!VR(s[h],o[h])){A=!0;break}++c}A||(A=c!=a),s=o,!(!A&&e.getProperty.peek()!=null)&&(e.getProperty.value=h=>Qy(o[h]))}},[e]);zR(n,i,r,t)}function D5(n,e){const t=n.length;for(const i in e)for(let r=0;r{let r={},s=0;const o=(c,A)=>{if(A===void 0)return;const h=r[c];if(h===void 0&&++s,h==null||!(A instanceof zn)){r[c]=A;return}if(Array.isArray(h)){h.push(A);return}r[c]=[h,A]};return{add:(c,A)=>{if(A!==void 0){if(i!=null){i(c,A,e,o);return}e(c)&&o(c,A)}},finish:()=>{t(r,s),s=0,r={}}}},[e,t,i]))}function VR(n,e){if(!Array.isArray(n))return n===e;if(!Array.isArray(e))return!1;const t=n.length;if(t!=e.length)return!1;for(let i=0;ifn(void 0),[]),r=$.useMemo(()=>({hasBatchedProperty:s=>e.includes(s),getProperty:i}),[e]);return Rv(n,r,t),i}const Ry=$.createContext(null);function Xh(n,e){const t=$.useContext(Ry);t!=null&&e(t);const{classes:i}=n;if(Array.isArray(i)){const r=i.length;for(let s=0;sD5(n,t))}function Mu(n){const t={...$.useContext(Ry)};for(const i in n){if(i==="children")continue;const r=n[i];r!=null&&(t[i]=r)}return se.jsx(Ry.Provider,{value:t,children:n.children})}var Ui={},Tv={},Nt={};Object.defineProperty(Nt,"__esModule",{value:!0});Nt.default=Nt.Wrap=Nt.Unit=Nt.PrintOptions=Nt.PositionType=Nt.Overflow=Nt.NodeType=Nt.MeasureMode=Nt.LogLevel=Nt.Justify=Nt.Gutter=Nt.FlexDirection=Nt.ExperimentalFeature=Nt.Errata=Nt.Edge=Nt.Display=Nt.Direction=Nt.Dimension=Nt.Align=void 0;let $s=function(n){return n[n.Auto=0]="Auto",n[n.FlexStart=1]="FlexStart",n[n.Center=2]="Center",n[n.FlexEnd=3]="FlexEnd",n[n.Stretch=4]="Stretch",n[n.Baseline=5]="Baseline",n[n.SpaceBetween=6]="SpaceBetween",n[n.SpaceAround=7]="SpaceAround",n}({});Nt.Align=$s;let Ty=function(n){return n[n.Width=0]="Width",n[n.Height=1]="Height",n}({});Nt.Dimension=Ty;let wp=function(n){return n[n.Inherit=0]="Inherit",n[n.LTR=1]="LTR",n[n.RTL=2]="RTL",n}({});Nt.Direction=wp;let Dy=function(n){return n[n.Flex=0]="Flex",n[n.None=1]="None",n}({});Nt.Display=Dy;let vs=function(n){return n[n.Left=0]="Left",n[n.Top=1]="Top",n[n.Right=2]="Right",n[n.Bottom=3]="Bottom",n[n.Start=4]="Start",n[n.End=5]="End",n[n.Horizontal=6]="Horizontal",n[n.Vertical=7]="Vertical",n[n.All=8]="All",n}({});Nt.Edge=vs;let BA=function(n){return n[n.None=0]="None",n[n.StretchFlexBasis=1]="StretchFlexBasis",n[n.All=2147483647]="All",n[n.Classic=2147483646]="Classic",n}({});Nt.Errata=BA;let Mp=function(n){return n[n.WebFlexBasis=0]="WebFlexBasis",n[n.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",n[n.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",n}({});Nt.ExperimentalFeature=Mp;let _A=function(n){return n[n.Column=0]="Column",n[n.ColumnReverse=1]="ColumnReverse",n[n.Row=2]="Row",n[n.RowReverse=3]="RowReverse",n}({});Nt.FlexDirection=_A;let Qp=function(n){return n[n.Column=0]="Column",n[n.Row=1]="Row",n[n.All=2]="All",n}({});Nt.Gutter=Qp;let cl=function(n){return n[n.FlexStart=0]="FlexStart",n[n.Center=1]="Center",n[n.FlexEnd=2]="FlexEnd",n[n.SpaceBetween=3]="SpaceBetween",n[n.SpaceAround=4]="SpaceAround",n[n.SpaceEvenly=5]="SpaceEvenly",n}({});Nt.Justify=cl;let ul=function(n){return n[n.Error=0]="Error",n[n.Warn=1]="Warn",n[n.Info=2]="Info",n[n.Debug=3]="Debug",n[n.Verbose=4]="Verbose",n[n.Fatal=5]="Fatal",n}({});Nt.LogLevel=ul;let Rp=function(n){return n[n.Undefined=0]="Undefined",n[n.Exactly=1]="Exactly",n[n.AtMost=2]="AtMost",n}({});Nt.MeasureMode=Rp;let by=function(n){return n[n.Default=0]="Default",n[n.Text=1]="Text",n}({});Nt.NodeType=by;let Tp=function(n){return n[n.Visible=0]="Visible",n[n.Hidden=1]="Hidden",n[n.Scroll=2]="Scroll",n}({});Nt.Overflow=Tp;let Dp=function(n){return n[n.Static=0]="Static",n[n.Relative=1]="Relative",n[n.Absolute=2]="Absolute",n}({});Nt.PositionType=Dp;let bp=function(n){return n[n.Layout=1]="Layout",n[n.Style=2]="Style",n[n.Children=4]="Children",n}({});Nt.PrintOptions=bp;let SA=function(n){return n[n.Undefined=0]="Undefined",n[n.Point=1]="Point",n[n.Percent=2]="Percent",n[n.Auto=3]="Auto",n}({});Nt.Unit=SA;let Np=function(n){return n[n.NoWrap=0]="NoWrap",n[n.Wrap=1]="Wrap",n[n.WrapReverse=2]="WrapReverse",n}({});Nt.Wrap=Np;const b5={ALIGN_AUTO:$s.Auto,ALIGN_FLEX_START:$s.FlexStart,ALIGN_CENTER:$s.Center,ALIGN_FLEX_END:$s.FlexEnd,ALIGN_STRETCH:$s.Stretch,ALIGN_BASELINE:$s.Baseline,ALIGN_SPACE_BETWEEN:$s.SpaceBetween,ALIGN_SPACE_AROUND:$s.SpaceAround,DIMENSION_WIDTH:Ty.Width,DIMENSION_HEIGHT:Ty.Height,DIRECTION_INHERIT:wp.Inherit,DIRECTION_LTR:wp.LTR,DIRECTION_RTL:wp.RTL,DISPLAY_FLEX:Dy.Flex,DISPLAY_NONE:Dy.None,EDGE_LEFT:vs.Left,EDGE_TOP:vs.Top,EDGE_RIGHT:vs.Right,EDGE_BOTTOM:vs.Bottom,EDGE_START:vs.Start,EDGE_END:vs.End,EDGE_HORIZONTAL:vs.Horizontal,EDGE_VERTICAL:vs.Vertical,EDGE_ALL:vs.All,ERRATA_NONE:BA.None,ERRATA_STRETCH_FLEX_BASIS:BA.StretchFlexBasis,ERRATA_ALL:BA.All,ERRATA_CLASSIC:BA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Mp.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:Mp.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:Mp.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:_A.Column,FLEX_DIRECTION_COLUMN_REVERSE:_A.ColumnReverse,FLEX_DIRECTION_ROW:_A.Row,FLEX_DIRECTION_ROW_REVERSE:_A.RowReverse,GUTTER_COLUMN:Qp.Column,GUTTER_ROW:Qp.Row,GUTTER_ALL:Qp.All,JUSTIFY_FLEX_START:cl.FlexStart,JUSTIFY_CENTER:cl.Center,JUSTIFY_FLEX_END:cl.FlexEnd,JUSTIFY_SPACE_BETWEEN:cl.SpaceBetween,JUSTIFY_SPACE_AROUND:cl.SpaceAround,JUSTIFY_SPACE_EVENLY:cl.SpaceEvenly,LOG_LEVEL_ERROR:ul.Error,LOG_LEVEL_WARN:ul.Warn,LOG_LEVEL_INFO:ul.Info,LOG_LEVEL_DEBUG:ul.Debug,LOG_LEVEL_VERBOSE:ul.Verbose,LOG_LEVEL_FATAL:ul.Fatal,MEASURE_MODE_UNDEFINED:Rp.Undefined,MEASURE_MODE_EXACTLY:Rp.Exactly,MEASURE_MODE_AT_MOST:Rp.AtMost,NODE_TYPE_DEFAULT:by.Default,NODE_TYPE_TEXT:by.Text,OVERFLOW_VISIBLE:Tp.Visible,OVERFLOW_HIDDEN:Tp.Hidden,OVERFLOW_SCROLL:Tp.Scroll,POSITION_TYPE_STATIC:Dp.Static,POSITION_TYPE_RELATIVE:Dp.Relative,POSITION_TYPE_ABSOLUTE:Dp.Absolute,PRINT_OPTIONS_LAYOUT:bp.Layout,PRINT_OPTIONS_STYLE:bp.Style,PRINT_OPTIONS_CHILDREN:bp.Children,UNIT_UNDEFINED:SA.Undefined,UNIT_POINT:SA.Point,UNIT_PERCENT:SA.Percent,UNIT_AUTO:SA.Auto,WRAP_NO_WRAP:Np.NoWrap,WRAP_WRAP:Np.Wrap,WRAP_WRAP_REVERSE:Np.WrapReverse};var N5=b5;Nt.default=N5;Object.defineProperty(Tv,"__esModule",{value:!0});Tv.default=P5;var Fo=L5(Nt);function WR(n){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(WR=function(i){return i?t:e})(n)}function L5(n,e){if(!e&&n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=WR(e);if(t&&t.has(n))return t.get(n);var i={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if(s!=="default"&&Object.prototype.hasOwnProperty.call(n,s)){var o=r?Object.getOwnPropertyDescriptor(n,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=n[s]}return i.default=n,t&&t.set(n,i),i}function P5(n){function e(r,s,o){const a=r[s];r[s]=function(){for(var c=arguments.length,A=new Array(c),h=0;h1?a-1:0),A=1;As?n.Node.createWithConfig(s):n.Node.createDefault()),e(n.Node.prototype,"free",function(){n.Node.destroy(this)}),e(n.Node.prototype,"freeRecursive",function(){for(let r=0,s=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Fo.Direction.LTR;return r.call(this,s,o,a)}),{Config:n.Config,Node:n.Node,...Fo.default}}var YR={exports:{}};(function(n,e){var t=(()=>{var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var s;s||(s=typeof r<"u"?r:{});var o,a;s.ready=new Promise(function(N,L){o=N,a=L});var c=Object.assign({},s),A="";typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),i&&(A=i),A.indexOf("blob:")!==0?A=A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):A="";var h=s.print||console.log.bind(console),f=s.printErr||console.warn.bind(console);Object.assign(s,c),c=null;var d;s.wasmBinary&&(d=s.wasmBinary),s.noExitRuntime,typeof WebAssembly!="object"&&fe("no native wasm support detected");var m,E=!1;function x(N,L,q){q=L+q;for(var oe="";!(L>=q);){var pe=N[L++];if(!pe)break;if(pe&128){var we=N[L++]&63;if((pe&224)==192)oe+=String.fromCharCode((pe&31)<<6|we);else{var Pe=N[L++]&63;pe=(pe&240)==224?(pe&15)<<12|we<<6|Pe:(pe&7)<<18|we<<12|Pe<<6|N[L++]&63,65536>pe?oe+=String.fromCharCode(pe):(pe-=65536,oe+=String.fromCharCode(55296|pe>>10,56320|pe&1023))}}else oe+=String.fromCharCode(pe)}return oe}var C,g,I,y,B,R,w,T,P;function J(){var N=m.buffer;C=N,s.HEAP8=g=new Int8Array(N),s.HEAP16=y=new Int16Array(N),s.HEAP32=R=new Int32Array(N),s.HEAPU8=I=new Uint8Array(N),s.HEAPU16=B=new Uint16Array(N),s.HEAPU32=w=new Uint32Array(N),s.HEAPF32=T=new Float32Array(N),s.HEAPF64=P=new Float64Array(N)}var M,b=[],K=[],ge=[];function Y(){var N=s.preRun.shift();b.unshift(N)}var ce=0,re=null;function fe(N){throw s.onAbort&&s.onAbort(N),N="Aborted("+N+")",f(N),E=!0,N=new WebAssembly.RuntimeError(N+". Build with -sASSERTIONS for more info."),a(N),N}function U(N){return N.startsWith("data:application/octet-stream;base64,")}var Z;if(Z="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGIATYCAEGbN0GAEUECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGJATYCAEGbN0G6CkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGKATYCAEGbN0H3EkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGLATYCAEGbN0HDDkECQdglQcQiQYwBIABBABAAQQgQHSIAQQA2AgQgAEGNATYCAEGbN0G4CUECQeAlQeokQY4BIABBABAAQQgQHSIAQQA2AgQgAEGPATYCAEGbN0HTE0ECQeAlQeokQY4BIABBABAAQQgQHSIAQQA2AgQgAEGQATYCAEGbN0GoFEECQdglQcQiQYwBIABBABAAQQgQHSIAQQA2AgQgAEGRATYCAEGbN0H9DEECQdglQcQiQYwBIABBABAAQQgQHSIAQQA2AgQgAEGSATYCAEGbN0G9FEECQdglQcQiQYwBIABBABAAQQgQHSIAQQA2AgQgAEGTATYCAEGbN0GUDUECQdglQcQiQYwBIABBABAAQQgQHSIAQQA2AgQgAEGUATYCAEGbN0GTFEECQdglQcQiQYwBIABBABAAQQgQHSIAQQA2AgQgAEGVATYCAEGbN0HmDEECQdglQcQiQYwBIABBABAAQQgQHSIAQQA2AgQgAEGWATYCAEGbN0GQEkECQeAlQeokQY4BIABBABAAQQgQHSIAQQA2AgQgAEGXATYCAEGbN0G3EEEDQeglQfQlQZgBIABBABAAQQgQHSIAQQA2AgQgAEGZATYCAEGbN0HQCUECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGaATYCAEGbN0H8CEECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGbATYCAEGbN0GqFUEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGcATYCAEGbN0GTEUEDQfwlQYgmQZ0BIABBABAAQQgQHSIAQQA2AgQgAEGeATYCAEGbN0HaF0EEQZAmQZAkQZ8BIABBABAAQQgQHSIAQQA2AgQgAEGgATYCAEGbN0HvF0EDQaAmQbgkQaEBIABBABAAQQgQHSIAQQA2AgQgAEGiATYCAEGbN0GNCkECQawmQcQiQaMBIABBABAAQQgQHSIAQQA2AgQgAEGkATYCAEGbN0HsCkECQbQmQcQiQaUBIABBABAAQQgQHSIAQQA2AgQgAEGmATYCAEGbN0HmF0EDQbwmQaAjQacBIABBABAAQQgQHSIAQQA2AgQgAEGoATYCAEGbN0GSF0ECQcgmQcQiQakBIABBABAAQQgQHSIAQQA2AgQgAEGqATYCAEGbN0GmF0EDQdAmQbgkQasBIABBABAAQQgQHSIAQQA2AgQgAEGsATYCAEGbN0GdGkEDQdwmQbgkQa0BIABBABAAQQgQHSIAQQA2AgQgAEGuATYCAEGbN0GbGkECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEGvATYCAEGbN0GuGkEDQegmQbgkQbABIABBABAAQQgQHSIAQQA2AgQgAEGxATYCAEGbN0GsGkECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEGyATYCAEGbN0HfCEECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEGzATYCAEGbN0HXCEECQfQmQcQiQbQBIABBABAAQQgQHSIAQQA2AgQgAEG1ATYCAEGbN0HcCUEFQYAnQZQnQbYBIABBABAAQQgQHSIAQQA2AgQgAEG3ATYCAEGbN0HJDUECQeAlQeokQY4BIABBABAAQQgQHSIAQQA2AgQgAEG4ATYCAEGbN0GzDUECQeAlQeokQY4BIABBABAAQQgQHSIAQQA2AgQgAEG5ATYCAEGbN0HlEEECQeAlQeokQY4BIABBABAAQQgQHSIAQQA2AgQgAEG6ATYCAEGbN0GeE0ECQeAlQeokQY4BIABBABAAQQgQHSIAQQA2AgQgAEG7ATYCAEGbN0HJFEECQeAlQeokQY4BIABBABAAQQgQHSIAQQA2AgQgAEG8ATYCAEGbN0GhDUECQeAlQeokQY4BIABBABAAQQgQHSIAQQA2AgQgAEG9ATYCAEGbN0HsCUECQZwnQcQiQb4BIABBABAAQQgQHSIAQQA2AgQgAEG/ATYCAEGbN0GBE0EDQeglQfQlQZgBIABBABAAQQgQHSIAQQA2AgQgAEHAATYCAEGbN0HBEEEDQeglQfQlQZgBIABBABAAQQgQHSIAQQA2AgQgAEHBATYCAEGbN0G1FUEDQeglQfQlQZgBIABBABAACyoBAX8jAEEQayICJAAgAEUEQCACIAE2AgBBACACEC0QLAALIAJBEGokAAu5BQECfyAAQQA2AgAgAEIANwIIIABCADcCECAAQQA2AhggAEKAgID+p9Wq1f8ANwIkIABCgICA/oeAgOD/ADcCHCAAIAAtAARBgAFxOgAEIABBLGpBAEEkECohAwNAIAMgAkECdGpBgICA/gc2AgAgAkEBaiICQQlHDQALQQAhAiAAQdAAakEAQSQQKiEDA0AgAyACQQJ0akGAgID+BzYCACACQQFqIgJBCUcNAAtBACECIABB9ABqQQBBJBAqIQMDQCADIAJBAnRqQYCAgP4HNgIAIAJBAWoiAkEJRw0AC0EAIQIgAEGYAWpBAEEkECohAwNAIAMgAkECdGpBgICA/gc2AgAgAkEBaiICQQlHDQALQQAhAiAAQQA2AsQBIABBvAFqIgNCADcCAANAIAMgAkECdGpBgICA/gc2AgAgAkEBaiICQQNHDQALIABBgCE2AhggAEGAgID+BzYC4AEgAEKAgID+h4CA4P8ANwLYASAAQoCAgP6HgIDg/wA3AtABIABCqtWq/afVqtX/ADcCyAEgAEHkAWpBAEGgAhAqGiAAQoCAgP6HgIDg/wA3AvQBIABB/AFqQQBBMRAqGiAAQYCAgP4HNgK0AiAAQYQEaiEDIABBxAJqIQIDQCACQoCAgPyLgIDAv383AhAgAkIANwIIIAJCgICA/IuAgMC/fzcCACACQRhqIgIgA0cNAAsgAEIANwKkBCAAQoCAgP6HgIDg/wA3AoQEIABCgICA/gc3ArwEIAAgATYCuAQgAEKAgID8i4CAwL9/NwKcBCAAQgA3ApQEIABCgICA/IuAgMC/fzcCjAQgAEIANwKsBCAAQQA2ArQEIABCgICA/gc3AsQEIAFBAEdByBUQhQEgACAALQAEQQFyOgAEIAEtAAhBAXEEQCAAIAAoAhhB83hxQYgEcjYCGAsgAAvnAQEBfwJAAkAgAARAAn8gAUEEcQRAIAIgAyAEIAUgABEPAAwBCyACIAMgBCAAEQYACyIFDQELQcwEEB0iBSACQagEECsiAUEANgK0BCABQgA3AqwEIAIoArAEIgMgAigCrAQiBEcEQCADIARrIgZBAEgNAiABIAYQHSIANgKsBCABIAAgBmo2ArQEA0AgACAEKAIANgIAIABBBGohACAEQQRqIgQgA0cNAAsgASAANgKwBAsgASACKQK4BDcCuAQgASACKALIBDYCyAQgASACKQLABDcCwAQgAUEANgKoBAsgBQ8LEAQAC3EBAX8CQCAAKAIAIgAoAhgiAkECdkEDcSABRg0AIAAgAkFzcSABQQJ0QQxxcjYCGANAIAAtAAQiAUEEcQ0BIAAgAUEEcjoABCAAKAIUIgEEQCAAIAERAAALIABBgICA/gc2ArQCIAAoAqgEIgANAAsLCw0AIAAoAgBBByABEE0LDQAgACgCAEEGIAEQTQsNACAAKAIAQQUgARBNCxAAIAAoAgAgASACthAxEGILEAAgACgCACABIAK2EC8QYgt1AQF/AkAgACgCACIAKAIYIgJBEHZBA3EgAUYNACAAIAJB//9zcSABQRB0QYCADHFyNgIYA0AgAC0ABCIBQQRxDQEgACABQQRyOgAEIAAoAhQiAQRAIAAgAREAAAsgAEGAgID+BzYCtAIgACgCqAQiAA0ACwsLxwkCBn8DfQJAAkAgASgCACIFKAIYIAAoAgAiASgCGHNB////A3ENACAFKAIoIQACfwJAIAEoAigiAkHw4YP8B0cEQEMAAMB/IQhBAyACQarVqv0HRg0CGiACQY+evPwHRw0BQwAAAAAhCEEBDAILQQIMAQtBACACviIJIAlcDQAaIAJB/////3txQYCAgIACar4hCEECQQEgAkGAgICABHEbCyEDAn8CQCAAQfDhg/wHRwRAQwAAwH8hCUEDIABBqtWq/QdGDQIaIABBj568/AdHDQFDAAAAACEJQQEMAgtDAAAAACEJQQIMAQtBACAAviIKIApcDQAaIABB/////3txQYCAgIACar4hCUECQQEgAEGAgICABHEbCyADRyADRSAIIAhcIAkgCVxxciAIIAmTi0MXt9E4XXJFcg0AIAFBLGoiAygCACAFQSxqIgQoAgBHDQBBACEAAkADQCAAIgJBAWoiAEEJRg0BIAMgAEECdCIGaigCACAEIAZqKAIARg0ACyACQQhJDQELIAFB0ABqIgMoAgAgBUHQAGoiBCgCAEcNAEEAIQACQANAIAAiAkEBaiIAQQlGDQEgAyAAQQJ0IgZqKAIAIAQgBmooAgBGDQALIAJBCEkNAQsgAUH0AGoiAygCACAFQfQAaiIEKAIARw0AQQAhAAJAA0AgACICQQFqIgBBCUYNASADIABBAnQiBmooAgAgBCAGaigCAEYNAAsgAkEISQ0BCyABQZgBaiIDKAIAIAVBmAFqIgQoAgBHDQBBACEAAkADQCAAIgJBAWoiAEEJRg0BIAMgAEECdCIGaigCACAEIAZqKAIARg0ACyACQQhJDQELIAFBvAFqIgMoAgAgBUG8AWoiBCgCAEcNAEEAIQACQANAIAAiAkEBaiIAQQNGDQEgAyAAQQJ0IgZqKAIAIAQgBmooAgBGDQALIAJBAkkNAQsgBUHIAWohBiABQcgBaiEHQQAhAEEBIQIDQAJAIAYgAEECdCIAaigCACEDIAAgB2ooAgAhBCACQQFxRQ0AQQAhAkEBIQAgAyAERg0BCwsgAyAERw0AIAVB0AFqIQYgAUHQAWohB0EAIQBBASECA0ACQCAGIABBAnQiAGooAgAhAyAAIAdqKAIAIQQgAkEBcUUNAEEAIQJBASEAIAMgBEYNAQsLIAMgBEcNACAFQdgBaiEGIAFB2AFqIQdBACEAQQEhAgNAAkAgBiAAQQJ0IgBqKAIAIQMgACAHaigCACEEIAJBAXFFDQBBACECQQEhACADIARGDQELCyADIARHDQAgBSoCHCIJIAlcIgAgASoCHCIIIAhbRiAIIAhcIAByRSAIIAlccXINACABKgIgIgggCFsgBSoCICIJIAlcRiAIIAhbIAggCVxxcg0AIAUqAiQiCCAIXCIAIAEqAiQiCSAJW0YNACAARQRAIAggCVwNAQtBACEAIAEqAuABIgggCFwEQEEBIQAgBSoC4AEiCSAJXA0CCyAIIAUqAuABIglbIAAgCSAJXHFyDQELIAFBGGogBUEYakHMARArGgNAIAEtAAQiAEEEcQ0BIAEgAEEEcjoABCABKAIUIgAEQCABIAARAAALIAFBgICA/gc2ArQCIAEoAqgEIgENAAsLC8kCAQN/IwBB8ARrIgIkACAAKAIEIQEgAEEANgIEIAEEQCABIAEoAgAoAgQRAAALIAAoAgghASAAQQA2AgggAQRAIAEgASgCACgCBBEAAAsCQCAAKAIAIgAoArAEIAAoAqwERgRAIAAoAqgEDQEgACACQSBqIAAoArgEEIYBIgEpAgA3AgAgACABKQIQNwIQIAAgASkCCDcCCCAAQRhqIAFBGGpBzAEQKxogAEHkAWogAUHkAWpByAIQKxogACgCrAQiAwRAIAAgAzYCsAQgAxApCyAAIAEoAqwENgKsBCAAIAEoArAENgKwBCAAIAEoArQENgK0BCAAIAEoAsgENgLIBCAAIAEpAsAENwLABCAAIAEpArgENwK4BCACQfAEaiQADwsgAkHlGTYCECAAIAJBEGoQLRAsAAsgAkH/DzYCACAAIAIQLRAsAAsKAEEMEB0gABBZCwoAQQwQHUEAEFkLDQAgACgCAC0ACEEBcQsKACAAKAIAKAIQCw0AIAAoAgAoAhBBAXELGwAgAUEDTwRAEAQACyAAKAIAKAIMIAF2QQFxCxgAIAAoAgAiACAALQAIQf4BcSABcjoACAsMACAAKAIAIAE2AhALFwAgACgCACIAIAAoAhBBfnEgAXI2AhAL/QEBA38jAEEQayICJAAgACgCACEAIAFDAAAAAGBFBEAgAkHXETYCACMAQRBrIgMkACADIAI2AgwCQCAADQBB6DYtAAAEQEHkNigCACEADAELQRwQHSIAQoCAgPwDNwIUIABCADcCDCAAQQA2AgAgAEEAOgAIIABBATYCBEHkNiAANgIAQeg2QQE6AABB4DZB4DYoAgBBAWo2AgALIAAoAgQhBAJAIAAtAAhBCHEEQCAAQQBBBUEAQbwhIAIgBBERABoMAQsgAEEAQQVBvCEgAiAEEQsAGgsgA0EQaiQAECwACyAAQwAAAAAgASABQwAAAABbGzgCFCACQRBqJAALPAAgAUEDSQRAQQEgAXQhASAAKAIAIgACfyACBEAgACgCDCABcgwBCyAAKAIMIAFBf3NxCzYCDA8LEAQAC00BAn9BBBAdIQFBHBAdIgBCgICA/AM3AhQgAEIANwIMIABBADYCACAAQQA6AAggAEEBNgIEQeA2QeA2KAIAQQFqNgIAIAEgADYCACABCxAAIABBDTYCBCAAIAE2AgALEAAgAEEKNgIEIAAgATYCAAsQACAAQQc2AgQgACABNgIACyMAIAJBBUdBACACG0UEQEGoLCADIAQQYw8LQbgtIAMgBBBjCyIBAX4gASACrSADrUIghoQgBCAAERQAIgVCIIinJAEgBacLqAEBBX8gACgCVCIDKAIAIQUgAygCBCIEIAAoAhQgACgCHCIHayIGIAQgBkkbIgYEQCAFIAcgBhArGiADIAMoAgAgBmoiBTYCACADIAMoAgQgBmsiBDYCBAsgBCACIAIgBEsbIgQEQCAFIAEgBBArGiADIAMoAgAgBGoiBTYCACADIAMoAgQgBGs2AgQLIAVBADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAoIAMgAiACIANIGyEKDAELIAxBEGohEgJAAn8CQCABIAxBLGoQdCIBIAGgIgFEAAAAAAAAAABiBEAgDCAMKAIsIgZBAWs2AiwgBUEgciIOQeEARw0BDAMLIAVBIHIiDkHhAEYNAiAMKAIsIQlBBiADIANBAEgbDAELIAwgBkEdayIJNgIsIAFEAAAAAAAAsEGiIQFBBiADIANBAEgbCyELIAxBMGpBoAJBACAJQQBOG2oiDSEHA0AgBwJ/IAFEAAAAAAAA8EFjIAFEAAAAAAAAAABmcQRAIAGrDAELQQALIgM2AgAgB0EEaiEHIAEgA7ihRAAAAABlzc1BoiIBRAAAAAAAAAAAYg0ACwJAIAlBAEwEQCAJIQMgByEGIA0hCAwBCyANIQggCSEDA0BBHSADIANBHU4bIQMCQCAHQQRrIgYgCEkNACADrSEaQgAhGQNAIAYgGUL/////D4MgBjUCACAahnwiG0KAlOvcA4AiGUKA7JSjDH4gG3w+AgAgBkEEayIGIAhPDQALIBmnIgZFDQAgCEEEayIIIAY2AgALA0AgCCAHIgZJBEAgBkEEayIHKAIARQ0BCwsgDCAMKAIsIANrIgM2AiwgBiEHIANBAEoNAAsLIANBAEgEQCALQRlqQQluQQFqIQ8gDkHmAEYhEANAQQlBACADayIDIANBCU4bIQoCQCAGIAhNBEAgCCgCACEHDAELQYCU69wDIAp2IRRBfyAKdEF/cyEWQQAhAyAIIQcDQCAHIAMgBygCACIXIAp2ajYCACAWIBdxIBRsIQMgB0EEaiIHIAZJDQALIAgoAgAhByADRQ0AIAYgAzYCACAGQQRqIQYLIAwgDCgCLCAKaiIDNgIsIA0gCCAHRUECdGoiCCAQGyIHIA9BAnRqIAYgBiAHa0ECdSAPShshBiADQQBIDQALC0EAIQMCQCAGIAhNDQAgDSAIa0ECdUEJbCEDQQohByAIKAIAIgpBCkkNAANAIANBAWohAyAKIAdBCmwiB08NAAsLIAsgA0EAIA5B5gBHG2sgDkHnAEYgC0EAR3FrIgcgBiANa0ECdUEJbEEJa0gEQEEEQaQCIAlBAEgbIAxqIAdBgMgAaiIKQQltIg9BAnRqQdAfayEJQQohByAPQXdsIApqIgpBB0wEQANAIAdBCmwhByAKQQFqIgpBCEcNAAsLAkAgCSgCACIQIBAgB24iDyAHbCIKRiAJQQRqIhQgBkZxDQAgECAKayEQAkAgD0EBcUUEQEQAAAAAAABAQyEBIAdBgJTr3ANHIAggCU9yDQEgCUEEay0AAEEBcUUNAQtEAQAAAAAAQEMhAQtEAAAAAAAA4D9EAAAAAAAA8D9EAAAAAAAA+D8gBiAURhtEAAAAAAAA+D8gECAHQQF2IhRGGyAQIBRJGyEYAkAgFQ0AIBMtAABBLUcNACAYmiEYIAGaIQELIAkgCjYCACABIBigIAFhDQAgCSAHIApqIgM2AgAgA0GAlOvcA08EQANAIAlBADYCACAIIAlBBGsiCUsEQCAIQQRrIghBADYCAAsgCSAJKAIAQQFqIgM2AgAgA0H/k+vcA0sNAAsLIA0gCGtBAnVBCWwhA0EKIQcgCCgCACIKQQpJDQADQCADQQFqIQMgCiAHQQpsIgdPDQALCyAJQQRqIgcgBiAGIAdLGyEGCwNAIAYiByAITSIKRQRAIAdBBGsiBigCAEUNAQsLAkAgDkHnAEcEQCAEQQhxIQkMAQsgA0F/c0F/IAtBASALGyIGIANKIANBe0pxIgkbIAZqIQtBf0F+IAkbIAVqIQUgBEEIcSIJDQBBdyEGAkAgCg0AIAdBBGsoAgAiDkUNAEEKIQpBACEGIA5BCnANAANAIAYiCUEBaiEGIA4gCkEKbCIKcEUNAAsgCUF/cyEGCyAHIA1rQQJ1QQlsIQogBUFfcUHGAEYEQEEAIQkgCyAGIApqQQlrIgZBACAGQQBKGyIGIAYgC0obIQsMAQtBACEJIAsgAyAKaiAGakEJayIGQQAgBkEAShsiBiAGIAtKGyELC0F/IQogC0H9////B0H+////ByAJIAtyIhAbSg0BIAsgEEEAR2pBAWohDgJAIAVBX3EiFUHGAEYEQCADIA5B/////wdzSg0DIANBACADQQBKGyEGDAELIBIgAyADQR91IgZzIAZrrSASED4iBmtBAUwEQANAIAZBAWsiBkEwOgAAIBIgBmtBAkgNAAsLIAZBAmsiDyAFOgAAIAZBAWtBLUErIANBAEgbOgAAIBIgD2siBiAOQf////8Hc0oNAgsgBiAOaiIDIBFB/////wdzSg0BIABBICACIAMgEWoiBSAEECggACATIBEQJyAAQTAgAiAFIARBgIAEcxAoAkACQAJAIBVBxgBGBEAgDEEQaiIGQQhyIQMgBkEJciEJIA0gCCAIIA1LGyIKIQgDQCAINQIAIAkQPiEGAkAgCCAKRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgBiAJRw0AIAxBMDoAGCADIQYLIAAgBiAJIAZrECcgCEEEaiIIIA1NDQALIBAEQCAAQbMhQQEQJwsgC0EATCAHIAhNcg0BA0AgCDUCACAJED4iBiAMQRBqSwRAA0AgBkEBayIGQTA6AAAgBiAMQRBqSw0ACwsgACAGQQkgCyALQQlOGxAnIAtBCWshBiAIQQRqIgggB08NAyALQQlKIQMgBiELIAMNAAsMAgsCQCALQQBIDQAgByAIQQRqIAcgCEsbIQogDEEQaiIGQQhyIQMgBkEJciENIAghBwNAIA0gBzUCACANED4iBkYEQCAMQTA6ABggAyEGCwJAIAcgCEcEQCAGIAxBEGpNDQEDQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALDAELIAAgBkEBECcgBkEBaiEGIAkgC3JFDQAgAEGzIUEBECcLIAAgBiALIA0gBmsiBiAGIAtKGxAnIAsgBmshCyAHQQRqIgcgCk8NASALQQBODQALCyAAQTAgC0ESakESQQAQKCAAIA8gEiAPaxAnDAILIAshBgsgAEEwIAZBCWpBCUEAECgLIABBICACIAUgBEGAwABzECggBSACIAIgBUgbIQoMAQsgEyAFQRp0QR91QQlxaiELAkAgA0ELSw0AQQwgA2shBkQAAAAAAAAwQCEYA0AgGEQAAAAAAAAwQKIhGCAGQQFrIgYNAAsgCy0AAEEtRgRAIBggAZogGKGgmiEBDAELIAEgGKAgGKEhAQsgEUECciEJIAVBIHEhCCASIAwoAiwiByAHQR91IgZzIAZrrSASED4iBkYEQCAMQTA6AA8gDEEPaiEGCyAGQQJrIg0gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQYgDEEQaiEHA0AgByIFAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdBgCtqLQAAIAhyOgAAIAYgA0EASnJFIAEgB7ehRAAAAAAAADBAoiIBRAAAAAAAAAAAYXEgBUEBaiIHIAxBEGprQQFHckUEQCAFQS46AAEgBUECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQpB/f///wcgCSASIA1rIgVqIgZrIANIDQAgAEEgIAIgBgJ/AkAgA0UNACAHIAxBEGprIghBAmsgA04NACADQQJqDAELIAcgDEEQamsiCAsiB2oiAyAEECggACALIAkQJyAAQTAgAiADIARBgIAEcxAoIAAgDEEQaiAIECcgAEEwIAcgCGtBAEEAECggACANIAUQJyAAQSAgAiADIARBgMAAcxAoIAMgAiACIANIGyEKCyAMQbAEaiQAIAoLRQEBfyAAKAI8IQMjAEEQayIAJAAgAyABpyABQiCIpyACQf8BcSAAQQhqEBQQdSECIAApAwghASAAQRBqJABCfyABIAIbC70CAQd/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQYgA0EQaiEBAn8DQAJAAkACQCAAKAI8IAEgBiADQQxqEBgQdUUEQCAFIAMoAgwiB0YNASAHQQBODQIMAwsgBUF/Rw0CCyAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQIAIMAwsgASAHIAEoAgQiCEsiCUEDdGoiBCAHIAhBACAJG2siCCAEKAIAajYCACABQQxBBCAJG2oiASABKAIAIAhrNgIAIAUgB2shBSAGIAlrIQYgBCEBDAELCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAZBAkYNABogAiABKAIEawshBCADQSBqJAAgBAsJACAAKAI8EBkLIwEBf0GgNygCACIABEADQCAAKAIAEQcAIAAoAgQiAA0ACwsLvgIBBX8jAEHgAGsiAiQAIAIgADYCACMAQRBrIgMkACADIAI2AgwjAEGQAWsiACQAIABBkCtBkAEQKyIAIAJBEGoiBSIBNgIsIAAgATYCFCAAQf////8HQX4gAWsiBCAEQf////8HTxsiBDYCMCAAIAEgBGoiATYCHCAAIAE2AhAgAEGaESACQQBBABBzGiAEBEAgACgCFCIBIAEgACgCEEZrQQA6AAALIABBkAFqJAAgA0EQaiQAAkAgBSIAQQNxBEADQCAALQAARQ0CIABBAWoiAEEDcQ0ACwsDQCAAIgFBBGohACABKAIAIgNBf3MgA0GBgoQIa3FBgIGChHhxRQ0ACwNAIAEiAEEBaiEBIAAtAAANAAsLIAAgBWtBAWoiABBKIgEEfyABIAUgABArBUEACyEAIAJB4ABqJAAgAAvFAQICfwF8IwBBMGsiBiQAIAEoAgghBwJAQYw3LQAAQQFxBEBBiDcoAgAhAQwBC0EFQYAjEAshAUGMN0EBOgAAQYg3IAE2AgALIAYgBTYCKCAGIAQ4AiAgBiADNgIYIAYgAjgCEAJ/IAEgB0HqFiAGQQxqIAZBEGoQEiIIRAAAAAAAAPBBYyAIRAAAAAAAAAAAZnEEQCAIqwwBC0EACyEBIAYoAgwhAyAAIAEpAwA3AwAgACABKQMINwMIIAMQESAGQTBqJAALCAAgABB3ECkLDAAgACgCCEHdGRBRCwgAIAAQeRApC1UBAn8jAEEwayICJAAgASAAKAIEIgNBAXVqIQEgACgCACEAIAIgASADQQFxBH8gASgCACAAaigCAAUgAAsRAQBBMBAdIAJBMBArIQAgAkEwaiQAIAALOwEBfyABIAAoAgQiBUEBdWohASAAKAIAIQAgASACIAMgBCAFQQFxBH8gASgCACAAaigCAAUgAAsRHAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEQAAs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALEQwACzUBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAIAEgAkEBcQR/IAEoAgAgAGooAgAFIAALEQkAC2EBAn8jAEEQayICJAAgASAAKAIEIgNBAXVqIQEgACgCACEAIAIgASADQQFxBH8gASgCACAAaigCAAUgAAsRAQBBEBAdIgAgAikDCDcDCCAAIAIpAwA3AwAgAkEQaiQAIAALYwECfyMAQRBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQAgAyABIAIgBEEBcQR/IAEoAgAgAGooAgAFIAALEQMAQRAQHSIAIAMpAwg3AwggACADKQMANwMAIANBEGokACAACzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRBAALOQEBfyABIAAoAgQiBEEBdWohASAAKAIAIQAgASACIAMgBEEBcQR/IAEoAgAgAGooAgAFIAALEQgACwkAIAEgABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVp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",!U(Z)){var ee=Z;Z=s.locateFile?s.locateFile(ee,A):A+ee}function ue(){var N=Z;try{if(N==Z&&d)return new Uint8Array(d);if(U(N))try{var L=Wn(N.slice(37)),q=new Uint8Array(L.length);for(N=0;N=L?"_"+N:N}function O(N,L){return N=V(N),function(){return L.apply(this,arguments)}}var k=[{},{value:void 0},{value:null},{value:!0},{value:!1}],F=[];function me(N){var L=Error,q=O(N,function(oe){this.name=N,this.message=oe,oe=Error(oe).stack,oe!==void 0&&(this.stack=this.toString()+` -`+oe.replace(/^Error(:[^\n]*)?\n/,""))});return q.prototype=Object.create(L.prototype),q.prototype.constructor=q,q.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},q}var Ie=void 0;function ie(N){throw new Ie(N)}var Be=N=>(N||ie("Cannot use deleted val. handle = "+N),k[N].value),H=N=>{switch(N){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var L=F.length?F.pop():k.length;return k[L]={fa:1,value:N},L}},Ee=void 0,te=void 0;function ae(N){for(var L="";I[N];)L+=te[I[N++]];return L}var he=[];function Te(){for(;he.length;){var N=he.pop();N.L.Z=!1,N.delete()}}var j=void 0,S={};function D(N,L){for(L===void 0&&ie("ptr should not be undefined");N.P;)L=N.aa(L),N=N.P;return L}var ne={};function be(N){N=et(N);var L=ae(N);return yt(N),L}function De(N,L){var q=ne[N];return q===void 0&&ie(L+" has unknown type "+be(N)),q}function Qe(){}var Xe=!1;function ze(N){--N.count.value,N.count.value===0&&(N.S?N.T.V(N.S):N.O.M.V(N.N))}function qe(N,L,q){return L===q?N:q.P===void 0?null:(N=qe(N,L,q.P),N===null?null:q.ma(N))}var at={};function Ct(N,L){return L=D(N,L),S[L]}var Le=void 0;function Dt(N){throw new Le(N)}function Bt(N,L){return L.O&&L.N||Dt("makeClassHandle requires ptr and ptrType"),!!L.T!=!!L.S&&Dt("Both smartPtrType and smartPtr must be specified"),L.count={value:1},dt(Object.create(N,{L:{value:L}}))}function dt(N){return typeof FinalizationRegistry>"u"?(dt=L=>L,N):(Xe=new FinalizationRegistry(L=>{ze(L.L)}),dt=L=>{var q=L.L;return q.S&&Xe.register(L,{L:q},L),L},Qe=L=>{Xe.unregister(L)},dt(N))}var ot={};function tt(N){for(;N.length;){var L=N.pop();N.pop()(L)}}function vt(N){return this.fromWireType(R[N>>2])}var Pt={},Xt={};function _t(N,L,q){function oe(Ne){Ne=q(Ne),Ne.length!==N.length&&Dt("Mismatched type converter count");for(var Ve=0;Ve{ne.hasOwnProperty(Ne)?pe[Ve]=ne[Ne]:(we.push(Ne),Pt.hasOwnProperty(Ne)||(Pt[Ne]=[]),Pt[Ne].push(()=>{pe[Ve]=ne[Ne],++Pe,Pe===we.length&&oe(pe)}))}),we.length===0&&oe(pe)}function Ht(N){switch(N){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+N)}}function X(N,L,q={}){if(!("argPackAdvance"in L))throw new TypeError("registerType registeredInstance requires argPackAdvance");var oe=L.name;if(N||ie('type "'+oe+'" must have a positive integer typeid pointer'),ne.hasOwnProperty(N)){if(q.ta)return;ie("Cannot register type '"+oe+"' twice")}ne[N]=L,delete Xt[N],Pt.hasOwnProperty(N)&&(L=Pt[N],delete Pt[N],L.forEach(pe=>pe()))}function Ge(N){ie(N.L.O.M.name+" instance already deleted")}function Ue(){}function it(N,L,q){if(N[L].R===void 0){var oe=N[L];N[L]=function(){return N[L].R.hasOwnProperty(arguments.length)||ie("Function '"+q+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+N[L].R+")!"),N[L].R[arguments.length].apply(this,arguments)},N[L].R=[],N[L].R[oe.Y]=oe}}function At(N,L){s.hasOwnProperty(N)?(ie("Cannot register public name '"+N+"' twice"),it(s,N,N),s.hasOwnProperty(void 0)&&ie("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),s[N].R[void 0]=L):s[N]=L}function zt(N,L,q,oe,pe,we,Pe,Ne){this.name=N,this.constructor=L,this.W=q,this.V=oe,this.P=pe,this.oa=we,this.aa=Pe,this.ma=Ne,this.ia=[]}function Vt(N,L,q){for(;L!==q;)L.aa||ie("Expected null or instance of "+q.name+", got an instance of "+L.name),N=L.aa(N),L=L.P;return N}function Dn(N,L){return L===null?(this.da&&ie("null is not a valid "+this.name),0):(L.L||ie('Cannot pass "'+Pa(L)+'" as a '+this.name),L.L.N||ie("Cannot pass deleted object as a pointer of type "+this.name),Vt(L.L.N,L.L.O.M,this.M))}function hi(N,L){if(L===null){if(this.da&&ie("null is not a valid "+this.name),this.ca){var q=this.ea();return N!==null&&N.push(this.V,q),q}return 0}if(L.L||ie('Cannot pass "'+Pa(L)+'" as a '+this.name),L.L.N||ie("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&L.L.O.ba&&ie("Cannot convert argument of type "+(L.L.T?L.L.T.name:L.L.O.name)+" to parameter type "+this.name),q=Vt(L.L.N,L.L.O.M,this.M),this.ca)switch(L.L.S===void 0&&ie("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:L.L.T===this?q=L.L.S:ie("Cannot convert argument of type "+(L.L.T?L.L.T.name:L.L.O.name)+" to parameter type "+this.name);break;case 1:q=L.L.S;break;case 2:if(L.L.T===this)q=L.L.S;else{var oe=L.clone();q=this.wa(q,H(function(){oe.delete()})),N!==null&&N.push(this.V,q)}break;default:ie("Unsupporting sharing policy")}return q}function Zt(N,L){return L===null?(this.da&&ie("null is not a valid "+this.name),0):(L.L||ie('Cannot pass "'+Pa(L)+'" as a '+this.name),L.L.N||ie("Cannot pass deleted object as a pointer of type "+this.name),L.L.O.ba&&ie("Cannot convert argument of type "+L.L.O.name+" to parameter type "+this.name),Vt(L.L.N,L.L.O.M,this.M))}function cn(N,L,q,oe){this.name=N,this.M=L,this.da=q,this.ba=oe,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,L.P!==void 0?this.toWireType=hi:(this.toWireType=oe?Dn:Zt,this.U=null)}function Ki(N,L){s.hasOwnProperty(N)||Dt("Replacing nonexistant public symbol"),s[N]=L,s[N].Y=void 0}function La(N,L){var q=[];return function(){if(q.length=0,Object.assign(q,arguments),N.includes("j")){var oe=s["dynCall_"+N];oe=q&&q.length?oe.apply(null,[L].concat(q)):oe.call(null,L)}else oe=M.get(L).apply(null,q);return oe}}function fi(N,L){N=ae(N);var q=N.includes("j")?La(N,L):M.get(L);return typeof q!="function"&&ie("unknown function pointer with signature "+N+": "+L),q}var Fs=void 0;function or(N,L){function q(we){pe[we]||ne[we]||(Xt[we]?Xt[we].forEach(q):(oe.push(we),pe[we]=!0))}var oe=[],pe={};throw L.forEach(q),new Fs(N+": "+oe.map(be).join([", "]))}function hs(N,L,q,oe,pe){var we=L.length;2>we&&ie("argTypes array size mismatch! Must at least get return value and 'this' types!");var Pe=L[1]!==null&&q!==null,Ne=!1;for(q=1;q>2]);return q}function Co(N){4>2])};case 3:return function(q){return this.fromWireType(P[q>>3])};default:throw new TypeError("Unknown float type: "+N)}}function bu(N,L,q){switch(L){case 0:return q?function(oe){return g[oe]}:function(oe){return I[oe]};case 1:return q?function(oe){return y[oe>>1]}:function(oe){return B[oe>>1]};case 2:return q?function(oe){return R[oe>>2]}:function(oe){return w[oe>>2]};default:throw new TypeError("Unknown integer type: "+N)}}function z(N,L){for(var q="",oe=0;!(oe>=L/2);++oe){var pe=y[N+2*oe>>1];if(pe==0)break;q+=String.fromCharCode(pe)}return q}function de(N,L,q){if(q===void 0&&(q=2147483647),2>q)return 0;q-=2;var oe=L;q=q<2*N.length?q/2:N.length;for(var pe=0;pe>1]=N.charCodeAt(pe),L+=2;return y[L>>1]=0,L-oe}function xe(N){return 2*N.length}function Se(N,L){for(var q=0,oe="";!(q>=L/4);){var pe=R[N+4*q>>2];if(pe==0)break;++q,65536<=pe?(pe-=65536,oe+=String.fromCharCode(55296|pe>>10,56320|pe&1023)):oe+=String.fromCharCode(pe)}return oe}function ve(N,L,q){if(q===void 0&&(q=2147483647),4>q)return 0;var oe=L;q=oe+q-4;for(var pe=0;pe=we){var Pe=N.charCodeAt(++pe);we=65536+((we&1023)<<10)|Pe&1023}if(R[L>>2]=we,L+=4,L+4>q)break}return R[L>>2]=0,L-oe}function Ze(N){for(var L=0,q=0;q=oe&&++q,L+=4}return L}var lt={};function gt(N){var L=lt[N];return L===void 0?ae(N):L}var pt=[];function St(N){var L=pt.length;return pt.push(N),L}function It(N,L){for(var q=Array(N),oe=0;oe>2],"parameter "+oe);return q}var xt=[],mn=[null,[],[]];Ie=s.BindingError=me("BindingError"),s.count_emval_handles=function(){for(var N=0,L=5;L$t;++$t)Vn[$t]=String.fromCharCode($t);te=Vn,s.getInheritedInstanceCount=function(){return Object.keys(S).length},s.getLiveInheritedInstances=function(){var N=[],L;for(L in S)S.hasOwnProperty(L)&&N.push(S[L]);return N},s.flushPendingDeletes=Te,s.setDelayFunction=function(N){j=N,he.length&&j&&j(Te)},Le=s.InternalError=me("InternalError"),Ue.prototype.isAliasOf=function(N){if(!(this instanceof Ue&&N instanceof Ue))return!1;var L=this.L.O.M,q=this.L.N,oe=N.L.O.M;for(N=N.L.N;L.P;)q=L.aa(q),L=L.P;for(;oe.P;)N=oe.aa(N),oe=oe.P;return L===oe&&q===N},Ue.prototype.clone=function(){if(this.L.N||Ge(this),this.L.$)return this.L.count.value+=1,this;var N=dt,L=Object,q=L.create,oe=Object.getPrototypeOf(this),pe=this.L;return N=N(q.call(L,oe,{L:{value:{count:pe.count,Z:pe.Z,$:pe.$,N:pe.N,O:pe.O,S:pe.S,T:pe.T}}})),N.L.count.value+=1,N.L.Z=!1,N},Ue.prototype.delete=function(){this.L.N||Ge(this),this.L.Z&&!this.L.$&&ie("Object already scheduled for deletion"),Qe(this),ze(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},Ue.prototype.isDeleted=function(){return!this.L.N},Ue.prototype.deleteLater=function(){return this.L.N||Ge(this),this.L.Z&&!this.L.$&&ie("Object already scheduled for deletion"),he.push(this),he.length===1&&j&&j(Te),this.L.Z=!0,this},cn.prototype.pa=function(N){return this.ja&&(N=this.ja(N)),N},cn.prototype.ga=function(N){this.V&&this.V(N)},cn.prototype.argPackAdvance=8,cn.prototype.readValueFromPointer=vt,cn.prototype.deleteObject=function(N){N!==null&&N.delete()},cn.prototype.fromWireType=function(N){function L(){return this.ca?Bt(this.M.W,{O:this.va,N:q,T:this,S:N}):Bt(this.M.W,{O:this,N})}var q=this.pa(N);if(!q)return this.ga(N),null;var oe=Ct(this.M,q);if(oe!==void 0)return oe.L.count.value===0?(oe.L.N=q,oe.L.S=N,oe.clone()):(oe=oe.clone(),this.ga(N),oe);if(oe=this.M.oa(q),oe=at[oe],!oe)return L.call(this);oe=this.ba?oe.ka:oe.pointerType;var pe=qe(q,this.M,oe.M);return pe===null?L.call(this):this.ca?Bt(oe.M.W,{O:oe,N:pe,T:this,S:N}):Bt(oe.M.W,{O:oe,N:pe})},Fs=s.UnboundTypeError=me("UnboundTypeError");var Wn=typeof atob=="function"?atob:function(N){var L="",q=0;N=N.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var oe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(q++)),pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(q++)),we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(q++)),Pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(q++));oe=oe<<2|pe>>4,pe=(pe&15)<<4|we>>2;var Ne=(we&3)<<6|Pe;L+=String.fromCharCode(oe),we!==64&&(L+=String.fromCharCode(pe)),Pe!==64&&(L+=String.fromCharCode(Ne))}while(qPe.sa).concat(pe.map(Pe=>Pe.ya));_t([N],we,Pe=>{var Ne={};return pe.forEach((Ve,Oe)=>{var $e=Pe[Oe],ht=Ve.qa,kt=Ve.ra,dn=Pe[Oe+pe.length],Ot=Ve.xa,Di=Ve.za;Ne[Ve.na]={read:lr=>$e.fromWireType(ht(kt,lr)),write:(lr,ks)=>{var cr=[];Ot(Di,lr,dn.toWireType(cr,ks)),tt(cr)}}}),[{name:L.name,fromWireType:function(Ve){var Oe={},$e;for($e in Ne)Oe[$e]=Ne[$e].read(Ve);return oe(Ve),Oe},toWireType:function(Ve,Oe){for(var $e in Ne)if(!($e in Oe))throw new TypeError('Missing field: "'+$e+'"');var ht=q();for($e in Ne)Ne[$e].write(ht,Oe[$e]);return Ve!==null&&Ve.push(oe,ht),ht},argPackAdvance:8,readValueFromPointer:vt,U:oe}]})},v:function(){},B:function(N,L,q,oe,pe){var we=Ht(q);L=ae(L),X(N,{name:L,fromWireType:function(Pe){return!!Pe},toWireType:function(Pe,Ne){return Ne?oe:pe},argPackAdvance:8,readValueFromPointer:function(Pe){if(q===1)var Ne=g;else if(q===2)Ne=y;else if(q===4)Ne=R;else throw new TypeError("Unknown boolean type size: "+L);return this.fromWireType(Ne[Pe>>we])},U:null})},f:function(N,L,q,oe,pe,we,Pe,Ne,Ve,Oe,$e,ht,kt){$e=ae($e),we=fi(pe,we),Ne&&(Ne=fi(Pe,Ne)),Oe&&(Oe=fi(Ve,Oe)),kt=fi(ht,kt);var dn=V($e);At(dn,function(){or("Cannot construct "+$e+" due to unbound types",[oe])}),_t([N,L,q],oe?[oe]:[],function(Ot){if(Ot=Ot[0],oe)var Di=Ot.M,lr=Di.W;else lr=Ue.prototype;Ot=O(dn,function(){if(Object.getPrototypeOf(this)!==ks)throw new Ie("Use 'new' to construct "+$e);if(cr.X===void 0)throw new Ie($e+" has no accessible constructor");var $h=cr.X[arguments.length];if($h===void 0)throw new Ie("Tried to invoke ctor of "+$e+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(cr.X).toString()+") parameters instead!");return $h.apply(this,arguments)});var ks=Object.create(lr,{constructor:{value:Ot}});Ot.prototype=ks;var cr=new zt($e,Ot,ks,kt,Di,we,Ne,Oe);Di=new cn($e,cr,!0,!1),lr=new cn($e+"*",cr,!1,!1);var yo=new cn($e+" const*",cr,!1,!0);return at[N]={pointerType:lr,ka:yo},Ki(dn,Ot),[Di,lr,yo]})},c:function(N,L,q,oe,pe,we,Pe){var Ne=Eo(q,oe);L=ae(L),we=fi(pe,we),_t([],[N],function(Ve){function Oe(){or("Cannot call "+$e+" due to unbound types",Ne)}Ve=Ve[0];var $e=Ve.name+"."+L;L.startsWith("@@")&&(L=Symbol[L.substring(2)]);var ht=Ve.M.constructor;return ht[L]===void 0?(Oe.Y=q-1,ht[L]=Oe):(it(ht,L,$e),ht[L].R[q-1]=Oe),_t([],Ne,function(kt){return kt=hs($e,[kt[0],null].concat(kt.slice(1)),null,we,Pe),ht[L].R===void 0?(kt.Y=q-1,ht[L]=kt):ht[L].R[q-1]=kt,[]}),[]})},o:function(N,L,q,oe,pe,we){0{or("Cannot construct "+Ne.name+" due to unbound types",Pe)},_t([],Pe,function(Oe){return Oe.splice(1,0,null),Ne.M.X[L-1]=hs(Ve,Oe,null,pe,we),[]}),[]})},a:function(N,L,q,oe,pe,we,Pe,Ne){var Ve=Eo(q,oe);L=ae(L),we=fi(pe,we),_t([],[N],function(Oe){function $e(){or("Cannot call "+ht+" due to unbound types",Ve)}Oe=Oe[0];var ht=Oe.name+"."+L;L.startsWith("@@")&&(L=Symbol[L.substring(2)]),Ne&&Oe.M.ia.push(L);var kt=Oe.M.W,dn=kt[L];return dn===void 0||dn.R===void 0&&dn.className!==Oe.name&&dn.Y===q-2?($e.Y=q-2,$e.className=Oe.name,kt[L]=$e):(it(kt,L,ht),kt[L].R[q-2]=$e),_t([],Ve,function(Ot){return Ot=hs(ht,Ot,Oe,we,Pe),kt[L].R===void 0?(Ot.Y=q-2,kt[L]=Ot):kt[L].R[q-2]=Ot,[]}),[]})},A:function(N,L){L=ae(L),X(N,{name:L,fromWireType:function(q){var oe=Be(q);return Co(q),oe},toWireType:function(q,oe){return H(oe)},argPackAdvance:8,readValueFromPointer:vt,U:null})},m:function(N,L,q){q=Ht(q),L=ae(L),X(N,{name:L,fromWireType:function(oe){return oe},toWireType:function(oe,pe){return pe},argPackAdvance:8,readValueFromPointer:Du(L,q),U:null})},d:function(N,L,q,oe,pe){L=ae(L),pe===-1&&(pe=4294967295),pe=Ht(q);var we=Ne=>Ne;if(oe===0){var Pe=32-8*q;we=Ne=>Ne<>>Pe}q=L.includes("unsigned")?function(Ne,Ve){return Ve>>>0}:function(Ne,Ve){return Ve},X(N,{name:L,fromWireType:we,toWireType:q,argPackAdvance:8,readValueFromPointer:bu(L,pe,oe!==0),U:null})},b:function(N,L,q){function oe(we){we>>=2;var Pe=w;return new pe(C,Pe[we+1],Pe[we])}var pe=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][L];q=ae(q),X(N,{name:q,fromWireType:oe,argPackAdvance:8,readValueFromPointer:oe},{ta:!0})},n:function(N,L){L=ae(L);var q=L==="std::string";X(N,{name:L,fromWireType:function(oe){var pe=w[oe>>2],we=oe+4;if(q)for(var Pe=we,Ne=0;Ne<=pe;++Ne){var Ve=we+Ne;if(Ne==pe||I[Ve]==0){if(Pe=Pe?x(I,Pe,Ve-Pe):"",Oe===void 0)var Oe=Pe;else Oe+="\0",Oe+=Pe;Pe=Ve+1}}else{for(Oe=Array(pe),Ne=0;Ne=Ve?Ne++:2047>=Ve?Ne+=2:55296<=Ve&&57343>=Ve?(Ne+=4,++we):Ne+=3}we=Ne}else we=pe.length;if(Ne=Ei(4+we+1),Ve=Ne+4,w[Ne>>2]=we,q&&Pe){if(Pe=Ve,Ve=we+1,we=I,0=$e){var ht=pe.charCodeAt(++Oe);$e=65536+(($e&1023)<<10)|ht&1023}if(127>=$e){if(Pe>=Ve)break;we[Pe++]=$e}else{if(2047>=$e){if(Pe+1>=Ve)break;we[Pe++]=192|$e>>6}else{if(65535>=$e){if(Pe+2>=Ve)break;we[Pe++]=224|$e>>12}else{if(Pe+3>=Ve)break;we[Pe++]=240|$e>>18,we[Pe++]=128|$e>>12&63}we[Pe++]=128|$e>>6&63}we[Pe++]=128|$e&63}}we[Pe]=0}}else if(Pe)for(Pe=0;PeB,Ne=1;else L===4&&(oe=Se,pe=ve,we=Ze,Pe=()=>w,Ne=2);X(N,{name:q,fromWireType:function(Ve){for(var Oe=w[Ve>>2],$e=Pe(),ht,kt=Ve+4,dn=0;dn<=Oe;++dn){var Ot=Ve+4+dn*L;(dn==Oe||$e[Ot>>Ne]==0)&&(kt=oe(kt,Ot-kt),ht===void 0?ht=kt:(ht+="\0",ht+=kt),kt=Ot+L)}return yt(Ve),ht},toWireType:function(Ve,Oe){typeof Oe!="string"&&ie("Cannot pass non-string to C++ string type "+q);var $e=we(Oe),ht=Ei(4+$e+L);return w[ht>>2]=$e>>Ne,pe(Oe,ht+4,$e+L),Ve!==null&&Ve.push(yt,ht),ht},argPackAdvance:8,readValueFromPointer:vt,U:function(Ve){yt(Ve)}})},k:function(N,L,q,oe,pe,we){ot[N]={name:ae(L),ea:fi(q,oe),V:fi(pe,we),ha:[]}},h:function(N,L,q,oe,pe,we,Pe,Ne,Ve,Oe){ot[N].ha.push({na:ae(L),sa:q,qa:fi(oe,pe),ra:we,ya:Pe,xa:fi(Ne,Ve),za:Oe})},C:function(N,L){L=ae(L),X(N,{ua:!0,name:L,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(N,L,q,oe,pe){N=pt[N],L=Be(L),q=gt(q);var we=[];return w[oe>>2]=H(we),N(L,q,we,pe)},t:function(N,L,q,oe){N=pt[N],L=Be(L),q=gt(q),N(L,q,null,oe)},g:Co,l:function(N,L){var q=It(N,L),oe=q[0];L=oe.name+"_$"+q.slice(1).map(function(Pe){return Pe.name}).join("_")+"$";var pe=xt[L];if(pe!==void 0)return pe;var we=Array(N-1);return pe=St((Pe,Ne,Ve,Oe)=>{for(var $e=0,ht=0;ht>>=0,2147483648=q;q*=2){var oe=L*(1+.2/q);oe=Math.min(oe,N+100663296);var pe=Math;oe=Math.max(N,oe),pe=pe.min.call(pe,2147483648,oe+(65536-oe%65536)%65536);e:{try{m.grow(pe-C.byteLength+65535>>>16),J();var we=1;break e}catch{}we=void 0}if(we)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(N,L,q,oe){for(var pe=0,we=0;we>2],Ne=w[L+4>>2];L+=8;for(var Ve=0;Ve>2]=pe,0}};(function(){function N(pe){s.asm=pe.exports,m=s.asm.D,J(),M=s.asm.I,K.unshift(s.asm.E),ce--,s.monitorRunDependencies&&s.monitorRunDependencies(ce),ce==0&&re&&(pe=re,re=null,pe())}function L(pe){N(pe.instance)}function q(pe){return ye().then(function(we){return WebAssembly.instantiate(we,oe)}).then(function(we){return we}).then(pe,function(we){f("failed to asynchronously prepare wasm: "+we),fe(we)})}var oe={a:Et};if(ce++,s.monitorRunDependencies&&s.monitorRunDependencies(ce),s.instantiateWasm)try{return s.instantiateWasm(oe,N)}catch(pe){f("Module.instantiateWasm callback failed with error: "+pe),a(pe)}return function(){return d||typeof WebAssembly.instantiateStreaming!="function"||U(Z)||typeof fetch!="function"?q(L):fetch(Z,{credentials:"same-origin"}).then(function(pe){return WebAssembly.instantiateStreaming(pe,oe).then(L,function(we){return f("wasm streaming compile failed: "+we),f("falling back to ArrayBuffer instantiation"),q(L)})})}().catch(a),{}})(),s.___wasm_call_ctors=function(){return(s.___wasm_call_ctors=s.asm.E).apply(null,arguments)};var et=s.___getTypeName=function(){return(et=s.___getTypeName=s.asm.F).apply(null,arguments)};s.__embind_initialize_bindings=function(){return(s.__embind_initialize_bindings=s.asm.G).apply(null,arguments)};var Ei=s._malloc=function(){return(Ei=s._malloc=s.asm.H).apply(null,arguments)},yt=s._free=function(){return(yt=s._free=s.asm.J).apply(null,arguments)};s.dynCall_jiji=function(){return(s.dynCall_jiji=s.asm.K).apply(null,arguments)};var un;re=function N(){un||ar(),un||(re=N)};function ar(){function N(){if(!un&&(un=!0,s.calledRun=!0,!E)){if(ke(K),o(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;){var L=s.postRun.shift();ge.unshift(L)}ke(ge)}}if(!(0on(n),e);$.useEffect(()=>t,[t])}let RE;function k5(){if(RE==null){const n=RE=fn(void 0);Ui.loadYoga().then(e=>n.value=e)}return RE}function KR(n,e,...t){const i=$.useMemo(()=>fn(void 0),[]);return $.useEffect(()=>{if(!(e instanceof zn)){let r=!1;return n(e,...t).then(s=>r?void 0:i.value=s),()=>r=!0}return on(()=>{let r=!1;return n(e.value,...t).then(s=>r?void 0:i.value=s).catch(console.error),()=>r=!0})},[e,...t]),i}function qR(n,e,t,i,r){const[s,o]=n.value,[a,c,A,h]=e.value,[f,d,m,E]=t.value,x=a+f,C=c+d,g=A+m,I=h+E,y=s-I-C,B=o-x-g,R=y/B;let w=1;return R>r?w=B*i:w=y*i/r,[(I-C)*.5*i,(g-x)*.5*i,w]}const pS=new Je;function Ny(n,e,t,i=0){const r=e*n.itemSize+i;n.addUpdateRange(r,3),Array.isArray(t)?n.set(t,r):(pS.set(t),pS.toArray(n.array,r)),n.needsUpdate=!0}function Ly(n){return n instanceof zn?n.value:n}const jR=$.createContext(null);function Hl(){return $.useContext(jR)}const G5=jR.Provider;function Wo(n){const e=new Map;return(t,i)=>{const r=t.length;for(const s in i){const o=i[s];if(o===void 0)return;let a=e.get(o);a==null&&e.set(o,a=ti(()=>n()?Ly(o):void 0));for(let c=0;c"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),ZR=fn((au==null?void 0:au.matches)??!1);au==null||au.addEventListener("change",n=>ZR.value=n.matches);const Dv=fn("system"),$R=ti(()=>{switch(Dv.value){case"system":return ZR.value;case"dark":return!0;case"light":return!1}});function O5(n){Dv.value=n}function gS(){return Dv.peek()}const H5=Wo(()=>$R.value);function _a(n,e){Xh(e,t=>{const i=t.dark;i!=null&&H5(n,i)})}function z5({dark:n,light:e}){const t={};for(const i in n)t[i]=ti(()=>$R.value?n[i]:e[i]);return t}const V5=Math.cos(45/180*Math.PI),TE=[new ln,new ln,new ln,new ln],mS=new G;class W5{constructor(e,t,i,r,s){We(this,"planes");We(this,"facePlane");We(this,"originalCenter");this.originalCenter=new G(t,i,0).applyMatrix4(e),this.facePlane=new ln(new G(0,0,1),0).applyMatrix4(e);const o=r/2,a=s/2,c=i+a,A=t+o,h=-i+a,f=-t+o;this.planes=[new ln(new G(0,-1,0),h).applyMatrix4(e),new ln(new G(-1,0,0),f).applyMatrix4(e),new ln(new G(0,1,0),c).applyMatrix4(e),new ln(new G(1,0,0),A).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const s=this.facePlane,o=e[r],a=s.normal.dot(o.normal);if(Math.abs(a)>.99)return this;const c=TE[r];if(Math.abs(a)<.01){c.copy(o);continue}c.normal.crossVectors(s.normal,o.normal).normalize().cross(s.normal).negate();const A=1-a*a,h=(s.constant-o.constant*a)/A,f=(o.constant-s.constant*a)/A;mS.copy(s.normal).multiplyScalar(h).addScaledVector(o.normal,f),c.constant=-mS.dot(c.normal)}let t=0;const i=this.planes[0].normal;for(;TE[t].normal.dot(i)>V5;)break;for(let r=0;r<4;r++){const s=this.planes[r],o=(r+t)%4;TE[o].distanceToPoint(this.originalCenter)ti(()=>{const r=e.value,s=n==null?void 0:n.value;if(s==null||r==null)return!1;const[o,a]=t.value;for(let h=0;h<4;h++){const[f,d]=J5[h];ES[h].set(f*i.pixelSize*o,d*i.pixelSize*a,0).applyMatrix4(r)}const{planes:c}=s;let A;for(let h=0;h<4;h++){const f=c[h];A=!0;for(let d=0;d<4;d++){const m=ES[d];f.distanceToPoint(m)>=0&&(A=!1)}if(A)return!0}return!1}),[e,n,i,t])}function K5(n,e,t,i,r,s){return $.useMemo(()=>ti(()=>{const o=n.value;if(o==null||i.value===Ui.Overflow.Visible)return s==null?void 0:s.value;const[a,c]=e.value,[A,h,f,d]=t.value,m=new W5(o,(h-d)*r.pixelSize/2,(A-f)*r.pixelSize/2,(a-d-h)*r.pixelSize,(c-A-f)*r.pixelSize);return(s==null?void 0:s.value)!=null&&m.min(s.value),m}),[n,e,t,r,i,s])}const Py=new ln(new G(-1,0,0),Number.MAX_SAFE_INTEGER),dg=new Float32Array(16);for(let n=0;n<4;n++)Py.normal.toArray(dg,n*4),dg[n*4+3]=Py.constant;function Jh(n,e){const t=$.useMemo(()=>[new ln,new ln,new ln,new ln],[]);return ya(()=>{var s;const i=e.current;if(i==null)return;const r=(s=n==null?void 0:n.value)==null?void 0:s.planes;if(r==null){for(let o=0;o<4;o++)t[o].copy(Py);return}for(let o=0;o<4;o++)t[o].copy(r[o]).applyMatrix4(i.matrixWorld)}),t}class q5{constructor(e,t){We(this,"glyphInfoMap",new Map);We(this,"kerningMap",new Map);We(this,"questionmarkGlyphInfo");We(this,"pageWidth");We(this,"pageHeight");We(this,"distanceRange");this.page=t;const{scaleW:i,scaleH:r,lineHeight:s}=e.common;this.pageWidth=i,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const c of e.chars)c.uvX=c.x/i,c.uvY=c.y/r,c.uvWidth=c.width/i,c.uvHeight=c.height/r,c.width/=o,c.height/=o,c.xadvance/=o,c.xoffset/=o,c.yoffset-=s-o,c.yoffset/=o,this.glyphInfoMap.set(c.char,c);for(const{first:c,second:A,amount:h}of e.kernings)this.kerningMap.set(`${c}/${A}`,h/o);const a=this.glyphInfoMap.get("?");if(a==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=a}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` -`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,t){return this.kerningMap.get(`${e}/${t}`)??0}}function j5(n,e,t){e[t+0]=n.uvX,e[t+1]=n.uvY+n.uvHeight,e[t+2]=n.uvWidth,e[t+3]=-n.uvHeight}const CS=new ft,Z5=new ft;class $5{constructor(e,t,i,r,s){We(this,"index");We(this,"hidden",!0);We(this,"glyphInfo");We(this,"x",0);We(this,"y",0);We(this,"fontSize",0);this.group=e,this.baseMatrix=t,this.color=i,this.opacity=r,this.clippingRect=s}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const t=this.index*16,{instanceClipping:i}=this.group;this.clippingRect==null?i.set(dg,t):this.clippingRect.toArray(i.array,t),i.addUpdateRange(t,16),i.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&Ny(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:t}=this.group,i=this.index*4+3;t.array[i]=e,t.addUpdateRange(i,1),t.needsUpdate=!0}updateGlyphAndTransformation(e,t,i,r){this.glyphInfo===e&&this.x===t&&this.y===i&&this.fontSize===r||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=t,this.y=i,this.fontSize=r,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:t}=this.group;j5(this.glyphInfo,t.array,e),t.addUpdateRange(e,4),t.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:t}=this.group;t.addUpdateRange(e,16),CS.makeTranslation(this.x,this.y,0).multiply(Z5.makeScale(this.fontSize*this.glyphInfo.width,this.fontSize*this.glyphInfo.height,1)).premultiply(this.baseMatrix),CS.toArray(t.array,e),t.needsUpdate=!0}}function eG(n,e,t,i){return((i==null?0:n.getKerning(i,t.id))+t.xoffset)*e}function tG(n,e,t){return(t.yoffset+(e-1)/2)*n}function cm(n,e,t){return e.xadvance*n+t}function nG(n,e){return n*e}function Uy(n,{lineHeight:e,fontSize:t}){return Math.max(n,1)*t*e}class iG{constructor(e,t,i,r,s,o,a){We(this,"glyphLines",[]);We(this,"unsubscribe");We(this,"unsubscribeList",[]);We(this,"opacity",1);We(this,"color",16777215);this.group=e,this.getAlignmentProperties=t,this.getAppearanceProperties=i,this.layout=r,this.matrix=s,this.parentClippingRect=a,this.unsubscribe=on(()=>{const c=i.value;if(c==null||(o==null?void 0:o.value)===!0||(c("opacity")??1)<.01){this.hide();return}this.show()})}show(){this.unsubscribeList.length>0||(nl(this.glyphLines,e=>e.show()),this.unsubscribeList.push(on(()=>{const e=this.matrix.value;e!=null&&nl(this.glyphLines,t=>t.updateBaseMatrix(e))}),on(()=>{var t;const e=(t=this.parentClippingRect)==null?void 0:t.value;nl(this.glyphLines,i=>i.updateClippingRect(e))}),on(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.color=e("color")??16777215;nl(this.glyphLines,i=>i.updateColor(t))}),on(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.opacity=e("opacity")??1;nl(this.glyphLines,i=>i.updateOpacity(t))}),on(()=>{var x;const e=this.layout.value,t=this.getAlignmentProperties.value;if(e==null||t==null)return;const{text:i,font:r,lines:s,letterSpacing:o=0,fontSize:a=16,lineHeight:c=1.2,availableHeight:A,availableWidth:h}=e;let f=-A/2;switch(t("verticalAlign")){case"center":f+=(A-Uy(e.lines.length,e))/2;break;case"bottom":f+=A-Uy(e.lines.length,e);break}const d=t("horizontalAlign")??"left",m=s.length,E=this.group.pixelSize;for(let C=0;CC.hide(),m),this.glyphLines.length=m})))}hide(){const e=this.unsubscribeList.length;if(e!==0){for(let t=0;tt.hide())}}destroy(){this.hide(),this.glyphLines.length=0,this.unsubscribe()}}function nl(n,e,t=0){const i=n.length;for(let r=t;r{t.uniforms.fontPage={value:e.page},t.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},t.uniforms.distanceRange={value:e.distanceRange},t.uniforms.v_weight={value:.3},t.vertexShader=`attribute vec4 instanceUVOffset; + `)+l.join(" > ")}return null},t.getPublicRootInstance=function(l){if(l=l.current,!l.child)return null;switch(l.child.tag){case 5:return te(l.child.stateNode);default:return l.child.stateNode}},t.injectIntoDevTools=function(l){if(l={bundleType:l.bundleType,version:l.version,rendererPackageName:l.rendererPackageName,rendererConfig:l.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:a.ReactCurrentDispatcher,findHostInstanceByFiber:D3,findFiberByHostInstance:l.findFiberByHostInstance||b3,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")l=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)l=!0;else{try{nf=u.inject(l),ps=u}catch{}l=!!u.checkDCE}}return l},t.isAlreadyRendering=function(){return!1},t.observeVisibleRects=function(l,u,g,v){if(!D)throw Error(o(363));l=i0(l,u);var _=qe(l,g,v).disconnect;return{disconnect:function(){_()}}},t.registerMutableSourceForHydration=function(l,u){var g=u._getVersion;g=g(u._source),l.mutableSourceEagerHydrationData==null?l.mutableSourceEagerHydrationData=[u,g]:l.mutableSourceEagerHydrationData.push(u,g)},t.runWithPriority=function(l,u){var g=qt;try{return qt=l,u()}finally{qt=g}},t.shouldError=function(){return null},t.shouldSuspend=function(){return!1},t.updateContainer=function(l,u,g,v){var _=u.current,Q=Pi(),W=ko(_);return g=vx(g),u.context===null?u.context=g:u.pendingContext=g,u=zs(Q,W),u.payload={element:l},v=v===void 0?null:v,v!==null&&(u.callback=v),Po(_,u),l=Dr(_,W,Q),l!==null&&lf(l,_,W),W},t};DR.exports=i5;var r5=DR.exports;const s5=rw(r5),Dv={},o5=n=>void Object.assign(Dv,n);function a5(n,e){function t(h,{args:f=[],attach:d,...m},E){let x=`${h[0].toUpperCase()}${h.slice(1)}`,C;if(h==="primitive"){if(m.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const p=m.object;C=Uc(p,{type:h,root:E,attach:d,primitive:!0})}else{const p=Dv[x];if(!p)throw new Error(`R3F: ${x} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(f))throw new Error("R3F: The args prop must be an array!");C=Uc(new p(...f),{type:h,root:E,attach:d,memoizedProps:{args:f}})}return C.__r3f.attach===void 0&&(C instanceof Tt?C.__r3f.attach="geometry":C instanceof hi&&(C.__r3f.attach="material")),x!=="inject"&&QE(C,m),C}function i(h,f){let d=!1;if(f){var m,E;(m=f.__r3f)!=null&&m.attach?ME(h,f,f.__r3f.attach):f.isObject3D&&h.isObject3D&&(h.add(f),d=!0),d||(E=h.__r3f)==null||E.objects.push(f),f.__r3f||Uc(f,{}),f.__r3f.parent=h,Ny(f),Fc(f)}}function r(h,f,d){let m=!1;if(f){var E,x;if((E=f.__r3f)!=null&&E.attach)ME(h,f,f.__r3f.attach);else if(f.isObject3D&&h.isObject3D){f.parent=h,f.dispatchEvent({type:"added"});const C=h.children.filter(I=>I!==f),p=C.indexOf(d);h.children=[...C.slice(0,p),f,...C.slice(p)],m=!0}m||(x=h.__r3f)==null||x.objects.push(f),f.__r3f||Uc(f,{}),f.__r3f.parent=h,Ny(f),Fc(f)}}function s(h,f,d=!1){h&&[...h].forEach(m=>o(f,m,d))}function o(h,f,d){if(f){var m,E,x;if(f.__r3f&&(f.__r3f.parent=null),(m=h.__r3f)!=null&&m.objects&&(h.__r3f.objects=h.__r3f.objects.filter(B=>B!==f)),(E=f.__r3f)!=null&&E.attach)pS(h,f,f.__r3f.attach);else if(f.isObject3D&&h.isObject3D){var C;h.remove(f),(C=f.__r3f)!=null&&C.root&&d5(f.__r3f.root,f)}const I=(x=f.__r3f)==null?void 0:x.primitive,y=!I&&(d===void 0?f.dispose!==null:d);if(!I){var p;s((p=f.__r3f)==null?void 0:p.objects,f,y),s(f.children,f,y)}if(delete f.__r3f,y&&f.dispose&&f.type!=="Scene"){const B=()=>{try{f.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?Dy.unstable_scheduleCallback(Dy.unstable_IdlePriority,B):B()}Fc(h)}}function a(h,f,d,m){var E;const x=(E=h.__r3f)==null?void 0:E.parent;if(!x)return;const C=t(f,d,h.__r3f.root);if(h.children){for(const p of h.children)p.__r3f&&i(C,p);h.children=h.children.filter(p=>!p.__r3f)}h.__r3f.objects.forEach(p=>i(C,p)),h.__r3f.objects=[],h.__r3f.autoRemovedBeforeAppend||o(x,h),C.parent&&(C.__r3f.autoRemovedBeforeAppend=!0),i(x,C),C.raycast&&C.__r3f.eventCount&&C.__r3f.root.getState().internal.interaction.push(C),[m,m.alternate].forEach(p=>{p!==null&&(p.stateNode=C,p.ref&&(typeof p.ref=="function"?p.ref(C):p.ref.current=C))})}const c=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:s5({createInstance:t,removeChild:o,appendChild:i,appendInitialChild:i,insertBefore:r,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(h,f)=>{if(!f)return;const d=h.getState().scene;d.__r3f&&(d.__r3f.root=h,i(d,f))},removeChildFromContainer:(h,f)=>{f&&o(h.getState().scene,f)},insertInContainerBefore:(h,f,d)=>{if(!f||!d)return;const m=h.getState().scene;m.__r3f&&r(m,f,d)},getRootHostContext:()=>null,getChildHostContext:h=>h,finalizeInitialChildren(h){var f;return!!((f=h==null?void 0:h.__r3f)!=null?f:{}).handlers},prepareUpdate(h,f,d,m){var E;if(((E=h==null?void 0:h.__r3f)!=null?E:{}).primitive&&m.object&&m.object!==h)return[!0];{const{args:C=[],children:p,...I}=m,{args:y=[],children:B,...R}=d;if(!Array.isArray(C))throw new Error("R3F: the args prop must be an array!");if(C.some((T,P)=>T!==y[P]))return[!0];const M=OR(h,I,R,!0);return M.changes.length?[!1,M]:null}},commitUpdate(h,[f,d],m,E,x,C){f?a(h,m,x,C):QE(h,d)},commitMount(h,f,d,m){var E;const x=(E=h.__r3f)!=null?E:{};h.raycast&&x.handlers&&x.eventCount&&h.__r3f.root.getState().internal.interaction.push(h)},getPublicInstance:h=>h,prepareForCommit:()=>null,preparePortalMount:h=>Uc(h.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(h){var f;const{attach:d,parent:m}=(f=h.__r3f)!=null?f:{};d&&m&&pS(m,h,d),h.isObject3D&&(h.visible=!1),Fc(h)},unhideInstance(h,f){var d;const{attach:m,parent:E}=(d=h.__r3f)!=null?d:{};m&&E&&ME(E,h,m),(h.isObject3D&&f.visible==null||f.visible)&&(h.visible=!0),Fc(h)},createTextInstance:c,hideTextInstance:c,unhideTextInstance:c,getCurrentEventPriority:()=>e?e():nu.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&_n.fun(performance.now)?performance.now:_n.fun(Date.now)?Date.now:()=>0,scheduleTimeout:_n.fun(setTimeout)?setTimeout:void 0,cancelTimeout:_n.fun(clearTimeout)?clearTimeout:void 0}),applyProps:QE}}var AS,hS;const wE=n=>"colorSpace"in n||"outputColorSpace"in n,LR=()=>{var n;return(n=Dv.ColorManagement)!=null?n:null},PR=n=>n&&n.isOrthographicCamera,l5=n=>n&&n.hasOwnProperty("current"),Xh=typeof window<"u"&&((AS=window.document)!=null&&AS.createElement||((hS=window.navigator)==null?void 0:hS.product)==="ReactNative")?J.useLayoutEffect:J.useEffect;function UR(n){const e=J.useRef(n);return Xh(()=>void(e.current=n),[n]),e}function c5({set:n}){return Xh(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}class FR extends J.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}FR.getDerivedStateFromError=()=>({error:!0});const kR="__default",fS=new Map,u5=n=>n&&!!n.memoized&&!!n.changes;function GR(n){var e;const t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}const CA=n=>{var e;return(e=n.__r3f)==null?void 0:e.root.getState()},_n={obj:n=>n===Object(n)&&!_n.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(_n.str(n)||_n.num(n))return n===e;const s=_n.obj(n);if(s&&i==="reference")return n===e;const o=_n.arr(n);if(o&&t==="reference")return n===e;if((o||s)&&n===e)return!0;let a;for(a in n)if(!(a in e))return!1;if(s&&t==="shallow"&&i==="shallow"){for(a in r?e:n)if(!_n.equ(n[a],e[a],{strict:r,objects:"reference"}))return!1}else for(a in r?e:n)if(n[a]!==e[a])return!1;if(_n.und(a)){if(o&&n.length===0&&e.length===0||s&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function A5(n){n.dispose&&n.type!=="Scene"&&n.dispose();for(const e in n)e.dispose==null||e.dispose(),delete n[e]}function Uc(n,e){const t=n;return t.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...e},n}function by(n,e){let t=n;if(e.includes("-")){const i=e.split("-"),r=i.pop();return t=i.reduce((s,o)=>s[o],n),{target:t,key:r}}else return{target:t,key:e}}const dS=/-\d+$/;function ME(n,e,t){if(_n.str(t)){if(dS.test(t)){const s=t.replace(dS,""),{target:o,key:a}=by(n,s);Array.isArray(o[a])||(o[a]=[])}const{target:i,key:r}=by(n,t);e.__r3f.previousAttach=i[r],i[r]=e}else e.__r3f.previousAttach=t(n,e)}function pS(n,e,t){var i,r;if(_n.str(t)){const{target:s,key:o}=by(n,t),a=e.__r3f.previousAttach;a===void 0?delete s[o]:s[o]=a}else(i=e.__r3f)==null||i.previousAttach==null||i.previousAttach(n,e);(r=e.__r3f)==null||delete r.previousAttach}function OR(n,{children:e,key:t,ref:i,...r},{children:s,key:o,ref:a,...c}={},A=!1){var h;const f=(h=n==null?void 0:n.__r3f)!=null?h:{},d=Object.entries(r),m=[];if(A){const x=Object.keys(c);for(let C=0;C{var p;if((p=n.__r3f)!=null&&p.primitive&&x==="object"||_n.equ(C,c[x]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(x))return m.push([x,C,!0,[]]);let I=[];x.includes("-")&&(I=x.split("-")),m.push([x,C,!1,I]);for(const y in r){const B=r[y];y.startsWith(`${x}-`)&&m.push([y,B,!1,y.split("-")])}});const E={...r};return f.memoizedProps&&f.memoizedProps.args&&(E.args=f.memoizedProps.args),f.memoizedProps&&f.memoizedProps.attach&&(E.attach=f.memoizedProps.attach),{memoized:E,changes:m}}const h5=typeof process<"u"&&!1;function QE(n,e){var t,i,r;const s=(t=n.__r3f)!=null?t:{},o=s.root,a=(i=o==null||o.getState==null?void 0:o.getState())!=null?i:{},{memoized:c,changes:A}=u5(e)?e:OR(n,e),h=s.eventCount;n.__r3f&&(n.__r3f.memoizedProps=c);for(let d=0;dy[B],n),!(I&&I.set))){const[y,...B]=C.reverse();p=B.reverse().reduce((R,M)=>R[M],n),m=y}if(E===kR+"remove")if(p.constructor){let y=fS.get(p.constructor);y||(y=new p.constructor,fS.set(p.constructor,y)),E=y[m]}else E=0;if(x)E?s.handlers[m]=E:delete s.handlers[m],s.eventCount=Object.keys(s.handlers).length;else if(I&&I.set&&(I.copy||I instanceof Nl)){if(Array.isArray(E))I.fromArray?I.fromArray(E):I.set(...E);else if(I.copy&&E&&E.constructor&&(h5?I.constructor.name===E.constructor.name:I.constructor===E.constructor))I.copy(E);else if(E!==void 0){const y=I instanceof Je;!y&&I.setScalar?I.setScalar(E):I instanceof Nl&&E instanceof Nl?I.mask=E.mask:I.set(E),!LR()&&!a.linear&&y&&I.convertSRGBToLinear()}}else if(p[m]=E,p[m]instanceof wn&&p[m].format===Oi&&p[m].type===bs){const y=p[m];wE(y)&&wE(a.gl)?y.colorSpace=a.gl.outputColorSpace:y.encoding=a.gl.outputEncoding}Fc(n)}if(s.parent&&a.internal&&n.raycast&&h!==s.eventCount){const d=a.internal.interaction.indexOf(n);d>-1&&a.internal.interaction.splice(d,1),s.eventCount&&a.internal.interaction.push(n)}return!(A.length===1&&A[0][0]==="onUpdate")&&A.length&&(r=n.__r3f)!=null&&r.parent&&Ny(n),n}function Fc(n){var e,t;const i=(e=n.__r3f)==null||(t=e.root)==null||t.getState==null?void 0:t.getState();i&&i.internal.frames===0&&i.invalidate()}function Ny(n){n.onUpdate==null||n.onUpdate(n)}function HR(n,e){n.manual||(PR(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix(),n.updateMatrixWorld())}function ep(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function f5(){var n;const e=typeof self<"u"&&self||typeof window<"u"&&window;if(!e)return nu.DefaultEventPriority;switch((n=e.event)==null?void 0:n.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return nu.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return nu.ContinuousEventPriority;default:return nu.DefaultEventPriority}}function zR(n,e,t,i){const r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function d5(n,e){const{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{zR(t.capturedMap,e,i,r)})}function p5(n){function e(c){const{internal:A}=n.getState(),h=c.offsetX-A.initialClick[0],f=c.offsetY-A.initialClick[1];return Math.round(Math.sqrt(h*h+f*f))}function t(c){return c.filter(A=>["Move","Over","Enter","Out","Leave"].some(h=>{var f;return(f=A.__r3f)==null?void 0:f.handlers["onPointer"+h]}))}function i(c,A){const h=n.getState(),f=new Set,d=[],m=A?A(h.internal.interaction):h.internal.interaction;for(let p=0;p{const y=CA(p.object),B=CA(I.object);return!y||!B?p.distance-I.distance:B.events.priority-y.events.priority||p.distance-I.distance}).filter(p=>{const I=ep(p);return f.has(I)?!1:(f.add(I),!0)});h.events.filter&&(x=h.events.filter(x,h));for(const p of x){let I=p.object;for(;I;){var C;(C=I.__r3f)!=null&&C.eventCount&&d.push({...p,eventObject:I}),I=I.parent}}if("pointerId"in c&&h.internal.capturedMap.has(c.pointerId))for(let p of h.internal.capturedMap.get(c.pointerId).values())f.has(ep(p.intersection))||d.push(p.intersection);return d}function r(c,A,h,f){const d=n.getState();if(c.length){const m={stopped:!1};for(const E of c){const x=CA(E.object)||d,{raycaster:C,pointer:p,camera:I,internal:y}=x,B=new G(p.x,p.y,0).unproject(I),R=w=>{var b,q;return(b=(q=y.capturedMap.get(w))==null?void 0:q.has(E.eventObject))!=null?b:!1},M=w=>{const b={intersection:E,target:A.target};y.capturedMap.has(w)?y.capturedMap.get(w).set(E.eventObject,b):y.capturedMap.set(w,new Map([[E.eventObject,b]])),A.target.setPointerCapture(w)},T=w=>{const b=y.capturedMap.get(w);b&&zR(y.capturedMap,E.eventObject,b,w)};let P={};for(let w in A){let b=A[w];typeof b!="function"&&(P[w]=b)}let K={...E,...P,pointer:p,intersections:c,stopped:m.stopped,delta:h,unprojectedPoint:B,ray:C.ray,camera:I,stopPropagation(){const w="pointerId"in A&&y.capturedMap.get(A.pointerId);if((!w||w.has(E.eventObject))&&(K.stopped=m.stopped=!0,y.hovered.size&&Array.from(y.hovered.values()).find(b=>b.eventObject===E.eventObject))){const b=c.slice(0,c.indexOf(E));s([...b,E])}},target:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},currentTarget:{hasPointerCapture:R,setPointerCapture:M,releasePointerCapture:T},nativeEvent:A};if(f(K),m.stopped===!0)break}}return c}function s(c){const{internal:A}=n.getState();for(const h of A.hovered.values())if(!c.length||!c.find(f=>f.object===h.object&&f.index===h.index&&f.instanceId===h.instanceId)){const d=h.eventObject.__r3f,m=d==null?void 0:d.handlers;if(A.hovered.delete(ep(h)),d!=null&&d.eventCount){const E={...h,intersections:c};m.onPointerOut==null||m.onPointerOut(E),m.onPointerLeave==null||m.onPointerLeave(E)}}}function o(c,A){for(let h=0;hs([]);case"onLostPointerCapture":return A=>{const{internal:h}=n.getState();"pointerId"in A&&h.capturedMap.has(A.pointerId)&&requestAnimationFrame(()=>{h.capturedMap.has(A.pointerId)&&(h.capturedMap.delete(A.pointerId),s([]))})}}return function(h){const{onPointerMissed:f,internal:d}=n.getState();d.lastEvent.current=h;const m=c==="onPointerMove",E=c==="onClick"||c==="onContextMenu"||c==="onDoubleClick",C=i(h,m?t:void 0),p=E?e(h):0;c==="onPointerDown"&&(d.initialClick=[h.offsetX,h.offsetY],d.initialHits=C.map(y=>y.eventObject)),E&&!C.length&&p<=2&&(o(h,d.interaction),f&&f(h)),m&&s(C);function I(y){const B=y.eventObject,R=B.__r3f,M=R==null?void 0:R.handlers;if(R!=null&&R.eventCount)if(m){if(M.onPointerOver||M.onPointerEnter||M.onPointerOut||M.onPointerLeave){const T=ep(y),P=d.hovered.get(T);P?P.stopped&&y.stopPropagation():(d.hovered.set(T,y),M.onPointerOver==null||M.onPointerOver(y),M.onPointerEnter==null||M.onPointerEnter(y))}M.onPointerMove==null||M.onPointerMove(y)}else{const T=M[c];T?(!E||d.initialHits.includes(B))&&(o(h,d.interaction.filter(P=>!d.initialHits.includes(P))),T(y)):E&&d.initialHits.includes(B)&&o(h,d.interaction.filter(P=>!d.initialHits.includes(P)))}}r(C,h,p,I)}}return{handlePointer:a}}const g5=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],VR=n=>!!(n!=null&&n.render),bv=J.createContext(null),m5=(n,e)=>{const t=TR((a,c)=>{const A=new G,h=new G,f=new G;function d(p=c().camera,I=h,y=c().size){const{width:B,height:R,top:M,left:T}=y,P=B/R;I instanceof G?f.copy(I):f.set(...I);const K=p.getWorldPosition(A).distanceTo(f);if(PR(p))return{width:B/p.zoom,height:R/p.zoom,top:M,left:T,factor:1,distance:K,aspect:P};{const w=p.fov*Math.PI/180,b=2*Math.tan(w/2)*K,q=b*(B/R);return{width:q,height:b,top:M,left:T,factor:B/q,distance:K,aspect:P}}}let m;const E=p=>a(I=>({performance:{...I.performance,current:p}})),x=new _e;return{set:a,get:c,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(p=1)=>n(c(),p),advance:(p,I)=>e(p,I,c()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new wv,pointer:x,mouse:x,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const p=c();m&&clearTimeout(m),p.performance.current!==p.performance.min&&E(p.performance.min),m=setTimeout(()=>E(c().performance.max),p.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:d},setEvents:p=>a(I=>({...I,events:{...I.events,...p}})),setSize:(p,I,y,B,R)=>{const M=c().camera,T={width:p,height:I,top:B||0,left:R||0,updateStyle:y};a(P=>({size:T,viewport:{...P.viewport,...d(M,h,T)}}))},setDpr:p=>a(I=>{const y=GR(p);return{viewport:{...I.viewport,dpr:y,initialDpr:I.viewport.initialDpr||y}}}),setFrameloop:(p="always")=>{const I=c().clock;I.stop(),I.elapsedTime=0,p!=="never"&&(I.start(),I.elapsedTime=0),a(()=>({frameloop:p}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:J.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(p,I,y)=>{const B=c().internal;return B.priority=B.priority+(I>0?1:0),B.subscribers.push({ref:p,priority:I,store:y}),B.subscribers=B.subscribers.sort((R,M)=>R.priority-M.priority),()=>{const R=c().internal;R!=null&&R.subscribers&&(R.priority=R.priority-(I>0?1:0),R.subscribers=R.subscribers.filter(M=>M.ref!==p))}}}}}),i=t.getState();let r=i.size,s=i.viewport.dpr,o=i.camera;return t.subscribe(()=>{const{camera:a,size:c,viewport:A,gl:h,set:f}=t.getState();if(c.width!==r.width||c.height!==r.height||A.dpr!==s){var d;r=c,s=A.dpr,HR(a,c),h.setPixelRatio(A.dpr);const m=(d=c.updateStyle)!=null?d:typeof HTMLCanvasElement<"u"&&h.domElement instanceof HTMLCanvasElement;h.setSize(c.width,c.height,m)}a!==o&&(o=a,f(m=>({viewport:{...m.viewport,...m.viewport.getCurrentViewport(a)}})))}),t.subscribe(a=>n(a)),t};let tp,E5=new Set,C5=new Set,y5=new Set;function RE(n,e){if(n.size)for(const{callback:t}of n.values())t(e)}function yA(n,e){switch(n){case"before":return RE(E5,e);case"after":return RE(C5,e);case"tail":return RE(y5,e)}}let TE,DE;function bE(n,e,t){let i=e.clock.getDelta();for(e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),TE=e.internal.subscribers,tp=0;tp0)&&!((A=r.gl.xr)!=null&&A.isPresenting)&&(t+=bE(c,r))}if(yA("after",c),t===0)return yA("tail",c),e=!1,cancelAnimationFrame(i)}function o(c,A=1){var h;if(!c)return n.forEach(f=>o(f.store.getState()),A);(h=c.gl.xr)!=null&&h.isPresenting||!c.internal.active||c.frameloop==="never"||(c.internal.frames=Math.min(60,c.internal.frames+A),e||(e=!0,requestAnimationFrame(s)))}function a(c,A=!0,h,f){if(A&&yA("before",c),h)bE(c,h,f);else for(const d of n.values())bE(c,d.store.getState());A&&yA("after",c)}return{loop:s,invalidate:o,advance:a}}function Jh(){const n=J.useContext(bv);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function Nv(n=t=>t,e){return Jh()(n,e)}function Na(n,e=0){const t=Jh(),i=t.getState().internal.subscribe,r=UR(n);return Xh(()=>i(r,e,t),[e,i,t]),null}const yu=new Map,{invalidate:gS,advance:mS}=v5(yu),{reconciler:Rh,applyProps:bc}=a5(yu,f5),Nc={objects:"shallow",strict:!1},I5=(n,e)=>{const t=typeof n=="function"?n(e):n;return VR(t)?t:new cv({powerPreference:"high-performance",canvas:e,antialias:!0,alpha:!0,...n})};function x5(n,e){const t=typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement;if(e){const{width:i,height:r,top:s,left:o,updateStyle:a=t}=e;return{width:i,height:r,top:s,left:o,updateStyle:a}}else if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){const{width:i,height:r,top:s,left:o}=n.parentElement.getBoundingClientRect();return{width:i,height:r,top:s,left:o,updateStyle:t}}else if(typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0,updateStyle:t};return{width:0,height:0,top:0,left:0}}function B5(n){const e=yu.get(n),t=e==null?void 0:e.fiber,i=e==null?void 0:e.store;e&&console.warn("R3F.createRoot should only be called once!");const r=typeof reportError=="function"?reportError:console.error,s=i||m5(gS,mS),o=t||Rh.createContainer(s,nu.ConcurrentRoot,null,!1,null,"",r,null);e||yu.set(n,{fiber:o,store:s});let a,c=!1,A;return{configure(h={}){let{gl:f,size:d,scene:m,events:E,onCreated:x,shadows:C=!1,linear:p=!1,flat:I=!1,legacy:y=!1,orthographic:B=!1,frameloop:R="always",dpr:M=[1,2],performance:T,raycaster:P,camera:K,onPointerMissed:w}=h,b=s.getState(),q=b.gl;b.gl||b.set({gl:q=I5(f,n)});let de=b.raycaster;de||b.set({raycaster:de=new Tv});const{params:Y,...ie}=P||{};if(_n.equ(ie,de,Nc)||bc(de,{...ie}),_n.equ(Y,de.params,Nc)||bc(de,{params:{...de.params,...Y}}),!b.camera||b.camera===A&&!_n.equ(A,K,Nc)){A=K;const ye=K instanceof kh,ke=ye?K:B?new Hh(0,0,0,0,.1,1e3):new $n(75,0,.1,1e3);ye||(ke.position.z=5,K&&bc(ke,K),!b.camera&&!(K!=null&&K.rotation)&&ke.lookAt(0,0,0)),b.set({camera:ke}),de.camera=ke}if(!b.scene){let ye;m instanceof Ih?ye=m:(ye=new Ih,m&&bc(ye,m)),b.set({scene:Uc(ye)})}if(!b.xr){var te;const ye=(O,k)=>{const F=s.getState();F.frameloop!=="never"&&mS(O,!0,F,k)},ke=()=>{const O=s.getState();O.gl.xr.enabled=O.gl.xr.isPresenting,O.gl.xr.setAnimationLoop(O.gl.xr.isPresenting?ye:null),O.gl.xr.isPresenting||gS(O)},V={connect(){const O=s.getState().gl;O.xr.addEventListener("sessionstart",ke),O.xr.addEventListener("sessionend",ke)},disconnect(){const O=s.getState().gl;O.xr.removeEventListener("sessionstart",ke),O.xr.removeEventListener("sessionend",ke)}};typeof((te=q.xr)==null?void 0:te.addEventListener)=="function"&&V.connect(),b.set({xr:V})}if(q.shadowMap){const ye=q.shadowMap.enabled,ke=q.shadowMap.type;if(q.shadowMap.enabled=!!C,_n.boo(C))q.shadowMap.type=kA;else if(_n.str(C)){var ue;const V={basic:v2,percentage:Fg,soft:kA,variance:ts};q.shadowMap.type=(ue=V[C])!=null?ue:kA}else _n.obj(C)&&Object.assign(q.shadowMap,C);(ye!==q.shadowMap.enabled||ke!==q.shadowMap.type)&&(q.shadowMap.needsUpdate=!0)}const U=LR();U&&("enabled"in U?U.enabled=!y:"legacyMode"in U&&(U.legacyMode=y)),bc(q,{outputEncoding:p?3e3:3001,toneMapping:I?Ds:V1}),b.legacy!==y&&b.set(()=>({legacy:y})),b.linear!==p&&b.set(()=>({linear:p})),b.flat!==I&&b.set(()=>({flat:I})),f&&!_n.fun(f)&&!VR(f)&&!_n.equ(f,q,Nc)&&bc(q,f),E&&!b.events.handlers&&b.set({events:E(s)});const Ae=x5(n,d);return _n.equ(Ae,b.size,Nc)||b.setSize(Ae.width,Ae.height,Ae.updateStyle,Ae.top,Ae.left),M&&b.viewport.dpr!==GR(M)&&b.setDpr(M),b.frameloop!==R&&b.setFrameloop(R),b.onPointerMissed||b.set({onPointerMissed:w}),T&&!_n.equ(T,b.performance,Nc)&&b.set(ye=>({performance:{...ye.performance,...T}})),a=x,c=!0,this},render(h){return c||this.configure(),Rh.updateContainer(J.createElement(_5,{store:s,children:h,onCreated:a,rootElement:n}),o,null,()=>{}),s},unmount(){WR(n)}}}function _5({store:n,children:e,onCreated:t,rootElement:i}){return Xh(()=>{const r=n.getState();r.set(s=>({internal:{...s.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),J.createElement(bv.Provider,{value:n},e)}function WR(n,e){const t=yu.get(n),i=t==null?void 0:t.fiber;if(i){const r=t==null?void 0:t.store.getState();r&&(r.internal.active=!1),Rh.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{var s,o,a,c;r.events.disconnect==null||r.events.disconnect(),(s=r.gl)==null||(o=s.renderLists)==null||o.dispose==null||o.dispose(),(a=r.gl)==null||a.forceContextLoss==null||a.forceContextLoss(),(c=r.gl)!=null&&c.xr&&r.xr.disconnect(),A5(r),yu.delete(n),e&&e(n)}catch{}},500)})}}function YR(n,e,t){return J.createElement(S5,{key:e.uuid,children:n,container:e,state:t})}function S5({state:n={},children:e,container:t}){const{events:i,size:r,...s}=n,o=Jh(),[a]=J.useState(()=>new Tv),[c]=J.useState(()=>new _e),A=J.useCallback((f,d)=>{const m={...f};Object.keys(f).forEach(x=>{(g5.includes(x)||f[x]!==d[x]&&d[x])&&delete m[x]});let E;if(d&&r){const x=d.camera;E=f.viewport.getCurrentViewport(x,new G,r),x!==f.camera&&HR(x,r)}return{...m,scene:t,raycaster:a,pointer:c,mouse:c,previousRoot:o,events:{...f.events,...d==null?void 0:d.events,...i},size:{...f.size,...r},viewport:{...f.viewport,...E},...s}},[n]),[h]=J.useState(()=>{const f=o.getState();return TR((m,E)=>({...f,scene:t,raycaster:a,pointer:c,mouse:c,previousRoot:o,events:{...f.events,...i},size:{...f.size,...r},...s,set:m,get:E,setEvents:x=>m(C=>({...C,events:{...C.events,...x}}))}))});return J.useEffect(()=>{const f=o.subscribe(d=>h.setState(m=>A(d,m)));return()=>{f(),h.destroy()}},[]),J.useEffect(()=>{h.setState(f=>A(o.getState(),f))},[A]),J.createElement(J.Fragment,null,Rh.createPortal(J.createElement(bv.Provider,{value:h},e),h,null))}Rh.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:J.version});function mg(){return mg=Object.assign?Object.assign.bind():function(n){for(var e=1;e=0?i=setTimeout(c,e-h):(i=null,t||(a=n.apply(s,r),s=r=null))}var A=function(){s=this,r=arguments,o=Date.now();var h=t&&!i;return i||(i=setTimeout(c,e)),h&&(a=n.apply(s,r),s=r=null),a};return A.clear=function(){i&&(clearTimeout(i),i=null)},A.flush=function(){i&&(a=n.apply(s,r),s=r=null,clearTimeout(i),i=null)},A}Ly.debounce=Ly;var w5=Ly;const ES=rw(w5);function M5(n){let{debounce:e,scroll:t,polyfill:i,offsetSize:r}=n===void 0?{debounce:0,scroll:!1,offsetSize:!1}:n;const s=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!s)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,a]=J.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),c=J.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),A=e?typeof e=="number"?e:e.scroll:null,h=e?typeof e=="number"?e:e.resize:null,f=J.useRef(!1);J.useEffect(()=>(f.current=!0,()=>void(f.current=!1)));const[d,m,E]=J.useMemo(()=>{const I=()=>{if(!c.current.element)return;const{left:y,top:B,width:R,height:M,bottom:T,right:P,x:K,y:w}=c.current.element.getBoundingClientRect(),b={left:y,top:B,width:R,height:M,bottom:T,right:P,x:K,y:w};c.current.element instanceof HTMLElement&&r&&(b.height=c.current.element.offsetHeight,b.width=c.current.element.offsetWidth),Object.freeze(b),f.current&&!D5(c.current.lastBounds,b)&&a(c.current.lastBounds=b)};return[I,h?ES(I,h):I,A?ES(I,A):I]},[a,r,A,h]);function x(){c.current.scrollContainers&&(c.current.scrollContainers.forEach(I=>I.removeEventListener("scroll",E,!0)),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null)}function C(){c.current.element&&(c.current.resizeObserver=new s(E),c.current.resizeObserver.observe(c.current.element),t&&c.current.scrollContainers&&c.current.scrollContainers.forEach(I=>I.addEventListener("scroll",E,{capture:!0,passive:!0})))}const p=I=>{!I||I===c.current.element||(x(),c.current.element=I,c.current.scrollContainers=XR(I),C())};return R5(E,!!t),Q5(m),J.useEffect(()=>{x(),C()},[t,E,m]),J.useEffect(()=>x,[]),[p,o,d]}function Q5(n){J.useEffect(()=>{const e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function R5(n,e){J.useEffect(()=>{if(e){const t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function XR(n){const e=[];if(!n||n===document.body)return e;const{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(s=>s==="auto"||s==="scroll")&&e.push(n),[...e,...XR(n.parentElement)]}const T5=["x","y","top","bottom","left","right","width","height"],D5=(n,e)=>T5.every(t=>n[t]===e[t]);var b5=Object.defineProperty,N5=Object.defineProperties,L5=Object.getOwnPropertyDescriptors,CS=Object.getOwnPropertySymbols,P5=Object.prototype.hasOwnProperty,U5=Object.prototype.propertyIsEnumerable,yS=(n,e,t)=>e in n?b5(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,vS=(n,e)=>{for(var t in e||(e={}))P5.call(e,t)&&yS(n,t,e[t]);if(CS)for(var t of CS(e))U5.call(e,t)&&yS(n,t,e[t]);return n},F5=(n,e)=>N5(n,L5(e));function JR(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){const r=JR(i,e,t);if(r)return r;i=e?null:i.sibling}}function KR(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}const Lv=KR(J.createContext(null));class qR extends J.Component{render(){return J.createElement(Lv.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:IS,ReactCurrentDispatcher:xS}=J.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function k5(){const n=J.useContext(Lv);if(n===null)throw new Error("its-fine: useFiber must be called within a !");const e=J.useId();return J.useMemo(()=>{for(const i of[IS==null?void 0:IS.current,n,n==null?void 0:n.alternate]){if(!i)continue;const r=JR(i,!1,s=>{let o=s.memoizedState;for(;o;){if(o.memoizedState===e)return!0;o=o.next}});if(r)return r}},[n,e])}function G5(){var n,e;const t=k5(),[i]=J.useState(()=>new Map);i.clear();let r=t;for(;r;){const s=(n=r.type)==null?void 0:n._context;s&&s!==Lv&&!i.has(s)&&i.set(s,(e=xS==null?void 0:xS.current)==null?void 0:e.readContext(KR(s))),r=r.return}return i}function O5(){const n=G5();return J.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>J.createElement(e,null,J.createElement(t.Provider,F5(vS({},i),{value:n.get(t)}))),e=>J.createElement(qR,vS({},e))),[n])}const NE={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function H5(n){const{handlePointer:e}=p5(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(NE).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;const{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{var i;const{set:r,events:s}=n.getState();s.disconnect==null||s.disconnect(),r(o=>({events:{...o.events,connected:t}})),Object.entries((i=s.handlers)!=null?i:[]).forEach(([o,a])=>{const[c,A]=NE[o];t.addEventListener(c,a,{passive:A})})},disconnect:()=>{const{set:t,events:i}=n.getState();if(i.connected){var r;Object.entries((r=i.handlers)!=null?r:[]).forEach(([s,o])=>{if(i&&i.connected instanceof HTMLElement){const[a]=NE[s];i.connected.removeEventListener(a,o)}}),t(s=>({events:{...s.events,connected:void 0}}))}}}}const z5=J.forwardRef(function({children:e,fallback:t,resize:i,style:r,gl:s,events:o=H5,eventSource:a,eventPrefix:c,shadows:A,linear:h,flat:f,legacy:d,orthographic:m,frameloop:E,dpr:x,performance:C,raycaster:p,camera:I,scene:y,onPointerMissed:B,onCreated:R,...M},T){J.useMemo(()=>o5(e5),[]);const P=O5(),[K,w]=M5({scroll:!0,debounce:{scroll:50,resize:0},...i}),b=J.useRef(null),q=J.useRef(null);J.useImperativeHandle(T,()=>b.current);const de=UR(B),[Y,ie]=J.useState(!1),[te,ue]=J.useState(!1);if(Y)throw Y;if(te)throw te;const U=J.useRef(null);Xh(()=>{const ee=b.current;w.width>0&&w.height>0&&ee&&(U.current||(U.current=B5(ee)),U.current.configure({gl:s,events:o,shadows:A,linear:h,flat:f,legacy:d,orthographic:m,frameloop:E,dpr:x,performance:C,raycaster:p,camera:I,scene:y,size:w,onPointerMissed:(...Ae)=>de.current==null?void 0:de.current(...Ae),onCreated:Ae=>{Ae.events.connect==null||Ae.events.connect(a?l5(a)?a.current:a:q.current),c&&Ae.setEvents({compute:(ye,ke)=>{const V=ye[c+"X"],O=ye[c+"Y"];ke.pointer.set(V/ke.size.width*2-1,-(O/ke.size.height)*2+1),ke.raycaster.setFromCamera(ke.pointer,ke.camera)}}),R==null||R(Ae)}}),U.current.render(J.createElement(P,null,J.createElement(FR,{set:ue},J.createElement(J.Suspense,{fallback:J.createElement(c5,{set:ie})},e)))))}),J.useEffect(()=>{const ee=b.current;if(ee)return()=>WR(ee)},[]);const $=a?"none":"auto";return J.createElement("div",mg({ref:q,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:$,...r}},M),J.createElement("div",{ref:K,style:{width:"100%",height:"100%"}},J.createElement("canvas",{ref:b,style:{display:"block"}},t)))}),V5=J.forwardRef(function(e,t){return J.createElement(qR,null,J.createElement(z5,mg({},e,{ref:t})))});function hm(){throw new Error("Cycle detected")}var W5=Symbol.for("preact-signals");function fm(){if(Ia>1)Ia--;else{for(var n,e=!1;VA!==void 0;){var t=VA;for(VA=void 0,Py++;t!==void 0;){var i=t.o;if(t.o=void 0,t.f&=-3,!(8&t.f)&&$R(t))try{t.c()}catch(r){e||(n=r,e=!0)}t=i}}if(Py=0,Ia--,e)throw n}}function jR(n){if(Ia>0)return n();Ia++;try{return n()}finally{fm()}}var yn=void 0,LE=0;function PE(n){if(LE>0)return n();var e=yn;yn=void 0,LE++;try{return n()}finally{LE--,yn=e}}var VA=void 0,Ia=0,Py=0,Eg=0;function ZR(n){if(yn!==void 0){var e=n.n;if(e===void 0||e.t!==yn)return e={i:0,S:n,p:yn.s,n:void 0,t:yn,e:void 0,x:void 0,r:e},yn.s!==void 0&&(yn.s.n=e),yn.s=e,n.n=e,32&yn.f&&n.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=yn.s,e.n=void 0,yn.s.n=e,yn.s=e),e}}function Vn(n){this.v=n,this.i=0,this.n=void 0,this.t=void 0}Vn.prototype.brand=W5;Vn.prototype.h=function(){return!0};Vn.prototype.S=function(n){this.t!==n&&n.e===void 0&&(n.x=this.t,this.t!==void 0&&(this.t.e=n),this.t=n)};Vn.prototype.U=function(n){if(this.t!==void 0){var e=n.e,t=n.x;e!==void 0&&(e.x=t,n.e=void 0),t!==void 0&&(t.e=e,n.x=void 0),n===this.t&&(this.t=t)}};Vn.prototype.subscribe=function(n){var e=this;return Xt(function(){var t=e.value,i=32&this.f;this.f&=-33;try{n(t)}finally{this.f|=i}})};Vn.prototype.valueOf=function(){return this.value};Vn.prototype.toString=function(){return this.value+""};Vn.prototype.toJSON=function(){return this.value};Vn.prototype.peek=function(){return this.v};Object.defineProperty(Vn.prototype,"value",{get:function(){var n=ZR(this);return n!==void 0&&(n.i=this.i),this.v},set:function(n){if(yn instanceof La&&function(){throw new Error("Computed cannot have side-effects")}(),n!==this.v){Py>100&&hm(),this.v=n,this.i++,Eg++,Ia++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{fm()}}}});function Gt(n){return new Vn(n)}function $R(n){for(var e=n.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function eT(n){for(var e=n.s;e!==void 0;e=e.n){var t=e.S.n;if(t!==void 0&&(e.r=t),e.S.n=e,e.i=-1,e.n===void 0){n.s=e;break}}}function tT(n){for(var e=n.s,t=void 0;e!==void 0;){var i=e.p;e.i===-1?(e.S.U(e),i!==void 0&&(i.n=e.n),e.n!==void 0&&(e.n.p=i)):t=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=i}n.s=t}function La(n){Vn.call(this,void 0),this.x=n,this.s=void 0,this.g=Eg-1,this.f=4}(La.prototype=new Vn).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Eg))return!0;if(this.g=Eg,this.f|=1,this.i>0&&!$R(this))return this.f&=-2,!0;var n=yn;try{eT(this),yn=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(t){this.v=t,this.f|=16,this.i++}return yn=n,tT(this),this.f&=-2,!0};La.prototype.S=function(n){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}Vn.prototype.S.call(this,n)};La.prototype.U=function(n){if(this.t!==void 0&&(Vn.prototype.U.call(this,n),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}};La.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var n=this.t;n!==void 0;n=n.x)n.t.N()}};La.prototype.peek=function(){if(this.h()||hm(),16&this.f)throw this.v;return this.v};Object.defineProperty(La.prototype,"value",{get:function(){1&this.f&&hm();var n=ZR(this);if(this.h(),n!==void 0&&(n.i=this.i),16&this.f)throw this.v;return this.v}});function zn(n){return new La(n)}function nT(n){var e=n.u;if(n.u=void 0,typeof e=="function"){Ia++;var t=yn;yn=void 0;try{e()}catch(i){throw n.f&=-2,n.f|=8,Pv(n),i}finally{yn=t,fm()}}}function Pv(n){for(var e=n.s;e!==void 0;e=e.n)e.S.U(e);n.x=void 0,n.s=void 0,nT(n)}function Y5(n){if(yn!==this)throw new Error("Out-of-order effect");tT(this),yn=n,this.f&=-2,8&this.f&&Pv(this),fm()}function Kh(n){this.x=n,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}Kh.prototype.c=function(){var n=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.u=e)}finally{n()}};Kh.prototype.S=function(){1&this.f&&hm(),this.f|=1,this.f&=-9,nT(this),eT(this),Ia++;var n=yn;return yn=this,Y5.bind(this,n)};Kh.prototype.N=function(){2&this.f||(this.f|=2,this.o=VA,VA=this)};Kh.prototype.d=function(){this.f|=8,1&this.f||Pv(this)};function Xt(n){var e=new Kh(n);try{e.c()}catch(t){throw e.d(),t}return e.d.bind(e)}function dm(n,e,t){const i=J.useMemo(()=>e.hasBatchedProperty.bind(e),[e]),r=J.useMemo(()=>{let s={};return(o,a)=>{let c=0,A=!1;for(const h in s){if(!rT(s[h],o[h])){A=!0;break}++c}A||(A=c!=a),s=o,!(!A&&e.getProperty.peek()!=null)&&(e.getProperty.value=h=>Uy(o[h]))}},[e]);iT(n,i,r,t)}function X5(n,e){const t=n.length;for(const i in e)for(let r=0;r{let r={},s=0;const o=(c,A)=>{if(A===void 0)return;const h=r[c];if(h===void 0&&++s,h==null||!(A instanceof Vn)){r[c]=A;return}if(Array.isArray(h)){h.push(A);return}r[c]=[h,A]};return{add:(c,A)=>{if(A!==void 0){if(i!=null){i(c,A,e,o);return}e(c)&&o(c,A)}},finish:()=>{t(r,s),s=0,r={}}}},[e,t,i]))}function rT(n,e){if(!Array.isArray(n))return n===e;if(!Array.isArray(e))return!1;const t=n.length;if(t!=e.length)return!1;for(let i=0;iGt(void 0),[]),r=J.useMemo(()=>({hasBatchedProperty:s=>e.includes(s),getProperty:i}),[e]);return dm(n,r,t),i}const Fy=J.createContext(void 0);function Tu(n,e){const t=J.useContext(Fy);t!=null&&e(t);const{classes:i}=n;if(Array.isArray(i)){const r=i.length;for(let s=0;sX5(n,t))}function Du(n){const t={...J.useContext(Fy)};for(const i in n){if(i==="children")continue;const r=n[i];r!=null&&(t[i]=r)}return oe.jsx(Fy.Provider,{value:t,children:n.children})}var ki={},Uv={},Nt={};Object.defineProperty(Nt,"__esModule",{value:!0});Nt.default=Nt.Wrap=Nt.Unit=Nt.PrintOptions=Nt.PositionType=Nt.Overflow=Nt.NodeType=Nt.MeasureMode=Nt.LogLevel=Nt.Justify=Nt.Gutter=Nt.FlexDirection=Nt.ExperimentalFeature=Nt.Errata=Nt.Edge=Nt.Display=Nt.Direction=Nt.Dimension=Nt.Align=void 0;let to=function(n){return n[n.Auto=0]="Auto",n[n.FlexStart=1]="FlexStart",n[n.Center=2]="Center",n[n.FlexEnd=3]="FlexEnd",n[n.Stretch=4]="Stretch",n[n.Baseline=5]="Baseline",n[n.SpaceBetween=6]="SpaceBetween",n[n.SpaceAround=7]="SpaceAround",n}({});Nt.Align=to;let ky=function(n){return n[n.Width=0]="Width",n[n.Height=1]="Height",n}({});Nt.Dimension=ky;let Dp=function(n){return n[n.Inherit=0]="Inherit",n[n.LTR=1]="LTR",n[n.RTL=2]="RTL",n}({});Nt.Direction=Dp;let Gy=function(n){return n[n.Flex=0]="Flex",n[n.None=1]="None",n}({});Nt.Display=Gy;let xs=function(n){return n[n.Left=0]="Left",n[n.Top=1]="Top",n[n.Right=2]="Right",n[n.Bottom=3]="Bottom",n[n.Start=4]="Start",n[n.End=5]="End",n[n.Horizontal=6]="Horizontal",n[n.Vertical=7]="Vertical",n[n.All=8]="All",n}({});Nt.Edge=xs;let SA=function(n){return n[n.None=0]="None",n[n.StretchFlexBasis=1]="StretchFlexBasis",n[n.All=2147483647]="All",n[n.Classic=2147483646]="Classic",n}({});Nt.Errata=SA;let bp=function(n){return n[n.WebFlexBasis=0]="WebFlexBasis",n[n.AbsolutePercentageAgainstPaddingEdge=1]="AbsolutePercentageAgainstPaddingEdge",n[n.FixJNILocalRefOverflows=2]="FixJNILocalRefOverflows",n}({});Nt.ExperimentalFeature=bp;let wA=function(n){return n[n.Column=0]="Column",n[n.ColumnReverse=1]="ColumnReverse",n[n.Row=2]="Row",n[n.RowReverse=3]="RowReverse",n}({});Nt.FlexDirection=wA;let Np=function(n){return n[n.Column=0]="Column",n[n.Row=1]="Row",n[n.All=2]="All",n}({});Nt.Gutter=Np;let El=function(n){return n[n.FlexStart=0]="FlexStart",n[n.Center=1]="Center",n[n.FlexEnd=2]="FlexEnd",n[n.SpaceBetween=3]="SpaceBetween",n[n.SpaceAround=4]="SpaceAround",n[n.SpaceEvenly=5]="SpaceEvenly",n}({});Nt.Justify=El;let Cl=function(n){return n[n.Error=0]="Error",n[n.Warn=1]="Warn",n[n.Info=2]="Info",n[n.Debug=3]="Debug",n[n.Verbose=4]="Verbose",n[n.Fatal=5]="Fatal",n}({});Nt.LogLevel=Cl;let Lp=function(n){return n[n.Undefined=0]="Undefined",n[n.Exactly=1]="Exactly",n[n.AtMost=2]="AtMost",n}({});Nt.MeasureMode=Lp;let Oy=function(n){return n[n.Default=0]="Default",n[n.Text=1]="Text",n}({});Nt.NodeType=Oy;let Pp=function(n){return n[n.Visible=0]="Visible",n[n.Hidden=1]="Hidden",n[n.Scroll=2]="Scroll",n}({});Nt.Overflow=Pp;let Up=function(n){return n[n.Static=0]="Static",n[n.Relative=1]="Relative",n[n.Absolute=2]="Absolute",n}({});Nt.PositionType=Up;let Fp=function(n){return n[n.Layout=1]="Layout",n[n.Style=2]="Style",n[n.Children=4]="Children",n}({});Nt.PrintOptions=Fp;let MA=function(n){return n[n.Undefined=0]="Undefined",n[n.Point=1]="Point",n[n.Percent=2]="Percent",n[n.Auto=3]="Auto",n}({});Nt.Unit=MA;let kp=function(n){return n[n.NoWrap=0]="NoWrap",n[n.Wrap=1]="Wrap",n[n.WrapReverse=2]="WrapReverse",n}({});Nt.Wrap=kp;const J5={ALIGN_AUTO:to.Auto,ALIGN_FLEX_START:to.FlexStart,ALIGN_CENTER:to.Center,ALIGN_FLEX_END:to.FlexEnd,ALIGN_STRETCH:to.Stretch,ALIGN_BASELINE:to.Baseline,ALIGN_SPACE_BETWEEN:to.SpaceBetween,ALIGN_SPACE_AROUND:to.SpaceAround,DIMENSION_WIDTH:ky.Width,DIMENSION_HEIGHT:ky.Height,DIRECTION_INHERIT:Dp.Inherit,DIRECTION_LTR:Dp.LTR,DIRECTION_RTL:Dp.RTL,DISPLAY_FLEX:Gy.Flex,DISPLAY_NONE:Gy.None,EDGE_LEFT:xs.Left,EDGE_TOP:xs.Top,EDGE_RIGHT:xs.Right,EDGE_BOTTOM:xs.Bottom,EDGE_START:xs.Start,EDGE_END:xs.End,EDGE_HORIZONTAL:xs.Horizontal,EDGE_VERTICAL:xs.Vertical,EDGE_ALL:xs.All,ERRATA_NONE:SA.None,ERRATA_STRETCH_FLEX_BASIS:SA.StretchFlexBasis,ERRATA_ALL:SA.All,ERRATA_CLASSIC:SA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:bp.WebFlexBasis,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:bp.AbsolutePercentageAgainstPaddingEdge,EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS:bp.FixJNILocalRefOverflows,FLEX_DIRECTION_COLUMN:wA.Column,FLEX_DIRECTION_COLUMN_REVERSE:wA.ColumnReverse,FLEX_DIRECTION_ROW:wA.Row,FLEX_DIRECTION_ROW_REVERSE:wA.RowReverse,GUTTER_COLUMN:Np.Column,GUTTER_ROW:Np.Row,GUTTER_ALL:Np.All,JUSTIFY_FLEX_START:El.FlexStart,JUSTIFY_CENTER:El.Center,JUSTIFY_FLEX_END:El.FlexEnd,JUSTIFY_SPACE_BETWEEN:El.SpaceBetween,JUSTIFY_SPACE_AROUND:El.SpaceAround,JUSTIFY_SPACE_EVENLY:El.SpaceEvenly,LOG_LEVEL_ERROR:Cl.Error,LOG_LEVEL_WARN:Cl.Warn,LOG_LEVEL_INFO:Cl.Info,LOG_LEVEL_DEBUG:Cl.Debug,LOG_LEVEL_VERBOSE:Cl.Verbose,LOG_LEVEL_FATAL:Cl.Fatal,MEASURE_MODE_UNDEFINED:Lp.Undefined,MEASURE_MODE_EXACTLY:Lp.Exactly,MEASURE_MODE_AT_MOST:Lp.AtMost,NODE_TYPE_DEFAULT:Oy.Default,NODE_TYPE_TEXT:Oy.Text,OVERFLOW_VISIBLE:Pp.Visible,OVERFLOW_HIDDEN:Pp.Hidden,OVERFLOW_SCROLL:Pp.Scroll,POSITION_TYPE_STATIC:Up.Static,POSITION_TYPE_RELATIVE:Up.Relative,POSITION_TYPE_ABSOLUTE:Up.Absolute,PRINT_OPTIONS_LAYOUT:Fp.Layout,PRINT_OPTIONS_STYLE:Fp.Style,PRINT_OPTIONS_CHILDREN:Fp.Children,UNIT_UNDEFINED:MA.Undefined,UNIT_POINT:MA.Point,UNIT_PERCENT:MA.Percent,UNIT_AUTO:MA.Auto,WRAP_NO_WRAP:kp.NoWrap,WRAP_WRAP:kp.Wrap,WRAP_WRAP_REVERSE:kp.WrapReverse};var K5=J5;Nt.default=K5;Object.defineProperty(Uv,"__esModule",{value:!0});Uv.default=j5;var Zo=q5(Nt);function sT(n){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(sT=function(i){return i?t:e})(n)}function q5(n,e){if(!e&&n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=sT(e);if(t&&t.has(n))return t.get(n);var i={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if(s!=="default"&&Object.prototype.hasOwnProperty.call(n,s)){var o=r?Object.getOwnPropertyDescriptor(n,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=n[s]}return i.default=n,t&&t.set(n,i),i}function j5(n){function e(r,s,o){const a=r[s];r[s]=function(){for(var c=arguments.length,A=new Array(c),h=0;h1?a-1:0),A=1;As?n.Node.createWithConfig(s):n.Node.createDefault()),e(n.Node.prototype,"free",function(){n.Node.destroy(this)}),e(n.Node.prototype,"freeRecursive",function(){for(let r=0,s=this.getChildCount();r1&&arguments[1]!==void 0?arguments[1]:NaN,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Zo.Direction.LTR;return r.call(this,s,o,a)}),{Config:n.Config,Node:n.Node,...Zo.default}}var oT={exports:{}};(function(n,e){var t=(()=>{var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(r){r=r||{};var s;s||(s=typeof r<"u"?r:{});var o,a;s.ready=new Promise(function(N,L){o=N,a=L});var c=Object.assign({},s),A="";typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),i&&(A=i),A.indexOf("blob:")!==0?A=A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):A="";var h=s.print||console.log.bind(console),f=s.printErr||console.warn.bind(console);Object.assign(s,c),c=null;var d;s.wasmBinary&&(d=s.wasmBinary),s.noExitRuntime,typeof WebAssembly!="object"&&ue("no native wasm support detected");var m,E=!1;function x(N,L,j){j=L+j;for(var ae="";!(L>=j);){var ge=N[L++];if(!ge)break;if(ge&128){var we=N[L++]&63;if((ge&224)==192)ae+=String.fromCharCode((ge&31)<<6|we);else{var Pe=N[L++]&63;ge=(ge&240)==224?(ge&15)<<12|we<<6|Pe:(ge&7)<<18|we<<12|Pe<<6|N[L++]&63,65536>ge?ae+=String.fromCharCode(ge):(ge-=65536,ae+=String.fromCharCode(55296|ge>>10,56320|ge&1023))}}else ae+=String.fromCharCode(ge)}return ae}var C,p,I,y,B,R,M,T,P;function K(){var N=m.buffer;C=N,s.HEAP8=p=new Int8Array(N),s.HEAP16=y=new Int16Array(N),s.HEAP32=R=new Int32Array(N),s.HEAPU8=I=new Uint8Array(N),s.HEAPU16=B=new Uint16Array(N),s.HEAPU32=M=new Uint32Array(N),s.HEAPF32=T=new Float32Array(N),s.HEAPF64=P=new Float64Array(N)}var w,b=[],q=[],de=[];function Y(){var N=s.preRun.shift();b.unshift(N)}var ie=0,te=null;function ue(N){throw s.onAbort&&s.onAbort(N),N="Aborted("+N+")",f(N),E=!0,N=new WebAssembly.RuntimeError(N+". Build with -sASSERTIONS for more info."),a(N),N}function U(N){return N.startsWith("data:application/octet-stream;base64,")}var $;if($="data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVp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",!U($)){var ee=$;$=s.locateFile?s.locateFile(ee,A):A+ee}function Ae(){var N=$;try{if(N==$&&d)return new Uint8Array(d);if(U(N))try{var L=Yn(N.slice(37)),j=new Uint8Array(L.length);for(N=0;N=L?"_"+N:N}function O(N,L){return N=V(N),function(){return L.apply(this,arguments)}}var k=[{},{value:void 0},{value:null},{value:!0},{value:!1}],F=[];function me(N){var L=Error,j=O(N,function(ae){this.name=N,this.message=ae,ae=Error(ae).stack,ae!==void 0&&(this.stack=this.toString()+` +`+ae.replace(/^Error(:[^\n]*)?\n/,""))});return j.prototype=Object.create(L.prototype),j.prototype.constructor=j,j.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},j}var Ie=void 0;function se(N){throw new Ie(N)}var Be=N=>(N||se("Cannot use deleted val. handle = "+N),k[N].value),H=N=>{switch(N){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var L=F.length?F.pop():k.length;return k[L]={fa:1,value:N},L}},Ee=void 0,ne=void 0;function le(N){for(var L="";I[N];)L+=ne[I[N++]];return L}var fe=[];function Te(){for(;fe.length;){var N=fe.pop();N.L.Z=!1,N.delete()}}var Z=void 0,S={};function D(N,L){for(L===void 0&&se("ptr should not be undefined");N.P;)L=N.aa(L),N=N.P;return L}var re={};function be(N){N=et(N);var L=le(N);return yt(N),L}function De(N,L){var j=re[N];return j===void 0&&se(L+" has unknown type "+be(N)),j}function Qe(){}var Xe=!1;function ze(N){--N.count.value,N.count.value===0&&(N.S?N.T.V(N.S):N.O.M.V(N.N))}function qe(N,L,j){return L===j?N:j.P===void 0?null:(N=qe(N,L,j.P),N===null?null:j.ma(N))}var at={};function Ct(N,L){return L=D(N,L),S[L]}var Le=void 0;function Dt(N){throw new Le(N)}function Bt(N,L){return L.O&&L.N||Dt("makeClassHandle requires ptr and ptrType"),!!L.T!=!!L.S&&Dt("Both smartPtrType and smartPtr must be specified"),L.count={value:1},dt(Object.create(N,{L:{value:L}}))}function dt(N){return typeof FinalizationRegistry>"u"?(dt=L=>L,N):(Xe=new FinalizationRegistry(L=>{ze(L.L)}),dt=L=>{var j=L.L;return j.S&&Xe.register(L,{L:j},L),L},Qe=L=>{Xe.unregister(L)},dt(N))}var ot={};function tt(N){for(;N.length;){var L=N.pop();N.pop()(L)}}function vt(N){return this.fromWireType(R[N>>2])}var Pt={},Kt={};function _t(N,L,j){function ae(Ne){Ne=j(Ne),Ne.length!==N.length&&Dt("Mismatched type converter count");for(var Ve=0;Ve{re.hasOwnProperty(Ne)?ge[Ve]=re[Ne]:(we.push(Ne),Pt.hasOwnProperty(Ne)||(Pt[Ne]=[]),Pt[Ne].push(()=>{ge[Ve]=re[Ne],++Pe,Pe===we.length&&ae(ge)}))}),we.length===0&&ae(ge)}function zt(N){switch(N){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+N)}}function X(N,L,j={}){if(!("argPackAdvance"in L))throw new TypeError("registerType registeredInstance requires argPackAdvance");var ae=L.name;if(N||se('type "'+ae+'" must have a positive integer typeid pointer'),re.hasOwnProperty(N)){if(j.ta)return;se("Cannot register type '"+ae+"' twice")}re[N]=L,delete Kt[N],Pt.hasOwnProperty(N)&&(L=Pt[N],delete Pt[N],L.forEach(ge=>ge()))}function Ge(N){se(N.L.O.M.name+" instance already deleted")}function Ue(){}function it(N,L,j){if(N[L].R===void 0){var ae=N[L];N[L]=function(){return N[L].R.hasOwnProperty(arguments.length)||se("Function '"+j+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+N[L].R+")!"),N[L].R[arguments.length].apply(this,arguments)},N[L].R=[],N[L].R[ae.Y]=ae}}function At(N,L){s.hasOwnProperty(N)?(se("Cannot register public name '"+N+"' twice"),it(s,N,N),s.hasOwnProperty(void 0)&&se("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),s[N].R[void 0]=L):s[N]=L}function Vt(N,L,j,ae,ge,we,Pe,Ne){this.name=N,this.constructor=L,this.W=j,this.V=ae,this.P=ge,this.oa=we,this.aa=Pe,this.ma=Ne,this.ia=[]}function Wt(N,L,j){for(;L!==j;)L.aa||se("Expected null or instance of "+j.name+", got an instance of "+L.name),N=L.aa(N),L=L.P;return N}function bn(N,L){return L===null?(this.da&&se("null is not a valid "+this.name),0):(L.L||se('Cannot pass "'+Va(L)+'" as a '+this.name),L.L.N||se("Cannot pass deleted object as a pointer of type "+this.name),Wt(L.L.N,L.L.O.M,this.M))}function fi(N,L){if(L===null){if(this.da&&se("null is not a valid "+this.name),this.ca){var j=this.ea();return N!==null&&N.push(this.V,j),j}return 0}if(L.L||se('Cannot pass "'+Va(L)+'" as a '+this.name),L.L.N||se("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&L.L.O.ba&&se("Cannot convert argument of type "+(L.L.T?L.L.T.name:L.L.O.name)+" to parameter type "+this.name),j=Wt(L.L.N,L.L.O.M,this.M),this.ca)switch(L.L.S===void 0&&se("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:L.L.T===this?j=L.L.S:se("Cannot convert argument of type "+(L.L.T?L.L.T.name:L.L.O.name)+" to parameter type "+this.name);break;case 1:j=L.L.S;break;case 2:if(L.L.T===this)j=L.L.S;else{var ae=L.clone();j=this.wa(j,H(function(){ae.delete()})),N!==null&&N.push(this.V,j)}break;default:se("Unsupporting sharing policy")}return j}function en(N,L){return L===null?(this.da&&se("null is not a valid "+this.name),0):(L.L||se('Cannot pass "'+Va(L)+'" as a '+this.name),L.L.N||se("Cannot pass deleted object as a pointer of type "+this.name),L.L.O.ba&&se("Cannot convert argument of type "+L.L.O.name+" to parameter type "+this.name),Wt(L.L.N,L.L.O.M,this.M))}function un(N,L,j,ae){this.name=N,this.M=L,this.da=j,this.ba=ae,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,L.P!==void 0?this.toWireType=fi:(this.toWireType=ae?bn:en,this.U=null)}function qi(N,L){s.hasOwnProperty(N)||Dt("Replacing nonexistant public symbol"),s[N]=L,s[N].Y=void 0}function za(N,L){var j=[];return function(){if(j.length=0,Object.assign(j,arguments),N.includes("j")){var ae=s["dynCall_"+N];ae=j&&j.length?ae.apply(null,[L].concat(j)):ae.call(null,L)}else ae=w.get(L).apply(null,j);return ae}}function di(N,L){N=le(N);var j=N.includes("j")?za(N,L):w.get(L);return typeof j!="function"&&se("unknown function pointer with signature "+N+": "+L),j}var Gs=void 0;function ar(N,L){function j(we){ge[we]||re[we]||(Kt[we]?Kt[we].forEach(j):(ae.push(we),ge[we]=!0))}var ae=[],ge={};throw L.forEach(j),new Gs(N+": "+ae.map(be).join([", "]))}function ds(N,L,j,ae,ge){var we=L.length;2>we&&se("argTypes array size mismatch! Must at least get return value and 'this' types!");var Pe=L[1]!==null&&j!==null,Ne=!1;for(j=1;j>2]);return j}function bo(N){4>2])};case 3:return function(j){return this.fromWireType(P[j>>3])};default:throw new TypeError("Unknown float type: "+N)}}function Pu(N,L,j){switch(L){case 0:return j?function(ae){return p[ae]}:function(ae){return I[ae]};case 1:return j?function(ae){return y[ae>>1]}:function(ae){return B[ae>>1]};case 2:return j?function(ae){return R[ae>>2]}:function(ae){return M[ae>>2]};default:throw new TypeError("Unknown integer type: "+N)}}function z(N,L){for(var j="",ae=0;!(ae>=L/2);++ae){var ge=y[N+2*ae>>1];if(ge==0)break;j+=String.fromCharCode(ge)}return j}function pe(N,L,j){if(j===void 0&&(j=2147483647),2>j)return 0;j-=2;var ae=L;j=j<2*N.length?j/2:N.length;for(var ge=0;ge>1]=N.charCodeAt(ge),L+=2;return y[L>>1]=0,L-ae}function xe(N){return 2*N.length}function Se(N,L){for(var j=0,ae="";!(j>=L/4);){var ge=R[N+4*j>>2];if(ge==0)break;++j,65536<=ge?(ge-=65536,ae+=String.fromCharCode(55296|ge>>10,56320|ge&1023)):ae+=String.fromCharCode(ge)}return ae}function ve(N,L,j){if(j===void 0&&(j=2147483647),4>j)return 0;var ae=L;j=ae+j-4;for(var ge=0;ge=we){var Pe=N.charCodeAt(++ge);we=65536+((we&1023)<<10)|Pe&1023}if(R[L>>2]=we,L+=4,L+4>j)break}return R[L>>2]=0,L-ae}function Ze(N){for(var L=0,j=0;j=ae&&++j,L+=4}return L}var lt={};function gt(N){var L=lt[N];return L===void 0?le(N):L}var pt=[];function St(N){var L=pt.length;return pt.push(N),L}function It(N,L){for(var j=Array(N),ae=0;ae>2],"parameter "+ae);return j}var xt=[],mn=[null,[],[]];Ie=s.BindingError=me("BindingError"),s.count_emval_handles=function(){for(var N=0,L=5;Ltn;++tn)Wn[tn]=String.fromCharCode(tn);ne=Wn,s.getInheritedInstanceCount=function(){return Object.keys(S).length},s.getLiveInheritedInstances=function(){var N=[],L;for(L in S)S.hasOwnProperty(L)&&N.push(S[L]);return N},s.flushPendingDeletes=Te,s.setDelayFunction=function(N){Z=N,fe.length&&Z&&Z(Te)},Le=s.InternalError=me("InternalError"),Ue.prototype.isAliasOf=function(N){if(!(this instanceof Ue&&N instanceof Ue))return!1;var L=this.L.O.M,j=this.L.N,ae=N.L.O.M;for(N=N.L.N;L.P;)j=L.aa(j),L=L.P;for(;ae.P;)N=ae.aa(N),ae=ae.P;return L===ae&&j===N},Ue.prototype.clone=function(){if(this.L.N||Ge(this),this.L.$)return this.L.count.value+=1,this;var N=dt,L=Object,j=L.create,ae=Object.getPrototypeOf(this),ge=this.L;return N=N(j.call(L,ae,{L:{value:{count:ge.count,Z:ge.Z,$:ge.$,N:ge.N,O:ge.O,S:ge.S,T:ge.T}}})),N.L.count.value+=1,N.L.Z=!1,N},Ue.prototype.delete=function(){this.L.N||Ge(this),this.L.Z&&!this.L.$&&se("Object already scheduled for deletion"),Qe(this),ze(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},Ue.prototype.isDeleted=function(){return!this.L.N},Ue.prototype.deleteLater=function(){return this.L.N||Ge(this),this.L.Z&&!this.L.$&&se("Object already scheduled for deletion"),fe.push(this),fe.length===1&&Z&&Z(Te),this.L.Z=!0,this},un.prototype.pa=function(N){return this.ja&&(N=this.ja(N)),N},un.prototype.ga=function(N){this.V&&this.V(N)},un.prototype.argPackAdvance=8,un.prototype.readValueFromPointer=vt,un.prototype.deleteObject=function(N){N!==null&&N.delete()},un.prototype.fromWireType=function(N){function L(){return this.ca?Bt(this.M.W,{O:this.va,N:j,T:this,S:N}):Bt(this.M.W,{O:this,N})}var j=this.pa(N);if(!j)return this.ga(N),null;var ae=Ct(this.M,j);if(ae!==void 0)return ae.L.count.value===0?(ae.L.N=j,ae.L.S=N,ae.clone()):(ae=ae.clone(),this.ga(N),ae);if(ae=this.M.oa(j),ae=at[ae],!ae)return L.call(this);ae=this.ba?ae.ka:ae.pointerType;var ge=qe(j,this.M,ae.M);return ge===null?L.call(this):this.ca?Bt(ae.M.W,{O:ae,N:ge,T:this,S:N}):Bt(ae.M.W,{O:ae,N:ge})},Gs=s.UnboundTypeError=me("UnboundTypeError");var Yn=typeof atob=="function"?atob:function(N){var L="",j=0;N=N.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var ae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(j++)),ge="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(j++)),we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(j++)),Pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(j++));ae=ae<<2|ge>>4,ge=(ge&15)<<4|we>>2;var Ne=(we&3)<<6|Pe;L+=String.fromCharCode(ae),we!==64&&(L+=String.fromCharCode(ge)),Pe!==64&&(L+=String.fromCharCode(Ne))}while(jPe.sa).concat(ge.map(Pe=>Pe.ya));_t([N],we,Pe=>{var Ne={};return ge.forEach((Ve,Oe)=>{var $e=Pe[Oe],ht=Ve.qa,kt=Ve.ra,dn=Pe[Oe+ge.length],Ht=Ve.xa,Ni=Ve.za;Ne[Ve.na]={read:cr=>$e.fromWireType(ht(kt,cr)),write:(cr,Os)=>{var ur=[];Ht(Ni,cr,dn.toWireType(ur,Os)),tt(ur)}}}),[{name:L.name,fromWireType:function(Ve){var Oe={},$e;for($e in Ne)Oe[$e]=Ne[$e].read(Ve);return ae(Ve),Oe},toWireType:function(Ve,Oe){for(var $e in Ne)if(!($e in Oe))throw new TypeError('Missing field: "'+$e+'"');var ht=j();for($e in Ne)Ne[$e].write(ht,Oe[$e]);return Ve!==null&&Ve.push(ae,ht),ht},argPackAdvance:8,readValueFromPointer:vt,U:ae}]})},v:function(){},B:function(N,L,j,ae,ge){var we=zt(j);L=le(L),X(N,{name:L,fromWireType:function(Pe){return!!Pe},toWireType:function(Pe,Ne){return Ne?ae:ge},argPackAdvance:8,readValueFromPointer:function(Pe){if(j===1)var Ne=p;else if(j===2)Ne=y;else if(j===4)Ne=R;else throw new TypeError("Unknown boolean type size: "+L);return this.fromWireType(Ne[Pe>>we])},U:null})},f:function(N,L,j,ae,ge,we,Pe,Ne,Ve,Oe,$e,ht,kt){$e=le($e),we=di(ge,we),Ne&&(Ne=di(Pe,Ne)),Oe&&(Oe=di(Ve,Oe)),kt=di(ht,kt);var dn=V($e);At(dn,function(){ar("Cannot construct "+$e+" due to unbound types",[ae])}),_t([N,L,j],ae?[ae]:[],function(Ht){if(Ht=Ht[0],ae)var Ni=Ht.M,cr=Ni.W;else cr=Ue.prototype;Ht=O(dn,function(){if(Object.getPrototypeOf(this)!==Os)throw new Ie("Use 'new' to construct "+$e);if(ur.X===void 0)throw new Ie($e+" has no accessible constructor");var tf=ur.X[arguments.length];if(tf===void 0)throw new Ie("Tried to invoke ctor of "+$e+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(ur.X).toString()+") parameters instead!");return tf.apply(this,arguments)});var Os=Object.create(cr,{constructor:{value:Ht}});Ht.prototype=Os;var ur=new Vt($e,Ht,Os,kt,Ni,we,Ne,Oe);Ni=new un($e,ur,!0,!1),cr=new un($e+"*",ur,!1,!1);var No=new un($e+" const*",ur,!1,!0);return at[N]={pointerType:cr,ka:No},qi(dn,Ht),[Ni,cr,No]})},c:function(N,L,j,ae,ge,we,Pe){var Ne=Do(j,ae);L=le(L),we=di(ge,we),_t([],[N],function(Ve){function Oe(){ar("Cannot call "+$e+" due to unbound types",Ne)}Ve=Ve[0];var $e=Ve.name+"."+L;L.startsWith("@@")&&(L=Symbol[L.substring(2)]);var ht=Ve.M.constructor;return ht[L]===void 0?(Oe.Y=j-1,ht[L]=Oe):(it(ht,L,$e),ht[L].R[j-1]=Oe),_t([],Ne,function(kt){return kt=ds($e,[kt[0],null].concat(kt.slice(1)),null,we,Pe),ht[L].R===void 0?(kt.Y=j-1,ht[L]=kt):ht[L].R[j-1]=kt,[]}),[]})},o:function(N,L,j,ae,ge,we){0{ar("Cannot construct "+Ne.name+" due to unbound types",Pe)},_t([],Pe,function(Oe){return Oe.splice(1,0,null),Ne.M.X[L-1]=ds(Ve,Oe,null,ge,we),[]}),[]})},a:function(N,L,j,ae,ge,we,Pe,Ne){var Ve=Do(j,ae);L=le(L),we=di(ge,we),_t([],[N],function(Oe){function $e(){ar("Cannot call "+ht+" due to unbound types",Ve)}Oe=Oe[0];var ht=Oe.name+"."+L;L.startsWith("@@")&&(L=Symbol[L.substring(2)]),Ne&&Oe.M.ia.push(L);var kt=Oe.M.W,dn=kt[L];return dn===void 0||dn.R===void 0&&dn.className!==Oe.name&&dn.Y===j-2?($e.Y=j-2,$e.className=Oe.name,kt[L]=$e):(it(kt,L,ht),kt[L].R[j-2]=$e),_t([],Ve,function(Ht){return Ht=ds(ht,Ht,Oe,we,Pe),kt[L].R===void 0?(Ht.Y=j-2,kt[L]=Ht):kt[L].R[j-2]=Ht,[]}),[]})},A:function(N,L){L=le(L),X(N,{name:L,fromWireType:function(j){var ae=Be(j);return bo(j),ae},toWireType:function(j,ae){return H(ae)},argPackAdvance:8,readValueFromPointer:vt,U:null})},m:function(N,L,j){j=zt(j),L=le(L),X(N,{name:L,fromWireType:function(ae){return ae},toWireType:function(ae,ge){return ge},argPackAdvance:8,readValueFromPointer:Lu(L,j),U:null})},d:function(N,L,j,ae,ge){L=le(L),ge===-1&&(ge=4294967295),ge=zt(j);var we=Ne=>Ne;if(ae===0){var Pe=32-8*j;we=Ne=>Ne<>>Pe}j=L.includes("unsigned")?function(Ne,Ve){return Ve>>>0}:function(Ne,Ve){return Ve},X(N,{name:L,fromWireType:we,toWireType:j,argPackAdvance:8,readValueFromPointer:Pu(L,ge,ae!==0),U:null})},b:function(N,L,j){function ae(we){we>>=2;var Pe=M;return new ge(C,Pe[we+1],Pe[we])}var ge=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][L];j=le(j),X(N,{name:j,fromWireType:ae,argPackAdvance:8,readValueFromPointer:ae},{ta:!0})},n:function(N,L){L=le(L);var j=L==="std::string";X(N,{name:L,fromWireType:function(ae){var ge=M[ae>>2],we=ae+4;if(j)for(var Pe=we,Ne=0;Ne<=ge;++Ne){var Ve=we+Ne;if(Ne==ge||I[Ve]==0){if(Pe=Pe?x(I,Pe,Ve-Pe):"",Oe===void 0)var Oe=Pe;else Oe+="\0",Oe+=Pe;Pe=Ve+1}}else{for(Oe=Array(ge),Ne=0;Ne=Ve?Ne++:2047>=Ve?Ne+=2:55296<=Ve&&57343>=Ve?(Ne+=4,++we):Ne+=3}we=Ne}else we=ge.length;if(Ne=yi(4+we+1),Ve=Ne+4,M[Ne>>2]=we,j&&Pe){if(Pe=Ve,Ve=we+1,we=I,0=$e){var ht=ge.charCodeAt(++Oe);$e=65536+(($e&1023)<<10)|ht&1023}if(127>=$e){if(Pe>=Ve)break;we[Pe++]=$e}else{if(2047>=$e){if(Pe+1>=Ve)break;we[Pe++]=192|$e>>6}else{if(65535>=$e){if(Pe+2>=Ve)break;we[Pe++]=224|$e>>12}else{if(Pe+3>=Ve)break;we[Pe++]=240|$e>>18,we[Pe++]=128|$e>>12&63}we[Pe++]=128|$e>>6&63}we[Pe++]=128|$e&63}}we[Pe]=0}}else if(Pe)for(Pe=0;PeB,Ne=1;else L===4&&(ae=Se,ge=ve,we=Ze,Pe=()=>M,Ne=2);X(N,{name:j,fromWireType:function(Ve){for(var Oe=M[Ve>>2],$e=Pe(),ht,kt=Ve+4,dn=0;dn<=Oe;++dn){var Ht=Ve+4+dn*L;(dn==Oe||$e[Ht>>Ne]==0)&&(kt=ae(kt,Ht-kt),ht===void 0?ht=kt:(ht+="\0",ht+=kt),kt=Ht+L)}return yt(Ve),ht},toWireType:function(Ve,Oe){typeof Oe!="string"&&se("Cannot pass non-string to C++ string type "+j);var $e=we(Oe),ht=yi(4+$e+L);return M[ht>>2]=$e>>Ne,ge(Oe,ht+4,$e+L),Ve!==null&&Ve.push(yt,ht),ht},argPackAdvance:8,readValueFromPointer:vt,U:function(Ve){yt(Ve)}})},k:function(N,L,j,ae,ge,we){ot[N]={name:le(L),ea:di(j,ae),V:di(ge,we),ha:[]}},h:function(N,L,j,ae,ge,we,Pe,Ne,Ve,Oe){ot[N].ha.push({na:le(L),sa:j,qa:di(ae,ge),ra:we,ya:Pe,xa:di(Ne,Ve),za:Oe})},C:function(N,L){L=le(L),X(N,{ua:!0,name:L,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(N,L,j,ae,ge){N=pt[N],L=Be(L),j=gt(j);var we=[];return M[ae>>2]=H(we),N(L,j,we,ge)},t:function(N,L,j,ae){N=pt[N],L=Be(L),j=gt(j),N(L,j,null,ae)},g:bo,l:function(N,L){var j=It(N,L),ae=j[0];L=ae.name+"_$"+j.slice(1).map(function(Pe){return Pe.name}).join("_")+"$";var ge=xt[L];if(ge!==void 0)return ge;var we=Array(N-1);return ge=St((Pe,Ne,Ve,Oe)=>{for(var $e=0,ht=0;ht>>=0,2147483648=j;j*=2){var ae=L*(1+.2/j);ae=Math.min(ae,N+100663296);var ge=Math;ae=Math.max(N,ae),ge=ge.min.call(ge,2147483648,ae+(65536-ae%65536)%65536);e:{try{m.grow(ge-C.byteLength+65535>>>16),K();var we=1;break e}catch{}we=void 0}if(we)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(N,L,j,ae){for(var ge=0,we=0;we>2],Ne=M[L+4>>2];L+=8;for(var Ve=0;Ve>2]=ge,0}};(function(){function N(ge){s.asm=ge.exports,m=s.asm.D,K(),w=s.asm.I,q.unshift(s.asm.E),ie--,s.monitorRunDependencies&&s.monitorRunDependencies(ie),ie==0&&te&&(ge=te,te=null,ge())}function L(ge){N(ge.instance)}function j(ge){return ye().then(function(we){return WebAssembly.instantiate(we,ae)}).then(function(we){return we}).then(ge,function(we){f("failed to asynchronously prepare wasm: "+we),ue(we)})}var ae={a:Et};if(ie++,s.monitorRunDependencies&&s.monitorRunDependencies(ie),s.instantiateWasm)try{return s.instantiateWasm(ae,N)}catch(ge){f("Module.instantiateWasm callback failed with error: "+ge),a(ge)}return function(){return d||typeof WebAssembly.instantiateStreaming!="function"||U($)||typeof fetch!="function"?j(L):fetch($,{credentials:"same-origin"}).then(function(ge){return WebAssembly.instantiateStreaming(ge,ae).then(L,function(we){return f("wasm streaming compile failed: "+we),f("falling back to ArrayBuffer instantiation"),j(L)})})}().catch(a),{}})(),s.___wasm_call_ctors=function(){return(s.___wasm_call_ctors=s.asm.E).apply(null,arguments)};var et=s.___getTypeName=function(){return(et=s.___getTypeName=s.asm.F).apply(null,arguments)};s.__embind_initialize_bindings=function(){return(s.__embind_initialize_bindings=s.asm.G).apply(null,arguments)};var yi=s._malloc=function(){return(yi=s._malloc=s.asm.H).apply(null,arguments)},yt=s._free=function(){return(yt=s._free=s.asm.J).apply(null,arguments)};s.dynCall_jiji=function(){return(s.dynCall_jiji=s.asm.K).apply(null,arguments)};var An;te=function N(){An||lr(),An||(te=N)};function lr(){function N(){if(!An&&(An=!0,s.calledRun=!0,!E)){if(ke(q),o(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;){var L=s.postRun.shift();de.unshift(L)}ke(de)}}if(!(0Xt(n),e);J.useEffect(()=>t,[t])}let UE;function eG(){if(UE==null){const n=UE=Gt(void 0);ki.loadYoga().then(e=>n.value=e)}return UE}function cT(n,e,...t){const i=J.useMemo(()=>Gt(void 0),[]);return J.useEffect(()=>{if(!(e instanceof Vn)){let r=!1;return n(e,...t).then(s=>r?void 0:i.value=s),()=>r=!0}return Xt(()=>{let r=!1;return n(e.value,...t).then(s=>r?void 0:i.value=s).catch(console.error),()=>r=!0})},[e,...t]),i}function uT(n,e,t,i,r){const[s,o]=n.value,[a,c,A,h]=e.value,[f,d,m,E]=t.value,x=a+f,C=c+d,p=A+m,I=h+E,y=s-I-C,B=o-x-p,R=y/B;let M=1;return R>r?M=B*i:M=y*i/r,[(I-C)*.5*i,(p-x)*.5*i,M]}const BS=new Je;function Hy(n,e,t,i=0){const r=e*n.itemSize+i;n.addUpdateRange(r,3),Array.isArray(t)?n.set(t,r):(BS.set(t),BS.toArray(n.array,r)),n.needsUpdate=!0}function Cg(n){return n instanceof Vn?n.value:n}const AT=J.createContext(void 0);function Pa(){const n=J.useContext(AT);if(n==null)throw new Error("Can only be used inside a component.");return n}const tG=AT.Provider;function so(n){const e=new Map;return(t,i)=>{const r=t.length;for(const s in i){const o=i[s];if(o===void 0)return;let a=e.get(o);a==null&&e.set(o,a=zn(()=>n()?Cg(o):void 0));for(let c=0;c"u"||matchMedia==null?void 0:matchMedia("(prefers-color-scheme: dark)"),hT=Gt((uu==null?void 0:uu.matches)??!1);uu==null||uu.addEventListener("change",n=>hT.value=n.matches);const Fv=Gt("system"),fT=zn(()=>{switch(Fv.value){case"system":return hT.value;case"dark":return!0;case"light":return!1}});function nG(n){Fv.value=n}function _S(){return Fv.peek()}const iG=so(()=>fT.value);function xo(n,e){Tu(e,t=>{const i=t.dark;i!=null&&iG(n,i)})}function rG({dark:n,light:e}){const t={};for(const i in n)t[i]=zn(()=>fT.value?n[i]:e[i]);return t}const sG=Math.cos(45/180*Math.PI),FE=[new cn,new cn,new cn,new cn],SS=new G;class oG{constructor(e,t,i,r,s){We(this,"planes");We(this,"facePlane");We(this,"originalCenter");this.originalCenter=new G(t,i,0).applyMatrix4(e),this.facePlane=new cn(new G(0,0,1),0).applyMatrix4(e);const o=r/2,a=s/2,c=i+a,A=t+o,h=-i+a,f=-t+o;this.planes=[new cn(new G(0,-1,0),h).applyMatrix4(e),new cn(new G(-1,0,0),f).applyMatrix4(e),new cn(new G(0,1,0),c).applyMatrix4(e),new cn(new G(1,0,0),A).applyMatrix4(e)]}min({planes:e}){for(let r=0;r<4;r++){const s=this.facePlane,o=e[r],a=s.normal.dot(o.normal);if(Math.abs(a)>.99)return this;const c=FE[r];if(Math.abs(a)<.01){c.copy(o);continue}c.normal.crossVectors(s.normal,o.normal).normalize().cross(s.normal).negate();const A=1-a*a,h=(s.constant-o.constant*a)/A,f=(o.constant-s.constant*a)/A;SS.copy(s.normal).multiplyScalar(h).addScaledVector(o.normal,f),c.constant=-SS.dot(c.normal)}let t=0;const i=this.planes[0].normal;for(;FE[t].normal.dot(i)>sG;)break;for(let r=0;r<4;r++){const s=this.planes[r],o=(r+t)%4;FE[o].distanceToPoint(this.originalCenter)zn(()=>{const r=e.value,s=n==null?void 0:n.value;if(s==null||r==null)return!1;const[o,a]=t.value;for(let h=0;h<4;h++){const[f,d]=cG[h];wS[h].set(f*i.pixelSize*o,d*i.pixelSize*a,0).applyMatrix4(r)}const{planes:c}=s;let A;for(let h=0;h<4;h++){const f=c[h];A=!0;for(let d=0;d<4;d++){const m=wS[d];f.distanceToPoint(m)>=0&&(A=!1)}if(A)return!0}return!1}),[e,n,i,t])}function uG(n,e,t,i,r,s){return J.useMemo(()=>zn(()=>{const o=n.value;if(o==null||i.value===ki.Overflow.Visible)return s==null?void 0:s.value;const[a,c]=e.value,[A,h,f,d]=t.value,m=new oG(o,(h-d)*r.pixelSize/2,(A-f)*r.pixelSize/2,(a-d-h)*r.pixelSize,(c-A-f)*r.pixelSize);return(s==null?void 0:s.value)!=null&&m.min(s.value),m}),[n,e,t,r,i,s])}const zy=new cn(new G(-1,0,0),Number.MAX_SAFE_INTEGER),yg=new Float32Array(16);for(let n=0;n<4;n++)zy.normal.toArray(yg,n*4),yg[n*4+3]=zy.constant;function qh(n,e){const t=J.useMemo(()=>[new cn,new cn,new cn,new cn],[]);return Na(()=>{var s;const i=e.current;if(i==null)return;const r=(s=n==null?void 0:n.value)==null?void 0:s.planes;if(r==null){for(let o=0;o<4;o++)t[o].copy(zy);return}for(let o=0;o<4;o++)t[o].copy(r[o]).applyMatrix4(i.matrixWorld)}),t}class AG{constructor(e,t){We(this,"glyphInfoMap",new Map);We(this,"kerningMap",new Map);We(this,"questionmarkGlyphInfo");We(this,"pageWidth");We(this,"pageHeight");We(this,"distanceRange");this.page=t;const{scaleW:i,scaleH:r,lineHeight:s}=e.common;this.pageWidth=i,this.pageHeight=r,this.distanceRange=e.distanceField.distanceRange;const{size:o}=e.info;for(const c of e.chars)c.uvX=c.x/i,c.uvY=c.y/r,c.uvWidth=c.width/i,c.uvHeight=c.height/r,c.width/=o,c.height/=o,c.xadvance/=o,c.xoffset/=o,c.yoffset-=s-o,c.yoffset/=o,this.glyphInfoMap.set(c.char,c);for(const{first:c,second:A,amount:h}of e.kernings)this.kerningMap.set(`${c}/${A}`,h/o);const a=this.glyphInfoMap.get("?");if(a==null)throw new Error("missing '?' glyph in font");this.questionmarkGlyphInfo=a}getGlyphInfo(e){return this.glyphInfoMap.get(e)??(e==` +`?this.glyphInfoMap.get(" "):this.questionmarkGlyphInfo)??this.questionmarkGlyphInfo}getKerning(e,t){return this.kerningMap.get(`${e}/${t}`)??0}}function hG(n,e,t){e[t+0]=n.uvX,e[t+1]=n.uvY+n.uvHeight,e[t+2]=n.uvWidth,e[t+3]=-n.uvHeight}const MS=new ft,fG=new ft;class dG{constructor(e,t,i,r,s){We(this,"index");We(this,"hidden",!0);We(this,"glyphInfo");We(this,"x",0);We(this,"y",0);We(this,"fontSize",0);We(this,"pixelSize",0);this.group=e,this.baseMatrix=t,this.color=i,this.opacity=r,this.clippingRect=s}getX(e){return this.glyphInfo==null?this.x:this.x+e*this.glyphInfo.width*this.fontSize}show(){this.hidden&&(this.hidden=!1,this.group.requestActivate(this))}hide(){this.hidden||(this.hidden=!0,this.group.delete(this))}activate(e){this.index=e,this.writeUpdatedMatrix(),this.writeUV(),this.updateColor(this.color),this.updateOpacity(this.opacity),this.updateClippingRect(this.clippingRect)}setIndex(e){this.index=e}updateClippingRect(e){if(this.clippingRect=e,this.index==null)return;const t=this.index*16,{instanceClipping:i}=this.group;this.clippingRect==null?i.set(yg,t):this.clippingRect.toArray(i.array,t),i.addUpdateRange(t,16),i.needsUpdate=!0}updateColor(e){this.color=e,this.index!=null&&Hy(this.group.instanceRGBA,this.index,e)}updateOpacity(e){if(this.opacity=e,this.index==null)return;const{instanceRGBA:t}=this.group,i=this.index*4+3;t.array[i]=e,t.addUpdateRange(i,1),t.needsUpdate=!0}updateGlyphAndTransformation(e,t,i,r,s){this.glyphInfo===e&&this.x===t&&this.y===i&&this.fontSize===r&&this.pixelSize===s||(this.glyphInfo!=e&&(this.glyphInfo=e,this.writeUV()),this.x=t,this.y=i,this.fontSize=r,this.pixelSize=s,this.writeUpdatedMatrix())}updateBaseMatrix(e){this.baseMatrix!==e&&(this.baseMatrix=e,this.writeUpdatedMatrix())}writeUV(){if(this.index==null||this.glyphInfo==null)return;const e=this.index*4,{instanceUV:t}=this.group;hG(this.glyphInfo,t.array,e),t.addUpdateRange(e,4),t.needsUpdate=!0}writeUpdatedMatrix(){if(this.index==null||this.glyphInfo==null||this.baseMatrix==null)return;const e=this.index*16,{instanceMatrix:t}=this.group;t.addUpdateRange(e,16),MS.makeTranslation(this.x*this.pixelSize,this.y*this.pixelSize,0).multiply(fG.makeScale(this.fontSize*this.glyphInfo.width*this.pixelSize,this.fontSize*this.glyphInfo.height*this.pixelSize,1)).premultiply(this.baseMatrix),MS.toArray(t.array,e),t.needsUpdate=!0}}function QS(n,e,t,i){return((i==null?0:n.getKerning(i,t.id))+t.xoffset)*e}function kE(n,e,t){return(((t==null?void 0:t.yoffset)??0)+(e-1)/2)*n}function Th(n,e,t){return e.xadvance*n+t}function np(n,e){return n*e}function Vy(n,{lineHeight:e,fontSize:t}){return Math.max(n,1)*t*e}const pG=[];class gG{constructor(e,t,i,r,s,o,a,c,A,h){We(this,"glyphLines",[]);We(this,"lastLayout");We(this,"unsubscribeInitialList",[]);We(this,"unsubscribeShowList",[]);We(this,"opacity",1);We(this,"color",16777215);this.group=e,this.getAlignmentProperties=t,this.getAppearanceProperties=i,this.layoutSignal=r,this.matrix=s,this.parentClippingRect=a,this.selectionRange=c,this.selectionBoxes=A,this.caretPosition=h,this.unsubscribeInitialList=[Xt(()=>{const f=i.value;if(f==null||(o==null?void 0:o.value)===!0||(f("opacity")??1)<.01){this.hide();return}this.show()}),Xt(()=>this.updateSelectionBoxes(this.lastLayout,c==null?void 0:c.value,PE(()=>{var f;return((f=t.value)==null?void 0:f.call(t,"verticalAlign"))??"top"}),PE(()=>{var f;return((f=t.value)==null?void 0:f.call(t,"horizontalAlign"))??"left"})))]}getCharIndex(e,t){const i=PE(()=>{var f,d;return((d=(f=this.getAlignmentProperties).value)==null?void 0:d.call(f,"verticalAlign"))??"top"}),r=this.lastLayout;if(r==null)return 0;t-=-ip(r,i);const s=Math.floor(t/-np(r.lineHeight,r.fontSize)),o=r.lines;if(s<0||o.length===0)return 0;if(s>=o.length){const f=o[o.length-1];return f.charIndexOffset+f.charLength+1}const a=o[s],c=r.font.getGlyphInfo(" ").xadvance*r.fontSize,A=this.glyphLines[s];let h=A.length;for(let f=0;f=f.charIndexOffset+f.charLength)continue;const d=this.glyphLines[h][Math.max(i-f.charIndexOffset,0)];return{lineIndex:h,x:this.getGlyphX(d,r?0:1,s)}}const c=e[a-1];if(c.charLength===0)return{lineIndex:a-1,x:RS(t,c.nonWhitespaceWidth,o)-t/2};const A=this.glyphLines[a-1][c.charLength-1];return{lineIndex:a-1,x:this.getGlyphX(A,1,s)}}getGlyphX(e,t,i){return typeof e=="number"?e+t*i:e.getX(t)}show(){this.unsubscribeShowList.length>0||(ul(this.glyphLines,e=>e.show()),this.unsubscribeShowList.push(Xt(()=>{const e=this.matrix.value;e!=null&&ul(this.glyphLines,t=>t.updateBaseMatrix(e))}),Xt(()=>{var t;const e=(t=this.parentClippingRect)==null?void 0:t.value;ul(this.glyphLines,i=>i.updateClippingRect(e))}),Xt(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.color=e("color")??16777215;ul(this.glyphLines,i=>i.updateColor(t))}),Xt(()=>{const e=this.getAppearanceProperties.value;if(e==null)return;const t=this.opacity=e("opacity")??1;ul(this.glyphLines,i=>i.updateOpacity(t))}),Xt(()=>{var x,C;const e=this.layoutSignal.value,t=this.getAlignmentProperties.value;if(e==null||t==null)return;const{text:i,font:r,lines:s,letterSpacing:o=0,fontSize:a=16,lineHeight:c=1.2,availableWidth:A}=e,h=t("verticalAlign")??"top",f=t("horizontalAlign")??"left";let d=ip(e,h)-e.availableHeight/2;const m=s.length,E=this.group.pixelSize;for(let p=0;pR+B){K=te.id;const $=P+QS(r,a,te,K);typeof w[Y]=="number"?w[Y]=P:w.splice(Y,0,$),P+=T+Th(a,te,o);continue}let ue=w[Y];for(;Yp.hide(),m),this.glyphLines.length=m,this.lastLayout=e,this.updateSelectionBoxes(e,(C=this.selectionRange)==null?void 0:C.peek(),h,f)})))}hide(){const e=this.unsubscribeShowList.length;if(e!==0){for(let t=0;tt.hide())}}destroy(){this.hide(),this.glyphLines.length=0;const e=this.unsubscribeInitialList.length;for(let t=0;t{t.uniforms.fontPage={value:e.page},t.uniforms.pageSize={value:[e.pageWidth,e.pageHeight]},t.uniforms.distanceRange={value:e.distanceRange},t.uniforms.v_weight={value:.3},t.vertexShader=`attribute vec4 instanceUVOffset; varying vec2 fontUv; attribute vec4 instanceRGBA; varying vec4 rgba; @@ -3882,14 +3882,15 @@ No matching component was found for: } diffuseColor.a *= clipOpacity * min((multiplier - 0.5) / 0.5, 1.0); diffuseColor *= rgba; - `)}}}const Fy=Symbol("camera-distance-key"),ky=Symbol("order-info-key");function oG(n,e){if(n.groupOrder!==e.groupOrder)return n.groupOrder-e.groupOrder;if(n.renderOrder!==e.renderOrder)return n.renderOrder-e.renderOrder;const t=n.object[Fy],i=e.object[Fy];return t==null||i==null?n.z!==e.z?e.z-n.z:n.id-e.id:t===i?lG(n.object[ky],e.object[ky]):i.current-t.current}function aG(n){n.setTransparentSort(oG)}const Vi={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function lG(n,e){let t=n.majorIndex-e.majorIndex;return t!=0||(t=n.elementType-e.elementType,t!=0)?t:n.minorIndex-e.minorIndex}const tT=$.createContext(null),cG=tT.Provider;function Br(n,e,t,i){const r=i??$.useContext(tT),s=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return $.useMemo(()=>{let a,c;return r==null?(a=0,c=0):n>r.elementType?(a=r.majorIndex,c=0):n!=r.elementType||!uG(t,r.instancedGroupDependencies)?(a=r.majorIndex+1,c=0):(a=r.majorIndex,c=r.minorIndex+1),s>0&&(a+=s,c=0),c+=o,{instancedGroupDependencies:t,elementType:n,majorIndex:a,minorIndex:c}},[s,o,r,n,t])}function uG(n,e){if(n===e)return!0;if(n==null||e==null)return!1;let t=0;for(const i in n){if(n[i]!=e[i])return!1;++t}return t===Object.keys(e).length}function Vl(n,e,t){return n[Fy]=e,n[ky]=t,n}class AG extends Gr{constructor(t,i,r,s){super();We(this,"instanceMatrix");We(this,"instanceUV");We(this,"instanceRGBA");We(this,"instanceClipping");We(this,"glyphs",[]);We(this,"requestedGlyphs",[]);We(this,"holeIndicies",[]);We(this,"mesh");We(this,"material");We(this,"timeTillDecimate");this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.material=new sG(t)}requestActivate(t){const i=this.holeIndicies.shift();if(i!=null){this.glyphs[i]=t,t.activate(i);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(t);return}const r=this.mesh.count;this.glyphs[r]=t,t.activate(r),this.mesh.count+=1}delete(t){if(t.index==null){const s=this.requestedGlyphs.indexOf(t);if(s===-1)return;this.requestedGlyphs.splice(s,1);return}const i=this.requestedGlyphs.shift();if(i!=null){i.activate(t.index),this.glyphs[t.index]=i,t.index=void 0;return}if(t.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,t.index=void 0;return}const r=t.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(t.index),this.glyphs[t.index]=void 0,t.index=void 0}onFrame(t){var a;const i=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(i===0){this.visible=!1;return}this.visible=!0;const r=((a=this.instanceMatrix)==null?void 0:a.count)??0;if(i0)&&i<=r)return;this.timeTillDecimate=void 0,this.resize(i);const s=this.mesh.count,o=this.requestedGlyphs.length;for(let c=0;cd-m);const A=this.holeIndicies.length;let h=0,f=0;for(;f0)for(let d=this.holeIndicies[0];d{for(const o of r)o(s);DE.set(n,s)}).catch(console.error)}async function dG(n,e){const t=await(await fetch(n)).json();if(t.pages.length!==1)throw new Error("only supporting exactly 1 page");const i=await hG.loadAsync(new URL(t.pages[0],n).href);return i.anisotropy=e.capabilities.getMaxAnisotropy(),i.flipY=!1,new q5(t,i)}const pG=({text:n,fontSize:e,font:t,letterSpacing:i},r,s)=>{let o={start:s,end:s,whitespaces:0,width:0},a=s,c=0,A=0;for(;ar)break;c+=f,++a,h===" "?A+=1:(o.width=c,o.end=a,o.whitespaces=A)}return o},gG=({text:n,fontSize:e,font:t,letterSpacing:i},r,s)=>{let o={start:s,end:s,whitespaces:0,width:0},a=0,c=0,A=s;for(;A{let o={start:s,end:s,whitespaces:0,width:0},a=0,c=0,A=s;for(;A0&&a+f>r)break;if(++A,a+=f,h===" "){c+=1;continue}const d=n[A];d!=" "&&d!=` -`&&Anew Map,[]),r=$.useCallback((s,o)=>{let a=i.get(o);a==null&&i.set(o,a=new Map);let c=a==null?void 0:a.get(s);return c==null&&(a.set(s,c=new AG(o,n,e,{majorIndex:s,elementType:Vi.Text,minorIndex:0})),t.add(c)),c},[n,e,t]);return ya((s,o)=>{for(const a of i.values())for(const c of a.values())c.onFrame(o)}),r}const IG=$.createContext(null),xG={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},Gy={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},BG=["horizontalAlign","verticalAlign"],_G=["color","opacity"],SG=["fontSize","letterSpacing","lineHeight","wordBreak"];function wG(n,e,t,i,r,s,o){const a=$.useContext(iT),c=QG(n),A=$.useMemo(()=>fn(e),[]);A.value=e;const h=$.useRef(void 0),f=DG(n,c,A,h),d=cs(n,BG),m=cs(n,_G),E=$.useMemo(()=>fn(void 0),[]);return $.useEffect(()=>i.addLayoutChangeListener(()=>{const x=h.current;if(x==null)return;const{size:C,paddingInset:g,borderInset:I}=i,[y,B]=C.value,[R,w,T,P]=g.value,[J,M,b,K]=I.value,ge=y-w-P-M-K,Y=B-R-T-J-b;E.value=CG(x,ge,Y)}),[i]),Ri(()=>{const x=c.value;if(x==null)return;const C=new iG(a(o.majorIndex,x),d,m,E,t,r,s);return()=>C.destroy()},[a,t,i,r,s,o.majorIndex]),f}const MG=["fontFamily","fontWeight"];function QG(n){const e=$.useMemo(()=>fn(void 0),[]),t=$.useContext(IG)??xG,i=cs(n,MG),r=wv(({gl:s})=>s);return Ri(()=>{const s=i.value;if(s==null)return;let o=s("fontWeight")??"normal";typeof o=="string"&&(o=Gy[o]);let a=s("fontFamily");a==null&&(a=Object.keys(t)[0]);const c=RG(t[a],o);let A=!1;return fG(c,r,h=>A?void 0:e.value=h),()=>A=!0},[t,r]),e}function RG(n,e){let t=1/0,i;for(const r in n){const s=Math.abs(e-TG(r));if(s===0)return n[r];sti(()=>{const o=e.value,a=r.value;if(o==null||a==null)return;const c=t.value,A=Array.isArray(c)?c.map(E=>Ly(E)).join(""):Ly(c),h=a("letterSpacing")??0,f=a("lineHeight")??1.2,d=a("fontSize")??16,m=a("wordBreak")??"break-word";return(E,x)=>{const C=x===Ui.MeasureMode.Undefined?void 0:E;return EG(i.current={font:o,fontSize:d,letterSpacing:h,lineHeight:f,text:A,wordBreak:m},C)}}),[e,r,i,t])}const Pc={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},rT=Object.keys(Pc),bG=rT.length,sT=$.createContext(null),NG=sT.Provider;function Sa(n,e,t){const i=t??$.useContext(sT),r=$.useMemo(()=>({sm:Wo(()=>i.value[0]>Pc.sm),md:Wo(()=>i.value[0]>Pc.md),lg:Wo(()=>i.value[0]>Pc.lg),xl:Wo(()=>i.value[0]>Pc.xl),"2xl":Wo(()=>i.value[0]>Pc["2xl"])}),[i]);Xh(e,s=>{for(let o=0;oe.createChild(n),[n,e]);return $.useEffect(()=>(e.addChild(t),()=>{e.removeChild(t),t.destroy()}),[e,t]),t}function PG(){let n=$.useRef(void 0);return ya(()=>{if(n.current==null)return;const e=n.current;n.current=void 0,e.calculateLayout()}),$.useCallback(e=>{n.current!=null||e.yogaNode==null||(n.current=e)},[])}const bv=oT.Provider,xs=new ln,tp=new G,UG=[new ln().setFromNormalAndCoplanarPoint(new G(1,0,0),new G(-.5,0,0)),new ln().setFromNormalAndCoplanarPoint(new G(-1,0,0),new G(.5,0,0)),new ln().setFromNormalAndCoplanarPoint(new G(0,1,0),new G(0,-.5,0)),new ln().setFromNormalAndCoplanarPoint(new G(0,-1,0),new G(0,.5,0))];function aT(n){return(e,t)=>{const i=n.matrixWorld;if(xs.constant=0,xs.normal.set(0,0,1),xs.applyMatrix4(i),xs.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(xs,tp)==null)return;const r=xs.normal.clone();for(let s=0;s<4;s++){const o=UG[s];if(xs.copy(o).applyMatrix4(i),xs.distanceToPoint(tp)<0)return}t.push({distance:tp.distanceTo(e.ray.origin),object:n,point:tp.clone(),normal:r})}}function Qu(n,e,t,i,r){return(s,o)=>{var f;const a=t.current;if(a==null)return;const c=o.length;e.call(n,s,o);const A=(f=i==null?void 0:i.value)==null?void 0:f.planes,h=a.matrixWorld;e:for(let d=o.length-1;d>=c;d--){const m=o[d];if(m.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,A!=null){for(let E=0;E<4;E++)if(xs.copy(A[E]).applyMatrix4(h),xs.distanceToPoint(m.point)<0){o.splice(d,1);continue e}}}}}function lT(n,e){for(;e>=n.length;){let t=0,i=0;if(n.length>0){const r=n[n.length-1];t+=r.offset+r.elements.length,i=Math.min(0,r.missingSpace),r.missingSpace-=i}n.push({add:[],missingSpace:i,offset:t,elements:[]})}}function FG(n,e,t){lT(n,0);const i=n[n.length-1];i.missingSpace+=e-t}function kG(n,e,t,i){lT(n,e);const r=n[e];return r.missingSpace+=1,r.missingSpace<=0?(i(t,r,r.elements.length),r.elements.push(t),!1):(r.add.push(t),!0)}function GG(n,e,t,i,r,s,o,a){if(e>=n.length)throw new Error(`no bucket at index ${e}`);const c=n[e];c.missingSpace-=1;const A=c.add.indexOf(t);if(A!=-1)return c.add.splice(A,1),!1;if(i==null||i>=c.elements.length)throw new Error(`no element at index ${i}`);if(c.add.length>0){const m=c.add.shift();return c.elements[i]=m,r(m,c,i),!1}const h=c.offset,f=c.elements.length-1;if(f!=i){const m=h+f,E=h+i;a(E,m,m+1);const x=c.elements[f];c.elements[i]=x,o(x,i)}if(s(h+f),c.elements.length-=1,e0;){const m=n[e-1];m.missingSpace+=d.missingSpace,d=n[--e]}return n.length=e+1,!1}function OG(n,e,t){let i=n.length,r=-1;for(let o=0;o0&&(r=o);const c=o===i-1;if(!c&&a.missingSpace===0)continue;const A=a.missingSpace<0;for(let h=o-1;h>=0;h--){const f=n[h];if(f.missingSpace===0)continue;const d=f.missingSpace<0;if(d&&(c||A)){vS(n,t,h,o,Math.abs(f.missingSpace));continue}if(!A&&!d)continue;const m=Math.min(Math.abs(f.missingSpace),Math.abs(a.missingSpace));A?HG(n,t,h,o,m):vS(n,t,h,o,m)}}const s=n[r];for(let o=r+1;oh>0)&&(i==null||i>0),[a,c]=e.value;return!(a>0&&c>0&&(r==null||r>0)&&s!=null)&&!o?!1:t==null?!0:!t.value}function wA(n,e,t,i,r){n[e]=zG(n[e],t,Nv(Math.ceil((i??0)/r*100),0,49))}const np=new Je,AT=new Je(-1,-1,-1),IS={backgroundColor:(n,e)=>(Array.isArray(e)?np.setRGB(...e):np.set(e??AT)).toArray(n,4),borderBottomLeftRadius:(n,e,t)=>wA(n,7,0,e,t.value[1]),borderBottomRightRadius:(n,e,t)=>wA(n,7,1,e,t.value[1]),borderTopRightRadius:(n,e,t)=>wA(n,7,2,e,t.value[1]),borderTopLeftRadius:(n,e,t)=>wA(n,7,3,e,t.value[1]),borderColor:(n,e)=>(Array.isArray(e)?np.setRGB(...e):np.set(e??16777215)).toArray(n,8),borderBend:(n,e)=>n[11]=e??0,borderOpacity:(n,e)=>n[12]=e??1,backgroundOpacity:(n,e)=>n[15]=e??-1},hT=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],VG=["borderOpacity","backgroundColor","backgroundOpacity"];class WG{constructor(e,t,i){We(this,"data",new Float32Array(16));We(this,"unsubscribeList",[]);We(this,"unsubscribe");We(this,"visible",!1);We(this,"materials",[]);We(this,"active",fn(!1));We(this,"getProperty",fn(void 0));this.size=e,this.size=e,this.unsubscribe=on(()=>{const r=this.getProperty.value,s=r!=null&&uT(t,e,i,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=s,!s){this.deactivate();return}this.activate(e,t)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return VG.includes(e)}hasImmediateProperty(e){return e in IS}setProperty(e,t){const i=IS[e];i(this.data,t,this.size)}activate(e,t){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(hT),this.unsubscribeList.push(on(()=>this.data.set(e.value,13)),on(()=>this.data.set(t.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let t=0;t{i.call(t,r,s),e.type==="normal"&&(r.uniforms.data={value:e.data}),JG(r,e.type==="instanced")},t}class dT extends Og{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),gT(e,this.info.type==="instanced")}}class pT extends Gg{constructor(e){super({depthPacking:X1}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),gT(e,this.info.type==="instanced")}}const YG=new pT({type:"instanced"}),XG=new dT({type:"instanced"});function gT(n,e){mT(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",`#include - ${ET(e,void 0)} - `)}function mT(n,e){n.vertexShader=n.vertexShader.replace("#include ",` #include + `)}}}const Wy=Symbol("camera-distance-key"),Yy=Symbol("order-info-key");function CG(n,e){if(n.groupOrder!==e.groupOrder)return n.groupOrder-e.groupOrder;if(n.renderOrder!==e.renderOrder)return n.renderOrder-e.renderOrder;const t=n.object[Wy],i=e.object[Wy];return t==null||i==null?n.z!==e.z?e.z-n.z:n.id-e.id:t===i?vG(n.object[Yy],e.object[Yy]):i.current-t.current}function yG(n){n.setTransparentSort(CG)}const Ai={Panel:0,Image:1,Object:2,Custom:3,Svg:4,Text:5};function vG(n,e){let t=n.majorIndex-e.majorIndex;return t!=0||(t=n.elementType-e.elementType,t!=0)?t:n.minorIndex-e.minorIndex}const pT=J.createContext(void 0),IG=pT.Provider;function bi(n,e,t,i){const r=i??J.useContext(pT),s=typeof e=="number"?e:(e==null?void 0:e.major)??0,o=typeof e=="number"?0:(e==null?void 0:e.minor)??0;return J.useMemo(()=>{let a,c;return r==null?(a=0,c=0):n>r.elementType?(a=r.majorIndex,c=0):n!=r.elementType||!xG(t,r.instancedGroupDependencies)?(a=r.majorIndex+1,c=0):(a=r.majorIndex,c=r.minorIndex+1),s>0&&(a+=s,c=0),c+=o,{instancedGroupDependencies:t,elementType:n,majorIndex:a,minorIndex:c}},[s,o,r,n,t])}function xG(n,e){if(n===e)return!0;if(n==null||e==null)return!1;let t=0;for(const i in n){if(n[i]!=e[i])return!1;++t}return t===Object.keys(e).length}function jl(n,e,t){return n[Wy]=e,n[Yy]=t,n}class BG extends Gr{constructor(t,i,r,s){super();We(this,"instanceMatrix");We(this,"instanceUV");We(this,"instanceRGBA");We(this,"instanceClipping");We(this,"glyphs",[]);We(this,"requestedGlyphs",[]);We(this,"holeIndicies",[]);We(this,"mesh");We(this,"material");We(this,"timeTillDecimate");this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.material=new EG(t)}requestActivate(t){const i=this.holeIndicies.shift();if(i!=null){this.glyphs[i]=t,t.activate(i);return}if(this.mesh==null||this.mesh.count>=this.instanceMatrix.count){this.requestedGlyphs.push(t);return}const r=this.mesh.count;this.glyphs[r]=t,t.activate(r),this.mesh.count+=1}delete(t){if(t.index==null){const s=this.requestedGlyphs.indexOf(t);if(s===-1)return;this.requestedGlyphs.splice(s,1);return}const i=this.requestedGlyphs.shift();if(i!=null){i.activate(t.index),this.glyphs[t.index]=i,t.index=void 0;return}if(t.index===this.glyphs.length-1){this.glyphs.length-=1,this.mesh.count-=1,t.index=void 0;return}const r=t.index*16;this.instanceMatrix.array.fill(0,r,r+16),this.instanceMatrix.addUpdateRange(r,16),this.instanceMatrix.needsUpdate=!0,this.holeIndicies.push(t.index),this.glyphs[t.index]=void 0,t.index=void 0}onFrame(t){var a;const i=this.glyphs.length-this.holeIndicies.length+this.requestedGlyphs.length;if(i===0){this.visible=!1;return}this.visible=!0;const r=((a=this.instanceMatrix)==null?void 0:a.count)??0;if(i0)&&i<=r)return;this.timeTillDecimate=void 0,this.resize(i);const s=this.mesh.count,o=this.requestedGlyphs.length;for(let c=0;cd-m);const A=this.holeIndicies.length;let h=0,f=0;for(;f0)for(let d=this.holeIndicies[0];d{for(const o of r)o(s);GE.set(n,s)}).catch(console.error)}async function wG(n,e){const t=await(await fetch(n)).json();if(t.pages.length!==1)throw new Error("only supporting exactly 1 page");const i=await _G.loadAsync(new URL(t.pages[0],n).href);return i.anisotropy=e.capabilities.getMaxAnisotropy(),i.flipY=!1,new AG(t,i)}const MG=({text:n,fontSize:e,font:t,letterSpacing:i},r,s,o)=>{s=kv(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let c=0,A=0;for(;sr)break;o.nonWhitespaceCharLength=s-a+1,o.nonWhitespaceWidth=c,o.whitespacesBetween=A}o.charLength=s-a},QG=({text:n,fontSize:e,font:t,letterSpacing:i},r,s,o)=>{s=kv(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let c=0,A=0;for(;s{s=kv(n,s);const a=s;o.charIndexOffset=a,o.nonWhitespaceCharLength=0,o.charLength=0,o.nonWhitespaceWidth=0,o.whitespacesBetween=0;let c=0,A=0;for(;s0&&r!=null&&c>r)break;const f=n[s+1];(f===" "||f===` +`||f==null)&&(o.charLength=s-a+1,o.nonWhitespaceCharLength=o.charLength,o.nonWhitespaceWidth=c,o.whitespacesBetween=A)}};function kv(n,e){const t=n.length;for(;n[e]===" "&&enew Map,[]),r=J.useCallback((s,o)=>{let a=i.get(o);a==null&&i.set(o,a=new Map);let c=a==null?void 0:a.get(s);return c==null&&(a.set(s,c=new BG(o,n,e,{majorIndex:s,elementType:Ai.Text,minorIndex:0})),t.add(c)),c},[n,e,t]);return Na((s,o)=>{for(const a of i.values())for(const c of a.values())c.onFrame(o)}),r}const LG=J.createContext(null),PG={inter:{light:"https://pmndrs.github.io/uikit/fonts/inter-light.json",normal:"https://pmndrs.github.io/uikit/fonts/inter-normal.json",medium:"https://pmndrs.github.io/uikit/fonts/inter-medium.json","semi-bold":"https://pmndrs.github.io/uikit/fonts/inter-semi-bold.json",bold:"https://pmndrs.github.io/uikit/fonts/inter-bold.json"}},Xy={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900,"extra-black":950},UG=["horizontalAlign","verticalAlign"],FG=["color","opacity"],kG=["fontSize","letterSpacing","lineHeight","wordBreak"];function ET(n,e,t,i,r,s,o,a,c,A,h){const f=bi(Ai.Text,void 0,void 0,o),d=J.useContext(mT);if(d==null)throw new Error("Can only be used inside a component.");const m=OG(n),E=J.useMemo(()=>Gt(e),[]);E.value=e;const x=J.useRef(void 0),C=VG(n,m,E,x),p=As(n,UG),I=As(n,FG),y=J.useMemo(()=>Gt(void 0),[]);return J.useEffect(()=>i.addLayoutChangeListener(()=>{const B=x.current;if(B==null)return;const{size:R,paddingInset:M,borderInset:T}=i,[P,K]=R.value,[w,b,q,de]=M.value,[Y,ie,te,ue]=T.value,U=P-b-de-ie-ue,$=K-w-q-Y-te;y.value=DG(B,U,$)}),[i]),mi(()=>{const B=m.value;if(B==null)return;const R=new gG(d(f.majorIndex,B),p,I,y,t,r,s,a,c,A);return h!=null&&(h.current=R),()=>R.destroy()},[d,t,i,r,s,f.majorIndex,c,h]),C}const GG=["fontFamily","fontWeight"];function OG(n){const e=J.useMemo(()=>Gt(void 0),[]),t=J.useContext(LG)??PG,i=As(n,GG),r=Nv(({gl:s})=>s);return mi(()=>{const s=i.value;if(s==null)return;let o=s("fontWeight")??"normal";typeof o=="string"&&(o=Xy[o]);let a=s("fontFamily");a==null&&(a=Object.keys(t)[0]);const c=HG(t[a],o);let A=!1;return SG(c,r,h=>A?void 0:e.value=h),()=>A=!0},[t,r]),e}function HG(n,e){let t=1/0,i;for(const r in n){const s=Math.abs(e-zG(r));if(s===0)return n[r];szn(()=>{const o=e.value,a=r.value;if(o==null||a==null)return;const c=t.value,A={font:o,fontSize:a("fontSize")??16,letterSpacing:a("letterSpacing")??0,lineHeight:a("lineHeight")??1.2,text:Array.isArray(c)?c.map(h=>Cg(h)).join(""):Cg(c),wordBreak:a("wordBreak")??"break-word"};return i.current=A,(h,f)=>TG(A,f===ki.MeasureMode.Undefined?void 0:h)}),[e,r,i,t])}const kc={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},CT=Object.keys(kc),WG=CT.length,yT=J.createContext(void 0),YG=yT.Provider;function Bo(n,e,t){const i=t??J.useContext(yT);if(i==null)throw new Error("Can only be used inside a component.");const r=J.useMemo(()=>({sm:so(()=>i.value[0]>kc.sm),md:so(()=>i.value[0]>kc.md),lg:so(()=>i.value[0]>kc.lg),xl:so(()=>i.value[0]>kc.xl),"2xl":so(()=>i.value[0]>kc["2xl"])}),[i]);Tu(e,s=>{for(let o=0;oe.createChild(n),[n,e]);return J.useEffect(()=>(e.addChild(t),()=>{e.removeChild(t),t.destroy()}),[e,t]),t}function JG(){let n=J.useRef(void 0);return Na(()=>{if(n.current==null)return;const e=n.current;n.current=void 0,e.calculateLayout()}),J.useCallback(e=>{n.current!=null||e.yogaNode==null||(n.current=e)},[])}const Gv=vT.Provider,_s=new cn,op=new G,KG=[new cn().setFromNormalAndCoplanarPoint(new G(1,0,0),new G(-.5,0,0)),new cn().setFromNormalAndCoplanarPoint(new G(-1,0,0),new G(.5,0,0)),new cn().setFromNormalAndCoplanarPoint(new G(0,1,0),new G(0,-.5,0)),new cn().setFromNormalAndCoplanarPoint(new G(0,-1,0),new G(0,.5,0))],Al=[0,0,0,0];function IT(n){return(e,t)=>{const i=n.matrixWorld;if(_s.constant=0,_s.normal.set(0,0,1),_s.applyMatrix4(i),_s.distanceToPoint(e.ray.origin)<=0||e.ray.intersectPlane(_s,op)==null)return;const r=_s.normal.clone();for(let s=0;s<4;s++){const o=KG[s];if(_s.copy(o).applyMatrix4(i),(Al[s]=_s.distanceToPoint(op))<0)return}t.push({distance:op.distanceTo(e.ray.origin),object:n,point:op.clone(),uv:new _e(Al[0]/(Al[0]+Al[1]),Al[3]/(Al[2]+Al[3])),normal:r})}}function bu(n,e,t,i,r){return(s,o)=>{var f;const a=t.current;if(a==null)return;const c=o.length;e.call(n,s,o);const A=(f=i==null?void 0:i.value)==null?void 0:f.planes,h=a.matrixWorld;e:for(let d=o.length-1;d>=c;d--){const m=o[d];if(m.distance-=r.majorIndex*.01+r.elementType*.001+r.minorIndex*1e-5,A!=null){for(let E=0;E<4;E++)if(_s.copy(A[E]).applyMatrix4(h),_s.distanceToPoint(m.point)<0){o.splice(d,1);continue e}}}}}function xT(n,e){for(;e>=n.length;){let t=0,i=0;if(n.length>0){const r=n[n.length-1];t+=r.offset+r.elements.length,i=Math.min(0,r.missingSpace),r.missingSpace-=i}n.push({add:[],missingSpace:i,offset:t,elements:[]})}}function qG(n,e,t){xT(n,0);const i=n[n.length-1];i.missingSpace+=e-t}function jG(n,e,t,i){xT(n,e);const r=n[e];return r.missingSpace+=1,r.missingSpace<=0?(i(t,r,r.elements.length),r.elements.push(t),!1):(r.add.push(t),!0)}function ZG(n,e,t,i,r,s,o,a){if(e>=n.length)throw new Error(`no bucket at index ${e}`);const c=n[e];c.missingSpace-=1;const A=c.add.indexOf(t);if(A!=-1)return c.add.splice(A,1),!1;if(i==null||i>=c.elements.length)throw new Error(`no element at index ${i}`);if(c.add.length>0){const m=c.add.shift();return c.elements[i]=m,r(m,c,i),!1}const h=c.offset,f=c.elements.length-1;if(f!=i){const m=h+f,E=h+i;a(E,m,m+1);const x=c.elements[f];c.elements[i]=x,o(x,i)}if(s(h+f),c.elements.length-=1,e0;){const m=n[e-1];m.missingSpace+=d.missingSpace,d=n[--e]}return n.length=e+1,!1}function $G(n,e,t){let i=n.length,r=-1;for(let o=0;o0&&(r=o);const c=o===i-1;if(!c&&a.missingSpace===0)continue;const A=a.missingSpace<0;for(let h=o-1;h>=0;h--){const f=n[h];if(f.missingSpace===0)continue;const d=f.missingSpace<0;if(d&&(c||A)){DS(n,t,h,o,Math.abs(f.missingSpace));continue}if(!A&&!d)continue;const m=Math.min(Math.abs(f.missingSpace),Math.abs(a.missingSpace));A?eO(n,t,h,o,m):DS(n,t,h,o,m)}}const s=n[r];for(let o=r+1;oh>0)&&(i==null||i>0),[a,c]=e.value;return!(a>0&&c>0&&(r==null||r>0)&&s!=null)&&!o?!1:t==null?!0:!t.value}function QA(n,e,t,i,r){n[e]=tO(n[e],t,Ov(Math.ceil((i??0)/r*100),0,49))}const ap=new Je,ST=new Je(-1,-1,-1),bS={backgroundColor:(n,e)=>(Array.isArray(e)?ap.setRGB(...e):ap.set(e??ST)).toArray(n,4),borderBottomLeftRadius:(n,e,t)=>QA(n,7,0,e,t.value[1]),borderBottomRightRadius:(n,e,t)=>QA(n,7,1,e,t.value[1]),borderTopRightRadius:(n,e,t)=>QA(n,7,2,e,t.value[1]),borderTopLeftRadius:(n,e,t)=>QA(n,7,3,e,t.value[1]),borderColor:(n,e)=>(Array.isArray(e)?ap.setRGB(...e):ap.set(e??16777215)).toArray(n,8),borderBend:(n,e)=>n[11]=e??0,borderOpacity:(n,e)=>n[12]=e??1,backgroundOpacity:(n,e)=>n[15]=e??-1},wT=[0,0,0,0,-1,-1,-1,0,1,1,1,0,1,1,1,-1],nO=["borderOpacity","backgroundColor","backgroundOpacity"];class iO{constructor(e,t,i){We(this,"data",new Float32Array(16));We(this,"unsubscribeList",[]);We(this,"unsubscribe");We(this,"visible",!1);We(this,"materials",[]);We(this,"active",Gt(!1));We(this,"getProperty",Gt(void 0));this.size=e,this.size=e,this.unsubscribe=Xt(()=>{const r=this.getProperty.value,s=r!=null&&_T(t,e,i,r("borderOpacity"),r("backgroundOpacity"),r("backgroundColor"));if(this.active.value=s,!s){this.deactivate();return}this.activate(e,t)})}addMaterial(e){e.visible=this.visible,this.materials.push(e)}hasBatchedProperty(e){return nO.includes(e)}hasImmediateProperty(e){return e in bS}setProperty(e,t){const i=bS[e];i(this.data,t,this.size)}activate(e,t){this.visible||(this.visible=!0,this.syncVisible(),this.data.set(wT),this.unsubscribeList.push(Xt(()=>this.data.set(e.value,13)),Xt(()=>this.data.set(t.value,0))))}deactivate(){if(!this.visible)return;this.visible=!1,this.syncVisible();const e=this.unsubscribeList.length;for(let t=0;t{i.call(t,r,s),e.type==="normal"&&(r.uniforms.data={value:e.data}),oO(r,e.type==="instanced")},t}class QT extends Yg{constructor(e){super(),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),TT(e,this.info.type==="instanced")}}class RT extends Wg{constructor(e){super({depthPacking:ev}),this.info=e,this.defines==null&&(this.defines={}),this.defines.USE_UV="",this.clipShadows=!0}onBeforeCompile(e,t){super.onBeforeCompile(e,t),this.info.type==="normal"&&(e.uniforms.data={value:this.info.data}),TT(e,this.info.type==="instanced")}}const rO=new RT({type:"instanced"}),sO=new QT({type:"instanced"});function TT(n,e){DT(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",`#include + ${bT(e,void 0)} + `)}function DT(n,e){n.vertexShader=n.vertexShader.replace("#include ",` #include out vec4 borderRadius; ${e?"":"uniform highp mat4 data;"}`),n.vertexShader=n.vertexShader.replace("#include ",` #include highp int packedBorderRadius = int(data[1].w); @@ -4018,7 +4019,7 @@ No matching component was found for: borderWeight = normalize(insideBorder); } - #include `)}function ET(n,e){return`float ddx = fwidth(distance.x); + #include `)}function bT(n,e){return`float ddx = fwidth(distance.x); float outer = smoothstep(-ddx, ddx, distance.x); float ddy = fwidth(distance.y); @@ -4041,8 +4042,8 @@ No matching component was found for: if(outOpacity < 0.01) { discard; - }`}function JG(n,e){mT(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",` #include - ${ET(e,"diffuseColor.a")} + }`}function oO(n,e){DT(n,e),n.fragmentShader=n.fragmentShader.replace("#include ",` #include + ${bT(e,"diffuseColor.a")} diffuseColor.rgb = mix(borderColor, diffuseColor.rgb * backgroundColor, transition); diffuseColor.a = outOpacity; `),n.fragmentShader=n.fragmentShader.replace("#include ",` #include @@ -4053,4 +4054,4 @@ No matching component was found for: float outsideNormalWeight = currentBorderSize < 0.00001 ? 0.0 : max(0.0, -distance.y / currentBorderSize) * borderBend; vec3 outsideNormal = (borderWeight * transpose(directions)).xyz; normal = normalize(outsideNormalWeight * outsideNormal + (1.0 - outsideNormalWeight) * normal); - `)}class KG extends en{constructor(t,i,r){const s=cT();super(s);We(this,"count",0);We(this,"isInstancedMesh",!0);We(this,"instanceColor",null);We(this,"morphTexture",null);We(this,"boundingBox",new ei);We(this,"boundingSphere",new ui);this.instanceMatrix=t,this.frustumCulled=!1,s.attributes.aData=i,s.attributes.aClipping=r,this.customDepthMaterial=YG,this.customDistanceMaterial=XG}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class qG extends Gr{constructor(t,i,r,s,o,a){super();We(this,"mesh");We(this,"instanceMatrix");We(this,"instanceData");We(this,"instanceClipping");We(this,"buckets",[]);We(this,"elementCount",0);We(this,"bufferElementSize",0);We(this,"timeToNextUpdate");We(this,"activateElement",(t,i,r)=>{const s=i.offset+r;this.instanceData.set(hT,16*s),this.instanceData.addUpdateRange(16*s,16),this.instanceData.needsUpdate=!0,t.activate(i,r)});We(this,"setElementIndex",(t,i)=>{t.setIndexInBucket(i)});We(this,"bufferCopyWithin",(t,i,r)=>{bE(this.instanceMatrix,t,i,r),bE(this.instanceData,t,i,r),bE(this.instanceClipping,t,i,r)});We(this,"clearBufferAt",t=>{const i=t*16;this.instanceMatrix.array.fill(0,i,i+16),this.instanceMatrix.addUpdateRange(i,16),this.instanceMatrix.needsUpdate=!0});this.material=t,this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.meshReceiveShadow=o,this.meshCastShadow=a}updateCount(){const t=this.buckets[this.buckets.length-1],i=t.offset+t.elements.length;this.mesh!=null&&(this.mesh.count=i),this.visible=i>0}insert(t,i){if(this.elementCount+=1,!kG(this.buckets,t,i,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(t,i,r){if(this.elementCount-=1,!GG(this.buckets,t,r,i,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(t){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=t,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(t){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,t)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),OG(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const t=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),FG(this.buckets,t,this.bufferElementSize);const i=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&i.set(this.instanceMatrix.array.subarray(0,i.length)),this.instanceMatrix=new yr(i,16,!1),this.instanceMatrix.setUsage(Jo);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new yr(r,16,!1),this.instanceData.setUsage(Jo);const s=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&s.set(this.instanceClipping.array.subarray(0,s.length)),this.instanceClipping=new yr(s,16,!1),this.instanceClipping.setUsage(Jo),this.mesh=new KG(this.instanceMatrix,this.instanceData,this.instanceClipping),Vl(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function bE(n,e,t,i){const r=n.itemSize,s=t*r,o=i*r,a=e*r;n.array.copyWithin(a,s,o);const c=o-s;n.addUpdateRange(s,c),n.addUpdateRange(a,c),n.needsUpdate=!0}const xS={backgroundColor:(n,e,t)=>Ny(n.instanceData,e,t??AT,4),borderBottomLeftRadius:(n,e,t,{value:i})=>rp(n.instanceData,e,7,0,t,i[1]),borderBottomRightRadius:(n,e,t,{value:i})=>rp(n.instanceData,e,7,1,t,i[1]),borderTopRightRadius:(n,e,t,{value:i})=>rp(n.instanceData,e,7,2,t,i[1]),borderTopLeftRadius:(n,e,t,{value:i})=>rp(n.instanceData,e,7,3,t,i[1]),borderColor:(n,e,t)=>Ny(n.instanceData,e,t??16777215,8),borderBend:(n,e,t)=>NE(n.instanceData,e,11,t??0),borderOpacity:(n,e,t)=>NE(n.instanceData,e,12,t??1),backgroundOpacity:(n,e,t)=>NE(n.instanceData,e,15,t??-1)},jG=["borderOpacity","backgroundColor","backgroundOpacity"],ip=new ft,ZG=new ft;class $G{constructor(e,t,i,r,s,o,a,c){We(this,"indexInBucket");We(this,"bucket");We(this,"unsubscribeList",[]);We(this,"unsubscribeVisible");We(this,"destroyed",!1);We(this,"insertedIntoGroup",!1);We(this,"active",fn(!1));We(this,"getProperty",fn(void 0));this.group=e,this.matrix=t,this.size=i,this.offset=r,this.borderInset=s,this.clippingRect=o,this.minorIndex=c,this.unsubscribeVisible=on(()=>{const A=this.getProperty.value;if(A!=null&&uT(s,i,a,A("borderOpacity"),A("backgroundOpacity"),A("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return jG.includes(e)}hasImmediateProperty(e){return e in xS}setProperty(e,t){const i=this.getIndexInBuffer();i!=null&&xS[e](this.group,i,t,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,t){this.bucket=e,this.indexInBucket=t,this.active.value=!0,this.unsubscribeList.push(on(()=>{const i=this.matrix.value;if(i==null)return;const{instanceMatrix:r,pixelSize:s}=this.group,o=this.getIndexInBuffer();if(o==null)return;const a=o*16,[c,A]=this.size.value;if(ip.makeScale(c*s,A*s,1),this.offset!=null){const[h,f]=this.offset.value;ip.premultiply(ZG.makeTranslation(h*s,f*s,0))}ip.premultiply(i),ip.toArray(r.array,a),r.addUpdateRange(a,16),r.needsUpdate=!0}),on(()=>{const[i,r]=this.size.value,{instanceData:s}=this.group,{array:o}=s,a=this.getIndexInBuffer();if(a==null)return;const c=a*16+13;o[c]=i,o[c+1]=r,s.addUpdateRange(c,2),s.needsUpdate=!0}),on(()=>{const{instanceData:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16+0;i.array.set(this.borderInset.value,s),i.addUpdateRange(s,4),i.needsUpdate=!0}),on(()=>{var a;const{instanceClipping:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16,o=(a=this.clippingRect)==null?void 0:a.value;o!=null?o.toArray(i.array,s):i.array.set(dg,s),i.addUpdateRange(s,16),i.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let t=0;te.hasImmediateProperty.bind(e),[e]),a=$.useCallback(c=>{if(!i.current){r.current=c;return}BS(c,r.current,s.current,e),r.current=c},[e]);Ri(()=>{if(i.current=e.active.value,!i.current){_S(s.current),s.current={};return}return BS(r.current,eO,s.current,e),()=>{_S(s.current),s.current={}}},[e]),zR(n,o,a,t)}function BS(n,e,t,i){var r,s;for(const o in n){const a=n[o];if(o in e){const c=e[o];if(delete e[o],VR(a,c))continue;(r=t[o])==null||r.call(t)}t[o]=on(()=>{const c=Qy(a);i.setProperty(o,c)})}for(const o in e)(s=t[o])==null||s.call(t),delete t[o],Qy(e[o])!==void 0&&i.setProperty(o,void 0)}function _S(n){for(const e in n)n[e]()}function wa({handlers:n,hoverHandlers:e,activeHandlers:t,matrix:i,children:r,groupRef:s}){return $.useEffect(()=>{const o=s.current;if(o!=null)return on(()=>i.value!=null&&o.matrix.copy(i.value))},[s,i]),se.jsx("group",{ref:s,onPointerOut:EA(n.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:EA(n.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:EA(n.onPointerUp,t==null?void 0:t.onPointerUp),onPointerDown:EA(n.onPointerDown,t==null?void 0:t.onPointerDown),onPointerLeave:EA(n.onPointerLeave,t==null?void 0:t.onPointerLeave),onPointerMove:n.onPointerMove,onWheel:n.onWheel,onClick:n.onClick,onContextMenu:n.onContextMenu,onDoubleClick:n.onDoubleClick,onPointerCancel:n.onPointerCancel,onPointerEnter:n.onPointerEnter,onPointerMissed:n.onPointerMissed,matrixAutoUpdate:!1,children:r})}function EA(n,e){return n==null?e:e==null?n:t=>{e(t),!t.stopped&&n(t)}}function Ru(n,e,t,i){const r=mo(),s=$.useMemo(()=>{const o=new en(Lv);return o.matrixAutoUpdate=!1,o.raycast=Qu(o,aT(o),i,r,t),o.visible=!1,o},[r,t,i]);return Ri(()=>{const[o,a]=n.value;s.scale.set(o*e.pixelSize,a*e.pixelSize,1),s.updateMatrix()},[n,e]),s}const CT=$.createContext(null);function tO(n,e,t,i,r,s,o){const{materials:a,setter:c}=$.useMemo(()=>{const A=new WG(e,t,i),h={data:A.data,type:"normal"},f=fT(r??sr,h),d=new pT(h),m=new dT(h);return f.clippingPlanes=s,d.clippingPlanes=s,m.clippingPlanes=s,{materials:[f,d,m],setter:A}},[e,t,i,r,s]);return Ps(n,c,o),Rv(n,c,o),$.useEffect(()=>()=>c.destroy(),[c]),a}function Yl(n=sr,{castShadow:e=!1,receiveShadow:t=!1}){return $.useMemo(()=>({materialClass:n,castShadow:e,receiveShadow:t}),[n,e,t])}function Xl(n,e,t,i,r,s,o,a,c,A,h){const f=h??$.useContext(CT),d=$.useMemo(()=>new $G(f(o.majorIndex,c),e,t,i,r,a,s,o.minorIndex),[f,e,t,r,a,s,o,i,c]);$.useEffect(()=>()=>d.destroy(),[d]),Ps(n,d,A),Rv(n,d,A)}function nO(n,e,t){const i=$.useMemo(()=>new Map,[]),r=$.useCallback((s,{materialClass:o,receiveShadow:a,castShadow:c})=>{let A=i.get(o);A==null&&i.set(o,A=new Map);const h=(s<<2)+((a?1:0)<<1)+(c?1:0);let f=A.get(h);if(f==null){const d=fT(o,{type:"instanced"});A.set(h,f=new qG(d,n,e,{elementType:Vi.Panel,majorIndex:s,minorIndex:0},a,c)),t.add(f)}return f},[n,i,e,t]);return ya((s,o)=>{for(const a of i.values())for(const c of a.values())c.onFrame(o)}),r}const iO=CT.Provider,Oy=[],Lp=[];function rO(n,e){Oy.push(n),Lp.push(e),document.body.style.cursor=e}function SS(n){const e=Oy.indexOf(n);e!=-1&&(Oy.splice(e,1),Lp.splice(e,1),document.body.style.cursor=Lp[Lp.length-1]??"default")}function Ma(n,e){const t=$.useMemo(()=>fn([]),[]),i=$.useMemo(()=>Wo(()=>t.value.length>0),[]);let r=!1;if(Xh(e,s=>{s.hover!=null&&(r=!0,i(n,s.hover))}),$.useEffect(()=>()=>SS(t),[]),!r&&e.onHoverChange==null&&e.cursor==null){t.value.length=0;return}return{onPointerOver:s=>{t.value=[s.pointerId,...t.value],e.onHoverChange!=null&&t.value.length===1&&e.onHoverChange(!0),e.cursor!=null&&rO(t,e.cursor)},onPointerOut:s=>{t.value=t.value.filter(o=>o!=s.pointerId),e.onHoverChange!=null&&t.value.length===0&&e.onHoverChange(!1),SS(t)}}}function um(n){return(e,t,i,r)=>{if(i(e)){r(e,t);return}const s=n[e];if(s==null)return;const o=s.length;if(i(s[0]))for(let a=0;afn([0,0]),[])}function uO(n,e,t){return $.useMemo(()=>ti(()=>{const i=t.value;if(i==null)return;const[r,s]=n.value,{pixelSize:o}=e;return new ft().makeTranslation(-r*o,s*o,0).premultiply(i)}),[n,e,t])}function AO({node:n,scrollPosition:e,children:t}){const i=$.useRef(null);return $.useEffect(()=>on(()=>{var a,c;const[r,s]=e.value,{pixelSize:o}=n;(a=i.current)==null||a.position.set(-r*o,s*o,0),(c=i.current)==null||c.updateMatrix()}),[n,e]),se.jsx("group",{ref:i,children:t})}function qh({listeners:n,node:e,scrollPosition:t,children:i}){const[r,s]=$.useState(()=>e.scrollable.value.some(f=>f));Ri(()=>s(e.scrollable.value.some(f=>f)),[e]);const o=$.useRef(n.onScroll);o.current=n.onScroll;const a=$.useMemo(()=>new Map,[]),c=$.useMemo(()=>new _e,[]),A=$.useCallback((f,d,m,E,x)=>{var b,K;const[C,g]=f==null?[!1,!1]:hO(f.nativeEvent);C&&(d=0),g&&(m=0);const[I,y]=t.value,[B,R]=e.maxScrollPosition.value;let[w,T]=t.value;const[P,J]=((b=e.anyAncestorScrollable)==null?void 0:b.value)??[!1,!1];w=wS(I,B,d,x&&!P),T=wS(y,R,m,x&&!J),E!=null&&E>0&&c.set(d,m).divideScalar(E),f!=null&&fO(f.nativeEvent,C||Math.min(I,(B??0)-I)>5,g||Math.min(y,(R??0)-y)>5),!(((K=o.current)==null?void 0:K.call(o,w,T,t,f))===!1||I===w&&y===T)&&(t.value=[w,T])},[e,t,c]);ya((f,d)=>{if(a.size>0)return;let m=0,E=0;const[x,C]=t.value,[g,I]=e.maxScrollPosition.value;m+=Hy(x,0,g??0)*-.3,E+=Hy(C,0,I??0)*-.3,m+=c.x*d,E+=c.y*d,c.multiplyScalar(.9),Math.abs(c.x)<.01&&(c.x=0),Math.abs(c.y)<.01&&(c.y=0),!(m===0&&E===0)&&A(void 0,m,E,void 0,!0)});const h=$.useRef(null);return r?se.jsx("group",{ref:h,matrixAutoUpdate:!1,onPointerDown:f=>{let d=a.get(f.pointerId);d==null&&a.set(f.pointerId,d={timestamp:0,point:new G}),d.timestamp=performance.now()/1e3,h.current.worldToLocal(d.point.copy(f.point))},onPointerUp:f=>{a.delete(f.pointerId)},onPointerLeave:f=>{a.delete(f.pointerId)},onPointerCancel:f=>{a.delete(f.pointerId)},onContextMenu:f=>f.nativeEvent.preventDefault(),onPointerMove:f=>{const d=a.get(f.pointerId);if(d==null)return;h.current.worldToLocal(PE.copy(f.point)),LE.copy(PE).sub(d.point).divideScalar(e.pixelSize);const m=performance.now()/1e3,E=m-d.timestamp;d.point.copy(PE),d.timestamp=m,!f.defaultPrevented&&A(f,-LE.x,LE.y,E,!0)},onWheel:f=>{f.defaultPrevented||A(f,f.deltaX,f.deltaY,void 0,!1)},children:i}):se.jsx("group",{matrixAutoUpdate:!1,children:i})}const vT=Symbol("was-scrolled");function hO(n){return n[vT]??[!1,!1]}function fO(n,e,t){n[vT]=[e,t]}function wS(n,e,t,i){if(t===0)return n;const r=Hy(n,0,e??0);MS(t)===MS(r)&&(t*=Math.max(0,1-Math.abs(r)/100));let s=n+t;return i&&e!=null?s:Nv(s,0,e??0)}function MS(n){return n>=0}function Hy(n,e,t){return nt?n-t:0}const QS=9;function IT(n){return n[QS].toLowerCase()+n.slice(QS+1)}const dO=(n,e,t,i)=>{if(n.startsWith("scrollbarBorder")){if(n=IT(n),t(n)){i(n,e);return}sO(n,e,t,i)}},pO=(n,e,t,i)=>{if(n.startsWith("scrollbar")){if(n==="scrollbarOpacity"){i("backgroundOpacity",e);return}if(n==="scrollbarColor"){i("backgroundColor",e);return}if(n=IT(n),t(n)){i(n,e);return}Ra(n,e,t,i)}};function jh(n,e,t,i,r,s,o,a,c){const A=Yl(s,{castShadow:!1,receiveShadow:!1}),h=Br(Vi.Panel,void 0,A,a),f=cs(n,gO),d=cs(n,mO,dO),m=$.useMemo(()=>ti(()=>{const C=d.value;return[(C==null?void 0:C("scrollbarBorderTop"))??0,(C==null?void 0:C("scrollbarBorderRight"))??0,(C==null?void 0:C("scrollbarBorderBottom"))??0,(C==null?void 0:C("scrollbarBorderLeft"))??0]}),[d]),E=n.length;RS(n,0,e,t,i,r,s,o,h,c,f,m),RS(n,1,e,t,i,r,s,o,h,c,f,m);const x=n.length;for(let C=E;C{const x=ti(()=>{const C=h.value;if(C!=null)return EO(e,C("scrollbarWidth")??10,i.size.value,i.maxScrollPosition.value,i.borderInset.value,t.value)});return[ti(()=>{var C;return((C=x.value)==null?void 0:C.slice(0,2))??[0,0]}),ti(()=>{var C;return((C=x.value)==null?void 0:C.slice(2,4))??[0,0]})]},[e,i,t,h]),E=$.useMemo(()=>({materialClass:o??sr,receiveShadow:!1,castShadow:!1}),[o]);Xl(n,r,m,d,f,s,c,a,E,pO,A)}function EO(n,e,t,i,r,s){const o=[0,0,0,0],a=i[n];if(a==null)return o;const c=1-n,A=t[n]-r[c]-r[c+2],h=Math.max(e,A*A/(a+A)),f=A-h,d=s[n];return o[n]=t[n]*.5-h*.5-r[(n+3)%4]-f*Nv(d/a,0,1),o[c]=t[c]*.5-e*.5-r[c+1],n===0&&(o[0]*=-1,o[1]*=-1),o[n+2]=h,o[c+2]=e,o}function Ta(n,e,t,i){$.useImperativeHandle(n,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:t instanceof en?t:t.current,scrollPosition:i}),[t,e,i])}function Da({onSizeChange:n},e){const t=$.useMemo(()=>{if(n==null)return;let i=!0;return on(()=>{const r=e.value;if(i){i=!1;return}n(...r)})},[n,e]);$.useEffect(()=>t,[t])}function Jl({onIsInViewportChange:n},e){const t=$.useMemo(()=>{if(n==null)return;let i=!0;return on(()=>{const r=!e.value;if(i){i=!1;return}n(r)})},[e,n]);$.useEffect(()=>t,[t])}function Kl(n){const e=$.useContext(xT);return $.useMemo(()=>ti(()=>{const t=n.value,i=e.value;if(!(t==null||i==null))return i.clone().multiply(t)}),[n,e])}const xT=$.createContext(null),CO=xT.Provider;function Zh({globalMatrix:n,node:e,scrollPosition:t,children:i,orderInfo:r}){const s=mo(),o=K5(n,e.size,e.borderInset,e.overflow,e,s),a=uO(t,e,n);return se.jsx(AO,{node:e,scrollPosition:t,children:se.jsx(CO,{value:a,children:se.jsx(bv,{value:e,children:se.jsx(X5,{value:o,children:se.jsx(cG,{value:r,children:i})})})})})}const BT="transformTranslateX",_T="transformTranslateY",ST="transformTranslateZ",wT="transformRotateX",MT="transformRotateY",QT="transformRotateZ",RT="transformScaleX",TT="transformScaleY",DT="transformScaleZ",yO=[BT,_T,ST,wT,MT,QT,RT,TT,DT],vO=new G,IO=new G,sp=new G,UE=new ft,xO=new xu,BO=new zi,FE=Math.PI/180;function _O([n,e,t]){return BO.setFromEuler(xO.set(n*FE,e*FE,t*FE))}function ba(n,e){const t=cs(n,yO,cO);return $.useMemo(()=>ti(()=>{const i=t.value;if(i==null)return;const{pixelSize:r,relativeCenter:s}=e,[o,a]=s.value,c=new ft().makeTranslation(o*r,a*r,0),A=i("transformOriginX")??"center",h=i("transformOriginY")??"center";let f=!0;if(A!="center"||h!="center"){const[x,C]=e.size.value;f=!1,sp.set(-XR[A]*x*r,-JR[h]*C*r,0),c.multiply(UE.makeTranslation(sp)),sp.negate()}const d=[i(wT)??0,i(MT)??0,i(QT)??0],m=[i(BT)??0,-(i(_T)??0),i(ST)??0],E=[i(RT)??1,i(TT)??1,i(DT)??1];return(m.some(x=>x!=0)||d.some(x=>x!=0)||E.some(x=>x!=1))&&c.multiply(UE.compose(vO.fromArray(m).multiplyScalar(r),_O(d),IO.fromArray(E))),f||c.multiply(UE.makeTranslation(sp)),c}),[t,e])}function Na(n,e){const t=$.useMemo(()=>fn([]),[]),i=$.useMemo(()=>Wo(()=>t.value.length>0),[]);let r=!1;if(Xh(e,o=>{o.active!=null&&(r=!0,i(n,o.active))}),!r&&e.onActiveChange==null){t.value.length=0;return}const s=o=>{t.value=t.value.filter(a=>a!=o.pointerId),!(e.onActiveChange==null||t.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{t.value=[o.pointerId,...t.value],!(e.onActiveChange==null||t.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:s,onPointerLeave:s}}$.forwardRef((n,e)=>{const t=Ia(),i=$.useRef(null),r=Wl(i);Ps(t,r,Qa);const s=ba(t,r),o=Kl(s),a=mo(),c=zl(a,o,r.size,r);Da(n,r.size),Jl(n,c);const A=Yl(n.panelMaterialClass,n),h=Br(Vi.Panel,n.zIndexOffset,A);Xl(t,o,r.size,void 0,r.borderInset,c,h,a,A,Ra);const f=$.useRef(null),d=Hl(),m=Br(Vi.Object,void 0,void 0,h),E=MO(t,f,d,r.cameraDistance,a,m);Ba(t,n),_a(t,n),Sa(t,n);const x=Ma(t,n),C=Na(t,n),g=$.useMemo(()=>ti(()=>{const[B,R]=E.value;return B/R}),[E]);(n.keepAspectRatio??!0)&&Ds(t,"aspectRatio",g),xa(t);const I=$.useRef(null);$.useEffect(()=>on(()=>{const[B,R]=r.size.value,[w,T,P,J]=r.paddingInset.value,[M,b,K,ge]=r.borderInset.value,Y=w+M,ce=T+b,re=P+K,fe=J+ge,U=B-fe-ce,Z=R-Y-re,{pixelSize:ee}=r,{current:ue}=I;ue==null||ue.position.set((fe-ce)*.5*ee,(re-Y)*.5*ee,0);const[,ye,ke]=E.value;ue==null||ue.scale.set(U*ee,Z*ee,n.keepAspectRatio?Z*ee*ke/ye:ke),ue==null||ue.updateMatrix()}),[r,n.keepAspectRatio,E]);const y=Ru(r.size,r,h,d);return Ta(e,r,y),se.jsxs(wa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:x,activeHandlers:C,children:[se.jsx("primitive",{object:y}),se.jsx("group",{matrixAutoUpdate:!1,ref:I,children:se.jsx("group",{ref:f,matrixAutoUpdate:!1,children:se.jsx(bv,{value:void 0,children:n.children})})})]})});const kE=new ei,SO=new G().setScalar(.001),wO=["depthAlign"];function MO(n,e,t,i,r,s){const o=$.useMemo(()=>fn(new G(1,1,1)),[]),a=Jh(r,t),c=cs(n,wO);return $.useEffect(()=>{const A=e.current;if(A==null)return;A.traverse(m=>{m instanceof en&&(Vl(m,i,s),m.material.clippingPlanes=a,m.material.needsUpdate=!0,m.raycast=Qu(m,m.raycast,t,r,s))});const h=A.parent;h==null||h.remove(A),kE.setFromObject(A);const f=new G,d=new G;return kE.getSize(f).max(SO),o.value=f,A.scale.set(1,1,1).divide(f),h!=null&&h.add(A),kE.getCenter(d),on(()=>{const m=c.value;m!=null&&(A.position.copy(d).negate(),A.position.z-=F5[m("depthAlign")??"back"]*f.z,A.position.divide(f),A.updateMatrix())})},[c,i,a,t]),o}const rn=$.forwardRef((n,e)=>{const t=Ia(),i=$.useRef(null),r=Wl(i);Ps(t,r,Qa);const s=ba(t,r),o=mo(),a=Kl(s),c=zl(o,a,r.size,r),A=Yl(n.panelMaterialClass,n),h=Br(Vi.Panel,n.zIndexOffset,A);Xl(t,a,r.size,void 0,r.borderInset,c,h,o,A,Ra);const f=Kh();jh(t,f,r,a,c,n.scrollbarPanelMaterialClass,o,h),Ba(t,n),_a(t,n),Sa(t,n);const d=Ma(t,n),m=Na(t,n);xa(t),Da(n,r.size),Jl(n,c);const E=Hl(),x=Ru(r.size,r,h,E);return Ta(e,r,x,f),se.jsxs(wa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:d,activeHandlers:m,children:[se.jsx(qh,{listeners:n,node:r,scrollPosition:f,children:se.jsx("primitive",{object:x})}),se.jsx(Zh,{globalMatrix:a,node:r,orderInfo:h,scrollPosition:f,children:n.children})]})});$.forwardRef((n,e)=>{const t=Ia(),i=$.useRef(null),r=Wl(i);Ps(t,r,Qa);const s=ba(t,r),o=mo(),a=Hl(),c=Jh(o,a),A=Br(Vi.Custom,n.zIndexOffset,void 0),h=$.useRef(null),f=Kl(s),d=zl(o,f,r.size,r);$.useEffect(()=>{const x=h.current;if(x==null)return;x.raycast=Qu(x,x.raycast,a,o,A),Vl(x,r.cameraDistance,A),x.material instanceof Ai&&(x.material.clippingPlanes=c,x.material.needsUpdate=!0,x.material.shadowSide=Vr);const C=on(()=>{const[I,y]=r.size.value;x.scale.set(I*r.pixelSize,y*r.pixelSize,1),x.updateMatrix()}),g=on(()=>void(x.visible=!d.value));return()=>{C(),g()}},[c,r,d,o,A,a]),Ba(t,n),_a(t,n),Sa(t,n);const m=Ma(t,n),E=Na(t,n);return xa(t),Da(n,r.size),Jl(n,d),Ta(e,r,h),se.jsx(wa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:m,activeHandlers:E,children:se.jsx("mesh",{receiveShadow:n.receiveShadow,castShadow:n.castShadow,customDepthMaterial:n.customDepthMaterial,customDistanceMaterial:n.customDistanceMaterial,ref:h,matrixAutoUpdate:!1,geometry:Lv,children:se.jsx(bv,{value:void 0,children:n.children})})})});const QO="fill",RO=(n,e,t,i)=>{if(n==="opacity"){i("backgroundOpacity",e);return}Ra(n,e,t,i)},bT=$.forwardRef((n,e)=>{const t=Ia(),i=KR(NO,n.src),r=$.useMemo(()=>ti(()=>{const y=i.value;if(y==null)return;const B=y.source.data;return B.width/B.height}),[i]),s=$.useRef(null),o=Wl(s);Ps(t,o,Qa),DO(t,i,o.borderInset,o.size);const a=ba(t,o),c=mo(),A=Hl(),h=Jh(c,A),f=Kl(a),d=zl(c,f,o.size,o),m=tO(t,o.size,o.borderInset,d,n.materialClass,h,RO),E=Br(Vi.Image,n.zIndexOffset,void 0),x=$.useMemo(()=>{const[y,B,R]=m,w=new en(Lv,y);return w.matrixAutoUpdate=!1,w.castShadow=n.castShadow??!1,w.receiveShadow=n.receiveShadow??!1,w.customDepthMaterial=B,w.customDistanceMaterial=R,w.raycast=Qu(w,aT(w),A,c,E),Vl(w,o.cameraDistance,E),w},[o,m,A,c,E,n.receiveShadow,n.castShadow]),C=Kh();jh(t,C,o,f,d,n.scrollbarPanelMaterialClass,c,E),Ba(t,n),_a(t,n),Sa(t,n);const g=Ma(t,n),I=Na(t,n);return Ds(t,"backgroundColor",16777215),(n.keepAspectRatio??!0)&&Ds(t,"aspectRatio",r),xa(t),Da(n,o.size),Jl(n,d),Ri(()=>{const y=i.value??null;x.material.map!==y&&(x.material.map=y,x.material.needsUpdate=!0)},[x,i]),Ri(()=>{const[y,B]=o.size.value;x.scale.set(y*o.pixelSize,B*o.pixelSize,1),x.updateMatrix()},[x]),Ri(()=>void(x.visible=!d.value),[x,d]),Ta(e,o,x,C),se.jsxs(wa,{groupRef:s,hoverHandlers:g,handlers:n,matrix:a,activeHandlers:I,children:[se.jsx(qh,{listeners:n,node:o,scrollPosition:C,children:se.jsx("primitive",{object:x})}),se.jsx(Zh,{globalMatrix:f,node:o,orderInfo:E,scrollPosition:C,children:n.children})]})}),TO=["fit"];function DO(n,e,t,i){const r=cs(n,TO);Ri(()=>{const s=r.value,o=e.value;if(o==null||s==null)return;const a=s("fit")??QO;if(o.matrix.identity(),a==="fill"||o==null){TS(t,i,o);return}const{width:c,height:A}=o.source.data,h=c/A,[f,d]=i.value,[m,E,x,C]=t.value,g=(f-C-E)/(d-m-x);h>g?o.matrix.translate(-(.5*(g-h))/g,0).scale(g/h,1):o.matrix.translate(0,-(.5*(h-g))/h).scale(1,h/g),TS(t,i,o)},[e,t,i])}function TS(n,e,t){const[i,r]=e.value,[s,o,a,c]=n.value,A=i-c-o,h=r-s-a;t.matrix.translate(-1+(c+A)/i,-1+(s+h)/r).scale(i/A,r/h)}const bO=new mv;async function NO(n){if(n==null)return Promise.resolve(void 0);if(n instanceof Sn)return Promise.resolve(n);try{const e=await bO.loadAsync(n);return e.colorSpace=On,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function Zs(n,e,t){if(e==null)return t;const i=n[e];if(i==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(n).join(", ")}`);return i}function En(n,e,t){return typeof n=="number"?Math.round(n/e):n??t}const LO={static:0,relative:1,absolute:2},GE={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},PO={column:0,"column-reverse":1,row:2,"row-reverse":3},UO={"no-wrap":0,wrap:1,"wrap-reverse":2},FO={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},kO={visible:0,hidden:1,scroll:2},GO={flex:0,none:1},DS={positionType:(n,e,t)=>n.setPositionType(Zs(LO,t,0)),positionTop:(n,e,t)=>n.setPosition(1,En(t,e,NaN)),positionLeft:(n,e,t)=>n.setPosition(0,En(t,e,NaN)),positionRight:(n,e,t)=>n.setPosition(2,En(t,e,NaN)),positionBottom:(n,e,t)=>n.setPosition(3,En(t,e,NaN)),alignContent:(n,e,t)=>n.setAlignContent(Zs(GE,t,1)),alignItems:(n,e,t)=>n.setAlignItems(Zs(GE,t,4)),alignSelf:(n,e,t)=>n.setAlignSelf(Zs(GE,t,0)),flexDirection:(n,e,t)=>n.setFlexDirection(Zs(PO,t,0)),flexWrap:(n,e,t)=>n.setFlexWrap(Zs(UO,t,0)),justifyContent:(n,e,t)=>n.setJustifyContent(Zs(FO,t,0)),marginTop:(n,e,t)=>n.setMargin(1,En(t,e,NaN)),marginLeft:(n,e,t)=>n.setMargin(0,En(t,e,NaN)),marginRight:(n,e,t)=>n.setMargin(2,En(t,e,NaN)),marginBottom:(n,e,t)=>n.setMargin(3,En(t,e,NaN)),flexBasis:(n,e,t)=>n.setFlexBasis(En(t,e,NaN)),flexGrow:(n,e,t)=>n.setFlexGrow(t??0),flexShrink:(n,e,t)=>n.setFlexShrink(t??0),width:(n,e,t)=>n.setWidth(En(t,e,NaN)),height:(n,e,t)=>n.setHeight(En(t,e,NaN)),minWidth:(n,e,t)=>n.setMinWidth(En(t,e,NaN)),minHeight:(n,e,t)=>n.setMinHeight(En(t,e,NaN)),maxWidth:(n,e,t)=>n.setMaxWidth(En(t,e,NaN)),maxHeight:(n,e,t)=>n.setMaxHeight(En(t,e,NaN)),aspectRatio:(n,e,t)=>n.setAspectRatio(t??NaN),borderTop:(n,e,t)=>n.setBorder(1,En(t,e,NaN)),borderLeft:(n,e,t)=>n.setBorder(0,En(t,e,NaN)),borderRight:(n,e,t)=>n.setBorder(2,En(t,e,NaN)),borderBottom:(n,e,t)=>n.setBorder(3,En(t,e,NaN)),overflow:(n,e,t)=>n.setOverflow(Zs(kO,t,0)),display:(n,e,t)=>n.setDisplay(Zs(GO,t,0)),paddingTop:(n,e,t)=>n.setPadding(1,En(t,e,NaN)),paddingLeft:(n,e,t)=>n.setPadding(0,En(t,e,NaN)),paddingRight:(n,e,t)=>n.setPadding(2,En(t,e,NaN)),paddingBottom:(n,e,t)=>n.setPadding(3,En(t,e,NaN)),gapRow:(n,e,t)=>n.setGap(1,En(t,e,NaN)),gapColumn:(n,e,t)=>n.setGap(0,En(t,e,NaN))};function OO(n,e){return n.L===e.L}function HO(n,e,t){if(t==null){n.setMeasureFunc(null);return}n.setMeasureFunc((i,r,s,o)=>{const a=t(i*e,r,s*e,o);return{width:Math.ceil(Math.ceil(a.width)/e),height:Math.ceil(Math.ceil(a.height)/e)}}),n.markDirty()}class Pv{constructor(e,t,i,r,s,o,a){We(this,"size",fn([0,0]));We(this,"relativeCenter",fn([0,0]));We(this,"borderInset",fn([0,0,0,0]));We(this,"paddingInset",fn([0,0,0,0]));We(this,"overflow",fn(Ui.Overflow.Visible));We(this,"maxScrollPosition",fn([void 0,void 0]));We(this,"scrollable",fn([!1,!1]));We(this,"children",[]);We(this,"yogaNode");We(this,"unsubscribeYoga");We(this,"layoutChangeListeners",new Set);We(this,"requestCalculateLayout");We(this,"active",fn(!1));this.groupRef=e,this.cameraDistance=t,this.yoga=i,this.precision=r,this.pixelSize=s,this.anyAncestorScrollable=a,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=on(()=>{var c;i.value!=null&&((c=this.unsubscribeYoga)==null||c.call(this),this.unsubscribeYoga=void 0,this.yogaNode=i.value.Node.create(),this.active.value=!0)})}setProperty(e,t){e==="measureFunc"?HO(this.yogaNode,this.precision,t):DS[e](this.yogaNode,this.precision,t),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in DS}destroy(){var e,t;(e=this.unsubscribeYoga)==null||e.call(this),(t=this.yogaNode)==null||t.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),UR(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new Pv(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,ti(()=>{var a;const[i,r]=((a=this.anyAncestorScrollable)==null?void 0:a.value)??[!1,!1],[s,o]=this.scrollable.value;return[i||s,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((a,c)=>{var m,E;if(e??(e=(E=(m=a.groupRef.current)==null?void 0:m.parent)==null?void 0:E.children),e==null)return 0;const A=a.groupRef.current,h=c.groupRef.current;if(A==null||h==null)return 0;const f=e.indexOf(A);if(f===-1)throw new Error("parent mismatch");const d=e.indexOf(h);if(d===-1)throw new Error("parent mismatch");return f-d});let t=0,i=this.yogaNode.getChild(t),r=this.children[t];for(;r!=null||i!=null;){if(r!=null&&i!=null&&OO(i,NS(r.yogaNode))){r=this.children[++t],i=this.yogaNode.getChild(t);continue}if(i!=null&&this.yogaNode.removeChild(i),r!=null){const a=NS(r.yogaNode);(o=a.getParent())==null||o.removeChild(a),this.yogaNode.insertChild(a,t),r=this.children[++t]}i=this.yogaNode.getChild(t)}const s=this.children.length;for(let a=0;a0,P>0)}else Dc(this.maxScrollPosition,void 0,void 0),Dc(this.scrollable,!1,!1);const B=this.overflow.value===Ui.Overflow.Visible;return[s+Math.max(i,B?I:0),o+Math.max(r,B?y:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function Dc(n,e,t){const[i,r]=n.value;i===e&&r===t||(n.value=[e,t])}function bS(n,e,t,i,r){const[s,o,a,c]=n.value;s==e&&o==t&&a==i&&c==r||(n.value=[e,t,i,r])}function NS(n){if(n==null)throw new Error("commit cannot be called with a children that miss a yoga node");return n}const zO=.1,NT=.002,op=new ln,LS=new G,VO=$.forwardRef((n,e)=>{const t=Ia(),i=wv(P=>P.gl);$.useEffect(()=>aG(i),[i]);const{sizeX:r,sizeY:s}=n,[o,a]=$.useMemo(()=>[n.precision??zO,n.pixelSize??NT],[]),c=k5(),A=$.useMemo(()=>({current:0}),[]),h=$.useRef(null),f=PG(),d=$.useMemo(()=>new Pv(h,A,c,o,a,f,void 0),[f,h,c]);Ps(t,d,Qa),$.useEffect(()=>()=>d.destroy(),[d]);const m=ba(t,d),E=$.useMemo(()=>{const P=new Gr;return P.matrixAutoUpdate=!1,P},[]),x=nO(a,d.cameraDistance,E),C=vG(a,d.cameraDistance,E),g=Yl(n.panelMaterialClass,n),I=Br(Vi.Panel,void 0,g),y=YO(m,d.size,a,n),B=Kh();jh(t,B,d,y,void 0,n.scrollbarPanelMaterialClass,void 0,I,x),Xl(t,y,d.size,void 0,d.borderInset,void 0,I,void 0,g,Ra,x),Ba(t,n),_a(t,n),Sa(t,n,d.size);const R=Ma(t,n),w=Na(t,n);Ds(t,"width",PS(r,a)),Ds(t,"height",PS(s,a)),xa(t),Da(n,d.size);const T=Ru(d.size,d,I,h);return Ta(e,d,T,B),ya(({camera:P})=>{op.normal.set(0,0,1),op.constant=0,op.applyMatrix4(T.matrixWorld),LS.setFromMatrixPosition(P.matrixWorld),A.current=op.distanceToPoint(LS)}),se.jsxs(se.Fragment,{children:[se.jsx("primitive",{object:E}),se.jsx(wa,{groupRef:h,matrix:y,handlers:n,hoverHandlers:R,activeHandlers:w,children:se.jsx(G5,{value:h,children:se.jsx(yG,{value:C,children:se.jsxs(iO,{value:x,children:[se.jsx(qh,{node:d,scrollPosition:B,listeners:n,children:se.jsx("primitive",{object:T})}),se.jsx(NG,{value:d.size,children:se.jsx(Zh,{globalMatrix:y,node:d,orderInfo:I,scrollPosition:B,children:n.children})})]})})})})]})});function PS(n,e){return $.useMemo(()=>n===void 0?void 0:n instanceof zn?ti(()=>{const t=n.value;if(t!=null)return t/e}):n/e,[n,e])}const WO=new ft;function YO(n,e,t,{anchorX:i="center",anchorY:r="center"}){return $.useMemo(()=>ti(()=>{var a;const[s,o]=e.value;return(a=n.value)==null?void 0:a.clone().premultiply(WO.makeTranslation(XR[i]*s*t,JR[r]*o*t,0))}),[n,e,i,r,t])}const XO=On;class Tu extends Ji{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,i,r){const s=this,o=new Ns(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(a){try{t(s.parse(a))}catch(c){r?r(c):console.error(c),s.manager.itemError(e)}},i,r)}parse(e){const t=this;function i(V,O){if(V.nodeType!==1)return;const k=B(V);let F=!1,me=null;switch(V.nodeName){case"svg":O=E(V,O);break;case"style":s(V);break;case"g":O=E(V,O);break;case"path":O=E(V,O),V.hasAttribute("d")&&(me=r(V));break;case"rect":O=E(V,O),me=c(V);break;case"polygon":O=E(V,O),me=A(V);break;case"polyline":O=E(V,O),me=h(V);break;case"circle":O=E(V,O),me=f(V);break;case"ellipse":O=E(V,O),me=d(V);break;case"line":O=E(V,O),me=m(V);break;case"defs":F=!0;break;case"use":O=E(V,O);const Be=(V.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),H=V.viewportElement.getElementById(Be);H?i(H,O):console.warn("SVGLoader: 'use node' references non-existent node id: "+Be);break}me&&(O.fill!==void 0&&O.fill!=="none"&&me.color.setStyle(O.fill,XO),w(me,ue),K.push(me),me.userData={node:V,style:O});const Ie=V.childNodes;for(let ie=0;ie0?ue.copy(Y[Y.length-1]):ue.identity())}function r(V){const O=new ko,k=new _e,F=new _e,me=new _e;let Ie=!0,ie=!1;const Be=V.getAttribute("d");if(Be===""||Be==="none")return null;const H=Be.match(/[a-df-z][^a-df-z]*/ig);for(let Ee=0,te=H.length;Ee0&&(k.copy(me),O.currentPath.currentPoint.copy(k),Ie=!0);break;default:console.warn(ae)}ie=!1}return O}function s(V){if(!(!V.sheet||!V.sheet.cssRules||!V.sheet.cssRules.length))for(let O=0;Ome.trim());for(let me=0;meie!==""));ge[F[me]]=Object.assign(ge[F[me]]||{},Ie)}}}function o(V,O,k,F,me,Ie,ie,Be){if(O==0||k==0){V.lineTo(Be.x,Be.y);return}F=F*Math.PI/180,O=Math.abs(O),k=Math.abs(k);const H=(ie.x-Be.x)/2,Ee=(ie.y-Be.y)/2,te=Math.cos(F)*H+Math.sin(F)*Ee,ae=-Math.sin(F)*H+Math.cos(F)*Ee;let he=O*O,Te=k*k;const j=te*te,S=ae*ae,D=j/he+S/Te;if(D>1){const Le=Math.sqrt(D);O=Le*O,k=Le*k,he=O*O,Te=k*k}const ne=he*S+Te*j,be=(he*Te-ne)/ne;let De=Math.sqrt(Math.max(0,be));me===Ie&&(De=-De);const Qe=De*O*ae/k,Xe=-De*k*te/O,ze=Math.cos(F)*Qe-Math.sin(F)*Xe+(ie.x+Be.x)/2,qe=Math.sin(F)*Qe+Math.cos(F)*Xe+(ie.y+Be.y)/2,at=a(1,0,(te-Qe)/O,(ae-Xe)/k),Ct=a((te-Qe)/O,(ae-Xe)/k,(-te-Qe)/O,(-ae-Xe)/k)%(Math.PI*2);V.currentPath.absellipse(ze,qe,O,k,at,at+Ct,Ie===0,F)}function a(V,O,k,F){const me=V*k+O*F,Ie=Math.sqrt(V*V+O*O)*Math.sqrt(k*k+F*F);let ie=Math.acos(Math.max(-1,Math.min(1,me/Ie)));return V*F-O*k<0&&(ie=-ie),ie}function c(V){const O=y(V.getAttribute("x")||0),k=y(V.getAttribute("y")||0),F=y(V.getAttribute("rx")||V.getAttribute("ry")||0),me=y(V.getAttribute("ry")||V.getAttribute("rx")||0),Ie=y(V.getAttribute("width")),ie=y(V.getAttribute("height")),Be=1-.551915024494,H=new ko;return H.moveTo(O+F,k),H.lineTo(O+Ie-F,k),(F!==0||me!==0)&&H.bezierCurveTo(O+Ie-F*Be,k,O+Ie,k+me*Be,O+Ie,k+me),H.lineTo(O+Ie,k+ie-me),(F!==0||me!==0)&&H.bezierCurveTo(O+Ie,k+ie-me*Be,O+Ie-F*Be,k+ie,O+Ie-F,k+ie),H.lineTo(O+F,k+ie),(F!==0||me!==0)&&H.bezierCurveTo(O+F*Be,k+ie,O,k+ie-me*Be,O,k+ie-me),H.lineTo(O,k+me),(F!==0||me!==0)&&H.bezierCurveTo(O,k+me*Be,O+F*Be,k,O+F,k),H}function A(V){function O(Ie,ie,Be){const H=y(ie),Ee=y(Be);me===0?F.moveTo(H,Ee):F.lineTo(H,Ee),me++}const k=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new ko;let me=0;return V.getAttribute("points").replace(k,O),F.currentPath.autoClose=!0,F}function h(V){function O(Ie,ie,Be){const H=y(ie),Ee=y(Be);me===0?F.moveTo(H,Ee):F.lineTo(H,Ee),me++}const k=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new ko;let me=0;return V.getAttribute("points").replace(k,O),F.currentPath.autoClose=!1,F}function f(V){const O=y(V.getAttribute("cx")||0),k=y(V.getAttribute("cy")||0),F=y(V.getAttribute("r")||0),me=new oa;me.absarc(O,k,F,0,Math.PI*2);const Ie=new ko;return Ie.subPaths.push(me),Ie}function d(V){const O=y(V.getAttribute("cx")||0),k=y(V.getAttribute("cy")||0),F=y(V.getAttribute("rx")||0),me=y(V.getAttribute("ry")||0),Ie=new oa;Ie.absellipse(O,k,F,me,0,Math.PI*2);const ie=new ko;return ie.subPaths.push(Ie),ie}function m(V){const O=y(V.getAttribute("x1")||0),k=y(V.getAttribute("y1")||0),F=y(V.getAttribute("x2")||0),me=y(V.getAttribute("y2")||0),Ie=new ko;return Ie.moveTo(O,k),Ie.lineTo(F,me),Ie.currentPath.autoClose=!1,Ie}function E(V,O){O=Object.assign({},O);let k={};if(V.hasAttribute("class")){const ie=V.getAttribute("class").split(/\s/).filter(Boolean).map(Be=>Be.trim());for(let Be=0;Be0&&O.premultiply(Y[Y.length-1]),ue.copy(O),Y.push(O),O}function R(V){const O=new wt,k=ce;if(V.nodeName==="use"&&(V.hasAttribute("x")||V.hasAttribute("y"))){const F=y(V.getAttribute("x")),me=y(V.getAttribute("y"));O.translate(F,me)}if(V.hasAttribute("transform")){const F=V.getAttribute("transform").split(")");for(let me=F.length-1;me>=0;me--){const Ie=F[me].trim();if(Ie==="")continue;const ie=Ie.indexOf("("),Be=Ie.length;if(ie>0&&ie=1){const te=Ee[0];let ae=0;Ee.length>=2&&(ae=Ee[1]),k.translate(te,ae)}break;case"rotate":if(Ee.length>=1){let te=0,ae=0,he=0;te=Ee[0]*Math.PI/180,Ee.length>=3&&(ae=Ee[1],he=Ee[2]),re.makeTranslation(-ae,-he),fe.makeRotation(te),U.multiplyMatrices(fe,re),re.makeTranslation(ae,he),k.multiplyMatrices(re,U)}break;case"scale":if(Ee.length>=1){const te=Ee[0];let ae=te;Ee.length>=2&&(ae=Ee[1]),k.scale(te,ae)}break;case"skewX":Ee.length===1&&k.set(1,Math.tan(Ee[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":Ee.length===1&&k.set(1,0,0,Math.tan(Ee[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":Ee.length===6&&k.set(Ee[0],Ee[2],Ee[4],Ee[1],Ee[3],Ee[5],0,0,1);break}}O.premultiply(k)}}return O}function w(V,O){function k(ie){ee.set(ie.x,ie.y,1).applyMatrix3(O),ie.set(ee.x,ee.y)}function F(ie){const Be=ie.xRadius,H=ie.yRadius,Ee=Math.cos(ie.aRotation),te=Math.sin(ie.aRotation),ae=new G(Be*Ee,Be*te,0),he=new G(-H*te,H*Ee,0),Te=ae.applyMatrix3(O),j=he.applyMatrix3(O),S=ce.set(Te.x,j.x,0,Te.y,j.y,0,0,0,1),D=re.copy(S).invert(),De=fe.copy(D).transpose().multiply(D).elements,Qe=b(De[0],De[1],De[4]),Xe=Math.sqrt(Qe.rt1),ze=Math.sqrt(Qe.rt2);if(ie.xRadius=1/Xe,ie.yRadius=1/ze,ie.aRotation=Math.atan2(Qe.sn,Qe.cs),!((ie.aEndAngle-ie.aStartAngle)%(2*Math.PI){const{x:dt,y:ot}=new G(Math.cos(Bt),Math.sin(Bt),0).applyMatrix3(Le);return Math.atan2(ot,dt)};ie.aStartAngle=Dt(ie.aStartAngle),ie.aEndAngle=Dt(ie.aEndAngle),T(O)&&(ie.aClockwise=!ie.aClockwise)}}function me(ie){const Be=J(O),H=M(O);ie.xRadius*=Be,ie.yRadius*=H;const Ee=Be>Number.EPSILON?Math.atan2(O.elements[1],O.elements[0]):Math.atan2(-O.elements[3],O.elements[4]);ie.aRotation+=Ee,T(O)&&(ie.aStartAngle*=-1,ie.aEndAngle*=-1,ie.aClockwise=!ie.aClockwise)}const Ie=V.subPaths;for(let ie=0,Be=Ie.length;ieNumber.EPSILON}function J(V){const O=V.elements;return Math.sqrt(O[0]*O[0]+O[1]*O[1])}function M(V){const O=V.elements;return Math.sqrt(O[3]*O[3]+O[4]*O[4])}function b(V,O,k){let F,me,Ie,ie,Be;const H=V+k,Ee=V-k,te=Math.sqrt(Ee*Ee+4*O*O);return H>0?(F=.5*(H+te),Be=1/F,me=V*Be*k-O*Be*O):H<0?me=.5*(H-te):(F=.5*te,me=-.5*te),Ee>0?Ie=Ee+te:Ie=Ee-te,Math.abs(Ie)>2*Math.abs(O)?(Be=-2*O/Ie,ie=1/Math.sqrt(1+Be*Be),Ie=Be*ie):Math.abs(O)===0?(Ie=1,ie=0):(Be=-.5*Ie/O,Ie=1/Math.sqrt(1+Be*Be),ie=Be*Ie),Ee>0&&(Be=Ie,Ie=-ie,ie=Be),{rt1:F,rt2:me,cs:Ie,sn:ie}}const K=[],ge={},Y=[],ce=new wt,re=new wt,fe=new wt,U=new wt,Z=new _e,ee=new G,ue=new wt,ye=new DOMParser().parseFromString(e,"image/svg+xml");return i(ye.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:K,xml:ye.documentElement}}static createShapes(e){const i={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:i.ORIGIN,t:0};function s(x,C,g,I){const y=x.x,B=C.x,R=g.x,w=I.x,T=x.y,P=C.y,J=g.y,M=I.y,b=(w-R)*(T-J)-(M-J)*(y-R),K=(B-y)*(T-J)-(P-T)*(y-R),ge=(M-J)*(B-y)-(w-R)*(P-T),Y=b/ge,ce=K/ge;if(ge===0&&b!==0||Y<=0||Y>=1||ce<0||ce>1)return null;if(b===0&&ge===0){for(let re=0;re<2;re++)if(o(re===0?g:I,x,C),r.loc==i.ORIGIN){const fe=re===0?g:I;return{x:fe.x,y:fe.y,t:r.t}}else if(r.loc==i.BETWEEN){const fe=+(y+r.t*(B-y)).toPrecision(10),U=+(T+r.t*(P-T)).toPrecision(10);return{x:fe,y:U,t:r.t}}return null}else{for(let U=0;U<2;U++)if(o(U===0?g:I,x,C),r.loc==i.ORIGIN){const Z=U===0?g:I;return{x:Z.x,y:Z.y,t:r.t}}const re=+(y+Y*(B-y)).toPrecision(10),fe=+(T+Y*(P-T)).toPrecision(10);return{x:re,y:fe,t:Y}}}function o(x,C,g){const I=g.x-C.x,y=g.y-C.y,B=x.x-C.x,R=x.y-C.y,w=I*R-B*y;if(x.x===C.x&&x.y===C.y){r.loc=i.ORIGIN,r.t=0;return}if(x.x===g.x&&x.y===g.y){r.loc=i.DESTINATION,r.t=1;return}if(w<-Number.EPSILON){r.loc=i.LEFT;return}if(w>Number.EPSILON){r.loc=i.RIGHT;return}if(I*B<0||y*R<0){r.loc=i.BEHIND;return}if(Math.sqrt(I*I+y*y)M.t<=J.t+Number.EPSILON&&M.t>=J.t-Number.EPSILON)===void 0&&(g.push(J),I.push(new _e(J.x,J.y)))}}return I}function c(x,C,g){const I=new _e;C.getCenter(I);const y=[];return g.forEach(B=>{B.boundingBox.containsPoint(I)&&a(x,B.points).forEach(w=>{y.push({identifier:B.identifier,isCW:B.isCW,point:w})})}),y.sort((B,R)=>B.point.x-R.point.x),y}function A(x,C,g,I,y){(y==null||y==="")&&(y="nonzero");const B=new _e;x.boundingBox.getCenter(B);const R=[new _e(g,B.y),new _e(I,B.y)],w=c(R,x.boundingBox,C);w.sort((K,ge)=>K.point.x-ge.point.x);const T=[],P=[];w.forEach(K=>{K.identifier===x.identifier?T.push(K):P.push(K)});const J=T[0].point.x,M=[];let b=0;for(;b0&&M[M.length-1]===P[b].identifier?M.pop():M.push(P[b].identifier),b++;if(M.push(x.identifier),y==="evenodd"){const K=M.length%2===0,ge=M[M.length-2];return{identifier:x.identifier,isHole:K,for:ge}}else if(y==="nonzero"){let K=!0,ge=null,Y=null;for(let ce=0;ce{const C=x.getPoints();let g=-999999999,I=999999999,y=-999999999,B=999999999;for(let R=0;Rg&&(g=w.y),w.yy&&(y=w.x),w.x=B&&(h=B-1),{curves:x.curves,points:C,isCW:os.isClockWise(C),identifier:-1,boundingBox:new dR(new _e(B,I),new _e(y,g))}});d=d.filter(x=>x.points.length>1);for(let x=0;xA(x,d,h,f,e.userData?e.userData.style.fillRule:void 0)),E=[];return d.forEach(x=>{if(!m[x.identifier].isHole){const g=new aa;g.curves=x.curves,m.filter(y=>y.isHole&&y.for===x.identifier).forEach(y=>{const B=d[y.identifier],R=new oa;R.curves=B.curves,g.holes.push(R)}),E.push(g)}}),E}static getStrokeStyle(e,t,i,r,s){return e=e!==void 0?e:1,t=t!==void 0?t:"#000",i=i!==void 0?i:"miter",r=r!==void 0?r:"butt",s=s!==void 0?s:4,{strokeColor:t,strokeWidth:e,strokeLineJoin:i,strokeLineCap:r,strokeMiterLimit:s}}static pointsToStroke(e,t,i,r){const s=[],o=[],a=[];if(Tu.pointsToStrokeWithBuffers(e,t,i,r,s,o,a)===0)return null;const c=new Tt;return c.setAttribute("position",new st(s,3)),c.setAttribute("normal",new st(o,3)),c.setAttribute("uv",new st(a,2)),c}static pointsToStrokeWithBuffers(e,t,i,r,s,o,a,c){const A=new _e,h=new _e,f=new _e,d=new _e,m=new _e,E=new _e,x=new _e,C=new _e,g=new _e,I=new _e,y=new _e,B=new _e,R=new _e,w=new _e,T=new _e,P=new _e,J=new _e;i=i!==void 0?i:12,r=r!==void 0?r:.001,c=c!==void 0?c:0,e=Ee(e);const M=e.length;if(M<2)return 0;const b=e[0].equals(e[M-1]);let K,ge=e[0],Y;const ce=t.strokeWidth/2,re=1/(M-1);let fe=0,U,Z,ee,ue,ye=!1,ke=0,V=c*3,O=c*2;k(e[0],e[1],A).multiplyScalar(ce),C.copy(e[0]).sub(A),g.copy(e[0]).add(A),I.copy(C),y.copy(g);for(let te=1;teNumber.EPSILON){const Te=ce/he;f.multiplyScalar(-Te),d.subVectors(K,ge),m.copy(d).setLength(Te).add(f),P.copy(m).negate();const j=m.length(),S=d.length();d.divideScalar(S),E.subVectors(Y,K);const D=E.length();switch(E.divideScalar(D),d.dot(P)=r&&he.push(te[Te]);return he.push(te[te.length-1]),he}}}const JO=new Tu,ap=new ei,il=new G;async function KO(n,e,t=sr,i,r,s,o){const a=new Gr;a.matrixAutoUpdate=!1;const c=await JO.loadAsync(n);ap.makeEmpty();for(const f of c.paths){const d=Tu.createShapes(f),m=new t;m.transparent=!0,m.depthWrite=!1,m.toneMapped=!1,m.clippingPlanes=i;for(const E of d){const x=new Su(E);x.computeBoundingBox(),ap.union(x.boundingBox);const C=new en(x,m);C.matrixAutoUpdate=!1,C.raycast=Qu(C,C.raycast,s,r,o),Vl(C,e,o),C.userData.color=f.color,C.scale.y=-1,C.updateMatrix(),a.add(C)}}ap.getSize(il);const A=il.x/il.y,h=1/il.y;return a.scale.set(1,1,1).multiplyScalar(h),ap.getCenter(il),il.y*=-1,a.position.copy(il).negate().multiplyScalar(h),a.updateMatrix(),Object.assign(a,{aspectRatio:A})}const US=new Je,qO=["color","opacity"];$.forwardRef((n,e)=>{const t=Ia(),i=$.useRef(null),r=Wl(i);Ps(t,r,Qa);const s=ba(t,r),o=Kl(s),a=mo(),c=zl(a,o,r.size,r),A=Yl(n.panelMaterialClass,n),h=Br(Vi.Panel,n.zIndexOffset,A);Xl(t,o,r.size,void 0,r.borderInset,c,h,a,A,Ra);const f=Hl(),d=Jh(a,f),m=Br(Vi.Svg,void 0,void 0,h),E=KR(KO,n.src,r.cameraDistance,n.materialClass,d,a,f,m),x=cs(t,qO);Ri(()=>{var M;const w=x.value;if(w==null)return;const T=w("color"),P=w("opacity");let J;Array.isArray(T)?J=US.setRGB(...T):T!=null&&(J=US.set(T)),(M=E.value)==null||M.traverse(b=>{if(!(b instanceof en))return;b.receiveShadow=n.receiveShadow??!1,b.castShadow=n.castShadow??!1;const K=b.material;K.color.copy(J??b.userData.color),K.opacity=P??1})},[E,n.color,n.receiveShadow,n.castShadow]);const C=$.useMemo(()=>ti(()=>{var w;return(w=E.value)==null?void 0:w.aspectRatio}),[E]),g=Kh();jh(t,g,r,o,c,n.scrollbarPanelMaterialClass,a,m),Ba(t,n),_a(t,n),Sa(t,n);const I=Ma(t,n),y=Na(t,n);Ds(t,"aspectRatio",C),xa(t),Da(n,r.size),Jl(n,c);const B=$.useMemo(()=>{const w=new Gr;return w.matrixAutoUpdate=!1,w},[]);Ri(()=>{var J;const[w,T,P]=qR(r.size,r.paddingInset,r.borderInset,r.pixelSize,((J=E.value)==null?void 0:J.aspectRatio)??1);B.position.set(w,T,0),B.scale.setScalar(P),B.updateMatrix()},[r,E]),Ri(()=>{const w=E.value;if(w!=null)return B.add(w),()=>B.remove(w)},[E,B]),Ri(()=>void(B.visible=!c.value),[]);const R=Ru(r.size,r,h,f);return Ta(e,r,R,g),se.jsxs(wa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:I,activeHandlers:y,children:[se.jsxs(qh,{listeners:n,node:r,scrollPosition:g,children:[se.jsx("primitive",{object:R}),se.jsx("primitive",{object:B})]}),se.jsx(Zh,{globalMatrix:o,node:r,orderInfo:m,scrollPosition:g,children:n.children})]})});const hn=$.forwardRef((n,e)=>{const t=Ia(),i=$.useRef(null),r=Wl(i);Ps(t,r,Qa);const s=ba(t,r),o=Hl(),a=Kl(s),c=mo(),A=zl(c,a,r.size,r);Da(n,r.size),Jl(n,A);const h=Yl(n.panelMaterialClass,n),f=Br(Vi.Panel,n.zIndexOffset,h);Xl(t,a,r.size,void 0,r.borderInset,A,f,c,h,Ra);const d=Br(Vi.Text,void 0,void 0,f),m=wG(t,n.children,a,r,A,c,d);Ba(t,n),_a(t,n),Sa(t,n);const E=Ma(t,n),x=Na(t,n);Ds(t,"measureFunc",m),xa(t);const C=Ru(r.size,r,f,o);return Ta(e,r,C),se.jsx(wa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:E,activeHandlers:x,children:se.jsx("primitive",{object:C})})}),jO=$.forwardRef((n,e)=>{const t=Wh(),i=n.pixelSize??NT,[r,s]=$.useMemo(()=>{const{width:A,height:h}=t.getState().size;return[fn(A*i),fn(h*i)]},[i,t]);$.useEffect(()=>{const A=h=>{UR(()=>{r.value=h.size.width*i,s.value=h.size.height*i})};return A(t.getState()),t.subscribe(A)},[i,r,s,t]);const o=wv(A=>A.camera),a=$.useRef(null);ya(()=>{if(a.current==null)return;let A=1;o instanceof Zn&&(A=s.peek()/(2*Math.tan(o.fov/360*Math.PI))),a.current.position.z=-A,a.current.updateMatrix()});const c=n.attachCamera??!0;return se.jsxs(se.Fragment,{children:[c&&se.jsx("primitive",{object:o}),DR(se.jsx("group",{ref:a,matrixAutoUpdate:!1,children:se.jsx(VO,{ref:e,...n,sizeX:r,sizeY:s,children:n.children})}),o)]})}),FS=new Je,ZO=["color","opacity"],$O=new Tu,Us=$.forwardRef((n,e)=>{const t=Ia(),i=$.useRef(null),r=Wl(i);Ps(t,r,Qa);const s=ba(t,r),o=Kl(s),a=mo(),c=zl(a,o,r.size,r),A=Yl(n.panelMaterialClass,n),h=Br(Vi.Panel,n.zIndexOffset,A);Xl(t,o,r.size,void 0,r.borderInset,c,h,a,A,Ra);const f=Hl(),d=Jh(a,f),m=Br(Vi.Svg,void 0,void 0,h),E=$.useMemo(()=>{const B=new Gr;B.matrixAutoUpdate=!1;const R=$O.parse(n.text);for(const w of R.paths){const T=Tu.createShapes(w),P=new(n.materialClass??sr);P.transparent=!0,P.depthWrite=!1,P.toneMapped=!1,P.clippingPlanes=d;for(const J of T){const M=new Su(J);M.computeBoundingBox();const b=new en(M,P);b.matrixAutoUpdate=!1,b.raycast=Qu(b,b.raycast,f,a,m),Vl(b,r.cameraDistance,m),b.userData.color=w.color,b.scale.y=-1,b.updateMatrix(),B.add(b)}}return B},[n.text,n.materialClass,d,f,a,r,m]),x=cs(t,ZO);Ri(()=>{const B=x.value;if(B==null)return;const R=B("color"),w=B("opacity");let T;Array.isArray(R)?T=FS.setRGB(...R):R!=null&&(T=FS.set(R)),E.traverse(P=>{if(!(P instanceof en))return;P.receiveShadow=n.receiveShadow??!1,P.castShadow=n.castShadow??!1;const J=P.material;J.color.copy(T??P.userData.color),J.opacity=w??1})},[E,n.color,n.receiveShadow,n.castShadow]);const C=Kh();jh(t,C,r,o,c,n.scrollbarPanelMaterialClass,a,m),Ds(t,"width",n.svgWidth),Ds(t,"height",n.svgHeight),Ba(t,n),_a(t,n),Sa(t,n);const g=Ma(t,n),I=Na(t,n);Ds(t,"aspectRatio",n.svgWidth/n.svgHeight),xa(t),Da(n,r.size),Jl(n,c),Ri(()=>{const B=n.svgWidth/n.svgHeight,[R,w,T]=qR(r.size,r.paddingInset,r.borderInset,r.pixelSize,n.svgWidth/n.svgHeight);E.position.set(R-T*B/2,w+T/2,0),E.scale.setScalar(T/n.svgHeight),E.updateMatrix()},[r,E,n.svgWidth,n.svgHeight]),Ri(()=>void(E.visible=!c.value),[]);const y=Ru(r.size,r,h,f);return Ta(e,r,y,C),se.jsxs(wa,{groupRef:i,matrix:s,handlers:n,hoverHandlers:g,activeHandlers:I,children:[se.jsxs(qh,{listeners:n,node:r,scrollPosition:C,children:[se.jsx("primitive",{object:y}),se.jsx("primitive",{object:E})]}),se.jsx(Zh,{globalMatrix:o,node:r,orderInfo:m,scrollPosition:C,children:n.children})]})});$.forwardRef(({children:n,resolution:e=1,frames:t=1/0,renderPriority:i=0,eventPriority:r=0,...s},o)=>{const a=$.useMemo(()=>new Wr(1,1,{minFilter:vn,magFilter:vn,type:Dl}),[]),c=$.useRef(null),A=$.useMemo(()=>({events:{compute:eH.bind(null,c),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);$.useEffect(()=>{if(c.current==null)return;const{size:f}=c.current,d=on(()=>{const[m,E]=f.value;a.setSize(m,E),A.size.width=m,A.size.height=E});return()=>{d(),a.dispose()}},[a,A]),$.useImperativeHandle(o,()=>c.current,[]);const h=$.useMemo(()=>new yh,[]);return se.jsxs(se.Fragment,{children:[DR(se.jsxs(tH,{imageRef:c,renderPriority:i,frames:t,fbo:a,children:[n,se.jsx("group",{onPointerOver:()=>null})]}),h,A),se.jsx(bT,{...s,src:a.texture,fit:"fill",keepAspectRatio:!1,ref:c})]})});function eH({current:n},e,t,i){var o,a,c;if(n==null||i==null)return!1;i.raycaster.camera||(c=(a=i.events).compute)==null||c.call(a,e,i,(o=i.previousRoot)==null?void 0:o.getState());const[r]=i.raycaster.intersectObject(n.interactionPanel);if(!r)return!1;const s=r.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(s.x*2-1,s.y*2-1),t.camera)}function tH({frames:n,renderPriority:e,children:t,fbo:i,imageRef:r}){const s=Wh();$.useEffect(()=>{if(r.current==null)return;const{size:A}=r.current;return on(()=>{const[h,f]=A.value;s.setState({size:{width:h,height:f,top:0,left:0}})})});let o=0,a,c;return ya(A=>{(n===1/0||ose.jsx(Us,{...n,ref:e,text:nH,svgWidth:24,svgHeight:24})),iH='',GS=$.forwardRef((n,e)=>se.jsx(Us,{...n,ref:e,text:iH,svgWidth:24,svgHeight:24})),rH='',sH=$.forwardRef((n,e)=>se.jsx(Us,{...n,ref:e,text:rH,svgWidth:24,svgHeight:24})),oH='',OS=$.forwardRef((n,e)=>se.jsx(Us,{...n,ref:e,text:oH,svgWidth:24,svgHeight:24})),aH='',lH=$.forwardRef((n,e)=>se.jsx(Us,{...n,ref:e,text:aH,svgWidth:24,svgHeight:24})),cH='',HS=$.forwardRef((n,e)=>se.jsx(Us,{...n,ref:e,text:cH,svgWidth:24,svgHeight:24})),uH='',AH=$.forwardRef((n,e)=>se.jsx(Us,{...n,ref:e,text:uH,svgWidth:24,svgHeight:24})),hH='',fH=$.forwardRef((n,e)=>se.jsx(Us,{...n,ref:e,text:hH,svgWidth:24,svgHeight:24})),dH='',pH=$.forwardRef((n,e)=>se.jsx(Us,{...n,ref:e,text:dH,svgWidth:24,svgHeight:24}));function Ft(n,e,t){return new Je().setHSL(n/360,e/100,t/100,"srgb")}const yn=z5({light:{background:Ft(0,0,100),foreground:Ft(222.2,84,4.9),card:Ft(0,0,100),cardForeground:Ft(222.2,84,4.9),popover:Ft(0,0,100),popoverForeground:Ft(222.2,84,4.9),primary:Ft(222.2,47.4,11.2),primaryForeground:Ft(210,40,98),secondary:Ft(210,40,96.1),secondaryForeground:Ft(222.2,47.4,11.2),muted:Ft(210,40,96.1),mutedForeground:Ft(215.4,16.3,46.9),accent:Ft(210,40,96.1),accentForeground:Ft(222.2,47.4,11.2),destructive:Ft(0,72.22,50.59),destructiveForeground:Ft(210,40,98),border:Ft(214.3,31.8,91.4),input:Ft(214.3,31.8,91.4),ring:Ft(222.2,84,4.9)},dark:{background:Ft(222.2,84,4.9),foreground:Ft(210,40,98),card:Ft(222.2,84,4.9),cardForeground:Ft(210,40,98),popover:Ft(222.2,84,4.9),popoverForeground:Ft(210,40,98),primary:Ft(210,40,98),primaryForeground:Ft(222.2,47.4,11.2),secondary:Ft(217.2,32.6,17.5),secondaryForeground:Ft(210,40,98),muted:Ft(217.2,32.6,17.5),mutedForeground:Ft(215,20.2,65.1),accent:Ft(217.2,32.6,17.5),accentForeground:Ft(210,40,98),destructive:Ft(0,62.8,30.6),destructiveForeground:Ft(210,40,98),border:Ft(217.2,32.6,17.5),input:Ft(217.2,32.6,17.5),ring:Ft(212.7,26.8,83.9)}});function gH(n){return se.jsx(Mu,{scrollbarColor:yn.foreground,scrollbarBorderRadius:4,scrollbarOpacity:.3,borderColor:yn.border,color:yn.foreground,...n})}const Uv=$.createContext(null);function mH({value:n,onValueChange:e,defaultValue:t,children:i,...r}){const[s,o]=$.useState(t),a=$.useMemo(()=>n==null?{value:s,setValue:c=>{o(c),e==null||e(c)}}:{value:n,setValue:e},[s,e,n]);return se.jsx(rn,{...r,children:se.jsx(Uv.Provider,{value:a,children:i})})}function EH({children:n,...e}){return se.jsx(rn,{height:40,flexDirection:"row",alignItems:"center",borderRadius:6,backgroundColor:yn.muted,padding:4,...e,children:se.jsx(Mu,{color:yn.mutedForeground,children:n})})}function OE({children:n,value:e,disabled:t=!1,...i}){const{setValue:r,value:s}=$.useContext(Uv),o=e===s;return se.jsx(rn,{onClick:t?void 0:a=>r==null?void 0:r(e),cursor:t?void 0:"pointer",flexDirection:"row",alignItems:"center",borderRadius:2,paddingX:12,backgroundOpacity:t?.5:void 0,backgroundColor:o?yn.background:void 0,paddingY:6,justifyContent:"center",...i,children:se.jsx(Mu,{opacity:t?.5:void 0,color:o?yn.foreground:void 0,fontSize:14,fontWeight:"medium",lineHeight:1.43,wordBreak:"keep-all",children:n})})}function CH({value:n,...e}){const{value:t}=$.useContext(Uv);return n!=t?null:se.jsx(rn,{marginTop:8,...e})}function HE({orientation:n="horizontal",...e}){return se.jsx(rn,{flexShrink:0,backgroundColor:yn.border,width:n==="horizontal"?"100%":1,height:n==="horizontal"?1:"100%",...e})}const yH={default:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:yn.primary},defaultProps:{color:yn.primaryForeground}},destructive:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:yn.destructive},defaultProps:{color:yn.destructiveForeground}},outline:{containerHoverProps:{backgroundColor:yn.accent},containerProps:{border:1,borderColor:yn.input,backgroundColor:yn.background}},secondary:{containerHoverProps:{backgroundOpacity:.8},containerProps:{backgroundColor:yn.secondary},defaultProps:{color:yn.secondaryForeground}},ghost:{containerHoverProps:{backgroundColor:yn.accent},defaultProps:{}},link:{containerProps:{},defaultProps:{color:yn.primary}}},vH={default:{height:40,paddingX:16,paddingY:8},sm:{height:36,paddingX:12},lg:{height:42,paddingX:32},icon:{height:40,width:40}};function Zr({children:n,variant:e="default",size:t="default",disabled:i=!1,hover:r,...s}){const{containerProps:o,defaultProps:a,containerHoverProps:c}=yH[e],A=vH[t];return se.jsx(rn,{borderRadius:6,alignItems:"center",justifyContent:"center",...o,...A,borderOpacity:i?.5:void 0,backgroundOpacity:i?.5:void 0,cursor:i?void 0:"pointer",flexDirection:"row",hover:{...c,...r},...s,children:se.jsx(Mu,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",...a,opacity:i?.5:void 0,children:n})})}function zS({album:n,aspectRatio:e="portrait",width:t,height:i,...r}){return se.jsxs(rn,{gap:12,...r,children:[se.jsx(bT,{borderRadius:6,src:n.cover,width:t,height:i,fit:"cover",aspectRatio:e==="portrait"?3/4:1}),se.jsxs(rn,{gap:4,children:[se.jsx(hn,{fontWeight:"medium",fontSize:14,lineHeight:1,children:n.name}),se.jsx(hn,{fontSize:12,lineHeight:1.3333,color:yn.mutedForeground,children:n.artist})]})]})}const IH=[{name:"React Rendezvous",artist:"Ethan Byte",cover:"https://images.unsplash.com/photo-1611348586804-61bf6c080437?w=300&dpr=2&q=80"},{name:"Async Awakenings",artist:"Nina Netcode",cover:"https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80"},{name:"The Art of Reusability",artist:"Lena Logic",cover:"https://images.unsplash.com/photo-1528143358888-6d3c7f67bd5d?w=300&dpr=2&q=80"},{name:"Stateful Symphony",artist:"Beth Binary",cover:"https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80"}],xH=[{name:"Thinking Components",artist:"Lena Logic",cover:"https://images.unsplash.com/photo-1615247001958-f4bc92fa6a4a?w=300&dpr=2&q=80"},{name:"Functional Fury",artist:"Beth Binary",cover:"https://images.unsplash.com/photo-1513745405825-efaf9a49315f?w=300&dpr=2&q=80"},{name:"React Rendezvous",artist:"Ethan Byte",cover:"https://images.unsplash.com/photo-1614113489855-66422ad300a4?w=300&dpr=2&q=80"},{name:"Stateful Symphony",artist:"Beth Binary",cover:"https://images.unsplash.com/photo-1446185250204-f94591f7d702?w=300&dpr=2&q=80"},{name:"Async Awakenings",artist:"Nina Netcode",cover:"https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80"},{name:"The Art of Reusability",artist:"Lena Logic",cover:"https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80"}];function BH({playlists:n,...e}){return se.jsx(rn,{overflow:"scroll",paddingRight:20,paddingBottom:48,...e,children:se.jsxs(rn,{paddingBottom:16,gap:16,children:[se.jsxs(rn,{paddingX:12,paddingY:8,children:[se.jsx(hn,{marginBottom:8,paddingX:16,fontWeight:"semi-bold",fontSize:18,lineHeight:1.5555,letterSpacing:-.4,children:"Discover"}),se.jsxs(rn,{gap:4,children:[se.jsxs(Zr,{variant:"secondary",justifyContent:"flex-start",children:[se.jsx(OS,{marginRight:8,width:16,height:16}),se.jsx(hn,{children:"Models"})]}),se.jsxs(Zr,{variant:"ghost",justifyContent:"flex-start",children:[se.jsx(kS,{marginRight:8,width:16,height:16}),se.jsx(hn,{children:"Materials"})]}),se.jsxs(Zr,{variant:"ghost",justifyContent:"flex-start",children:[se.jsx(GS,{marginRight:8,width:16,height:16}),se.jsx(hn,{children:"HDRIS"})]})]})]}),se.jsxs(rn,{paddingX:12,paddingY:8,children:[se.jsx(hn,{marginBottom:8,paddingX:16,fontWeight:"semi-bold",fontSize:18,lineHeight:1.5555,letterSpacing:-.4,children:"Collections"}),se.jsxs(rn,{gap:4,children:[se.jsxs(Zr,{variant:"ghost",justifyContent:"flex-start",children:[se.jsx(HS,{marginRight:8,width:16,height:16}),se.jsx(hn,{children:"Favorits"})]}),se.jsxs(Zr,{variant:"ghost",justifyContent:"flex-start",children:[se.jsx(OS,{marginRight:8,width:16,height:16}),se.jsx(hn,{children:"Models"})]}),se.jsxs(Zr,{variant:"ghost",justifyContent:"flex-start",children:[se.jsx(kS,{marginRight:8,width:16,height:16}),se.jsx(hn,{children:"Materials"})]}),se.jsxs(Zr,{variant:"ghost",justifyContent:"flex-start",children:[se.jsx(GS,{marginRight:8,width:16,height:16}),se.jsx(hn,{children:"HDRIs"})]}),se.jsxs(Zr,{variant:"ghost",justifyContent:"flex-start",children:[se.jsx(pH,{marginRight:8,width:16,height:16}),se.jsx(hn,{children:"Creators"})]})]})]}),se.jsxs(rn,{paddingY:8,children:[se.jsx(hn,{paddingX:28,fontSize:18,lineHeight:1.5555,fontWeight:"semi-bold",letterSpacing:-.4,children:"Favorits"}),se.jsx(rn,{paddingX:4,flexDirection:"column",gap:4,padding:8,children:n==null?void 0:n.map((t,i)=>se.jsxs(Zr,{variant:"ghost",justifyContent:"flex-start",children:[se.jsx(HS,{marginRight:8,width:16,height:16}),se.jsx(hn,{fontWeight:"normal",children:t})]},`${t}-${i}`))})]})]})})}const _H=["Recently Added","Recently Played","Top Songs","Top Albums","Top Artists","Logic Discography","Bedtime Beats","Feeling Happy","I miss Y2K Pop","Runtober","Mellow Days","Eminem Essentials"];function rl({children:n}){return se.jsx(se.Fragment,{children:n})}function SH(n){return se.jsx(rn,{flexDirection:"row",height:40,alignItems:"center",gap:4,borderRadius:4,border:1,backgroundColor:yn.background,padding:4,...n})}function bc({children:n,...e}){return se.jsx(rn,{hover:{backgroundColor:yn.accent},flexDirection:"row",alignItems:"center",cursor:"pointer",borderRadius:6,paddingY:6,paddingX:12,...e,children:se.jsx(Mu,{fontSize:14,lineHeight:1.4333,fontWeight:"medium",children:n})})}function wH(){const[n,e]=$.useState(()=>gS());return se.jsxs(SH,{borderRadius:0,paddingX:8,lg:{paddingX:16},children:[se.jsx(rl,{children:se.jsx(bc,{children:se.jsx(Us,{text:'',svgWidth:194,svgHeight:50,width:70})})}),se.jsx(rl,{children:se.jsx(bc,{children:se.jsx(hn,{children:"File"})})}),se.jsx(rl,{children:se.jsx(bc,{children:se.jsx(hn,{children:"Edit"})})}),se.jsx(rl,{children:se.jsx(bc,{children:se.jsx(hn,{children:"View"})})}),se.jsx(rl,{children:se.jsx(bc,{children:se.jsx(hn,{children:"Account"})})}),se.jsx(rn,{flexGrow:1}),se.jsx(rl,{children:se.jsx(Zr,{variant:"ghost",size:"sm",onClick:()=>window.open("https://github.com/pmndrs/uikit/tree/main/examples/market","_blank"),children:se.jsx(hn,{children:"Source Code"})})}),se.jsx(rl,{children:se.jsx(bc,{onClick:()=>{O5(n==="light"?"dark":n==="dark"?"system":"light"),e(gS())},children:n==="dark"?se.jsx(sH,{}):n==="system"?se.jsx(AH,{}):se.jsx(fH,{})})})]})}function MH(){return se.jsx(Q5,{flat:!0,camera:{position:[0,0,18],fov:35},style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:se.jsx(jO,{children:se.jsx(gH,{children:se.jsx(Mu,{scrollbarWidth:8,scrollbarOpacity:.1,scrollbarBorderRadius:4,children:se.jsx(QH,{})})})})})}function QH(){return se.jsxs(rn,{height:"100%",flexDirection:"column",children:[se.jsx(wH,{}),se.jsxs(rn,{flexBasis:0,flexGrow:1,borderTop:1,backgroundColor:yn.background,flexDirection:"row",children:[se.jsx(BH,{marginTop:16,playlists:_H}),se.jsx(HE,{orientation:"vertical"}),se.jsx(rn,{marginTop:16,overflow:"scroll",flexGrow:1,flexBasis:0,paddingX:16,paddingBottom:24,paddingTop:8,lg:{paddingX:32},children:se.jsxs(mH,{defaultValue:"music",height:"100%",gap:24,children:[se.jsxs(rn,{flexDirection:"row",justifyContent:"space-between",alignItems:"center",children:[se.jsxs(EH,{children:[se.jsx(OE,{value:"music",children:se.jsx(hn,{children:"Models"})}),se.jsx(OE,{value:"podcasts",disabled:!0,children:se.jsx(hn,{children:"HDRIS"})}),se.jsx(OE,{value:"live",disabled:!0,children:se.jsx(hn,{children:"Materials"})})]}),se.jsx(rn,{marginLeft:"auto",marginRight:16,children:se.jsxs(Zr,{children:[se.jsx(lH,{marginRight:8,height:16,width:16}),se.jsx(hn,{children:"Request Model"})]})})]}),se.jsxs(CH,{value:"music",border:0,padding:0,children:[se.jsx(rn,{flexDirection:"row",alignItems:"center",justifyContent:"space-between",children:se.jsxs(rn,{gap:4,children:[se.jsx(hn,{fontWeight:"semi-bold",letterSpacing:-.4,fontSize:18,lineHeight:1.55555,children:"Trending"}),se.jsx(hn,{color:yn.mutedForeground,fontSize:14,lineHeight:1.43333,children:"Top picks for you. Updated daily."})]})}),se.jsx(HE,{marginY:16}),se.jsx(rn,{flexDirection:"row",overflow:"scroll",gap:16,paddingBottom:16,children:IH.map(n=>se.jsx(zS,{album:n,width:250,height:330,aspectRatio:"portrait"},n.name))}),se.jsxs(rn,{marginTop:24,gap:4,children:[se.jsx(hn,{fontWeight:"semi-bold",letterSpacing:-.4,fontSize:18,lineHeight:1.55555,children:"Made By You"}),se.jsx(hn,{color:yn.mutedForeground,fontSize:14,lineHeight:1.43333,children:"Your personal models."})]}),se.jsx(HE,{marginY:16}),se.jsx(rn,{flexShrink:1,flexDirection:"row",overflow:"scroll",gap:16,paddingBottom:16,children:xH.map(n=>se.jsx(zS,{album:n,aspectRatio:"square",width:150,height:150},n.name))})]})]})})]})]})}r2(document.getElementById("root")).render(se.jsx($.StrictMode,{children:se.jsx(MH,{})})); + `)}class aO extends nn{constructor(t,i,r){const s=BT();super(s);We(this,"count",0);We(this,"isInstancedMesh",!0);We(this,"instanceColor",null);We(this,"morphTexture",null);We(this,"boundingBox",new ti);We(this,"boundingSphere",new ui);this.instanceMatrix=t,this.frustumCulled=!1,s.attributes.aData=i,s.attributes.aClipping=r,this.customDepthMaterial=rO,this.customDistanceMaterial=sO}dispose(){this.dispatchEvent({type:"dispose"})}copy(){throw new Error("copy not implemented")}computeBoundingBox(){}computeBoundingSphere(){}updateMorphTargets(){}raycast(){}spherecast(){}}class lO extends Gr{constructor(t,i,r,s,o,a){super();We(this,"mesh");We(this,"instanceMatrix");We(this,"instanceData");We(this,"instanceClipping");We(this,"buckets",[]);We(this,"elementCount",0);We(this,"bufferElementSize",0);We(this,"timeToNextUpdate");We(this,"activateElement",(t,i,r)=>{const s=i.offset+r;this.instanceData.set(wT,16*s),this.instanceData.addUpdateRange(16*s,16),this.instanceData.needsUpdate=!0,t.activate(i,r)});We(this,"setElementIndex",(t,i)=>{t.setIndexInBucket(i)});We(this,"bufferCopyWithin",(t,i,r)=>{OE(this.instanceMatrix,t,i,r),OE(this.instanceData,t,i,r),OE(this.instanceClipping,t,i,r)});We(this,"clearBufferAt",t=>{const i=t*16;this.instanceMatrix.array.fill(0,i,i+16),this.instanceMatrix.addUpdateRange(i,16),this.instanceMatrix.needsUpdate=!0});this.material=t,this.pixelSize=i,this.cameraDistance=r,this.orderInfo=s,this.meshReceiveShadow=o,this.meshCastShadow=a}updateCount(){const t=this.buckets[this.buckets.length-1],i=t.offset+t.elements.length;this.mesh!=null&&(this.mesh.count=i),this.visible=i>0}insert(t,i){if(this.elementCount+=1,!jG(this.buckets,t,i,this.activateElement)){this.updateCount();return}this.requestUpdate(0)}delete(t,i,r){if(this.elementCount-=1,!ZG(this.buckets,t,r,i,this.activateElement,this.clearBufferAt,this.setElementIndex,this.bufferCopyWithin)){this.updateCount();return}this.requestUpdate(1e3)}onFrame(t){this.timeToNextUpdate!=null&&(this.timeToNextUpdate-=t,!(this.timeToNextUpdate>0)&&(this.update(),this.timeToNextUpdate=void 0))}requestUpdate(t){this.timeToNextUpdate=Math.min(this.timeToNextUpdate??1/0,t)}update(){if(this.elementCount===0){this.visible=!1;return}this.elementCount>this.bufferElementSize?this.resize():this.elementCount<=this.bufferElementSize/3&&this.resize(),$G(this.buckets,this.activateElement,this.bufferCopyWithin),this.mesh.count=this.elementCount,this.visible=!0}resize(){const t=this.bufferElementSize;this.bufferElementSize=Math.ceil(this.elementCount*1.5),this.mesh!=null&&(this.mesh.dispose(),this.remove(this.mesh)),qG(this.buckets,t,this.bufferElementSize);const i=new Float32Array(this.bufferElementSize*16);this.instanceMatrix!=null&&i.set(this.instanceMatrix.array.subarray(0,i.length)),this.instanceMatrix=new vr(i,16,!1),this.instanceMatrix.setUsage(la);const r=new Float32Array(this.bufferElementSize*16);this.instanceData!=null&&r.set(this.instanceData.array.subarray(0,r.length)),this.instanceData=new vr(r,16,!1),this.instanceData.setUsage(la);const s=new Float32Array(this.bufferElementSize*16);this.instanceClipping!=null&&s.set(this.instanceClipping.array.subarray(0,s.length)),this.instanceClipping=new vr(s,16,!1),this.instanceClipping.setUsage(la),this.mesh=new aO(this.instanceMatrix,this.instanceData,this.instanceClipping),jl(this.mesh,this.cameraDistance,this.orderInfo),this.mesh.material=this.material,this.mesh.receiveShadow=this.meshReceiveShadow,this.mesh.castShadow=this.meshCastShadow,this.add(this.mesh)}destroy(){}}function OE(n,e,t,i){const r=n.itemSize,s=t*r,o=i*r,a=e*r;n.array.copyWithin(a,s,o);const c=o-s;n.addUpdateRange(s,c),n.addUpdateRange(a,c),n.needsUpdate=!0}const NS={backgroundColor:(n,e,t)=>Hy(n.instanceData,e,t??ST,4),borderBottomLeftRadius:(n,e,t,{value:i})=>cp(n.instanceData,e,7,0,t,i[1]),borderBottomRightRadius:(n,e,t,{value:i})=>cp(n.instanceData,e,7,1,t,i[1]),borderTopRightRadius:(n,e,t,{value:i})=>cp(n.instanceData,e,7,2,t,i[1]),borderTopLeftRadius:(n,e,t,{value:i})=>cp(n.instanceData,e,7,3,t,i[1]),borderColor:(n,e,t)=>Hy(n.instanceData,e,t??16777215,8),borderBend:(n,e,t)=>HE(n.instanceData,e,11,t??0),borderOpacity:(n,e,t)=>HE(n.instanceData,e,12,t??1),backgroundOpacity:(n,e,t)=>HE(n.instanceData,e,15,t??-1)},cO=["borderOpacity","backgroundColor","backgroundOpacity"],lp=new ft,uO=new ft;class zv{constructor(e,t,i,r,s,o,a,c){We(this,"indexInBucket");We(this,"bucket");We(this,"unsubscribeList",[]);We(this,"unsubscribeVisible");We(this,"destroyed",!1);We(this,"insertedIntoGroup",!1);We(this,"active",Gt(!1));We(this,"getProperty",Gt(void 0));this.group=e,this.matrix=t,this.size=i,this.offset=r,this.borderInset=s,this.clippingRect=o,this.minorIndex=c,this.unsubscribeVisible=Xt(()=>{const A=this.getProperty.value;if(A!=null&&_T(s,i,a,A("borderOpacity"),A("backgroundOpacity"),A("backgroundColor"))){this.requestShow();return}this.hide()})}hasBatchedProperty(e){return cO.includes(e)}hasImmediateProperty(e){return e in NS}setProperty(e,t){const i=this.getIndexInBuffer();i!=null&&NS[e](this.group,i,t,this.size)}setIndexInBucket(e){this.indexInBucket=e}getIndexInBuffer(){if(!(this.bucket==null||this.indexInBucket==null))return this.bucket.offset+this.indexInBucket}activate(e,t){this.bucket=e,this.indexInBucket=t,this.active.value=!0,this.unsubscribeList.push(Xt(()=>{const i=this.matrix.value;if(i==null)return;const{instanceMatrix:r,pixelSize:s}=this.group,o=this.getIndexInBuffer();if(o==null)return;const a=o*16,[c,A]=this.size.value;if(lp.makeScale(c*s,A*s,1),this.offset!=null){const[h,f]=this.offset.value;lp.premultiply(uO.makeTranslation(h*s,f*s,0))}lp.premultiply(i),lp.toArray(r.array,a),r.addUpdateRange(a,16),r.needsUpdate=!0}),Xt(()=>{const[i,r]=this.size.value,{instanceData:s}=this.group,{array:o}=s,a=this.getIndexInBuffer();if(a==null)return;const c=a*16+13;o[c]=i,o[c+1]=r,s.addUpdateRange(c,2),s.needsUpdate=!0}),Xt(()=>{const{instanceData:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16+0;i.array.set(this.borderInset.value,s),i.addUpdateRange(s,4),i.needsUpdate=!0}),Xt(()=>{var a;const{instanceClipping:i}=this.group,r=this.getIndexInBuffer();if(r==null)return;const s=r*16,o=(a=this.clippingRect)==null?void 0:a.value;o!=null?o.toArray(i.array,s):i.array.set(yg,s),i.addUpdateRange(s,16),i.needsUpdate=!0}))}requestShow(){this.insertedIntoGroup||(this.insertedIntoGroup=!0,this.group.insert(this.minorIndex,this))}hide(){if(!this.insertedIntoGroup)return;this.active.value=!1,this.group.delete(this.minorIndex,this.indexInBucket,this),this.insertedIntoGroup=!1,this.bucket=void 0,this.indexInBucket=void 0;const e=this.unsubscribeList.length;for(let t=0;te.hasImmediateProperty.bind(e),[e]),a=J.useCallback(c=>{if(!i.current){r.current=c;return}LS(c,r.current,s.current,e),r.current=c},[e]);mi(()=>{if(i.current=e.active.value,!i.current){PS(s.current),s.current={};return}return LS(r.current,AO,s.current,e),()=>{PS(s.current),s.current={}}},[e]),iT(n,o,a,t)}function LS(n,e,t,i){var r,s;for(const o in n){const a=n[o];if(o in e){const c=e[o];if(delete e[o],rT(a,c))continue;(r=t[o])==null||r.call(t)}t[o]=Xt(()=>{const c=Uy(a);i.setProperty(o,c)})}for(const o in e)(s=t[o])==null||s.call(t),delete t[o],Uy(e[o])!==void 0&&i.setProperty(o,void 0)}function PS(n){for(const e in n)n[e]()}function _o({handlers:n,hoverHandlers:e,activeHandlers:t,inputHandlers:i,matrix:r,children:s,groupRef:o}){return J.useEffect(()=>{const a=o.current;if(a!=null)return Xt(()=>r.value!=null&&a.matrix.copy(r.value))},[o,r]),oe.jsx("group",{ref:o,onPointerOut:$o(n.onPointerOut,e==null?void 0:e.onPointerOut),onPointerOver:$o(n.onPointerOver,e==null?void 0:e.onPointerOver),onPointerUp:$o(n.onPointerUp,$o(t==null?void 0:t.onPointerUp,i==null?void 0:i.onPointerUp)),onPointerDown:$o(n.onPointerDown,$o(t==null?void 0:t.onPointerDown,i==null?void 0:i.onPointerDown)),onPointerLeave:$o(n.onPointerLeave,t==null?void 0:t.onPointerLeave),onPointerMove:$o(n.onPointerMove,i==null?void 0:i.onPointerMove),onWheel:n.onWheel,onClick:n.onClick,onContextMenu:n.onContextMenu,onDoubleClick:n.onDoubleClick,onPointerCancel:n.onPointerCancel,onPointerEnter:n.onPointerEnter,onPointerMissed:n.onPointerMissed,matrixAutoUpdate:!1,children:s})}function $o(n,e){return n==null?e:e==null?n:t=>{e(t),!t.stopped&&n(t)}}function Zl(n,e,t,i){const r=Us(),s=J.useMemo(()=>{const o=new nn(Hv);return o.matrixAutoUpdate=!1,o.raycast=bu(o,IT(o),i,r,t),o.visible=!1,o},[r,t,i]);return mi(()=>{const[o,a]=n.value;s.scale.set(o*e.pixelSize,a*e.pixelSize,1),s.updateMatrix()},[n,e]),s}const NT=J.createContext(void 0);function Vv(){const n=J.useContext(NT);if(n==null)throw new Error("Can only be used inside a component.");return n}function hO(n,e,t,i,r,s,o){const{materials:a,setter:c}=J.useMemo(()=>{const A=new iO(e,t,i),h={data:A.data,type:"normal"},f=MT(r??or,h),d=new RT(h),m=new QT(h);return f.clippingPlanes=s,d.clippingPlanes=s,m.clippingPlanes=s,{materials:[f,d,m],setter:A}},[e,t,i,r,s]);return Yr(n,c,o),dm(n,c,o),J.useEffect(()=>()=>c.destroy(),[c]),a}function Fs(n=or,{castShadow:e=!1,receiveShadow:t=!1}){return J.useMemo(()=>({materialClass:n,castShadow:e,receiveShadow:t}),[n,e,t])}function ka(n,e,t,i,r,s,o,a,c,A,h){const f=h??Vv(),d=J.useMemo(()=>new zv(f(o.majorIndex,c),e,t,i,r,a,s,o.minorIndex),[f,e,t,r,a,s,o,i,c]);J.useEffect(()=>()=>d.destroy(),[d]),Yr(n,d,A),dm(n,d,A)}function fO(n,e,t){const i=J.useMemo(()=>new Map,[]),r=J.useCallback((s,{materialClass:o,receiveShadow:a,castShadow:c})=>{let A=i.get(o);A==null&&i.set(o,A=new Map);const h=(s<<2)+((a?1:0)<<1)+(c?1:0);let f=A.get(h);if(f==null){const d=MT(o,{type:"instanced"});A.set(h,f=new lO(d,n,e,{elementType:Ai.Panel,majorIndex:s,minorIndex:0},a,c)),t.add(f)}return f},[n,i,e,t]);return Na((s,o)=>{for(const a of i.values())for(const c of a.values())c.onFrame(o)}),r}const dO=NT.Provider,Jy=[],Gp=[];function pO(n,e){Jy.push(n),Gp.push(e),document.body.style.cursor=e}function US(n){const e=Jy.indexOf(n);e!=-1&&(Jy.splice(e,1),Gp.splice(e,1),document.body.style.cursor=Gp[Gp.length-1]??"default")}function So(n,e,t){const i=J.useMemo(()=>Gt([]),[]),r=J.useMemo(()=>so(()=>i.value.length>0),[]);let s=!1;Tu(e,a=>{a.hover!=null&&(s=!0,r(n,a.hover))}),J.useEffect(()=>()=>US(i),[]);const o=e.cursor??t;if(!s&&e.onHoverChange==null&&o==null){i.value.length=0;return}return{onPointerOver:a=>{i.value=[a.pointerId,...i.value],e.onHoverChange!=null&&i.value.length===1&&e.onHoverChange(!0),o!=null&&pO(i,o)},onPointerOut:a=>{i.value=i.value.filter(c=>c!=a.pointerId),e.onHoverChange!=null&&i.value.length===0&&e.onHoverChange(!1),US(i)}}}function pm(n){return(e,t,i,r)=>{if(i(e)){r(e,t);return}const s=n[e];if(s==null)return;const o=s.length;if(i(s[0]))for(let a=0;aGt([0,0]),[])}function vO(n,e,t){return J.useMemo(()=>zn(()=>{const i=t.value;if(i==null)return;const[r,s]=n.value,{pixelSize:o}=e;return new ft().makeTranslation(-r*o,s*o,0).premultiply(i)}),[n,e,t])}function IO({node:n,scrollPosition:e,children:t}){const i=J.useRef(null);return J.useEffect(()=>Xt(()=>{var a,c;const[r,s]=e.value,{pixelSize:o}=n;(a=i.current)==null||a.position.set(-r*o,s*o,0),(c=i.current)==null||c.updateMatrix()}),[n,e]),oe.jsx("group",{ref:i,children:t})}function Zh({listeners:n,node:e,scrollPosition:t,children:i}){const[r,s]=J.useState(()=>e.scrollable.value.some(f=>f));mi(()=>s(e.scrollable.value.some(f=>f)),[e]);const o=J.useRef(n.onScroll);o.current=n.onScroll;const a=J.useMemo(()=>new Map,[]),c=J.useMemo(()=>new _e,[]),A=J.useCallback((f,d,m,E,x)=>{var b,q;const[C,p]=f==null?[!1,!1]:xO(f.nativeEvent);C&&(d=0),p&&(m=0);const[I,y]=t.value,[B,R]=e.maxScrollPosition.value;let[M,T]=t.value;const[P,K]=((b=e.anyAncestorScrollable)==null?void 0:b.value)??[!1,!1];M=FS(I,B,d,x&&!P),T=FS(y,R,m,x&&!K),E!=null&&E>0&&c.set(d,m).divideScalar(E),f!=null&&BO(f.nativeEvent,C||Math.min(I,(B??0)-I)>5,p||Math.min(y,(R??0)-y)>5),!(((q=o.current)==null?void 0:q.call(o,M,T,t,f))===!1||I===M&&y===T)&&(t.value=[M,T])},[e,t,c]);Na((f,d)=>{if(a.size>0)return;let m=0,E=0;const[x,C]=t.value,[p,I]=e.maxScrollPosition.value;m+=Ky(x,0,p??0)*-.3,E+=Ky(C,0,I??0)*-.3,m+=c.x*d,E+=c.y*d,c.multiplyScalar(.9),Math.abs(c.x)<.01&&(c.x=0),Math.abs(c.y)<.01&&(c.y=0),!(m===0&&E===0)&&A(void 0,m,E,void 0,!0)});const h=J.useRef(null);return r?oe.jsx("group",{ref:h,matrixAutoUpdate:!1,onPointerDown:f=>{let d=a.get(f.pointerId);d==null&&a.set(f.pointerId,d={timestamp:0,point:new G}),d.timestamp=performance.now()/1e3,h.current.worldToLocal(d.point.copy(f.point))},onPointerUp:f=>{a.delete(f.pointerId)},onPointerLeave:f=>{a.delete(f.pointerId)},onPointerCancel:f=>{a.delete(f.pointerId)},onContextMenu:f=>f.nativeEvent.preventDefault(),onPointerMove:f=>{const d=a.get(f.pointerId);if(d==null)return;h.current.worldToLocal(VE.copy(f.point)),zE.copy(VE).sub(d.point).divideScalar(e.pixelSize);const m=performance.now()/1e3,E=m-d.timestamp;d.point.copy(VE),d.timestamp=m,!f.defaultPrevented&&A(f,-zE.x,zE.y,E,!0)},onWheel:f=>{f.defaultPrevented||A(f,f.deltaX,f.deltaY,void 0,!1)},children:i}):oe.jsx("group",{matrixAutoUpdate:!1,children:i})}const PT=Symbol("was-scrolled");function xO(n){return n[PT]??[!1,!1]}function BO(n,e,t){n[PT]=[e,t]}function FS(n,e,t,i){if(t===0)return n;const r=Ky(n,0,e??0);kS(t)===kS(r)&&(t*=Math.max(0,1-Math.abs(r)/100));let s=n+t;return i&&e!=null?s:Ov(s,0,e??0)}function kS(n){return n>=0}function Ky(n,e,t){return nt?n-t:0}const GS=9;function UT(n){return n[GS].toLowerCase()+n.slice(GS+1)}const _O=(n,e,t,i)=>{if(n.startsWith("scrollbarBorder")){if(n=UT(n),t(n)){i(n,e);return}gO(n,e,t,i)}},SO=(n,e,t,i)=>{if(n.startsWith("scrollbar")){if(n==="scrollbarOpacity"){i("backgroundOpacity",e);return}if(n==="scrollbarColor"){i("backgroundColor",e);return}if(n=UT(n),t(n)){i(n,e);return}Mo(n,e,t,i)}};function $h(n,e,t,i,r,s,o,a,c){const A=Fs(s,{castShadow:!1,receiveShadow:!1}),h=bi(Ai.Panel,void 0,A,a),f=As(n,wO),d=As(n,MO,_O),m=J.useMemo(()=>zn(()=>{const C=d.value;return[(C==null?void 0:C("scrollbarBorderTop"))??0,(C==null?void 0:C("scrollbarBorderRight"))??0,(C==null?void 0:C("scrollbarBorderBottom"))??0,(C==null?void 0:C("scrollbarBorderLeft"))??0]}),[d]),E=n.length;OS(n,0,e,t,i,r,s,o,h,c,f,m),OS(n,1,e,t,i,r,s,o,h,c,f,m);const x=n.length;for(let C=E;C{const x=zn(()=>{const C=h.value;if(C!=null)return QO(e,C("scrollbarWidth")??10,i.size.value,i.maxScrollPosition.value,i.borderInset.value,t.value)});return[zn(()=>{var C;return((C=x.value)==null?void 0:C.slice(0,2))??[0,0]}),zn(()=>{var C;return((C=x.value)==null?void 0:C.slice(2,4))??[0,0]})]},[e,i,t,h]),E=J.useMemo(()=>({materialClass:o??or,receiveShadow:!1,castShadow:!1}),[o]);ka(n,r,m,d,f,s,c,a,E,SO,A)}function QO(n,e,t,i,r,s){const o=[0,0,0,0],a=i[n];if(a==null)return o;const c=1-n,A=t[n]-r[c]-r[c+2],h=Math.max(e,A*A/(a+A)),f=A-h,d=s[n];return o[n]=t[n]*.5-h*.5-r[(n+3)%4]-f*Ov(d/a,0,1),o[c]=t[c]*.5-e*.5-r[c+1],n===0&&(o[0]*=-1,o[1]*=-1),o[n+2]=h,o[c+2]=e,o}function Ga(n,e,t,i){J.useImperativeHandle(n,()=>({borderInset:e.borderInset,paddingInset:e.paddingInset,pixelSize:e.pixelSize,center:e.relativeCenter,size:e.size,interactionPanel:t instanceof nn?t:t.current,scrollPosition:i}),[t,e,i])}function Qo({onSizeChange:n},e){const t=J.useMemo(()=>{if(n==null)return;let i=!0;return Xt(()=>{const r=e.value;if(i){i=!1;return}n(...r)})},[n,e]);J.useEffect(()=>t,[t])}function Oa({onIsInViewportChange:n},e){const t=J.useMemo(()=>{if(n==null)return;let i=!0;return Xt(()=>{const r=!e.value;if(i){i=!1;return}n(r)})},[e,n]);J.useEffect(()=>t,[t])}function Ha(n){const e=J.useContext(FT);if(e==null)throw new Error("Can only be used inside a uikit component.");return J.useMemo(()=>zn(()=>{const t=n.value,i=e.value;if(!(t==null||i==null))return i.clone().multiply(t)}),[n,e])}const FT=J.createContext(void 0),RO=FT.Provider;function ef({globalMatrix:n,node:e,scrollPosition:t,children:i,orderInfo:r}){const s=Us(),o=uG(n,e.size,e.borderInset,e.overflow,e,s),a=vO(t,e,n);return oe.jsx(IO,{node:e,scrollPosition:t,children:oe.jsx(RO,{value:a,children:oe.jsx(Gv,{value:e,children:oe.jsx(lG,{value:o,children:oe.jsx(IG,{value:r,children:i})})})})})}const kT="transformTranslateX",GT="transformTranslateY",OT="transformTranslateZ",HT="transformRotateX",zT="transformRotateY",VT="transformRotateZ",WT="transformScaleX",YT="transformScaleY",XT="transformScaleZ",TO=[kT,GT,OT,HT,zT,VT,WT,YT,XT],DO=new G,bO=new G,up=new G,WE=new ft,NO=new Su,LO=new Wi,YE=Math.PI/180;function PO([n,e,t]){return LO.setFromEuler(NO.set(n*YE,e*YE,t*YE))}function Ro(n,e){const t=As(n,TO,yO);return J.useMemo(()=>zn(()=>{const i=t.value;if(i==null)return;const{pixelSize:r,relativeCenter:s}=e,[o,a]=s.value,c=new ft().makeTranslation(o*r,a*r,0),A=i("transformOriginX")??"center",h=i("transformOriginY")??"center";let f=!0;if(A!="center"||h!="center"){const[x,C]=e.size.value;f=!1,up.set(-aT[A]*x*r,-lT[h]*C*r,0),c.multiply(WE.makeTranslation(up)),up.negate()}const d=[i(HT)??0,i(zT)??0,i(VT)??0],m=[i(kT)??0,-(i(GT)??0),i(OT)??0],E=[i(WT)??1,i(YT)??1,i(XT)??1];return(m.some(x=>x!=0)||d.some(x=>x!=0)||E.some(x=>x!=1))&&c.multiply(WE.compose(DO.fromArray(m).multiplyScalar(r),PO(d),bO.fromArray(E))),f||c.multiply(WE.makeTranslation(up)),c}),[t,e])}function To(n,e){const t=J.useMemo(()=>Gt([]),[]),i=J.useMemo(()=>so(()=>t.value.length>0),[]);let r=!1;if(Tu(e,o=>{o.active!=null&&(r=!0,i(n,o.active))}),!r&&e.onActiveChange==null){t.value.length=0;return}const s=o=>{t.value=t.value.filter(a=>a!=o.pointerId),!(e.onActiveChange==null||t.value.length>0)&&e.onActiveChange(!1)};return{onPointerDown:o=>{t.value=[o.pointerId,...t.value],!(e.onActiveChange==null||t.value.length!=1)&&e.onActiveChange(!0)},onPointerUp:s,onPointerLeave:s}}J.forwardRef((n,e)=>{const t=yo(),i=J.useRef(null),r=Fa(i);Yr(t,r,wo);const s=Ro(t,r),o=Ha(s),a=Us(),c=Ua(a,o,r.size,r);Qo(n,r.size),Oa(n,c);const A=Fs(n.panelMaterialClass,n),h=bi(Ai.Panel,n.zIndexOffset,A);ka(t,o,r.size,void 0,r.borderInset,c,h,a,A,Mo);const f=J.useRef(null),d=Pa(),m=bi(Ai.Object,void 0,void 0,h),E=kO(t,f,d,r.cameraDistance,a,m);Io(t,n),xo(t,n),Bo(t,n);const x=So(t,n),C=To(t,n),p=J.useMemo(()=>zn(()=>{const[B,R]=E.value;return B/R}),[E]);(n.keepAspectRatio??!0)&&ls(t,"aspectRatio",p),vo(t);const I=J.useRef(null);J.useEffect(()=>Xt(()=>{const[B,R]=r.size.value,[M,T,P,K]=r.paddingInset.value,[w,b,q,de]=r.borderInset.value,Y=M+w,ie=T+b,te=P+q,ue=K+de,U=B-ue-ie,$=R-Y-te,{pixelSize:ee}=r,{current:Ae}=I;Ae==null||Ae.position.set((ue-ie)*.5*ee,(te-Y)*.5*ee,0);const[,ye,ke]=E.value;Ae==null||Ae.scale.set(U*ee,$*ee,n.keepAspectRatio?$*ee*ke/ye:ke),Ae==null||Ae.updateMatrix()}),[r,n.keepAspectRatio,E]);const y=Zl(r.size,r,h,d);return Ga(e,r,y),oe.jsxs(_o,{groupRef:i,matrix:s,handlers:n,hoverHandlers:x,activeHandlers:C,children:[oe.jsx("primitive",{object:y}),oe.jsx("group",{matrixAutoUpdate:!1,ref:I,children:oe.jsx("group",{ref:f,matrixAutoUpdate:!1,children:oe.jsx(Gv,{value:void 0,children:n.children})})})]})});const XE=new ti,UO=new G().setScalar(.001),FO=["depthAlign"];function kO(n,e,t,i,r,s){const o=J.useMemo(()=>Gt(new G(1,1,1)),[]),a=qh(r,t),c=As(n,FO);return J.useEffect(()=>{const A=e.current;if(A==null)return;A.traverse(m=>{m instanceof nn&&(jl(m,i,s),m.material.clippingPlanes=a,m.material.needsUpdate=!0,m.raycast=bu(m,m.raycast,t,r,s))});const h=A.parent;h==null||h.remove(A),XE.setFromObject(A);const f=new G,d=new G;return XE.getSize(f).max(UO),o.value=f,A.scale.set(1,1,1).divide(f),h!=null&&h.add(A),XE.getCenter(d),Xt(()=>{const m=c.value;m!=null&&(A.position.copy(d).negate(),A.position.z-=$5[m("depthAlign")??"back"]*f.z,A.position.divide(f),A.updateMatrix())})},[c,i,a,t]),o}const on=J.forwardRef((n,e)=>{const t=yo(),i=J.useRef(null),r=Fa(i);Yr(t,r,wo);const s=Ro(t,r),o=Us(),a=Ha(s),c=Ua(o,a,r.size,r),A=Fs(n.panelMaterialClass,n),h=bi(Ai.Panel,n.zIndexOffset,A);ka(t,a,r.size,void 0,r.borderInset,c,h,o,A,Mo);const f=jh();$h(t,f,r,a,c,n.scrollbarPanelMaterialClass,o,h),Io(t,n),xo(t,n),Bo(t,n);const d=So(t,n),m=To(t,n);vo(t),Qo(n,r.size),Oa(n,c);const E=Pa(),x=Zl(r.size,r,h,E);return Ga(e,r,x,f),oe.jsxs(_o,{groupRef:i,matrix:s,handlers:n,hoverHandlers:d,activeHandlers:m,children:[oe.jsx(Zh,{listeners:n,node:r,scrollPosition:f,children:oe.jsx("primitive",{object:x})}),oe.jsx(ef,{globalMatrix:a,node:r,orderInfo:h,scrollPosition:f,children:n.children})]})});J.forwardRef((n,e)=>{const t=yo(),i=J.useRef(null),r=Fa(i);Yr(t,r,wo);const s=Ro(t,r),o=Us(),a=Pa(),c=qh(o,a),A=bi(Ai.Custom,n.zIndexOffset,void 0),h=J.useRef(null),f=Ha(s),d=Ua(o,f,r.size,r);J.useEffect(()=>{const x=h.current;if(x==null)return;x.raycast=bu(x,x.raycast,a,o,A),jl(x,r.cameraDistance,A),x.material instanceof hi&&(x.material.clippingPlanes=c,x.material.needsUpdate=!0,x.material.shadowSide=Vr);const C=Xt(()=>{const[I,y]=r.size.value;x.scale.set(I*r.pixelSize,y*r.pixelSize,1),x.updateMatrix()}),p=Xt(()=>void(x.visible=!d.value));return()=>{C(),p()}},[c,r,d,o,A,a]),Io(t,n),xo(t,n),Bo(t,n);const m=So(t,n),E=To(t,n);return vo(t),Qo(n,r.size),Oa(n,d),Ga(e,r,h),oe.jsx(_o,{groupRef:i,matrix:s,handlers:n,hoverHandlers:m,activeHandlers:E,children:oe.jsx("mesh",{receiveShadow:n.receiveShadow,castShadow:n.castShadow,customDepthMaterial:n.customDepthMaterial,customDistanceMaterial:n.customDistanceMaterial,ref:h,matrixAutoUpdate:!1,geometry:Hv,children:oe.jsx(Gv,{value:void 0,children:n.children})})})});const GO="fill",OO=(n,e,t,i)=>{if(n==="opacity"){i("backgroundOpacity",e);return}Mo(n,e,t,i)},JT=J.forwardRef((n,e)=>{const t=yo(),i=cT(WO,n.src),r=J.useMemo(()=>zn(()=>{const y=i.value;if(y==null)return;const B=y.source.data;return B.width/B.height}),[i]),s=J.useRef(null),o=Fa(s);Yr(t,o,wo),zO(t,i,o.borderInset,o.size);const a=Ro(t,o),c=Us(),A=Pa(),h=qh(c,A),f=Ha(a),d=Ua(c,f,o.size,o),m=hO(t,o.size,o.borderInset,d,n.materialClass,h,OO),E=bi(Ai.Image,n.zIndexOffset,void 0),x=J.useMemo(()=>{const[y,B,R]=m,M=new nn(Hv,y);return M.matrixAutoUpdate=!1,M.castShadow=n.castShadow??!1,M.receiveShadow=n.receiveShadow??!1,M.customDepthMaterial=B,M.customDistanceMaterial=R,M.raycast=bu(M,IT(M),A,c,E),jl(M,o.cameraDistance,E),M},[o,m,A,c,E,n.receiveShadow,n.castShadow]),C=jh();$h(t,C,o,f,d,n.scrollbarPanelMaterialClass,c,E),Io(t,n),xo(t,n),Bo(t,n);const p=So(t,n),I=To(t,n);return ls(t,"backgroundColor",16777215),(n.keepAspectRatio??!0)&&ls(t,"aspectRatio",r),vo(t),Qo(n,o.size),Oa(n,d),mi(()=>{const y=i.value??null;x.material.map!==y&&(x.material.map=y,x.material.needsUpdate=!0)},[x,i]),mi(()=>{const[y,B]=o.size.value;x.scale.set(y*o.pixelSize,B*o.pixelSize,1),x.updateMatrix()},[x]),mi(()=>void(x.visible=!d.value),[x,d]),Ga(e,o,x,C),oe.jsxs(_o,{groupRef:s,hoverHandlers:p,handlers:n,matrix:a,activeHandlers:I,children:[oe.jsx(Zh,{listeners:n,node:o,scrollPosition:C,children:oe.jsx("primitive",{object:x})}),oe.jsx(ef,{globalMatrix:f,node:o,orderInfo:E,scrollPosition:C,children:n.children})]})}),HO=["fit"];function zO(n,e,t,i){const r=As(n,HO);mi(()=>{const s=r.value,o=e.value;if(o==null||s==null)return;const a=s("fit")??GO;if(o.matrix.identity(),a==="fill"||o==null){HS(t,i,o);return}const{width:c,height:A}=o.source.data,h=c/A,[f,d]=i.value,[m,E,x,C]=t.value,p=(f-C-E)/(d-m-x);h>p?o.matrix.translate(-(.5*(p-h))/p,0).scale(p/h,1):o.matrix.translate(0,-(.5*(h-p))/h).scale(1,h/p),HS(t,i,o)},[e,t,i])}function HS(n,e,t){const[i,r]=e.value,[s,o,a,c]=n.value,A=i-c-o,h=r-s-a;t.matrix.translate(-1+(c+A)/i,-1+(s+h)/r).scale(i/A,r/h)}const VO=new Bv;async function WO(n){if(n==null)return Promise.resolve(void 0);if(n instanceof wn)return Promise.resolve(n);try{const e=await VO.loadAsync(n);return e.colorSpace=On,e.matrixAutoUpdate=!1,e}catch(e){console.error(e);return}}function eo(n,e,t){if(e==null)return t;const i=n[e];if(i==null)throw new Error(`unexpected value ${e}, expected ${Object.keys(n).join(", ")}`);return i}function En(n,e,t){return typeof n=="number"?Math.round(n/e):n??t}const YO={static:0,relative:1,absolute:2},JE={auto:0,"flex-start":1,center:2,"flex-end":3,stretch:4,baseline:5,"space-between":6,"space-around":7},XO={column:0,"column-reverse":1,row:2,"row-reverse":3},JO={"no-wrap":0,wrap:1,"wrap-reverse":2},KO={"flex-start":0,center:1,"flex-end":2,"space-between":3,"space-around":4,"space-evenly":5},qO={visible:0,hidden:1,scroll:2},jO={flex:0,none:1},zS={positionType:(n,e,t)=>n.setPositionType(eo(YO,t,0)),positionTop:(n,e,t)=>n.setPosition(1,En(t,e,NaN)),positionLeft:(n,e,t)=>n.setPosition(0,En(t,e,NaN)),positionRight:(n,e,t)=>n.setPosition(2,En(t,e,NaN)),positionBottom:(n,e,t)=>n.setPosition(3,En(t,e,NaN)),alignContent:(n,e,t)=>n.setAlignContent(eo(JE,t,1)),alignItems:(n,e,t)=>n.setAlignItems(eo(JE,t,4)),alignSelf:(n,e,t)=>n.setAlignSelf(eo(JE,t,0)),flexDirection:(n,e,t)=>n.setFlexDirection(eo(XO,t,0)),flexWrap:(n,e,t)=>n.setFlexWrap(eo(JO,t,0)),justifyContent:(n,e,t)=>n.setJustifyContent(eo(KO,t,0)),marginTop:(n,e,t)=>n.setMargin(1,En(t,e,NaN)),marginLeft:(n,e,t)=>n.setMargin(0,En(t,e,NaN)),marginRight:(n,e,t)=>n.setMargin(2,En(t,e,NaN)),marginBottom:(n,e,t)=>n.setMargin(3,En(t,e,NaN)),flexBasis:(n,e,t)=>n.setFlexBasis(En(t,e,NaN)),flexGrow:(n,e,t)=>n.setFlexGrow(t??0),flexShrink:(n,e,t)=>n.setFlexShrink(t??0),width:(n,e,t)=>n.setWidth(En(t,e,NaN)),height:(n,e,t)=>n.setHeight(En(t,e,NaN)),minWidth:(n,e,t)=>n.setMinWidth(En(t,e,NaN)),minHeight:(n,e,t)=>n.setMinHeight(En(t,e,NaN)),maxWidth:(n,e,t)=>n.setMaxWidth(En(t,e,NaN)),maxHeight:(n,e,t)=>n.setMaxHeight(En(t,e,NaN)),aspectRatio:(n,e,t)=>n.setAspectRatio(t??NaN),borderTop:(n,e,t)=>n.setBorder(1,En(t,e,NaN)),borderLeft:(n,e,t)=>n.setBorder(0,En(t,e,NaN)),borderRight:(n,e,t)=>n.setBorder(2,En(t,e,NaN)),borderBottom:(n,e,t)=>n.setBorder(3,En(t,e,NaN)),overflow:(n,e,t)=>n.setOverflow(eo(qO,t,0)),display:(n,e,t)=>n.setDisplay(eo(jO,t,0)),paddingTop:(n,e,t)=>n.setPadding(1,En(t,e,NaN)),paddingLeft:(n,e,t)=>n.setPadding(0,En(t,e,NaN)),paddingRight:(n,e,t)=>n.setPadding(2,En(t,e,NaN)),paddingBottom:(n,e,t)=>n.setPadding(3,En(t,e,NaN)),gapRow:(n,e,t)=>n.setGap(1,En(t,e,NaN)),gapColumn:(n,e,t)=>n.setGap(0,En(t,e,NaN))};function ZO(n,e){return n.L===e.L}function $O(n,e,t){if(t==null){n.setMeasureFunc(null);return}n.setMeasureFunc((i,r,s,o)=>{const a=t(i*e,r,s*e,o);return{width:Math.ceil(Math.ceil(a.width)/e),height:Math.ceil(Math.ceil(a.height)/e)}}),n.markDirty()}class Wv{constructor(e,t,i,r,s,o,a){We(this,"size",Gt([0,0]));We(this,"relativeCenter",Gt([0,0]));We(this,"borderInset",Gt([0,0,0,0]));We(this,"paddingInset",Gt([0,0,0,0]));We(this,"overflow",Gt(ki.Overflow.Visible));We(this,"maxScrollPosition",Gt([void 0,void 0]));We(this,"scrollable",Gt([!1,!1]));We(this,"children",[]);We(this,"yogaNode");We(this,"unsubscribeYoga");We(this,"layoutChangeListeners",new Set);We(this,"requestCalculateLayout");We(this,"active",Gt(!1));this.groupRef=e,this.cameraDistance=t,this.yoga=i,this.precision=r,this.pixelSize=s,this.anyAncestorScrollable=a,this.requestCalculateLayout=()=>o(this),this.unsubscribeYoga=Xt(()=>{var c;i.value!=null&&((c=this.unsubscribeYoga)==null||c.call(this),this.unsubscribeYoga=void 0,this.yogaNode=i.value.Node.create(),this.active.value=!0)})}setProperty(e,t){e==="measureFunc"?$O(this.yogaNode,this.precision,t):zS[e](this.yogaNode,this.precision,t),this.requestCalculateLayout()}hasImmediateProperty(e){return e==="measureFunc"?!0:e in zS}destroy(){var e,t;(e=this.unsubscribeYoga)==null||e.call(this),(t=this.yogaNode)==null||t.free()}calculateLayout(){this.yogaNode!=null&&(this.commit(),this.yogaNode.calculateLayout(),jR(()=>this.updateMeasurements(void 0,void 0)))}createChild(e){return new Wv(e,this.cameraDistance,this.yoga,this.precision,this.pixelSize,this.requestCalculateLayout,zn(()=>{var a;const[i,r]=((a=this.anyAncestorScrollable)==null?void 0:a.value)??[!1,!1],[s,o]=this.scrollable.value;return[i||s,r||o]}))}addChild(e){this.requestCalculateLayout(),this.children.push(e)}removeChild(e){const t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.requestCalculateLayout())}commit(){var o;if(this.yogaNode==null)throw new Error("commit cannot be called without a yoga node");let e;this.children.sort((a,c)=>{var m,E;if(e??(e=(E=(m=a.groupRef.current)==null?void 0:m.parent)==null?void 0:E.children),e==null)return 0;const A=a.groupRef.current,h=c.groupRef.current;if(A==null||h==null)return 0;const f=e.indexOf(A);if(f===-1)throw new Error("parent mismatch");const d=e.indexOf(h);if(d===-1)throw new Error("parent mismatch");return f-d});let t=0,i=this.yogaNode.getChild(t),r=this.children[t];for(;r!=null||i!=null;){if(r!=null&&i!=null&&ZO(i,WS(r.yogaNode))){r=this.children[++t],i=this.yogaNode.getChild(t);continue}if(i!=null&&this.yogaNode.removeChild(i),r!=null){const a=WS(r.yogaNode);(o=a.getParent())==null||o.removeChild(a),this.yogaNode.insertChild(a,t),r=this.children[++t]}i=this.yogaNode.getChild(t)}const s=this.children.length;for(let a=0;a0,P>0)}else Lc(this.maxScrollPosition,void 0,void 0),Lc(this.scrollable,!1,!1);const B=this.overflow.value===ki.Overflow.Visible;return[s+Math.max(i,B?I:0),o+Math.max(r,B?y:0)]}addLayoutChangeListener(e){return this.layoutChangeListeners.add(e),()=>void this.layoutChangeListeners.delete(e)}}function Lc(n,e,t){const[i,r]=n.value;i===e&&r===t||(n.value=[e,t])}function VS(n,e,t,i,r){const[s,o,a,c]=n.value;s==e&&o==t&&a==i&&c==r||(n.value=[e,t,i,r])}function WS(n){if(n==null)throw new Error("commit cannot be called with a children that miss a yoga node");return n}const eH=.1,KT=.002,Ap=new cn,YS=new G,tH=J.forwardRef((n,e)=>{const t=yo(),i=Nv(P=>P.gl);J.useEffect(()=>yG(i),[i]);const{sizeX:r,sizeY:s}=n,[o,a]=J.useMemo(()=>[n.precision??eH,n.pixelSize??KT],[]),c=eG(),A=J.useMemo(()=>({current:0}),[]),h=J.useRef(null),f=JG(),d=J.useMemo(()=>new Wv(h,A,c,o,a,f,void 0),[f,h,c]);Yr(t,d,wo),J.useEffect(()=>()=>d.destroy(),[d]);const m=Ro(t,d),E=J.useMemo(()=>{const P=new Gr;return P.matrixAutoUpdate=!1,P},[]),x=fO(a,d.cameraDistance,E),C=NG(a,d.cameraDistance,E),p=Fs(n.panelMaterialClass,n),I=bi(Ai.Panel,void 0,p),y=iH(m,d.size,a,n),B=jh();$h(t,B,d,y,void 0,n.scrollbarPanelMaterialClass,void 0,I,x),ka(t,y,d.size,void 0,d.borderInset,void 0,I,void 0,p,Mo,x),Io(t,n),xo(t,n),Bo(t,n,d.size);const R=So(t,n),M=To(t,n);ls(t,"width",XS(r,a)),ls(t,"height",XS(s,a)),vo(t),Qo(n,d.size);const T=Zl(d.size,d,I,h);return Ga(e,d,T,B),Na(({camera:P})=>{Ap.normal.set(0,0,1),Ap.constant=0,Ap.applyMatrix4(T.matrixWorld),YS.setFromMatrixPosition(P.matrixWorld),A.current=Ap.distanceToPoint(YS)}),oe.jsxs(oe.Fragment,{children:[oe.jsx("primitive",{object:E}),oe.jsx(_o,{groupRef:h,matrix:y,handlers:n,hoverHandlers:R,activeHandlers:M,children:oe.jsx(tG,{value:h,children:oe.jsx(bG,{value:C,children:oe.jsxs(dO,{value:x,children:[oe.jsx(Zh,{node:d,scrollPosition:B,listeners:n,children:oe.jsx("primitive",{object:T})}),oe.jsx(YG,{value:d.size,children:oe.jsx(ef,{globalMatrix:y,node:d,orderInfo:I,scrollPosition:B,children:n.children})})]})})})})]})});function XS(n,e){return J.useMemo(()=>n===void 0?void 0:n instanceof Vn?zn(()=>{const t=n.value;if(t!=null)return t/e}):n/e,[n,e])}const nH=new ft;function iH(n,e,t,{anchorX:i="center",anchorY:r="center"}){return J.useMemo(()=>zn(()=>{var a;const[s,o]=e.value;return(a=n.value)==null?void 0:a.clone().premultiply(nH.makeTranslation(aT[i]*s*t,lT[r]*o*t,0))}),[n,e,i,r,t])}const rH=On;class Nu extends Ki{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,i,r){const s=this,o=new Ls(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(a){try{t(s.parse(a))}catch(c){r?r(c):console.error(c),s.manager.itemError(e)}},i,r)}parse(e){const t=this;function i(V,O){if(V.nodeType!==1)return;const k=B(V);let F=!1,me=null;switch(V.nodeName){case"svg":O=E(V,O);break;case"style":s(V);break;case"g":O=E(V,O);break;case"path":O=E(V,O),V.hasAttribute("d")&&(me=r(V));break;case"rect":O=E(V,O),me=c(V);break;case"polygon":O=E(V,O),me=A(V);break;case"polyline":O=E(V,O),me=h(V);break;case"circle":O=E(V,O),me=f(V);break;case"ellipse":O=E(V,O),me=d(V);break;case"line":O=E(V,O),me=m(V);break;case"defs":F=!0;break;case"use":O=E(V,O);const Be=(V.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),H=V.viewportElement.getElementById(Be);H?i(H,O):console.warn("SVGLoader: 'use node' references non-existent node id: "+Be);break}me&&(O.fill!==void 0&&O.fill!=="none"&&me.color.setStyle(O.fill,rH),M(me,Ae),q.push(me),me.userData={node:V,style:O});const Ie=V.childNodes;for(let se=0;se0?Ae.copy(Y[Y.length-1]):Ae.identity())}function r(V){const O=new ea,k=new _e,F=new _e,me=new _e;let Ie=!0,se=!1;const Be=V.getAttribute("d");if(Be===""||Be==="none")return null;const H=Be.match(/[a-df-z][^a-df-z]*/ig);for(let Ee=0,ne=H.length;Ee0&&(k.copy(me),O.currentPath.currentPoint.copy(k),Ie=!0);break;default:console.warn(le)}se=!1}return O}function s(V){if(!(!V.sheet||!V.sheet.cssRules||!V.sheet.cssRules.length))for(let O=0;Ome.trim());for(let me=0;mese!==""));de[F[me]]=Object.assign(de[F[me]]||{},Ie)}}}function o(V,O,k,F,me,Ie,se,Be){if(O==0||k==0){V.lineTo(Be.x,Be.y);return}F=F*Math.PI/180,O=Math.abs(O),k=Math.abs(k);const H=(se.x-Be.x)/2,Ee=(se.y-Be.y)/2,ne=Math.cos(F)*H+Math.sin(F)*Ee,le=-Math.sin(F)*H+Math.cos(F)*Ee;let fe=O*O,Te=k*k;const Z=ne*ne,S=le*le,D=Z/fe+S/Te;if(D>1){const Le=Math.sqrt(D);O=Le*O,k=Le*k,fe=O*O,Te=k*k}const re=fe*S+Te*Z,be=(fe*Te-re)/re;let De=Math.sqrt(Math.max(0,be));me===Ie&&(De=-De);const Qe=De*O*le/k,Xe=-De*k*ne/O,ze=Math.cos(F)*Qe-Math.sin(F)*Xe+(se.x+Be.x)/2,qe=Math.sin(F)*Qe+Math.cos(F)*Xe+(se.y+Be.y)/2,at=a(1,0,(ne-Qe)/O,(le-Xe)/k),Ct=a((ne-Qe)/O,(le-Xe)/k,(-ne-Qe)/O,(-le-Xe)/k)%(Math.PI*2);V.currentPath.absellipse(ze,qe,O,k,at,at+Ct,Ie===0,F)}function a(V,O,k,F){const me=V*k+O*F,Ie=Math.sqrt(V*V+O*O)*Math.sqrt(k*k+F*F);let se=Math.acos(Math.max(-1,Math.min(1,me/Ie)));return V*F-O*k<0&&(se=-se),se}function c(V){const O=y(V.getAttribute("x")||0),k=y(V.getAttribute("y")||0),F=y(V.getAttribute("rx")||V.getAttribute("ry")||0),me=y(V.getAttribute("ry")||V.getAttribute("rx")||0),Ie=y(V.getAttribute("width")),se=y(V.getAttribute("height")),Be=1-.551915024494,H=new ea;return H.moveTo(O+F,k),H.lineTo(O+Ie-F,k),(F!==0||me!==0)&&H.bezierCurveTo(O+Ie-F*Be,k,O+Ie,k+me*Be,O+Ie,k+me),H.lineTo(O+Ie,k+se-me),(F!==0||me!==0)&&H.bezierCurveTo(O+Ie,k+se-me*Be,O+Ie-F*Be,k+se,O+Ie-F,k+se),H.lineTo(O+F,k+se),(F!==0||me!==0)&&H.bezierCurveTo(O+F*Be,k+se,O,k+se-me*Be,O,k+se-me),H.lineTo(O,k+me),(F!==0||me!==0)&&H.bezierCurveTo(O,k+me*Be,O+F*Be,k,O+F,k),H}function A(V){function O(Ie,se,Be){const H=y(se),Ee=y(Be);me===0?F.moveTo(H,Ee):F.lineTo(H,Ee),me++}const k=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new ea;let me=0;return V.getAttribute("points").replace(k,O),F.currentPath.autoClose=!0,F}function h(V){function O(Ie,se,Be){const H=y(se),Ee=y(Be);me===0?F.moveTo(H,Ee):F.lineTo(H,Ee),me++}const k=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,F=new ea;let me=0;return V.getAttribute("points").replace(k,O),F.currentPath.autoClose=!1,F}function f(V){const O=y(V.getAttribute("cx")||0),k=y(V.getAttribute("cy")||0),F=y(V.getAttribute("r")||0),me=new ya;me.absarc(O,k,F,0,Math.PI*2);const Ie=new ea;return Ie.subPaths.push(me),Ie}function d(V){const O=y(V.getAttribute("cx")||0),k=y(V.getAttribute("cy")||0),F=y(V.getAttribute("rx")||0),me=y(V.getAttribute("ry")||0),Ie=new ya;Ie.absellipse(O,k,F,me,0,Math.PI*2);const se=new ea;return se.subPaths.push(Ie),se}function m(V){const O=y(V.getAttribute("x1")||0),k=y(V.getAttribute("y1")||0),F=y(V.getAttribute("x2")||0),me=y(V.getAttribute("y2")||0),Ie=new ea;return Ie.moveTo(O,k),Ie.lineTo(F,me),Ie.currentPath.autoClose=!1,Ie}function E(V,O){O=Object.assign({},O);let k={};if(V.hasAttribute("class")){const se=V.getAttribute("class").split(/\s/).filter(Boolean).map(Be=>Be.trim());for(let Be=0;Be0&&O.premultiply(Y[Y.length-1]),Ae.copy(O),Y.push(O),O}function R(V){const O=new wt,k=ie;if(V.nodeName==="use"&&(V.hasAttribute("x")||V.hasAttribute("y"))){const F=y(V.getAttribute("x")),me=y(V.getAttribute("y"));O.translate(F,me)}if(V.hasAttribute("transform")){const F=V.getAttribute("transform").split(")");for(let me=F.length-1;me>=0;me--){const Ie=F[me].trim();if(Ie==="")continue;const se=Ie.indexOf("("),Be=Ie.length;if(se>0&&se=1){const ne=Ee[0];let le=0;Ee.length>=2&&(le=Ee[1]),k.translate(ne,le)}break;case"rotate":if(Ee.length>=1){let ne=0,le=0,fe=0;ne=Ee[0]*Math.PI/180,Ee.length>=3&&(le=Ee[1],fe=Ee[2]),te.makeTranslation(-le,-fe),ue.makeRotation(ne),U.multiplyMatrices(ue,te),te.makeTranslation(le,fe),k.multiplyMatrices(te,U)}break;case"scale":if(Ee.length>=1){const ne=Ee[0];let le=ne;Ee.length>=2&&(le=Ee[1]),k.scale(ne,le)}break;case"skewX":Ee.length===1&&k.set(1,Math.tan(Ee[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":Ee.length===1&&k.set(1,0,0,Math.tan(Ee[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":Ee.length===6&&k.set(Ee[0],Ee[2],Ee[4],Ee[1],Ee[3],Ee[5],0,0,1);break}}O.premultiply(k)}}return O}function M(V,O){function k(se){ee.set(se.x,se.y,1).applyMatrix3(O),se.set(ee.x,ee.y)}function F(se){const Be=se.xRadius,H=se.yRadius,Ee=Math.cos(se.aRotation),ne=Math.sin(se.aRotation),le=new G(Be*Ee,Be*ne,0),fe=new G(-H*ne,H*Ee,0),Te=le.applyMatrix3(O),Z=fe.applyMatrix3(O),S=ie.set(Te.x,Z.x,0,Te.y,Z.y,0,0,0,1),D=te.copy(S).invert(),De=ue.copy(D).transpose().multiply(D).elements,Qe=b(De[0],De[1],De[4]),Xe=Math.sqrt(Qe.rt1),ze=Math.sqrt(Qe.rt2);if(se.xRadius=1/Xe,se.yRadius=1/ze,se.aRotation=Math.atan2(Qe.sn,Qe.cs),!((se.aEndAngle-se.aStartAngle)%(2*Math.PI){const{x:dt,y:ot}=new G(Math.cos(Bt),Math.sin(Bt),0).applyMatrix3(Le);return Math.atan2(ot,dt)};se.aStartAngle=Dt(se.aStartAngle),se.aEndAngle=Dt(se.aEndAngle),T(O)&&(se.aClockwise=!se.aClockwise)}}function me(se){const Be=K(O),H=w(O);se.xRadius*=Be,se.yRadius*=H;const Ee=Be>Number.EPSILON?Math.atan2(O.elements[1],O.elements[0]):Math.atan2(-O.elements[3],O.elements[4]);se.aRotation+=Ee,T(O)&&(se.aStartAngle*=-1,se.aEndAngle*=-1,se.aClockwise=!se.aClockwise)}const Ie=V.subPaths;for(let se=0,Be=Ie.length;seNumber.EPSILON}function K(V){const O=V.elements;return Math.sqrt(O[0]*O[0]+O[1]*O[1])}function w(V){const O=V.elements;return Math.sqrt(O[3]*O[3]+O[4]*O[4])}function b(V,O,k){let F,me,Ie,se,Be;const H=V+k,Ee=V-k,ne=Math.sqrt(Ee*Ee+4*O*O);return H>0?(F=.5*(H+ne),Be=1/F,me=V*Be*k-O*Be*O):H<0?me=.5*(H-ne):(F=.5*ne,me=-.5*ne),Ee>0?Ie=Ee+ne:Ie=Ee-ne,Math.abs(Ie)>2*Math.abs(O)?(Be=-2*O/Ie,se=1/Math.sqrt(1+Be*Be),Ie=Be*se):Math.abs(O)===0?(Ie=1,se=0):(Be=-.5*Ie/O,Ie=1/Math.sqrt(1+Be*Be),se=Be*Ie),Ee>0&&(Be=Ie,Ie=-se,se=Be),{rt1:F,rt2:me,cs:Ie,sn:se}}const q=[],de={},Y=[],ie=new wt,te=new wt,ue=new wt,U=new wt,$=new _e,ee=new G,Ae=new wt,ye=new DOMParser().parseFromString(e,"image/svg+xml");return i(ye.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:q,xml:ye.documentElement}}static createShapes(e){const i={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:i.ORIGIN,t:0};function s(x,C,p,I){const y=x.x,B=C.x,R=p.x,M=I.x,T=x.y,P=C.y,K=p.y,w=I.y,b=(M-R)*(T-K)-(w-K)*(y-R),q=(B-y)*(T-K)-(P-T)*(y-R),de=(w-K)*(B-y)-(M-R)*(P-T),Y=b/de,ie=q/de;if(de===0&&b!==0||Y<=0||Y>=1||ie<0||ie>1)return null;if(b===0&&de===0){for(let te=0;te<2;te++)if(o(te===0?p:I,x,C),r.loc==i.ORIGIN){const ue=te===0?p:I;return{x:ue.x,y:ue.y,t:r.t}}else if(r.loc==i.BETWEEN){const ue=+(y+r.t*(B-y)).toPrecision(10),U=+(T+r.t*(P-T)).toPrecision(10);return{x:ue,y:U,t:r.t}}return null}else{for(let U=0;U<2;U++)if(o(U===0?p:I,x,C),r.loc==i.ORIGIN){const $=U===0?p:I;return{x:$.x,y:$.y,t:r.t}}const te=+(y+Y*(B-y)).toPrecision(10),ue=+(T+Y*(P-T)).toPrecision(10);return{x:te,y:ue,t:Y}}}function o(x,C,p){const I=p.x-C.x,y=p.y-C.y,B=x.x-C.x,R=x.y-C.y,M=I*R-B*y;if(x.x===C.x&&x.y===C.y){r.loc=i.ORIGIN,r.t=0;return}if(x.x===p.x&&x.y===p.y){r.loc=i.DESTINATION,r.t=1;return}if(M<-Number.EPSILON){r.loc=i.LEFT;return}if(M>Number.EPSILON){r.loc=i.RIGHT;return}if(I*B<0||y*R<0){r.loc=i.BEHIND;return}if(Math.sqrt(I*I+y*y)w.t<=K.t+Number.EPSILON&&w.t>=K.t-Number.EPSILON)===void 0&&(p.push(K),I.push(new _e(K.x,K.y)))}}return I}function c(x,C,p){const I=new _e;C.getCenter(I);const y=[];return p.forEach(B=>{B.boundingBox.containsPoint(I)&&a(x,B.points).forEach(M=>{y.push({identifier:B.identifier,isCW:B.isCW,point:M})})}),y.sort((B,R)=>B.point.x-R.point.x),y}function A(x,C,p,I,y){(y==null||y==="")&&(y="nonzero");const B=new _e;x.boundingBox.getCenter(B);const R=[new _e(p,B.y),new _e(I,B.y)],M=c(R,x.boundingBox,C);M.sort((q,de)=>q.point.x-de.point.x);const T=[],P=[];M.forEach(q=>{q.identifier===x.identifier?T.push(q):P.push(q)});const K=T[0].point.x,w=[];let b=0;for(;b0&&w[w.length-1]===P[b].identifier?w.pop():w.push(P[b].identifier),b++;if(w.push(x.identifier),y==="evenodd"){const q=w.length%2===0,de=w[w.length-2];return{identifier:x.identifier,isHole:q,for:de}}else if(y==="nonzero"){let q=!0,de=null,Y=null;for(let ie=0;ie{const C=x.getPoints();let p=-999999999,I=999999999,y=-999999999,B=999999999;for(let R=0;Rp&&(p=M.y),M.yy&&(y=M.x),M.x=B&&(h=B-1),{curves:x.curves,points:C,isCW:as.isClockWise(C),identifier:-1,boundingBox:new MR(new _e(B,I),new _e(y,p))}});d=d.filter(x=>x.points.length>1);for(let x=0;xA(x,d,h,f,e.userData?e.userData.style.fillRule:void 0)),E=[];return d.forEach(x=>{if(!m[x.identifier].isHole){const p=new va;p.curves=x.curves,m.filter(y=>y.isHole&&y.for===x.identifier).forEach(y=>{const B=d[y.identifier],R=new ya;R.curves=B.curves,p.holes.push(R)}),E.push(p)}}),E}static getStrokeStyle(e,t,i,r,s){return e=e!==void 0?e:1,t=t!==void 0?t:"#000",i=i!==void 0?i:"miter",r=r!==void 0?r:"butt",s=s!==void 0?s:4,{strokeColor:t,strokeWidth:e,strokeLineJoin:i,strokeLineCap:r,strokeMiterLimit:s}}static pointsToStroke(e,t,i,r){const s=[],o=[],a=[];if(Nu.pointsToStrokeWithBuffers(e,t,i,r,s,o,a)===0)return null;const c=new Tt;return c.setAttribute("position",new st(s,3)),c.setAttribute("normal",new st(o,3)),c.setAttribute("uv",new st(a,2)),c}static pointsToStrokeWithBuffers(e,t,i,r,s,o,a,c){const A=new _e,h=new _e,f=new _e,d=new _e,m=new _e,E=new _e,x=new _e,C=new _e,p=new _e,I=new _e,y=new _e,B=new _e,R=new _e,M=new _e,T=new _e,P=new _e,K=new _e;i=i!==void 0?i:12,r=r!==void 0?r:.001,c=c!==void 0?c:0,e=Ee(e);const w=e.length;if(w<2)return 0;const b=e[0].equals(e[w-1]);let q,de=e[0],Y;const ie=t.strokeWidth/2,te=1/(w-1);let ue=0,U,$,ee,Ae,ye=!1,ke=0,V=c*3,O=c*2;k(e[0],e[1],A).multiplyScalar(ie),C.copy(e[0]).sub(A),p.copy(e[0]).add(A),I.copy(C),y.copy(p);for(let ne=1;neNumber.EPSILON){const Te=ie/fe;f.multiplyScalar(-Te),d.subVectors(q,de),m.copy(d).setLength(Te).add(f),P.copy(m).negate();const Z=m.length(),S=d.length();d.divideScalar(S),E.subVectors(Y,q);const D=E.length();switch(E.divideScalar(D),d.dot(P)=r&&fe.push(ne[Te]);return fe.push(ne[ne.length-1]),fe}}}const sH=new Nu,hp=new ti,hl=new G;async function oH(n,e,t=or,i,r,s,o){const a=new Gr;a.matrixAutoUpdate=!1;const c=await sH.loadAsync(n);hp.makeEmpty();for(const f of c.paths){const d=Nu.createShapes(f),m=new t;m.transparent=!0,m.depthWrite=!1,m.toneMapped=!1,m.clippingPlanes=i;for(const E of d){const x=new Qu(E);x.computeBoundingBox(),hp.union(x.boundingBox);const C=new nn(x,m);C.matrixAutoUpdate=!1,C.raycast=bu(C,C.raycast,s,r,o),jl(C,e,o),C.userData.color=f.color,C.scale.y=-1,C.updateMatrix(),a.add(C)}}hp.getSize(hl);const A=hl.x/hl.y,h=1/hl.y;return a.scale.set(1,1,1).multiplyScalar(h),hp.getCenter(hl),hl.y*=-1,a.position.copy(hl).negate().multiplyScalar(h),a.updateMatrix(),Object.assign(a,{aspectRatio:A})}const JS=new Je,aH=["color","opacity"];J.forwardRef((n,e)=>{const t=yo(),i=J.useRef(null),r=Fa(i);Yr(t,r,wo);const s=Ro(t,r),o=Ha(s),a=Us(),c=Ua(a,o,r.size,r),A=Fs(n.panelMaterialClass,n),h=bi(Ai.Panel,n.zIndexOffset,A);ka(t,o,r.size,void 0,r.borderInset,c,h,a,A,Mo);const f=Pa(),d=qh(a,f),m=bi(Ai.Svg,void 0,void 0,h),E=cT(oH,n.src,r.cameraDistance,n.materialClass,d,a,f,m),x=As(t,aH);mi(()=>{var w;const M=x.value;if(M==null)return;const T=M("color"),P=M("opacity");let K;Array.isArray(T)?K=JS.setRGB(...T):T!=null&&(K=JS.set(T)),(w=E.value)==null||w.traverse(b=>{if(!(b instanceof nn))return;b.receiveShadow=n.receiveShadow??!1,b.castShadow=n.castShadow??!1;const q=b.material;q.color.copy(K??b.userData.color),q.opacity=P??1})},[E,n.color,n.receiveShadow,n.castShadow]);const C=J.useMemo(()=>zn(()=>{var M;return(M=E.value)==null?void 0:M.aspectRatio}),[E]),p=jh();$h(t,p,r,o,c,n.scrollbarPanelMaterialClass,a,m),Io(t,n),xo(t,n),Bo(t,n);const I=So(t,n),y=To(t,n);ls(t,"aspectRatio",C),vo(t),Qo(n,r.size),Oa(n,c);const B=J.useMemo(()=>{const M=new Gr;return M.matrixAutoUpdate=!1,M},[]);mi(()=>{var K;const[M,T,P]=uT(r.size,r.paddingInset,r.borderInset,r.pixelSize,((K=E.value)==null?void 0:K.aspectRatio)??1);B.position.set(M,T,0),B.scale.setScalar(P),B.updateMatrix()},[r,E]),mi(()=>{const M=E.value;if(M!=null)return B.add(M),()=>B.remove(M)},[E,B]),mi(()=>void(B.visible=!c.value),[]);const R=Zl(r.size,r,h,f);return Ga(e,r,R,p),oe.jsxs(_o,{groupRef:i,matrix:s,handlers:n,hoverHandlers:I,activeHandlers:y,children:[oe.jsxs(Zh,{listeners:n,node:r,scrollPosition:p,children:[oe.jsx("primitive",{object:R}),oe.jsx("primitive",{object:B})]}),oe.jsx(ef,{globalMatrix:o,node:r,orderInfo:m,scrollPosition:p,children:n.children})]})});const fn=J.forwardRef((n,e)=>{const t=yo(),i=J.useRef(null),r=Fa(i);Yr(t,r,wo);const s=Ro(t,r),o=Pa(),a=Ha(s),c=Us(),A=Ua(c,a,r.size,r);Qo(n,r.size),Oa(n,A);const h=Fs(n.panelMaterialClass,n),f=bi(Ai.Panel,n.zIndexOffset,h);ka(t,a,r.size,void 0,r.borderInset,A,f,c,h,Mo);const d=ET(t,n.children,a,r,A,c,f);Io(t,n),xo(t,n),Bo(t,n);const m=So(t,n),E=To(t,n);ls(t,"measureFunc",d),vo(t);const x=Zl(r.size,r,f,o);return Ga(e,r,x),oe.jsx(_o,{groupRef:i,matrix:s,handlers:n,hoverHandlers:m,activeHandlers:E,children:oe.jsx("primitive",{object:x})})});function lH(n,e,t){const i=J.useMemo(()=>so(()=>t.value),[t]);Tu(e,r=>{r.focus!=null&&i(n,r.focus)})}const cH=Gt([0,0,0,0]),KS=1.5,qS=(n,e,t,i)=>{n=="color"&&i("backgroundColor",e)};function uH(n,e,t,i,r,s,o){const a=o??Vv(),c=Fs(void 0,{castShadow:!1,receiveShadow:!1}),A=bi(Ai.Panel,void 0,c,r),h=J.useMemo(()=>Gt(void 0),[]),f=J.useMemo(()=>Xt(()=>{const x=t.value;x==null&&(h.value=void 0),h.value=x;const C=setInterval(()=>h.value=h.peek()==null?x:void 0,500);return()=>clearInterval(C)}),[h,t]);J.useEffect(()=>f,[f]);const d=J.useMemo(()=>new zv(a(A.majorIndex,c),e,zn(()=>{const x=h.value;return x==null?[0,0]:[KS,x[2]]}),zn(()=>{const x=h.value;return x==null?[0,0]:[x[0]-KS/2,x[1]]}),cH,s,i,A.minorIndex),[a,A,c,e,s,i,h]),m=n.length;Yr(n,d,qS),dm(n,d,qS);const E=n.length;for(let x=m;x()=>d.destroy(),[d])}const AH=Gt([0,0,0,0]);function hH(n,e,t,i,r,s){const o=s??Vv(),a=J.useMemo(()=>[],[]),c=Fs(void 0,{castShadow:!1,receiveShadow:!1}),A=bi(Ai.Panel,void 0,c,i),h=J.useMemo(()=>Xt(()=>{const f=e.value,d=f.length;for(let E=0;E{if(R==="backgroundColor")return 11851775;if(R==="backgroundOpacity")return 1};const B=Xt(()=>{y.active.value&&(y.setProperty("backgroundColor",11851775),y.setProperty("backgroundOpacity",1))});a[E]=x={unsubscribe:B,panel:y,offset:I,size:p}}const C=f[E];x.size.value=C.size,x.offset.value=C.position}const m=a.length;for(let E=d;E()=>{h();const f=a.length;for(let d=0;d{const t=J.useMemo(()=>Gt(n.defaultValue??""),[]),i=J.useMemo(()=>n.value??t,[n.value,t]),r=J.useRef(n.onValueChange);r.current=n.onValueChange;const s=J.useRef(void 0),o=n.value!=null,a=J.useCallback(ie=>{var te;o||(t.value=ie),(te=r.current)==null||te.call(r,ie)},[t,o]),c=J.useMemo(()=>Gt(void 0),[]),A=pH(i,c,a,n.multiline);A.tabIndex=n.tabIndex??0,A.disabled=n.disabled??!1;const h=J.useMemo(()=>Gt(document.activeElement===A),[]);J.useEffect(()=>{const ie=()=>h.value=document.activeElement===A;return A.addEventListener("focus",ie),A.addEventListener("blur",ie),()=>{A.removeEventListener("focus",ie),A.removeEventListener("blur",ie)}},[A,h]);const f=J.useCallback(ie=>{h.peek()!==ie&&(ie?A.focus():A.blur())},[h,A]),d=yo(),m=J.useRef(null),E=Fa(m);Yr(d,E,wo);const x=Ro(d,E),C=Pa(),p=Ha(x),I=Us(),y=Ua(I,p,E.size,E);Qo(n,E.size),Oa(n,y);const B=Fs(n.panelMaterialClass,n),R=bi(Ai.Panel,n.zIndexOffset,B);ka(d,p,E.size,void 0,E.borderInset,y,R,I,B,Mo);const M=J.useMemo(()=>Gt([]),[]),T=J.useMemo(()=>Gt(void 0),[]),P=hH(p,M,y,R,I);uH(d,p,T,y,R,I);const K=Zl(E.size,E,R,C),w=J.useRef(),b=ET(d,i,p,E,y,I,P,c,M,T,w),q=n.disabled??!1;Io(d,n),xo(d,n),Bo(d,n);const de=So(d,n,q?void 0:"text"),Y=To(d,n);return lH(d,n,h),ls(d,"measureFunc",b),vo(d),J.useImperativeHandle(e,()=>({focus:()=>f(!0),value:i,borderInset:E.borderInset,paddingInset:E.paddingInset,pixelSize:E.pixelSize,center:E.relativeCenter,size:E.size,interactionPanel:K}),[K,E,i,f]),oe.jsx(_o,{groupRef:m,matrix:x,handlers:n,inputHandlers:q?void 0:{onPointerDown:ie=>{var ue;if((ue=n.onPointerDown)==null||ue.call(n,ie),ie.defaultPrevented||ie.uv==null||w.current==null)return;dH(ie.nativeEvent),ie.stopPropagation();const te=jS(E,ie.uv,w.current);s.current=te,setTimeout(()=>{f(!0),c.value=[te,te],A.setSelectionRange(te,te)})},onPointerUp:ie=>{var te;(te=n.onPointerUp)==null||te.call(n,ie),s.current=void 0},onPointerMove:ie=>{var ee;if((ee=n.onPointerMove)==null||ee.call(n,ie),s.current==null||ie.uv==null||w.current==null)return;ie.stopPropagation();const te=jS(E,ie.uv,w.current),ue=Math.min(s.current,te),U=Math.max(s.current,te),$=s.current{f(!0),c.value=[ue,U],A.setSelectionRange(ue,U,$)})}},hoverHandlers:de,activeHandlers:Y,children:oe.jsx("primitive",{object:K})})});function pH(n,e,t,i=!1){const r=J.useMemo(()=>{const s=document.createElement(i?"textarea":"input"),o=s.style;o.setProperty("position","absolute"),o.setProperty("left","-1000vw"),o.setProperty("pointerEvents","none"),o.setProperty("opacity","0"),s.addEventListener("input",()=>{t==null||t(s.value),a()});const a=()=>{const{selectionStart:c,selectionEnd:A}=s;if(c==null||A==null){e.value=void 0;return}const h=e.peek();h!=null&&h[0]===c&&h[1]===A||(e.value=[c,A])};return s.addEventListener("keydown",a),s.addEventListener("keyup",a),s.addEventListener("blur",()=>e.value=void 0),document.body.appendChild(s),s},[t,e,i]);return mi(()=>{r.value=Cg(n)},[n]),J.useEffect(()=>()=>r.remove(),[r]),r}function jS({size:n,borderInset:e,paddingInset:t},i,r){const[s,o]=n.peek(),[a,,,c]=e.peek(),[A,,,h]=t.peek(),f=i.x*s-c-h,d=-i.y*o+a+A;return r.getCharIndex(f,d)}const gH=J.forwardRef((n,e)=>{const t=Jh(),i=n.pixelSize??KT,[r,s]=J.useMemo(()=>{const{width:A,height:h}=t.getState().size;return[Gt(A*i),Gt(h*i)]},[i,t]);J.useEffect(()=>{const A=h=>{jR(()=>{r.value=h.size.width*i,s.value=h.size.height*i})};return A(t.getState()),t.subscribe(A)},[i,r,s,t]);const o=Nv(A=>A.camera),a=J.useRef(null);Na(()=>{if(a.current==null)return;let A=1;o instanceof $n&&(A=s.peek()/(2*Math.tan(o.fov/360*Math.PI))),a.current.position.z=-A,a.current.updateMatrix()});const c=n.attachCamera??!0;return oe.jsxs(oe.Fragment,{children:[c&&oe.jsx("primitive",{object:o}),YR(oe.jsx("group",{ref:a,matrixAutoUpdate:!1,children:oe.jsx(tH,{ref:e,...n,sizeX:r,sizeY:s,children:n.children})}),o)]})}),ZS=new Je,mH=["color","opacity"],EH=new Nu,ks=J.forwardRef((n,e)=>{const t=yo(),i=J.useRef(null),r=Fa(i);Yr(t,r,wo);const s=Ro(t,r),o=Ha(s),a=Us(),c=Ua(a,o,r.size,r),A=Fs(n.panelMaterialClass,n),h=bi(Ai.Panel,n.zIndexOffset,A);ka(t,o,r.size,void 0,r.borderInset,c,h,a,A,Mo);const f=Pa(),d=qh(a,f),m=bi(Ai.Svg,void 0,void 0,h),E=J.useMemo(()=>{const B=new Gr;B.matrixAutoUpdate=!1;const R=EH.parse(n.text);for(const M of R.paths){const T=Nu.createShapes(M),P=new(n.materialClass??or);P.transparent=!0,P.depthWrite=!1,P.toneMapped=!1,P.clippingPlanes=d;for(const K of T){const w=new Qu(K);w.computeBoundingBox();const b=new nn(w,P);b.matrixAutoUpdate=!1,b.raycast=bu(b,b.raycast,f,a,m),jl(b,r.cameraDistance,m),b.userData.color=M.color,b.scale.y=-1,b.updateMatrix(),B.add(b)}}return B},[n.text,n.materialClass,d,f,a,r,m]),x=As(t,mH);mi(()=>{const B=x.value;if(B==null)return;const R=B("color"),M=B("opacity");let T;Array.isArray(R)?T=ZS.setRGB(...R):R!=null&&(T=ZS.set(R)),E.traverse(P=>{if(!(P instanceof nn))return;P.receiveShadow=n.receiveShadow??!1,P.castShadow=n.castShadow??!1;const K=P.material;K.color.copy(T??P.userData.color),K.opacity=M??1})},[E,n.color,n.receiveShadow,n.castShadow]);const C=jh();$h(t,C,r,o,c,n.scrollbarPanelMaterialClass,a,m),ls(t,"width",n.svgWidth),ls(t,"height",n.svgHeight),Io(t,n),xo(t,n),Bo(t,n);const p=So(t,n),I=To(t,n);ls(t,"aspectRatio",n.svgWidth/n.svgHeight),vo(t),Qo(n,r.size),Oa(n,c),mi(()=>{const B=n.svgWidth/n.svgHeight,[R,M,T]=uT(r.size,r.paddingInset,r.borderInset,r.pixelSize,n.svgWidth/n.svgHeight);E.position.set(R-T*B/2,M+T/2,0),E.scale.setScalar(T/n.svgHeight),E.updateMatrix()},[r,E,n.svgWidth,n.svgHeight]),mi(()=>void(E.visible=!c.value),[]);const y=Zl(r.size,r,h,f);return Ga(e,r,y,C),oe.jsxs(_o,{groupRef:i,matrix:s,handlers:n,hoverHandlers:p,activeHandlers:I,children:[oe.jsxs(Zh,{listeners:n,node:r,scrollPosition:C,children:[oe.jsx("primitive",{object:y}),oe.jsx("primitive",{object:E})]}),oe.jsx(ef,{globalMatrix:o,node:r,orderInfo:m,scrollPosition:C,children:n.children})]})});J.forwardRef(({children:n,resolution:e=1,frames:t=1/0,renderPriority:i=0,eventPriority:r=0,...s},o)=>{const a=J.useMemo(()=>new Wr(1,1,{minFilter:In,magFilter:In,type:Ol}),[]),c=J.useRef(null),A=J.useMemo(()=>({events:{compute:CH.bind(null,c),priority:r},size:{width:1,height:1,left:0,top:0}}),[r]);J.useEffect(()=>{if(c.current==null)return;const{size:f}=c.current,d=Xt(()=>{const[m,E]=f.value;a.setSize(m,E),A.size.width=m,A.size.height=E});return()=>{d(),a.dispose()}},[a,A]),J.useImperativeHandle(o,()=>c.current,[]);const h=J.useMemo(()=>new Ih,[]);return oe.jsxs(oe.Fragment,{children:[YR(oe.jsxs(yH,{imageRef:c,renderPriority:i,frames:t,fbo:a,children:[n,oe.jsx("group",{onPointerOver:()=>null})]}),h,A),oe.jsx(JT,{...s,src:a.texture,fit:"fill",keepAspectRatio:!1,ref:c})]})});function CH({current:n},e,t,i){var o,a,c;if(n==null||i==null)return!1;i.raycaster.camera||(c=(a=i.events).compute)==null||c.call(a,e,i,(o=i.previousRoot)==null?void 0:o.getState());const[r]=i.raycaster.intersectObject(n.interactionPanel);if(!r)return!1;const s=r.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(s.x*2-1,s.y*2-1),t.camera)}function yH({frames:n,renderPriority:e,children:t,fbo:i,imageRef:r}){const s=Jh();J.useEffect(()=>{if(r.current==null)return;const{size:A}=r.current;return Xt(()=>{const[h,f]=A.value;s.setState({size:{width:h,height:f,top:0,left:0}})})});let o=0,a,c;return Na(A=>{(n===1/0||ooe.jsx(ks,{...n,ref:e,text:vH,svgWidth:24,svgHeight:24})),IH='',ew=J.forwardRef((n,e)=>oe.jsx(ks,{...n,ref:e,text:IH,svgWidth:24,svgHeight:24})),xH='',BH=J.forwardRef((n,e)=>oe.jsx(ks,{...n,ref:e,text:xH,svgWidth:24,svgHeight:24})),_H='',tw=J.forwardRef((n,e)=>oe.jsx(ks,{...n,ref:e,text:_H,svgWidth:24,svgHeight:24})),SH='',wH=J.forwardRef((n,e)=>oe.jsx(ks,{...n,ref:e,text:SH,svgWidth:24,svgHeight:24})),MH='',nw=J.forwardRef((n,e)=>oe.jsx(ks,{...n,ref:e,text:MH,svgWidth:24,svgHeight:24})),QH='',RH=J.forwardRef((n,e)=>oe.jsx(ks,{...n,ref:e,text:QH,svgWidth:24,svgHeight:24})),TH='',DH=J.forwardRef((n,e)=>oe.jsx(ks,{...n,ref:e,text:TH,svgWidth:24,svgHeight:24})),bH='',NH=J.forwardRef((n,e)=>oe.jsx(ks,{...n,ref:e,text:bH,svgWidth:24,svgHeight:24}));function Ft(n,e,t){return new Je().setHSL(n/360,e/100,t/100,"srgb")}const vn=rG({light:{background:Ft(0,0,100),foreground:Ft(222.2,84,4.9),card:Ft(0,0,100),cardForeground:Ft(222.2,84,4.9),popover:Ft(0,0,100),popoverForeground:Ft(222.2,84,4.9),primary:Ft(222.2,47.4,11.2),primaryForeground:Ft(210,40,98),secondary:Ft(210,40,96.1),secondaryForeground:Ft(222.2,47.4,11.2),muted:Ft(210,40,96.1),mutedForeground:Ft(215.4,16.3,46.9),accent:Ft(210,40,96.1),accentForeground:Ft(222.2,47.4,11.2),destructive:Ft(0,72.22,50.59),destructiveForeground:Ft(210,40,98),border:Ft(214.3,31.8,91.4),input:Ft(214.3,31.8,91.4),ring:Ft(222.2,84,4.9)},dark:{background:Ft(222.2,84,4.9),foreground:Ft(210,40,98),card:Ft(222.2,84,4.9),cardForeground:Ft(210,40,98),popover:Ft(222.2,84,4.9),popoverForeground:Ft(210,40,98),primary:Ft(210,40,98),primaryForeground:Ft(222.2,47.4,11.2),secondary:Ft(217.2,32.6,17.5),secondaryForeground:Ft(210,40,98),muted:Ft(217.2,32.6,17.5),mutedForeground:Ft(215,20.2,65.1),accent:Ft(217.2,32.6,17.5),accentForeground:Ft(210,40,98),destructive:Ft(0,62.8,30.6),destructiveForeground:Ft(210,40,98),border:Ft(217.2,32.6,17.5),input:Ft(217.2,32.6,17.5),ring:Ft(212.7,26.8,83.9)}});function LH(n){return oe.jsx(Du,{scrollbarColor:vn.foreground,scrollbarBorderRadius:4,scrollbarOpacity:.3,borderColor:vn.border,color:vn.foreground,...n})}const Yv=J.createContext({});function PH({value:n,onValueChange:e,defaultValue:t,children:i,...r}){const[s,o]=J.useState(t),a=J.useMemo(()=>n==null?{value:s,setValue:c=>{o(c),e==null||e(c)}}:{value:n,setValue:e},[s,e,n]);return oe.jsx(on,{...r,children:oe.jsx(Yv.Provider,{value:a,children:i})})}function UH({children:n,...e}){return oe.jsx(on,{height:40,flexDirection:"row",alignItems:"center",borderRadius:6,backgroundColor:vn.muted,padding:4,...e,children:oe.jsx(Du,{color:vn.mutedForeground,children:n})})}function KE({children:n,value:e,disabled:t=!1,...i}){const{setValue:r,value:s}=J.useContext(Yv),o=e===s;return oe.jsx(on,{onClick:t?void 0:a=>r==null?void 0:r(e),cursor:t?void 0:"pointer",flexDirection:"row",alignItems:"center",borderRadius:2,paddingX:12,backgroundOpacity:t?.5:void 0,backgroundColor:o?vn.background:void 0,paddingY:6,justifyContent:"center",...i,children:oe.jsx(Du,{opacity:t?.5:void 0,color:o?vn.foreground:void 0,fontSize:14,fontWeight:"medium",lineHeight:1.43,wordBreak:"keep-all",children:n})})}function FH({value:n,...e}){const{value:t}=J.useContext(Yv);return n!=t?null:oe.jsx(on,{marginTop:8,...e})}function qE({orientation:n="horizontal",...e}){return oe.jsx(on,{flexShrink:0,backgroundColor:vn.border,width:n==="horizontal"?"100%":1,height:n==="horizontal"?1:"100%",...e})}const kH={default:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:vn.primary},defaultProps:{color:vn.primaryForeground}},destructive:{containerHoverProps:{backgroundOpacity:.9},containerProps:{backgroundColor:vn.destructive},defaultProps:{color:vn.destructiveForeground}},outline:{containerHoverProps:{backgroundColor:vn.accent},containerProps:{border:1,borderColor:vn.input,backgroundColor:vn.background}},secondary:{containerHoverProps:{backgroundOpacity:.8},containerProps:{backgroundColor:vn.secondary},defaultProps:{color:vn.secondaryForeground}},ghost:{containerHoverProps:{backgroundColor:vn.accent},defaultProps:{}},link:{containerProps:{},defaultProps:{color:vn.primary}}},GH={default:{height:40,paddingX:16,paddingY:8},sm:{height:36,paddingX:12},lg:{height:42,paddingX:32},icon:{height:40,width:40}};function $r({children:n,variant:e="default",size:t="default",disabled:i=!1,hover:r,...s}){const{containerProps:o,defaultProps:a,containerHoverProps:c}=kH[e],A=GH[t];return oe.jsx(on,{borderRadius:6,alignItems:"center",justifyContent:"center",...o,...A,borderOpacity:i?.5:void 0,backgroundOpacity:i?.5:void 0,cursor:i?void 0:"pointer",flexDirection:"row",hover:{...c,...r},...s,children:oe.jsx(Du,{fontSize:14,lineHeight:1.43,fontWeight:"medium",wordBreak:"keep-all",...a,opacity:i?.5:void 0,children:n})})}function iw({album:n,aspectRatio:e="portrait",width:t,height:i,...r}){return oe.jsxs(on,{gap:12,...r,children:[oe.jsx(JT,{borderRadius:6,src:n.cover,width:t,height:i,fit:"cover",aspectRatio:e==="portrait"?3/4:1}),oe.jsxs(on,{gap:4,children:[oe.jsx(fn,{fontWeight:"medium",fontSize:14,lineHeight:1,children:n.name}),oe.jsx(fn,{fontSize:12,lineHeight:1.3333,color:vn.mutedForeground,children:n.artist})]})]})}const OH=[{name:"React Rendezvous",artist:"Ethan Byte",cover:"https://images.unsplash.com/photo-1611348586804-61bf6c080437?w=300&dpr=2&q=80"},{name:"Async Awakenings",artist:"Nina Netcode",cover:"https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80"},{name:"The Art of Reusability",artist:"Lena Logic",cover:"https://images.unsplash.com/photo-1528143358888-6d3c7f67bd5d?w=300&dpr=2&q=80"},{name:"Stateful Symphony",artist:"Beth Binary",cover:"https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80"}],HH=[{name:"Thinking Components",artist:"Lena Logic",cover:"https://images.unsplash.com/photo-1615247001958-f4bc92fa6a4a?w=300&dpr=2&q=80"},{name:"Functional Fury",artist:"Beth Binary",cover:"https://images.unsplash.com/photo-1513745405825-efaf9a49315f?w=300&dpr=2&q=80"},{name:"React Rendezvous",artist:"Ethan Byte",cover:"https://images.unsplash.com/photo-1614113489855-66422ad300a4?w=300&dpr=2&q=80"},{name:"Stateful Symphony",artist:"Beth Binary",cover:"https://images.unsplash.com/photo-1446185250204-f94591f7d702?w=300&dpr=2&q=80"},{name:"Async Awakenings",artist:"Nina Netcode",cover:"https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80"},{name:"The Art of Reusability",artist:"Lena Logic",cover:"https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80"}];function zH({playlists:n,...e}){return oe.jsx(on,{overflow:"scroll",paddingRight:20,paddingBottom:48,...e,children:oe.jsxs(on,{paddingBottom:16,gap:16,children:[oe.jsxs(on,{paddingX:12,paddingY:8,children:[oe.jsx(fn,{marginBottom:8,paddingX:16,fontWeight:"semi-bold",fontSize:18,lineHeight:1.5555,letterSpacing:-.4,children:"Discover"}),oe.jsxs(on,{gap:4,children:[oe.jsxs($r,{variant:"secondary",justifyContent:"flex-start",children:[oe.jsx(tw,{marginRight:8,width:16,height:16}),oe.jsx(fn,{children:"Models"})]}),oe.jsxs($r,{variant:"ghost",justifyContent:"flex-start",children:[oe.jsx($S,{marginRight:8,width:16,height:16}),oe.jsx(fn,{children:"Materials"})]}),oe.jsxs($r,{variant:"ghost",justifyContent:"flex-start",children:[oe.jsx(ew,{marginRight:8,width:16,height:16}),oe.jsx(fn,{children:"HDRIS"})]})]})]}),oe.jsxs(on,{paddingX:12,paddingY:8,children:[oe.jsx(fn,{marginBottom:8,paddingX:16,fontWeight:"semi-bold",fontSize:18,lineHeight:1.5555,letterSpacing:-.4,children:"Collections"}),oe.jsxs(on,{gap:4,children:[oe.jsxs($r,{variant:"ghost",justifyContent:"flex-start",children:[oe.jsx(nw,{marginRight:8,width:16,height:16}),oe.jsx(fn,{children:"Favorits"})]}),oe.jsxs($r,{variant:"ghost",justifyContent:"flex-start",children:[oe.jsx(tw,{marginRight:8,width:16,height:16}),oe.jsx(fn,{children:"Models"})]}),oe.jsxs($r,{variant:"ghost",justifyContent:"flex-start",children:[oe.jsx($S,{marginRight:8,width:16,height:16}),oe.jsx(fn,{children:"Materials"})]}),oe.jsxs($r,{variant:"ghost",justifyContent:"flex-start",children:[oe.jsx(ew,{marginRight:8,width:16,height:16}),oe.jsx(fn,{children:"HDRIs"})]}),oe.jsxs($r,{variant:"ghost",justifyContent:"flex-start",children:[oe.jsx(NH,{marginRight:8,width:16,height:16}),oe.jsx(fn,{children:"Creators"})]})]})]}),oe.jsxs(on,{paddingY:8,children:[oe.jsx(fn,{paddingX:28,fontSize:18,lineHeight:1.5555,fontWeight:"semi-bold",letterSpacing:-.4,children:"Favorits"}),oe.jsx(on,{paddingX:4,flexDirection:"column",gap:4,padding:8,children:n==null?void 0:n.map((t,i)=>oe.jsxs($r,{variant:"ghost",justifyContent:"flex-start",children:[oe.jsx(nw,{marginRight:8,width:16,height:16}),oe.jsx(fn,{fontWeight:"normal",children:t})]},`${t}-${i}`))})]})]})})}const VH=["Recently Added","Recently Played","Top Songs","Top Albums","Top Artists","Logic Discography","Bedtime Beats","Feeling Happy","I miss Y2K Pop","Runtober","Mellow Days","Eminem Essentials"];function fl({children:n}){return oe.jsx(oe.Fragment,{children:n})}function WH(n){return oe.jsx(on,{flexDirection:"row",height:40,alignItems:"center",gap:4,borderRadius:4,border:1,backgroundColor:vn.background,padding:4,...n})}function Pc({children:n,...e}){return oe.jsx(on,{hover:{backgroundColor:vn.accent},flexDirection:"row",alignItems:"center",cursor:"pointer",borderRadius:6,paddingY:6,paddingX:12,...e,children:oe.jsx(Du,{fontSize:14,lineHeight:1.4333,fontWeight:"medium",children:n})})}function YH(){const[n,e]=J.useState(()=>_S());return oe.jsxs(WH,{borderRadius:0,paddingX:8,lg:{paddingX:16},children:[oe.jsx(fl,{children:oe.jsx(Pc,{children:oe.jsx(ks,{text:'',svgWidth:194,svgHeight:50,width:70})})}),oe.jsx(fl,{children:oe.jsx(Pc,{children:oe.jsx(fn,{children:"File"})})}),oe.jsx(fl,{children:oe.jsx(Pc,{children:oe.jsx(fn,{children:"Edit"})})}),oe.jsx(fl,{children:oe.jsx(Pc,{children:oe.jsx(fn,{children:"View"})})}),oe.jsx(fl,{children:oe.jsx(Pc,{children:oe.jsx(fn,{children:"Account"})})}),oe.jsx(on,{flexGrow:1}),oe.jsx(fl,{children:oe.jsx($r,{variant:"ghost",size:"sm",onClick:()=>window.open("https://github.com/pmndrs/uikit/tree/main/examples/market","_blank"),children:oe.jsx(fn,{children:"Source Code"})})}),oe.jsx(fl,{children:oe.jsx(Pc,{onClick:()=>{nG(n==="light"?"dark":n==="dark"?"system":"light"),e(_S())},children:n==="dark"?oe.jsx(BH,{}):n==="system"?oe.jsx(RH,{}):oe.jsx(DH,{})})})]})}function XH(){return oe.jsx(V5,{flat:!0,camera:{position:[0,0,18],fov:35},style:{height:"100dvh",touchAction:"none"},gl:{localClippingEnabled:!0},children:oe.jsx(gH,{children:oe.jsx(LH,{children:oe.jsx(Du,{scrollbarWidth:8,scrollbarOpacity:.1,scrollbarBorderRadius:4,children:oe.jsx(JH,{})})})})})}function JH(){return oe.jsxs(on,{height:"100%",flexDirection:"column",children:[oe.jsx(YH,{}),oe.jsxs(on,{flexBasis:0,flexGrow:1,borderTop:1,backgroundColor:vn.background,flexDirection:"row",children:[oe.jsx(zH,{marginTop:16,playlists:VH}),oe.jsx(qE,{orientation:"vertical"}),oe.jsx(on,{marginTop:16,overflow:"scroll",flexGrow:1,flexBasis:0,paddingX:16,paddingBottom:24,paddingTop:8,lg:{paddingX:32},children:oe.jsxs(PH,{defaultValue:"music",height:"100%",gap:24,children:[oe.jsxs(on,{flexDirection:"row",justifyContent:"space-between",alignItems:"center",children:[oe.jsxs(UH,{children:[oe.jsx(KE,{value:"music",children:oe.jsx(fn,{children:"Models"})}),oe.jsx(KE,{value:"podcasts",disabled:!0,children:oe.jsx(fn,{children:"HDRIS"})}),oe.jsx(KE,{value:"live",disabled:!0,children:oe.jsx(fn,{children:"Materials"})})]}),oe.jsx(on,{marginLeft:"auto",marginRight:16,children:oe.jsxs($r,{children:[oe.jsx(wH,{marginRight:8,height:16,width:16}),oe.jsx(fn,{children:"Request Model"})]})})]}),oe.jsxs(FH,{value:"music",border:0,padding:0,children:[oe.jsx(on,{flexDirection:"row",alignItems:"center",justifyContent:"space-between",children:oe.jsxs(on,{gap:4,children:[oe.jsx(fn,{fontWeight:"semi-bold",letterSpacing:-.4,fontSize:18,lineHeight:1.55555,children:"Trending"}),oe.jsx(fn,{color:vn.mutedForeground,fontSize:14,lineHeight:1.43333,children:"Top picks for you. Updated daily."})]})}),oe.jsx(qE,{marginY:16}),oe.jsx(on,{flexDirection:"row",overflow:"scroll",gap:16,paddingBottom:16,children:OH.map(n=>oe.jsx(iw,{album:n,width:250,height:330,aspectRatio:"portrait"},n.name))}),oe.jsxs(on,{marginTop:24,gap:4,children:[oe.jsx(fn,{fontWeight:"semi-bold",letterSpacing:-.4,fontSize:18,lineHeight:1.55555,children:"Made By You"}),oe.jsx(fn,{color:vn.mutedForeground,fontSize:14,lineHeight:1.43333,children:"Your personal models."})]}),oe.jsx(qE,{marginY:16}),oe.jsx(on,{flexShrink:1,flexDirection:"row",overflow:"scroll",gap:16,paddingBottom:16,children:HH.map(n=>oe.jsx(iw,{album:n,aspectRatio:"square",width:150,height:150},n.name))})]})]})})]})]})}E2(document.getElementById("root")).render(oe.jsx(J.StrictMode,{children:oe.jsx(XH,{})})); diff --git a/examples/market/index.html b/examples/market/index.html index 11f6c6d0..f7641001 100644 --- a/examples/market/index.html +++ b/examples/market/index.html @@ -5,7 +5,7 @@ Document - +